/* Общие стили главной страницы */
.fm-home-page { width:100%; max-width:100vw; }
.fm-home, .fm-home * { box-sizing:border-box; }
.fm-home { width:100%; min-width:0; color:#212121; font:16px/1.5 Roboto,Arial,sans-serif; }
.fm-home section { width:100%; }
.fm-home [hidden] { display:none!important; }
.fm-home-container { width:100%; max-width:1140px; margin:0 auto; padding:0 15px; min-width:0; }
.fm-home img { display:block; max-width:100%; }
.fm-home a { transition:color .2s,background-color .2s,border-color .2s,box-shadow .2s,opacity .2s; }
.fm-home a:hover { text-decoration:none; }
.fm-home a:focus-visible, .fm-home input:focus-visible { outline:2px solid #1b75bb; outline-offset:4px; }
.fm-home .fm-heading { margin:0 0 40px; color:#252525; font-family:Roboto,Arial,sans-serif; font-size:32px; font-weight:400; line-height:.87; }
.fm-button { display:flex; justify-content:center; align-items:center; width:210px; max-width:100%; min-height:50px; padding:12px 16px; color:#fff!important; background:#ce2525; border-radius:3px; font-size:16px; line-height:22px; text-align:center; }
.fm-button:hover { background:#ad1d25; }
.fm-home .swiper { min-width:0; width:100%; overflow:hidden; }
.fm-home .swiper-wrapper { align-items:stretch; }
.fm-home .swiper-slide { height:auto; min-width:0; }
.fm-carousel:not(.swiper-initialized) .swiper-wrapper { gap:24px; }
.fm-carousel:not(.swiper-initialized) .swiper-slide { width:calc((100% - 72px)/4); flex-shrink:0; }
.fm-carousel-controls { display:flex; justify-content:flex-end; gap:8px; margin-top:18px; }
.fm-carousel-controls a { display:flex; width:34px; height:34px; align-items:center; justify-content:center; color:#013464; border:1px solid #c8d3dc; border-radius:3px; font-size:26px; line-height:1; }
.fm-carousel-controls a:hover { background:#e6edf3; }
.fm-carousel-controls .swiper-button-disabled { opacity:.35; pointer-events:none; }

/* 1. Верхний баннер */
.fm-home #topslider.fm-hero { padding:59px 0 74px; background:url('/images/bg/topbg.jpg') center/cover no-repeat; }
.fm-hero-shell { display:flex; align-items:center; gap:16px; max-width:1242px; padding:0 15px; margin:auto; }
.fm-hero-arrow { display:flex; align-items:center; justify-content:center; flex:0 0 35px; height:35px; color:#c6cacc!important; border:1px solid #c6cacc; border-radius:3px; font-size:28px; line-height:1; }
.fm-hero-arrow:hover { background:rgba(255,255,255,.12); }
.fm-hero-arrow.swiper-button-disabled { opacity:.3; }
.fm-hero-slide { display:flex; justify-content:space-between; align-items:flex-start; min-height:350px; gap:28px; }
.fm-hero-copy { flex:1 1 52%; min-width:0; }
.fm-hero-title { font-family:'Open Sans',Arial,sans-serif; font-size:46px; line-height:54px; letter-spacing:.03em; font-weight:700; color:#fff; }
.fm-hero-text { max-width:540px; margin-top:42px; font-size:16px; line-height:1.4; color:#fff; }
.fm-hero-copy .fm-button { margin-top:24px; }
.fm-hero-image { width:43%; height:330px; object-fit:contain; }
.fm-hero-dots { display:flex; gap:10px; align-items:center; min-height:28px; margin-top:17px; }
.fm-hero-dot { display:block; width:8px; height:8px; border-radius:2px; background:#c6cacc; opacity:.4; }
.fm-hero-dot.fm-active { background:#ce2525; opacity:1; }

/* Полоса преимуществ под баннером */
.fm-home #adv.fm-benefits { margin-top:-50px; position:relative; }
.fm-benefits .adv { min-height:100px; padding:25px; }
.fm-benefits .row { margin:0; row-gap:20px; }
.fm-benefits .adv-item { min-width:0; }
.fm-benefits .adv-item p { padding:0 16px; font-weight:400; }

/* 2. Основные категории и H1 */
.fm-categories { padding:50px 0 64px; }
.fm-categories .fm-heading { line-height:24px; }
.fm-category-list { display:flex; flex-wrap:wrap; gap:20px; }
.fm-category { display:flex; flex-direction:column; width:calc((100% - 60px)/4); min-width:0; min-height:260px; padding:28px 30px; border:1px solid #eaebec; border-radius:3px; box-shadow:0 2px 10px rgba(33,33,33,.05); color:#013464; }
.fm-category:hover, .fm-catalog-item:hover, .fm-news-card:hover { box-shadow:0 3px 15px rgba(33,33,33,.12); }
.fm-category-image { width:100%; height:140px; object-fit:contain; margin-bottom:22px; }
.fm-category-name { margin-top:auto; font-size:16px; line-height:1.2; overflow-wrap:anywhere; }

/* 3. Каталог и восьмой элемент — подписка */
.fm-home-catalog { padding:0 0 56px; }
.fm-home-catalog .fm-heading { margin-bottom:26px; }
.fm-catalog-list { display:flex; flex-wrap:wrap; gap:20px 30px; }
.fm-catalog-item { display:flex; align-items:center; gap:34px; width:calc((100% - 30px)/2); min-height:98px; padding:10px 40px; color:#013464; border:1px solid #ddd; box-shadow:0 2px 6px rgba(0,0,0,.06); }
.fm-catalog-image { flex:0 0 120px; width:120px; height:76px; object-fit:contain; }
.fm-catalog-name { min-width:0; line-height:24px; }
.fm-subscription { display:flex; align-items:center; justify-content:space-between; gap:18px; width:calc((100% - 30px)/2); min-height:98px; padding:18px 32px; color:#fff; background:#ce2525; box-shadow:0 2px 6px rgba(0,0,0,.15); }
.fm-subscription-copy { flex:1; min-width:0; }
.fm-subscription-title { font-size:19px; line-height:20px; font-weight:500; }
.fm-subscription-text { margin-top:3px; font-size:15px; line-height:17px; }
.fm-subscription-action { display:flex; align-items:center; justify-content:center; flex:0 0 44%; min-height:40px; padding:8px; border:1px solid #fff; border-radius:3px; color:#fff!important; line-height:22px; text-align:center; }
.fm-subscription-action:hover { background:rgba(255,255,255,.15); }

/* 4. Рекламные баннеры */
.fm-promotions { padding:0 0 64px; }
.fm-promotion-list { display:flex; gap:30px; }
.fm-promotion { display:flex; align-items:flex-start; width:calc((100% - 30px)/2); min-width:0; min-height:295px; padding:30px; background-size:cover; background-position:center; }
.fm-promotion-sale { background-image:url('/images/bg/ban1.jpg'); }
.fm-promotion-manager { background-image:url('/images/bg/ban2.jpg'); padding-bottom:0; }
.fm-promotion-copy { flex:1 1 50%; min-width:0; }
.fm-promotion-title { font-size:24px; line-height:30px; color:#fff; }
.fm-promotion-image { width:50%; max-height:265px; object-fit:contain; }
.fm-promotion-manager .fm-promotion-image { align-self:flex-end; }
.fm-promotion-sizes { margin-top:12px; color:#fff; font-size:12px; line-height:14px; }
.fm-promotion-discount { display:inline-flex; margin-top:8px; padding:2px 18px; color:#013464; background:#fff; border-radius:3px; font-size:20px; line-height:24px; }
.fm-promotion .fm-button { margin-top:28px; }
.fm-promotion-email, .fm-promotion-phone { display:block; color:#fff!important; }
.fm-promotion-email { margin-top:36px; font-size:14px; line-height:26px; }
.fm-promotion-phone { font-size:18px; line-height:32px; }
.fm-promotion-manager .fm-button { margin-bottom:30px; margin-top:28px; }

/* 5. Популярные группы товаров */
.fm-popular { padding:64px 0; background:#013464; }
.fm-popular .fm-heading { margin-bottom:46px; color:#fff; font-family:'Open Sans',Arial,sans-serif; line-height:28px; }
.fm-popular-list { display:flex; flex-wrap:wrap; gap:24px; }
.fm-popular-item { display:flex; align-items:center; justify-content:space-between; gap:14px; width:calc((100% - 72px)/4); min-height:86px; min-width:0; padding:12px 20px; background:#fff; border-radius:3px; color:#212121; box-shadow:0 4px 8px rgba(0,0,0,.08); }
.fm-popular-item:hover { background:#f0f4f8; }
.fm-popular-name { flex:1; font-size:14px; line-height:21px; }
.fm-popular-item img { width:70px; height:62px; object-fit:contain; }

/* 6. Лидеры продаж */
.fm-leaders { padding:54px 0 60px; }
.fm-leaders .fm-heading { margin-bottom:56px; }
.fm-product-slide { display:flex; }
.fm-product-card { display:flex; flex-direction:column; width:100%; padding:15px 15px 24px; border:1px solid #eaebec; border-radius:3px; background:#fff; box-shadow:0 2px 8px rgba(33,33,33,.05); }
.fm-product-image { display:block; width:100%; margin-bottom:20px; }
.fm-product-picture { display:block; width:100%; height:150px; background-position:center; background-repeat:no-repeat; background-size:contain; }
.fm-product-title { display:block; min-height:58px; margin-bottom:5px; color:#013464; font-size:16px; line-height:1.2; }
.fm-product-purchase { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:auto; margin-bottom:22px; }
.fm-product-price { min-width:0; }
.fm-product-price-label { color:#013464; font-family:'Open Sans',Arial,sans-serif; font-size:16px; line-height:20px; }
.fm-product-price-value { margin-top:5px; color:#e22525; font-size:20px; line-height:24px; }
.fm-product-quantity { display:flex; align-items:center; flex:0 0 106px; width:106px; height:38px; border:1px solid #c6cacc; border-radius:3px; background:#f8f9fa; }
.fm-quantity-action { display:flex; align-items:center; justify-content:center; flex:0 0 27px; height:100%; color:#899098; }
.fm-quantity-action:hover { background:#e6edf3; }
.fm-quantity-input { width:50px; min-width:0; padding:0; border:0; background:transparent; appearance:textfield; text-align:center; color:#212121; font:16px/24px Roboto,Arial,sans-serif; }
.fm-quantity-input::-webkit-inner-spin-button, .fm-quantity-input::-webkit-outer-spin-button { appearance:none; margin:0; }
.fm-product-buy { display:flex; align-items:center; justify-content:center; width:100%; min-height:42px; padding:10px; border-radius:3px; background:#1b75bb; color:#fff!important; font-size:14px; line-height:22px; }
.fm-product-buy:hover { background:#145d97; }
.fm-product-one-click { align-self:center; margin-top:18px; color:#1b75bb; border-bottom:1px dotted currentColor; font-size:14px; line-height:18px; }
.fm-product-unavailable { padding:10px; text-align:center; }

/* 7. О компании */
.fm-about { padding:68px 0; background:#f0f4f8; }
.fm-about-layout { display:flex; align-items:flex-start; justify-content:space-between; gap:60px; }
.fm-about-copy { flex:1; min-width:0; }
.fm-about .fm-heading { margin-bottom:38px; line-height:1.2; }
.fm-about-text { font-size:16px; line-height:22.4px; }
.fm-about-text + .fm-about-text { margin-top:20px; }
.fm-about-image { flex:0 1 445px; width:40%; height:350px; object-fit:cover; }

/* 8. Почему выбирают СПАРКГРУПП */
.fm-advantages { padding:0 0 48px; background:#f0f4f8; }
.fm-advantages-layout { display:flex; align-items:flex-start; gap:51px; }
.fm-advantages-intro { flex:0 0 291px; min-width:0; }
.fm-advantages .fm-heading { line-height:1.38984375; margin-bottom:24px; }
.fm-advantages-text { max-width:278px; font-size:16px; line-height:23px; }
.fm-advantages-cards { display:flex; flex-wrap:wrap; gap:24px; flex:1; min-width:0; }
.fm-advantage { width:calc((100% - 24px)/2); min-width:0; min-height:294px; padding:32px; border-radius:4px; background:#fff; }
.fm-advantage-icon { display:flex; align-items:center; justify-content:center; width:64px; height:64px; margin-bottom:20px; border-radius:12px; background:#e6edf3; color:#002a51; }
.fm-advantage-icon svg, .fm-step-icon svg { display:block; flex-shrink:0; }
.fm-advantage-title { margin-bottom:16px; color:#002a51; font-size:20px; line-height:28px; font-weight:500; }
.fm-advantage-description { color:#414653; font-size:15px; line-height:20px; }

/* 9. Текст об оборудовании */
.fm-seo { padding:0 0 40px; background:#f0f4f8; }
.fm-seo-content { font-size:16px; line-height:24px; }
.fm-seo-content h2 { margin:26px 0 12px; font-family:Roboto,Arial,sans-serif; font-weight:400; font-size:32px; line-height:1.2; }
.fm-seo-content p { margin:0 0 12px; }
.fm-seo-content ul, .fm-seo-content ol { margin:0 0 14px; padding-left:25px; }
.fm-seo-content a { color:#2387de; }
.fm-seo-content a:hover { text-decoration:underline; }

/* 10. Схема работы */
.fm-home #shemaraboty.fm-work { margin-top:0; padding:64px 0 72px; background:#fff; }
.fm-work .fm-heading { margin-bottom:72px; line-height:28px; }
.fm-steps { display:flex; flex-wrap:wrap; }
.fm-step { display:flex; flex-direction:column; align-items:center; width:25%; min-width:0; }
.fm-step-marker { width:106px; }
.fm-step-number { display:flex; align-items:center; justify-content:center; width:96px; height:96px; border:8px solid #f0f4f8; border-radius:10px; background:#002a51; box-shadow:0 8px 14px rgba(0,0,0,.14); color:#fff; font-family:'Work Sans',Arial,sans-serif; font-size:22px; line-height:24px; }
.fm-step-icon { display:flex; align-items:center; justify-content:center; width:40px; height:40px; margin:-34px 0 0 66px; border-radius:12px; background:#bd1723; box-shadow:0 4px 8px rgba(0,0,0,.1); }
.fm-step-rule { width:100%; height:4px; margin:34px 0 24px; background:#c7c7d2; }
.fm-step-title { padding:0 16px; color:#002a51; font-size:20px; line-height:28px; font-weight:700; text-align:center; }
.fm-step-text { max-width:280px; padding:0 18px; margin-top:20px; color:#414653; font-size:16px; line-height:21px; text-align:center; }

/* 11. Сертификаты */
.fm-certificates { padding:0 0 74px; }
.fm-certificates .fm-heading { margin-bottom:40px; }
.fm-certificate { display:flex; align-items:center; justify-content:center; min-height:308px; padding:35px 40px; background:#c6c6c6; box-shadow:0 2px 8px rgba(0,0,0,.08); }
.fm-certificate:hover { background:#b9bec2; }
.fm-certificate img { width:100%; height:238px; object-fit:contain; }

/* 12. Новости */
.fm-news { padding:0 0 74px; }
.fm-news .fm-heading { margin-bottom:40px; }
.fm-news-card { display:flex; flex-direction:column; border:1px solid #eaebec; border-radius:3px; background:#fff; box-shadow:0 2px 8px rgba(33,33,33,.05); }
.fm-news-image { display:block; width:100%; }
.fm-news-image img { width:100%; height:180px; object-fit:cover; }
.fm-news-title { display:block; min-height:95px; padding:18px 15px 0; color:#013464; font-size:16px; line-height:19.2px; }
.fm-news-text { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; min-height:54px; margin:2px 15px 0; color:#212121; font-size:12px; line-height:18px; }
.fm-news-more { align-self:flex-start; margin:18px 15px 26px; color:#1b75bb; font-size:14px; line-height:18px; border-bottom:1px dotted currentColor; }

/* Заголовок контактного блока на главной */
.fm-home-page #call .xtr-title { font-family:Roboto,Arial,sans-serif; font-size:32px; font-weight:400; line-height:.87; }

/* Адаптивная версия */
@media (max-width:1199px) {
    .fm-hero-shell { max-width:1140px; gap:10px; }
    .fm-hero-title { font-size:38px; line-height:46px; }
    .fm-catalog-item { padding:10px 24px; gap:20px; }
    .fm-catalog-image { flex-basis:100px; width:100px; }
    .fm-advantages-layout { gap:36px; }
    .fm-advantages-intro { flex-basis:25%; }
    .fm-advantage { padding:26px; }
}
@media (max-width:991px) {
    .fm-home .fm-heading, .fm-seo-content h2, .fm-home-page #call .xtr-title { font-size:28px; line-height:35px; }
    .fm-categories .fm-heading { font-size:30px; line-height:35px; }
    .fm-home #topslider.fm-hero { padding:42px 0 74px; }
    .fm-hero-arrow { flex-basis:28px; height:32px; }
    .fm-hero-title { font-size:32px; line-height:40px; }
    .fm-hero-text { margin-top:26px; }
    .fm-hero-image { height:280px; }
    .fm-benefits .adv-item { flex:0 0 50%; max-width:50%; }
    .fm-category { padding:20px; }
    .fm-catalog-item { padding:12px 20px; gap:14px; }
    .fm-catalog-image { flex-basis:72px; width:72px; }
    .fm-subscription { padding:18px; gap:12px; flex-wrap:wrap; }
    .fm-subscription-action { flex-basis:100%; }
    .fm-promotion { padding:24px; }
    .fm-promotion-title { font-size:20px; line-height:26px; }
    .fm-promotion-image { width:42%; }
    .fm-promotion-phone { font-size:15px; }
    .fm-promotion-manager { padding-bottom:0; }
    .fm-popular-item { width:calc((100% - 24px)/2); }
    .fm-about-layout { gap:30px; }
    .fm-about-image { flex-basis:38%; height:350px; }
    .fm-advantages-layout { flex-wrap:wrap; gap:30px; }
    .fm-advantages-intro { flex-basis:100%; }
    .fm-advantages .fm-heading { line-height:1.38984375; margin-bottom:18px; }
    .fm-advantages-cards { flex-basis:100%; }
    .fm-advantage { min-height:270px; }
    .fm-carousel:not(.swiper-initialized) .swiper-slide { width:calc((100% - 48px)/3); }
}
@media (max-width:767px) {
    .fm-home .fm-heading { margin-bottom:28px; }
    .fm-hero-shell { gap:8px; padding:0 10px; }
    .fm-hero-arrow { flex-basis:24px; height:30px; }
    .fm-hero-slide { flex-direction:column; align-items:center; gap:24px; }
    .fm-hero-copy { flex-basis:auto; width:100%; }
    .fm-hero-title { font-size:30px; line-height:36px; overflow-wrap:anywhere; }
    .fm-hero-text { margin-top:24px; }
    .fm-hero-image { width:100%; max-width:360px; height:230px; }
    .fm-hero-dots { padding-left:28px; }
    .fm-home #adv.fm-benefits { margin-top:-40px; }
    .fm-benefits .fm-home-container { padding:0 10px; }
    .fm-benefits .adv { padding:25px; }
    .fm-benefits .adv-item { flex:0 0 100%; max-width:100%; flex-direction:row; align-items:center; text-align:left; gap:5px; padding:0; }
    .fm-benefits .adv-item img { flex-shrink:0; width:50px; height:50px; }
    .fm-benefits .adv-item p { flex:1; min-width:0; margin:0; padding:0; font-size:14px; line-height:1.4; }
    .fm-categories { padding:38px 0; }
    .fm-category-list { gap:16px; }
    .fm-category { width:calc((100% - 16px)/2); min-height:230px; padding:20px; }
    .fm-category-image { height:130px; margin-bottom:18px; }
    .fm-catalog-list { gap:16px; }
    .fm-catalog-item, .fm-subscription { width:100%; }
    .fm-catalog-item { padding:12px 24px; gap:26px; }
    .fm-catalog-image { flex-basis:90px; width:90px; }
    .fm-subscription { flex-wrap:nowrap; padding:20px 24px; }
    .fm-subscription-action { flex-basis:40%; }
    .fm-home-catalog { padding-bottom:38px; }
    .fm-promotion-list { flex-wrap:wrap; gap:20px; }
    .fm-promotion { width:100%; }
    .fm-promotion-title { font-size:24px; line-height:30px; }
    .fm-promotion-image { width:44%; }
    .fm-promotion-phone { font-size:18px; }
    .fm-promotions { padding-bottom:40px; }
    .fm-popular { padding:40px 0; }
    .fm-popular-item { padding:12px 16px; }
    .fm-popular-item img { width:54px; }
    .fm-leaders { padding:40px 0; }
    .fm-about { padding:40px 0; }
    .fm-about-layout { flex-wrap:wrap; gap:28px; }
    .fm-about-copy { flex-basis:100%; }
    .fm-about-image { flex-basis:100%; width:100%; height:auto; max-height:400px; }
    .fm-advantages { padding-bottom:36px; }
    .fm-advantages-layout { padding-right:22px; padding-left:22px; gap:46px; }
    .fm-home .fm-advantages .fm-heading { margin-bottom:24px; font-size:28px; line-height:1.38984375; }
    .fm-advantages-text { max-width:none; }
    .fm-advantage { padding:26px; border:1px solid rgba(194,198,209,.2); }
    .fm-advantage-icon { margin-bottom:24px; }
    .fm-home #shemaraboty.fm-work { padding:40px 0; }
    .fm-work .fm-heading { margin-bottom:40px; }
    .fm-steps { row-gap:48px; }
    .fm-step { width:50%; }
    .fm-step-marker { width:96px; }
    .fm-step-icon { margin:-40px 0 0 56px; }
    .fm-step-rule { margin:40px 0 17px; background:#c2c6d1; }
    .fm-step-title { margin-top:0; }
    .fm-step-text { margin-top:24px; }
    .fm-certificates, .fm-news { padding-bottom:40px; }
    .fm-carousel:not(.swiper-initialized) .swiper-slide { width:calc((100% - 20px)/2); }
}
@media (max-width:599px) {
    .fm-advantages-cards { gap:0; }
    .fm-advantage { width:100%; min-height:0; padding:32px; }
}
@media (max-width:479px) {
    .fm-hero-title { font-size:28px; line-height:34px; }
    .fm-hero-image { height:195px; }
    .fm-category { padding:18px 14px; min-height:220px; }
    .fm-category-image { height:105px; }
    .fm-category-name { font-size:14px; line-height:20px; }
    .fm-catalog-item { padding:12px 16px; gap:16px; }
    .fm-catalog-image { flex-basis:68px; width:68px; }
    .fm-catalog-name { font-size:15px; line-height:22px; }
    .fm-subscription { flex-wrap:wrap; }
    .fm-subscription-action { flex-basis:100%; }
    .fm-promotion { flex-direction:column; gap:20px; padding:22px 18px; }
    .fm-promotion-copy { flex-basis:auto; width:100%; }
    .fm-promotion-title { font-size:20px; line-height:26px; }
    .fm-promotion-image { align-self:center; width:70%; max-width:265px; }
    .fm-promotion-manager { padding-bottom:0; }
    .fm-promotion-manager .fm-promotion-image { align-self:center; }
    .fm-promotion-email { margin-top:24px; }
    .fm-promotion-phone { font-size:15px; }
    .fm-button { font-size:14px; }
    .fm-popular-list { gap:16px; }
    .fm-popular-item { width:100%; min-height:86px; padding:12px 24px; }
    .fm-popular-item img { width:70px; }
    .fm-steps { row-gap:72px; }
    .fm-step { width:100%; }
    .fm-step-rule { max-width:304px; }
    .fm-step-text { max-width:290px; }
    .fm-carousel:not(.swiper-initialized) .swiper-slide { width:100%; }
}
@media (max-width:359px) {
    .fm-hero-title { font-size:24px; line-height:30px; }
}
@media (prefers-reduced-motion:reduce) {
    .fm-home *, .fm-home *::before, .fm-home *::after { transition-duration:.01ms!important; }
}
