.product-controls{display:flex;align-items:center;justify-content:space-between;margin:10px 0}
.product-controls-right .view-switcher{display:flex;align-items:center;gap:8px}
.product-controls-right .view-switcher .view-label{color:#666;font-size:13px;margin-right:4px}
.product-controls-right .view-switcher .view-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid #ddd;border-radius:6px;text-decoration:none;color:#333;line-height:1;background:#fff}
.product-controls-right .view-switcher .view-btn svg{fill:#444}
.product-controls-right .view-switcher .view-btn.active{background:#eef3ff;border-color: #3f5870;}
.product-controls-right .view-switcher .view-btn.active svg{fill: #3f5870;}

/* LIST VIEW LAYOUT */
.products-list-view .product-item{display:flex;align-items:flex-start;gap:16px;padding:12px;border:1px solid #eee;border-radius:6px;margin-bottom:12px;background:#fff}
/* stretch columns to equal heights so price can align with buttons */
.products-list-view .product-item{align-items:stretch}
.products-list-view .product-media{display:flex;flex-direction:column;align-items:center;flex:0 0 160px}
.products-list-view .product-media .product-image{width:160px}
.products-list-view .product-media .product-image img{display:block;width:100%;height:auto;object-fit:cover}
.products-list-view .product-info{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}
.products-list-view .product-right{display:none}
.products-list-view .product-price{font-weight:600}
.products-list-view .product-quantity-list{width:auto}
.products-list-view .quantity-controls{display:flex;align-items:center;gap:6px}
.products-list-view .quantity-input{width:60px}
.products-list-view .product-subtotal{display:none}
.products-list-view .product-actions{display:flex;gap:8px}
.products-list-view .product-actions .btn{flex:0 0 auto;text-align:center}

/* Bottom row for list view */
.products-list-view .product-bottom{display:flex;align-items:center;gap:12px;margin-top:8px}
.products-list-view .product-price-left{flex:0 0 160px;text-align:center;color:#35414d;font-weight:700;white-space:nowrap}
.products-list-view .product-qty-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}

/* Price under image for list view */
.products-list-view .price-under-image{width:160px;text-align:center;font-weight:700;color:#35414d;margin-top: 0px;font-size: 18px;}
.products-list-view .product-bottom{margin-top:auto}

/* Equal heights and alignment for controls/buttons */
.products-list-view .quantity-controls .quantity-btn,
.products-list-view .quantity-controls .quantity-input{height:36px;line-height:36px}
.products-list-view .quantity-controls .quantity-btn{width:36px;padding:0;border: 1px solid #ddd;}
.products-list-view .quantity-controls .quantity-input{width:60px;text-align:center;padding:0}
.products-list-view .product-actions .btn{height: 36px;display:inline-flex;align-items:center;justify-content:center;padding: 0 10px;margin:0;width: 100px;color: #ffffff;}

/* GRID VIEW minor spacing */
.products-grid-view .product-item{border:1px solid #eee;border-radius:6px;padding:12px}
.products-grid-view .product-qty-line{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px}
.products-grid-view .product-actions{display:flex;gap:8px;margin-top:8px}
.products-grid-view .quantity-controls{display:flex;align-items:center;gap: 3px;}
.products-grid-view .quantity-controls .quantity-btn,
.products-grid-view .quantity-controls .quantity-input{height: 30px;line-height: 30px;}
.products-grid-view .quantity-controls .quantity-btn{width: 30px;padding:0;border:1px solid #ddd}
.products-grid-view .quantity-controls .quantity-input{width: 50px;text-align:center;padding:0}
.products-grid-view .product-actions .btn{flex:1 1 0;text-align:center;color:#fff}
.products-grid-view .product-actions .btn:visited{color:#fff;}

/* Product card links (to /{slug}) */
.product-link{color:inherit;text-decoration:none}
.product-link:hover{text-decoration:underline}
.product-link-media{display:block;color:inherit;text-decoration:none}

/* --- Product detail page (/{slug}) --- */
.product-page .pd-wrap{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap;background:#fff;border:1px solid #eee;border-radius:10px;padding:16px}
.product-page .pd-media{flex:0 0 320px;max-width:320px}
.product-page .pd-media img{width:100%;height:auto;display:block;border-radius:8px;border:none;background:transparent}
.product-page .pd-info{flex:1 1 340px;min-width:280px}
.product-page .pd-price-big{font-size:26px;font-weight:800;color:#35414d;line-height:1.1}
.product-page .pd-price-big.unavailable{color:#b91c1c}
.product-page .pd-price-block{display:flex;flex-direction:column;gap:2px}
.product-page .pd-price-label{font-size:13px;color:#6b7280;line-height:1}
.product-page .pd-title{display:flex;align-items:center;gap:8px;font-size:20px;font-weight:700;color:#35414d;margin:0 0 10px}
.product-page .pd-title i{font-size:18px;color:#35414d}
.product-page .pd-specs{margin:10px 0 16px;color:#35414d}
.product-page .pd-spec{display:flex;align-items:baseline;gap:10px;margin:6px 0;font-size:14px}
.product-page .pd-spec .k{white-space:nowrap}
.product-page .pd-spec .dots{flex:1 1 auto;border-bottom:1px dotted #cbd5e1;transform:translateY(-2px)}
.product-page .pd-spec .v{white-space:nowrap;font-weight:600}
.product-page .pd-spec .v.unavailable{color:#b91c1c}
.product-page .pd-bottom{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:14px}
.product-page .pd-qty{display:flex;align-items:center}
.product-page .pd-qty .quantity-controls{display:flex;align-items:center;gap:6px}
.product-page .pd-qty .quantity-btn{width:40px;height:40px;line-height:40px;padding:0;border:1px solid #ddd;border-radius:6px;background:#fff;color:#35414d;cursor:pointer}
.product-page .pd-qty .quantity-btn:hover{background:#f5f7fa}
.product-page .pd-qty .quantity-input{width:64px;height:40px;line-height:40px;text-align:center;border:1px solid #ddd;border-radius:6px;padding:0}
.product-page .pd-actions{display:flex;gap:10px;flex-wrap:nowrap;align-items:center;justify-content:flex-end;margin-left:auto}
.product-page .pd-actions .btn{min-width:auto;width:auto;flex:0 0 auto;padding:0 18px;height:40px;display:inline-flex;align-items:center;justify-content:center;line-height:1;white-space:nowrap;font-size:14px}
.product-page .pd-actions .btn-order{width:auto !important}
.product-page .pd-desc{margin-top:16px;background:#fff;border:1px solid #eee;border-radius:10px;padding:16px}
.product-page .pd-desc h2{margin:0 0 10px;font-size:18px}
@media (max-width: 640px){
  .product-page .pd-actions{flex-wrap:wrap}
  .product-page .pd-actions .btn{flex:1 1 100%}
}

/* Make whole card clickable via overlay link, but keep controls clickable */
.products-grid-view .product-item,
.products-list-view .product-item{position:relative}
.product-card-link{position:absolute;inset:0;z-index:10;display:block;cursor:pointer;border-radius:inherit}
.product-item .product-actions,
.product-item .product-quantity,
.product-item .quantity-controls,
.product-item .quantity-btn,
.product-item .quantity-input{position:relative;z-index:20}

/* Force ordering of blocks inside grid card */
.products-grid-view .product-info{display:flex;flex-direction:column}
.products-grid-view .product-name{order:1}
.products-grid-view .product-specs{order:2}
.products-grid-view .product-qty-line{order:3}
.products-grid-view .product-actions{order:4}

/* Price typography as requested earlier */
.price-label{font-size:14px;color:#666}
.price-value{font-size:16px;font-weight:600}
.price-currency{font-size:14px;color:#666}

/* Hide number input spinners */
input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button{ -webkit-appearance: none; margin: 0; }
input[type=number]{ -moz-appearance: textfield; appearance: textfield; }

/* Quantity controls for cart page */
.cart-qty-controls{display:inline-flex;align-items:center;gap:6px}
.cart-qty-controls .quantity-btn,.cart-qty-controls .quantity-input{height:30px;line-height:30px}
.cart-qty-controls .quantity-btn{width:30px;padding:0;border:1px solid #ddd;border-radius:6px;background:#fff;color:#35414d;cursor:pointer}
.cart-qty-controls .quantity-btn:hover{background:#f5f7fa}
.cart-qty-controls .quantity-input{width:50px;text-align:center;border:1px solid #ddd;border-radius:6px;padding:0}

/* Cart table alignment and row separators */
#cart-session-summary table{width:100%;border-collapse:separate;border-spacing:0}
#cart-session-summary thead th{font-weight:600;color:#35414d;text-align:center}
#cart-session-summary thead th:first-child{ text-align:left }
#cart-session-summary tbody td{padding: 10px 8px 10px 0px;border-bottom:1px solid #eee;text-align:center;vertical-align:middle}
#cart-session-summary tbody td:first-child{ text-align:left }
#cart-session-summary tbody td:last-child{ text-align:right }

/* Sidebar filter actions: two buttons at 50% each */
.filters-sidebar .filter-actions{display:flex;gap:10px;margin-top:8px}
.filters-sidebar .filter-actions .per-page-btn{flex:1 1 50%;display:inline-flex;align-items:center;justify-content:center;height:36px;border:1px solid #ddd;border-radius:6px;background:#fff;color:#35414d;text-decoration:none;padding:0 10px}
.filters-sidebar .filter-actions .per-page-btn:hover{background:#f5f7fa}

/* Facet checkbox list */
.filters-sidebar .facet-list{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:6px}
.filters-sidebar .facet-item{display:inline-flex;align-items:center;gap:6px;font-size:14px;color:#35414d;cursor:pointer;min-width: 105px;}
.filters-sidebar .facet-item input[type=checkbox]{appearance:checkbox;-webkit-appearance:checkbox;-moz-appearance:checkbox;width:16px;height:16px;margin:0;position:static!important;opacity:1!important;visibility:visible!important;accent-color:#3f5870}
.filters-sidebar .facet-item small{color:#8a8f98}

/* Sticky sidebar; скролл у каждой группы отдельно */
.filters-sidebar{position:sticky;top:10px}
.filters-sidebar .filters-form{max-height:none;overflow:visible;padding-right:0}
.filters-sidebar .facet-block .facet-list{max-height:240px;overflow:auto;padding-right:6px}
.filters-sidebar .facet-block .facet-list::-webkit-scrollbar{width:8px}
.filters-sidebar .facet-block .facet-list::-webkit-scrollbar-thumb{background:#ddd;border-radius:6px}
.filters-sidebar .facet-block .facet-list::-webkit-scrollbar-track{background:transparent}


/* Smooth fade for products reload */
#products-root{transition:opacity .25s ease}
#products-root.loading{opacity:0;visibility:hidden}

/* Enter animation for tiles (grid and list) */
#products-root.pre-enter .product-item{opacity:0;transform:translateY(10px)}
#products-root.enter .product-item{opacity:1;transform:translateY(0);transition:opacity .6s ease,transform .6s ease}

/* Fallback one-click modal */
.oneclick-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;z-index:10000}
.oneclick-modal{background:#fff;border-radius:8px;box-shadow:0 10px 30px rgba(0,0,0,.2);width:90%;max-width:420px;padding:16px}
.oneclick-modal h3{margin:0 0 10px 0;font-size:18px}
.oneclick-modal .oc-field{display:flex;flex-direction:column;margin-bottom:10px}
.oneclick-modal .oc-field input{height:36px;border:1px solid #ddd;border-radius:6px;padding:0 10px}
.oneclick-modal .oc-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:10px}
.oneclick-modal .oc-btn{height:36px;min-width:110px;border:1px solid #ddd;border-radius:6px;background:#fff;cursor:pointer}
.oneclick-modal .oc-btn.primary{background:#3f5870;color:#fff;border-color:#3f5870}

/* Toast notifications */
#toast-container{position:fixed;right:16px;bottom:16px;display:flex;flex-direction:column;gap:8px;z-index:10050}
.toast{opacity:0;transform:translateY(6px);transition:opacity .2s ease,transform .2s ease;max-width:360px;padding:10px 12px;border-radius:6px;border:none;background:rgba(242,139,0,.22);color:#f28b00;box-shadow:0 4px 12px rgba(0,0,0,.08)}
.toast.show{opacity:1;transform:translateY(0)}
.toast.error{border:none;background:rgba(248,215,218,.22);color:#842029}

/* Legacy modal styles (modal__wrap) */
.modal__wrap{position:fixed;inset:0;z-index:10000;background:rgba(0,0,0,.0);display:flex;align-items:center;justify-content:center;transition:background .25s ease}
.modal__wrap .modal__cell{display:flex;align-items:center;justify-content:center;width:100%;height:100%}
.modal__wrap .modal__data{border-radius:8px;box-shadow:0 10px 30px rgba(0,0,0,.2);max-width:95%;padding:0;position:relative;overflow:hidden;opacity:0;transform:translateY(10px);transition:opacity .25s ease,transform .25s ease}
.modal__wrap.is-open{background:rgba(0,0,0,.45)}
.modal__wrap.is-open .modal__data{opacity:1;transform:translateY(0)}
.modal__wrap .modal__header{align-items:center;justify-content:space-between;background:#3f5870;color:#fff;padding:12px 16px;font-size: 18px;text-align:center;position:relative}
.modal__wrap .modal__title{margin:0}
.modal__wrap .modal__x{appearance:none;background:transparent;border:0;color:#fff;font-size:22px;line-height:1;padding:0 4px;cursor:pointer;position:absolute;top: 0px;right:12px}
.modal__wrap .modal__content{padding:16px}
.modal__wrap .modal__form-group{margin-bottom:10px}
.modal__wrap .modal__form-input{width:100%;height:40px;border:1px solid #ddd;border-radius:6px;padding:0 12px}
.modal__wrap .modal__form-submit{display:inline-flex;align-items:center;justify-content:center;height:37px;line-height: 35px;width:110px;border:1px solid #3f5870;border-radius:6px;background:#3f5870;color:#fff;cursor:pointer;margin:0 auto;text-transform:none !important;font-weight:400;font-size:14px;letter-spacing:0;padding:0 12px;text-align:center;font-family: 'Open Sans', sans-serif;}
.modal__wrap .modal__form-submit:hover{filter:brightness(.96);background: #f28b00;border: 1px solid #f28b00;}
.modal__wrap .modal__form-hidden{display:none}
