/* HOBBYWRLD — cart modal + mini-cart + toasts (dark, partstore structure).
   Loaded after vitrine.css so these rules win on equal specificity. */

/* ============ ADD-TO-CART MODAL ============ */
.hwcart-modal{position:fixed;inset:0;z-index:2000;display:none;}
.hwcart-modal.is-open{display:block;}
body.hwcart-noscroll{overflow:hidden;}
.hwcart-modal__overlay{position:absolute;inset:0;background:rgba(4,5,9,.72);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);}

.hwcart-modal__card{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(640px,calc(100vw - 32px));max-height:calc(100vh - 48px);display:flex;flex-direction:column;
  background:#14161d;color:#e8eaf0;border:1px solid rgba(55,208,255,.18);border-radius:16px;
  box-shadow:0 24px 70px rgba(0,0,0,.6);animation:hwcart-in .22s cubic-bezier(.2,.7,.3,1) both;overflow:hidden;
}
@keyframes hwcart-in{from{opacity:0;transform:translate(-50%,-46%) scale(.97);}to{opacity:1;transform:translate(-50%,-50%) scale(1);}}

.hwcart-modal__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 20px;border-bottom:1px solid rgba(255,255,255,.07);}
.hwcart-modal__title{font-family:'Oswald',sans-serif;font-weight:600;font-size:18px;letter-spacing:.2px;display:flex;align-items:center;gap:10px;}
.hwcart-modal__title i{color:#2ecc71;font-size:20px;}
.hwcart-modal__close{background:transparent;border:0;color:#8b909c;font-size:20px;line-height:1;width:34px;height:34px;border-radius:9px;cursor:pointer;transition:.15s;flex:none;}
.hwcart-modal__close:hover{background:rgba(255,255,255,.08);color:#fff;}

.hwcart-modal__body{padding:2px 20px;overflow:auto;flex:1 1 auto;}
.hwcart-empty{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;color:#9aa0ad;padding:28px 0;font-size:15px;}
.hwcart-empty__img{height:180px;width:auto;display:block;}

/* item row: img | name | stepper | price(FIXED width, no layout shift) | remove */
.hwcart-item{display:grid;grid-template-columns:56px minmax(0,1fr) auto 104px 32px;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.06);}
.hwcart-item:last-child{border-bottom:0;}
.hwcart-item__img{width:56px;height:56px;border-radius:10px;background:#f4f5f8;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.hwcart-item__img img{max-width:100%;max-height:100%;object-fit:contain;}
.hwcart-item__name{font-size:14px;line-height:1.35;color:#e8eaf0;text-decoration:none;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.hwcart-item__name:hover{color:#37d0ff;}
.hwcart-item__price{font-family:'Oswald',sans-serif;font-weight:600;font-size:16px;color:#fff;white-space:nowrap;text-align:right;}
.hwcart-item__remove{background:transparent;border:0;color:#7b818f;font-size:15px;width:30px;height:30px;border-radius:7px;cursor:pointer;transition:.15s;}
.hwcart-item__remove:hover{background:rgba(255,90,77,.14);color:#ff5a4d;}

/* shared qty stepper (modal) */
.hwcart-stepper{display:inline-flex;align-items:center;border:1px solid rgba(255,255,255,.14);border-radius:9px;overflow:hidden;background:rgba(255,255,255,.03);}
.hwcart-stepper__btn{background:transparent;border:0;color:#cfd3db;width:32px;height:34px;font-size:16px;line-height:1;cursor:pointer;transition:.12s;flex:none;}
.hwcart-stepper__btn:hover:not([disabled]){background:rgba(55,208,255,.16);color:#37d0ff;}
.hwcart-stepper__btn[disabled]{opacity:.35;cursor:default;}
.hwcart-stepper__val{width:38px;text-align:center;font-size:14px;font-weight:600;color:#fff;flex:none;}

.hwcart-modal__foot{border-top:1px solid rgba(255,255,255,.07);padding:16px 20px 18px;background:#101218;}
.hwcart-modal__total{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:14px;}
.hwcart-modal__total span{font-size:13px;color:#9aa0ad;text-transform:uppercase;letter-spacing:.6px;}
.hwcart-modal__total strong{font-family:'Oswald',sans-serif;font-weight:700;font-size:25px;color:#fff;white-space:nowrap;}
.hwcart-modal.is-empty .hwcart-modal__total{display:none;}
.hwcart-modal__actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;}
.hwcart-modal__continue{display:inline-flex;align-items:center;gap:8px;background:transparent;border:1px solid rgba(255,255,255,.16);color:#cfd3db;font-size:14px;font-weight:600;cursor:pointer;padding:12px 18px;border-radius:11px;transition:.15s;white-space:nowrap;}
.hwcart-modal__continue:hover{border-color:rgba(55,208,255,.5);color:#fff;background:rgba(255,255,255,.04);}
.hwcart-modal__checkout{display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#37d0ff,#7b5cff);color:#fff;font-family:'Oswald',sans-serif;font-weight:600;font-size:14px;letter-spacing:.3px;text-transform:uppercase;padding:13px 26px;border-radius:11px;text-decoration:none;box-shadow:0 8px 22px rgba(55,208,255,.22);transition:.18s;white-space:nowrap;}
.hwcart-modal__checkout:hover{filter:brightness(1.07);transform:translateY(-1px);color:#fff;box-shadow:0 12px 28px rgba(55,208,255,.32);}
.hwcart-modal.is-empty .hwcart-modal__checkout{opacity:.4;pointer-events:none;}

@media(max-width:575px){
  .hwcart-modal__card{left:0;top:auto;bottom:0;transform:none;width:100%;max-height:90vh;border-radius:18px 18px 0 0;border-bottom:0;animation:hwcart-sheet .26s cubic-bezier(.2,.7,.3,1) both;}
  @keyframes hwcart-sheet{from{transform:translateY(100%);}to{transform:translateY(0);}}
  .hwcart-item{grid-template-columns:46px minmax(0,1fr) auto;gap:10px 12px;}
  .hwcart-item__price{grid-column:2 / 4;text-align:left;font-size:15px;}
  .hwcart-item__remove{position:absolute;right:0;}
  .hwcart-item{position:relative;padding-right:30px;}
  .hwcart-modal__actions{flex-direction:column-reverse;align-items:stretch;}
  .hwcart-modal__continue{justify-content:center;}
  .hwcart-modal__checkout{padding:14px;}
}

/* ============ MINI-CART DROPDOWN (#cart) — same functionality as modal ============ */
.hwmini{position:relative;}
.hwmini__toggle{background:#14161d !important;color:#e8eaf0 !important;border:1px solid rgba(255,255,255,.12) !important;border-radius:11px;font-weight:600;padding:11px 16px;}
.hwmini__toggle:hover{border-color:rgba(55,208,255,.4) !important;color:#fff !important;}
.hwmini__toggle i{color:#37d0ff;margin-right:6px;}
.hwmini__panel{width:min(400px,calc(100vw - 24px));background:#14161d;border:1px solid rgba(55,208,255,.16);border-radius:14px;box-shadow:0 20px 50px rgba(0,0,0,.55);padding:8px;color:#e8eaf0;}
.hwmini__items{max-height:360px;overflow:auto;}
.hwmini-item{display:grid;grid-template-columns:48px minmax(0,1fr) 24px;align-items:start;gap:11px;padding:11px 4px;border-bottom:1px solid rgba(255,255,255,.06);}
.hwmini-item:last-child{border-bottom:0;}
.hwmini-item__img{width:48px;height:48px;border-radius:8px;background:#f4f5f8;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.hwmini-item__img img{max-width:100%;max-height:100%;object-fit:contain;}
.hwmini-item__main{min-width:0;}
.hwmini-item__name{display:block;font-size:13px;line-height:1.3;color:#e8eaf0;text-decoration:none;-webkit-line-clamp:2;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;}
.hwmini-item__name:hover{color:#37d0ff;}
.hwmini-item__opt{font-size:11px;color:#8b909c;}
.hwmini-item__ctl{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;}
.hwmini-stepper{display:inline-flex;align-items:center;border:1px solid rgba(255,255,255,.14);border-radius:8px;overflow:hidden;background:rgba(255,255,255,.03);flex:none;}
.hwmini-stepper__btn{background:transparent;border:0;color:#cfd3db;width:28px;height:28px;font-size:15px;line-height:1;cursor:pointer;transition:.12s;flex:none;}
.hwmini-stepper__btn:hover:not([disabled]){background:rgba(55,208,255,.16);color:#37d0ff;}
.hwmini-stepper__btn[disabled]{opacity:.35;cursor:default;}
.hwmini-stepper__val{width:32px;text-align:center;font-size:13px;font-weight:600;color:#fff;flex:none;}
.hwmini-item__price{font-family:'Oswald',sans-serif;font-weight:600;font-size:14px;color:#fff;white-space:nowrap;text-align:right;}
.hwmini-item__remove{background:transparent;border:0;color:#7b818f;font-size:14px;width:24px;height:24px;border-radius:6px;cursor:pointer;transition:.15s;}
.hwmini-item__remove:hover{background:rgba(255,90,77,.14);color:#ff5a4d;}
.hwmini__total{display:flex;align-items:baseline;justify-content:space-between;padding:12px 6px 10px;border-top:1px solid rgba(255,255,255,.08);margin-top:6px;}
.hwmini__total span{font-size:12px;color:#9aa0ad;text-transform:uppercase;letter-spacing:.5px;}
.hwmini__total strong{font-family:'Oswald',sans-serif;font-weight:700;font-size:19px;color:#fff;white-space:nowrap;}
.hwmini__actions{display:flex;gap:10px;align-items:stretch;padding:6px 6px 8px;}
.hwmini__cartlink{flex:0 1 auto;min-width:0;display:inline-flex;align-items:center;justify-content:center;gap:7px;background:transparent;border:1px solid rgba(255,255,255,.16);color:#cfd3db;font-size:13px;font-weight:600;line-height:1.2;text-decoration:none;padding:12px 14px;border-radius:11px;transition:.15s;white-space:nowrap;}
.hwmini__cartlink:hover{border-color:rgba(55,208,255,.5);color:#fff;background:rgba(255,255,255,.04);text-decoration:none !important;}
.hwmini__checkout{flex:1 1 auto;min-width:0;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#37d0ff,#7b5cff);color:#fff !important;font-family:'Oswald',sans-serif;font-weight:600;font-size:13px;line-height:1.2;letter-spacing:.3px;text-transform:uppercase;padding:13px 14px;border-radius:11px;text-decoration:none;box-shadow:0 8px 22px rgba(55,208,255,.22);transition:.18s;white-space:nowrap;}
.hwmini__checkout:hover{filter:brightness(1.07);transform:translateY(-1px);color:#fff !important;box-shadow:0 12px 28px rgba(55,208,255,.32);text-decoration:none !important;}
.hwmini__empty{display:flex;flex-direction:column;align-items:center;gap:10px;padding:24px 10px;color:#8b909c;font-size:14px;}
.hwmini__empty-img{height:150px;width:auto;display:block;}

/* ============ TOAST NOTIFICATIONS (#alert) ============ */
#alert{position:fixed;top:84px;right:18px;left:auto;margin:0;z-index:2100;width:min(360px,calc(100vw - 28px));max-width:calc(100vw - 28px);box-sizing:border-box;display:flex;flex-direction:column;gap:12px;pointer-events:none;}
#alert .alert{
  pointer-events:auto;position:relative;margin:0;width:100%;max-width:100%;box-sizing:border-box;
  overflow-wrap:break-word;
  background:rgba(16,18,25,.55);
  -webkit-backdrop-filter:blur(20px) saturate(1.5);backdrop-filter:blur(20px) saturate(1.5);
  color:#eef0f5;
  border:1px solid rgba(255,255,255,.12);
  border-radius:14px;
  padding:14px 40px 14px 54px;
  font-family:'Manrope',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  font-size:13px;font-weight:600;line-height:1.45;letter-spacing:.2px;
  box-shadow:0 18px 44px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.07);
  animation:hw-toast-in .32s cubic-bezier(.2,.7,.3,1) both;
}
/* leading FontAwesome glyph becomes a circular status badge, top-left */
#alert .alert > i:first-child{
  position:absolute;left:12px;top:13px;
  width:30px;height:30px;margin:0;border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-size:13px;
}
#alert .alert-success{border-color:rgba(46,204,113,.32);box-shadow:0 18px 44px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.07),0 0 0 1px rgba(46,204,113,.12);}
#alert .alert-success > i:first-child{background:#2ecc71;color:#06250f;}
#alert .alert-danger{border-color:rgba(255,90,77,.34);box-shadow:0 18px 44px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.07),0 0 0 1px rgba(255,90,77,.12);}
#alert .alert-danger > i:first-child{background:#ff5a4d;color:#2a0805;}
#alert .alert a{color:#37d0ff;font-weight:700;text-decoration:none;}
#alert .alert a:hover{text-decoration:underline;}
#alert .alert .btn-close{position:absolute;top:50%;right:10px;transform:translateY(-50%);filter:invert(1) grayscale(1);opacity:.55;padding:6px;}
#alert .alert .btn-close:hover{opacity:1;}
@keyframes hw-toast-in{from{opacity:0;transform:translateX(24px);}to{opacity:1;transform:translateX(0);}}
.hw-toast-out{animation:hw-toast-out .3s ease forwards !important;}
@keyframes hw-toast-out{to{opacity:0;transform:translateX(24px);}}
@media(max-width:575px){
  #alert{display:block;top:auto;bottom:74px;left:8px;right:8px;width:auto;max-width:none;}
  #alert .alert{margin-bottom:10px;}
}
