/* ===========================
   COZEO Cart page
   依存: cozeo-common.css (header/footer/breadcrumb/menu)
        cozeo-product-detail.css (.product-card for reco grid)
   =========================== */

/* PAGE TITLE BAR */
.page-bar{background:#fff;border-bottom:1px solid var(--line);}
.page-bar-inner{max-width:1280px;margin:0 auto;padding:28px 24px 32px;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;}
.page-title{display:flex;align-items:center;gap:16px;}
.page-title h1{font-size:28px;font-weight:900;color:var(--navy);letter-spacing:-.01em;}
.page-title .en{font-family:var(--font-en);font-size:11px;font-weight:700;color:var(--blue);letter-spacing:.3em;padding:5px 12px;background:rgba(25,118,237,.08);border-radius:99px;}

/* STEPS pill */
.steps-light{display:inline-flex;align-items:center;background:#fff;border:1px solid var(--line);border-radius:99px;padding:4px;gap:2px;box-shadow:0 4px 12px rgba(30,42,82,.06);}
.steps-light .step-pill{display:inline-flex;align-items:center;gap:7px;padding:6px 13px;border-radius:99px;font-size:11.5px;font-weight:700;color:var(--text-mute);transition:all .2s;white-space:nowrap;}
.steps-light .step-pill .num{width:18px;height:18px;border-radius:50%;background:var(--bg-soft);display:grid;place-items:center;font-family:var(--font-en);font-size:9.5px;font-weight:900;color:var(--text-mute);transition:all .2s;}
.steps-light .step-pill.active{background:var(--navy);color:#fff;box-shadow:0 4px 10px rgba(20,29,58,.2);}
.steps-light .step-pill.active .num{background:var(--gold);color:var(--navy-deep);}
.steps-light .step-pill.done{color:var(--navy);}
.steps-light .step-pill.done .num{background:var(--green);color:#fff;}
.steps-light .step-sep{color:var(--line);font-size:10px;display:inline-flex;align-items:center;padding:0 2px;}

/* MAIN LAYOUT */
.cart-main{max-width:1280px;margin:32px auto;padding:0 24px;display:grid;grid-template-columns:1fr 360px;gap:28px;align-items:flex-start;}

/* CART CARD */
.cart-card{background:#fff;border-radius:14px;box-shadow:0 4px 16px rgba(30,42,82,.04);overflow:hidden;}
.cart-card + .cart-card{margin-top:18px;}
.cart-card-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 22px 16px;background:#fff;border-bottom:1px solid var(--line);}
.cart-card-head .title{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:900;color:var(--navy);letter-spacing:-.01em;}
.cart-card-head .title::before{content:"";width:4px;height:20px;background:var(--gold);border-radius:2px;}
.cart-card-head .en{font-family:var(--font-en);font-size:10px;font-weight:700;color:var(--text-mute);letter-spacing:.25em;}
.cart-card-head .meta{font-size:12px;color:var(--text-sub);}
.cart-card-head .meta strong{color:var(--navy);font-family:var(--font-en);font-weight:900;}

/* CART ITEMS */
.cart-items{padding:0;}
.cart-row{display:grid;grid-template-columns:96px 1fr auto auto auto;gap:18px;align-items:center;padding:20px;border-bottom:1px solid var(--line);}
.cart-row:last-child{border-bottom:none;}
.cart-thumb{width:96px;height:96px;border-radius:10px;overflow:hidden;flex-shrink:0;background:var(--bg);}
.cart-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.cart-info{min-width:0;}
.cart-info .cat{font-family:var(--font-en);font-size:10px;font-weight:700;color:var(--blue);letter-spacing:.2em;margin-bottom:4px;text-transform:uppercase;}
.cart-info .name{font-size:14.5px;font-weight:800;color:var(--navy);margin-bottom:6px;line-height:1.45;}
.cart-info .name a{color:inherit;transition:color .15s;}
.cart-info .name a:hover{color:var(--blue);}
.cart-info .opts{display:flex;gap:8px;flex-wrap:wrap;font-size:11.5px;color:var(--text-sub);}
.cart-info .opts span{padding:2px 8px;background:var(--bg);border-radius:4px;border:1px solid var(--line);}
.cart-info .opts span strong{color:var(--navy);font-weight:700;}
.cart-info .stock{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--green);font-weight:700;margin-top:8px;}
.cart-info .stock::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--green);}

/* QUANTITY (EC-CUBE up/down link versions, wrapped in cozeo shell) */
.qty{display:inline-flex;align-items:center;border:1.5px solid var(--line);border-radius:8px;overflow:hidden;background:#fff;}
.qty .qbtn{width:32px;height:36px;display:grid;place-items:center;color:var(--text-sub);transition:background .15s, color .15s;font-size:14px;font-weight:700;line-height:1;}
.qty .qbtn:hover{background:var(--bg);color:var(--navy);}
.qty .qbtn.is-disabled{color:var(--line);cursor:not-allowed;}
.qty .qbtn.is-disabled:hover{background:transparent;color:var(--line);}
.qty .qval{width:42px;height:36px;display:grid;place-items:center;font-family:var(--font-en);font-size:14px;font-weight:700;color:var(--navy);border-left:1px solid var(--line);border-right:1px solid var(--line);}

/* PRICE COL */
.cart-price{text-align:right;min-width:110px;}
.cart-price .unit{font-size:11px;color:var(--text-mute);margin-bottom:2px;}
.cart-price .price{font-family:var(--font-en);font-size:18px;font-weight:900;color:var(--navy);letter-spacing:-.01em;line-height:1;}
.cart-price .price .yen{font-size:12px;font-weight:700;margin-right:1px;}
.cart-price .original{font-family:var(--font-en);font-size:11px;color:var(--text-mute);text-decoration:line-through;margin-top:3px;}
.cart-price .subtotal{font-size:11px;color:var(--text-mute);margin-top:6px;}
.cart-price .subtotal strong{color:var(--navy);font-family:var(--font-en);font-weight:900;font-size:13px;margin-left:4px;}

/* REMOVE */
.cart-remove{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:var(--text-mute);transition:background .15s, color .15s;}
.cart-remove:hover{background:#ffe9eb;color:var(--red);}
.cart-remove svg{width:18px;height:18px;}

/* CART FOOTER */
.cart-foot{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;background:var(--bg);border-top:1px solid var(--line);flex-wrap:wrap;gap:12px;}
.btn-text{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--blue);transition:color .15s, transform .2s;}
.btn-text:hover{color:var(--navy);transform:translateX(-3px);}
.btn-text svg{width:16px;height:16px;}
.btn-text.fwd:hover{transform:translateX(3px);}

/* DELIVERY FREE HINT */
.cart-hint{margin-top:12px;padding:12px 16px;background:#fff;border:1px dashed var(--line);border-radius:10px;font-size:12.5px;color:var(--text-sub);}
.cart-hint strong{color:var(--navy);font-family:var(--font-en);font-weight:900;}
.cart-hint .ec-color-red{color:var(--red);font-weight:800;}

/* ALERT (flash errors) */
.cart-alert{margin-bottom:18px;padding:14px 18px;border:1px solid #f5c2c7;background:#fdecec;color:#842029;border-radius:10px;font-size:13px;line-height:1.55;}
.cart-alert + .cart-alert{margin-top:-10px;}
.cart-alert strong{font-weight:800;}

/* ASIDE - SUMMARY */
.summary-sticky{position:sticky;top:84px;display:flex;flex-direction:column;gap:18px;}
.summary{padding:0;}
.summary-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 22px 16px;background:#fff;border-bottom:1px solid var(--line);}
.summary-head .title{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:900;color:var(--navy);letter-spacing:-.01em;}
.summary-head .title::before{content:"";width:4px;height:20px;background:var(--gold);border-radius:2px;}
.summary-head .en{font-family:var(--font-en);font-size:10px;font-weight:700;color:var(--text-mute);letter-spacing:.25em;}
.summary-body{padding:20px 22px 18px;}
.summary-body .row{display:flex;justify-content:space-between;align-items:baseline;padding:9px 0;font-size:13px;color:var(--text-sub);}
.summary-body .row .v{font-family:var(--font-en);font-weight:700;color:var(--navy);font-size:14px;}
.summary-body .row.shipping .v{color:var(--text-mute);font-family:var(--font-jp);font-size:12px;font-weight:600;}
.summary-body .row.shipping.free .v{color:var(--green);font-family:var(--font-jp);font-size:13px;font-weight:800;}
.summary-body .divider{height:1px;background:var(--line);margin:8px 0;}
.summary-body .total{display:flex;justify-content:space-between;align-items:baseline;padding:14px 0 4px;border-top:2px solid var(--navy);margin-top:6px;}
.summary-body .total .l{font-size:13px;font-weight:800;color:var(--navy);}
.summary-body .total .l small{display:block;font-size:10.5px;color:var(--text-mute);font-weight:600;margin-top:2px;letter-spacing:.04em;}
.summary-body .total .v{font-family:var(--font-en);font-size:30px;font-weight:900;color:var(--navy);letter-spacing:-.01em;line-height:1;}
.summary-body .total .v .yen{font-size:16px;font-weight:700;margin-right:2px;}

/* CHECKOUT CTA */
.checkout-cta{padding:0 22px 22px;}
.btn-primary{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:16px 24px;background:linear-gradient(135deg, var(--navy-deep) 0%, var(--navy) 100%);color:#fff;font-size:14.5px;font-weight:800;border-radius:12px;letter-spacing:.04em;position:relative;overflow:hidden;transition:transform .2s, box-shadow .2s;}
.btn-primary::before{content:"";position:absolute;top:0;left:-80%;width:60%;height:100%;background:linear-gradient(120deg, transparent 30%, rgba(255,255,255,.18), transparent 70%);transition:left .6s;}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 24px rgba(20,29,58,.3);}
.btn-primary:hover::before{left:120%;}
.btn-primary svg{width:18px;height:18px;}

/* TRUST STRIP */
.trust{padding:18px 22px 22px;border-top:1px solid var(--line);background:var(--bg);}
.trust .ttl{font-family:var(--font-en);font-size:10px;font-weight:700;color:var(--text-mute);letter-spacing:.25em;margin-bottom:10px;}
.trust ul{list-style:none;display:flex;flex-direction:column;gap:8px;}
.trust li{display:flex;align-items:center;gap:9px;font-size:11.5px;color:var(--text-sub);line-height:1.45;}
.trust li svg{width:15px;height:15px;color:var(--green);flex-shrink:0;}

/* RECOMMENDED PRODUCTS */
.reco{margin:48px auto 0;max-width:1280px;padding:0 24px;}
.reco-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:18px;gap:16px;flex-wrap:wrap;}
.reco-head .title{display:flex;flex-direction:column;gap:4px;}
.reco-head .en{font-family:var(--font-en);font-size:10px;font-weight:700;color:var(--blue);letter-spacing:.3em;}
.reco-head h2{font-size:20px;font-weight:900;color:var(--navy);letter-spacing:-.01em;}
.reco-grid{display:grid;grid-template-columns:repeat(4, 1fr);gap:16px;}

/* EMPTY STATE */
.cart-empty{padding:64px 24px;text-align:center;background:#fff;border-radius:14px;box-shadow:0 4px 16px rgba(30,42,82,.04);max-width:560px;margin:32px auto;}
.cart-empty .ico{width:80px;height:80px;border-radius:50%;background:var(--bg-soft);display:grid;place-items:center;color:var(--text-mute);margin:0 auto 18px;}
.cart-empty .ico svg{width:40px;height:40px;}
.cart-empty h3{font-size:18px;font-weight:800;color:var(--navy);margin-bottom:8px;}
.cart-empty p{font-size:13px;color:var(--text-sub);margin-bottom:22px;}
.cart-empty .btn-primary{display:inline-flex;width:auto;padding:12px 28px;font-size:13.5px;}

/* RESPONSIVE */
@media (max-width: 1100px){
  .cart-main{grid-template-columns:1fr;}
  .summary-sticky{position:static;}
  .reco-grid{grid-template-columns:repeat(3, 1fr);}
}
@media (max-width: 760px){
  .page-bar-inner{flex-direction:column;align-items:flex-start;padding:18px 16px 22px;}
  .page-title h1{font-size:22px;}
  .page-title .en{font-size:10px;letter-spacing:.25em;padding:4px 10px;}
  /* step rail (SP): number badges only; only the active step keeps its label */
  .steps-light{display:flex;width:100%;align-items:center;justify-content:space-between;gap:4px;padding:4px;border-radius:12px;}
  .steps-light .step-sep{display:none;}
  /* font-size:0 hides the pill's text label node; .num is restored below */
  .steps-light .step-pill{gap:5px;padding:5px 7px;font-size:0;white-space:nowrap;}
  .steps-light .step-pill .num{width:18px;height:18px;font-size:9px;flex-shrink:0;}
  /* active step shows its label so the user knows where they are */
  .steps-light .step-pill.active{font-size:10px;}
  .cart-main{padding:0 16px;margin:20px auto;}
  /* SP: image + info on top row, qty (left) and price (right) share a full-width bottom row */
  .cart-row{position:relative;grid-template-columns:84px 1fr;grid-template-areas:"img info" "qty price";column-gap:14px;row-gap:14px;align-items:start;padding:16px;}
  .cart-thumb{width:84px;height:84px;grid-area:img;}
  .cart-info{grid-area:info;padding-top:2px;padding-right:34px;}
  .cart-info .name{font-size:14px;}
  /* delete sits to the right of the product name (top-right of the info area) */
  .cart-remove{position:absolute;top:12px;right:12px;width:30px;height:30px;}
  .cart-remove svg{width:16px;height:16px;}
  .qty-wrap{grid-area:qty;display:flex;align-items:center;justify-content:flex-start;padding-top:14px;border-top:1px dashed var(--line);}
  .cart-price{grid-area:price;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;text-align:right;min-width:0;padding-top:14px;border-top:1px dashed var(--line);}
  .cart-price .unit{display:none;}
  .cart-card-head{padding:12px 16px;}
  .reco{padding:0 16px;margin-top:32px;}
  .reco-grid{grid-template-columns:repeat(2, 1fr);gap:12px;}
}
