/* ==========================================================================
   Hippe Zeeuw · side cart (slide-in drawer)
   Z-index bewust de hoogste in de stack: boven header (60), zoek-overlay (90),
   scrim (110) en de mobile-nav drawer (120).
   Los ingeladen na mobile-fixes.css, zodat niets hem kan overschrijven.
   ========================================================================== */

.hz-sidecart{
  position:fixed;
  inset:0 0 0 auto;
  width:min(92vw,428px);
  background:var(--paper);
  z-index:var(--z-cart, 140);
  transform:translateX(100%);
  transition:transform .5s var(--ease);
  display:flex;
  flex-direction:column;
  box-shadow:-30px 0 80px -40px rgba(34,31,27,.5);
}
.hz-sidecart.is-open{ transform:none; }

.hz-sidecart__scrim{
  position:fixed;
  inset:0;
  background:rgba(34,31,27,.42);
  backdrop-filter:blur(2px);
  z-index:calc(var(--z-cart, 140) - 1);
  opacity:0;
  visibility:hidden;
  transition:opacity .45s var(--ease), visibility .45s;
  border:0;
  width:100%;
  cursor:default;
}
.hz-sidecart__scrim.is-open{ opacity:1; visibility:visible; }

.hz-sidecart__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:22px 24px;
  border-bottom:1px solid var(--line);
  flex:none;
}
.hz-sidecart__head h2{
  font-family:var(--ff-sans);
  font-size:.6875rem;
  font-weight:600;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.hz-sidecart__close{
  width:38px; height:38px;
  display:grid;
  place-items:center;
  border-radius:50%;
  transition:background .25s var(--ease);
}
.hz-sidecart__close:hover{ background:var(--paper-2); }
.hz-sidecart__close svg{ width:17px; height:17px; stroke:var(--ink); stroke-width:1.5; fill:none; }

.hz-sidecart__body{
  flex:1 1 auto;
  overflow-y:auto;
  padding:20px 24px;
}
.hz-sidecart__body.is-busy{ opacity:.5; pointer-events:none; }

.hz-sidecart__empty{
  text-align:center;
  padding:44px 0;
  color:var(--ink-3);
}
.hz-sidecart__empty p{ font-size:.9375rem; margin-bottom:22px; }

.hz-sc-item{
  display:grid;
  grid-template-columns:78px minmax(0,1fr) auto;
  gap:0 14px;
  padding:16px 0;
  border-bottom:1px solid var(--line-2);
}
.hz-sc-item__media{ grid-row:1 / span 3; }
.hz-sc-item__media img{ width:78px; height:104px; object-fit:cover; background:var(--paper-2); }
.hz-sc-item__name{
  font-family:var(--ff-display);
  font-size:1.1rem;
  line-height:1.2;
  margin:0;
}
.hz-sc-item__meta{
  font-size:.75rem;
  color:var(--ink-3);
  letter-spacing:.04em;
  margin-top:3px;
}
.hz-sc-item__meta p{ margin:0; }
.hz-sc-item__price{ font-size:.9375rem; font-weight:600; margin-top:6px; align-self:end; }
.hz-sc-item__remove{
  grid-column:3;
  grid-row:1;
  width:26px; height:26px;
  display:grid;
  place-items:center;
  border-radius:50%;
  color:var(--ink-3);
  font-size:1.05rem;
  line-height:1;
  transition:background .2s var(--ease), color .2s var(--ease);
}
.hz-sc-item__remove:hover{ background:var(--brick); color:#fff; }
.hz-sc-item__qty{
  grid-column:3;
  grid-row:3;
  align-self:end;
  display:inline-flex;
  align-items:center;
  border:1px solid var(--line);
  border-radius:999px;
  overflow:hidden;
}
.hz-sc-item__qty button{
  width:30px; height:32px;
  display:grid;
  place-items:center;
  color:var(--ink-2);
  font-size:.95rem;
  line-height:1;
  transition:background .2s var(--ease);
}
.hz-sc-item__qty button:hover{ background:var(--paper-2); }
.hz-sc-item__qty span{ min-width:26px; text-align:center; font-size:.875rem; }

.hz-sidecart__foot{
  flex:none;
  border-top:1px solid var(--line);
  padding:20px 24px calc(20px + env(safe-area-inset-bottom));
  background:var(--paper-2);
}
.hz-sidecart__totals{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:14px;
  margin-bottom:6px;
  font-size:.9375rem;
}
.hz-sidecart__totals b{ font-size:1.25rem; font-weight:600; }
.hz-sidecart__note{ font-size:.75rem; color:var(--ink-3); margin-bottom:16px; }
.hz-sidecart__actions{ display:grid; gap:9px; }
.hz-sidecart__actions .btn{ min-width:100%; }

/* foutmelding uit het eigen AJAX-endpoint */
.hz-sidecart__error{
  background:rgba(158,59,42,.08);
  border-left:2px solid var(--brick);
  color:var(--brick);
  font-size:.875rem;
  padding:12px 14px;
  margin-bottom:16px;
}

/* gratis-verzendbalk */
.hz-ship-bar{ margin-bottom:16px; }
.hz-ship-bar__txt{ font-size:.75rem; color:var(--ink-2); margin-bottom:8px; }
.hz-ship-bar__rail{
  height:3px;
  background:var(--paper-3);
  border-radius:999px;
  overflow:hidden;
}
.hz-ship-bar__fill{
  height:100%;
  background:var(--stone);
  border-radius:999px;
  transition:width .6s var(--ease);
}
