/* ============ ARGems · Shopping Cart ============ */
/* Shares the Orders / Notifications / Product-Detail design system
   (tokens, buttons, cards, inputs, badges) for full cross-page continuity. */
:root{
  --blue:#1f59cf;
  --blue-d:#1b4fbd;
  --blue-dd:#143a93;
  --navy:#16327d;
  --navy-d:#102661;
  --slate:#5b6b86;
  --bg:var(--ar-page-bg, var(--ar-page-bg-cart, #eef2f8));
  --card:#ffffff;
  --border:#e5ebf3;
  --border-2:#dde6f1;
  --text:#26344f;
  --title:#16244a;
  --muted:#667794;
  --muted-2:#8d9bb3;
  --green:#1a8a4f;  --green-bg:#e6f6ec;
  --amber:#e2700d;  --amber-bg:#fdeede;
  --red:#d6453a;    --red-bg:#fdeceb;
  --blue-bg:#e8effb;
  --gold:#c79a3a;
  --shadow:0 1px 2px rgba(16,40,80,.04), 0 1px 3px rgba(16,40,80,.05);
  --shadow-card:0 1px 2px rgba(16,40,80,.04), 0 1px 3px rgba(16,40,80,.05);
  --shadow-pop:0 14px 40px rgba(16,40,80,.14), 0 2px 8px rgba(16,40,80,.08);
  --line:#eef2f7;
  --radius:14px;
  --radius-sm:10px;
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  background:var(--bg);
  color:var(--text);
  font-size:14px;
  line-height:1.45;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  min-height:100vh;
}
input,select,button,textarea{font-family:inherit;}
a{text-decoration:none;color:inherit;}

.page{max-width:1200px;margin:0 auto;padding:22px 24px 56px;}

/* ===== Header ===== */
.head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:16px;}
.head h1{margin:0;font-size:30px;font-weight:800;letter-spacing:-.025em;color:var(--title);line-height:1.05;}
.head-sub{margin:8px 0 0;color:var(--muted);font-size:14px;max-width:560px;}
.cart-inline-error{margin:0 0 16px;border:1px solid #f4c7c3;border-radius:10px;background:#fff2f1;color:#a62b25;font-weight:700;box-shadow:var(--shadow);}
.cart-inline-error[hidden]{display:none;}

/* ===== Buttons ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;cursor:pointer;
  font-size:13.5px;font-weight:600;padding:9px 15px;border-radius:10px;transition:.13s;white-space:nowrap;}
.btn svg{width:16px;height:16px;flex:0 0 16px;}
.btn-ghost{background:#fff;color:var(--blue-dd);border:1px solid var(--border-2);box-shadow:var(--shadow);}
.btn-ghost:hover{background:#f6f9fd;border-color:#c6d6e9;}
.btn-primary{background:var(--blue);color:#fff;box-shadow:0 4px 14px rgba(31,79,209,.28);}
.btn-primary:hover{background:var(--blue-d);}
.btn-lg{padding:13px 18px;font-size:15px;border-radius:12px;width:100%;}
.btn-lg svg{width:18px;height:18px;flex:0 0 18px;}
.btn-soft{background:#fff;color:var(--text);border:1px solid var(--border-2);box-shadow:var(--shadow);}
.btn-soft:hover{background:#f6f9fd;border-color:#c6d6e9;color:var(--blue-dd);}

.link{display:inline-flex;align-items:center;gap:6px;background:none;border:none;cursor:pointer;
  color:var(--blue);font-size:13px;font-weight:700;padding:0;transition:.12s;}
.link:hover{color:var(--blue-dd);}
.link svg{width:14px;height:14px;}

/* ===== Layout grid ===== */
.cart-grid{display:grid;grid-template-columns:1fr 348px;gap:20px;align-items:start;}
.col-main{display:flex;flex-direction:column;gap:20px;min-width:0;}
.col-side{display:flex;flex-direction:column;gap:20px;position:sticky;top:20px;}

/* ===== Card shell ===== */
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);
  box-shadow:var(--shadow-card);}

/* group header */
.group-head{display:flex;align-items:center;gap:12px;padding:18px 20px;}
.group-ic{width:34px;height:34px;flex:0 0 34px;border-radius:10px;display:grid;place-items:center;}
.group-ic svg{width:20px;height:20px;}
.ic-blue{background:var(--blue-bg);color:var(--blue);}
.ic-gem{background:#e9f0fd;color:#2960d6;}
.ic-gold{background:#f6efe1;color:#a07a2e;}
.ic-green{background:var(--green-bg);color:var(--green);}
.group-head h2{margin:0;font-size:17px;font-weight:800;color:var(--title);letter-spacing:-.01em;}
.count-pill{font-size:12px;font-weight:700;color:var(--muted);background:#eef2f8;border:1px solid #e1e8f1;
  border-radius:20px;padding:4px 10px;}
.cur-toggle{margin-left:auto;display:inline-flex;align-items:center;gap:6px;cursor:pointer;
  font-size:12.5px;font-weight:700;color:var(--blue);background:var(--blue-bg);
  border:1px solid var(--blue-border,#cfe0fb);border-radius:9px;padding:7px 12px;transition:background .15s,border-color .15s;}
.cur-toggle svg{width:14px;height:14px;}
.cur-toggle:hover{background:#dbe8fd;}
.cur-toggle.is-active{background:var(--blue);border-color:var(--blue);color:#fff;}

/* ===== Item table ===== */
.titem-head{display:grid;grid-template-columns:1fr 130px 132px 120px 96px;gap:10px;align-items:center;
  padding:9px 20px;background:#fafbfd;border-top:1px solid var(--border);border-bottom:1px solid var(--border);}
.titem-head span{font-size:10px;font-weight:700;letter-spacing:.06em;color:var(--muted-2);text-transform:uppercase;}
.titem-head .th-price,.titem-head .th-sub{text-align:left;}
.titem-head .th-qty{text-align:left;}

.titem{display:grid;grid-template-columns:1fr 130px 132px 120px 96px;gap:10px;align-items:center;
  padding:16px 20px;border-bottom:1px solid var(--line);position:relative;transition:.15s;}
.titem:last-child{border-bottom:none;}
.titem.removing{opacity:0;transform:translateX(-12px);}

.prod{display:flex;align-items:center;gap:14px;min-width:0;}
.thumb{width:62px;height:62px;flex:0 0 62px;border-radius:12px;overflow:hidden;border:1px solid #e7edf4;
  background:#f4f7fb;display:grid;place-items:center;}
.thumb svg,.thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.prod-meta{min-width:0;}
.prod-name{font-size:14.5px;font-weight:700;color:var(--title);line-height:1.3;}
.prod-sku{font-size:12px;color:var(--muted-2);margin-top:4px;font-variant-numeric:tabular-nums;}
.prod-variant{font-size:12px;color:var(--muted);margin-top:2px;}

.unit{font-size:14px;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums;}

/* Quantity stepper */
.qty{display:inline-flex;align-items:center;border:1px solid var(--border-2);border-radius:10px;overflow:hidden;
  background:#fff;height:38px;min-height:38px;justify-self:start;font-variant-numeric:tabular-nums;}
.qty button{width:36px;min-width:36px;height:100%;margin:0;padding:0;border:none;border-radius:0;background:#fff;
  cursor:pointer;color:var(--muted);display:grid;place-items:center;transition:.12s;line-height:1;
  appearance:none;-webkit-appearance:none;box-shadow:none;}
.qty button:hover{background:#f1f5fc;color:var(--blue);}
.qty button svg{width:16px;height:16px;display:block;}
.qty input{width:40px;min-width:40px;height:100%;margin:0;padding:0;border:none;border-left:1px solid var(--line);
  border-right:1px solid var(--line);background:#fff;text-align:center;font-size:14px;font-weight:700;line-height:38px;
  color:#16244a!important;-webkit-text-fill-color:#16244a!important;caret-color:#16244a;outline:none;display:block;
  opacity:1!important;font-variant-numeric:tabular-nums;text-shadow:none!important;filter:none!important;
  -moz-appearance:textfield;appearance:textfield;-webkit-appearance:none;box-shadow:none;}
.qty input:focus,.qty input:active,.qty input[readonly],.qty input:disabled{color:#16244a!important;-webkit-text-fill-color:#16244a!important;background:#fff;opacity:1!important;}
.qty input::selection{background:#dbe8fd;color:#16244a;-webkit-text-fill-color:#16244a;}
.qty input::-webkit-outer-spin-button,.qty input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}

.subtot{font-size:14.5px;font-weight:700;color:var(--title);font-variant-numeric:tabular-nums;}

.row-tools{display:flex;flex-direction:column;align-items:flex-end;gap:10px;}
.btn-more{width:34px;height:32px;border:1px solid var(--border-2);background:#fff;border-radius:9px;
  display:grid;place-items:center;cursor:pointer;color:var(--muted-2);transition:.12s;}
.btn-more svg{width:18px;height:18px;}
.btn-more:hover,.btn-more.open{background:#eef3fd;color:var(--blue);border-color:#c6d6e9;}
/* card footer (remove all / view details) */
.titem-foot{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;
  border-top:1px solid var(--line);background:#fafbfd;border-radius:0 0 var(--radius) var(--radius);}
.link-danger{display:inline-flex;align-items:center;gap:7px;background:none;border:none;cursor:pointer;
  color:var(--red);font-size:13px;font-weight:700;padding:0;transition:.12s;}
.link-danger svg{width:16px;height:16px;}
.link-danger:hover{color:#b5392f;}
.toggle-details{display:inline-flex;align-items:center;gap:6px;}
.toggle-details svg{transition:transform .2s;}
.toggle-details.open svg{transform:rotate(180deg);}

/* expandable details */
.details{display:none;padding:16px 20px 18px;border-top:1px solid var(--line);background:#fafbfd;}
.details.open{display:block;}
.det-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding-top:16px;}
.det{background:#fff;border:1px solid var(--border);border-radius:11px;padding:13px 14px;}
.det-k{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted-2);}
.det-v{font-size:13.5px;font-weight:600;color:var(--title);margin-top:5px;}

/* ===== Settlement & delivery (inline, flat) ===== */
.settle-inline{padding-top:0;}
.settle-inline-head{display:flex;align-items:center;gap:7px;margin-bottom:10px;
  font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);}
.settle-inline-head svg{width:13px;height:13px;color:var(--muted-2);}
.si-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:32px;row-gap:2px;}
.si-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:5px 0;
  font-size:12.5px;border-bottom:1px solid var(--line);}
.si-row .k{color:var(--muted);}
.si-row .v{font-weight:700;color:var(--title);font-variant-numeric:tabular-nums;text-align:right;}
.si-row .v .def{color:var(--muted-2);font-weight:600;}
.si-row .v .iban{color:var(--muted-2);font-weight:600;}
.si-row .v.req{color:var(--muted);font-weight:600;}
.si-row[data-fx] .v{color:var(--blue);}
.si-note{grid-column:1 / -1;font-size:11.5px;line-height:1.4;color:var(--muted-2);font-weight:600;margin-top:2px;}
.si-fxnote{font-size:11px;color:var(--muted-2);font-weight:600;margin-top:8px;font-variant-numeric:tabular-nums;}
.si-foot{display:flex;align-items:flex-end;justify-content:flex-end;gap:16px;margin-top:14px;}
.si-total{text-align:right;line-height:1.15;}
.si-total-k{display:block;font-size:10.5px;font-weight:700;letter-spacing:.05em;
  text-transform:uppercase;color:var(--muted-2);margin-bottom:2px;}
.si-total-v{font-size:22px;font-weight:800;color:var(--title);letter-spacing:-.02em;font-variant-numeric:tabular-nums;}
.settle .group-head{padding-bottom:0;}
.settle-sub{margin:2px 0 0;font-size:13px;color:var(--muted);}
.settle-body{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:16px 20px 20px;}
.settle-box{border:1px solid var(--border-2);border-radius:12px;padding:16px;background:#fcfdfe;}
.sb-head{display:flex;align-items:center;gap:10px;margin-bottom:14px;}
.sb-ic{width:30px;height:30px;flex:0 0 30px;border-radius:9px;display:grid;place-items:center;}
.sb-ic svg{width:18px;height:18px;}
.sb-title{font-size:13.5px;font-weight:700;color:var(--title);}
.sb-tot-k{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted-2);}
.sb-tot{font-size:26px;font-weight:800;color:var(--title);letter-spacing:-.02em;margin:4px 0 14px;
  font-variant-numeric:tabular-nums;}
.sb-line{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:8px 0;
  border-top:1px solid var(--line);}
.sb-line:first-of-type{border-top:none;}
.sb-line .k{font-size:13px;color:var(--muted);}
.sb-line .v{font-size:13px;font-weight:700;color:var(--title);text-align:right;}
.sb-line .v .def{color:var(--muted-2);font-weight:600;}
.sb-line .iban{display:block;font-size:11.5px;color:var(--muted-2);font-weight:600;margin-top:2px;font-variant-numeric:tabular-nums;}
.sb-line[hidden], .sum-line[hidden], .si-row[hidden], .si-fxnote[hidden]{display:none;}
.fx-ref[hidden]{display:none;}
.fx-ref{margin-top:10px;font-size:11px;line-height:1.5;}
.fx-ref-rate{display:block;font-weight:800;color:var(--blue);font-variant-numeric:tabular-nums;margin-bottom:2px;}
.fx-ref-meta{display:block;color:var(--muted-2);}
.sb-line .v.req{color:var(--muted);font-weight:600;}
.sb-line[data-fx] .v{color:var(--blue);}
.sb-line[data-fx] .v .iban{color:var(--muted-2);font-weight:600;}
.sb-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;
  padding-top:14px;border-top:1px solid var(--line);}
.sb-note{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--muted-2);line-height:1.35;}
.sb-note svg{width:24px;height:24px;flex:0 0 24px;color:var(--muted-2);}
.btn-change{display:inline-flex;align-items:center;gap:6px;background:#fff;color:var(--blue);
  border:1px solid var(--border-2);border-radius:9px;padding:8px 13px;font-size:12.5px;font-weight:700;
  cursor:pointer;transition:.12s;white-space:nowrap;}
.btn-change svg{width:14px;height:14px;}
.btn-change:hover{background:#eef3fd;border-color:#c6d6e9;}

/* ===== Order summary ===== */
.summary .sum-head{display:flex;align-items:center;gap:10px;padding:18px 20px 14px;}
.summary .sum-head svg{width:20px;height:20px;color:var(--blue);}
.summary .sum-head h2{margin:0;font-size:17px;font-weight:800;color:var(--title);}
.sum-body{padding:0 20px;}
.sum-line{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:8px 0;font-size:13.5px;}
.sum-line .k{color:var(--muted);}
.sum-line .v{font-weight:700;color:var(--title);font-variant-numeric:tabular-nums;}
.sum-rule{height:1px;background:var(--line);margin:10px 0;}
.sum-line .v.req{color:var(--muted);font-weight:600;}
.sum-note{font-size:11.5px;line-height:1.4;color:var(--muted-2);font-weight:600;margin-top:-2px;padding-bottom:5px;}
.sum-order{padding:4px 0;}
.sum-oh{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0 4px;}
.sum-on{font-size:13px;font-weight:800;color:var(--title);letter-spacing:.01em;}
.sum-tag{font-size:11px;font-weight:700;color:var(--blue);background:var(--blue-50,rgba(37,99,235,.1));border-radius:999px;padding:2px 9px;font-variant-numeric:tabular-nums;}
.sum-line[data-sfx] .v{color:var(--blue);}
.sum-sub{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-top:6px;padding:10px 0 4px;border-top:1px solid var(--line);}
.sum-sub .k{font-size:13.5px;font-weight:800;color:var(--title);white-space:nowrap;}
.sum-sub .v{font-size:18px;font-weight:800;color:var(--title);letter-spacing:-.02em;font-variant-numeric:tabular-nums;}
.sum-foot{display:flex;align-items:flex-start;gap:8px;padding:12px 0 2px;font-size:11.5px;color:var(--muted-2);line-height:1.4;}
.sum-foot svg{width:14px;height:14px;flex-shrink:0;margin-top:1px;color:var(--muted-2);}
.sum-total{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 0 6px;}
.sum-total .tk{font-size:15px;font-weight:800;color:var(--title);}
.sum-total .tk small{display:block;font-size:11.5px;font-weight:600;color:var(--muted-2);margin-top:3px;}
.sum-total .tv{text-align:right;}
.sum-total .tv .a{font-size:20px;font-weight:800;color:var(--title);letter-spacing:-.02em;
  font-variant-numeric:tabular-nums;line-height:1.1;}
.sum-total .tv .b{font-size:14px;font-weight:700;color:var(--blue);margin-top:3px;font-variant-numeric:tabular-nums;}
.sum-actions{display:flex;flex-direction:column;gap:10px;padding:16px 20px 20px;}
.shopping-cart-body .summary .sum-actions .btn.btn-lg{
  width:100%;
  min-height:44px;
  height:44px;
  padding:0 18px;
  border-radius:12px;
  font-size:15px;
  font-weight:600;
  line-height:1.2;
  box-shadow:var(--shadow);
}
.shopping-cart-body .summary .sum-actions .btn.btn-primary.btn-lg{
  border:0;
  background:var(--blue);
  color:#fff;
  box-shadow:0 4px 14px rgba(31,79,209,.28);
}
.shopping-cart-body .summary .sum-actions .btn.btn-soft.btn-lg{
  border:1px solid var(--border-2);
  background:#fff;
  color:var(--text);
}
.shopping-cart-body .summary .sum-actions .btn.btn-lg svg{
  width:18px;
  height:18px;
  flex:0 0 18px;
  display:block;
}

/* ===== Shipping address ===== */
.ship .ship-head{display:flex;align-items:center;gap:10px;padding:18px 20px 12px;}
.ship .ship-head svg{width:20px;height:20px;color:var(--blue);}
.ship .ship-head h2{margin:0;font-size:16px;font-weight:800;color:var(--title);}
.ship-body{padding:0 20px 18px;}
.ship-label{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:700;color:var(--title);}
.badge-def{font-size:10px;font-weight:800;letter-spacing:.05em;color:var(--blue);background:var(--blue-bg);
  border-radius:6px;padding:3px 7px;text-transform:uppercase;}
.ship-mail{font-size:13px;color:var(--text);margin-top:8px;font-weight:600;}
.ship-warn{font-size:12.5px;color:var(--amber);margin-top:3px;font-weight:600;}
.ship-actions{display:flex;gap:10px;margin-top:14px;}
.ship-actions .btn-soft{flex:1;}
.btn-icon{width:44px;flex:0 0 44px;border:1px solid var(--border-2);background:#fff;border-radius:10px;
  display:grid;place-items:center;cursor:pointer;color:var(--blue);transition:.12s;box-shadow:var(--shadow);}
.btn-icon svg{width:18px;height:18px;}
.btn-icon:hover{background:#eef3fd;border-color:#c6d6e9;}

/* ===== Why shop ===== */
.why .why-title{margin:0;padding:18px 20px 6px;font-size:16px;font-weight:800;color:var(--title);}
.why-list{padding:6px 20px 8px;}
.why-item{display:flex;gap:13px;padding:12px 0;border-bottom:1px solid var(--line);}
.why-item:last-child{border-bottom:none;}
.why-ic{width:34px;height:34px;flex:0 0 34px;border-radius:10px;display:grid;place-items:center;}
.why-ic svg{width:19px;height:19px;}
.ic-shield{background:var(--green-bg);color:var(--green);}
.ic-box{background:var(--blue-bg);color:var(--blue);}
.ic-truck{background:var(--amber-bg);color:var(--amber);}
.why-item h4{margin:0;font-size:13.5px;font-weight:700;color:var(--title);}
.why-item p{margin:3px 0 0;font-size:12.5px;color:var(--muted);line-height:1.45;}
.why-foot{padding:14px 20px 18px;border-top:1px solid var(--line);}

/* ===== You may also like (real storefront products only) ===== */
.related{margin-top:46px;}
.related-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}
.related-head h2{margin:0;font-size:19px;font-weight:800;letter-spacing:-.02em;color:var(--title);white-space:nowrap;}
.view-all{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--blue);}
.view-all svg{width:15px;height:15px;}
.rel-grid{position:relative;}
.rel-track{display:flex;gap:16px;overflow-x:auto;scroll-behavior:smooth;scroll-snap-type:x proximity;
  scrollbar-width:none;padding:4px 2px;cursor:grab;}
.rel-track.dragging{cursor:grabbing;scroll-behavior:auto;scroll-snap-type:none;user-select:none;}
.rel-track.dragging .rel-img svg,.rel-track.dragging .rel-img img{pointer-events:none;}
.rel-track::-webkit-scrollbar{display:none;}
.rel-card{flex:0 0 calc((100% - 4*16px)/5);scroll-snap-align:start;display:flex;flex-direction:column;
  border:1px solid var(--border);border-radius:var(--radius);background:#fff;
  box-shadow:var(--shadow-card);overflow:hidden;transition:transform .22s cubic-bezier(.22,.61,.36,1),box-shadow .22s ease,border-color .22s ease;}
.rel-link{display:flex;flex-direction:column;flex:1;min-width:0;color:inherit;text-decoration:none;}
.rel-card:hover{border-color:#c6d6e9;box-shadow:var(--shadow-pop);transform:translateY(-4px);}
.rel-img{display:block;width:100%;flex:0 0 auto;position:relative;aspect-ratio:1/.92;background:#f1f4f8;overflow:hidden;}
.rel-badge{position:absolute;top:8px;left:8px;z-index:2;background:var(--red);color:#fff;font-size:11px;font-weight:800;
  padding:3px 7px;border-radius:7px;letter-spacing:.01em;}
.rel-img svg,.rel-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s cubic-bezier(.22,.61,.36,1);}
.rel-placeholder{width:100%;height:100%;display:grid;place-items:center;background:#f1f4f8;color:#b6c4d6;}
.rel-placeholder svg{width:44px;height:44px;object-fit:initial;}
.rel-card:hover .rel-img svg,.rel-card:hover .rel-img img{transform:scale(1.06);}
@media (prefers-reduced-motion:reduce){
  .rel-card,.rel-card:hover{transform:none;}
  .rel-card:hover .rel-img svg,.rel-card:hover .rel-img img{transform:none;}
}
.rel-body{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;padding:13px 14px 14px;}
.rel-info{min-width:0;}
.rel-name{font-size:13.5px;font-weight:700;color:var(--title);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rel-sub{font-size:12px;color:var(--muted);margin-top:2px;}
.rel-price{font-size:14px;font-weight:800;color:var(--title);margin-top:9px;font-variant-numeric:tabular-nums;}
.rel-price.promo{display:flex;align-items:baseline;gap:7px;}
.rel-old{font-size:12.5px;font-weight:600;color:var(--muted-2);text-decoration:line-through;}
.rel-new{font-size:14px;font-weight:800;color:var(--red);}
.rel-cart{width:38px;height:38px;flex:0 0 38px;border:none;border-radius:10px;background:var(--navy);color:#fff;
  display:grid;place-items:center;cursor:pointer;transition:.12s;box-shadow:0 4px 12px rgba(22,50,125,.24);}
.rel-cart:hover{background:var(--navy-d);}
.rel-cart svg{width:17px;height:17px;}
.rel-arrow{position:absolute;top:38%;transform:translateY(-50%);width:36px;height:36px;border-radius:50%;
  background:#fff;border:1px solid var(--border-2);box-shadow:var(--shadow-pop);display:grid;place-items:center;
  cursor:pointer;color:var(--slate);z-index:3;transition:.12s;}
.rel-arrow:hover{color:var(--blue);}
.rel-arrow svg{width:18px;height:18px;}
.rel-arrow[hidden]{display:none;}
.rel-prev{left:-13px;}
.rel-next{right:-13px;}

/* ===== row menu (... popover) ===== */
.row-menu{position:fixed;z-index:1000;width:220px;max-width:calc(100vw - 24px);background:#fff;border:1px solid var(--border);
  border-radius:14px;box-shadow:var(--shadow-pop);padding:8px;display:none;right:auto;left:auto;top:auto;}
.row-menu[hidden]{display:none;}
.row-menu.show{display:block;}
.row-menu button{display:flex;align-items:center;gap:11px;width:100%;height:40px;border:none;background:none;cursor:pointer;
  font-size:13.5px;font-weight:600;color:var(--text);padding:0 12px;border-radius:9px;text-align:left;transition:.1s;
  white-space:nowrap;appearance:none;-webkit-appearance:none;box-shadow:none;}
.row-menu button svg{width:17px;height:17px;color:var(--muted-2);flex:0 0 17px;}
.row-menu button:hover{background:#f4f7fc;}
.row-menu button.danger{color:var(--red);}
.row-menu button.danger svg{color:var(--red);}
.row-menu button.danger:hover{background:var(--red-bg);}
.row-menu .sep{height:1px;background:#eef2f8;margin:5px 4px;}

/* ===== responsive ===== */
@media (max-width:1080px){
  .cart-grid{grid-template-columns:1fr;}
  .col-side{position:static;}
  .rel-card{flex-basis:calc((100% - 3*16px)/4);}
}
@media (max-width:760px){
  .page{padding:20px 16px 44px;}
  .shopping-cart-body .head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;align-items:start;margin-bottom:16px;}
  .shopping-cart-body .head>div{display:contents;}
  .shopping-cart-body .head h1{grid-column:1;grid-row:1;font-size:24px;}
  .shopping-cart-body .head .btn{grid-column:2;grid-row:1;align-self:start;justify-self:end;}
  .shopping-cart-body .head-sub{grid-column:1 / -1;grid-row:2;max-width:none;margin:2px 0 0;font-size:13.5px;line-height:1.45;}
  .group-head{display:grid;grid-template-columns:40px minmax(88px,1fr) auto auto;column-gap:10px;row-gap:0;align-items:center;padding:16px 16px;}
  .group-head .group-ic{grid-column:1;grid-row:1;width:40px;height:40px;border-radius:12px;}
  .group-head .group-ic svg{width:20px;height:20px;}
  .group-head h2{grid-column:2;grid-row:1;min-width:0;margin:0;font-size:19px;line-height:1.12;letter-spacing:-.02em;overflow-wrap:normal;}
  .group-head .count-pill{grid-column:3;grid-row:1;justify-self:end;align-self:center;white-space:nowrap;font-size:11.5px;padding:4px 9px;}
  .group-head .cur-toggle{grid-column:4;grid-row:1;justify-self:end;align-self:center;margin-left:0;width:104px;min-width:104px;min-height:38px;padding:0 9px;gap:5px;border-radius:10px;font-size:12px;line-height:1.1;white-space:nowrap;}
  .group-head .cur-toggle svg{width:13px;height:13px;flex:0 0 13px;}
  .group-head .cur-toggle span{white-space:nowrap;}
  .titem-head{display:none;}
  .titem{grid-template-columns:1fr auto;gap:14px 12px;}
  .titem .prod{grid-column:1/-1;}
  .unit::before{content:"Unit · ";color:var(--muted-2);font-weight:600;}
  .subtot::before{content:"Subtotal · ";color:var(--muted-2);font-weight:600;font-size:12px;}
  .row-tools{grid-column:1/-1;flex-direction:row;justify-content:flex-end;}
  .settle-body{grid-template-columns:1fr;}
  .si-grid{grid-template-columns:1fr;column-gap:0;}
  .si-foot{flex-direction:column;align-items:stretch;gap:12px;}
  .si-total{text-align:left;}
  .det-grid{grid-template-columns:1fr;}
  .related{margin-top:34px;}
  .related-head h2{font-size:17px;}
  .rel-card{flex-basis:calc((100% - 12px)/1.7);}
  .rel-track{gap:12px;}
  .rel-arrow{display:none;}
}

@media (max-width:430px){
  .shopping-cart-body .head{gap:6px 10px;}
  .shopping-cart-body .head .btn{padding:8px 12px;font-size:13px;line-height:1.15;}
  .shopping-cart-body .head .btn svg{width:15px;height:15px;flex-basis:15px;}
  .shopping-cart-body .head-sub{font-size:13px;line-height:1.42;}
  .group-head{grid-template-columns:38px minmax(96px,1fr) auto auto;column-gap:8px;padding:14px 14px;}
  .group-head .group-ic{width:38px;height:38px;}
  .group-head h2{font-size:18px;line-height:1.12;}
  .group-head .count-pill{font-size:11px;padding:3px 8px;}
  .group-head .cur-toggle{width:96px;min-width:96px;min-height:36px;padding:0 8px;gap:4px;font-size:11.5px;border-radius:9px;}
  .group-head .cur-toggle svg{width:12px;height:12px;flex-basis:12px;}
}



/* ===== Django integration: modal, empty state, real address selectors ===== */
.cart-icon-sprite{position:absolute;width:0;height:0;overflow:hidden;}
.cart-hidden-checkout-state{display:none;}
button:focus{outline:none;}
button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid rgba(31,89,207,.35);outline-offset:2px;}
.btn[disabled],.btn.is-disabled{opacity:.58;cursor:not-allowed;box-shadow:none;}
.btn.is-disabled:hover{background:var(--blue);border-color:var(--blue);color:#fff;}

.cart-modal{position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;background:rgba(16,36,74,.58);padding:24px;}
.cart-modal.is-open{display:flex;}
.cart-modal-dialog{position:relative;width:min(460px,100%);background:#fff;border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow-pop);padding:28px;text-align:center;}
.cart-modal-close{position:absolute;top:14px;right:14px;width:38px;height:38px;border:1px solid var(--border-2);border-radius:50%;background:#fff;color:var(--muted);display:grid;place-items:center;cursor:pointer;transition:.12s;}
.cart-modal-close:hover{background:#f6f9fd;color:var(--blue);border-color:#c6d6e9;}
.cart-modal-close svg{width:18px;height:18px;}
.cart-modal-ic{width:52px;height:52px;margin:0 auto 14px;border-radius:15px;display:grid;place-items:center;}
.cart-modal-ic svg{width:28px;height:28px;}
.cart-modal-ic.is-success{background:var(--green-bg);color:var(--green);}
.cart-modal-ic.is-error{background:var(--red-bg);color:var(--red);}
.cart-modal-ic.is-review{background:var(--blue-bg);color:var(--blue);}
.cart-modal-kicker{margin:0 0 6px;font-size:12px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--green);}
.cart-modal-kicker.is-error{color:var(--red);}
.cart-modal-kicker.is-review{color:var(--blue);}
.cart-modal h2{margin:0;font-size:24px;font-weight:800;letter-spacing:-.02em;color:var(--title);}
.cart-modal p:not(.cart-modal-kicker){margin:10px 0 20px;color:var(--muted);line-height:1.55;}
.cart-review-dialog{text-align:left;}
.cart-review-dialog>.cart-modal-ic{margin-left:0;}
.cart-review-summary{display:grid;gap:10px;margin:0 0 20px;padding:14px;border:1px solid var(--border);border-radius:12px;background:#f8fafd;}
.cart-review-summary>div{display:flex;align-items:baseline;justify-content:space-between;gap:16px;color:var(--text);}
.cart-review-summary span{font-size:13px;}
.cart-review-summary strong{color:var(--title);font-variant-numeric:tabular-nums;white-space:nowrap;}
.cart-review-summary small{color:var(--muted);line-height:1.45;}
.cart-review-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;}

.qty-readonly{opacity:1;}
.qty-readonly button{cursor:not-allowed;background:#f8fafc;color:var(--muted-2);}
.qty-readonly input{background:#fff!important;line-height:38px;color:#16244a!important;-webkit-text-fill-color:#16244a!important;opacity:1!important;}

.ship-option{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--border-2);border-radius:12px;padding:12px;margin-bottom:10px;cursor:pointer;background:#fff;transition:.12s;}
.ship-option:hover{border-color:#c6d6e9;background:#f8fbff;}
.ship-option input{margin-top:3px;accent-color:var(--blue);}
.ship-option>span{display:flex;flex-direction:column;gap:3px;min-width:0;}
.ship-line{display:block;font-size:12.5px;color:var(--muted);line-height:1.35;}
.ship-body .ship-label{line-height:1.35;}
.ship-actions a{min-height:40px;}

.cart-empty-state{padding:42px 28px;text-align:center;}
.cart-empty-icon{width:62px;height:62px;margin:0 auto 16px;border-radius:17px;background:var(--blue-bg);color:var(--blue);display:grid;place-items:center;}
.cart-empty-icon svg{width:34px;height:34px;}
.cart-empty-state h2{margin:0;font-size:22px;font-weight:800;letter-spacing:-.02em;color:var(--title);}
.cart-empty-state p{margin:9px auto 20px;max-width:440px;color:var(--muted);line-height:1.55;}
.cart-empty-state .btn{max-width:220px;margin:0 auto;}

.rel-cart svg{pointer-events:none;}
@media (max-width:760px){
  .cart-modal-dialog{padding:24px 20px;}
  .shopping-cart-body .ship-actions{flex-wrap:nowrap;align-items:center;gap:8px;}
  .shopping-cart-body .ship-actions .btn,.shopping-cart-body .ship-actions .btn-soft{flex:1 1 auto;min-width:0;width:auto;height:40px;min-height:40px;padding:0 12px;font-size:13px;line-height:1.2;}
  .shopping-cart-body .ship-actions .btn-icon{width:40px;flex:0 0 40px;height:40px;min-height:40px;border-radius:10px;}
  .shopping-cart-body .ship-actions .btn-icon svg{width:17px;height:17px;}
}
@media (max-width:430px){
  .shopping-cart-body .ship-actions{gap:7px;}
  .shopping-cart-body .ship-actions .btn,.shopping-cart-body .ship-actions .btn-soft{height:38px;min-height:38px;padding:0 10px;font-size:12.5px;}
  .shopping-cart-body .ship-actions .btn-icon{width:38px;flex-basis:38px;height:38px;min-height:38px;}
  .shopping-cart-body .ship-actions .btn-icon svg{width:16px;height:16px;}
}
