/* =====================================================================
   Общая база тем витрин — корзина и оформление заказа (Shop-Script v2)
   Блоки рендерит ядро со своими cart.css / form.css / ui.css;
   здесь — раскладка страницы и приведение блоков ядра к стилю темы.
   ===================================================================== */

.order-page-wrap { padding-bottom: 40px; }
.order-title { padding: 28px 0 32px; margin: 0; }
.order-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, 480px); gap: 56px; align-items: start; }
.order-layout__form { position: sticky; top: calc(var(--header-h) + 24px); }
.order-section { margin-bottom: 40px; }
.order-layout__form .order-section { padding: 32px; background: var(--surface); }
.order-section__head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding-bottom: 16px; margin-bottom: 8px; border-bottom: 1px solid var(--line); }
.order-section__head .h3 { margin: 0; }
.s-section-footer { padding-top: 20px; }
@media (max-width: 1023px) {
    .order-layout { grid-template-columns: minmax(0, 1fr); gap: 0; }
    .order-layout__form { position: static; }
    .order-layout__form .order-section { margin-left: calc(-1 * var(--gutter)); margin-right: calc(-1 * var(--gutter)); padding: 28px var(--gutter); }
}

/* ---------- общее для блоков ядра ---------- */
.wa-order-cart-wrapper, .wa-order-form-wrapper, .wa-order-dialog {
    font-family: var(--f-ui) !important; font-weight: var(--w-ui); color: var(--ink); font-size: 15px;
}
.wa-order-cart-wrapper a, .wa-order-form-wrapper a { color: var(--ink); }
.wa-order-form-wrapper .wa-header, .wa-order-form-wrapper .wa-step-section .wa-section-header .wa-header {
    font-family: var(--f-display) !important; font-weight: var(--w-thin) !important; font-size: 26px !important; line-height: 1.2 !important; letter-spacing: -.01em;
}
.wa-order-form-wrapper .wa-step-section { padding: 24px 0 !important; margin: 0 !important; border-top: 1px solid var(--line); background: transparent !important; }
.wa-order-form-wrapper .wa-step-section:first-child { border-top: 0; padding-top: 8px !important; }
.wa-order-form-wrapper .wa-step-section:not(.not-blurred).is-blurred { opacity: .45; }

/* поля */
.wa-order-form-wrapper .wa-field-wrapper .wa-label, .wa-order-form-wrapper .wa-name { font-size: 13px; color: var(--ink-2); margin-bottom: 6px; }
.wa-order-form-wrapper .wa-input, .wa-order-form-wrapper .wa-textarea, .wa-order-form-wrapper select,
.wa-order-dialog .wa-input, .wa-order-dialog select {
    min-height: 48px !important; padding: 12px 14px !important; font: inherit !important; font-size: 15px !important; line-height: 1.3 !important;
    color: var(--ink) !important; background-color: var(--white) !important; border: 1px solid var(--line-strong) !important; border-radius: 0 !important; box-shadow: none !important;
}
.wa-order-form-wrapper .wa-textarea { min-height: 96px !important; }
.wa-order-form-wrapper select, .wa-order-dialog select { padding-right: 40px !important; }
.wa-order-form-wrapper .wa-input:focus, .wa-order-form-wrapper .wa-textarea:focus, .wa-order-form-wrapper select:focus { border-color: var(--ink) !important; box-shadow: 0 0 0 1px var(--ink) !important; }
.wa-order-form-wrapper .wa-input.wa-error, .wa-order-form-wrapper .wa-textarea.wa-error { border-color: var(--sale) !important; }
.wa-order-form-wrapper .wa-error-text, .wa-order-form-wrapper .wa-error-message, .wa-order-cart-wrapper .wa-error-text { color: var(--sale) !important; font-size: 13px; }
.wa-order-form-wrapper .wa-required::after { color: var(--sale); }
.wa-order-form-wrapper input[type="checkbox"], .wa-order-form-wrapper input[type="radio"] { accent-color: var(--ink); width: 16px; height: 16px; }

/* кнопки: в форме — стиль темы; в корзине — только цвет и углы, размеры задаёт ядро */
.wa-order-form-wrapper .wa-button, .wa-order-dialog .wa-button,
.wa-order-form-wrapper button.wa-button, .wa-order-form-wrapper input[type="button"].wa-button, .wa-order-form-wrapper input[type="submit"] {
    display: inline-flex !important; align-items: center; justify-content: center; min-height: 48px !important; padding: 0 28px !important;
    font-family: var(--f-ui) !important; font-size: 12px !important; font-weight: var(--w-strong) !important; letter-spacing: .18em !important; text-transform: uppercase !important;
    background: var(--ink) !important; color: var(--bg) !important; border: 1px solid var(--ink) !important; border-radius: 0 !important; box-shadow: none !important; text-shadow: none !important;
    transition: background .25s, color .25s;
}
.wa-order-form-wrapper .wa-button:hover { background: transparent !important; color: var(--ink) !important; }
.wa-order-form-wrapper .wa-button.gray, .wa-order-form-wrapper .wa-button.transparent, .wa-order-form-wrapper .wa-button.outlined, .wa-order-dialog .wa-button.gray {
    background: transparent !important; color: var(--ink) !important; border-color: var(--line-strong) !important;
}
.wa-order-form-wrapper .wa-step-confirm-section .wa-button, .wa-order-form-wrapper .js-submit-order-button {
    width: 100% !important; min-height: 56px !important; font-size: 13px !important;
}
.wa-order-cart-wrapper .wa-button {
    font-family: var(--f-ui) !important; border-radius: 0 !important; box-shadow: none !important; text-shadow: none !important;
    background: var(--ink) !important; color: var(--bg) !important; border-color: var(--ink) !important;
}
.wa-order-cart-wrapper .wa-button.outlined { background: transparent !important; color: var(--ink) !important; border-color: var(--line-strong) !important; }
.wa-order-cart-wrapper .wa-button.is-locked { opacity: .45; }
.wa-order-cart-wrapper .wa-field, .wa-order-cart-wrapper .wa-input { font-family: var(--f-ui) !important; border-radius: 0 !important; border-color: var(--line-strong) !important; }

/* способы доставки и оплаты */
.wa-order-form-wrapper .wa-types-list, .wa-order-form-wrapper .wa-methods-list { display: grid; gap: 8px; }
.wa-order-form-wrapper .wa-type-wrapper, .wa-order-form-wrapper .wa-method-wrapper {
    padding: 14px 16px !important; background: var(--bg) !important; border: 1px solid var(--line) !important; border-radius: 0 !important; transition: border-color .2s;
}
.wa-order-form-wrapper .wa-type-wrapper:hover, .wa-order-form-wrapper .wa-method-wrapper:hover { border-color: var(--line-strong) !important; }
.wa-order-form-wrapper .wa-type-wrapper.is-active, .wa-order-form-wrapper .wa-method-wrapper.is-active,
.wa-order-form-wrapper .wa-type-wrapper.selected, .wa-order-form-wrapper .wa-method-wrapper.selected { border-color: var(--ink) !important; box-shadow: inset 0 0 0 1px var(--ink); }
.wa-order-form-wrapper .wa-type-wrapper .wa-name, .wa-order-form-wrapper .wa-method-wrapper .wa-name { color: var(--ink); font-weight: var(--w-strong); font-size: 15px; }
.wa-order-form-wrapper .wa-price, .wa-order-form-wrapper .wa-date { color: var(--ink-2); }

/* итоги */
.wa-order-form-wrapper .wa-total-section, .wa-order-cart-wrapper .wa-total-section { border-top: 1px solid var(--line-strong) !important; padding-top: 16px !important; }
.wa-order-form-wrapper .wa-total-section .wa-price, .wa-order-cart-wrapper .wa-total-section .wa-price, .wa-order-cart-wrapper .wa-cart-details .wa-total .wa-price {
    font-family: var(--f-display); font-weight: var(--w-strong); font-size: 28px; color: var(--ink);
}

/* ---------- корзина ---------- */
.wa-order-cart-wrapper .wa-products { border-top: 0 !important; }
.wa-order-cart-wrapper .wa-product { padding: 20px 0 !important; border-bottom: 1px solid var(--line) !important; border-top: 0 !important; }
.wa-order-cart-wrapper .wa-product .wa-image-wrapper, .wa-order-cart-wrapper .wa-product .wa-image-section {
    background: var(--surface); border-radius: 0 !important;
}
.wa-order-cart-wrapper .wa-product .wa-image-wrapper img, .wa-order-cart-wrapper .wa-product .wa-image-section img { mix-blend-mode: multiply; object-fit: contain; }
.wa-order-cart-wrapper .wa-product .wa-name, .wa-order-cart-wrapper .wa-product .wa-details .wa-name a {
    font-family: var(--f-display); font-weight: var(--w-thin); font-size: 20px; line-height: 1.25; color: var(--ink); text-decoration: none;
}
.wa-order-cart-wrapper .wa-product .wa-price, .wa-order-cart-wrapper .wa-product .wa-price-section { font-weight: var(--w-strong); white-space: nowrap; }
.wa-order-cart-wrapper .wa-action, .wa-order-cart-wrapper .wa-product .wa-delete { color: var(--muted) !important; font-size: 13px; }
.wa-order-cart-wrapper .wa-action:hover { color: var(--ink) !important; }
.wa-order-cart-wrapper .wa-affiliate-section { background: var(--surface) !important; border-radius: 0 !important; }

/* рекомендации */
.s-cross-selling-section .wa-product .wa-name { font-family: var(--f-display); font-size: 18px; }

/* ---------- окна ядра (адрес, пункт выдачи, товар) ---------- */
.wa-order-dialog .wa-dialog-body { border-radius: 0 !important; border-color: var(--line) !important; box-shadow: 0 30px 80px -30px rgba(var(--ink-rgb), .45) !important; background: var(--bg) !important; }
.wa-order-dialog .wa-dialog-header .wa-header, .wa-order-dialog .wa-header { font-family: var(--f-display) !important; font-weight: var(--w-thin) !important; font-size: 26px !important; }
.wa-tooltip { font-family: var(--f-ui) !important; }

/* скрытие шапочной корзины на странице заказа делает тема; подвал — компактный */
html.is-order-page .footer { margin-top: 48px; }

/* промокод: поле и кнопка в одну строку внутри своей ячейки (иначе кнопка заезжает на сумму) */
.wa-order-cart-wrapper .wa-coupon-section .wa-inactive-state { display: flex; align-items: stretch; gap: 8px; }
.wa-order-cart-wrapper .wa-coupon-section .wa-active-state { align-items: center; gap: 12px; flex-wrap: wrap; }
.wa-order-cart-wrapper .wa-coupon-section .wa-input { flex: 1 1 auto; width: auto !important; min-width: 0; min-height: 44px !important; padding: 10px 14px !important; font-size: 14px !important; }
.wa-order-cart-wrapper .wa-coupon-section .wa-button {
    flex: none; min-height: 44px !important; padding: 0 18px !important; font-size: 11px !important; letter-spacing: .14em !important; text-transform: uppercase !important; white-space: nowrap;
}
.wa-order-cart-wrapper .wa-cart-details .wa-column-content { padding-right: 24px; }
.wa-order-cart-wrapper .wa-total, .wa-order-cart-wrapper .wa-cart-details .wa-total { font-weight: var(--w-strong); }
.wa-order-form-wrapper .wa-total-section .wa-price, .wa-order-form-wrapper .wa-details-rates-section .wa-price {
    font-size: 18px !important; white-space: nowrap;
}
.wa-order-form-wrapper .wa-total-section .wa-value { font-size: 15px !important; white-space: nowrap; }
.wa-order-form-wrapper .wa-total-section .wa-name, .wa-order-form-wrapper .wa-details-rates-section .wa-name { font-size: 13px; }

/* количество в корзине: аккуратный степпер [−] 1 [+]; надпись ядра «мин. 1» на кнопке прячем */
.wa-order-cart-wrapper .wa-quantity-cart-section .wa-section-body {
    display: inline-flex !important; align-items: stretch; border: 1px solid var(--line-strong); background: var(--white); height: 38px;
}
.wa-order-cart-wrapper .wa-quantity-cart-section .wa-button-wrapper { display: flex !important; }
.wa-order-cart-wrapper .wa-quantity-cart-section .wa-button {
    width: 34px !important; min-width: 34px; height: 36px !important; min-height: 0 !important; padding: 0 !important;
    background: transparent !important; color: var(--ink) !important; border: 0 !important;
    font-size: 0 !important; letter-spacing: 0 !important; line-height: 1 !important; display: flex !important; align-items: center; justify-content: center;
}
.wa-order-cart-wrapper .wa-quantity-cart-section .wa-button > * { display: none !important; }
.wa-order-cart-wrapper .wa-quantity-cart-section .wa-button::before { font-size: 18px; font-weight: 300; font-family: var(--f-ui); }
.wa-order-cart-wrapper .wa-quantity-cart-section .s-minus-button::before { content: "−"; }
.wa-order-cart-wrapper .wa-quantity-cart-section .wa-button:not(.s-minus-button)::before { content: "+"; }
.wa-order-cart-wrapper .wa-quantity-cart-section .wa-button.is-locked, .wa-order-cart-wrapper .wa-quantity-cart-section .wa-button:disabled { opacity: .3; cursor: default; }
.wa-order-cart-wrapper .wa-quantity-cart-section .wa-field-wrapper { display: flex !important; position: relative; margin: 0 !important; }
.wa-order-cart-wrapper .wa-quantity-cart-section .wa-field {
    width: 40px !important; min-width: 0; height: 36px !important; min-height: 0 !important; padding: 0 !important;
    border: 0 !important; border-left: 1px solid var(--line) !important; border-right: 1px solid var(--line) !important; border-radius: 0 !important;
    text-align: center !important; font-family: var(--f-ui) !important; font-size: 15px !important; background: transparent !important; box-shadow: none !important;
}
.wa-order-cart-wrapper .wa-quantity-cart-section .wa-unit.top { display: none !important; }
.wa-order-cart-wrapper .wa-column-quantity { white-space: nowrap; }
.wa-order-cart-wrapper .wa-quantity-cart-section { width: auto !important; }

/* подтверждение: итоги на всю ширину, кнопка под ними (в узкой колонке ядро ставит их в ряд и подписи ломаются) */
.wa-order-form-wrapper .wa-step-confirm-section .wa-flex-wrapper { flex-wrap: wrap !important; gap: 16px; }
.wa-order-form-wrapper .wa-step-confirm-section .wa-total-section,
.wa-order-form-wrapper .wa-step-confirm-section .wa-actions-section { flex: 1 1 100% !important; width: 100% !important; max-width: none !important; margin: 0 !important; }
.wa-order-form-wrapper .wa-step-confirm-section .wa-actions-section .wa-button { width: 100% !important; }

/* «Варианты доставки» и прочие выпадающие списки ядра — как поля темы */
.wa-order-form-wrapper .wa-dropdown .wa-dropdown-toggle, .wa-order-form-wrapper .wa-variants-section select,
.wa-order-form-wrapper .wa-delivery-variants-section select {
    min-height: 48px !important; padding: 12px 40px 12px 14px !important; font-family: var(--f-ui) !important; font-size: 15px !important; line-height: 1.3 !important;
    color: var(--ink) !important; background-color: var(--white) !important; border: 1px solid var(--line-strong) !important; border-radius: 0 !important; box-shadow: none !important;
    display: flex; align-items: center; width: 100%;
}

/* корзина: зачёркнутую «старую» цену не показываем — только цену, по которой покупают */
.wa-price-compare, .wa-order-cart-wrapper .wa-price-compare { display: none !important; }

/* корзина: вес не показываем — ни у товара («395 г» рядом с названием), ни строку «N товаров с общим весом … кг» */
.wa-order-cart-wrapper .wa-weight, .wa-order-cart-wrapper .wa-weight-section, #wa-cart-weight { display: none !important; }

/* «Удалить»: иконка-корзинка из спрайта Shop-Script (#trash) в вёрстке темы рисовалась серым квадратиком —
   прячем её и рисуем аккуратный крестик цветом текста ссылки */
.wa-order-cart-wrapper .js-delete-product .wa-icon { display: none !important; }
.wa-order-cart-wrapper .js-delete-product { display: inline-flex !important; align-items: center; gap: 6px; cursor: pointer; }
.wa-order-cart-wrapper .js-delete-product::before {
    content: ""; flex: none; width: 9px; height: 9px; background: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M1 1l8 8M9 1L1 9' stroke='%23000' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M1 1l8 8M9 1L1 9' stroke='%23000' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* «Страна» на всю ширину: в половине строки «Российская Федерация» обрезалось; регион и город остаются парой ниже */
.wa-order-form-wrapper .wa-fields-group .wa-country-wrapper { flex: 0 0 100% !important; width: 100% !important; max-width: none !important; }
.wa-order-form-wrapper select.wa-select { padding-left: 14px !important; padding-right: 34px !important; background-position: right 12px center; text-overflow: ellipsis; }
