/* Пока берём утверждённые стили действующей главной без изменений. */
@import url("https://fonts.googleapis.com/css2?family=Golos+Text:wght@400;500;600;700;800&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@600&display=swap");


/* Стили страницы списка фабрик. */
.factories-page .factories-hero h1,
.factories-page .factories-list-heading h2,
.factories-page .factories-bottom-cta h2 { font-family:"Golos Text",Arial,sans-serif; font-weight:700; }
.factory-card { position:relative; min-height:245px; border-radius:15px; box-shadow:0 7px 20px rgba(48,79,113,.06); transition:.2s; }
.factory-card:hover { border-color:#9fc7f5; box-shadow:0 12px 26px rgba(45,98,157,.12); transform:translateY(-2px); }
.factory-card-link { position:absolute; z-index:1; inset:0; border-radius:15px; }
.factory-card-logo,.factory-card-content { position:relative; z-index:2; pointer-events:none; }
.factory-card-logo { display:flex; align-items:center; height:96px; justify-content:center; margin-bottom:14px; padding:8px; border:1px solid #edf1f6; border-radius:10px; background:#fff; }
.factory-card-logo img { width:100%; height:100%; max-width:180px; max-height:80px; object-position:center; }
.factory-card h3 { position:relative; z-index:2; margin:0; color:#1e2d45; font-size:17px; font-weight:700; line-height:1.3; }
.factory-card-city { position:relative; z-index:2; }
.factory-card-sections { position:relative; z-index:2; min-height:35px; }
.factory-card-button { position:relative; z-index:3; justify-content:space-between; border-radius:8px; }
.factories-pagination { gap:7px; align-items:center; }.factories-pagination a,.factories-pagination span { display:inline-flex; align-items:center; justify-content:center; min-width:35px; height:35px; padding:0 10px; border:1px solid #d6e4f2; border-radius:7px; color:#356fba; font-size:13px; }.factories-pagination .page-current { border-color:var(--home-blue); background:var(--home-blue); color:#fff; }.factories-pagination .page-next { min-width:auto; }
.factories-filter-bar { padding:14px 0; border-bottom:1px solid #dfeaf5; background:#fff; }.factories-filter-summary { display:flex; align-items:center; gap:18px; color:#60728c; font-size:13px; }.factories-filter-summary > a { color:var(--home-blue); font-weight:600; }.factories-filter-summary details { margin-left:auto; }.factories-filter-summary summary { display:flex; align-items:center; gap:8px; padding:8px 12px; border:1px solid #cbddeb; border-radius:7px; color:#315579; font-size:12px; font-weight:700; line-height:20px; list-style:none; cursor:pointer; }.factories-filter-summary summary::-webkit-details-marker { display:none; }.factories-filter-summary summary b { position:relative; width:12px; height:20px; display:block; font-size:0; }.factories-filter-summary summary b::before { position:absolute; top:50%; left:50%; width:0; height:0; border-top:5px solid #1967d2; border-right:4px solid transparent; border-left:4px solid transparent; content:""; transform:translate(-50%,-40%); }.factories-filter-summary details[open] summary b::before { transform:translate(-50%,-60%) rotate(180deg); }.factories-filter-summary details[open] summary { border-color:#9fc7f5; background:#edf5ff; }.factories-filter-panel { position:absolute; z-index:4; right:0; width:min(720px,calc(100vw - 30px)); margin-top:8px; padding:20px; border:1px solid #cddfed; border-radius:12px; background:#fff; box-shadow:0 14px 32px rgba(45,75,108,.16); }.factories-filter-panel strong { display:block; margin-bottom:11px; color:#2a3c56; font-size:13px; }.factories-filter-region { margin-top:20px; padding-top:18px; border-top:1px solid #e3edf6; }.factories-filter-region form { display:flex; width:100%; max-width:620px; gap:8px; }.factories-location-field { position:relative; display:flex; flex:1 1 auto; align-items:center; min-width:0; }.factories-location-field > span { position:absolute; left:11px; z-index:1; color:#6691bd; font-size:17px; line-height:1; pointer-events:none; }.factories-location-field input { width:100%; height:38px; min-width:0; padding:0 11px 0 32px; border:1px solid #cbddeb; border-radius:7px; outline:0; background:#fff; color:#40536d; font:12px "Golos Text",Arial,sans-serif; }.factories-location-field input:focus { border-color:var(--home-blue); box-shadow:0 0 0 3px rgba(25,103,210,.1); }.factories-filter-region button { height:38px; padding:0 14px; border:1px solid var(--home-blue); border-radius:7px; background:var(--home-blue); color:#fff; font:12px "Golos Text",Arial,sans-serif; font-weight:700; cursor:pointer; }.factories-filter-region p { display:flex; flex-wrap:wrap; gap:7px 13px; margin:12px 0 0; }.factories-filter-region p a { color:var(--home-blue); font-size:12px; font-weight:600; }
@media (max-width:900px) { .factories-filter-summary { flex-wrap:wrap; }.factories-filter-summary details { margin-left:0; }.factories-filter-panel { right:auto; left:0; } }
@media (max-width:700px) { .factories-pagination { flex-wrap:wrap; } }
@media (max-width:600px) { .factories-filter-summary { gap:10px; }.factories-filter-summary details { width:100%; }.factories-filter-summary summary { justify-content:space-between; }.factories-filter-panel { width:calc(100vw - 30px); }.factories-filter-region form { flex-direction:column; }.factories-filter-region select,.factories-filter-region button { width:100%; } }


/* Стили страницы фабрики и единых карточек товаров. */
.factory-page h1,.factory-page h2 { font-family:"Golos Text",Arial,sans-serif; font-weight:700; }.factory-hero { padding:28px 0 36px; background:radial-gradient(circle at 84% 25%,rgba(94,173,255,.25),transparent 30%),#edf5ff; }.factory-hero .factories-breadcrumbs { margin-bottom:24px; }.factory-hero-grid { display:grid; grid-template-columns:minmax(0,1fr) 310px; gap:28px; align-items:stretch; }.factory-profile { display:flex; gap:23px; padding:23px; border:1px solid #cce0f7; border-radius:15px; background:rgba(255,255,255,.76); }.factory-profile-logo { width:154px; height:96px; display:grid; flex-shrink:0; place-items:center; padding:12px; border:1px solid #e3ecf5; border-radius:10px; background:#fff; }.factory-profile-logo img { max-width:100%; max-height:100%; object-fit:contain; }.factory-profile-main h1 { margin:6px 0 7px; color:#17263d; font-size:37px; line-height:1.15; }.factory-location { margin:0; color:#52667e; font-size:14px; }.factory-badges { display:flex; flex-wrap:wrap; gap:7px; margin-top:16px; }.factory-badges span,.factory-badges a { padding:5px 8px; border-radius:6px; background:#eef5fc; color:#47617f; font-size:11px; }.factory-badges a { color:var(--home-blue); }.factory-request { display:flex; flex-direction:column; padding:23px; border-radius:15px; background:#1967d2; color:#fff; }.factory-request b { font-size:18px; line-height:1.3; }.factory-request p { margin:10px 0 18px; color:#dcecff; font-size:13px; line-height:1.5; }
.factory-request .home-button { margin-top:auto; background:#fff; border-color:#fff; color:#1967d2!important; }
/* Белый текст кнопки при наведении на синем фоне. */
.factory-request .home-button:hover { color:#fff!important; }

.factory-request small { margin-top:11px; color:#cfe4fc; font-size:11px; line-height:1.4; }.factory-tabs { border-bottom:1px solid #dfeaf5; background:#fff; }.factory-tabs .home-container { display:flex; gap:25px; overflow-x:auto; }.factory-tabs a { flex-shrink:0; padding:17px 0 14px; border-bottom:3px solid transparent; color:#51637b; font-size:13px; font-weight:600; }.factory-tabs a span { margin-left:4px; color:#8da0b5; font-size:11px; }.factory-tabs a.active,.factory-tabs a:hover { border-color:var(--home-blue); color:var(--home-blue); }.factory-content { padding:58px 0; background:#f5f8fc; }.factory-content-heading { display:flex; align-items:end; justify-content:space-between; gap:25px; margin-bottom:22px; }.factory-content-heading h2,.factory-information h2,.factory-contacts-section h2 { margin:6px 0 0; color:#17263d; font-size:30px; line-height:1.2; }.factory-content-heading p { margin:10px 0 0; color:#60728c; font-size:14px; }.factory-all-products,.factory-content-heading > a { color:var(--home-blue); font-size:13px; font-weight:700; white-space:nowrap; }.factory-categories { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:20px; }.factory-categories a { padding:8px 11px; border:1px solid #d5e3f1; border-radius:7px; background:#fff; color:#52667e; font-size:12px; }.factory-categories a span { margin-left:5px; color:#8495a8; font-size:11px; }.factory-categories a.active { border-color:#9fc7f5; background:#eaf3fe; color:var(--home-blue); font-weight:700; }.factory-products { display:grid; grid-template-columns:repeat(4,1fr); gap:15px; }.factory-product { position:relative; min-width:0; overflow:hidden; border:1px solid #dce7f3; border-radius:12px; background:#fff; box-shadow:0 4px 15px rgba(48,79,113,.05); transition:.2s; }.factory-product:hover { border-color:#9fc7f5; box-shadow:0 10px 23px rgba(45,98,157,.12); transform:translateY(-2px); }.factory-product-link { position:absolute; z-index:1; inset:0; }.factory-product-image { position:relative; height:188px; display:grid; place-items:center; background:#fff; }.factory-product-image img { width:100%; height:100%; object-fit:contain; }.factory-product-image span { position:absolute; top:10px; left:10px; padding:4px 7px; border-radius:5px; background:#e7f3ff; color:var(--home-blue); font-size:10px; font-weight:700; }.factory-product-info { position:relative; z-index:2; padding:13px; pointer-events:none; }.factory-product-info h3 { margin:0; color:#273a54; font-size:13px; font-weight:700; line-height:1.4; }.factory-product-info p { margin:7px 0 0; color:#789; font-size:11px; }.factory-show-more { display:flex; justify-content:center; max-width:260px; margin:24px auto 0; padding:11px; border:1px solid #b8d2f0; border-radius:8px; color:var(--home-blue); font-size:13px; font-weight:700; }.factory-information { padding:58px 0; background:#fff; }.factory-information-grid { display:grid; grid-template-columns:1fr 365px; gap:70px; }.factory-about p { max-width:700px; margin:16px 0 0; color:#53667f; font-size:14px; line-height:1.7; }.factory-details { border:1px solid #dbe7f2; border-radius:12px; background:#f8fbff; }.factory-details div { padding:16px 18px; border-bottom:1px solid #dbe7f2; }.factory-details div:last-child { border-bottom:0; }.factory-details span,.factory-details b,.factory-details a { display:block; }.factory-details span { color:#8191a5; font-size:11px; }.factory-details b,.factory-details a { margin-top:4px; color:#2a3c56; font-size:13px; }.factory-details a { color:var(--home-blue); font-weight:600; }.factory-contacts-section { padding:47px 0; border-top:1px solid #e2ecf5; background:#f5f8fc; }.factory-contacts-grid { display:grid; grid-template-columns:1fr 350px; gap:55px; align-items:center; }.factory-contacts-grid p { max-width:650px; margin:12px 0 0; color:#53667f; font-size:14px; line-height:1.65; }.factory-contact-links { display:flex; flex-wrap:wrap; gap:10px; margin-top:19px; }.factory-contact-links a { padding:9px 12px; border:1px solid #c7d9ec; border-radius:7px; background:#fff; color:var(--home-blue); font-size:12px; font-weight:700; }.factory-contacts-grid aside { padding:18px; border-left:3px solid #6aa7e4; background:#fff; color:#53667f; }.factory-contacts-grid aside b,.factory-contacts-grid aside span { display:block; }.factory-contacts-grid aside b { color:#2a3c56; font-size:13px; }.factory-contacts-grid aside span { margin-top:6px; font-size:12px; line-height:1.55; }.factory-reviews { padding:58px 0; background:#fff; }.factory-reviews-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:15px; }.factory-reviews-grid article,.factory-review-action { padding:19px; border:1px solid #dce7f3; border-radius:12px; background:#f8fbff; }.factory-review-stars { color:#e8ad36; font-size:14px; letter-spacing:1px; }.factory-reviews-grid p { margin:11px 0 14px; color:#4e6077; font-size:13px; line-height:1.55; }.factory-reviews-grid b { color:#2a3c56; font-size:12px; }.factory-review-action { display:flex; flex-direction:column; justify-content:center; background:#1967d2; color:#dcecff; font-size:13px; }.factory-review-action strong { margin-top:8px; color:#fff; font-size:14px; line-height:1.4; }
/* Галерея товара: зоны изображения меняют фото при наведении. */
.factory-product-gallery { position:relative; height:188px; overflow:hidden; background:#fff; }
.factory-product-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; opacity:0; transition:opacity .18s ease; }
.factory-product-photo.active { opacity:1; }
.factory-product-new { position:absolute; z-index:3; top:10px; left:10px; padding:4px 7px; border-radius:5px; background:#e7f3ff; color:var(--home-blue); font-size:10px; font-weight:700; }
.factory-product-gallery-zones { position:absolute; z-index:4; inset:0; display:grid; }
.factory-product-gallery-1 .factory-product-gallery-zones { grid-template-columns:1fr; }
.factory-product-gallery-2 .factory-product-gallery-zones { grid-template-columns:repeat(2,1fr); }
.factory-product-gallery-3 .factory-product-gallery-zones { grid-template-columns:repeat(3,1fr); }
.factory-product-gallery-zones a {
    display: block;
    cursor: pointer;
}

.factory-product-gallery:has(.factory-product-gallery-zones a:nth-child(2):hover) .factory-product-photo {
    opacity: 0;
}

.factory-product-gallery:has(.factory-product-gallery-zones a:nth-child(2):hover) .factory-product-photo:nth-of-type(2) {
    opacity: 1;
}

.factory-product-gallery:has(.factory-product-gallery-zones a:nth-child(3):hover) .factory-product-photo {
    opacity: 0;
}

.factory-product-gallery:has(.factory-product-gallery-zones a:nth-child(3):hover) .factory-product-photo:nth-of-type(3) {
    opacity: 1;
}

.factory-product-gallery:has(.factory-product-gallery-zones a:nth-child(2):hover) .factory-product-dots i:first-child,
.factory-product-gallery:has(.factory-product-gallery-zones a:nth-child(3):hover) .factory-product-dots i:first-child {
    background: #bdd0e4;
}

.factory-product-gallery:has(.factory-product-gallery-zones a:nth-child(2):hover) .factory-product-dots i:nth-child(2),
.factory-product-gallery:has(.factory-product-gallery-zones a:nth-child(3):hover) .factory-product-dots i:nth-child(3) {
    background: var(--home-blue);
}
.factory-product-dots { position:absolute; z-index:3; right:10px; bottom:9px; display:flex; gap:4px; }
.factory-product-dots i { width:5px; height:5px; border-radius:50%; background:#bdd0e4; }.factory-product-dots i:first-child { background:var(--home-blue); }
.factory-product-info { padding:13px 13px 9px; }
.factory-product-price { position:relative; z-index:5; display:flex; align-items:center; justify-content:space-between; margin:0 13px 13px; padding:9px 10px; border:1px solid #c3d9ef; border-radius:7px; color:var(--home-blue)!important; font-size:11px; font-weight:700; }
.factory-product-price:hover { border-color:var(--home-blue); background:var(--home-blue); color:#fff!important; }.factory-product-price b { font-size:14px; line-height:1; }
.factory-product-gallery { height:384px; }
.factory-product-gallery .factory-product-photo { object-position:center; }
.factory-information-grid { grid-template-columns:1fr; }
.factory-about { max-width:790px; }
@media (max-width:900px) { .factory-hero-grid,.factory-information-grid,.factory-contacts-grid { grid-template-columns:1fr; gap:24px; }.factory-products { grid-template-columns:repeat(2,1fr); }.factory-reviews-grid { grid-template-columns:1fr 1fr; }.factory-review-action { min-height:130px; } }
@media (max-width:600px) { .factory-hero { padding:23px 0 28px; }.factory-profile { flex-direction:column; }.factory-profile-logo { width:100%; height:86px; }.factory-profile-main h1 { font-size:31px; }.factory-content,.factory-information,.factory-reviews { padding:40px 0; }.factory-content-heading { align-items:flex-start; flex-direction:column; }.factory-products,.factory-reviews-grid { grid-template-columns:1fr; }.factory-product-image,.factory-product-gallery { height:420px; }.factory-tabs .home-container { gap:18px; }.factory-contacts-section { padding:39px 0; } }

/* Единый размер логотипа фабрики во всех макетах: пропорции 180×80. */
.factory-profile-logo { width:180px; height:80px; padding:8px; }
.factory-profile-logo img { max-width:180px; max-height:80px; object-fit:contain; }


/* Стили страницы товара. */
/* Главное фото всегда полностью помещается в область галереи. */
.product-gallery-main img {
    position: absolute;
    inset: 0;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    object-fit: contain !important;
    object-position: center !important;
}

.product-page h1,.product-page h2 { font-family:"Golos Text",Arial,sans-serif; font-weight:700; }.product-main { padding:28px 0 50px; background:radial-gradient(circle at 87% 23%,rgba(94,173,255,.19),transparent 28%),#f5f9fe; }.product-main .factories-breadcrumbs { margin-bottom:24px; }.product-main-grid { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr); gap:52px; }.product-gallery-main { position:relative; height:520px; display:grid; place-items:center; overflow:hidden; border:1px solid #dce7f3; border-radius:15px; background:#fff; }.product-gallery-main img { display:block; width:auto; height:auto; max-width:100%; max-height:100%; object-fit:contain; }.product-gallery-main span { position:absolute; top:14px; left:14px; padding:5px 8px; border-radius:6px; background:#e7f3ff; color:var(--home-blue); font-size:11px; font-weight:700; }.product-thumbnails { display:flex; gap:9px; margin-top:12px; }.product-thumbnails button { width:74px; height:74px; padding:5px; border:1px solid #d6e4f2; border-radius:8px; background:#fff; cursor:pointer; }.product-thumbnails button.active,.product-thumbnails button:hover { border-color:var(--home-blue); }.product-thumbnails img { width:100%; height:100%; object-fit:contain; }.product-summary { padding-top:5px; }.product-summary h1 { max-width:580px; margin:7px 0 15px; color:#17263d; font-size:36px; letter-spacing:-.5px; line-height:1.18; }.product-meta { display:flex; flex-wrap:wrap; gap:8px 19px; color:#72839a; font-size:12px; }.product-meta a { color:var(--home-blue); font-weight:600; }.product-lead { margin:22px 0; color:#52667e; font-size:15px; line-height:1.68; }.product-request { padding:21px; border:1px solid #bed8f2; border-radius:13px; background:#fff; box-shadow:0 6px 19px rgba(51,91,130,.06); }.product-request b { color:#253950; font-size:16px; }.product-request p { margin:8px 0 15px; color:#63758c; font-size:13px; line-height:1.5; }
.product-request .home-button { min-height:42px; }
/* Ссылка обратного звонка в карточке товара. */
.product-callback-link { display:table; margin-top:12px; color:var(--home-blue); font-size:12px; font-weight:700; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; }
.product-callback-link:hover { color:#1257b7; }

.product-request small { display:block; margin-top:10px; color:#8291a5; font-size:11px; }.product-details { padding:60px 0; background:#fff; }.product-details-grid { display:grid; grid-template-columns:minmax(0,1fr) 345px; gap:60px; }.product-details h2,.product-links h2 { margin:6px 0 0; color:#17263d; font-size:29px; line-height:1.2; }.product-details article > p { max-width:760px; margin:16px 0 0; color:#53667f; font-size:14px; line-height:1.75; }.product-characteristics { display:grid; grid-template-columns:repeat(2,1fr); gap:0; margin-top:27px; border:1px solid #dce7f3; border-radius:11px; overflow:hidden; }.product-characteristics div { min-height:65px; padding:12px 15px; border-right:1px solid #dce7f3; border-bottom:1px solid #dce7f3; background:#f9fbfe; }.product-characteristics div:nth-child(2n) { border-right:0; }.product-characteristics div:nth-last-child(-n+2) { border-bottom:0; }.product-characteristics span,.product-characteristics b,.product-characteristics a { display:block; }.product-characteristics span { color:#8292a5; font-size:11px; }.product-characteristics b,.product-characteristics a { margin-top:4px; color:#31445e; font-size:13px; }.product-characteristics a { color:var(--home-blue); font-weight:600; }.product-factory { display:flex; flex-direction:column; gap:17px; padding:19px; border:1px solid #d9e6f2; border-radius:13px; background:#f8fbff; }.product-factory-logo { width:180px; height:80px; display:grid; place-items:center; padding:8px; border:1px solid #e2ecf4; border-radius:9px; background:#fff; }.product-factory-logo img { max-width:180px; max-height:80px; object-fit:contain; }.product-factory span { color:#8191a5; font-size:11px; }.product-factory h2 { margin:4px 0 0; font-size:21px; }.product-factory p { margin:7px 0 12px; color:#5a6c83; font-size:12px; line-height:1.55; }.product-factory a { color:var(--home-blue); font-size:12px; font-weight:700; }.product-related { padding:58px 0; border-top:1px solid #e3edf6; background:#f5f8fc; }.product-related-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:15px; }.product-related-grid article:not(.factory-product) { position:relative; overflow:hidden; border:1px solid #dce7f3; border-radius:12px; background:#fff; transition:.2s; }.product-related-grid article:not(.factory-product):hover { border-color:#9fc7f5; box-shadow:0 10px 23px rgba(45,98,157,.12); transform:translateY(-2px); }.product-related-link { position:absolute; z-index:1; inset:0; }.product-related-grid article:not(.factory-product) > div { height:245px; display:grid; place-items:center; padding:8px; }.product-related-grid article:not(.factory-product) img { width:100%; height:100%; object-fit:contain; }.product-related-grid article:not(.factory-product) h3,.product-related-grid article:not(.factory-product) p { position:relative; z-index:2; margin-right:13px; margin-left:13px; pointer-events:none; }.product-related-grid article:not(.factory-product) h3 { margin-top:0; color:#273a54; font-size:13px; line-height:1.4; }.product-related-grid article:not(.factory-product) p { margin-top:7px; margin-bottom:14px; color:#789; font-size:11px; }.product-links { padding:42px 0; background:#fff; }.product-links .home-container { display:flex; align-items:center; justify-content:space-between; gap:40px; }.product-links h2 { font-size:23px; }.product-links .home-container > div:last-child { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }.product-links a { padding:8px 10px; border:1px solid #d5e3f1; border-radius:7px; color:var(--home-blue); font-size:12px; font-weight:600; }
@media (max-width:900px) { .product-main-grid,.product-details-grid { grid-template-columns:1fr; gap:30px; }.product-related-grid { grid-template-columns:repeat(2,1fr); }.product-links .home-container { align-items:flex-start; flex-direction:column; }.product-links .home-container > div:last-child { justify-content:flex-start; } }
@media (max-width:600px) { .product-main { padding:23px 0 38px; }.product-main-grid { gap:24px; }.product-gallery-main { height:420px; }.product-summary h1 { font-size:30px; }.product-details,.product-related { padding:40px 0; }.product-characteristics { grid-template-columns:1fr; }.product-characteristics div,.product-characteristics div:nth-child(2n) { border-right:0; border-bottom:1px solid #dce7f3; }.product-characteristics div:last-child { border-bottom:0; }.product-related-grid { grid-template-columns:1fr; }.product-related-grid article > div { height:420px; }.product-links { padding:36px 0; } }

/* Единая читаемая русскоязычная типографика в духе сервисных интерфейсов. */
.home-page,
.home-page button,
.home-page input {
    font-family: "Golos Text", Arial, sans-serif;
}

.home-hero h1,
.home-section-heading h2,
.home-seo-content h2,
.home-final-cta h2 {
    font-family: "Golos Text", Arial, sans-serif;
    font-weight: 700;
    letter-spacing: -0.5px;
    line-height: 1.16;
}

/* Действия в шапке: вход — ссылка, добавление фабрики — основная кнопка. */
.home-header-actions {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    gap: 16px;
}

.home-header-login {
    color: #415066 !important;
    font-size: 13px;
    white-space: nowrap;
}

.home-header-login:hover {
    color: var(--home-blue) !important;
}

/* Шапка: компактный поиск вынесен из первого экрана, как в сервисных порталах. */
.home-header {
    position: sticky;
    top: 0;
    box-shadow: 0 2px 10px rgba(25, 52, 84, 0.04);
}

.home-header-inner {
    min-height: 68px;
    gap: 22px;
}

/* В текстовом логотипе АВРОРА фиолетовая только первая буква. */
.home-logo {
    color: #444444 !important;
    font-family: "Montserrat", sans-serif;
    font-size: 24px;
    font-weight: 600;
    letter-spacing: normal;
    line-height: normal;
}

.home-logo .home-logo-mark {
    color: inherit;
}

.home-logo .home-logo-initial,
.home-footer-logo .home-logo-initial {
    color: #785eea;
}

.home-nav {
    justify-content: flex-start;
    gap: 18px;
}

.home-header-search {
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    display: grid;
    place-items: center;
    border: 1px solid #c9d9e9;
    border-radius: 7px;
    background: #f7fbff;
}

.home-header-search span {
    margin-left:-2px;
    margin-top:-4px;
    position: relative;
    width: 14px;
    height: 14px;
    border: 2px solid var(--home-blue);
    border-radius: 50%;
}

.home-header-search span::after {
    position: absolute;
    right: -6px;
    bottom: -3px;
    width: 7px;
    height: 2px;
    border-radius: 2px;
    background: var(--home-blue);
    content: "";
    transform: rotate(45deg);
}

.home-header-search:hover {
    border-color: #8db8e4;
    background: #e7f2fd;
}

/* Карточки фабрик: логотип загружается в исходной пропорции 225×100. */
.home-factory-card {
    position: relative;
    min-height: 278px;
    padding: 16px;
    border-color: #d9e5f1;
    border-radius: 15px;
    box-shadow: 0 7px 20px rgba(48, 79, 113, 0.06);
}

.home-factory-logo {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    height: 96px;
    justify-content: center;
    margin-bottom: 13px;
    padding: 8px;
    border: 1px solid #edf1f6;
    border-radius: 10px;
    background: #fff;
}

.home-factory-logo img {
    width: 100%;
    height: 100%;
    max-width: 180px;
    max-height: 80px;
    object-fit: contain;
    object-position: center;
}

/* Общая страница каталога товаров. */
.catalog-page h1,.catalog-page h2 { font-family:"Golos Text",Arial,sans-serif; font-weight:700; }
.catalog-hero { padding:30px 0 36px; background:radial-gradient(circle at 86% 22%,rgba(94,173,255,.23),transparent 29%),#edf5ff; }
.catalog-hero .factories-breadcrumbs { margin-bottom:21px; }
.catalog-hero h1 { max-width:720px; margin:7px 0 12px; color:#17263d; font-size:clamp(31px,4vw,46px); line-height:1.14; }
.catalog-hero > .home-container > p { max-width:690px; margin:0; color:#53667f; font-size:15px; line-height:1.65; }
.catalog-hero-stat { display:flex; align-items:baseline; gap:8px; margin-top:17px; }.catalog-hero-stat b { color:var(--home-blue); font-size:20px; }.catalog-hero-stat span { color:#60728c; font-size:12px; }
.catalog-filter-bar { position:relative; z-index:6; padding:14px 0; border-bottom:1px solid #dfeaf5; background:#fff; }.catalog-filter-summary { display:flex; align-items:center; gap:18px; color:#60728c; font-size:13px; }.catalog-filter-summary > a { color:var(--home-blue); font-weight:600; }.catalog-filter-summary details { position:relative; margin-left:auto; }.catalog-filter-summary summary { display:flex; align-items:center; gap:8px; padding:8px 12px; border:1px solid #cbddeb; border-radius:7px; color:#315579; font-size:12px; font-weight:700; line-height:20px; list-style:none; cursor:pointer; }.catalog-filter-summary summary::-webkit-details-marker { display:none; }.catalog-filter-summary summary b { position:relative; width:12px; height:20px; display:block; font-size:0; }.catalog-filter-summary summary b::before { position:absolute; top:50%; left:50%; width:0; height:0; border-top:5px solid var(--home-blue); border-right:4px solid transparent; border-left:4px solid transparent; content:""; transform:translate(-50%,-40%); }.catalog-filter-summary details[open] summary { border-color:#9fc7f5; background:#edf5ff; }.catalog-filter-summary details[open] summary b::before { transform:translate(-50%,-60%) rotate(180deg); }.catalog-filter-panel { position:absolute; z-index:10; right:0; width:min(720px,calc(100vw - 30px)); margin-top:8px; padding:20px; border:1px solid #cddfed; border-radius:12px; background:#fff; box-shadow:0 14px 32px rgba(45,75,108,.16); }.catalog-filter-panel strong { display:block; margin-bottom:11px; color:#2a3c56; font-size:13px; }.catalog-filter-links { display:flex; flex-wrap:wrap; gap:9px; }.catalog-filter-links a { padding:8px 10px; border:1px solid #dce7f3; border-radius:7px; background:#f8fbff; color:#40536d; font-size:12px; }.catalog-filter-links a.active { border-color:#9fc7f5; background:#eaf3fe; color:var(--home-blue); font-weight:700; }.catalog-filter-links small { margin-left:4px; color:#8797aa; font-size:10px; }.catalog-filter-row { display:grid; grid-template-columns:1fr 1fr auto; gap:12px; align-items:end; margin-top:20px; padding-top:18px; border-top:1px solid #e3edf6; }.catalog-filter-row select,.catalog-filter-row input { width:100%; height:38px; padding:0 10px; border:1px solid #cbddeb; border-radius:7px; outline:0; color:#40536d; font:12px "Golos Text",Arial,sans-serif; }.catalog-filter-row select { cursor:pointer; }.catalog-filter-row input { cursor:text; }.catalog-filter-row select:focus,.catalog-filter-row input:focus { border-color:var(--home-blue); box-shadow:0 0 0 3px rgba(25,103,210,.1); }.catalog-filter-row button { height:38px; padding:0 14px; border:1px solid var(--home-blue); border-radius:7px; background:var(--home-blue); color:#fff; font:12px "Golos Text",Arial,sans-serif; font-weight:700; cursor:pointer; }.catalog-items-section { padding:56px 0 65px; background:#f5f8fc; }.catalog-items-count { color:#6c7c91; font-size:13px; }.catalog-items-count b { color:#273a54; }.catalog-products .factory-product-info p { pointer-events:auto; }.catalog-products .factory-product-info p a { position:relative; z-index:5; color:var(--home-blue); font-weight:600; }.catalog-products .factory-product-info p { color:#71839a; }
@media (max-width:900px) { .catalog-filter-summary { flex-wrap:wrap; }.catalog-filter-summary details { margin-left:0; }.catalog-filter-panel { right:auto; left:0; }.catalog-products { grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px) { .catalog-hero { padding:23px 0 28px; }.catalog-filter-summary { gap:10px; }.catalog-filter-summary details { width:100%; }.catalog-filter-summary summary { justify-content:space-between; }.catalog-filter-panel { width:calc(100vw - 30px); }.catalog-filter-row { grid-template-columns:1fr; }.catalog-items-section { padding:40px 0; }.catalog-products { grid-template-columns:1fr; } }

.home-factory-status {
    position: relative;
    z-index: 2;
    margin-bottom: 6px;
    color: #248365;
    font-size: 10px;
    font-weight: 700;
}

.home-factory-card h3 {
    position: relative;
    z-index: 2;
    font-size: 18px;
}

.home-factory-sections {
    position: relative;
    z-index: 2;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0;
    min-height: 34px;
    margin-top: 10px;
    color: #5d6d84;
    font-size: 12px;
    line-height: 1.45;
}

.home-factory-sections span {
    white-space: nowrap;
}

.home-factory-sections span:not(:last-child)::after {
    margin: 0 5px;
    color: #9ba8b7;
    content: "•";
}

.home-factory-button {
    position: relative;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 39px;
    margin-top: 13px;
    padding: 8px 12px;
    border: 1px solid #c3d9ef;
    border-radius: 8px;
    background: #fff;
    color: var(--home-blue);
    font-size: 11px;
    font-weight: 700;
}

.home-factory-button b {
    font-size: 15px;
    line-height: 1;
}

.home-factory-link {
    position: absolute;
    z-index: 1;
    inset: 0;
    border-radius: 15px;
}

.home-catalog-link { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:21px; padding:16px 19px; border:1px solid #d7e6f5; border-radius:10px; background:#fff; }
.home-catalog-link b,.home-catalog-link span { display:block; }.home-catalog-link b { color:#263950; font-size:14px; }.home-catalog-link span { margin-top:2px; color:var(--home-muted); font-size:12px; }.home-catalog-link a,.home-regions-all,.home-seo-link { flex-shrink:0; color:var(--home-blue)!important; font-size:13px; font-weight:700; }
.home-section-regions { background:#fff; }.home-regions { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }.home-regions a { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:14px 16px; border:1px solid #dce7f3; border-radius:9px; color:#31445e; font-size:13px; font-weight:700; }.home-regions span { color:#75859a; font-size:11px; font-weight:400; }.home-regions-all { display:inline-block; margin-top:20px; }
.home-product-catalog { background:#fff; border-top:1px solid #e3edf6; border-bottom:1px solid #e3edf6; }.home-product-catalog__grid { display:grid; grid-template-columns:repeat(4,1fr); gap:13px; }.home-product-catalog__grid a { min-height:153px; display:flex; flex-direction:column; padding:19px; border:1px solid #d8e6f5; border-radius:12px; background:linear-gradient(145deg,#fff,#f4f9ff); transition:.2s; }.home-product-catalog__grid a:hover { border-color:#99c3f3; box-shadow:0 10px 23px rgba(45,98,157,.11); transform:translateY(-2px); }.product-icon { width:30px; height:30px; display:grid; place-items:center; border-radius:8px; background:#e3f1ff; color:var(--home-blue); font-size:11px; font-weight:800; }.home-product-catalog__grid b { margin-top:15px; color:#263950; font-size:14px; line-height:1.35; }.home-product-catalog__grid small { margin-top:7px; color:var(--home-muted); font-size:11px; line-height:1.45; }.home-product-catalog__footer { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:20px; padding:18px 20px; border-radius:11px; background:#163f78; }.home-product-catalog__footer b,.home-product-catalog__footer span { display:block; }.home-product-catalog__footer b { color:#fff; font-size:16px; }.home-product-catalog__footer span { margin-top:2px; color:#cde2fb; font-size:12px; }
.home-trust { background:#f4f8fd; }.home-trust-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }.home-trust-grid article { padding:20px; border:1px solid #dce7f3; border-radius:11px; background:#fff; }.home-trust-grid b { color:#263950; font-size:14px; }.home-trust-grid p { margin:8px 0 0; color:var(--home-muted); font-size:12px; line-height:1.55; }.home-seo-link { display:inline-block; margin-top:4px; color:#fff!important; }
.home-useful { background:#fff; border-top:1px solid #e3edf6; border-bottom:1px solid #e3edf6; }.home-useful-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }.home-useful-grid a { display:flex; flex-direction:column; min-height:207px; padding:20px; border:1px solid #d8e6f5; border-radius:12px; background:linear-gradient(145deg,#fff,#f5f9fe); transition:.2s; }.home-useful-grid a:hover { border-color:#95bee8; box-shadow:0 10px 23px rgba(45,98,157,.11); transform:translateY(-2px); }.home-useful-icon { width:30px; height:30px; display:grid; place-items:center; border-radius:8px; background:#e4f1fe; color:var(--home-blue); font-size:11px; font-weight:800; }.home-useful-grid b { margin-top:15px; color:#263950; font-size:15px; line-height:1.4; }.home-useful-grid small { margin-top:8px; color:var(--home-muted); font-size:12px; line-height:1.5; }.home-useful-grid em { margin-top:auto; padding-top:15px; color:var(--home-blue); font-size:12px; font-style:normal; font-weight:700; }.home-useful-all { display:inline-block; margin-top:20px; color:var(--home-blue)!important; font-size:13px; font-weight:700; }

@media (max-width: 980px) { .home-regions,.home-trust-grid,.home-product-catalog__grid,.home-useful-grid { grid-template-columns:repeat(2,1fr); } }

@media (max-width: 700px) {
    .home-header {
        position: relative;
    }

    .home-header-inner {
        flex-wrap: wrap;
        padding-top: 10px;
        padding-bottom: 10px;
    }

    .home-nav {
        display: flex;
        order: 3;
        width: 100%;
        overflow-x: auto;
        justify-content: flex-start;
        gap: 14px;
        padding-bottom: 3px;
    }

    .home-nav a {
        flex-shrink: 0;
        font-size: 12px;
    }

    .home-header-search { order: 2; }

    .home-header-actions {
        margin-left: auto;
        gap: 10px;
    }

    .home-header-login {
        font-size: 11px;
    }

    .home-catalog-link { display:block; }.home-catalog-link a { display:inline-block; margin-top:10px; }
    .home-regions,.home-trust-grid,.home-product-catalog__grid,.home-useful-grid { grid-template-columns:1fr; }
    .home-product-catalog__footer { display:block; }.home-product-catalog__footer .home-button { margin-top:13px; }
}

/* Основа главной страницы. Держим здесь, чтобы макет не зависел от CSS проекта. */
:root { --home-blue:#1967d2; --home-text:#263950; --home-muted:#64758b; --home-bg:#f5f8fc; }
* { box-sizing:border-box; }
body { margin:0; background:#fff; color:var(--home-text); font-family:"Golos Text",Arial,sans-serif; }
a { color:inherit; text-decoration:none; }
.home-container { width:min(1180px,calc(100% - 40px)); margin:0 auto; }
.home-header { z-index:20; border-bottom:1px solid #e2ebf4; background:rgba(255,255,255,.98); }
.home-header-inner { display:flex; align-items:center; min-height:68px; }
.home-nav { display:flex; flex:1; align-items:center; gap:18px; }
.home-nav a { color:#40536d; font-size:13px; font-weight:600; white-space:nowrap; }
.home-nav a:hover { color:var(--home-blue); }
.home-nav a.is-current {
    color: var(--home-blue);
    font-weight: 700;
}
.home-header-button,.home-button { display:inline-flex; align-items:center; justify-content:center; min-height:40px; padding:9px 15px; border:1px solid var(--home-blue); border-radius:8px; background:var(--home-blue); color:#fff!important; font-size:13px; font-weight:700; transition:.2s; }
.home-header-button:hover,.home-button:hover { background:#1257b7; border-color:#1257b7; }
.home-button-light { background:#fff; color:var(--home-blue)!important; }
.home-button-light:hover{color:#fff!important;}
.home-button-full { width:100%; }
.home-hero { padding:56px 0; background:radial-gradient(circle at 82% 20%,rgba(94,173,255,.22),transparent 27%),linear-gradient(135deg,#eef6ff,#f9fcff); }
.home-hero-grid { display:grid; grid-template-columns:minmax(0,1fr) 355px; gap:56px; align-items:center; }
.home-label { margin-bottom:11px; color:var(--home-blue); font-size:12px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.home-hero h1 { max-width:750px; margin:0; color:#17263d; font-size:clamp(34px,4vw,48px); }
.home-hero-text { max-width:670px; margin:18px 0 0; color:#53667f; font-size:16px; line-height:1.65; }
.home-hero-buttons { display:flex; flex-wrap:wrap; gap:11px; margin-top:26px; }
.home-statistics { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:38px; }
.home-statistic b,.home-statistic span { display:block; }.home-statistic b { color:#173b6d; font-size:21px; }.home-statistic span { margin-top:3px; color:#64758b; font-size:11px; line-height:1.35; }
.home-request-card { padding:25px; border:1px solid #c7dcf2; border-radius:15px; background:#fff; box-shadow:0 14px 36px rgba(53,95,142,.11); }
.home-request-card-title { margin-bottom:19px; color:#1f3550; font-size:20px; font-weight:800; }
.home-request-step { display:flex; gap:12px; margin:15px 0; }.home-request-step > span { width:25px; height:25px; display:grid; flex:0 0 25px; place-items:center; border-radius:50%; background:#e4f1ff; color:var(--home-blue); font-size:12px; font-weight:800; }.home-request-step b,.home-request-step small { display:block; }.home-request-step b { font-size:13px; }.home-request-step small { margin-top:3px; color:#6a7b90; font-size:11px; line-height:1.4; }.home-request-note { margin-top:12px; color:#79899b; font-size:11px; line-height:1.4; }
.home-section { padding:62px 0; }.home-section-white { background:#fff; }.home-section-directions,.home-section-process,.home-section-seo { background:var(--home-bg); }
.home-section-heading { display:flex; align-items:end; justify-content:space-between; gap:35px; margin-bottom:25px; }.home-section-heading h2 { max-width:670px; margin:0; color:#1d3048; font-size:30px; }.home-section-heading > p { max-width:400px; margin:0; color:var(--home-muted); font-size:13px; line-height:1.6; }
.home-directions { display:grid; grid-template-columns:repeat(3,1fr); gap:11px; }.home-direction { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:15px; border:1px solid #dce7f3; border-radius:10px; background:#fff; color:#30445e; font-size:13px; font-weight:700; }.home-direction small { color:#74869b; font-size:11px; font-weight:400; }.home-direction:hover { border-color:#9fc7f5; color:var(--home-blue); }
.home-factories { display:grid; grid-template-columns:repeat(3,1fr); gap:15px; }.home-factory-card { display:flex; flex-direction:column; background:#fff; transition:.2s; }.home-factory-card:hover { border-color:#9fc7f5; box-shadow:0 12px 26px rgba(45,98,157,.12); transform:translateY(-2px); }.home-factory-content { position:relative; z-index:2; flex:1; }.home-factory-city { position:relative; z-index:2; margin-top:4px; color:#73839a; font-size:12px; }
.home-section-bottom-link { display:flex; justify-content:center; margin-top:24px; color:var(--home-blue); font-size:13px; font-weight:700; }
.home-process { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }.home-process-item { padding:22px; border:1px solid #dce7f3; border-radius:12px; background:#fff; }.home-process-number { color:var(--home-blue); font-size:12px; font-weight:800; }.home-process-item h3 { margin:14px 0 7px; font-size:16px; }.home-process-item p { margin:0; color:var(--home-muted); font-size:12px; line-height:1.55; }
.home-reviews { display:grid; grid-template-columns:repeat(3,1fr); gap:15px; }.home-review-card { padding:20px; border:1px solid #dce7f3; border-radius:12px; background:#fff; }.home-review-quote { color:#e3a62f; }.home-review-text { color:#52667e; font-size:13px; line-height:1.6; }.home-review-author { color:#2c4059; font-size:12px; font-weight:700; }.home-reviews-all { display:inline-block; margin-top:21px; color:var(--home-blue); font-size:13px; font-weight:700; }
.home-seo-grid { display:grid; grid-template-columns:minmax(0,1fr) 310px; gap:45px; }.home-seo-content p { color:#55677e; font-size:14px; line-height:1.7; }.home-seo-aside { padding:20px; border-radius:12px; background:#173f78; color:#d9eaff; }.home-seo-aside b { display:block; color:#fff; }.home-seo-aside p { font-size:12px; line-height:1.55; }.home-final-cta { padding:50px 0; background:#173f78; }.home-final-cta-inner { display:flex; align-items:center; justify-content:space-between; gap:30px; }.home-final-cta h2 { max-width:680px; margin:0; color:#fff; font-size:30px; }.home-final-cta .home-button { background:#fff; border-color:#fff; color:#1967d2!important; }

@media (max-width:980px) { .home-hero-grid,.home-seo-grid { grid-template-columns:1fr; }.home-factories { grid-template-columns:repeat(2,1fr); }.home-statistics { max-width:620px; }.home-section-heading { align-items:flex-start; flex-direction:column; } }
@media (max-width:700px) { .home-container { width:min(100% - 30px,1180px); }.home-hero,.home-section { padding:40px 0; }.home-hero-grid { gap:28px; }.home-statistics { grid-template-columns:repeat(2,1fr); }.home-directions,.home-process,.home-reviews,.home-factories { grid-template-columns:1fr; }.home-final-cta-inner,.home-footer-inner { align-items:flex-start; flex-direction:column; }.home-final-cta h2 { font-size:26px; } }

/* Основа внутренних страниц: общая сетка, хлебные крошки и карточки. */
.factories-page,.factory-page,.product-page,.catalog-page { background:#fff; color:var(--home-text); font-family:"Golos Text",Arial,sans-serif; }
.factories-breadcrumbs { display:flex; flex-wrap:wrap; gap:7px; color:#74869b; font-size:12px; }.factories-breadcrumbs a { color:#527aa6; }.factories-breadcrumbs span { color:#9aaabd; }
.factories-hero { padding:30px 0 34px; background:radial-gradient(circle at 82% 25%,rgba(94,173,255,.22),transparent 28%),#edf5ff; }.factories-hero-content { max-width:780px; }.factories-hero h1 { margin:8px 0 12px; color:#17263d; font-size:clamp(32px,4vw,46px); line-height:1.14; }.factories-hero p { margin:0; color:#53667f; font-size:15px; line-height:1.65; }.factories-hero-count { display:inline-block; margin-top:17px; color:#60728c; font-size:13px; }.factories-hero-count b { color:var(--home-blue); font-size:20px; }
.factories-filter-bar { position:relative; z-index:6; }.factories-filter-summary { position:relative; }.factories-filter-panel { z-index:15; }

.factories-list-section { padding:48px 0 62px; background:var(--home-bg); }

/* Оформляет блок других городов региона. */
.factories-related-cities { padding:0 0 62px; background:var(--home-bg); }

/* Формирует белую карточку блока связанных городов. */
.factories-related-cities-card { padding:26px 28px; border:1px solid #d9e5f1; border-radius:18px; background:#fff; }

/* Оформляет заголовок блока связанных городов. */
.factories-related-cities-card h2 { margin:0 0 10px; color:#1d3048; font-size:28px; line-height:1.2; }

/* Оформляет поясняющий текст блока. */
.factories-related-cities-intro { max-width:850px; margin:0 0 20px; color:#617791; font-size:15px; line-height:1.6; }

/* Выстраивает SEO-ссылки по две колонки. */
.factories-related-cities-grid {
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    column-gap:42px;
    row-gap:0;
}

/* Оформляет SEO-ссылку как компактную строку. */
.factories-related-city {
    display:flex;
    align-items:center;
    gap:8px;
    min-height:46px;
    padding:10px 2px;
    border:0;
    border-bottom:1px solid #e3ebf4;
    border-radius:0;
    background:transparent;
    color:#1d5fba;
    text-decoration:none;
    transition:background .2s ease, color .2s ease;
}

/* Легко выделяет строку при наведении. */
.factories-related-city:hover {
    background:#f7fbff;
    color:#1555a5;
    transform:none;
}

/* Оформляет SEO-текст ссылок спокойным начертанием. */
.factories-related-city-name {
    font-size:13px;
    font-weight:400;
    line-height:1.35;
}

/* Оформляет количество фабрик. */
.factories-related-city-count {
    margin-left:auto;
    color:#71839a;
    font-size:12px;
    white-space:nowrap;
}

/* Оформляет стрелку ссылки. */
.factories-related-city-arrow {
    color:#1d5fba;
    font-size:16px;
    line-height:1;
}
/* Выделяет ссылку при наведении. */
.factories-related-city:hover { border-color:#2d74d6; background:#f0f7ff; transform:translateY(-1px); }



/* Оформляет количество фабрик. */
.factories-related-city-count { margin-left:auto; color:#71839a; font-size:13px; white-space:nowrap; }

/* Оформляет стрелку ссылки. */
.factories-related-city-arrow { color:#1d5fba; font-size:18px; line-height:1; }

/* Адаптирует сетку городов для планшетов. */
@media (max-width:900px) { .factories-related-cities-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); } }

/* Адаптирует блок городов для мобильных экранов. */
@media (max-width:600px) { .factories-related-cities { padding-bottom:42px; }.factories-related-cities-card { padding:21px 18px; }.factories-related-cities-card h2 { font-size:23px; }

    .factories-related-cities-grid { grid-template-columns:1fr; }

    .factories-related-city { min-height:44px; } }

.factories-list-heading { display:flex; align-items:end; justify-content:space-between; gap:22px; margin-bottom:22px; }.factories-list-heading h2 { margin:0; color:#1d3048; font-size:28px; }.factories-list-count { color:#71839a; font-size:13px; }

/* SEO-текст после списка фабрик. */
.factories-seo-content { max-width:900px; margin:38px auto 0; padding:28px 30px; border:1px solid #d9e5f1; border-radius:14px; background:#fff; color:#52667e; font-size:15px; line-height:1.7; }
.factories-seo-content h2 { margin:0 0 16px; color:#1d3048; font-size:26px; line-height:1.25; }
.factories-seo-content-body > :first-child { margin-top:0; }
.factories-seo-content-body > :last-child { margin-bottom:0; }
.factories-seo-content-body a { color:var(--home-blue); text-decoration:underline; }
@media (max-width:700px) { .factories-seo-content { margin-top:28px; padding:22px 20px; }.factories-seo-content h2 { font-size:23px; } }

.factories-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:15px; }.factory-card { display:flex; flex-direction:column; padding:16px; border:1px solid #d9e5f1; background:#fff; }.factory-card-content { flex:1; }.factory-card-city { margin-top:4px; color:#73839a; font-size:12px; }.factory-card-sections { display:flex; flex-wrap:wrap; gap:0; margin-top:10px; color:#5d6d84; font-size:12px; line-height:1.45; }.factory-card-sections span:not(:last-child)::after { margin:0 5px; color:#9ba8b7; content:"•"; }.factory-card-button { display:flex; align-items:center; justify-content:space-between; min-height:39px; margin-top:13px; padding:8px 12px; border:1px solid #c3d9ef; border-radius:8px; background:#fff; color:var(--home-blue); font-size:11px; font-weight:700; }.factory-card-button:hover { border-color:var(--home-blue); background:#fff; color:var(--home-blue); }

.factories-bottom-cta {position: relative;overflow: hidden;padding: 54px 0;
    background:
            radial-gradient(circle at 90% 18%, rgba(139, 204, 255, .35), transparent 28%),
            radial-gradient(circle at 72% 115%, rgba(79, 152, 237, .25), transparent 34%),
            linear-gradient(125deg, #246bb9, #4b9bea);
}
.factories-bottom-cta::before {position: absolute;top: -78px;right: 16%;width: 210px;height: 210px;border: 1px solid rgba(255, 255, 255, .16);border-radius: 50%;content: "";}
.factories-bottom-cta-inner {position: relative;display: flex;align-items: center;justify-content: space-between;gap: 42px;color: #fff;}
.factories-bottom-cta .home-label {color: #bfe0ff;}
.factories-bottom-cta h2 {max-width: 680px;margin: 0;color: #fff;font-size: clamp(25px, 3vw, 34px);font-weight: 700;line-height: 1.18;}
.factories-bottom-cta p {max-width: 610px;margin: 13px 0 0;color: #d8ebff;font-size: 14px;line-height: 1.65;}
.factories-bottom-cta .home-button {min-width: 210px;min-height: 48px;border-color: #fff;border-radius: 9px;background: #fff;color: #1967d2 !important;font-size: 13px;box-shadow: 0 8px 22px rgba(7, 39, 82, .22);}
.factories-bottom-cta .home-button:hover {border-color: #e7f3ff;background: #e7f3ff;color: #1257b7 !important;}
@media (max-width: 700px) {
    .factories-bottom-cta {padding: 42px 0;}
    .factories-bottom-cta-inner {align-items: flex-start;flex-direction: column;gap: 23px;}
    .factories-bottom-cta .home-button {width: 100%;}
}

.factory-product { display:flex; flex-direction:column; }.factory-product-gallery { flex:0 0 auto; }.factory-product-info { flex:1; }.factory-product-price { margin-top:auto; }.factory-profile-main { min-width:0; }.factory-profile-main h1 { font-weight:700; }.factory-badges a,.factory-badges span { text-decoration:none; }.factory-tabs { position:relative; z-index:3; }.factory-tabs a { text-decoration:none; }.factory-content-heading { align-items:end; }.factory-content-heading > div { min-width:0; }

/* Показывает на телефоне подсказку о горизонтальной прокрутке меню фабрики. */
.factory-tabs-scroll-hint {
    display: none;
}

@media (max-width:600px) {
    .factory-tabs-scroll-hint {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 7px;
        margin: 0;
        padding: 7px 15px 9px;
        border-bottom: 1px solid #dfeaf5;
        background: #fff;
        color: #7890a9;
        font-size: 11px;
        line-height: 1.35;
    }

    .factory-tabs-scroll-hint span {
        color: var(--home-blue);
        font-size: 15px;
        line-height: 1;
    }
}

.product-gallery { min-width:0; }.product-summary { min-width:0; }.product-links a:hover { border-color:#9fc7f5; background:#eef6ff; }.product-related .factory-products { margin-top:22px; }

@media (max-width:980px) {
    .factories-grid { grid-template-columns:repeat(2,1fr); }
    .factory-hero-grid { grid-template-columns:1fr; }
    .factory-request { min-height:210px; }
    .product-main-grid,.product-details-grid { grid-template-columns:1fr; }
    .product-factory { max-width:500px; }
}
@media (max-width:700px) {
    .factories-hero,.catalog-hero { padding:24px 0 29px; }
    .factories-list-section,.catalog-items-section { padding:38px 0 45px; }
    .factories-list-heading,.factory-content-heading { align-items:flex-start; flex-direction:column; }
    .factories-grid,.factory-products,.product-related-grid { grid-template-columns:1fr; }
    .factories-bottom-cta-inner { align-items:flex-start; flex-direction:column; }
    .factory-profile { flex-direction:column; }
    .factory-profile-logo { flex:0 0 auto; }
    .factory-content,.factory-information,.factory-reviews,.product-details,.product-related { padding:40px 0; }
    .factory-reviews-grid { grid-template-columns:1fr; }
    .product-gallery-main { height:min(420px,calc(100vw - 30px)); }
    .product-characteristics { grid-template-columns:1fr; }
    .product-characteristics div { border-right:0!important; }
    .product-links .home-container { align-items:flex-start; flex-direction:column; }
    .product-links .home-container > div:last-child { justify-content:flex-start; }
}


/* Каталог регионов и городов */
.regions-directory {display: grid;grid-template-columns: repeat(3, 1fr);gap: 15px;}
.regions-directory-card {padding: 20px;border: 1px solid #dce7f3;border-radius: 12px;background: #fff;}
.regions-directory-card h2 {margin: 0;font-size: 17px;line-height: 1.35;}
.regions-directory-card h2 a {color: #263950;}
.regions-directory-card h2 a:hover {color: var(--home-blue);}
.regions-directory-count {display: inline-block;margin-top: 9px;color: var(--home-blue);font-size: 12px;font-weight: 700;}
.regions-directory-cities {display: flex;flex-wrap: wrap;gap: 7px 12px;margin-top: 17px;padding-top: 14px;border-top: 1px solid #e3edf6;}
.regions-directory-cities a {color: #536b88;font-size: 12px;}
.regions-directory-cities a:hover {color: var(--home-blue);}
.regions-directory-cities span {color: #8797aa;font-size: 11px;}
.home-empty-block {padding: 24px;border: 1px solid #dce7f3;border-radius: 12px;background: #fff;color: #64758b;font-size: 14px;}
@media (max-width: 980px) {
    .regions-directory {grid-template-columns: repeat(2, 1fr);}
}
@media (max-width: 700px) {
    .regions-directory {grid-template-columns: 1fr;}
}

/* Страница 404 */
.error-page-content {min-height: calc(100vh - 220px);display: flex;align-items: center;padding: 72px 0;background: radial-gradient(circle at 82% 18%, rgba(94, 173, 255, .18), transparent 30%), #f5f8fc;}
.error-page-card {max-width: 760px;margin: 0 auto;padding: 42px;border: 1px solid #dce7f3;border-radius: 16px;background: #fff;text-align: center;box-shadow: 0 14px 36px rgba(53, 95, 142, .08);}
.error-page-code {color: #d9eafb;font-size: clamp(72px, 14vw, 140px);font-weight: 800;line-height: .9;}
.error-page-card h1 {margin: 20px 0 12px;color: #17263d;font-size: clamp(26px, 4vw, 36px);}
.error-page-card p {max-width: 510px;margin: 0 auto;color: #60728c;font-size: 15px;line-height: 1.65;}
.error-page-actions {display: flex;flex-wrap: wrap;justify-content: center;gap: 10px;margin-top: 28px;}
.error-page-links {display: flex;flex-wrap: wrap;justify-content: center;gap: 7px 14px;margin-top: 26px;color: #71839a;font-size: 12px;}
.error-page-links a {color: var(--home-blue);font-weight: 700;}

@media (max-width: 700px) {
    .error-page-content {min-height: auto;padding: 40px 0;}
    .error-page-card {padding: 30px 20px;}
}
.error-page {display: flex;flex-direction: column;min-height: 100vh;}
.error-page-content {flex: 1 0 auto;min-height: 0;}
.error-page .home-footer {margin-top: auto;}

/* общий футер */
.home-footer {padding: 48px 0 20px;background: radial-gradient(circle at 9% 2%, rgba(76, 154, 235, .2), transparent 25%), #12345e;color: #c9daed;}
.home-footer-main {display: grid;grid-template-columns: minmax(250px, 1.7fr) repeat(3, minmax(135px, 1fr));gap: 36px;padding-bottom: 38px;}
.home-footer-brand {max-width: 300px;}
.home-footer-logo {display: inline-block;color: #fff;font-family: "Montserrat", sans-serif;font-size: 23px;font-weight: 600;}
.home-footer-logo > span {color: inherit;}
.home-footer-brand p {margin: 14px 0 18px;color: #c1d5ea;font-size: 13px;line-height: 1.6;}
.home-footer-cta {display: inline-flex;padding: 9px 12px;border: 1px solid rgba(194, 224, 255, .45);border-radius: 7px;color: #fff !important;font-size: 12px;font-weight: 700;}
.home-footer-cta:hover {border-color: #fff;background: rgba(255, 255, 255, .1);}
.home-footer-column {display: flex;flex-direction: column;align-items: flex-start;gap: 9px;}
.home-footer-column b {margin-bottom: 4px;color: #fff;font-size: 13px;}
.home-footer-column a {color: #c9daed;font-size: 12px;line-height: 1.4;}
.home-footer-column a:hover, .home-footer-bottom a:hover {color: #fff;}
.home-footer-bottom {display: flex;align-items: center;justify-content: space-between;gap: 20px;padding-top: 18px;border-top: 1px solid rgba(197, 221, 246, .18);color: #a9c0d9;font-size: 11px;}
.home-footer-bottom a {color: #c8dcf2;white-space: nowrap;}
@media (max-width: 800px) {
    .home-footer-main {grid-template-columns: repeat(2, 1fr);}
    .home-footer-brand {grid-column: 1 / -1;}
}
@media (max-width: 600px) {
    .home-footer {padding-top: 38px;}
    .home-footer-main {grid-template-columns: 1fr;gap: 27px;}
    .home-footer-brand {grid-column: auto;}
    .home-footer-bottom {align-items: flex-start;flex-direction: column;}
}


/* FAQ на главной */
.home-faq-container {max-width: 920px;}
.home-faq {display: grid;gap: 10px;margin-top: 4px;}
.home-faq-item {overflow: hidden;border: 1px solid #dce7f3;border-radius: 11px;background: #fff;transition: border-color .2s, box-shadow .2s;}
.home-faq-item:hover, .home-faq-item[open] {border-color: #a7caee;box-shadow: 0 8px 21px rgba(45, 88, 137, .07);}
.home-faq-item summary {position: relative;display: flex;align-items: center;min-height: 60px;padding: 15px 54px 15px 19px;color: #263950;font-size: 15px;font-weight: 700;line-height: 1.4;cursor: pointer;list-style: none;}
.home-faq-item summary::-webkit-details-marker {display: none;}
.home-faq-item summary::after {position: absolute;top: 50%;right: 19px;width: 9px;height: 9px;border-right: 2px solid #3775b5;border-bottom: 2px solid #3775b5;content: "";transform: translateY(-65%) rotate(45deg);transition: transform .2s;}
.home-faq-item[open] summary::after {transform: translateY(-30%) rotate(225deg);}
.home-faq-item > div {padding: 0 54px 18px 19px;color: #5c6f87;font-size: 13px;line-height: 1.65;}
.home-faq-item[open] summary {color: #1967d2;}
@media (max-width: 600px) {
    .home-faq-item summary {min-height: 56px;padding: 14px 47px 14px 15px;font-size: 14px;}
    .home-faq-item summary::after {right: 17px;}
    .home-faq-item > div {padding: 0 15px 16px;font-size: 12px;}
}

/* SEO-блок «для оптовых покупателей» */
.home-section-seo {position: relative;overflow: hidden;background: radial-gradient(circle at 87% 18%, rgba(110, 184, 255, .18), transparent 27%), linear-gradient(145deg, #f3f8fe, #fff);}
.home-seo-grid {grid-template-columns: minmax(0, 1fr) 355px;gap: 56px;align-items: start;}
.home-seo-content {max-width: 770px;}
.home-seo-content h2 {max-width: 660px;margin: 0;color: #1c314b;font-size: clamp(27px, 3vw, 34px);line-height: 1.2;}
.home-seo-content p {max-width: 730px;margin: 16px 0 0;color: #536981;font-size: 14px;line-height: 1.75;}
.home-seo-content p:first-of-type {margin-top: 21px;color: #405873;font-size: 15px;}
.home-seo-aside {position: relative;padding: 25px;border: 1px solid #c9dff4;border-radius: 14px;background: radial-gradient(circle at 100% 0, rgba(111, 188, 255, .25), transparent 32%), linear-gradient(145deg, #1765c9, #3989dc);box-shadow: 0 12px 28px rgba(34, 94, 159, .15);}
.home-seo-aside::before {display: block;margin-bottom: 14px;color: #bcdfff;font-size: 11px;font-weight: 800;letter-spacing: .08em;content: "ДЛЯ БИЗНЕСА";}
.home-seo-aside h3 {margin: 0;color: #fff;font-size: 20px;line-height: 1.25;}
.home-seo-aside ul {display: grid;gap: 10px;margin: 20px 0 22px;padding: 0;list-style: none;}
.home-seo-aside li {position: relative;padding-left: 20px;color: #e3f1ff;font-size: 13px;line-height: 1.45;}
.home-seo-aside li::before {position: absolute;top: .48em;left: 0;width: 8px;height: 8px;border: 2px solid #bfe4ff;border-radius: 50%;content: "";}
.home-seo-link {display: inline-flex;align-items: center;min-height: 38px;padding: 8px 12px;border: 1px solid rgba(255, 255, 255, .6);border-radius: 7px;color: #fff !important;font-size: 12px;font-weight: 700;}
.home-seo-link:hover {border-color: #fff;background: rgba(255, 255, 255, .12);}
@media (max-width: 980px) {
    .home-seo-grid {grid-template-columns: 1fr;gap: 25px;}
    .home-seo-aside {max-width: 520px;}
}
@media (max-width: 600px) {
    .home-seo-aside {padding: 21px;}
}

/* Блок «Данные каталога» */
.home-catalog-update {padding: 20px 0;background: #edf6ff;}
.home-catalog-update-inner {display: flex;align-items: center;gap: 14px;padding: 16px 20px;border: 1px solid #cde2f5;border-radius: 11px;background: #fff;}
.home-catalog-update-icon {display: grid;flex: 0 0 32px;width: 32px;height: 32px;place-items: center;border-radius: 50%;background: #dff2e9;color: #248365;font-size: 17px;font-weight: 800;line-height: 1;}
.home-catalog-update-content {min-width: 0;}
.home-catalog-update-title {color: #28415d;font-size: 13px;font-weight: 800;}
.home-catalog-update-text {margin-top: 3px;color: #64758b;font-size: 12px;line-height: 1.45;}
@media (max-width: 600px) {
    .home-catalog-update-inner {align-items: flex-start;padding: 15px;}
    .home-catalog-update-icon {margin-top: 1px;}
}

/* Единое поведение карточек фабрик на главной и в каталоге */
.home-factory-card {border: 1px solid #d9e5f1;}
.home-factory-card:hover {border-color: #9fc7f5;box-shadow: 0 12px 26px rgba(45, 98, 157, .12);transform: translateY(-2px);}
.home-factory-card .home-factory-logo, .home-factory-card .home-factory-content {pointer-events: none;}
.home-factory-card .home-factory-link {cursor: pointer;}
.home-factory-card .home-factory-button {transition: border-color .2s, background .2s, color .2s;}
.home-factory-card .home-factory-button:hover {border-color: var(--home-blue);background: #fff;color: var(--home-blue);}
.home-factory-card:has(.home-factory-link:hover) {border-color: #9fc7f5;box-shadow: 0 12px 26px rgba(45, 98, 157, .12);transform: translateY(-2px);}

/* Расширенный фильтр фабрик */
.factories-filter-panel {display: grid;gap: 20px;}
.factories-filter-group > strong, .factories-filter-location-column > strong {display: block;margin-bottom: 10px;color: #2a405d;font-size: 13px;font-weight: 800;}
.factories-filter-categories {padding-top: 19px;border-top: 1px solid #e2edf7;}
.factories-filter-location {display: grid;grid-template-columns: repeat(2, minmax(0, 1fr));gap: 24px;padding-top: 19px;border-top: 1px solid #e2edf7;}
.factories-filter-location-column {min-width: 0;}
.factories-filter-location-links {display: grid;gap: 4px;}
.factories-filter-location-links a {display: grid;grid-template-columns: minmax(0, 1fr) auto;align-items: baseline;gap: 8px;padding: 5px 0;color: #405b78;font-size: 12px;line-height: 1.35;}
.factories-filter-location-links a:hover {color: var(--home-blue);}
.factories-filter-location-links small {grid-column: 1;margin-top: -4px;color: #8294a9;font-size: 10px;}
.factories-filter-location-links span {grid-column: 2;grid-row: 1 / span 2;color: #8395a9;font-size: 11px;}
.factories-filter-all-regions {display: inline-block;margin-top: 11px;color: var(--home-blue);font-size: 12px;font-weight: 700;}
@media (max-width: 600px) {
    .factories-filter-location {grid-template-columns: 1fr;gap: 19px;}
}
.factories-filter-category-hint {margin-top: 13px;color: #71839a;font-size: 12px;line-height: 1.45;}

/* ссылки разделов и категорий в фильтре */
.factories-filter-group .factories-section-links-list {display: grid;grid-template-columns: repeat(2, minmax(0, 1fr));gap: 7px;}
.factories-filter-group .factories-section-link {display: flex;align-items: center;justify-content: space-between;gap: 9px;min-height: 38px;padding: 8px 10px;border: 1px solid #dbe7f2;border-radius: 8px;background: #f9fbfe;color: #405873;font-size: 12px;font-weight: 600;line-height: 1.3;transition: .18s;}
.factories-filter-group .factories-section-link:hover {border-color: #9fc7f5;background: #eef6ff;color: var(--home-blue);}
.factories-filter-group .factories-section-link small {flex: 0 0 auto;min-width: 22px;padding: 2px 5px;border-radius: 5px;background: #e6eef7;color: #71839a;font-size: 10px;font-weight: 700;text-align: center;}
.factories-filter-group .factories-section-link-active {border-color: #82b8ec;background: #e6f2ff;color: #1764bd;box-shadow: inset 0 0 0 1px rgba(65, 142, 219, .08);}
.factories-filter-group .factories-section-link-active small {background: #cde6ff;color: #1764bd;}
/* Категории — второй, более лёгкий уровень фильтра */
.factories-filter-categories {position: relative;padding: 17px;border: 1px solid #dbe8f4;border-radius: 10px;background: #f7fbff;}
.factories-filter-categories::before {position: absolute;top: -1px;left: 17px;width: 58px;height: 2px;border-radius: 0 0 2px 2px;background: var(--home-blue);content: "";}
.factories-filter-categories > strong {color: #315778;}
@media (max-width: 600px) {  .factories-filter-group .factories-section-links-list {grid-template-columns: 1fr;}
}

/* Карточка запроса в первом экране списка фабрик */
.factories-hero-grid {display: grid;grid-template-columns: minmax(0, 1fr) 300px;gap: 32px;align-items: stretch;}
.factories-price-card {display: flex;flex-direction: column;padding: 22px;border: 1px solid #bed8f2;border-radius: 14px;background: #fff;box-shadow: 0 8px 24px rgba(45, 91, 143, .1);}
.factories-price-card > b {color: #243b58;font-size: 18px;line-height: 1.3;}
.factories-price-card > p {margin: 10px 0 18px;color: #61748b;font-size: 13px;line-height: 1.55;}
.factories-price-card .home-button {width: 100%;min-height: 42px;margin-top: auto;}
.factories-price-card small {margin-top: 11px;color: #8191a4;font-size: 11px;line-height: 1.45;}
@media (max-width: 800px) {
    .factories-hero-grid {grid-template-columns: 1fr;gap: 20px;}
    .factories-price-card {max-width: 520px;}
}

/* Постраничная навигация */
.factories-pagination {display: flex;justify-content: center;margin-top: 34px;}
.catalog-pagination .pagination {display: flex;flex-wrap: wrap;justify-content: center;gap: 7px;margin: 0;padding: 13px;border: 1px solid #dce8f4;border-radius: 13px;background: #fff;box-shadow: 0 7px 20px rgba(48, 79, 113, .06);list-style: none;}
.catalog-pagination .page-link {display: inline-flex;align-items: center;justify-content: center;min-width: 38px;height: 38px;padding: 0 11px;border: 1px solid #d5e4f2;border-radius: 8px;background: #fff;color: #42627f;font-size: 13px;font-weight: 700;text-decoration: none;transition: .18s;}
.catalog-pagination a.page-link:hover {border-color: #9fc7f5;background: #edf6ff;color: var(--home-blue);}
.catalog-pagination .page-item.active .page-link {border-color: var(--home-blue);background: var(--home-blue);color: #fff;box-shadow: 0 5px 12px rgba(25, 103, 210, .2);}
.catalog-pagination .page-item-prev .page-link, .catalog-pagination .page-item-next .page-link {gap: 7px;min-width: 94px;color: var(--home-blue);}
.catalog-pagination .page-item-prev .page-link span, .catalog-pagination .page-item-next .page-link span {font-size: 16px;line-height: 1;}
@media (max-width: 600px) {
    .catalog-pagination .pagination {gap: 5px;padding: 9px;}
    .catalog-pagination .page-item-edge {display: none;}
    .catalog-pagination .page-link {min-width: 35px;height: 35px;font-size: 12px;}
    .catalog-pagination .page-item-prev .page-link, .catalog-pagination .page-item-next .page-link
    {min-width: auto;
        padding: 0 10px;
        font-size: 12px;}
    .catalog-pagination .page-item-prev .page-link span, .catalog-pagination .page-item-next .page-link span {font-size: 16px;}
}

.catalog-hero-grid {display: grid;grid-template-columns: minmax(0, 1fr) 300px;gap: 32px;align-items: stretch;}
.catalog-hero-content {min-width: 0;}
.catalog-hero .factories-price-card {min-height: 100%;}
@media (max-width: 800px) {
    .catalog-hero-grid {grid-template-columns: 1fr;gap: 20px;}
    .catalog-hero .factories-price-card {max-width: 520px;}
}

.catalog-category-search {
    margin-top: 19px;
    padding-top: 18px;
    border-top: 1px solid #e2edf7;
}

.catalog-category-search label {
    display: block;
    margin-bottom: 9px;
    color: #315778;
    font-size: 13px;
    font-weight: 700;
}

.catalog-category-search-field {
    position: relative;
    max-width: 520px;
}

.catalog-category-search-field > span {
    position: absolute;
    top: 50%;
    left: 12px;
    color: #6691bd;
    font-size: 18px;
    line-height: 1;
    transform: translateY(-50%);
    pointer-events: none;
}

.catalog-category-search-field input {
    width: 100%;
    height: 40px;
    padding: 0 12px 0 35px;
    border: 1px solid #cbddeb;
    border-radius: 8px;
    outline: 0;
    background: #fff;
    color: #40536d;
    font: 13px "Golos Text", Arial, sans-serif;
}

.catalog-category-search-field input:focus {
    border-color: var(--home-blue);
    box-shadow: 0 0 0 3px rgba(25, 103, 210, .1);
}

.catalog-category-search-field {
    z-index: 2;
}

.catalog-categories-dropdown {
    position: absolute;
    z-index: 20;
    top: calc(100% + 6px);
    right: 0;
    left: 0;
    display: none;
    max-height: 255px;
    overflow-y: auto;
    padding: 6px;
    border: 1px solid #cbddeb;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 12px 26px rgba(45, 75, 108, .16);
}

.catalog-categories-dropdown.is-open {
    display: block;
}

.catalog-categories-dropdown a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 9px 10px;
    border-radius: 6px;
    color: #405873;
    font-size: 12px;
    line-height: 1.35;
}

.catalog-categories-dropdown a:hover {
    background: #edf6ff;
    color: var(--home-blue);
}

.catalog-categories-dropdown small {
    flex: 0 0 auto;
    color: #8294a9;
    font-size: 10px;
}

.catalog-categories-empty {
    padding: 11px 10px;
    color: #71839a;
    font-size: 12px;
}

.catalog-locations-empty {
    padding: 11px 10px;
    color: #71839a;
    font-size: 12px;
}

.catalog-location-reset {
    display: inline-block;
    margin-top: 9px;
    color: #557da8;
    font-size: 11px;
    font-weight: 700;
}

.catalog-location-reset:hover {
    color: var(--home-blue);
}

.catalog-category-search-field:has(
    .catalog-categories-dropdown.is-open
) {
    z-index: 5;
}

.catalog-categories-dropdown a.is-current {
    background: #e8f3ff;
    color: var(--home-blue);
    font-weight: 700;
}

.catalog-directions {
    padding: 54px 0 60px;
    border-top: 1px solid #e2ebf4;
    background: #fff;
}

.catalog-directions-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 30px;
    margin-bottom: 24px;
}

.catalog-directions-head h2 {
    margin: 6px 0 0;
    color: #17263d;
    font-size: 27px;
    line-height: 1.22;
}

.catalog-directions-head p {
    max-width: 440px;
    margin: 0;
    color: #667a91;
    font-size: 13px;
    line-height: 1.6;
}

.catalog-directions-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.catalog-direction-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 64px;
    padding: 14px 16px;
    border: 1px solid #d9e6f2;
    border-radius: 11px;
    background: #f9fbfe;
    color: #244e7a;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.35;
    text-decoration: none;
    transition: border-color .2s, box-shadow .2s, background .2s, transform .2s;
}

.catalog-direction-card:hover {
    border-color: #9fc7f5;
    background: #fff;
    box-shadow: 0 9px 20px rgba(45, 98, 157, .10);
    transform: translateY(-2px);
}

.catalog-direction-card svg {
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
    margin-left: 12px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
}

@media (max-width: 800px) {
    .catalog-directions-head {
        display: block;
    }

    .catalog-directions-head p {
        margin-top: 12px;
    }

    .catalog-directions-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 520px) {
    .catalog-directions {
        padding: 38px 0;
    }

    .catalog-directions-head h2 {
        font-size: 23px;
    }

    .catalog-directions-grid {
        grid-template-columns: 1fr;
    }
}

.home-mobile-menu {
    display: none;
}

@media (max-width: 700px) {
    .home-header {
        position: sticky;
        top: 0;
    }

    .home-header-inner {
        min-height: 62px;
        flex-wrap: nowrap;
        padding-top: 0;
        padding-bottom: 0;
    }

    .home-logo {
        font-size: 22px;
    }

    .home-header-inner > .home-nav,
    .home-header-inner > .home-header-search,
    .home-header-inner > .home-header-actions {
        display: none;
    }

    .home-mobile-menu {
        display: block;
        margin-left: auto;
    }

    .home-mobile-menu summary {
        display: grid;
        width: 42px;
        height: 42px;
        padding: 11px 10px;
        cursor: pointer;
        border: 1px solid #c9d9e9;
        border-radius: 8px;
        background: #f7fbff;
        list-style: none;
        transition: background .2s, border-color .2s;
    }

    .home-mobile-menu summary::-webkit-details-marker {
        display: none;
    }

    .home-mobile-menu summary span {
        display: block;
        width: 20px;
        height: 2px;
        margin: auto;
        border-radius: 2px;
        background: var(--home-blue);
        transition: transform .2s, opacity .2s;
    }

    .home-mobile-menu[open] summary {
        border-color: #8db8e4;
        background: #e7f2fd;
    }

    .home-mobile-menu[open] summary span:first-child {
        transform: translateY(8px) rotate(45deg);
    }

    .home-mobile-menu[open] summary span:nth-child(2) {
        opacity: 0;
    }

    .home-mobile-menu[open] summary span:last-child {
        transform: translateY(-8px) rotate(-45deg);
    }

    .home-mobile-menu-panel {
        position: absolute;
        z-index: 30;
        top: calc(100% + 8px);
        right: 20px;
        left: 20px;
        display: grid;
        overflow: hidden;
        border: 1px solid #cedeed;
        border-radius: 12px;
        background: #fff;
        box-shadow: 0 14px 34px rgba(38, 72, 112, .17);
    }

    .home-mobile-menu-panel > a {
        min-height: 48px;
        padding: 14px 16px;
        border-bottom: 1px solid #e6eef6;
        color: #30455e;
        font-size: 14px;
        font-weight: 600;
    }

    .home-mobile-menu-panel > a.is-current {
        color: var(--home-blue);
        background: #f0f7ff;
    }

    .home-mobile-menu-search {
        color: var(--home-blue) !important;
    }

    .home-mobile-menu-actions {
        display: grid;
        gap: 10px;
        padding: 14px 16px 16px;
        background: #f8fbfe;
    }

    .home-mobile-menu-actions > a.home-mobile-menu-factory-link,
    .home-mobile-menu-actions > a.home-mobile-menu-login-link {
        color: #41566e;
        font-size: 14px;
        font-weight: 700;
        text-align: center;
        margin-bottom: 6px;
    }

    .home-mobile-menu-actions .home-header-button {
        width: 100%;
    }

    /* Скрывает десктопное меню для фабрик на мобильных экранах. */
    .home-header-inner > .home-factory-menu {
        display: none;
    }

    /* Оформляет ссылку возможностей для фабрик в стиле мобильного меню. */
    .home-mobile-menu-factory-link {
        color: var(--home-blue) !important;
    }

}


.factory-about-article,
.factory-media-section {
    padding: 28px;
    border: 1px solid #dce7f3;
    border-radius: 14px;
    background: #fff;
}

.factory-about-article + .factory-media-section,
.factory-media-section + .factory-media-section {
    margin-top: 18px;
}

.factory-about-article h2,
.factory-section-heading h2 {
    margin: 6px 0 0;
    color: #17263d;
    font-size: 28px;
    line-height: 1.25;
}

.factory-about-text {
    max-width: 880px;
    margin-top: 18px;
    color: #53667f;
    font-size: 15px;
    line-height: 1.75;
}

.factory-empty-text {
    margin: 18px 0 0;
    color: #60728c;
}

.factory-section-heading {
    margin-bottom: 18px;
}

.factory-media-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
}

.factory-media-card {
    display: block;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    border: 1px solid #dce7f3;
    border-radius: 10px;
    background: #f8fbff;
}

.factory-media-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .2s ease;
}

.factory-media-card:hover img {
    transform: scale(1.03);
}

.factory-certificates-grid .factory-media-card {
    aspect-ratio: 3 / 4;
}

.factory-certificates-grid .factory-media-card img {
    object-fit: contain;
}

.factory-video-list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.factory-video-link {
    padding: 11px 14px;
    border: 1px solid #bfd8f3;
    border-radius: 8px;
    background: #f8fbff;
    color: var(--home-blue);
    font-size: 13px;
    font-weight: 700;
}

.factory-video-link:hover {
    border-color: #8ebdf0;
    background: #eef6ff;
}

@media (max-width: 600px) {
    .factory-about-article,
    .factory-media-section {
        padding: 20px;
    }

    .factory-media-grid {
        grid-template-columns: 1fr;
    }

    .factory-about-article h2,
    .factory-section-heading h2 {
        font-size: 24px;
    }
}


.factory-contacts-page {
    padding: 54px 0;
    background: #f5f8fc;
}

.factory-page-heading {
    margin-bottom: 22px;
}

.factory-page-heading h2 {
    margin: 6px 0 0;
    color: #17263d;
    font-size: 30px;
    line-height: 1.2;
}

.factory-contacts-page-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 330px;
    gap: 18px;
}

.factory-contact-card,
.factory-map-card {
    padding: 24px;
    border: 1px solid #dce7f3;
    border-radius: 14px;
    background: #fff;
}

.factory-contact-card h3 {
    margin: 0;
    color: #17263d;
    font-size: 18px;
}

.factory-contact-list {
    margin-top: 17px;
}

.factory-contact-list div {
    display: grid;
    gap: 4px;
    padding: 13px 0;
    border-top: 1px solid #e4edf6;
}

.factory-contact-list span,
.factory-map-card > span,
.factory-requisites dt {
    color: #778aa1;
    font-size: 11px;
}

.factory-contact-list a,
.factory-contact-list b,
.factory-contact-list small,
.factory-requisites dd {
    color: #30445f;
    font-size: 14px;
}

.factory-contact-list a {
    color: var(--home-blue);
    font-weight: 700;
}

.factory-contact-list small {
    color: #708197;
    font-size: 12px;
}

.factory-map-card {
    display: flex;
    flex-direction: column;
    justify-content: center;
    background: #1967d2;
    color: #fff;
}

.factory-map-card > span {
    color: #cfe4fc;
}

.factory-map-card > b {
    margin-top: 8px;
    font-size: 16px;
    line-height: 1.5;
}

.factory-map-card a {
    margin-top: 20px;
    padding: 11px 13px;
    border-radius: 8px;
    background: #fff;
    color: #1967d2;
    font-size: 13px;
    font-weight: 700;
    text-align: center;
}

.factory-contact-extra {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 18px;
    margin-top: 18px;
}

.factory-external-links {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 16px;
}

.factory-external-links a {
    padding: 9px 11px;
    border: 1px solid #c9ddf0;
    border-radius: 7px;
    background: #f8fbff;
    color: var(--home-blue);
    font-size: 12px;
    font-weight: 700;
}

.factory-warehouses,
.factory-requisites {
    margin-top: 18px;
}

.factory-warehouses h3,
.factory-requisites h3 {
    margin-top: 6px;
}

.factory-warehouses ul {
    display: grid;
    gap: 9px;
    margin: 18px 0 0;
    padding-left: 19px;
    color: #53667f;
    font-size: 14px;
    line-height: 1.55;
}

.factory-requisites dl {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 26px;
    margin: 18px 0 0;
}

.factory-requisites dl div {
    border-top: 1px solid #e4edf6;
    padding-top: 10px;
}

.factory-requisites dt,
.factory-requisites dd {
    margin: 0;
}

.factory-requisites dd {
    margin-top: 4px;
    line-height: 1.5;
}

@media (max-width: 900px) {
    .factory-contacts-page-grid,
    .factory-contact-extra {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    .factory-contacts-page {
        padding: 40px 0;
    }

    .factory-page-heading h2 {
        font-size: 25px;
    }

    .factory-contact-card,
    .factory-map-card {
        padding: 20px;
    }

    .factory-requisites dl {
        grid-template-columns: 1fr;
    }
}


.factory-cooperation-page {
    padding: 54px 0;
    background: #f5f8fc;
}

.factory-cooperation-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 18px;
}

.factory-cooperation-card,
.factory-cooperation-details {
    padding: 24px;
    border: 1px solid #dce7f3;
    border-radius: 14px;
    background: #fff;
}

.factory-cooperation-card > span {
    color: #778aa1;
    font-size: 11px;
}

.factory-cooperation-card h3,
.factory-cooperation-details h3 {
    margin: 7px 0 0;
    color: #17263d;
    font-size: 19px;
    line-height: 1.35;
}

.factory-cooperation-list {
    display: grid;
    gap: 9px;
    margin: 17px 0 0;
    padding-left: 19px;
    color: #53667f;
    font-size: 14px;
    line-height: 1.5;
}

.factory-cooperation-note {
    margin: 14px 0 0;
    color: #53667f;
    font-size: 14px;
    line-height: 1.65;
}

.factory-cooperation-details {
    margin-top: 18px;
}

.factory-conditions-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
    margin-top: 18px;
}

.factory-condition-group {
    padding: 17px;
    border: 1px solid #e0ebf5;
    border-radius: 10px;
    background: #f8fbff;
}

.factory-condition-group h4 {
    margin: 0;
    color: #30445f;
    font-size: 14px;
}

.factory-condition-group ul {
    display: grid;
    gap: 10px;
    margin: 14px 0 0;
    padding: 0;
    list-style: none;
}

.factory-condition-group li {
    display: grid;
    gap: 3px;
    color: #60728c;
    font-size: 13px;
    line-height: 1.5;
}

/* Галочка условия остаётся внутри карточки и выравнивается по тексту. */
.factory-condition-group li::before {
    position: absolute;
    left: 0;
    content: "✓";
    color: #267b45;
    font-weight: 700;
}

.factory-condition-group li {
    position: relative;
    padding-left: 16px;
}

.factory-condition-group b {
    color: #30445f;
}

.factory-marketplace-text {
    margin-top: 14px;
    padding: 14px;
    border-left: 3px solid #6aa7e4;
    background: #f8fbff;
    color: #53667f;
    font-size: 14px;
    line-height: 1.65;
}

.factory-cooperation-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-top: 18px;
    padding: 28px;
    border-radius: 14px;
    background: #1967d2;
    color: #fff;
}

.factory-cooperation-cta h3 {
    margin: 6px 0 0;
    font-size: 22px;
}

.factory-cooperation-cta p {
    max-width: 650px;
    margin: 10px 0 0;
    color: #dcecff;
    font-size: 14px;
    line-height: 1.6;
}

.factory-cooperation-cta .home-label {
    color: #cfe4fc;
}

.factory-cooperation-cta .home-button {
    flex-shrink: 0;
}

/* Группа действий в блоке запроса прайс-листа фабрики. */
.factory-cooperation-actions {
    display: flex;
    flex-shrink: 0;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
}

/* Ссылка обратного звонка в блоке фабрики. */
.factory-callback-link {
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

/* Состояние ссылки обратного звонка при наведении. */
.factory-callback-link:hover {
    color: #dcecff;
}

@media (max-width: 700px) {
    .factory-cooperation-grid,
    .factory-conditions-grid {
        grid-template-columns: 1fr;
    }

    .factory-cooperation-cta {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 600px) {
    .factory-cooperation-page {
        padding: 40px 0;
    }

    .factory-cooperation-card,
    .factory-cooperation-details,
    .factory-cooperation-cta {
        padding: 20px;
    }

    .factory-cooperation-cta h3 {
        font-size: 20px;
    }
}

/* Страница отзывов фабрики. */
.factory-reviews-content {
    padding: 52px 0 62px;
    background: #f5f8fc;
}

.factory-reviews-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 350px;
    gap: 22px;
    align-items: start;
}

.factory-rating-card,
.factory-review-card,
.factory-review-form-card,
.factory-pending-review,
.factory-empty-review {
    border: 1px solid #dce7f3;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 4px 16px rgba(48, 79, 113, .05);
}

.factory-rating-card {
    padding: 24px;
}

.factory-rating-heading,
.factory-review-card-head {
    display: flex;
    justify-content: space-between;
    gap: 18px;
}

.factory-rating-heading h2,
.factory-reviews-list-heading h2,
.factory-review-form-card h2 {
    margin: 6px 0 0;
    color: #17263d;
    font-size: 24px;
    line-height: 1.25;
}

.factory-rating-heading p,
.factory-review-form-card > p,
.factory-pending-review > p {
    margin: 10px 0 0;
    color: #60728c;
    font-size: 13px;
    line-height: 1.6;
}

.factory-rating-heading p a {
    margin-left: 6px;
    color: var(--home-blue);
    font-weight: 700;
}

.factory-rating-total {
    flex: 0 0 auto;
    min-width: 100px;
    padding: 12px;
    border-radius: 10px;
    background: #edf5ff;
    text-align: center;
}

.factory-rating-total b,
.factory-rating-total span {
    display: block;
}

.factory-rating-total b {
    color: #17263d;
    font-size: 22px;
}

.factory-rating-total span {
    margin-top: 3px;
    color: #637894;
    font-size: 11px;
}

.factory-rating-bars {
    display: grid;
    gap: 9px;
    margin-top: 22px;
}

.factory-rating-bars a {
    display: grid;
    grid-template-columns: 35px minmax(0, 1fr) 24px;
    gap: 10px;
    align-items: center;
    color: #52667e;
    font-size: 12px;
}

.factory-rating-bars i {
    display: block;
    overflow: hidden;
    height: 7px;
    border-radius: 99px;
    background: #e5edf6;
}

.factory-rating-bars i b {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: #e8ad36;
}

.factory-rating-bars em {
    color: #788ba1;
    font-size: 11px;
    font-style: normal;
    text-align: right;
}

.factory-empty-text {
    margin: 18px 0 0;
    color: #60728c;
    font-size: 14px;
}

.factory-pending-review {
    margin-top: 16px;
    padding: 20px;
    border-color: #b9d7f4;
    background: #f4f9ff;
}

.factory-pending-review > b {
    color: #26486a;
    font-size: 14px;
}

.factory-pending-review .factory-review-card {
    margin-top: 16px;
}

.factory-reviews-list {
    margin-top: 28px;
}

.factory-reviews-list-heading {
    margin-bottom: 14px;
}

.factory-review-card {
    padding: 20px;
}

.factory-review-card + .factory-review-card {
    margin-top: 13px;
}

.factory-review-card-head b,
.factory-review-card-head span,
.factory-review-card-head small {
    display: block;
}

.factory-review-card-head b {
    color: #263b56;
    font-size: 14px;
}

.factory-review-card-head span,
.factory-review-card-head small {
    margin-top: 3px;
    color: #7d8fa4;
    font-size: 12px;
}

.factory-review-card > p {
    margin: 14px 0 0;
    color: #4e6077;
    font-size: 14px;
    line-height: 1.65;
}

.factory-review-stars {
    flex: 0 0 auto;
    white-space: nowrap;
    color: #e8ad36;
}

.factory-review-images {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 15px;
}

.factory-review-images a,
#reviewImagesList > div {
    position: relative;
    display: block;
    overflow: hidden;
    width: 82px;
    height: 82px;
    border: 1px solid #dbe7f2;
    border-radius: 9px;
    background: #f7faff;
}

.factory-review-images img,
#reviewImagesList img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.factory-review-answer {
    margin-top: 17px;
    padding: 14px 16px;
    border-left: 3px solid #5c9de0;
    border-radius: 0 8px 8px 0;
    background: #f5f9fd;
}

.factory-review-answer b {
    color: #294767;
    font-size: 12px;
}

.factory-review-answer p {
    margin: 7px 0 0;
    color: #52667e;
    font-size: 13px;
    line-height: 1.6;
}

.factory-empty-review {
    padding: 20px;
    color: #60728c;
    font-size: 14px;
}

.factory-review-form-card {
    position: sticky;
    top: 18px;
    padding: 23px;
}

.factory-review-form-card > p {
    margin-bottom: 19px;
}

.factory-review-score {
    margin: 0 0 17px;
    padding: 0;
    border: 0;
}

.factory-review-score legend,
.factory-review-field > span,
.factory-review-upload > label {
    display: block;
    margin-bottom: 7px;
    color: #344b67;
    font-size: 12px;
    font-weight: 700;
}

.factory-review-score > div {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.factory-review-score label {
    position: relative;
    cursor: pointer;
}

.factory-review-score input {
    position: absolute;
    opacity: 0;
}

.factory-review-score span {
    display: block;
    padding: 7px 8px;
    border: 1px solid #d5e3f1;
    border-radius: 7px;
    color: #9b761c;
    font-size: 12px;
    transition: .18s ease;
}

.factory-review-score input:checked + span {
    border-color: #e3b548;
    background: #fff7df;
    color: #9a6d00;
}

.factory-review-field {
    display: block;
    margin-top: 14px;
}

.factory-review-field input,
.factory-review-field textarea {
    box-sizing: border-box;
    width: 100%;
    border: 1px solid #cfddeb;
    border-radius: 8px;
    outline: none;
    background: #fff;
    color: #263b56;
    font: inherit;
    font-size: 13px;
    transition: border-color .18s, box-shadow .18s;
}

.factory-review-field input {
    height: 40px;
    padding: 0 11px;
}

.factory-review-field textarea {
    min-height: 126px;
    padding: 11px;
    resize: vertical;
}

.factory-review-field input:focus,
.factory-review-field textarea:focus {
    border-color: #6da8e2;
    box-shadow: 0 0 0 3px rgba(75, 146, 219, .13);
}

.factory-review-upload {
    margin-top: 16px;
}

.factory-review-upload input[type="file"] {
    display: block;
    max-width: 100%;
    color: #52667e;
    font-size: 12px;
}

.factory-review-upload small {
    display: block;
    margin-top: 7px;
    color: #7d8fa4;
    font-size: 11px;
    line-height: 1.45;
}

#reviewImagesError {
    margin-top: 7px;
    color: #b42318;
    font-size: 12px;
}

#reviewImagesList {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 12px;
}

.review-image-delete {
    position: absolute;
    top: 5px;
    right: 5px;
    width: 22px;
    height: 22px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(29, 50, 77, .78);
    color: #fff;
    cursor: pointer;
    font-size: 17px;
    line-height: 22px;
}

.factory-review-form-card .home-button {
    width: 100%;
    margin-top: 20px;
}

.factory-review-alert {
    margin-bottom: 16px;
    padding: 13px 16px;
    border-radius: 9px;
    font-size: 13px;
    line-height: 1.5;
}

.factory-review-alert-success {
    border: 1px solid #b9e2c7;
    background: #effbf3;
    color: #24713c;
}

.factory-review-alert-error {
    border: 1px solid #f0c2c0;
    background: #fff3f2;
    color: #a3342d;
}

.factory-reviews-content .pagination {
    margin-top: 24px;
}

@media (max-width: 900px) {
    .factory-reviews-layout {
        grid-template-columns: 1fr;
    }

    .factory-review-form-card {
        position: static;
    }
}

@media (max-width: 600px) {
    .factory-reviews-content {
        padding: 38px 0 45px;
    }

    .factory-rating-card,
    .factory-review-card,
    .factory-review-form-card,
    .factory-pending-review {
        padding: 17px;
    }

    .factory-rating-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .factory-rating-total {
        min-width: 0;
    }

    .factory-rating-heading h2,
    .factory-reviews-list-heading h2,
    .factory-review-form-card h2 {
        font-size: 21px;
    }
}

/* Публичная форма добавления фабрики. */
.add-factory-form-wrap {
    max-width: 900px;
    padding: 30px;
    border: 1px solid #dce8f4;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 10px 26px rgba(44, 73, 105, .06);
}

.add-factory-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.add-factory-field {
    min-width: 0;
}

.add-factory-field-full {
    grid-column: 1 / -1;
}

.add-factory-field label,
.add-factory-sections legend {
    display: block;
    margin-bottom: 8px;
    color: #2b405b;
    font-size: 13px;
    font-weight: 700;
}

.add-factory-field label span,
.add-factory-sections legend span,
.add-factory-required span {
    color: #d9534f;
}

.add-factory-field label small {
    margin-left: 5px;
    color: #8090a4;
    font-size: 11px;
    font-weight: 400;
}

/* Оформляет текстовые поля, select и textarea в едином стиле формы. */
.add-factory-field input,
.add-factory-field select,
.add-factory-field textarea {
    box-sizing: border-box;
    width: 100%;
    min-height: 44px;
    padding: 11px 12px;
    border: 1px solid #cbddeb;
    border-radius: 8px;
    outline: 0;
    background: #fff;
    color: #40536d;
    font: 14px "Golos Text", Arial, sans-serif;
    transition: border-color .2s, box-shadow .2s;
}

/* Показывает стандартный указатель выбора для select. */
.add-factory-field select {
    cursor: pointer;
}

/* Оформляет активное состояние текстовых полей и select. */
.add-factory-field input:focus,
.add-factory-field select:focus,
.add-factory-field textarea:focus {
    border-color: var(--home-blue);
    box-shadow: 0 0 0 3px rgba(25, 103, 210, .1);
}

/* Не растягивает radio-кнопки стран и checkbox рассылки. */
.add-factory-field input[type="radio"],
.add-factory-field input[type="checkbox"] {
    box-sizing: border-box;
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    padding: 0;
    margin: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    appearance: auto;
    accent-color: var(--home-blue);
}

/* Убирает большую рамку фокуса у компактных элементов выбора. */
.add-factory-field input[type="radio"]:focus,
.add-factory-field input[type="checkbox"]:focus {
    box-shadow: none;
}

.add-factory-field textarea {
    min-height: 96px;
    resize: vertical;
}


.add-factory-sections {
    padding: 0;
    border: 0;
}

.add-factory-sections-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 16px;
}

.add-factory-checkbox {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 9px 10px;
    border: 1px solid #dce7f3;
    border-radius: 8px;
    background: #f8fbff;
    color: #40536d;
    font-size: 13px;
    line-height: 1.35;
    cursor: pointer;
}

.add-factory-checkbox:hover {
    border-color: #9fc7f5;
    background: #edf5ff;
}

.add-factory-checkbox input {
    flex: 0 0 auto;
    width: 15px;
    height: 15px;
    margin: 1px 0 0;
    accent-color: var(--home-blue);
}

.add-factory-required {
    margin: 20px 0 15px;
    color: #708198;
    font-size: 12px;
}

.add-factory-message {
    margin-bottom: 20px;
    padding: 12px 14px;
    border-radius: 8px;
    font-size: 13px;
}

.add-factory-message-error {
    border: 1px solid #f0b9b5;
    background: #fff2f1;
    color: #a43e38;
}

.add-factory-message-success {
    border: 1px solid #b9dfbc;
    background: #f1fff2;
    color: #34733b;
}

@media (max-width: 700px) {
    .add-factory-form-wrap {
        padding: 20px;
    }

    .add-factory-form-grid,
    .add-factory-sections-grid {
        grid-template-columns: 1fr;
    }
}


.site-review-form-wrap {
    max-width: 700px;
    margin: 0 auto;
}

.site-review-form-wrap .factory-content-heading,
.site-review-form-wrap > p {
    text-align: center;
}

.site-review-form-wrap .home-button {
    display: block;
    margin: 0 auto;
}


.search-page-intro {
    max-width: 820px;
}

.search-page-intro h1 {
    margin: 7px 0 12px;
    color: #17263d;
    font-size: 38px;
    line-height: 1.16;
}

.search-page-intro > p {
    max-width: 620px;
    margin: 0;
    color: #53667f;
    font-size: 15px;
    line-height: 1.65;
}

.search-page-form {
    max-width: 680px;
    margin-top: 24px;
}

.search-page-form label {
    display: block;
    margin-bottom: 8px;
    color: #315778;
    font-size: 13px;
    font-weight: 700;
}

.search-page-field {
    position: relative;
    display: flex;
    gap: 8px;
}

.search-page-field > span {
    position: absolute;
    top: 50%;
    left: 14px;
    width: 14px;
    height: 14px;
    border: 2px solid var(--home-blue);
    border-radius: 50%;
    pointer-events: none;
    transform: translateY(-60%);
}

.search-page-field > span::after {
    position: absolute;
    right: -6px;
    bottom: -3px;
    width: 7px;
    height: 2px;
    border-radius: 2px;
    background: var(--home-blue);
    content: "";
    transform: rotate(45deg);
}

.search-page-field input {
    width: 100%;
    min-width: 0;
    height: 46px;
    padding: 0 15px 0 40px;
    border: 1px solid #c7d9eb;
    border-radius: 8px;
    outline: 0;
    background: #fff;
    color: #2c4059;
    font: 14px "Golos Text", Arial, sans-serif;
}

.search-page-field input:focus {
    border-color: var(--home-blue);
    box-shadow: 0 0 0 3px rgba(25, 103, 210, .1);
}

.search-page-field button {
    flex: 0 0 auto;
    min-width: 104px;
    height: 46px;
    padding: 0 18px;
    border: 1px solid var(--home-blue);
    border-radius: 8px;
    background: var(--home-blue);
    color: #fff;
    font: 13px "Golos Text", Arial, sans-serif;
    font-weight: 700;
    cursor: pointer;
}

.search-page-field button:hover {
    background: #1259b7;
}

@media (max-width: 600px) {
    .search-page-intro h1 {
        font-size: 30px;
    }

    .search-page-field {
        flex-direction: column;
    }

    .search-page-field button {
        width: 100%;
    }
}

.search-page {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

.search-page .factories-list-section {
    flex: 1 0 auto;
}

.search-page .home-footer {
    margin-top: auto;
}

@media (max-width: 600px) {
    .search-page-field > span {
        top: 21px;
        transform: translateY(-50%);
    }
}


/*-----*/
.catalog-filter-bar {
    padding: 12px 0;
}

.catalog-filter-summary {
    gap: 8px;
}

.catalog-filter-dropdown {
    position: relative;
}

.catalog-filter-dropdown summary,
.catalog-all-factories-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 9px;
    min-height: 38px;
    padding: 8px 11px;
    border: 1px solid #c3d9ef;
    border-radius: 7px;
    background: #fff;
    color: var(--home-blue);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    cursor: pointer;
    transition: .18s ease;
}

.catalog-filter-dropdown summary:hover,
.catalog-filter-dropdown[open] summary,
.catalog-all-factories-link:hover {
    border-color: var(--home-blue);
    background: var(--home-blue);
    color: #fff;
}

.catalog-filter-dropdown summary b {
    position: static;
    width: auto;
    height: auto;
    color: currentColor;
    font-size: 14px;
    line-height: 1;
    transform: translateY(-1px);
}

.catalog-filter-dropdown summary b::before {
    display: none;
}

.catalog-filter-dropdown[open] summary b {
    transform: translateY(1px) rotate(180deg);
}

.catalog-filter-dropdown .catalog-filter-panel {
    right: auto;
    left: 0;
    width: min(430px, calc(100vw - 30px));
    margin-top: 7px;
}

.catalog-directions-panel {
    max-height: 400px;
    overflow-y: auto;
}

.catalog-category-panel label,
.catalog-location-panel label {
    display: block;
    margin-bottom: 9px;
    color: #2a3c56;
    font-size: 13px;
    font-weight: 700;
}

.catalog-filter-dropdown .catalog-category-search-field {
    position: relative;
    z-index: 1;
}

.catalog-filter-dropdown .catalog-category-search-field:has(
    .catalog-categories-dropdown.is-open
) {
    z-index: 5;
}

.catalog-filter-dropdown .catalog-categories-dropdown {
    left: 0;
    right: 0;
}

.catalog-all-factories-link {
    margin-left: auto;
    text-decoration: none;
}

@media (max-width: 900px) {
    .catalog-filter-summary {
        gap: 7px;
    }

    .catalog-all-factories-link {
        margin-left: 0;
    }
}

@media (max-width: 600px) {
    .catalog-filter-summary {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .catalog-filter-dropdown summary,
    .catalog-all-factories-link {
        width: 100%;
    }

    .catalog-all-factories-link {
        grid-column: 1 / -1;
        justify-content: center;
    }

    .catalog-filter-dropdown .catalog-filter-panel {
        width: calc(100vw - 30px);
    }
}

.catalog-filter-summary .catalog-filter-dropdown {
    margin-left: 0;
}

.catalog-filter-summary .catalog-filter-dropdown:first-child {
    margin-left: 0;
}

.catalog-filter-summary .catalog-filter-dropdown[open] summary {
    border-color: var(--home-blue);
    background: var(--home-blue);
    color: #fff;
}

.catalog-filter-summary .catalog-filter-dropdown[open] summary b {
    color: #fff;
}

.catalog-filter-summary .catalog-filter-dropdown summary b::before {
    display: none;
}

.catalog-filter-summary .catalog-filter-dropdown summary b {
    position: static;
    display: inline-block;
    width: auto;
    height: auto;
    margin: 0;
    color: currentColor;
    font-size: 14px;
    line-height: 1;
    transform: translateY(-1px);
}

.catalog-filter-summary .catalog-filter-dropdown[open] summary b {
    transform: translateY(1px) rotate(180deg);
}

@media (max-width: 900px) {
    .catalog-filter-summary .catalog-filter-dropdown {
        margin-left: 0;
    }
}

.catalog-filter-dropdown:first-child .catalog-filter-panel {
    width: min(600px, calc(100vw - 30px));
}
@media (max-width: 600px) {
    .catalog-filter-dropdown:first-child .catalog-filter-panel {
        width: calc(100vw - 30px);
    }
}

.catalog-filter-summary .catalog-filter-dropdown summary b {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 14px;
    width: 14px;
    height: 14px;
    margin: 0;
    color: currentColor;
    font-size: 0;
    line-height: 1;
    transform: none;
    transition: transform .18s ease;
}

.catalog-filter-summary .catalog-filter-dropdown summary b::after {
    width: 6px;
    height: 6px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    content: "";
    transform: translateY(-2px) rotate(45deg);
}

.catalog-filter-summary .catalog-filter-dropdown[open] summary b {
    transform: rotate(180deg);
}

.factory-product-gallery {
    margin: 13px 13px 0;
}
@media (max-width: 600px) {
    .factory-product-gallery {
        margin: 13px 13px 0;
    }
}

/* Расширяем список товарных категорий на компьютере. */
.catalog-filter-dropdown .catalog-category-panel {
    width: min(560px, calc(100vw - 30px));
}

@media (max-width: 600px) {
    /* На мобильном список категорий занимает доступную ширину экрана. */
    .catalog-filter-dropdown .catalog-category-panel {
        width: calc(100vw - 30px);
    }
}

/* Ограничиваем высоту длинного списка товарных категорий. */
.catalog-category-panel {
    max-height: 400px;
    overflow-y: auto;
}

/* Оформляем подсказку до выбора направления. */
.catalog-filter-hint {
    margin: 0;
    color: #60728c;
    font-size: 13px;
    line-height: 1.5;
}

/* Фильтр списка фабрик в стиле фильтра каталога товаров. */
.factories-filter-bar {
    padding: 12px 0;
}

.factories-filter-summary {
    gap: 8px;
}

.factories-filter-dropdown {
    position: relative;
}

.factories-filter-summary .factories-filter-dropdown {
    margin-left: 0;
}

.factories-filter-dropdown summary,
.factories-catalog-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 9px;
    min-height: 38px;
    padding: 8px 11px;
    border: 1px solid #c3d9ef;
    border-radius: 7px;
    background: #fff;
    color: var(--home-blue);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    cursor: pointer;
    transition: .18s ease;
}

.factories-filter-dropdown summary:hover,
.factories-filter-dropdown[open] summary,
.factories-catalog-link:hover {
    border-color: var(--home-blue);
    background: var(--home-blue);
    color: #fff;
}

.factories-filter-dropdown summary b {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 14px;
    width: 14px;
    height: 14px;
    margin: 0;
    color: currentColor;
    font-size: 0;
    line-height: 1;
    transform: none;
    transition: transform .18s ease;
}

.factories-filter-dropdown summary b::before {
    display: none;
}

.factories-filter-dropdown summary b::after {
    width: 6px;
    height: 6px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    content: "";
    transform: translateY(-2px) rotate(45deg);
}

.factories-filter-dropdown[open] summary b {
    transform: rotate(180deg);
}

/* Размеры выпадающих списков фабрик. */
.factories-filter-dropdown .factories-filter-panel {
    right: auto;
    left: 0;
    width: min(430px, calc(100vw - 30px));
    max-height: 400px;
    margin-top: 7px;
    overflow-y: auto;
}

.factories-filter-dropdown:first-child .factories-filter-panel {
    width: min(600px, calc(100vw - 30px));
}

.factories-filter-dropdown .factories-categories-panel {
    width: min(560px, calc(100vw - 30px));
}

.factories-filter-dropdown .factories-locations-panel {
    width: min(720px, calc(100vw - 30px));
    max-height: none;
}

.factories-catalog-link {
    margin-left: auto;
    text-decoration: none;
}

@media (max-width: 900px) {
    .factories-filter-summary {
        gap: 7px;
    }

    .factories-catalog-link {
        margin-left: 0;
    }
}

/* На мобильном фильтры отображаются компактной сеткой. */
@media (max-width: 600px) {
    .factories-filter-summary {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .factories-filter-dropdown summary,
    .factories-catalog-link {
        width: 100%;
    }

    .factories-catalog-link {
        grid-column: 1 / -1;
        justify-content: center;
    }

    .factories-filter-dropdown .factories-filter-panel,
    .factories-filter-dropdown:first-child .factories-filter-panel,
    .factories-filter-dropdown .factories-categories-panel,
    .factories-filter-dropdown .factories-locations-panel {
        width: calc(100vw - 30px);
    }
}

/* Цвет текста открытого фильтра фабрик совпадает с каталогом товаров. */
.factories-filter-summary .factories-filter-dropdown[open] summary {
    border-color: var(--home-blue);
    background: var(--home-blue);
    color: #fff;
}

.factories-filter-summary .factories-filter-dropdown[open] summary b {
    color: #fff;
}

/* Направления и категории фабрик используют отступы фильтра каталога товаров. */
.factories-filter-dropdown .factories-directions-panel,
.factories-filter-dropdown .factories-categories-panel {
    display: block;
}
/* Подсказка до выбора направления выделяется нейтральным фоном. */
.catalog-filter-hint,
.factories-filter-category-hint {
    margin: 0;
    padding: 11px 12px;
    border-radius: 8px;
    background: #f3f7fb;
    color: #60728c;
    font-size: 12px;
    line-height: 1.45;
}
/* Заголовок списка городов и регионов заменяет разделительную линию. */
.factories-filter-dropdown .factories-locations-panel {
    display: block;
}

.factories-filter-dropdown .factories-locations-panel > strong {
    margin-bottom: 11px;
}

.factories-filter-dropdown .factories-locations-panel .factories-filter-location {
    padding-top: 0;
    border-top: 0;
}
/* На мобильных устройствах каждая кнопка фильтра отображается с новой строки. */
@media (max-width: 600px) {
    .catalog-filter-summary,
    .factories-filter-summary {
        grid-template-columns: 1fr;
    }

    .catalog-all-factories-link,
    .factories-catalog-link {
        grid-column: auto;
    }
}
/* На мобильном устройстве кнопки выбора фильтров выделяются основным цветом сайта. */
@media (max-width: 600px) {
    .catalog-filter-dropdown summary,
    .factories-filter-dropdown summary {
        border-color: var(--home-blue);
        background: var(--home-blue);
        color: #fff;
    }

    .catalog-filter-dropdown summary b,
    .factories-filter-dropdown summary b {
        color: #fff;
    }
}

/* Мобильная панель возвращает посетителя к исходному фильтру каталога. */
.catalog-mobile-filter-bar,
.factories-mobile-filter-bar {
    display: none;
}

@media (max-width: 700px) {
    .catalog-filter-bar,
    .factories-filter-bar {
        scroll-margin-top: 72px;
    }

    .catalog-mobile-filter-bar:not([hidden]),
    .factories-mobile-filter-bar:not([hidden]) {
        position: fixed;
        top: 62px;
        z-index: 19;
        display: block;
        width: 100%;
        padding: 8px 0;
        border-bottom: 1px solid #dce8f3;
        background: rgba(255, 255, 255, .97);
        box-shadow: 0 5px 13px rgba(37, 71, 109, .10);
    }

    .catalog-mobile-filter-button,
    .factories-mobile-filter-button {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        min-height: 38px;
        padding: 8px 11px;
        border: 1px solid var(--home-blue);
        border-radius: 7px;
        background: var(--home-blue);
        color: #fff;
        font: 700 12px/1.2 "Golos Text", Arial, sans-serif;
        cursor: pointer;
    }

    .catalog-mobile-filter-button:active,
    .factories-mobile-filter-button:active {
        background: #1257b7;
        border-color: #1257b7;
    }
}

/* Логотипы фабрики не выходят за контейнер и сохраняют исходные пропорции. */
.factory-profile-logo,
.product-factory-logo {
    box-sizing: border-box;
    display: grid;
    place-items: center;
    width: min(225px, 100%);
    height: 100px;
    padding: 8px;
    overflow: hidden;
}

.factory-profile-logo img,
.product-factory-logo img {
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

/* SEO-текст остаётся в верхней карточке под направлениями фабрики. */
.factory-profile-seo {
    margin-top: 13px;
    padding-top: 12px;
    border-top: 1px solid #dce8f3;
    color: #53667f;
    font-size: 13px;
    line-height: 1.55;
}

.factory-profile-seo p {
    margin: 0;
}

.factory-profile-seo p + p {
    margin-top: 8px;
}

@media (max-width: 600px) {
    .factory-profile-logo,
    .product-factory-logo {
        width: 100%;
        max-width: 225px;
        height: 100px;
    }
}

/* Видео фабрики отображаются превью-карточками с запуском плеера внутри страницы. */
.factory-video-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.factory-video-card {
    position: relative;
    overflow: hidden;
    aspect-ratio: 16 / 9;
    border: 1px solid #dce7f3;
    border-radius: 12px;
    background: #edf3f9;
    box-shadow: 0 4px 15px rgba(48, 79, 113, .05);
}

.factory-video-preview,
.factory-video-player {
    display: block;
    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;
}

.factory-video-preview {
    position: relative;
    overflow: hidden;
    background: #22354c;
    cursor: pointer;
}

.factory-video-preview img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .25s ease, opacity .25s ease;
}

.factory-video-preview:hover img {
    opacity: .82;
    transform: scale(1.03);
}

.factory-video-play {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: rgba(25, 103, 210, .94);
    box-shadow: 0 5px 16px rgba(0, 0, 0, .25);
    transform: translate(-50%, -50%);
}

.factory-video-play::after {
    position: absolute;
    top: 50%;
    left: 52%;
    width: 0;
    height: 0;
    border-top: 9px solid transparent;
    border-bottom: 9px solid transparent;
    border-left: 14px solid #fff;
    content: "";
    transform: translate(-50%, -50%);
}

.factory-video-player {
    background: #000;
}

@media (max-width: 900px) {
    .factory-video-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 600px) {
    .factory-video-grid {
        grid-template-columns: 1fr;
    }
}

/* Карточки фото и сертификатов остаются кнопками без стандартного оформления браузера. */
.factory-image-preview {
    width: 100%;
    padding: 0;
    cursor: zoom-in;
}

/* Единое модальное окно показывает материалы фабрики поверх страницы. */
.factory-media-modal[hidden] {
    display: none;
}

.factory-media-modal {
    position: fixed;
    z-index: 50;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 20px;
    background: rgba(18, 32, 49, .82);
}

.factory-media-modal-dialog {
    position: relative;
    display: grid;
    place-items: center;
    width: min(1180px, 100%);
    max-height: 100%;
}

.factory-media-modal-content {
    display: grid;
    place-items: center;
    width: 100%;
    max-height: calc(100vh - 40px);
}

.factory-media-modal-content img {
    display: block;
    max-width: 100%;
    max-height: calc(100vh - 40px);
    border-radius: 12px;
    object-fit: contain;
    box-shadow: 0 18px 55px rgba(0, 0, 0, .36);
}

.factory-media-modal-content iframe {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    max-height: calc(100vh - 40px);
    border: 0;
    border-radius: 12px;
    background: #000;
    box-shadow: 0 18px 55px rgba(0, 0, 0, .36);
}

.factory-media-modal-close {
    position: absolute;
    z-index: 1;
    top: -12px;
    right: -12px;
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 50%;
    background: #fff;
    color: #253950;
    font-size: 25px;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 4px 13px rgba(0, 0, 0, .22);
}

.factory-media-modal-close:hover {
    background: var(--home-blue);
    color: #fff;
}

.factory-media-modal-open {
    overflow: hidden;
}

@media (max-width: 600px) {
    .factory-media-modal {
        padding: 14px;
    }

    .factory-media-modal-content,
    .factory-media-modal-content img,
    .factory-media-modal-content iframe {
        max-height: calc(100vh - 28px);
    }

    .factory-media-modal-close {
        top: -10px;
        right: -6px;
    }
}

/* Карточки новостей и акций на публичной странице фабрики. */
.factory-posts-page {
    padding: 58px 0;
    background: #f5f8fc;
}

.factory-page-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 24px;
}

.factory-page-heading h2 {
    max-width: 760px;
    margin: 6px 0 0;
    color: #17263d;
    font-size: 30px;
    line-height: 1.25;
}

.factory-posts-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.factory-posts-nav a {
    padding: 9px 12px;
    border: 1px solid #c9dced;
    border-radius: 8px;
    background: #fff;
    color: #2867ad;
    font-size: 12px;
    font-weight: 700;
}

.factory-posts-nav a:hover,
.factory-posts-nav a.active {
    border-color: #2867ad;
    background: #2867ad;
    color: #fff;
}

.factory-posts-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.factory-post-card {
    padding: 22px;
    border: 1px solid #dce7f3;
    border-radius: 13px;
    background: #fff;
    box-shadow: 0 4px 15px rgba(48, 79, 113, .05);
}

.factory-post-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    color: #75879d;
    font-size: 12px;
}

.factory-post-type {
    padding: 5px 8px;
    border-radius: 6px;
    background: #e8f3ff;
    color: #2867ad;
    font-size: 11px;
    font-weight: 700;
}

.factory-post-card h3 {
    margin: 15px 0 0;
    color: #243850;
    font-size: 18px;
    line-height: 1.35;
}

.factory-post-image {
    display: block;
    width: 100%;
    margin-top: 17px;
    padding: 0;
    overflow: hidden;
    border: 1px solid #dce7f3;
    border-radius: 10px;
    background: #fff;
    cursor: zoom-in;
}

.factory-post-image img {
    display: block;
    width: 100%;
    height: 255px;
    object-fit: contain;
}

.factory-post-text {
    margin-top: 17px;
    color: #52667e;
    font-size: 14px;
    line-height: 1.7;
    overflow-wrap: anywhere;
}

.factory-post-text p {
    margin: 0 0 12px;
}

.factory-post-text p:last-child {
    margin-bottom: 0;
}

.factory-posts-pagination {
    margin-top: 28px;
}

@media (max-width: 700px) {
    .factory-posts-page {
        padding: 40px 0;
    }

    .factory-page-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .factory-page-heading h2 {
        font-size: 25px;
    }

    .factory-posts-list {
        grid-template-columns: 1fr;
    }

    .factory-post-card {
        padding: 18px;
    }

    .factory-post-image img {
        height: min(360px, calc(100vw - 66px));
    }
}

/* Карточки общего списка новостей и акций фабрик. */
.factory-posts-index-note {
    max-width: 355px;
    margin: 0;
    color: #60728c;
    font-size: 13px;
    line-height: 1.6;
}

.factory-post-index-factory {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 16px;
}

.factory-post-index-logo {
    width: 72px;
    height: 38px;
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    padding: 4px;
    border: 1px solid #dce7f3;
    border-radius: 7px;
    background: #fff;
}

.factory-post-index-logo img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.factory-post-index-factory b,
.factory-post-index-factory small {
    display: block;
}

.factory-post-index-factory b {
    color: #2a5f9f;
    font-size: 12px;
    line-height: 1.35;
}

.factory-post-index-factory small {
    margin-top: 2px;
    color: #7b8ca1;
    font-size: 11px;
}

.factory-post-card h2 {
    margin: 15px 0 0;
    color: #243850;
    font-size: 18px;
    line-height: 1.35;
}

.factory-post-index-image {
    display: block;
    width: 160px;
    max-width: 100%;
    margin-top: 17px;
    overflow: hidden;
    border: 1px solid #dce7f3;
    border-radius: 10px;
    background: #fff;
}

.factory-post-index-image img {
    display: block;
    width: 100%;
    height: 150px;
    object-fit: contain;
}

.factory-post-index-text {
    margin: 16px 0 0;
    color: #52667e;
    font-size: 13px;
    line-height: 1.65;
}

.factory-post-index-link {
    display: inline-block;
    margin-top: 16px;
    color: #2867ad;
    font-size: 12px;
    font-weight: 700;
}

.factory-post-index-link:hover,
.factory-post-index-factory:hover b {
    color: #174d89;
}

@media (max-width: 700px) {
    .factory-posts-index-note {
        max-width: none;
    }

    .factory-post-index-image img {
        height: auto;
    }
}

/* Компактные превью новостей и акций на странице фабрики. */
.factory-post-preview-card {
    display: flex;
    gap: 17px;
    align-items: flex-start;
}

.factory-post-preview-image {
    width: 150px;
    height: 116px;
    display: block;
    flex: 0 0 auto;
    overflow: hidden;
    border: 1px solid #dce7f3;
    border-radius: 9px;
    background: #fff;
}

.factory-post-preview-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.factory-post-preview-content {
    min-width: 0;
    flex: 1 1 auto;
}

.factory-post-preview-content h3 {
    margin: 13px 0 0;
}

.factory-post-preview-content h3 a {
    color: #243850;
}

.factory-post-preview-content h3 a:hover {
    color: #2867ad;
}

.factory-post-preview-text {
    margin: 10px 0 0;
    color: #52667e;
    font-size: 13px;
    line-height: 1.6;
}

.factory-post-preview-link,
.factory-post-detail-back {
    display: inline-block;
    margin-top: 13px;
    color: #2867ad;
    font-size: 12px;
    font-weight: 700;
}

.factory-post-preview-link:hover,
.factory-post-detail-back:hover {
    color: #174d89;
}

/* Полная публикация фабрики. */
.factory-post-detail {
    padding: 58px 0;
    background: #f5f8fc;
}

.factory-post-detail-card {
    max-width: 900px;
    margin: 0 auto;
    padding: 32px;
    border: 1px solid #dce7f3;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 6px 20px rgba(48, 79, 113, .06);
}

.factory-post-detail-card h1 {
    max-width: 780px;
    margin: 18px 0 0;
    color: #17263d;
    font-size: 32px;
    line-height: 1.25;
}

.factory-post-detail-image {
    margin: 25px 0 0;
    overflow: hidden;
    border: 1px solid #dce7f3;
    border-radius: 11px;
    background: #fff;
}

.factory-post-detail-image img {
    display: block;
    width: 100%;
    max-height: 520px;
    object-fit: contain;
}

.factory-post-detail-text {
    margin-top: 26px;
    color: #4d6078;
    font-size: 15px;
    line-height: 1.8;
    overflow-wrap: anywhere;
}

.factory-post-detail-text p {
    margin: 0 0 17px;
}

.factory-post-detail-text p:last-child {
    margin-bottom: 0;
}

.factory-post-detail-back {
    margin-top: 26px;
}

@media (max-width: 700px) {
    .factory-post-preview-card {
        gap: 13px;
    }

    .factory-post-preview-image {
        width: 104px;
        height: 92px;
    }

    .factory-post-preview-content h3 {
        margin-top: 10px;
        font-size: 15px;
    }

    .factory-post-preview-text {
        font-size: 12px;
    }

    .factory-post-detail {
        padding: 40px 0;
    }

    .factory-post-detail-card {
        padding: 21px;
    }

    .factory-post-detail-card h1 {
        font-size: 26px;
    }

    .factory-post-detail-image img {
        max-height: 360px;
    }

    .factory-post-detail-text {
        font-size: 14px;
        line-height: 1.75;
    }
}

/* Подсказка с расшифровкой ценового сегмента в карточке фабрики. */
.site-tooltip {
    position: relative;
    cursor: help;
}

/* Текст подсказки над ценовым сегментом. */
.site-tooltip::after {
    position: absolute;
    z-index: 30;
    bottom: calc(100% + 10px);
    left: 50%;
    width: 260px;
    max-width: calc(100vw - 40px);
    padding: 10px 12px;
    border-radius: 8px;
    background: #1d3048;
    box-shadow: 0 8px 20px rgba(23, 38, 61, .2);
    color: #fff;
    content: attr(data-tooltip);
    font-size: 12px;
    font-weight: 400;
    line-height: 1.45;
    text-align: left;
    white-space: normal;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translate(-50%, 5px);
    transition: opacity .16s ease, transform .16s ease, visibility .16s ease;
}

/* Стрелка под подсказкой ценового сегмента. */
.site-tooltip::before {
    position: absolute;
    z-index: 31;
    bottom: calc(100% + 4px);
    left: 50%;
    width: 10px;
    height: 10px;
    background: #1d3048;
    content: "";
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translate(-50%, 5px) rotate(45deg);
    transition: opacity .16s ease, transform .16s ease, visibility .16s ease;
}

/* Показывает подсказку при наведении и фокусе. */
.site-tooltip:hover::after,
.site-tooltip:hover::before,
.site-tooltip:focus::after,
.site-tooltip:focus::before {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, 0);
}

/* Не даёт подсказке уйти за левый край экрана на телефоне. */
@media (max-width:700px) {
    .site-tooltip::after {
        left: 0;
        transform: translate(0, 5px);
    }

    .site-tooltip::before {
        left: 22px;
        transform: translate(0, 5px) rotate(45deg);
    }

    .site-tooltip:hover::after,
    .site-tooltip:focus::after {
        transform: translate(0, 0);
    }

    .site-tooltip:hover::before,
    .site-tooltip:focus::before {
        transform: translate(0, 0) rotate(45deg);
    }
}

/* Подсказка в шапке открывается вниз, так как шапка закреплена сверху. */
.site-tooltip-bottom::after {
    top: calc(100% + 10px);
    bottom: auto;
    transform: translate(-50%, -5px);
}

/* Стрелка подсказки в шапке направлена вверх. */
.site-tooltip-bottom::before {
    top: calc(100% + 4px);
    bottom: auto;
    transform: translate(-50%, -5px) rotate(45deg);
}

/* Показывает нижнюю подсказку в исходном положении. */
.site-tooltip-bottom:hover::after,
.site-tooltip-bottom:focus::after {
    transform: translate(-50%, 0);
}

/* Показывает стрелку нижней подсказки в исходном положении. */
.site-tooltip-bottom:hover::before,
.site-tooltip-bottom:focus::before {
    transform: translate(-50%, 0) rotate(45deg);
}

/* Сохраняет корректное положение нижней подсказки на телефоне. */
@media (max-width:700px) {
    .site-tooltip-bottom::after {
        transform: translate(0, -5px);
    }

    .site-tooltip-bottom::before {
        transform: translate(0, -5px) rotate(45deg);
    }

    .site-tooltip-bottom:hover::after,
    .site-tooltip-bottom:focus::after {
        transform: translate(0, 0);
    }

    .site-tooltip-bottom:hover::before,
    .site-tooltip-bottom:focus::before {
        transform: translate(0, 0) rotate(45deg);
    }
}

/* Добавляет отступ между фильтром фабрики и каталогом товаров. */
.factory-page .catalog-filter-bar {
    margin-bottom: 24px;
}

/* Оставляет место под верхнюю мобильную шапку при переходе к ассортименту. */
.factory-page #products {
    scroll-margin-top: 72px;
}

/* Оформляет верхний блок юридических страниц. */
.legal-page .legal-hero {
    padding: 42px 0 38px;
    background: #edf5ff;
}

/* Оформляет заголовок юридической страницы. */
.legal-page .legal-hero h1 {
    max-width: 900px;
    margin: 10px 0 0;
    color: #17263d;
    font-size: clamp(30px, 4vw, 46px);
    line-height: 1.15;
}

/* Оформляет описание юридической страницы. */
.legal-page .legal-hero p {
    max-width: 720px;
    margin: 13px 0 0;
    color: #53667f;
    font-size: 14px;
    line-height: 1.6;
}

/* Оформляет область текста документа. */
.legal-content-section {
    padding: 48px 0 64px;
    background: #f5f8fc;
}

/* Создаёт удобную для чтения белую карточку. */
.legal-content {
    max-width: 980px;
    margin: 0 auto;
    padding: 34px 42px;
    border: 1px solid #dce7f3;
    border-radius: 12px;
    background: #fff;
    color: #40536d;
    font-size: 14px;
    line-height: 1.7;
}


/* Убирает подчёркивание у заголовков статей до наведения. */
.legal-page .legal-content h2 a {
    text-decoration: none;
}

/* Возвращает подчёркивание заголовку статьи при наведении. */
.legal-page .legal-content h2 a:hover {
    text-decoration: underline;
}

/* Убирает подчёркивание у кнопки чтения статьи. */
.legal-page .legal-content a.home-button {
    text-decoration: none;
}



/* Оформляет заголовки разделов документа. */
.legal-content h2 {
    margin: 30px 0 12px;
    color: #243952;
    font-size: 21px;
    line-height: 1.3;
}

/* Убирает большой отступ у первого заголовка. */
.legal-content h2:first-child {
    margin-top: 0;
}

/* Оформляет ссылки внутри юридического текста. */
.legal-content a {
    color: var(--home-blue);
    text-decoration: underline;
}

/* Адаптирует юридические документы под мобильный экран. */
@media (max-width: 700px) {
    .legal-page .legal-hero {
        padding: 30px 0;
    }

    .legal-content-section {
        padding: 30px 0 42px;
    }

    .legal-content {
        padding: 24px 18px;
        font-size: 13px;
    }
}

/* Выделяет важное примечание на странице правил отзывов. */
.legal-notice {
    margin-bottom: 24px;
    padding: 14px 16px;
    border: 1px solid #cfe0f2;
    border-radius: 8px;
    background: #f4f9ff;
    color: #40536d;
}

/* Оформляет жирный текст внутри примечания. */
.legal-notice b {
    color: #243952;
}

/* Делает верхний блок юридической страницы компактным. */
.legal-page .legal-hero {
    padding: 28px 0 30px;
    background: #edf5ff;
}

/* Уменьшает главный заголовок юридической страницы. */
.legal-page .legal-hero h1 {
    max-width: 1150px;
    margin: 8px 0 0;
    color: #172f4d;
    font-size: clamp(28px, 3.2vw, 38px);
    line-height: 1.18;
}

/* Оформляет область документа. */
.legal-content-section {
    padding: 36px 0 58px;
    background: #f5f8fc;
}

/* Ограничивает ширину текста для комфортного чтения. */
.legal-page .legal-content {
    width: 100%;
    max-width: 960px;
    margin: 0 auto;
    padding: 32px 38px;
    border: 1px solid #dce7f3;
    border-radius: 12px;
    background: #fff;
    color: #52667f;
    font-size: 14px;
    line-height: 1.6;
}

/* Уменьшает заголовки разделов документа. */
.legal-page .legal-content h2 {
    margin: 28px 0 10px;
    color: #243952;
    font-size: 21px;
    line-height: 1.3;
}

/* Убирает лишний отступ у первого заголовка. */
.legal-page .legal-content h2:first-child {
    margin-top: 0;
}

/* Настраивает абзацы документа. */
.legal-page .legal-content p {
    margin: 0 0 14px;
}

/* Настраивает списки документа. */
.legal-page .legal-content ul,
.legal-page .legal-content ol {
    margin: 0 0 18px;
    padding-left: 24px;
}

/* Настраивает пункты списков. */
.legal-page .legal-content li {
    margin-bottom: 7px;
    padding-left: 3px;
}

/* Оформляет ссылки документа. */
.legal-page .legal-content a {
    color: var(--home-blue);
    text-decoration: underline;
}

/* Оформляет примечание на странице отзывов. */
.legal-page .legal-notice {
    margin-bottom: 22px;
    padding: 13px 15px;
    border: 1px solid #cfe0f2;
    border-radius: 8px;
    background: #f4f9ff;
    color: #52667f;
}

/* Адаптирует документ для мобильного экрана. */
@media (max-width: 700px) {
    .legal-page .legal-hero {
        padding: 24px 0 26px;
    }

    .legal-page .legal-hero h1 {
        font-size: 29px;
    }

    .legal-content-section {
        padding: 24px 0 38px;
    }

    .legal-page .legal-content {
        padding: 24px 18px;
        font-size: 13px;
    }

    .legal-page .legal-content h2 {
        font-size: 19px;
    }
}

/* Делает форму отзыва спокойной и выровненной. */
.site-review-form-wrap .factory-content-heading,
.site-review-form-wrap > p {
    text-align: left;
}

/* Ограничивает ширину формы для удобного заполнения. */
.site-review-form-wrap {
    max-width: 850px;
    margin: 0 auto;
    padding: 30px 38px;
}

/* Уменьшает отступ после описания формы. */
.site-review-form-wrap > p.mb-4 {
    margin-bottom: 24px !important;
}

/* Прижимает кнопку к левому краю. */
.site-review-form-wrap .home-button {
    display: block;
    margin: 0;
}

/* Оформляет юридическое согласие. */
.site-review-form-wrap .site-review-form-note {
    max-width: 680px;
    margin: 10px 0 0;
    color: #8493a4;
    font-size: 11px;
    line-height: 1.5;
    text-align: left;
}

/* Оформляет ссылки в юридическом согласии. */
.site-review-form-wrap .site-review-form-note a {
    color: #607b9a;
    text-decoration: underline;
}

/* Адаптирует форму для мобильного экрана. */
@media (max-width: 700px) {
    .site-review-form-wrap {
        padding: 22px 18px;
    }

    .site-review-form-wrap .home-button {
        width: 100%;
    }
}

/* Оформляет страницу выбора фабрик. */
.price-confirm-section {
    padding: 34px 0 52px;
    background: #f5f8fc;
}

/* Ограничивает ширину карточки выбора. */
.price-confirm-card {
    max-width: 760px;
    margin: 0 auto;
    padding: 28px 34px;
}

/* Оформляет заголовок подтверждения. */
.price-confirm-heading h1 {
    margin: 0;
    color: #243952;
    font-size: 25px;
    line-height: 1.25;
}

/* Оформляет пояснение под заголовком. */
.price-confirm-heading p {
    margin: 7px 0 0;
    color: #60728c;
    font-size: 13px;
}

/* Оформляет поясняющий текст старой формы. */
.price-confirm-description {
    margin-top: 20px;
    color: #667991;
    font-size: 12px;
    line-height: 1.55;
}

/* Выделяет рекомендацию пользователю. */
.price-confirm-description p {
    margin: 10px 0 0;
    color: #40536d;
}

/* Ограничивает высоту списка фабрик. */
.price-confirm-scroll {
    position: relative;
    max-height: 318px;
    margin-top: 18px;
    padding-right: 4px;
    overflow-y: auto;
    scrollbar-width: none;
}

/* Скрывает полосу прокрутки в WebKit-браузерах. */
.price-confirm-scroll::-webkit-scrollbar {
    width: 0;
    height: 0;
}

/* Разделяет группы фабрик. */
.price-confirm-group + .price-confirm-group {
    margin-top: 18px;
}

/* Оформляет заголовок группы фабрик. */
.price-confirm-group h2 {
    margin: 0 0 8px;
    color: #40536d;
    font-size: 15px;
    line-height: 1.3;
}

/* Оформляет один пункт фабрики. */
.price-confirm-option {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 39px;
    margin-bottom: 5px;
    padding: 7px 10px;
    border: 1px solid #dce7f3;
    border-radius: 7px;
    background: #f8fbff;
    color: #40536d;
    font-size: 13px;
    cursor: pointer;
}

/* Подсвечивает пункт фабрики при наведении. */
.price-confirm-option:hover {
    border-color: #9fc7f5;
    background: #edf5ff;
}

/* Настраивает checkbox фабрики. */
.price-confirm-option input[type="checkbox"] {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    margin: 0;
    accent-color: var(--home-blue);
}

/* Оформляет название фабрики. */
.price-confirm-option b {
    color: #2b405b;
    font-weight: 700;
}

/* Оформляет город фабрики. */
.price-confirm-option small {
    color: #8090a4;
    font-size: 12px;
}

/* Оформляет кнопку подтверждения. */
.price-confirm-card .home-button {
    margin-top: 18px;
}

/* Адаптирует список для мобильного экрана. */
@media (max-width: 700px) {
    .price-confirm-section {
        padding: 24px 0 38px;
    }

    .price-confirm-card {
        padding: 22px 16px;
    }

    .price-confirm-heading h1 {
        font-size: 22px;
    }

    .price-confirm-scroll {
        max-height: 300px;
    }

    .price-confirm-card .home-button {
        width: 100%;
    }
}

.price-request-error {
    font-size:12px; margin-top:8px;
    border: 1px solid red;
    background-color: #ffdbdb;
    padding:4px 8px;
    border-radius:6px;
}

/* Оформляет компактную кнопку возврата в начало публичной страницы. */
.home-scroll-top {
    position: fixed;
    right: 22px;
    bottom: 22px;
    z-index: 20;
    display: grid;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid #c8dced;
    border-radius: 50%;
    outline: 0;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 8px 22px rgba(26, 67, 108, .18);
    color: var(--home-blue);
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(10px);
    transition: opacity .2s ease, transform .2s ease, background .2s ease, border-color .2s ease;
}

/* Показывает кнопку только после прокрутки страницы. */
.home-scroll-top.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}

/* Оформляет стрелку внутри кнопки. */
.home-scroll-top svg {
    width: 21px;
    height: 21px;
    margin: auto;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2.2;
}

/* Выделяет кнопку при наведении или навигации с клавиатуры. */
.home-scroll-top:hover,
.home-scroll-top:focus-visible {
    border-color: var(--home-blue);
    background: var(--home-blue);
    color: #fff;
    transform: translateY(-2px);
}

/* Уменьшает кнопку и отступы на мобильных устройствах. */
@media (max-width: 600px) {
    .home-scroll-top {
        right: 14px;
        bottom: 14px;
        width: 40px;
        height: 40px;
    }
}

/* Отключает анимацию для пользователей с соответствующей настройкой системы. */
@media (prefers-reduced-motion: reduce) {
    .home-scroll-top {
        transition: none;
    }
}

/* Оформляет горизонтальное уведомление о cookies по ширине контента сайта. */
.cookie-notice {
    position: fixed;
    left: 50%;
    bottom: 16px;
    z-index: 30;
    width: min(1180px, calc(100vw - 30px));
    border: 1px solid #cddfed;
    border-radius: 10px;
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 10px 28px rgba(28, 61, 95, .16);
    transform: translateX(-50%);
}

/* Располагает текст и кнопки в одну горизонтальную строку. */
.cookie-notice-content {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 22px;
    padding: 11px 16px;
}

/* Оформляет заголовок уведомления. */
.cookie-notice b {
    display: block;
    margin-bottom: 3px;
    color: #243e5c;
    font-size: 13px;
    line-height: 1.25;
}

/* Оформляет короткое пояснение под заголовком. */
.cookie-notice p {
    max-width: none;
    margin: 0;
    color: #61748b;
    font-size: 12px;
    line-height: 1.4;
}

/* Оформляет ссылку на политику cookies. */
.cookie-notice a {
    color: var(--home-blue);
    white-space: nowrap;
}

/* Сохраняет кнопки в одной строке. */
.cookie-notice-actions {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
}

/* Оформляет кнопки выбора cookies. */
.cookie-notice-accept,
.cookie-notice-necessary {
    min-height: 32px;
    padding: 0 12px;
    border-radius: 7px;
    font: 700 12px "Golos Text", Arial, sans-serif;
    white-space: nowrap;
    cursor: pointer;
}

/* Оформляет основную кнопку принятия cookies. */
.cookie-notice-accept {
    border: 1px solid var(--home-blue);
    background: var(--home-blue);
    color: #fff;
}

/* Оформляет кнопку выбора только необходимых cookies. */
.cookie-notice-necessary {
    border: 1px solid #cbddeb;
    background: #fff;
    color: #48627f;
}

/* Выделяет основную кнопку при наведении. */
.cookie-notice-accept:hover {
    background: #1459b7;
}

/* Выделяет вторичную кнопку при наведении. */
.cookie-notice-necessary:hover {
    border-color: #9dc5ee;
    background: #f1f7fd;
}

/* Уменьшает высоту cookie-уведомления на мобильных экранах. */
@media (max-width:700px) {
    .cookie-notice {
        left:8px;
        right:8px;
        bottom:8px;
        width:auto;
        max-width:none;
        border-radius:10px;
    }

    .cookie-notice-content {
        display:flex;
        align-items:center;
        gap:10px;
        padding:9px 10px;
    }

    .cookie-notice-content > div:first-child {
        min-width:0;
        flex:1 1 auto;
    }

    .cookie-notice b {
        display:block;
        margin:0 0 2px;
        font-size:11px;
        line-height:1.2;
    }

    .cookie-notice p {
        overflow:hidden;
        margin:0;
        color:#61748b;
        font-size:10px;
        line-height:1.25;
        display:-webkit-box;
        -webkit-line-clamp:2;
        -webkit-box-orient:vertical;
    }

    .cookie-notice a {
        white-space:nowrap;
    }

    .cookie-notice-actions {
        flex:0 0 auto;
    }

    .cookie-notice-accept {
        min-width:64px;
        min-height:38px;
        padding:0 9px;
        font-size:11px;
    }
}


/* Выводит карточки статей списка в две колонки. */
.legal-page .legal-content-section > .home-container > .legal-content {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    max-width: none;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
}

/* Оформляет карточку статьи только на странице списка. */
.legal-page .legal-content-section > .home-container > .legal-content > article {
    display: flex !important;
    flex-direction: column;
    gap: 14px !important;
    min-width: 0;
    height: 100%;
    margin: 0 !important;
    padding: 18px !important;
    border: 1px solid #dce7f3 !important;
    border-radius: 12px !important;
    background: #fff !important;
}

/* Делает изображение карточки полноширинным. */
.legal-page .legal-content-section > .home-container > .legal-content > article > div:first-child {
    width: 100% !important;
    min-width: 0 !important;
}

/* Оформляет изображение карточки статьи. */
.legal-page .legal-content-section > .home-container > .legal-content > article img {
    display: block;
    width: 100% !important;
    height: 190px !important;
    object-fit: cover !important;
    border-radius: 8px;
}

/* Оформляет внутреннюю часть карточки. */
.legal-page .legal-content-section > .home-container > .legal-content > article > div:last-child {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-width: 0;
}

/* Оформляет заголовок карточки. */
.legal-page .legal-content-section > .home-container > .legal-content > article h2 {
    margin: 0 !important;
    font-size: 21px;
    line-height: 1.3;
}

/* Оформляет описание карточки. */
.legal-page .legal-content-section > .home-container > .legal-content > article p {
    margin: 0;
    font-size: 14px;
    line-height: 1.55;
}

/* Добавляет отступ перед кнопкой статьи. */
.legal-page .legal-content-section > .home-container > .legal-content > article .home-button {
    align-self: flex-start;
    margin-top: 14px !important;
}

/* Переводит список статей в одну колонку на мобильных устройствах. */
@media (max-width: 760px) {
    .legal-page .legal-content-section > .home-container > .legal-content {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .legal-page .legal-content-section > .home-container > .legal-content > article img {
        height: 180px !important;
    }
}

/* Уменьшает карточки на узких экранах. */
@media (max-width: 480px) {
    .legal-page .legal-content-section > .home-container > .legal-content > article {
        padding: 14px !important;
    }

    .legal-page .legal-content-section > .home-container > .legal-content > article h2 {
        font-size: 19px;
    }
}

/* Сдержанное оформление блока связанных статей внутри статьи */
.home-article-related {padding: 28px;border: 1px solid #dce5ee;border-radius: 16px;background: #fff;box-shadow: 0 10px 26px rgba(32, 57, 82, .08);}
.home-article-related::before {margin-bottom: 12px;color: #6f8093;font-size: 10px;letter-spacing: .12em;content: "ПОЛЕЗНЫЕ МАТЕРИАЛЫ";}
.home-article-related h3 {color: #263b53;font-size: 21px;}
.home-article-related ul {gap: 8px;margin: 19px 0 20px;}
.home-article-related li {padding-left: 0;}
.home-article-related li::before {display: none;}
.home-article-related li .home-seo-link {display: block;min-height: 0;margin: 0;padding: 12px 14px;border: 1px solid #e0e8f0;border-radius: 9px;background: #f8fafc;color: #38536e !important;font-size: 13px;line-height: 1.45;}
.home-article-related li .home-seo-link:hover {border-color: #bdcddd;background: #f2f6f9;box-shadow: none;}
.home-article-related > .home-seo-link {min-height: 38px;margin-top: 2px;padding: 8px 14px;border-color: #c9d6e3;border-radius: 8px;background: #fff;color: #315b84 !important;}
.home-article-related > .home-seo-link:hover {border-color: #8fa9c1;background: #f5f8fb;}
.home-article-related .home-seo-link:focus-visible {outline: 2px solid #6d9ac5;outline-offset: 2px;}
@media (max-width: 600px) {.home-article-related {padding: 21px;}}

/* Выпадающее меню действий для производителей. */
.home-factory-menu {position:relative;flex:0 0 auto;}
.home-factory-menu summary {display:flex;align-items:center;gap:8px;min-height:38px;cursor:pointer;list-style:none;color:#415066;font-size:13px;font-weight:700;white-space:nowrap;}
.home-factory-menu summary::-webkit-details-marker {display:none;}
.home-factory-menu summary::after {width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;content:"";transform:translateY(-2px) rotate(45deg);transition:transform .2s;}
.home-factory-menu[open] summary {color:var(--home-blue);}
.home-factory-menu[open] summary::after {transform:translateY(2px) rotate(225deg);}
.home-factory-menu-panel {position:absolute;z-index:31;top:calc(100% + 10px);right:0;display:grid;min-width:248px;padding:7px;border:1px solid #cfdeec;border-radius:11px;background:#fff;box-shadow:0 14px 30px rgba(38,72,112,.15);}
.home-factory-menu-panel a {display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:40px;padding:9px 11px;border-radius:7px;color:#3d526b;font-size:13px;font-weight:700;}
.home-factory-menu-panel a:hover {color:var(--home-blue);background:#eef6fd;}
.home-factory-menu-panel a:last-child {margin-top:3px;color:var(--home-blue);background:#f2f8fe;}
.home-factory-menu-panel a:last-child:hover {background:#e4f1fc;}
.home-factory-menu-panel span {font-size:16px;line-height:1;}



/* Первый экран страницы для производителей. */
.manufacturers-hero {padding: 28px 0 58px;background: linear-gradient(180deg,#f1f7fd 0%,#fff 100%);}

/* Хлебные крошки страницы для производителей. */
.manufacturers-breadcrumbs {display: flex;align-items: center;gap: 9px;margin-bottom: 38px;color: #8294a8;font-size: 12px;}

/* Ссылки хлебных крошек. */
.manufacturers-breadcrumbs a {color: #55779b;}

/* Сетка первого экрана. */
.manufacturers-hero-grid {display: grid;grid-template-columns: minmax(0,1fr) 340px;gap: 58px;align-items: center;}

/* Ограничивает ширину текстовой части первого экрана. */
.manufacturers-hero-content {max-width: 760px;}

/* Заголовок первого экрана. */
.manufacturers-hero-content h1 {max-width: 760px;margin: 0;color: #1e354e;font-size: clamp(32px,4vw,48px);line-height: 1.1;letter-spacing: -.8px;}

/* Краткое описание первого экрана. */
.manufacturers-hero-lead {max-width: 680px;margin: 22px 0 0;color: #536981;font-size: 16px;line-height: 1.7;}

/* Кнопки первого экрана. */
.manufacturers-hero-actions {display: flex;align-items: center;flex-wrap: wrap;gap: 22px;margin-top: 28px;}

/* Вторая ссылка первого экрана. */
.manufacturers-secondary-link {display: inline-flex;align-items: center;gap: 8px;color: #315f8e;font-size: 13px;font-weight: 700;}

/* Стрелка второй ссылки. */
.manufacturers-secondary-link span {font-size: 17px;line-height: 1;transition: transform .2s;}

/* Анимация стрелки второй ссылки. */
.manufacturers-secondary-link:hover span {transform: translateX(3px);}

/* Карточка первого экрана. */
.manufacturers-hero-card {padding: 25px;border: 1px solid #d7e4ef;border-radius: 15px;background: #fff;box-shadow: 0 12px 30px rgba(40,72,105,.08);}

/* Подпись карточки первого экрана. */
.manufacturers-hero-card-label {margin-bottom: 13px;color: #70869c;font-size: 10px;font-weight: 800;letter-spacing: .12em;text-transform: uppercase;}

/* Заголовок карточки первого экрана. */
.manufacturers-hero-card strong {display: block;color: #29435f;font-size: 18px;line-height: 1.35;}

/* Текст карточки первого экрана. */
.manufacturers-hero-card p {margin: 13px 0 0;color: #64798e;font-size: 13px;line-height: 1.6;}

/* Универсальная секция посадочной страницы. */
.manufacturers-section {padding: 62px 0;background: #fff;}

/* Серая секция посадочной страницы. */
.manufacturers-section-muted {background: #f6f9fc;border-top: 1px solid #e3edf5;border-bottom: 1px solid #e3edf5;}

/* Заголовок секции посадочной страницы. */
.manufacturers-section-heading {display: flex;align-items: flex-end;justify-content: space-between;gap: 30px;margin-bottom: 28px;}

/* Заголовок секции. */
.manufacturers-section-heading h2 {max-width: 650px;margin: 0;color: #223a53;font-size: clamp(25px,3vw,34px);line-height: 1.2;}

/* Пояснение заголовка секции. */
.manufacturers-section-heading > p {max-width: 350px;margin: 0;color: #687e94;font-size: 13px;line-height: 1.6;}

/* Сетка преимуществ. */
.manufacturers-benefits {display: grid;grid-template-columns: repeat(3,1fr);gap: 15px;}

/* Карточка преимущества. */
.manufacturers-benefit-card {padding: 22px;border: 1px solid #dce7f1;border-radius: 13px;background: #fff;}

/* Номер карточки преимущества. */
.manufacturers-card-number {color: #4e85b6;font-size: 12px;font-weight: 800;letter-spacing: .08em;}

/* Заголовок карточки преимущества. */
.manufacturers-benefit-card h3 {margin: 18px 0 8px;color: #29435f;font-size: 17px;}

/* Текст карточки преимущества. */
.manufacturers-benefit-card p {margin: 0;color: #657b90;font-size: 13px;line-height: 1.6;}

/* Список шагов. */
.manufacturers-steps {display: grid;grid-template-columns: repeat(3,1fr);gap: 15px;}

/* Один шаг. */
.manufacturers-step {display: flex;gap: 15px;padding: 20px;border: 1px solid #dce7f1;border-radius: 13px;background: #fff;}

/* Номер шага. */
.manufacturers-step-number {display: grid;flex: 0 0 32px;width: 32px;height: 32px;place-items: center;border-radius: 50%;background: #e7f2fb;color: #3975a9;font-size: 13px;font-weight: 800;}

/* Заголовок шага. */
.manufacturers-step h3 {margin: 3px 0 7px;color: #29435f;font-size: 15px;}

/* Текст шага. */
.manufacturers-step p {margin: 0;color: #657b90;font-size: 13px;line-height: 1.55;}

/* Облако характеристик профиля. */
.manufacturers-tags {display: flex;flex-wrap: wrap;gap: 10px;}

/* Одна характеристика профиля. */
.manufacturers-tags span {padding: 11px 14px;border: 1px solid #d7e4ef;border-radius: 9px;background: #f8fbfd;color: #405d78;font-size: 13px;font-weight: 600;}

/* Список вопросов. */
.manufacturers-faq {max-width: 850px;border-top: 1px solid #dce7f1;}

/* Один вопрос. */
.manufacturers-faq-item {border-bottom: 1px solid #dce7f1;}

/* Заголовок вопроса. */
.manufacturers-faq-item summary {display: flex;align-items: center;justify-content: space-between;gap: 20px;padding: 18px 0;cursor: pointer;color: #29435f;font-size: 15px;font-weight: 700;list-style: none;}

/* Убирает системный маркер вопроса. */
.manufacturers-faq-item summary::-webkit-details-marker {display: none;}

/* Маркер раскрытия вопроса. */
.manufacturers-faq-item summary::after {width: 8px;height: 8px;flex: 0 0 8px;border-right: 1.5px solid #5f87aa;border-bottom: 1.5px solid #5f87aa;content: "";transform: translateY(-2px) rotate(45deg);transition: transform .2s;}

/* Поворачивает маркер открытого вопроса. */
.manufacturers-faq-item[open] summary::after {transform: translateY(2px) rotate(225deg);}

/* Ответ на вопрос. */
.manufacturers-faq-item > div {max-width: 760px;padding: 0 35px 18px 0;color: #657b90;font-size: 13px;line-height: 1.65;}

/* Финальный призыв к действию. */
.manufacturers-final-cta {padding: 48px 0;background: #173f78;}

/* Содержимое финального призыва. */
.manufacturers-final-cta-inner {display: flex;align-items: center;justify-content: space-between;gap: 30px;}

/* Заголовок финального призыва. */
.manufacturers-final-cta h2 {max-width: 650px;margin: 0;color: #fff;font-size: clamp(25px,3vw,34px);line-height: 1.2;}

/* Текст финального призыва. */
.manufacturers-final-cta p {margin: 12px 0 0;color: #d4e5f7;font-size: 14px;line-height: 1.55;}

/* Адаптация страницы для планшетов. */
@media (max-width: 900px) {.manufacturers-hero-grid {grid-template-columns: 1fr;gap: 28px;}.manufacturers-hero-card {max-width: 520px;}.manufacturers-benefits,.manufacturers-steps {grid-template-columns: 1fr;}.manufacturers-section-heading {align-items: flex-start;flex-direction: column;}.manufacturers-section-heading > p {max-width: 620px;}.manufacturers-final-cta-inner {align-items: flex-start;flex-direction: column;}}

/* Адаптация страницы для телефонов. */
@media (max-width: 600px) {.manufacturers-hero {padding: 22px 0 42px;}.manufacturers-breadcrumbs {margin-bottom: 28px;}.manufacturers-hero-content h1 {font-size: 31px;}.manufacturers-hero-lead {font-size: 14px;}.manufacturers-section {padding: 45px 0;}.manufacturers-hero-card {padding: 21px;}.manufacturers-faq-item summary {font-size: 14px;}.manufacturers-final-cta {padding: 40px 0;}}

/* Уменьшает H1 в карточке фабрики для более аккуратной композиции. */
.factory-profile-main h1 {
    margin: 6px 0 8px;
    font-size: 30px;
    line-height: 1.2;
}

/* Уменьшает H1 на мобильных устройствах. */
@media (max-width: 600px) {
    .factory-profile-main h1 {
        font-size: 26px;
        line-height: 1.2;
    }
}

/* Располагает тип покупателя и описание в одной строке. */
.price-request-edit-buyer-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    margin-top: 20px;
}

/* Убирает стандартный внешний отступ у полей внутри общей строки. */
.price-request-edit-buyer-row > p {
    min-width: 0;
    margin: 0;
}

/* Оформляет select редактирования как остальные поля формы. */
.price-request-edit-buyer-row select {
    box-sizing: border-box;
    width: 100%;
    min-height: 44px;
    padding: 11px 12px;
    border: 1px solid #cbddeb;
    border-radius: 8px;
    outline: 0;
    background: #fff;
    color: #40536d;
    font: 14px "Golos Text", Arial, sans-serif;
    cursor: pointer;
}

/* Оформляет input редактирования в едином стиле. */
.price-request-edit-buyer-row input {
    box-sizing: border-box;
    width: 100%;
    min-height: 44px;
    padding: 11px 12px;
    border: 1px solid #cbddeb;
    border-radius: 8px;
    outline: 0;
    background: #fff;
    color: #40536d;
    font: 14px "Golos Text", Arial, sans-serif;
}

/* Показывает одинаковый фокус для select и input редактирования. */
.price-request-edit-buyer-row select:focus,
.price-request-edit-buyer-row input:focus {
    border-color: var(--home-blue);
    box-shadow: 0 0 0 3px rgba(25, 103, 210, .1);
}

/* Переводит поля типа покупателя в один столбец на мобильном экране. */
@media (max-width: 700px) {
    .price-request-edit-buyer-row {
        grid-template-columns: 1fr;
    }
}


/* Размещает e-mail и тип покупателя в одной строке. */
.price-request-page .price-request-buyer-type-field {
    grid-column: 2;
}

/* Размещает организацию рядом с именем покупателя. */
.price-request-page .price-request-org-field {
    grid-column: 2;
}

/* Переводит поля в один столбец на мобильных устройствах. */
@media (max-width: 600px) {
    .price-request-page .price-request-buyer-type-field,
    .price-request-page .price-request-org-field {
        grid-column: 1;
    }
}


/* Показывает выбранную фабрику и товар в контекстной карточке заявки. */
.price-request-context-card {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 18px;
    padding: 14px;
    border: 1px solid #cbddeb;
    border-radius: 10px;
    background: #fff;
}

/* Ограничивает логотип фабрики в контекстной карточке. */
.price-request-context-card img {
    width: 72px;
    height: 52px;
    flex: 0 0 72px;
    object-fit: contain;
}

/* Выстраивает информацию о фабрике вертикально. */
.price-request-context-card div {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

/* Оформляет название выбранной фабрики. */
.price-request-context-card b {
    color: #203957;
    font-size: 16px;
}

/* Оформляет пояснение о передаче запроса. */
.price-request-context-card span,
.price-request-context-card small {
    color: #60728c;
    font-size: 12px;
    line-height: 1.4;
}

/* Блок для продавцов маркетплейсов и других типов оптовых покупателей. */
.home-marketplaces { background:#fff; }
.home-marketplaces-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.home-marketplace-card { display:flex; flex-direction:column; gap:9px; min-height:145px; padding:20px; border:1px solid #dce7f3; border-radius:12px; background:#f8fbff; }
.home-marketplace-card b { color:#1d3048; font-size:15px; line-height:1.35; }
.home-marketplace-card span { color:var(--home-muted); font-size:12px; line-height:1.55; }
.home-marketplaces-action { margin-top:24px; text-align:center; }

@media (max-width:980px) {
    .home-marketplaces-grid { grid-template-columns:repeat(2,1fr); }
}

@media (max-width:700px) {
    .home-marketplaces-grid { grid-template-columns:1fr; }
    .home-marketplace-card { min-height:0; }
}

/* Выделяет карточку фабрики, производство которой прекращено. */
.factory-card-closed {
    border: 2px solid #f0b323 !important;
    background: #fffdf2;
    box-shadow: 0 7px 20px rgba(240, 179, 35, 0.16);
}

/* Оформляет предупреждение о прекращении производства. */
.factory-card-closed-message {
    position: relative;
    z-index: 3;
    margin-top: 20px;
    padding: 12px 14px;
    border: 1px solid #f0b323;
    border-radius: 8px;
    background: #fff3bf;
    color: #704d00;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.4;
}

/* Оформляет блок статуса закрытой фабрики на странице производителя. */
.factory-closed-content {
    padding: 58px 0;
}

/* Делает предупреждение заметным и сохраняет стиль OZ-BABY. */
.factory-closed-notice {
    max-width: 900px;
    padding: 28px 30px;
    border: 2px solid #f0b323;
    border-radius: 14px;
    background: #fffdf2;
    box-shadow: 0 8px 24px rgba(240, 179, 35, 0.14);
}

/* Оформляет заголовок предупреждения. */
.factory-closed-notice h2 {
    margin: 8px 0 12px;
    color: #704d00;
    font-size: 30px;
    line-height: 1.25;
}

/* Оформляет поясняющий текст предупреждения. */
.factory-closed-notice p {
    max-width: 720px;
    margin: 0;
    color: #806b38;
    font-size: 16px;
    line-height: 1.6;
}

.factory-catalog-request-card { margin-top:10px; padding:28px; border:1px solid #b9d7f5; border-radius:15px; background:linear-gradient(135deg,#eaf4ff 0%,#f8fbff 100%); box-shadow:0 8px 24px rgba(45,98,157,.08); }
.factory-catalog-request-card__content { max-width:820px; }
.factory-catalog-request-card h3 { margin:7px 0 10px; color:#17263d; font-size:25px; line-height:1.25; }
.factory-catalog-request-card p { max-width:760px; margin:0; color:#53667f; font-size:14px; line-height:1.65; }
.factory-catalog-request-card__benefits { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 25px; margin:18px 0; padding:0; list-style:none; color:#2f5278; font-size:13px; }
.factory-catalog-request-card__benefits li::before { content:"✓"; margin-right:8px; color:#1967d2; font-weight:700; }
.factory-catalog-request-card__actions { display:flex; align-items:center; flex-wrap:wrap; gap:16px; }
.factory-catalog-request-card__actions .home-button { min-width:190px; min-height:46px; }
.factory-catalog-request-card__link,.factory-inline-cooperation__more { color:#1967d2; font-size:13px; font-weight:700; text-decoration:none; }
.factory-catalog-request-card__link:hover,.factory-inline-cooperation__more:hover { color:#1257b7; text-decoration:underline; }
.factory-catalog-request-card__note { display:block; margin-top:13px; color:#6d829b; font-size:11px; }
.factory-inline-cooperation { margin-top:28px; padding:25px; border:1px solid #dbe7f2; border-radius:15px; background:#fff; }
.factory-inline-cooperation h3 { margin:7px 0 18px; color:#17263d; font-size:23px; line-height:1.25; }
.factory-inline-cooperation__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.factory-inline-cooperation__item { padding:16px; border:1px solid #e0eaf4; border-radius:10px; background:#f8fbff; }
.factory-inline-cooperation__item span { display:block; color:#8191a5; font-size:11px; }
.factory-inline-cooperation__item strong { display:block; margin-top:5px; color:#2a3c56; font-size:14px; line-height:1.4; }
.factory-inline-cooperation__more { display:inline-block; margin-top:18px; }
@media (max-width:600px) { .factory-catalog-request-card { padding:21px 17px; } .factory-catalog-request-card h3 { font-size:21px; } .factory-catalog-request-card__benefits { grid-template-columns:1fr; gap:8px; } .factory-catalog-request-card__actions { align-items:stretch; flex-direction:column; } .factory-catalog-request-card__actions .home-button { width:100%; } .factory-catalog-request-card__link { align-self:flex-start; } .factory-inline-cooperation { padding:20px 17px; } .factory-inline-cooperation__grid { grid-template-columns:1fr; } }

.factory-seo-editorial { padding:58px 0 64px; border-top:1px solid #e2ecf5; background:#fff; }
.factory-seo-editorial h2 { max-width:1040px; margin:0 auto 17px; color:#1d3d63; font-size:38px; font-weight:500; line-height:1.25; }
.factory-seo-editorial__text { max-width:1040px; margin:0 auto; color:#193b64; font-size:16px; line-height:1.7; }
.factory-seo-editorial__text br + br { display:block; content:""; margin-top:16px; }
.factory-seo-editorial__text strong { color:#193b64; font-weight:700; }
@media (max-width:700px) { .factory-seo-editorial { padding:40px 0 46px; } .factory-seo-editorial h2 { font-size:27px; line-height:1.25; } .factory-seo-editorial__text { font-size:15px; line-height:1.65; } .factory-seo-editorial__text br + br { margin-top:11px; } }

/* Оформляет компактный выбор нескольких направлений товаров. */
.price-request-directions-picker {
    position: relative;
    width: 100%;
    margin-bottom: 20px;
}

/* Оформляет раскрывающийся список направлений. */
.price-request-directions-details {
    position: relative;
}

/* Оформляет кнопку открытия списка направлений. */
.price-request-directions-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 44px;
    padding: 11px 13px;
    border: 1px solid #cbddeb;
    border-radius: 8px;
    background: #fff;
    color: #40536d;
    font-size: 14px;
    cursor: pointer;
    list-style: none;
}

/* Скрывает стандартный маркер details. */
.price-request-directions-summary::-webkit-details-marker {
    display: none;
}

/* Меняет цвет кнопки при наведении. */
.price-request-directions-summary:hover {
    border-color: #9fc7f5;
    background: #f8fbff;
}

/* Поворачивает стрелку открытого списка. */
.price-request-directions-details[open]
.price-request-directions-arrow {
    transform: rotate(180deg);
}

/* Оформляет выпадающий список направлений. */
.price-request-directions-menu {
    position: absolute;
    z-index: 20;
    top: calc(100% + 6px);
    right: 0;
    left: 0;
    display: grid;
    max-height: 320px;
    gap: 8px;
    overflow-y: auto;
    padding: 12px;
    border: 1px solid #b9d5f2;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(35, 73, 112, .16);
}

/* Настраивает строки направлений внутри выпадающего списка. */
.price-request-directions-menu .add-factory-checkbox {
    background: #f8fbff;
}

/* Оформляет список уже выбранных направлений. */
.price-request-directions-selected {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 9px;
}

/* Оформляет отдельную метку выбранного направления. */
.price-request-direction-tag {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 5px 9px;
    border-radius: 6px;
    background: #eaf3fe;
    color: #1967d2;
    font-size: 12px;
    font-weight: 600;
}

/* Оформляет кнопку удаления выбранного направления. */
.price-request-direction-remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    margin-left: 6px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: #1967d2;
    font-size: 17px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
}

/* Подсвечивает кнопку удаления при наведении. */
.price-request-direction-remove:hover {
    background: #cfe3fb;
    color: #1257b7;
}

/* Показывает видимый фокус у кнопки удаления. */
.price-request-direction-remove:focus-visible {
    outline: 2px solid #1967d2;
    outline-offset: 2px;
}

/* Настраивает компактный список направлений на телефоне. */
@media (max-width: 700px) {
    .price-request-directions-menu {
        max-height: 280px;
    }

    .price-request-directions-summary {
        width: 100%;
    }
}

/* Оформляет блок ключевых условий внутри карточки фабрики. */
.factory-card-facts {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 11px;
}

/* Оформляет отдельное условие сотрудничества как компактную плашку. */
.factory-card-facts span {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 4px 8px;
    border: 1px solid #d6e6f6;
    border-radius: 6px;
    background: #f4f8fd;
    color: #315f91;
    font-size: 11px;
    line-height: 1.35;
}

/* Выделяет ссылку на подробные условия сотрудничества. */
.factory-card-cooperation-link {
    position: relative;
    z-index: 3;
    display: inline-block;
    width: fit-content;
    margin-top: 8px;
    pointer-events: auto;
    color: var(--home-blue);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.4;
    text-decoration: none;
}

/* Подчеркивает ссылку на условия при наведении. */
.factory-card-cooperation-link:hover {
    color: #1258b8;
    text-decoration: underline;
}

/* Настраивает карточку при длинных условиях сотрудничества. */
.factory-card .factory-card-content {
    min-width: 0;
}

/* Уменьшает информационные плашки на мобильных экранах. */
@media (max-width: 700px) {
    .factory-card-facts span {
        max-width: 100%;
        font-size: 11px;
    }

    .factory-card-cooperation-link {
        font-size: 12px;
    }
}

/* Возвращает cookie-уведомление в границы экрана на мобильных устройствах. */
@media (max-width: 700px) {
    .cookie-notice {
        transform: none;
        display: none !important;
    }
}


/* Увеличивает мелкий текст каталога на мобильных до читаемого размера. */
@media (max-width: 700px) {
    .catalog-page .factories-filter-group .factories-section-link small,
    .catalog-page .factory-product-info p,
    .catalog-page .factory-product-price,
    .catalog-page .factories-price-card small {
        font-size: 12px;
    }
}

/* Поднимает найденный мелкий текст публичных страниц до 12px на мобильных. */
@media (max-width: 700px) {
    .home-header-login,
    .home-factory-status,
    .home-factory-button,
    .factory-card-button,
    .home-product-catalog__grid small,
    .home-useful-icon,
    .product-icon,
    .home-regions span,
    .home-statistic span,
    .home-request-step small,
    .home-request-note,
    .home-direction small,
    .home-footer-bottom,
    .factory-tabs-scroll-hint,
    .regions-directory-cities span,
    .factory-card-facts span,
    .factories-filter-location-links small,
    .factories-filter-location-links span,
    .factories-filter-group .factories-section-link small,
    .factories-price-card small,
    .catalog-filter-links small,
    .catalog-categories-dropdown small,
    .catalog-location-reset,
    .factory-badges span,
    .factory-badges a,
    .factory-request small,
    .factory-tabs a span,
    .factory-categories a span,
    .factory-product-image span,
    .factory-product-new,
    .factory-product-info p,
    .factory-product-price,
    .factory-details span,
    .factory-catalog-request-card__note,
    .factory-inline-cooperation__item span,
    .factory-contact-list > div > span:not(.visually-hidden),
    .factory-map-card > span,
    .factory-requisites dt,
    .factory-cooperation-card > span,
    .factory-rating-total span,
    .factory-rating-bars em,
    .factory-review-upload small,
    .factory-post-type,
    .factory-post-index-factory small,
    .product-gallery-main span,
    .product-request small,
    .product-characteristics span,
    .product-factory span,
    .product-related-grid article:not(.factory-product) p,
    .home-seo-aside::before,
    .home-article-related::before,
    .manufacturers-hero-card-label,
    .site-review-form-wrap .site-review-form-note,
    .add-factory-field label small,
    .add-factory-form-note,
    .callback-client-option small,
    .catalog-page .factories-filter-group .factories-section-link small,
    .catalog-page .factory-product-info p,
    .catalog-page .factory-product-price,
    .catalog-page .factories-price-card small {
        font-size: 12px !important;
    }
}


