/* ===== RESET & BASE ===== */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }

:root {
    --color-accent:    #357960;
    --color-accent-bg: rgba(53,121,96,0.9);
    --color-black:     #181818;
    --color-graphit:   #565656;
    --color-bg:        #F4F4F4;
    --color-stroke:    #D7D7D7;
    --color-white:     #FFFFFF;
    --color-secondary: #9F9F9F;
    --font-lato:    'Lato', sans-serif;
    --font-raleway: 'Raleway', sans-serif;
    --page-px: 40px;
    --transition: 0.3s ease;
}

html { scroll-behavior: smooth; overflow-x: hidden; }

body {
    font-family: var(--font-raleway);
    font-size: 17px;
    line-height: 1.4;
    color: var(--color-black);
    background: var(--color-white);
    -webkit-font-smoothing: antialiased;
    margin: 0 !important;
    padding: 0 !important;
    overflow-x: hidden;
}

.wp-site-blocks,.is-layout-flow,.is-layout-constrained,.has-global-padding {
    max-width:100% !important; padding:0 !important; margin:0 !important;
}

a { text-decoration: none; color: inherit; }
img { max-width: 100%; height: auto; display: block; }
ul, ol { list-style: none; }
button { cursor: pointer; border: none; background: none; font-family: inherit; }
input, textarea, select { font-family: inherit; outline: none; }

.orvis-container {
    max-width: 1840px;
    margin: 0 auto;
    padding: 0 var(--page-px);
}

/* ===== BUTTONS ===== */
.btn-accent {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 16px 40px;
    background: var(--color-accent);
    color: var(--color-white);
    font-family: var(--font-lato);
    font-size: 16px;
    font-weight: 600;
    line-height: 1;
    border: none;
    cursor: pointer;
    transition: background var(--transition);
    text-decoration: none;
}
.btn-accent:hover { background: #2a6350; color: #fff; }

/* ===== HEADER ===== */
.site-header {
    position: fixed;
    top: 0; left: 0;
    width: 100%;
    z-index: 1000;
    background: var(--color-white);
    transition: box-shadow var(--transition);
}
.site-header.with-border { border-bottom: 1px solid var(--color-stroke); }
.admin-bar .site-header { top: 32px; }

.header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 40px;
}

.site-logo { flex-shrink: 0; display: flex; align-items: center; }
.site-logo img { height: 32px; width: auto; }
.site-logo-text {
    font-family: var(--font-lato);
    font-size: 22px; font-weight: 700;
    color: var(--color-accent);
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

.main-nav ul { display: flex; align-items: center; gap: 64px; }
.main-nav a {
    font-family: var(--font-raleway);
    font-size: 17px; font-weight: 400;
    color: var(--color-black); white-space: nowrap;
    transition: color var(--transition);
}
.main-nav .current-menu-item > a,
.main-nav a:hover { color: var(--color-accent); font-weight: 600; }

.header-icons { display: flex; align-items: center; gap: 11px; }
.header-icon-btn {
    position: relative;
    display: flex; align-items: center; justify-content: center;
    width: 40px; height: 40px;
    background: var(--color-bg);
    border-radius: 20px;
    color: var(--color-black);
    transition: background var(--transition);
}
.header-icon-btn:hover { background: var(--color-stroke); }
.header-icon-btn svg { width: 24px; height: 24px; fill: none; stroke: var(--color-black); stroke-width: 1.5; }
.wishlist-count {
    position: absolute; top: -7px; right: -4px;
    font-family: var(--font-raleway); font-size: 14px; font-weight: 600;
    color: var(--color-accent); line-height: 1;
}

.burger-btn {
    display: none;
    flex-direction: column; gap: 5px;
    width: 40px; height: 40px;
    align-items: center; justify-content: center;
    background: var(--color-bg); border-radius: 20px;
}
.burger-btn span { display:block; width:18px; height:2px; background:var(--color-black); border-radius:2px; }

/* ===== HERO ===== */
.hero-section {
    position: relative; width: 100%; height: 853px;
    overflow: hidden; margin-top: 64px;
    padding: 0 40px;
}
.hero-slider { position: relative; width: 100%; height: 100%; }
.hero-slide {
    position: absolute; inset: 0; opacity: 0;
    transition: opacity 0.6s ease; display: block;
}
.hero-slide.active { opacity: 1; }
.hero-slide-bg { width:100%; height:100%; object-fit:cover; display:block; }
.hero-slide-overlay { position: absolute; inset: 0; }
.hero-slide-content {
    position: absolute;
    top: 235px;
    left: 0;
    right: 0;
    text-align: center;
    padding: 0;
}
.hero-slide-content h1 {
    font-family: var(--font-lato);
    font-size: clamp(10px, 2.9vw, 56px); font-weight: 600;
    color: var(--color-white);
    text-shadow: 0px 16px 16px rgba(0,0,0,0.25);
    line-height: 1.1;
    white-space: nowrap;
    margin: 0;
}

.hero-nav {
    position: absolute; top: 50%; transform: translateY(-50%);
    z-index: 10; width: 24px; height: 24px;
    background: none; border: none; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
}
.hero-nav svg { width:24px; height:24px; fill:none; stroke:#fff; stroke-width:2; }
.hero-prev { left: 32px; } .hero-next { right: 32px; }

.hero-dots {
    position: absolute; bottom: 24px; left: 50%; transform: translateX(-50%);
    display: flex; gap: 8px; z-index: 10;
}
.hero-dot {
    width: 8px; height: 8px; border-radius: 50%;
    background: rgba(255,255,255,0.5); border: none; cursor: pointer; padding: 0;
    transition: background var(--transition);
}
.hero-dot.active { background: #fff; }

/* ===== SECTIONS ===== */
.section-title {
    font-family: var(--font-lato); font-size: 36px; font-weight: 500;
    color: var(--color-black); text-align: center; line-height: 1;
    margin-bottom: 80px;
}

/* Subtitle */
.subtitle-section { padding: 56px var(--page-px); text-align: center; }
.subtitle-section h2 { font-family:var(--font-lato); font-size:36px; font-weight:500; color:var(--color-black); line-height:1; }

/* Advantages — точно по Figma (node 2026:1432) */
.advantages-section { padding: 0 var(--page-px); }
.advantages-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    /* НЕТ border-top и border-bottom на всей сетке — только у отдельных ячеек */
}
.advantage-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 24px;
    padding: 40px 20px;
    text-align: center;
    /* Границы задаются модификаторами ниже */
}
.adv-border-b, .adv-border-r, .adv-border-l { border: none; }
.adv-gradient-down, .adv-gradient-up { background: none; }

/* Кружок #F4F4F4 через CSS, иконка 40px внутри — как в Figma */
/* Иконки из Figma — SVG масштабируется через CSS */
.advantage-icon {
    flex-shrink: 0;
    line-height: 0;
}
.advantage-icon img {
    width: 80px;
    height: 80px;
    display: block;
}
.advantage-item p {
    font-family: var(--font-lato);
    font-size: 20px; font-weight: 400;
    color: var(--color-black);
    line-height: 1.4;
}

/* Showroom */
.showroom-section { padding: 80px var(--page-px); }
.showroom-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.showroom-item { position:relative; overflow:hidden; display:block; }
.showroom-item:last-child { grid-column:2; grid-row:1 / span 2; height:622px; }
.showroom-item:not(:last-child) { height:303px; }
.showroom-item img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.4s; }
.showroom-item:hover img { transform:scale(1.03); }
.showroom-item-label {
    position:absolute; bottom:0; right:0;
    background:var(--color-bg); padding:12px 16px;
    font-family:var(--font-lato); font-size:20px; font-weight:400; color:var(--color-black); line-height:1.4;
}

/* Catalog section (on homepage) */
.catalog-section { padding: 80px var(--page-px); }
.catalog-section .section-title { margin-bottom: 24px; }
.catalog-tabs {
    display:flex; align-items:center; justify-content:center; gap:40px;
    margin-bottom: 56px; flex-wrap:wrap;
}
.catalog-tab {
    font-family:var(--font-raleway); font-size:17px; font-weight:400;
    color:var(--color-black); background:none; border:none; cursor:pointer;
    padding:0; white-space:nowrap; transition:color var(--transition);
}
.catalog-tab.active,.catalog-tab:hover { color:var(--color-accent); font-weight:600; }

.catalog-slider-wrap { display:flex; align-items:center; gap:16px; margin-bottom:56px; }
.catalog-arrow { flex-shrink:0; width:24px; height:24px; display:flex; align-items:center; justify-content:center; padding:0; }
.catalog-arrow svg { width:24px; height:24px; fill:none; stroke:var(--color-black); stroke-width:1.5; }

.products-grid { display:flex; gap:16px; overflow:hidden; flex:1; }
.product-card {
    background:var(--color-bg); position:relative;
    flex: 0 0 calc(20% - 13px);
    min-height:370px; display:flex; flex-direction:column;
}
.product-card-image {
    flex:1; display:block;
    min-height:260px; overflow:hidden;
}
.product-card-image img {
    width:100%; height:100%; min-height:260px;
    object-fit:contain; object-position:center;
    background:#f7f7f7; display:block;
    transition:transform 0.3s;
}
.product-card:hover .product-card-image img { transform:scale(1.04); }
.product-card-info { display:flex; align-items:center; justify-content:space-between; padding:12px 16px 16px; gap:8px; }
.product-card-name { font-family:var(--font-raleway); font-size:17px; font-weight:400; color:var(--color-black); line-height:1.4; }
.product-card-price { font-family:var(--font-lato); font-size:20px; font-weight:400; color:var(--color-black); white-space:nowrap; }
.product-wishlist {
    position:absolute; top:8px; right:8px;
    width:40px; height:40px; background:var(--color-white); border-radius:20px;
    display:flex; align-items:center; justify-content:center; z-index:2; border:none;
    transition:background var(--transition);
}
.product-wishlist svg { width:24px; height:24px; fill:none; stroke:var(--color-black); stroke-width:1.5; transition:var(--transition); }
.product-wishlist.active svg,.product-wishlist:hover svg { fill:var(--color-accent); stroke:var(--color-accent); }
.catalog-more { text-align:center; margin-top:56px; }

/* Manufacturers */
.manufacturers-section { padding:56px var(--page-px); }
.manufacturers-section .section-title { margin-bottom:56px; }
.manufacturers-grid { display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap; }
.manufacturer-logo { height:60px; width:auto; max-width:200px; object-fit:contain; filter:none; opacity:1; transition:var(--transition); }
.manufacturer-logo:hover { filter:none; opacity:1; }

/* About */
.about-section { padding:80px var(--page-px); }
.about-grid { display:grid; grid-template-columns:1fr 1067px; gap:56px; align-items:center; }
.about-label { font-family:var(--font-lato); font-size:36px; font-weight:500; color:var(--color-black); line-height:1; margin-bottom:24px; }
.about-text p { font-family:var(--font-lato); font-size:20px; font-weight:400; color:var(--color-black); line-height:1.4; margin-bottom:16px; }
.about-text p:last-of-type { margin-bottom:56px; }
.about-media { position:relative; height:601px; overflow:hidden; }
.about-media img,.about-media video,.about-media iframe { width:100%; height:100%; object-fit:cover; }
.about-video-wrapper { position:relative; width:100%; height:100%; }
.about-video-wrapper::after { content:''; position:absolute; inset:0; background:rgba(24,24,24,0.3); pointer-events:none; }
.video-play-btn {
    position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
    z-index:2; width:40px; height:40px; background:none; border:none; cursor:pointer;
}
.video-play-btn svg { width:40px; height:40px; fill:var(--color-white); }

/* News */
.news-section { padding:80px var(--page-px); }
.news-section .section-title { margin-bottom:80px; }
.news-slider-wrap { display:flex; align-items:center; gap:16px; }
.news-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; flex:1; }
.news-card { display:flex; flex-direction:column; gap:16px; text-decoration:none; }
.news-card-image { height:320px; overflow:hidden; }
.news-card-image img { width:100%; height:100%; object-fit:cover; transition:transform 0.3s; }
.news-card:hover .news-card-image img { transform:scale(1.04); }
.news-card-title { font-family:var(--font-lato); font-size:20px; font-weight:400; color:var(--color-black); line-height:1.4; }
.news-arrow { flex-shrink:0; width:24px; height:24px; background:none; border:none; cursor:pointer; display:flex; align-items:center; justify-content:center; padding:0; }
.news-arrow svg { width:24px; height:24px; fill:none; stroke:var(--color-black); stroke-width:1.5; }

/* Contacts */
.contacts-section { position:relative; }
.contacts-map { width:100%; height:650px; position:relative; }
.contacts-map iframe { width:100%; height:100%; display:block; border:none; }
.contacts-card {
    position:absolute; bottom:40px; left:40px;
    background:var(--color-accent-bg); padding:40px;
    display:flex; flex-direction:column; gap:24px; z-index:10;
}
.contacts-phone,.contacts-mail,.contacts-address { display:flex; align-items:center; gap:16px; }
.contacts-phone svg,.contacts-mail svg,.contacts-address svg { width:24px; height:24px; flex-shrink:0; fill:none; stroke:#fff; stroke-width:1.5; }
.contacts-phone a { color:#fff; line-height:1; }
.contacts-phone a .phone-prefix { font-family:var(--font-lato); font-size:20px; font-weight:500; }
.contacts-phone a .phone-number { font-family:var(--font-lato); font-size:36px; font-weight:600; }
.contacts-mail a,.contacts-address span { font-family:var(--font-lato); font-size:20px; font-weight:500; color:#fff; line-height:1.4; }

/* Footer */
.site-footer { background:var(--color-bg); padding:64px 40px; }
.footer-inner { display:flex; align-items:flex-start; justify-content:space-between; gap:40px; }
.footer-logo { display:flex; flex-direction:column; justify-content:space-between; min-height:168px; }
.footer-logo img { height:32px; width:auto; }
.footer-logo-text { font-family:var(--font-lato); font-size:22px; font-weight:700; color:var(--color-accent); letter-spacing:.15em; text-transform:uppercase; }
.footer-legal { display:flex; flex-direction:column; gap:8px; }
.footer-legal a,.footer-legal p { font-family:var(--font-lato); font-size:14px; color:var(--color-secondary); line-height:1.4; }
.footer-legal a:hover { color:var(--color-accent); }
.footer-menus { display:flex; align-items:flex-start; justify-content:space-between; gap:60px; flex:1; max-width:1067px; }
.footer-menu-col { display:flex; flex-direction:column; gap:24px; }
.footer-menu-col a { font-family:var(--font-raleway); font-size:17px; font-weight:400; color:var(--color-black); line-height:1.4; white-space:nowrap; transition:color var(--transition); }
.footer-menu-col a:hover { color:var(--color-accent); }
.footer-contacts { display:flex; flex-direction:column; gap:24px; }
.footer-contacts a,.footer-contacts p { font-family:var(--font-raleway); font-size:17px; color:var(--color-black); line-height:1.4; white-space:nowrap; }
.footer-social { display:flex; align-items:center; gap:24px; }
.footer-social a { display:flex; align-items:center; justify-content:center; width:24px; height:24px; }
.footer-social svg { width:24px; height:24px; fill:var(--color-black); color:var(--color-black); transition:fill var(--transition), color var(--transition); }
.footer-social a:hover svg { fill:var(--color-accent); color:var(--color-accent); }

/* ===== CATALOG PAGE ===== */
.catalog-page { padding-top: 64px; }
.catalog-page-inner { padding: 40px var(--page-px); }
.breadcrumbs { display:flex; align-items:center; gap:8px; font-family:var(--font-lato); font-size:14px; margin-bottom:24px; }
.breadcrumbs a { color:var(--color-accent); }
.breadcrumbs span { color:var(--color-graphit); }
.catalog-page-title { font-family:var(--font-lato); font-size:36px; font-weight:500; color:var(--color-black); line-height:1; margin-bottom:40px; }

/* Category pills */
.category-filter { background:var(--color-bg); padding:8px; display:flex; gap:16px; align-items:stretch; margin-bottom:40px; overflow-x:auto; border-radius:2px; }
.category-pill { background:var(--color-white); border:1px solid var(--color-stroke); display:flex; align-items:center; gap:16px; padding:4px 16px 4px 4px; border-radius:4px; cursor:pointer; flex-shrink:0; transition:border-color var(--transition); text-decoration:none; }
.category-pill.active { border-color:var(--color-accent); }
.category-pill-img { width:120px; height:85px; background:var(--color-bg); border-radius:2px; display:flex; align-items:center; justify-content:center; overflow:hidden; flex-shrink:0; }
.category-pill-img img { width:100%; height:100%; object-fit:contain; }
.category-pill-img svg { width:24px; height:24px; fill:none; stroke:var(--color-black); stroke-width:1.5; }
.category-pill-name { font-family:var(--font-lato); font-size:20px; font-weight:500; white-space:nowrap; color:var(--color-black); }
.category-pill.active .category-pill-name { color:var(--color-accent); }

/* Filters row */
.catalog-filters-row { display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:56px; }
.price-filter > label { display:block; font-family:var(--font-lato); font-size:14px; color:var(--color-graphit); margin-bottom:8px; }
.price-inputs { display:flex; align-items:center; gap:4px; }
.price-field { background:var(--color-bg); padding:12px 16px; display:flex; align-items:center; justify-content:space-between; width:139px; }
.price-field input { background:none; border:none; font-family:var(--font-lato); font-size:17px; color:var(--color-black); width:80px; }
.price-field span { font-family:var(--font-raleway); font-size:17px; color:var(--color-black); }
.price-sep { width:8px; height:1px; background:var(--color-stroke); flex-shrink:0; display:block; }
.sort-btn { display:flex; align-items:center; gap:8px; cursor:pointer; background:none; border:none; }
.sort-btn svg { width:24px; height:24px; fill:none; stroke:var(--color-graphit); stroke-width:1.5; }
.sort-btn span { font-family:var(--font-lato); font-size:14px; color:var(--color-graphit); }

/* Full products grid */
.products-grid-full { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-bottom:56px; }
.products-grid-full .product-card { flex:unset; min-height:370px; }

/* Pagination */
.catalog-pagination { display:flex; align-items:center; gap:40px; justify-content:center; margin:56px 0; }
.pagination-numbers { display:flex; align-items:center; gap:24px; }
.pagination-numbers a,.pagination-numbers span { font-family:var(--font-lato); font-size:17px; color:var(--color-graphit); opacity:.7; transition:color var(--transition); }
.pagination-numbers .current { font-weight:600; color:var(--color-black); opacity:1; }
.pagination-numbers a:hover { color:var(--color-accent); opacity:1; }
.pagination-arrow svg { width:24px; height:24px; fill:none; stroke:var(--color-black); stroke-width:1.5; }

/* ===== SINGLE PRODUCT ===== */
.single-product-page { padding-top:64px; }
.product-hero { display:grid; grid-template-columns:1fr 1fr; min-height:648px; }
.product-gallery { position:relative; overflow:hidden; background:var(--color-bg); }
.product-gallery-main img { width:100%; height:648px; object-fit:cover; }
.product-gallery-thumbs { position:absolute; bottom:16px; left:16px; display:flex; gap:8px; }
.product-thumb { width:80px; height:80px; object-fit:cover; cursor:pointer; border:2px solid transparent; transition:border-color var(--transition); }
.product-thumb.active { border-color:var(--color-accent); }
.product-info { padding:56px 40px; display:flex; flex-direction:column; gap:32px; }
.product-title { font-family:var(--font-lato); font-size:36px; font-weight:500; color:var(--color-black); }
.product-price { font-family:var(--font-lato); font-size:36px; font-weight:400; color:var(--color-black); }
.product-desc { font-family:var(--font-lato); font-size:20px; color:var(--color-black); line-height:1.4; }

/* ===== MOBILE MENU ===== */
.mobile-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:1100; opacity:0; transition:opacity var(--transition); }
.mobile-overlay.active { display:block; opacity:1; }
.mobile-menu { position:fixed; top:0; right:-100%; width:100%; max-width:430px; height:100%; background:#f5f5f5; z-index:1200; padding:0 32px 40px; transition:right var(--transition); overflow-y:auto; display:flex; flex-direction:column; }
.mobile-menu.active { right:0; }
.mobile-menu-header { display:flex; align-items:center; justify-content:space-between; padding:20px 0 40px; flex-shrink:0; }
.mobile-menu-header .custom-logo { height:32px; width:auto; }
.mobile-menu-header .site-logo-text { font-family:var(--font-raleway); font-size:22px; font-weight:700; color:var(--color-accent); letter-spacing:.05em; text-transform:uppercase; }
.mobile-menu-close { width:40px; height:40px; display:flex; align-items:center; justify-content:center; background:transparent; border:none; cursor:pointer; padding:0; }
.mobile-menu-close svg { width:24px; height:24px; fill:none; stroke:var(--color-black); stroke-width:2; }
.mobile-menu ul { display:flex; flex-direction:column; gap:0; margin-bottom:48px; padding:0; list-style:none; }
.mobile-menu ul li a { font-family:var(--font-raleway); font-size:20px; font-weight:400; color:var(--color-black); display:block; padding:18px 0; border-bottom:1px solid #e0e0e0; transition:color var(--transition); }
.mobile-menu ul li a:hover { color:var(--color-accent); }
.mobile-menu-contacts { display:flex; flex-direction:column; gap:16px; margin-bottom:32px; }
.mobile-menu-contacts a, .mobile-menu-contacts span { font-family:var(--font-lato); font-size:16px; color:var(--color-black); border-bottom:none; padding:0; text-decoration:none; }
.mobile-menu-contacts a:hover { color:var(--color-accent); }
.mobile-menu-social { display:flex; gap:12px; margin-bottom:40px; }
.social-icon { width:44px; height:44px; border-radius:8px; display:flex !important; align-items:center; justify-content:center; color:#fff !important; flex-shrink:0; padding:0 !important; border-bottom:none !important; }
.social-icon--vk { background:#0077FF; }
.social-icon--tg { background:#29B6F6; }
.social-icon svg { width:22px; height:22px; }
.mobile-menu-footer { display:flex; flex-direction:column; gap:12px; margin-top:auto; padding-top:24px; }
.mobile-menu-footer a, .mobile-menu-footer span { font-family:var(--font-lato); font-size:13px; color:#888; border-bottom:none; padding:0; text-decoration:none; }
.mobile-menu-footer a:hover { color:var(--color-black); }

/* ===== MODAL ===== */
.modal-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:2000; align-items:center; justify-content:center; }
.modal-overlay.active { display:flex; }
.modal { background:#fff; padding:48px; width:100%; max-width:560px; position:relative; }
.modal h3 { font-family:var(--font-lato); font-size:24px; font-weight:600; color:var(--color-black); margin-bottom:32px; }
.modal-close { position:absolute; top:16px; right:16px; width:40px; height:40px; display:flex; align-items:center; justify-content:center; background:var(--color-bg); border-radius:20px; cursor:pointer; border:none; }
.modal-close svg { width:20px; height:20px; fill:none; stroke:var(--color-black); stroke-width:2; }
.form-group { margin-bottom:16px; }
.form-group input,.form-group textarea { width:100%; padding:14px 16px; background:var(--color-bg); border:none; font-family:var(--font-lato); font-size:16px; color:var(--color-black); }
.form-group input::placeholder,.form-group textarea::placeholder { color:var(--color-secondary); }
.form-group textarea { min-height:100px; resize:vertical; }
.form-privacy { font-size:12px; color:var(--color-secondary); margin-top:12px; text-align:center; }
.form-privacy a { color:var(--color-accent); }
.form-success { display:none; flex-direction:column; align-items:center; gap:16px; text-align:center; padding:40px 0; }
.form-success.visible { display:flex; }
.form-success svg { width:48px; height:48px; stroke:var(--color-accent); fill:none; stroke-width:2; }
.form-success p { font-family:var(--font-lato); font-size:18px; color:var(--color-black); }

/* ===== ANIMATIONS ===== */
.fade-in { opacity:0; transform:translateY(24px); transition:opacity .5s ease,transform .5s ease; }
.fade-in.visible { opacity:1; transform:none; }

/* ===== RESPONSIVE ===== */
@media(max-width:1400px) {
    :root { --page-px:24px; }
    .about-grid { grid-template-columns:1fr; }
    .about-media { height:400px; }
}
@media(max-width:1024px) {
    .main-nav { display:none; }
    .burger-btn { display:flex; }
    .hero-section { height:500px; padding:0 24px; }
    .hero-slide-content { top:140px; left:24px; right:24px; }
    .hero-slide-content h1 { font-size: clamp(10px, 2.9vw, 56px); white-space:nowrap; }
    .showroom-grid { grid-template-columns:1fr; }
    .showroom-item:first-child { height:300px; grid-row:unset; }
    .showroom-item:not(:first-child) { height:200px; }
    .advantages-grid { grid-template-columns:repeat(2,1fr); }
    .news-grid { grid-template-columns:repeat(2,1fr); }
    .products-grid { flex-wrap:wrap; }
    .product-card { flex:0 0 calc(50% - 8px); }
    .products-grid-full { grid-template-columns:repeat(2,1fr); }
    .contacts-card { position:relative; top:auto; left:auto; right:auto; transform:none; margin:0; }
    .contacts-section { flex-direction:column; }
    .contacts-map { height:350px; }
    .footer-menus { flex-wrap:wrap; gap:32px; }
    .product-hero { grid-template-columns:1fr; }
}
@media(max-width:768px) {
    :root { --page-px:16px; }
    .hero-section { height:400px; margin-top:56px; padding:0 16px; }
    .hero-slide-content { top:100px; left:16px; right:16px; }
    .hero-slide-content h1 { font-size: clamp(10px, 2.9vw, 56px); white-space:nowrap; }
    .advantages-grid { grid-template-columns:1fr; }
    .advantage-item { border-right:none !important; }
    .news-grid { grid-template-columns:1fr; }
    .products-grid-full { grid-template-columns:1fr 1fr; }
    .footer-inner { flex-direction:column; gap:40px; }
    .footer-logo { min-height:auto; gap:24px; }
    .footer-menus { flex-direction:column; }
    .section-title { font-size:28px; margin-bottom:40px; }
    .catalog-filters-row { flex-direction:column; align-items:flex-start; gap:16px; }
}
@media(max-width:480px) {
    .products-grid { flex-direction:column; }
    .product-card { flex:unset; }
    #relGrid { display:grid !important; grid-template-columns:1fr 1fr; overflow:visible !important; gap:16px; }
    #relGrid .product-card { flex:unset !important; min-height:unset !important; width:auto !important; }
    #relPrev, #relNext { display:none !important; }
    .products-grid-full { grid-template-columns:1fr; }
    .hero-section { height:100svh; }
    .hero-slider, .hero-slide { height:100% !important; }
    .hero-slide-content { top:50% !important; transform:translateY(-50%) !important; left:24px !important; right:24px !important; text-align:center !important; }
    .hero-slide-content h1 { font-size:32px !important; white-space:normal !important; line-height:1.25 !important; font-weight:500 !important; }
    .hero-nav { display:none !important; }
    .showroom-grid { grid-template-columns:1fr !important; }
    .showroom-item, .showroom-item:last-child, .showroom-item:not(:last-child), .showroom-item:not(:first-child) { height:260px !important; grid-column:unset !important; grid-row:unset !important; overflow:hidden !important; }
    .catalog-tabs { display:grid !important; grid-template-columns:repeat(3,1fr); gap:8px 4px; margin-bottom:32px; }
    .catalog-tab { text-align:center; font-size:15px; white-space:normal !important; padding:4px 0; }
    .manufacturers-grid { display:grid !important; grid-template-columns:1fr 1fr; justify-items:center; gap:24px; }
    .about-grid { display:flex; flex-direction:column; }
    .about-text { order:1; }
    .about-media { order:2; }
    .about-text .btn-accent { display:none; }
    .about-section .about-btn-mobile { display:block !important; order:3; margin-top:24px; }
    .news-arrow { display:none; }
    .news-slider-wrap { overflow:hidden; }
    .news-grid { display:flex !important; overflow-x:auto; scroll-snap-type:x mandatory; gap:0; scrollbar-width:none; }
    .news-grid::-webkit-scrollbar { display:none; }
    .news-card { flex:0 0 100%; scroll-snap-align:start; padding:0 16px; }
    .footer-inner { flex-direction:column; }
    .footer-logo { order:1; flex-direction:row; align-items:center; justify-content:flex-start; min-height:auto; }
    .footer-logo > a { margin-right:auto; }
    .footer-legal { display:none; }
    .footer-menus { order:2; flex-direction:row !important; flex-wrap:wrap; gap:8px 16px; }
    .footer-menu-col { flex:0 0 calc(50% - 8px); }
    .footer-contacts { order:3; }
    .footer-legal-mobile { display:flex !important; order:4; flex-direction:column; gap:8px; margin-top:24px; }
    .footer-legal-mobile a, .footer-legal-mobile p { font-family:var(--font-lato); font-size:14px; color:var(--color-secondary); line-height:1.4; }
    .contacts-info-grid { grid-template-columns:1fr !important; margin-left:0 !important; margin-right:0 !important; gap:24px !important; }
    .contacts-icon-row { gap:12px !important; }
    .contacts-form-fields { grid-template-columns:1fr !important; }
    .contacts-form-title { text-align:left !important; }
    .design-hero-photo { height:auto !important; aspect-ratio:16/9 !important; }
    .design-hero-photo-wrap { margin-left:-16px !important; margin-right:-16px !important; }
    .contacts-hero-photo { height:auto !important; aspect-ratio:3/4 !important; }
    .design-content-inner { margin-left:0 !important; margin-right:0 !important; }
    .design-page-title { text-align:left !important; }
    .furniture-mobile-photo { display:block; }
    .furniture-desktop-grid { grid-template-columns:1fr !important; }
    .furniture-desktop-grid > div:last-child { display:none !important; }
    .furniture-top-section { padding-bottom:40px !important; }
    .furniture-gallery-mobile { display:flex !important; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; gap:0; margin:0 -16px 40px; }
    .furniture-gallery-mobile::-webkit-scrollbar { display:none; }
    .furniture-gallery-mobile > div { flex:0 0 100%; scroll-snap-align:start; aspect-ratio:4/3; overflow:hidden; }
    .furniture-gallery-mobile > div img { width:100%; height:100%; object-fit:cover; display:block; }
    .furniture-gallery-desktop { display:none !important; }
    .salon-block1 > div, .salon-block2 > div { grid-template-columns:1fr !important; gap:24px !important; }
    .product-price-block { align-items:center !important; }
    .furniture-btn-wrap { text-align:center; }
    .salon-block1 > div > div:last-child { order:-1; }
    .salon-block2 > div > div:first-child { order:-1; }
}

/* ===== CONTACTS PAGE SPECIFIC ===== */
.contacts-page-info { display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:32px;margin-bottom:40px; }
.contacts-info-item { display:flex;align-items:flex-start;gap:16px; }
.contacts-info-item svg { width:24px;height:24px;fill:none;stroke:var(--color-black);stroke-width:1.5;flex-shrink:0;margin-top:4px; }
.contacts-info-item a, .contacts-info-item span, .contacts-info-item p { font-family:var(--font-lato);font-size:24px;font-weight:500;color:var(--color-black);text-decoration:none; }
.contacts-form-wrap { background:var(--color-bg);padding:40px;max-width:912px;margin:0 auto;width:100%;display:flex;flex-direction:column;gap:40px;align-items:center; }
.contacts-form-title { font-family:var(--font-lato);font-size:24px;font-weight:500;color:var(--color-black); }
.contacts-form-row { display:flex;gap:16px;width:100%; }
.contacts-form-field { flex:1;display:flex;flex-direction:column;gap:8px; }
.contacts-form-field label { font-family:var(--font-raleway);font-size:17px;color:var(--color-black); }
.contacts-form-field input { background:white;border:none;padding:26px 24px;font-family:var(--font-lato);font-size:14px;color:var(--color-secondary);width:100%; }

/* ===== PRODUCT CARD HOVER OVERLAY ===== */
.product-card a.product-card-image { display:flex; }
.product-card a.product-card-name { color:var(--color-black);transition:color var(--transition); }
.product-card a.product-card-name:hover { color:var(--color-accent); }

/* ===== SCROLLABLE PRODUCTS GRID ===== */
#productsGrid {
    overflow-x: auto;
    scroll-behavior: smooth;
    -ms-overflow-style: none;
    scrollbar-width: none;
}
#productsGrid::-webkit-scrollbar { display:none; }

/* ===== ABOUT PAGE LINK ===== */
.about-text .btn-accent { margin-top:0; }
.about-btn-mobile { display:none; }
.furniture-gallery-mobile { display:none; }

/* ===== WooCommerce overrides ===== */
.woocommerce-notices-wrapper { display:none; }
.wc-block-components-notices { display:none; }

/* ===== CATALOG PAGE ADDITIONS ===== */

/* Заголовок слева */
.catalog-page-title { text-align: left; }

/* Чередование 3/4 колонок */
.products-grid-catalog {
    display: grid;
    gap: 16px;
    margin-bottom: 16px;
}
.products-grid-catalog--cols-3 { grid-template-columns: repeat(3, 1fr); }
.products-grid-catalog--cols-4 { grid-template-columns: repeat(4, 1fr); }
.products-grid-catalog .product-card { flex: unset; min-height: 370px; }

/* Range slider (Figma: зелёный ползунок цены) */
.price-range-wrap { display: flex; flex-direction: column; gap: 8px; }
.price-range-track {
    position: relative;
    height: 3px;
    background: var(--color-bg);
    width: 293px;
    margin-bottom: 8px;
}
.price-range-fill {
    position: absolute;
    height: 3px;
    background: var(--color-accent);
    left: 0; width: 100%;
}
.price-range-input {
    position: absolute;
    top: -4px;
    width: 293px;
    height: 3px;
    background: transparent;
    pointer-events: none;
    -webkit-appearance: none;
    appearance: none;
    outline: none;
}
.price-range-min { z-index: 3; }
.price-range-max { z-index: 4; }
.price-range-input::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 11px; height: 11px;
    background: white;
    border: 3px solid var(--color-accent);
    pointer-events: all;
    cursor: pointer;
    border-radius: 0;
}
.price-range-input::-moz-range-thumb {
    width: 11px; height: 11px;
    background: white;
    border: 3px solid var(--color-accent);
    pointer-events: all;
    cursor: pointer;
    border-radius: 0;
}
.price-inputs {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-top: 4px;
}
.price-field {
    background: var(--color-bg);
    padding: 12px 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 139px;
    font-family: var(--font-lato);
    font-size: 17px;
    color: var(--color-black);
}

/* ===== SINGLE PRODUCT PAGE ===== */

/* Галерея (Figma: маленькое-большое-маленькое) */
.product-gallery-row {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 0 40px;
    margin: 40px 0;
}
.product-gallery-arrow {
    flex-shrink: 0;
    width: 24px; height: 24px;
    background: none; border: none; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    padding: 0;
}
.product-gallery-arrow svg { width: 24px; height: 24px; }
.product-gallery-side {
    flex: 1;
    height: 290px;
    overflow: hidden;
    background: var(--color-bg);
}
.product-gallery-side img {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
    opacity: 0.7;
}
.product-gallery-main {
    flex: 0 0 912px;
    height: 648px;
    position: relative;
    overflow: hidden;
    background: var(--color-bg);
}
.product-gallery-main img {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
}
.product-gallery-counter {
    position: absolute;
    top: 8px; right: 16px;
    font-family: var(--font-lato);
    font-size: 17px;
    color: var(--color-black);
}

/* Инфо блок (Figma: 912px по центру) */
.product-info-block {
    width: 912px;
    margin: 0 auto;
    padding: 0 0 80px;
    display: flex;
    flex-direction: column;
    gap: 40px;
}
.product-info-title-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.product-title {
    font-family: var(--font-lato);
    font-size: 36px; font-weight: 500;
    color: var(--color-black);
}
.product-wishlist--large {
    position: static;
    width: 40px; height: 40px;
    background: var(--color-bg);
    border-radius: 20px;
    flex-shrink: 0;
}
.product-description {
    font-family: var(--font-lato);
    font-size: 20px; font-weight: 400;
    color: var(--color-black);
    line-height: 1.4;
}
.product-description p { margin-bottom: 16px; }

/* Цена + кнопка (Figma: выровнены вправо) */
.product-price-block {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 16px;
}
.product-price-text {
    font-family: var(--font-lato);
    font-size: 24px; font-weight: 500;
    color: var(--color-black);
    white-space: nowrap;
}

/* Responsive */
@media(max-width:1200px) {
    .product-gallery-main { flex: 0 0 600px; height: 450px; }
    .product-info-block { width: 600px; }
    .products-grid-catalog--cols-4 { grid-template-columns: repeat(3,1fr); }
}
@media(max-width:768px) {
    .product-gallery-row { flex-direction: column; padding: 0 16px; }
    .product-gallery-main { flex: unset; width: 100%; height: 300px; }
    .product-gallery-side { display: none; }
    .product-info-block { width: 100%; padding: 0 16px 40px; }
    .products-grid-catalog--cols-3,
    .products-grid-catalog--cols-4 { grid-template-columns: repeat(2,1fr); }
}

/* ===== MODAL (по PDF дизайну) ===== */
.modal-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.5);
    z-index: 2000;
    align-items: center;
    justify-content: center;
    padding: 20px;
}
.modal-overlay.active { display: flex; }
.modal {
    background: var(--color-white);
    padding: 48px;
    width: 100%;
    max-width: 560px;
    position: relative;
    max-height: 90vh;
    overflow-y: auto;
}
.modal-close {
    position: absolute;
    top: 16px; right: 16px;
    width: 40px; height: 40px;
    display: flex; align-items: center; justify-content: center;
    background: var(--color-bg);
    border-radius: 20px;
    cursor: pointer; border: none;
}
.modal .form-group { margin-bottom: 24px; }
.modal .form-group input,
.modal .form-group textarea {
    width: 100%;
    background: var(--color-bg);
    border: none;
    padding: 20px 24px;
    font-family: var(--font-lato);
    font-size: 17px;
    color: var(--color-black);
    outline: none;
    display: block;
}
.modal .form-group input::placeholder,
.modal .form-group textarea::placeholder { color: var(--color-secondary); }
.modal .form-group textarea { min-height: 96px; resize: vertical; }

/* ===== АДАПТИВ — дополнения по PDF мобильным скринам (стр.16-25) ===== */

/* Каталог — пиллы категорий на мобильном */
@media(max-width:768px) {
    /* Каталог */
    .products-grid-catalog--cols-3,
    .products-grid-catalog--cols-4 { grid-template-columns: repeat(2,1fr); }
    .category-filter { gap:8px; padding:8px; }
    .category-pill { padding:4px 8px 4px 4px; }
    .category-pill-img { width:64px; height:48px; }
    .category-pill-name { font-size:14px; }

    /* Контакты — блок info в колонку */
    .page-contacts-info { flex-direction:column; gap:24px; }

    /* Страница товара — галерея */
    .product-gallery-row { flex-direction:column; padding:0 16px; }
    .product-gallery-main { flex:unset; width:100%; height:300px; }
    .product-gallery-side { display:none; }
    .product-info-block { width:100%; padding:24px 16px 40px; }

    /* Мобильное меню — шапка */
    .header-inner { padding:12px 16px; }

    /* Футер */
    .footer-inner { padding:40px 16px; }
    .footer-menus { gap:24px; }

    /* Страницы салон/мебель/дизайн */
    .page-furniture .two-cols,
    .page-salon .two-cols,
    .page-design .two-cols { grid-template-columns:1fr !important; }

    /* Форма контактов */
    .contacts-form-row { flex-direction:column !important; }

    /* Карта — контактная карточка */
    .contacts-card {
        position:relative !important;
        top:auto !important; left:auto !important;
        transform:none !important;
    }
    .contacts-card .phone-number { font-size:24px !important; }
}

@media(max-width:480px) {
    /* Каталог — 1 колонка на маленьких */
    .products-grid-catalog--cols-3,
    .products-grid-catalog--cols-4 { grid-template-columns:1fr; }

    /* Пиллы категорий — скролл */
    .category-filter { overflow-x:auto; flex-wrap:nowrap; }
    .category-pill { flex-shrink:0; }

    /* Заголовки */
    .catalog-page-title { font-size:28px; }

    /* Иконки преимуществ */
    .advantages-grid { grid-template-columns:1fr; }

    /* Модалка — на весь экран */
    .modal { padding:32px 20px; max-height:100vh; border-radius:0; }
    .modal-overlay { padding:0; align-items:flex-end; }

    /* Карточки товаров */
    .products-grid-full { grid-template-columns:1fr !important; }

    /* Страница избранного */
    #wishlistGrid { grid-template-columns:1fr 1fr !important; }

    /* Hero */
    .hero-section { padding:0 !important; }
    .hero-slide-content { left:16px !important; }
}

/* Планшет (PDF показывает 2 колонки) */
@media(min-width:481px) and (max-width:768px) {
    #wishlistGrid { grid-template-columns:repeat(2,1fr) !important; }
    .products-grid-full { grid-template-columns:repeat(2,1fr) !important; }
}

/* Большой планшет */
@media(max-width:1024px) {
    /* Страницы контент 2 колонки -> 1 */
    .page-furniture-text,
    .page-salon-text { columns:1 !important; }

    /* Дизайн-центр grid */
    .design-text-photos { grid-template-columns:1fr !important; }

    /* Пиллы — скролл */
    .category-filter { overflow-x:auto; flex-wrap:nowrap; }
    .category-pill { flex-shrink:0; }

    /* Wishlist 2 колонки */
    #wishlistGrid { grid-template-columns:repeat(2,1fr) !important; }

    /* Контакты */
    .contacts-page-3col { grid-template-columns:1fr !important; }
}

/* ===== DESKTOP FIXES (PDF pages 8-15) ===== */

/* PDF стр.8: Главная — section spacing */
.hero-section { margin-top: 64px; }
.subtitle-section { padding: 56px 40px; }

/* Каталог — заголовок слева */
.catalog-page-title { text-align: left !important; }

/* ===== СКРЫТИЕ ЦЕН (по просьбе руководства) =====
   Чтобы вернуть цены — удалить этот блок целиком. */
.price-filter { display: none !important; }       /* фильтр по цене в каталоге */
.product-card-price { display: none !important; } /* цена на карточках каталога */
.product-price { display: none !important; }      /* цена на странице товара */
.product-price-text { display: none !important; } /* цена в блоке "Оставить заявку" */
.sort-btn { display: none !important; }           /* кнопка "Сортировка" (пока не реализована) */

/* PDF стр.11: Избранное — 6 колонок */
#wishlistGrid { grid-template-columns: repeat(6,1fr) !important; gap: 16px !important; }

/* PDF стр.9: Пиллы без картинки у "Все категории" — иконка по центру */
.category-pill-img svg { width: 20px; height: 20px; }

/* PDF стр.10: Страница товара — счётчик фото */
.product-gallery-counter {
    position: absolute;
    top: 16px; right: 16px;
    font-family: var(--font-lato);
    font-size: 17px;
    color: var(--color-black);
    background: rgba(255,255,255,0.8);
    padding: 4px 8px;
}

/* PDF стр.12: Контакты — info row точный spacing */
.page-contacts-3col {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 56px;
    margin-bottom: 56px;
    align-items: start;
}

.furniture-mobile-photo { display: none; }

/* PDF стр.13: Мебель на заказ — текст в 2 колонки с gap 56px */
.furniture-text-cols {
    columns: 2;
    column-gap: 56px;
    font-family: var(--font-lato);
    font-size: 20px;
    color: var(--color-black);
    line-height: 1.6;
    margin-bottom: 56px;
}

.furniture-content p,
.furniture-content .wp-block-column p,
.furniture-content blockquote { margin-bottom: 32px !important; font-size: 20px; line-height: 1.6; padding: 0 !important; border: none !important; }
.furniture-content p:last-child,
.furniture-content .wp-block-column p:last-child,
.furniture-content blockquote:last-child { margin-bottom: 0 !important; }

/* PDF стр.14: Дизайн-центр — сетка текст+фото */
.design-text-photos {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 56px;
    align-items: start;
    margin-bottom: 56px;
}
.design-photos-col {
    display: grid;
    grid-template-rows: 1fr 1fr;
    gap: 16px;
    height: 600px;
}
.design-gallery-6 {
    display: grid;
    grid-template-columns: repeat(6,1fr);
    height: 200px;
}
.design-gallery-6 > div { overflow: hidden; }
.design-gallery-6 img { width:100%;height:100%;object-fit:cover;display:block; }

/* PDF стр.15: Салон — 2 колонки текст с фото */
.salon-2col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 56px;
    margin-bottom: 56px;
}
.salon-gallery-2x2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    height: 600px;
}
.salon-gallery-2x2 > div { overflow:hidden; }
.salon-gallery-2x2 img { width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s; }
.salon-gallery-2x2 > div:hover img { transform:scale(1.03); }

/* PDF стр.11: Wishlist — правильные колонки */
.wishlist-page .products-grid-full {
    grid-template-columns: repeat(6,1fr) !important;
}

/* Активный пункт меню — зелёный (PDF стр.3) */
.main-nav .current-menu-item > a { color: var(--color-accent) !important; font-weight: 600; }

/* Форма в модалке — точный стиль из PDF стр.7 */
#callbackFormWrap h3 {
    font-family: var(--font-lato);
    font-size: 24px;
    font-weight: 600;
    color: var(--color-black);
    text-align: center;
    margin-bottom: 32px;
}
