/* =========================================================
   ✅ WAKUWAKU Cart (mall4) - Premium Clean White (FIXED)
   - Target: #sod_bsk.cart-page-wrap
   - FIX: 총액카드 점선(라인) 정렬 / free shipping badge 중복 제거
   - 강제적용: !important 다수
========================================================= */

/* 페이지 기본 */
html, body { background:#F4F5F7 !important; }
#container_title{ display:none !important; }

/* 전체 래퍼 */
#sod_bsk.cart-page-wrap{
  --ww-bg:#F4F5F7 !important;
  --ww-card:#FFFFFF !important;
  --ww-ink:#0F1115 !important;
  --ww-sub:#5E6778 !important;
  --ww-muted:#8B93A5 !important;
  --ww-line:rgba(15,17,21,.10) !important;

  --ww-gold:#B89B6A !important;
  --ww-gold-soft:rgba(184,155,106,.12) !important;
  --ww-gold-line:rgba(184,155,106,.30) !important;

  --ww-shadow:0 18px 40px rgba(10,14,20,.08) !important;
  --ww-shadow2:0 14px 30px rgba(10,14,20,.10) !important;

  max-width:1200px !important;
  margin:0 auto !important;
  padding: 16px 14px 100px !important;
  box-sizing:border-box !important;
  font-family:-apple-system,BlinkMacSystemFont,'Noto Sans KR','Pretendard',sans-serif !important;
  color:var(--ww-ink) !important;
}
#sod_bsk.cart-page-wrap *{ box-sizing:border-box !important; }
#sod_bsk.cart-page-wrap a{ text-decoration:none !important; color:inherit !important; }

/* =========================================================
   ✅ WAKUWAKU Free Shipping - Signature Badge (ONE TRUE STYLE)
   - target: #sendcost_result .free-shipping-highlight
   - FIX: 중복 정의 제거 + 안정적인 배치
========================================================= */
#sod_bsk #sendcost_result{
  position: relative !important;
}

/* free-shipping-highlight: 하나로 통일 */
#sod_bsk #sendcost_result .free-shipping-highlight{
  /* 기존 스타일 무력화 */
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 12px 0 0 !important;

  display:flex !important;
  align-items:center !important;
  justify-content:center !important;

  width:100% !important;
  min-height: 44px !important;
  padding: 14px 14px !important;
  border-radius: 18px !important;

  background:
    radial-gradient(700px 180px at 10% 0%, rgba(184,155,106,.18), transparent 55%),
    linear-gradient(135deg, rgba(255,255,255,.98), rgba(244,245,247,.92)) !important;

  border: 1px solid rgba(184,155,106,.38) !important;
  box-shadow:
    0 14px 34px rgba(10,14,20,.10),
    0 0 0 6px rgba(184,155,106,.06) !important;

  color: #0F1115 !important;
  font-weight: 950 !important;
  text-align: center !important;
  letter-spacing: -.2px !important;

  position: relative !important;
  overflow: hidden !important;
  line-height: 1.25 !important;
  font-size: 13px !important;
}

/* 좌측 “리본” */
#sod_bsk #sendcost_result .free-shipping-highlight::before{
  content:"FREE" !important;
  position:absolute !important;
  left:-42px !important;
  top:14px !important;
  transform: rotate(-14deg) !important;
  padding: 7px 54px !important;

  font-size: 11px !important;
  font-weight: 1000 !important;
  letter-spacing: 2px !important;

  color: #fff !important;
  background: linear-gradient(135deg, rgba(184,155,106,1), rgba(154,127,82,1)) !important;
  box-shadow: 0 12px 26px rgba(10,14,20,.18) !important;
}

/* 은은한 하이라이트 라인 */
#sod_bsk #sendcost_result .free-shipping-highlight::after{
  content:"" !important;
  position:absolute !important;
  inset:-2px !important;
  background:
    linear-gradient(115deg,
      transparent 0%,
      rgba(255,255,255,.65) 42%,
      transparent 58%) !important;
  opacity:.35 !important;
  transform: translateX(-35%) !important;
  pointer-events:none !important;
}

/* 내부 strong */
#sod_bsk #sendcost_result .free-shipping-highlight strong{
  font-weight: 1000 !important;
  color:#0F1115 !important;
  display: none;
}

/* 모바일 리본 보정 */
@media (max-width: 640px){
  #sod_bsk #sendcost_result .free-shipping-highlight{
    padding: 12px 12px !important;
    border-radius: 16px !important;
    font-size: 12px !important;
  }
  #sod_bsk #sendcost_result .free-shipping-highlight::before{
    left:-48px !important;
    top:12px !important;
    padding: 6px 54px !important;
    font-size: 10px !important;
	width: 100% !important;
  }
}

/* =========================================================
   레이아웃
========================================================= */
#sod_bsk .cart-layout{
  display:grid !important;
  grid-template-columns: 1fr 360px !important;
  gap:14px !important;
  align-items:start !important;
}
#sod_bsk .cart-main{
  background:transparent !important;
}

/* =========================================================
   ✅ 우측 요약 (총액 카드) - LINE ALIGN FIX (핵심)
   - 기존 float/dashed border 제거
   - dl을 grid로 만들고 dt::after로 점선 리더라인 생성
========================================================= */
#sod_bsk .cart-summary{
  position:sticky !important;
  top:88px !important;
}
#sod_bsk .cart-summary-box{
  border-radius:22px !important;
  border:1px solid var(--ww-line) !important;
  background: linear-gradient(135deg, rgba(184,155,106,.10), #fff 60%) !important;
  box-shadow: var(--ww-shadow) !important;
  overflow:hidden !important;
}
#sod_bsk .cart-summary-title{
  padding:16px 16px !important;
  font-size:15px !important;
  font-weight:950 !important;
  letter-spacing:-.2px !important;
  color:var(--ww-ink) !important;
  background: rgba(244,245,247,.85) !important;
  border-bottom:1px solid rgba(15,17,21,.08) !important;
}
#sod_bsk .cart-summary-inner{
  padding:14px 16px !important;
}

/* ✅ 총액 dl 자체를 그리드로 */
#sod_bsk #m_sod_bsk_tot{
  margin:0 !important;
  display:grid !important;
  grid-template-columns: 1fr auto !important;
  column-gap: 12px !important;
  row-gap: 0 !important;
}

/* ✅ float 기반 기존 스타일 완전 제거 */
#sod_bsk #m_sod_bsk_tot dt,
#sod_bsk #m_sod_bsk_tot dd{
  float:none !important;
  width:auto !important;
  border:0 !important;
  margin:0 !important;
  padding: 12px 0 !important;
  font-size:13px !important;
  font-weight:900 !important;
}

/* ✅ 좌측 라벨: 점선 리더라인을 dt::after로 생성 */
#sod_bsk #m_sod_bsk_tot dt{
  grid-column: 1 !important;
  color:var(--ww-sub) !important;

  display:flex !important;
  align-items:center !important;

  /* 라벨이 2줄로 내려가면서 라인 틀어지는 걸 방지: 1줄 고정 */
  white-space: nowrap !important;
  min-width: 0 !important;
}

/* ✅ “소계~무게~배송비~포인트” 모두 동일한 점선 라인 */
#sod_bsk #m_sod_bsk_tot dt::after{
  content:"" !important;
  flex: 1 1 auto !important;
  border-bottom: 1px dashed rgba(15,17,21,.18) !important;
  margin-left: 12px !important;
  transform: translateY(1px) !important;
  min-width: 14px !important;
}

/* ✅ 우측 값 */
#sod_bsk #m_sod_bsk_tot dd{
  grid-column: 2 !important;
  text-align:right !important;
  color:var(--ww-ink) !important;

  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;

  font-variant-numeric: tabular-nums !important;
  white-space: nowrap !important;
}
#sod_bsk #m_sod_bsk_tot dd strong{ font-weight:950 !important; }

/* ✅ 기존 clearfix 불필요(혹시 남아있어도 영향 없게) */
#sod_bsk #m_sod_bsk_tot:after{ content:"" !important; display:block !important; clear:both !important; }

/* 총합 박스 */
#sod_bsk .cart-summary-total-box{
  margin: 12px 16px 12px !important;
  padding: 14px 14px !important;
  border-radius:18px !important;
  border:1px solid rgba(15,17,21,.10) !important;
  background: #fff !important;
  box-shadow: 0 12px 26px rgba(10,14,20,.06) !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  font-size:14px !important;
  font-weight:950 !important;
}
#sod_bsk .cart-summary-total-box strong{
  font-size:18px !important;
  letter-spacing:-.2px !important;
  color:var(--ww-ink) !important;
}

#sod_bsk .cart-summary-remain{
  margin: 0 16px 12px !important;
  padding: 12px 12px !important;
  border-radius:16px !important;
  border:1px solid rgba(15,17,21,.08) !important;
  background: rgba(244,245,247,.75) !important;
  color: var(--ww-sub) !important;
  font-size:12px !important;
  font-weight:900 !important;
  line-height:1.6 !important;
}
#sod_bsk .cart-summary-remain strong{
  color: var(--ww-ink) !important;
  font-weight:950 !important;
}

#sod_bsk .cart-summary-btn{
  width:calc(100% - 32px) !important;
  margin: 0 16px 12px !important;
  padding: 14px 14px !important;
  border-radius:18px !important;
  border:1px solid rgba(184,155,106,.35) !important;
  background: linear-gradient(135deg, rgba(184,155,106,.18), rgba(255,255,255,1)) !important;
  color: var(--ww-ink) !important;
  font-size:14px !important;
  font-weight:950 !important;
  cursor:pointer !important;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease !important;
}
#sod_bsk .cart-summary-btn:hover{
  transform: translateY(-1px) !important;
  box-shadow: var(--ww-shadow2) !important;
}
#sod_bsk .cart-summary-btn:active{
  transform: translateY(0) !important;
  box-shadow: none !important;
}

#sod_bsk .cart-continue-link{
  display:block !important;
  margin: 0 16px 16px !important;
  text-align:center !important;
  padding: 12px 12px !important;
  border-radius:16px !important;
  border:1px solid rgba(15,17,21,.10) !important;
  background:#fff !important;
  color:var(--ww-sub) !important;
  font-size:13px !important;
  font-weight:950 !important;
  transition: transform .15s ease, box-shadow .15s ease !important;
}
#sod_bsk .cart-continue-link:hover{
  transform: translateY(-1px) !important;
  box-shadow: 0 14px 30px rgba(10,14,20,.10) !important;
  border-color: rgba(184,155,106,.30) !important;
  color: var(--ww-ink) !important;
}

/* 체크박스 라인 */
#sod_bsk #sod_chk.chk_box{
  border-radius:18px !important;
  border:1px solid var(--ww-line) !important;
  background:#fff !important;
  box-shadow: 0 12px 26px rgba(10,14,20,.06) !important;
  padding: 14px 14px !important;
  margin-bottom: 12px !important;
}
#sod_bsk #sod_chk.chk_box label{
  font-weight:950 !important;
  color:var(--ww-ink) !important;
  letter-spacing:-.1px !important;
}

/* 헤더 행 */
#sod_bsk .cart-header-row{
  display:grid !important;
  grid-template-columns: 1fr 120px 90px 140px !important;
  gap:10px !important;
  align-items:center !important;
  padding: 12px 14px !important;
  border-radius:18px !important;
  border:1px solid rgba(15,17,21,.10) !important;
  background: rgba(244,245,247,.85) !important;
  box-shadow: 0 10px 22px rgba(10,14,20,.06) !important;
  margin-bottom: 12px !important;
}
#sod_bsk .cart-header-row > div{
  font-size:12px !important;
  font-weight:950 !important;
  color: var(--ww-sub) !important;
  letter-spacing:.6px !important;
}
#sod_bsk .cart-header-row .col-subtotal{ text-align:right !important; }
#sod_bsk .cart-header-row .col-qty{ text-align:center !important; }
#sod_bsk .cart-header-row .col-price{ text-align:right !important; }

/* 리스트 */
#sod_bsk ul.sod_list{
  list-style:none !important;
  margin:0 !important;
  padding:0 !important;
}
#sod_bsk ul.sod_list > li.sod_li{
  border-radius:22px !important;
  border:1px solid rgba(15,17,21,.10) !important;
  background:#fff !important;
  box-shadow: 0 14px 30px rgba(10,14,20,.06) !important;
  padding: 14px 14px !important;
  margin-bottom: 12px !important;
  overflow:hidden !important;
  position:relative !important;
}
#sod_bsk ul.sod_list > li.sod_li:hover{
  border-color: rgba(184,155,106,.28) !important;
  box-shadow: 0 18px 40px rgba(10,14,20,.10) !important;
}

/* 상품 상단(체크+이미지+명+옵션수정) */
#sod_bsk .li_op_wr{
  display:grid !important;
  grid-template-columns: 32px 72px 1fr auto !important;
  gap:12px !important;
  align-items:center !important;
  padding-bottom: 12px !important;
  border-bottom:1px solid rgba(15,17,21,.08) !important;
}
#sod_bsk .li_chk{
  align-self:start !important;
}
#sod_bsk .li_chk label span{
  border-radius:10px !important;
}
#sod_bsk .total_img{
  width:72px !important;
  height:72px !important;
  border-radius:16px !important;
  overflow:hidden !important;
  border:1px solid rgba(15,17,21,.10) !important;
  background: rgba(244,245,247,.85) !important;
}
#sod_bsk .total_img img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  display:block !important;
}
#sod_bsk .li_name{
  min-width:0 !important;
  font-size:14px !important;
  font-weight:950 !important;
  color:var(--ww-ink) !important;
  line-height:1.35 !important;
}
#sod_bsk .li_name a strong{ font-weight:950 !important; }
#sod_bsk .li_mod{ justify-self:end !important; }

#sod_bsk .mod_btn.mod_options{
  padding: 10px 12px !important;
  border-radius:999px !important;
  border:1px solid rgba(15,17,21,.10) !important;
  background: #fff !important;
  font-size:12px !important;
  font-weight:950 !important;
  color: var(--ww-sub) !important;
  cursor:pointer !important;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease !important;
}
#sod_bsk .mod_btn.mod_options:hover{
  transform: translateY(-1px) !important;
  box-shadow: 0 14px 30px rgba(10,14,20,.10) !important;
  border-color: rgba(184,155,106,.28) !important;
  color: var(--ww-ink) !important;
}

/* 옵션 영역 */
#sod_bsk .sod_opt{
  margin-top: 10px !important;
  padding: 12px 12px !important;
  border-radius:18px !important;
  background: rgba(244,245,247,.75) !important;
  border:1px solid rgba(15,17,21,.08) !important;
  color: var(--ww-sub) !important;
  font-size:12px !important;
  font-weight:900 !important;
  line-height:1.6 !important;
}
#sod_bsk .sod_opt *{
  font-size:12px !important;
  font-weight:900 !important;
  color: var(--ww-sub) !important;
}

/* 가격/수량/배송/포인트 */
#sod_bsk .li_prqty{
  display:grid !important;
  grid-template-columns: repeat(4, minmax(0,1fr)) !important;
  gap:10px !important;
  margin-top: 12px !important;
}
#sod_bsk .li_prqty .li_prqty_sp{
  border-radius:18px !important;
  border:1px solid rgba(15,17,21,.08) !important;
  background:#fff !important;
  padding: 12px 12px !important;
  box-shadow: 0 10px 22px rgba(10,14,20,.05) !important;
  font-size:13px !important;
  font-weight:950 !important;
  color: var(--ww-ink) !important;
}
#sod_bsk .li_prqty .li_prqty_sp > span{
  display:block !important;
  font-size:11px !important;
  font-weight:950 !important;
  color: var(--ww-muted) !important;
  letter-spacing:.8px !important;
  margin-bottom:6px !important;
}
#sod_bsk .li_prqty .total_point strong{
  color: var(--ww-gold) !important;
  font-weight:950 !important;
}

/* 상품 소계(우측 금액) */
#sod_bsk .total_price.total_span{
  margin-top: 12px !important;
  padding: 14px 14px !important;
  border-radius:18px !important;
  border:1px solid rgba(184,155,106,.25) !important;
  background: rgba(184,155,106,.10) !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:10px !important;
}
#sod_bsk .total_price.total_span strong{
  font-size:16px !important;
  font-weight:950 !important;
  color: var(--ww-ink) !important;
}

/* 삭제/비우기 버튼 */
#sod_bsk .btn_del_wr{
  display:flex !important;
  gap:10px !important;
  margin: 14px 0 0 !important;
}
#sod_bsk .btn_del_wr .btn01{
  flex:1 !important;
  padding: 12px 12px !important;
  border-radius:16px !important;
  border:1px solid rgba(15,17,21,.10) !important;
  background:#fff !important;
  color: var(--ww-sub) !important;
  font-size:13px !important;
  font-weight:950 !important;
  cursor:pointer !important;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease !important;
}
#sod_bsk .btn_del_wr .btn01:hover{
  transform: translateY(-1px) !important;
  box-shadow: 0 14px 30px rgba(10,14,20,.10) !important;
  border-color: rgba(184,155,106,.28) !important;
  color: var(--ww-ink) !important;
}

/* 빈 장바구니 */
#sod_bsk .empty_list{
  padding: 70px 16px !important;
  text-align:center !important;
  color: var(--ww-muted) !important;
  font-size:13px !important;
  font-weight:900 !important;
  border-radius:22px !important;
  border:1px solid rgba(15,17,21,.10) !important;
  background:#fff !important;
  box-shadow: 0 14px 30px rgba(10,14,20,.06) !important;
}

/* 계속 쇼핑 버튼 */
#sod_bsk .go_shopping .btn01{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding: 12px 16px !important;
  border-radius:16px !important;
  border:1px solid rgba(15,17,21,.10) !important;
  background:#fff !important;
  color: var(--ww-sub) !important;
  font-size:13px !important;
  font-weight:950 !important;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease !important;
}
#sod_bsk .go_shopping .btn01:hover{
  transform: translateY(-1px) !important;
  box-shadow: 0 14px 30px rgba(10,14,20,.10) !important;
  border-color: rgba(184,155,106,.28) !important;
  color: var(--ww-ink) !important;
}

/* 옵션수정 팝업 배경 */
#sod_bsk .mod_option_bg{
  background: rgba(10,14,20,.55) !important;
  backdrop-filter: blur(6px) !important;
  -webkit-backdrop-filter: blur(6px) !important;
}

/* 반응형 */
@media (max-width: 1024px){
  #sod_bsk .cart-layout{
    grid-template-columns: 1fr 340px !important;
  }
}
@media (max-width: 900px){
  #sod_bsk .cart-layout{
    grid-template-columns: 1fr !important;
  }
  #sod_bsk .cart-summary{
    position:relative !important;
    top:auto !important;
  }
  #sod_bsk .cart-header-row{
    display:none !important;
  }
}
@media (max-width: 640px){
  #sod_bsk.cart-page-wrap{ padding: 14px 12px 90px !important; }
  #sod_bsk .li_op_wr{
    grid-template-columns: 32px 64px 1fr !important;
    grid-template-areas:
      "chk img name"
      "chk img mod" !important;
    gap:10px !important;
  }
  #sod_bsk .li_chk{ grid-area: chk !important; }
  #sod_bsk .total_img{ grid-area: img !important; width:64px !important; height:64px !important; border-radius:14px !important; }
  #sod_bsk .li_name{ grid-area: name !important; font-size:13px !important; }
  #sod_bsk .li_mod{ grid-area: mod !important; justify-self:start !important; }

  #sod_bsk .li_prqty{
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
  }
  #sod_bsk .total_price.total_span{
    justify-content:space-between !important;
  }

  /* 모바일에서는 라벨 1줄 고정이 너무 빡세면 여기서만 풀어줘도 됨 */
  #sod_bsk #m_sod_bsk_tot dt{
    white-space: nowrap !important;
    font-size: 12px !important;
  }
}
