/* Shop / Merchandising – Frontend. Scoped auf .shop-wrap. copyright by ahobi informatik gmbh */
.shop-wrap{--shop-ak:#2563eb;--shop-ak-d:#1d4ed8;--shop-bg:#fff;--shop-li:#f1f5f9;--shop-bo:#e2e8f0;--shop-tx:#1f2937;--shop-mu:#64748b;color:var(--shop-tx);max-width:1100px;margin:0 auto;font-size:16px;line-height:1.5}
.shop-wrap *{box-sizing:border-box}
.shop-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border-bottom:2px solid var(--shop-bo);padding-bottom:12px;margin-bottom:18px}
.shop-logo{font-size:1.4em;font-weight:700;color:var(--shop-tx);text-decoration:none}
.shop-nav{display:flex;gap:18px;align-items:center}
.shop-nav a{color:var(--shop-tx);text-decoration:none;font-weight:500}
.shop-nav a:hover{color:var(--shop-ak)}
.shop-cart-link{position:relative}
.shop-badge{display:inline-block;min-width:20px;height:20px;line-height:20px;text-align:center;background:var(--shop-ak);color:#fff;border-radius:10px;font-size:.78em;padding:0 6px;margin-left:2px}
.shop-badge[hidden]{display:none}
.shop-subtabs{display:flex;flex-wrap:wrap;gap:4px;border-bottom:1px solid var(--shop-bo);margin-bottom:18px}
.shop-subtabs a{padding:8px 14px;text-decoration:none;color:var(--shop-mu);border-bottom:2px solid transparent;font-weight:500}
.shop-subtabs a.aktiv{color:var(--shop-ak);border-bottom-color:var(--shop-ak)}
.shop-filter{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.shop-filter input,.shop-filter select{padding:8px 10px;border:1px solid var(--shop-bo);border-radius:8px}
.shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px}
.shop-card{display:flex;flex-direction:column;border:1px solid var(--shop-bo);border-radius:12px;overflow:hidden;text-decoration:none;color:inherit;background:var(--shop-bg);transition:box-shadow .15s,transform .15s}
.shop-card:hover{box-shadow:0 6px 20px rgba(0,0,0,.09);transform:translateY(-2px)}
.shop-card-bild{aspect-ratio:1/1;background:var(--shop-li);display:flex;align-items:center;justify-content:center;overflow:hidden}
.shop-card-bild img{width:100%;height:100%;object-fit:cover}
.shop-noimg{color:var(--shop-mu);font-size:.85em}
.shop-card-text{padding:12px;display:flex;flex-direction:column;gap:4px}
.shop-preis{color:var(--shop-ak);font-weight:700}
.shop-preis small{color:var(--shop-mu);font-weight:400;font-size:.8em}
.shop-detail{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start}
.shop-detail-bilder .shop-haupt{aspect-ratio:1/1;background:var(--shop-li);border-radius:12px;overflow:hidden;display:flex;align-items:center;justify-content:center}
.shop-detail-bilder .shop-haupt img{width:100%;height:100%;object-fit:contain}
.shop-thumbs{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.shop-thumb{width:64px;height:64px;object-fit:cover;border:1px solid var(--shop-bo);border-radius:8px;cursor:pointer}
.shop-thumb:hover{border-color:var(--shop-ak)}
.shop-preis-gross{font-size:1.6em;font-weight:700;color:var(--shop-ak);margin:6px 0}
.shop-beschr{margin:12px 0;color:#374151}
.shop-hint{color:var(--shop-mu);font-size:.9em}
.shop-f{display:flex;flex-direction:column;gap:4px;margin:10px 0}
.shop-f label{font-weight:600;font-size:.9em}
.shop-f input,.shop-f select,.shop-f textarea{padding:9px 11px;border:1px solid var(--shop-bo);border-radius:8px;font:inherit;width:100%}
.shop-inline{display:inline-flex;align-items:center;gap:6px;font-weight:500}
.shop-menge input{max-width:110px}
.shop-btn{display:inline-block;background:var(--shop-ak);color:#fff;border:0;border-radius:8px;padding:10px 18px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none}
.shop-btn:hover{background:var(--shop-ak-d)}
.shop-btn-gross{padding:12px 26px;font-size:1.05em}
.shop-btn-light{background:var(--shop-li);color:var(--shop-tx)}
.shop-btn-light:hover{background:var(--shop-bo)}
.shop-btn-danger{background:#dc2626}
.shop-btn-danger:hover{background:#b91c1c}
.shop-link{background:none;border:0;color:var(--shop-mu);cursor:pointer;font:inherit;text-decoration:underline;padding:0}
.shop-link:hover{color:#dc2626}
.shop-table{width:100%;border-collapse:collapse;margin:12px 0}
.shop-table th,.shop-table td{padding:10px 8px;border-bottom:1px solid var(--shop-bo);text-align:left;vertical-align:middle}
.shop-table th{font-size:.82em;text-transform:uppercase;letter-spacing:.03em;color:var(--shop-mu)}
.shop-r{text-align:right}
.shop-mini{width:40px;height:40px;object-fit:cover;border-radius:6px}
.shop-total td{font-weight:700;border-top:2px solid var(--shop-bo);font-size:1.05em}
.shop-total small{font-weight:400;color:var(--shop-mu);font-size:.8em}
.shop-summe{max-width:360px;margin-left:auto}
.shop-summe table{width:100%;border-collapse:collapse}
.shop-summe td{padding:6px 4px}
.shop-code{margin:14px 0;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.shop-codeform{display:flex;gap:8px}
.shop-codeform input{padding:8px 11px;border:1px solid var(--shop-bo);border-radius:8px}
.shop-weiter{display:flex;justify-content:space-between;gap:10px;margin-top:18px;flex-wrap:wrap}
.shop-msg{padding:11px 14px;border-radius:8px;margin:12px 0}
.shop-ok{background:#ecfdf5;color:#065f46;border:1px solid #a7f3d0}
.shop-err{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}
.shop-leer{color:var(--shop-mu);padding:20px 0}
.shop-crumbs a{color:var(--shop-mu);text-decoration:none}
.shop-grid2{display:grid;grid-template-columns:1fr 1fr;gap:4px 18px}
.shop-breit{grid-column:1/-1}
.shop-box{border:1px solid var(--shop-bo);border-radius:12px;padding:18px;margin:16px 0;background:var(--shop-bg)}
.shop-box h3{margin-top:0}
.shop-radio{display:block;padding:8px 0}
fieldset{border:1px solid var(--shop-bo);border-radius:10px;margin:14px 0;padding:10px 14px}
legend{font-weight:600;padding:0 6px}
.shop-neuvar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px}
.shop-neuvar input,.shop-neuvar select{padding:8px 10px;border:1px solid var(--shop-bo);border-radius:8px}
.shop-st{display:inline-block;padding:2px 9px;border-radius:12px;font-size:.82em;font-weight:600;background:var(--shop-li)}
.shop-st-bezahlt{background:#ecfdf5;color:#065f46}
.shop-st-offen{background:#fffbeb;color:#92400e}
.shop-st-versendet,.shop-st-abgeholt{background:#eff6ff;color:#1e40af}
.shop-st-storniert{background:#fef2f2;color:#991b1b}
.shop-ausverkauft,.shop-warn{color:#b91c1c}
.shop-aktbild img,.shop-galerie-vorschau{max-width:160px}
.shop-galerie-vorschau{display:flex;gap:6px;flex-wrap:wrap;max-width:none}
.shop-danke h2{color:#065f46}
@media(max-width:640px){.shop-detail,.shop-grid2{grid-template-columns:1fr}.shop-summe{max-width:none}}
