/* Change Bookstore – lokal widget. Neutrala variabler så Astra Pro-temat kan styra. */
.cbw-root {
  --cbw-navy: #131a2e;
  --cbw-orange: #f5a623;
  --cbw-red: #e03024;
  --cbw-border: #e3e6ec;
  --cbw-muted: #6b7280;
  --cbw-bg: #ffffff;
  color: var(--cbw-navy);
  font-size: 16px;
  line-height: 1.5;
}

.cbw-root *,
.cbw-root *::before,
.cbw-root *::after {
  box-sizing: border-box;
}

.cbw-loading,
.cbw-empty {
  padding: 32px 0;
  color: var(--cbw-muted);
}

.cbw-header {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--cbw-border);
}

.cbw-logo {
  height: 48px;
  width: auto;
  cursor: pointer;
}

.cbw-search {
  display: flex;
  flex: 1 1 320px;
  gap: 8px;
}

.cbw-search__input {
  flex: 1;
  height: 48px;
  padding: 0 16px;
  border: 1px solid var(--cbw-border);
  border-radius: 10px;
  font-size: 16px;
  background: var(--cbw-bg);
  color: inherit;
}

.cbw-search__input:focus {
  outline: none;
  border-color: var(--cbw-orange);
  box-shadow: 0 0 0 4px rgba(245, 166, 35, 0.2);
}

.cbw-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 44px;
  padding: 0 18px;
  border-radius: 10px;
  border: 1px solid transparent;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  transition: opacity 0.15s ease;
}

.cbw-btn:hover { opacity: 0.9; }

.cbw-btn--primary,
.cbw-btn--buy {
  background: var(--cbw-navy);
  color: #fff;
}

.cbw-btn--buy {
  background: var(--cbw-orange);
  color: var(--cbw-navy);
  width: 100%;
}

.cbw-btn--ghost {
  background: transparent;
  border-color: var(--cbw-border);
  color: var(--cbw-navy);
}

.cbw-btn.is-disabled,
.cbw-btn:disabled {
  background: #edeff3;
  color: var(--cbw-muted);
  cursor: not-allowed;
  opacity: 1;
}

.cbw-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
  padding: 18px 0;
}

.cbw-chips { display: flex; flex-wrap: wrap; gap: 8px; }

.cbw-chip {
  border: 1px solid var(--cbw-border);
  background: #fff;
  border-radius: 999px;
  padding: 7px 14px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  color: var(--cbw-navy);
}

.cbw-chip.is-active {
  background: var(--cbw-navy);
  color: #fff;
  border-color: var(--cbw-navy);
}

.cbw-tools { display: flex; align-items: center; gap: 12px; }
.cbw-count { color: var(--cbw-muted); font-size: 14px; }

.cbw-select {
  height: 40px;
  border: 1px solid var(--cbw-border);
  border-radius: 8px;
  padding: 0 10px;
  background: #fff;
  color: inherit;
}

.cbw-list { display: flex; flex-direction: column; }

.cbw-row {
  display: grid;
  grid-template-columns: 130px 1fr 190px;
  gap: 20px;
  padding: 22px 0;
  border-top: 1px solid var(--cbw-border);
}

.cbw-row__cover {
  position: relative;
  border: 0;
  background: none;
  padding: 0;
  cursor: pointer;
}

.cbw-row__cover img,
.cbw-product__media img {
  width: 100%;
  height: auto;
  border-radius: 6px;
  box-shadow: 0 6px 20px rgba(19, 26, 46, 0.12);
}

.cbw-badge {
  position: absolute;
  top: 8px;
  left: 8px;
  background: var(--cbw-red);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  border-radius: 6px;
  padding: 3px 7px;
}

.cbw-row__title {
  border: 0;
  background: none;
  padding: 0;
  font-size: 19px;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
  color: var(--cbw-navy);
}

.cbw-row__title:hover { color: var(--cbw-red); }
.cbw-row__authors { margin: 4px 0; color: var(--cbw-muted); }
.cbw-row__meta,
.cbw-row__text { margin: 6px 0 0; font-size: 14px; color: var(--cbw-muted); }

.cbw-row__side {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
  text-align: right;
}

.cbw-price { font-size: 22px; font-weight: 800; }
.cbw-price--lg { font-size: 30px; }
.cbw-price__old { text-decoration: line-through; color: var(--cbw-muted); font-size: 14px; }

.cbw-stock { font-size: 13px; font-weight: 600; margin: 0; }
.cbw-stock--ok { color: #1a7f43; }
.cbw-stock--low { color: #b26a00; }
.cbw-stock--out { color: var(--cbw-red); }

.cbw-stars { display: inline-flex; gap: 2px; align-items: center; font-size: 14px; }
.cbw-star { color: #d3d7de; }
.cbw-star.is-on { color: var(--cbw-orange); }
.cbw-stars__count { color: var(--cbw-muted); margin-left: 4px; font-size: 13px; }

.cbw-pager {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding: 24px 0;
  border-top: 1px solid var(--cbw-border);
}

.cbw-pager__label { color: var(--cbw-muted); font-size: 14px; }

.cbw-crumbs { display: flex; gap: 8px; align-items: center; padding: 16px 0; font-size: 14px; }
.cbw-crumbs__link { border: 0; background: none; padding: 0; cursor: pointer; color: var(--cbw-red); font-weight: 600; }
.cbw-crumbs__sep, .cbw-crumbs__current { color: var(--cbw-muted); }

.cbw-product { display: grid; grid-template-columns: 300px 1fr; gap: 36px; padding-bottom: 32px; }
.cbw-product__media { position: relative; }
.cbw-product__title { margin: 0; font-size: 30px; line-height: 1.2; }
.cbw-product__authors { margin: 6px 0; color: var(--cbw-muted); }
.cbw-product__price { display: flex; align-items: baseline; gap: 12px; margin: 16px 0 8px; }
.cbw-product__actions { display: flex; gap: 12px; margin: 16px 0 8px; max-width: 420px; }
.cbw-h2 { font-size: 19px; margin: 26px 0 10px; }

.cbw-clamp {
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 5;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.cbw-clamp.is-open { display: block; overflow: visible; }

.cbw-linkbtn {
  border: 0;
  background: none;
  padding: 6px 0 0;
  color: var(--cbw-red);
  font-weight: 600;
  cursor: pointer;
}

.cbw-info { margin: 0; }
.cbw-info__row { display: grid; grid-template-columns: 180px 1fr; padding: 8px 0; border-top: 1px solid var(--cbw-border); }
.cbw-info__label { color: var(--cbw-muted); font-size: 14px; }
.cbw-info__value { margin: 0; font-size: 14px; }

.cbw-toasts {
  position: fixed;
  right: 20px;
  bottom: 20px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  z-index: 99999;
}

.cbw-toast {
  background: #131a2e;
  color: #fff;
  padding: 12px 16px;
  border-radius: 10px;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.2);
  font-size: 14px;
  max-width: 320px;
  transition: opacity 0.3s ease, transform 0.3s ease;
}

.cbw-toast--success { background: #1a7f43; }
.cbw-toast--error { background: #b3241b; }
.cbw-toast--info { background: #2c3a5c; }
.cbw-toast.is-out { opacity: 0; transform: translateY(8px); }

@media (max-width: 860px) {
  .cbw-row { grid-template-columns: 96px 1fr; }
  .cbw-row__side { grid-column: 1 / -1; align-items: flex-start; text-align: left; }
  .cbw-btn--buy { width: auto; padding: 0 24px; }
  .cbw-product { grid-template-columns: 1fr; gap: 20px; }
  .cbw-product__media { max-width: 220px; }
  .cbw-info__row { grid-template-columns: 1fr; }
}

/* Edition selection and series */
.cbw-editions {margin:18px 0;padding:16px;background:#f6f5f2;border-radius:10px;}
.cbw-edition {display:block;width:100%;text-align:left;margin:8px 0;padding:12px;border:1px solid #d5d3cc;border-radius:6px;background:#fff;color:#222;cursor:pointer;font:inherit;}
.cbw-edition.is-active {border:2px solid #173c38;background:#edf5f2;}
.cbw-edition:focus-visible,.cbw-linkbtn:focus-visible {outline:3px solid #b6752b;outline-offset:3px;}
.cbw-series {margin-top:32px;padding-top:24px;border-top:1px solid #ddd;}
.cbw-series-note {color:#555;}
.cbw-row__side .cbw-linkbtn {text-align:right;margin:8px 0;}
@media(max-width:600px){.cbw-row__side .cbw-linkbtn{text-align:left;}}
