/* ===== TB-TOOLS SYSTEM-CSS V7.3/7.4 (Original) + WooCommerce-Angleichung ===== */
:root {
    --tbt-black: #0f172a; --tbt-slate: #334155; --tbt-slate-light: #475569; --tbt-gray-bg: #f8fafc;
    --tbt-border: #94a3b8; --tbt-border-light: #cbd5e1; --tbt-border-faint: #e2e8f0;
    --tbt-signal-red: #e53e3e; --tbt-signal-green: #28a745; --tbt-signal-green-dark: #15803d; --tbt-signal-green-bg: #f0fdf4;
    --tbt-signal-orange: #f59e0b; --tbt-signal-orange-dark: #b45309; --tbt-signal-orange-bg: #fffbeb;
    --tbt-link-blue: #0284c7; --tbt-pay-twint: #0084b4; --tbt-pay-post: #fcc200; --tbt-pay-card: #0a2540;
    --tbt-radius-sm: 4px; --tbt-radius-md: 6px; --tbt-radius-lg: 8px; --tbt-radius-xl: 12px;
    --tbt-shadow-sm: 0 2px 5px rgba(0,0,0,0.05); --tbt-shadow-md: 0 4px 12px rgba(0,0,0,0.02);
    --tbt-shadow-lg: 0 8px 25px rgba(0,0,0,0.2); --tbt-shadow-modal: 0 25px 50px -12px rgba(0,0,0,0.4);
    --tbt-z-float: 999999; --tbt-z-modal: 9999999;
}
.tbt-calc-grid { display: flex; flex-wrap: wrap; padding: 20px; gap: 20px; }
.tbt-calc-col { flex: 1 1 280px; display: flex; flex-direction: column; gap: 15px; }
.tbt-calc-col-mid { flex: 1 1 300px; display: flex; flex-direction: column; }
.tbt-calc-col-right { flex: 1 1 320px; display: flex; flex-direction: column; }
.tbt-hero-container { margin-bottom: 35px; text-align: left; }
.tbt-hero-title { font-size: 2.15em; margin: 0 0 12px 0; color: var(--tbt-black); font-weight: bold; line-height: 1.2; }
.tbt-hero-subtitle { font-size: 1.15em; line-height: 1.6; color: var(--tbt-slate-light); margin: 0 0 20px 0; }
.tbt-section-title { font-size: 1.3em; margin: 0 0 15px 0; color: var(--tbt-black); font-weight: bold; text-transform: uppercase; letter-spacing: 0.5px; }
.tbt-category-subtitle { font-size: 1.4em; color: var(--tbt-black); font-weight: 900; margin-bottom: 20px; text-transform: uppercase; text-align: center; }
.tbt-category-wrapper { background-color: #fff; border: 2px solid var(--tbt-border); border-radius: 4px; padding: 30px; margin-bottom: 40px; box-shadow: 4px 4px 0px rgba(15,23,42,0.05); }
.tbt-category-title { color: var(--tbt-black); font-size: 1.8em; font-weight: 900; text-transform: uppercase; letter-spacing: -0.5px; border-bottom: 3px solid var(--tbt-signal-red); padding-bottom: 12px; margin: 0 0 20px 0; }
.tbt-category-text { font-size: 1.2em; line-height: 1.7; color: var(--tbt-slate); margin-bottom: 30px; }
.tbt-cat-grid-container { display: flex; flex-wrap: wrap; gap: 20px; margin-bottom: 25px; }
.tbt-cat-card { position: relative; flex: 1 1 calc(33.333% - 20px); min-width: 250px; background: #fff; border: 1px solid var(--tbt-border); border-radius: 4px; padding: 20px 15px; text-align: center; box-sizing: border-box; display: flex; flex-direction: column; transition: all 0.3s ease; }
.tbt-cat-card:hover { border-color: var(--tbt-signal-green); background: #fff; box-shadow: 0 10px 25px rgba(0,0,0,0.08); }
.tbt-cat-card:active { transform: scale(0.99); border-color: var(--tbt-signal-green); box-shadow: inset 0 4px 10px rgba(0,0,0,0.05); }
.tbt-cat-card-link, .tbt-cat-card a { position: absolute; top: 0; left: 0; right: 0; bottom: 34px; z-index: 10; }
.tbt-cat-card-img-box { height: 180px; overflow: hidden; border-bottom: 1px solid var(--tbt-border-faint); display: flex; align-items: center; justify-content: center; background-color: #fff; }
.tbt-cat-card-img-box img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.tbt-cat-card-body { padding: 20px; flex-grow: 1; }
.tbt-cat-card-title { margin-top: 0; color: var(--tbt-black); font-size: 1.15em; font-weight: bold; margin-bottom: 10px; }
.tbt-cat-card-desc { margin: 0; color: var(--tbt-slate-light); font-size: 0.95em; line-height: 1.5; }
.tbt-cat-card-footer { padding: 15px 20px; background-color: var(--tbt-gray-bg); border-top: 1px solid var(--tbt-border-faint); color: var(--tbt-signal-green-dark); font-weight: bold; font-size: 0.9em; text-align: right; }
.tbt-cat-card-text { height: 85px; margin-bottom: 15px; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-start; }
.tbt-cat-card-text h3 { margin: 0 0 6px 0; line-height: 1.2; font-size: 18px; font-weight: 900; text-transform: uppercase; color: var(--tbt-black); }
.tbt-cat-card-text p { margin: 0; font-size: 13px; color: var(--tbt-slate-light); line-height: 1.4; }
.tbt-cat-card-gold { background: var(--tbt-signal-orange-bg); border-color: #eab308; box-shadow: 0 4px 12px rgba(234,179,8,0.1); }
.tbt-cat-card-gold:hover { box-shadow: 0 8px 16px rgba(234,179,8,0.2); }
.tbt-cat-card-gold .tbt-cat-card-img-box { border-bottom-color: #fde047; background-color: #fff; }
.tbt-cat-card-gold .tbt-cat-card-title { color: #ca8a04; }
.tbt-cat-card-gold .tbt-cat-card-desc { color: #713f12; }
.tbt-cat-card-gold .tbt-cat-card-footer { background-color: #fef3c7; border-top-color: #fde047; color: #ca8a04; }
.tbt-cat-card-promo { border-color: var(--tbt-signal-red); }
.tbt-cat-card-promo:hover { box-shadow: 0 8px 16px rgba(227,0,15,0.15); border-color: var(--tbt-signal-red); }
.tbt-cat-card-promo .tbt-cat-card-title { color: var(--tbt-signal-red); }
.tbt-cat-card-promo .tbt-cat-card-footer { background-color: #fef2f2; border-top-color: #fecaca; color: var(--tbt-signal-red); }
.tbt-cat-card-img { position: relative; height: 200px; width: 100%; border: 1px solid var(--tbt-border-light); border-radius: 4px; background-color: #fff; overflow: hidden; display: flex; align-items: center; justify-content: center; box-sizing: border-box; }
.tbt-cat-card-img img { max-height: 94% !important; max-width: 94% !important; object-fit: contain !important; position: absolute; top: 0; bottom: 0; left: 0; right: 0; margin: auto !important; transition: transform 0.4s ease; }
.tbt-cat-card:active .tbt-cat-card-img img { transform: scale(1.03); }
.tbt-about-master-box { background-color: #fff; border: 1px solid var(--tbt-border-faint); border-left: 5px solid var(--tbt-signal-green); border-radius: var(--tbt-radius-md); padding: 30px; margin-bottom: 40px; box-shadow: var(--tbt-shadow-md); }
.tbt-about-master-title { margin-top: 0; color: var(--tbt-black); font-size: 1.4em; font-weight: bold; margin-bottom: 15px; }
.tbt-about-master-text { font-size: 1.1em; line-height: 1.7; color: var(--tbt-slate-light); margin-bottom: 15px; margin-top: 0; }
.tbt-about-master-text:last-child { margin-bottom: 0; }
.tbt-brands-banner { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 40px; padding: 30px 15px; background: #fff; border-top: 1px solid var(--tbt-border-faint); border-bottom: 1px solid var(--tbt-border-faint); margin: 40px 0; }
.tbt-brand-name { font-weight: 900; font-size: 1.6em; letter-spacing: 3px; color: var(--tbt-border); text-decoration: none; transition: color 0.2s; }
.tbt-brand-name:hover { color: var(--tbt-slate); text-decoration: none; }
.tbt-b2b-grid { display: flex; flex-wrap: wrap; gap: 25px; margin-bottom: 25px; }
.tbt-b2b-grid .tbt-b2b-box { flex: 1 1 300px; margin-bottom: 0; }
.tbt-b2b-box { padding: 25px; margin-bottom: 25px; }
.tbt-b2b-box h3 { margin-top: 0; color: var(--tbt-black); font-size: 1.3em; font-weight: bold; margin-bottom: 15px; border-bottom: 2px solid var(--tbt-border-light); padding-bottom: 10px; }
.tbt-b2b-box ul { line-height: 1.7; color: var(--tbt-slate-light); padding-left: 20px; margin-bottom: 0; font-size: 1.05em; }
.tbt-b2b-box li { margin-bottom: 10px; }
.tbt-modal-overlay { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(15,23,42,0.8); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); z-index: var(--tbt-z-modal); align-items: center; justify-content: center; padding: 15px; box-sizing: border-box; }
.tbt-modal-window { position: relative; width: 100%; max-width: 1100px; max-height: 95vh; overflow-y: auto; background: #fff; border-radius: var(--tbt-radius-xl); box-shadow: var(--tbt-shadow-modal); font-family: system-ui, -apple-system, Arial, sans-serif; }
.tbt-modal-close-btn { position: absolute; top: 15px; right: 20px; background: none; border: none; color: #fff; font-size: 32px; font-weight: bold; cursor: pointer; line-height: 1; z-index: 10; }
.tbt-modal-topbar { background: var(--tbt-black); color: #fff; padding: 20px; text-align: center; border-top-left-radius: var(--tbt-radius-xl); border-top-right-radius: var(--tbt-radius-xl); }
.tbt-preview-container { background: var(--tbt-border-faint); border: 2px solid var(--tbt-border); border-radius: var(--tbt-radius-lg); position: relative; overflow: hidden; display: flex; align-items: center; justify-content: center; height: 240px; }
.tbt-handbuch-nav.nav-tabs { border-bottom: 3px solid var(--tbt-black) !important; display: flex !important; flex-wrap: wrap !important; align-items: flex-end !important; gap: 8px 4px !important; list-style: none; padding-left: 0; }
.tbt-handbuch-nav.nav-tabs > li { float: none !important; margin-bottom: 0 !important; }
.tbt-handbuch-nav.nav-tabs > li > a { border: none !important; border-top: 4px solid transparent !important; background-color: var(--tbt-gray-bg) !important; color: var(--tbt-slate-light) !important; font-weight: 800 !important; text-transform: uppercase !important; border-radius: 4px 4px 0 0 !important; margin: 0 !important; padding: 12px 18px !important; transition: all 0.3s ease !important; text-decoration: none; display: block; }
.tbt-handbuch-nav.nav-tabs > li > a:hover { background-color: var(--tbt-border-light) !important; color: var(--tbt-black) !important; }
.tbt-handbuch-nav.nav-tabs > li.active > a, .tbt-handbuch-nav.nav-tabs > li.active > a:hover, .tbt-handbuch-nav.nav-tabs > li.active > a:focus { background-color: var(--tbt-black) !important; color: #fff !important; border-top: 4px solid var(--tbt-signal-green) !important; }
.tab-content > .tab-pane { display: none; }
.tab-content > .tab-pane.active { display: block; }
.tbt-box-orange { background-color: var(--tbt-signal-orange-bg); border: 2px solid var(--tbt-signal-orange); padding: 10px; border-radius: var(--tbt-radius-lg); box-shadow: 0 2px 4px rgba(245,158,11,0.1); }
.tbt-box-gray { background-color: var(--tbt-gray-bg); border: 1px solid var(--tbt-border-light); padding: 10px; border-radius: var(--tbt-radius-lg); }
.tbt-box-green { background: var(--tbt-signal-green-bg); border: 2px solid var(--tbt-signal-green); border-radius: var(--tbt-radius-lg); padding: 12px; text-align: center; margin-bottom: 15px; box-shadow: 0 4px 10px rgba(40,167,69,0.1); font-weight: bold; }
.tbt-box-warning { background: var(--tbt-signal-orange-bg); border: 2px dashed var(--tbt-signal-orange); border-radius: var(--tbt-radius-lg); padding: 12px; margin-bottom: 15px; box-shadow: 0 4px 12px rgba(245,158,11,0.15); }
.tbt-box-red { background: #fff; border: 2px solid var(--tbt-signal-red); border-radius: var(--tbt-radius-md); padding: 10px; text-align: center; box-shadow: 0 4px 6px rgba(229,62,62,0.1); margin-bottom: 12px; }
.tbt-heavy-duty-box { background-color: #f8fafc; border: 1px solid #e2e8f0; border-radius: 6px; padding: 22px; margin-top: 25px; margin-bottom: 25px; box-shadow: 0 4px 10px rgba(0,0,0,0.01); }
.tbt-heavy-duty-box ul, .tbt-box-gray ul { list-style-type: none; padding-left: 0; margin-bottom: 0; }
.tbt-heavy-duty-box li, .tbt-box-gray li { margin-bottom: 14px; padding-left: 25px; position: relative; line-height: 1.5; }
.tbt-heavy-duty-box li:last-child, .tbt-box-gray li:last-child { margin-bottom: 0; }
.tbt-heavy-duty-box li::before, .tbt-box-gray li::before { content: "\2713"; color: #16a34a; position: absolute; left: 0; top: 0; font-weight: bold; font-size: 1.1em; }
.tbt-tipp-box { padding: 18px; background-color: #fef3c7; border: 1px solid #fde68a; border-left: 6px solid #f59e0b; border-radius: 4px; color: #78350f; margin-top: 30px; margin-bottom: 30px; font-size: 0.98em; }
.tbt-tipp-box strong { color: #92400e; text-transform: uppercase; letter-spacing: 0.5px; }
.tbt-info-box { background-color: #fff; border: 1px dashed var(--tbt-border-light); border-radius: var(--tbt-radius-md); padding: 15px 20px; margin-bottom: 25px; font-size: 1.05em; color: var(--tbt-slate-light); }
.tbt-info-box-check { color: var(--tbt-signal-green); font-weight: bold; margin-right: 5px; }
.tbt-info-box a { color: var(--tbt-signal-green-dark); font-weight: bold; text-decoration: underline; }
.tbt-info-box-tools { background: #fff3cd; border: 1px solid #ffeeba; padding: 15px; border-radius: 6px; margin-top: 20px; margin-bottom: 25px; position: relative; }
.tbt-digital-box { background: #f8fafc; padding: 15px; margin-bottom: 20px; border-radius: 4px; }
.tbt-digital-box h4 { margin-top: 0; color: #2c3e50; font-weight: bold; }
.tbt-digital-box-blue { border-left: 4px solid #3498db; }
.tbt-digital-box-orange { border-left: 4px solid #e67e22; }
.tbt-digital-box ul { margin-bottom: 15px; }
.tbt-input-primary { width: 100%; padding: 8px; border: 2px solid var(--tbt-signal-orange); border-radius: var(--tbt-radius-sm); font-size: 1.3em; font-weight: 900; color: #92400e; outline: none; text-align: center; box-sizing: border-box; }
.tbt-input-secondary { width: 100%; padding: 8px; border: 1px solid var(--tbt-border-light); border-radius: var(--tbt-radius-sm); font-size: 1.1em; font-weight: bold; text-align: center; outline: none; box-sizing: border-box; }
.tbt-input-small { flex: 1; width: 100%; padding: 6px; border: 1px dashed var(--tbt-border-light); border-radius: var(--tbt-radius-sm); text-align: center; }
.tbt-select { width: 100%; padding: 8px; border: 2px solid var(--tbt-border-light); border-radius: var(--tbt-radius-sm); font-weight: bold; outline: none; background: #fff; }
.tbt-fmt-btn { padding: 8px; font-weight: bold; border-radius: var(--tbt-radius-sm); cursor: pointer; transition: all 0.2s; background: #fff; border: 2px solid var(--tbt-border-faint); color: var(--tbt-slate-light); }
.tbt-fmt-btn.active { background: var(--tbt-signal-green-bg); border-color: var(--tbt-signal-green); color: var(--tbt-signal-green-dark); }
.tbt-muster-btn { flex: 1; padding: 8px 2px; font-size: 0.8em; font-weight: bold; border-radius: var(--tbt-radius-sm); cursor: pointer; transition: all 0.2s; background: #fff; border: 2px solid var(--tbt-border-faint); color: var(--tbt-slate-light); }
.tbt-muster-btn.active { background: var(--tbt-signal-green-bg); border-color: var(--tbt-signal-green); color: var(--tbt-signal-green-dark); }
.tbt-mode-btn { flex: 1; padding: 8px 2px; text-align: center; border-radius: var(--tbt-radius-sm); cursor: pointer; transition: all 0.2s; }
.tbt-mode-btn.active[data-mode="eco"] { border-color: #28a745; background: #f0fdf4; color: #166534; }
.tbt-mode-btn.active[data-mode="safe"] { border-color: #f59e0b; background: #fffbeb; color: #92400e; }
.tbt-acc-row { display: flex; align-items: center; padding: 8px; border: 2px solid #fcd34d; border-radius: var(--tbt-radius-md); background: #fff; cursor: pointer; transition: all 0.2s; }
.tbt-acc-row.active { border-color: var(--tbt-signal-orange); background: var(--tbt-signal-orange-bg); }
.tbt-acc-row img { width: 40px; height: 40px; object-fit: contain; margin-right: 10px; border-radius: var(--tbt-radius-sm); border: 1px solid var(--tbt-border-faint); padding: 2px; background: #fff; }
.tbt-btn-cart { margin-top: auto; width: 100%; background: var(--tbt-signal-green); color: #fff; border: none; padding: 16px 10px; font-size: 1em; font-weight: 900; border-radius: var(--tbt-radius-md); cursor: pointer; text-transform: uppercase; letter-spacing: 0.5px; transition: background 0.2s; box-shadow: 0 4px 10px rgba(40,167,69,0.3); }
.tbt-btn-cart:hover { background: var(--tbt-signal-green-dark); }
.tbt-btn-blue { background: #3498db; color: white; border: none; padding: 8px 15px; border-radius: 4px; font-weight: bold; cursor: pointer; transition: 0.2s; }
.tbt-btn-blue:hover { background: #2980b9; }
.tbt-btn-orange { background: #e67e22; color: white; border: none; padding: 8px 15px; border-radius: 4px; font-weight: bold; cursor: pointer; transition: 0.2s; }
.tbt-btn-orange:hover { background: #d35400; }
.tbt-btn-container { display: flex; flex-wrap: wrap; gap: 10px; }
.tbt-push-right { margin-left: auto !important; margin-right: 0 !important; }
.tbt-quickorder-container { max-width: 1200px; }
.tbt-art-nr { font-size: 13px; color: var(--tbt-slate-light); display: block; margin-bottom: 3px; font-weight: 600; }
.tbt-prod-name { font-weight: 900; font-size: 15px; color: var(--tbt-black); display: block; }
.tbt-badge-container { display: flex; flex-wrap: wrap; gap: 10px; margin: 15px 0 25px 0; }
.tbt-badge { display: inline-flex; align-items: center; font-size: 0.85em; font-weight: 800; text-transform: uppercase; padding: 6px 12px; border-radius: 3px; letter-spacing: 0.5px; border: 1px solid transparent; color: #fff; margin-right: 10px; margin-bottom: 15px; }
.tbt-badge-logistik { background-color: #f0fdf4; color: #166534; border-color: var(--tbt-signal-green); }
.tbt-badge-suva { background-color: #fef2f2; color: #991b1b; border-color: var(--tbt-signal-red); }
.tbt-badge-sia { background-color: #f0f9ff; color: #075985; border-color: #0284c7; }
.tbt-badge-green { background-color: #16a34a; color: #fff !important; }
.tbt-badge-dark { background-color: #334155; color: #fff !important; }
.tbt-badge-red { background-color: var(--tbt-signal-red); color: #fff; border: none; }
.tbt-badge-swiss-container { margin-bottom: 12px; display: flex; align-items: center; gap: 6px; }
.tbt-badge-swiss { background-color: var(--tbt-signal-red); color: white; padding: 3px 8px; border-radius: 4px; font-weight: bold; font-size: 11px; letter-spacing: 0.5px; box-shadow: 0 2px 4px rgba(218,41,28,0.2); }
.tbt-tools-title { color: #856404; display: block; margin-bottom: 10px; font-size: 1.05em; }
.artikel_box .tbt-discount-wrapper { position: relative !important; top: auto !important; margin-top: 5px !important; margin-bottom: 5px !important; text-align: left !important; display: block !important; }
.tbt-discount-wrapper { position: relative !important; margin-top: 10px !important; margin-bottom: 5px !important; text-align: left !important; display: block !important; }
.tbt-discount-badge { display: inline-block !important; background-color: #e67e22 !important; color: #fff !important; padding: 3px 8px !important; border-radius: 4px !important; font-weight: 900 !important; font-size: 11px !important; }
.tbt-product-description { font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; color: #0f172a; line-height: 1.6; font-size: 14px; }
.tbt-product-description h2 { font-size: 1.4em; font-weight: bold; color: #0f172a; margin-top: 25px; margin-bottom: 15px; border-bottom: 2px solid #e2e8f0; padding-bottom: 8px; }
.tbt-product-description h3 { font-size: 1.15em; font-weight: bold; color: var(--tbt-signal-green-dark); margin-top: 0; margin-bottom: 12px; }
.tbt-hook { background-color: #f8fafc; padding: 20px; border-left: 5px solid #16a34a; border-radius: 4px; margin-bottom: 25px; box-shadow: 0 2px 5px rgba(0,0,0,0.02); }
.tbt-hook p { margin-top: 12px; margin-bottom: 0; font-size: 1.05em; }
.tbt-data-grid { margin-top: 30px; margin-bottom: 30px; overflow-x: auto; }
.tbt-tech-table { width: 100%; border-collapse: collapse; background-color: #fff; border: 1px solid #cbd5e1; }
.tbt-tech-table th { background-color: #0f172a; color: #fff; text-align: left; padding: 12px 14px; font-weight: bold; font-size: 1.05em; }
.tbt-tech-table td { padding: 10px 14px; border-bottom: 1px solid #e2e8f0; font-size: 0.95em; }
.tbt-tech-table tr:nth-child(even), .tbt-row-alt { background-color: #f8fafc; }
.tbt-tech-table strong { color: #334155; }
.tbt-faq { margin-top: 35px; padding-top: 20px; border-top: 2px dashed #cbd5e1; }
.tbt-faq h2 { border-bottom: none; padding-bottom: 0; margin-bottom: 20px; }
.tbt-faq-q, .tbt-faq-question { font-size: 1.05em; font-weight: bold; color: #0f172a; margin-top: 15px; margin-bottom: 6px; position: relative; }
.tbt-faq-a, .tbt-faq-answer { font-size: 0.98em; color: #475569; margin-bottom: 20px; padding-left: 5px; }
.tbt-faq dl { margin: 0; padding: 0; }
.tbt-faq dt.tbt-faq-q { display: block; }
.tbt-faq dd.tbt-faq-a { margin-left: 0; }
.tbt-downloads { margin-top: 25px; padding-top: 15px; border-top: 1px solid #ddd; }
.tbt-downloads ul { list-style-type: none; padding-left: 0; }
.tbt-downloads li { margin-bottom: 10px; }
.tbt-downloads a { text-decoration: none; font-weight: bold; }
.tbt-downloads i { color: #c00; margin-right: 5px; font-size: 1.2em; }
.tbt-header-usp { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 2px 18px; font-family: system-ui, -apple-system, Arial, sans-serif; font-size: 14px; font-weight: 600; line-height: 1.5; color: #fff; text-align: center; flex: 1 1 auto; padding: 0 15px; max-width: 760px; }
.tbt-header-usp-item { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }
.tbt-header-usp-item a { color: #fff; text-decoration: underline; }
.tbt-header-usp-divider { color: rgba(255,255,255,0.45); }
@media (max-width: 991px) { .tbt-header-usp { display: none !important; } }
.tbt-mobile-sticky-banner { display: none; }
@media (max-width: 767px) { .tbt-mobile-sticky-banner { display: block !important; background-color: var(--tbt-signal-red) !important; color: #fff !important; text-align: center !important; padding: 6px 5px !important; font-family: Arial, sans-serif !important; font-size: 12px !important; font-weight: bold !important; width: 100% !important; box-sizing: border-box !important; line-height: 1.3 !important; } }
.tbt-trust-payment-bar { margin-top: 25px; padding: 15px; background-color: var(--tbt-gray-bg); border: 1px solid var(--tbt-border-faint); border-radius: var(--tbt-radius-md); text-align: center; }
.tbt-trust-title { margin-top: 0; margin-bottom: 12px; font-weight: bold; color: var(--tbt-slate); font-size: 0.95em; }
.tbt-logos { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-bottom: 12px; }
.tbt-pay-badge { display: inline-block; background: #fff; padding: 4px 10px; border: 1px solid var(--tbt-border-light); border-radius: var(--tbt-radius-sm); font-weight: bold; font-size: 0.85em; }
.tbt-pay-twint { color: var(--tbt-pay-twint); }
.tbt-pay-post { color: var(--tbt-pay-post); }
.tbt-pay-card { color: var(--tbt-pay-card); }
.tbt-pay-invoice { color: var(--tbt-signal-green-dark); }
.tbt-trust-subtitle { margin-bottom: 0; font-size: 0.85em; color: var(--tbt-slate-light); line-height: 1.4; }
.tb-footer-box { text-align: left; margin-top: 30px; padding: 20px; background-color: var(--tbt-gray-bg); border: 1px solid var(--tbt-border-faint); border-radius: var(--tbt-radius-lg); box-shadow: var(--tbt-shadow-md); }
.tb-footer-box h2 { color: var(--tbt-black); font-size: 1.5em; font-weight: bold; margin-bottom: 12px; }
.tb-footer-box p { color: var(--tbt-slate-light); line-height: 1.6; font-size: 1.05em; margin-bottom: 12px; }
.tb-footer-box .tbt-footer-links { font-size: 0.9em; margin-top: 15px; }
.tb-footer-box .tbt-footer-links a { color: #0369a1; text-decoration: none; }
.tb-footer-box .tbt-footer-note { color: var(--tbt-border); font-size: 0.85em; line-height: 1.4; margin-top: 15px; }
.tbt-footer-note-top { border-top: 1px dashed var(--tbt-border-light); padding-top: 10px; }
.tbt-newsletter-teaser { margin-bottom: 15px; color: var(--tbt-slate-light); font-size: 0.95em; }
.tbt-footer-copy { display: inline-block; margin-top: 5px; }
.tbt-seo-terminology-bridge { display: none; visibility: hidden; font-size: 0; line-height: 0; height: 0; overflow: hidden; }
.tbt-subtle-payments { margin-top: 12px; margin-bottom: 8px; font-family: system-ui, -apple-system, sans-serif; font-size: 12px; color: #64748b; display: flex; flex-wrap: wrap; align-items: center; gap: 5px; }
.tbt-subtle-payments strong { color: #334155; }
.tbt-rechnung-badge { font-size: 10px; background: #e2e8f0; color: #475569; padding: 1px 5px; border-radius: 3px; font-weight: bold; }
.tbt-footer-newsletter { margin-top: 25px; padding-top: 20px; border-top: 1px dashed var(--tbt-border-light); }
.tbt-newsletter-title { color: var(--tbt-black); font-size: 1.1em; font-weight: bold; margin-bottom: 5px; margin-top: 0; }
.tbt-newsletter-btn { background-color: var(--tbt-signal-green); color: #fff !important; border: none; padding: 10px 20px; font-weight: bold; border-radius: var(--tbt-radius-sm); cursor: pointer; transition: background-color 0.2s; display: inline-flex; align-items: center; gap: 8px; text-decoration: none !important; }
.tbt-newsletter-btn:hover { background-color: var(--tbt-signal-green-dark); color: #fff !important; }
.tbt-shipping-page { text-align: left; line-height: 1.6; font-size: 1.05em; color: var(--tbt-slate-light); font-family: Arial, sans-serif; max-width: 900px; margin: 0 auto; padding: 10px 0 20px 0; }
.tbt-shipping-page h2 { color: var(--tbt-black); font-size: 1.8em; font-weight: bold; margin-bottom: 20px; border-bottom: 2px solid var(--tbt-border-faint); padding-bottom: 8px; margin-top: 40px; }
.tbt-shipping-page h2:first-of-type { margin-top: 10px; }
.tbt-shipping-page p { margin-bottom: 20px; }
.tbt-shipping-box-green { background-color: var(--tbt-gray-bg); border-left: 4px solid var(--tbt-signal-green); padding: 15px; margin-bottom: 20px; border-radius: 0 4px 4px 0; }
.tbt-shipping-box-dark { background-color: var(--tbt-gray-bg); border-left: 4px solid var(--tbt-slate); padding: 15px; margin-bottom: 30px; border-radius: 0 4px 4px 0; }
.tbt-shipping-page strong.tbt-box-title { color: var(--tbt-black); font-size: 1.1em; display: block; margin-bottom: 5px; }
.tbt-shipping-page ul, .tbt-shipping-page ol { margin: 0; padding-left: 20px; line-height: 1.8; }
.tbt-pickup-box { padding: 20px; background-color: var(--tbt-signal-orange-bg); border: 1px dashed var(--tbt-signal-orange); border-left: 5px solid var(--tbt-signal-orange); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.02); }
.tbt-pickup-box strong.tbt-pickup-title { color: var(--tbt-signal-orange-dark); font-size: 1.15em; display: block; margin-bottom: 10px; }
.tbt-pickup-box li { margin-bottom: 8px; }
.tbt-pickup-box li:last-child { margin-bottom: 5px; }
.tbt-secure-checkout { margin-top: 15px; margin-bottom: 20px; padding: 12px; background-color: #f8fafc; border: 1px solid #e2e8f0; border-radius: 4px; }
.tbt-secure-title { font-size: 13px; color: #334155; margin-bottom: 8px; display: flex; align-items: center; font-weight: bold; }
.tbt-secure-icon { width: 16px; height: 16px; margin-right: 6px; color: #28a745; }
.tbt-secure-badges { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 8px; }
.tbt-secure-badge { background-color: #fff; color: #475569; padding: 4px 8px; border-radius: 4px; font-size: 11px; font-weight: 700; border: 1px solid #cbd5e1; letter-spacing: 0.3px; }
.tbt-secure-footer { font-size: 11.5px; color: #64748b; display: flex; align-items: center; gap: 15px; }
.tbt-challenge-grid { display: flex; flex-wrap: wrap; gap: 15px; margin-bottom: 30px; }
.tbt-challenge-card { flex: 1 1 250px; max-width: calc(50% - 8px); position: relative !important; overflow: hidden !important; display: flex; flex-direction: column; justify-content: space-between; background: #f2f4f7 !important; border: 1px solid #cbd5e1; padding: 20px; border-radius: 6px; text-decoration: none !important; transition: all 0.2s ease-in-out; box-shadow: 0 2px 4px rgba(0,0,0,0.05); min-height: 225px !important; height: auto !important; }
.tbt-challenge-card:hover { background-color: #fff; border-color: #e67e22; box-shadow: 0 4px 10px rgba(230,126,34,0.15); transform: translateY(-2px); }
.tbt-challenge-title { color: #1e293b; font-weight: 700; font-size: 1.1em; margin-bottom: 15px; line-height: 1.3; }
.tbt-challenge-link { color: #e67e22; font-weight: bold; font-size: 0.9em; text-transform: uppercase; letter-spacing: 0.5px; }
.tbt-challenge-card .tbt-card-icon { position: absolute !important; top: -12px !important; bottom: auto !important; right: auto !important; left: 50% !important; transform: translateX(-50%) !important; height: 200px !important; width: auto !important; max-width: none !important; max-height: none !important; object-fit: contain; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 22px, #000 calc(100% - 22px), transparent 100%), linear-gradient(0deg, transparent 0, #000 22px, #000 calc(100% - 22px), transparent 100%); -webkit-mask-composite: source-in; mask-image: linear-gradient(90deg, transparent 0, #000 22px, #000 calc(100% - 22px), transparent 100%), linear-gradient(0deg, transparent 0, #000 22px, #000 calc(100% - 22px), transparent 100%); mask-composite: intersect; mix-blend-mode: multiply !important; opacity: 1 !important; filter: none !important; pointer-events: none; transition: all 0.3s ease-in-out; }
.tbt-challenge-card::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 88px; background: linear-gradient(180deg, rgba(24,32,48,0) 0%, rgba(24,32,48,.92) 100%); pointer-events: none; z-index: 1; }
.tbt-challenge-card .tbt-challenge-title { position: absolute; bottom: 30px; left: 14px; right: 14px; color: #fff; z-index: 2; margin: 0; }
.tbt-challenge-card .tbt-challenge-link { position: absolute; bottom: 8px; left: 14px; color: #ffd166; z-index: 2; }
.tbt-challenge-card:hover .tbt-card-icon { opacity: 1; }
@media (max-width: 767px) { .tbt-challenge-card { max-width: 100% !important; } }
.tbt-accordion-toggle { cursor: pointer; user-select: none; display: flex; align-items: center; justify-content: space-between; width: 100%; background: var(--tbt-gray-bg); border: 1px solid var(--tbt-border-light); border-radius: 4px; padding: 14px 20px; font-size: 15px; font-weight: 600; color: var(--tbt-slate); margin-bottom: 16px; transition: all 0.2s ease; box-shadow: 0 1px 3px rgba(0,0,0,0.04); }
.tbt-accordion-toggle:hover { background: #fff; border-color: var(--tbt-border); color: var(--tbt-black); box-shadow: 0 2px 6px rgba(0,0,0,0.08); }
.tbt-accordion-toggle .tbt-acc-arrow { font-size: 13px; color: var(--tbt-slate-light); transition: transform 0.25s ease; flex-shrink: 0; margin-left: 12px; }
.tbt-accordion-toggle.open { background: #fff; border-color: var(--tbt-border); }
.tbt-accordion-toggle.open .tbt-acc-arrow { transform: rotate(180deg); }
.tbt-accordion-body { display: none; border: 1px solid var(--tbt-border-faint); border-top: none; border-radius: 0 0 4px 4px; padding: 20px; background: #fff; margin-bottom: 20px; }
.tbt-accordion-body.open { display: block; }
.tbt-angebote-header { margin-top: 40px; margin-bottom: 15px; padding-bottom: 5px; border-bottom: 2px solid #e2e8f0; }
p.tbt-category-title { font-size: 1.4em; font-weight: 700; color: var(--tbt-black); margin-bottom: 12px; line-height: 1.3; text-transform: uppercase; letter-spacing: 0.02em; border-bottom: 2px solid var(--tbt-signal-red); padding-bottom: 8px; }
@media (max-width: 767px) { ul.tbt-handbuch-nav.nav-tabs { flex-wrap: nowrap !important; overflow-x: auto !important; overflow-y: hidden !important; -webkit-overflow-scrolling: touch !important; scrollbar-width: none; } ul.tbt-handbuch-nav.nav-tabs > li { flex-shrink: 0 !important; white-space: nowrap !important; } ul.tbt-handbuch-nav.nav-tabs::-webkit-scrollbar { display: none; } }
.tbt-about-master-flex { display: flex; align-items: flex-start; gap: 30px; }
.tbt-about-master-img { flex: 0 0 36%; max-width: 36%; }
.tbt-about-master-img img { width: 100%; height: auto; display: block; border-radius: 4px; }
.tbt-about-master-content { flex: 1; }
@media (max-width: 767px) { .tbt-about-master-flex { flex-direction: column; } .tbt-about-master-img { flex: 0 0 auto; max-width: 280px; margin: 0 auto; } }
.tbt-input-primary:focus-visible, .tbt-input-secondary:focus-visible, .tbt-input-small:focus-visible, .tbt-select:focus-visible, .tbt-btn-cart:focus-visible, .tbt-btn-blue:focus-visible, .tbt-btn-orange:focus-visible, .tbt-fmt-btn:focus-visible, .tbt-muster-btn:focus-visible, .tbt-mode-btn:focus-visible, .tbt-newsletter-btn:focus-visible, .tbt-accordion-toggle:focus-visible, .tbt-cat-card a:focus-visible, .tbt-challenge-card:focus-visible { outline: 3px solid var(--tbt-link-blue) !important; outline-offset: 2px !important; }
.tbt-skip-link { position: absolute; left: -9999px; top: 0; z-index: 100000; background: var(--tbt-black); color: #fff; padding: 12px 20px; font-weight: 700; text-decoration: none; border-radius: 0 0 var(--tbt-radius-md) 0; }
.tbt-skip-link:focus { left: 0; outline: 3px solid var(--tbt-link-blue); outline-offset: 2px; }

/* ===== WooCommerce-Theme-Angleichung an tb-tools.ch ===== */
body { font-family: Verdana, Helvetica, Geneva, Swiss, sans-serif; font-size: 14px; color: #333; background-color: #f9f9f9; }
.wp-block-site-title a { display: inline-block; width: 180px; height: 100px; background: #fff url('https://www.tb-tools.ch/shop/Bilder/shoplogo_xs.png') center/contain no-repeat; border-radius: 4px; overflow: hidden; text-indent: -9999px; box-shadow: 0 1px 4px rgba(0,0,0,0.25); }
.wp-block-navigation a { color: #0f172a; font-weight: 800; font-size: 14px; }
.wp-block-navigation a:hover { color: #15803d; }
.woocommerce-Price-amount, .wc-block-components-product-price { color: #4a4a4a; font-weight: 700; }
del .woocommerce-Price-amount { color: #999999; font-weight: 400; }
.price del { opacity: 0.85; }
.wc-block-components-button, .wp-block-button__link, .single_add_to_cart_button, .wp-block-woocommerce-add-to-cart-form button, button[name="add-to-cart"], .added_to_cart, .checkout-button, .woocommerce a.button, .woocommerce button.button, ul.products li.product .button, a.add_to_cart_button { background-color: #28a745 !important; border-color: #28a745 !important; color: #fff !important; border-radius: 4px !important; font-weight: 700 !important; }
.wc-block-components-button:hover, .wp-block-button__link:hover, .single_add_to_cart_button:hover, button[name="add-to-cart"]:hover, .woocommerce a.button:hover, ul.products li.product .button:hover { background-color: #15803d !important; border-color: #15803d !important; }
.wc-block-components-sale-badge, .wc-block-grid__product-onsale, span.onsale { background: #e67e22 !important; color: #fff !important; border: none !important; border-radius: 3px !important; font-weight: 800 !important; text-transform: uppercase; letter-spacing: 0.5px; }
.stock.in-stock { color: #28a745; font-weight: 700; }
.stock.out-of-stock { color: #e53e3e; font-weight: 700; }
.woocommerce-price-suffix { font-size: 0.75em; color: #64748b; font-weight: 400; }
.home .wp-block-post-title { display: none; }
.home .wp-block-post-content > * { max-width: 1140px; margin-left: auto !important; margin-right: auto !important; }
.woocommerce-page .wp-block-post-content > *, .archive .wp-site-blocks main > * { max-width: 1140px; }

/* ===== Header V2: Topbar (taupe) + Navbar (weiss) wie Live ===== */
.tbt-topbar .wp-block-search__button { background: transparent; border: none; color: #fff; padding: 6px; cursor: pointer; }
.tbt-topbar .wp-block-search__button svg { fill: #fff; width: 26px; height: 26px; }
.tbt-topbar .wp-block-search__input { border-radius: 4px; border: none; padding: 6px 10px; max-width: 180px; }
.tbt-topbar .wc-block-customer-account__account-icon, .tbt-topbar .wp-block-woocommerce-customer-account a { color: #fff; fill: #fff; }
.tbt-topbar .wc-block-mini-cart__button { color: #fff; }
.tbt-topbar .wc-block-mini-cart__quantity-badge, .tbt-topbar .wc-block-mini-cart__badge { background: #e53e3e; color: #fff; border: none; }
.tbt-topbar .wp-block-site-title { margin: 0; }
.tbt-navbar .wp-block-navigation a { color: #0f172a !important; font-weight: 800; font-size: 14px; padding: 6px 4px; }
.tbt-navbar .wp-block-navigation a:hover, .tbt-navbar .wp-block-navigation .current-menu-item > a { color: #15803d !important; }
.tbt-navbar .wp-block-navigation__submenu-container { background: #fff !important; border: 1px solid #cbd5e1 !important; border-top: 3px solid #15803d !important; box-shadow: 0 4px 12px rgba(0,0,0,0.1) !important; min-width: 280px !important; z-index: 99999; }
.tbt-navbar .wp-block-navigation__submenu-container a { color: #0f172a !important; font-weight: 600; font-size: 13px; padding: 8px 14px; }
.tbt-navbar .wp-block-navigation__submenu-container a:hover { background: #f8fafc; color: #15803d !important; }
@media (max-width: 991px) { .tbt-topbar .tbt-header-usp { display: none !important; } }

/* ===== AUFGABE 1: Sale-Preis-Groessenkontrast (wie Live, Neu:Alt = 100%:90%) ===== */
p.price ins, .price ins .woocommerce-Price-amount, .price ins bdi,
.wc-block-components-product-price__value.is-discounted,
.wc-block-components-product-price__value--sale { font-size: 1.6em !important; font-weight: 700 !important; text-decoration: none !important; }
p.price del, .price del .woocommerce-Price-amount, .price del bdi,
.wc-block-components-product-price__value.is-discounted + .wc-block-components-product-price__value,
.wc-block-components-product-price__regular { font-size: 1em !important; font-weight: 400 !important; }
/* ===== AUFGABE 2: Sale-Badge rund wie Live (Form/Farbe), Text "Sparen X%" via PHP-Filter ===== */
.onsale.tbt-sale-badge,
span.onsale.tbt-sale-badge { background-color: #e67e22 !important; background: #e67e22 !important; color: #fff !important; border-radius: 20px !important; padding: 5px 14px !important; font-size: 12px !important; font-weight: 800 !important; letter-spacing: 0.3px !important; text-transform: none !important; border: none !important; box-shadow: 0 2px 5px rgba(0,0,0,0.15) !important; position: static !important; display: inline-block !important; left: auto !important; top: auto !important; right: auto !important; margin: 0 0 12px 0 !important; line-height: 1.4 !important; min-height: 0 !important; min-width: 0 !important; width: auto !important; height: auto !important; text-align: center !important; z-index: 2 !important; }
.summary .onsale.tbt-sale-badge { margin-bottom: 12px !important; }

/* ===== Korrektur: Badge-Form wie Live + gleichmaessige Kartenhoehen im Grid ===== */
span.onsale.tbt-sale-badge { border-radius: 5px !important; padding: 3px 10px !important; margin: 8px 0 !important; box-shadow: none !important; align-self: flex-start !important; width: fit-content !important; max-width: fit-content !important; }
ul.products li.product { display: flex !important; flex-direction: column !important; }
ul.products li.product a.woocommerce-loop-product__link { display: flex !important; flex-direction: column !important; flex: 1 1 auto !important; width: 100%; }
ul.products li.product .woocommerce-loop-product__title { display: -webkit-box !important; -webkit-line-clamp: 2 !important; -webkit-box-orient: vertical !important; overflow: hidden !important; min-height: 2.6em !important; }
ul.products li.product .price { margin-top: auto !important; }
/* ===== Rundes "Aktion"-Badge auf Produktbild, wie Live (aktion_corner.png, CSS-Nachbau) ===== */
ul.products li.product a.woocommerce-loop-product__link { position: relative !important; }
.tbt-aktion-rund { position: absolute !important; top: 8px !important; left: 8px !important; width: 54px !important; height: 54px !important; border-radius: 50% !important; background: #d9002b !important; color: #fff !important; display: flex !important; align-items: center !important; justify-content: center !important; font-size: 11px !important; font-weight: 700 !important; text-transform: uppercase !important; text-align: center !important; z-index: 3 !important; line-height: 1.1 !important; padding: 0 !important; margin: 0 !important; border: none !important; }

/* ===== Produktkarte anreichern: Kurzbeschreibung, Lager-Status, Feinschrift (Angleichung an Original-Kartenaufbau) ===== */
.tbt-product-name { font-size: 14px !important; font-weight: 400 !important; color: #3e4d5c !important; }
.tbt-product-name a { color: #3e4d5c !important; font-weight: 400 !important; }
.tbt-product-excerpt { font-size: 13px !important; color: #555555 !important; line-height: 1.4 !important; margin: 2px 0 6px 0 !important; }
.tbt-product-excerpt p { font-size: 13px !important; color: #555555 !important; margin: 0 !important; }
.tbt-stock-indicator { font-size: 13px !important; color: #3e4d5c !important; text-align: left !important; margin: 2px 0 !important; }
.tbt-stock-indicator::before { content: "Lager" !important; font-size: 13px !important; line-height: normal !important; color: #3e4d5c !important; }
.tbt-stock-indicator.wc-block-components-product-stock-indicator--out-of-stock::after { background: #e53e3e !important; }
.tbt-fineprint { font-size: 11px !important; color: #8d8d8d !important; margin: 2px 0 10px 0 !important; }


/* ===== Feinschliff nach Original-Quellcode (shopstyles_custom.css aus Backup) ===== */
/* Doppelten Lager-Text vom Add-to-Cart-Options-Block ausblenden (eigener Indicator mit Punkt bleibt) */
.wc-block-components-product-stock-indicator:not(.tbt-stock-indicator) { display: none !important; }

/* Produktname: 2-zeilig geclampt wie artikel_box_name */
.tbt-product-name a { display: -webkit-box !important; -webkit-line-clamp: 2 !important; -webkit-box-orient: vertical !important; overflow: hidden !important; }

/* Kurzbeschreibung: 2-zeilig geclampt wie artikel_box_kurzbeschr (Original: height 40px, line-clamp 2) */
.tbt-product-excerpt { height: auto !important; margin: 2px 0 15px 0 !important; }
.tbt-product-excerpt p { display: -webkit-box !important; -webkit-line-clamp: 2 !important; -webkit-box-orient: vertical !important; overflow: hidden !important; margin: 0 !important; }

/* Karte: Hover-Schatten + abgerundete Bildecken wie artikel_box / artikel_box_bild */
ul.products li.product:hover, .wc-block-product:hover { box-shadow: 0px 0px 40px -15px #BABABA; }
ul.products li.product img, .wc-block-product img { border-radius: 4px !important; }

/* Mengenfeld + Button nebeneinander, Abstand wie artikel_box_direktkauf (gap 5px) */
.wp-block-group:has(> .wc-block-add-to-cart-with-options__quantity-selector) { gap: 6px !important; }
.wc-block-components-quantity-selector { height: 50px !important; }

/* Button quadratisch mit Icon statt Text, Farbverlauf 1:1 aus Original-CSS (btn-primary) */
.wc-block-components-product-button { flex: 0 0 50px !important; max-width: 50px !important; }
.wc-block-components-product-button__button.add_to_cart_button {
	  width: 50px !important;
	  height: 50px !important;
	  min-height: 0 !important;
	  padding: 0 !important;
	  font-size: 0 !important;
	  line-height: 0 !important;
	  background-color: #5CB85C !important;
	  background-image: linear-gradient(to right, #80C780 1%, #5CB85C 6%, #0F730F) !important;
	  background-size: 300% 300% !important;
	  background-position: -1px center !important;
	  border: 1px solid #449D44 !important;
	  border-radius: 4px !important;
	  display: flex !important;
	  align-items: center !important;
	  justify-content: center !important;
}
.wc-block-components-product-button__button.add_to_cart_button::before {
	  content: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjIyIiBoZWlnaHQ9IjIyIiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmZmZmYiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48Y2lyY2xlIGN4PSI5IiBjeT0iMjEiIHI9IjEiPjwvY2lyY2xlPjxjaXJjbGUgY3g9IjIwIiBjeT0iMjEiIHI9IjEiPjwvY2lyY2xlPjxwYXRoIGQ9Ik0xIDFoNGwyLjY4IDEzLjM5YTIgMiAwIDAgMCAyIDEuNjFoOS43MmEyIDIgMCAwIDAgMi0xLjYxTDIzIDZINiI+PC9wYXRoPjwvc3ZnPgo=");
}


/* ===== Kartenhoehen fixiert nach Original-Werten (shopstyles_custom.css): Name 45px / Kurzbeschr 40px / Lager 35px / Preis 41px ===== */
.tbt-product-name {
	  height: 45px !important;
	  overflow: hidden !important;
}
.tbt-product-name a {
	  display: block !important;
	  -webkit-line-clamp: unset !important;
	  -webkit-box-orient: unset !important;
}
.wp-block-woocommerce-product-summary {
	  height: 40px !important;
	  overflow: hidden !important;
	  margin-bottom: 15px !important;
}
.wp-block-woocommerce-product-price {
	  height: 41px !important;
	  overflow: hidden !important;
}

/* ===== Lagerstatus wie Original: Label "Lager" + Punkt, KEINE Stueckzahl (CSS-Loesung, PHP-Filter blockiert durch LocalWP-Loopback-Check) ===== */
.tbt-stock-indicator {
	  height: 35px !important;
	  line-height: 35px !important;
	  font-size: 0 !important;
}
.tbt-stock-indicator::after {
	  content: "" !important;
	  display: inline-block !important;
	  width: 8px !important;
	  height: 8px !important;
	  border-radius: 50% !important;
	  background: #28a745 !important;
	  margin-left: 6px !important;
	  vertical-align: middle !important;
}

/* ===== Warenkorb-Badge im Header: Original-Farbe statt Standard-Rot ===== */
.wc-block-mini-cart__quantity-badge {
	  background-color: #D9002B !important;
	  border: 2px solid #857B62 !important;
}

/* ===== Produktbild-Seitenverhaeltnis: Naeherung an Original (3:4 Hochformat statt 1:1) =====
   Original liefert 255x340px fest (kein Crop, eigene Bildgroesse via PHP add_image_size - hier nicht moeglich).
   Diese Loesung packt das vorhandene quadratische WooCommerce-Thumbnail in eine 3:4-Box - Naeherung,
   kein Pixel-identischer Crop.
   KORREKTUR 1 (2026-07-11, Thomas-Feedback "Bilder wirken zu gross"): object-fit war auf "cover" (fuellt
   die 3:4-Box komplett, zoomt/schneidet das quadratische Bild dafuer an den Raendern an - macht die
   Produkte optisch groesser/naeher als im alten Shop). Jetzt "contain" (Bild wird komplett UND
   unbeschnitten eingepasst, oben/unten bleibt weisser Rand) - zeigt jedes Produktfoto vollstaendig,
   kein Zoom-Effekt mehr. Weisser Hintergrund noetig, da "contain" bei 1:1-Bildern in einer 3:4-Box
   oben/unten Luecken laesst.
   KORREKTUR 2 (gleicher Tag, Vergleich mit Live-Shop): "contain" allein reicht nicht - im alten
   PepperShop-Shop haben die 255x340-Originale selbst schon reichlich Weissraum um das Produkt
   (bewusst so freigestellt). Die WooCommerce-Mediathek-Bilder sind enger zugeschnitten (Produkt
   fuellt fast den ganzen Rahmen), dadurch wirken sie trotz "contain" noch praesenter/groesser als im
   alten Shop. Fix: Padding auf der Box erzwingt bei JEDEM Produkt einen einheitlichen Weissraum-Rand,
   unabhaengig vom Zuschnitt des Quellbilds - naehert die Optik an den alten Shop an, ohne die
   Bilddateien selbst anfassen zu muessen. */
.wp-block-woocommerce-product-image {
	  aspect-ratio: 3 / 4 !important;
	  overflow: hidden !important;
	  background: #fff !important;
	  padding: 16px !important;
	  box-sizing: border-box !important;
}
.wp-block-woocommerce-product-image > a {
	  display: block !important;
	  width: 100% !important;
	  height: 100% !important;
}
.wp-block-woocommerce-product-image img {
	  display: block !important;
	  width: 100% !important;
	  height: 100% !important;
	  object-fit: contain !important;
}

/* ===== Mengenfeld-Styling (Original: Zahlenfeld + Kaufbutton nebeneinander) ===== */
.wc-block-components-product-button.tbt-has-qty {
	  display: flex !important;
	  flex-direction: row !important;
	  align-items: center !important;
	  justify-content: center !important;
	  gap: 6px !important;
	  width: auto !important;
	  max-width: none !important;
}
.tbt-qty-input {
	  width: 54px !important;
	  height: 50px !important;
	  box-sizing: border-box !important;
	  border: 1px solid #cbd5e1 !important;
	  border-radius: 4px !important;
	  text-align: center !important;
	  font-size: 14px !important;
	  padding: 0 !important;
	  -moz-appearance: textfield !important;
}
.add_to_cart_button.tbt-added {
	  outline: 2px solid #28a745 !important;
	  outline-offset: 1px !important;
}

/* ========================================================================== */
/* KLASSISCHER SHORTCODE-LOOP (ul.products li.product) an Original angeglichen */
/* Die .wc-block-* Regeln oben greifen auf der Shortcode-Startseite NICHT.     */
/* ========================================================================== */
.woocommerce ul.products.columns-5, ul.products.columns-5 {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr) !important;
	gap: 24px !important;
	margin: 0 0 30px 0 !important;
}
@media (max-width: 900px) { .woocommerce ul.products.columns-5, ul.products.columns-5 { grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 540px) { .woocommerce ul.products.columns-5, ul.products.columns-5 { grid-template-columns: 1fr !important; } }
ul.products li.product {
	width: auto !important; float: none !important; margin: 0 !important; padding: 0 !important;
	background: #fff !important; border-radius: 4px !important;
	display: flex !important; flex-direction: column !important; color: #3e4d5c !important;
}
ul.products li.product > a.woocommerce-loop-product__link {
	display: flex !important; flex-direction: column !important; flex: 1 1 auto !important; color: #3e4d5c !important;
}
ul.products li.product img.attachment-woocommerce_thumbnail,
ul.products li.product .woocommerce-loop-product__link img {
	width: 100% !important; aspect-ratio: 3 / 4 !important; object-fit: contain !important;
	background: #fff !important; border-radius: 4px !important; margin: 0 0 10px 0 !important;
}
ul.products li.product .woocommerce-loop-product__title {
	font-size: 14px !important; font-weight: 700 !important; color: #3e4d5c !important;
	padding: 0 !important; margin: 0 0 4px 0 !important; line-height: 1.35 !important;
	display: -webkit-box !important; -webkit-line-clamp: 2 !important; -webkit-box-orient: vertical !important;
	overflow: hidden !important; min-height: 2.7em !important;
}
ul.products li.product .tbt-loop-excerpt {
	font-size: 13px !important; font-weight: 400 !important; color: #3e4d5c !important; line-height: 1.4 !important;
	margin: 0 0 8px 0 !important; display: -webkit-box !important; -webkit-line-clamp: 2 !important;
	-webkit-box-orient: vertical !important; overflow: hidden !important; min-height: 2.5em !important;
}
ul.products li.product .tbt-loop-excerpt p { margin: 0 !important; font-size: 13px !important; color: #3e4d5c !important; }
ul.products li.product .tbt-loop-stock {
	font-size: 14px !important; color: #3e4d5c !important; display: flex !important; align-items: center !important;
	gap: 7px !important; margin: 0 0 8px 0 !important;
}
ul.products li.product .tbt-loop-dot {
	width: 15px !important; height: 15px !important; border-radius: 50% !important; display: inline-block !important;
	background: #84c326 !important; flex: 0 0 auto !important;
}
ul.products li.product .tbt-loop-stock.is-out .tbt-loop-dot { background: #e53e3e !important; }
ul.products li.product span.onsale.tbt-sale-badge {
	align-self: flex-start !important; margin: 0 0 8px 0 !important; position: static !important;
}
ul.products li.product .price {
	margin: 0 0 10px 0 !important; font-size: 16px !important; line-height: 1.25 !important; color: #333 !important;
}
ul.products li.product .price del, ul.products li.product .price del .woocommerce-Price-amount, ul.products li.product .price del bdi {
	font-size: 14.5px !important; font-weight: 400 !important; color: var(--tbt-slate) !important; opacity: 1 !important;
}
ul.products li.product .price ins, ul.products li.product .price ins .woocommerce-Price-amount, ul.products li.product .price ins bdi {
	font-size: 16px !important; font-weight: 700 !important; color: #e84d1c !important; text-decoration: none !important; background: transparent !important;
}
ul.products li.product .price .woocommerce-price-suffix {
	display: block !important; font-size: 11px !important; font-weight: 700 !important; color: #666 !important; margin-top: 3px !important;
}
ul.products li.product .tbt-loop-cart {
	display: flex !important; flex-direction: row !important; align-items: center !important;
	gap: 5px !important; margin: auto 0 0 0 !important; padding: 2px 0 0 0 !important;
}
ul.products li.product .tbt-qty-input {
	width: 54px !important; height: 50px !important; box-sizing: border-box !important;
	border: 1px solid #d0cece !important; border-radius: 4px !important; text-align: center !important;
	font-size: 14px !important; padding: 0 !important; color: #333 !important; background: #fff !important; -moz-appearance: textfield !important;
}
ul.products li.product .tbt-loop-cart-btn {
	width: 50px !important; height: 50px !important; min-height: 0 !important; padding: 0 !important;
	font-size: 0 !important; line-height: 0 !important; border: 1px solid #449D44 !important; border-radius: 4px !important;
	background-color: #5CB85C !important;
	background-image: linear-gradient(to right, #80C780 1%, #5CB85C 6%, #0F730F) !important;
	background-size: 300% 300% !important; background-position: -1px center !important; color: #fff !important;
	display: flex !important; align-items: center !important; justify-content: center !important; cursor: pointer !important;
	transition: background-position 0.2s !important;
}
ul.products li.product .tbt-loop-cart-btn:hover { background-position: right center !important; }
ul.products li.product .tbt-loop-cart-btn::before {
	content: "" !important; width: 22px !important; height: 22px !important;
	background: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjIyIiBoZWlnaHQ9IjIyIiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmZmZmYiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48Y2lyY2xlIGN4PSI5IiBjeT0iMjEiIHI9IjEiPjwvY2lyY2xlPjxjaXJjbGUgY3g9IjIwIiBjeT0iMjEiIHI9IjEiPjwvY2lyY2xlPjxwYXRoIGQ9Ik0xIDFoNGwyLjY4IDEzLjM5YTIgMiAwIDAgMCAyIDEuNjFoOS43MmEyIDIgMCAwIDAgMi0xLjYxTDIzIDZINiI+PC9wYXRoPjwvc3ZnPgo=") center/contain no-repeat !important;
}
ul.products li.product > a.button.wp-element-button { align-self: flex-start !important; margin: auto 0 0 0 !important; }

/* Fix: Clearfix-Pseudo-Elemente von ul.products belegen im Grid sonst die erste Zelle (leere erste Kachel) */
.woocommerce ul.products::before, .woocommerce ul.products::after,
ul.products::before, ul.products::after { content: none !important; display: none !important; }

/* Spare-%-Badge als Block (orange wie Original) */
.wc-block-product .tbt-loop-savings { margin: 0 0 8px 0 !important; }
.tbt-loop-savings-badge { display:inline-block !important; background:#e67e22 !important; color:#fff !important; padding:3px 10px !important; border-radius:5px !important; font-weight:800 !important; font-size:12px !important; letter-spacing:.3px !important; }
/* Aktion-Kreis als Block: Kachel muss Positionierungs-Kontext sein */
.wc-block-product { position: relative !important; }

/* === Block-Kachel: Lager-Ampel + Warenkorb (spiegelt klassische ul.products-Regeln) === */
.wc-block-product .tbt-loop-stock {
	font-size: 14px !important; color: #3e4d5c !important; display: flex !important; align-items: center !important;
	gap: 7px !important; margin: 0 0 8px 0 !important;
}
.wc-block-product .tbt-loop-dot {
	width: 15px !important; height: 15px !important; border-radius: 50% !important; display: inline-block !important;
	background: #84c326 !important; flex: 0 0 auto !important;
}
.wc-block-product .tbt-loop-stock.is-out .tbt-loop-dot { background: #e53e3e !important; }
.wc-block-product .tbt-loop-cart {
	display: flex !important; flex-direction: row !important; align-items: center !important;
	gap: 5px !important; margin: auto 0 0 0 !important; padding: 2px 0 0 0 !important;
}
.wc-block-product .tbt-qty-input {
	width: 54px !important; height: 50px !important; box-sizing: border-box !important;
	border: 1px solid #d0cece !important; border-radius: 4px !important; text-align: center !important;
	font-size: 14px !important; padding: 0 !important; color: #333 !important; background: #fff !important; -moz-appearance: textfield !important;
}
.wc-block-product .tbt-loop-cart-btn {
	width: 50px !important; height: 50px !important; min-height: 0 !important; padding: 0 !important;
	font-size: 0 !important; line-height: 0 !important; border: 1px solid #449D44 !important; border-radius: 4px !important;
	background-color: #5CB85C !important;
	background-image: linear-gradient(to right, #80C780 1%, #5CB85C 6%, #0F730F) !important;
	background-size: 300% 300% !important; background-position: -1px center !important; color: #fff !important;
	display: flex !important; align-items: center !important; justify-content: center !important; cursor: pointer !important;
	transition: background-position 0.2s !important;
}
.wc-block-product .tbt-loop-cart-btn:hover { background-position: right center !important; }
.wc-block-product .tbt-loop-cart-btn::before {
	content: "" !important; width: 22px !important; height: 22px !important;
	background: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjIyIiBoZWlnaHQ9IjIyIiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmZmZmYiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48Y2lyY2xlIGN4PSI5IiBjeT0iMjEiIHI9IjEiPjwvY2lyY2xlPjxjaXJjbGUgY3g9IjIwIiBjeT0iMjEiIHI9IjEiPjwvY2lyY2xlPjxwYXRoIGQ9Ik0xIDFoNGwyLjY4IDEzLjM5YTIgMiAwIDAgMCAyIDEuNjFoOS43MmEyIDIgMCAwIDAgMi0xLjYxTDIzIDZINiI+PC9wYXRoPjwvc3ZnPgo=") center/contain no-repeat !important;
}

/* Block-Kachel: nativer Preis-Suffix als Kleingedrucktes (ersetzt Custom-mwst-Block, folgt WooCommerce-Einstellung) */
.wc-block-product .woocommerce-price-suffix { display:block !important; font-size:11px !important; font-weight:700 !important; color:#666 !important; margin-top:3px !important; }

/* Ratgeber-Akkordeon (kompakt, JS-frei) */
.tbt-product-description details.tbt-acc { border:1px solid #e2e8f0 !important; border-radius:6px !important; margin:0 0 10px !important; background:#fff !important; }
.tbt-product-description details.tbt-acc > summary { cursor:pointer !important; padding:12px 16px !important; font-weight:800 !important; color:#1e293b !important; list-style:none !important; display:flex !important; justify-content:space-between !important; align-items:center !important; }
.tbt-product-description details.tbt-acc > summary::-webkit-details-marker { display:none !important; }
.tbt-product-description details.tbt-acc > summary::after { content:"+" !important; font-size:22px !important; font-weight:400 !important; color:#64748b !important; }
.tbt-product-description details.tbt-acc[open] > summary::after { content:"\2013" !important; }
.tbt-product-description details.tbt-acc[open] > summary { border-bottom:1px solid #e2e8f0 !important; }
.tbt-product-description details.tbt-acc > *:not(summary) { margin-left:16px !important; margin-right:16px !important; }
.tbt-product-description details.tbt-acc > h4 { margin-top:14px !important; }
.tbt-product-description details.tbt-acc > *:last-child { margin-bottom:14px !important; }

/* FAQ-Fragen als H3 (AEO/semantisch) - dunkel halten, nicht die gruene .tbt-product-description h3 Farbe erben */
.tbt-faq h3.tbt-faq-q,
.tbt-product-description .tbt-faq h3.tbt-faq-q {
  color: #0f172a;
  font-size: 1.05em;
  font-weight: bold;
  margin: 18px 0 6px;
  border-bottom: none;
  padding-bottom: 0;
  line-height: 1.35;
}

/* === Google Reviews Widget (portiert von tb-tools.ch, 1:1 Design) === */
.tbt-google-reviews { --tbt-gr-border:#e2e2e2; --tbt-gr-text:#2a2a2a; --tbt-gr-muted:#6b6b6b; --tbt-gr-star:#f5a623; --tbt-gr-bg-card:#fff; --tbt-gr-radius:10px; max-width:1100px; margin:3rem auto; padding:0 1rem; font-family:inherit; color:var(--tbt-gr-text); }
.tbt-google-reviews__summary { display:flex; align-items:center; gap:.5rem; justify-content:center; margin-bottom:1.5rem; font-size:1.1rem; }
.tbt-google-reviews__stars { color:var(--tbt-gr-star); letter-spacing:2px; font-size:1.2rem; }
.tbt-google-reviews__stars--small { font-size:.9rem; }
.tbt-google-reviews__score { font-weight:600; }
.tbt-google-reviews__count { color:var(--tbt-gr-muted); font-size:.9rem; }
.tbt-google-reviews__grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:1.25rem; }
.tbt-google-reviews__card { background:var(--tbt-gr-bg-card); border:1px solid var(--tbt-gr-border); border-radius:var(--tbt-gr-radius); padding:1.25rem; display:flex; flex-direction:column; gap:.75rem; }
.tbt-google-reviews__author { display:flex; align-items:center; gap:.75rem; }
.tbt-google-reviews__author-meta { display:flex; flex-direction:column; gap:.15rem; }
.tbt-google-reviews__name { font-weight:600; color:var(--tbt-gr-text); text-decoration:none; }
.tbt-google-reviews__name:hover { text-decoration:underline; }
.tbt-google-reviews__text { margin:0; line-height:1.5; font-size:.95rem; color:var(--tbt-gr-text); }
.tbt-google-reviews__attribution { margin-top:1.5rem; text-align:center; font-size:.8rem; color:var(--tbt-gr-muted); }
.tbt-google-reviews__attribution a { color:inherit; }


/* TB-Tools: Schwebender WhatsApp-Notfall-Button (Tier-0, 2026-07-10) */
.tbt-wa-fab{position:fixed;right:calc(16px + env(safe-area-inset-right));bottom:calc(16px + env(safe-area-inset-bottom));z-index:900;display:inline-flex;align-items:center;gap:8px;min-height:56px;min-width:56px;padding:14px;border-radius:28px;background:#25D366;color:#fff;box-shadow:0 4px 14px rgba(0,0,0,.25);text-decoration:none;line-height:0}
.tbt-wa-fab__icon{flex:0 0 auto}
.tbt-wa-fab__label{display:none;font-weight:700;font-size:15px;line-height:1;white-space:nowrap;padding-right:6px}
.tbt-wa-fab:hover{background:#1EBE57}
.tbt-wa-fab:focus-visible{outline:3px solid #0b3;outline-offset:2px}
@media(min-width:768px){.tbt-wa-fab__label{display:inline}}

/* TB-Tools: End-Kategorie (TYP B) Profi-Wissen-Akkordeon + schwebende Pille */
.tbt-cat-acc-btn{display:inline-block;margin:10px 0 6px;padding:10px 18px;border:2px solid #25D366;border-radius:24px;background:#fff;color:#0b7a3b;font-weight:700;cursor:pointer;font-size:15px}
.tbt-cat-acc-btn:hover{background:#25D366;color:#fff}
#tbt-faq-anker{display:block;scroll-margin-top:80px}
.tbt-profi-pill{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:850;display:inline-flex;align-items:center;gap:6px;padding:12px 22px;border-radius:26px;background:#1e293b;color:#fff;font-weight:700;font-size:15px;text-decoration:none;box-shadow:0 4px 16px rgba(0,0,0,.28);line-height:1}
.tbt-profi-pill:hover{background:#0f172a;color:#fff}
.tbt-profi-pill:focus-visible{outline:3px solid #25D366;outline-offset:2px}
@media(max-width:767px){.tbt-profi-pill{bottom:calc(88px + env(safe-area-inset-bottom))}}

/* === Header-Symmetrie + Mobile-Promo (2026-07-10) === */
/* Desktop: Header-Inhalt (Topbar-Zeile + Navigation) auf Content-Breite 1140px zentrieren */
.tbt-topbar > .wp-block-group,
.tbt-navbar > .wp-block-navigation { max-width: 1140px !important; margin-left: auto !important; margin-right: auto !important; }
/* Mobile/Tablet: rotes Liefer-Promo-Band einblenden (Element sitzt im Header) */
@media (max-width: 991px) {
  .tbt-mobile-sticky-banner { display: block !important; background-color: var(--tbt-signal-red) !important; color: #fff !important; text-align: center !important; padding: 7px 8px !important; font-family: Arial, sans-serif !important; font-size: 13px !important; font-weight: bold !important; width: 100% !important; box-sizing: border-box !important; line-height: 1.3 !important; letter-spacing: 0.2px; }
}
/* Smartphone: Logo und Header kompakter */
@media (max-width: 767px) {
  .wp-block-site-title a { width: 116px !important; height: 64px !important; }
  .tbt-topbar { padding-top: 6px !important; padding-bottom: 6px !important; }
  .tbt-topbar .wp-block-search__input { display: none !important; }
}
/* Nav bei 1140px auf eine Zeile halten (Symmetrie ohne Umbruch) */
.tbt-navbar .wp-block-navigation__container { gap: 10px !important; }
.tbt-navbar .wp-block-navigation > ul { gap: 10px !important; }
.tbt-navbar .wp-block-navigation a { font-size: 13px !important; }

/* === Produktkacheln: Kauf-Block unten verankern -> Buttons auf gleicher Hoehe (2026-07-10) === */
/* Karte als Flex-Spalte, damit der untere Block ausrichtbar wird */
.wc-block-product-template > li.product { display: flex !important; flex-direction: column !important; height: 100%; }
/* Ab "Lager" (Stock) alles an den unteren Rand: Stock + Aktion-Ersparnis + Preis + Button */
.wc-block-product-template > li.product > .tbt-loop-stock { margin-top: auto !important; }
/* Titel reserviert 2 Zeilen, damit die Beschreibung bei kurzen Titeln nicht hochspringt */
.wc-block-product-template > li.product > .tbt-product-name { min-height: 40px; }
/* Beschreibung: einheitlicher Abstand, kein Zusammenpressen */
.wc-block-product-template > li.product > .wp-block-woocommerce-product-summary { margin-bottom: 6px; }

/* === Kacheln: Lagerampel + Preis + Button alle auf gleiche Hoehe (2026-07-10) === */
/* Positionskontext fuer das Overlay-Badge */
.wc-block-product-template > li.product { position: relative; }
/* Cart hatte ein eigenes margin-top:auto -> entfernen, damit NUR .tbt-loop-stock den Slack schluckt */
.wc-block-product-template > li.product > .tbt-loop-cart { margin-top: 0 !important; }
/* Aktions-Ersparnis aus dem Flow nehmen (Overlay oben rechts aufs Bild), sonst schiebt sie Lager/Preis */
.wc-block-product-template > li.product > .tbt-loop-savings { position: absolute !important; top: 12px; right: 12px; left: auto; margin: 0 !important; z-index: 3; }

/* ============================================================================
   TBT CHAT FAB (Chatbot-Startbutton, links unten — Pendant zum WhatsApp-FAB
   rechts). Immer geladen: nur der Button. Panel-Styles liegen lazy in
   assets/tbt-chat.css und werden erst nach Klick nachgeladen (kein CLS).
   ============================================================================ */
.tbt-chat-fab {
  position: fixed;
  left: 20px;
  bottom: 20px;
  display: flex;
  align-items: center;
  gap: 8px;
  background: #2d3748;
  color: #ffffff;
  border: none;
  border-radius: 30px;
  min-width: 56px;
  min-height: 56px;
  padding: 0 18px;
  cursor: pointer;
  z-index: 99998;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.28);
  transition: background 0.2s ease, box-shadow 0.2s ease;
  font-size: 14px;
  font-weight: 600;
  font-family: inherit;
  line-height: 1;
}
.tbt-chat-fab:hover {
  background: #3d4a5c;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
  color: #ffffff;
}
.tbt-chat-fab svg { flex: 0 0 auto; }
.tbt-chat-fab-label { white-space: nowrap; }
@media (max-width: 767px) {
  .tbt-chat-fab { padding: 0; width: 56px; justify-content: center; }
  .tbt-chat-fab-label { display: none; }
}
.tbt-chat-fab-loading { opacity: 0.6; cursor: wait; }

/* === End-Kategorie (2026-07-12): H1 klein wie im alten Shop (PepperShop
   h1.content = 23px/400, unter 768px 18.4px); Kopf-Box kompakter Abstand === */
body.tbt-endcat h1.wp-block-query-title {
  font-size: 23px;
  font-weight: 400;
  color: #3e4d5c;
  line-height: 1.1;
  margin: 0 0 25px;
  padding: 0 0 10px;
}
@media (max-width: 767px) {
  body.tbt-endcat h1.wp-block-query-title { font-size: 18.4px; }
}
body.tbt-endcat .tbt-endcat-kopf .tbt-category-wrapper { margin-bottom: 24px; }

/* === End-Kategorie (2026-07-12 (2)): Desktop-Langtext (alter Live-Text) vs.
   Mobile-Kernsatz — zwei .tbt-category-text-Absaetze, je Viewport einer === */
@media (min-width: 768px) {
  .tbt-bluf-mobile { display: none; }
}
@media (max-width: 767px) {
  .tbt-bluf-desktop { display: none; }
}

/* === End-Kategorie (2026-07-12 (3)): Badges auf Smartphone nebeneinander === */
@media (max-width: 767px) {
  .tbt-badge-container { display: flex; gap: 6px; align-items: stretch; }
  .tbt-badge-container .tbt-badge {
    flex: 1 1 0;
    font-size: 10.5px;
    line-height: 1.25;
    padding: 5px 7px;
    letter-spacing: 0;
    white-space: normal;
    text-align: center;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
  }
}


/* ============================================================================
   FLOATING RECHNER-WIDGET (#tbt-floating, Plugin tbtools-rechner)
   Fix 2026-07-16: tbt-rechner.js injiziert sein eigenes CSS erst beim ersten
   Modal-Oeffnen (injectModal) — das Widget rendert aber sofort beim
   Seitenladen (initFloating). Ohne diese statischen Regeln liegt es als
   ungestylter, seitenbreiter Block UNTER dem Footer (jede Seite, inkl. Kasse).
   Position: unten LINKS ueber dem Fach-Chat-FAB (Entscheid Thomas 16.07.2026).
   !important uebersteuert das spaeter injizierte JS-CSS (dort steht
   bottom:90px / right:15px). Drag bleibt moeglich — das JS verschiebt per
   transform, nicht per left/bottom. Wegklicken (x) setzt localStorage
   tbt_dismissed und display:none inline.
   ============================================================================ */
#tbt-floating {
  position: fixed !important;
  left: 20px !important;
  right: auto !important;
  bottom: 90px !important;   /* Fach-Chat-FAB: bottom 20px + 56px Hoehe + 14px Luft */
  top: auto !important;
  width: 90px !important;
  z-index: 99998;
  filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.25));
  -webkit-user-select: none;
  user-select: none;
  touch-action: none;
}
#tbt-float-head {
  background: #e67e22;
  color: #ffffff;
  font-size: 11px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 3px 5px;
  border-radius: 6px 6px 0 0;
  font-weight: bold;
  letter-spacing: 0.5px;
}
#tbt-float-close {
  cursor: pointer;
  font-size: 16px;
  font-weight: bold;
  line-height: 1;
  padding: 2px;
}
#tbt-float-img {
  padding: 3px;
  background: #ffffff;
  border-radius: 0 0 6px 6px;
  cursor: pointer;
}
#tbt-float-img img {
  width: 100%;
  height: auto;
  border-radius: 3px;
  display: block;
  pointer-events: none;
}

/* Mobile: kompakter, gleiche Ecke (Fach-Chat-FAB ist mobil 56px rund) */
@media (max-width: 767px) {
  #tbt-floating { width: 72px !important; bottom: 84px !important; }
}

/* Offenes Rechner-/Schnittplaner-Modal: Widget ausblenden
   (Kollisionsschutz, analog Custom-CSS v7.3 des alten Shops) */
body:has(#tbt-modern-modal:not([style*="display: none"]):not([style*="display:none"])) #tbt-floating,
body:has(#tbt-schnitt-modal:not([style*="display: none"]):not([style*="display:none"])) #tbt-floating {
  display: none !important;
}

/* ============================================================
   Mobile-Navigation mehrstufig (Akkordeon im Burger-Overlay)
   Core klappt im Overlay alle Submenues auf - hier: zu, und
   der Pfeil-Button oeffnet genau eine Ebene. Der Eltern-Link
   (Weichen-Seite) bleibt klickbar. JS: tbt_mobile_nav_akkordeon
   in tb-tools-compat.php (wp_footer).
   ============================================================ */
.wp-block-navigation__responsive-container.is-menu-open li.has-child > .wp-block-navigation__submenu-container {
  display: none !important;
  visibility: hidden;
  opacity: 0;
}
.wp-block-navigation__responsive-container.is-menu-open li.has-child.tbt-sub-open > .wp-block-navigation__submenu-container {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  flex-direction: column;
  padding-left: 14px;
}
.wp-block-navigation__responsive-container.is-menu-open li.has-child > .wp-block-navigation-item__content {
  display: inline-flex;
  align-items: center;
}
.wp-block-navigation__responsive-container.is-menu-open button.wp-block-navigation__submenu-icon {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 32px;
  margin-left: 6px;
}
.wp-block-navigation__responsive-container.is-menu-open button.wp-block-navigation__submenu-icon svg {
  transition: transform .18s ease;
}
.wp-block-navigation__responsive-container.is-menu-open li.tbt-sub-open > button.wp-block-navigation__submenu-icon svg {
  transform: rotate(180deg);
}

/* Burger-Overlay: Seite bleibt sichtbar - dunkler Schleier statt
   Vollflaeche, Menue als weisses Panel oben (schliesst per X oder
   Tipp auf den Schleier, JS in tb-tools-compat.php) */
.wp-block-navigation__responsive-container.is-menu-open {
  background: rgba(15, 23, 42, 0.45) !important;
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  align-items: flex-start !important;
  padding: 0 !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog {
  background: #fff;
  width: 100%;
  max-height: 84vh;
  overflow-y: auto;
  padding: 16px 16px 24px;
  border-radius: 0 0 14px 14px;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.25);
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
  padding-top: 6px;
}

/* Startseite mobil: Hero kompakt, damit die Auswahl-Kacheln ohne
   Scrollen sichtbar sind. Desktop unveraendert. Der lange
   Manifest-Absatz (.tbt-hero-subtitle) und der Erklaertext vor den
   Kacheln (.tbt-category-text) sind mobil ausgeblendet; H1 kleiner. */
@media (max-width: 781px) {
  body.home .tbt-hero-container {
    padding-top: 10px;
    padding-bottom: 6px;
  }
  body.home .tbt-hero-title {
    font-size: 1.45em;
    line-height: 1.3;
    margin: 0 0 10px;
  }
  body.home .tbt-hero-subtitle,
  body.home .tbt-category-text {
    display: none !important;
  }
  body.home .tbt-hero-mobilsatz {
    display: block !important;
  }
  body.home .tbt-section-title {
    margin: 8px 0 12px;
    font-size: 1.05em;
  }
}

/* Startseite mobil: Theme-Leerraum ueber dem Hero straffen */
@media (max-width: 781px) {
  body.home .wp-block-group:has(.entry-content) {
    padding-top: 10px !important;
    margin-top: 8px !important;
  }
  body.home .entry-content.wp-block-post-content {
    margin-top: 8px;
  }
}

/* Mobile-Verkaufssatz (Startseite): nur in der mobilen Ansicht sichtbar,
   Desktop zeigt die beiden Original-Absaetze */
.tbt-hero-mobilsatz { display: none; }
.tbt-hero-mobilsatz strong { font-weight: 700; }

/* ====================================================================
   TBT: Konsolidiert aus Global Styles (wp_global_styles ID 941), 2026-07-17
   Diese Regeln standen bis heute im Site-Editor-CSS-Feld (Custom-CSS).
   Das CSS-Feld dort ist seit heute geleert - neue Regeln gehoeren HIERHER.
   ==================================================================== */
/* TBT bohrkronen-kachel 2026-07-15 */
.term-diamantwerkzeuge .tbt-cat-card{flex-basis:calc(25% - 20px);min-width:210px;}
.term-diamantwerkzeuge .tbt-cat-card--silver{border-top:4px solid #8a9099;}
.term-diamantwerkzeuge .tbt-cat-card--gold{border-top:4px solid #c9a227;}

/* TBT product-meta stack 2026-07-15 */
.wp-block-woocommerce-product-meta .wp-block-group.is-nowrap{flex-direction:column!important;align-items:flex-start}

/* TBT — Startseite/Header an alt angleichen 2026-07-17 */
.tbt-topbar .wp-block-site-title,
.tbt-topbar .wp-block-site-title a{height:60px !important;max-height:60px !important;width:107px !important;}
.tbt-topbar{padding-top:6px !important;padding-bottom:6px !important;}
.wp-site-blocks > main.wp-block-group{margin-top:10px !important;}
.wp-site-blocks > main > .wp-block-group.has-global-padding{padding-top:8px !important;}
.tbt-hero-title{font-size:28px !important;line-height:1.2 !important;}
@media (min-width:768px){
  .tbt-challenge-grid .tbt-challenge-card{box-sizing:border-box !important;min-width:0 !important;}
  .tbt-challenge-grid .tbt-challenge-card:nth-child(-n+4){flex:0 0 calc(25% - 11.25px) !important;max-width:calc(25% - 11.25px) !important;}
  .tbt-challenge-grid .tbt-challenge-card:nth-child(n+5){flex:0 0 calc(33.333% - 10px) !important;max-width:calc(33.333% - 10px) !important;}
}

/* Content-Bereich breiter (an alt angeglichen) 2026-07-17 */
.home .wp-block-post-content > *,
.woocommerce-page .wp-block-post-content > *,
.archive .wp-site-blocks main > *,
.wp-site-blocks .tbt-topbar > .wp-block-group,
.wp-site-blocks .tbt-navbar > .wp-block-navigation,
.tbt-hero-container,
.tbt-challenge-grid{max-width:1290px !important;}

/* Hero-Text kraeftiger wie alt (300 -> 400) 2026-07-17 */
.tbt-hero-subtitle{font-weight:400 !important;}
.tbt-category-text strong,
.tbt-about-master-text strong{font-weight:700 !important;}

/* Beste Lesbarkeit: Fliesstext normal statt light (wie alt) 2026-07-17 */
body{font-weight:400 !important;}

/* Kategorieseiten an alt angleichen: dezenter H1 + weisse Box fuer Hubs 2026-07-17 */
.tax-product_cat .wp-block-query-title{font-size:23px !important;font-weight:400 !important;color:#3e4d5c !important;}
.tax-product_cat .tbt-category-wrapper{margin-top:20px !important;}

/* TBT — Produktseite an alt angleichen 2026-07-17 */
.single-product .wp-block-post-title{font-size:22px !important;line-height:1.25 !important;margin:0 0 8px !important;font-weight:600 !important;}
@media (max-width:782px){.single-product .wp-block-post-title{font-size:18px !important;line-height:1.2 !important;}}
.single-product .wp-block-woocommerce-product-image-gallery .onsale{display:none !important;}
.single-product .tbt-price-badge{display:inline-block;background:#b45309;color:#fff;font-size:13px;font-weight:700;line-height:1;padding:4px 10px;border-radius:3px;margin:0 0 8px;}
.single-product main .wp-block-columns.alignwide{max-width:1290px !important;margin-left:auto !important;margin-right:auto !important;}
.single-product .tbt-trust-box{border:1px solid #e2e8f0;background:#f8fafc;padding:12px 14px;border-radius:4px;margin:16px 0 0;max-width:520px;}
.single-product .tbt-trust-box .tbt-trust-head{display:block;font-weight:700;margin-bottom:8px;color:#1e293b;}
.single-product .tbt-trust-box .tbt-pay{display:inline-block;border:1px solid #cbd5e1;background:#fff;border-radius:3px;padding:3px 9px;margin:0 5px 5px 0;font-size:12px;font-weight:600;color:#334155;}
.single-product .tbt-trust-box .tbt-trust-liefer{margin-top:6px;padding-top:8px;border-top:1px solid #e2e8f0;font-size:11px;color:#475569;}

/* TBT — Produktseite: Preiszeilen, Reihenfolge, Lager (wie alt) 2026-07-17 */

.single-product main .wp-block-columns .wp-block-column:last-child{display:flex;flex-direction:column;align-items:stretch;}
.single-product .wp-block-post-title{order:1;}
.single-product .wp-block-woocommerce-product-meta{order:2;margin:2px 0 8px;font-size:12.5px;}
.single-product .tbt-price-badge{order:3;align-self:flex-start;}
.single-product .wp-block-woocommerce-product-price{order:4;}
.single-product .wp-block-add-to-cart-form{order:5;}
.single-product .tbt-trust-box{order:6;}
.single-product .wc-block-components-product-price{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:8px;}
.single-product .wc-block-components-product-price ins{order:1;color:#e84d1c;text-decoration:none;}
.single-product .wc-block-components-product-price del{order:2;}
.single-product .wc-block-components-product-price .woocommerce-price-suffix{order:3;flex-basis:100%;}
.single-product .stock.in-stock{font-size:14px;color:#333;font-weight:400;}

.single-product .stock.in-stock::after{content:'';display:inline-block;width:12px;height:12px;border-radius:50%;background:#5bbf21;margin-left:4px;vertical-align:-1px;}

/* TBT — Kurzbeschreibung von Produktseite nehmen (wie alt; bleibt als Meta-Description fuer Google) 2026-07-17 */
.single-product .wp-block-post-excerpt{display:none !important;}

/* TBT — Produktbild kompakt + Lupe weg (wie alt) 2026-07-17 */
.single-product .woocommerce-product-gallery__trigger{display:none !important;}
.single-product main .wp-block-columns .wp-block-column:first-child{flex:0 0 410px !important;max-width:410px !important;display:flex !important;flex-direction:column !important;justify-content:center !important;align-items:center !important;}
.single-product main .wp-block-columns .wp-block-column:last-child{flex:1 1 auto !important;}
@media (max-width:782px){
.single-product main .wp-block-columns .wp-block-column:first-child{flex:0 0 100% !important;width:100% !important;max-width:100% !important;display:block !important;}
.single-product .wp-block-woocommerce-product-image-gallery{max-width:275px !important;margin-left:auto !important;margin-right:auto !important;}
}

/* TBT — Kategorie-Zeile weg (steht schon im Breadcrumb) 2026-07-17 */
.single-product .taxonomy-product_cat{display:none !important;}

/* TBT — Header Mobile kompakt (Logo + Leisten kleiner) 2026-07-17 */
@media (max-width:599.98px){
.tbt-topbar{padding-top:3px !important;padding-bottom:3px !important;padding-right:52px !important;position:relative !important;}
.tbt-topbar .wp-block-site-title,.tbt-topbar .wp-block-site-title a{height:40px !important;max-height:40px !important;width:71px !important;}
.tbt-navbar{margin-top:-42px !important;background:transparent !important;padding:0 6px 0 0 !important;min-height:0 !important;position:relative !important;z-index:90 !important;}
.tbt-navbar .wp-block-navigation{justify-content:flex-end !important;}
}

/* TBT — Hamburger 3 Striche Mobile 2026-07-17 */
@media (max-width:599.98px){
.wp-block-navigation__responsive-container-open svg{display:none !important;}
.wp-block-navigation__responsive-container-open{padding:0 !important;color:#fff !important;background-image:linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff) !important;background-size:24px 2.5px !important;background-position:center 15px,center 21px,center 27px !important;background-repeat:no-repeat !important;}
}

/* TBT — Spare-Badge rot wie alt (#b45309) 2026-07-17 */
.tbt-loop-savings-badge.tbt-loop-savings-badge{background:#b45309 !important;}

/* TBT — Endkat-Intro mobil kompakter 2026-07-17 */
@media(max-width:599.98px){.tbt-category-title{font-size:19px !important;line-height:1.25 !important;}.tbt-category-text{font-size:14px !important;line-height:1.4 !important;}}

/* TBT — Doppelte Beschreibung-Ueberschrift weg 2026-07-17 */
.single-product .woocommerce-Tabs-panel--description>h2:first-child{display:none !important;}


/* TBT — Preis-Hinweiszeile als echter DOM-Text (PHP-Filter) 2026-07-17 */
.tbt-price-hint{display:block;font-weight:400;}


/* TBT — Produktlisten (Kategorie/Shop/Suche): Preisblock linksbündig wie Startseite 2026-07-19 */
.wc-block-product-template .wp-block-woocommerce-product-price.has-text-align-center{text-align:left;}

/* TBT — FLEX Swiss-Edition-Garantiebanner (1:1 vom PepperShop portiert) 2026-07-19 */
.tbt-trust-container { order: 4; background: var(--tbt-gray-bg); border-left: 3px solid var(--tbt-signal-green); border-radius: var(--tbt-radius-sm); padding: 12px 15px; margin: 15px 0; font-size: 14px; }
.tbt-trust-row { display: flex; align-items: flex-start; }
.tbt-trust-icon { width: 18px; height: 18px; margin: 2px 10px 0 0; flex-shrink: 0; color: var(--tbt-signal-green); }
.tbt-trust-text strong { display: block; font-size: 14px; font-weight: 700; color: var(--tbt-slate); line-height: 1.4; }
.tbt-trust-subtext { display: block; font-size: 12.5px; color: #6c757d; line-height: 1.4; }

/* TBT — Aktionspreis in der Alt-Shop-Signalfarbe (PepperShop #e84d1c), Produktseite + Listen + Startseite 2026-07-19 */
.wp-block-woocommerce-product-price ins, .price ins, .wp-block-woocommerce-product-price ins .woocommerce-Price-amount, .price ins .woocommerce-Price-amount { color: #e84d1c; text-decoration: none; }

/* TBT — Produktseite: „exkl. MWST, zzgl. Versandkosten"-Zeile etwas kleiner, dafuer dunkler (Wunsch Thomas) 2026-07-19 */
body.single-product .wp-block-woocommerce-product-price .tbt-price-hint { font-size: 0.82em; color: var(--tbt-slate); }

/* TBT: Loop-Sale-Farben werden direkt im obigen Alt-Block (AUFGABE 1, ins/del bdi !important) gesetzt — Aktionspreis #e84d1c, Streichpreis: Startseite var(--tbt-slate), Listen/Produktseite #595959 (19.07.2026) */ /* !important noetig: im klassischen Loop ueberstimmt sonst eine nicht identifizierbare Alt-CSS-Kaskade (verifiziert 19.07.2026) */

/* TBT — Streichpreis dunkler und damit lesbar (Alt-Shop-Kachelgrau #595959), einheitlich Startseite + Listen + Produktseite 2026-07-19 */
.wp-block-woocommerce-product-price del, .wp-block-woocommerce-product-price del * { color: #595959 !important; }


/* ===== AUFGABE Zubehoer-Sektion (Upsells) auf Produktseiten: kompakte Kacheln, Preisblock immer unten (26.07.2026, Feedback Thomas) ===== */
body.single-product .up-sells { max-width: 1180px; margin: 48px auto 24px; padding: 0 20px; }
body.single-product .up-sells > h2 { font-size: 24px; margin: 0 0 20px; }
body.single-product .up-sells ul.products { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 16px; list-style: none; margin: 0; padding: 0; }
body.single-product .up-sells ul.products li.product { display: flex; flex-direction: column; margin: 0; border: 1px solid #eee; border-radius: 4px; padding: 10px; background: #fff; }
body.single-product .up-sells ul.products li.product a.woocommerce-LoopProduct-link { display: flex; flex-direction: column; flex: 1 1 auto; gap: 6px; text-decoration: none; color: inherit; }
body.single-product .up-sells ul.products li.product img { width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: contain; background: #fff; }
body.single-product .up-sells ul.products li.product .woocommerce-loop-product__title { font-size: 13px; line-height: 1.3; margin: 0; text-align: center; }
body.single-product .up-sells ul.products li.product .tbt-loop-excerpt { font-size: 11.5px; line-height: 1.35; color: #666; text-align: center; }
body.single-product .up-sells ul.products li.product .tbt-loop-stock { margin-top: auto !important; margin-bottom: 4px !important; padding-top: 6px; font-size: 12px !important; gap: 5px !important; justify-content: center !important; }
body.single-product .up-sells ul.products li.product .price { font-size: 14px; font-weight: 600; margin: 0; text-align: center; }
body.single-product .up-sells ul.products li.product form.tbt-loop-cart { display: flex; justify-content: center; align-items: center; gap: 6px; margin-top: 8px; }
