/* Scoped to the cart template; original checkout handlers remain in control. */
.vfc-page { --vfc-red:#c82127; --vfc-line:#e6e8ec; --vfc-muted:#68717f; color:#20252d; padding-bottom:56px; }
.vfc-page *, .vfc-page *::before, .vfc-page *::after { box-sizing:border-box; }
.vfc-page > h1.title { font-size:clamp(28px,4vw,40px); font-weight:750; margin:24px 0; }
.vfc-page .vfc-layout { display:grid; grid-template-columns:minmax(0,1fr); gap:24px; align-items:start; }
.vfc-page .vfc-layout > div { min-width:0; }
.vfc-page .vfc-order-column:empty, .vfc-page .vfc-cart-column:empty { display:none; }
.vfc-page .vfc-section-title { font-size:22px; line-height:1.3; font-weight:700; margin:0 0 20px; }
.vfc-page .vfc-products .table-responsive { overflow:visible; }
.vfc-page .vfc-products table.table, .vfc-page .vfc-products tbody { display:block; width:100%; margin:0; }
.vfc-page .vfc-products tr.header { display:none; }
.vfc-page .vfc-products tr:not(.header):not(.footer) { display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:18px; align-items:end; position:relative; padding:22px; margin:0 0 14px; background:#fff; border:1px solid var(--vfc-line); border-radius:16px; box-shadow:0 3px 12px #17233605; }
.vfc-page .vfc-products td, .vfc-page .vfc-products th { border:0; padding:0; min-width:0; vertical-align:middle; }
.vfc-page .vfc-products td.title { grid-column:1/-1; padding-right:32px; }
.vfc-page .vfc-products td.title > .d-flex { display:flex; align-items:center; gap:16px; }
.vfc-page .vfc-products .image { width:88px; flex:0 0 88px; padding:0!important; margin:0!important; }
.vfc-page .vfc-products .image img { display:block; width:88px; height:88px; max-width:100%; object-fit:contain; border-radius:10px; }
.vfc-page .vfc-products div.title { min-width:0; font-size:16px; line-height:1.45; font-weight:600; overflow-wrap:anywhere; }
.vfc-page .vfc-products div.title a { color:#20252d; text-decoration:none; }
.vfc-page .vfc-products div.title a:hover { color:var(--vfc-red); text-decoration:underline; }
.vfc-page .vfc-products .small { color:var(--vfc-muted); font-weight:400; font-size:13px; margin-top:6px; }
.vfc-page .vfc-products td.count::before { content:'Количество'; }
.vfc-page .vfc-products td.price::before { content:'За штуку'; }
.vfc-page .vfc-products td.cost::before { content:'Сумма'; }
.vfc-page .vfc-products td.count::before, .vfc-page .vfc-products td.price::before, .vfc-page .vfc-products td.cost::before { display:block; margin-bottom:8px; color:var(--vfc-muted); font-size:12px; font-weight:400; }
.vfc-page .vfc-products td.count .form-group { display:flex; gap:8px; flex-wrap:wrap; margin:0; align-items:center; }
.vfc-page .vfc-products td.count .input-group { display:flex; flex-wrap:nowrap; width:94px; }
.vfc-page .vfc-products input[name=count] { width:60px; min-width:0; height:44px; padding:8px; font-size:16px; border:1px solid #b9bfc8; border-radius:8px 0 0 8px; color:#20252d; background:#fff; }
.vfc-page .vfc-products .input-group-append { display:flex; }
.vfc-page .vfc-products .input-group-text { padding:0 6px; height:44px; display:flex; align-items:center; font-size:12px; color:var(--vfc-muted); background:#f5f6f8; border:1px solid #b9bfc8; border-left:0; border-radius:0 8px 8px 0; }
.vfc-page .vfc-products button[value='cart/change'] { min-height:44px; padding:9px 10px; border:1px solid var(--vfc-line); background:#f5f6f8; color:#20252d; border-radius:8px; font-size:12px; }
.vfc-page .vfc-products td.price, .vfc-page .vfc-products td.cost { padding-bottom:9px; font-size:16px; }
.vfc-page .vfc-products td.cost { font-weight:700; text-align:right; }
.vfc-page .vfc-products .mr-2 { margin-right:0!important; }
.vfc-page .vfc-products .old_price { display:block; font-size:12px; color:var(--vfc-muted); text-decoration:line-through; }
.vfc-page .vfc-products td.remove { position:absolute; top:8px; right:8px; }
.vfc-page .vfc-products button[value='cart/remove'] { width:44px; height:44px; padding:0; border:0; border-radius:50%; font-size:25px; line-height:1; color:#717984; background:transparent; }
.vfc-page .vfc-products button[value='cart/remove']:hover { color:var(--vfc-red); background:#fff1f1; }
.vfc-page .vfc-products tr.footer { display:flex; gap:12px; flex-wrap:wrap; align-items:baseline; padding:22px; background:#f4f5f7; border-radius:14px; margin-top:20px; }
.vfc-page .vfc-products .footer .total { font-size:18px; }
.vfc-page .vfc-products .footer .total_count { font-size:14px; color:var(--vfc-muted); font-weight:400; }
.vfc-page .vfc-products .footer .total_cost { margin-left:auto; font-size:23px; }
.vfc-page .vfc-products button[value='cart/clean'] { color:var(--vfc-muted); min-height:44px; padding:12px 0; background:transparent; border:0; font-size:13px; text-decoration:underline; }
.vfc-page #msOrder { border:1px solid var(--vfc-line); border-radius:18px; background:#fff; padding:26px; margin:0!important; box-shadow:0 8px 30px #17233606; }
.vfc-page #msOrder > .row { display:block; margin:0!important; }
.vfc-page #msOrder .row > [class*='col-'] { width:100%; max-width:100%; flex:none; margin-left:0; padding:0; }
.vfc-page #msOrder .form-group.row { display:block; margin:0 0 16px!important; }
.vfc-page #msOrder h4 { font-size:16px; line-height:1.4; font-weight:700; margin:24px 0 14px!important; }
.vfc-page #msOrder h5 { font-size:14px; margin:16px 0 8px!important; }
.vfc-page #msOrder .col-form-label { display:block; padding:0 0 6px; font-size:14px; font-weight:500; }
.vfc-page #msOrder .form-control { width:100%; max-width:100%; min-height:48px; height:auto; padding:12px; border:1px solid #c8cdd5; border-radius:9px; background:#fff; color:#20252d; font-size:16px; line-height:1.4; box-shadow:none; }
.vfc-page #msOrder textarea.form-control { min-height:88px; resize:vertical; }
.vfc-page #msOrder .form-control.error { border-color:var(--vfc-red); background:#fff8f8; }
.vfc-page #msOrder .required-star { color:var(--vfc-red); }
.vfc-page #msOrder .checkbox { margin:8px 0; }
.vfc-page #msOrder label.delivery { display:flex; align-items:center; gap:10px; min-height:48px; border:1px solid var(--vfc-line); padding:12px; border-radius:9px; cursor:pointer; line-height:1.4; }
.vfc-page #msOrder label.delivery:has(input:checked) { border-color:var(--vfc-red); background:#fff7f7; }
.vfc-page #msOrder input[type=radio] { flex-shrink:0; width:18px; height:18px; margin:0; accent-color:var(--vfc-red); }
.vfc-page #msOrder .form_accepted p { font-size:12px; line-height:1.6; color:var(--vfc-muted); margin:20px 0 0; }
.vfc-page #msOrder a { color:#9b1b20; text-decoration:underline; }
.vfc-page #msOrder > .d-flex { margin:20px 0 0!important; }
.vfc-page #msOrder button[value='order/submit'] { width:100%; min-height:52px; margin:0!important; padding:14px 20px; border:0; border-radius:10px; background:var(--vfc-red); color:#fff; font-size:16px; font-weight:700; white-space:normal; }
.vfc-page #msOrder button[value='order/submit']:hover { background:#a8191e; }
.vfc-page button, .vfc-page a, .vfc-page input, .vfc-page textarea { touch-action:manipulation; }
.vfc-page :is(button,a,input,textarea):focus-visible { outline:3px solid #1766a6; outline-offset:3px; }
.vfc-page button { cursor:pointer; }
.vfc-page button:disabled { opacity:.55; cursor:wait; }
@media (min-width:1100px) {
 .vfc-page .vfc-layout:has(#msOrder) { grid-template-columns:minmax(0,1fr) 400px; gap:28px; }
}
@media (max-width:599px) {
 .vfc-page { padding-left:16px; padding-right:16px; padding-bottom:32px; }
 .vfc-page .vfc-layout { gap:20px; }
 .vfc-page .vfc-section-title { font-size:20px; }
 .vfc-page .vfc-products tr:not(.header):not(.footer) { padding:16px; gap:14px 10px; grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
 .vfc-page .vfc-products td.title { padding-right:18px; }
 .vfc-page .vfc-products .image { width:64px; flex-basis:64px; }
 .vfc-page .vfc-products .image img { width:64px; height:64px; }
 .vfc-page .vfc-products td.title > .d-flex { gap:10px; align-items:flex-start; }
 .vfc-page .vfc-products div.title { font-size:14px; }
 .vfc-page .vfc-products td.count { grid-column:1/-1; }
 .vfc-page .vfc-products td.price, .vfc-page .vfc-products td.cost { padding:0; overflow-wrap:anywhere; }
 .vfc-page .vfc-products .text-nowrap { white-space:normal!important; }
 .vfc-page .vfc-products tr.footer { padding:16px; gap:8px; }
 .vfc-page .vfc-products .footer .total_cost { font-size:20px; }
 .vfc-page #msOrder { padding:20px 16px; border-radius:14px; }
}
