/* NP FOUC — з першого кадру */
#unicheckout .unicheckout__address,
#unicheckout .shipping-address,
#unicheckout .checkout-shipping-address,
#unicheckout .unicheckout__shipping-address,
#shipping-existing,
#shipping-new,
#shipping-address {
  display: none !important;
}
#unicheckout .unicheckout__payment,
#unicheckout .payment-method,
#unicheckout .checkout-payment {
  display: none !important;
}
[data-np-addr-hidden="1"],
[data-np-pay-hidden="1"],
[data-np-ship-label-hidden="1"] {
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
}

/* ===== UniShop checkout mocha — unified cards ===== */
:root {
  --np-mocha-bg: #f5ebe0;
  --np-mocha-head: #3d2914;
  --np-mocha-border: #a67c52;
  --np-mocha-input-border: #c4a484;
  --np-mocha-input-bg: #fffdf9;
  --np-mocha-text: #3d2914;
  --np-mocha-muted: #5c4033;
}

/* 1. Контактні дані */
.unicheckout__user {
  border: 1px solid var(--np-mocha-border) !important;
  border-radius: 3px !important;
  background: var(--np-mocha-bg) !important;
  overflow: hidden !important;
  max-width: 560px;
  width: 100%;
  box-shadow: 0 2px 10px rgba(61, 41, 20, 0.08);
  margin: 0 0 20px !important;
  padding: 0 !important;
}
.unicheckout__user > .heading {
  background: var(--np-mocha-head) !important;
  color: #faf6f1 !important;
  padding: 14px 18px !important;
  margin: 0 !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em;
  border-radius: 0 !important;
  border: none !important;
}
.unicheckout__user .user_data,
.unicheckout__user .checkout-customer {
  padding: 16px 18px 8px !important;
  background: var(--np-mocha-bg) !important;
}
.unicheckout__user .checkout-customer__input,
.unicheckout__user .form-control {
  border: 1px solid var(--np-mocha-input-border) !important;
  border-radius: 8px !important;
  background: var(--np-mocha-input-bg) !important;
  color: var(--np-mocha-text) !important;
}
.unicheckout__user .checkout-customer__register,
.unicheckout__user .checkout-customer__group-pass {
  padding: 0 18px 14px !important;
  background: var(--np-mocha-bg) !important;
}

/* Hide customer group */
.checkout-customer__group,
.unicheckout__user .checkout-customer__group {
  display: none !important;
}

/* NP block */
#novaposhta-block {
  border: 1px solid var(--np-mocha-border) !important;
  border-radius: 3px !important;
  background: var(--np-mocha-bg) !important;
  overflow: hidden !important;
  max-width: 560px !important;
  box-shadow: 0 2px 10px rgba(61, 41, 20, 0.08) !important;
  -webkit-mask-image: -webkit-radial-gradient(white, black);
}
#novaposhta-block #np-block-head {
  background: var(--np-mocha-head) !important;
  color: #faf6f1 !important;
}
#novaposhta-block #np-block-sub {
  background: var(--np-mocha-bg) !important;
  color: var(--np-mocha-muted) !important;
}

/* 3. Коментар */
.unicheckout__comment {
  border: 1px solid var(--np-mocha-border) !important;
  border-radius: 3px !important;
  background: var(--np-mocha-bg) !important;
  overflow: hidden !important;
  max-width: 560px;
  width: 100%;
  box-shadow: 0 2px 10px rgba(61, 41, 20, 0.08);
  margin: 0 0 20px !important;
  padding: 0 !important;
}
.unicheckout__comment > .heading {
  background: var(--np-mocha-head) !important;
  color: #faf6f1 !important;
  padding: 14px 18px !important;
  margin: 0 !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em;
  border-radius: 0 !important;
}
.unicheckout__comment textarea,
.unicheckout__comment .checkout-comment,
.unicheckout__comment .form-control {
  margin: 16px 18px 18px !important;
  width: calc(100% - 36px) !important;
  max-width: calc(100% - 36px) !important;
  border: 1px solid var(--np-mocha-input-border) !important;
  border-radius: 8px !important;
  background: var(--np-mocha-input-bg) !important;
  color: var(--np-mocha-text) !important;
  box-sizing: border-box !important;
}

/* Optional: force comment heading text via JS is better; CSS can't renumber easily */


/* Kill external "2. Способи доставки" if theme prints it */
.unicheckout__shipping > .heading:not(:has(#novaposhta-block)),
.unicheckout__shipping > h2,
.unicheckout__shipping > h3,
.unicheckout__shipping > h4 {
  /* JS hides by text match; extra safety for empty headings near shipping */
}
[data-np-ship-label-hidden="1"] {
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
}
/* Коментар завжди "3." — лічильник UniShop ігноруємо */
.unicheckout__comment > .heading::before,
.unicheckout__comment .heading::before {
  content: "3. " !important;
  counter-increment: none !important;
}

/* ===== Відновлення оформлення checkout / Nova Poshta =====
   Лише візуальні правила: розмітку та логіку не змінюємо. */
#unicheckout,
#unicheckout * {
  box-sizing: border-box;
}

#unicheckout .unicheckout__user .checkout-customer__input,
#unicheckout .unicheckout__user .form-control,
#unicheckout .unicheckout__comment textarea,
#unicheckout .unicheckout__comment .checkout-comment,
#unicheckout .unicheckout__comment .form-control,
#novaposhta-block .form-control,
#np-saved-addresses .form-control {
  border-radius: 3px !important;
}

/* Збережена адреса */
#novaposhta-block #np-saved-addresses {
  margin: 0 0 14px !important;
  padding: 10px 18px 0 !important;
  background: var(--np-mocha-bg) !important;
}
#novaposhta-block #np-saved-addresses > label {
  display: block !important;
  margin: 0 0 7px !important;
  color: var(--np-mocha-muted) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
}
#novaposhta-block #np-saved-addresses select {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  padding: 10px 12px !important;
  color: var(--np-mocha-text) !important;
  background: var(--np-mocha-input-bg) !important;
  border: 1px solid var(--np-mocha-input-border) !important;
  border-radius: 3px !important;
}

/* Внутрішня частина картки НП */
#novaposhta-block > div:not(#np-block-head):not(#np-saved-addresses) {
  min-width: 0;
}
#novaposhta-block #np-ship-radios {
  margin: 0 0 14px !important;
  padding: 0 0 12px !important;
}
#novaposhta-block .np-radio-row {
  width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
  border-radius: 3px !important;
}
#novaposhta-block .np-radio-row input[type="radio"] {
  flex: 0 0 auto;
}
#novaposhta-block .np-radio-row span {
  min-width: 0;
}
#novaposhta-block #np-block-sub {
  margin: 0 0 14px !important;
  padding-top: 3px !important;
  font-weight: 700 !important;
}
#novaposhta-block label {
  overflow-wrap: anywhere;
}
#novaposhta-block input.form-control,
#novaposhta-block select.form-control,
#novaposhta-block textarea.form-control {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  border-radius: 3px !important;
}
#novaposhta-block #np-cod-wrap,
#novaposhta-block #np-paynow-line,
#novaposhta-block #np-block-note,
#novaposhta-block #np-field-error {
  border-radius: 3px !important;
}
#novaposhta-block .np-cod-box {
  border-radius: 3px !important;
}
#novaposhta-block #np-cost-line {
  font-weight: 600 !important;
  color: var(--np-mocha-text) !important;
}
#novaposhta-block #np-paynow-line {
  background: #fff8f0 !important;
  border-color: var(--np-mocha-border) !important;
  color: var(--np-mocha-text) !important;
}

/* Підсумок замовлення */
#unicheckout .unicheckout-sticky__wrapper {
  background: #f7f7f7 !important;
  border-radius: 3px !important;
  padding: 18px !important;
}
#unicheckout .unicheckout-sticky__heading {
  color: var(--np-mocha-text) !important;
  font-weight: 700 !important;
}
#unicheckout .unicheckout-sticky__total-item {
  border-color: rgba(61, 41, 20, .12) !important;
}
#unicheckout .unicheckout-sticky__confirm-btn,
#unicheckout #confirm_checkout {
  border-radius: 3px !important;
  background: var(--np-mocha-muted) !important;
  border-color: var(--np-mocha-muted) !important;
}
#unicheckout .unicheckout-sticky__total-input {
  border-radius: 3px !important;
}

/* Адаптив: вміщується у ширину екрана без внутрішньої горизонтальної прокрутки */
@media (max-width: 767px) {
  #unicheckout,
  #unicheckout .unicheckout__wrapper,
  #unicheckout .unicheckout__forms,
  #unicheckout .unicheckout-sticky,
  #novaposhta-block {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
  #unicheckout .unicheckout__forms,
  #unicheckout .unicheckout-sticky {
    float: none !important;
  }
  #novaposhta-block {
    overflow: hidden !important;
  }
  #novaposhta-block .np-radio-row {
    font-size: 13px !important;
    gap: 8px !important;
    padding: 10px !important;
  }
  #novaposhta-block #np-saved-addresses {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
  #novaposhta-block input.form-control,
  #novaposhta-block select.form-control {
    font-size: 14px !important;
  }
}


/* Сторінка «Адреси»: показуємо лише модуль НП, без стандартного дубля */
#account-address .account-address-list {
  display: none !important;
}
#account-address #np-addr-embed {
  max-width: 100%;
  border: 1px solid var(--np-mocha-border);
  border-radius: 3px;
  background: var(--np-mocha-bg);
  overflow: hidden;
}
#account-address #np-addr-embed .np-addr-head {
  padding: 14px 18px;
  background: var(--np-mocha-head);
  color: #faf6f1;
  font-size: 18px;
  font-weight: 700;
}
#account-address #np-addr-embed .np-addr-body {
  padding: 18px;
}
#account-address #np-addr-embed .np-addr-embed-item {
  padding: 14px;
  margin: 0 0 10px;
  border: 1px solid var(--np-mocha-input-border);
  border-radius: 3px;
  background: var(--np-mocha-input-bg);
  color: var(--np-mocha-text);
  overflow-wrap: anywhere;
}
#account-address #np-addr-embed .btn {
  border-radius: 3px;
}


/* Блок «До оплати NovaPay» у правому підсумку */
#np-novapay-pay-line {
  border-radius: 3px !important;
}


/* Однакова ширина блоків з адресами в особистому кабінеті */
#account-np-address #content .np-addr-card,
#account-np-address-form #content .np-addr-card,
#account-address #np-addr-embed {
  width: 100%;
  max-width: 800px;
}


/* Блок товарів над оформленням — одна ширина з секціями чекауту */
.unicheckout__forms #unicart {
  width: 100%;
  max-width: 800px;
}


/* Єдина ширина всіх секцій чекауту */
#unicheckout .unicheckout__user,
#unicheckout #novaposhta-block,
#unicheckout .unicheckout__comment {
  max-width: 800px !important;
}


/* Щільне розташування секцій та підсумку на великих екранах */
@media (min-width: 1200px) {
  #unicheckout .unicheckout__forms {
    width: 830px;
    max-width: calc(100% - 330px);
  }
  #unicheckout .unicheckout-sticky {
    width: 330px;
  }
}
