/* css/cart.css
   Корзина: таблица, итог, форма оформления.
*/

.cart-page{
  display:grid;gap:32px;
  grid-template-columns:minmax(0, 1fr) 360px;
  align-items:start;
}
@media (max-width:900px){ .cart-page{grid-template-columns:1fr} }

.cart-title{margin:0 0 20px;font-size:26px;font-weight:800}

/* ---------- Таблица ---------- */
.cart-table{
  width:100%;border-collapse:collapse;font-size:14px;
  background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);
  overflow:hidden;
}
.cart-table thead th{
  text-align:left;padding:12px 14px;background:var(--c-bg-soft);
  font-weight:600;color:var(--c-muted);font-size:13px;
  border-bottom:1px solid var(--c-border);
}
.cart-table thead th.is-num,
.cart-table tbody td.is-num{text-align:right;white-space:nowrap}
.cart-table tbody td{
  padding:14px;border-bottom:1px solid var(--c-border);vertical-align:middle;
}
.cart-table tbody tr:last-child td{border-bottom:0}

.cart-product{display:flex;gap:14px;align-items:center;min-width:240px}
.cart-product__img{
  flex:0 0 64px;width:64px;height:64px;
  display:flex;align-items:center;justify-content:center;
  background:var(--c-bg-soft);border-radius:var(--radius);
  overflow:hidden;
}
.cart-product__img img{max-width:100%;max-height:100%;object-fit:contain}
.cart-product__name{font-weight:600;color:var(--c-text)}
.cart-product__name:hover{color:var(--c-primary)}
.cart-product__desc{color:var(--c-muted);font-size:13px;margin-top:2px}

/* Счётчик +/- (в таблице) */
.cart-table .num-in{
  display:inline-flex;align-items:center;
  border:1px solid var(--c-border);border-radius:var(--radius);overflow:hidden;
  height:36px;
}
.cart-table .minus,
.cart-table .plus{
  width:32px;height:36px;display:grid;place-items:center;
  background:var(--c-bg-soft);color:var(--c-text);font-size:16px;font-weight:700;line-height:1;
}
.cart-table .minus:hover,
.cart-table .plus:hover{background:#eef2f7}
.cart-table .minus.dis{opacity:.4;pointer-events:none;cursor:default}
.cart-table .in-num{
  width:44px;height:36px;text-align:center;border:0;background:#fff;font-weight:600;
}

.row-total{font-weight:700}
.row-remove{
  display:inline-grid;place-items:center;width:32px;height:32px;border-radius:50%;
  background:var(--c-bg-soft);color:var(--c-muted);
  transition:background .15s,color .15s;
}
.row-remove:hover{background:#fee2e2;color:var(--c-danger)}
.row-remove .feather{width:16px;height:16px;stroke:currentColor}

/* ---------- Итог справа ---------- */
.cart-summary{
  position:sticky;top:16px;
  background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);
  padding:20px;
  display:grid;gap:14px;
}
.cart-summary__row{display:flex;justify-content:space-between;align-items:baseline;font-size:14px}
.cart-summary__row b{font-size:20px;font-weight:800}
.cart-summary__total{
  display:flex;justify-content:space-between;align-items:baseline;
  padding-top:12px;border-top:1px solid var(--c-border);
}
.cart-summary__total b{font-size:24px;font-weight:800}
.cart-summary__hint{font-size:12px;color:var(--c-muted);margin:0}

/* ---------- Пустая корзина ---------- */
.cart-empty{
  background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);
  padding:40px 20px;text-align:center;
}
.cart-empty .feather{width:48px;height:48px;stroke:var(--c-muted);margin:0 auto 12px}
.cart-empty h2{margin:0 0 8px;font-size:20px}
.cart-empty p{margin:0 0 20px;color:var(--c-muted)}

/* ---------- Информационная плашка ---------- */
.cart-help{
  display:flex;gap:12px;align-items:flex-start;
  background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af;
  border-radius:var(--radius);padding:14px 16px;font-size:14px;margin-top:20px;
}
.cart-help .feather{flex:0 0 20px;width:20px;height:20px;stroke:currentColor;margin-top:2px}
.cart-help a{color:inherit;font-weight:700;text-decoration:underline}

/* ---------- Форма ---------- */
.form-block{
  margin-top:28px;
  background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);
  padding:24px;
}
.form-block__title{margin:0 0 16px;font-size:18px;font-weight:700}
.form-grid{
  display:grid;gap:16px;
  grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));
}
.form-field{display:grid;gap:6px;min-width:0}
.form-field--full{grid-column:1 / -1}
.form-field label{font-size:13px;color:var(--c-muted);font-weight:600}

.input,
.select,
.textarea{
  width:100%;padding:11px 14px;
  border:1px solid var(--c-border);border-radius:var(--radius);
  background:#fff;outline:none;transition:border-color .15s;
  font-size:15px;
}
.input:focus,.select:focus,.textarea:focus{border-color:var(--c-primary)}
.textarea{min-height:96px;resize:vertical}

.radio-group{display:grid;gap:10px;margin-top:4px}
.radio{
  display:flex;gap:10px;align-items:center;cursor:pointer;
  padding:12px 14px;border:1px solid var(--c-border);border-radius:var(--radius);
  transition:border-color .15s,background .15s;
}
.radio:hover{border-color:var(--c-primary)}
.radio input[type="radio"]{accent-color:var(--c-primary)}
.radio input[type="radio"]:checked + span{font-weight:600}
.radio:has(input:checked){border-color:var(--c-primary);background:#f5f9ff}

.form-row-3{
  display:grid;gap:16px;
  grid-template-columns:2fr 1fr 1fr;
}
@media (max-width:600px){ .form-row-3{grid-template-columns:1fr} }

.form-actions{
  display:flex;gap:12px;flex-wrap:wrap;align-items:center;justify-content:space-between;
  margin-top:24px;padding-top:20px;border-top:1px solid var(--c-border);
}
.form-actions .btn-primary{min-width:220px}

/* ---------- Mobile ---------- */
@media (max-width:767px){
  .cart-table thead{display:none}
  .cart-table,
  .cart-table tbody,
  .cart-table tr,
  .cart-table td{display:block;width:100%}
  .cart-table tr{border-bottom:1px solid var(--c-border);padding:14px}
  .cart-table td{border:0;padding:6px 0}
  .cart-table td.is-num::before{
    content:attr(data-label);
    color:var(--c-muted);margin-right:8px;font-weight:600;
  }
  .cart-summary{position:static}
}