/* Anfrage-Warenkorb – ergänzt den bestehenden HTML/CSS/JavaScript-Shop */
.request-add-button {
  width: 100%;
  margin-top: 16px;
  padding: 12px 16px;
  border: 0;
  border-radius: 12px;
  background: #102f5c;
  color: #fff;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
  transition: background .2s ease, transform .2s ease;
}
.request-add-button:hover { background: #174783; transform: translateY(-1px); }
.request-cart-trigger {
  position: fixed;
  z-index: 1000;
  right: 24px;
  bottom: 24px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 20px;
  border: 0;
  border-radius: 999px;
  background: #102f5c;
  color: white;
  box-shadow: 0 8px 28px #102f5c40;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.request-cart-trigger:hover { background: #174783; }
.request-cart-count {
  min-width: 25px;
  height: 25px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: white;
  color: #102f5c;
  font-size: 13px;
}
.request-cart-dialog {
  width: min(620px, calc(100vw - 24px));
  max-height: min(760px, calc(100dvh - 24px));
  padding: 0;
  border: 0;
  border-radius: 20px;
  color: #1a2433;
  box-shadow: 0 24px 80px #102f5c40;
  overflow-y: auto;
  overscroll-behavior: contain;
}
.request-cart-dialog::backdrop { background: #101b2c99; backdrop-filter: blur(3px); }
.request-cart-inner { padding: 26px; }
.request-cart-header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:18px; }
.request-cart-header h2 { margin:0 0 6px; font-size:1.55rem; }
.request-cart-header p { margin:0; color:#647184; }
.request-cart-close { border:0; background:transparent; color:#526071; font-size:28px; line-height:1; cursor:pointer; }
.request-cart-empty { padding:24px 12px; text-align:center; color:#647184; }
.request-cart-items { display:grid; gap:12px; max-height:42vh; overflow:auto; padding:2px; }
.request-cart-item { display:grid; grid-template-columns:minmax(0,1fr) 92px 34px; gap:12px; align-items:start; padding:14px; border:1px solid #e4e9f0; border-radius:14px; }
.request-cart-item strong { display:block; margin-bottom:8px; }
.request-cart-item label { display:grid; gap:5px; color:#566477; font-size:13px; }
.request-cart-item input { width:100%; min-height:40px; padding:8px 10px; border:1px solid #cfd7e2; border-radius:8px; color:#1a2433; font:inherit; }
.request-cart-remove { border:0; background:transparent; color:#a33d3d; font-size:20px; cursor:pointer; }
.request-cart-contact { display:grid; gap:12px; margin-top:18px; }
.request-cart-contact label { display:grid; gap:6px; font-weight:600; }
.request-cart-contact input { width:100%; min-height:44px; padding:10px 12px; border:1px solid #cfd7e2; border-radius:9px; font:inherit; }
.request-cart-send { min-height:48px; padding:12px 18px; border:0; border-radius:10px; background:#168447; color:white; font:inherit; font-weight:700; cursor:pointer; }
.request-cart-send:hover { background:#116c39; }
.request-cart-note { margin:0; color:#647184; font-size:13px; line-height:1.5; }
@media (max-width:600px) {
  .request-cart-trigger {
    left: auto;
    right: 10px;
    right: max(10px, env(safe-area-inset-right, 0px));
    bottom: 10px;
    bottom: max(10px, env(safe-area-inset-bottom, 0px));
    width: auto;
    max-width: calc(100vw - 20px);
    box-sizing: border-box;
    gap:7px;
    padding:10px 12px;
    font-size:13px;
    white-space:nowrap;
  }
  .request-cart-dialog {
    width:calc(100vw - 20px);
    max-height:calc(100dvh - 20px);
    border-radius:16px;
  }
  .request-cart-inner { padding:16px; }
  .request-cart-header { gap:10px; margin-bottom:12px; }
  .request-cart-header h2 { font-size:1.2rem; }
  .request-cart-header p { font-size:13px; }
  .request-cart-empty { padding:16px 8px; }
  .request-cart-items { max-height:30dvh; }
  .request-cart-contact { gap:9px; margin-top:12px; }
  .request-cart-contact input { min-height:40px; padding:8px 10px; }
  .request-cart-send { min-height:44px; padding:10px 12px; }
  .request-cart-note { font-size:12px; }
  .request-cart-item { grid-template-columns:minmax(0,1fr) 76px 28px; gap:8px; padding:11px; }
}
/* Suchleiste für Produktkatalog */
.shop-search-tools {
  width: min(100%, 660px);
  margin: 4px auto 8px;
  text-align: left;
}
.shop-search-label {
  display: block;
  margin-bottom: 8px;
  color: var(--primary);
  font-weight: 700;
}
.shop-search-row { display: flex; gap: 10px; }
.shop-search-row input {
  flex: 1;
  min-width: 0;
  min-height: 50px;
  padding: 12px 16px;
  border: 1px solid #d7dee7;
  border-radius: 12px;
  background: #fff;
  color: #1a2433;
  font: inherit;
  box-shadow: 0 4px 16px rgba(16,47,92,.06);
}
.shop-search-row input:focus { outline: 3px solid rgba(47,91,80,.2); border-color: var(--primary); }
.shop-search-row button {
  min-width: 82px;
  padding: 10px 14px;
  border: 1px solid #d7dee7;
  border-radius: 12px;
  background: #fff;
  color: var(--primary);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.shop-search-row button:hover { background: #eef7f3; }
.shop-search-status { min-height: 20px; margin: 8px 2px 0; color: #647184; font-size: 14px; }
.shop-search-no-results { margin: 0 auto 30px; padding: 24px; border-radius: 14px; background: #f6f8fa; color: #526071; text-align: center; }
.product-card[hidden] { display: none !important; }
@media (max-width: 520px) {
  .shop-search-row { gap: 7px; }
  .shop-search-row input { min-height: 46px; padding: 10px 12px; }
  .shop-search-row button { min-width: 70px; padding: 8px 10px; }
}
/* Mobile: keep the cart button inside the visible screen, below the fixed header. */
@media (max-width: 900px) {
  body > .request-cart-trigger {
    position: fixed !important;
    top: 84px !important;
    right: 8px !important;
    right: max(8px, env(safe-area-inset-right, 0px)) !important;
    bottom: auto !important;
    left: auto !important;
    z-index: 2147483000 !important;
    display: flex !important;
    width: auto !important;
    max-width: calc(100vw - 16px) !important;
    box-sizing: border-box !important;
    transform: none !important;
    visibility: visible !important;
    opacity: 1 !important;
    white-space: nowrap;
  }
}



