/* Warenkorb & Checkout - gemeinsame Styles fuer alle Seiten mit Warenkorb-Funktion */

.cart-widget { position:relative; }
  .cart-btn { position:relative; width:38px; height:38px; border-radius:50%; border:1px solid var(--green-100); background:#fff; color:var(--green-600); display:flex; align-items:center; justify-content:center; cursor:pointer; transition:background .15s, transform .15s; }
  .cart-btn:hover { background:var(--green-50); transform:translateY(-1px); }
  .cart-badge { position:absolute; top:-5px; right:-5px; min-width:18px; height:18px; padding:0 4px; border-radius:9px; background:var(--coral-400); color:#fff; font-size:10.5px; font-weight:700; display:flex; align-items:center; justify-content:center; line-height:1; }
  .cart-panel { position:fixed; top:calc(100% + 12px); right:0; width:380px; max-width:calc(100vw - 24px); background:#fff; border:1px solid var(--gray-100); border-radius:var(--r-lg); box-shadow:var(--shadow-lg); padding:1.25rem; opacity:0; visibility:hidden; transform:translateY(-6px); transition:opacity .15s, transform .15s, visibility .15s; z-index:99998; }
  .cart-panel.open { opacity:1; visibility:visible; transform:translateY(0); }
  .cart-panel-head { display:flex; align-items:center; justify-content:space-between; font-weight:700; color:var(--gray-800); font-size:16.5px; margin-bottom:.75rem; }
  .cart-panel-close { border:none; background:none; color:var(--gray-400); cursor:pointer; padding:2px; display:flex; }
  .cart-panel-close:hover { color:var(--gray-800); }
  .cart-panel-items { max-height:290px; overflow-y:auto; display:flex; flex-direction:column; gap:10px; margin-bottom:.5rem; }
  .cart-panel-item { display:flex; align-items:center; gap:10px; }
  .cart-panel-thumb { width:52px; height:52px; border-radius:var(--r-sm); background:var(--gray-50); border:1px solid var(--gray-100); flex-shrink:0; display:flex; align-items:center; justify-content:center; overflow:hidden; }
  .cart-panel-thumb img { width:100%; height:100%; object-fit:contain; padding:4px; box-sizing:border-box; }
  .cart-panel-item-body { flex:1; min-width:0; }
  .cart-panel-item-name { font-size:15px; font-weight:600; color:var(--gray-800); line-height:1.3; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .cart-panel-item-price { font-size:14px; color:var(--gray-600); margin-top:1px; }
  .cart-panel-item-qty { display:flex; align-items:center; gap:6px; margin-top:4px; }
  .cart-panel-item-qty button { width:22px; height:22px; border-radius:5px; border:1px solid var(--gray-100); background:var(--gray-50); color:var(--gray-800); cursor:pointer; font-size:13.5px; line-height:1; display:flex; align-items:center; justify-content:center; }
  .cart-panel-item-qty span { font-size:14px; min-width:16px; text-align:center; }
  .cart-panel-item-remove { border:none; background:none; color:var(--gray-400); cursor:pointer; padding:3px; flex-shrink:0; }
  .cart-panel-item-remove:hover { color:var(--coral-400); }
  .cart-panel-empty { font-size:14.5px; color:var(--gray-600); text-align:center; padding:1.5rem 0; }
  .cart-panel-footer { border-top:1px solid var(--gray-100); padding-top:.85rem; margin-top:.25rem; }
  .cart-panel-total { display:flex; justify-content:space-between; font-size:16px; font-weight:700; color:var(--gray-800); margin-bottom:.7rem; }
  .cart-panel-hint { font-size:11.5px; color:var(--gray-400); text-align:center; margin-top:.6rem; line-height:1.4; }

  .checkout-overlay { position:fixed; inset:0; background:rgba(20,24,22,.45); display:flex; align-items:center; justify-content:center; padding:20px; z-index:100; opacity:0; visibility:hidden; transition:opacity .18s, visibility .18s; }
  .checkout-overlay.open { opacity:1; visibility:visible; }
  .checkout-modal { background:#fff; border-radius:var(--r-xl); box-shadow:var(--shadow-lg); width:440px; max-width:100%; max-height:90vh; overflow-y:auto; padding:1.5rem; transform:translateY(10px) scale(.98); transition:transform .18s; }
  .checkout-overlay.open .checkout-modal { transform:translateY(0) scale(1); }
  .checkout-modal-head { display:flex; align-items:center; justify-content:space-between; font-family:'Playfair Display',serif; font-size:19px; font-weight:600; color:var(--gray-800); margin-bottom:1.1rem; }
  .checkout-summary { background:var(--gray-50); border:1px solid var(--gray-100); border-radius:var(--r-md); padding:.8rem .9rem; margin-bottom:1.2rem; font-size:12.5px; color:var(--gray-600); max-height:150px; overflow-y:auto; }
  .checkout-summary-row { display:flex; justify-content:space-between; gap:8px; padding:3px 0; }
  .checkout-summary-total { display:flex; justify-content:space-between; font-weight:700; color:var(--gray-800); font-size:13.5px; padding-top:7px; margin-top:5px; border-top:1px solid var(--gray-200); }
  .co-field { display:block; font-size:12.5px; font-weight:600; color:var(--gray-800); margin-bottom:.85rem; }
  .co-field input, .co-field textarea { display:block; width:100%; margin-top:5px; font-family:'DM Sans',sans-serif; font-size:13.5px; padding:9px 12px; border:1.5px solid var(--gray-200); border-radius:var(--r-md); outline:none; color:var(--gray-800); background:#fff; transition:border-color .15s; resize:vertical; }
  .co-field input:focus, .co-field textarea:focus { border-color:var(--green-400); }
  .co-radio-row { display:flex; flex-direction:column; gap:8px; margin-bottom:.9rem; }
  .co-radio { display:flex; align-items:center; gap:8px; font-size:13px; color:var(--gray-800); cursor:pointer; }
  .co-legal { font-size:11px; color:var(--gray-400); line-height:1.5; margin-bottom:1rem; }
  .co-error { font-size:12.5px; color:var(--coral-600); margin-top:.7rem; text-align:center; }
  .co-success-icon { width:52px; height:52px; border-radius:50%; background:var(--green-50); color:var(--green-600); display:flex; align-items:center; justify-content:center; margin:0 auto 1rem; }
  #checkoutSuccessView { text-align:center; }
  #checkoutSuccessView h4 { font-family:'Playfair Display',serif; font-size:18px; font-weight:600; color:var(--gray-800); margin-bottom:.5rem; }
  #checkoutSuccessView p { font-size:13px; color:var(--gray-600); line-height:1.6; margin-bottom:1.2rem; }
  #coSubmitBtn.loading { opacity:.7; pointer-events:none; }
