/* efco: eigene Styles, separat geladen (layout/header.tpl, ?v= hochzählen), damit Änderungen ohne Browser-Cache-Wartezeit ankommen.
   custom.css steckt im Theme-Bundle (asset/my-nova.css?v=1.0.2), das Browser 7 Tage cachen. */

/* ── Warenkorbmatrix (productdetails/matrix_classic.tpl, js/custom.js initMatrix) ── */
.product-matrix:has(.efco-matrix) > .product-matrix-title,
.product-matrix:has(.efco-matrix) > .product-matrix-desc { display: none; }
.efco-matrix { margin: 1.5rem 0 0; }
.efco-matrix-head { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; margin-bottom: .75rem; }
.efco-matrix-title { font-size: 1.125rem; font-weight: 600; color: #525252; }
.efco-matrix-count { font-size: .875rem; color: #707070; white-space: nowrap; }
.efco-matrix-login { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; padding: .75rem 1rem; margin-bottom: .75rem;
    background: #fff8e0; border: 1px solid #F8BF00; border-radius: 4px; font-size: .9rem; }
.efco-matrix-login .fa-lock { color: #b38a00; }
.efco-matrix-login-link { font-weight: 600; text-decoration: underline; }
.efco-matrix-filter { margin-bottom: .75rem; }
.efco-matrix-empty { color: #707070; font-size: .9rem; }
.efco-matrix-list { list-style: none; margin: 0; padding: 0; border: 1px solid #ebebeb; border-radius: 4px; background: #fff; }
.efco-matrix-row { display: grid; grid-template-columns: 56px 1fr auto; gap: .75rem; align-items: center;
    padding: .625rem .75rem; border-top: 1px solid #ebebeb; transition: background-color .15s; }
.efco-matrix-row:first-child { border-top: 0; }
.efco-matrix-row:hover { background: #fafbfc; }
.efco-matrix-row.has-qty { background: #fff8e0; box-shadow: inset 3px 0 0 #F8BF00; }
.efco-matrix-row.is-unavailable { opacity: .6; }
.efco-matrix-img { width: 56px; height: 56px; display: flex; align-items: center; justify-content: center; }
.efco-matrix-img img { max-width: 56px; max-height: 56px; object-fit: contain; }
.efco-matrix-name { font-weight: 600; line-height: 1.25; color: #525252; }
.efco-matrix-meta { display: flex; flex-wrap: wrap; gap: .125rem .75rem; font-size: .8rem; color: #707070; margin-top: .125rem; }
.efco-matrix-meta .delivery-status, .efco-matrix-meta .status { font-size: .8rem; margin: 0; }
.efco-matrix-buy { display: flex; align-items: center; gap: .75rem; justify-content: flex-end; }
.efco-matrix-price { text-align: right; font-weight: 600; white-space: nowrap; color: #525252; }
.efco-matrix-vpe { display: block; font-weight: 400; color: #707070; }
.efco-matrix-unit { color: #707070; }
.efco-qty { display: inline-flex; align-items: stretch; border: 1px solid #c8c8c8; border-radius: 4px; overflow: hidden; background: #fff; }
.efco-qty.has-error { border-color: #dc3545; }
.efco-qty-btn { width: 36px; border: 0; background: #f5f7fa; color: #525252; font-size: 1.125rem; line-height: 1; cursor: pointer; }
.efco-qty-btn:hover { background: #ebebeb; }
.efco-qty-input { width: 52px; border: 0; text-align: center; font-weight: 600; padding: .375rem .25rem; -moz-appearance: textfield; }
.efco-qty-input::placeholder { color: #b5b5b5; font-weight: 400; }
.efco-qty-input:focus { outline: 2px solid #F8BF00; outline-offset: -2px; }
.efco-matrix-bar { position: sticky; bottom: 0; z-index: 5; display: flex; align-items: center; justify-content: space-between; gap: 1rem;
    margin-top: .75rem; padding: .75rem; background: #fff; border: 1px solid #ebebeb; border-radius: 4px; box-shadow: 0 -4px 12px rgba(0,0,0,.06); }
.efco-matrix-bar.is-filled { border-color: #F8BF00; }
.efco-matrix-summary { font-size: .9rem; color: #525252; }
.efco-matrix-summary-empty { color: #707070; }
.efco-matrix-submit { white-space: nowrap; font-weight: 600; }
@media (max-width: 575.98px) {
    .efco-matrix-row { grid-template-columns: 48px 1fr; grid-template-areas: "img info" "buy buy"; row-gap: .5rem; }
    .efco-matrix-img { grid-area: img; width: 48px; height: 48px; }
    .efco-matrix-img img { max-width: 48px; max-height: 48px; }
    .efco-matrix-info { grid-area: info; }
    .efco-matrix-buy { grid-area: buy; justify-content: space-between; }
    .efco-matrix-price { text-align: left; }
    .efco-qty-btn { width: 44px; }
    .efco-qty-input { width: 56px; font-size: 1rem; }
    .efco-matrix-bar { flex-direction: column; align-items: stretch; gap: .5rem; margin-left: -.25rem; margin-right: -.25rem; border-radius: 0; }
    .efco-matrix-summary { text-align: center; }
    .efco-matrix-submit { width: 100%; padding: .75rem; }
}

/* ── „Preise nach Anmeldung sichtbar“ verlinkt (productdetails/price.tpl) ── */
.efco-price-login { display: inline-flex; flex-wrap: wrap; gap: .25rem .5rem; align-items: baseline; }
.efco-price-login-link { font-weight: 600; text-decoration: underline; }
.efco-price-login-sep { color: #707070; }
a.efco-price-login-list { text-decoration: underline; color: inherit; }

/* ── Startseite (OPC): feste Desktop-Abstände (100–200 px) auf Handy/Tablet zurücksetzen,
      sonst bleibt neben den Spalten kein Platz für den Text ── */
@media (max-width: 991.98px) {
    main .opc-Container .row[style] {
        margin-left: -15px !important;
        margin-right: -15px !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    main .opc-Container .opc-Container[style*="padding-left"],
    main .opc-Container .opc-Container[style*="padding-right"] {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}
