.mod-set-food-rations .sfr-floating-cart,
body > .sfr-floating-cart {
  display: none;
  z-index: 1080;
  pointer-events: none;
}

@media (min-width: 768px) {
  .mod-set-food-rations .sfr-floating-cart,
  body > .sfr-floating-cart {
    display: none !important;
  }
}

.sfr-cart-submit--loading .sfr-cart-btn-icon,
.sfr-bad-kit-submit--loading .sfr-cart-btn-icon {
  display: none !important;
}

.sfr-cart-submit--loading .sfr-cart-btn-spinner,
.sfr-bad-kit-submit--loading .sfr-cart-btn-spinner {
  display: inline-block !important;
}

.sfr-tablet-cart {
  min-width: 14rem;
}

#sfr-set-heading {
  scroll-margin-top: 5rem;
}

.mod-set-food-rations .sfr-floating-cart__ration-link:hover,
.mod-set-food-rations .sfr-floating-cart__ration-link:focus-visible,
body > .sfr-floating-cart .sfr-floating-cart__ration-link:hover,
body > .sfr-floating-cart .sfr-floating-cart__ration-link:focus-visible {
  color: #fff !important;
  opacity: .92;
}

@media (min-width: 768px) and (max-width: 991.98px) {
  .mod-set-food-rations .sfr-set-heading-row {
    flex-wrap: nowrap;
    align-items: flex-start;
  }

  .mod-set-food-rations .sfr-set-heading-main {
    flex: 1 1 auto;
    min-width: 0;
  }

  .mod-set-food-rations .sfr-set-heading-side {
    flex: 0 0 auto;
    width: auto;
    max-width: 17rem;
    margin-left: auto;
  }

  .mod-set-food-rations .sfr-tablet-cart {
    margin-top: 0 !important;
  }
}

.mod-set-food-rations .sfr-floating-cart.is-visible,
body > .sfr-floating-cart.is-visible {
  display: block;
  pointer-events: auto;
}

.mod-set-food-rations .sfr-floating-cart.is-visible .sfr-floating-cart__panel,
body > .sfr-floating-cart.is-visible .sfr-floating-cart__panel {
  pointer-events: auto;
}

.mod-set-food-rations .sfr-floating-cart .container {
  pointer-events: auto;
}

.modal.sfr-change-modal-preparing .modal-dialog {
  visibility: hidden;
}

@media (min-width: 992px) {
  .mod-set-food-rations .sfr-set-heading-row {
    flex-wrap: nowrap;
  }

  .mod-set-food-rations .sfr-set-heading-side {
    width: auto;
    max-width: 18rem;
    margin-left: auto;
    text-align: right;
  }

  .mod-set-food-rations .sfr-review-stars--heading {
    max-width: 100%;
    text-align: right;
  }

  .mod-set-food-rations .sfr-review-stars {
    max-width: 9rem;
    text-align: right;
    z-index: 1;
  }

  .mod-set-food-rations .sfr-review-stars .starContainer {
    justify-content: flex-end;
    flex-wrap: wrap;
    row-gap: .25rem;
  }
}

.mod-set-food-rations .sfr-review-stars .reviewStars {
  display: flex;
  flex: 0 0 auto;
  flex-wrap: nowrap;
  white-space: nowrap;
}

.mod-set-food-rations .sfr-review-stars .jreview-begin {
  white-space: nowrap;
}

@media (max-width: 991.98px) {
  .mod-set-food-rations .sfr-floating-cart,
  body > .sfr-floating-cart {
    bottom: 0;
    left: 0;
    right: 0;
  }

  body.has-mobile-bottom-nav .mod-set-food-rations .sfr-floating-cart,
  body.has-mobile-bottom-nav > .sfr-floating-cart {
    bottom: calc(3.625rem + env(safe-area-inset-bottom, 0px));
  }

  .mod-set-food-rations .sfr-floating-cart__panel,
  body > .sfr-floating-cart .sfr-floating-cart__panel {
    padding-bottom: max(.75rem, env(safe-area-inset-bottom, 0px));
  }

  .mod-set-food-rations .sfr-floating-cart .container {
    max-width: 100%;
    padding-left: 0;
    padding-right: 0;
  }
}
.sfr-review-summary {
  min-height: 1.25rem;
  min-width: 6.5rem;
  line-height: 1;
}

.sfr-review-summary--pending .sfr-review-chip--placeholder {
  visibility: hidden;
}

.sfr-review-rating {
  font-variant-numeric: tabular-nums;
}

.sfr-review-count {
  line-height: 1;
}

.sfr-review-count .ai-chat {
  opacity: .65;
}

@media (max-width: 991.98px) {
  .sfr-rating-star--single {
    font-size: 1rem;
  }

  .sfr-review-rating {
    font-size: calc(var(--bs-body-font-size) * 0.875);
  }
}

.sfr-rating-stars {
  display: inline-flex;
  flex-wrap: nowrap;
  gap: 2px;
  line-height: 1;
}

.sfr-rating-star {
  --sfr-star-fill: 0%;
  position: relative;
  display: inline-block;
  color: var(--bs-gray-400);
}

.sfr-rating-star--single {
  font-size: 1.125rem;
}

.sfr-rating-star::before {
  position: absolute;
  inset: 0 auto 0 0;
  width: var(--sfr-star-fill);
  overflow: hidden;
  color: var(--bs-warning);
  content: "★";
}

.mod-set-food-rations .sfr-dish-image-wrap .sfr-dish-qty-controls {
  position: absolute;
  left: 0.3rem;
  right: 0.3rem;
  bottom: 0.3rem;
  z-index: 3;
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-start;
  gap: 0.35rem;
}

.mod-set-food-rations .sfr-dish-image-wrap .sfr-dish-qty-controls > .sfr-qty-remove {
  flex: 0 0 2rem;
  flex-shrink: 0;
  background: rgba(255, 255, 255, .94);
  border-radius: 50%;
}

.mod-set-food-rations .sfr-dish-image-wrap .sfr-dish-qty-controls .sfr-qty {
  position: static;
  left: auto;
  right: auto;
  bottom: auto;
  flex: 0 0 auto;
  width: auto;
  max-width: none;
  gap: 0.15rem;
  padding: 0 0.2rem;
  flex-shrink: 0;
}

.mod-set-food-rations .sfr-dish-image-wrap .sfr-dish-qty-controls .sfr-qty--empty {
  width: auto;
  min-width: 2.25rem;
  max-width: none;
  left: auto;
  right: auto;
  padding: 0;
}

.mod-set-food-rations .sfr-dish-image-wrap .sfr-dish-qty-controls .sfr-qty-input {
  min-width: 2rem;
  width: 2.25rem;
  flex: 0 0 auto;
  padding: 0.15rem 0.1rem;
}

.mod-set-food-rations .sfr-dish-image-wrap .sfr-qty {
  position: absolute;
  left: 0.3rem;
  right: 0.3rem;
  bottom: 0.3rem;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .25rem;
  padding: 0 .25rem;
  background: rgba(255, 255, 255, .94);
  border-radius: 1rem;
  transition: left .2s ease, right .2s ease, width .2s ease, padding .2s ease, background-color .2s ease;
}

/* Empty qty: only the plus button on the right */
.mod-set-food-rations .sfr-dish-image-wrap .sfr-qty--empty {
  left: auto;
  right: 0.3rem;
  width: 2.25rem;
  justify-content: center;
  gap: 0;
  padding: 0;
  background: rgba(255, 255, 255, .94);
}

.mod-set-food-rations .sfr-dish-image-wrap .sfr-dish-qty-controls .sfr-qty--empty {
  left: auto;
  right: auto;
}

.mod-set-food-rations .sfr-qty--empty [data-sfr-quantity-minus],
.mod-set-food-rations .sfr-qty--empty .sfr-qty-input {
  display: none !important;
}

.mod-set-food-rations .sfr-qty--empty [data-sfr-quantity-plus] {
  display: inline-flex;
}

.mod-set-food-rations .sfr-qty-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: 0;
  background: transparent;
  font-size: 1.25rem;
}

.mod-set-food-rations .sfr-qty-btn:hover,
.mod-set-food-rations .sfr-qty-btn:focus-visible {
  background: rgba(var(--bs-secondary-rgb, 108, 117, 125), .12);
}

.mod-set-food-rations .sfr-qty-btn:disabled,
.mod-set-food-rations .sfr-qty-btn[aria-disabled="true"] {
  opacity: .4;
  pointer-events: none;
  cursor: not-allowed;
}

.mod-set-food-rations .sfr-qty-input {
  min-width: 2.5rem;
  padding: .15rem .25rem;
  text-align: center;
  border: 0;
  background: transparent;
  font-weight: 600;
  -moz-appearance: textfield;
}

.mod-set-food-rations .sfr-qty-input::-webkit-outer-spin-button,
.mod-set-food-rations .sfr-qty-input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}


#QuickView.modal,
#ModalChange.modal {
  z-index: 1100;
}

body.sfr-overlay-modal-open .modal-backdrop.show {
  z-index: 1095 !important;
}

body.sfr-overlay-modal-open .sfr-floating-cart,
body.sfr-overlay-modal-open > .sfr-floating-cart {
  display: none !important;
  pointer-events: none !important;
}

.sfr-mealplan-detail-wrap {
  max-height: 640px;
  -webkit-overflow-scrolling: touch;
}

.mod-set-food-rations .tab-content > .tab-pane {
  display: none;
}

.mod-set-food-rations .tab-content > .tab-pane.active {
  display: block;
}

.mod-set-food-rations .swiper {
  overflow: hidden;
}

.mod-set-food-rations .swiper .swiper-wrapper {
  align-items: stretch;
}

.sfr-swiper-pending:not(.swiper-initialized) {
  overflow: hidden;
}

.sfr-swiper-pending:not(.swiper-initialized) .swiper-wrapper {
  display: flex;
  flex-wrap: nowrap;
  overflow: hidden;
  align-items: stretch;
  gap: var(--sfr-gap, 15px);
}

.sfr-swiper-pending:not(.swiper-initialized) .swiper-slide {
  flex: 0 0 calc((100% - (var(--sfr-gap, 15px) * (var(--sfr-spv, 1) - 1))) / var(--sfr-spv, 1));
  width: calc((100% - (var(--sfr-gap, 15px) * (var(--sfr-spv, 1) - 1))) / var(--sfr-spv, 1));
  max-width: calc((100% - (var(--sfr-gap, 15px) * (var(--sfr-spv, 1) - 1))) / var(--sfr-spv, 1));
  min-width: 0;
  box-sizing: border-box;
  height: auto;
}

.sfr-swiper-pending:not(.swiper-initialized) .swiper-slide img {
  max-width: 100%;
  height: auto;
}

@media (min-width: 768px) {
  .sfr-swiper-pending:not(.swiper-initialized) .swiper-slide {
    flex-basis: calc((100% - (var(--sfr-gap, 15px) * (var(--sfr-spv-md, var(--sfr-spv, 1)) - 1))) / var(--sfr-spv-md, var(--sfr-spv, 1)));
    width: calc((100% - (var(--sfr-gap, 15px) * (var(--sfr-spv-md, var(--sfr-spv, 1)) - 1))) / var(--sfr-spv-md, var(--sfr-spv, 1)));
    max-width: calc((100% - (var(--sfr-gap, 15px) * (var(--sfr-spv-md, var(--sfr-spv, 1)) - 1))) / var(--sfr-spv-md, var(--sfr-spv, 1)));
  }
}

@media (min-width: 992px) {
  .sfr-swiper-pending:not(.swiper-initialized) .swiper-slide {
    flex-basis: calc((100% - (var(--sfr-gap, 15px) * (var(--sfr-spv-lg, var(--sfr-spv-md, var(--sfr-spv, 1))) - 1))) / var(--sfr-spv-lg, var(--sfr-spv-md, var(--sfr-spv, 1))));
    width: calc((100% - (var(--sfr-gap, 15px) * (var(--sfr-spv-lg, var(--sfr-spv-md, var(--sfr-spv, 1))) - 1))) / var(--sfr-spv-lg, var(--sfr-spv-md, var(--sfr-spv, 1))));
    max-width: calc((100% - (var(--sfr-gap, 15px) * (var(--sfr-spv-lg, var(--sfr-spv-md, var(--sfr-spv, 1))) - 1))) / var(--sfr-spv-lg, var(--sfr-spv-md, var(--sfr-spv, 1))));
  }
}

@media (min-width: 1400px) {
  .sfr-swiper-pending:not(.swiper-initialized) .swiper-slide {
    flex-basis: calc((100% - (var(--sfr-gap, 15px) * (var(--sfr-spv-xxl, var(--sfr-spv-lg, var(--sfr-spv-md, var(--sfr-spv, 1)))) - 1))) / var(--sfr-spv-xxl, var(--sfr-spv-lg, var(--sfr-spv-md, var(--sfr-spv, 1)))));
    width: calc((100% - (var(--sfr-gap, 15px) * (var(--sfr-spv-xxl, var(--sfr-spv-lg, var(--sfr-spv-md, var(--sfr-spv, 1)))) - 1))) / var(--sfr-spv-xxl, var(--sfr-spv-lg, var(--sfr-spv-md, var(--sfr-spv, 1)))));
    max-width: calc((100% - (var(--sfr-gap, 15px) * (var(--sfr-spv-xxl, var(--sfr-spv-lg, var(--sfr-spv-md, var(--sfr-spv, 1)))) - 1))) / var(--sfr-spv-xxl, var(--sfr-spv-lg, var(--sfr-spv-md, var(--sfr-spv, 1)))));
  }
}

.mod-set-food-rations .sfr-dish-image-wrap {
  aspect-ratio: 230 / 305;
}

.mod-set-food-rations .sfr-dish-image-wrap img,
.mod-set-food-rations .sfr-dish-image-wrap .sfr-dish-image-placeholder {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.set-food-rations.sfr-ration-selector-shell {
  min-height: 960px;
}

.mod-set-food-rations .sfr-bad-kit-title-link:hover,
.mod-set-food-rations .sfr-bad-kit-title-link:focus-visible {
  text-decoration: underline !important;
}

.mod-set-food-rations .sfr-bad-kit-media img.sfr-bad-kit-image {
  max-height: 5.5rem;
  width: auto;
  object-fit: contain;
  object-position: right bottom;
}

.sfr-cart-added-modal.sfr-cart-added-modal--booting .modal-dialog {
  visibility: hidden;
}

.sfr-cart-added-modal .sfr-cart-bad-kit-stage {
  min-height: 13.25rem;
}

.sfr-cart-added-modal .sfr-cart-bad-kit-stage--pending .sfr-bad-kit {
  visibility: hidden;
  pointer-events: none;
}

.sfr-cart-added-modal .sfr-bad-kit-card {
  min-height: 13.25rem;
}

.sfr-cart-added-modal .sfr-bad-kit-image {
  max-height: 5.5rem;
  object-fit: contain;
  object-position: right bottom;
}

/* Independent unified layout concept. Keep all overrides scoped so the
   default module layout is visually and structurally unaffected. */
.mod-set-food-rations--unified {
  --sfr-unified-surface: var(--bs-tertiary-bg, #f4f6f8);
  --sfr-unified-border: var(--bs-border-color, #dee2e6);
}

.mod-set-food-rations--unified .sfr-unified-view {
  overflow: hidden;
  border: 1px solid var(--sfr-unified-border);
  border-radius: 1.5rem;
  background: var(--sfr-unified-surface);
  box-shadow: 0 1rem 3rem rgba(21, 31, 44, .08);
}

.mod-set-food-rations--unified .sfr-layout-unified {
  padding-inline: clamp(1rem, 3vw, 2.5rem);
}

.mod-set-food-rations--unified .sfr-layout-unified > .row:first-child {
  text-align: center;
  justify-content: center;
}

.mod-set-food-rations--unified .sfr-layout-unified #RationProductSelector,
.mod-set-food-rations--unified .sfr-layout-unified #GetSetMultivariant {
  width: 100%;
  max-width: none !important;
  padding: 1rem;
  border: 1px solid var(--sfr-unified-border);
  border-radius: 1rem;
  background: var(--bs-body-bg, #fff);
}

.mod-set-food-rations--unified .sfr-layout-unified .nav-tabs {
  gap: .5rem;
  padding: .5rem;
  border: 0;
  border-radius: 999px;
  background: var(--bs-body-bg, #fff);
}

.mod-set-food-rations--unified .sfr-layout-unified .nav-tabs .nav-link {
  border: 0;
  border-radius: 999px;
}
