:root{--shop-blue:#1d4ed8;--shop-blue-dark:#173ea6;--shop-ink:#14213d;--shop-muted:#65728a;--shop-line:#e4e9f2;--shop-bg:#f6f8fc;--shop-green:#14804a}
.shop{background:var(--shop-bg);min-height:70vh;color:var(--shop-ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.shop *{box-sizing:border-box}.shop-wrap{width:min(1240px,calc(100% - 40px));margin:0 auto}.shop-hero{padding:48px 0 42px;background:linear-gradient(120deg,#fff 0%,#edf4ff 62%,#e4eeff 100%);border-bottom:1px solid #dce6f7}.shop-hero .shop-wrap{display:flex;justify-content:space-between;align-items:center;gap:28px}.shop-kicker{display:inline-block;color:var(--shop-blue);font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-bottom:9px}.shop-hero h1{font-size:clamp(36px,5vw,62px);line-height:1;margin:0 0 14px;letter-spacing:-.04em}.shop-hero p{max-width:680px;color:var(--shop-muted);font-size:18px;line-height:1.6;margin:0}.shop-cart-link{display:flex;align-items:center;gap:12px;padding:15px 18px;background:#fff;border:1px solid #dbe4f2;border-radius:14px;text-decoration:none;color:var(--shop-ink);font-weight:750;box-shadow:0 10px 35px rgba(30,64,175,.1)}.shop-cart-link b{display:grid;place-items:center;min-width:28px;height:28px;padding:0 7px;border-radius:20px;background:var(--shop-blue);color:#fff}.shop-layout{display:grid;grid-template-columns:270px 1fr;gap:28px;padding-top:30px;padding-bottom:50px}.shop-filter form{position:sticky;top:92px;background:#fff;border:1px solid var(--shop-line);border-radius:16px;padding:20px;box-shadow:0 10px 35px rgba(15,23,42,.045)}.filter-title{font-size:19px;font-weight:850;margin-bottom:18px}.shop-filter label{display:block;font-size:13px;font-weight:750;margin:14px 0 6px}.shop-filter input,.shop-filter select{width:100%;padding:11px 12px;border:1px solid #ccd5e3;border-radius:9px;background:#fff;color:var(--shop-ink)}.shop-filter button,.shop-primary{display:block;width:100%;border:0;border-radius:9px;padding:12px 14px;background:var(--shop-blue);color:#fff;font-weight:800;text-align:center;text-decoration:none;margin-top:18px;cursor:pointer}.shop-filter button:hover,.shop-primary:hover{background:var(--shop-blue-dark)}.shop-filter form>a{display:block;text-align:center;margin-top:12px;color:var(--shop-muted);font-size:14px}.results-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.results-head strong{font-size:20px}.results-head span{display:block;color:var(--shop-muted);font-size:13px;margin-top:3px}.filter-open{display:none}.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.product-card{background:#fff;border:1px solid var(--shop-line);border-radius:16px;overflow:hidden;transition:.2s;min-width:0}.product-card:hover{transform:translateY(-3px);box-shadow:0 15px 42px rgba(18,38,77,.1);border-color:#cad7eb}.product-image{position:relative;display:grid;place-items:center;height:225px;padding:22px;background:linear-gradient(#fff,#f9fbff);text-decoration:none}.product-image img{max-width:100%;max-height:100%;object-fit:contain}.product-image em{position:absolute;top:13px;left:13px;background:#e8f8ef;color:var(--shop-green);border-radius:30px;padding:6px 10px;font-size:11px;font-weight:850;font-style:normal}.product-placeholder{display:grid;place-items:center;width:90px;height:90px;border-radius:24px;background:#eef3fb;color:#9aa8bd;font-weight:900;font-size:25px}.product-placeholder.big{width:150px;height:150px;font-size:42px}.product-body{padding:18px}.product-brand{text-transform:uppercase;color:var(--shop-blue);font-size:11px;font-weight:850;letter-spacing:.08em;min-height:15px}.product-card h2{font-size:15px;line-height:1.4;margin:8px 0;min-height:64px}.product-card h2 a{color:var(--shop-ink);text-decoration:none}.product-code{color:var(--shop-muted);font-size:12px}.product-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:18px}.product-bottom strong{font-size:19px;white-space:nowrap}.product-bottom button,.buy-box button,.checkout button{border:0;border-radius:9px;background:var(--shop-blue);color:#fff;padding:10px 13px;font-weight:800;cursor:pointer}.pagination{display:flex;justify-content:center;gap:7px;margin-top:28px}.pagination a{display:grid;place-items:center;width:38px;height:38px;border-radius:9px;background:#fff;border:1px solid var(--shop-line);color:var(--shop-ink);text-decoration:none}.pagination a.active{background:var(--shop-blue);color:#fff}.shop-empty{background:#fff;border:1px dashed #cbd5e1;border-radius:16px;padding:45px;text-align:center}.crumbs{display:flex;gap:9px;align-items:center;padding:24px 0;color:var(--shop-muted);font-size:13px}.crumbs a{color:var(--shop-blue);text-decoration:none}.product-detail{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:46px;background:#fff;border:1px solid var(--shop-line);border-radius:20px;padding:34px}.gallery-main{height:440px;display:grid;place-items:center;border-radius:15px;background:#f8faff}.gallery-main img{max-width:100%;max-height:100%;object-fit:contain}.gallery-thumbs{display:flex;gap:10px;margin-top:12px}.gallery-thumbs button{width:75px;height:75px;border:1px solid var(--shop-line);border-radius:10px;background:#fff;padding:6px}.gallery-thumbs img{width:100%;height:100%;object-fit:contain}.product-info h1{font-size:clamp(28px,4vw,44px);line-height:1.12;letter-spacing:-.03em;margin:10px 0 16px}.product-meta{display:flex;gap:16px;flex-wrap:wrap;color:var(--shop-muted);font-size:13px}.stock-line{color:var(--shop-green);font-weight:800;margin:18px 0}.lead{font-size:17px;line-height:1.65;color:#475569}.buy-box{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#f3f7ff;border:1px solid #dce7fa;border-radius:15px;padding:20px;margin-top:25px}.buy-box small{display:block;color:var(--shop-muted)}.buy-box strong{display:block;font-size:28px;margin-top:3px}.buy-box button{padding:14px 20px}.buy-note{font-size:12px;color:var(--shop-muted)}.product-tabs{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:26px 0 50px}.product-tabs section{background:#fff;border:1px solid var(--shop-line);border-radius:18px;padding:28px}.description{line-height:1.7;color:#475569}.specs{margin:0}.specs>div{display:grid;grid-template-columns:1fr 1fr;gap:15px;padding:11px 0;border-bottom:1px solid #edf1f7}.specs dt{color:var(--shop-muted)}.specs dd{margin:0;font-weight:650}.cart-page{padding-bottom:55px}.cart-page h1{font-size:42px}.cart-layout{display:grid;grid-template-columns:1fr 380px;gap:25px}.cart-row{display:grid;grid-template-columns:100px 1fr auto 120px;gap:16px;align-items:center;background:#fff;border:1px solid var(--shop-line);border-radius:14px;padding:15px;margin-bottom:12px}.cart-row-image{height:85px;display:grid;place-items:center;background:#f7f9fd;border-radius:10px}.cart-row-image img{max-width:100%;max-height:100%;object-fit:contain}.cart-row-image span{font-weight:900;color:#9aa8bd}.cart-row-main a{font-weight:750;color:var(--shop-ink);text-decoration:none;line-height:1.4}.cart-row-main small{display:block;color:var(--shop-muted);margin-top:5px}.cart-remove{border:0;background:transparent;color:#dc2626;padding:5px 0;cursor:pointer}.cart-qty{display:flex;align-items:center;gap:8px}.cart-qty button{width:31px;height:31px;border:1px solid #d7dfeb;background:#fff;border-radius:7px}.cart-row-price{text-align:right;font-weight:850;font-size:17px}.checkout{background:#fff;border:1px solid var(--shop-line);border-radius:17px;padding:23px;align-self:start;position:sticky;top:92px}.checkout>p{font-size:14px;color:var(--shop-muted);line-height:1.5}.checkout-total{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--shop-line);border-bottom:1px solid var(--shop-line);padding:17px 0;margin:17px 0}.checkout-total strong{font-size:24px}.checkout label{display:block;font-size:13px;font-weight:750;margin:12px 0 6px}.checkout input:not([type=checkbox]),.checkout textarea{width:100%;border:1px solid #ccd5e3;border-radius:9px;padding:11px}.checkout textarea{min-height:82px;resize:vertical}.checkout .agree{font-weight:400;line-height:1.4}.checkout button{width:100%;padding:13px;margin-top:10px}.checkout button:disabled{opacity:.55}.hp{position:absolute!important;left:-9999px!important}.success{margin-top:13px;padding:11px;background:#dcfce7;color:#166534;border-radius:8px}.error{margin-top:13px;padding:11px;background:#fee2e2;color:#991b1b;border-radius:8px}.cart-toast{position:fixed;right:25px;bottom:25px;z-index:999999;background:#14213d;color:#fff;padding:13px 18px;border-radius:11px;box-shadow:0 12px 35px rgba(0,0,0,.2);transform:translateY(20px);opacity:0;transition:.2s}.cart-toast.show{transform:none;opacity:1}
@media(max-width:1000px){.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.product-detail{grid-template-columns:1fr;gap:25px}.product-tabs{grid-template-columns:1fr}.cart-layout{grid-template-columns:1fr}.checkout{position:static}}
@media(max-width:760px){.shop-wrap{width:min(100% - 28px,1240px)}.shop-hero{padding:32px 0}.shop-hero .shop-wrap{align-items:flex-end}.shop-hero p{font-size:15px}.shop-cart-link span{display:none}.shop-layout{grid-template-columns:1fr;padding-top:18px}.shop-filter{display:none}.shop-filter.open{display:block}.shop-filter form{position:static}.filter-open{display:block;border:1px solid #cbd5e1;background:#fff;border-radius:8px;padding:9px}.product-grid{grid-template-columns:1fr 1fr;gap:10px}.product-image{height:170px;padding:14px}.product-body{padding:13px}.product-card h2{font-size:13px;min-height:72px}.product-bottom{display:block}.product-bottom button{width:100%;margin-top:10px}.product-detail{padding:18px}.gallery-main{height:300px}.buy-box{display:block}.buy-box button{width:100%;margin-top:14px}.cart-row{grid-template-columns:70px 1fr auto}.cart-row-price{grid-column:2/4;text-align:left}.cart-qty{grid-column:3;grid-row:1/3}.cart-page h1{font-size:34px}}
@media(max-width:430px){.product-grid{grid-template-columns:1fr}.product-image{height:220px}.product-card h2{min-height:auto}.shop-hero .shop-wrap{align-items:center}}

/* Catalog layout v2: compact header and even product cards. */
.shop-hero{padding:28px 0 26px}.shop-kicker{font-size:12px;margin-bottom:7px}.shop-hero h1{font-size:clamp(32px,4vw,48px);margin-bottom:10px}.shop-hero p{max-width:760px;font-size:16px;line-height:1.5}.shop-layout{padding-top:24px}.product-card{display:flex;flex-direction:column}.product-image{height:190px;flex-shrink:0;padding:20px}.product-body{display:flex;flex:1;flex-direction:column}.product-card h2{display:-webkit-box;min-height:63px;max-height:63px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow-wrap:anywhere}.product-code{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.product-bottom{margin-top:auto;padding-top:18px}
@media(max-width:760px){.shop-hero{padding:24px 0}.product-image{height:170px}.product-card h2{min-height:55px;max-height:55px}.product-bottom{padding-top:14px}}
@media(max-width:430px){.product-image{height:210px}.product-card h2{min-height:55px;max-height:55px}}

/* Product page v4. */
.product-page{
    padding-bottom:54px;
    background:#f4f7fb;
}

/* Категории и безопасное размещение фотографий в каталоге. */
.product-image img{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center}
.product-image em{background:#fff3d7;color:#9a5a00;box-shadow:0 3px 12px rgba(100,65,0,.08)}
.category-cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;padding-top:22px}
.category-card{display:flex;min-width:0;min-height:112px;flex-direction:column;border:1px solid var(--shop-line);border-radius:15px;background:#fff;padding:16px;color:var(--shop-ink);text-decoration:none;box-shadow:0 7px 25px rgba(15,23,42,.035);transition:.2s}
.category-card:hover{transform:translateY(-2px);border-color:#b9c9e7;box-shadow:0 12px 30px rgba(15,23,42,.07)}
.category-card.active{border-color:var(--shop-blue);background:#eff5ff;box-shadow:0 0 0 2px rgba(29,78,216,.08)}
.category-card span{font-size:15px;font-weight:850;line-height:1.25}
.category-card strong{margin-top:8px;color:var(--shop-blue);font-size:13px}
.category-card small{margin-top:auto;padding-top:8px;color:var(--shop-muted);font-size:11px;line-height:1.35}
@media(max-width:1000px){.category-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.category-cards{display:flex;width:100%;overflow-x:auto;padding:14px;scroll-snap-type:x mandatory}.category-card{min-width:190px;min-height:96px;scroll-snap-align:start}.shop-layout{padding-top:18px}}
.product-crumbs{
    min-width:0;
    overflow:hidden;
    white-space:nowrap;
}
.product-crumbs>*{
    flex:0 0 auto;
}
.product-crumbs span:last-child{
    min-width:0;
    overflow:hidden;
    color:#7b879b;
    text-overflow:ellipsis;
}
.product-detail-v4{
    grid-template-columns:minmax(0,1.03fr) minmax(420px,.97fr);
    align-items:start;
    gap:48px;
    padding:38px;
    border-color:#e1e7f0;
    border-radius:22px;
    box-shadow:0 14px 45px rgba(27,45,77,.06);
}
.product-detail-v4 .product-gallery{
    min-width:0;
    overflow:hidden;
}
.product-detail-v4 .gallery-main{
    height:440px;
    overflow:hidden;
    border:1px solid #edf1f6;
    background:linear-gradient(145deg,#fff 0%,#f7f9fd 100%);
}
.product-detail-v4 .gallery-main img{
    display:block;
    width:100%;
    height:100%;
    min-width:0;
    min-height:0;
    object-fit:contain;
    object-position:center;
}
.product-topline{
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
    margin-bottom:11px;
}
.product-topline .product-brand{
    min-height:0;
    font-size:12px;
}
.product-category-badge{
    display:inline-flex;
    align-items:center;
    min-height:28px;
    border:1px solid #dfe7f3;
    border-radius:999px;
    background:#f7f9fc;
    padding:5px 10px;
    color:#65728a;
    font-size:11px;
    line-height:1.2;
}
.product-page .product-info h1{
    max-width:720px;
    margin:0 0 14px;
    color:#101d38;
    font-size:clamp(25px,2.1vw,32px);
    font-weight:800;
    line-height:1.2;
    letter-spacing:-.025em;
    overflow-wrap:anywhere;
}
.product-page .product-meta{
    gap:9px 18px;
    padding-bottom:16px;
    border-bottom:1px solid #edf1f6;
}
.product-page .stock-line{
    display:flex;
    align-items:center;
    gap:8px;
    margin:16px 0;
    font-size:14px;
}
.product-page .stock-line small{
    padding-left:4px;
    color:#65728a;
    font-size:12px;
    font-weight:500;
}
.stock-dot{
    width:8px;
    height:8px;
    border-radius:50%;
    background:#16a05d;
    box-shadow:0 0 0 4px rgba(22,160,93,.12);
}
.product-quick-specs{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    margin:18px 0 20px;
}
.product-quick-spec{
    min-width:0;
    border:1px solid #e7ebf2;
    border-radius:11px;
    background:#fafbfd;
    padding:10px 12px;
}
.product-quick-spec span{
    display:block;
    margin-bottom:4px;
    color:#738097;
    font-size:11px;
    line-height:1.25;
}
.product-quick-spec strong{
    display:block;
    color:#17233d;
    font-size:13px;
    line-height:1.35;
    overflow-wrap:anywhere;
}
.product-buy-box{
    display:grid;
    grid-template-columns:minmax(140px,.72fr) minmax(210px,1fr);
    align-items:center;
    gap:18px;
    margin-top:0;
    border-color:#d8e4f8;
    background:linear-gradient(135deg,#f5f8ff,#edf4ff);
    padding:18px;
}
.product-price span{
    display:block;
    margin-top:4px;
    color:#78849a;
    font-size:11px;
}
.product-buy-box .product-price strong{
    color:#111d35;
    font-size:27px;
    white-space:nowrap;
}
.product-actions{
    display:grid;
    grid-template-columns:1fr;
    gap:9px;
}
.product-actions button{
    width:100%;
    min-height:47px;
    margin:0;
    padding:11px 16px;
}
.product-consult-button{
    border:1px solid var(--shop-blue)!important;
    background:#fff!important;
    color:var(--shop-blue)!important;
}
.product-consult-button:hover{
    background:#eaf1ff!important;
}
.product-page .buy-note{
    margin:10px 2px 0;
    line-height:1.45;
}
.product-section-nav{
    display:flex;
    gap:8px;
    margin:22px 0 14px;
    padding:7px;
    border:1px solid #e1e7f0;
    border-radius:14px;
    background:#fff;
    box-shadow:0 8px 28px rgba(27,45,77,.04);
}
.product-section-nav a{
    display:inline-flex;
    align-items:center;
    gap:7px;
    border-radius:9px;
    padding:10px 14px;
    color:#263651;
    font-size:14px;
    font-weight:750;
    text-decoration:none;
}
.product-section-nav a:hover{
    background:#f1f5fb;
    color:var(--shop-blue);
}
.product-section-nav a span{
    display:grid;
    place-items:center;
    min-width:22px;
    height:22px;
    border-radius:999px;
    background:#edf3ff;
    color:var(--shop-blue);
    padding:0 6px;
    font-size:11px;
}
.product-content-card{
    margin-bottom:18px;
    border:1px solid #e1e7f0;
    border-radius:20px;
    background:#fff;
    padding:30px 34px;
    box-shadow:0 12px 38px rgba(27,45,77,.045);
    scroll-margin-top:90px;
}
.product-section-heading{
    margin-bottom:22px;
}
.product-section-heading>span{
    display:block;
    margin-bottom:5px;
    color:var(--shop-blue);
    font-size:11px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.product-section-heading h2{
    margin:0;
    color:#111d35;
    font-size:26px;
    line-height:1.2;
}
.product-description-card .description{
    max-width:920px;
    color:#445168;
    font-size:16px;
    line-height:1.75;
}
.spec-groups{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:26px 44px;
}
.spec-group{
    min-width:0;
}
.spec-group h3{
    margin:0 0 9px;
    color:#17233d;
    font-size:17px;
    line-height:1.3;
}
.spec-group .specs>div{
    grid-template-columns:minmax(130px,1fr) minmax(110px,.85fr);
    gap:18px;
    padding:10px 0;
}
.spec-group .specs>div:last-child{
    border-bottom:0;
}
.spec-group .specs dt{
    color:#748096;
    font-size:13px;
    line-height:1.4;
}
.spec-group .specs dd{
    color:#1e2a42;
    font-size:13px;
    line-height:1.4;
    text-align:right;
    overflow-wrap:anywhere;
}
.product-consult-modal[hidden]{
    display:none;
}
.product-consult-modal{
    position:fixed;
    inset:0;
    z-index:1000000;
    display:grid;
    place-items:center;
    padding:20px;
}
.product-consult-backdrop{
    position:absolute;
    inset:0;
    background:rgba(15,23,42,.68);
    backdrop-filter:blur(3px);
}
.product-consult-dialog{
    position:relative;
    z-index:1;
    width:min(100%,520px);
    max-height:calc(100vh - 40px);
    overflow:auto;
    border-radius:20px;
    background:#fff;
    padding:30px;
    box-shadow:0 24px 70px rgba(15,23,42,.3);
}
.product-consult-close{
    position:absolute;
    top:12px;
    right:12px;
    display:grid;
    place-items:center;
    width:38px;
    height:38px;
    border:0;
    border-radius:50%;
    background:#eef2f7;
    color:#334155;
    font-size:25px;
    line-height:1;
    cursor:pointer;
}
.product-consult-dialog h2{
    margin:0 42px 8px 0;
    font-size:26px;
    line-height:1.2;
}
.product-consult-product{
    margin:0 0 20px;
    color:var(--shop-muted);
    font-size:14px;
    line-height:1.5;
}
.product-consult-form label{
    display:block;
    margin:13px 0 6px;
    font-size:13px;
    font-weight:750;
}
.product-consult-form input:not([type="checkbox"]),
.product-consult-form textarea{
    width:100%;
    border:1px solid #cbd5e1;
    border-radius:10px;
    background:#fff;
    padding:12px 13px;
    color:var(--shop-ink);
    font:inherit;
}
.product-consult-form input:focus,
.product-consult-form textarea:focus{
    border-color:var(--shop-blue);
    outline:3px solid rgba(29,78,216,.12);
}
.product-consult-form textarea{
    min-height:90px;
    resize:vertical;
}
.product-consult-agree{
    display:flex!important;
    align-items:flex-start;
    gap:9px;
    margin:15px 0!important;
    color:var(--shop-muted);
    font-weight:400!important;
    line-height:1.4;
}
.product-consult-agree input{
    flex:0 0 auto;
    margin-top:3px;
}
.product-consult-agree a{
    color:var(--shop-blue);
}
.product-consult-submit{
    width:100%;
    min-height:48px;
    border:0;
    border-radius:10px;
    background:var(--shop-blue);
    color:#fff;
    font-weight:800;
    cursor:pointer;
}
.product-consult-submit:hover{
    background:var(--shop-blue-dark);
}
.product-consult-submit:disabled{
    cursor:wait;
    opacity:.65;
}
.product-consult-result{
    margin-top:12px;
    border-radius:9px;
    padding:11px 12px;
    font-size:14px;
    line-height:1.4;
}
.product-consult-result:empty{
    display:none;
}
.product-consult-result.is-success{
    background:#dcfce7;
    color:#166534;
}
.product-consult-result.is-error{
    background:#fee2e2;
    color:#991b1b;
}
body.product-modal-open{
    overflow:hidden;
}
@media(max-width:1100px){
    .product-detail-v4{grid-template-columns:1fr;gap:28px}
    .product-detail-v4 .gallery-main{height:400px}
    .product-page .product-info h1{max-width:850px}
}
@media(max-width:760px){
    .product-page{padding-bottom:34px}
    .product-crumbs{padding:16px 0;font-size:12px}
    .product-detail-v4{gap:22px;padding:16px;border-radius:16px}
    .product-detail-v4 .gallery-main{height:300px;border-radius:12px}
    .product-topline{margin-bottom:9px}
    .product-page .product-info h1{font-size:23px;line-height:1.24}
    .product-page .stock-line{align-items:flex-start;flex-wrap:wrap}
    .product-page .stock-line small{flex-basis:100%;padding-left:16px}
    .product-quick-specs{gap:7px;margin:15px 0}
    .product-quick-spec{padding:9px 10px}
    .product-buy-box{display:block;padding:16px}
    .product-actions{margin-top:15px}
    .product-actions button{width:100%;margin:0}
    .product-section-nav{margin-top:16px;overflow:auto}
    .product-section-nav a{flex:0 0 auto}
    .product-content-card{padding:22px 18px;border-radius:16px}
    .product-section-heading h2{font-size:22px}
    .product-description-card .description{font-size:15px;line-height:1.68}
    .spec-groups{grid-template-columns:1fr;gap:25px}
    .product-consult-dialog{padding:24px 18px;border-radius:16px}
    .product-consult-dialog h2{font-size:22px}
}
@media(max-width:430px){
    .product-quick-specs{grid-template-columns:1fr}
    .product-category-badge{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .spec-group .specs>div{grid-template-columns:minmax(0,1fr) minmax(95px,.8fr);gap:12px}
}

/* Compact product card and accessible accordions. */
.product-detail-v4{
    grid-template-columns:minmax(0,.9fr) minmax(390px,1.1fr);
    gap:30px;
    padding:26px;
}
.product-detail-v4 .gallery-main{
    height:360px;
}
.product-detail-v4 .gallery-thumbs{
    max-width:100%;
    overflow-x:auto;
    padding-bottom:3px;
    scrollbar-width:thin;
}
.product-detail-v4 .gallery-thumbs button{
    flex:0 0 64px;
    width:64px;
    height:64px;
    cursor:pointer;
}
.product-page .product-info h1{
    font-size:clamp(23px,1.9vw,30px);
}
.product-page .product-meta{
    padding-bottom:12px;
}
.product-page .stock-line{
    margin:12px 0;
}
.product-quick-specs{
    margin:13px 0 15px;
}
.product-buy-box{
    padding:14px;
}
.product-page .buy-note{
    margin-bottom:0;
}
.product-accordions{
    display:grid;
    gap:10px;
    margin:18px 0 0;
}
.product-accordion{
    overflow:hidden;
    border:1px solid #dfe6f0;
    border-radius:15px;
    background:#fff;
    box-shadow:0 8px 26px rgba(27,45,77,.035);
    scroll-margin-top:90px;
}
.product-accordion summary{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    min-height:62px;
    padding:16px 20px;
    color:#13213c;
    font-size:18px;
    font-weight:800;
    cursor:pointer;
    list-style:none;
    user-select:none;
}
.product-accordion summary::-webkit-details-marker{
    display:none;
}
.product-accordion summary:hover{
    background:#f8faff;
}
.product-accordion summary:focus-visible{
    outline:3px solid rgba(29,78,216,.18);
    outline-offset:-3px;
}
.product-accordion summary small{
    display:inline-grid;
    place-items:center;
    min-width:25px;
    height:25px;
    margin-left:6px;
    border-radius:999px;
    background:#edf3ff;
    color:var(--shop-blue);
    padding:0 7px;
    font-size:11px;
    vertical-align:2px;
}
.product-accordion-icon{
    position:relative;
    flex:0 0 30px;
    width:30px;
    height:30px;
    border-radius:50%;
    background:#edf3ff;
}
.product-accordion-icon::before,
.product-accordion-icon::after{
    content:"";
    position:absolute;
    top:50%;
    left:50%;
    width:12px;
    height:2px;
    border-radius:2px;
    background:var(--shop-blue);
    transform:translate(-50%,-50%);
    transition:transform .2s ease;
}
.product-accordion-icon::after{
    transform:translate(-50%,-50%) rotate(90deg);
}
.product-accordion[open] .product-accordion-icon::after{
    transform:translate(-50%,-50%) rotate(0deg);
}
.product-accordion[open] summary{
    border-bottom:1px solid #e8edf4;
}
.product-accordion-content{
    padding:22px 24px 25px;
}
.product-accordion-content .description{
    max-width:980px;
    color:#445168;
    font-size:15px;
    line-height:1.72;
}
.mobile-filter-head,
.filter-backdrop{
    display:none;
}

@media(max-width:1100px){
    .product-detail-v4{
        grid-template-columns:1fr;
        gap:22px;
    }
    .product-detail-v4 .gallery-main{
        height:350px;
    }
}

@media(max-width:760px){
    body.catalog-filter-open{
        overflow:hidden;
    }
    .shop-layout{
        display:block;
    }
    .shop-results{
        min-width:0;
    }
    .shop-filter{
        position:fixed;
        z-index:100002;
        top:0;
        right:0;
        bottom:0;
        display:block;
        width:min(92vw,390px);
        background:#fff;
        transform:translateX(105%);
        transition:transform .24s ease;
        visibility:hidden;
    }
    .shop-filter.open{
        display:block;
        transform:translateX(0);
        visibility:visible;
    }
    .shop-filter form{
        position:static;
        height:100dvh;
        overflow-y:auto;
        border:0;
        border-radius:0;
        padding:16px 18px 32px;
        box-shadow:-18px 0 45px rgba(15,23,42,.16);
        overscroll-behavior:contain;
    }
    .mobile-filter-head{
        position:sticky;
        z-index:2;
        top:-16px;
        display:flex;
        align-items:center;
        justify-content:space-between;
        margin:-16px -18px 12px;
        border-bottom:1px solid #e5eaf2;
        background:#fff;
        padding:13px 18px;
    }
    .mobile-filter-head strong{
        font-size:19px;
    }
    .shop-filter .filter-close{
        display:grid;
        place-items:center;
        width:40px;
        height:40px;
        margin:0;
        border-radius:50%;
        background:#eef3fb;
        color:#20304d;
        padding:0;
        font-size:25px;
        line-height:1;
    }
    .filter-title{
        display:none;
    }
    .shop-filter input,
    .shop-filter select{
        min-height:46px;
        font-size:16px;
    }
    .shop-filter form>button:not(.filter-close){
        position:sticky;
        bottom:0;
        min-height:48px;
        box-shadow:0 -8px 20px rgba(255,255,255,.94);
    }
    .filter-backdrop{
        position:fixed;
        z-index:100001;
        inset:0;
        display:block;
        border:0;
        background:rgba(15,23,42,.55);
        opacity:0;
        pointer-events:none;
        transition:opacity .2s ease;
    }
    .filter-backdrop.open{
        opacity:1;
        pointer-events:auto;
    }
    .results-head{
        gap:14px;
    }
    .filter-open{
        display:inline-flex;
        align-items:center;
        gap:7px;
        min-height:42px;
        border:0;
        border-radius:10px;
        background:var(--shop-blue);
        color:#fff;
        padding:10px 14px;
        font-weight:800;
        cursor:pointer;
    }
    .product-detail-v4{
        gap:17px;
        padding:13px;
    }
    .product-detail-v4 .gallery-main{
        height:260px;
    }
    .product-detail-v4 .gallery-thumbs button{
        flex-basis:58px;
        width:58px;
        height:58px;
    }
    .product-page .product-info h1{
        margin-bottom:10px;
        font-size:21px;
        line-height:1.22;
    }
    .product-page .product-meta{
        gap:6px 12px;
        font-size:12px;
    }
    .product-quick-specs{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .product-buy-box{
        padding:13px;
    }
    .product-buy-box .product-price strong{
        font-size:24px;
    }
    .product-actions{
        margin-top:12px;
    }
    .product-accordions{
        margin-top:12px;
        gap:8px;
    }
    .product-accordion{
        border-radius:13px;
    }
    .product-accordion summary{
        min-height:56px;
        padding:13px 15px;
        font-size:16px;
    }
    .product-accordion-content{
        padding:17px 15px 20px;
    }
    .product-accordion-content .description{
        font-size:14px;
        line-height:1.65;
    }
    .spec-groups{
        grid-template-columns:1fr;
        gap:22px;
    }
}

@media(max-width:430px){
    .product-detail-v4 .gallery-main{
        height:230px;
    }
    .product-quick-specs{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .product-quick-spec{
        padding:8px;
    }
    .product-quick-spec strong{
        font-size:12px;
    }
    .spec-group .specs>div{
        grid-template-columns:minmax(0,1fr) minmax(90px,.85fr);
    }
}

@media(prefers-reduced-motion:reduce){
    .shop-filter,
    .filter-backdrop,
    .product-accordion-icon::before,
    .product-accordion-icon::after{
        transition:none;
    }
}

/* Cart page v2: equipment approval request. */
.cart-page{
    padding-bottom:64px;
    background:#f4f7fb;
}
.cart-heading{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:24px;
    margin:2px 0 22px;
}
.cart-kicker{
    display:block;
    margin-bottom:6px;
    color:var(--shop-blue);
    font-size:12px;
    font-weight:850;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.cart-page .cart-heading h1{
    margin:0 0 8px;
    color:#111d35;
    font-size:clamp(32px,4vw,46px);
    line-height:1.05;
    letter-spacing:-.035em;
}
.cart-heading p{
    max-width:760px;
    margin:0;
    color:var(--shop-muted);
    font-size:16px;
    line-height:1.55;
}
.cart-back-link{
    flex:0 0 auto;
    border:1px solid #d7e0ed;
    border-radius:11px;
    background:#fff;
    padding:11px 15px;
    color:#24405f;
    font-size:14px;
    font-weight:750;
    text-decoration:none;
}
.cart-back-link:hover{
    border-color:#b9c9e7;
    color:var(--shop-blue);
}
.cart-steps{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
    margin:0 0 22px;
    padding:0;
    list-style:none;
}
.cart-steps li{
    display:flex;
    align-items:center;
    gap:11px;
    min-width:0;
    border:1px solid #e0e7f1;
    border-radius:13px;
    background:#fff;
    padding:12px 14px;
}
.cart-steps b{
    display:grid;
    place-items:center;
    flex:0 0 34px;
    width:34px;
    height:34px;
    border-radius:50%;
    background:#edf3ff;
    color:var(--shop-blue);
    font-size:14px;
}
.cart-steps span,
.cart-steps strong,
.cart-steps small{
    display:block;
    min-width:0;
}
.cart-steps strong{
    color:#17233d;
    font-size:13px;
    line-height:1.3;
}
.cart-steps small{
    margin-top:2px;
    color:#758197;
    font-size:11px;
    line-height:1.3;
}
.cart-page .cart-layout{
    grid-template-columns:minmax(0,1fr) minmax(330px,380px);
    align-items:start;
    gap:22px;
}
.cart-products{
    min-width:0;
}
.cart-section-title{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
    margin-bottom:12px;
}
.cart-section-title h2{
    margin:0;
    color:#14213d;
    font-size:22px;
}
.cart-section-title span{
    color:#6c7990;
    font-size:13px;
}
.cart-page .cart-row{
    grid-template-columns:92px minmax(0,1fr) auto 125px;
    gap:15px;
    min-height:126px;
    margin-bottom:10px;
    border-color:#e0e7f1;
    padding:15px;
    box-shadow:0 8px 26px rgba(27,45,77,.035);
}
.cart-page .cart-row-image{
    width:92px;
    height:92px;
    border:1px solid #edf1f6;
    background:linear-gradient(145deg,#fff,#f6f8fc);
    padding:7px;
    text-decoration:none;
}
.cart-row-main{
    min-width:0;
}
.cart-row-main>a{
    display:block;
    color:#15223d;
    font-size:15px;
    font-weight:800;
    line-height:1.4;
    text-decoration:none;
    overflow-wrap:anywhere;
}
.cart-row-main>a:hover{
    color:var(--shop-blue);
}
.cart-delivery{
    display:inline-block;
    margin-bottom:6px;
    border-radius:999px;
    background:#fff3d7;
    padding:4px 8px;
    color:#925500;
    font-size:10px;
    font-weight:850;
}
.cart-row-main small{
    margin-top:5px;
    font-size:11px;
}
.cart-page .cart-remove{
    margin-top:9px;
    color:#b42318;
    font-size:12px;
}
.cart-page .cart-qty{
    gap:7px;
    border:1px solid #dce4ef;
    border-radius:10px;
    background:#f8faff;
    padding:5px;
}
.cart-page .cart-qty button{
    display:grid;
    place-items:center;
    width:32px;
    height:32px;
    border:0;
    background:#fff;
    color:#17345c;
    font-size:18px;
    cursor:pointer;
}
.cart-page .cart-qty strong{
    min-width:22px;
    text-align:center;
}
.cart-page .cart-row-price strong,
.cart-page .cart-row-price small{
    display:block;
}
.cart-page .cart-row-price strong{
    color:#111d35;
    font-size:17px;
}
.cart-page .cart-row-price small{
    margin-top:5px;
    color:#7a8699;
    font-size:10px;
    font-weight:500;
}
.cart-page .shop-empty{
    background:#fff;
    padding:55px 30px;
}
.cart-empty-icon{
    margin-bottom:9px;
    font-size:42px;
}
.cart-page .shop-empty .shop-primary{
    display:inline-block;
    width:auto;
    min-width:190px;
}
.cart-page .checkout{
    top:86px;
    border-color:#dce5f2;
    border-radius:18px;
    padding:22px;
    box-shadow:0 14px 42px rgba(27,45,77,.07);
}
.checkout-heading>span{
    display:block;
    margin-bottom:4px;
    color:var(--shop-blue);
    font-size:11px;
    font-weight:850;
    letter-spacing:.07em;
    text-transform:uppercase;
}
.checkout-heading h2{
    margin:0;
    color:#111d35;
    font-size:25px;
    line-height:1.2;
}
.checkout-notice{
    margin:17px 0;
    border:1px solid #f1dca8;
    border-radius:12px;
    background:#fff9e9;
    padding:13px 14px;
}
.checkout-notice strong{
    display:block;
    color:#754500;
    font-size:13px;
}
.checkout-notice p{
    margin:5px 0 0;
    color:#735f3d;
    font-size:12px;
    line-height:1.5;
}
.cart-page .checkout-total{
    align-items:flex-end;
    margin:15px 0 18px;
    padding:15px 0;
}
.cart-page .checkout-total span{
    max-width:130px;
    color:#65728a;
    font-size:12px;
    line-height:1.3;
}
.cart-page .checkout-total strong{
    color:#111d35;
    font-size:25px;
}
.cart-page .checkout label:not(.agree){
    margin-top:11px;
}
.cart-page .checkout input:not([type=checkbox]),
.cart-page .checkout textarea{
    min-height:46px;
    border-color:#cbd5e1;
    font:inherit;
}
.cart-page .checkout input:focus,
.cart-page .checkout textarea:focus{
    border-color:var(--shop-blue);
    outline:3px solid rgba(29,78,216,.11);
}
.cart-page .checkout .agree{
    display:flex;
    align-items:flex-start;
    gap:8px;
    margin:14px 0 0;
    color:#67748a;
    font-size:11px;
}
.cart-page .checkout .agree input{
    flex:0 0 auto;
    margin-top:2px;
}
.cart-page .checkout .agree a{
    color:var(--shop-blue);
}
.cart-page .checkout button[type=submit]{
    min-height:50px;
    border-radius:10px;
    font-size:14px;
}
.checkout-call-note{
    margin:8px 0 0;
    color:#6b778d;
    font-size:11px;
    line-height:1.4;
    text-align:center;
}
.cart-page #orderMessage:not(:empty){
    margin-top:12px;
    border-radius:9px;
    padding:11px 12px;
    font-size:13px;
    line-height:1.4;
}

@media(max-width:1000px){
    .cart-page .cart-layout{
        grid-template-columns:1fr;
    }
    .cart-page .checkout{
        position:static;
        width:100%;
        max-width:620px;
        margin:0 auto;
    }
}

@media(max-width:700px){
    .cart-page{
        padding-bottom:38px;
    }
    .cart-heading{
        display:block;
        margin-bottom:16px;
    }
    .cart-page .cart-heading h1{
        font-size:32px;
    }
    .cart-heading p{
        font-size:14px;
    }
    .cart-back-link{
        display:inline-block;
        margin-top:13px;
    }
    .cart-steps{
        display:flex;
        overflow-x:auto;
        gap:8px;
        padding-bottom:4px;
        scroll-snap-type:x mandatory;
    }
    .cart-steps li{
        flex:0 0 210px;
        scroll-snap-align:start;
    }
    .cart-section-title h2{
        font-size:19px;
    }
    .cart-page .cart-row{
        grid-template-columns:74px minmax(0,1fr);
        gap:11px;
        min-height:0;
        padding:12px;
    }
    .cart-page .cart-row-image{
        width:74px;
        height:74px;
    }
    .cart-row-main>a{
        font-size:13px;
    }
    .cart-page .cart-qty{
        grid-column:2;
        justify-self:start;
        margin-top:2px;
    }
    .cart-page .cart-row-price{
        grid-column:2;
        text-align:left;
    }
    .cart-page .checkout{
        padding:18px;
    }
}

@media(max-width:390px){
    .cart-page .cart-row{
        grid-template-columns:62px minmax(0,1fr);
    }
    .cart-page .cart-row-image{
        width:62px;
        height:62px;
    }
}

/* Product information disclaimer. */
.product-disclaimer{
    display:flex;
    align-items:flex-start;
    gap:10px;
    margin-top:14px;
    border:1px solid #dce5f1;
    border-radius:11px;
    background:#f8fafc;
    padding:11px 12px;
}
.product-disclaimer-icon{
    display:grid;
    place-items:center;
    flex:0 0 22px;
    width:22px;
    height:22px;
    border-radius:50%;
    background:#e8effc;
    color:#1d4ed8;
    font-size:12px;
    font-weight:900;
    line-height:1;
}
.product-disclaimer p{
    margin:0;
    color:#68758b;
    font-size:11px;
    line-height:1.5;
}
.product-disclaimer strong{
    color:#3a4962;
}
@media(max-width:760px){
    .product-disclaimer{
        margin-top:12px;
        padding:10px;
    }
    .product-disclaimer p{
        font-size:10.5px;
    }
}

/* Mobile cart v3: compact list, large touch controls and readable checkout. */
@media(max-width:700px){
    .cart-page .shop-wrap{width:min(100% - 20px,1240px)}
    .cart-page .crumbs{padding:15px 0 12px;overflow:hidden;white-space:nowrap}
    .cart-heading{margin-bottom:14px}
    .cart-page .cart-heading h1{font-size:29px}
    .cart-heading p{font-size:13px;line-height:1.5}
    .cart-back-link{width:100%;padding:11px 13px;text-align:center}
    .cart-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;overflow:visible}
    .cart-steps li{display:block;min-width:0;padding:9px 7px;text-align:center}
    .cart-steps b{width:30px;height:30px;margin:0 auto 6px}
    .cart-steps strong{font-size:11px}
    .cart-steps small{display:none}
    .cart-section-title{margin-top:4px}
    .cart-section-title h2{font-size:18px}
    .cart-page .cart-row{grid-template-columns:78px minmax(0,1fr);gap:10px;padding:11px;border-radius:13px}
    .cart-page .cart-row-image{width:78px;height:78px;padding:5px}
    .cart-page .cart-row-image img{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain}
    .cart-row-main>a{font-size:13px;line-height:1.35}
    .cart-delivery{margin-bottom:5px;font-size:9px}
    .cart-page .cart-remove{min-height:32px;margin-top:5px;padding:6px 0}
    .cart-page .cart-qty{grid-column:2;justify-self:start;margin-top:0;padding:4px}
    .cart-page .cart-qty button{width:38px;height:38px;font-size:20px}
    .cart-page .cart-row-price{grid-column:2;margin-top:-2px;text-align:left}
    .cart-page .cart-row-price strong{font-size:18px}
    .cart-page .checkout{margin-top:4px;padding:16px;border-radius:15px}
    .checkout-heading h2{font-size:22px}
    .checkout-notice{margin:13px 0;padding:11px 12px}
    .cart-page .checkout input:not([type=checkbox]),.cart-page .checkout textarea{min-height:48px;font-size:16px}
    .cart-page .checkout textarea{min-height:96px}
    .cart-page .checkout button[type=submit]{min-height:52px;font-size:15px}
}

@media(max-width:370px){
    .cart-page .shop-wrap{width:min(100% - 14px,1240px)}
    .cart-steps strong{font-size:10px}
    .cart-page .cart-row{grid-template-columns:68px minmax(0,1fr)}
    .cart-page .cart-row-image{width:68px;height:68px}
}
