/* Catalogo B2B: contenitore fluido e righe responsive. */
.stock-page > .container,
.stock-trust > .container {
    width: 100%;
    max-width: 1680px;
    padding-inline: clamp(1rem, 3vw, 3rem);
}

.stock-layout {
    grid-template-columns: clamp(240px, 18vw, 310px) minmax(0, 1fr);
    gap: clamp(1.25rem, 2.5vw, 3rem);
}

.stock-results { min-width: 0; }
.category-tree{display:grid;gap:.22rem;max-height:320px;overflow:auto;padding-right:.25rem}.category-tree a{display:flex;align-items:center;gap:.4rem;padding:.48rem .55rem;border-radius:.45rem;color:var(--slate);font-size:.72rem;font-weight:700}.category-tree a:hover{background:#f0f5f4;color:var(--ink)}.category-tree a.active{background:var(--ink);color:#fff}.category-tree a span{color:var(--mint-600)}.category-tree a.active span{color:var(--mint)}
.category-breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:.15rem;padding:.45rem .3rem;color:var(--muted);font-size:.62rem}.category-breadcrumb a{display:inline;padding:.15rem;color:var(--mint-600);font-size:.62rem}.category-tree .category-back{border:1px dashed var(--line);color:var(--ink)}
.product-gallery{min-width:0}.product-thumbnails{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.5rem;margin-top:.65rem}.product-thumbnails button{aspect-ratio:1;padding:.25rem;border:1px solid var(--line);border-radius:.5rem;background:#fff;cursor:pointer}.product-thumbnails button.active{border:2px solid var(--mint-600)}.product-thumbnails img{width:100%;height:100%;object-fit:contain}
.stock-table { width: 100%; overflow: hidden; }
.stock-head,
.stock-row {
    grid-template-columns: minmax(90px, .75fr) minmax(54px, .45fr) minmax(260px, 2fr) minmax(110px, .8fr) minmax(170px, 1.25fr) minmax(64px, .5fr) minmax(105px, .7fr);
    gap: clamp(.55rem, 1vw, 1.1rem);
}

.unit-brand,
.unit-config,
.unit-services { min-width: 0; }
.unit-brand small { max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
.unit-config strong { overflow-wrap: anywhere; }
.unit-price strong { white-space: nowrap; }

/* Catalogo commerciale: doppia vista lista/griglia. */
.catalog-toolbar { display:flex; align-items:center; gap:1rem; min-height:58px; margin-bottom:.75rem; padding:.65rem .85rem; border:1px solid var(--line); border-radius:.75rem; background:#fff; }
.catalog-total { display:flex; align-items:baseline; gap:.45rem; color:var(--muted); font-size:.78rem; }
.catalog-total strong { color:var(--ink); font-size:1rem; }
.toolbar-search { position:relative; flex:1 1 260px; max-width:360px; min-width:210px; }
.toolbar-search span { position:absolute; left:.75rem; top:50%; transform:translateY(-50%); color:#87909f; font-size:.9rem; pointer-events:none; }
.toolbar-search input { width:100%; height:38px; border:1px solid var(--line); border-radius:.5rem; padding:0 .8rem 0 2.1rem; background:#fff; color:var(--ink); font-size:.8rem; font-weight:700; }
.toolbar-search input:focus { outline:none; border-color:var(--mint); box-shadow:0 0 0 3px rgba(51,230,163,.2); }
.catalog-sort { display:flex; align-items:center; gap:.55rem; color:var(--muted); font-size:.72rem; }
.catalog-sort select { height:38px; min-width:180px; border:1px solid var(--line); border-radius:.5rem; padding:0 .75rem; background:#fff; color:var(--ink); font-weight:700; }
.toolbar-stock-toggle { display:flex; align-items:center; gap:.45rem; height:38px; padding:0 .75rem; border:1px solid var(--line); border-radius:.5rem; color:var(--muted); font-size:.72rem; font-weight:700; white-space:nowrap; cursor:pointer; }
.toolbar-stock-toggle input { width:16px; height:16px; accent-color:var(--ink); }
.toolbar-stock-toggle:has(input:checked) { border-color:var(--ink); background:var(--ink); color:#fff; }
.catalog-view-switch { display:flex; gap:.35rem; }
.catalog-view-switch a { display:grid; width:38px; height:38px; place-items:center; border:1px solid var(--line); border-radius:.5rem; color:var(--muted); font-size:1.25rem; }
.catalog-view-switch a.active { border-color:var(--ink); background:var(--ink); color:#fff; }
.catalog-products { min-width:0; }
.catalog-product { min-width:0; border:1px solid var(--line); background:#fff; }
.catalog-product-image { display:grid; place-items:center; overflow:hidden; background:#f8fafb; }
.catalog-product-image img { width:100%; height:100%; object-fit:contain; }
.catalog-product-image > span { color:#1bbf91; font-size:.72rem; font-weight:900; letter-spacing:.12em; }
.catalog-product-main { min-width:0; }
.catalog-product-brand { margin-bottom:.28rem; color:#14a983; font-size:.64rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.catalog-product-name { display:block; color:var(--ink); font-size:.83rem; font-weight:800; line-height:1.35; }
.catalog-product-code { margin-top:.38rem; overflow:hidden; color:#526176; font-size:.7rem; font-weight:500; line-height:1.35; letter-spacing:.005em; text-overflow:ellipsis; white-space:nowrap; }
.catalog-product-stock strong,.catalog-product-stock span,.catalog-product-lead strong,.catalog-product-lead span,.catalog-product-price small,.catalog-product-price strong,.catalog-product-price span { display:block; }
.catalog-product-stock strong { color:#168b4f; font-size:.86rem; text-decoration:underline; }
.catalog-product-stock span,.catalog-product-lead span,.catalog-product-price span { color:var(--muted); font-size:.58rem; text-transform:uppercase; }
.catalog-product-lead strong { color:#20a35a; font-size:1rem; }
.catalog-product-price { text-align:right; }
.catalog-product-price small { color:var(--muted); font-size:.61rem; }
.catalog-product-price strong { margin:.15rem 0; color:var(--ink); font-size:1rem; white-space:nowrap; }
.catalog-product-action { display:flex; align-items:center; justify-content:flex-end; gap:.45rem; }
.catalog-product-action label { display:flex; flex-direction:column; align-items:center; gap:.18rem; color:var(--slate); font-size:.55rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.catalog-product-action input { width:48px; height:38px; border:1px solid var(--line); border-radius:.45rem; padding:0 .35rem; text-align:center; }
.catalog-product-action > button { display:flex; align-items:center; gap:.4rem; min-height:38px; border:0; border-radius:.45rem; padding:.55rem .75rem; background:var(--ink); color:#fff; font-size:.68rem; font-weight:800; cursor:pointer; }
.catalog-product-action > button span { color:#fff; }
.catalog-product-action > button:disabled { cursor:not-allowed; opacity:.45; }
.b2b-cart-notice { margin-bottom:.75rem; border:1px solid #a7e8d2; border-radius:.65rem; padding:.75rem 1rem; background:#ebfaf5; color:#127657; font-size:.8rem; font-weight:700; }
.b2b-cart-link { display:inline-flex!important; align-items:center; gap:.3rem; }
.b2b-cart-link span { display:grid; min-width:20px; height:20px; place-items:center; border-radius:999px; background:var(--mint); color:var(--ink); font-weight:900; }
.b2b-cart-page { max-width:1200px!important; }
.b2b-cart-header { display:flex; align-items:end; justify-content:space-between; margin-bottom:1rem; }
.b2b-cart-header span { color:#14a983; font-size:.7rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.b2b-cart-header h1 { margin:.2rem 0 0; }
.b2b-cart-header a { color:var(--ink); font-size:.8rem; font-weight:700; }
.b2b-cart-table { border:1px solid var(--line); border-radius:.75rem; overflow:hidden; }
.b2b-cart-table article { display:grid; grid-template-columns:minmax(0,1fr) 160px 80px 120px; gap:1rem; align-items:center; padding:1rem; border-bottom:1px solid var(--line); }
.b2b-cart-table article:last-child { border-bottom:0; }
.b2b-cart-table span { color:var(--muted); font-size:.75rem; }
.b2b-cart-next { margin-top:1rem; border-radius:.65rem; padding:1rem; background:#f2f3f6; color:var(--muted); font-size:.8rem; }
.b2b-checkout-error { margin:1rem 0; padding:1rem; border:1px solid #efb8b8; border-radius:.65rem; background:#fff1f1; color:#a32727; }
.b2b-cart-table small { display:block; margin-top:.35rem; color:var(--muted); }
.b2b-checkout-box { max-width:620px; margin:1.25rem 0 0 auto; padding:1.25rem; border:1px solid var(--line); border-radius:.8rem; background:#fff; }
.b2b-checkout-box label { display:grid; gap:.45rem; font-weight:700; }
.b2b-checkout-box textarea { width:100%; padding:.8rem; border:1px solid var(--line); border-radius:.5rem; resize:vertical; font:inherit; }
.b2b-checkout-total { display:flex; justify-content:space-between; align-items:center; margin-top:1rem; padding-top:1rem; border-top:1px solid var(--line); }
.b2b-checkout-total strong { font-size:1.4rem; }
.b2b-checkout-box > p { color:var(--muted); font-size:.75rem; }
.b2b-checkout-box .catalog-cart-button { width:100%; min-height:46px; }
.b2b-order-success { max-width:760px !important; margin-block:3rem; padding:3rem !important; border:1px solid var(--line); border-radius:1rem; text-align:center; background:#fff; }
.b2b-order-check { display:grid; place-items:center; width:58px; height:58px; margin:0 auto 1rem; border-radius:50%; background:#00a86b; color:#fff; font-size:2rem; }
.b2b-order-success > div { display:flex; justify-content:space-between; max-width:440px; margin:.5rem auto; padding:.8rem 0; border-bottom:1px solid var(--line); }
.b2b-order-success .catalog-cart-button { display:inline-flex; margin-top:1rem; text-decoration:none; }

.catalog-products.is-list { border-top:1px solid var(--line); }
.catalog-list-head,.catalog-products.is-list .catalog-product { display:grid; grid-template-columns:minmax(390px,1fr) 125px 75px 120px 180px; align-items:center; }
.catalog-list-head { padding:.7rem 1rem .7rem 150px; border:1px solid var(--line); border-bottom:0; background:#eef2f4; color:#657080; font-size:.62rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.catalog-products.is-list .catalog-product { min-height:112px; border-top:0; padding:.75rem 1rem; }
.catalog-products.is-list .catalog-product:nth-of-type(odd) { background:#f8fafb; }
.catalog-products.is-list .catalog-product-image { width:118px; height:82px; grid-column:1; grid-row:1; }
.catalog-products.is-list .catalog-product-main { grid-column:1; grid-row:1; padding-left:132px; }
.catalog-products.is-list .catalog-product-stock { grid-column:2; }
.catalog-products.is-list .catalog-product-lead { grid-column:3; }
.catalog-products.is-list .catalog-product-price { grid-column:4; }
.catalog-products.is-list .catalog-product-action { grid-column:5; }

.catalog-products.is-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }
.catalog-products.is-grid .catalog-product { display:grid; grid-template-rows:190px minmax(112px,auto) auto auto; border-radius:.65rem; overflow:hidden; }
.catalog-products.is-grid .catalog-product-image { height:190px; padding:1rem; }
.catalog-products.is-grid .catalog-product-main { padding:1rem 1rem .6rem; }
.catalog-products.is-grid .catalog-product-name { min-height:3.4em; font-size:.9rem; }
.catalog-products.is-grid .catalog-product-stock { padding:.7rem 1rem 0; }
.catalog-products.is-grid .catalog-product-lead { display:none; }
.catalog-products.is-grid .catalog-product-price { padding:.7rem 1rem; text-align:left; }
.catalog-products.is-grid .catalog-product-action { padding:.65rem; background:#eef2f4; }

@media (min-width: 1681px) {
    .stock-page > .container,
    .stock-trust > .container { max-width: calc(100vw - 4rem); }
}

@media (max-width: 1180px) {
    .stock-page > .container,
    .stock-trust > .container { padding-inline: 1.25rem; }
    .stock-layout { grid-template-columns: 230px minmax(0, 1fr); gap: 1.25rem; }
    .stock-head { display: none; }
    .stock-table { border-top: 0; overflow: visible; }
    .stock-row {
        display: grid;
        grid-template-columns: minmax(110px, .7fr) minmax(80px, .45fr) minmax(220px, 1.8fr) minmax(110px, .7fr);
        min-height: 0;
        margin-bottom: .8rem;
        padding: 1rem;
        border: 1px solid var(--line);
        border-radius: .8rem;
        box-shadow: 0 4px 16px rgb(24 33 53 / 5%);
    }
    .stock-row > [data-label]::before {
        content: attr(data-label);
        display: block;
        margin-bottom: .4rem;
        color: #8b93a3;
        font-size: .58rem;
        font-weight: 800;
        letter-spacing: .08em;
        text-transform: uppercase;
    }
    .unit-services { display: block; grid-column: 3 / 4; }
    .unit-grade { grid-column: 1 / 2; }
    .unit-lead { grid-column: 2 / 3; }
    .unit-price { grid-column: 4 / 5; text-align: right; }
    .catalog-products.is-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .catalog-list-head { display:none; }
    .catalog-products.is-list .catalog-product { grid-template-columns:110px minmax(220px,1fr) 100px 105px; gap:.75rem; }
    .catalog-products.is-list .catalog-product-image { grid-column:1; grid-row:1 / 3; width:100%; }
    .catalog-products.is-list .catalog-product-main { grid-column:2; padding-left:0; }
    .catalog-products.is-list .catalog-product-stock { grid-column:3; }
    .catalog-products.is-list .catalog-product-lead { display:none; }
    .catalog-products.is-list .catalog-product-price { grid-column:4; }
    .catalog-products.is-list .catalog-product-action { grid-column:2 / 5; justify-content:flex-end; }
}

@media (max-width: 900px) {
    .stock-layout { grid-template-columns: 1fr; }
    .stock-sidebar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1rem; padding: 0; }
    .brand-filter,
    .apply-filters,
    .reset-filters { grid-column: 1 / -1; }
    .stock-row { grid-template-columns: minmax(100px, .65fr) minmax(70px, .45fr) minmax(200px, 1.6fr) minmax(100px, .65fr); }
    .catalog-products.is-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 680px) {
    .stock-page { padding-top: 1rem; }
    .availability-bar { margin-inline: -1rem; padding-inline: 1rem; }
    .filter-chip span,
    .clear-chip { white-space: nowrap; }
    .stock-sidebar { grid-template-columns: 1fr; }
    .brand-filter,
    .apply-filters,
    .reset-filters { grid-column: auto; }
    .sales-banner { padding: .9rem; }
    .stock-summary { padding: .8rem; }
    .stock-summary label { width: 100%; justify-content: space-between; }
    .stock-summary select { min-width: 0; max-width: 65%; }
    .stock-row { grid-template-columns: 1fr auto; gap: 1rem; padding: 1rem; }
    .unit-brand { grid-column: 1; }
    .unit-qty { grid-column: 2; text-align: right; }
    .unit-config,
    .unit-grade,
    .unit-services { grid-column: 1 / -1; }
    .unit-lead { grid-column: 1; }
    .unit-price { grid-column: 2; align-self: end; text-align: right; }
    .unit-price a { min-height: 36px; padding: .55rem .8rem; }
    .catalog-toolbar { flex-wrap:wrap; }
    .catalog-total { width:auto; margin-right:auto; }
    .toolbar-search { order:2; flex:1 1 100%; max-width:none; min-width:0; }
    .toolbar-stock-toggle { flex:0 0 auto; }
    .catalog-sort { flex:1; }
    .catalog-sort select { min-width:0; width:100%; }
    .catalog-products.is-list .catalog-product { grid-template-columns:86px minmax(0,1fr); padding:.8rem; }
    .catalog-products.is-list .catalog-product-image { grid-column:1; grid-row:1; height:72px; }
    .catalog-products.is-list .catalog-product-main { grid-column:2; }
    .catalog-products.is-list .catalog-product-stock { grid-column:1; }
    .catalog-products.is-list .catalog-product-price { grid-column:2; }
    .catalog-products.is-list .catalog-product-action { grid-column:1 / 3; }
    .catalog-products.is-grid { grid-template-columns:1fr; }
    .catalog-products.is-grid .catalog-product { grid-template-rows:210px auto auto auto; }
    .b2b-cart-header { align-items:flex-start; flex-direction:column; gap:.75rem; }
    .b2b-cart-table article { grid-template-columns:1fr auto; }
    .stock-page > .container,
    .stock-trust > .container { padding-inline:1rem; }
    .availability-bar { max-width:100vw; overscroll-behavior-inline:contain; scrollbar-width:thin; }
    .catalog-toolbar { align-items:stretch; gap:.65rem; padding:.65rem; }
    .toolbar-search { order:0; }
    .catalog-sort { min-width:0; }
    .catalog-view-switch { flex:0 0 auto; }
    .catalog-product-action { justify-content:stretch; }
    .catalog-product-action > button { flex:1; justify-content:center; }
    .product-thumbnails { grid-template-columns:repeat(4,minmax(0,1fr)); }
    .b2b-checkout-box { margin-inline:0; padding:1rem; }
    .b2b-order-success { margin-block:1.5rem; padding:1.5rem 1rem!important; }
}

@media (max-width:390px) {
    .catalog-toolbar { display:grid; grid-template-columns:1fr auto; }
    .catalog-total { grid-column:1/-1; }
    .toolbar-search { grid-column:1/-1; max-width:none; }
    .toolbar-stock-toggle { justify-content:center; }
    .catalog-sort { display:grid; gap:.25rem; }
    .catalog-products.is-list .catalog-product { grid-template-columns:72px minmax(0,1fr); gap:.65rem; }
    .catalog-products.is-list .catalog-product-image { height:64px; }
    .catalog-product-action label { flex:0 0 52px; }
    .product-thumbnails { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .b2b-cart-table article { grid-template-columns:1fr; gap:.55rem; }
    .b2b-checkout-total { align-items:flex-start; flex-direction:column; gap:.35rem; }
}

/* Full HD (1920x1080) e oltre: piu' colonne e colonne lista proporzionate, niente vuoti al centro. */
@media (min-width: 1600px) {
    .stock-page > .container,
    .stock-trust > .container { max-width: min(1840px, calc(100vw - 4rem)); }
    .stock-layout { grid-template-columns: 300px minmax(0, 1fr); gap: 2.5rem; }

    .catalog-products.is-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1.1rem; }
    .catalog-products.is-grid .catalog-product { grid-template-rows: 210px minmax(112px, auto) auto auto; }
    .catalog-products.is-grid .catalog-product-image { height: 210px; }

    .catalog-list-head,
    .catalog-products.is-list .catalog-product { grid-template-columns: minmax(520px, 1fr) 150px 110px 160px 230px; }
    .catalog-list-head { padding-left: 170px; }
    .catalog-products.is-list .catalog-product { min-height: 120px; }
    .catalog-products.is-list .catalog-product-image { width: 138px; height: 92px; }
    .catalog-products.is-list .catalog-product-main { padding-left: 152px; }
    .catalog-product-name { font-size: .92rem; }
    .catalog-product-code { font-size: .74rem; }
    .catalog-product-price strong { font-size: 1.1rem; }
}

@media (min-width: 1900px) {
    .catalog-products.is-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}