/* Meditec Shop widget — layout, cards, filters, pagination */

.msg-shop { --msg-accent:#1EB0E0; --msg-btn:#1EB0E0; --msg-card-radius:10px; }
.msg-shop *, .msg-shop *::before, .msg-shop *::after { box-sizing:border-box; }

/* Layout: sidebar + main */
.msg-layout { display:flex; gap:28px; align-items:flex-start; }
.msg-sidebar { flex:0 0 250px; max-width:250px; }
.msg-main { flex:1 1 auto; min-width:0; }

@media (max-width:880px){
    .msg-layout { flex-direction:column; }
    .msg-sidebar { flex-basis:auto; max-width:none; width:100%; }
}

/* Toolbar (count + sort) */
.msg-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:18px; flex-wrap:wrap; }
.msg-count { color:#777; font-size:14px; }
.msg-sort select { padding:8px 30px 8px 12px; border:1px solid #e2e2e2; border-radius:24px; background:#fff; font-size:14px; cursor:pointer; }

/* Search */
.msg-search { position:relative; margin-bottom:22px; }
.msg-search input { width:100%; padding:12px 42px 12px 16px; border:1px solid #ececec; border-radius:8px; font-size:14px; background:#fafafa; }
.msg-search button { position:absolute; right:6px; top:50%; transform:translateY(-50%); background:none; border:none; cursor:pointer; color:#999; padding:6px; }

/* Filter blocks */
.msg-filters { }
.msg-filter-block { margin-bottom:26px; }
.msg-filters .msg-filter-block:last-child { margin-bottom:0; }
.msg-filter-block h4 { font-size:17px; font-weight:700; margin:0 0 14px; color:#222; }

/* Category tree */
.msg-cat-list { list-style:none; margin:0; padding:0; }
.msg-cat-list li { margin:0 0 9px; }
.msg-cat-list li.msg-cat--child { padding-left:16px; }
.msg-cat-label { display:flex; align-items:center; gap:8px; cursor:pointer; font-size:14px; color:#555; line-height:1.35; }
.msg-cat--parent > .msg-cat-label { font-weight:600; color:#333; }
.msg-cat-label input { accent-color:var(--msg-accent); width:15px; height:15px; flex:0 0 auto; }
.msg-cat-count { color:#aaa; font-size:12px; }
.msg-cat-toggle { background:none; border:none; color:var(--msg-accent); font-size:13px; cursor:pointer; padding:4px 0; text-decoration:underline; }

/* Accordion */
.msg-cat-accordion { }
.msg-acc-head { display:flex; align-items:center; gap:6px; }
.msg-acc-head .msg-cat-label { flex:1 1 auto; }
.msg-acc-toggle { flex:0 0 auto; background:none; border:none; cursor:pointer; color:#999; padding:4px; display:inline-flex; align-items:center; justify-content:center; border-radius:5px; transition:background .15s, color .15s; }
.msg-acc-toggle:hover { color:var(--msg-accent); background:rgba(30,176,224,.08); }
.msg-acc-toggle svg { transition:transform .2s ease; }
.msg-acc.msg-acc--open > .msg-acc-head .msg-acc-toggle svg { transform:rotate(180deg); }
.msg-acc-panel--sub { list-style:none; margin:2px 0 4px; padding-left:18px; }
.msg-cat--grandchild .msg-cat-label { font-size:13px; opacity:.9; }
.msg-acc-panel { list-style:none; margin:8px 0 4px; padding:0 0 0 8px; border-left:2px solid #eee; }
.msg-acc-panel li { margin:0 0 8px; }

/* Price filter */
.msg-price-inputs { display:flex; align-items:center; gap:8px; margin-top:12px; }
.msg-price-inputs input { width:100%; padding:8px 10px; border:1px solid #e2e2e2; border-radius:6px; font-size:13px; }
.msg-price-apply { margin-top:10px; background:var(--msg-accent); color:#fff; border:none; border-radius:6px; padding:8px 14px; font-size:13px; cursor:pointer; }

/* Grid */
.msg-grid { display:grid; grid-template-columns:repeat(var(--msg-cols,3), minmax(0,1fr)); gap:20px; }
@media (max-width:1100px){ .msg-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px){ .msg-grid { grid-template-columns:1fr; } }

/* Card */
.msg-card { background:#fff; border:1px solid #eee; border-radius:var(--msg-card-radius); overflow:hidden; display:flex; flex-direction:column; transition:box-shadow .2s ease, transform .2s ease; }
.msg-card:hover { box-shadow:0 8px 26px rgba(0,0,0,.09); transform:translateY(-2px); }
.msg-card__media { position:relative; padding:18px; background:#fff; }
.msg-card__imglink { display:block; }
.msg-card__media img { width:100%; height:190px; object-fit:contain; display:block; }
.msg-card__body { padding:6px 18px 20px; display:flex; flex-direction:column; gap:8px; flex:1 1 auto; }
.msg-card__cat { font-size:12px; color:#9a9a9a; line-height:1.3; }
.msg-card__title { font-size:16px; font-weight:600; line-height:1.35; margin:0; }
.msg-card__title a { color:#222; text-decoration:none; }
.msg-card__title a:hover { color:var(--msg-accent); }
.msg-card__price { font-size:15px; color:#333; margin-top:auto; }
.msg-card__price .msg-dash { color:#bbb; }
.msg-card__price del { color:#aaa; font-weight:400; margin-right:6px; }
.msg-card__price ins { text-decoration:none; color:#d0021b; font-weight:700; }

/* Button */
.msg-card__btn { display:inline-flex; align-items:center; gap:9px; margin-top:6px; padding:0; background:none; border:none; color:#333; font-size:13px; font-weight:600; letter-spacing:.02em; text-transform:uppercase; text-decoration:none; cursor:pointer; }
.msg-card__btn-ico { width:34px; height:34px; border-radius:50%; background:var(--msg-btn); color:#fff; display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; }
.msg-card__btn:hover { color:var(--msg-accent); }

/* Badges */
.msg-badge { position:absolute; top:12px; left:12px; z-index:2; font-size:11px; font-weight:600; letter-spacing:.04em; padding:5px 10px; border-radius:4px; text-transform:uppercase; }
.msg-badge--oos { background:#f3f3f3; color:#888; }
.msg-badge--sale { background:#5fa800; color:#fff; }

/* Wishlist */
.msg-wishlist { position:absolute; top:10px; right:10px; z-index:2; width:34px; height:34px; border-radius:50%; background:#fff; border:1px solid #eee; color:#c0c0c0; display:inline-flex; align-items:center; justify-content:center; cursor:pointer; transition:color .2s, border-color .2s; }
.msg-wishlist:hover, .msg-wishlist.is-active { color:#e53d6a; border-color:#e53d6a; }

/* Empty */
.msg-empty { padding:60px 20px; text-align:center; color:#999; font-size:15px; }

/* Pagination */
.msg-pagination { display:flex; align-items:center; justify-content:center; gap:6px; margin-top:32px; flex-wrap:wrap; }
.msg-page { min-width:38px; height:38px; padding:0 10px; display:inline-flex; align-items:center; justify-content:center; border:1px solid #e6e6e6; border-radius:8px; color:#555; text-decoration:none; font-size:14px; cursor:pointer; background:#fff; }
.msg-page:hover { border-color:var(--msg-accent); color:var(--msg-accent); }
.msg-page--active { background:var(--msg-accent); border-color:var(--msg-accent); color:#fff; }
.msg-page--dots { border:none; cursor:default; }
.msg-page--disabled { opacity:.4; pointer-events:none; }

/* Loading */
.msg-main.is-loading { position:relative; }
.msg-main.is-loading::after { content:''; position:absolute; inset:0; background:rgba(255,255,255,.6); z-index:5; }
.msg-main.is-loading .msg-grid { opacity:.5; }

/* Condition checkboxes */
.msg-condition-list { list-style:none; margin:0; padding:0; }
.msg-cond-item { margin:0 0 8px; }
.msg-cond-label { display:flex; align-items:center; gap:9px; cursor:pointer; font-size:14px; color:#4a5b66; }
.msg-cond-label input { width:16px; height:16px; margin:0; flex:0 0 auto; cursor:pointer; }
.msg-cond-label:hover { color:#2b8dc0; }

/* Filter section accordions (Preis / Zustand / Kategorie) */
.msg-facc { border-bottom:1px solid #eef1f4; }
.msg-facc-head {
  width:100%; display:flex; align-items:center; justify-content:space-between;
  background:none; border:none; padding:14px 0; cursor:pointer;
  font-size:16px; font-weight:700; color:inherit; text-align:left;
}
.msg-facc-head:hover { color:#2b8dc0; }
.msg-facc-chev { transition:transform .2s; flex:0 0 auto; }
.msg-facc.msg-facc--open > .msg-facc-head .msg-facc-chev { transform:rotate(180deg); }
.msg-facc-panel { padding:0 0 14px; }
