/* PS Cart Drawer — design-handoff implementation, no tabs */
.pscsd-root { position: fixed; inset: 0; z-index: 99990; display: none; justify-content: flex-end; font-family: Barlow, system-ui, sans-serif; color: #141414; }
.pscsd-root.open { display: flex; }
.pscsd-overlay { position: absolute; inset: 0; background: rgba(20,20,20,.42); backdrop-filter: blur(2px); }
.pscsd-panel { position: relative; width: 520px; max-width: 92vw; height: 100%; background: #fff; display: flex; flex-direction: column; box-shadow: -30px 0 70px -30px rgba(20,20,20,.5); transform: translateX(30px); opacity: 0; transition: transform .28s ease, opacity .28s ease; }
.pscsd-root.open .pscsd-panel { transform: none; opacity: 1; }
.pscsd-head { padding: 24px 28px 18px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #E3DCD0; }
.pscsd-title { font-size: 13px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.pscsd-title small { color: #8C8478; font-weight: 700; margin-left: 8px; letter-spacing: .12em; }
.pscsd-close { border: none; background: transparent; font-family: inherit; font-size: 12px; letter-spacing: .1em; color: #6B6458; cursor: pointer; padding: 4px; }
.pscsd-body { flex: 1; overflow-y: auto; padding: 4px 28px; }
.pscsd-item { display: grid; grid-template-columns: 92px 1fr; gap: 18px; padding: 22px 0; border-bottom: 1px solid #E3DCD0; }
.pscsd-img { width: 92px; aspect-ratio: 1/1; background: #F7F5F2; overflow: hidden; }
.pscsd-img div { width: 100%; height: 100%; background-size: cover; background-position: center; }
.pscsd-meta { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.pscsd-name { font-size: 12.5px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; line-height: 1.35; }
.pscsd-price { display: flex; align-items: baseline; gap: 8px; font-size: 13px; margin-top: 6px; flex-wrap: wrap; }
.pscsd-price del { color: #8C8478; }
.pscsd-price ins { color: #C06B4A; font-weight: 800; text-decoration: none; }
.pscsd-chip { background: #141414; color: #fff; font-size: 9px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; padding: 3px 7px; }
.pscsd-variant { font-size: 12.5px; color: #6B6458; line-height: 1.6; margin-top: 6px; }
.pscsd-qty { display: flex; align-items: center; border: 1px solid #D2CABC; flex: none; }
.pscsd-qty button { width: 32px; height: 32px; border: none; background: transparent; font-family: inherit; font-size: 15px; cursor: pointer; color: #46413A; }
.pscsd-qty button:hover { background: #F7F5F2; }
.pscsd-qty span { width: 34px; text-align: center; font-size: 13px; font-weight: 700; }
.pscsd-recs { padding: 26px 0 8px; }
.pscsd-recs-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 16px; }
.pscsd-recs-head b { font-size: 11px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.pscsd-recs-head span { font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: #C06B4A; }
.pscsd-recs-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.pscsd-rec { display: flex; flex-direction: column; gap: 8px; }
.pscsd-rec .im { aspect-ratio: 1/1; background: #F7F5F2; overflow: hidden; }
.pscsd-rec .im div { width: 100%; height: 100%; background-size: cover; background-position: center; }
.pscsd-rec .nm { font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; line-height: 1.4; }
.pscsd-rec button { border: 1px solid #141414; background: transparent; font-family: inherit; padding: 7px 0; font-size: 9.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; cursor: pointer; color: #141414; }
.pscsd-rec button:hover { background: #141414; color: #fff; }
.pscsd-foot { border-top: 1px solid #E3DCD0; padding: 20px 28px 24px; background: #F7F5F2; }
.pscsd-row { display: flex; justify-content: space-between; font-size: 13.5px; color: #46413A; margin-top: 7px; }
.pscsd-row:first-child { margin-top: 0; }
.pscsd-row .neg { color: #C06B4A; }
.pscsd-total { display: flex; align-items: baseline; justify-content: space-between; margin-top: 14px; padding-top: 14px; border-top: 1px solid #E3DCD0; }
.pscsd-total b { font-size: 12px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.pscsd-total strong { font-size: 24px; font-weight: 900; letter-spacing: -.02em; }
.pscsd-ship { font-size: 12px; color: #6B6458; margin-top: 8px; }
.pscsd-btns { display: grid; grid-template-columns: 1fr 1.2fr; gap: 10px; margin-top: 16px; }
.pscsd-btns a { height: 50px; display: flex; align-items: center; justify-content: center; font-size: 10.5px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; cursor: pointer; text-decoration: none !important; }
.pscsd-continue { border: 1.5px solid #141414; color: #141414 !important; background: transparent; }
.pscsd-continue:hover { background: #141414; color: #fff !important; }
.pscsd-checkout { border: none; background: #C06B4A; color: #fff !important; }
.pscsd-checkout:hover { background: #A85838; }
.pscsd-empty { padding: 60px 0; text-align: center; color: #6B6458; font-size: 14px; }
.pscsd-empty a { color: #C06B4A !important; }
body.pscsd-lock { overflow: hidden; }
@media (max-width: 640px) { .pscsd-panel { width: 100vw; max-width: 100vw; } .pscsd-body, .pscsd-head, .pscsd-foot { padding-left: 20px; padding-right: 20px; } }

/* ============ v1.12.0 — design-matched item rows + mobile full-height ============ */
.pscsd-panel { height: 100dvh; }
.pscsd-item { grid-template-columns: 96px 1fr; align-items: start; }
.pscsd-img { width: 96px; }
.pscsd-main { min-width: 0; }
.pscsd-variant { margin-top: 5px; }
.pscsd-itemfoot { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 14px; }
.pscsd-price { margin-top: 0; }
.pscsd-price ins { font-size: 16px; }
.pscsd-qty button { width: 38px; height: 38px; }
.pscsd-qty span { width: 36px; }
@media (max-width: 640px) {
  .pscsd-item { grid-template-columns: 116px 1fr; gap: 16px; padding: 24px 0; }
  .pscsd-img { width: 116px; }
  .pscsd-name { font-size: 13px; }
  .pscsd-variant { font-size: 13px; }
  .pscsd-price del, .pscsd-chip { display: none; } /* mobile rows: single clean price, per design */
  .pscsd-price ins { font-size: 17px; font-weight: 800; }
  .pscsd-qty button { width: 42px; height: 42px; font-size: 17px; }
  .pscsd-qty span { width: 38px; font-size: 14px; }
  .pscsd-total strong { font-size: 27px; }
  .pscsd-btns { grid-template-columns: 1fr; }
  .pscsd-checkout { order: -1; height: 54px; font-size: 11.5px; }
  .pscsd-continue { border: none; height: 40px; text-decoration: underline !important; text-underline-offset: 3px; }
  .pscsd-continue:hover { background: transparent; color: #141414 !important; }
}

/* ============ v1.12.1 — mobile: summary flows after content (no pinned void) ============ */
@media (max-width: 640px) {
  .pscsd-panel { display: block; overflow-y: auto; }
  .pscsd-body { flex: none; overflow: visible; }
  .pscsd-foot { border-top: 1px solid #E3DCD0; }
  .pscsd-head { position: sticky; top: 0; background: #fff; z-index: 5; }
}

/* ============ v1.12.2 — retire Elementor's mini-cart panel ============ */
.elementor-menu-cart__container { display: none !important; }
body.elementor-menu-cart--shown { overflow: auto !important; }
