@charset "UTF-8";
/** Ionic CSS Variables **/
:root {
  --ion-font-family:
    "Hanken Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui,
    sans-serif;
  /** Design System 2.0 — Brand tokens (defaults; overridden dynamically pelo SettingsGuard) **/
  --brand-primary: #46a6af;
  --brand-ink: #231f20;
  --brand-primary-soft: rgba(70, 166, 175, 0.12);
  --brand-primary-contrast: #ffffff;
  /** Design System 2.0 — Semantic tokens **/
  --ink: #111111;
  --ink-2: #555555;
  --ink-3: #888888;
  --ink-soft: #7a7a7a;
  --ink-muted: #b0b0b0;
  --app-bg: #f5f5f5;
  --surface: #ffffff;
  --card-radius: 14px;
  --border-color: #ebebeb;
  /** PIX semantico — verde oficial da marca PIX (BCB).
      Mantido fora dos brand tokens whitelabel pois e cor institucional
      do meio de pagamento, nao da marca do tenant. **/
  --brand-pix: #2a9d8f;
  --brand-pix-dark: #1a7d70;
  --brand-pix-darker: #155f56;
  --brand-pix-soft: rgba(50, 188, 173, 0.1);
  /** primary — RGB ajustado pra bater com #46a6af (era 56,128,255 do template Ionic).
      Calculos rgba(var(--ion-color-primary-rgb), .X) agora geram a cor real. **/
  --ion-color-primary: #46a6af;
  --ion-color-primary-rgb: 70, 166, 175;
  --ion-color-primary-contrast: #ffffff;
  --ion-color-primary-contrast-rgb: 255, 255, 255;
  --ion-color-primary-shade: #3e9299;
  --ion-color-primary-tint: #59afb7;
  /** secondary **/
  --ion-color-secondary: #231f20;
  --ion-color-secondary-rgb: 61, 194, 255;
  --ion-color-secondary-contrast: #ffffff;
  --ion-color-secondary-contrast-rgb: 255, 255, 255;
  --ion-color-secondary-shade: #36abe0;
  --ion-color-secondary-tint: #50c8ff;
  /** tertiary **/
  --ion-color-tertiary: #5260ff;
  --ion-color-tertiary-rgb: 82, 96, 255;
  --ion-color-tertiary-contrast: #ffffff;
  --ion-color-tertiary-contrast-rgb: 255, 255, 255;
  --ion-color-tertiary-shade: #4854e0;
  --ion-color-tertiary-tint: #6370ff;
  /** success **/
  --ion-color-success: #2dd36f;
  --ion-color-success-rgb: 45, 211, 111;
  --ion-color-success-contrast: #ffffff;
  --ion-color-success-contrast-rgb: 255, 255, 255;
  --ion-color-success-shade: #28ba62;
  --ion-color-success-tint: #42d77d;
  /** warning **/
  --ion-color-warning: #ffc409;
  --ion-color-warning-rgb: 255, 196, 9;
  --ion-color-warning-contrast: #000000;
  --ion-color-warning-contrast-rgb: 0, 0, 0;
  --ion-color-warning-shade: #e0ac08;
  --ion-color-warning-tint: #ffca22;
  /** danger **/
  --ion-color-danger: #eb445a;
  --ion-color-danger-rgb: 235, 68, 90;
  --ion-color-danger-contrast: #ffffff;
  --ion-color-danger-contrast-rgb: 255, 255, 255;
  --ion-color-danger-shade: #cf3c4f;
  --ion-color-danger-tint: #ed576b;
  /** dark **/
  --ion-color-dark: #000;
  --ion-color-dark-rgb: 0, 0, 0;
  --ion-color-dark-contrast: #ffffff;
  --ion-color-dark-contrast-rgb: 255, 255, 255;
  --ion-color-dark-shade: #1e2023;
  --ion-color-dark-tint: #383a3e;
  /** facebook **/
  --ion-color-facebook: #3b5998;
  --ion-color-facebook-rgb: 59, 89, 152;
  --ion-color-facebook-contrast: #fff;
  --ion-color-facebook-contrast-rgb: 255, 255, 255;
  --ion-color-facebook-shade: #3b5998;
  --ion-color-facebook-tint: #3b5998;
  /** medium **/
  --ion-color-medium: #92949c;
  --ion-color-medium-rgb: 146, 148, 156;
  --ion-color-medium-contrast: #ffffff;
  --ion-color-medium-contrast-rgb: 255, 255, 255;
  --ion-color-medium-shade: #808289;
  --ion-color-medium-tint: #9d9fa6;
  /** light **/
  --ion-color-light: #f4f5f8;
  --ion-color-light-rgb: 244, 245, 248;
  --ion-color-light-contrast: #000000;
  --ion-color-light-contrast-rgb: 0, 0, 0;
  --ion-color-light-shade: #d7d8da;
  --ion-color-light-tint: #f5f6f9;
}
.ios body,
.md body {
  --ion-background-color: #ffffff;
  --ion-background-color-rgb: 255, 255, 255;
  --ion-text-color: #000000;
  --ion-text-color-rgb: 0, 0, 0;
}
.ion-color-facebook {
  --ion-color-base: var(--ion-color-facebook, #f00) !important;
  --ion-color-base-rgb: var(--ion-color-facebook-rgb, 56, 128, 255) !important;
  --ion-color-contrast: var(--ion-color-facebook-contrast, #06f) !important;
  --ion-color-contrast-rgb: var(
    --ion-color-facebook-contrast-rgb,
    255,
    255,
    255
  ) !important;
  --ion-color-shade: var(--ion-color-facebook-shade, #0001e0) !important;
  --ion-color-tint: var(--ion-color-facebook-tint, #ff80f0) !important ;
}
.ion-color-toolbar {
  --ion-color-base: var(--ion-color-toolbar, var(--ion-color-primary));
  --ion-color-base-rgb: var(--ion-color-toolbar, var(--ion-color-primary-rgb));
  --ion-color-contrast: var(
    --ion-color-toolbar-contrast,
    var(--ion-color-primary-contrast)
  );
  --ion-color-contrast-rgb: var(
    --ion-color-toolbar-contrast-rgb,
    var(--ion-color-primary-contrast-rgb)
  );
  --ion-color-shade: var(
    --ion-color-toolbar-shade,
    var(--ion-color-primary-shade)
  );
  --ion-color-tint: var(
    --ion-color-toolbar-tint,
    var(--ion-color-primary-tint)
  );
}
ion-button {
  text-transform: initial;
}
.price-current,
.price-old,
.order-card-total,
.floating-cart-total,
.cart-total-value,
.cart-item-price,
.cart-total-row span,
.product-price-main,
.product-price-old,
.cart-info-value,
.payment-total-value,
.payment-footer-value,
.pix-summary-value {
  font-feature-settings: "tnum" 1, "lnum" 1;
  font-variant-numeric: tabular-nums lining-nums;
}
.jp-card,
.jp-card .jp-card-front .jp-card-lower .jp-card-name,
.jp-card .jp-card-front .jp-card-lower .jp-card-expiry {
  font-family: var(--ion-font-family) !important;
}
:root {
  --ion-color-primary: #000000;
  --ion-color-primary-shade: #000000;
  --ion-color-primary-tint: #000000;
  --ion-color-secondary: #000000;
  --ion-color-secondary-shade: #000000;
  --ion-color-secondary-tint: #000000;
  --ion-color-tertiary: #000000;
  --ion-color-tertiary-shade: #000000;
  --ion-color-tertiary-tint: #000000;
  --ion-color-toolbar: #000000;
  --ion-color-toolbar-shade: #000000;
  --ion-color-toolbar-tint: #000000;
  --start-page-background: #ffffff;
  --start-page-button-color: #000000;
  --start-page-button-color-contrast: #ffffff;
}
.searchbar-input-container.sc-ion-searchbar-md {
  border: 1px solid #ddd;
  background: none;
  border-radius: 5px;
}
.searchbar-input-container.sc-ion-searchbar-md .searchbar-input {
  background: none;
}
.cart-button {
  font-size: 19px !important;
}
ion-list-header {
  color: var(--start-page-button-color-contrast) !important;
  background: var(--ion-color-primary) !important;
  border-top-color: var(--ion-color-primary) !important;
  border-bottom-color: var(--ion-color-primary) !important;
  margin-top: 15px;
}
ion-list-header h1,
ion-list-header h2 {
  margin-top: 10px;
}
app-cart ion-list-header h1 {
  font-size: 17px;
}
app-menu ion-list:first-child {
  padding-top: 0;
}
app-menu ion-list:first-child ion-list-header:first-child {
  margin-top: 0;
}
app-product ion-list ion-list-header {
  color: var(--start-page-button-color-contrast) !important;
  background: var(--start-page-button-color) !important;
  border-top-color: var(--start-page-button-color) !important;
  border-bottom-color: var(--start-page-button-color) !important;
}
@charset "UTF-8";
/*
 * App Global CSS
 * ----------------------------------------------------------------------------
 * Put style rules here that you want to apply globally. These styles are for
 * the entire app and not just one component. Additionally, this file can be
 * used as an entry point to import other CSS/Sass files to be included in the
 * output CSS.
 * For more information on global stylesheets, visit the documentation:
 * https://ionicframework.com/docs/layout/global-stylesheets
 */
/* Core CSS required for Ionic components to work properly */
html.ios {
  --ion-default-font: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Roboto", sans-serif;
}
html.md {
  --ion-default-font: "Roboto", "Helvetica Neue", sans-serif;
}
html {
  --ion-font-family: var(--ion-default-font);
}
body {
  background: var(--ion-background-color);
}
body.backdrop-no-scroll {
  overflow: hidden;
}
html.ios ion-modal.modal-card .ion-page > ion-header > ion-toolbar:first-of-type {
  padding-top: 0px;
}
html.ios ion-modal .ion-page {
  border-radius: inherit;
}
.ion-color-primary {
  --ion-color-base: var(--ion-color-primary, #3880ff) !important;
  --ion-color-base-rgb: var(--ion-color-primary-rgb, 56, 128, 255) !important;
  --ion-color-contrast: var(--ion-color-primary-contrast, #fff) !important;
  --ion-color-contrast-rgb: var(--ion-color-primary-contrast-rgb, 255, 255, 255) !important;
  --ion-color-shade: var(--ion-color-primary-shade, #3171e0) !important;
  --ion-color-tint: var(--ion-color-primary-tint, #4c8dff) !important;
}
.ion-color-secondary {
  --ion-color-base: var(--ion-color-secondary, #3dc2ff) !important;
  --ion-color-base-rgb: var(--ion-color-secondary-rgb, 61, 194, 255) !important;
  --ion-color-contrast: var(--ion-color-secondary-contrast, #fff) !important;
  --ion-color-contrast-rgb: var(--ion-color-secondary-contrast-rgb, 255, 255, 255) !important;
  --ion-color-shade: var(--ion-color-secondary-shade, #36abe0) !important;
  --ion-color-tint: var(--ion-color-secondary-tint, #50c8ff) !important;
}
.ion-color-tertiary {
  --ion-color-base: var(--ion-color-tertiary, #5260ff) !important;
  --ion-color-base-rgb: var(--ion-color-tertiary-rgb, 82, 96, 255) !important;
  --ion-color-contrast: var(--ion-color-tertiary-contrast, #fff) !important;
  --ion-color-contrast-rgb: var(--ion-color-tertiary-contrast-rgb, 255, 255, 255) !important;
  --ion-color-shade: var(--ion-color-tertiary-shade, #4854e0) !important;
  --ion-color-tint: var(--ion-color-tertiary-tint, #6370ff) !important;
}
.ion-color-success {
  --ion-color-base: var(--ion-color-success, #2dd36f) !important;
  --ion-color-base-rgb: var(--ion-color-success-rgb, 45, 211, 111) !important;
  --ion-color-contrast: var(--ion-color-success-contrast, #fff) !important;
  --ion-color-contrast-rgb: var(--ion-color-success-contrast-rgb, 255, 255, 255) !important;
  --ion-color-shade: var(--ion-color-success-shade, #28ba62) !important;
  --ion-color-tint: var(--ion-color-success-tint, #42d77d) !important;
}
.ion-color-warning {
  --ion-color-base: var(--ion-color-warning, #ffc409) !important;
  --ion-color-base-rgb: var(--ion-color-warning-rgb, 255, 196, 9) !important;
  --ion-color-contrast: var(--ion-color-warning-contrast, #000) !important;
  --ion-color-contrast-rgb: var(--ion-color-warning-contrast-rgb, 0, 0, 0) !important;
  --ion-color-shade: var(--ion-color-warning-shade, #e0ac08) !important;
  --ion-color-tint: var(--ion-color-warning-tint, #ffca22) !important;
}
.ion-color-danger {
  --ion-color-base: var(--ion-color-danger, #eb445a) !important;
  --ion-color-base-rgb: var(--ion-color-danger-rgb, 235, 68, 90) !important;
  --ion-color-contrast: var(--ion-color-danger-contrast, #fff) !important;
  --ion-color-contrast-rgb: var(--ion-color-danger-contrast-rgb, 255, 255, 255) !important;
  --ion-color-shade: var(--ion-color-danger-shade, #cf3c4f) !important;
  --ion-color-tint: var(--ion-color-danger-tint, #ed576b) !important;
}
.ion-color-light {
  --ion-color-base: var(--ion-color-light, #f4f5f8) !important;
  --ion-color-base-rgb: var(--ion-color-light-rgb, 244, 245, 248) !important;
  --ion-color-contrast: var(--ion-color-light-contrast, #000) !important;
  --ion-color-contrast-rgb: var(--ion-color-light-contrast-rgb, 0, 0, 0) !important;
  --ion-color-shade: var(--ion-color-light-shade, #d7d8da) !important;
  --ion-color-tint: var(--ion-color-light-tint, #f5f6f9) !important;
}
.ion-color-medium {
  --ion-color-base: var(--ion-color-medium, #92949c) !important;
  --ion-color-base-rgb: var(--ion-color-medium-rgb, 146, 148, 156) !important;
  --ion-color-contrast: var(--ion-color-medium-contrast, #fff) !important;
  --ion-color-contrast-rgb: var(--ion-color-medium-contrast-rgb, 255, 255, 255) !important;
  --ion-color-shade: var(--ion-color-medium-shade, #808289) !important;
  --ion-color-tint: var(--ion-color-medium-tint, #9d9fa6) !important;
}
.ion-color-dark {
  --ion-color-base: var(--ion-color-dark, #222428) !important;
  --ion-color-base-rgb: var(--ion-color-dark-rgb, 34, 36, 40) !important;
  --ion-color-contrast: var(--ion-color-dark-contrast, #fff) !important;
  --ion-color-contrast-rgb: var(--ion-color-dark-contrast-rgb, 255, 255, 255) !important;
  --ion-color-shade: var(--ion-color-dark-shade, #1e2023) !important;
  --ion-color-tint: var(--ion-color-dark-tint, #383a3e) !important;
}
.ion-page {
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  display: flex;
  position: absolute;
  flex-direction: column;
  justify-content: space-between;
  contain: layout size style;
  overflow: hidden;
  z-index: 0;
}
.split-pane-visible > .ion-page.split-pane-main {
  position: relative;
}
ion-route,
ion-route-redirect,
ion-router,
ion-select-option,
ion-nav-controller,
ion-menu-controller,
ion-action-sheet-controller,
ion-alert-controller,
ion-loading-controller,
ion-modal-controller,
ion-picker-controller,
ion-popover-controller,
ion-toast-controller,
.ion-page-hidden,
[hidden] {
  /* stylelint-disable-next-line declaration-no-important */
  display: none !important;
}
.ion-page-invisible {
  opacity: 0;
}
.can-go-back > ion-header ion-back-button {
  display: block;
}
html.plt-ios.plt-hybrid, html.plt-ios.plt-pwa {
  --ion-statusbar-padding: 20px;
}
@supports (padding-top: 20px) {
  html {
    --ion-safe-area-top: var(--ion-statusbar-padding);
  }
}
@supports (padding-top: constant(safe-area-inset-top)) {
  html {
    --ion-safe-area-top: constant(safe-area-inset-top);
    --ion-safe-area-bottom: constant(safe-area-inset-bottom);
    --ion-safe-area-left: constant(safe-area-inset-left);
    --ion-safe-area-right: constant(safe-area-inset-right);
  }
}
@supports (padding-top: env(safe-area-inset-top)) {
  html {
    --ion-safe-area-top: env(safe-area-inset-top);
    --ion-safe-area-bottom: env(safe-area-inset-bottom);
    --ion-safe-area-left: env(safe-area-inset-left);
    --ion-safe-area-right: env(safe-area-inset-right);
  }
}
ion-card.ion-color .ion-inherit-color,
ion-card-header.ion-color .ion-inherit-color {
  color: inherit;
}
.menu-content {
  transform: translate3d(0,  0,  0);
}
.menu-content-open {
  cursor: pointer;
  touch-action: manipulation;
  pointer-events: none;
}
.ios .menu-content-reveal {
  box-shadow: -8px 0 42px rgba(0, 0, 0, 0.08);
}
[dir=rtl].ios .menu-content-reveal {
  box-shadow: 8px 0 42px rgba(0, 0, 0, 0.08);
}
.md .menu-content-reveal {
  box-shadow: 4px 0px 16px rgba(0, 0, 0, 0.18);
}
.md .menu-content-push {
  box-shadow: 4px 0px 16px rgba(0, 0, 0, 0.18);
}
ion-input input::-webkit-date-and-time-value {
  text-align: start;
}
/* Basic CSS for apps built with Ionic */
audio,
canvas,
progress,
video {
  vertical-align: baseline;
}
audio:not([controls]) {
  display: none;
  height: 0;
}
b,
strong {
  font-weight: bold;
}
img {
  max-width: 100%;
  border: 0;
}
svg:not(:root) {
  overflow: hidden;
}
figure {
  margin: 1em 40px;
}
hr {
  height: 1px;
  border-width: 0;
  box-sizing: content-box;
}
pre {
  overflow: auto;
}
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}
label,
input,
select,
textarea {
  font-family: inherit;
  line-height: normal;
}
textarea {
  overflow: auto;
  height: auto;
  font: inherit;
  color: inherit;
}
textarea::-moz-placeholder {
  padding-left: 2px;
}
textarea::placeholder {
  padding-left: 2px;
}
form,
input,
optgroup,
select {
  margin: 0;
  font: inherit;
  color: inherit;
}
html input[type=button],
input[type=reset],
input[type=submit] {
  cursor: pointer;
  -webkit-appearance: button;
}
a,
a div,
a span,
a ion-icon,
a ion-label,
button,
button div,
button span,
button ion-icon,
button ion-label,
.ion-tappable,
[tappable],
[tappable] div,
[tappable] span,
[tappable] ion-icon,
[tappable] ion-label,
input,
textarea {
  touch-action: manipulation;
}
a ion-label,
button ion-label {
  pointer-events: none;
}
button {
  border: 0;
  border-radius: 0;
  font-family: inherit;
  font-style: inherit;
  font-variant: inherit;
  line-height: 1;
  text-transform: none;
  cursor: pointer;
  -webkit-appearance: button;
}
[tappable] {
  cursor: pointer;
}
a[disabled],
button[disabled],
html input[disabled] {
  cursor: default;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
  padding: 0;
  border: 0;
}
input[type=checkbox],
input[type=radio] {
  padding: 0;
  box-sizing: border-box;
}
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
  height: auto;
}
input[type=search]::-webkit-search-cancel-button,
input[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
td,
th {
  padding: 0;
}
* {
  box-sizing: border-box;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
}
html {
  width: 100%;
  height: 100%;
  -webkit-text-size-adjust: 100%;
     -moz-text-size-adjust: 100%;
          text-size-adjust: 100%;
}
html:not(.hydrated) body {
  display: none;
}
html.plt-pwa {
  height: 100vh;
}
body {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  margin-left: 0;
  margin-right: 0;
  margin-top: 0;
  margin-bottom: 0;
  padding-left: 0;
  padding-right: 0;
  padding-top: 0;
  padding-bottom: 0;
  position: fixed;
  width: 100%;
  max-width: 100%;
  height: 100%;
  max-height: 100%;
  text-rendering: optimizeLegibility;
  overflow: hidden;
  touch-action: manipulation;
  -webkit-user-drag: none;
  -ms-content-zooming: none;
  word-wrap: break-word;
  overscroll-behavior-y: none;
  -webkit-text-size-adjust: none;
     -moz-text-size-adjust: none;
          text-size-adjust: none;
}
html {
  font-family: var(--ion-font-family);
}
a {
  background-color: transparent;
  color: var(--ion-color-primary, #3880ff);
}
h1,
h2,
h3,
h4,
h5,
h6 {
  margin-top: 16px;
  margin-bottom: 10px;
  font-weight: 500;
  line-height: 1.2;
}
h1 {
  margin-top: 20px;
  font-size: 26px;
}
h2 {
  margin-top: 18px;
  font-size: 24px;
}
h3 {
  font-size: 22px;
}
h4 {
  font-size: 20px;
}
h5 {
  font-size: 18px;
}
h6 {
  font-size: 16px;
}
small {
  font-size: 75%;
}
sub,
sup {
  position: relative;
  font-size: 75%;
  line-height: 0;
  vertical-align: baseline;
}
sup {
  top: -0.5em;
}
sub {
  bottom: -0.25em;
}
.ion-hide {
  display: none !important;
}
.ion-hide-up {
  display: none !important;
}
.ion-hide-down {
  display: none !important;
}
@media (min-width: 576px) {
  .ion-hide-sm-up {
    display: none !important;
  }
}
@media (max-width: 575.98px) {
  .ion-hide-sm-down {
    display: none !important;
  }
}
@media (min-width: 768px) {
  .ion-hide-md-up {
    display: none !important;
  }
}
@media (max-width: 767.98px) {
  .ion-hide-md-down {
    display: none !important;
  }
}
@media (min-width: 992px) {
  .ion-hide-lg-up {
    display: none !important;
  }
}
@media (max-width: 991.98px) {
  .ion-hide-lg-down {
    display: none !important;
  }
}
@media (min-width: 1200px) {
  .ion-hide-xl-up {
    display: none !important;
  }
}
@media (max-width: 1199.98px) {
  .ion-hide-xl-down {
    display: none !important;
  }
}
/* Optional CSS utils that can be commented out */
.ion-no-padding {
  --padding-start: 0;
  --padding-end: 0;
  --padding-top: 0;
  --padding-bottom: 0;
  padding-left: 0;
  padding-right: 0;
  padding-top: 0;
  padding-bottom: 0;
}
.ion-padding {
  --padding-start: var(--ion-padding, 16px);
  --padding-end: var(--ion-padding, 16px);
  --padding-top: var(--ion-padding, 16px);
  --padding-bottom: var(--ion-padding, 16px);
  padding-left: var(--ion-padding, 16px);
  padding-right: var(--ion-padding, 16px);
  padding-top: var(--ion-padding, 16px);
  padding-bottom: var(--ion-padding, 16px);
}
@supports (margin-inline-start: 0) or (-webkit-margin-start: 0) {
  .ion-padding {
    padding-left: unset;
    padding-right: unset;
    padding-inline-start: var(--ion-padding, 16px);
    padding-inline-end: var(--ion-padding, 16px);
  }
}
.ion-padding-top {
  --padding-top: var(--ion-padding, 16px);
  padding-top: var(--ion-padding, 16px);
}
.ion-padding-start {
  --padding-start: var(--ion-padding, 16px);
  padding-left: var(--ion-padding, 16px);
}
@supports (margin-inline-start: 0) or (-webkit-margin-start: 0) {
  .ion-padding-start {
    padding-left: unset;
    padding-inline-start: var(--ion-padding, 16px);
  }
}
.ion-padding-end {
  --padding-end: var(--ion-padding, 16px);
  padding-right: var(--ion-padding, 16px);
}
@supports (margin-inline-start: 0) or (-webkit-margin-start: 0) {
  .ion-padding-end {
    padding-right: unset;
    padding-inline-end: var(--ion-padding, 16px);
  }
}
.ion-padding-bottom {
  --padding-bottom: var(--ion-padding, 16px);
  padding-bottom: var(--ion-padding, 16px);
}
.ion-padding-vertical {
  --padding-top: var(--ion-padding, 16px);
  --padding-bottom: var(--ion-padding, 16px);
  padding-top: var(--ion-padding, 16px);
  padding-bottom: var(--ion-padding, 16px);
}
.ion-padding-horizontal {
  --padding-start: var(--ion-padding, 16px);
  --padding-end: var(--ion-padding, 16px);
  padding-left: var(--ion-padding, 16px);
  padding-right: var(--ion-padding, 16px);
}
@supports (margin-inline-start: 0) or (-webkit-margin-start: 0) {
  .ion-padding-horizontal {
    padding-left: unset;
    padding-right: unset;
    padding-inline-start: var(--ion-padding, 16px);
    padding-inline-end: var(--ion-padding, 16px);
  }
}
.ion-no-margin {
  --margin-start: 0;
  --margin-end: 0;
  --margin-top: 0;
  --margin-bottom: 0;
  margin-left: 0;
  margin-right: 0;
  margin-top: 0;
  margin-bottom: 0;
}
.ion-margin {
  --margin-start: var(--ion-margin, 16px);
  --margin-end: var(--ion-margin, 16px);
  --margin-top: var(--ion-margin, 16px);
  --margin-bottom: var(--ion-margin, 16px);
  margin-left: var(--ion-margin, 16px);
  margin-right: var(--ion-margin, 16px);
  margin-top: var(--ion-margin, 16px);
  margin-bottom: var(--ion-margin, 16px);
}
@supports (margin-inline-start: 0) or (-webkit-margin-start: 0) {
  .ion-margin {
    margin-left: unset;
    margin-right: unset;
    margin-inline-start: var(--ion-margin, 16px);
    margin-inline-end: var(--ion-margin, 16px);
  }
}
.ion-margin-top {
  --margin-top: var(--ion-margin, 16px);
  margin-top: var(--ion-margin, 16px);
}
.ion-margin-start {
  --margin-start: var(--ion-margin, 16px);
  margin-left: var(--ion-margin, 16px);
}
@supports (margin-inline-start: 0) or (-webkit-margin-start: 0) {
  .ion-margin-start {
    margin-left: unset;
    margin-inline-start: var(--ion-margin, 16px);
  }
}
.ion-margin-end {
  --margin-end: var(--ion-margin, 16px);
  margin-right: var(--ion-margin, 16px);
}
@supports (margin-inline-start: 0) or (-webkit-margin-start: 0) {
  .ion-margin-end {
    margin-right: unset;
    margin-inline-end: var(--ion-margin, 16px);
  }
}
.ion-margin-bottom {
  --margin-bottom: var(--ion-margin, 16px);
  margin-bottom: var(--ion-margin, 16px);
}
.ion-margin-vertical {
  --margin-top: var(--ion-margin, 16px);
  --margin-bottom: var(--ion-margin, 16px);
  margin-top: var(--ion-margin, 16px);
  margin-bottom: var(--ion-margin, 16px);
}
.ion-margin-horizontal {
  --margin-start: var(--ion-margin, 16px);
  --margin-end: var(--ion-margin, 16px);
  margin-left: var(--ion-margin, 16px);
  margin-right: var(--ion-margin, 16px);
}
@supports (margin-inline-start: 0) or (-webkit-margin-start: 0) {
  .ion-margin-horizontal {
    margin-left: unset;
    margin-right: unset;
    margin-inline-start: var(--ion-margin, 16px);
    margin-inline-end: var(--ion-margin, 16px);
  }
}
.ion-float-left {
  float: left !important;
}
.ion-float-right {
  float: right !important;
}
.ion-float-start {
  float: left !important;
}
[dir=rtl] .ion-float-start, :host-context([dir=rtl]) .ion-float-start {
  float: right !important;
}
.ion-float-end {
  float: right !important;
}
[dir=rtl] .ion-float-end, :host-context([dir=rtl]) .ion-float-end {
  float: left !important;
}
@media (min-width: 576px) {
  .ion-float-sm-left {
    float: left !important;
  }

  .ion-float-sm-right {
    float: right !important;
  }

  .ion-float-sm-start {
    float: left !important;
  }
  [dir=rtl] .ion-float-sm-start, :host-context([dir=rtl]) .ion-float-sm-start {
    float: right !important;
  }

  .ion-float-sm-end {
    float: right !important;
  }
  [dir=rtl] .ion-float-sm-end, :host-context([dir=rtl]) .ion-float-sm-end {
    float: left !important;
  }
}
@media (min-width: 768px) {
  .ion-float-md-left {
    float: left !important;
  }

  .ion-float-md-right {
    float: right !important;
  }

  .ion-float-md-start {
    float: left !important;
  }
  [dir=rtl] .ion-float-md-start, :host-context([dir=rtl]) .ion-float-md-start {
    float: right !important;
  }

  .ion-float-md-end {
    float: right !important;
  }
  [dir=rtl] .ion-float-md-end, :host-context([dir=rtl]) .ion-float-md-end {
    float: left !important;
  }
}
@media (min-width: 992px) {
  .ion-float-lg-left {
    float: left !important;
  }

  .ion-float-lg-right {
    float: right !important;
  }

  .ion-float-lg-start {
    float: left !important;
  }
  [dir=rtl] .ion-float-lg-start, :host-context([dir=rtl]) .ion-float-lg-start {
    float: right !important;
  }

  .ion-float-lg-end {
    float: right !important;
  }
  [dir=rtl] .ion-float-lg-end, :host-context([dir=rtl]) .ion-float-lg-end {
    float: left !important;
  }
}
@media (min-width: 1200px) {
  .ion-float-xl-left {
    float: left !important;
  }

  .ion-float-xl-right {
    float: right !important;
  }

  .ion-float-xl-start {
    float: left !important;
  }
  [dir=rtl] .ion-float-xl-start, :host-context([dir=rtl]) .ion-float-xl-start {
    float: right !important;
  }

  .ion-float-xl-end {
    float: right !important;
  }
  [dir=rtl] .ion-float-xl-end, :host-context([dir=rtl]) .ion-float-xl-end {
    float: left !important;
  }
}
.ion-text-center {
  text-align: center !important;
}
.ion-text-justify {
  text-align: justify !important;
}
.ion-text-start {
  text-align: start !important;
}
.ion-text-end {
  text-align: end !important;
}
.ion-text-left {
  text-align: left !important;
}
.ion-text-right {
  text-align: right !important;
}
.ion-text-nowrap {
  white-space: nowrap !important;
}
.ion-text-wrap {
  white-space: normal !important;
}
@media (min-width: 576px) {
  .ion-text-sm-center {
    text-align: center !important;
  }

  .ion-text-sm-justify {
    text-align: justify !important;
  }

  .ion-text-sm-start {
    text-align: start !important;
  }

  .ion-text-sm-end {
    text-align: end !important;
  }

  .ion-text-sm-left {
    text-align: left !important;
  }

  .ion-text-sm-right {
    text-align: right !important;
  }

  .ion-text-sm-nowrap {
    white-space: nowrap !important;
  }

  .ion-text-sm-wrap {
    white-space: normal !important;
  }
}
@media (min-width: 768px) {
  .ion-text-md-center {
    text-align: center !important;
  }

  .ion-text-md-justify {
    text-align: justify !important;
  }

  .ion-text-md-start {
    text-align: start !important;
  }

  .ion-text-md-end {
    text-align: end !important;
  }

  .ion-text-md-left {
    text-align: left !important;
  }

  .ion-text-md-right {
    text-align: right !important;
  }

  .ion-text-md-nowrap {
    white-space: nowrap !important;
  }

  .ion-text-md-wrap {
    white-space: normal !important;
  }
}
@media (min-width: 992px) {
  .ion-text-lg-center {
    text-align: center !important;
  }

  .ion-text-lg-justify {
    text-align: justify !important;
  }

  .ion-text-lg-start {
    text-align: start !important;
  }

  .ion-text-lg-end {
    text-align: end !important;
  }

  .ion-text-lg-left {
    text-align: left !important;
  }

  .ion-text-lg-right {
    text-align: right !important;
  }

  .ion-text-lg-nowrap {
    white-space: nowrap !important;
  }

  .ion-text-lg-wrap {
    white-space: normal !important;
  }
}
@media (min-width: 1200px) {
  .ion-text-xl-center {
    text-align: center !important;
  }

  .ion-text-xl-justify {
    text-align: justify !important;
  }

  .ion-text-xl-start {
    text-align: start !important;
  }

  .ion-text-xl-end {
    text-align: end !important;
  }

  .ion-text-xl-left {
    text-align: left !important;
  }

  .ion-text-xl-right {
    text-align: right !important;
  }

  .ion-text-xl-nowrap {
    white-space: nowrap !important;
  }

  .ion-text-xl-wrap {
    white-space: normal !important;
  }
}
.ion-text-uppercase {
  /* stylelint-disable-next-line declaration-no-important */
  text-transform: uppercase !important;
}
.ion-text-lowercase {
  /* stylelint-disable-next-line declaration-no-important */
  text-transform: lowercase !important;
}
.ion-text-capitalize {
  /* stylelint-disable-next-line declaration-no-important */
  text-transform: capitalize !important;
}
@media (min-width: 576px) {
  .ion-text-sm-uppercase {
    /* stylelint-disable-next-line declaration-no-important */
    text-transform: uppercase !important;
  }

  .ion-text-sm-lowercase {
    /* stylelint-disable-next-line declaration-no-important */
    text-transform: lowercase !important;
  }

  .ion-text-sm-capitalize {
    /* stylelint-disable-next-line declaration-no-important */
    text-transform: capitalize !important;
  }
}
@media (min-width: 768px) {
  .ion-text-md-uppercase {
    /* stylelint-disable-next-line declaration-no-important */
    text-transform: uppercase !important;
  }

  .ion-text-md-lowercase {
    /* stylelint-disable-next-line declaration-no-important */
    text-transform: lowercase !important;
  }

  .ion-text-md-capitalize {
    /* stylelint-disable-next-line declaration-no-important */
    text-transform: capitalize !important;
  }
}
@media (min-width: 992px) {
  .ion-text-lg-uppercase {
    /* stylelint-disable-next-line declaration-no-important */
    text-transform: uppercase !important;
  }

  .ion-text-lg-lowercase {
    /* stylelint-disable-next-line declaration-no-important */
    text-transform: lowercase !important;
  }

  .ion-text-lg-capitalize {
    /* stylelint-disable-next-line declaration-no-important */
    text-transform: capitalize !important;
  }
}
@media (min-width: 1200px) {
  .ion-text-xl-uppercase {
    /* stylelint-disable-next-line declaration-no-important */
    text-transform: uppercase !important;
  }

  .ion-text-xl-lowercase {
    /* stylelint-disable-next-line declaration-no-important */
    text-transform: lowercase !important;
  }

  .ion-text-xl-capitalize {
    /* stylelint-disable-next-line declaration-no-important */
    text-transform: capitalize !important;
  }
}
.ion-align-self-start {
  align-self: flex-start !important;
}
.ion-align-self-end {
  align-self: flex-end !important;
}
.ion-align-self-center {
  align-self: center !important;
}
.ion-align-self-stretch {
  align-self: stretch !important;
}
.ion-align-self-baseline {
  align-self: baseline !important;
}
.ion-align-self-auto {
  align-self: auto !important;
}
.ion-wrap {
  flex-wrap: wrap !important;
}
.ion-nowrap {
  flex-wrap: nowrap !important;
}
.ion-wrap-reverse {
  flex-wrap: wrap-reverse !important;
}
.ion-justify-content-start {
  justify-content: flex-start !important;
}
.ion-justify-content-center {
  justify-content: center !important;
}
.ion-justify-content-end {
  justify-content: flex-end !important;
}
.ion-justify-content-around {
  justify-content: space-around !important;
}
.ion-justify-content-between {
  justify-content: space-between !important;
}
.ion-justify-content-evenly {
  justify-content: space-evenly !important;
}
.ion-align-items-start {
  align-items: flex-start !important;
}
.ion-align-items-center {
  align-items: center !important;
}
.ion-align-items-end {
  align-items: flex-end !important;
}
.ion-align-items-stretch {
  align-items: stretch !important;
}
.ion-align-items-baseline {
  align-items: baseline !important;
}
ion-header ion-toolbar ion-title {
  font-weight: bold;
  text-transform: uppercase;
  font-size: 16px;
}
ion-button {
  --box-shadow: none;
}
ion-button[size=large] {
  font-size: 16px;
  text-transform: uppercase !important;
  line-height: 60px !important;
  height: 60px !important;
}
ion-button[size=small] {
  text-transform: uppercase;
  height: 35px;
  line-height: 35px;
}
ion-list-header h4 {
  margin-top: 10px;
}
ion-list ion-item {
  --highlight-color-focused: transparent;
}
form {
  padding: 10px;
}
.form-group:not(.ion-padding) {
  margin-bottom: 10px;
}
.form-group ion-input,
.form-group ion-select,
.form-group ion-textarea {
  border: 1px solid #d0d0d0;
  border-radius: 3px;
  -moz-border-radius: 3px;
  -webkit-border-radius: 3px;
  margin-top: 5px;
  margin-bottom: 15px;
  padding: 0 !important;
}
.form-group ion-input input,
.form-group ion-input textarea,
.form-group ion-select input,
.form-group ion-select textarea,
.form-group ion-textarea input,
.form-group ion-textarea textarea {
  padding: 15px !important;
  border-left: 2px solid #fff !important;
}
.form-group ion-input input:focus,
.form-group ion-input textarea:focus,
.form-group ion-select input:focus,
.form-group ion-select textarea:focus,
.form-group ion-textarea input:focus,
.form-group ion-textarea textarea:focus {
  border-left: 2px solid var(--ion-color-primary) !important;
}
.form-group ion-select {
  line-height: 50px;
  height: 50px;
  padding-left: 15px !important;
  padding-right: 15px !important;
}
.form-group > input,
.form-group > textarea {
  padding: 15px !important;
  border: 1px solid #d0d0d0 !important;
  margin-top: 5px;
}
.form-group > input:focus,
.form-group > textarea:focus {
  border-left: 2px solid var(--ion-color-primary) !important;
}
/* Menu and Search */
#menu-list ion-list-header {
  margin-bottom: 10px;
}
@media (min-width: 767px) {
  #menu-list ion-list-header {
    border-radius: 5px;
    -moz-border-radius: 5px;
    -webkit-border-radius: 5px;
  }
  #menu-list ion-list-header:first-child {
    margin-top: 10px;
  }
}
#menu-list ion-list-header h2 {
  font-size: 17px;
  text-transform: uppercase;
  font-weight: bold;
  padding-top: 10px;
  padding-bottom: 10px;
}
.product-image {
  width: 85px;
  height: 85px;
}
ion-img {
  opacity: 0;
}
.img-loaded {
  opacity: 1;
  transition: opacity 0.3s;
}
.product-item-container {
  margin-bottom: 10px;
  padding-left: 10px;
  padding-right: 10px;
  margin-top: 0;
  padding-top: 0;
}
.product-item {
  box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1);
  border-radius: 6px;
  -moz-border-radius: 6px;
  -webkit-border-radius: 6px;
  border: 1px solid #d0d0d0;
}
.product-item .product-image {
  margin-right: -7px !important;
}
.product-image,
.product-image ion-img,
.product-image ion-img img {
  border-radius: 5px !important;
  -moz-border-radius: 5px !important;
  -webkit-border-radius: 5px !important;
}
.product-price {
  font-size: 18px;
}
.product-price small {
  font-size: 14px;
  color: #707070;
  text-decoration: line-through;
  display: block;
}
.menu-list ion-card-subtitle {
  height: 39px;
  line-height: 20px;
  font-size: 14px;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  text-overflow: ellipsis;
  margin-bottom: 7px;
}
h1.title {
  font-size: 23px;
}
.units-list ion-card {
  box-shadow: none;
  margin-bottom: 20px;
  border: 1px solid #ddd;
}
.units-list ion-card ion-card-header {
  background: #f0f0f0;
  border-bottom: 1px solid #ddd;
}
.units-list ion-card ion-card-header ion-card-title {
  font-size: 14px;
  text-transform: uppercase;
  font-weight: bold;
}
.units-list ion-card ion-card-header ion-badge {
  float: right;
  margin-top: -17px;
  text-transform: uppercase;
}
.units-list ion-card ion-card-content {
  padding-top: 15px;
  font-size: 14px;
}
.units-list ion-card ion-card-content .actions {
  margin-top: 10px;
}
.units-list ion-card ion-card-content .actions ion-button {
  text-transform: uppercase;
}
.app-alert {
  --backdrop-opacity: 0.55;
}
.app-alert .alert-wrapper {
  border-radius: 18px;
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.18);
  padding: 0;
  background: var(--surface, #fff);
  overflow: hidden;
  max-width: 360px;
  width: calc(100% - 32px);
}
.app-alert .alert-head {
  position: relative;
  padding: 28px 24px 8px;
  text-align: center;
}
.app-alert .alert-head::before {
  content: "";
  display: block;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  margin: 0 auto 14px;
  background: var(--brand-primary-soft);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: 0;
  mask-size: 0;
}
.app-alert .alert-head .alert-title.sc-ion-alert-md,
.app-alert .alert-head .alert-title.sc-ion-alert-ios {
  font-size: 17px;
  font-weight: 800;
  color: var(--ink, #111);
  text-align: center;
  margin: 0;
  padding: 0;
  line-height: 1.3;
}
.app-alert .alert-head .alert-sub-title {
  display: none;
}
.app-alert .alert-message {
  text-align: center;
  padding: 12px 24px 20px !important;
  max-height: 60vh;
  color: var(--ink-2, #555);
  font-size: 14px;
  line-height: 1.5;
}
.app-alert .alert-message:empty {
  display: none;
}
.app-alert .alert-input-wrapper input {
  border: 1px solid var(--border-color, #ebebeb);
  border-radius: 10px;
  padding: 12px;
  font-size: 15px;
  background: var(--app-bg, #fafafa);
}
.app-alert .alert-input-wrapper input:focus {
  border-color: var(--brand-primary, var(--ion-color-primary));
  background: #fff;
}
.app-alert .alert-radio-group,
.app-alert .alert-checkbox-group {
  border-top: 1px solid var(--border-color, #ebebeb);
  border-bottom: 1px solid var(--border-color, #ebebeb);
  max-height: 240px;
}
.app-alert .alert-radio-group button .alert-radio-label,
.app-alert .alert-radio-group button .alert-checkbox-label,
.app-alert .alert-checkbox-group button .alert-radio-label,
.app-alert .alert-checkbox-group button .alert-checkbox-label {
  white-space: normal;
  font-size: 15px;
  color: var(--ink, #111);
}
.app-alert .alert-radio-group button[aria-checked=true],
.app-alert .alert-checkbox-group button[aria-checked=true] {
  background: var(--brand-primary-soft);
}
.app-alert .alert-radio-group button[aria-checked=true] .alert-radio-label,
.app-alert .alert-radio-group button[aria-checked=true] .alert-checkbox-label,
.app-alert .alert-checkbox-group button[aria-checked=true] .alert-radio-label,
.app-alert .alert-checkbox-group button[aria-checked=true] .alert-checkbox-label {
  font-weight: 700;
  color: var(--brand-primary, var(--ion-color-primary));
}
.app-alert .alert-radio-group button[aria-checked=true] .alert-radio-icon,
.app-alert .alert-checkbox-group button[aria-checked=true] .alert-radio-icon {
  border-color: var(--brand-primary, var(--ion-color-primary));
}
.app-alert .alert-radio-group button[aria-checked=true] .alert-radio-icon .alert-radio-inner,
.app-alert .alert-checkbox-group button[aria-checked=true] .alert-radio-icon .alert-radio-inner {
  background-color: var(--brand-primary, var(--ion-color-primary));
}
.app-alert .alert-button-group {
  border: none;
  padding: 8px 16px 18px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: stretch;
}
.app-alert .alert-button-group .alert-button {
  flex: 1 1 120px;
  min-width: 0;
  max-width: none;
  height: 48px;
  margin: 0;
  border-radius: 12px;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
  padding: 0 16px;
  color: var(--brand-primary, var(--ion-color-primary));
  background: var(--brand-primary-soft);
  transition: filter 0.15s;
}
.app-alert .alert-button-group .alert-button:active {
  filter: brightness(0.95);
}
.app-alert .alert-button-group .alert-button .alert-button-inner {
  justify-content: center;
  text-transform: none;
}
.app-alert .alert-button-group .alert-button:last-child {
  background: var(--brand-primary, var(--ion-color-primary));
  color: var(--brand-primary-contrast, #fff);
}
.app-alert .alert-button-group .alert-button:only-child {
  flex-basis: 100%;
}
.app-alert.success .alert-head::before {
  -webkit-mask-image: url('checkmark-circle-sharp.svg');
  mask-image: url('checkmark-circle-sharp.svg');
  -webkit-mask-size: 36px;
  mask-size: 36px;
  background: rgba(47, 163, 67, 0.14) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232fa343' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") no-repeat center/30px;
  -webkit-mask-image: none;
  mask-image: none;
}
.app-alert.error .alert-head::before {
  background: rgba(227, 49, 35, 0.12) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e33123' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='15' y1='9' x2='9' y2='15'/%3E%3Cline x1='9' y1='9' x2='15' y2='15'/%3E%3C/svg%3E") no-repeat center/32px;
  -webkit-mask-image: none;
  mask-image: none;
}
.app-alert.info .alert-head::before {
  background: var(--brand-primary-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23333' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='12' y1='16' x2='12' y2='12'/%3E%3Cline x1='12' y1='8' x2='12.01' y2='8'/%3E%3C/svg%3E") no-repeat center/32px;
  -webkit-mask-image: none;
  mask-image: none;
}
.app-alert:not(.success):not(.error):not(.info) .alert-head:not(:has(.alert-title)) {
  display: none;
}
[color=alert] {
  background: var(--ion-color-alert, transparent);
  color: var(--ion-color-alert-tint, #000);
}
@media (min-width: 767px) {
  .tabs-inner ion-header ion-title {
    text-align: center;
    width: 100vw;
  }

  app-cart {
    background: #fafafa;
  }
  app-cart ion-content {
    --padding-start: 15px;
    --padding-end: 15px;
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.3);
  }
  app-cart ion-list-header {
    border-radius: 5px;
  }
  app-cart ion-item {
    border-left: 1px solid #d0d0d0 !important;
    border-right: 1px solid #d0d0d0 !important;
    border-radius: 5px;
  }
  app-cart .cart-total {
    border-left: 1px solid #d0d0d0 !important;
    border-right: 1px solid #d0d0d0 !important;
    border-radius: 5px;
  }
  app-cart .cart-total ion-item {
    border-left: none !important;
    border-right: none !important;
  }
  app-cart ion-button {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  app-cart .cart-actions {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  app-cart ion-content,
.tabs-inner ion-content {
    width: 740px;
    align-self: center;
  }
}
@media (min-width: 992px) {
  app-cart ion-content,
.tabs-inner ion-content {
    width: 980px;
    align-self: center;
  }

  .tabs-inner ion-header ion-segment {
    width: 980px;
    margin: 0 auto;
  }
}
ion-tab-bar {
  height: 70px;
}
ion-tab-bar ion-tab-button {
  text-transform: uppercase;
}
ion-tab-bar ion-tab-button ion-label {
  text-transform: uppercase;
}
ion-tab-bar .tab-selected ion-label {
  font-weight: bold;
  font-size: 14px;
}
@media (max-width: 767px) {
  .hidden-xs {
    display: none !important;
  }
}
@media (min-width: 768px) {
  .visible-xs {
    display: none !important;
  }
}
/* ============================================================
   Design System 2.0 — Global utility classes
   ============================================================ */
.ds-badge {
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  border-radius: 99px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.3px;
  line-height: 1;
  white-space: nowrap;
}
.ds-badge.badge-primary {
  background: var(--brand-primary-soft);
  color: var(--brand-primary);
}
.ds-badge.badge-dark {
  background: var(--brand-ink);
  color: #fff;
}
.ds-badge.badge-success {
  background: #dcf7e5;
  color: #0f7a36;
}
.ds-badge.badge-warn {
  background: #fff1d6;
  color: #8a5a00;
}
.ds-badge.badge-default {
  background: #f1f1f1;
  color: #1c1c1c;
}
.food-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--card-radius, 14px);
  overflow: hidden;
  position: relative;
  flex-shrink: 0;
  background: linear-gradient(135deg, #ffe8d0, #ffcba8);
}
.food-placeholder::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 30% 20%, rgba(255, 255, 255, 0.35), transparent 50%);
  pointer-events: none;
}
.food-placeholder .food-emoji {
  font-size: 2.2em;
  filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.2));
  position: relative;
  z-index: 1;
  line-height: 1;
}
.floating-cart-bar {
  position: fixed;
  bottom: calc(var(--ion-safe-area-bottom, 0px) + 12px);
  left: 50%;
  transform: translateX(-50%);
  width: calc(100% - 24px);
  max-width: 736px;
  z-index: 100;
}
@media (prefers-reduced-motion: no-preference) {
  .floating-cart-bar {
    animation: slideUpIn 0.25s ease;
  }
}
.floating-cart-bar .floating-cart-bar-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: var(--brand-ink, #231f20);
  color: #fff;
  border-radius: 14px;
  padding: 14px 16px;
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.28);
  cursor: pointer;
  gap: 12px;
}
.floating-cart-bar .floating-cart-qty {
  background: var(--brand-primary);
  color: var(--brand-primary-contrast, #fff);
  border-radius: 99px;
  min-width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 700;
  padding: 0 8px;
  flex-shrink: 0;
}
.floating-cart-bar .floating-cart-label {
  font-size: 15px;
  font-weight: 700;
  flex: 1;
}
.floating-cart-bar .floating-cart-total {
  font-size: 15px;
  font-weight: 700;
  flex-shrink: 0;
}
@keyframes slideUpIn {
  from {
    opacity: 0;
    transform: translateX(-50%) translateY(12px);
  }
  to {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
  }
}
.checkout-steps {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 6px 16px 2px;
}
.checkout-steps .step-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.35);
  transition: all 0.2s ease;
}
.checkout-steps .step-dot.active {
  background: #fff;
  width: 18px;
  border-radius: 4px;
}
.checkout-steps .step-dot.done {
  background: rgba(255, 255, 255, 0.6);
}
.checkout-steps .step-label {
  font-size: 10px;
  font-weight: 600;
  opacity: 0.8;
  color: #fff;
  margin-left: 8px;
  letter-spacing: 0.3px;
  white-space: nowrap;
}
.checkout-stepper {
  --stepper-pad-top: 12px;
  --stepper-num-size: 22px;
  --stepper-track-h: 2px;
  --stepper-edge-pct: calc(100% / 6);
  background: var(--brand-primary, var(--ion-color-primary));
  color: #fff;
  padding: var(--stepper-pad-top) 20px 14px;
  position: relative;
}
.checkout-stepper .checkout-stepper-track {
  position: absolute;
  left: var(--stepper-edge-pct);
  right: var(--stepper-edge-pct);
  top: calc( var(--stepper-pad-top) + var(--stepper-num-size) / 2 - var(--stepper-track-h) / 2 );
  height: var(--stepper-track-h);
  background: rgba(255, 255, 255, 0.25);
  border-radius: 2px;
  overflow: hidden;
  z-index: 0;
}
.checkout-stepper .checkout-stepper-fill {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: var(--fill-pct, 0%);
  background: #fff;
  border-radius: 2px;
}
@media (prefers-reduced-motion: no-preference) {
  .checkout-stepper .checkout-stepper-fill {
    transition: width 320ms cubic-bezier(0.16, 1, 0.3, 1);
  }
}
.checkout-stepper .checkout-stepper-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  position: relative;
  z-index: 1;
}
.checkout-stepper .checkout-stepper-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  color: rgba(255, 255, 255, 0.55);
  font-weight: 500;
}
.checkout-stepper .checkout-stepper-step .step-num {
  width: var(--stepper-num-size);
  height: var(--stepper-num-size);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.2);
  color: rgba(255, 255, 255, 0.7);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 700;
  transition: background 200ms, color 200ms, transform 200ms;
}
.checkout-stepper .checkout-stepper-step .step-name {
  font-size: 11px;
  letter-spacing: 0.2px;
}
.checkout-stepper .checkout-stepper-step.active {
  color: #fff;
}
.checkout-stepper .checkout-stepper-step.active .step-num {
  background: #fff;
  color: var(--brand-primary, var(--ion-color-primary));
  transform: scale(1.05);
}
.checkout-stepper .checkout-stepper-step.active .step-name {
  font-weight: 700;
}
.checkout-stepper .checkout-stepper-step.done {
  color: rgba(255, 255, 255, 0.85);
}
.checkout-stepper .checkout-stepper-step.done .step-num {
  background: rgba(255, 255, 255, 0.85);
  color: var(--brand-primary, var(--ion-color-primary));
}
.ds-stepper {
  display: flex;
  align-items: center;
  gap: 2px;
}
.ds-stepper .stepper-btn {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 2px solid var(--brand-primary);
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--brand-primary);
  font-size: 22px;
  font-weight: 300;
  padding: 0;
  line-height: 1;
  transition: background 0.15s;
  -webkit-tap-highlight-color: transparent;
}
.ds-stepper .stepper-btn:active {
  background: var(--brand-primary-soft);
}
.ds-stepper .stepper-btn[disabled] {
  opacity: 0.3;
  cursor: default;
}
.ds-stepper .stepper-qty {
  min-width: 40px;
  text-align: center;
  font-size: 18px;
  font-weight: 700;
  color: var(--ink, #111);
}
.order-timeline {
  padding: 8px 16px 16px;
}
.order-timeline .timeline-step {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  position: relative;
}
.order-timeline .timeline-step:not(:last-child) {
  padding-bottom: 24px;
}
.order-timeline .timeline-step:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 15px;
  top: 34px;
  width: 2px;
  bottom: 0;
  background: #e0e0e0;
}
.order-timeline .timeline-step:not(:last-child).done::after {
  background: var(--brand-primary);
}
.order-timeline .timeline-step .timeline-icon {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #e8e8e8;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  z-index: 1;
}
.order-timeline .timeline-step .timeline-icon ion-icon {
  font-size: 15px;
  color: #9e9e9e;
}
.order-timeline .timeline-step.done .timeline-icon {
  background: var(--brand-primary);
}
.order-timeline .timeline-step.done .timeline-icon ion-icon {
  color: #fff;
}
.order-timeline .timeline-step.current .timeline-icon {
  background: var(--brand-primary);
  box-shadow: 0 0 0 5px var(--brand-primary-soft);
}
.order-timeline .timeline-step.current .timeline-icon ion-icon {
  color: #fff;
}
.order-timeline .timeline-step .timeline-content {
  flex: 1;
  padding-top: 4px;
}
.order-timeline .timeline-step .timeline-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--ink, #111);
}
.order-timeline .timeline-step .timeline-sub {
  font-size: 12px;
  color: var(--ink-soft, #7a7a7a);
  margin-top: 2px;
}
.delivery-progress {
  margin: 0 16px 12px;
  padding: 12px 14px;
  background: var(--brand-primary-soft);
  border-radius: 12px;
}
.delivery-progress .delivery-progress-text {
  font-size: 12px;
  font-weight: 600;
  color: var(--brand-primary);
  margin-bottom: 8px;
}
.delivery-progress .delivery-progress-track {
  height: 6px;
  border-radius: 99px;
  background: rgba(0, 0, 0, 0.1);
  overflow: hidden;
}
.delivery-progress .delivery-progress-fill {
  height: 100%;
  border-radius: 99px;
  background: var(--brand-primary);
  transition: width 0.4s ease;
}
.ds-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 16px 8px;
}
.ds-section-header h2,
.ds-section-header .section-title {
  font-size: 17px;
  font-weight: 800;
  color: var(--ink, #111);
  margin: 0;
  text-transform: none;
  letter-spacing: -0.2px;
}
.ds-section-header .section-action {
  font-size: 13px;
  font-weight: 600;
  color: var(--brand-primary);
  cursor: pointer;
}
.product-card-v2 {
  background: var(--surface, #fff);
  border-radius: var(--card-radius, 14px);
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.07);
  cursor: pointer;
  transition: transform 0.15s, box-shadow 0.15s;
  display: flex;
  flex-direction: column;
}
.product-card-v2:active {
  transform: scale(0.98);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
}
.product-card-v2 .product-card-img {
  width: 100%;
  aspect-ratio: 4/3;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
  background: #f0f0f0;
}
.product-card-v2 .product-card-img-placeholder {
  width: 100%;
  aspect-ratio: 4/3;
}
.product-card-v2 .product-card-body {
  padding: 10px 12px 12px;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.product-card-v2 .product-card-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-bottom: 6px;
}
.product-card-v2 .product-card-name {
  font-size: 14px;
  font-weight: 700;
  color: var(--ink, #111);
  margin: 0 0 4px;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.product-card-v2 .product-card-desc {
  font-size: 12px;
  color: var(--ink-soft, #7a7a7a);
  margin: 0 0 8px;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  flex: 1;
}
.product-card-v2 .product-card-footer {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 8px;
  margin-top: auto;
}
.product-card-v2 .product-card-price {
  font-size: 16px;
  font-weight: 800;
  color: var(--ink, #111);
}
.product-card-v2 .product-card-price .price-old {
  font-size: 11px;
  color: var(--ink-muted, #b0b0b0);
  text-decoration: line-through;
  font-weight: 500;
  display: block;
}
.product-card-v2 .product-card-add {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--brand-primary);
  color: var(--brand-primary-contrast, #fff);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  flex-shrink: 0;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}
.prep-time-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  font-weight: 600;
  color: var(--ink-soft, #7a7a7a);
}
.prep-time-chip ion-icon {
  font-size: 14px;
}
.checkout-step-bar {
  background: var(--brand-primary);
}
.promo-label {
  font-size: 11px;
  font-weight: 700;
  color: var(--brand-primary);
  background: var(--brand-primary-soft);
  padding: 2px 7px;
  border-radius: 99px;
}
@media (prefers-reduced-motion: reduce) {
  *,
*::before,
*::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
