/* ───────────────────────────────────────────────────────────────
 * K-Promo — PATCH 4.0: Корзина (Cart page, Шаг 1 из 3).
 * ───────────────────────────────────────────────────────────────
 * Адаптация cart.css из handoff (k-promo/project/cart.css) под
 * наш скоуп: префикс .kp-cart-* / .kp-sum-* и обёртка body.kp-body,
 * чтобы не задевать стандартные WC-классы (.cart_item, .quantity и др.).
 *
 * Используемые токены (--paper, --ink, --line, --fog, --yellow-*,
 * --eco, --hot, --radius, --shadow-card) уже определены в main.css.
 *
 * Подключается ПОСЛЕ patch-3.4-search.css.
 * ─────────────────────────────────────────────────────────────── */


/* ═══════════════════════════════════════════════════════════════
 * Page header
 * ═══════════════════════════════════════════════════════════════ */
body.kp-body .kp-cart-page{background:var(--paper);padding:32px 0 80px;min-height:60vh}
body.kp-body .kp-cart-back{display:inline-flex;align-items:center;gap:6px;
  font-weight:700;font-size:13px;letter-spacing:normal;text-transform:uppercase;
  color:var(--ink-3);text-decoration:none;margin-bottom:24px;transition:color .15s}
body.kp-body .kp-cart-back:hover{color:var(--ink)}
body.kp-body .kp-cart-back svg{transform:rotate(180deg);stroke:currentColor}

body.kp-body .kp-cart-head{margin-bottom:40px}
body.kp-body .kp-cart-head-kicker{font-weight:700;font-size:12px;letter-spacing:normal;
  text-transform:uppercase;color:var(--ink-3);margin-bottom:12px}
body.kp-body .kp-cart-head-row{display:flex;align-items:baseline;justify-content:space-between;
  gap:32px;flex-wrap:wrap}
body.kp-body .kp-cart-head-h{margin:0;font-weight:900;font-size:56px;line-height:1;
  letter-spacing:normal;text-transform:uppercase;color:var(--ink)}
body.kp-body .kp-cart-head-blurb{margin:0;max-width:420px;font-size:15px;line-height:1.55;
  color:var(--ink-2);padding-top:8px}
body.kp-body .kp-cart-bar{display:block;width:64px;height:4px;background:var(--yellow);margin-top:18px}


/* ═══════════════════════════════════════════════════════════════
 * Two-column grid
 * ═══════════════════════════════════════════════════════════════ */
body.kp-body .kp-cart-grid{display:grid;grid-template-columns:1fr 380px;gap:32px;
  align-items:start;margin-top:32px}


/* ═══════════════════════════════════════════════════════════════
 * LEFT — items panel
 * ═══════════════════════════════════════════════════════════════ */
body.kp-body .kp-cart-panel{background:#fff;border:1px solid var(--line);
  border-radius:var(--radius);overflow:hidden}
body.kp-body .kp-cart-panel-head{display:flex;align-items:center;justify-content:space-between;
  gap:24px;padding:18px 24px;border-bottom:1px solid var(--line);flex-wrap:wrap}
body.kp-body .kp-cart-panel-head-left{display:flex;align-items:center;gap:14px}
body.kp-body .kp-cart-panel-h{font-weight:900;font-size:14px;letter-spacing:normal;
  text-transform:uppercase;color:var(--ink)}
body.kp-body .kp-cart-panel-count{display:inline-flex;align-items:center;justify-content:center;
  min-width:24px;height:22px;padding:0 7px;background:var(--ink);color:var(--yellow);
  font-weight:900;font-size:11px;border-radius:4px;font-feature-settings:"tnum"}
body.kp-body .kp-cart-clear{display:inline-flex;align-items:center;gap:6px;background:none;
  border:0;cursor:pointer;font-weight:700;font-size:12px;letter-spacing:normal;
  text-transform:uppercase;color:var(--ink-3);padding:6px 8px;border-radius:4px;
  font-family:inherit;transition:all .15s;text-decoration:none}
body.kp-body .kp-cart-clear:hover{color:var(--hot);background:var(--fog)}
body.kp-body .kp-cart-clear svg{stroke:currentColor;stroke-width:2}

body.kp-body .kp-cart-panel-flags{display:flex;gap:18px;flex-wrap:wrap}
body.kp-body .kp-cart-flag{display:inline-flex;align-items:center;gap:8px;cursor:pointer;
  font-size:13px;color:var(--ink-2);user-select:none}
body.kp-body .kp-cart-flag input{display:none}
body.kp-body .kp-cart-flag-box{width:18px;height:18px;border:1.5px solid var(--ink-3);
  border-radius:4px;display:grid;place-items:center;background:#fff;transition:all .15s;
  flex-shrink:0}
body.kp-body .kp-cart-flag-box svg{opacity:0;transition:opacity .15s;color:var(--ink)}
body.kp-body .kp-cart-flag input:checked + .kp-cart-flag-box{background:var(--yellow);
  border-color:var(--ink)}
body.kp-body .kp-cart-flag input:checked + .kp-cart-flag-box svg{opacity:1}
body.kp-body .kp-cart-flag:hover .kp-cart-flag-box{border-color:var(--ink)}


/* ═══════════════════════════════════════════════════════════════
 * Empty state
 * ═══════════════════════════════════════════════════════════════ */
body.kp-body .kp-cart-empty{display:flex;flex-direction:column;align-items:center;
  text-align:center;padding:64px 32px;gap:18px}
body.kp-body .kp-cart-empty-icon{width:96px;height:96px;border-radius:50%;
  background:var(--yellow-soft);display:grid;place-items:center;color:var(--ink);position:relative}
body.kp-body .kp-cart-empty-icon::after{content:"0";position:absolute;right:-4px;top:-4px;
  width:36px;height:36px;background:var(--ink);color:var(--yellow);font-weight:900;font-size:16px;
  border-radius:50%;display:grid;place-items:center;font-feature-settings:"tnum";
  border:3px solid var(--paper)}
body.kp-body .kp-cart-empty-h{margin:0;font-weight:900;font-size:24px;letter-spacing:normal;
  text-transform:uppercase;color:var(--ink)}
body.kp-body .kp-cart-empty-sub{margin:0;max-width:360px;font-size:14px;line-height:1.55;
  color:var(--ink-2)}
body.kp-body .kp-cart-empty-cta{display:inline-flex;align-items:center;gap:10px;height:48px;
  padding:0 22px;background:var(--yellow);color:var(--ink);font-weight:800;font-size:13px;
  letter-spacing:normal;text-transform:uppercase;border-radius:8px;text-decoration:none;
  border:0;cursor:pointer;font-family:inherit;margin-top:6px;transition:all .15s}
body.kp-body .kp-cart-empty-cta:hover{background:var(--yellow-hover);transform:translateY(-1px);
  box-shadow:var(--shadow-card)}


/* ═══════════════════════════════════════════════════════════════
 * Item rows
 * ═══════════════════════════════════════════════════════════════ */
body.kp-body .kp-cart-items{display:flex;flex-direction:column}
body.kp-body .kp-cart-row{display:grid;
  grid-template-columns:96px minmax(0,1fr) 150px 110px 150px 32px;
  gap:18px;align-items:start;padding:20px 24px;border-bottom:1px solid var(--line);
  transition:background .15s}
body.kp-body .kp-cart-row:last-child{border-bottom:0}
body.kp-body .kp-cart-row:hover{background:var(--fog)}
body.kp-body .kp-cart-thumb{width:96px;height:96px;border-radius:8px;overflow:hidden;
  background:var(--fog);flex-shrink:0}
body.kp-body .kp-cart-thumb img{width:100%;height:100%;object-fit:cover;display:block}
body.kp-body .kp-cart-thumb a{display:block;width:100%;height:100%}

body.kp-body .kp-cart-meta{display:flex;flex-direction:column;gap:6px;min-width:0;
  padding-top:2px;overflow:hidden}
body.kp-body .kp-cart-meta>*{min-width:0;max-width:100%}
body.kp-body .kp-cart-name{font-weight:700;font-size:15px;line-height:1.35;color:var(--ink);
  text-decoration:none;text-wrap:pretty}
body.kp-body .kp-cart-name:hover{color:var(--ink-2)}
body.kp-body .kp-cart-info{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;
  color:var(--ink-3);font-feature-settings:"tnum"}
body.kp-body .kp-cart-info span{display:inline-flex;align-items:center;gap:4px}
body.kp-body .kp-cart-info b{font-weight:700;color:var(--ink-2);letter-spacing:normal}

body.kp-body .kp-cart-add-brand{display:inline-flex;align-items:center;gap:6px;margin-top:6px;
  align-self:flex-start;font-weight:700;font-size:11px;letter-spacing:normal;text-transform:uppercase;
  color:var(--ink);background:var(--yellow-soft);padding:6px 10px;border-radius:4px;
  text-decoration:none;border:1px dashed var(--ink);transition:all .15s;cursor:pointer;
  font-family:inherit}
body.kp-body .kp-cart-add-brand:hover:not([disabled]){background:var(--yellow);border-style:solid}
body.kp-body .kp-cart-add-brand.has-brand{background:var(--yellow);border-style:solid;
  border-color:var(--yellow)}
body.kp-body .kp-cart-add-brand[disabled]{opacity:.55;cursor:not-allowed}
body.kp-body .kp-cart-add-brand svg{stroke:currentColor}

body.kp-body .kp-cart-variant{display:flex;flex-direction:column;gap:4px;padding-top:2px}
body.kp-body .kp-cart-variant-l{font-size:11px;font-weight:700;letter-spacing:normal;
  text-transform:uppercase;color:var(--ink-3)}
body.kp-body .kp-cart-variant-v{display:inline-flex;align-items:center;gap:8px;
  font-weight:700;font-size:13px;color:var(--ink)}
body.kp-body .kp-cart-variant-sw{width:14px;height:14px;border-radius:50%;
  border:1.5px solid var(--ink);flex-shrink:0}

body.kp-body .kp-cart-qty-cell{display:flex;flex-direction:column;gap:4px;padding-top:2px}
body.kp-body .kp-cart-qty{display:inline-flex;align-items:stretch;background:#fff;
  border:1.5px solid var(--ink);border-radius:6px;height:38px;overflow:hidden;width:fit-content}
/* WC рендерит свой div.quantity внутри — подмажем под наш layout */
body.kp-body .kp-cart-qty .quantity{display:flex;align-items:stretch;margin:0;border:0}
body.kp-body .kp-cart-qty input.qty,
body.kp-body .kp-cart-qty input[type="number"]{flex:1;width:60px;min-width:0;border:0;outline:0;
  background:transparent;text-align:center;font-weight:800;font-size:14px;color:var(--ink);
  font-feature-settings:"tnum";font-family:inherit;height:100%;padding:0;
  -moz-appearance:textfield}
body.kp-body .kp-cart-qty input.qty::-webkit-outer-spin-button,
body.kp-body .kp-cart-qty input.qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
body.kp-body .kp-cart-qty-fixed{display:grid;place-items:center;padding:0 18px;
  font-weight:800;font-size:14px;color:var(--ink)}
body.kp-body .kp-cart-qty-stock{font-size:11px;color:var(--ink-3);font-feature-settings:"tnum"}
body.kp-body .kp-cart-qty-stock b{color:var(--eco);font-weight:700}

body.kp-body .kp-cart-price-cell{display:flex;flex-direction:column;align-items:flex-end;
  gap:4px;padding-top:2px;text-align:right}
body.kp-body .kp-cart-price{font-weight:900;font-size:18px;color:var(--ink);
  font-feature-settings:"tnum";letter-spacing:normal;white-space:nowrap}
body.kp-body .kp-cart-price-u{font-weight:800;font-size:13px;color:var(--ink-3);margin-left:3px}
body.kp-body .kp-cart-price-per{font-size:11px;color:var(--ink-3);font-feature-settings:"tnum"}

body.kp-body .kp-cart-x{width:32px;height:32px;border-radius:50%;background:transparent;
  border:0;display:grid;place-items:center;color:var(--ink-3);cursor:pointer;
  transition:all .15s;justify-self:end;text-decoration:none}
body.kp-body .kp-cart-x:hover{background:#FFE5E5;color:var(--hot)}

/* Скрытая стандартная WC update_cart кнопка — потребуется JS-ом форме */
body.kp-body .kp-cart-actions[hidden]{display:none !important}


/* ═══════════════════════════════════════════════════════════════
 * RIGHT — summary sidebar
 * ═══════════════════════════════════════════════════════════════ */
body.kp-body .kp-cart-side{position:sticky;top:24px;display:flex;flex-direction:column;gap:16px}

body.kp-body .kp-sum-card{background:#fff;border:1px solid var(--line);
  border-radius:var(--radius);overflow:hidden}
body.kp-body .kp-sum-head{padding:18px 22px;border-bottom:1px solid var(--line)}
body.kp-body .kp-sum-h{font-weight:900;font-size:14px;letter-spacing:normal;text-transform:uppercase;
  color:var(--ink);margin-bottom:4px}
body.kp-body .kp-sum-h-count{font-size:13px;color:var(--ink-3);font-feature-settings:"tnum"}

body.kp-body .kp-sum-add-mock{display:flex;align-items:center;gap:10px;width:100%;
  padding:14px 22px;background:transparent;border:0;border-bottom:1px solid var(--line);
  cursor:pointer;font-family:inherit;font-weight:700;font-size:13px;color:var(--ink);
  transition:background .15s;text-align:left}
body.kp-body .kp-sum-add-mock:hover:not([disabled]){background:var(--fog)}
body.kp-body .kp-sum-add-mock[disabled]{cursor:not-allowed;opacity:.65}
body.kp-body .kp-sum-add-mock svg{flex-shrink:0;color:var(--ink);stroke:currentColor}
body.kp-body .kp-sum-add-mock .kp-sum-add-text{flex:1;letter-spacing:normal}
body.kp-body .kp-sum-add-mock .kp-sum-add-info{width:18px;height:18px;border-radius:50%;
  background:var(--fog);display:grid;place-items:center;color:var(--ink-3);font-size:11px;
  font-weight:900;flex-shrink:0}

body.kp-body .kp-sum-rows{padding:14px 22px;display:flex;flex-direction:column;gap:10px;
  border-bottom:1px solid var(--line)}
body.kp-body .kp-sum-row{display:flex;align-items:baseline;justify-content:space-between;
  gap:12px;font-size:14px;color:var(--ink-2)}
body.kp-body .kp-sum-row b{color:var(--ink);font-weight:900;font-feature-settings:"tnum";
  font-size:16px}
body.kp-body .kp-sum-row.is-total b{font-size:24px;letter-spacing:normal}
body.kp-body .kp-sum-row-u{font-weight:800;font-size:13px;color:var(--ink-3);margin-left:3px}

body.kp-body .kp-sum-notes{padding:14px 22px;background:var(--fog);border-bottom:1px solid var(--line)}
body.kp-body .kp-sum-notes-h{font-weight:900;font-size:11px;letter-spacing:normal;
  text-transform:uppercase;color:var(--ink);margin-bottom:8px}
body.kp-body .kp-sum-notes ul{list-style:none;padding:0;margin:0;display:flex;
  flex-direction:column;gap:6px}
body.kp-body .kp-sum-notes li{position:relative;padding-left:14px;font-size:12px;
  line-height:1.45;color:var(--ink-2)}
body.kp-body .kp-sum-notes li::before{content:"";position:absolute;left:0;top:6px;
  width:6px;height:6px;background:var(--yellow);border-radius:1px}

body.kp-body .kp-sum-cta-wrap{padding:18px 22px;display:flex;flex-direction:column;gap:14px}
body.kp-body .kp-sum-cta{display:flex;align-items:center;justify-content:center;gap:10px;
  width:100%;height:52px;background:var(--yellow);color:var(--ink);font-weight:900;font-size:13px;
  letter-spacing:normal;text-transform:uppercase;border:0;border-radius:8px;cursor:pointer;
  font-family:inherit;transition:all .15s;text-decoration:none;box-sizing:border-box}
body.kp-body .kp-sum-cta:hover:not(.is-disabled){background:var(--yellow-hover);
  transform:translateY(-1px);box-shadow:var(--shadow-card)}
body.kp-body .kp-sum-cta.is-disabled{background:var(--fog);color:var(--ink-3);
  cursor:not-allowed;transform:none;box-shadow:none;pointer-events:none}
body.kp-body .kp-sum-cta svg{stroke:currentColor}

body.kp-body .kp-sum-warn{display:grid;grid-template-columns:auto 1fr;gap:12px;padding:14px 18px;
  background:#FFF1F1;border:1px solid #FECACA;border-radius:8px;align-items:flex-start}
body.kp-body .kp-sum-warn-icon{width:24px;height:24px;border-radius:50%;background:#FECACA;
  color:var(--hot);display:grid;place-items:center;flex-shrink:0}
body.kp-body .kp-sum-warn-body{font-size:12px;line-height:1.45;color:var(--ink-2)}
body.kp-body .kp-sum-warn-body b{color:var(--ink);font-weight:800;display:block;
  margin-bottom:2px;font-size:13px}
body.kp-body .kp-sum-warn-body em{font-style:normal;color:var(--hot);font-weight:900;
  font-feature-settings:"tnum"}

body.kp-body .kp-sum-ok{display:grid;grid-template-columns:auto 1fr;gap:12px;padding:14px 18px;
  background:#F0F9F0;border:1px solid #C7E5C7;border-radius:8px;align-items:center}
body.kp-body .kp-sum-ok-icon{width:24px;height:24px;border-radius:50%;background:var(--eco);
  color:#fff;display:grid;place-items:center;flex-shrink:0}
body.kp-body .kp-sum-ok b{display:block;color:var(--ink);font-weight:800;font-size:13px;
  margin-bottom:2px}
body.kp-body .kp-sum-ok span{font-size:12px;color:var(--ink-2);line-height:1.4}


/* ═══════════════════════════════════════════════════════════════
 * Accordion blocks
 * ═══════════════════════════════════════════════════════════════ */
body.kp-body .kp-sum-acc{background:#fff;border:1px solid var(--line);
  border-radius:var(--radius);overflow:hidden}
body.kp-body .kp-sum-acc-item{border-bottom:1px solid var(--line)}
body.kp-body .kp-sum-acc-item:last-child{border-bottom:0}
body.kp-body .kp-sum-acc-head{display:flex;align-items:center;justify-content:space-between;
  width:100%;padding:16px 22px;background:transparent;border:0;cursor:pointer;
  font-family:inherit;font-weight:800;font-size:13px;letter-spacing:normal;text-transform:uppercase;
  color:var(--ink);text-align:left;transition:background .15s}
body.kp-body .kp-sum-acc-head:hover:not([disabled]){background:var(--fog)}
body.kp-body .kp-sum-acc-head[disabled]{cursor:default}
body.kp-body .kp-sum-acc-head svg{flex-shrink:0;color:var(--ink-3);transition:transform .2s;
  stroke:currentColor}
body.kp-body .kp-sum-acc-item.is-open .kp-sum-acc-head{background:var(--yellow-soft);
  border-left:4px solid var(--yellow);padding-left:18px}
body.kp-body .kp-sum-acc-item.is-open .kp-sum-acc-head svg{transform:rotate(180deg);
  color:var(--ink)}
body.kp-body .kp-sum-acc-body{padding:0 22px 18px;font-size:13px;line-height:1.55;
  color:var(--ink-2);display:none}
body.kp-body .kp-sum-acc-item.is-open .kp-sum-acc-body{display:block}
body.kp-body .kp-sum-acc-body p{margin:0 0 8px}
body.kp-body .kp-sum-acc-body p:last-child{margin:0}
body.kp-body .kp-sum-acc-body b{color:var(--ink);font-weight:700}


/* ═══════════════════════════════════════════════════════════════
 * Compact bottom CTA banner
 * ═══════════════════════════════════════════════════════════════ */
body.kp-body .kp-cart-banner{background:var(--ink);color:#fff;padding:48px 0;margin-top:64px}
body.kp-body .kp-cart-banner-row{display:grid;grid-template-columns:auto 1fr auto;gap:32px;
  align-items:center}
body.kp-body .kp-cart-banner-icon{width:72px;height:72px;border-radius:50%;background:var(--yellow);
  display:grid;place-items:center;color:var(--ink);flex-shrink:0}
body.kp-body .kp-cart-banner-h{margin:0 0 6px;font-weight:900;font-size:28px;
  letter-spacing:normal;text-transform:uppercase;line-height:1.1;color:#fff}
body.kp-body .kp-cart-banner-sub{margin:0;font-size:14px;line-height:1.5;
  color:rgba(255,255,255,.7);max-width:520px}
body.kp-body .kp-cart-banner-cta{display:inline-flex;align-items:center;gap:10px;height:52px;
  padding:0 26px;background:var(--yellow);color:var(--ink);font-weight:900;font-size:13px;
  letter-spacing:normal;text-transform:uppercase;border-radius:8px;text-decoration:none;border:0;
  cursor:pointer;font-family:inherit;transition:all .15s}
body.kp-body .kp-cart-banner-cta:hover{background:var(--yellow-hover);transform:translateY(-1px)}


/* ═══════════════════════════════════════════════════════════════
 * Responsive
 * ═══════════════════════════════════════════════════════════════ */
@media (max-width:1240px){
  body.kp-body .kp-cart-grid{grid-template-columns:1fr 340px;gap:24px}
}
@media (max-width:1180px){
  body.kp-body .kp-cart-row{grid-template-columns:88px minmax(0,1fr) 32px;gap:10px 16px;
    padding:18px;align-items:start}
  body.kp-body .kp-cart-thumb{grid-column:1;grid-row:1;width:88px;height:88px}
  body.kp-body .kp-cart-meta{grid-column:2;grid-row:1}
  body.kp-body .kp-cart-x{grid-column:3;grid-row:1;justify-self:end}
  body.kp-body .kp-cart-variant{grid-column:2 / -1;grid-row:2;padding-top:4px}
  body.kp-body .kp-cart-qty-cell{grid-column:2 / -1;grid-row:3;padding-top:0}
  body.kp-body .kp-cart-price-cell{grid-column:2 / -1;grid-row:4;align-items:flex-start;
    text-align:left;padding-top:0}
  body.kp-body .kp-cart-head-h{font-size:44px}
}
@media (max-width:900px){
  body.kp-body .kp-cart-grid{grid-template-columns:1fr}
  body.kp-body .kp-cart-side{position:static}
  body.kp-body .kp-cart-head-h{font-size:36px}
  body.kp-body .kp-cart-banner-row{grid-template-columns:auto 1fr;gap:20px}
  body.kp-body .kp-cart-banner-cta{grid-column:1/-1;justify-self:start}
}
@media (max-width:680px){
  body.kp-body .kp-cart-row{grid-template-columns:72px minmax(0,1fr) 28px;gap:14px;padding:16px}
  body.kp-body .kp-cart-thumb{width:72px;height:72px}
  body.kp-body .kp-cart-banner-row{grid-template-columns:1fr;text-align:left;gap:18px}
  body.kp-body .kp-cart-head-h{font-size:30px}
  body.kp-body .kp-cart-panel-flags{gap:10px;width:100%}
  body.kp-body .kp-cart-panel-head{gap:14px}
}
