/**
 * Heavy Truck Child Theme — основные стили
 *
 * ПРИНЦИПЫ ИЗОЛЯЦИИ:
 * 1. Все CSS-переменные с префиксом --heavy-*
 * 2. Стили скоуплены под .heavy-home (контент главной), .header, .footer, .mobile-menu
 * 3. Для элементов, которые Hello Elementor / Elementor Pro часто перебивают (кнопки, FAQ-кнопки,
 *    ссылки) используем !important точечно — чтобы избежать розовых hover и перекрашивания
 * 4. Кнопки .btn-* и .faq-q жёстко фиксируют внешний вид независимо от глобальных Button styles
 */

:root {
    --heavy-black: #0A0A0A;
    --heavy-dark: #141414;
    --heavy-dark-2: #1C1C1C;
    --heavy-white: #FFFFFF;
    --heavy-gray-50: #FAFAFA;
    --heavy-gray-100: #F4F4F4;
    --heavy-gray-150: #EDEDED;
    --heavy-gray-200: #E5E5E5;
    --heavy-gray-300: #D4D4D4;
    --heavy-gray-500: #737373;
    --heavy-gray-700: #404040;
    --heavy-gray-900: #171717;
    --heavy-accent: #EA5C26;
    --heavy-accent-hover: #D14D1C;
    --heavy-container: 1440px;
}

/* HTML5-spec: [hidden] всегда скрыт — CSS display не должен перебивать */
[hidden] { display: none !important; }

/* Safety net — убираем горизонтальный скролл от случайных переполнений */
html, body { overflow-x: hidden; max-width: 100%; }
.heavy-home { overflow-x: hidden; max-width: 100%; }

/* Все секции — не шире родителя */
.heavy-home section,
.heavy-home .section {
    max-width: 100%;
    overflow-x: clip;
}

/* Параграфы и длинный текст — мягкий перенос */
.heavy-home p,
.footer p, .footer .footer-tagline, .footer .footer-contact-value,
.mobile-menu a,
.heavy-home .faq-a-inner {
    overflow-wrap: break-word;
    max-width: 100%;
}

/* Заголовки — НЕ дефисами, целыми словами на новую строку */
.heavy-home h1, .heavy-home h2, .heavy-home h3, .heavy-home h4, .heavy-home h5, .heavy-home h6,
.heavy-home .hero-title,
.heavy-home .section-title,
.heavy-home .catalog-title,
.heavy-home .stock-title,
.heavy-home .about-title,
.heavy-home .special-title,
.heavy-home .cta-title,
.heavy-home .industry-name,
.heavy-home .faq-q-text,
.footer h5 {
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
    -webkit-hyphens: none;
    max-width: 100%;
}

/* Все картинки — не шире родителя (КРОМЕ логотипа — ему заданы явные размеры) */
.heavy-home img,
.header img:not(.logo-img),
.footer img:not(.logo-img),
.mobile-menu img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* Grid/flex дети — всегда могут сжиматься ниже контента */
.heavy-home .catalog-grid > *,
.heavy-home .stock-grid > *,
.heavy-home .partners-grid > *,
.heavy-home .industries-grid > *,
.heavy-home .faq-grid > *,
.heavy-home .faq-list > *,
.heavy-home .about-inner > *,
.heavy-home .special-inner > *,
.heavy-home .cta-inner-compact > *,
.heavy-home .section-head > *,
.header-inner > *,
.footer-top > * {
    min-width: 0;
}

/* Формы — не шире контейнера */
.heavy-home input,
.heavy-home textarea,
.heavy-home select,
.heavy-home button,
.heavy-home form {
    max-width: 100%;
    box-sizing: border-box;
}

/* === БАЗОВЫЕ СТИЛИ — только в наших скоупах === */
.heavy-home, .heavy-home *,
.header, .header *,
.footer, .footer *,
.mobile-menu, .mobile-menu *,
.backdrop { box-sizing: border-box; }

.heavy-home,
.header,
.footer,
.mobile-menu {
    font-family: 'IBM Plex Sans', sans-serif !important;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.heavy-home h1, .heavy-home h2, .heavy-home h3, .heavy-home h4, .heavy-home h5,
.header .logo-name,
.footer h5,
.mobile-menu a {
    font-family: 'Russo One', sans-serif !important;
    font-weight: 400 !important;
    letter-spacing: -0.01em;
    line-height: 1.05;
    text-transform: uppercase;
}

.heavy-home .container,
.header-inner,
.footer .container {
    max-width: var(--heavy-container);
    margin: 0 auto;
    padding: 0 40px;
    box-sizing: border-box;
}
.heavy-home .container { width: 100%; }

.heavy-home a,
.header a,
.footer a,
.mobile-menu a {
    color: inherit;
    text-decoration: none;
}

.heavy-home img { max-width: 100%; height: auto; display: block; }

/* === КНОПКИ === */
.heavy-home .btn,
.header .btn-cta-header,
.heavy-home .cta-form-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 20px 32px;
    font-size: 13px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.12em;
    transition: background 0.25s, color 0.25s, border-color 0.25s, transform 0.25s !important;
    border: 1px solid transparent;
    font-family: 'IBM Plex Sans', sans-serif !important;
    cursor: pointer;
    text-decoration: none !important;
    line-height: 1.2;
    border-radius: 0 !important;
    box-shadow: none !important;
}

.heavy-home .btn-primary,
.heavy-home .btn-primary:link,
.heavy-home .btn-primary:visited {
    background: var(--heavy-accent) !important;
    color: var(--heavy-white) !important;
    border-color: var(--heavy-accent) !important;
}
.heavy-home .btn-primary:hover,
.heavy-home .btn-primary:focus,
.heavy-home .btn-primary:active {
    background: var(--heavy-accent-hover) !important;
    color: var(--heavy-white) !important;
    border-color: var(--heavy-accent-hover) !important;
    transform: translateY(-2px);
}
.heavy-home .btn-primary i { transition: transform 0.3s cubic-bezier(.2,.7,.2,1); }
.heavy-home .btn-primary:hover i { transform: translateX(6px); }

.heavy-home .btn-dark,
.heavy-home .btn-dark:link,
.heavy-home .btn-dark:visited {
    background: var(--heavy-black) !important;
    color: var(--heavy-white) !important;
    border-color: var(--heavy-black) !important;
}
.heavy-home .btn-dark:hover,
.heavy-home .btn-dark:focus {
    background: var(--heavy-accent) !important;
    color: var(--heavy-white) !important;
    border-color: var(--heavy-accent) !important;
}

.heavy-home .btn-outline,
.heavy-home .btn-outline:link,
.heavy-home .btn-outline:visited {
    background: transparent !important;
    color: var(--heavy-white) !important;
    border-color: rgba(255,255,255,0.4) !important;
}
.heavy-home .btn-outline:hover,
.heavy-home .btn-outline:focus {
    background: var(--heavy-white) !important;
    color: var(--heavy-black) !important;
    border-color: var(--heavy-white) !important;
}
.heavy-home .btn-outline i { transition: transform 0.3s cubic-bezier(.2,.7,.2,1); }
.heavy-home .btn-outline:hover i { transform: scale(1.15); }

/* === HEADER === */
.header {
    position: fixed !important;
    top: 0; left: 0; right: 0;
    z-index: 1000;
    background: var(--heavy-black) !important;
    border-bottom: 1px solid rgba(255,255,255,0.08);
    height: 88px;
    display: flex;
    align-items: center;
    transition: height 0.3s, background 0.3s;
}
.admin-bar .header { top: 32px; }
@media screen and (max-width: 782px) { .admin-bar .header { top: 46px; } }

.header.scrolled {
    height: 72px;
    background: rgba(10,10,10,0.95) !important;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    max-width: var(--heavy-container);
    gap: 40px;
    box-sizing: border-box;
    margin: 0 auto;
}

.header .logo {
    display: flex !important;
    align-items: center;
    gap: 14px;
    color: var(--heavy-white) !important;
    flex-shrink: 0;
    text-decoration: none !important;
}

.header .logo-img,
.footer .logo-img {
    display: block !important;
    width: auto !important;
    object-fit: contain;
    transition: height 0.3s;
}

.header .logo-img {
    height: 42px !important;
    max-width: 200px !important;
}

.header.scrolled .logo-img {
    height: 36px !important;
}

.footer .logo-img {
    height: 48px !important;
    max-width: 220px !important;
}

.header .nav, .header .nav ul, .header .nav li {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
.header .nav { display: flex; align-items: center; gap: 32px; }
.header .nav > ul { display: flex; align-items: center; gap: 32px; }

.header .nav a {
    font-size: 13px !important;
    font-weight: 500 !important;
    color: var(--heavy-gray-300) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    transition: color 0.2s !important;
    position: relative;
    display: inline-block;
    padding: 4px 0 !important;
    text-decoration: none !important;
    background: transparent !important;
    border: none !important;
    font-family: 'IBM Plex Sans', sans-serif !important;
}
.header .nav a:hover { color: var(--heavy-accent) !important; }
.header .nav .current-menu-item > a,
.header .nav .current_page_item > a { color: var(--heavy-white) !important; }

.header .nav a::after {
    content: '';
    position: absolute;
    bottom: -6px;
    left: 0;
    width: 0;
    height: 2px;
    background: var(--heavy-accent);
    transition: width 0.3s cubic-bezier(.2,.7,.2,1);
}
.header .nav a:hover::after,
.header .nav .current-menu-item > a::after,
.header .nav .current_page_item > a::after { width: 100%; }

.header-actions { display: flex; align-items: center; gap: 20px; flex-shrink: 0; }

.header .search-btn {
    width: 40px; height: 40px; min-width: 40px;
    border: 1px solid rgba(255,255,255,0.15) !important;
    color: var(--heavy-white) !important;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
    background: transparent !important;
    cursor: pointer;
    padding: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}
.header .search-btn:hover {
    border-color: var(--heavy-accent) !important;
    color: var(--heavy-accent) !important;
}

.header .header-cart {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: transparent !important;
    border: 1px solid rgba(255,255,255,0.15) !important;
    color: var(--heavy-white) !important;
    text-decoration: none !important;
    transition: border-color 0.2s, color 0.2s;
    border-radius: 0 !important;
}
.header .header-cart:hover {
    border-color: var(--heavy-accent) !important;
    color: var(--heavy-accent) !important;
}
.header .header-cart-count {
    position: absolute;
    top: -8px;
    right: -8px;
    min-width: 20px;
    height: 20px;
    padding: 0 5px;
    background: var(--heavy-accent);
    color: var(--heavy-white);
    font-family: 'IBM Plex Mono', monospace !important;
    font-size: 11px;
    font-weight: 600;
    line-height: 20px;
    text-align: center;
    border-radius: 0;
    opacity: 0;
    transform: scale(0.6);
    transition: opacity 0.2s, transform 0.2s cubic-bezier(.2,.7,.2,1);
    pointer-events: none;
}
.header .header-cart-count[data-active] {
    opacity: 1;
    transform: scale(1);
}

.header-phone {
    color: var(--heavy-white) !important;
    font-family: 'IBM Plex Mono', monospace !important;
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0.02em;
    text-decoration: none !important;
    transition: color 0.2s;
}
.header-phone:hover { color: var(--heavy-accent) !important; }

.btn-cta-header {
    background: transparent !important;
    color: var(--heavy-white) !important;
    padding: 14px 22px;
    font-size: 12px !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    transition: all 0.2s;
    display: flex;
    align-items: center;
    gap: 10px;
    border: 1px solid var(--heavy-accent) !important;
    text-decoration: none !important;
    line-height: 1.2;
    border-radius: 0 !important;
}
.btn-cta-header:hover {
    background: var(--heavy-accent) !important;
    color: var(--heavy-white) !important;
}

/* === BURGER + MOBILE === */
.burger {
    display: none;
    width: 44px; height: 44px;
    background: transparent !important;
    border: 1px solid rgba(255,255,255,0.15) !important;
    color: var(--heavy-white) !important;
    cursor: pointer;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    padding: 0 !important;
    border-radius: 0 !important;
}
.burger:hover { border-color: var(--heavy-accent) !important; color: var(--heavy-accent) !important; }

.mobile-menu {
    position: fixed;
    top: 0; right: 0;
    width: min(380px, 90vw);
    height: 100vh;
    background: var(--heavy-black) !important;
    z-index: 10001;
    padding: 100px 40px 40px;
    transform: translateX(100%);
    transition: transform 0.4s cubic-bezier(.2,.7,.2,1);
    overflow-y: auto;
}
.mobile-menu.open { transform: translateX(0); }

.mobile-menu-close {
    position: absolute;
    top: 24px; right: 24px;
    width: 44px; height: 44px;
    background: transparent !important;
    border: 1px solid rgba(255,255,255,0.15) !important;
    color: var(--heavy-white) !important;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    padding: 0 !important;
    border-radius: 0 !important;
}

.mobile-menu nav ul, .mobile-menu nav li {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.mobile-menu a {
    display: block !important;
    padding: 18px 0 !important;
    color: var(--heavy-white) !important;
    font-size: 20px !important;
    text-transform: uppercase;
    border-bottom: 1px solid rgba(255,255,255,0.08);
    letter-spacing: 0.02em;
    text-decoration: none !important;
    background: transparent !important;
}
.mobile-menu a:hover { color: var(--heavy-accent) !important; }

.mobile-menu-contacts {
    margin-top: 40px;
    padding-top: 32px;
    border-top: 1px solid rgba(255,255,255,0.08);
}
.mobile-menu-contact { margin-bottom: 20px; }
.mobile-menu-contact-label {
    font-family: 'IBM Plex Mono', monospace !important;
    font-size: 11px;
    color: var(--heavy-gray-500);
    letter-spacing: 0.15em;
    text-transform: uppercase;
    margin-bottom: 4px;
}
.mobile-menu-contact-value {
    color: var(--heavy-white) !important;
    font-size: 16px !important;
    text-transform: none !important;
    font-family: 'IBM Plex Sans', sans-serif !important;
    padding: 0 !important;
    border: none !important;
}

.backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.6);
    z-index: 10000;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s;
}
.backdrop.show { opacity: 1; pointer-events: auto; }

/* === SEARCH OVERLAY === */
.search-overlay {
    position: fixed;
    inset: 0;
    background: rgba(10, 10, 10, 0.96);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    z-index: 10002;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s cubic-bezier(.2,.7,.2,1);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px 20px;
}

.search-overlay.open {
    opacity: 1;
    pointer-events: auto;
}

.search-overlay-close {
    position: absolute;
    top: 24px;
    right: 24px;
    width: 44px;
    height: 44px;
    background: transparent !important;
    border: 1px solid rgba(255,255,255,0.15) !important;
    color: var(--heavy-white) !important;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    padding: 0 !important;
    border-radius: 0 !important;
    transition: all 0.2s;
}

.search-overlay-close:hover {
    border-color: var(--heavy-accent) !important;
    color: var(--heavy-accent) !important;
}

.search-overlay-inner {
    width: 100%;
    max-width: 720px;
    transform: translateY(20px);
    transition: transform 0.4s cubic-bezier(.2,.7,.2,1);
}

.search-overlay.open .search-overlay-inner {
    transform: translateY(0);
}

.search-overlay-label {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 12px;
    color: var(--heavy-accent);
    letter-spacing: 0.2em;
    margin-bottom: 20px;
    text-transform: uppercase;
}

.search-overlay-form {
    display: flex;
    align-items: center;
    gap: 16px;
    border-bottom: 2px solid rgba(255,255,255,0.2);
    padding-bottom: 12px;
    transition: border-color 0.2s;
}

.search-overlay-form:focus-within {
    border-bottom-color: var(--heavy-accent);
}

.search-overlay-input,
.search-overlay-input:focus {
    flex: 1 1 auto;
    min-width: 0;
    background: transparent !important;
    border: none !important;
    padding: 12px 0 !important;
    font-family: 'Russo One', sans-serif !important;
    font-size: clamp(24px, 4vw, 48px) !important;
    color: var(--heavy-white) !important;
    outline: none !important;
    box-shadow: none !important;
    text-transform: uppercase;
    border-radius: 0 !important;
    box-sizing: border-box;
    width: 100%;
}

.search-overlay-input::placeholder {
    color: rgba(255,255,255,0.3);
}

.search-overlay-submit {
    width: 56px;
    height: 56px;
    min-width: 56px;
    background: var(--heavy-accent) !important;
    color: var(--heavy-white) !important;
    border: none !important;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 18px;
    transition: background 0.2s;
    border-radius: 0 !important;
    padding: 0 !important;
    flex-shrink: 0;
}

.search-overlay-submit:hover {
    background: var(--heavy-accent-hover) !important;
}

.search-overlay-hint {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 12px;
    color: var(--heavy-gray-500);
    letter-spacing: 0.1em;
    margin-top: 20px;
    text-transform: uppercase;
}

@media (max-width: 640px) {
    .search-overlay { padding: 30px 20px; }
    .search-overlay-close { top: 16px; right: 16px; }
    .search-overlay-label { font-size: 11px; margin-bottom: 16px; }
    .search-overlay-submit { width: 48px; height: 48px; min-width: 48px; font-size: 16px; }
    .search-overlay-hint { display: none; }
}

/* === HERO === */
.heavy-home .hero {
    position: relative;
    min-height: 100vh;
    background: var(--heavy-black);
    overflow: hidden;
    padding-top: 88px;
    display: flex;
}

.heavy-home .hero-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    opacity: 0.6;
    transform: translateZ(0);
    transition: transform 1.2s cubic-bezier(.2,.7,.2,1);
}

.heavy-home .hero-bg::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(10,10,10,0.92) 0%, rgba(10,10,10,0.65) 50%, rgba(10,10,10,0.35) 100%);
}

.heavy-home .hero-inner {
    position: relative;
    z-index: 2;
    max-width: var(--heavy-container);
    margin: 0 auto;
    padding: 80px 40px;
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.heavy-home .hero-title {
    font-size: clamp(34px, 4.8vw, 68px) !important;
    color: var(--heavy-white) !important;
    margin: 0 0 28px !important;
    letter-spacing: -0.02em;
    hyphens: none !important;
    -webkit-hyphens: none !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
}
.heavy-home .hero-title span { color: var(--heavy-accent); }

.heavy-home .hero-lead {
    font-size: 18px;
    line-height: 1.6;
    color: var(--heavy-gray-300);
    max-width: 580px;
    margin: 0 0 40px;
    font-weight: 300;
}

.heavy-home .hero-actions { display: flex; gap: 16px; flex-wrap: wrap; }

/* === SECTIONS === */
.heavy-home .section { padding: 120px 0; position: relative; }

.heavy-home .section-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 40px;
    margin-bottom: 60px;
}
.heavy-home .section-head-left { max-width: 720px; }

.heavy-home .section-title {
    font-size: clamp(36px, 4vw, 64px) !important;
    color: var(--heavy-black) !important;
    margin: 0 0 20px !important;
}
.heavy-home .section-title .accent { color: var(--heavy-accent) !important; }

.heavy-home .section-desc {
    font-size: 17px;
    color: var(--heavy-gray-700);
    line-height: 1.6;
    max-width: 580px;
    margin: 0;
}
.heavy-home .section-head-right {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-shrink: 0;
}

/* === CATALOG === */
.heavy-home .catalog { background: var(--heavy-white); padding: 120px 0; }
.heavy-home .catalog-grid {
    display: grid;
    grid-template-columns: 2fr 2fr 1fr;
    grid-template-rows: auto auto auto;
    gap: 1px;
    background: var(--heavy-gray-200);
    border: 1px solid var(--heavy-gray-200);
}
.heavy-home .catalog-item {
    background: var(--heavy-gray-50);
    position: relative;
    padding: 32px;
    min-height: 340px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transition: background 0.4s cubic-bezier(.2,.7,.2,1), box-shadow 0.4s;
    cursor: pointer;
    text-decoration: none !important;
    color: inherit !important;
}
.heavy-home .catalog-item::before {
    content: '';
    position: absolute;
    top: 0; left: 0;
    width: 0; height: 3px;
    background: var(--heavy-accent);
    transition: width 0.4s;
    z-index: 3;
}
.heavy-home .catalog-item:hover {
    background: var(--heavy-white);
    box-shadow: 0 20px 40px -20px rgba(0,0,0,0.15);
}
.heavy-home .catalog-item:hover::before { width: 100%; }
.heavy-home .catalog-item:hover .catalog-img-wrap img {
    transform: scale(1.06);
    filter: grayscale(0.3) opacity(0.7);
}
.heavy-home .catalog-item.large { grid-column: span 2; min-height: 440px; }

.heavy-home .catalog-title {
    font-size: 28px !important;
    color: var(--heavy-black) !important;
    margin: 0 0 10px !important;
    line-height: 1.05 !important;
}
.heavy-home .catalog-item.large .catalog-title { font-size: 40px !important; }

.heavy-home .catalog-desc {
    font-size: 14px;
    color: var(--heavy-gray-700);
    max-width: 320px;
    line-height: 1.5;
    margin: 0 0 16px;
}

.heavy-home .catalog-specs {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    font-family: 'IBM Plex Mono', monospace !important;
    font-size: 12px;
    color: var(--heavy-gray-700);
}

.heavy-home .catalog-img-wrap {
    flex: 1;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    min-height: 140px;
    margin-top: 20px;
    overflow: hidden;
    position: relative;
}
.heavy-home .catalog-item.large .catalog-img-wrap { min-height: 220px; }

.heavy-home .catalog-img-wrap img {
    max-width: 100%;
    max-height: 220px;
    width: auto;
    height: auto;
    object-fit: contain;
    transition: transform 0.5s, filter 0.5s;
    filter: grayscale(1) opacity(0.35);
    mix-blend-mode: multiply;
}
.heavy-home .catalog-item.large .catalog-img-wrap img { max-height: 280px; }

.heavy-home .catalog-arrow {
    position: absolute;
    top: 24px; right: 24px;
    width: 44px; height: 44px;
    background: var(--heavy-white);
    color: var(--heavy-black);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s;
    border: 1px solid var(--heavy-gray-200);
    z-index: 2;
}
.heavy-home .catalog-item:hover .catalog-arrow {
    background: var(--heavy-accent);
    color: var(--heavy-white);
    border-color: var(--heavy-accent);
}

.heavy-home .cat-1 { grid-column: 1 / 3; grid-row: 1; }
.heavy-home .cat-2 { grid-column: 3 / 4; grid-row: 1 / 3; }
.heavy-home .cat-3 { grid-column: 1 / 2; grid-row: 2; }
.heavy-home .cat-4 { grid-column: 2 / 3; grid-row: 2; }
.heavy-home .cat-5 { grid-column: 1 / 2; grid-row: 3; }
.heavy-home .cat-6 { grid-column: 2 / 3; grid-row: 3; }
.heavy-home .cat-7 { grid-column: 3 / 4; grid-row: 3; }

.heavy-home .catalog-item--dark {
    background: var(--heavy-black) !important;
    color: var(--heavy-white) !important;
    justify-content: space-between;
}
.heavy-home .catalog-item--dark:hover { background: var(--heavy-black) !important; }
.heavy-home .catalog-item--dark .catalog-title { color: var(--heavy-white) !important; }
.heavy-home .catalog-item--dark .catalog-desc { color: var(--heavy-gray-300); }
.heavy-home .cat-7-body { margin-top: 60px; }

.heavy-home .catalog-arrow--accent {
    background: var(--heavy-accent);
    color: var(--heavy-white);
    border-color: var(--heavy-accent);
}

/* === STOCK === */
.heavy-home .stock { background: var(--heavy-gray-50); padding: 120px 0; }
.heavy-home .stock-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.heavy-home .stock-card {
    background: var(--heavy-white);
    border: 1px solid var(--heavy-gray-200);
    transition: border-color 0.3s, transform 0.4s cubic-bezier(.2,.7,.2,1), box-shadow 0.4s;
    display: flex;
    flex-direction: column;
}
.heavy-home .stock-card:hover {
    border-color: var(--heavy-accent);
    transform: translateY(-6px);
    box-shadow: 0 20px 40px -20px rgba(0,0,0,0.2);
}
.heavy-home .stock-img {
    aspect-ratio: 4/3;
    background: var(--heavy-gray-100);
    position: relative;
    overflow: hidden;
}
.heavy-home .stock-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: grayscale(1) opacity(0.5);
    mix-blend-mode: multiply;
    transition: filter 0.4s;
}
.heavy-home .stock-card:hover .stock-img img { filter: grayscale(0.3) opacity(0.8); }
.heavy-home .stock-info { padding: 24px; flex: 1; display: flex; flex-direction: column; }
.heavy-home .stock-title {
    font-size: 22px !important;
    color: var(--heavy-black) !important;
    margin: 0 0 16px !important;
    text-transform: uppercase;
    line-height: 1.1 !important;
}
.heavy-home .stock-specs-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    padding: 16px 0;
    border-top: 1px solid var(--heavy-gray-200);
    border-bottom: 1px solid var(--heavy-gray-200);
    margin-bottom: 20px;
}
.heavy-home .stock-spec { font-family: 'IBM Plex Mono', monospace !important; font-size: 12px; }
.heavy-home .stock-spec-label {
    color: var(--heavy-gray-500);
    display: block;
    margin-bottom: 2px;
    font-size: 10px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}
.heavy-home .stock-spec-value { color: var(--heavy-black); font-weight: 600; }
.heavy-home .stock-price-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-top: auto;
    padding-top: 8px;
}
.heavy-home .stock-price-label {
    font-family: 'IBM Plex Mono', monospace !important;
    font-size: 10px;
    color: var(--heavy-gray-500);
    letter-spacing: 0.15em;
    text-transform: uppercase;
    margin-bottom: 4px;
}
.heavy-home .stock-price { font-family: 'Russo One', sans-serif !important; font-size: 24px; color: var(--heavy-black); }
.heavy-home .stock-btn {
    width: 44px; height: 44px;
    background: var(--heavy-black);
    color: var(--heavy-white);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s;
}
.heavy-home .stock-card:hover .stock-btn {
    background: var(--heavy-accent);
    color: var(--heavy-white);
}

/* === PARTNERS === */
.heavy-home .partners {
    background: var(--heavy-white);
    padding: 100px 0;
    border-top: 1px solid var(--heavy-gray-200);
    border-bottom: 1px solid var(--heavy-gray-200);
}
.heavy-home .partners-head {
    text-align: center;
    max-width: 720px;
    margin: 0 auto 60px;
}
.heavy-home .partners-head .section-title { margin-bottom: 16px !important; }
.heavy-home .partners-desc { margin: 20px auto 0 !important; }
.heavy-home .partners-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 1px;
    background: var(--heavy-gray-200);
    border: 1px solid var(--heavy-gray-200);
}
.heavy-home .partner {
    background: var(--heavy-white);
    padding: 40px 24px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 180px;
    text-align: center;
    position: relative;
}
.heavy-home .partner-logo {
    max-width: 100%;
    max-height: 60px;
    width: auto;
    height: auto;
    object-fit: contain;
    opacity: 0.75;
    transition: opacity 0.3s, filter 0.3s;
    filter: grayscale(1);
}

.heavy-home .partner:hover .partner-logo {
    opacity: 1;
    filter: grayscale(0);
}

/* === INDUSTRIES === */
.heavy-home .industries { background: var(--heavy-gray-100); padding: 120px 0; }
.heavy-home .industries-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 1px;
    background: var(--heavy-gray-200);
    border: 1px solid var(--heavy-gray-200);
}
.heavy-home .industry {
    background: var(--heavy-white);
    padding: 40px 28px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    transition: all 0.3s;
    cursor: pointer;
    position: relative;
    overflow: hidden;
}
.heavy-home .industry::before {
    content: '';
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 0;
    background: var(--heavy-black);
    transition: height 0.4s;
    z-index: 1;
}
.heavy-home .industry:hover::before { height: 100%; }
.heavy-home .industry:hover .industry-name { color: var(--heavy-white) !important; }
.heavy-home .industry:hover .industry-icon { color: var(--heavy-accent); }
.heavy-home .industry > * { position: relative; z-index: 2; }
.heavy-home .industry-icon {
    width: 56px; height: 56px;
    color: var(--heavy-black);
    transition: color 0.3s;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    font-size: 42px;
}
.heavy-home .industry-icon i { line-height: 1; }
.heavy-home .industry-name {
    font-family: 'Russo One', sans-serif !important;
    font-size: 18px !important;
    color: var(--heavy-black);
    line-height: 1.1 !important;
    text-transform: uppercase;
    transition: color 0.3s;
    margin: 0 !important;
}

/* === ABOUT === */
.heavy-home .about { background: var(--heavy-white); padding: 0; }
.heavy-home .about-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 680px;
}
.heavy-home .about-left {
    padding: 100px 40px 100px 60px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    max-width: 720px;
    justify-self: start;
    width: 100%;
}
.heavy-home .about-title {
    font-size: clamp(28px, 3vw, 42px) !important;
    margin: 0 0 28px !important;
    line-height: 1.1 !important;
}
.heavy-home .about-title .accent { color: var(--heavy-accent); }
.heavy-home .about-desc {
    font-size: 16px;
    color: var(--heavy-gray-700);
    line-height: 1.7;
    margin: 0 0 24px;
}
.heavy-home .about-desc:last-of-type { margin-bottom: 40px; }
.heavy-home .about-btn { align-self: flex-start; }
.heavy-home .about-right {
    /* background-image задаётся через wp_add_inline_style в inc/enqueue.php */
    background-size: cover;
    background-position: center;
    position: relative;
}
.heavy-home .about-right::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(225deg, rgba(10,10,10,0.2) 0%, transparent 100%);
}

/* === SPECIAL === */
.heavy-home .special { background: var(--heavy-white); padding: 0; }
.heavy-home .special-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 680px;
}
.heavy-home .special-left {
    background: var(--heavy-black);
    color: var(--heavy-white);
    padding: 100px 80px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.heavy-home .special-title {
    font-size: clamp(40px, 4.5vw, 72px) !important;
    color: var(--heavy-white) !important;
    margin: 0 0 24px !important;
}
.heavy-home .special-title .accent { color: var(--heavy-accent); }
.heavy-home .special-desc {
    font-size: 17px;
    color: var(--heavy-gray-300);
    line-height: 1.7;
    margin: 0 0 32px;
    max-width: 500px;
}
.heavy-home .special-btn { align-self: flex-start; }
.heavy-home .special-right {
    /* background-image задаётся через wp_add_inline_style в inc/enqueue.php */
    background-size: cover;
    background-position: center;
    position: relative;
}
.heavy-home .special-right::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(45deg, rgba(10,10,10,0.4) 0%, transparent 50%);
}

/* === FAQ — ключевой блок конфликта, жёстко сбрасываем всё === */
.heavy-home .faq { background: var(--heavy-white); padding: 120px 0; overflow: hidden; }
.heavy-home .faq-grid {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 80px;
    min-width: 0;
}
.heavy-home .faq-grid > * { min-width: 0; }
.heavy-home .faq-intro { margin-top: 20px !important; }
.heavy-home .faq-list {
    display: flex;
    flex-direction: column;
    border-top: 1px solid var(--heavy-gray-200);
    min-width: 0;
    width: 100%;
}
.heavy-home .faq-item {
    border-bottom: 1px solid var(--heavy-gray-200);
    min-width: 0;
    width: 100%;
}

.heavy-home .faq-q,
.heavy-home .faq-q:link,
.heavy-home .faq-q:visited,
.heavy-home .faq-q:hover,
.heavy-home .faq-q:focus,
.heavy-home .faq-q:active {
    padding: 24px 0 !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    gap: 20px !important;
    cursor: pointer;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    text-align: left !important;
    transition: color 0.2s !important;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    color: var(--heavy-black) !important;
    font-family: 'IBM Plex Sans', sans-serif !important;
    font-size: inherit !important;
    font-weight: normal !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    outline: none !important;
    text-decoration: none !important;
    min-height: auto !important;
    line-height: 1.2 !important;
    transform: none !important;
    flex-wrap: nowrap !important;
}
.heavy-home .faq-q:hover,
.heavy-home .faq-q.active {
    color: var(--heavy-accent) !important;
    background: transparent !important;
    background-color: transparent !important;
}

.heavy-home .faq-q-text {
    font-family: 'Russo One', sans-serif !important;
    font-size: 17px !important;
    text-transform: uppercase !important;
    line-height: 1.2 !important;
    color: inherit !important;
    font-weight: 400 !important;
    margin: 0 !important;
    padding: 0 !important;
    flex: 1 1 0;
    min-width: 0;
    max-width: 100%;
    overflow-wrap: break-word;
    word-wrap: break-word;
    white-space: normal;
    hyphens: none;
    -webkit-hyphens: none;
}

.heavy-home .faq-toggle {
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    border: 1px solid var(--heavy-gray-300) !important;
    flex-shrink: 0;
    display: flex !important;
    align-items: center;
    justify-content: center;
    transition: transform 0.4s cubic-bezier(.2,.7,.2,1), background 0.3s, border-color 0.3s, color 0.3s !important;
    color: var(--heavy-black) !important;
    background: transparent !important;
    padding: 0 !important;
    font-size: 14px;
    border-radius: 0 !important;
    transform: none !important;
}

.heavy-home .faq-q.active .faq-toggle {
    background: var(--heavy-accent) !important;
    border-color: var(--heavy-accent) !important;
    color: var(--heavy-white) !important;
    transform: rotate(45deg) !important;
}

.heavy-home .faq-a {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease;
}
.heavy-home .faq-a-inner {
    padding: 0 0 28px 0;
    font-size: 15px;
    color: var(--heavy-gray-700);
    line-height: 1.7;
    max-width: 680px;
    word-break: break-word;
    overflow-wrap: anywhere;
}

/* === CTA === */
.heavy-home .cta-section {
    background-color: var(--heavy-black) !important;
    /* background-image задаётся через wp_add_inline_style в inc/enqueue.php */
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    color: var(--heavy-white);
    padding: 100px 0;
    position: relative;
    overflow: hidden;
}
.heavy-home .cta-section::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--heavy-accent), transparent);
}
.heavy-home .cta-inner-compact {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
    max-width: 1100px;
    margin: 0 auto;
}
.heavy-home .cta-title {
    font-size: clamp(32px, 3.8vw, 52px) !important;
    color: var(--heavy-white) !important;
    margin: 0 0 20px !important;
}
.heavy-home .cta-title .accent { color: var(--heavy-accent); }
.heavy-home .cta-desc {
    font-size: 16px;
    color: var(--heavy-gray-300);
    line-height: 1.6;
    max-width: 460px;
    margin: 0;
}
.heavy-home .cta-form {
    background: var(--heavy-white);
    color: var(--heavy-black);
    padding: 40px 36px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    position: relative;
}
.heavy-home .cta-form::before {
    content: '';
    position: absolute;
    top: 0; left: 0;
    width: 4px;
    height: 80px;
    background: var(--heavy-accent);
}
.heavy-home .cta-form h3 {
    font-size: 22px !important;
    color: var(--heavy-black) !important;
    margin: 0 0 12px !important;
}
.heavy-home .cta-form-row { display: flex; flex-direction: column; gap: 6px; }
.heavy-home .cta-form-label {
    font-family: 'IBM Plex Mono', monospace !important;
    font-size: 11px !important;
    color: var(--heavy-gray-500) !important;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-weight: 500;
    margin: 0;
}
.heavy-home .cta-form-input,
.heavy-home .cta-form-input:focus {
    background: transparent !important;
    border: none !important;
    border-bottom: 1px solid var(--heavy-gray-200) !important;
    padding: 10px 0 !important;
    color: var(--heavy-black) !important;
    font-family: 'IBM Plex Sans', sans-serif !important;
    font-size: 15px !important;
    outline: none !important;
    transition: border-color 0.2s !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    width: 100%;
}
.heavy-home .cta-form-input:focus { border-bottom-color: var(--heavy-accent) !important; }
.heavy-home .cta-form-input::placeholder { color: var(--heavy-gray-300); }

.heavy-home .cta-form-submit,
.heavy-home .cta-form-submit:link,
.heavy-home .cta-form-submit:visited {
    background: var(--heavy-accent) !important;
    color: var(--heavy-white) !important;
    padding: 18px !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: 0.15em !important;
    text-transform: uppercase !important;
    margin-top: 12px;
    transition: all 0.2s !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 10px;
    border: none !important;
    cursor: pointer;
    font-family: 'IBM Plex Sans', sans-serif !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    text-decoration: none !important;
}
.heavy-home .cta-form-submit:hover,
.heavy-home .cta-form-submit:focus {
    background: var(--heavy-accent-hover) !important;
    color: var(--heavy-white) !important;
}
.heavy-home .cta-form-privacy {
    font-size: 11px;
    color: var(--heavy-gray-500);
    line-height: 1.5;
}
.heavy-home .cta-form-privacy a {
    color: var(--heavy-accent) !important;
    text-decoration: none !important;
}

/* === ABOUT LIST (новый формат "Мы — завод") === */
.heavy-home .about-list {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 0 32px 0 !important;
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.heavy-home .about-list li {
    position: relative;
    padding-left: 32px;
    font-size: 17px;
    color: var(--heavy-gray-700);
    line-height: 1.5;
    list-style: none;
}
.heavy-home .about-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 9px;
    width: 18px;
    height: 2px;
    background: var(--heavy-accent);
}
.heavy-home .about-list + .about-desc {
    margin-bottom: 32px !important;
}

/* === GALLERY: Наши тралы в работе === */
.heavy-home .gallery { background: var(--heavy-white); padding: 120px 0; }

.heavy-home .gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}

.heavy-home .gallery-item {
    aspect-ratio: 4/3;
    background: var(--heavy-gray-100);
    position: relative;
    overflow: hidden;
    cursor: pointer;
    transition: transform 0.4s cubic-bezier(.2,.7,.2,1), box-shadow 0.4s;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    border: 1px solid var(--heavy-gray-200);
}

.heavy-home .gallery-item:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 32px -16px rgba(0,0,0,0.15);
}

.heavy-home .gallery-item img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s;
}

.heavy-home .gallery-item:hover img { transform: scale(1.05); }

.heavy-home a.gallery-item,
.heavy-home .gallery-item--photo {
    display: block !important;
    text-decoration: none !important;
}

/* «Показать ещё» — скрытые фото галереи (a.gallery-item--more для приоритета над a.gallery-item--photo) */
.heavy-home .gallery-grid a.gallery-item--more { display: none !important; }
.heavy-home .gallery.is-expanded a.gallery-item--more { display: block !important; }

.heavy-home .gallery-more-wrap {
    display: flex;
    justify-content: center;
    margin-top: 32px;
}
.heavy-home .gallery-more-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 32px;
    font-family: var(--heavy-font-mono, "IBM Plex Mono", monospace);
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: 13px;
    font-weight: 600;
    color: var(--heavy-gray-900);
    background: transparent;
    border: 1.5px solid var(--heavy-gray-300);
    border-radius: 999px;
    cursor: pointer;
    transition: color .18s ease, border-color .18s ease, background .18s ease;
}
.heavy-home .gallery-more-btn:hover {
    color: var(--heavy-accent);
    border-color: var(--heavy-accent);
    background: var(--heavy-white);
}
.heavy-home .gallery-more-btn i {
    font-size: 11px;
    transition: transform .2s ease;
}
.heavy-home .gallery.is-expanded .gallery-more-btn i { transform: rotate(180deg); }
.heavy-home .gallery-more-btn .gallery-more-count { color: var(--heavy-gray-500); }

/* Фикс лайтбокса: сторонний reset.css красит [type=button]:focus в розовый (#CC3366).
   Возвращаем кнопкам Fancybox их штатный фон на focus/hover/active. */
.fancybox__container [type="button"]:focus,
.fancybox__container [type="button"]:focus-visible,
.fancybox__container [type="button"]:active,
.fancybox__container [type="button"]:hover,
.fancybox__container .f-button:focus,
.fancybox__container .f-button:focus-visible,
.fancybox__container .f-thumbs__slide__button:focus {
    background-color: var(--f-button-bg, transparent) !important;
    box-shadow: none !important;
    outline: none !important;
}
.fancybox__container .f-button:hover {
    background-color: var(--f-button-hover-bg, rgba(24,24,27,.3)) !important;
}
.fancybox__container .f-button:active {
    background-color: var(--f-button-active-bg, rgba(24,24,27,.5)) !important;
}

.heavy-home .gallery-item--placeholder {
    background: linear-gradient(135deg, var(--heavy-gray-50) 0%, var(--heavy-gray-150) 100%);
}

.heavy-home .gallery-placeholder-icon {
    font-size: 48px;
    color: var(--heavy-gray-300);
    transition: color 0.3s;
}

.heavy-home .gallery-item--placeholder:hover .gallery-placeholder-icon {
    color: var(--heavy-accent);
}

.heavy-home .gallery-placeholder-label {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 11px;
    color: var(--heavy-gray-500);
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

/* === LOGISTICS === */
.heavy-home .logistics { background: var(--heavy-gray-50); padding: 120px 0; }

.heavy-home .logistics-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.heavy-home .logistics-card {
    background: var(--heavy-white);
    padding: 48px 36px;
    border: 1px solid var(--heavy-gray-200);
    position: relative;
    transition: border-color 0.3s, transform 0.4s cubic-bezier(.2,.7,.2,1), box-shadow 0.4s;
    overflow: hidden;
}

.heavy-home .logistics-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0;
    width: 0;
    height: 4px;
    background: var(--heavy-accent);
    transition: width 0.4s cubic-bezier(.2,.7,.2,1);
}

.heavy-home .logistics-card:hover {
    border-color: var(--heavy-accent);
    transform: translateY(-6px);
    box-shadow: 0 20px 40px -20px rgba(0,0,0,0.15);
}
.heavy-home .logistics-card:hover::before { width: 100%; }

.heavy-home .logistics-icon {
    width: 64px;
    height: 64px;
    background: var(--heavy-black);
    color: var(--heavy-white);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    margin-bottom: 28px;
    transition: background 0.3s;
}

.heavy-home .logistics-card:hover .logistics-icon {
    background: var(--heavy-accent);
}

.heavy-home .logistics-title {
    font-family: 'Russo One', sans-serif !important;
    font-size: 22px !important;
    color: var(--heavy-black) !important;
    margin: 0 0 16px !important;
    text-transform: uppercase;
    line-height: 1.15 !important;
}

.heavy-home .logistics-desc {
    font-size: 15px;
    color: var(--heavy-gray-700);
    line-height: 1.6;
    margin: 0 0 24px;
}

.heavy-home .logistics-time {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding-top: 20px;
    border-top: 1px solid var(--heavy-gray-200);
}

.heavy-home .logistics-time-label {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 10px;
    color: var(--heavy-gray-500);
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.heavy-home .logistics-time-value {
    font-family: 'Russo One', sans-serif;
    font-size: 22px;
    color: var(--heavy-accent);
    text-transform: uppercase;
    letter-spacing: 0.02em;
    line-height: 1.1;
}

/* === FOOTER === */
.footer {
    background: var(--heavy-black) !important;
    color: var(--heavy-gray-300) !important;
    padding: 80px 0 30px;
}
.footer .container {
    max-width: var(--heavy-container);
    margin: 0 auto;
    padding: 0 40px;
}
.footer-top {
    display: grid;
    grid-template-columns: 1.8fr 1fr 1fr 1.5fr;
    gap: 60px;
    padding-bottom: 64px;
    border-bottom: 1px solid rgba(255,255,255,0.08);
}
.footer-logo-block { max-width: 320px; }
.footer-tagline {
    font-size: 16px;
    color: var(--heavy-gray-300) !important;
    line-height: 1.65;
    margin-top: 22px;
}
.footer h5, .footer-col h5 {
    font-family: 'IBM Plex Mono', monospace !important;
    font-size: 13px !important;
    color: var(--heavy-accent) !important;
    letter-spacing: 0.2em;
    margin: 0 0 26px !important;
    font-weight: 500 !important;
    text-transform: uppercase !important;
}
.footer-col ul, .footer-col .menu, .footer-col li {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
.footer-col ul, .footer-col .menu {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.footer-col a {
    font-size: 16px !important;
    color: var(--heavy-gray-300) !important;
    transition: color 0.2s, padding-left 0.2s !important;
    text-decoration: none !important;
    background: transparent !important;
    padding: 0 !important;
    display: inline-block;
    position: relative;
}
.footer-col a:hover {
    color: var(--heavy-accent) !important;
    padding-left: 8px !important;
}
.footer-contacts {
    display: flex;
    flex-direction: column;
    gap: 22px;
}
.footer-contact { display: flex; flex-direction: column; gap: 6px; }
.footer-contact-label {
    font-family: 'IBM Plex Mono', monospace !important;
    font-size: 11px;
    color: var(--heavy-gray-500) !important;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}
.footer-contact-value {
    font-size: 17px;
    color: var(--heavy-white) !important;
    line-height: 1.5;
}

.footer-branches {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 24px;
    padding: 28px 0;
    border-bottom: 1px solid rgba(255,255,255,0.08);
}

.footer-branches-label {
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 11px;
    color: var(--heavy-gray-500);
    letter-spacing: 0.18em;
    text-transform: uppercase;
    flex-shrink: 0;
}

.footer-branches-label i {
    color: var(--heavy-accent);
    font-size: 13px;
}

.footer-branches-list {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

.footer-branch {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border: 1px solid rgba(255,255,255,0.12);
    background: transparent;
    transition: all 0.25s;
    list-style: none;
}

.footer-branch:hover {
    border-color: var(--heavy-accent);
    background: rgba(234, 92, 38, 0.08);
}

.footer-branch-name {
    font-family: 'Russo One', sans-serif;
    font-size: 13px;
    color: var(--heavy-white);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    line-height: 1;
}

.footer-branch-tag {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px;
    color: var(--heavy-accent);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding-left: 8px;
    border-left: 1px solid rgba(255,255,255,0.15);
    line-height: 1;
}

.footer-branch--main {
    border-color: var(--heavy-accent);
    background: rgba(234, 92, 38, 0.06);
}

.footer-bottom {
    padding-top: 30px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 20px;
}
.footer-bottom-left {
    font-family: 'IBM Plex Mono', monospace !important;
    font-size: 12px;
    color: var(--heavy-gray-700);
    letter-spacing: 0.05em;
    text-transform: uppercase;
}
.footer-social { display: flex; gap: 10px; }
.footer-social a {
    width: 40px !important;
    height: 40px !important;
    border: 1px solid rgba(255,255,255,0.12) !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    color: var(--heavy-gray-300) !important;
    transition: all 0.2s !important;
    text-decoration: none !important;
    background: transparent !important;
    padding: 0 !important;
    border-radius: 0 !important;
}
.footer-social a:hover {
    background: var(--heavy-accent) !important;
    border-color: var(--heavy-accent) !important;
    color: var(--heavy-white) !important;
}

/* === REVEAL === */
.heavy-home [data-reveal] {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.9s cubic-bezier(.2,.7,.2,1), transform 0.9s cubic-bezier(.2,.7,.2,1);
    will-change: opacity, transform;
}
.heavy-home [data-reveal].in {
    opacity: 1;
    transform: translateY(0);
}
.heavy-home .catalog-grid [data-reveal].in,
.heavy-home .stock-grid [data-reveal].in,
.heavy-home .industries-grid [data-reveal].in,
.heavy-home .partners-grid [data-reveal].in,
.heavy-home .faq-list [data-reveal].in {
    transition-delay: calc(var(--idx, 0) * 80ms);
}
.heavy-home .hero [data-reveal] { transform: translateY(40px); }

/* === RESPONSIVE === */
@media (max-width: 1200px) {
    .header .nav { gap: 18px; }
    .header .nav > ul { gap: 18px; }
    .header .nav a { font-size: 12px !important; }

    .heavy-home .catalog-grid { grid-template-columns: 1fr 1fr; }
    .heavy-home .cat-1 { grid-column: 1 / 3; grid-row: 1; }
    .heavy-home .cat-2 { grid-column: 1; grid-row: 2; }
    .heavy-home .cat-3 { grid-column: 2; grid-row: 2; }
    .heavy-home .cat-4 { grid-column: 1; grid-row: 3; }
    .heavy-home .cat-5 { grid-column: 2; grid-row: 3; }
    .heavy-home .cat-6 { grid-column: 1; grid-row: 4; }
    .heavy-home .cat-7 { grid-column: 2; grid-row: 4; }
    .heavy-home .stock-grid { grid-template-columns: repeat(2, 1fr); }
    .heavy-home .industries-grid { grid-template-columns: repeat(3, 1fr); }
    .heavy-home .partners-grid { grid-template-columns: repeat(3, 1fr); }
    .heavy-home .gallery-grid { grid-template-columns: repeat(3, 1fr); }
    .heavy-home .logistics-grid { gap: 20px; }
    .heavy-home .logistics-card { padding: 36px 28px; }

    .footer-top { grid-template-columns: 1.5fr 1fr 1fr 1.5fr; gap: 40px; }
    .heavy-home .about-left { padding: 60px 40px; }
}

@media (max-width: 992px) {
    .header .nav { display: none !important; }
    .header .burger { display: flex !important; }
    .header .btn-cta-header { display: none !important; }
    .header-phone { font-size: 13px; }
    .header .logo-img { height: 38px !important; max-width: 180px !important; }
    .footer .logo-img { height: 44px !important; }

    .heavy-home .about-inner,
    .heavy-home .cta-inner-compact,
    .heavy-home .faq-grid { grid-template-columns: 1fr; gap: 40px; }

    /* SPECIAL: один столбец, БЕЗ gap, фото снизу с заданной высотой */
    .heavy-home .special-inner { grid-template-columns: 1fr; gap: 0; min-height: auto; }
    .heavy-home .special-left { padding: 60px 40px; }
    .heavy-home .special-right { min-height: 400px; }

    /* ABOUT: на планшете/мобилке контент сверху, фото снизу (для читабельности) */
    .heavy-home .about-inner { min-height: auto; gap: 0; }
    .heavy-home .about-left { order: 1; justify-self: stretch; max-width: none; padding: 60px 40px; }
    .heavy-home .about-right { order: 2; min-height: 400px; }

    .footer-top { grid-template-columns: 1fr 1fr; gap: 40px; }

    .heavy-home .gallery-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
    .heavy-home .logistics-grid { grid-template-columns: 1fr; gap: 16px; }
    .heavy-home .logistics-card { padding: 36px 28px; }

    .heavy-home .section { padding: 80px 0; }
    .heavy-home .section-head { flex-direction: column; align-items: flex-start; }
    .heavy-home .section-head-right { width: 100%; }
}

@media (max-width: 640px) {
    .heavy-home .container,
    .footer .container { padding: 0 20px; }
    .header-inner { padding: 0 20px !important; gap: 12px !important; }
    .header .header-phone,
    .header .btn-cta-header { display: none !important; }
    .header .search-btn { display: flex !important; }
    .header-actions { gap: 10px !important; }
    .header .header-cart { width: 36px !important; height: 36px !important; }
    .header .logo-img { height: 40px !important; max-width: 160px !important; }
    .header.scrolled .logo-img { height: 36px !important; }
    .footer .logo-img { height: 80px !important; max-width: 220px !important; }

    .heavy-home .section { padding: 60px 0; }
    .heavy-home .hero { min-height: auto; padding-bottom: 40px; }
    .heavy-home .hero-inner { padding: 60px 20px 40px; }
    .heavy-home .hero-title { font-size: clamp(30px, 8vw, 44px) !important; }
    .heavy-home .hero-lead { font-size: 16px; }
    .heavy-home .hero-actions { width: 100%; }
    .heavy-home .btn { padding: 16px 24px !important; font-size: 12px !important; width: 100%; }

    .heavy-home .catalog-grid,
    .heavy-home .industries-grid,
    .heavy-home .stock-grid { grid-template-columns: 1fr; }
    .heavy-home .partners-grid { grid-template-columns: repeat(2, 1fr); }
    .heavy-home .catalog-item { min-height: 280px; padding: 24px; }
    .heavy-home .catalog-item.large { min-height: 320px; }
    .heavy-home .catalog-item.large .catalog-title { font-size: 32px !important; }
    .heavy-home .cat-1, .heavy-home .cat-2, .heavy-home .cat-3,
    .heavy-home .cat-4, .heavy-home .cat-5, .heavy-home .cat-6,
    .heavy-home .cat-7 { grid-column: 1; grid-row: auto; }

    .heavy-home .section-title { font-size: clamp(28px, 8vw, 44px) !important; }
    .heavy-home .about-left { padding: 50px 20px; }
    .heavy-home .about-right { min-height: 320px; }
    .heavy-home .about-title { font-size: clamp(24px, 6vw, 34px) !important; }
    .heavy-home .special-left { padding: 50px 20px; }
    .heavy-home .special-right { min-height: 320px; }
    .heavy-home .special-title { font-size: clamp(30px, 8vw, 48px) !important; }
    .heavy-home .cta-section { padding: 60px 0; }
    .heavy-home .cta-title { font-size: clamp(28px, 7vw, 42px) !important; }
    .heavy-home .cta-form { padding: 32px 24px; }

    .footer-top { grid-template-columns: 1fr; gap: 40px; padding-bottom: 40px; }
    .footer { padding: 60px 0 24px; }
    .footer-bottom { flex-direction: column; align-items: flex-start; }
    .footer-branches { flex-direction: column; align-items: flex-start; gap: 16px; }
    .footer-branches-list { gap: 8px; }
    .footer-branch { padding: 7px 12px; }
    .footer-tagline { font-size: 16px !important; line-height: 1.65 !important; }
    .footer-col h5 { font-size: 13px !important; margin-bottom: 18px !important; }
    .footer-col a { font-size: 16px !important; }
    .footer-col ul, .footer-col .menu { gap: 12px !important; }
    .footer-contact-label { font-size: 12px !important; }
    .footer-contact-value { font-size: 17px !important; }
    .footer-bottom-left { font-size: 13px !important; }

    .heavy-home .faq-q-text { font-size: 15px !important; }
    .heavy-home .partners-head { margin-bottom: 40px; }
    .heavy-home .partner { min-height: 140px; padding: 28px 20px; }

    .heavy-home .gallery-grid { grid-template-columns: repeat(2, 1fr); gap: 8px; }
    .heavy-home .gallery-placeholder-icon { font-size: 32px; }
    .heavy-home .gallery-placeholder-label { font-size: 10px; }

    .heavy-home .logistics-card { padding: 32px 24px; }
    .heavy-home .logistics-icon { width: 56px; height: 56px; font-size: 24px; margin-bottom: 22px; }
    .heavy-home .logistics-title { font-size: 20px !important; }
    .heavy-home .logistics-time-value { font-size: 18px; }

    .heavy-home .about-list li { font-size: 15px; padding-left: 28px; }
    .heavy-home .about-list li::before { width: 14px; top: 8px; }
}

@media (max-width: 400px) {
    .heavy-home .hero-title { font-size: 32px !important; }
    .heavy-home .btn { font-size: 11px !important; padding: 14px 20px !important; }
}

/* =========================================
   CTA MODAL — попап с формой заявки (работает на всех страницах)
   ========================================= */
.cta-modal {
    position: fixed;
    inset: 0;
    z-index: 100000;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s cubic-bezier(.2,.7,.2,1);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    font-family: 'IBM Plex Sans', sans-serif;
    box-sizing: border-box;
}
.cta-modal * { box-sizing: border-box; }
.cta-modal.open {
    opacity: 1;
    pointer-events: auto;
}

.cta-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(10, 10, 10, 0.78);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    cursor: pointer;
}

.cta-modal-window {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: 920px;
    background: var(--heavy-white);
    display: grid;
    grid-template-columns: 320px 1fr;
    box-shadow: 0 40px 80px -20px rgba(0,0,0,0.5);
    transform: translateY(30px) scale(0.98);
    opacity: 0;
    transition: transform 0.4s cubic-bezier(.2,.7,.2,1), opacity 0.3s;
    max-height: calc(100vh - 40px);
    overflow: hidden;
}
.cta-modal.open .cta-modal-window {
    transform: translateY(0) scale(1);
    opacity: 1;
}

.cta-modal-close {
    position: absolute;
    top: 16px;
    right: 16px;
    width: 40px;
    height: 40px;
    background: var(--heavy-white) !important;
    border: 1px solid var(--heavy-gray-300) !important;
    color: var(--heavy-black) !important;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    z-index: 4;
    border-radius: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
    transition: background 0.2s, color 0.2s, border-color 0.2s;
}
.cta-modal-close:hover {
    background: var(--heavy-accent) !important;
    color: var(--heavy-white) !important;
    border-color: var(--heavy-accent) !important;
}

/* === Левая часть — чёрный сайдбар === */
.cta-modal-side {
    background: var(--heavy-black);
    color: var(--heavy-white);
    padding: 40px 32px;
    display: flex;
    flex-direction: column;
    gap: 24px;
    position: relative;
    overflow: hidden;
}
.cta-modal-side::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: var(--heavy-accent);
}
.cta-modal-side-label {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 11px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--heavy-accent);
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.cta-modal-side-quote {
    font-family: 'Russo One', sans-serif;
    font-weight: 400;
    font-size: 18px;
    line-height: 1.3;
    letter-spacing: -0.01em;
    text-transform: uppercase;
    color: var(--heavy-white);
}
.cta-modal-side-list {
    list-style: none !important;
    margin: auto 0 0 !important;
    padding: 0 !important;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.cta-modal-side-list li {
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 13px;
    line-height: 1.4;
    color: var(--heavy-gray-300);
    padding-left: 22px;
    position: relative;
    margin: 0;
}
.cta-modal-side-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 8px;
    width: 12px;
    height: 2px;
    background: var(--heavy-accent);
}

/* === Правая часть — форма === */
.cta-modal-content {
    padding: 40px 36px;
    overflow-y: auto;
    max-height: calc(100vh - 40px);
}

.cta-modal-head {
    margin-bottom: 28px;
}
.cta-modal-label {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 11px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--heavy-accent);
    margin-bottom: 12px;
}
.cta-modal-title {
    font-family: 'Russo One', sans-serif !important;
    font-weight: 400 !important;
    font-size: clamp(24px, 3vw, 34px) !important;
    line-height: 1.05 !important;
    letter-spacing: -0.01em;
    text-transform: uppercase;
    color: var(--heavy-black) !important;
    margin: 0 0 12px !important;
}
.cta-modal-title .accent { color: var(--heavy-accent); }
.cta-modal-desc {
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 14px;
    line-height: 1.5;
    color: var(--heavy-gray-700);
    margin: 0;
}

.cta-modal-form {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.cta-modal-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.cta-modal-field label {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--heavy-gray-500);
}
.cta-modal-required {
    color: var(--heavy-accent);
    margin-left: 2px;
}
.cta-modal-form input[type="text"],
.cta-modal-form input[type="tel"],
.cta-modal-form input[type="email"],
.cta-modal-form textarea {
    width: 100%;
    background: var(--heavy-white) !important;
    border: 1px solid var(--heavy-gray-300) !important;
    border-radius: 0 !important;
    padding: 14px 16px !important;
    font-family: 'IBM Plex Sans', sans-serif !important;
    font-size: 15px !important;
    color: var(--heavy-black) !important;
    line-height: 1.4 !important;
    transition: border-color 0.2s;
    box-shadow: none !important;
    outline: none !important;
    margin: 0 !important;
}
.cta-modal-form input::placeholder,
.cta-modal-form textarea::placeholder {
    color: var(--heavy-gray-500);
    opacity: 1;
}
.cta-modal-form input:focus,
.cta-modal-form textarea:focus {
    border-color: var(--heavy-accent) !important;
}
.cta-modal-form textarea {
    resize: vertical;
    min-height: 84px;
}

.cta-modal-agree {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    cursor: pointer;
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 12px;
    line-height: 1.5;
    color: var(--heavy-gray-700);
    user-select: none;
    margin-top: 4px;
}
.cta-modal-agree input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
    pointer-events: none;
}
.cta-modal-agree-check {
    flex-shrink: 0;
    width: 16px;
    height: 16px;
    margin-top: 2px;
    border: 1px solid var(--heavy-gray-300);
    background: var(--heavy-white);
    position: relative;
    transition: background 0.2s, border-color 0.2s;
}
.cta-modal-agree input:checked + .cta-modal-agree-check {
    background: var(--heavy-accent);
    border-color: var(--heavy-accent);
}
.cta-modal-agree input:checked + .cta-modal-agree-check::after {
    content: '';
    position: absolute;
    left: 4px;
    top: 0;
    width: 5px;
    height: 10px;
    border: solid var(--heavy-white);
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}
.cta-modal-agree-text { flex: 1; }
.cta-modal-agree-text a {
    color: var(--heavy-accent) !important;
    text-decoration: underline !important;
}

.cta-modal-submit {
    width: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 18px 28px;
    margin-top: 8px;
    background: var(--heavy-accent) !important;
    color: var(--heavy-white) !important;
    border: 1px solid var(--heavy-accent) !important;
    font-family: 'IBM Plex Sans', sans-serif !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.12em;
    cursor: pointer;
    border-radius: 0 !important;
    box-shadow: none !important;
    transition: background 0.25s, border-color 0.25s, transform 0.25s;
    line-height: 1.2;
}
.cta-modal-submit:hover,
.cta-modal-submit:focus {
    background: var(--heavy-accent-hover) !important;
    border-color: var(--heavy-accent-hover) !important;
    color: var(--heavy-white) !important;
    transform: translateY(-2px);
}
.cta-modal-submit i { transition: transform 0.3s cubic-bezier(.2,.7,.2,1); }
.cta-modal-submit:hover i { transform: translateX(6px); }

.cta-modal-footer-note {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 4px;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 11px;
    letter-spacing: 0.05em;
    color: var(--heavy-gray-500);
    line-height: 1.4;
}
.cta-modal-footer-note i {
    color: var(--heavy-accent);
    font-size: 12px;
}

@media (max-width: 720px) {
    /* центрированная карточка с внешними отступами (видно, что это модалка), а не фуллскрин */
    .cta-modal { padding: 16px; align-items: center; }
    .cta-modal-window {
        grid-template-columns: 1fr;
        max-width: 480px;
        height: auto;
        max-height: calc(100vh - 32px);
        max-height: calc(100dvh - 32px);
        overflow-y: auto;
        border-radius: 14px;
    }
    .cta-modal-side { padding: 24px 22px; gap: 16px; }
    .cta-modal-side-list { margin-top: 0 !important; }
    .cta-modal-content { padding: 28px 22px; max-height: none; }
    .cta-modal-close { top: 10px; right: 10px; }
}

/* на телефонах прячем боковую панель раньше — иначе окно слишком длинное */
@media (max-width: 600px) {
    .cta-modal-side { display: none; }
}

@media (max-width: 400px) {
    .cta-modal-content { padding: 52px 18px 24px; }
    .cta-modal-title { font-size: 22px !important; }
    .cta-modal-form input,
    .cta-modal-form textarea { font-size: 14px !important; padding: 12px 14px !important; }
}


/* ═══════════════════════════════════════════════
   Heavy КП — кнопка «Скачать PDF подборки»
   ═══════════════════════════════════════════════ */
.heavy-cart-pdf-btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    width: 100% !important;
    margin-top: 10px !important;
    padding: 12px 20px !important;
    background: #1a1a1a !important;
    color: #fff !important;
    text-decoration: none !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    letter-spacing: .03em !important;
    border-radius: 3px !important;
    border: 2px solid transparent !important;
    transition: background .22s ease, border-color .22s ease, transform .15s ease, box-shadow .22s ease !important;
    cursor: pointer !important;
}
.heavy-cart-pdf-btn:hover,
.heavy-cart-pdf-btn:focus-visible {
    background: #d11f26 !important;
    border-color: #d11f26 !important;
    color: #fff !important;
    text-decoration: none !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 18px rgba(209,31,38,.28) !important;
}
.heavy-cart-pdf-btn:active {
    transform: translateY(0) !important;
    box-shadow: 0 2px 8px rgba(209,31,38,.18) !important;
}
.heavy-cart-pdf-btn .fa-file-pdf {
    font-size: 16px !important;
    color: #d11f26 !important;
    transition: color .22s ease, transform .22s ease !important;
}
.heavy-cart-pdf-btn:hover .fa-file-pdf,
.heavy-cart-pdf-btn:focus-visible .fa-file-pdf {
    color: #fff !important;
    transform: scale(1.18) rotate(-3deg) !important;
}

/* ====================================================================
   КОМПЛЕКТАЦИЯ — конфигуратор характеристик на странице товара
   ================================================================== */
.heavy-woo-product-specs-config {
    margin: 22px 0 6px;
    padding: 0;
    background: var(--heavy-gray-50);
    border: 1px solid var(--heavy-gray-200);
    border-radius: 14px;
    overflow: hidden;
}
.heavy-woo-product-specs-config-title {
    display: flex;
    align-items: center;
    gap: 9px;
    width: 100%;
    appearance: none;
    background: none !important;
    border: 0 !important;
    box-shadow: none !important;
    text-align: left;
    cursor: pointer;
    font-family: var(--heavy-font-mono, "IBM Plex Mono", monospace);
    text-transform: uppercase;
    letter-spacing: .06em;
    font-size: 12px;
    font-weight: 600;
    color: var(--heavy-gray-700) !important;
    margin-bottom: 0;
    padding: 16px 20px !important;
    transition: background .16s ease;
}
.heavy-woo-product-specs-config-title:hover { background: var(--heavy-gray-100) !important; }
.heavy-woo-product-specs-config:not(.is-collapsed) .heavy-woo-product-specs-config-title { padding-bottom: 14px !important; }
.heavy-woo-product-specs-config-title i.fa-sliders { color: var(--heavy-accent); }
.heavy-woo-product-specs-config-toggle-chevron {
    margin-left: auto;
    font-size: 12px;
    color: var(--heavy-gray-500);
    transition: transform .2s ease;
}
.heavy-woo-product-specs-config:not(.is-collapsed) .heavy-woo-product-specs-config-toggle-chevron {
    transform: rotate(180deg);
}
.heavy-woo-product-specs-config.is-collapsed .heavy-woo-product-specs-config-list { display: none; }
.heavy-woo-product-specs-config-note {
    text-transform: none;
    letter-spacing: 0;
    font-family: var(--heavy-font-body, sans-serif);
    font-weight: 400;
    font-size: 11px;
    color: var(--heavy-gray-500);
}
.heavy-woo-product-specs-config-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 0 20px 18px;
}
.heavy-spec-field-label {
    font-size: 13px;
    font-weight: 600;
    color: var(--heavy-gray-900);
    margin-bottom: 7px;
}
.heavy-spec-chips {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 7px;
}
.heavy-spec-chip {
    appearance: none;
    cursor: pointer;
    padding: 7px 13px;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.35;
    text-align: left;
    text-transform: none !important;
    letter-spacing: normal !important;
    white-space: normal !important;
    overflow-wrap: anywhere;
    word-break: break-word;
    max-width: 100%;
    color: var(--heavy-gray-800) !important;
    background: var(--heavy-white) !important;
    border: 1px solid var(--heavy-gray-300) !important;
    border-radius: 14px !important;
    box-shadow: none !important;
    text-shadow: none !important;
    transition: border-color .16s ease, background .16s ease, color .16s ease;
}
.heavy-spec-chip:hover {
    border-color: var(--heavy-accent) !important;
    color: var(--heavy-accent) !important;
}
.heavy-spec-chip.is-active {
    background: var(--heavy-accent) !important;
    border-color: var(--heavy-accent) !important;
    color: #fff !important;
}
.heavy-spec-chip.is-active:hover { color: #fff !important; }
.heavy-spec-other-input,
.heavy-spec-text {
    width: 100%;
    margin-top: 8px;
    padding: 9px 12px;
    font-size: 14px;
    color: var(--heavy-gray-900);
    background: var(--heavy-white);
    border: 1px solid var(--heavy-gray-300);
    border-radius: 9px;
}
.heavy-spec-text { margin-top: 0; }
.heavy-spec-other-input:focus,
.heavy-spec-text:focus {
    outline: none;
    border-color: var(--heavy-accent);
    box-shadow: 0 0 0 3px rgba(234, 92, 38, .18);
}

/* Характеристики внутри позиции корзины-конструктора */
.heavy-quote-item-options {
    list-style: none;
    margin: 8px 0 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 5px 14px;
}
.heavy-quote-item-option {
    display: inline-flex;
    align-items: baseline;
    gap: 5px;
    font-size: 13px;
    color: var(--heavy-gray-700);
}
.heavy-quote-item-option-label {
    color: var(--heavy-gray-500);
}
.heavy-quote-item-option-value {
    font-weight: 600;
    color: var(--heavy-gray-900);
}

/* ============================================================
 * SEO-БЛОК КАТЕГОРИИ (текст под товарами + FAQ)
 * ============================================================ */
.heavy-cat-seo {
    padding: 48px 0 8px;
}
.heavy-cat-seo .container {
    max-width: var(--heavy-container, 1280px);
    margin: 0 auto;
    padding-left: 20px;
    padding-right: 20px;
}
.heavy-cat-seo__text {
    max-width: 900px;
    color: var(--heavy-gray-800, #2a2a2a);
    font-family: var(--heavy-font-body, sans-serif);
    font-size: 16px;
    line-height: 1.7;
}
.heavy-cat-seo__text h2 {
    font-family: var(--heavy-font-body, sans-serif);
    font-size: 26px;
    line-height: 1.25;
    color: var(--heavy-gray-900, #111);
    margin: 32px 0 14px;
    font-weight: 700;
}
.heavy-cat-seo__text h3 {
    font-size: 19px;
    color: var(--heavy-gray-900, #111);
    margin: 24px 0 10px;
    font-weight: 700;
}
.heavy-cat-seo__text p {
    margin: 0 0 14px;
}
.heavy-cat-seo__text a {
    color: var(--heavy-accent, #c8102e);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.heavy-cat-seo__text a:hover {
    color: var(--heavy-accent-hover, #a10d25);
}
.heavy-cat-seo__text ul,
.heavy-cat-seo__text ol {
    margin: 0 0 14px;
    padding-left: 22px;
}
.heavy-cat-seo__text li {
    margin: 4px 0;
}

/* Таблицы */
.heavy-cat-seo__text .heavy-table-wrap,
.heavy-cat-seo__text table {
    max-width: 100%;
}
.heavy-cat-seo__text table {
    width: 100%;
    border-collapse: collapse;
    margin: 18px 0 22px;
    font-size: 15px;
    display: block;
    overflow-x: auto;
    white-space: normal;
}
.heavy-cat-seo__text thead th {
    background: var(--heavy-dark, #18181b);
    color: var(--heavy-white, #fff);
    text-align: left;
    padding: 11px 14px;
    font-weight: 600;
    border: 1px solid var(--heavy-gray-300, #d4d4d8);
}
.heavy-cat-seo__text tbody td {
    padding: 10px 14px;
    border: 1px solid var(--heavy-gray-200, #e4e4e7);
    vertical-align: top;
    word-break: break-word;
}
.heavy-cat-seo__text tbody tr:nth-child(even) td {
    background: var(--heavy-gray-50, #fafafa);
}

/* FAQ-аккордеон */
.heavy-cat-seo__faq {
    max-width: 900px;
    margin-top: 40px;
}
.heavy-cat-seo__faq-title {
    font-size: 26px;
    color: var(--heavy-gray-900, #111);
    margin: 0 0 18px;
    font-weight: 700;
}
.heavy-faq-item {
    border: 1px solid var(--heavy-gray-200, #e4e4e7);
    border-radius: 10px;
    margin-bottom: 10px;
    background: var(--heavy-white, #fff);
    overflow: hidden;
}
.heavy-faq-item[open] {
    border-color: var(--heavy-accent, #c8102e);
}
.heavy-faq-q {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    cursor: pointer;
    padding: 16px 18px;
    font-weight: 600;
    font-size: 16.5px;
    color: var(--heavy-gray-900, #111);
    list-style: none;
}
.heavy-faq-q::-webkit-details-marker { display: none; }
.heavy-faq-q i {
    flex: 0 0 auto;
    transition: transform .2s ease;
    color: var(--heavy-accent, #c8102e);
}
.heavy-faq-item[open] .heavy-faq-q i {
    transform: rotate(45deg);
}
.heavy-faq-a {
    padding: 0 18px 16px;
    color: var(--heavy-gray-800, #2a2a2a);
    line-height: 1.7;
    font-size: 15.5px;
}
.heavy-faq-a p { margin: 0 0 10px; }

@media (max-width: 600px) {
    .heavy-cat-seo { padding-top: 32px; }
    .heavy-cat-seo__text h2,
    .heavy-cat-seo__faq-title { font-size: 22px; }
}
