/* ==========================================================================
 * Корзина (макет 05) и оформление (макет 06) — Р2 + Р3. Подключается только на корзине и оформлении
 * (inc/cart-checkout.php, body.od-cc). Блоки WC не заменяются — перекрываются их классы
 * .wc-block-components-* / .wc-block-cart* / .wc-block-checkout* через `body.od-cc` (+0,1,1 к селекторам WC).
 *
 * CLS: правила ниже задают цвета, рамки, радиусы, шрифты — размеры строк, полей и кнопок WC не меняются,
 * кроме шапки (своя серверная разметка, без JS) и итоговой кнопки корзины (min-height 48px, уже в
 * скелетоне). Классы 1.0.21 / 1.0.23 / 1.0.26 (od-cart-empty / od-cart-filled / od-cart-ready) здесь
 * не используются и не меняются — components.css. Пустая корзина (empty-cart-block) не стилизуется:
 * её серверная копия в .is-loading и копия React должны совпадать.
 * Поля карты WooPayments — iframe Stripe: не трогаются; вокруг — только рамка выбранного способа.
 * ========================================================================== */

/* --------------------------------------------------------------------------
 * Боковые поля: --od-gutter (телефон 16px), как у шапки сайта. GeneratePress даёт .inside-article поля
 * 30px, а блоки корзины / оформления (.alignwide) вытягивает на −30 / −40px — на телефоне фото и цены
 * стояли у края экрана (server2 22.10). Блок — в ширину колонки, поле — у .inside-article.
 * -------------------------------------------------------------------------- */
body.od-cc .inside-article {
  padding-left: var(--od-gutter);
  padding-right: var(--od-gutter);
}
body.od-cc .entry-content .wp-block-woocommerce-cart.alignwide,
body.od-cc .entry-content .wp-block-woocommerce-checkout.alignwide {
  margin-left: 0;
  margin-right: 0;
  width: auto;
  max-width: 100%;
}

/* --------------------------------------------------------------------------
 * Шапка: H1 + шаги 1-2-3 (серверная разметка над блоком; H1 переносится, шаги — 40px)
 * -------------------------------------------------------------------------- */
body.od-cc .od-cc-head {
  margin: 0 0 24px;
}
body.od-cc .od-cc-head__title {
  margin: 0;
  font-family: var(--od-font-sans);
  font-size: var(--od-h1);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.015em;
  color: var(--od-ink);
  /* перенос, не обрезка (server2 22.10, ревью 984): разметка серверная, до гидратации число строк уже
   * известно — перенос сдвига не даёт */
  overflow-wrap: break-word;
}
body.od-cc .od-cc-steps {
  display: flex;
  align-items: center;
  gap: 8px;
  height: 40px;
  margin: 16px 0 0;
  padding: 0;
  list-style: none;
  overflow: hidden;
}
body.od-cc .od-cc-steps__item {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  margin: 0;
  font-size: 14px;
  line-height: 20px;
  color: var(--od-muted);
  white-space: nowrap;
}
body.od-cc .od-cc-steps__item + .od-cc-steps__item::before {
  content: "";
  flex: 0 0 24px;
  height: 1px;
  background: var(--od-line);
}
body.od-cc .od-cc-steps__num {
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  box-sizing: border-box;
  border: 1px solid var(--od-line);
  border-radius: 50%;
  background: #fff;
  font-family: var(--od-font-mono);
  font-size: 13px;
  font-weight: 600;
  color: var(--od-muted);
}
body.od-cc .od-cc-steps__label {
  overflow: hidden;
  text-overflow: ellipsis;
}
body.od-cc .od-cc-steps__item.is-current {
  color: var(--od-ink);
  font-weight: 600;
}
body.od-cc .od-cc-steps__item.is-current .od-cc-steps__num {
  border-color: var(--od-primary);
  background: var(--od-primary);
  color: #fff;
}
body.od-cc .od-cc-steps__item.is-done .od-cc-steps__num {
  border-color: var(--od-success-bg);
  background: var(--od-success-bg);
  color: var(--od-success-text);
}
body.od-cc .od-cc-steps__link {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 40px;
  color: inherit;
  text-decoration: none;
}
body.od-cc .od-cc-steps__link:hover .od-cc-steps__label,
body.od-cc .od-cc-steps__link:focus-visible .od-cc-steps__label {
  color: var(--od-primary);
  text-decoration: underline;
}
@media (max-width: 600px) {
  body.od-cc .od-cc-head { margin-bottom: 16px; }
  body.od-cc .od-cc-head__title { font-size: 28px; }
  body.od-cc .od-cc-steps { margin-top: 12px; }
  /* телефон: подпись только у текущего шага, остальные — номер (подпись остаётся для скринридера) */
  body.od-cc .od-cc-steps__item:not(.is-current) .od-cc-steps__label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }
  body.od-cc .od-cc-steps__item + .od-cc-steps__item::before { flex-basis: 16px; }
}

/* --------------------------------------------------------------------------
 * «Vajad paigaldust? → Paigaldus» под корзиной
 * -------------------------------------------------------------------------- */
body.od-cc .od-cc-help {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 32px 0 0;
  padding: 20px 24px;
  border: 1px solid var(--od-line);
  border-radius: var(--od-r-card);
  background: var(--od-surface-alt);
}
body.od-cc .od-cc-help__title {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  line-height: 24px;
  color: var(--od-ink);
}
body.od-cc .od-cc-help__text {
  margin: 4px 0 0;
  font-size: 14px;
  line-height: 20px;
  color: var(--od-muted);
}
body.od-cc .od-cc-help__link {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: var(--od-tap);
  padding: 0 18px;
  box-sizing: border-box;
  border: 1px solid var(--od-primary);
  border-radius: var(--od-r-btn);
  background: #fff;
  color: var(--od-primary);
  font-weight: 600;
  text-decoration: none;
}
body.od-cc .od-cc-help__link:hover,
body.od-cc .od-cc-help__link:focus-visible {
  background: var(--od-ice);
  color: var(--od-primary-hover);
}
@media (max-width: 600px) {
  body.od-cc .od-cc-help { flex-direction: column; align-items: stretch; padding: 16px; }
  body.od-cc .od-cc-help__link { justify-content: center; }
}

/* --------------------------------------------------------------------------
 * Общее: шрифт, цвет текста, ссылки внутри блоков
 * -------------------------------------------------------------------------- */
body.od-cc .wp-block-woocommerce-cart,
body.od-cc .wp-block-woocommerce-checkout {
  font-family: var(--od-font-sans);
  color: var(--od-ink);
}
body.od-cc .wc-block-cart a:not(.wc-block-components-button),
body.od-cc .wc-block-checkout a:not(.wc-block-components-button) {
  color: var(--od-primary);
}

/* Скрыто выводом (inc/cart-checkout.php → pre_render_block). Запасное правило: если WC когда-нибудь
 * вернёт форму купона или cross-sells сам — не показывать (проверка стенда считает элементы в DOM). */
body.od-cc .wp-block-woocommerce-cart-order-summary-coupon-form-block,
body.od-cc .wp-block-woocommerce-checkout-order-summary-coupon-form-block,
body.od-cc .wc-block-components-totals-coupon {
  display: none;
}

/* --------------------------------------------------------------------------
 * 05 Корзина: строки товара
 * -------------------------------------------------------------------------- */
body.od-cc .wc-block-cart-items .wc-block-cart-items__header {
  font-size: 12px;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--od-muted);
}
body.od-cc .wc-block-cart-items td,
body.od-cc .wc-block-cart-items th {
  border-color: var(--od-line);
}
body.od-cc .wc-block-cart-items .wc-block-cart-items__row {
  border-color: var(--od-line);
}
/* фото на белом */
body.od-cc .wc-block-cart-item__image img,
body.od-cc .wc-block-components-order-summary-item__image img {
  box-sizing: border-box;
  background: #fff;
  border: 1px solid var(--od-line);
  border-radius: var(--od-r-btn);
  object-fit: contain;
}
body.od-cc .wc-block-components-product-name {
  color: var(--od-ink);
  font-weight: 600;
  text-decoration: none;
}
body.od-cc a.wc-block-components-product-name:hover,
body.od-cc a.wc-block-components-product-name:focus-visible {
  color: var(--od-primary);
  text-decoration: underline;
}
body.od-cc .wc-block-components-product-metadata,
body.od-cc .wc-block-components-product-details {
  color: var(--od-muted);
}
body.od-cc .wc-block-cart-item__prices,
body.od-cc .wc-block-cart-item__total,
body.od-cc .wc-block-components-totals-item__value,
body.od-cc .wc-block-components-order-summary-item__total-price {
  font-variant-numeric: tabular-nums;
}
body.od-cc .wc-block-cart-item__total .wc-block-components-product-price__value {
  font-weight: 700;
  color: var(--od-ink);
}
/* степпер количества: рамка поля, кнопки без заливки (глобальное правило button 1.0.18 красит их в синий) */
body.od-cc .wc-block-components-quantity-selector {
  border-radius: var(--od-r-btn);
}
/* рамку степпера WC рисует ::after; в скелетоне (.wc-block-cart--is-loading) ::after — плашка загрузки, её не трогаем */
body.od-cc .wc-block-cart:not(.wc-block-cart--is-loading) .wc-block-components-quantity-selector::after {
  border-color: var(--od-field-line);
  border-radius: var(--od-r-btn);
}
body.od-cc .wc-block-components-quantity-selector .wc-block-components-quantity-selector__input {
  color: var(--od-ink);
  font-weight: 600;
  background: transparent;
}
body.od-cc .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button {
  background: transparent;
  color: var(--od-ink);
  border-radius: var(--od-r-btn);
}
body.od-cc .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:hover:not(:disabled),
body.od-cc .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:focus-visible {
  background: var(--od-ice);
  color: var(--od-primary);
}
body.od-cc .wc-block-cart-item__remove-link {
  color: var(--od-muted);
}
body.od-cc .wc-block-cart-item__remove-link:hover,
body.od-cc .wc-block-cart-item__remove-link:focus-visible {
  color: var(--od-danger);
}

/* --------------------------------------------------------------------------
 * 05 Корзина: колонка итогов (карточка), «Vormista tellimus»
 * -------------------------------------------------------------------------- */
body.od-cc .wc-block-cart .wp-block-woocommerce-cart-order-summary-block {
  background: var(--od-surface-alt);
  border: 1px solid var(--od-line);
  border-radius: var(--od-r-card);
}
body.od-cc .wc-block-cart .wc-block-cart__totals-title {
  font-family: var(--od-font-sans);
  font-size: var(--od-kicker);
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--od-muted);
}
body.od-cc .wc-block-components-totals-wrapper {
  border-color: var(--od-line);
}
body.od-cc .wc-block-components-totals-item__label {
  color: var(--od-ink);
}
body.od-cc .wc-block-components-totals-item__description,
body.od-cc .wc-block-components-totals-footer-item-tax {
  color: var(--od-muted);
}
body.od-cc .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
body.od-cc .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  font-weight: 700;
  color: var(--od-ink);
}

/* Кнопки блоков: «Vormista tellimus», «Maksa», прочие .wc-block-components-button (не ссылки) */
body.od-cc .wc-block-components-button:not(.is-link) {
  background-color: var(--od-primary);
  color: #fff;
  border: 0;
  border-radius: var(--od-r-btn);
  font-family: var(--od-font-sans);
  font-weight: 600;
  box-shadow: none;
}
body.od-cc .wc-block-components-button:not(.is-link):hover:not(:disabled),
body.od-cc .wc-block-components-button:not(.is-link):focus-visible {
  background-color: var(--od-primary-hover);
  color: #fff;
}
body.od-cc .wc-block-components-button:not(.is-link):focus-visible {
  outline: 2px solid var(--od-primary);
  outline-offset: 2px;
}
body.od-cc .wc-block-components-button:not(.is-link):disabled {
  opacity: .6;
}
body.od-cc .wc-block-cart__submit-button {
  min-height: 48px;
}
body.od-cc .wc-block-components-button.is-link {
  color: var(--od-primary);
}

/* --------------------------------------------------------------------------
 * 06 Оформление: шаги формы, поля
 * -------------------------------------------------------------------------- */
body.od-cc .wc-block-components-checkout-step__title {
  font-family: var(--od-font-sans);
  font-weight: 700;
  color: var(--od-ink);
}
body.od-cc .wc-block-components-checkout-step__description {
  color: var(--od-muted);
}
/* поля: только рамка, радиус, цвета — высоту и плавающие подписи задаёт WC */
body.od-cc .wc-block-components-form .wc-block-components-text-input input[type],
body.od-cc .wc-block-components-text-input input[type],
body.od-cc .wc-block-components-textarea,
body.od-cc .wc-blocks-components-select .wc-blocks-components-select__select {
  border-color: var(--od-field-line);
  border-radius: var(--od-r-btn);
  color: var(--od-ink);
  background-color: #fff;
}
body.od-cc .wc-block-components-form .wc-block-components-text-input input[type]:focus,
body.od-cc .wc-block-components-text-input input[type]:focus,
body.od-cc .wc-block-components-textarea:focus,
body.od-cc .wc-blocks-components-select .wc-blocks-components-select__select:focus {
  border-color: var(--od-primary);
  box-shadow: 0 0 0 1px var(--od-primary);
  outline: none;
}
body.od-cc .wc-block-components-text-input label,
body.od-cc .wc-blocks-components-select .wc-blocks-components-select__label {
  color: var(--od-muted);
}
body.od-cc .wc-block-components-text-input.has-error input[type],
body.od-cc .wc-blocks-components-select.has-error .wc-blocks-components-select__select {
  border-color: var(--od-danger);
}
body.od-cc .wc-block-components-validation-error {
  color: var(--od-danger);
}
body.od-cc .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"] {
  border-color: var(--od-field-line);
  border-radius: var(--od-r-badge);
}
body.od-cc .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked {
  background: var(--od-primary);
  border-color: var(--od-primary);
}
body.od-cc .wc-block-components-checkbox .wc-block-components-checkbox__mark {
  fill: #fff;
}

/* --------------------------------------------------------------------------
 * 06 Оформление: «Tarne / Tulen ise järele» — карточки переключателя
 * -------------------------------------------------------------------------- */
body.od-cc .wc-block-checkout__shipping-method-container {
  gap: 12px;
}
/* ширина рамки — как у WC (2px: прозрачная / выбранная), меняется только цвет — размер карточки тот же */
body.od-cc .wc-block-checkout__shipping-method .wc-block-checkout__shipping-method-option {
  background: #fff;
  border-color: var(--od-line);
  border-radius: var(--od-r-card);
  color: var(--od-ink);
}
body.od-cc .wc-block-checkout__shipping-method .wc-block-checkout__shipping-method-option:hover {
  border-color: var(--od-primary);
}
body.od-cc .wc-block-checkout__shipping-method .wc-block-checkout__shipping-method-option--selected {
  background: var(--od-ice);
  border-color: var(--od-primary);
}
body.od-cc .wc-block-checkout__shipping-method-option-title {
  font-weight: 600;
}
body.od-cc .wc-block-checkout__shipping-method-option-price {
  color: var(--od-muted);
}

/* --------------------------------------------------------------------------
 * 06 Оформление: радио-карточки — пункт самовывоза, тарифы доставки (Omniva вне EE / LV / LT), оплата
 * WC рисует рамку выбранного пункта box-shadow; здесь — цвет и радиус. Фон выбранного способа оплаты —
 * белый (внутри iframe карты WooPayments со своим фоном).
 * -------------------------------------------------------------------------- */
body.od-cc .wc-block-components-radio-control .wc-block-components-radio-control__input {
  border-color: var(--od-field-line);
}
body.od-cc .wc-block-components-radio-control .wc-block-components-radio-control__input:checked {
  border-color: var(--od-primary);
}
body.od-cc .wc-block-components-radio-control .wc-block-components-radio-control__input:checked::before {
  background: var(--od-primary);
}
body.od-cc .wc-block-components-radio-control .wc-block-components-radio-control__input:focus-visible {
  outline: 2px solid var(--od-primary);
  outline-offset: 2px;
}
/* рамка группы и разделители WC берут --wc-separator-color */
body.od-cc {
  --wc-separator-color: var(--od-line);
}
body.od-cc .wc-block-components-radio-control--highlight-checked::after {
  border-radius: var(--od-r-btn);
}
body.od-cc .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted,
body.od-cc .wc-block-components-radio-control--highlight-checked label.wc-block-components-radio-control__option--checked-option-highlighted {
  box-shadow: inset 0 0 0 2px var(--od-primary);
  border-radius: var(--od-r-btn);
}
body.od-cc .wc-block-components-radio-control__label {
  color: var(--od-ink);
  font-weight: 600;
}
body.od-cc .wc-block-components-radio-control__secondary-label,
body.od-cc .wc-block-components-radio-control__description,
body.od-cc .wc-block-components-radio-control__secondary-description {
  color: var(--od-muted);
}
/* пункт самовывоза «Oden, Kassi 9» — адрес и часы мелким текстом */
body.od-cc .wc-block-components-local-pickup-rates-control .wc-block-components-radio-control__secondary-description {
  font-size: 14px;
  line-height: 20px;
}

/* --------------------------------------------------------------------------
 * 06 Оформление: условия (текст, без галочки — решение 1), сводка, кнопка «Maksa»
 * -------------------------------------------------------------------------- */
body.od-cc .wc-block-checkout__terms {
  font-size: 14px;
  line-height: 20px;
  color: var(--od-muted);
}
body.od-cc .wc-block-checkout__terms a {
  color: var(--od-primary);
  text-decoration: underline;
}
body.od-cc .wc-block-checkout .wc-block-checkout__sidebar .wc-block-components-checkout-order-summary__title,
body.od-cc .wc-block-checkout .wc-block-components-order-summary .wc-block-components-panel__button {
  color: var(--od-ink);
}
body.od-cc .wc-block-checkout .wp-block-woocommerce-checkout-order-summary-block {
  border-color: var(--od-line);
  border-radius: var(--od-r-card);
}
body.od-cc .wc-block-components-order-summary-item__quantity {
  background: var(--od-ink);
  border-color: #fff;
  color: #fff;
}
body.od-cc .wc-block-components-checkout-place-order-button {
  min-height: 48px;
}
body.od-cc .wc-block-components-checkout-return-to-cart-button {
  color: var(--od-primary);
}
