:root { --r-red:#bd0000; --r-blue:#003366; --r-dark:#1a1a1a; --r-border:#444; }
body, .bike-rental-app { font-family: 'Open Sans', sans-serif !important; }

.cart_item.category-versicherung td.product-quantity, 
.cart_item.category-zusatzprodukte td.product-quantity { display: table-cell !important; }

.bike-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 25px; margin-top: 30px; }
.bike-card { background: #fcfcfc; border-radius: 20px; padding: 25px; border: 1.5px solid var(--r-border); position: relative; display: flex; flex-direction: column; min-height: 700px; transition: all 0.3s ease; }
.bike-card:hover:not(.is-out) { transform: translateY(-10px); border-color: var(--r-red); box-shadow: 0 25px 50px rgba(0,0,0,0.15); }

.badge-status { position: absolute; top: 0; left: 0; padding: 8px 15px; font-weight: 800; z-index: 10; font-size: 12px; border-top-left-radius: 20px; border-bottom-right-radius: 12px; background: var(--r-blue); color: #fff; }
.shop-logo-container { position: absolute; top: 15px; right: 15px; display: flex; flex-direction: column; gap: 8px; align-items: flex-end; z-index: 10; }
.shop-logo-container img { width: 90px; height: auto; }

.img-container { height: 210px; display: flex; align-items: center; justify-content: center; background: #fff; border-radius: 15px; margin-top: 30px; margin-bottom: 20px; border: 1px solid #eee; overflow: hidden; cursor: zoom-in; }
.img-container img { max-width: 90%; max-height: 90%; object-fit: contain; transition: transform 0.5s ease; }
.img-container:hover img { transform: scale(1.1); }

.specs-btn { width: 100%; background: #f1f1f1; border: 1px solid #ddd; padding: 12px 15px; border-radius: 10px; font-weight: 800; cursor: pointer; font-size: 11px; display: flex; justify-content: space-between; align-items: center; }
.specs-content { display: none; padding: 15px; background: #fff; border: 1px solid #ddd; border-top: none; border-radius: 0 0 10px 10px; margin-bottom: 15px; font-size: 13px; border-left: 4px solid var(--r-red); }
.tech-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 15px; }
.tech-box { background: #eee; padding: 8px; border-radius: 8px; border: 1px solid #ccc; font-size: 10px; font-weight: 800; }
.tech-box span { display: block; color: var(--r-blue); font-size: 12px; }

.pill { padding:14px 5px; border:1px solid var(--r-border); border-radius:10px; text-align:center; cursor:pointer; font-weight:800; background:#fff; flex:1; }
.pill.active-frame { background: var(--r-dark) !important; color: #fff !important; }

.calc-trigger { font-size: 11px; text-decoration: underline; cursor: pointer; color: var(--r-red); font-weight: 800; margin-left: auto; }
.calc-modal { display:none; position:fixed; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,0.85); z-index:20000; align-items:center; justify-content:center; }
.calc-box { background:#fff; padding:40px; border-radius:30px; width:95%; max-width:500px; text-align:center; box-shadow: 0 20px 60px rgba(0,0,0,0.5); }
.calc-box h2 { font-size: 28px; font-weight: 800; margin-bottom: 10px; color: var(--r-blue); }

#sticky_bar { position:fixed; bottom:25px; left:50%; transform:translateX(-50%) translateY(250px); width:95%; max-width:1300px; background:#fff; border-top:6px solid var(--r-red); padding:15px 35px; display:flex; align-items:center; justify-content:space-between; border-radius:25px; box-shadow:0 20px 60px rgba(0,0,0,0.3); z-index: 9999; transition: 0.5s; }
.modal-overlay { display:none; position:fixed; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,0.85); z-index:10000; align-items:center; justify-content:center; }
.extras-modal { background:#fff; width:95%; max-width:800px; padding:35px; border-radius:30px; max-height:85vh; overflow-y:auto; }
.extra-item { display:flex; align-items:center; gap:20px; padding:15px; border:2px solid #eee; border-radius:15px; margin-bottom:12px; cursor:pointer; }
.extra-item.selected { border-color: var(--r-red); background: #fff5f5; }

.lb-modal { display:none; position:fixed; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,0.9); z-index:100000; align-items:center; justify-content:center; }
.lb-modal img { max-width: 90%; max-height: 90%; border: 5px solid #fff; }

.woocommerce-cart-form img, .cart_item img, .product-thumbnail img { height: 130px !important; width: auto !important; object-fit: contain !important; border-radius: 10px; }
.woocommerce-cart-form .product-thumbnail { width: 175px !important; text-align: center; }

@media (max-width: 1200px) { .bike-grid { grid-template-columns: repeat(2, 1fr); } }