/*! tailwindcss v4.1.10 | MIT License | https://tailwindcss.com */
@layer properties {
  @supports (((-webkit-hyphens: none)) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color: rgb(from red r g b)))) {
    *, :before, :after, ::backdrop {
      --tw-rotate-x: initial;
      --tw-rotate-y: initial;
      --tw-rotate-z: initial;
      --tw-skew-x: initial;
      --tw-skew-y: initial;
      --tw-border-style: solid;
      --tw-outline-style: solid;
      --tw-blur: initial;
      --tw-brightness: initial;
      --tw-contrast: initial;
      --tw-grayscale: initial;
      --tw-hue-rotate: initial;
      --tw-invert: initial;
      --tw-opacity: initial;
      --tw-saturate: initial;
      --tw-sepia: initial;
      --tw-drop-shadow: initial;
      --tw-drop-shadow-color: initial;
      --tw-drop-shadow-alpha: 100%;
      --tw-drop-shadow-size: initial;
      --tw-backdrop-blur: initial;
      --tw-backdrop-brightness: initial;
      --tw-backdrop-contrast: initial;
      --tw-backdrop-grayscale: initial;
      --tw-backdrop-hue-rotate: initial;
      --tw-backdrop-invert: initial;
      --tw-backdrop-opacity: initial;
      --tw-backdrop-saturate: initial;
      --tw-backdrop-sepia: initial;
    }
  }
}

@layer theme {
  :root, :host {
    --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    --spacing: .25rem;
    --default-transition-duration: .15s;
    --default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);
    --default-font-family: var(--font-sans);
    --default-mono-font-family: var(--font-mono);
  }
}

@layer base {
  *, :after, :before, ::backdrop {
    box-sizing: border-box;
    border: 0 solid;
    margin: 0;
    padding: 0;
  }

  ::file-selector-button {
    box-sizing: border-box;
    border: 0 solid;
    margin: 0;
    padding: 0;
  }

  html, :host {
    -webkit-text-size-adjust: 100%;
    tab-size: 4;
    line-height: 1.5;
    font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
    font-feature-settings: var(--default-font-feature-settings, normal);
    font-variation-settings: var(--default-font-variation-settings, normal);
    -webkit-tap-highlight-color: transparent;
  }

  hr {
    height: 0;
    color: inherit;
    border-top-width: 1px;
  }

  abbr:where([title]) {
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted;
  }

  h1, h2, h3, h4, h5, h6 {
    font-size: inherit;
    font-weight: inherit;
  }

  a {
    color: inherit;
    -webkit-text-decoration: inherit;
    -webkit-text-decoration: inherit;
    -webkit-text-decoration: inherit;
    text-decoration: inherit;
  }

  b, strong {
    font-weight: bolder;
  }

  code, kbd, samp, pre {
    font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
    font-feature-settings: var(--default-mono-font-feature-settings, normal);
    font-variation-settings: var(--default-mono-font-variation-settings, normal);
    font-size: 1em;
  }

  small {
    font-size: 80%;
  }

  sub, sup {
    vertical-align: baseline;
    font-size: 75%;
    line-height: 0;
    position: relative;
  }

  sub {
    bottom: -.25em;
  }

  sup {
    top: -.5em;
  }

  table {
    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse;
  }

  :-moz-focusring {
    outline: auto;
  }

  progress {
    vertical-align: baseline;
  }

  summary {
    display: list-item;
  }

  ol, ul, menu {
    list-style: none;
  }

  img, svg, video, canvas, audio, iframe, embed, object {
    vertical-align: middle;
    display: block;
  }

  img, video {
    max-width: 100%;
    height: auto;
  }

  button, input, select, optgroup, textarea {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    opacity: 1;
    background-color: #0000;
    border-radius: 0;
  }

  ::file-selector-button {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    opacity: 1;
    background-color: #0000;
    border-radius: 0;
  }

  :where(select:is([multiple], [size])) optgroup {
    font-weight: bolder;
  }

  :where(select:is([multiple], [size])) optgroup option {
    padding-inline-start: 20px;
  }

  ::file-selector-button {
    margin-inline-end: 4px;
  }

  ::placeholder {
    opacity: 1;
  }

  @supports (not ((-webkit-appearance: -apple-pay-button))) or (contain-intrinsic-size: 1px) {
    ::placeholder {
      color: currentColor;
    }

    @supports (color: color-mix(in lab, red, red)) {
      ::placeholder {
        color: color-mix(in oklab, currentcolor 50%, transparent);
      }
    }
  }

  textarea {
    resize: vertical;
  }

  ::-webkit-search-decoration {
    -webkit-appearance: none;
  }

  ::-webkit-date-and-time-value {
    min-height: 1lh;
    text-align: inherit;
  }

  ::-webkit-datetime-edit {
    display: inline-flex;
  }

  ::-webkit-datetime-edit-fields-wrapper {
    padding: 0;
  }

  ::-webkit-datetime-edit {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-year-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-month-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-day-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-hour-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-minute-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-second-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-millisecond-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-meridiem-field {
    padding-block: 0;
  }

  :-moz-ui-invalid {
    box-shadow: none;
  }

  button, input:where([type="button"], [type="reset"], [type="submit"]) {
    appearance: button;
  }

  ::file-selector-button {
    appearance: button;
  }

  ::-webkit-inner-spin-button {
    height: auto;
  }

  ::-webkit-outer-spin-button {
    height: auto;
  }

  [hidden]:where(:not([hidden="until-found"])) {
    display: none !important;
  }
}

@layer components;

@layer utilities {
  .visible {
    visibility: visible;
  }

  .absolute {
    position: absolute;
  }

  .relative {
    position: relative;
  }

  .static {
    position: static;
  }

  .right-3 {
    right: calc(var(--spacing) * 3);
  }

  .container {
    width: 100%;
  }

  @media (min-width: 40rem) {
    .container {
      max-width: 40rem;
    }
  }

  @media (min-width: 48rem) {
    .container {
      max-width: 48rem;
    }
  }

  @media (min-width: 64rem) {
    .container {
      max-width: 64rem;
    }
  }

  @media (min-width: 80rem) {
    .container {
      max-width: 80rem;
    }
  }

  @media (min-width: 96rem) {
    .container {
      max-width: 96rem;
    }
  }

  .contents {
    display: contents;
  }

  .flex {
    display: flex;
  }

  .hidden {
    display: none;
  }

  .w-full {
    width: 100%;
  }

  .flex-shrink {
    flex-shrink: 1;
  }

  .flex-grow {
    flex-grow: 1;
  }

  .transform {
    transform: var(--tw-rotate-x, ) var(--tw-rotate-y, ) var(--tw-rotate-z, ) var(--tw-skew-x, ) var(--tw-skew-y, );
  }

  .cursor-pointer {
    cursor: pointer;
  }

  .resize {
    resize: both;
  }

  .items-center {
    align-items: center;
  }

  .justify-between {
    justify-content: space-between;
  }

  .border {
    border-style: var(--tw-border-style);
    border-width: 1px;
  }

  .text-\[\#787878\] {
    color: #787878;
  }

  .outline {
    outline-style: var(--tw-outline-style);
    outline-width: 1px;
  }

  .blur {
    --tw-blur: blur(8px);
    filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );
  }

  .filter {
    filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );
  }

  .backdrop-filter {
    -webkit-backdrop-filter: var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );
    backdrop-filter: var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );
  }

  .transition {
    transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, visibility, content-visibility, overlay, pointer-events;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
}

:root {
  --real-vh: 100vh;
  --keyboard-height: 0px;
  --safe-keyboard-padding: 0px;
  --app-max-width: 1400px;
}

*, :before, :after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  font-weight: normal;
}

html {
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
}

html, body {
  width: 100%;
  max-width: 100vw;
  overflow-x: hidden;
}

html::-webkit-scrollbar {
  display: none;
}

body {
  min-height: var(--real-vh);
  height: var(--real-vh);
  -webkit-overflow-scrolling: touch;
  width: 100%;
  margin: 0;
  padding: 0;
  position: relative;
  overflow-y: auto;
}

#app {
  width: 100%;
  height: var(--real-vh);
  min-height: var(--real-vh);
  background: #f5f5f5;
  flex-direction: column;
  align-items: center;
  margin: 0;
  padding: 0;
  display: flex;
  position: fixed;
  top: 0;
  left: 0;
  overflow: hidden;
}

.telegram-app {
  width: 100%;
  height: 100%;
}

.keyboard-visible {
  height: 100%;
  min-height: 100%;
}

.content {
  width: 100%;
  max-width: var(--app-max-width);
  -webkit-overflow-scrolling: touch;
  flex: 1;
  margin: 0 auto;
  padding: 20px;
  overflow-y: auto;
}

.error {
  color: #d32f2f;
  text-align: center;
  background: #fcc;
  border-radius: 8px;
  margin: 20px;
  padding: 20px;
}

.loading {
  justify-content: center;
  align-items: center;
  min-height: 200px;
  display: flex;
}

body::-webkit-scrollbar {
  display: none;
}

:focus {
  outline: 2px solid var(--catalog-category-active);
  outline-offset: 2px;
}

:focus:not(:focus-visible) {
  outline: none;
}

img {
  vertical-align: middle;
  max-width: 100%;
  height: auto;
}

button {
  cursor: pointer;
  font-family: inherit;
}

.visually-hidden {
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  position: absolute;
  overflow: hidden;
}

.fonts-loaded {
  opacity: 1;
  transition: opacity .2s;
}

@media screen and (max-width: 768px) {
  body {
    -webkit-tap-highlight-color: transparent;
    width: 100%;
    height: 100%;
    position: fixed;
    overflow: hidden;
  }
}

@property --tw-rotate-x {
  syntax: "*";
  inherits: false
}

@property --tw-rotate-y {
  syntax: "*";
  inherits: false
}

@property --tw-rotate-z {
  syntax: "*";
  inherits: false
}

@property --tw-skew-x {
  syntax: "*";
  inherits: false
}

@property --tw-skew-y {
  syntax: "*";
  inherits: false
}

@property --tw-border-style {
  syntax: "*";
  inherits: false;
  initial-value: solid;
}

@property --tw-outline-style {
  syntax: "*";
  inherits: false;
  initial-value: solid;
}

@property --tw-blur {
  syntax: "*";
  inherits: false
}

@property --tw-brightness {
  syntax: "*";
  inherits: false
}

@property --tw-contrast {
  syntax: "*";
  inherits: false
}

@property --tw-grayscale {
  syntax: "*";
  inherits: false
}

@property --tw-hue-rotate {
  syntax: "*";
  inherits: false
}

@property --tw-invert {
  syntax: "*";
  inherits: false
}

@property --tw-opacity {
  syntax: "*";
  inherits: false
}

@property --tw-saturate {
  syntax: "*";
  inherits: false
}

@property --tw-sepia {
  syntax: "*";
  inherits: false
}

@property --tw-drop-shadow {
  syntax: "*";
  inherits: false
}

@property --tw-drop-shadow-color {
  syntax: "*";
  inherits: false
}

@property --tw-drop-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}

@property --tw-drop-shadow-size {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-blur {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-brightness {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-contrast {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-grayscale {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-hue-rotate {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-invert {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-opacity {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-saturate {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-sepia {
  syntax: "*";
  inherits: false
}
/*! tailwindcss v4.1.10 | MIT License | https://tailwindcss.com */
@layer properties {
  @supports (((-webkit-hyphens: none)) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color: rgb(from red r g b)))) {
    *, :before, :after, ::backdrop {
      --tw-rotate-x: initial;
      --tw-rotate-y: initial;
      --tw-rotate-z: initial;
      --tw-skew-x: initial;
      --tw-skew-y: initial;
      --tw-border-style: solid;
      --tw-outline-style: solid;
      --tw-blur: initial;
      --tw-brightness: initial;
      --tw-contrast: initial;
      --tw-grayscale: initial;
      --tw-hue-rotate: initial;
      --tw-invert: initial;
      --tw-opacity: initial;
      --tw-saturate: initial;
      --tw-sepia: initial;
      --tw-drop-shadow: initial;
      --tw-drop-shadow-color: initial;
      --tw-drop-shadow-alpha: 100%;
      --tw-drop-shadow-size: initial;
      --tw-backdrop-blur: initial;
      --tw-backdrop-brightness: initial;
      --tw-backdrop-contrast: initial;
      --tw-backdrop-grayscale: initial;
      --tw-backdrop-hue-rotate: initial;
      --tw-backdrop-invert: initial;
      --tw-backdrop-opacity: initial;
      --tw-backdrop-saturate: initial;
      --tw-backdrop-sepia: initial;
    }
  }
}

@layer theme {
  :root, :host {
    --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    --spacing: .25rem;
    --default-transition-duration: .15s;
    --default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);
    --default-font-family: var(--font-sans);
    --default-mono-font-family: var(--font-mono);
  }
}

@layer base {
  *, :after, :before, ::backdrop {
    box-sizing: border-box;
    border: 0 solid;
    margin: 0;
    padding: 0;
  }

  ::file-selector-button {
    box-sizing: border-box;
    border: 0 solid;
    margin: 0;
    padding: 0;
  }

  html, :host {
    -webkit-text-size-adjust: 100%;
    tab-size: 4;
    line-height: 1.5;
    font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
    font-feature-settings: var(--default-font-feature-settings, normal);
    font-variation-settings: var(--default-font-variation-settings, normal);
    -webkit-tap-highlight-color: transparent;
  }

  hr {
    height: 0;
    color: inherit;
    border-top-width: 1px;
  }

  abbr:where([title]) {
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted;
  }

  h1, h2, h3, h4, h5, h6 {
    font-size: inherit;
    font-weight: inherit;
  }

  a {
    color: inherit;
    -webkit-text-decoration: inherit;
    -webkit-text-decoration: inherit;
    -webkit-text-decoration: inherit;
    text-decoration: inherit;
  }

  b, strong {
    font-weight: bolder;
  }

  code, kbd, samp, pre {
    font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
    font-feature-settings: var(--default-mono-font-feature-settings, normal);
    font-variation-settings: var(--default-mono-font-variation-settings, normal);
    font-size: 1em;
  }

  small {
    font-size: 80%;
  }

  sub, sup {
    vertical-align: baseline;
    font-size: 75%;
    line-height: 0;
    position: relative;
  }

  sub {
    bottom: -.25em;
  }

  sup {
    top: -.5em;
  }

  table {
    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse;
  }

  :-moz-focusring {
    outline: auto;
  }

  progress {
    vertical-align: baseline;
  }

  summary {
    display: list-item;
  }

  ol, ul, menu {
    list-style: none;
  }

  img, svg, video, canvas, audio, iframe, embed, object {
    vertical-align: middle;
    display: block;
  }

  img, video {
    max-width: 100%;
    height: auto;
  }

  button, input, select, optgroup, textarea {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    opacity: 1;
    background-color: #0000;
    border-radius: 0;
  }

  ::file-selector-button {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    opacity: 1;
    background-color: #0000;
    border-radius: 0;
  }

  :where(select:is([multiple], [size])) optgroup {
    font-weight: bolder;
  }

  :where(select:is([multiple], [size])) optgroup option {
    padding-inline-start: 20px;
  }

  ::file-selector-button {
    margin-inline-end: 4px;
  }

  ::placeholder {
    opacity: 1;
  }

  @supports (not ((-webkit-appearance: -apple-pay-button))) or (contain-intrinsic-size: 1px) {
    ::placeholder {
      color: currentColor;
    }

    @supports (color: color-mix(in lab, red, red)) {
      ::placeholder {
        color: color-mix(in oklab, currentcolor 50%, transparent);
      }
    }
  }

  textarea {
    resize: vertical;
  }

  ::-webkit-search-decoration {
    -webkit-appearance: none;
  }

  ::-webkit-date-and-time-value {
    min-height: 1lh;
    text-align: inherit;
  }

  ::-webkit-datetime-edit {
    display: inline-flex;
  }

  ::-webkit-datetime-edit-fields-wrapper {
    padding: 0;
  }

  ::-webkit-datetime-edit {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-year-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-month-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-day-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-hour-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-minute-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-second-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-millisecond-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-meridiem-field {
    padding-block: 0;
  }

  :-moz-ui-invalid {
    box-shadow: none;
  }

  button, input:where([type="button"], [type="reset"], [type="submit"]) {
    appearance: button;
  }

  ::file-selector-button {
    appearance: button;
  }

  ::-webkit-inner-spin-button {
    height: auto;
  }

  ::-webkit-outer-spin-button {
    height: auto;
  }

  [hidden]:where(:not([hidden="until-found"])) {
    display: none !important;
  }
}

@layer components;

@layer utilities {
  .visible {
    visibility: visible;
  }

  .absolute {
    position: absolute;
  }

  .relative {
    position: relative;
  }

  .static {
    position: static;
  }

  .right-3 {
    right: calc(var(--spacing) * 3);
  }

  .container {
    width: 100%;
  }

  @media (min-width: 40rem) {
    .container {
      max-width: 40rem;
    }
  }

  @media (min-width: 48rem) {
    .container {
      max-width: 48rem;
    }
  }

  @media (min-width: 64rem) {
    .container {
      max-width: 64rem;
    }
  }

  @media (min-width: 80rem) {
    .container {
      max-width: 80rem;
    }
  }

  @media (min-width: 96rem) {
    .container {
      max-width: 96rem;
    }
  }

  .contents {
    display: contents;
  }

  .flex {
    display: flex;
  }

  .hidden {
    display: none;
  }

  .w-full {
    width: 100%;
  }

  .flex-shrink {
    flex-shrink: 1;
  }

  .flex-grow {
    flex-grow: 1;
  }

  .transform {
    transform: var(--tw-rotate-x, ) var(--tw-rotate-y, ) var(--tw-rotate-z, ) var(--tw-skew-x, ) var(--tw-skew-y, );
  }

  .cursor-pointer {
    cursor: pointer;
  }

  .resize {
    resize: both;
  }

  .items-center {
    align-items: center;
  }

  .justify-between {
    justify-content: space-between;
  }

  .border {
    border-style: var(--tw-border-style);
    border-width: 1px;
  }

  .text-\[\#787878\] {
    color: #787878;
  }

  .outline {
    outline-style: var(--tw-outline-style);
    outline-width: 1px;
  }

  .blur {
    --tw-blur: blur(8px);
    filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );
  }

  .filter {
    filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );
  }

  .backdrop-filter {
    -webkit-backdrop-filter: var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );
    backdrop-filter: var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );
  }

  .transition {
    transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, visibility, content-visibility, overlay, pointer-events;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
}

:root {
  --real-vh: 100vh;
  --keyboard-height: 0px;
  --safe-keyboard-padding: 0px;
  --app-max-width: 1400px;
}

*, :before, :after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  font-weight: normal;
}

html {
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
}

html, body {
  width: 100%;
  max-width: 100vw;
  overflow-x: hidden;
}

html::-webkit-scrollbar {
  display: none;
}

body {
  min-height: var(--real-vh);
  height: var(--real-vh);
  -webkit-overflow-scrolling: touch;
  width: 100%;
  margin: 0;
  padding: 0;
  position: relative;
  overflow-y: auto;
}

#app {
  width: 100%;
  height: var(--real-vh);
  min-height: var(--real-vh);
  background: #f5f5f5;
  flex-direction: column;
  align-items: center;
  margin: 0;
  padding: 0;
  display: flex;
  position: fixed;
  top: 0;
  left: 0;
  overflow: hidden;
}

.telegram-app {
  width: 100%;
  height: 100%;
}

.keyboard-visible {
  height: 100%;
  min-height: 100%;
}

.content {
  width: 100%;
  max-width: var(--app-max-width);
  -webkit-overflow-scrolling: touch;
  flex: 1;
  margin: 0 auto;
  padding: 20px;
  overflow-y: auto;
}

.error {
  color: #d32f2f;
  text-align: center;
  background: #fcc;
  border-radius: 8px;
  margin: 20px;
  padding: 20px;
}

.loading {
  justify-content: center;
  align-items: center;
  min-height: 200px;
  display: flex;
}

body::-webkit-scrollbar {
  display: none;
}

:focus {
  outline: 2px solid var(--catalog-category-active);
  outline-offset: 2px;
}

:focus:not(:focus-visible) {
  outline: none;
}

img {
  vertical-align: middle;
  max-width: 100%;
  height: auto;
}

button {
  cursor: pointer;
  font-family: inherit;
}

.visually-hidden {
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  position: absolute;
  overflow: hidden;
}

.fonts-loaded {
  opacity: 1;
  transition: opacity .2s;
}

@media screen and (max-width: 768px) {
  body {
    -webkit-tap-highlight-color: transparent;
    width: 100%;
    height: 100%;
    position: fixed;
    overflow: hidden;
  }
}

:root {
  --max-width: 1400px;
  --container-padding: 20px;
  --footer-height: 80px;
}

#app {
  flex-direction: column;
  align-items: center;
  width: 100%;
  max-width: 100%;
  min-height: 100vh;
  margin: 0;
  padding: 0;
  display: flex;
}

.telegram-app {
  flex-direction: column;
  align-items: center;
  width: 100%;
  margin: 0;
  padding: 0;
  display: flex;
}

.content {
  padding-bottom: var(--footer-height);
  flex: 1;
}

.container {
  width: 100%;
  max-width: var(--max-width);
  padding: 0 var(--container-padding);
  margin: 0 auto;
}

@media (max-width: 768px) {
  :root {
    --container-padding: 16px;
  }
}

@media (max-width: 480px) {
  :root {
    --container-padding: 12px;
  }
}

@media (max-width: 768px) {
  .navigation-bar-focused {
    display: none !important;
  }
}

@property --tw-rotate-x {
  syntax: "*";
  inherits: false
}

@property --tw-rotate-y {
  syntax: "*";
  inherits: false
}

@property --tw-rotate-z {
  syntax: "*";
  inherits: false
}

@property --tw-skew-x {
  syntax: "*";
  inherits: false
}

@property --tw-skew-y {
  syntax: "*";
  inherits: false
}

@property --tw-border-style {
  syntax: "*";
  inherits: false;
  initial-value: solid;
}

@property --tw-outline-style {
  syntax: "*";
  inherits: false;
  initial-value: solid;
}

@property --tw-blur {
  syntax: "*";
  inherits: false
}

@property --tw-brightness {
  syntax: "*";
  inherits: false
}

@property --tw-contrast {
  syntax: "*";
  inherits: false
}

@property --tw-grayscale {
  syntax: "*";
  inherits: false
}

@property --tw-hue-rotate {
  syntax: "*";
  inherits: false
}

@property --tw-invert {
  syntax: "*";
  inherits: false
}

@property --tw-opacity {
  syntax: "*";
  inherits: false
}

@property --tw-saturate {
  syntax: "*";
  inherits: false
}

@property --tw-sepia {
  syntax: "*";
  inherits: false
}

@property --tw-drop-shadow {
  syntax: "*";
  inherits: false
}

@property --tw-drop-shadow-color {
  syntax: "*";
  inherits: false
}

@property --tw-drop-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}

@property --tw-drop-shadow-size {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-blur {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-brightness {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-contrast {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-grayscale {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-hue-rotate {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-invert {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-opacity {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-saturate {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-sepia {
  syntax: "*";
  inherits: false
}
.vue-recycle-scroller{position:relative}.vue-recycle-scroller.direction-vertical:not(.page-mode){overflow-y:auto}.vue-recycle-scroller.direction-horizontal:not(.page-mode){overflow-x:auto}.vue-recycle-scroller.direction-horizontal{display:flex}.vue-recycle-scroller__slot{flex:auto 0 0}.vue-recycle-scroller__item-wrapper{flex:1;box-sizing:border-box;overflow:hidden;position:relative}.vue-recycle-scroller.ready .vue-recycle-scroller__item-view{position:absolute;top:0;left:0;will-change:transform}.vue-recycle-scroller.direction-vertical .vue-recycle-scroller__item-wrapper{width:100%}.vue-recycle-scroller.direction-horizontal .vue-recycle-scroller__item-wrapper{height:100%}.vue-recycle-scroller.ready.direction-vertical .vue-recycle-scroller__item-view{width:100%}.vue-recycle-scroller.ready.direction-horizontal .vue-recycle-scroller__item-view{height:100%}.resize-observer[data-v-b329ee4c]{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}.resize-observer[data-v-b329ee4c] object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}
.__ymap {
  color: #000;
  position: relative;
}
.__ymap_container {
  width: 100%;
  height: 100%;
}
.__ymap_slots {
  display: none;
}
.__ymap--grab [class$="main-engine-container"] canvas {
  cursor: grab;
}
.__ymap--grabbing:focus [class$="main-engine-container"] canvas, .__ymap--grabbing:active [class$="main-engine-container"] canvas {
  cursor: grabbing;
}

.loading-spinner[data-v-ad30a579] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.spinner[data-v-ad30a579] {
  width: 40px;
  height: 40px;
  border: 4px solid #f3f3f3;
  border-top: 4px solid #3498db;
  border-radius: 50%;
  animation: spin-ad30a579 1s linear infinite;
}
.message[data-v-ad30a579] {
  margin-top: 10px;
  color: #666;
}
@keyframes spin-ad30a579 {
0% {
    transform: rotate(0deg);
}
100% {
    transform: rotate(360deg);
}
}

.loading-overlay {
  position: fixed;
  inset: 0;
  background-color: rgba(36, 36, 36, 0.7);
  backdrop-filter: blur(2px);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 9999;
}
.loading-overlay__content {
  padding: 20px;
  background: transparent;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.loading-overlay__message {
  color: white;
  font-size: 12px;
  font-family: "Inter", sans-serif;
  font-weight: 500;
  line-height: 12px;
  text-align: center;
}
.fade-enter-active,
.fade-leave-active {
  transition: opacity 0.3s ease;
}
.fade-enter-from,
.fade-leave-to {
  opacity: 0;
}
:root {
  --nav-height: 81px;
  /* Переменная для отступа от навигационного бара */
  --nav-bottom-spacing: 16px;
  --nav-background: #242424;
  --nav-item-width: 86px;
  --nav-text-size: 6px;
  --nav-icon-size: 28px;
  --nav-active-color: #ffb43d;
  --nav-inactive-color: #ffffff;

  /* Переменные для checkout режима */
  --nav-checkout-height: 81px;
  --nav-checkout-width: 375px;
  --nav-checkout-bg: rgba(36, 36, 36, 0.95);
  --nav-checkout-button-bg: #66ca1a;
  --nav-checkout-button-disabled: #dad8d7;
  --nav-checkout-button-width: 215px;
  --nav-checkout-button-height: 41px;
}
.navigation-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  width: 100vw; /* Добавляем явную ширину */
  height: var(--nav-height);
  background: var(--nav-background);
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 30px;
  z-index: 100;
  /* Добавляем для выравнивания по центру */
  left: 50%;
  transform: translateX(-50%);
}
.nav-item {
  width: var(--nav-item-width);
  padding: 24px 13px 21.75px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 3.33px;
  text-decoration: none;
  color: var(--nav-inactive-color);
  background: transparent;
}
.nav-icon {
  width: var(--nav-icon-size);
  height: var(--nav-icon-size);
}
.nav-text {
  width: 60px;
  height: 6.91px;
  text-align: center;
  font-family:
    'Inter',
    -apple-system,
    BlinkMacSystemFont,
    'Segoe UI',
    Roboto,
    sans-serif;
  font-size: 6px;
  font-weight: 700;
  line-height: 7.26px;
  letter-spacing: 0.06px;
}
.nav-item.active {
  color: var(--nav-active-color);
}
.nav-item.active .nav-icon path {
  fill: var(--nav-active-color);
}

/* Стили для счетчика корзины */
.icon-container {
  position: relative;
  display: inline-flex;
}
.cart-counter {
  position: absolute;
  top: -12px;
  right: -22px;
  background: #66ca1a;
  color: white;
  min-width: 22px;
  aspect-ratio: 1 / 1; /* сохраняет форму круга */
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: bold;
  font-family: 'Inter', sans-serif;
  /*padding: 0 6px;*/
  white-space: nowrap;
}

/* Стили для оформления заказа */
.checkout-navigation {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  height: 60px;
  background: var(--nav-background);
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 16px;
  z-index: 100;
}
.pay-btn {
  flex: 1;
  margin: 0 16px;
  padding: 12px;
  border: none;
  border-radius: 25px;
  background: #66ca1a;
  color: white;
  font-weight: 700;
  text-transform: uppercase;
  cursor: pointer;
}
.pay-btn.disabled {
  background: #dad8d7;
  cursor: not-allowed;
}

/* Стили для режима оформления заказа */

/* Стили для режима оформления заказа */
.navigation-bar--checkout {
  /* width: var(--nav-checkout-width); */
  height: var(--nav-checkout-height);
  padding: 0 30px;
  /* background: var(--nav-checkout-bg); */
  backdrop-filter: blur(4px);
  display: flex;
  justify-content: center;
  align-items: center;
  position: fixed;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: 100;
}

/* Кнопка оплаты - исправляем центрирование */
.checkout-pay-button {
  width: var(--nav-checkout-button-width);
  height: var(--nav-checkout-button-height);
  padding: 10px 30px;
  background: var(--nav-checkout-button-bg);
  border-radius: 100px;
  border: none;
  display: flex;
  justify-content: center; /* Центрируем содержимое по горизонтали */
  align-items: center; /* Центрируем содержимое по вертикали */
  cursor: pointer;
  overflow: hidden;
}

/* Состояние disabled */
.checkout-pay-button.disabled {
  background: var(--nav-checkout-button-disabled);
  cursor: not-allowed;
  justify-content: center; /* Оставляем центрирование даже в disabled состоянии */
}

/* Стили для текста - убираем лишние свойства выравнивания */
.checkout-pay-text {
  color: white;
  font-size: 12px;
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  line-height: 14.53px;
  letter-spacing: 0.12px;
  text-transform: uppercase;
  white-space: nowrap; /* Предотвращаем перенос текста */
}
/* Open Sans - Variable Font */
@font-face {
  font-family: 'Open Sans';
  src: url('/assets/OpenSans-VariableFont_wdth_wght.BZBpG5Iz.ttf')
    format('truetype-variations');
  font-weight: 300 800;
  font-stretch: 75% 100%;
  font-style: normal;
  font-display: swap;
}

/* Fallback для Open Sans */
@supports not (font-variation-settings: normal) {
  @font-face {
    font-family: 'Open Sans';
    src: url('/assets/OpenSans-Light.3sf3dutu.ttf') format('truetype');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
  }

  @font-face {
    font-family: 'Open Sans';
    src: url('/assets/OpenSans-Regular.DxJTClRG.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
  }

  @font-face {
    font-family: 'Open Sans';
    src: url('/assets/OpenSans-Medium.DVUZMR_6.ttf') format('truetype');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
  }

  @font-face {
    font-family: 'Open Sans';
    src: url('/assets/OpenSans-SemiBold.D3TTYgdB.ttf') format('truetype');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
  }

  @font-face {
    font-family: 'Open Sans';
    src: url('/assets/OpenSans-Bold.DGvYQtcs.ttf') format('truetype');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
  }

  @font-face {
    font-family: 'Open Sans';
    src: url('/assets/OpenSans-ExtraBold.JgqSG6ty.ttf') format('truetype');
    font-weight: 800;
    font-style: normal;
    font-display: swap;
  }
}

/* Open Sans Hebrew */
@font-face {
  font-family: 'Open Sans Hebrew';
  src: url('/assets/OpenSansHebrew-regular.DDY9APtE.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Open Sans Hebrew';
  src: url('/assets/OpenSansHebrew-Bold.DFmNoJJ-.ttf') format('truetype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* Inter - Variable Font */
@font-face {
  font-family: 'Inter';
  src: url('/assets/Inter-VariableFont_opsz_wght.c8O0ljhh.ttf') format('truetype-variations');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

/* Fallback для Inter */
@supports not (font-variation-settings: normal) {
  @font-face {
    font-family: 'Inter';
    src: url('/assets/Inter_18pt-Regular.BpskOkD5.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
  }

  @font-face {
    font-family: 'Inter';
    src: url('/assets/Inter_18pt-Medium.BtfNrkJj.ttf') format('truetype');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
  }

  @font-face {
    font-family: 'Inter';
    src: url('/assets/Inter_18pt-Bold.Du8giq-C.ttf') format('truetype');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
  }
}

/* Pontano Sans */
@font-face {
  font-family: 'Pontano Sans';
  src: url('/assets/PontanoSans-Regular.DdHxbi8j.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* Archivo */
@font-face {
  font-family: 'Archivo';
  src: url('/assets/Archivo-Regular.Dv2uU1nf.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Archivo';
  src: url('/assets/Archivo-Bold.E7yA2Da6.ttf') format('truetype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* Arimo */
@font-face {
  font-family: 'Arimo';
  src: url('/assets/Arimo-Regular.BGLf278g.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* Добавляем утилитарный класс для проверки загрузки шрифтов */
.fonts-loaded {
  /* Этот класс будет добавляться к body после загрузки шрифтов */
  opacity: 1;
  transition: opacity 0.2s ease;
}

:root {
  --catalog-text-primary: #252525;
  --catalog-text-secondary: #787878;
  --catalog-button-color: #252525;
  --catalog-button-disabled: #dad8d7;
  --catalog-background: white;
  --catalog-category-active: #ffb43d;

  --font-open-sans: 'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --font-inter: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --font-open-sans-hebrew: 'Open Sans Hebrew', 'Open Sans', sans-serif;
  --font-pontano: 'Pontano Sans', sans-serif;

  --pattern-image: url('/images/bg.Dd3h4G2D.png');
  --pattern-size: 392px 711px;
  --pattern-opacity: 0.05;

  --container-width-mobile: 375px;
  --container-width-tablet: 768px;
  --container-width-desktop: 1200px;

  --card-width: 134px;
  --card-height: 240px;
  --card-image-size: 114px;
  --grid-gap: 32px;

  --filters-height: 60px;
  --nav-bottom-spacing: 20px;
}

.catalog {
  width: 100%;
  min-height: var(--real-vh);
  background: white;
  margin: 0;
  padding: 0;
  position: relative;
  overflow-x: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-bottom: calc(var(--nav-height) + var(--keyboard-height));
  z-index: 1;
}

.catalog-background {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  background: var(--pattern-image) repeat;
  background-size: var(--pattern-size);
  opacity: var(--pattern-opacity);
  pointer-events: none;
  z-index: 0;
}

.fixed-container {
  position: relative;
  z-index: 2;
}

.catalog-container {
  width: 100%;
  min-height: calc(var(--real-vh) - var(--nav-height));
  padding-bottom: calc(var(--nav-height) + var(--keyboard-height));
  position: relative;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.filters-wrapper {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 20;
  display: flex;
  justify-content: center;
  background: rgba(255, 255, 255, 1);
  height: var(--filters-height);
  transform: translateZ(0);
}

.filters-wrapper::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: var(--pattern-image) repeat;
  background-size: var(--pattern-size);
  background-position: center 0;
  opacity: var(--pattern-opacity);
  pointer-events: none;
  z-index: -1;
}

.catalog,
.catalog-container {
  -ms-overflow-style: none;
  scrollbar-width: none;
}

.catalog::-webkit-scrollbar,
.catalog-container::-webkit-scrollbar {
  display: none;
}

.catalog-content {
  position: relative;
  z-index: 2;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 0;
  box-sizing: border-box;
}

.catalog-filters {
  width: 100%;
  max-width: 1400px;
  padding: 0 16px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  position: relative;
  z-index: 1;
  height: 100%;
}

.catalog-filters.search-active {
  justify-content: center;
  gap: 0;
}

.catalog-filters.search-active .search-container {
  width: 100%;
}

.filters-spacer {
  width: 40px;
  flex-shrink: 0;
}

.products-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, var(--card-width));
  gap: var(--grid-gap);
  justify-content: center;
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  padding: 16px;
  margin-top: var(--filters-height);
  margin-bottom: var(--nav-bottom-spacing);
}

.catalog .product-card {
  width: var(--card-width);
  height: var(--card-height);
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
}

.catalog .product-discount-plate {
  position: absolute;
  text-align: center;
  align-items: center;
  top: -7px;
  right: 7px;
  background-color: #FF5B5B;
  color: white;
  font-weight: bolder;
  font-size: 9px;
  padding: 6px;
  border-radius: 100px;
  z-index: 10;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}

.catalog .product-image {
  width: var(--card-image-size);
  height: var(--card-image-size);
  margin-bottom: 4px;
  cursor: pointer;
}

.catalog .product-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 4px;
}

.catalog .product-details {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.catalog .product-name {
  text-align: center;
  color: var(--catalog-text-secondary);
  font-size: 10px;
  font-family: var(--font-open-sans-hebrew);
  font-weight: 700;
  line-height: 10px;
  height: 20px;
  display: flex;
  align-items: center;
  margin-bottom: 12px;
}

.catalog .product-price {
  text-align: center;
  color: var(--catalog-text-primary);
  font-size: 16px;
  font-family: var(--font-open-sans);
  font-weight: 800;
  line-height: 16px;
  margin-bottom: 12px;
}

.catalog .product-price.has-discount {
  color: #FF5B5B;
}

.catalog .product-discount-price {
  position: absolute;
  top: calc(var(--card-height) / 2 + 15px);
  font-size: 10px;
  font-weight: bolder;
  color: #DAD8D7;
  text-decoration: line-through;
}

.catalog .product-stock {
  text-align: center;
  color: var(--catalog-text-secondary);
  font-size: 10px;
  font-family: var(--font-pontano);
  font-weight: 400;
  line-height: 10px;
  margin-bottom: 12px;
}

.catalog .buy-button {
  padding: 10px 30px;
  background: var(--catalog-button-color);
  border-radius: 100px;
  border: none;
  color: white;
  font-size: 12px;
  font-family: var(--font-inter);
  font-weight: 700;
  line-height: 14.53px;
  letter-spacing: 0.12px;
  cursor: pointer;
  margin-top: 2px;
  transition: background-color 0.2s ease;
}

.catalog .buy-button:disabled {
  background: var(--catalog-button-disabled);
  cursor: not-allowed;
}

.catalog .quantity-controls {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
}

.catalog .quantity-btn {
  width: 39.08px;
  height: 37.28px;
  padding: 8px;
  background: var(--catalog-button-color);
  border-radius: 100px;
  border: none;
  color: white;
  cursor: pointer;
}

.catalog .quantity-btn:disabled {
  background: var(--catalog-button-disabled);
}

.catalog .quantity {
  color: #504f4f;
  font-size: 16px;
  font-family: var(--font-inter);
  font-weight: 700;
  line-height: 19.37px;
  letter-spacing: 0.16px;
}

.loading-more,
.no-products {
  width: 100%;
  text-align: center;
  padding: 20px;
  color: var(--catalog-text-secondary);
}

.category-selector {
  width: 100%;
  overflow: hidden;
  position: relative;
  padding: 8px 0;
  display: flex;
  justify-content: center;
}

.categories-scroll {
  display: flex;
  gap: 4px;
  overflow-x: auto;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding: 0 16px;
  max-width: fit-content;
}

.categories-scroll::-webkit-scrollbar {
  display: none;
}

.category-btn {
  min-width: 80px;
  height: 24px;
  padding: 0 14px;
  background: var(--catalog-button-disabled);
  border: none;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  transition: background-color 0.2s ease;
  border-radius: 0;
  flex-shrink: 0;
}

.category-btn span {
  text-align: center;
  color: white;
  font-size: 8px;
  font-family: var(--font-inter);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.08px;
  text-transform: uppercase;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}

.category-btn.first-btn {
  border-top-left-radius: 100px;
  border-bottom-left-radius: 100px;
}

.category-btn.last-btn {
  border-top-right-radius: 100px;
  border-bottom-right-radius: 100px;
}

.category-btn.active {
  background: var(--catalog-category-active);
}

@media (min-width: 768px) {
  .catalog-container {
    max-width: var(--container-width-tablet);
  }

  .products-grid {
    gap: var(--grid-gap);
    padding: 16px 24px;
  }
}

@media (min-width: 1200px) {
  .catalog-container {
    max-width: var(--container-width-desktop);
  }

  .products-grid {
    padding: 32px;
  }

  .catalog-filters {
    gap: var(--grid-gap);
    padding: 16px 32px;
  }
}

.category-menu {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 32px;
  flex-grow: 1;
}

.menu-buttons {
  display: flex;
  gap: 4px;
}

.menu-btn {
  min-width: 98px;
  height: 32px;
  padding: 6px 14px;
  border: none;
  background-color: var(--catalog-button-color);
  color: white;
  cursor: pointer;
  transition: background-color 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.menu-btn.left {
  border-top-left-radius: 100px;
  border-bottom-left-radius: 100px;
}

.menu-btn.right {
  border-top-right-radius: 100px;
  border-bottom-right-radius: 100px;
}

.menu-btn span {
  font-size: 8px;
  font-family: var(--font-inter);
  font-weight: 700;
  text-transform: uppercase;
  white-space: nowrap;
  line-height: 9.68px;
  letter-spacing: 0.08px;
}

.menu-btn.active {
  background-color: var(--catalog-category-active);
}

.dropdown-panel {
  position: fixed;
  top: 14px;
  left: 50%;
  transform: translateX(-50%);
  width: 240px;
  height: 328px;
  max-width: 90%;
  background-color: var(--catalog-button-color);
  border-radius: 20px;
  padding: 16px;
  z-index: 100;
  display: flex;
  flex-direction: column;
  transition: 
    all 0.55s cubic-bezier(0.34, 1.3, 0.64, 1);
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
  overflow: hidden;
  overflow-y: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.dropdown-item {
  background: none;
  border: none;
  color: white;
  font-size: 14px;
  font-family: var(--font-inter);
  font-weight: 600;
  text-align: center;
  padding: 8px 12px;
  border-radius: 10px;
  cursor: pointer;
  visibility: hidden;
}

.dropdown-panel .dropdown-item{
  visibility: visible;
  transition: background-color 0.2s ease, color 0.2s ease;
} 

.dropdown-item:hover {
  background-color: rgba(255, 255, 255, 0.1);
}

.dropdown-item.active {
  color: var(--catalog-category-active);
  font-weight: 700;
}

.dropdown-fade-enter-active .dropdown-item {
  visibility: hidden;
}
.dropdown-fade-leave-active .dropdown-item {
  visibility: hidden;
}

.dropdown-fade-leave-to,
.dropdown-fade-enter-active {
  transform: translateX(6px);
  transition-delay: 0s;
  border-bottom-left-radius: 0px;
  border-top-left-radius: 0px;
  width: 98px;
  height: 32px;
  box-shadow: none;
  opacity: 1;
}

.dropdown-fade-enter-active,
.dropdown-fade-leave-active {
  transition: 
    all 0.1s cubic-bezier(0.55, 0.085, 0.68, 0.53);
}

/* src/assets/styles/quantity-control.css */

/* Основной контейнер */
.quantity-control-widget {
  width: 100%;
  display: flex;
  justify-content: center;
}

/* Кнопка "КУПИТЬ" */
.quantity-control-widget__buy-btn {
  padding: 10px 30px;
  background: #252525;
  border-radius: 100px;
  border: none;
  color: white;
  font-size: 12px;
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  line-height: 14.53px;
  letter-spacing: 0.12px;
  text-transform: uppercase;
  cursor: pointer;
  transition: background-color 0.2s ease;
}
.quantity-control-widget__buy-btn:disabled {
  background: #dad8d7;
  cursor: not-allowed;
}
.quantity-control-widget__buy-btn:hover:not(:disabled) {
  background: #3d3d3d;
}

/* Контейнер для кнопок +/- и счетчика */
.quantity-control-widget__buttons {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 16px;
}

/* Кнопки + и - */
.quantity-control-widget__btn {
  width: 39.08px;
  height: 37.28px;
  background: #252525;
  border-radius: 100px;
  border: none;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  flex-shrink: 0;
  transition: background-color 0.2s ease;
}
.quantity-control-widget__btn:disabled {
  background: #dad8d7; /* возвращаем серый цвет */
  cursor: not-allowed;
}
.quantity-control-widget__btn:hover:not(:disabled) {
  background: #3d3d3d;
}

/* Счетчик количества */
.quantity-control-widget__count {
  color: #504f4f;
  font-size: 16px;
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  line-height: 19.37px;
  letter-spacing: 0.16px;
  min-width: 16px;
  text-align: center;
}

/* Иконки + и - */
.quantity-control-widget__minus-icon,
.quantity-control-widget__plus-icon {
  width: 16px;
  height: 16px;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}

/* Общие стили для линий в иконках */
.quantity-control-widget__minus-icon::before,
.quantity-control-widget__plus-icon::before,
.quantity-control-widget__plus-icon::after {
  content: '';
  position: absolute;
  background: white;
  border-radius: 100px;
}

/* Горизонтальная линия для обеих иконок */
.quantity-control-widget__minus-icon::before,
.quantity-control-widget__plus-icon::before {
  width: 12px;
  height: 2.25px;
  left: 2px;
  top: 6.88px;
}

/* Вертикальная линия только для плюса */
.quantity-control-widget__plus-icon::after {
  width: 2.25px;
  height: 12px;
  left: 7.12px;
  top: 2px;
}

/* Состояния disabled для иконок */
.quantity-control-widget__btn:disabled .quantity-control-widget__minus-icon::before,
.quantity-control-widget__btn:disabled .quantity-control-widget__plus-icon::before,
.quantity-control-widget__btn:disabled .quantity-control-widget__plus-icon::after {
  background: white;
  opacity: 0.8;
}

/* Модификации для отображения в корзине */
.quantity-control-widget--cart {
  gap: 8px;
}
.quantity-control-widget--cart .quantity-control-widget__buttons {
  gap: 8px;
}
.quantity-control-widget--cart .quantity-control-widget__btn {
  width: 24px;
  height: 24px;
  min-width: 24px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.quantity-control-widget--cart .quantity-control-widget__count {
  font-size: 16px;
  min-width: 20px;
  text-align: center;
}
.quantity-control-widget--cart .quantity-control-widget__minus-icon,
.quantity-control-widget--cart .quantity-control-widget__plus-icon {
  transform: scale(0.8);
  margin: 0;
}
.quantity-control-widget--cart .quantity-control-widget__minus-icon::before,
.quantity-control-widget--cart .quantity-control-widget__plus-icon::before,
.quantity-control-widget--cart .quantity-control-widget__plus-icon::after {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}

/* Медиа-запросы для мобильных устройств */

/* @media (max-width: 768px) {
  .quantity-control-widget__buy-btn {
    padding: 8px 24px;
    font-size: 11px;
  }

  .quantity-control-widget__buttons {
    gap: 12px;
  }

  .quantity-control-widget__btn {
    width: 34px;
    height: 32px;
  }

  .quantity-control-widget__count {
    font-size: 14px;
  }
} */

.toast[data-v-18fca3cf] {
  position: fixed;
  top: 20px;
  left: 50%;
  transform: translateX(-50%);
  padding: 12px 24px;
  border-radius: 8px;
  color: white;
  font-weight: 500;
  z-index: 1000;
  width: 50%;
}
.success[data-v-18fca3cf] {
  background-color: #66ca1a;
}
.error[data-v-18fca3cf] {
  background-color: #f44336;
}
.info[data-v-18fca3cf] {
  background-color: #2196f3;
}
.toast-enter-active[data-v-18fca3cf],
.toast-leave-active[data-v-18fca3cf] {
  transition: all 0.3s ease;
}
.toast-enter-from[data-v-18fca3cf],
.toast-leave-to[data-v-18fca3cf] {
  opacity: 0;
  transform: translateX(-50%) translateY(-30px);
}
/*
Структура модального окна продукта:

1. product-modal-overlay
   - Затемненный фон на весь экран
   - Position: fixed, занимает весь viewport
   - Z-index: 1000 для отображения поверх всего контента
   - Центрирует содержимое через flex

2. product-modal-wrapper
   - Основной контейнер модального окна
   - Фиксированная ширина 375px
   - Высота вычисляется как 100vh минус высота фильтров и навигации
   - Отступ сверху равен высоте фильтров
   - Содержит header и контейнер для контента

3. modal-header (50px)
   - Фиксированная высота
   - Содержит кнопки и заголовок
   - Не участвует в прокрутке (flex-shrink: 0)

4. modal-container
   - Растягивается на оставшуюся высоту (flex: 1)
   - Содержит прокручиваемый контент
   - Ограничивает ширину контента до 347px

5. modal-scroll-container
   - Контейнер с overflow-y: auto
   - Обеспечивает прокрутку контента
   - Центрируется внутри modal-container
   - Содержит весь контент продукта

Принцип работы прокрутки:
- Внешний viewport фиксирован
- Модальное окно имеет фиксированную высоту
- Прокрутка происходит только внутри modal-scroll-container
- Контент центрируется по горизонтали и имеет отступы

Для мобильных устройств:
- Ширина растягивается на весь экран
- Отступы пересчитываются
- Сохраняется базовая структура
*/

/* Основные переменные для страницы продукта */
:root {
  /* Цвета */
  --product-text-primary: #504f4f;
  --product-text-secondary: #727272;
  --product-text-title: #787878;
  --product-button-bg: #252525;
  --product-button-text: white;
  --product-header-bg: #ed6ca6;

  /* Цвета модального окна */
  --modal-header-text: #905ecc;
  --modal-overlay-bg: rgba(0, 0, 0, 0.3);
  --modal-close-bg: #787878;
  --modal-text: #000000;
  --modal-subtitle: #787878;

  /* Размеры и отступы */
  --product-modal-width: 347px;
  --product-modal-content-width: 347px;
  --product-modal-header-height: 50px;
  --product-modal-top-margin: 0px;
  --product-side-padding: 14px;

  /* Позиционирование */
  --product-carousel-offset: -20px;
}

/* Структура модального окна */

/* Предотвращение взаимодействия с фоном */
.product-modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  background: white;
  z-index: 1000;
}
.product-modal-wrapper {
  position: relative;
  width: 100%;
  top: var(--product-modal-top-margin);
  border-radius: 20px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  height: calc(100% - var(--nav-height));
}
.product-modal-background {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  background: var(--pattern-image) repeat;
  background-size: var(--pattern-size);
  opacity: var(--pattern-opacity);
  pointer-events: none;
  z-index: 2;
}
.product-modal-content {
  width: var(--product-modal-content-width);
  height: 100%;
  background: white;
  position: relative;
}
.product-modal-category {
  position: relative;
  width: 100%;
  height: 60px;
  padding: 0 16px;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 6;
}
.product-modal-searchbar {
  position: fixed;
  height: 40px;
  right: 16px;
  top: 10px;
}
.product-modal-searchbar.is-active {
  top: 10px;
  left: 50%;
  width: 100%;
  transform: translateX(-50%);
}

/* Шапка модального окна */
.modal-header {
  flex-shrink: 0;
  height: var(--product-modal-header-height);
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 15px;
  background: white;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  z-index: 3;
}
.modal-header-info {
  text-align: center;
}
.modal-header-title {
  color: var(--modal-text);
  font-size: 18px;
  font-family: Archivo, sans-serif;
  font-weight: 700;
  line-height: 16px;
  margin: 0 0 5px 0;
}
.modal-header-subtitle {
  color: var(--modal-subtitle);
  font-size: 12px;
  font-family: Archivo, sans-serif;
  font-weight: 400;
  line-height: 8px;
}
.modal-menu-btn {
  width: 22px;
  height: 22px;
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
}
.modal-menu-btn span {
  display: block;
  width: 22px;
  height: 2px;
  background: var(--modal-header-text);
  border-radius: 1px;
}

/* Контейнеры для контента */
.modal-container {
  width: 100%;
  height: 100%;
  /* overflow: hidden; */
  display: flex;
  flex-direction: column;
  position: relative;
}
.modal-scroll-container {
  flex: 1;
  width: 100%;
  height: 100%;
  margin: 0 auto;
  overflow-y: hidden;
  padding: 0 !important; /* Убираем все отступы */
  background: white;
  position: relative;
  display: flex;
  justify-content: center;
  z-index: 1;
}

/* Контент продукта */
.product-header {
  width: 100%;
  height: 182px;
  position: relative;
  margin: 0;
  overflow: visible;
  z-index: 5;
  background: white;
  border-top-left-radius: 20px;
  border-top-right-radius: 20px;
}
.header-background {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-position: center;
  background-size: cover;
  opacity: 1;
}
.decorative-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: 10px 10px;
  opacity: 0.2;
  pointer-events: none;
}

/* Изображение поверх обложки */
.product-header-image-container {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: -60px;
  width: 280px;
  height: 280px;
  z-index: 20;
}
.header-image {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* Карусель изображений */
.additional-images-carousel {
  position: absolute;
  top: var(--product-carousel-offset);
  width: var(--product-modal-content-width);
  height: auto;
  z-index: 999;
  margin: 0 auto;
  left: 50%;
  transform: translateX(-50%);
}
.carousel-container {
  width: 90%;
  padding: 5px;
  display: flex;
  justify-content: center;
  position: relative;
  margin: 0 auto;
}
.carousel-image-wrapper {
  width: 270px;
  height: 270px;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 0px 9px 9px 9px;
}
.carousel-image {
  width: 100%;
  height: 100%;
  max-width: 252px;
  max-height: 261px;
  object-fit: contain;
}

/* Кнопки карусели */
.carousel-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.5);
  border: none;
  color: white;
  font-size: 18px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  transition: background-color 0.2s;
}
.carousel-btn:hover {
  background: rgba(0, 0, 0, 0.7);
}
.carousel-btn.prev {
  left: 16px;
}
.carousel-btn.next {
  right: 16px;
}

/* Информация о продукте */
.product-content-wrapper {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: calc(100% - 182px - 60px);
  width: 100%;
  margin: 0;
  background: #F0F0F0;
  border-bottom-left-radius: 20px;
  border-bottom-right-radius: 20px;
  position: relative;
  z-index: 1;
  overflow: auto;
  scrollbar-width: none; /* Firefox */
  -ms-overflow-style: none; /* IE and Edge */
}
.product-main-info {
  position: relative;
  display: flex;
  padding: 30px 25px 5px 25px;
  gap: 30px;
  border-radius: 0px;
}
.product-image-container {
  width: 120px;
  min-width: 120px;
  z-index: 5;
}
.product-main-image {
  width: 100%;
  height: auto;
  object-fit: contain;
}
.product-info {
  flex: 1;
}
.product-title {
  color: var(--product-text-title);
  font-size: clamp(11px, 13px, 18px);
  font-family: 'Open Sans Hebrew', sans-serif;
  font-weight: 700;
  line-height: 16px;
  text-align: left;
  margin-bottom: 6px;
  text-transform: uppercase;

  max-width: 100%;
  overflow-wrap: break-word;
  word-wrap: break-word;
  word-break: break-word;
  hyphens: auto;
}
.product-description {
  color: var(--product-text-secondary);
  font-size: 9px;
  font-family: 'Pontano Sans', sans-serif;
  text-align: left;
  font-weight: 400;
  line-height: 9px;
}
.product-additional-info {
  padding: 0 25px;
}
.additional-description {
  color: var(--product-text-secondary);
  font-size: 9px;
  font-family: 'Pontano Sans', sans-serif;
  font-weight: 400;
  line-height: 10px;
  text-align: center;
  cursor: pointer;
  transition: max-height 0.3s ease-in-out;
}
.additional-description p {
  margin: 9px 0;
}
.additional-description.description-collapsed {
  max-height: 100px;
  overflow: hidden;
  position: relative;
}
.additional-description.description-collapsed::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 18px; /* высота градиента для плавного затухания */
  pointer-events: none;
}
.description-expand-hint {
  color: var(--product-text-secondary);
  font-size: 8px;
  font-family: 'Pontano Sans', sans-serif;
  font-weight: 400;
  text-align: center;
  margin-top: 5px;
  cursor: pointer;
  opacity: 0.7;
  text-decoration: underline;
}

/* Блок покупки */
.product-purchase {
  padding: 25px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 9px;
}
.modal-product-price {
  color: var(--product-text-primary);
  font-size: 22px;
  font-family: 'Open Sans', sans-serif;
  font-weight: 800;
  line-height: 22px;
  text-align: center;
  margin: 0;
}
.modal-product-price.has-discount {
  color: #FF5B5B;
}
.modal-product-discount-price {
  position: relative;
  top: 8px;
  font-size: 12px;
  font-weight: bolder;
  color: #DAD8D7;
  text-decoration: line-through;
}
.modal-product-stock {
  color: var(--product-text-secondary);
  font-size: 9px;
  font-family: 'Pontano Sans', sans-serif;
  font-weight: 400;
  line-height: 9px;
  text-align: center;
  margin: 0;
}
.modal-buy-button {
  margin: 0;
  padding: 10px 30px;
  background: var(--product-button-bg);
  border-radius: 100px;
  border: none;
  color: var(--product-button-text);
  font-size: 12px;
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  line-height: 14.53px;
  letter-spacing: 0.12px;
  text-transform: uppercase;
  cursor: pointer;
}

/* Контроль количества */
.cart-quantity-control {
  margin: 0;
  gap: 9px;
}

/* Markdown контент */
.markdown-content {
  text-align: left;
}
.markdown-content h1,
.markdown-content h2,
.markdown-content h3 {
  margin: 1em 0 0.5em;
  color: var(--product-text-title);
}
.markdown-content p {
  margin: 0.5em 0;
  line-height: 1.4;
}
.markdown-content ul,
.markdown-content ol {
  padding-left: 1.5em;
  margin: 0.5em 0;
}
.markdown-content li {
  margin: 0.25em 0;
}
.markdown-content a {
  color: var(--product-text-primary);
  text-decoration: none;
}
.markdown-content blockquote {
  border-left: 3px solid var(--product-text-secondary);
  padding-left: 1em;
  margin: 1em 0;
  color: var(--product-text-secondary);
}
.markdown-content code {
  background: rgba(0, 0, 0, 0.05);
  padding: 0.2em 0.4em;
  border-radius: 3px;
  font-family: monospace;
}
.markdown-content pre code {
  display: block;
  padding: 1em;
  overflow-x: auto;
}

/* Скрытие скроллбара */
.modal-scroll-container::-webkit-scrollbar {
  display: none;
}
.modal-scroll-container {
  scrollbar-width: none;
  -ms-overflow-style: none;
}

/* Анимации */
.modal-fade-enter-active,
.modal-fade-leave-active {
  transition: opacity 0.3s ease;
}
.modal-fade-enter-from,
.modal-fade-leave-to {
  opacity: 0;
}

/* Кнопка закрытия */
.product-modal-close {
  position: absolute;
  top: calc(var(--product-modal-top-margin) - 18px + 64px);
  right: calc((100% - var(--product-modal-width)) / 2 - 18px);
  width: 48px;
  height: 48px;
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
  z-index: 1001; /* Выше чем модальное окно */
  display: flex;
  align-items: center;
  justify-content: center;
}
.product-modal-close svg {
  width: 48;
  height: 48px;
}

/* Состояния кнопок */
.modal-buy-button:disabled,
.carousel-btn:disabled {
  background: var(--catalog-button-disabled);
  cursor: not-allowed;
}

/* Стили для полноэкранного режима */
.product-modal-fullscreen {
  margin: 0;
  width: 100vw;
  height: 100vh;
  border-radius: 0;
}

/* Настройки безопасной области */
@supports (padding: env(safe-area-inset-bottom)) {
.product-modal-wrapper {
    padding-bottom: env(safe-area-inset-bottom);
}
}

/* Оптимизация для устройств с notch */
@supports (padding: env(safe-area-inset-top)) {
.modal-header {
    padding-top: env(safe-area-inset-top);
}
}

/* Поддержка жестов */
.product-modal-wrapper {
  touch-action: pan-y pinch-zoom;
}

/* Оптимизация производительности */
.product-modal-wrapper,
.modal-scroll-container {
  -webkit-overflow-scrolling: touch;
  will-change: transform;
  transform: translateZ(0);
}
body.modal-open {
  overflow: hidden;
  position: fixed;
  width: 100%;
  height: 100%;
}

/* Дополнительные состояния загрузки */
.product-modal-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 200px;
}

/* Состояния ошибок */
.product-modal-error {
  color: #d32f2f;
  text-align: center;
  padding: 20px;
  margin: 20px;
}

/* Улучшение доступности */
.product-modal-close:focus,
.carousel-btn:focus,
.modal-buy-button:focus {
  outline: 2px solid var(--product-text-primary);
  outline-offset: 2px;
}
.product-modal-close:focus:not(:focus-visible),
.carousel-btn:focus:not(:focus-visible),
.modal-buy-button:focus:not(:focus-visible) {
  outline: none;
}

/* Улучшенные переходы */
.product-modal-wrapper,
.modal-header,
.product-modal-close,
.carousel-btn,
.modal-buy-button {
  transition: all 0.3s ease;
}

/* Высококонтрастный режим */
@media (prefers-contrast: more) {
.modal-header {
    border-bottom-width: 2px;
}
.product-modal-close.product-modal-close,
  .carousel-btn {
    border: 2px solid white;
}
}
@supports (-webkit-touch-callout: none) {
.product-modal-wrapper {
    height: calc(100% - var(--nav-height) + 30px);
}
}
/* src/assets/styles/search.css */

/* Контейнер поиска */
.search-container {
  position: relative;
  height: 40px;
  display: flex;
  align-items: center;
  display: flex;
  justify-content: center;
  gap: 10px;
}

/* Кнопка активации поиска */
.search-trigger {
  background: none;
  border: none;
  padding: 8px;
  cursor: pointer;
  transition: opacity 0.2s;
}
.search-trigger:hover {
  opacity: 0.8;
}

/* Поле поиска */
.search-field {
  width: 265px;
  height: 34px;
  position: relative;
  display: flex;
  align-items: center;
}
.search-field input {
  width: 100%;
  height: 100%;
  padding: 18px 40px 18px 26px; /* Увеличиваем правый padding */
  background: #f0f0f0;
  box-shadow: 0px 1px 1px #c5c4c4 inset;
  border-radius: 100px;
  border: none;
  color: #252525;
  font-size: 10px;
  font-family: var(--font-open-sans-hebrew);
  font-weight: 700;
  line-height: 10px;
}
.search-field input.error {
  text-align: left;
  border: 2px solid #ff5b5b;
  color: #ff5b5b;
  margin: 0;
}
.search-field input:focus {
  outline: none;
}
.search-field input::placeholder {
  color: #787878;
}

/* Кнопка очистки */
.clear-search {
  position: absolute;
  right: 0; /* Прижимаем к правому краю поля ввода */
  padding: 0px; /* Одинаковые отступы со всех сторон */
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Сообщение об отсутствии товара */
.no-products-message {
  position: fixed;
  top: 112px;
  left: 50%;
  transform: translateX(-50%);
  width: 276px;
  padding: 32px 0;
  background: rgba(240, 240, 240, 0.4);
  backdrop-filter: blur(4px);
  border-radius: 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 22px;
  z-index: 30;
}
.no-products-icon {
  width: 37px;
  height: 37px;
  color: #252525;
}
.no-products-text {
  color: #252525;
  font-size: 14px;
  font-family: var(--font-open-sans-hebrew);
  font-weight: 700;
  line-height: 16.38px;
  text-align: center;
  width: 173px;
}

/* Кнопка "Выбрать другой продукт" */
.try-again-button {
  padding: 10px 30px;
  background: #252525;
  border-radius: 100px;
  border: none;
  color: white;
  font-size: 12px;
  font-family: var(--font-inter);
  font-weight: 700;
  line-height: 14.53px;
  letter-spacing: 0.12px;
  text-transform: uppercase;
  cursor: pointer;
  transition: opacity 0.2s;
}
.try-again-button:hover {
  opacity: 0.9;
}

/* Анимации */
.search-field,
.no-products-message {
  animation: fadeIn 0.2s ease-in-out;
}
@keyframes fadeIn {
from {
    opacity: 0;
}
to {
    opacity: 1;
}
}
/*
Структура модального окна продукта:

1. product-modal-overlay
   - Затемненный фон на весь экран
   - Position: fixed, занимает весь viewport
   - Z-index: 1000 для отображения поверх всего контента
   - Центрирует содержимое через flex

2. product-modal-wrapper
   - Основной контейнер модального окна
   - Фиксированная ширина 375px
   - Высота вычисляется как 100vh минус высота фильтров и навигации
   - Отступ сверху равен высоте фильтров
   - Содержит header и контейнер для контента

3. modal-header (50px)
   - Фиксированная высота
   - Содержит кнопки и заголовок
   - Не участвует в прокрутке (flex-shrink: 0)

4. modal-container
   - Растягивается на оставшуюся высоту (flex: 1)
   - Содержит прокручиваемый контент
   - Ограничивает ширину контента до 347px

5. modal-scroll-container
   - Контейнер с overflow-y: auto
   - Обеспечивает прокрутку контента
   - Центрируется внутри modal-container
   - Содержит весь контент продукта

Принцип работы прокрутки:
- Внешний viewport фиксирован
- Модальное окно имеет фиксированную высоту
- Прокрутка происходит только внутри modal-scroll-container
- Контент центрируется по горизонтали и имеет отступы

Для мобильных устройств:
- Ширина растягивается на весь экран
- Отступы пересчитываются
- Сохраняется базовая структура
*/

/* Основные переменные для страницы продукта */
:root {
  /* Цвета */
  --product-text-primary: #504f4f;
  --product-text-secondary: #727272;
  --product-text-title: #787878;
  --product-button-bg: #252525;
  --product-button-text: white;
  --product-header-bg: #ed6ca6;

  /* Цвета модального окна */
  --modal-header-text: #905ecc;
  --modal-overlay-bg: rgba(0, 0, 0, 0.3);
  --modal-close-bg: #787878;
  --modal-text: #000000;
  --modal-subtitle: #787878;

  /* Размеры и отступы */
  --product-modal-width: 347px;
  --product-modal-content-width: 347px;
  --product-modal-header-height: 50px;
  --product-modal-top-margin: 0px;
  --product-side-padding: 14px;

  /* Позиционирование */
  --product-carousel-offset: -20px;
}

/* Структура модального окна */

/* Предотвращение взаимодействия с фоном */
.product-modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  background: white;
  z-index: 1000;
}
.product-modal-wrapper {
  position: relative;
  width: 100%;
  top: var(--product-modal-top-margin);
  border-radius: 20px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  height: calc(100% - var(--nav-height));
}
.product-modal-background {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  background: var(--pattern-image) repeat;
  background-size: var(--pattern-size);
  opacity: var(--pattern-opacity);
  pointer-events: none;
  z-index: 2;
}
.product-modal-content {
  width: var(--product-modal-content-width);
  height: 100%;
  background: white;
  position: relative;
}
.product-modal-category {
  position: relative;
  width: 100%;
  height: 60px;
  padding: 0 16px;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 6;
}
.product-modal-searchbar {
  position: fixed;
  height: 40px;
  right: 16px;
  top: 10px;
}
.product-modal-searchbar.is-active {
  top: 10px;
  left: 50%;
  width: 100%;
  transform: translateX(-50%);
}

/* Шапка модального окна */
.modal-header {
  flex-shrink: 0;
  height: var(--product-modal-header-height);
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 15px;
  background: white;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  z-index: 3;
}
.modal-header-info {
  text-align: center;
}
.modal-header-title {
  color: var(--modal-text);
  font-size: 18px;
  font-family: Archivo, sans-serif;
  font-weight: 700;
  line-height: 16px;
  margin: 0 0 5px 0;
}
.modal-header-subtitle {
  color: var(--modal-subtitle);
  font-size: 12px;
  font-family: Archivo, sans-serif;
  font-weight: 400;
  line-height: 8px;
}
.modal-menu-btn {
  width: 22px;
  height: 22px;
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
}
.modal-menu-btn span {
  display: block;
  width: 22px;
  height: 2px;
  background: var(--modal-header-text);
  border-radius: 1px;
}

/* Контейнеры для контента */
.modal-container {
  width: 100%;
  height: 100%;
  /* overflow: hidden; */
  display: flex;
  flex-direction: column;
  position: relative;
}
.modal-scroll-container {
  flex: 1;
  width: 100%;
  height: 100%;
  margin: 0 auto;
  overflow-y: hidden;
  padding: 0 !important; /* Убираем все отступы */
  background: white;
  position: relative;
  display: flex;
  justify-content: center;
  z-index: 1;
}

/* Контент продукта */
.product-header {
  width: 100%;
  height: 182px;
  position: relative;
  margin: 0;
  overflow: visible;
  z-index: 5;
  background: white;
  border-top-left-radius: 20px;
  border-top-right-radius: 20px;
}
.header-background {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-position: center;
  background-size: cover;
  opacity: 1;
}
.decorative-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: 10px 10px;
  opacity: 0.2;
  pointer-events: none;
}

/* Изображение поверх обложки */
.product-header-image-container {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: -60px;
  width: 280px;
  height: 280px;
  z-index: 20;
}
.header-image {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* Карусель изображений */
.additional-images-carousel {
  position: absolute;
  top: var(--product-carousel-offset);
  width: var(--product-modal-content-width);
  height: auto;
  z-index: 999;
  margin: 0 auto;
  left: 50%;
  transform: translateX(-50%);
}
.carousel-container {
  width: 90%;
  padding: 5px;
  display: flex;
  justify-content: center;
  position: relative;
  margin: 0 auto;
}
.carousel-image-wrapper {
  width: 270px;
  height: 270px;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 0px 9px 9px 9px;
}
.carousel-image {
  width: 100%;
  height: 100%;
  max-width: 252px;
  max-height: 261px;
  object-fit: contain;
}

/* Кнопки карусели */
.carousel-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.5);
  border: none;
  color: white;
  font-size: 18px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  transition: background-color 0.2s;
}
.carousel-btn:hover {
  background: rgba(0, 0, 0, 0.7);
}
.carousel-btn.prev {
  left: 16px;
}
.carousel-btn.next {
  right: 16px;
}

/* Информация о продукте */
.product-content-wrapper {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: calc(100% - 182px - 60px);
  width: 100%;
  margin: 0;
  background: #F0F0F0;
  border-bottom-left-radius: 20px;
  border-bottom-right-radius: 20px;
  position: relative;
  z-index: 1;
  overflow: auto;
  scrollbar-width: none; /* Firefox */
  -ms-overflow-style: none; /* IE and Edge */
}
.product-main-info {
  position: relative;
  display: flex;
  padding: 30px 25px 5px 25px;
  gap: 30px;
  border-radius: 0px;
}
.product-image-container {
  width: 120px;
  min-width: 120px;
  z-index: 5;
}
.product-main-image {
  width: 100%;
  height: auto;
  object-fit: contain;
}
.product-info {
  flex: 1;
}
.product-title {
  color: var(--product-text-title);
  font-size: clamp(11px, 13px, 18px);
  font-family: 'Open Sans Hebrew', sans-serif;
  font-weight: 700;
  line-height: 16px;
  text-align: left;
  margin-bottom: 6px;
  text-transform: uppercase;

  max-width: 100%;
  overflow-wrap: break-word;
  word-wrap: break-word;
  word-break: break-word;
  hyphens: auto;
}
.product-description {
  color: var(--product-text-secondary);
  font-size: 9px;
  font-family: 'Pontano Sans', sans-serif;
  text-align: left;
  font-weight: 400;
  line-height: 9px;
}
.product-additional-info {
  padding: 0 25px;
}
.additional-description {
  color: var(--product-text-secondary);
  font-size: 9px;
  font-family: 'Pontano Sans', sans-serif;
  font-weight: 400;
  line-height: 10px;
  text-align: center;
  cursor: pointer;
  transition: max-height 0.3s ease-in-out;
}
.additional-description p {
  margin: 9px 0;
}
.additional-description.description-collapsed {
  max-height: 100px;
  overflow: hidden;
  position: relative;
}
.additional-description.description-collapsed::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 18px; /* высота градиента для плавного затухания */
  pointer-events: none;
}
.description-expand-hint {
  color: var(--product-text-secondary);
  font-size: 8px;
  font-family: 'Pontano Sans', sans-serif;
  font-weight: 400;
  text-align: center;
  margin-top: 5px;
  cursor: pointer;
  opacity: 0.7;
  text-decoration: underline;
}

/* Блок покупки */
.product-purchase {
  padding: 25px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 9px;
}
.modal-product-price {
  color: var(--product-text-primary);
  font-size: 22px;
  font-family: 'Open Sans', sans-serif;
  font-weight: 800;
  line-height: 22px;
  text-align: center;
  margin: 0;
}
.modal-product-price.has-discount {
  color: #FF5B5B;
}
.modal-product-discount-price {
  position: relative;
  top: 8px;
  font-size: 12px;
  font-weight: bolder;
  color: #DAD8D7;
  text-decoration: line-through;
}
.modal-product-stock {
  color: var(--product-text-secondary);
  font-size: 9px;
  font-family: 'Pontano Sans', sans-serif;
  font-weight: 400;
  line-height: 9px;
  text-align: center;
  margin: 0;
}
.modal-buy-button {
  margin: 0;
  padding: 10px 30px;
  background: var(--product-button-bg);
  border-radius: 100px;
  border: none;
  color: var(--product-button-text);
  font-size: 12px;
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  line-height: 14.53px;
  letter-spacing: 0.12px;
  text-transform: uppercase;
  cursor: pointer;
}

/* Контроль количества */
.cart-quantity-control {
  margin: 0;
  gap: 9px;
}

/* Markdown контент */
.markdown-content {
  text-align: left;
}
.markdown-content h1,
.markdown-content h2,
.markdown-content h3 {
  margin: 1em 0 0.5em;
  color: var(--product-text-title);
}
.markdown-content p {
  margin: 0.5em 0;
  line-height: 1.4;
}
.markdown-content ul,
.markdown-content ol {
  padding-left: 1.5em;
  margin: 0.5em 0;
}
.markdown-content li {
  margin: 0.25em 0;
}
.markdown-content a {
  color: var(--product-text-primary);
  text-decoration: none;
}
.markdown-content blockquote {
  border-left: 3px solid var(--product-text-secondary);
  padding-left: 1em;
  margin: 1em 0;
  color: var(--product-text-secondary);
}
.markdown-content code {
  background: rgba(0, 0, 0, 0.05);
  padding: 0.2em 0.4em;
  border-radius: 3px;
  font-family: monospace;
}
.markdown-content pre code {
  display: block;
  padding: 1em;
  overflow-x: auto;
}

/* Скрытие скроллбара */
.modal-scroll-container::-webkit-scrollbar {
  display: none;
}
.modal-scroll-container {
  scrollbar-width: none;
  -ms-overflow-style: none;
}

/* Анимации */
.modal-fade-enter-active,
.modal-fade-leave-active {
  transition: opacity 0.3s ease;
}
.modal-fade-enter-from,
.modal-fade-leave-to {
  opacity: 0;
}

/* Кнопка закрытия */
.product-modal-close {
  position: absolute;
  top: calc(var(--product-modal-top-margin) - 18px + 64px);
  right: calc((100% - var(--product-modal-width)) / 2 - 18px);
  width: 48px;
  height: 48px;
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
  z-index: 1001; /* Выше чем модальное окно */
  display: flex;
  align-items: center;
  justify-content: center;
}
.product-modal-close svg {
  width: 48;
  height: 48px;
}

/* Состояния кнопок */
.modal-buy-button:disabled,
.carousel-btn:disabled {
  background: var(--catalog-button-disabled);
  cursor: not-allowed;
}

/* Стили для полноэкранного режима */
.product-modal-fullscreen {
  margin: 0;
  width: 100vw;
  height: 100vh;
  border-radius: 0;
}

/* Настройки безопасной области */
@supports (padding: env(safe-area-inset-bottom)) {
.product-modal-wrapper {
    padding-bottom: env(safe-area-inset-bottom);
}
}

/* Оптимизация для устройств с notch */
@supports (padding: env(safe-area-inset-top)) {
.modal-header {
    padding-top: env(safe-area-inset-top);
}
}

/* Поддержка жестов */
.product-modal-wrapper {
  touch-action: pan-y pinch-zoom;
}

/* Оптимизация производительности */
.product-modal-wrapper,
.modal-scroll-container {
  -webkit-overflow-scrolling: touch;
  will-change: transform;
  transform: translateZ(0);
}
body.modal-open {
  overflow: hidden;
  position: fixed;
  width: 100%;
  height: 100%;
}

/* Дополнительные состояния загрузки */
.product-modal-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 200px;
}

/* Состояния ошибок */
.product-modal-error {
  color: #d32f2f;
  text-align: center;
  padding: 20px;
  margin: 20px;
}

/* Улучшение доступности */
.product-modal-close:focus,
.carousel-btn:focus,
.modal-buy-button:focus {
  outline: 2px solid var(--product-text-primary);
  outline-offset: 2px;
}
.product-modal-close:focus:not(:focus-visible),
.carousel-btn:focus:not(:focus-visible),
.modal-buy-button:focus:not(:focus-visible) {
  outline: none;
}

/* Улучшенные переходы */
.product-modal-wrapper,
.modal-header,
.product-modal-close,
.carousel-btn,
.modal-buy-button {
  transition: all 0.3s ease;
}

/* Высококонтрастный режим */
@media (prefers-contrast: more) {
.modal-header {
    border-bottom-width: 2px;
}
.product-modal-close.product-modal-close,
  .carousel-btn {
    border: 2px solid white;
}
}
@supports (-webkit-touch-callout: none) {
.product-modal-wrapper {
    height: calc(100% - var(--nav-height) + 30px);
}
}
.modal-buy-button:disabled {
  background-color: var(--catalog-button-disabled);
  cursor: not-allowed;
}

/* Фиксированный внешний контейнер */
.fixed-container[data-v-5366989c] {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: var(--nav-height);
  overflow: hidden;
  z-index: 1;
}
.fixed-container.is-focused[data-v-5366989c] {
  bottom: 0;
}

/* Внутренний скроллируемый контейнер */
.catalog-container[data-v-5366989c] {
  width: 100%;
  height: 100%;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  /* Изменяем padding-bottom для корректного отступа */
  padding-bottom: calc((var(--keyboard-visible, 0) * var(--keyboard-height, 0) - var(--nav-height)));
  margin: 0 auto;
}
.loading-more[data-v-5366989c] {
  width: 100%;
  padding: 20px;
  display: flex;
  justify-content: center;
  align-items: center;
}
.initial-loading[data-v-5366989c] {
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  top: 0;
  left: 0;
}

:root {
  --catalog-text-primary: #252525;
  --catalog-text-secondary: #787878;
  --catalog-button-color: #252525;
  --catalog-button-disabled: #dad8d7;
  --catalog-background: white;
  --catalog-category-active: #ffb43d;

  --font-open-sans: 'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --font-inter: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --font-open-sans-hebrew: 'Open Sans Hebrew', 'Open Sans', sans-serif;
  --font-pontano: 'Pontano Sans', sans-serif;

  --pattern-image: url('/images/bg.Dd3h4G2D.png');
  --pattern-size: 392px 711px;
  --pattern-opacity: 0.05;

  --container-width-mobile: 375px;
  --container-width-tablet: 768px;
  --container-width-desktop: 1200px;

  --card-width: 134px;
  --card-height: 240px;
  --card-image-size: 114px;
  --grid-gap: 32px;

  --filters-height: 60px;
  --nav-bottom-spacing: 20px;
}
.catalog {
  width: 100%;
  min-height: var(--real-vh);
  background: white;
  margin: 0;
  padding: 0;
  position: relative;
  overflow-x: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-bottom: calc(var(--nav-height) + var(--keyboard-height));
  z-index: 1;
}
.catalog-background {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  background: var(--pattern-image) repeat;
  background-size: var(--pattern-size);
  opacity: var(--pattern-opacity);
  pointer-events: none;
  z-index: 0;
}
.fixed-container {
  position: relative;
  z-index: 2;
}
.catalog-container {
  width: 100%;
  min-height: calc(var(--real-vh) - var(--nav-height));
  padding-bottom: calc(var(--nav-height) + var(--keyboard-height));
  position: relative;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.filters-wrapper {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 20;
  display: flex;
  justify-content: center;
  background: rgba(255, 255, 255, 1);
  height: var(--filters-height);
  transform: translateZ(0);
}
.filters-wrapper::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: var(--pattern-image) repeat;
  background-size: var(--pattern-size);
  background-position: center 0;
  opacity: var(--pattern-opacity);
  pointer-events: none;
  z-index: -1;
}
.catalog,
.catalog-container {
  -ms-overflow-style: none;
  scrollbar-width: none;
}
.catalog::-webkit-scrollbar,
.catalog-container::-webkit-scrollbar {
  display: none;
}
.catalog-content {
  position: relative;
  z-index: 2;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 0;
  box-sizing: border-box;
}
.catalog-filters {
  width: 100%;
  max-width: 1400px;
  padding: 0 16px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  position: relative;
  z-index: 1;
  height: 100%;
}
.catalog-filters.search-active {
  justify-content: center;
  gap: 0;
}
.catalog-filters.search-active .search-container {
  width: 100%;
}
.filters-spacer {
  width: 40px;
  flex-shrink: 0;
}
.products-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, var(--card-width));
  gap: var(--grid-gap);
  justify-content: center;
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  padding: 16px;
  margin-top: var(--filters-height);
  margin-bottom: var(--nav-bottom-spacing);
}
.catalog .product-card {
  width: var(--card-width);
  height: var(--card-height);
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
}
.catalog .product-discount-plate {
  position: absolute;
  text-align: center;
  align-items: center;
  top: -7px;
  right: 7px;
  background-color: #FF5B5B;
  color: white;
  font-weight: bolder;
  font-size: 9px;
  padding: 6px;
  border-radius: 100px;
  z-index: 10;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}
.catalog .product-image {
  width: var(--card-image-size);
  height: var(--card-image-size);
  margin-bottom: 4px;
  cursor: pointer;
}
.catalog .product-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 4px;
}
.catalog .product-details {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.catalog .product-name {
  text-align: center;
  color: var(--catalog-text-secondary);
  font-size: 10px;
  font-family: var(--font-open-sans-hebrew);
  font-weight: 700;
  line-height: 10px;
  height: 20px;
  display: flex;
  align-items: center;
  margin-bottom: 12px;
}
.catalog .product-price {
  text-align: center;
  color: var(--catalog-text-primary);
  font-size: 16px;
  font-family: var(--font-open-sans);
  font-weight: 800;
  line-height: 16px;
  margin-bottom: 12px;
}
.catalog .product-price.has-discount {
  color: #FF5B5B;
}
.catalog .product-discount-price {
  position: absolute;
  top: calc(var(--card-height) / 2 + 15px);
  font-size: 10px;
  font-weight: bolder;
  color: #DAD8D7;
  text-decoration: line-through;
}
.catalog .product-stock {
  text-align: center;
  color: var(--catalog-text-secondary);
  font-size: 10px;
  font-family: var(--font-pontano);
  font-weight: 400;
  line-height: 10px;
  margin-bottom: 12px;
}
.catalog .buy-button {
  padding: 10px 30px;
  background: var(--catalog-button-color);
  border-radius: 100px;
  border: none;
  color: white;
  font-size: 12px;
  font-family: var(--font-inter);
  font-weight: 700;
  line-height: 14.53px;
  letter-spacing: 0.12px;
  cursor: pointer;
  margin-top: 2px;
  transition: background-color 0.2s ease;
}
.catalog .buy-button:disabled {
  background: var(--catalog-button-disabled);
  cursor: not-allowed;
}
.catalog .quantity-controls {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
}
.catalog .quantity-btn {
  width: 39.08px;
  height: 37.28px;
  padding: 8px;
  background: var(--catalog-button-color);
  border-radius: 100px;
  border: none;
  color: white;
  cursor: pointer;
}
.catalog .quantity-btn:disabled {
  background: var(--catalog-button-disabled);
}
.catalog .quantity {
  color: #504f4f;
  font-size: 16px;
  font-family: var(--font-inter);
  font-weight: 700;
  line-height: 19.37px;
  letter-spacing: 0.16px;
}
.loading-more,
.no-products {
  width: 100%;
  text-align: center;
  padding: 20px;
  color: var(--catalog-text-secondary);
}
.category-selector {
  width: 100%;
  overflow: hidden;
  position: relative;
  padding: 8px 0;
  display: flex;
  justify-content: center;
}
.categories-scroll {
  display: flex;
  gap: 4px;
  overflow-x: auto;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding: 0 16px;
  max-width: fit-content;
}
.categories-scroll::-webkit-scrollbar {
  display: none;
}
.category-btn {
  min-width: 80px;
  height: 24px;
  padding: 0 14px;
  background: var(--catalog-button-disabled);
  border: none;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  transition: background-color 0.2s ease;
  border-radius: 0;
  flex-shrink: 0;
}
.category-btn span {
  text-align: center;
  color: white;
  font-size: 8px;
  font-family: var(--font-inter);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.08px;
  text-transform: uppercase;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}
.category-btn.first-btn {
  border-top-left-radius: 100px;
  border-bottom-left-radius: 100px;
}
.category-btn.last-btn {
  border-top-right-radius: 100px;
  border-bottom-right-radius: 100px;
}
.category-btn.active {
  background: var(--catalog-category-active);
}
@media (min-width: 768px) {
.catalog-container {
    max-width: var(--container-width-tablet);
}
.products-grid {
    gap: var(--grid-gap);
    padding: 16px 24px;
}
}
@media (min-width: 1200px) {
.catalog-container {
    max-width: var(--container-width-desktop);
}
.products-grid {
    padding: 32px;
}
.catalog-filters {
    gap: var(--grid-gap);
    padding: 16px 32px;
}
}
.category-menu {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 32px;
  flex-grow: 1;
}
.menu-buttons {
  display: flex;
  gap: 4px;
}
.menu-btn {
  min-width: 98px;
  height: 32px;
  padding: 6px 14px;
  border: none;
  background-color: var(--catalog-button-color);
  color: white;
  cursor: pointer;
  transition: background-color 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}
.menu-btn.left {
  border-top-left-radius: 100px;
  border-bottom-left-radius: 100px;
}
.menu-btn.right {
  border-top-right-radius: 100px;
  border-bottom-right-radius: 100px;
}
.menu-btn span {
  font-size: 8px;
  font-family: var(--font-inter);
  font-weight: 700;
  text-transform: uppercase;
  white-space: nowrap;
  line-height: 9.68px;
  letter-spacing: 0.08px;
}
.menu-btn.active {
  background-color: var(--catalog-category-active);
}
.dropdown-panel {
  position: fixed;
  top: 14px;
  left: 50%;
  transform: translateX(-50%);
  width: 240px;
  height: 328px;
  max-width: 90%;
  background-color: var(--catalog-button-color);
  border-radius: 20px;
  padding: 16px;
  z-index: 100;
  display: flex;
  flex-direction: column;
  transition: 
    all 0.55s cubic-bezier(0.34, 1.3, 0.64, 1);
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
  overflow: hidden;
  overflow-y: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.dropdown-item {
  background: none;
  border: none;
  color: white;
  font-size: 14px;
  font-family: var(--font-inter);
  font-weight: 600;
  text-align: center;
  padding: 8px 12px;
  border-radius: 10px;
  cursor: pointer;
  visibility: hidden;
}
.dropdown-panel .dropdown-item{
  visibility: visible;
  transition: background-color 0.2s ease, color 0.2s ease;
}
.dropdown-item:hover {
  background-color: rgba(255, 255, 255, 0.1);
}
.dropdown-item.active {
  color: var(--catalog-category-active);
  font-weight: 700;
}
.dropdown-fade-enter-active .dropdown-item {
  visibility: hidden;
}
.dropdown-fade-leave-active .dropdown-item {
  visibility: hidden;
}
.dropdown-fade-leave-to,
.dropdown-fade-enter-active {
  transform: translateX(6px);
  transition-delay: 0s;
  border-bottom-left-radius: 0px;
  border-top-left-radius: 0px;
  width: 98px;
  height: 32px;
  box-shadow: none;
  opacity: 1;
}
.dropdown-fade-enter-active,
.dropdown-fade-leave-active {
  transition: 
    all 0.1s cubic-bezier(0.55, 0.085, 0.68, 0.53);
}
