/* Vzhled nativního košíku a objednávky; výpočty, formuláře a obsluha zůstávají Shoptetu. */
body.ordering-process { background: #f5f7f8; color: #253139; }
body.ordering-process #content-wrapper { padding-top: 28px; padding-bottom: 48px; }
body.ordering-process #content { width: 100%; min-width: 0; }
body.ordering-process .cart-row { display: flex; flex-wrap: wrap; align-items: flex-start; margin: 0 -12px; }
body.ordering-process .cart-row::before, body.ordering-process .cart-row::after { display: none; }
body.ordering-process .cart-row > [class*="col-"] { min-width: 0; padding: 0 12px; }
body.ordering-process .cart-content { margin-bottom: 20px; padding: 0; border: 1px solid #dde3e5; border-radius: 4px; background: #fff; box-shadow: none; }
body.ordering-process .cart-heading { margin: 0 0 24px; color: #253139; font-size: clamp(25px,2.3vw,34px); font-weight: 700; line-height: 1.2; }
body.ordering-process h2, body.ordering-process h3, body.ordering-process .h4 { color: #253139; font-weight: 600; text-transform: none; }
body.ordering-process .cart-content > .h4 { margin: 0; padding: 20px 22px 8px; font-size: 19px; }
body.ordering-process .cart-header { display: flex; position: static; width: 100%; margin: 0; padding: 0; border-bottom: 1px solid #dde3e5; background: #fff; list-style: none; }
body.ordering-process .cart-header .step { display: flex; flex: 1 1 0; align-items: stretch; min-width: 0; margin: 0; padding: 0; border: 0; border-top: 3px solid transparent; background: #f7f8f8; color: #667279; font-size: 15px; font-weight: 400; line-height: 1.35; text-align: left; text-transform: none; }
body.ordering-process .cart-header .step > a, body.ordering-process .cart-header .step > strong { display: flex; align-items: center; gap: 9px; width: 100%; margin: 0; padding: 17px 14px; color: inherit; font-weight: inherit; text-decoration: none; }
body.ordering-process .cart-header .step::before { display: none; }
body.ordering-process .cart-header .step > :is(a,strong) > span::before { display: none; content: none; }
body.ordering-process .cart-header .step > :is(a,strong)::before { display: inline-flex; flex: 0 0 27px; align-items: center; justify-content: center; width: 27px; height: 27px; margin: 0; border: 1px solid #a7b1b6; border-radius: 50%; background: none; color: inherit; font-size: 15px; line-height: 1; }
body.ordering-process .cart-header .step-1 > :is(a,strong)::before { content: "1"; }
body.ordering-process .cart-header .step-2 > :is(a,strong)::before { content: "2"; }
body.ordering-process .cart-header .step-3 > :is(a,strong)::before { content: "3"; }
body.ordering-process .cart-header .step.active { border-top-color: #0b8577; background: #fff; color: #087a6e; font-weight: 600; }
body.ordering-process .cart-header .step.active > :is(a,strong)::before { border-color: #0b8577; background: #0b8577; color: #fff; }
body.ordering-process .cart-header .step.completed { color: #0b8577; }
body.ordering-process .cart-header .step > a:hover { background: #edf5f4; }
body.ordering-process .cart-table { width: 100%; margin: 0; border: 0; border-collapse: collapse; background: #fff; }
body.ordering-process .cart-table td { padding: 22px 10px; border: 0; border-bottom: 1px solid #e1e6e8; color: #253139; font-size: 15px; vertical-align: middle; }
body.ordering-process .cart-table .cart-p-image { width: 95px; padding-left: 18px; }
body.ordering-process .cart-table .cart-p-image img { display: block; width: 76px; height: 76px; max-width: 100%; object-fit: contain; }
body.ordering-process .cart-table .p-name { min-width: 130px; }
body.ordering-process .main-link { color: #253139; font-weight: 600; line-height: 1.4; text-transform: none; }
body.ordering-process .main-link:hover { color: #0b8577; text-decoration: underline; }
body.ordering-process .cart-table .availability-label { font-size: 14px; font-weight: 600; }
body.ordering-process .cart-table .p-price { white-space: nowrap; }
body.ordering-process .cart-table .p-total { min-width: 86px; padding-right: 20px; white-space: nowrap; }
body.ordering-process .cart-table .p-total .price-final { font-size: 17px; }
body.ordering-process .cart-table .quantity { display: inline-block; position: relative; width: 76px; min-width: 70px; height: 46px; padding: 0; border: 1px solid #cbd3d7; border-radius: 4px; background: #fff; }
body.ordering-process .cart-table .quantity label { display: block; width: 100%; margin: 0; padding: 0; }
body.ordering-process .cart-table .quantity input { display: block; width: calc(100% - 24px); height: 44px; min-height: 44px; margin: 0; padding: 0; border: 0; background: #fff; color: #253139; font-size: 16px; text-align: center; }
body.ordering-process .cart-table .p-quantity .quantity :is(.increase,.decrease) { position: absolute; right: 0; left: auto; width: 24px; height: 22px; margin: 0; padding: 0; border: 0; border-left: 1px solid #dde3e5; color: #526169; line-height: 22px; }
body.ordering-process .cart-table .p-quantity .quantity .increase { top: 0; bottom: auto; }
body.ordering-process .cart-table .p-quantity .quantity .decrease { top: auto; bottom: 0; border-top: 1px solid #dde3e5; }
body.ordering-process .cart-table .remove-item { color: #667279; }
body.ordering-process .cart-table .remove-item:hover { color: #b52929; }
body.ordering-process .cart-summary { margin: 0; padding: 20px 22px; }
body.ordering-process .cart-summary > h2 { margin: 0 0 16px; font-size: 19px; }
body.ordering-process .extra.delivery { color: #087a6e; font-size: 15px; }
body.ordering-process .extra.delivery::before { color: #0b8577; }
body.ordering-process .sidebar-in-cart .box, body.ordering-process #checkoutSidebar .box { padding: 20px 22px; border: 0; background: none; box-shadow: none; }
body.ordering-process .sidebar-in-cart > .checkout-box-wrapper,
body.ordering-process #checkoutSidebar .order-summary > .checkout-box {
  display: none;
}
body.ordering-process .price-wrapper { color: #253139; }
body.ordering-process .price-wrapper .price-primary.price { color: #253139; font-size: 32px; font-weight: 700; }
body.ordering-process .price-wrapper .price-secondary { color: #667279; font-size: 14px; font-weight: 400; }
body.ordering-process .next-step { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin: 20px 0 0; padding: 0; }
body.ordering-process .next-step .next-step-forward { flex: 1 1 auto; min-height: 50px; padding: 13px 20px; border: 1px solid #0b8577; border-radius: 4px; background: #0b8577; color: #fff; font-size: 17px; font-weight: 600; line-height: 1.35; text-transform: none; box-shadow: none; }
body.ordering-process .next-step .next-step-forward:hover { border-color: #156c64; background: #156c64; }
body.ordering-process .next-step .order-button-text { text-transform: none; }
body.ordering-process .next-step--cart, body.ordering-process #checkoutSidebar .next-step { flex-direction: column-reverse; align-items: stretch; }
body.ordering-process .next-step--cart .next-step-forward, body.ordering-process #checkoutSidebar .next-step .next-step-forward { flex: 0 0 auto; width: 100%; }
body.ordering-process .next-step .next-step-back { padding: 10px 0; border: 0; background: none; color: #526169; font-size: 15px; text-transform: none; box-shadow: none; }
body.ordering-process .next-step .next-step-back:hover { color: #0b8577; text-decoration: underline; }
body.ordering-process .btn:disabled, body.ordering-process .btn.disabled { opacity: .5; cursor: not-allowed; }
body.ordering-process #content :is(.btn, a, button):focus-visible { outline: 2px solid #0b8577; outline-offset: 2px; }
body.ordering-process .form-control { border: 1px solid #cbd3d7; border-radius: 4px; background: #fff; color: #253139; box-shadow: none; }
body.ordering-process .form-control:focus { border-color: #0b8577; outline: 2px solid #0b857733; outline-offset: 0; box-shadow: none; }
body.ordering-process :is(input[type=checkbox],input[type=radio]) { accent-color: #0b8577; }
body.ordering-process #order-form { margin: 0; padding: 22px; }
body.ordering-process #order-form .co-box { margin: 0 0 24px; padding: 0; border: 0; background: none; }
body.ordering-process #order-form .order-icon { display: flex; align-items: center; gap: 12px; margin: 0 0 18px; padding: 0; font-size: 21px; text-transform: none; }
body.ordering-process #order-form .order-icon::before { display: inline-block; position: static; flex: 0 0 28px; margin: 0; color: #0b8577; font-size: 26px; line-height: 1; }
body.ordering-process .radio-wrapper { margin: 0; border-bottom: 1px solid #e1e6e8; background: #fff; }
body.ordering-process .radio-wrapper > label { min-height: 70px; margin: 0; background: none; color: #253139; }
body.ordering-process .radio-wrapper:has(> input:checked) { background: #edf6f4; }
body.ordering-process .shipping-billing-name { font-size: 15px; font-weight: 600; text-transform: none; }
body.ordering-process .payment-shipping-price { font-size: 15px; }
body.ordering-process .order-summary-inner { padding: 0 22px 20px; }
body.ordering-process .order-summary-inner h2 { margin: 0; padding: 22px 0 16px; font-size: 19px; }
body.ordering-process .order-summary-inner .cart-item { padding-top: 12px; padding-bottom: 12px; border-color: #e1e6e8; }
body.ordering-process #checkoutSidebar > .cart-content { padding: 0; }
body.ordering-process #checkoutSidebar .next-step { padding: 0 22px 22px; }
body.ordering-process .bd-empty-cart {
  max-width: 660px;
  margin: 0 auto;
  padding: clamp(30px, 6vw, 68px) clamp(16px, 5vw, 40px);
  border: 1px solid #dde3e5;
  border-radius: 8px;
  background: #fff;
  text-align: center;
}
body.ordering-process .bd-empty-cart > .cart-heading {
  margin: 0 0 22px;
  font-size: clamp(23px, 3vw, 32px);
  line-height: 1.25;
}
body.ordering-process .bd-empty-cart > .cart-row { display: none; }
body.ordering-process .bd-empty-cart__back {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 8px 20px;
  border-radius: 5px;
  background: #087c70;
  color: #fff;
  font-weight: 600;
  text-decoration: none;
}
body.ordering-process .bd-empty-cart__back:hover { background: #156c64; }
@media (min-width: 992px) {
  body.ordering-process .cart-row > .col-md-8 { width: 68%; }
  body.ordering-process .cart-row > .col-md-4 { width: 32%; }
}
@media (max-width: 1279px) and (min-width: 992px) {
  body.ordering-process .cart-row > .col-md-8 { width: 65%; }
  body.ordering-process .cart-row > .col-md-4 { width: 35%; }
  body.ordering-process .cart-table .cart-p-image { width: 66px; padding-left: 12px; }
  body.ordering-process .cart-table .cart-p-image img { width: 48px; height: 60px; }
  body.ordering-process .cart-table td { padding-left: 7px; padding-right: 7px; font-size: 14px; }
  body.ordering-process .cart-header .step > :is(a,strong) { padding: 14px 9px; gap: 6px; font-size: 14px; }
}
@media (max-width: 991.98px) {
  body.ordering-process .cart-row > [class*="col-"] { width: 100%; }
  body.ordering-process #content-wrapper { padding-top: 20px; }
  body.ordering-process .next-step .next-step-forward { flex: 0 1 60%; }
}
@media (max-width: 767px) {
  body.ordering-process .cart-row { margin: 0; }
  body.ordering-process .cart-row > [class*="col-"] { padding: 0; }
  body.ordering-process .cart-header .step > :is(a,strong) { flex-direction: column; justify-content: flex-start; gap: 6px; padding: 12px 5px; font-size: 13px; text-align: center; }
  body.ordering-process .cart-table, body.ordering-process .cart-table tbody { display: block; }
  body.ordering-process .cart-table tr { position: relative; display: grid; grid-template-columns: 76px minmax(0,1fr) minmax(80px,auto); gap: 10px 12px; padding: 18px 14px; border-bottom: 1px solid #e1e6e8; }
  body.ordering-process .cart-table td { display: block; width: auto; min-width: 0; margin: 0; padding: 0; border: 0; text-align: left; }
  body.ordering-process .cart-table .cart-p-image { grid-column: 1; grid-row: 1 / 3; width: 76px; padding: 0; }
  body.ordering-process .cart-table .p-name { grid-column: 2 / -1; padding-right: 24px; }
  body.ordering-process .cart-table .p-availability { grid-column: 2 / -1; }
  body.ordering-process .cart-table .p-quantity { grid-column: 1; }
  body.ordering-process .cart-table .p-price { grid-column: 2; align-self: center; white-space: normal; }
  body.ordering-process .cart-table .p-total { position: static; grid-column: 3; align-self: center; min-width: 0; padding: 0; text-align: right; }
  body.ordering-process .cart-table .p-label { display: none; }
  body.ordering-process .cart-table .remove-item { top: 16px; right: 10px; }
  body.ordering-process .cart-table .quantity { width: 76px; min-width: 0; }
  body.ordering-process .cart-summary { padding: 18px 16px; }
  body.ordering-process .cart-summary .extras-wrapper { display: block; }
  body.ordering-process .cart-summary .extras-col { width: 100%; padding: 0; }
  body.ordering-process #order-form { padding: 20px 16px; }
  body.ordering-process .sidebar-in-cart .box, body.ordering-process #checkoutSidebar .box { padding: 18px 16px; }
}

/* Globální hlášky zachovávají obsah, typ i ovládání Shoptetu. */
body > :is(.messages, .msg-wrapper):has(> .msg:not(.hidden, .bd-cart-notice--expired)) {
  --bd-notice-panel-top: var(--bd-notice-top, 132px);
  top: var(--bd-notice-panel-top);
  right: var(--bd-notice-right, 12px);
  left: auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  justify-items: end;
  gap: 8px;
  width: min(360px, calc(100% - 24px));
  max-height: calc(100dvh - var(--bd-notice-panel-top) - 12px);
  overflow: auto;
  overscroll-behavior: contain;
  pointer-events: none;
}
body > :is(.messages, .msg-wrapper) > .msg {
  box-sizing: border-box;
  width: max-content;
  min-width: 0;
  max-width: 100%;
  margin: 0;
  padding: 12px 16px;
  border: 1px solid var(--bd-notice-border, #b9d8d4);
  border-inline-start: 3px solid var(--bd-notice-accent, #087c70);
  border-radius: 8px;
  background: var(--bd-notice-fill, #e3f1f0);
  color: #0b171b;
  box-shadow: 0 6px 20px rgb(11 23 27 / 14%);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
  overflow-wrap: anywhere;
  pointer-events: auto;
}
body > :is(.messages, .msg-wrapper) > .msg-success {
  display: flex;
  align-items: center;
  gap: 10px;
}
body > :is(.messages, .msg-wrapper) > .msg-success::before {
  content: "";
  flex: 0 0 8px;
  height: 14px;
  margin: -3px 3px 0;
  border: solid #087c70;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.msg-warning {
  --bd-notice-fill: #fff5df;
  --bd-notice-border: #edd29b;
  --bd-notice-accent: #955500;
}
.msg-error {
  --bd-notice-fill: #fbeceb;
  --bd-notice-border: #e9c1bd;
  --bd-notice-accent: #a12822;
}
body > :is(.messages, .msg-wrapper) > .msg > .container {
  width: auto;
  min-width: 0;
  max-width: none;
  margin: 0;
  padding: 0;
}
body > :is(.messages, .msg-wrapper) > .msg a {
  color: var(--bd-notice-accent, #05695f);
  text-decoration: underline;
}
body > :is(.messages, .msg-wrapper) > .msg a:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}
body > :is(.messages, .msg-wrapper) > .msg:is(.hidden, .bd-cart-notice--expired) {
  display: none;
}
@media (min-width: 992px) {
  body.cart-window-visible > :is(.messages, .msg-wrapper):has(> .msg:not(.hidden, .bd-cart-notice--expired)) {
    right: auto;
    left: var(--bd-notice-right, 12px);
    justify-items: start;
  }
}
@media (max-width: 991.98px) {
  body > :is(.messages, .msg-wrapper):has(> .msg:not(.hidden, .bd-cart-notice--expired)) {
    --bd-notice-panel-top: calc(var(--bd-mobile-header-height, 118px) + 10px);
    right: 12px;
  }
}

/* Validace polí zůstává u příslušného ovladače. */
body.ordering-process :is(#cart-wrapper, #checkoutSidebar, #order-form)
  :is(.msg-warning, .msg-error, .msg-success, .msg-notice, .msg-info):not(:empty),
.express-checkout__discount-coupon-input-wrapper .msg-error:not(:empty) {
  padding: 8px 10px;
  border: 1px solid var(--bd-notice-border, #b9d8d4);
  border-inline-start: 3px solid var(--bd-notice-accent, #087c70);
  border-radius: 5px;
  background: var(--bd-notice-fill, #e3f1f0);
  color: #0b171b;
}

/* Zákaznický účet používá původní menu a formulář Shoptetu. */
body:is(.customer-page, .in-klient) #content-wrapper {
  padding-block: clamp(16px, 2.2vw, 28px) 40px;
  background: #f5f7f8;
}
body:is(.customer-page, .in-klient) #content-wrapper .content-wrapper-in {
  align-items: flex-start;
  gap: clamp(16px, 2vw, 28px);
}
body:is(.customer-page, .in-klient) #content-wrapper #content {
  min-width: 0;
  padding-inline: 0;
  color: #253139;
}
body:is(.customer-page, .in-klient) #content :is(h1, h2, h3) { color: #0b171b; font-weight: 700; }
body:is(.customer-page, .in-klient) #content h1 {
  margin: 0 0 20px;
  font-size: clamp(25px, 3vw, 36px);
  line-height: 1.2;
}
body:is(.customer-page, .in-klient) #content :is(h2, h3) { font-size: clamp(18px, 2vw, 23px); }

body:is(.customer-page, .in-klient) #content-wrapper .sidebar {
  min-width: 0;
  max-width: 100%;
  border: 1px solid #dde3e5;
  border-radius: 8px;
  background: #fff;
}
body:is(.customer-page, .in-klient) #content-wrapper .sidebar-inner { padding: 12px; }
body:is(.customer-page, .in-klient) #content-wrapper .sidebar-inner > div { padding-block: 8px; }
body:is(.customer-page, .in-klient) #content-wrapper .sidebar ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
body:is(.customer-page, .in-klient) #content-wrapper .sidebar li { margin: 0; }
body:is(.customer-page, .in-klient) #content-wrapper .sidebar li > a:not(.btn) {
  display: block;
  padding: 8px 10px;
  border-radius: 5px;
  color: #253139;
  line-height: 1.35;
  text-decoration: none;
  overflow-wrap: anywhere;
}
body:is(.customer-page, .in-klient) #content-wrapper .sidebar li > a:not(.btn):is(:hover, :focus-visible, [aria-current="page"]),
body:is(.customer-page, .in-klient) #content-wrapper .sidebar li.active > a:not(.btn) {
  background: #e3f1f0;
  color: #05695f;
}
body:is(.customer-page, .in-klient) #content-wrapper .sidebar .btn {
  margin: 4px 0 8px;
  padding: 7px 12px;
  border: 0;
  border-radius: 5px;
  background: #e3f1f0;
  color: #0b171b;
  font-weight: 600;
  text-transform: none;
}
body:is(.customer-page, .in-klient) #content-wrapper .sidebar .btn:hover { background: #d1e8e5; }

body:is(.customer-page, .in-klient) #content form:has(input[type="password"]) {
  width: 100%;
  max-width: 760px;
  padding: clamp(16px, 3vw, 28px);
  border: 1px solid #dde3e5;
  border-radius: 8px;
  background: #fff;
}
body:is(.customer-page, .in-klient) #content form:has(input[type="password"]) fieldset {
  min-width: 0;
  max-width: 100%;
}
body:is(.customer-page, .in-klient) #content .form-group label { font-weight: 600; }
body:is(.customer-page, .in-klient) #content .form-control {
  min-width: 0;
  min-height: 44px;
  max-width: 100%;
  border: 1px solid #b7c9cc;
  border-radius: 6px;
  background-color: #fff;
  color: #253139;
  box-shadow: none;
  font-size: 16px;
}
body:is(.customer-page, .in-klient) #content .form-control:focus { border-color: #087c70; }
body:is(.customer-page, .in-klient) #content :is(input, button)[type="submit"].btn {
  min-height: 44px;
  border: 0;
  border-radius: 5px;
  background: #087c70;
  color: #fff;
  font-weight: 600;
  text-transform: none;
}
body:is(.customer-page, .in-klient) #content :is(input, button)[type="submit"].btn:hover { background: #156c64; }
body:is(.customer-page, .in-klient) #content form:has(input[type="password"]) :is(input, button)[type="submit"].btn {
  margin-top: 12px;
}
body:is(.customer-page, .in-klient) #content-wrapper :is(a, button, input, select, textarea):focus-visible {
  outline: 2px solid #087c70;
  outline-offset: 2px;
}
