/*! tailwindcss v4.2.2 | 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-translate-x: 0;
      --tw-translate-y: 0;
      --tw-translate-z: 0;
      --tw-rotate-x: initial;
      --tw-rotate-y: initial;
      --tw-rotate-z: initial;
      --tw-skew-x: initial;
      --tw-skew-y: initial;
      --tw-space-y-reverse: 0;
      --tw-border-style: solid;
      --tw-gradient-position: initial;
      --tw-gradient-from: #0000;
      --tw-gradient-via: #0000;
      --tw-gradient-to: #0000;
      --tw-gradient-stops: initial;
      --tw-gradient-via-stops: initial;
      --tw-gradient-from-position: 0%;
      --tw-gradient-via-position: 50%;
      --tw-gradient-to-position: 100%;
      --tw-leading: initial;
      --tw-font-weight: initial;
      --tw-tracking: initial;
      --tw-shadow: 0 0 #0000;
      --tw-shadow-color: initial;
      --tw-shadow-alpha: 100%;
      --tw-inset-shadow: 0 0 #0000;
      --tw-inset-shadow-color: initial;
      --tw-inset-shadow-alpha: 100%;
      --tw-ring-color: initial;
      --tw-ring-shadow: 0 0 #0000;
      --tw-inset-ring-color: initial;
      --tw-inset-ring-shadow: 0 0 #0000;
      --tw-ring-inset: initial;
      --tw-ring-offset-width: 0px;
      --tw-ring-offset-color: #fff;
      --tw-ring-offset-shadow: 0 0 #0000;
      --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;
      --tw-duration: initial;
      --tw-ease: initial;
      --tw-scale-x: 1;
      --tw-scale-y: 1;
      --tw-scale-z: 1;
    }
  }
}
:root {
  --blue-100: #dbeafe;
  --blue-300: #93c5fd;
  --blue-500: #3b6fd9;
  --blue-700: #2a4a8c;
  --anthracite: #2c2d2e;
  --text-body: #1e1e1e;
  --brand-600: #2563eb;
}
@font-face {
  font-family: "PizzaHutCYR";
  src: url("/theme-assets/fonts/PizzaHutCYR.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@layer theme {
  :root,
  :host {
    --font-sans: "Inter", ui-sans-serif, system-ui, sans-serif;
    --font-mono:
      ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
      "Courier New", monospace;
    --color-slate-200: oklch(92.9% 0.013 255.508);
    --color-slate-900: oklch(20.8% 0.042 265.755);
    --color-gray-50: oklch(98.5% 0.002 247.839);
    --color-gray-100: oklch(96.7% 0.003 264.542);
    --color-gray-200: oklch(92.8% 0.006 264.531);
    --color-gray-300: oklch(87.2% 0.01 258.338);
    --color-gray-400: oklch(70.7% 0.022 261.325);
    --color-gray-500: oklch(55.1% 0.027 264.364);
    --color-gray-600: oklch(44.6% 0.03 256.802);
    --color-gray-700: oklch(37.3% 0.034 259.733);
    --color-gray-800: oklch(27.8% 0.033 256.848);
    --color-gray-900: oklch(21% 0.034 264.665);
    --color-black: #000;
    --color-white: #fff;
    --spacing: 0.25rem;
    --container-md: 28rem;
    --container-lg: 32rem;
    --container-xl: 36rem;
    --container-2xl: 42rem;
    --container-3xl: 48rem;
    --text-xs: 0.75rem;
    --text-xs--line-height: calc(1 / 0.75);
    --text-sm: 0.875rem;
    --text-sm--line-height: calc(1.25 / 0.875);
    --text-base: 1rem;
    --text-base--line-height: calc(1.5 / 1);
    --text-lg: 1.125rem;
    --text-lg--line-height: calc(1.75 / 1.125);
    --text-xl: 1.25rem;
    --text-xl--line-height: calc(1.75 / 1.25);
    --text-2xl: 1.5rem;
    --text-2xl--line-height: calc(2 / 1.5);
    --text-3xl: 1.875rem;
    --text-3xl--line-height: calc(2.25 / 1.875);
    --text-4xl: 2.25rem;
    --text-4xl--line-height: calc(2.5 / 2.25);
    --text-5xl: 3rem;
    --text-5xl--line-height: 1;
    --text-6xl: 3.75rem;
    --text-6xl--line-height: 1;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
    --tracking-wide: 0.025em;
    --tracking-wider: 0.05em;
    --leading-tight: 1.25;
    --leading-snug: 1.375;
    --radius-md: 0.375rem;
    --radius-lg: 0.5rem;
    --radius-xl: 0.75rem;
    --radius-2xl: 1rem;
    --ease-out: cubic-bezier(0, 0, 0.2, 1);
    --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
    --blur-sm: 8px;
    --blur-xl: 24px;
    --blur-3xl: 64px;
    --default-transition-duration: 0.15s;
    --default-transition-timing-function: cubic-bezier(0.4, 0, 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;
    -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: -0.25em;
  }
  sup {
    top: -0.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;
  }
  ::-webkit-calendar-picker-indicator {
    line-height: 1;
  }
  :-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;
  }
  html {
    font-family: var(--font-sans);
    -webkit-font-smoothing: antialiased;
  }
  body {
    color: #1e1e1e;
    background: #eff6fd ;
    margin: 0;
  }
}
@layer components {
  .glass {
    -webkit-backdrop-filter: blur(20px);
    background: #ffffffd9;
    border: 1px solid #ffffff4d;
  }
  .text-gradient-vibrant {
    -webkit-text-fill-color: transparent;
    background: linear-gradient(135deg, #7ba3e8 0%, #3b6fd9 50%, #2a4a8c 100%);
    -webkit-background-clip: text;
    background-clip: text;
  }
  .btn-primary {
    color: #fff;
    cursor: pointer;
    background: linear-gradient(135deg, #3b6fd9 0%, #2a4a8c 100%);
    border: none;
    border-radius: 0.5rem;
    padding: 0.75rem 1.5rem;
    font-weight: 500;
    transition: all 0.3s;
  }
  .btn-primary:hover {
    opacity: 0.95;
    box-shadow: 0 0 30px #3b6fd966;
  }
  .btn-outline {
    color: #2a4a8c;
    cursor: pointer;
    background: 0 0;
    border: 2px solid #3b6fd9;
    border-radius: 0.5rem;
    padding: 0.75rem 1.5rem;
    font-weight: 500;
    transition: all 0.3s;
  }
  .btn-outline:hover {
    background: #3b6fd91f;
  }
  .catalog-btn-nav {
    color: #fefdfd;
    cursor: pointer;
    white-space: nowrap;
    background: #3b6fd9;
    border: 1px solid #e5e5e7;
    border-radius: 8px;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    font-size: 13px;
    font-weight: 500;
    transition: all 0.2s;
    display: flex;
  }
  .catalog-btn-nav:hover {
    color: #3b6fd9;
    background: #e5e5e5;
    border-color: #3b6fd9;
  }
  .bento-grid {
    grid-template-rows: repeat(2, auto);
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
    display: grid;
  }
  @media (width<=1024px) {
    .bento-grid {
      grid-template-columns: repeat(2, 1fr);
    }
  }
  @media (width<=640px) {
    .bento-grid {
      grid-template-columns: 1fr;
    }
  }
  .bento-item-large {
    grid-area: span 2 / span 2;
  }
  .bento-item-medium {
    grid-column: span 2;
  }
  .bento-item-small {
    grid-column: span 1;
  }
  @media (width<=640px) {
    .bento-item-large,
    .bento-item-medium,
    .bento-item-small {
      grid-area: span 1 / span 1;
    }
  }
  .category-card {
    border-radius: 1rem;
    position: relative;
    overflow: hidden;
  }
  .catalog-modal {
    z-index: 9999;
    pointer-events: none;
    opacity: 0;
    justify-content: center;
    align-items: center;
    padding: 1rem;
    transition: opacity 0.28s ease;
    display: flex;
    position: fixed;
    inset: 0;
  }
  /* Скрыто до открытия: без атрибута hidden модалка мелькает до загрузки site.css */
  .catalog-modal[hidden] {
    display: none !important;
  }
  .catalog-modal.active {
    pointer-events: auto;
    opacity: 1;
  }
  .catalog-modal-overlay {
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    background: linear-gradient(
      165deg,
      rgba(15, 23, 42, 0.55) 0%,
      rgba(30, 58, 95, 0.45) 100%
    );
    position: absolute;
    inset: 0;
  }
  .catalog-modal-content {
    z-index: 1;
    background: linear-gradient(180deg, #ffffff 0%, #fafbfc 100%);
    border: 1px solid rgba(226, 232, 240, 0.95);
    border-radius: 1.25rem;
    flex-direction: column;
    width: min(1024px, 96vw);
    max-height: 90vh;
    transition:
      transform 0.32s cubic-bezier(0.34, 1.56, 0.64, 1),
      box-shadow 0.32s ease;
    display: flex;
    position: relative;
    overflow: hidden;
    transform: scale(0.94) translateY(12px);
    box-shadow:
      0 0 0 1px rgba(255, 255, 255, 0.6) inset,
      0 4px 6px -1px rgba(15, 23, 42, 0.06),
      0 25px 50px -12px rgba(15, 23, 42, 0.2),
      0 0 0 1px rgba(59, 111, 217, 0.06);
  }
  .catalog-modal-content::before {
    content: "";
    background: linear-gradient(90deg, #3b6fd9 0%, #60a5fa 50%, #2a4a8c 100%);
    height: 4px;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
  }
  .catalog-modal.active .catalog-modal-content {
    transform: scale(1) translateY(0);
  }
  .catalog-modal-header {
    background: linear-gradient(135deg, #f8fafc 0%, #ffffff 55%);
    border-bottom: 1px solid #e8ecf1;
    flex-shrink: 0;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: 1.35rem 1.5rem 1.25rem;
    display: flex;
  }
  .catalog-modal-header h2 {
    margin: 0;
    color: #0f172a;
    letter-spacing: -0.03em;
    font-size: 1.375rem;
    font-weight: 700;
    line-height: 1.25;
  }
  .catalog-modal-close {
    cursor: pointer;
    color: #64748b;
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
    border-radius: 9999px;
    flex-shrink: 0;
    justify-content: center;
    align-items: center;
    width: 2.75rem;
    height: 2.75rem;
    padding: 0;
    transition:
      color 0.2s ease,
      background 0.2s ease,
      border-color 0.2s ease,
      transform 0.2s ease;
    display: flex;
  }
  .catalog-modal-close:hover {
    color: #3b6fd9;
    background: #eff6ff;
    border-color: #bfdbfe;
    transform: scale(1.05);
  }
  .catalog-modal-search {
    flex-shrink: 0;
    padding: 0.75rem 1.5rem 1rem;
    border-bottom: 1px solid #e8ecf1;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    position: relative;
    z-index: 5;
  }
  .catalog-modal-search__inner {
    position: relative;
    display: flex;
    align-items: center;
  }
  .catalog-modal-search__icon {
    position: absolute;
    left: 0.875rem;
    color: #94a3b8;
    pointer-events: none;
  }
  .catalog-modal-search__input {
    width: 100%;
    box-sizing: border-box;
    padding: 0.65rem 2.75rem 0.65rem 2.65rem;
    font-size: 0.9375rem;
    border: 1px solid #e2e8f0;
    border-radius: 9999px;
    background: #fff;
    color: #0f172a;
    outline: none;
    transition:
      border-color 0.2s ease,
      box-shadow 0.2s ease;
  }
  .catalog-modal-search__input::placeholder {
    color: #94a3b8;
  }
  .catalog-modal-search__input:hover {
    border-color: #cbd5e1;
  }
  .catalog-modal-search__input:focus {
    border-color: #3b6fd9;
    box-shadow: 0 0 0 3px rgba(59, 111, 217, 0.15);
  }
  .catalog-modal-search__clear {
    position: absolute;
    right: 0.35rem;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    border: none;
    border-radius: 9999px;
    color: #64748b;
    background: #f1f5f9;
    cursor: pointer;
    transition:
      color 0.15s ease,
      background 0.15s ease;
  }
  .catalog-modal-search__clear:hover {
    color: #0f172a;
    background: #e2e8f0;
  }
  .catalog-modal-no-results {
    margin: 0 0 1rem;
    padding: 0.75rem 1rem;
    font-size: 0.9375rem;
    color: #64748b;
    text-align: center;
    background: #f8fafc;
    border: 1px dashed #e2e8f0;
    border-radius: 0.75rem;
  }
  .catalog-modal-body {
    padding: 1.5rem 1.5rem 1.75rem;
    overflow-y: auto;
    scrollbar-color: #cbd5e1 #f1f5f9;
    scrollbar-width: thin;
  }
  .catalog-modal-body::-webkit-scrollbar {
    width: 9px;
  }
  .catalog-modal-body::-webkit-scrollbar-track {
    background: #f1f5f9;
    border-radius: 6px;
  }
  .catalog-modal-body::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 6px;
  }
  .catalog-modal-body::-webkit-scrollbar-thumb:hover {
    background: #94a3b8;
  }
  .catalog-grid {
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1.25rem 1.5rem;
    align-items: start;
    display: grid;
  }
  @media (width <= 640px) {
    .catalog-grid {
      grid-template-columns: 1fr;
    }
  }
  .catalog-category {
    background: #fff;
    border: 1px solid #e8ecf1;
    border-radius: 1rem;
    padding: 1.25rem 1.25rem 1.1rem;
    transition:
      border-color 0.25s ease,
      box-shadow 0.25s ease,
      transform 0.22s ease;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
  }
  .catalog-category.catalog-category--filtered-out {
    display: none;
  }
  .catalog-category:hover {
    border-color: #c7d7f0;
    box-shadow:
      0 10px 40px -12px rgba(59, 111, 217, 0.18),
      0 4px 12px -4px rgba(15, 23, 42, 0.06);
    transform: translateY(-2px);
  }
  .catalog-category-head {
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    display: flex;
  }
  .catalog-category-head .catalog-category-title {
    flex: 1;
    min-width: 0;
    margin-bottom: 0;
  }
  .catalog-category-toggle {
    box-sizing: border-box;
    color: #3b6fd9;
    cursor: pointer;
    flex-shrink: 0;
    width: 2.375rem;
    height: 2.375rem;
    margin: 0;
    padding: 0;
    border: 1px solid #e2e8f0;
    border-radius: 0.5rem;
    background: #fff;
    align-items: center;
    justify-content: center;
    transition:
      background 0.2s ease,
      border-color 0.2s ease,
      color 0.2s ease,
      box-shadow 0.2s ease;
    display: inline-flex;
  }
  .catalog-category-toggle:hover {
    border-color: #93c5fd;
    background: #f8fafc;
    color: #2563eb;
  }
  .catalog-category-toggle:focus-visible {
    outline: 2px solid #3b6fd9;
    outline-offset: 2px;
  }
  .catalog-category-toggle-icon {
    transition: transform 0.22s ease;
  }
  .catalog-category.is-open .catalog-category-toggle {
    border-color: #93c5fd;
    background: linear-gradient(
      145deg,
      rgba(59, 111, 217, 0.1) 0%,
      rgba(42, 74, 140, 0.06) 100%
    );
    color: #1d4ed8;
  }
  .catalog-category.is-open .catalog-category-toggle-icon {
    transform: rotate(45deg);
  }
  .catalog-category-sale {
    background: linear-gradient(135deg, #fffbeb 0%, #ffffff 100%);
    border-color: #fde68a;
  }
  .catalog-category-sale:hover {
    border-color: #fbbf24;
    box-shadow:
      0 10px 40px -12px rgba(245, 158, 11, 0.2),
      0 4px 12px -4px rgba(15, 23, 42, 0.06);
  }
  .catalog-category-title {
    color: #0f172a;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.875rem;
    padding: 0.35rem 0;
    font-size: 0.9375rem;
    font-weight: 700;
    line-height: 1.35;
    text-decoration: none;
    display: flex;
  }
  .catalog-category-title:hover {
    color: #3b6fd9;
  }
  .catalog-category-title svg,
  .catalog-category-title .catalog-category-glyph {
    color: #3b6fd9;
    flex-shrink: 0;
    padding: 0.45rem;
    border-radius: 0.75rem;
    min-width: 2.75rem;
    min-height: 2.75rem;
    box-sizing: border-box;
    background: linear-gradient(
      145deg,
      rgba(59, 111, 217, 0.14) 0%,
      rgba(42, 74, 140, 0.08) 100%
    );
    box-shadow: 0 1px 2px rgba(59, 111, 217, 0.08);
  }
  .catalog-category-title .catalog-category-glyph path,
  .catalog-category-title .catalog-category-glyph line,
  .catalog-category-title .catalog-category-glyph circle,
  .catalog-category-title .catalog-category-glyph ellipse,
  .catalog-category-title .catalog-category-glyph rect,
  .catalog-category-title .catalog-category-glyph polyline {
    stroke-width: 2.1;
  }
  .catalog-category-sale .catalog-category-title {
    color: #dc2626;
  }
  .catalog-category-sale .catalog-category-title:hover {
    color: #b91c1c;
  }
  .catalog-category-sale .catalog-category-title svg {
    color: #ea580c;
    background: linear-gradient(
      145deg,
      rgba(234, 88, 12, 0.18) 0%,
      rgba(220, 38, 38, 0.1) 100%
    );
    box-shadow: 0 1px 2px rgba(234, 88, 12, 0.12);
  }
  .catalog-category-title.catalog-category-title--new {
    color: #047857;
  }
  .catalog-category-title.catalog-category-title--new:hover {
    color: #065f46;
  }
  .catalog-category-title.catalog-category-title--new svg {
    color: #047857;
    background: linear-gradient(
      145deg,
      rgba(4, 120, 87, 0.16) 0%,
      rgba(6, 95, 70, 0.1) 100%
    );
    box-shadow: 0 1px 2px rgba(4, 120, 87, 0.12);
  }
  .catalog-category-title.catalog-category-title--special-price {
    color: #b91c1c;
  }
  .catalog-category-title.catalog-category-title--special-price:hover {
    color: #991b1b;
  }
  .catalog-category-title.catalog-category-title--special-price svg {
    color: #b91c1c;
    background: linear-gradient(
      145deg,
      rgba(185, 28, 28, 0.14) 0%,
      rgba(153, 27, 27, 0.08) 100%
    );
    box-shadow: 0 1px 2px rgba(185, 28, 28, 0.1);
  }
  .catalog-category--expandable .catalog-category-links:not([hidden]) {
    margin-top: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px solid #eef2f6;
  }
  .catalog-category-links {
    flex-direction: column;
    gap: 0.125rem;
    display: flex;
  }
  .catalog-category-links a {
    color: #475569;
    border-radius: 0.5rem;
    border-left: 3px solid transparent;
    align-items: center;
    min-height: 2.25rem;
    margin-left: -0.25rem;
    padding: 0.45rem 0.65rem 0.45rem 0.75rem;
    font-size: 0.875rem;
    line-height: 1.4;
    text-decoration: none;
    transition:
      color 0.2s ease,
      background 0.2s ease,
      border-color 0.2s ease,
      transform 0.2s ease;
    display: flex;
  }
  .catalog-category-links a:hover {
    color: #3b6fd9;
    background: linear-gradient(
      90deg,
      rgba(59, 111, 217, 0.1) 0%,
      rgba(59, 111, 217, 0.02) 100%
    );
    border-left-color: #3b6fd9;
    transform: translateX(2px);
  }

  /* Строка поиска (не в шапке: главная и страница категории) */
  .catalog-search-bar {
    box-sizing: border-box;
    width: 100%;

    margin-bottom: 1.25rem;
    position: relative;
  }
  .page-category .category-main-panel .catalog-search-bar {
    max-width: none;
  }
  .catalog-search-bar__icon {
    pointer-events: none;
    color: #d0d2d5;
    width: 1.25rem;
    height: 1.25rem;
    position: absolute;
    top: 50%;
    left: 1rem;
    transform: translateY(-50%);
  }
  .catalog-search-bar__input {
    box-sizing: border-box;
    width: 100%;
    padding: 0.75rem 1rem 0.75rem 3rem;
    border: 1px solid #e5e7eb;
    border-radius: 0.75rem;
    background: #ffffff;
    font-family: inherit;
    font-size: 0.875rem;
    transition:
      background 0.2s ease,
      border-color 0.2s ease;
  }
  .catalog-search-bar__input::placeholder {
    color: #b6bac1;
  }
  .catalog-search-bar__input:hover {
    background: #ffffff;
  }
  .catalog-search-bar__input:focus {
    outline: none;
    border-color: var(--blue-300);
    background: #fff;
  }

  .global-search-results {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    right: 0;
    z-index: 35;
    max-height: 360px;
    overflow: auto;
    border: 1px solid #d9e1eb;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 16px 34px rgba(15, 23, 42, 0.12);
  }
  .catalog-modal-search .global-search-results {
    top: calc(100% + 6px);
  }
  .global-search-results__list {
    list-style: none;
    margin: 0;
    padding: 6px;
  }
  .global-search-results__item {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    padding: 8px;
    border-radius: 10px;
    text-decoration: none;
    color: inherit;
  }
  .global-search-results__item:hover {
    background: #f4f8ff;
  }
  .global-search-results__img {
    width: 42px;
    height: 42px;
    border-radius: 8px;
    object-fit: cover;
    background: #eef2f6;
    flex: 0 0 42px;
  }
  .global-search-results__img--placeholder {
    display: block;
  }
  .global-search-results__body {
    min-width: 0;
    display: block;
  }
  .global-search-results__type {
    display: block;
    font-size: 11px;
    color: #5e7699;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 2px;
  }
  .global-search-results__name {
    display: block;
    font-size: 14px;
    color: #1f2937;
    line-height: 1.35;
  }
  .global-search-results__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    font-size: 12px;
    color: #64748b;
    margin-top: 4px;
  }
  .global-search-results mark {
    background: #fff3b8;
    color: #111827;
    padding: 0 2px;
    border-radius: 3px;
  }
  .global-search-results__empty {
    margin: 0;
    padding: 12px;
    text-align: center;
    color: #64748b;
    font-size: 14px;
  }

  /* Блок каталога на главной (полная ширина, стилистика модального окна) */
  .home-catalog-section {
    width: 100%;
    background: linear-gradient(180deg, #f1f5f9 0%, #e8eef5 40%, #f8fafc 100%);
    padding: 2.75rem 0 3.5rem;
    position: relative;
  }
  .home-catalog-section::before {
    content: "";
    background: linear-gradient(
      90deg,
      transparent 0%,
      rgba(59, 111, 217, 0.2) 50%,
      transparent 100%
    );
    height: 1px;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
  }
  .home-catalog-section__inner {
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    margin: 0 auto;
    padding-left: max(1rem, env(safe-area-inset-left));
    padding-right: max(1rem, env(safe-area-inset-right));
  }
  @media (width >= 1024px) {
    .home-catalog-section__inner {
      padding-left: max(1.5rem, env(safe-area-inset-left));
      padding-right: max(1.5rem, env(safe-area-inset-right));
    }
  }
  .home-catalog-section__header {
    text-align: left;
    max-width: 42rem;
    margin: 0 0 1.75rem;
    padding: 0 0.25rem;
  }
  .home-catalog-section__title,
  .home-catalog-section__lead {
    text-align: left;
  }
  .home-catalog-section__title {
    margin: 0 0 0.5rem;
    color: #0f172a;
    letter-spacing: -0.03em;
    font-size: clamp(1.5rem, 2.8vw, 1.875rem);
    font-weight: 700;
    line-height: 1.2;
  }
  .home-catalog-section__lead {
    margin: 0;
    color: #64748b;
    font-size: 0.9375rem;
    line-height: 1.55;
  }
  .home-catalog-section__panel {
    box-sizing: border-box;
    background: linear-gradient(180deg, #ffffff 0%, #fafbfc 100%);
    border: 1px solid rgba(226, 232, 240, 0.95);
    border-radius: 1.25rem;
    width: 100%;
    max-width: none;
    margin: 0 auto;
    padding: 1.6rem 1.25rem 1.75rem;
    position: relative;
    overflow: hidden;
    box-shadow:
      0 0 0 1px rgba(255, 255, 255, 0.65) inset,
      0 4px 6px -1px rgba(15, 23, 42, 0.06),
      0 25px 50px -12px rgba(15, 23, 42, 0.14),
      0 0 0 1px rgba(59, 111, 217, 0.06);
  }
  .home-catalog-section__panel::before {
    content: "";
    background: linear-gradient(90deg, #3b6fd9 0%, #60a5fa 50%, #2a4a8c 100%);
    height: 4px;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
  }
  .home-catalog-section__panel .catalog-grid {
    grid-template-columns: repeat(auto-fill, minmax(min(280px, 100%), 1fr));
    gap: 1.25rem 1.5rem;
    align-items: start;
  }

  .home-hero__overlay {
    background:
      radial-gradient(circle at 22% 28%, rgba(59, 111, 217, 0.18), rgba(59, 111, 217, 0) 54%),
      radial-gradient(circle at 70% 22%, rgba(42, 74, 140, 0.12), rgba(42, 74, 140, 0) 58%),
      linear-gradient(92deg, rgba(255, 255, 255, 0.92) 0%, rgba(255, 255, 255, 0.88) 52%, rgba(255, 255, 255, 0.16) 100%),
      linear-gradient(180deg, rgba(255, 255, 255, 0.48) 0%, rgba(255, 255, 255, 0.76) 72%, rgba(255, 255, 255, 0.92) 100%);
  }

  .home-hero-features {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 12px;
    max-width: 720px;
  }

  .home-hero-features__item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(148, 163, 184, 0.26);
    box-shadow:
      0 8px 18px rgba(15, 23, 42, 0.06),
      inset 0 1px 0 rgba(255, 255, 255, 0.78);
    -webkit-backdrop-filter: blur(10px) saturate(1.08);
    backdrop-filter: blur(10px) saturate(1.08);
  }

  .home-hero-features__icon {
    flex: 0 0 auto;
    align-self: center;
    width: 32px;
    height: 32px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--hero-feature-color, #3b6fd9);
    background: linear-gradient(
      180deg,
      color-mix(in srgb, var(--hero-feature-color, #3b6fd9) 18%, transparent) 0%,
      color-mix(in srgb, var(--hero-feature-color, #3b6fd9) 8%, transparent) 100%
    );
    border: 1px solid color-mix(in srgb, var(--hero-feature-color, #3b6fd9) 22%, transparent);
  }

  .home-hero-features__icon svg {
    width: 18px;
    height: 18px;
    display: block;
  }

  .home-hero-features__text {
    font-size: 0.95rem;
    line-height: 1.25;
    font-weight: 650;
    color: #1f2937;
  }

  .home-hero-features__item--blue { --hero-feature-color: #3b6fd9; }
  .home-hero-features__item--indigo { --hero-feature-color: #2a4a8c; }
  .home-hero-features__item--emerald { --hero-feature-color: #047857; }
  .home-hero-features__item--cyan { --hero-feature-color: #0891b2; }
  .home-hero-features__item--amber { --hero-feature-color: #b45309; }
  .home-hero-features__item--violet { --hero-feature-color: #6d28d9; }

  @media (max-width: 639.98px) {
    .home-hero-features {
      grid-template-columns: 1fr;
    }
    .home-hero-features__text {
      font-size: 0.92rem;
    }
  }
  @media (width <= 640px) {
    .home-catalog-section__panel .catalog-grid {
      grid-template-columns: 1fr;
    }
  }

  .hover-lift {
    transition:
      transform 0.3s,
      box-shadow 0.3s;
  }
  .hover-lift:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 25px -5px #0000001a;
  }
  .bg-gradient-blue {
    background: linear-gradient(135deg, #3b6fd9 0%, #2a4a8c 100%);
  }
  .top-bar-icon {
    color: var(--blue-500);
    flex-shrink: 0;
  }
  .top-bar-mail:hover .top-bar-mail__icon {
    color: var(--blue-700);
  }
  .top-bar-account {
    align-items: center;
    gap: 0.35rem;
    margin-left: 1.25rem;
    font-size: 0.875rem;
    display: inline-flex;
  }
  .top-bar-account__link {
    color: #6b7280;
    white-space: nowrap;
    text-decoration: none;
    align-items: center;
    gap: 0.35rem;
    transition: color 0.2s ease;
    display: inline-flex;
  }
  .top-bar-account__link:hover {
    color: var(--blue-500);
  }
  .top-bar-account__link:hover .top-bar-account__icon {
    color: var(--blue-700);
  }
  .top-bar-account__sep {
    color: #cbd5e1;
    user-select: none;
  }
  .top-bar-city-btn {
    border: none;
    background: transparent;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    color: #4b5563;
    font-weight: 500;
    cursor: pointer;
    transition: color 0.2s ease;
    padding: 0;
  }
  .top-bar-city-btn:hover {
    color: var(--blue-600);
  }
  .city-switcher-modal {
    z-index: 3100;
    position: fixed;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
  }
  .city-switcher-modal[hidden] {
    display: none;
  }
  .city-switcher-modal__overlay {
    border: none;
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.42);
    backdrop-filter: blur(2px);
    cursor: pointer;
  }
  .city-switcher-modal__dialog {
    position: relative;
    width: min(680px, 100%);
    max-height: min(84vh, 760px);
    overflow: hidden;
    border-radius: 20px;
    border: 1px solid rgba(59, 111, 217, 0.18);
    background: linear-gradient(180deg, #f8fbff 0%, #ffffff 100%);
    box-shadow: 0 20px 55px rgba(15, 23, 42, 0.24);
    display: flex;
    flex-direction: column;
  }
  .city-switcher-modal__close {
    border: none;
    background: transparent;
    color: #64748b;
    cursor: pointer;
    position: absolute;
    top: 0.8rem;
    right: 0.85rem;
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  .city-switcher-modal__close:hover {
    background: rgba(59, 111, 217, 0.1);
    color: var(--blue-700);
  }
  .city-switcher-modal__hero {
    border-bottom: 1px solid rgba(226, 232, 240, 0.9);
    padding: 0.9rem 1rem 0.75rem;
  }
  .city-switcher-modal__eyebrow {
    margin: 0 0 0.2rem;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 0.68rem;
    font-weight: 600;
  }
  .city-switcher-modal__hero h3 {
    margin: 0;
    color: #0f172a;
    font-size: 1.05rem;
    font-weight: 700;
  }
  .city-switcher-modal__list-wrap {
    overflow: auto;
    padding: 0.5rem;
  }
  .city-switcher-modal__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
    gap: 0.35rem;
  }
  .city-switcher-modal__item {
    display: block;
    text-decoration: none;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 0.55rem 0.65rem;
    background: #fff;
    transition: all 0.18s ease;
  }
  .city-switcher-modal__item:hover {
    border-color: rgba(59, 111, 217, 0.45);
    box-shadow: 0 6px 18px rgba(59, 111, 217, 0.12);
    transform: translateY(-1px);
  }
  .city-switcher-modal__item.is-current {
    border-color: rgba(59, 111, 217, 0.5);
    background: rgba(59, 111, 217, 0.08);
  }
  .city-switcher-modal__city {
    display: block;
    color: #0f172a;
    font-size: 0.9rem;
    font-weight: 600;
  }
  .city-switcher-modal__loading {
    grid-column: 1 / -1;
    padding: 0.75rem;
    text-align: center;
    color: #64748b;
    font-size: 0.875rem;
  }
  .header {
    position: relative;
    padding-top: 15px;
    overflow: hidden;
    background-color: #f8fbff;
    background-image: url('/theme-assets/images/hero-hinge-header.png');
    background-size: cover;
    background-position: 64% center;
    transition:
      background 0.3s,
      box-shadow 0.3s;
  }
  .header::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
      radial-gradient(
        ellipse at 56% 50%,
        rgba(255, 255, 255, 0.2) 0%,
        rgba(255, 255, 255, 0.3) 32%,
        rgba(255, 255, 255, 0.42) 56%,
        rgba(255, 255, 255, 0.56) 100%
      ),
      linear-gradient(92deg, rgba(255, 255, 255, 0.42) 0%, rgba(255, 255, 255, 0.36) 100%);
    pointer-events: none;
    z-index: 0;
  }
  .header > .container {
    position: relative;
    z-index: 1;
  }
  .header.scrolled {
    -webkit-backdrop-filter: blur(20px);
    backdrop-filter: blur(20px);
    background-color: #ffffffeb;
    box-shadow: 0 4px 20px #0000000f;
  }
  @media (max-width: 1023px) {
    .header {
      background-position: 70% center;
    }
    .header-main-row {
      grid-template-columns: minmax(0, 1fr);
      gap: 0.65rem;
    }
    .header-main-right {
      justify-self: stretch;
      justify-content: flex-end;
      flex-wrap: wrap;
      gap: 0.55rem;
    }
    .header-contact-stack {
      order: 2;
      align-items: stretch;
      flex: 1 1 100%;
      min-width: 0;
    }
    .header-phone-block {
      width: 100%;
      max-width: 100%;
    }
    .header-phone-callback {
      justify-content: flex-start;
    }
    .header-phone-callback__hint {
      text-align: left;
    }
    .logo {
      gap: 10px;
      min-height: 52px;
    }
    .logo > img {
      width: 44px !important;
      height: 52px !important;
    }
    .logo-title-line,
    .logo-subtitle {
      display: none;
    }
    .scroll-to-top {
      z-index: 1300;
      bottom: calc(82px + env(safe-area-inset-bottom, 0px));
    }
  }
  @media (max-width: 700px) {
    .header-phone__text {
      font-size: 0.95rem;
    }
  }
  .scroll-to-top {
    z-index: 90;
    cursor: pointer;
    color: #fff;
    background: linear-gradient(145deg, #3b6fd9 0%, #2a4a8c 100%);
    border: none;
    border-radius: 50%;
    justify-content: center;
    align-items: center;
    width: 3rem;
    height: 3rem;
    padding: 0;
    display: flex;
    position: fixed;
    bottom: max(1.25rem, env(safe-area-inset-bottom, 0px));
    right: max(1.25rem, env(safe-area-inset-right, 0px));
    box-shadow: 0 4px 14px rgba(42, 74, 140, 0.35);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(12px);
    transition:
      opacity 0.28s ease,
      transform 0.28s ease,
      visibility 0.28s;
  }
  .scroll-to-top.scroll-to-top--visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
  }
  .scroll-to-top:hover {
    filter: brightness(1.06);
  }
  .scroll-to-top:focus-visible {
    outline: 2px solid var(--blue-300);
    outline-offset: 2px;
  }
  .cart-badge-bump {
    animation: cartBadgeBump .28s ease;
  }
  @keyframes cartBadgeBump {
    0% { transform: scale(1); }
    50% { transform: scale(1.28); }
    100% { transform: scale(1); }
  }
  @media (prefers-reduced-motion: reduce) {
    .scroll-to-top {
      transition-duration: 0.05s;
    }
  }
  .logo {
    color: inherit;
    align-items: center;
    gap: 12px;
    text-decoration: none;
    display: flex;
  }
  .logo > img {
    display: block;
    flex-shrink: 0;
    align-self: center;
    transform: translateY(0px);
    box-shadow: none;
  }
  .logo > div {
    min-width: 0;
  }
  .logo-title-line {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.12rem;
    line-height: 1;
    width: fit-content;
    max-width: 100%;
  }
  .logo-text-region {
    flex-shrink: 0;
    font-size: 0.6rem;
    font-weight: 600;
    color: #4061a6;
    line-height: 0.75;
    letter-spacing: 0.03em;
    margin: 0 0 -6px 0;
    font-family: "Inter", Arial, sans-serif;
    white-space: nowrap;
  }
  .logo-text {
    color: #4061a6;
    font-size: 1.8rem;
    line-height: 1.05;
    font-family: "PizzaHutCYR", "Inter", Arial, sans-serif;
    letter-spacing: 0.02em;
  }
  .logo-text--brand {
    display: inline-flex;
    align-items: center;
    gap: 0.22rem;
    white-space: nowrap;
    letter-spacing: 0.01em;
  }
  .logo-brand-main {
    color: #274b90;
    font-weight: 700;
    text-shadow: none;
  }
  .logo-brand-divider {
    color: #64748b;
    font-weight: 600;
    transform: translateY(0);
  }
  .logo-brand-accent {
    color: #3b82f6;
    font-family: "Inter", Arial, sans-serif;
    font-size: 0.64rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    line-height: 1;
    padding: 0;
    border-radius: 0;
    background: transparent;
    border: 0;
  }
  .logo-subtitle {
    margin: 0px 0 0 2px;
    color: #29323d;
    font-size: 0.7rem;
    background: rgba(255, 255, 255, 0.92);
    padding: 0.1rem 0.4rem 0.14rem 0.4rem;
    border-radius: 20px;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.08);
  }
  .logo-subtitle2 {
    color: #d8d9da;
    margin: -2px 0 0 3px;
    font-size: 0.75rem;
  }
  /* Главная строка шапки: лого | блок справа (телефон + иконки) */
  .header-main-row {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.75rem 1rem;
    width: 100%;
    display: grid;
  }
  .header-main-left {
    justify-self: start;
    min-width: 0;
  }
  .header-main-center {
    justify-self: center;
  }
  .header-main-right {
    justify-self: end;
    align-items: center;
    display: flex;
    gap: 0.45rem;
  }
  .header-contact-stack {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0;
  }
  .header-phone-block {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: fit-content;
    max-width: 100%;
  }
  .header-phone-callback {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.35rem 0.5rem;
    width: 100%;
    box-sizing: border-box;
    margin-top: 0.4rem;
    padding-top: 0;
    border-top: none;
  }
  .header-phone-callback__hint {
    font-size: 0.75rem;
    color: #64748b;
    line-height: 1.25;
    text-align: right;
  }
  .header-phone-callback__btn {
    font-size: 0.6875rem;
    font-weight: 600;
    padding: 0.22rem 0.55rem;
    border-radius: 999px;
    border: 1px solid rgba(59, 111, 217, 0.45);
    background: #fff;
    color: var(--blue-500);
    cursor: pointer;
    line-height: 1.2;
    white-space: nowrap;
    transition:
      background 0.15s ease,
      border-color 0.15s ease,
      color 0.15s ease;
  }
  .header-phone-callback__btn:hover {
    background: rgba(59, 111, 217, 0.08);
    border-color: var(--blue-500);
    color: var(--blue-700);
  }
  /* Иконки избранного и корзины: +30% к базовым w-5/h-5; бейджи — как раньше (1.25rem) */
  .header-actions__icon {
    width: 1.625rem;
    height: 1.625rem;
    display: block;
  }
  .header-actions__badge {
    width: 1.25rem;
    height: 1.25rem;
    font-size: 0.75rem;
    line-height: 1;
  }
  .header-phone__inner {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    gap: 0;
    padding: 0.3rem 0.4rem 0.4rem 0.85rem;
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
    border-radius: 12px;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
    transition:
      border-color 0.2s ease,
      box-shadow 0.2s ease,
      background 0.2s ease;
    box-sizing: border-box;
    min-width: 0;
    max-width: 100%;
  }
  .header-phone__main {
    text-decoration: none;
    display: flex;
    flex-direction: row-reverse;
    align-items: center;
    gap: 0.625rem;
    align-self: flex-end;
    width: max-content;
    max-width: 100%;
    white-space: nowrap;
    -webkit-tap-highlight-color: transparent;
  }
  .header-phone__inner:hover {
    background: #fff;
    box-shadow: 0 2px 10px rgba(59, 111, 217, 0.14);
  }
  .header-phone__glyph {
    background: linear-gradient(145deg, #3b6fd9 0%, #2a4a8c 100%);
    border-radius: 50%;
    flex-shrink: 0;
    justify-content: center;
    align-items: center;
    width: 2.125rem;
    height: 2.125rem;
    display: flex;
  }
  .header-phone__glyph svg {
    color: #fff;
  }
  .header-phone__text {
    color: #0f172a;
    padding-right: 0.15rem;
    font-size: 1.0625rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.02em;
    line-height: 1.2;
  }
  .header-phone__main:hover .header-phone__text {
    color: var(--blue-700);
  }
  .header-phone__content {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-end;
    line-height: 1.1;
  }
  .header-phone__email {
    color: #64748b;
    font-size: 0.8rem;
    margin-top: 0.22rem;
  }
  .header-phone__main:hover .header-phone__email {
    color: var(--blue-700);
  }
  @media (max-width: 639px) {
    .header-phone__inner {
      padding: 0.3rem 0.55rem 0.4rem 0.35rem;
    }
    .header-phone__main {
      gap: 0.45rem;
    }
    .header-phone__glyph {
      width: 1.875rem;
      height: 1.875rem;
    }
    .header-phone__glyph svg {
      width: 15px;
      height: 15px;
    }
    .header-phone__text {
      font-size: 0.875rem;
      letter-spacing: 0;
    }
    .header-contact-stack {
      gap: 0;
    }
    .header-phone__email {
      display: none;
    }
  }
  .nav-more {
    display: none !important;
  }
  .nav-more.visible {
    display: flex !important;
  }
  /* Полоса под шапкой: слева ссылки | справа «Каталог» — лёгкое матовое стекло (вторая итерация) */
  .nav-wrapper .nav-secondary-bar {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.75rem 1rem;
    width: 100%;
    display: grid;
    padding: 6px 15px;
    border-radius: 11px;
    position: relative;
    background-color: rgba(255, 255, 255, 0.48);
    background-image: linear-gradient(
      118deg,
      rgba(59, 111, 217, 0.1) 0%,
      rgba(255, 255, 255, 0.12) 42%,
      rgba(241, 245, 249, 0.22) 100%
    );
    -webkit-backdrop-filter: blur(12px) saturate(1.08);
    backdrop-filter: blur(12px) saturate(1.08);
    border: 1px solid rgba(255, 255, 255, 0.72);
    border-left: 3px solid rgba(130, 157, 212, 0.58);
    border-right: 3px solid rgba(130, 157, 212, 0.58);
    box-shadow:
      0 4px 22px rgba(15, 23, 42, 0.08),
      0 2px 6px rgba(59, 111, 217, 0.07),
      inset 0 1px 0 rgba(255, 255, 255, 0.82);
  }
  @supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    .nav-wrapper .nav-secondary-bar {
      background-color: #fff;
      background-image: none;
      border-left-color: #829dd4;
      border-right-color: #829dd4;
      box-shadow: 0 6px 16px rgba(15, 23, 42, 0.14), 0 2px 6px rgba(59, 111, 217, 0.12);
    }
  }
  .nav-wrapper .nav-secondary-bar__col--left {
    justify-self: start;
    min-width: 0;
  }
  .nav-wrapper .nav-secondary-bar__col--right {
    justify-self: end;
    align-items: center;
    gap: 0.8rem;
    display: flex;
  }
  .nav-wrapper .nav-secondary-promo {
    align-items: center;
    gap: 0.3rem;
    display: inline-flex;
  }
  .nav-wrapper .nav-secondary-promo__sep {
    background: linear-gradient(180deg, #0000, #cbd5e1 20%, #cbd5e1 80%, #0000);
    flex-shrink: 0;
    width: 1px;
    height: 1rem;
  }
  .nav-wrapper .nav-secondary-promo__link {
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-decoration: none;
    border-radius: 0.5rem;
    padding: 0.35rem 0.5rem;
    transition:
      background 0.2s ease,
      box-shadow 0.2s ease,
      transform 0.2s ease;
  }
  .nav-wrapper .nav-secondary-promo__link--sale {
    color: #b91c1c;
    background: linear-gradient(180deg, #fff5f5 0%, #fee2e2 100%);
    border: 1px solid #fecaca;
    box-shadow: 0 1px 2px rgba(185, 28, 28, 0.08);
  }
  .nav-wrapper .nav-secondary-promo__link--sale:hover {
    background: linear-gradient(180deg, #fef2f2 0%, #fecaca 100%);
    box-shadow: 0 2px 8px rgba(185, 28, 28, 0.15);
    transform: translateY(-1px);
  }
  .nav-wrapper .nav-secondary-promo__link--new {
    color: #047857;
    background: linear-gradient(180deg, #f0fdf4 0%, #d1fae5 100%);
    border: 1px solid #a7f3d0;
    box-shadow: 0 1px 2px rgba(4, 120, 87, 0.08);
  }
  .nav-wrapper .nav-secondary-promo__link--new:hover {
    background: linear-gradient(180deg, #ecfdf5 0%, #a7f3d0 100%);
    box-shadow: 0 2px 8px rgba(4, 120, 87, 0.15);
    transform: translateY(-1px);
  }
  /* Ссылки под шапкой (partials без tailwind gap в бандле) */
  .nav-wrapper .nav-secondary-links {
    flex-wrap: wrap;
    align-items: center;
    column-gap: 0.75rem;
    row-gap: 0.5rem;
    display: flex;
  }
  .nav-wrapper .nav-secondary-links--right {
    column-gap: 0.9rem;
    row-gap: 0;
    flex-wrap: nowrap;
  }
  .nav-wrapper .nav-secondary-links--right .nav-secondary-links__item {
    padding: 0.2rem 0;
    font-weight: 700;
  }
  .nav-wrapper .nav-secondary-links__item {
    color: #475569;
    align-items: center;
    gap: 0.4rem;
    padding: 0.35rem 0;
    font-size: 0.875rem;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
    transition: color 0.2s ease;
    display: inline-flex;
  }
  .nav-wrapper .nav-secondary-links__item:hover {
    color: var(--blue-500);
  }
  .nav-wrapper .nav-secondary-links__item--sale {
    color: #b91c1c;
  }
  .nav-wrapper .nav-secondary-links__item--new {
    color: #047857;
  }
  .nav-wrapper .nav-secondary-links__chevron {
    color: #3b6fd9;
    flex-shrink: 0;
    justify-content: center;
    align-items: center;
    display: inline-flex;
    transition: color 0.2s ease;
  }
  .nav-wrapper .nav-secondary-links__chevron svg {
    display: block;
  }
  .nav-wrapper .nav-secondary-links__item:hover .nav-secondary-links__chevron {
    color: var(--blue-500);
  }
  .breadcrumb {
    color: #666;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    padding: 1.5rem 0;
    font-size: 0.875rem;
    display: flex;
  }
  .breadcrumb a {
    color: var(--blue-500);
    text-decoration: none;
  }
  .breadcrumb a:hover {
    text-decoration: underline;
  }
  .breadcrumb svg {
    opacity: 0.5;
    flex-shrink: 0;
  }
  .product-page {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2rem;
    padding-bottom: 3rem;
    display: grid;
  }
  @media (width<=1023px) {
    .product-page {
      grid-template-columns: 1fr;
    }
  }
  .product-gallery {
    flex-direction: column;
    gap: 1rem;
    display: flex;
  }
  .product-gallery--strip {
    flex-direction: row;
    align-items: stretch;
    gap: 1rem;
  }
  @media (width<=639px) {
    .product-gallery--strip {
      flex-direction: column;
    }
    .gallery-main-wrap {
      order: -1;
    }
  }
  .gallery-strip-wrap {
    flex-shrink: 0;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    width: 5.75rem;
    min-height: 0;
    align-self: stretch;
    display: flex;
  }
  @media (width<=639px) {
    .gallery-strip-wrap {
      flex-direction: row;
      width: 100%;
      max-width: 100%;
    }
  }
  .gallery-strip-nav {
    cursor: pointer;
    color: #64748b;
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    flex-shrink: 0;
    justify-content: center;
    align-items: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    display: flex;
  }
  .gallery-strip-nav:hover {
    color: var(--blue-500);
    background: #eff6ff;
    border-color: #bfdbfe;
  }
  @media (width<=639px) {
    .gallery-strip-nav--prev svg {
      transform: rotate(-90deg);
    }
    .gallery-strip-nav--next svg {
      transform: rotate(-90deg);
    }
  }
  .gallery-strip {
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: #cbd5e1 #f1f5f9;
    overscroll-behavior: contain;
    flex-direction: column;
    gap: 0.5rem;
    width: 100%;
    min-height: 0;
    flex: 1 1 auto;
    padding: 2px;
    overflow-x: hidden;
    overflow-y: auto;
    display: flex;
  }
  @media (width<=639px) {
    .gallery-strip {
      flex: 0 1 auto;
      flex-direction: row;
      order: 0;
      max-height: none;
      max-width: 100%;
      padding-bottom: 4px;
      overflow-x: auto;
      overflow-y: hidden;
    }
    .gallery-strip-wrap .gallery-strip-nav--prev {
      order: -1;
    }
    .gallery-strip-wrap .gallery-strip-nav--next {
      order: 1;
    }
  }
  .gallery-strip__item {
    cursor: pointer;
    text-align: center;
    background: none;
    border: none;
    border-radius: 10px;
    flex-shrink: 0;
    padding: 0;
    transition:
      box-shadow 0.2s,
      transform 0.15s;
  }
  .gallery-strip__thumb {
    background: #f5f5f7;
    border: 2px solid #e5e7eb;
    border-radius: 10px;
    width: 4.5rem;
    height: 4.5rem;
    margin: 0 auto;
    transition: border-color 0.2s;
    display: block;
    overflow: hidden;
  }
  .gallery-strip__thumb img {
    object-fit: contain;
    width: 100%;
    height: 100%;
    display: block;
  }
  .gallery-strip__label {
    color: #64748b;
    margin-top: 0.2rem;
    font-size: 0.625rem;
    font-weight: 600;
    line-height: 1.15;
    display: block;
  }
  .gallery-strip__item:hover .gallery-strip__thumb {
    border-color: #cbd5e1;
  }
  .gallery-strip__item.active .gallery-strip__thumb {
    border-color: var(--blue-500);
    box-shadow: 0 0 0 1px var(--blue-500);
  }
  .gallery-strip__item--na .gallery-strip__thumb {
    opacity: 0.3;
  }
  .gallery-main-wrap {
    flex: 1;
    min-width: 0;
  }
  .gallery-main {
    aspect-ratio: 1;
    background: #f5f5f7;
    border-radius: 12px;
    position: relative;
    overflow: hidden;
  }
  .gallery-main img {
    object-fit: contain;
    width: 100%;
    height: 100%;
    transition: opacity 0.2s;
    display: block;
  }
  .gallery-watermark {
    z-index: 1;
    pointer-events: none;
    -webkit-backdrop-filter: blur(0.5px);
    backdrop-filter: blur(0.5px);
    background: rgba(248, 250, 252, 0.45);
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 0.2rem;
    padding: 1rem;
    display: flex;
    position: absolute;
    inset: 0;
  }
  .gallery-watermark[hidden] {
    display: none !important;
  }
  .gallery-watermark__text {
    color: rgba(30, 41, 59, 0.72);
    text-align: center;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    text-shadow: 0 1px 0 #fff;
    font-size: clamp(0.75rem, 2.8vw, 1.125rem);
    font-weight: 800;
    line-height: 1.2;
  }
  .gallery-watermark__sub {
    color: rgba(71, 85, 105, 0.85);
    text-align: center;
    font-size: clamp(0.6875rem, 2.2vw, 0.9375rem);
    font-weight: 600;
    line-height: 1.25;
  }
  .gallery-badge {
    z-index: 2;
    border-radius: 8px;
    padding: 8px 14px;
    font-size: 13px;
    font-weight: 700;
    position: absolute;
    top: 12px;
    left: 12px;
  }
  .gallery-badge.hit {
    color: #1e1e1e;
    background: linear-gradient(135deg, #fbbf24 0%, #f59e0b 100%);
  }
  .gallery-actions {
    z-index: 2;
    gap: 8px;
    display: flex;
    position: absolute;
    top: 12px;
    right: 12px;
  }
  .gallery-action-btn {
    cursor: pointer;
    color: #444;
    background: #fffffff2;
    border: none;
    border-radius: 10px;
    justify-content: center;
    align-items: center;
    width: 40px;
    height: 40px;
    display: flex;
    box-shadow: 0 2px 8px #00000014;
  }
  .gallery-action-btn:hover {
    color: var(--blue-500);
  }
  .product-info {
    min-width: 0;
  }
  .product-sku {
    color: #888;
    margin-bottom: 0.5rem;
    font-size: 0.8125rem;
  }
  .product-title {
    color: var(--anthracite);
    margin: 0 0 1rem;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.2;
  }
  .product-rating {
    color: #666;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1.25rem;
    font-size: 0.875rem;
    display: flex;
  }
  .stars {
    color: #fbbf24;
    gap: 2px;
    display: flex;
  }
  .stars svg {
    display: block;
  }
  .variant-alert {
    background: #fff7ed;
    border: 1px solid #fed7aa;
    border-radius: 12px;
    gap: 12px;
    margin-bottom: 1rem;
    padding: 14px 16px;
    display: flex;
  }
  .variant-alert.hidden {
    display: none;
  }
  .variant-alert-icon {
    color: #ea580c;
    flex-shrink: 0;
  }
  .variant-alert-text strong {
    color: #9a3412;
    margin-bottom: 4px;
    display: block;
  }
  .variant-alert-text span {
    color: #c2410c;
    font-size: 0.875rem;
  }
  .product-variants {
    margin-bottom: 1.25rem;
  }
  .variant-label {
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
    font-weight: 600;
    display: flex;
  }
  .variant-required {
    color: #dc2626;
    font-size: 0.75rem;
    font-weight: 500;
  }
  .variant-options {
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 10px;
    display: grid;
  }
  .variant-card {
    cursor: pointer;
    background: #fff;
    border: 2px solid #e5e5e7;
    border-radius: 12px;
    transition:
      border-color 0.2s,
      box-shadow 0.2s;
    display: block;
    position: relative;
    overflow: hidden;
  }
  .variant-card:hover:not(.unavailable) {
    border-color: var(--blue-300);
  }
  .variant-card.selected {
    border-color: var(--blue-500);
    box-shadow: 0 0 0 1px var(--blue-500);
  }
  .variant-card.unavailable {
    opacity: 0.55;
    cursor: not-allowed;
  }
  .variant-card-input {
    opacity: 0;
    pointer-events: none;
    position: absolute;
  }
  .variant-card-content {
    padding: 10px;
  }
  .variant-card-image {
    aspect-ratio: 1;
    background: #f5f5f7;
    border-radius: 8px;
    margin-bottom: 8px;
    overflow: hidden;
  }
  .variant-card-image img {
    object-fit: contain;
    width: 100%;
    height: 100%;
  }
  .variant-card-name {
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.3;
  }
  .variant-card-price {
    color: var(--blue-500);
    margin-top: 4px;
    font-size: 0.75rem;
  }
  .variant-card-stock {
    color: #64748b;
    margin-top: 4px;
    font-size: 0.75rem;
    line-height: 1.25;
  }
  .variant-card-unavailable {
    color: #888;
    font-size: 0.75rem;
  }
  .variant-card-check {
    background: var(--blue-500);
    color: #fff;
    border-radius: 50%;
    justify-content: center;
    align-items: center;
    width: 24px;
    height: 24px;
    display: none;
    position: absolute;
    top: 8px;
    right: 8px;
  }
  .variant-card.selected .variant-card-check {
    display: flex;
  }
  .product-price-block {
    margin-bottom: 1rem;
  }
  .product-price-block.no-variant .price-placeholder {
    color: #9ca3af;
  }
  .price-row {
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.5rem;
    display: flex;
  }
  .price-placeholder,
  .price-current {
    color: var(--anthracite);
    font-size: 1.75rem;
    font-weight: 700;
  }
  .price-current {
    color: var(--blue-500);
  }
  .price-unit {
    color: #888;
    font-size: 0.9375rem;
  }
  .price-info {
    color: #16a34a;
    align-items: center;
    gap: 8px;
    margin-top: 4px;
    font-size: 0.875rem;
    display: flex;
  }
  .price-info--out-of-stock {
    color: #b91c1c;
  }
  .selected-variant-info {
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    border-radius: 10px;
    margin-bottom: 1rem;
    padding: 12px 14px;
    font-size: 0.875rem;
    display: none;
  }
  .selected-variant-info.visible {
    display: block;
  }
  .selected-variant-title {
    color: #166534;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
    font-weight: 600;
    display: flex;
  }
  .selected-variant-specs {
    color: #15803d;
    line-height: 1.5;
  }
  .product-package-banner {
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 1rem;
    padding: 12px 14px;
    border-radius: 12px;
    border: 1px solid #fcd34d;
    background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%);
    color: #78350f;
    display: flex;
  }
  .product-package-banner--compact {
    margin-bottom: 0;
    margin-top: 2px;
    padding: 6px 8px;
    gap: 6px;
    border-radius: 8px;
    align-items: center;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }
  .product-package-banner--compact .product-package-banner__icon {
    font-size: 0.95rem;
  }
  .product-package-banner--compact .product-package-banner__title {
    display: inline;
    font-size: 0.75rem;
    font-weight: 700;
    margin-right: 4px;
  }
  .product-package-banner--compact .product-package-banner__detail {
    display: inline;
    font-size: 0.7rem;
    font-weight: 500;
    color: #92400e;
  }
  .product-package-banner__icon {
    flex-shrink: 0;
    font-size: 1.25rem;
    line-height: 1.2;
  }
  .product-package-banner__text {
    min-width: 0;
  }
  .product-package-banner__title {
    display: block;
    font-size: 0.9375rem;
    margin-bottom: 4px;
  }
  .product-package-banner__detail {
    margin: 0;
    font-size: 0.8125rem;
    line-height: 1.45;
    color: #92400e;
  }
  .product-actions {
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 12px;
    margin-bottom: 1.5rem;
    display: flex;
  }
  /* Карточка товара (engine): строка «кол-во + В корзину», ниже — баннер упаковки на всю ширину */
  .product-actions--engine {
    flex-direction: column;
    align-items: stretch;
    flex-wrap: nowrap;
    gap: 10px;
  }
  .product-actions--engine .product-actions__main-row {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    gap: 12px;
    width: 100%;
    min-width: 0;
  }
  .product-actions--engine .quantity-selector {
    flex-shrink: 0;
    width: fit-content;
    max-width: 100%;
  }
  .product-actions--engine .btn-cart {
    flex: 1 1 auto;
    min-width: 0;
    justify-content: center;
    box-sizing: border-box;
  }
  .quantity-selector {
    border: 1px solid #e5e5e7;
    border-radius: 10px;
    align-items: center;
    display: flex;
    overflow: hidden;
  }
  .quantity-btn {
    cursor: pointer;
    background: #dcdcde;
    border: none;
    width: 40px;
    height: 44px;
    font-size: 1.25rem;
    line-height: 1;
  }
  .quantity-btn:hover {
    background: #e8e8ea;
  }
  .quantity-input {
    text-align: center;
    border: none;
    width: 56px;
    height: 44px;
    font-size: 1rem;
    font-weight: 600;
    background-color: #fff;
  }
  .btn-cart {
    color: #fff;
    cursor: pointer;
    background: linear-gradient(135deg, #3b6fd9 0%, #2a4a8c 100%);
    border: none;
    border-radius: 10px;
    align-items: center;
    gap: 8px;
    padding: 12px 20px;
    font-size: 0.9375rem;
    font-weight: 600;
    transition: opacity 0.2s;
    display: inline-flex;
  }
  .btn-cart:disabled {
    opacity: 0.45;
    cursor: not-allowed;
  }
  .btn-buy {
    border: 2px solid var(--blue-500);
    color: var(--blue-500);
    cursor: pointer;
    background: #fff;
    border-radius: 10px;
    padding: 12px 20px;
    font-weight: 600;
  }
  .btn-buy:disabled {
    opacity: 0.45;
    cursor: not-allowed;
  }
  .product-features {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 1.5rem;
    display: grid;
  }
  @media (width<=640px) {
    .product-features {
      grid-template-columns: 1fr;
    }
  }
  .feature-item {
    background: #f9fafb;
    border: 1px solid #e5e5e7;
    border-radius: 10px;
    gap: 10px;
    padding: 12px;
    display: flex;
  }
  .feature-icon {
    color: var(--blue-500);
    flex-shrink: 0;
  }
  .feature-text {
    flex-direction: column;
    gap: 2px;
    font-size: 0.8125rem;
    display: flex;
  }
  .feature-text strong {
    color: var(--anthracite);
  }
  .feature-text span {
    color: #666;
  }
  .product-specs {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    margin-bottom: 1rem;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
  }
  .specs-header {
    cursor: pointer;
    background: #f1f5f9;
    justify-content: space-between;
    align-items: center;
    padding: 14px 16px;
    font-weight: 600;
    display: flex;
  }
  .specs-header svg {
    transition: transform 0.2s;
  }
  .specs-header.open svg {
    transform: rotate(180deg);
  }
  .specs-content {
    background: #f8fafc;
    padding: 0 16px 16px;
    display: none;
  }
  .specs-content.open {
    display: block;
  }
  .spec-row {
    border-bottom: 1px solid #f0f0f0;
    justify-content: space-between;
    gap: 1rem;
    padding: 10px 0;
    font-size: 0.875rem;
    display: flex;
  }
  .spec-row:last-child {
    border-bottom: none;
  }
  .spec-name {
    color: #888;
  }
  .spec-value {
    color: var(--anthracite);
    text-align: right;
  }
  .product-downloads {
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 1.5rem;
    display: flex;
  }
  .download-btn {
    color: var(--blue-500);
    background: #fff;
    border: 1px solid #e5e5e7;
    border-radius: 8px;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    font-size: 0.875rem;
    font-weight: 500;
    text-decoration: none;
    display: inline-flex;
  }
  .download-btn:hover {
    background: #f5f5f7;
  }
  .product-description {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
  }
  .description-header {
    background: #f1f5f9;
    justify-content: space-between;
    align-items: center;
    padding: 14px 16px;
    font-weight: 600;
    display: flex;
  }
  .description-content {
    color: #444;
    background: #ffffff;
    padding: 16px;
    font-size: 0.9375rem;
    line-height: 1.6;
    display: none;
  }
  .description-content.open {
    display: block;
  }
  .description-content ul {
    padding-left: 1.25rem;
  }
  .related-section {
    border-top: 1px solid #e5e5e7;
    padding: 2rem 0 3rem;
  }
  .section-header {
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    margin-bottom: 1.25rem;
    display: flex;
  }
  .section-title {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 700;
  }
  .section-link {
    color: var(--blue-500);
    align-items: center;
    gap: 6px;
    font-size: 0.875rem;
    font-weight: 500;
    text-decoration: none;
    display: inline-flex;
  }
  .section-link:hover {
    text-decoration: underline;
  }
  .related-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    display: grid;
  }
  .related-grid.related-grid--compact {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.55rem;
    overflow: hidden;
    padding-bottom: 0;
  }
  .related-grid.related-grid--compact .related-product-card {
    min-width: 0;
  }
  @media (width<=700px) {
    .related-grid.related-grid--compact {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .related-grid.related-grid--compact .related-product-card {
      min-width: 0;
    }
  }
  @media (width<=1023px) {
    .related-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }
  @media (width<=639px) {
    .related-grid {
      grid-template-columns: 1fr;
    }
  }
  .related-section .product-card,
  .related-section .related-product-card {
    background: #fff;
    border: 1px solid #d6dde6;
    border-radius: 10px;
    transition:
      box-shadow 0.25s ease,
      transform 0.25s ease,
      border-color 0.25s ease;
    overflow: hidden;
    box-shadow: 0 1px 8px rgba(20, 23, 28, 0.06);
  }
  .related-section .product-card:hover,
  .related-section .related-product-card:hover {
    border-color: #b9c7db;
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(20, 23, 28, 0.1);
  }
  .related-section .related-product-card__image {
    display: block;
    aspect-ratio: 1 / 0.78;
    background: #f3f6fa;
    padding: 8px 8px 6px;
    border-bottom: 1px solid #e1e7ef;
  }
  .related-section .related-product-card__image img {
    object-fit: contain;
    width: 100%;
    height: 100%;
    display: block;
    border-radius: 8px;
  }

  .watermark-host {
    position: relative;
    overflow: hidden;
    container-type: inline-size;
  }
  body.no-watermark .watermark-host::after {
    content: none;
    display: none;
  }
  .watermark-host::after {
    content: "tcmo-pro.ru";
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    font-size: clamp(11px, 7cqi, 34px);
    line-height: 1;
    font-weight: 700;
    letter-spacing: 0.4px;
    color: rgba(255, 255, 255, 0.45);
    background: rgba(30, 41, 59, 0.14);
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 999px;
    padding: clamp(3px, 1.2cqi, 10px) clamp(6px, 2.2cqi, 18px);
    text-transform: lowercase;
    white-space: nowrap;
    max-width: calc(100% - 16px);
    pointer-events: none;
    user-select: none;
    z-index: 2;
  }
  @supports not (font-size: 1cqi) {
    .watermark-host::after {
      font-size: clamp(12px, 2.2vw, 30px);
      padding: clamp(4px, 0.8vw, 8px) clamp(8px, 1.2vw, 14px);
    }
  }
  .related-section .related-product-card__info {
    padding: 7px 8px 9px;
  }
  .related-section .product-card-sku {
    color: #7a8598;
    margin-bottom: 2px;
    font-size: 0.66rem;
  }
  .related-section .product-card-name {
    margin: 0 0 4px;
    font-size: 0.74rem;
    font-weight: 600;
    line-height: 1.25;
    display: -webkit-box;
    line-clamp: 2;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 2.05em;
  }
  .related-section .product-card-name a {
    color: inherit;
    text-decoration: none;
  }
  .related-section .product-card-name a:hover {
    color: var(--blue-500);
  }
  .related-section .product-card-price {
    color: #2563eb;
    font-size: 0.84rem;
    font-weight: 700;
    display: inline-flex;
    align-items: baseline;
    gap: 4px;
  }
  .related-section .product-card-price__unit {
    color: #2563eb;
    font-size: 0.68rem;
    font-weight: 500;
  }

  .related-section .related-product-card {
    border-radius: 10px;
  }

  .related-section .related-product-card .product-card-name a {
    color: #1f2d3d;
  }
  .page-category .container {
    box-sizing: border-box;
    width: 100%;
    max-width: 1400px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1rem;
    padding-right: 1rem;
  }
  @media (width>=1024px) {
    .page-category .container {
      padding-left: 1.5rem;
      padding-right: 1.5rem;
    }
  }
  .page-category .category-hero {
    background: #eff6fd;
    padding: -1rem 0 2.5rem 0;
  }
  .page-category .category-hero .breadcrumb {
    margin-bottom: 0.5rem;
    padding-top: 0;
  }
  .page-category .category-hero h1 {
    color: var(--anthracite);
    margin: 0 0 0.75rem;
    font-size: clamp(1.75rem, 4vw, 2.25rem);
    font-weight: 700;
    line-height: 1.2;
  }
  .page-category .category-hero .description {
    color: #4b5563;
    margin: 0 0 1.5rem;
    font-size: 0.9375rem;
    line-height: 1.6;
  }
  .page-category .category-description-preview {
    position: relative;
    max-height: calc(1.6em * 4);
    overflow: hidden;
  }
  .page-category .category-description-preview.is-expanded {
    max-height: none;
    overflow: visible;
  }
  .page-category .category-description-preview .description {
    margin: 0;
  }
  .page-category .category-description-preview .description ul,
  .page-category .category-description-preview .description ol {
    margin: 0.65rem 0 1rem;
    padding: 0.7rem 0.9rem 0.7rem 1.6rem;
    border-left: 3px solid rgba(59, 111, 217, 0.35);
    background: rgba(255, 255, 255, 0.72);
    border-radius: 10px;
  }
  .page-category .category-description-preview .description ul {
    list-style: disc;
  }
  .page-category .category-description-preview .description ol {
    list-style: decimal;
  }
  .page-category .category-description-preview .description li {
    margin: 0.28rem 0;
    line-height: 1.62;
  }
  .page-category .category-description-preview .description li::marker {
    color: var(--blue-500);
    font-weight: 700;
  }
  .page-category .category-description-fade {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 2.2em;
    background: linear-gradient(180deg, rgba(239, 246, 253, 0) 0%, #eff6fd 100%);
    pointer-events: none;
  }
  .page-category .category-description-actions {
    margin-top: 8px;
    margin-bottom: 1.5rem;
    display: flex;
    justify-content: center;
  }
  .page-category .category-read-more-btn {
    border: 1px solid #bfd3f6;
    background: #fff;
    color: var(--blue-700);
    border-radius: 999px;
    padding: 6px 16px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 8px;
  }
  .page-category .category-read-more-btn__arrow {
    font-size: 13px;
    line-height: 1;
  }
  .page-category .category-stats {
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 1.5rem 2rem;
    display: flex;
  }
  .page-category .category-stats .stat {
    align-items: center;
    gap: 0.75rem;
    display: flex;
  }
  .page-category .stat-icon {
    width: 2.75rem;
    height: 2.75rem;
    color: var(--blue-500);
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 0.75rem;
    justify-content: center;
    align-items: center;
    display: flex;
  }
  .page-category .stat-value {
    color: var(--anthracite);
    font-size: 1.125rem;
    font-weight: 700;
    line-height: 1.2;
  }
  .page-category .stat-label {
    color: #6b7280;
    font-size: 0.8125rem;
  }
  .page-category .main-content {
    grid-template-columns: 1fr;
    gap: 1.5rem;
    padding: 1.5rem 0 3rem;
    display: grid;
  }
  @media (width>=1024px) {
    .page-category .main-content {
      grid-template-columns: minmax(240px, 280px) minmax(0, 1fr);
      align-items: start;
      gap: 2rem;
    }
  }
  .page-category .info-page-layout {
    max-width: 48rem;
    margin-left: auto;
    margin-right: auto;
    padding: 0 0 3rem;
  }
  .page-category .info-page-layout--wide {
    max-width: min(88rem, 100%);
  }
  .page-category .info-page-section--contacts-full {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    padding-left: 1rem;
    padding-right: 1rem;
  }
  @media (width >= 1024px) {
    .page-category .info-page-section--contacts-full {
      padding-left: 1.5rem;
      padding-right: 1.5rem;
    }
  }
  .page-category .info-page-layout--wide.info-page-layout--fullwidth {
    width: 100%;
    max-width: none;
    margin-left: auto;
    margin-right: auto;
  }
  .page-category .info-page-lead {
    color: #64748b;
    margin: 0.75rem 0 0;
    font-size: 1.0625rem;
    line-height: 1.5;
  }
  .page-category .info-page-body {
    color: #374151;
    font-size: 1rem;
    line-height: 1.65;
  }
  .page-category .info-page-body > *:first-child {
    margin-top: 0;
  }
  .page-category .info-page-body h2,
  .page-category .info-page-body h3 {
    color: #0f172a;
    margin: 1.5rem 0 0.75rem;
    font-weight: 700;
    line-height: 1.3;
  }
  .page-category .info-page-body h2 {
    font-size: 1.25rem;
  }
  .page-category .info-page-body h3 {
    font-size: 1.0625rem;
  }
  .page-category .info-page-body p {
    margin: 0 0 1rem;
  }
  .page-category .info-page-body ul,
  .page-category .info-page-body ol {
    margin: 0 0 1rem 1.25rem;
    padding: 0;
  }
  .page-category .info-page-body a {
    color: var(--blue-700, #1d4ed8);
    text-decoration: underline;
    text-underline-offset: 2px;
  }
  .page-category .info-page-body a:hover {
    color: var(--blue-800, #1e40af);
  }
  .page-category .info-page-body--contacts .info-contacts {
    margin-top: 0.25rem;
  }
  /* Сброс отступа списка (base/Tailwind задают ul margin/padding-inline) — иначе телефон/e-mail визуально правее адреса. */
  .page-category .info-page-body--contacts .info-contacts ul.info-contacts__tiles {
    margin-left: 0;
    margin-right: 0;
    margin-bottom: 0.875rem;
    padding-left: 0;
    padding-right: 0;
    list-style: none;
  }
  /* Как у .nav-wrapper .nav-secondary-bar — полоса меню со страницами */
  .page-category .info-contacts--premium {
    position: relative;
    padding: 0;
    background: transparent;
    border-radius: 0;
    box-shadow: none;
    overflow: visible;
  }
  .page-category .info-contacts--premium::before,
  .page-category .info-contacts--premium::after {
    display: none;
  }
  .page-category .info-contacts__shell {
    position: relative;
    z-index: 1;
    border-radius: 10px;
    padding: 1.75rem 1.35rem 2rem;
    background-color: #fff;
    border: 2px solid #829dd4;
    box-shadow:
      0 6px 16px rgba(15, 23, 42, 0.14),
      0 2px 6px rgba(59, 111, 217, 0.12);
  }
  @media (width >= 1024px) {
    .page-category .info-contacts__shell {
      padding: 2.25rem 2rem 2.5rem;
    }
  }
  .page-category .info-contacts__head {
    margin-bottom: 1.75rem;
    max-width: 40rem;
  }
  .page-category .info-contacts__eyebrow {
    display: inline-block;
    color: var(--blue-700);
    margin: 0 0 0.5rem;
    padding: 0.28rem 0.75rem;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    border-radius: 999px;
    background: linear-gradient(
      135deg,
      rgba(59, 111, 217, 0.12) 0%,
      rgba(147, 197, 253, 0.2) 100%
    );
    border: 1px solid rgba(59, 111, 217, 0.15);
  }
  .page-category .info-contacts__lead {
    color: #475569;
    margin: 0;
    font-size: 1.0625rem;
    line-height: 1.6;
  }
  .page-category .info-contacts__split {
    gap: 1.75rem;
    display: grid;
    grid-template-columns: 1fr;
    align-items: start;
  }
  @media (width >= 1024px) {
    .page-category .info-contacts__split {
      grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
      column-gap: 2.5rem;
      row-gap: 1.75rem;
    }
    .page-category .info-contacts__split > .info-contacts__col--info {
      grid-column: 1;
      grid-row: 1;
    }
    .page-category .info-contacts__split > .info-contacts__col--map {
      grid-column: 2;
      grid-row: 1;
      align-self: start;
    }
  }
  .page-category .info-contacts__col--info {
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }
  .page-category .info-contacts__col--info .info-contacts__address-card {
    width: 100%;
    box-sizing: border-box;
  }
  .page-category .info-contacts__tiles {
    gap: 0.875rem;
    width: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    box-sizing: border-box;
  }
  .page-category .info-contacts__tiles > li {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }
  .page-category .info-contacts__tile {
    gap: 1rem;
    width: 100%;
    max-width: 100%;
    padding: 1.1rem 1.15rem;
    display: flex;
    align-items: flex-start;
    border-radius: 1rem;
    background: #fff;
    border: 1px solid #e8ecf1;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.04);
    transition:
      transform 0.2s ease,
      box-shadow 0.2s ease,
      border-color 0.2s ease;
  }
  .page-category .info-contacts__tile:hover {
    border-color: rgba(59, 111, 217, 0.35);
    box-shadow:
      0 12px 32px -12px rgba(59, 111, 217, 0.2),
      0 4px 12px rgba(15, 23, 42, 0.05);
    transform: translateY(-2px);
  }
  .page-category .info-contacts__tile-icon {
    flex-shrink: 0;
    width: 3rem;
    height: 3rem;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--blue-700);
    border-radius: 1rem;
    background: linear-gradient(
      145deg,
      rgba(59, 111, 217, 0.12) 0%,
      rgba(255, 255, 255, 0.9) 100%
    );
    border: 1px solid rgba(59, 111, 217, 0.12);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
  }
  .page-category .info-contacts__tile-body {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
  }
  .page-category .info-contacts__tile-label {
    color: #64748b;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }
  .page-category .info-contacts__tile-value {
    color: #0f172a;
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1.3;
    text-decoration: none;
  }
  .page-category .info-contacts__tile-value:hover {
    color: var(--blue-500);
  }
  .page-category .info-contacts__tile-value--email {
    font-size: 1rem;
    font-weight: 600;
    word-break: break-word;
  }
  .page-category .info-contacts__tile-callback {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem 0.55rem;
    margin-top: 0.45rem;
    padding-top: 0.5rem;
    border-top: 1px solid rgba(148, 163, 184, 0.35);
  }
  .page-category .info-contacts__tile-callback-hint {
    font-size: 0.8125rem;
    color: #64748b;
    line-height: 1.3;
  }
  .page-category .info-contacts__callback-btn {
    font-size: 0.75rem;
    font-weight: 600;
    padding: 0.28rem 0.65rem;
    border-radius: 999px;
    border: 1px solid rgba(59, 111, 217, 0.45);
    background: #fff;
    color: var(--blue-500);
    cursor: pointer;
    line-height: 1.2;
    white-space: nowrap;
    transition:
      background 0.15s ease,
      border-color 0.15s ease,
      color 0.15s ease;
  }
  .page-category .info-contacts__callback-btn:hover {
    background: rgba(59, 111, 217, 0.08);
    border-color: var(--blue-500);
    color: var(--blue-700);
  }
  .page-category .info-contacts__address-card {
    margin-top: 0.5rem;
    padding: 1.25rem 1.35rem;
    border-radius: 1rem;
    background: linear-gradient(
      125deg,
      rgba(239, 246, 253, 0.9) 0%,
      #ffffff 55%,
      rgba(248, 250, 252, 0.8) 100%
    );
    border: 1px solid rgba(59, 111, 217, 0.18);
    box-shadow: 0 4px 16px rgba(42, 74, 140, 0.06);
  }
  .page-category .info-contacts__address-card-head {
    gap: 0.6rem;
    margin-bottom: 0.65rem;
    display: flex;
    align-items: center;
  }
  .page-category .info-contacts__address-icon {
    flex-shrink: 0;
    width: 2.25rem;
    height: 2.25rem;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    border-radius: 0.65rem;
    background: linear-gradient(145deg, var(--blue-500) 0%, var(--blue-700) 100%);
    box-shadow: 0 4px 12px rgba(59, 111, 217, 0.35);
  }
  .page-category .info-contacts__address-title {
    color: var(--anthracite, #1e293b);
    font-size: 0.9375rem;
    font-weight: 700;
    line-height: 1.3;
  }
  .page-category .info-contacts__address-text {
    color: #334155;
    margin: 0 0 0.5rem;
    font-size: 1rem;
    line-height: 1.55;
  }
  .page-category .info-contacts__coords {
    color: #64748b;
    margin: 0;
    font-size: 0.8125rem;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.02em;
  }
  /* Без sticky: иначе при прокрутке карта «прилипает» к верху окна и оказывается напротив нижних карточек слева. */
  .page-category .info-contacts__col--map {
    position: relative;
    align-self: start;
  }
  .page-category .info-contacts__map-card {
    position: relative;
    padding: 1.35rem 1.25rem 1.5rem;
    border-radius: 1.15rem;
    background: #fff;
    border: 1px solid #e8ecf1;
    box-shadow:
      0 20px 50px -24px rgba(15, 23, 42, 0.2),
      0 1px 3px rgba(15, 23, 42, 0.05);
  }
  .page-category .info-contacts__map-card-bar {
    position: absolute;
    top: 0;
    left: 1.25rem;
    right: 1.25rem;
    height: 4px;
    border-radius: 0 0 6px 6px;
    background: linear-gradient(90deg, var(--blue-500) 0%, #60a5fa 45%, var(--blue-700) 100%);
  }
  .page-category .info-contacts__map-title {
    color: var(--anthracite, #1e293b);
    margin: 0.35rem 0 0.35rem;
    font-size: 1.25rem;
    font-weight: 700;
    letter-spacing: -0.02em;
  }
  .page-category .info-contacts__map-sub {
    color: #64748b;
    margin: 0 0 1rem;
    font-size: 0.875rem;
    line-height: 1.45;
  }
  .page-category .info-contacts__map-frame {
    aspect-ratio: 16 / 10;
    min-height: 240px;
    border-radius: 0.85rem;
    overflow: hidden;
    border: 1px solid #e2e8f0;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.6);
  }
  .page-category .info-contacts__map-frame iframe {
    width: 100%;
    height: 100%;
    min-height: 240px;
    border: 0;
    display: block;
    vertical-align: middle;
  }
  .page-category .info-contacts__map-cta {
    gap: 0.5rem;
    margin-top: 1rem;
    padding: 0.65rem 1rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--blue-700);
    text-decoration: none;
    border-radius: 0.65rem;
    border: 1px solid rgba(59, 111, 217, 0.25);
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    display: inline-flex;
    align-items: center;
    transition:
      background 0.2s ease,
      border-color 0.2s ease,
      color 0.2s ease;
  }
  .page-category .info-contacts__map-cta:hover {
    color: #fff;
    border-color: var(--blue-500);
    background: linear-gradient(145deg, var(--blue-500) 0%, var(--blue-700) 100%);
  }
  .page-category .info-contacts__map-cta svg {
    flex-shrink: 0;
    opacity: 0.85;
  }
  .page-category .info-page-body--contacts .info-contacts--premium a.info-contacts__tile-value,
  .page-category .info-page-body--contacts .info-contacts--premium a.info-contacts__map-cta {
    text-decoration: none;
  }
  .page-category .sidebar {
    flex-direction: column;
    gap: 1rem;
    display: flex;
  }
  @media (width>=1024px) {
    .page-category .sidebar {
      align-self: start;
      position: sticky;
      top: 5.5rem;
    }
    .page-category.page-category--no-sticky-layout .sidebar {
      position: static;
      top: auto;
    }
  }
  .page-category .subcategory-card,
  .page-category .filter-card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 1rem;
    padding: 1rem 1.125rem;
    box-shadow: 0 1px 2px #0000000d;
  }
  .page-category .subcategory-card h3 {
    color: var(--anthracite);
    margin: 0 0 0.75rem;
    font-size: 1rem;
    font-weight: 600;
  }
  .page-category .subcategory-list {
    flex-direction: column;
    gap: 0;
    display: flex;
  }
  .page-category .subcategory-row {
    color: #374151;
    border-bottom: 1px solid #f3f4f6;
    border-radius: 0.5rem;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
    margin: 0 -0.5rem;
    padding: 0.625rem 0.5rem;
    font-size: 0.875rem;
    text-decoration: none;
    display: flex;
  }
  .page-category .subcategory-row:last-child {
    border-bottom: none;
  }
  .page-category .subcategory-row.is-active {
    color: var(--blue-700);
    background: #eff6ff;
    font-weight: 600;
  }
  .page-category .subcategory-row .count {
    color: #9ca3af;
    font-size: 0.75rem;
  }
  .page-category .filter-card h3 {
    justify-content: space-between;
    align-items: center;
    gap: 0.5rem;
    margin: 0 0 1rem;
    font-size: 1rem;
    font-weight: 600;
    display: flex;
  }
  .page-category .filter-group {
    margin-bottom: 1.25rem;
  }
  .page-category .filter-group:last-of-type {
    margin-bottom: 1rem;
  }
  .page-category .filter-group-title {
    color: #374151;
    margin: 0 0 0.5rem;
    font-size: 0.8125rem;
    font-weight: 600;
  }
  .page-category .filter-range {
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    display: flex;
  }
  .page-category .filter-range input {
    border: 1px solid #e5e7eb;
    border-radius: 0.5rem;
    flex: 5rem;
    min-width: 0;
    padding: 0.375rem 0.5rem;
    font-size: 0.875rem;
  }
  .page-category .filter-row {
    cursor: pointer;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.375rem;
    font-size: 0.875rem;
    display: flex;
  }
  .page-category .filter-row input[type="checkbox"] {
    flex-shrink: 0;
  }
  .page-category .filter-row .count {
    color: #9ca3af;
    margin-left: auto;
    font-size: 0.75rem;
  }
  .page-category .filter-label-text {
    flex: 1;
    min-width: 0;
  }
  .page-category .filter-btn {
    color: #fff;
    cursor: pointer;
    background: linear-gradient(135deg, #3b6fd9 0%, #2a4a8c 100%);
    border: none;
    border-radius: 0.5rem;
    width: 100%;
    margin-top: 0.5rem;
    padding: 0.625rem 1rem;
    font-size: 0.875rem;
    font-weight: 600;
  }
  .page-category .filter-btn:hover {
    opacity: 0.95;
  }
  .page-category .reset-btn {
    color: #6b7280;
    cursor: pointer;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 0.5rem;
    display: block;
    width: 100%;
    margin-top: 0.5rem;
    padding: 0.5rem;
    text-align: center;
    line-height: 1.2;
    font-size: 0.875rem;
    text-decoration: none;
  }
  .page-category .reset-btn:hover {
    background: #f9fafb;
  }
  .page-category .category-main-panel {
    min-width: 0;
  }
  .page-category .products-header {
    border-bottom: 1px solid #e5e7eb;
    flex-wrap: nowrap;
    justify-content: flex-start;
    align-items: center;
    gap: 10px;
    position: sticky;
    top: 0;
    z-index: 20;
    background: #eef4fb;
    margin-bottom: 0.5rem;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    display: flex;
  }
  .page-category .products-count {
    color: #6b7280;
    font-size: 0.875rem;
    white-space: nowrap;
  }
  .page-category .products-count span {
    color: var(--anthracite);
    font-weight: 600;
  }
  .page-category .products-active-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 0;
    margin-left: 6px;
    justify-content: flex-end;
    align-items: center;
  }
  .page-category .active-filter-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border: 1px solid #cfd9ee;
    background: #f5f8ff;
    color: #213255;
    border-radius: 999px;
    padding: 4px 10px;
    font-size: 12px;
    font-weight: bold;
    text-decoration: none;
  }
  .page-category .active-filter-chip:hover {
    border-color: #9bb5eb;
    background: #eaf1ff;
  }
  .page-category .active-filter-chip__x {
    font-size: 15px;
    line-height: 1;
    color: #3b6fd9;
  }
  .page-category .active-filter-clear {
    display: inline-flex;
    align-items: center;
    color: #3b6fd9;
    text-decoration: none;
    font-size: 12px;
    padding: 4px 2px;
  }
  .page-category .active-filter-clear:hover {
    text-decoration: underline;
  }
  .page-category .active-filter-clear:hover {
    text-decoration: underline;
  }
  .page-category .sort-select {
    align-items: center;
    gap: 0.5rem;
    font-size: 0.875rem;
    display: flex;
    margin-left: auto;
  }
  .page-category .sort-select form {
    align-items: center;
    gap: 0.5rem;
    display: flex;
    margin: 0;
  }
  .page-category .sort-select select {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 0.5rem;
    padding: 0.375rem 2rem 0.375rem 0.625rem;
    font-size: 0.825rem;
    color: #374151;
  }
  .page-category .products-grid {
    grid-template-columns: 1fr;
    gap: 0.75rem;
    display: grid;
  }
  .page-category .category-search-results {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    margin-top: 8px;
    max-height: 520px;
    overflow: auto;
  }
  .page-category .category-search-empty {
    color: #64748b;
    padding: 12px;
    font-size: 14px;
  }
  .page-category .category-search-item {
    display: flex;
    gap: 10px;
    padding: 10px 12px;
    border-bottom: 1px solid #f1f5f9;
    text-decoration: none;
  }
  .page-category .category-search-item:hover {
    background: #f8fbff;
  }
  .page-category .category-search-item:last-child {
    border-bottom: 0;
  }
  .page-category .category-search-item__thumb {
    width: 56px;
    height: 56px;
    border-radius: 8px;
    background: #f1f5f9;
    overflow: hidden;
    flex: 0 0 56px;
  }
  .page-category .category-search-item__thumb img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
  }
  .page-category .category-search-item__meta {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
  }
  .page-category .category-search-item__title {
    color: #0f172a;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.25;
  }
  .page-category .category-search-item__sub {
    color: #0e9f6e;
    font-size: 12px;
  }
  .page-category .category-search-item__price {
    color: #2563eb;
    font-size: 13px;
    font-weight: 600;
  }
  .page-category .category-search-item--category .category-search-item__title {
    color: #334155;
    font-weight: 500;
  }
  .page-category .category-search-results mark {
    background: #fff3b8;
    color: #111827;
    padding: 0 2px;
    border-radius: 3px;
  }
  .stock-limit-toast {
    position: fixed;
    left: 50%;
    bottom: 26px;
    transform: translateX(-50%) translateY(14px);
    z-index: 1200;
    background: #1f2937;
    color: #fff;
    font-size: 13px;
    line-height: 1.25;
    border-radius: 999px;
    padding: 8px 14px;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.28);
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s ease, transform .2s ease;
  }
  .stock-limit-toast.is-visible {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
  }
.stock-limit-toast--side {
  left: auto;
  bottom: auto;
  transform: translateY(-50%);
}
.stock-limit-toast--side.is-visible {
  transform: translateY(-50%);
}
  @media (width>=640px) {
    .page-category .products-grid {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }
  }
  @media (width>=1024px) {
    .page-category .products-grid {
      grid-template-columns: repeat(4, minmax(0, 1fr));
    }
  }
  @media (width>=1280px) {
    .page-category .products-grid {
      grid-template-columns: repeat(5, minmax(0, 1fr));
    }
  }
  .page-category .products-grid .product-card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 1rem;
    display: flex;
    flex-direction: column;
    transition:
      transform 0.2s,
      box-shadow 0.2s,
      border-color 0.2s;
    overflow: hidden;
  }
  .page-category .products-grid .product-card:hover {
    border-color: #b8d0f5;
    box-shadow: 0 10px 25px -5px #00000014;
  }
  .page-category .products-grid .product-image {
    aspect-ratio: 1;
    background: #f3f4f6;
    position: relative;
  }
  .page-category .products-grid .product-image img {
    object-fit: contain;
    width: 100%;
    height: 100%;
    display: block;
  }
  .page-category .products-grid .product-badge {
    z-index: 1;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: #fff;
    border-radius: 0.375rem;
    padding: 0.375rem 0.625rem;
    font-size: 0.625rem;
    font-weight: 700;
    position: absolute;
    top: 0.625rem;
    left: 0.625rem;
  }
  .page-category .products-grid .product-badge.hit {
    background: #ea580c;
  }
  .page-category .products-grid .product-badge.new {
    background: #16a34a;
  }
  .page-category .products-grid .product-wishlist {
    z-index: 1;
    color: #444;
    cursor: pointer;
    background: #fffffff2;
    border: none;
    border-radius: 0.625rem;
    justify-content: center;
    align-items: center;
    width: 2.25rem;
    height: 2.25rem;
    display: flex;
    position: absolute;
    top: 0.625rem;
    right: 0.625rem;
    box-shadow: 0 2px 8px #00000014;
  }
  .page-category .products-grid .product-actions {
    flex-wrap: wrap;
    gap: 0.5rem;
    display: flex;
    position: absolute;
    bottom: 0.75rem;
    left: 0.75rem;
    right: 0.75rem;
  }
  .page-category .products-grid .btn {
    cursor: pointer;
    border: none;
    border-radius: 0.5rem;
    align-items: center;
    gap: 0.375rem;
    padding: 0.375rem 0.625rem;
    font-size: 0.75rem;
    font-weight: 600;
    display: inline-flex;
  }
  .page-category .products-grid .btn-outline-sm {
    color: #374151;
    background: #fff;
    border: 1px solid #e5e7eb;
  }
  .page-category .products-grid .btn-primary-sm {
    color: #fff;
    background: linear-gradient(135deg, #3b6fd9 0%, #2a4a8c 100%);
  }
  .page-category .products-grid .product-info {
    min-width: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: 0.625rem 0.75rem 0.75rem;
  }
  .page-category .product-variant-select {
    width: 100%;
    border: 1px solid #dbe5f5;
    border-radius: 8px;
    padding: 6px 8px;
    margin-top: 6px;
    font-size: 12px;
    background: #fff;
  }
  .page-category .product-card-stock {
    margin-top: 6px;
    font-size: 12px;
    color: #0e9f6e;
  }
  .page-category .product-card-stock--out-of-stock {
    color: #b91c1c;
  }
  .page-category .product-card-package-hint {
    margin: 2px 0 0;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #92400e;
    background: #fffbeb;
    border: 1px solid #fde68a;
    width: 100%;
    box-sizing: border-box;
    text-align: center;
    line-height: 1.3;
  }
  .page-category .product-card-qty {
    margin-top: auto;
    display: grid;
    grid-template-columns: 34px 1fr 34px;
    gap: 6px;
    align-items: center;
  }
  .page-category .product-card-qty__btn {
    border: 1px solid #dbe5f5;
    background: #fff;
    border-radius: 8px;
    height: 32px;
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
  }
  .page-category .product-card-qty__btn:disabled {
    opacity: .55;
    cursor: not-allowed;
  }
  .page-category .product-card-qty__input {
    border: 1px solid #dbe5f5;
    border-radius: 8px;
    height: 32px;
    text-align: center;
    font-size: 13px;
    width: 100%;
  }
  .page-category .product-card-add {
    margin-top: 8px;
    width: 100%;
    justify-content: center;
  }
  .page-category .product-card-in-cart-note {
    margin-top: 6px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.2;
    color: #0e9f6e;
    text-align: center;
  }
  .page-category .products-grid .product-sku {
    color: #9ca3af;
    margin-bottom: 0.25rem;
    font-size: 0.6875rem;
  }
  .page-category .products-grid .product-name {
    margin: 0 0 0.5rem;
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.35;
  }
  .page-category .products-grid .product-name a {
    color: inherit;
    text-decoration: none;
  }
  .page-category .products-grid .product-name a:hover {
    color: var(--blue-500);
  }
  .page-category .products-grid .product-attrs {
    flex-wrap: wrap;
    gap: 0.375rem;
    margin-bottom: 0.5rem;
    display: flex;
  }
  .page-category .products-grid .product-attr {
    color: #6b7280;
    background: #f3f4f6;
    border-radius: 0.375rem;
    padding: 0.125rem 0.5rem;
    font-size: 0.6875rem;
  }
  .page-category .products-grid .product-price {
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.25rem;
    display: flex;
  }
  .page-category .products-grid .price-current {
    color: var(--blue-500);
    font-size: 1.125rem;
    font-weight: 700;
  }
  .page-category .products-grid .price-unit {
    color: #9ca3af;
    font-size: 0.75rem;
  }
  .page-category .pagination {
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 0.5rem;
    padding-top: 0.5rem;
    display: flex;
  }
  .page-category .pagination a,
  .page-category .pagination span {
    color: #6b7280;
    border: 1px solid #e5e7eb;
    border-radius: 0.375rem;
    justify-content: center;
    align-items: center;
    min-width: 2rem;
    height: 2rem;
    padding: 0 0.5rem;
    font-size: 0.875rem;
    text-decoration: none;
    display: inline-flex;
  }
  .page-category .pagination span.active {
    border-color: var(--blue-500);
    background: var(--blue-500);
    color: #fff;
  }
  .page-category .pagination a:hover {
    background: #f9fafb;
  }
  .page-category .footer {
    color: #ffffffd9;
    background: #111827;
    padding: 4rem 0 2rem;
  }
  .page-category .footer-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
    display: grid;
  }
  @media (width>=768px) {
    .page-category .footer-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }
  @media (width>=1024px) {
    .page-category .footer-grid {
      grid-template-columns: 2fr minmax(0, 1fr);
      gap: 3rem;
    }
  }
  .page-category .footer-contacts {
    justify-self: start;
  }
  @media (width>=1024px) {
    .page-category .footer-contacts {
      justify-self: end;
      text-align: right;
    }
  }
  .page-category .footer-brand p {
    color: #ffffffb3;
    margin: 1rem 0;
    font-size: 0.875rem;
    line-height: 1.6;
  }
  .page-category .footer-brand .logo-text-region {
    color: rgba(255, 255, 255, 0.82);
    margin: 0 0 -4px 0;
  }
  .page-category .footer-brand .footer-logo-text {
    color: #fff;
  }
  .page-category .footer-brand .logo-brand-main {
    color: #ffffff;
  }
  .page-category .footer-brand .logo-brand-divider {
    color: rgba(255, 255, 255, 0.7);
  }
  .page-category .footer-brand .logo-brand-accent {
    color: #bfdbfe;
    background: transparent;
    border: 0;
  }
  .page-category .footer-brand .logo > img {
    box-shadow: none;
  }
  .page-category .footer h4 {
    color: #fff;
    margin: 0 0 1rem;
    font-size: 1.125rem;
    font-weight: 600;
  }
  .page-category .footer-links {
    margin: 0;
    padding: 0;
    list-style: none;
  }
  .page-category .footer-links li {
    margin-bottom: 0.75rem;
  }
  .page-category .footer-links a {
    color: #ffffffb3;
    font-size: 0.875rem;
    text-decoration: none;
  }
  .page-category .footer-links a:hover {
    color: #fff;
  }
  .page-category .footer-bottom {
    color: #ffffff80;
    border-top: 1px solid #ffffff1a;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    margin-top: 3rem;
    padding-top: 2rem;
    font-size: 0.875rem;
    display: flex;
  }
  @media (width>=640px) {
    .page-category .footer-bottom {
      flex-direction: row;
    }
  }
  .page-category .social-links {
    gap: 0.75rem;
    display: flex;
  }
  .page-category .social-links a {
    background: #ffffff1a;
    border-radius: 0.5rem;
    justify-content: center;
    align-items: center;
    width: 2.5rem;
    height: 2.5rem;
    display: flex;
  }
  .page-category .social-links a:hover {
    background: #fff3;
  }
  .filter-quick-apply {
    position: fixed;
    z-index: 1200;
    box-shadow: 0 6px 18px #3b6fd947;
    border-radius: 999px;
    padding: 10px 14px;
    font-size: 13px;
    line-height: 1;
    width: auto !important;
    display: inline-flex;
    align-items: center;
    opacity: 0;
    transform: translateY(6px) scale(.98);
    transition: opacity .14s ease, transform .14s ease;
    pointer-events: none;
  }
  .filter-quick-apply.is-visible {
    opacity: 1;
    transform: translateY(0) scale(1);
    pointer-events: auto;
  }
}
@layer utilities {
  .pointer-events-none {
    pointer-events: none;
  }
  .invisible {
    visibility: hidden;
  }
  .visible {
    visibility: visible;
  }
  .sr-only {
    clip-path: inset(50%);
    white-space: nowrap;
    border-width: 0;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    position: absolute;
    overflow: hidden;
  }
  .absolute {
    position: absolute;
  }
  .relative {
    position: relative;
  }
  .sticky {
    position: sticky;
  }
  .inset-0 {
    inset: calc(var(--spacing) * 0);
  }
  .-top-0\.5 {
    top: calc(var(--spacing) * -0.5);
  }
  .-top-1 {
    top: calc(var(--spacing) * -1);
  }
  .top-0 {
    top: calc(var(--spacing) * 0);
  }
  .top-1\/2 {
    top: 50%;
  }
  .top-2\.5 {
    top: calc(var(--spacing) * 2.5);
  }
  .top-20 {
    top: calc(var(--spacing) * 20);
  }
  .top-full {
    top: 100%;
  }
  .-right-0\.5 {
    right: calc(var(--spacing) * -0.5);
  }
  .-right-1 {
    right: calc(var(--spacing) * -1);
  }
  .right-20 {
    right: calc(var(--spacing) * 20);
  }
  .bottom-20 {
    bottom: calc(var(--spacing) * 20);
  }
  .left-0 {
    left: calc(var(--spacing) * 0);
  }
  .left-1\/4 {
    left: 25%;
  }
  .left-2\.5 {
    left: calc(var(--spacing) * 2.5);
  }
  .left-4 {
    left: calc(var(--spacing) * 4);
  }
  .z-0 {
    z-index: 0;
  }
  .z-10 {
    z-index: 10;
  }
  .z-20 {
    z-index: 20;
  }
  .z-40 {
    z-index: 40;
  }
  .z-50 {
    z-index: 50;
  }
  .z-\[1\] {
    z-index: 1;
  }
  .order-1 {
    order: 1;
  }
  .order-2 {
    order: 2;
  }
  .container {
    width: 100%;
  }
  @media (width>=40rem) {
    .container {
      max-width: 40rem;
    }
  }
  @media (width>=48rem) {
    .container {
      max-width: 48rem;
    }
  }
  @media (width>=64rem) {
    .container {
      max-width: 64rem;
    }
  }
  @media (width>=80rem) {
    .container {
      max-width: 80rem;
    }
  }
  @media (width>=96rem) {
    .container {
      max-width: 96rem;
    }
  }
  .m-0 {
    margin: calc(var(--spacing) * 0);
  }
  .mx-auto {
    margin-inline: auto;
  }
  .-mt-24 {
    margin-top: calc(var(--spacing) * -24);
  }
  .mt-0\.5 {
    margin-top: calc(var(--spacing) * 0.5);
  }
  .mt-3 {
    margin-top: calc(var(--spacing) * 3);
  }
  .mt-4 {
    margin-top: calc(var(--spacing) * 4);
  }
  .mt-6 {
    margin-top: calc(var(--spacing) * 6);
  }
  .mt-8 {
    margin-top: calc(var(--spacing) * 8);
  }
  .mt-12 {
    margin-top: calc(var(--spacing) * 12);
  }
  .mb-1 {
    margin-bottom: calc(var(--spacing) * 1);
  }
  .mb-2 {
    margin-bottom: calc(var(--spacing) * 2);
  }
  .mb-3 {
    margin-bottom: calc(var(--spacing) * 3);
  }
  .mb-4 {
    margin-bottom: calc(var(--spacing) * 4);
  }
  .mb-5 {
    margin-bottom: calc(var(--spacing) * 5);
  }
  .mb-6 {
    margin-bottom: calc(var(--spacing) * 6);
  }
  .mb-8 {
    margin-bottom: calc(var(--spacing) * 8);
  }
  .mb-12 {
    margin-bottom: calc(var(--spacing) * 12);
  }
  .mb-16 {
    margin-bottom: calc(var(--spacing) * 16);
  }
  .mb-\[22px\] {
    margin-bottom: 22px;
  }
  .ml-auto {
    margin-left: auto;
  }
  .block {
    display: block;
  }
  .flex {
    display: flex;
  }
  .grid {
    display: grid;
  }
  .hidden {
    display: none;
  }
  .inline {
    display: inline;
  }
  .inline-flex {
    display: inline-flex;
  }
  .aspect-square {
    aspect-ratio: 1;
  }
  .h-2 {
    height: calc(var(--spacing) * 2);
  }
  .h-3 {
    height: calc(var(--spacing) * 3);
  }
  .h-3\.5 {
    height: calc(var(--spacing) * 3.5);
  }
  .h-4 {
    height: calc(var(--spacing) * 4);
  }
  .h-5 {
    height: calc(var(--spacing) * 5);
  }
  .h-6 {
    height: calc(var(--spacing) * 6);
  }
  .h-8 {
    height: calc(var(--spacing) * 8);
  }
  .h-10 {
    height: calc(var(--spacing) * 10);
  }
  .h-11 {
    height: calc(var(--spacing) * 11);
  }
  .h-12 {
    height: calc(var(--spacing) * 12);
  }
  .h-64 {
    height: calc(var(--spacing) * 64);
  }
  .h-96 {
    height: calc(var(--spacing) * 96);
  }
  .h-\[18px\] {
    height: 18px;
  }
  .h-fit {
    height: fit-content;
  }
  .h-full {
    height: 100%;
  }
  .max-h-11 {
    max-height: calc(var(--spacing) * 11);
  }
  .max-h-12 {
    max-height: calc(var(--spacing) * 12);
  }
  .max-h-80 {
    max-height: calc(var(--spacing) * 80);
  }
  .min-h-\[40px\] {
    min-height: 40px;
  }
  .min-h-\[90vh\] {
    min-height: 90vh;
  }
  .min-h-\[190px\] {
    min-height: 190px;
  }
  .min-h-\[200px\] {
    min-height: 200px;
  }
  .min-h-\[400px\] {
    min-height: 400px;
  }
  .min-h-screen {
    min-height: 100vh;
  }
  .w-2 {
    width: calc(var(--spacing) * 2);
  }
  .w-3 {
    width: calc(var(--spacing) * 3);
  }
  .w-3\.5 {
    width: calc(var(--spacing) * 3.5);
  }
  .w-4 {
    width: calc(var(--spacing) * 4);
  }
  .w-5 {
    width: calc(var(--spacing) * 5);
  }
  .w-6 {
    width: calc(var(--spacing) * 6);
  }
  .w-10 {
    width: calc(var(--spacing) * 10);
  }
  .w-12 {
    width: calc(var(--spacing) * 12);
  }
  .w-64 {
    width: calc(var(--spacing) * 64);
  }
  .w-96 {
    width: calc(var(--spacing) * 96);
  }
  .w-\[18px\] {
    width: 18px;
  }
  .w-auto {
    width: auto;
  }
  .w-fit {
    width: fit-content;
  }
  .w-full {
    width: 100%;
  }
  .max-w-2xl {
    max-width: var(--container-2xl);
  }
  .max-w-3xl {
    max-width: var(--container-3xl);
  }
  .max-w-\[120px\] {
    max-width: 120px;
  }
  .max-w-\[1400px\] {
    max-width: 1400px;
  }
  .max-w-lg {
    max-width: var(--container-lg);
  }
  .max-w-md {
    max-width: var(--container-md);
  }
  .max-w-xl {
    max-width: var(--container-xl);
  }
  .min-w-0 {
    min-width: calc(var(--spacing) * 0);
  }
  .min-w-8 {
    min-width: calc(var(--spacing) * 8);
  }
  .min-w-\[220px\] {
    min-width: 220px;
  }
  .flex-1 {
    flex: 1;
  }
  .flex-shrink-0,
  .shrink-0 {
    flex-shrink: 0;
  }
  .-translate-y-1\/2 {
    --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }
  .transform {
    transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,)
      var(--tw-skew-x,) var(--tw-skew-y,);
  }
  .animate-pulse {
    animation: var(--animate-pulse);
  }
  .cursor-pointer {
    cursor: pointer;
  }
  .resize {
    resize: both;
  }
  .grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .flex-col {
    flex-direction: column;
  }
  .flex-wrap {
    flex-wrap: wrap;
  }
  .items-baseline {
    align-items: baseline;
  }
  .items-center {
    align-items: center;
  }
  .items-start {
    align-items: flex-start;
  }
  .justify-between {
    justify-content: space-between;
  }
  .justify-center {
    justify-content: center;
  }
  .justify-end {
    justify-content: flex-end;
  }
  .gap-1 {
    gap: calc(var(--spacing) * 1);
  }
  .gap-1\.5 {
    gap: calc(var(--spacing) * 1.5);
  }
  .gap-2 {
    gap: calc(var(--spacing) * 2);
  }
  .gap-2\.5 {
    gap: calc(var(--spacing) * 2.5);
  }
  .gap-3 {
    gap: calc(var(--spacing) * 3);
  }
  .gap-4 {
    gap: calc(var(--spacing) * 4);
  }
  .gap-6 {
    gap: calc(var(--spacing) * 6);
  }
  .gap-8 {
    gap: calc(var(--spacing) * 8);
  }
  :where(.space-y-3 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(
      calc(var(--spacing) * 3) * var(--tw-space-y-reverse)
    );
    margin-block-end: calc(
      calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse))
    );
  }
  :where(.space-y-4 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(
      calc(var(--spacing) * 4) * var(--tw-space-y-reverse)
    );
    margin-block-end: calc(
      calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse))
    );
  }
  .overflow-hidden {
    overflow: hidden;
  }
  .overflow-y-auto {
    overflow-y: auto;
  }
  .rounded {
    border-radius: 0.25rem;
  }
  .rounded-2xl {
    border-radius: var(--radius-2xl);
  }
  .rounded-\[10px\] {
    border-radius: 10px;
  }
  .rounded-\[14px\] {
    border-radius: 14px;
  }
  .rounded-\[20px\] {
    border-radius: 20px;
  }
  .rounded-full {
    border-radius: 3.40282e38px;
  }
  .rounded-lg {
    border-radius: var(--radius-lg);
  }
  .rounded-md {
    border-radius: var(--radius-md);
  }
  .rounded-xl {
    border-radius: var(--radius-xl);
  }
  .border {
    border-style: var(--tw-border-style);
    border-width: 1px;
  }
  .border-t {
    border-top-style: var(--tw-border-style);
    border-top-width: 1px;
  }
  .border-b {
    border-bottom-style: var(--tw-border-style);
    
  }
  .border-\[\#3b6fd9\] {
    border-color: #3b6fd9;
  }
  .border-\[\#d7dbe0\] {
    border-color: #d7dbe0;
  }
  .border-\[\#e2e6ea\] {
    border-color: #e2e6ea;
  }
  .border-\[\#f0f2f5\] {
    border-color: #f0f2f5;
  }
  .border-gray-100 {
    border-color: var(--color-gray-100);
  }
  .border-gray-200 {
    border-top: 0px solid #829dd4;
  }
  .border-gray-300 {
    border-color: var(--color-gray-300);
  }
  .border-transparent {
    border-color: #0000;
  }
  .border-white\/10 {
    border-color: #ffffff1a;
  }
  @supports (color: color-mix(in lab, red, red)) {
    .border-white\/10 {
      border-color: color-mix(in oklab, var(--color-white) 10%, transparent);
    }
  }
  .border-white\/30 {
    border-color: #ffffff4d;
  }
  @supports (color: color-mix(in lab, red, red)) {
    .border-white\/30 {
      border-color: color-mix(in oklab, var(--color-white) 30%, transparent);
    }
  }
  .bg-\[\#2a4a8c\]\/15 {
    background-color: oklab(42.1464% -0.0142667 -0.115098/.15);
  }
  .bg-\[\#3b6fd9\] {
    background-color: #3b6fd9;
  }
  .bg-\[\#3b6fd9\]\/20 {
    background-color: oklab(56.3643% -0.0222467 -0.170706/.2);
  }
  .bg-\[\#16a34a\] {
    background-color: #16a34a;
  }
  .bg-\[\#ea580c\] {
    background-color: #ea580c;
  }
  .bg-\[\#f1f3f5\] {
    background-color: #f1f3f5;
  }
  .bg-\[\#f3f4f6\] {
    background-color: #f3f4f6;
  }
  .bg-\[\#f7f7f8\] {
    background-color: #f7f7f8;
  }
  .bg-\[var\(--blue-500\)\] {
    background-color: var(--blue-500);
  }
  .bg-gray-50 {
    background-color: var(--color-gray-50);
  }
  .bg-gray-100 {
    background-color:#fff;
  }
  .bg-gray-900 {
    background-color: var(--color-gray-900);
  }
  .bg-slate-200 {
    background-color: var(--color-slate-200);
  }
  .bg-transparent {
    background-color: #0000;
  }
  .bg-white {
    background-color: #eff6fd;
  }
  .bg-white\/10 {
    background-color: #ffffff1a;
  }
  @supports (color: color-mix(in lab, red, red)) {
    .bg-white\/10 {
      background-color: color-mix(
        in oklab,
        var(--color-white) 10%,
        transparent
      );
    }
  }
  .bg-white\/95 {
    background-color: #dce9f5;
  }
  @supports (color: color-mix(in lab, red, red)) {
    .bg-white\/95 {
      background-color: #ffffff;
    }
  }
  .bg-white\/98 {
    background-color: #dce9f5;
  }
  @supports (color: color-mix(in lab, red, red)) {
    .bg-white\/98 {
      background-color: color-mix(
        in oklab,
        var(--color-white) 98%,
        transparent
      );
    }
  }
  .bg-gradient-to-br {
    --tw-gradient-position: to bottom right in oklab;
    background-image: linear-gradient(var(--tw-gradient-stops));
  }
  .bg-gradient-to-r {
    --tw-gradient-position: to right in oklab;
    background-image: linear-gradient(var(--tw-gradient-stops));
  }
  .bg-gradient-to-t {
    --tw-gradient-position: to top in oklab;
    background-image: linear-gradient(var(--tw-gradient-stops));
  }
  .from-\[\#2a4a8c\] {
    --tw-gradient-from: #2a4a8c;
    --tw-gradient-stops: var(
      --tw-gradient-via-stops,
      var(--tw-gradient-position),
      var(--tw-gradient-from) var(--tw-gradient-from-position),
      var(--tw-gradient-to) var(--tw-gradient-to-position)
    );
  }
  .from-\[\#3b6fd9\] {
    --tw-gradient-from: #3b6fd9;
    --tw-gradient-stops: var(
      --tw-gradient-via-stops,
      var(--tw-gradient-position),
      var(--tw-gradient-from) var(--tw-gradient-from-position),
      var(--tw-gradient-to) var(--tw-gradient-to-position)
    );
  }
  .from-\[\#60a5fa\] {
    --tw-gradient-from: #60a5fa;
    --tw-gradient-stops: var(
      --tw-gradient-via-stops,
      var(--tw-gradient-position),
      var(--tw-gradient-from) var(--tw-gradient-from-position),
      var(--tw-gradient-to) var(--tw-gradient-to-position)
    );
  }
  .from-\[\#2563eb\] {
    --tw-gradient-from: #2563eb;
    --tw-gradient-stops: var(
      --tw-gradient-via-stops,
      var(--tw-gradient-position),
      var(--tw-gradient-from) var(--tw-gradient-from-position),
      var(--tw-gradient-to) var(--tw-gradient-to-position)
    );
  }
  .from-\[\#bfdbfe\] {
    --tw-gradient-from: #bfdbfe;
    --tw-gradient-stops: var(
      --tw-gradient-via-stops,
      var(--tw-gradient-position),
      var(--tw-gradient-from) var(--tw-gradient-from-position),
      var(--tw-gradient-to) var(--tw-gradient-to-position)
    );
  }
  .from-black\/60 {
    --tw-gradient-from: #0009;
  }
  @supports (color: color-mix(in lab, red, red)) {
    .from-black\/60 {
      --tw-gradient-from: color-mix(
        in oklab,
        var(--color-black) 60%,
        transparent
      );
    }
  }
  .from-black\/60 {
    --tw-gradient-stops: var(
      --tw-gradient-via-stops,
      var(--tw-gradient-position),
      var(--tw-gradient-from) var(--tw-gradient-from-position),
      var(--tw-gradient-to) var(--tw-gradient-to-position)
    );
  }
  .from-black\/80 {
    --tw-gradient-from: #000c;
  }
  @supports (color: color-mix(in lab, red, red)) {
    .from-black\/80 {
      --tw-gradient-from: color-mix(
        in oklab,
        var(--color-black) 80%,
        transparent
      );
    }
  }
  .from-black\/80 {
    --tw-gradient-stops: var(
      --tw-gradient-via-stops,
      var(--tw-gradient-position),
      var(--tw-gradient-from) var(--tw-gradient-from-position),
      var(--tw-gradient-to) var(--tw-gradient-to-position)
    );
  }
  .from-gray-100 {
    --tw-gradient-from: var(--color-gray-100);
    --tw-gradient-stops: var(
      --tw-gradient-via-stops,
      var(--tw-gradient-position),
      var(--tw-gradient-from) var(--tw-gradient-from-position),
      var(--tw-gradient-to) var(--tw-gradient-to-position)
    );
  }
  .from-white {
    --tw-gradient-from: var(--color-white);
    --tw-gradient-stops: var(
      --tw-gradient-via-stops,
      var(--tw-gradient-position),
      var(--tw-gradient-from) var(--tw-gradient-from-position),
      var(--tw-gradient-to) var(--tw-gradient-to-position)
    );
  }
  .from-white\/60 {
    --tw-gradient-from: #fff9;
  }
  @supports (color: color-mix(in lab, red, red)) {
    .from-white\/60 {
      --tw-gradient-from: color-mix(
        in oklab,
        var(--color-white) 60%,
        transparent
      );
    }
  }
  .from-white\/60 {
    --tw-gradient-stops: var(
      --tw-gradient-via-stops,
      var(--tw-gradient-position),
      var(--tw-gradient-from) var(--tw-gradient-from-position),
      var(--tw-gradient-to) var(--tw-gradient-to-position)
    );
  }
  .via-black\/40 {
    --tw-gradient-via: #0006;
  }
  @supports (color: color-mix(in lab, red, red)) {
    .via-black\/40 {
      --tw-gradient-via: color-mix(
        in oklab,
        var(--color-black) 40%,
        transparent
      );
    }
  }
  .via-black\/40 {
    --tw-gradient-via-stops:
      var(--tw-gradient-position),
      var(--tw-gradient-from) var(--tw-gradient-from-position),
      var(--tw-gradient-via) var(--tw-gradient-via-position),
      var(--tw-gradient-to) var(--tw-gradient-to-position);
    --tw-gradient-stops: var(--tw-gradient-via-stops);
  }
  .via-gray-50 {
    --tw-gradient-via: var(--color-gray-50);
    --tw-gradient-via-stops:
      var(--tw-gradient-position),
      var(--tw-gradient-from) var(--tw-gradient-from-position),
      var(--tw-gradient-via) var(--tw-gradient-via-position),
      var(--tw-gradient-to) var(--tw-gradient-to-position);
    --tw-gradient-stops: var(--tw-gradient-via-stops);
  }
  .via-transparent {
    --tw-gradient-via: transparent;
    --tw-gradient-via-stops:
      var(--tw-gradient-position),
      var(--tw-gradient-from) var(--tw-gradient-from-position),
      var(--tw-gradient-via) var(--tw-gradient-via-position),
      var(--tw-gradient-to) var(--tw-gradient-to-position);
    --tw-gradient-stops: var(--tw-gradient-via-stops);
  }
  .via-white\/92 {
    --tw-gradient-via: #ffffffeb;
  }
  @supports (color: color-mix(in lab, red, red)) {
    .via-white\/92 {
      --tw-gradient-via: color-mix(
        in oklab,
        var(--color-white) 92%,
        transparent
      );
    }
  }
  .via-white\/92 {
    --tw-gradient-via-stops:
      var(--tw-gradient-position),
      var(--tw-gradient-from) var(--tw-gradient-from-position),
      var(--tw-gradient-via) var(--tw-gradient-via-position),
      var(--tw-gradient-to) var(--tw-gradient-to-position);
    --tw-gradient-stops: var(--tw-gradient-via-stops);
  }
  .to-\[\#1a2f5c\] {
    --tw-gradient-to: #1a2f5c;
    --tw-gradient-stops: var(
      --tw-gradient-via-stops,
      var(--tw-gradient-position),
      var(--tw-gradient-from) var(--tw-gradient-from-position),
      var(--tw-gradient-to) var(--tw-gradient-to-position)
    );
  }
  .to-\[\#1e3a8a\] {
    --tw-gradient-to: #1e3a8a;
    --tw-gradient-stops: var(
      --tw-gradient-via-stops,
      var(--tw-gradient-position),
      var(--tw-gradient-from) var(--tw-gradient-from-position),
      var(--tw-gradient-to) var(--tw-gradient-to-position)
    );
  }
  .to-\[\#2a4a8c\] {
    --tw-gradient-to: #2a4a8c;
    --tw-gradient-stops: var(
      --tw-gradient-via-stops,
      var(--tw-gradient-position),
      var(--tw-gradient-from) var(--tw-gradient-from-position),
      var(--tw-gradient-to) var(--tw-gradient-to-position)
    );
  }
  .to-\[\#3b6fd9\] {
    --tw-gradient-to: #3b6fd9;
    --tw-gradient-stops: var(
      --tw-gradient-via-stops,
      var(--tw-gradient-position),
      var(--tw-gradient-from) var(--tw-gradient-from-position),
      var(--tw-gradient-to) var(--tw-gradient-to-position)
    );
  }
  .to-\[\#93c5fd\] {
    --tw-gradient-to: #93c5fd;
    --tw-gradient-stops: var(
      --tw-gradient-via-stops,
      var(--tw-gradient-position),
      var(--tw-gradient-from) var(--tw-gradient-from-position),
      var(--tw-gradient-to) var(--tw-gradient-to-position)
    );
  }
  .to-gray-200 {
    --tw-gradient-to: var(--color-gray-200);
    --tw-gradient-stops: var(
      --tw-gradient-via-stops,
      var(--tw-gradient-position),
      var(--tw-gradient-from) var(--tw-gradient-from-position),
      var(--tw-gradient-to) var(--tw-gradient-to-position)
    );
  }
  .to-slate-900\/5 {
    --tw-gradient-to: #0f172b0d;
  }
  @supports (color: color-mix(in lab, red, red)) {
    .to-slate-900\/5 {
      --tw-gradient-to: color-mix(
        in oklab,
        var(--color-slate-900) 5%,
        transparent
      );
    }
  }
  .to-slate-900\/5 {
    --tw-gradient-stops: var(
      --tw-gradient-via-stops,
      var(--tw-gradient-position),
      var(--tw-gradient-from) var(--tw-gradient-from-position),
      var(--tw-gradient-to) var(--tw-gradient-to-position)
    );
  }
  .to-transparent {
    --tw-gradient-to: transparent;
    --tw-gradient-stops: var(
      --tw-gradient-via-stops,
      var(--tw-gradient-position),
      var(--tw-gradient-from) var(--tw-gradient-from-position),
      var(--tw-gradient-to) var(--tw-gradient-to-position)
    );
  }
  .to-white\/20 {
    --tw-gradient-to: #fff3;
  }
  @supports (color: color-mix(in lab, red, red)) {
    .to-white\/20 {
      --tw-gradient-to: color-mix(
        in oklab,
        var(--color-white) 20%,
        transparent
      );
    }
  }
  .to-white\/20 {
    --tw-gradient-stops: var(
      --tw-gradient-via-stops,
      var(--tw-gradient-position),
      var(--tw-gradient-from) var(--tw-gradient-from-position),
      var(--tw-gradient-to) var(--tw-gradient-to-position)
    );
  }
  .stroke-\[1\.9\] {
    stroke-width: 1.9px;
  }
  .object-contain {
    object-fit: contain;
  }
  .object-cover {
    object-fit: cover;
  }
  .object-\[72\%_center\] {
    object-position: 72% center;
  }
  .object-left {
    object-position: left;
  }
  .p-2 {
    padding: calc(var(--spacing) * 2);
  }
  .p-3 {
    padding: calc(var(--spacing) * 3);
  }
  .p-5 {
    padding: calc(var(--spacing) * 5);
  }
  .p-6 {
    padding: calc(var(--spacing) * 6);
  }
  .px-2 {
    padding-inline: calc(var(--spacing) * 2);
  }
  .px-2\.5 {
    padding-inline: calc(var(--spacing) * 2.5);
  }
  .px-3 {
    padding-inline: calc(var(--spacing) * 3);
  }
  .px-4 {
    padding-inline: calc(var(--spacing) * 4);
  }
  .px-6 {
    padding-inline: calc(var(--spacing) * 6);
  }
  .px-8 {
    padding-inline: calc(var(--spacing) * 8);
  }
  .px-\[18px\] {
    padding-inline: 18px;
  }
  .px-\[22px\] {
    padding-inline: 22px;
  }
  .py-0\.5 {
    padding-block: calc(var(--spacing) * 0.5);
  }
  .py-1 {
    padding-block: calc(var(--spacing) * 1);
  }
  .py-2 {
    padding-block: calc(var(--spacing) * 2);
  }
  .py-2\.5 {
    padding-block: calc(var(--spacing) * 2.5);
  }
  .py-3 {
    padding-block: calc(var(--spacing) * 3);
  }
  .py-4 {
    padding-block: calc(var(--spacing) * 4);
  }
  .py-16 {
    padding-block: calc(var(--spacing) * 16);
  }
  .py-\[7px\] {
    padding-block: 7px;
  }
  .py-\[11px\] {
    padding-block: 11px;
  }
  .pt-2 {
    padding-top: calc(var(--spacing) * 2);
  }
  .pt-4 {
    padding-top: calc(var(--spacing) * 4);
  }
  .pt-8 {
    padding-top: calc(var(--spacing) * 8);
  }
  .pt-14 {
    padding-top: calc(var(--spacing) * 14);
  }
  .pt-\[22px\] {
    padding-top: 22px;
  }
  .pt-\[10px\] {
    padding-top: 10px;
  }
  .pr-4 {
    padding-right: calc(var(--spacing) * 4);
  }
  .pr-10 {
    padding-right: calc(var(--spacing) * 10);
  }
  .pb-4 {
    padding-bottom: calc(var(--spacing) * 4);
  }
  .pb-6 {
    padding-bottom: calc(var(--spacing) * 6);
  }
  .pb-14 {
    padding-bottom: calc(var(--spacing) * 14);
  }
  .pb-16 {
    padding-bottom: calc(var(--spacing) * 16);
  }
  .pb-36 {
    padding-bottom: calc(var(--spacing) * 36);
  }
  .pl-4 {
    padding-left: calc(var(--spacing) * 4);
  }
  .pl-12 {
    padding-left: calc(var(--spacing) * 12);
  }
  .text-center {
    text-align: center;
  }
  .text-2xl {
    font-size: var(--text-2xl);
    line-height: var(--tw-leading, var(--text-2xl--line-height));
  }
  .text-3xl {
    font-size: var(--text-3xl);
    line-height: var(--tw-leading, var(--text-3xl--line-height));
  }
  .text-4xl {
    font-size: var(--text-4xl);
    line-height: var(--tw-leading, var(--text-4xl--line-height));
  }
  .text-base {
    font-size: var(--text-base);
    line-height: var(--tw-leading, var(--text-base--line-height));
  }
  .text-lg {
    font-size: var(--text-lg);
    line-height: var(--tw-leading, var(--text-lg--line-height));
  }
  .text-sm {
    font-size: var(--text-sm);
    line-height: var(--tw-leading, var(--text-sm--line-height));
  }
  .text-xl {
    font-size: var(--text-xl);
    line-height: var(--tw-leading, var(--text-xl--line-height));
  }
  .text-xs {
    font-size: var(--text-xs);
    line-height: var(--tw-leading, var(--text-xs--line-height));
  }
  .text-\[1\.75rem\] {
    font-size: 1.75rem;
  }
  .text-\[10px\] {
    font-size: 10px;
  }
  .text-\[11px\] {
    font-size: 11px;
  }
  .text-\[13px\] {
    font-size: 13px;
  }
  .text-\[15px\] {
    font-size: 15px;
  }
  .leading-6 {
    --tw-leading: calc(var(--spacing) * 6);
    line-height: calc(var(--spacing) * 6);
  }
  .leading-none {
    --tw-leading: 1;
    line-height: 1;
  }
  .leading-snug {
    --tw-leading: var(--leading-snug);
    line-height: var(--leading-snug);
  }
  .leading-tight {
    --tw-leading: var(--leading-tight);
    line-height: var(--leading-tight);
  }
  .font-bold {
    --tw-font-weight: var(--font-weight-bold);
    font-weight: var(--font-weight-bold);
  }
  .font-medium {
    --tw-font-weight: var(--font-weight-medium);
    font-weight: var(--font-weight-medium);
  }
  .font-semibold {
    --tw-font-weight: var(--font-weight-semibold);
    font-weight: var(--font-weight-semibold);
  }
  .tracking-wide {
    --tw-tracking: var(--tracking-wide);
    letter-spacing: var(--tracking-wide);
  }
  .tracking-wider {
    --tw-tracking: var(--tracking-wider);
    letter-spacing: var(--tracking-wider);
  }
  .whitespace-nowrap {
    white-space: nowrap;
  }
  .text-\[\#1a1a1a\] {
    color: #1a1a1a;
  }
  .text-\[\#1e1e1e\] {
    color: #1e1e1e;
  }
  .text-\[\#2a4a8c\] {
    color: #2a4a8c;
  }
  .text-\[\#3b6fd9\] {
    color: #3b6fd9;
  }
  .text-\[\#666\] {
    color: #666;
  }
  .text-\[\#707e8c\] {
    color: #707e8c;
  }
  .text-\[var\(--blue-500\)\] {
    color: var(--blue-500);
  }
  .text-gray-400 {
    color: var(--color-gray-400);
  }
  .text-gray-500 {
    color: var(--color-gray-500);
  }
  .text-gray-600 {
    color: var(--color-gray-600);
  }
  .text-gray-700 {
    color: var(--color-gray-700);
  }
  .text-gray-800 {
    color: var(--color-gray-800);
  }
  .text-gray-900 {
    color: var(--color-gray-900);
  }
  .text-white {
    color: var(--color-white);
  }
  .text-white\/50 {
    color: #ffffff80;
  }
  @supports (color: color-mix(in lab, red, red)) {
    .text-white\/50 {
      color: color-mix(in oklab, var(--color-white) 50%, transparent);
    }
  }
  .text-white\/60 {
    color: #fff9;
  }
  @supports (color: color-mix(in lab, red, red)) {
    .text-white\/60 {
      color: color-mix(in oklab, var(--color-white) 60%, transparent);
    }
  }
  .text-white\/70 {
    color: #ffffffb3;
  }
  @supports (color: color-mix(in lab, red, red)) {
    .text-white\/70 {
      color: color-mix(in oklab, var(--color-white) 70%, transparent);
    }
  }
  .text-white\/80 {
    color: #fffc;
  }
  @supports (color: color-mix(in lab, red, red)) {
    .text-white\/80 {
      color: color-mix(in oklab, var(--color-white) 80%, transparent);
    }
  }
  .uppercase {
    text-transform: uppercase;
  }
  .no-underline {
    text-decoration-line: none;
  }
  .accent-\[\#3b6fd9\] {
    accent-color: #3b6fd9;
  }
  .opacity-0 {
    opacity: 0;
  }
  .opacity-30 {
    opacity: 0.3;
  }
  .opacity-50 {
    opacity: 0.5;
  }
  .opacity-100 {
    opacity: 1;
  }
  .shadow-\[0_1px_2px_rgba\(16\,24\,40\,0\.04\)\] {
    --tw-shadow: 0 1px 2px var(--tw-shadow-color, #1018280a);
    box-shadow:
      var(--tw-inset-shadow), var(--tw-inset-ring-shadow),
      var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }
  .shadow-lg {
    --tw-shadow:
      0 10px 15px -3px var(--tw-shadow-color, #0000001a),
      0 4px 6px -4px var(--tw-shadow-color, #0000001a);
    box-shadow:
      var(--tw-inset-shadow), var(--tw-inset-ring-shadow),
      var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }
  .shadow-md {
    --tw-shadow:
      0 4px 6px -1px var(--tw-shadow-color, #0000001a),
      0 2px 4px -2px var(--tw-shadow-color, #0000001a);
    box-shadow:
      var(--tw-inset-shadow), var(--tw-inset-ring-shadow),
      var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }
  .shadow-sm {
    --tw-shadow:
      0 1px 3px 0 var(--tw-shadow-color, #0000001a),
      0 1px 2px -1px var(--tw-shadow-color, #0000001a);
    box-shadow:
      var(--tw-inset-shadow), var(--tw-inset-ring-shadow),
      var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }
  .shadow-xl {
    --tw-shadow:
      0 20px 25px -5px var(--tw-shadow-color, #0000001a),
      0 8px 10px -6px var(--tw-shadow-color, #0000001a);
    box-shadow:
      var(--tw-inset-shadow), var(--tw-inset-ring-shadow),
      var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }
  .blur-3xl {
    --tw-blur: blur(var(--blur-3xl));
    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-blur-sm {
    --tw-backdrop-blur: blur(var(--blur-sm));
    -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,);
  }
  .backdrop-blur-xl {
    --tw-backdrop-blur: blur(var(--blur-xl));
    -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-\[transform\,box-shadow\,border-color\] {
    transition-property: transform, box-shadow, border-color;
    transition-timing-function: var(
      --tw-ease,
      var(--default-transition-timing-function)
    );
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
  .transition-all {
    transition-property: all;
    transition-timing-function: var(
      --tw-ease,
      var(--default-transition-timing-function)
    );
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
  .transition-colors {
    transition-property:
      color, background-color, border-color, outline-color,
      text-decoration-color, fill, stroke, --tw-gradient-from,
      --tw-gradient-via, --tw-gradient-to;
    transition-timing-function: var(
      --tw-ease,
      var(--default-transition-timing-function)
    );
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
  .transition-opacity {
    transition-property: opacity;
    transition-timing-function: var(
      --tw-ease,
      var(--default-transition-timing-function)
    );
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
  .transition-transform {
    transition-property: transform, translate, scale, rotate;
    transition-timing-function: var(
      --tw-ease,
      var(--default-transition-timing-function)
    );
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
  .duration-300 {
    --tw-duration: 0.3s;
    transition-duration: 0.3s;
  }
  .duration-1000 {
    --tw-duration: 1s;
    transition-duration: 1s;
  }
  .ease-out {
    --tw-ease: var(--ease-out);
    transition-timing-function: var(--ease-out);
  }
  .\[background\:radial-gradient\(circle_at_80\%_30\%\,rgba\(255\,255\,255\,0\.15\)\,transparent_50\%\)\] {
    background: radial-gradient(circle at 80% 30%, #ffffff26, #0000 50%);
  }
  @media (hover: hover) {
    .group-hover\:visible:is(:where(.group):hover *) {
      visibility: visible;
    }
    .group-hover\:scale-105:is(:where(.group):hover *) {
      --tw-scale-x: 105%;
      --tw-scale-y: 105%;
      --tw-scale-z: 105%;
      scale: var(--tw-scale-x) var(--tw-scale-y);
    }
    .group-hover\:opacity-100:is(:where(.group):hover *) {
      opacity: 1;
    }
  }
  .last\:mb-0:last-child {
    margin-bottom: calc(var(--spacing) * 0);
  }
  .last\:border-b-0:last-child {
    border-bottom-style: var(--tw-border-style);
    border-bottom-width: 0;
  }
  @media (hover: hover) {
    .hover\:z-\[2\]:hover {
      z-index: 2;
    }
    .hover\:-translate-y-1\.5:hover {
      --tw-translate-y: calc(var(--spacing) * -1.5);
      translate: var(--tw-translate-x) var(--tw-translate-y);
    }
    .hover\:border-\[\#b8d0f5\]:hover {
      border-color: #b8d0f5;
    }
    .hover\:border-gray-300:hover {
      border-color: var(--color-gray-300);
    }
    .hover\:bg-\[\#2a4a8c\]:hover {
      background-color: #2a4a8c;
    }
    .hover\:bg-\[\#e8effc\]:hover {
      background-color: #e8effc;
    }
    .hover\:bg-\[var\(--blue-100\)\]:hover {
      background-color: var(--blue-100);
    }
    .hover\:bg-gray-50:hover {
      background-color: var(--color-gray-50);
    }
    .hover\:bg-gray-100:hover {
      background-color: var(--color-gray-100);
    }
    .hover\:bg-white\/20:hover {
      background-color: #fff3;
    }
    @supports (color: color-mix(in lab, red, red)) {
      .hover\:bg-white\/20:hover {
        background-color: color-mix(
          in oklab,
          var(--color-white) 20%,
          transparent
        );
      }
    }
    .hover\:text-\[\#3b6fd9\]:hover {
      color: #3b6fd9;
    }
    .hover\:text-\[\#93c5fd\]:hover {
      color: #93c5fd;
    }
    .hover\:text-\[var\(--blue-300\)\]:hover {
      color: var(--blue-300);
    }
    .hover\:text-\[var\(--blue-500\)\]:hover {
      color: var(--blue-500);
    }
    .hover\:text-\[var\(--blue-700\)\]:hover {
      color: var(--blue-700);
    }
    .hover\:text-gray-800:hover {
      color: var(--color-gray-800);
    }
    .hover\:text-white:hover {
      color: var(--color-white);
    }
    .hover\:shadow-xl:hover {
      --tw-shadow:
        0 20px 25px -5px var(--tw-shadow-color, #0000001a),
        0 8px 10px -6px var(--tw-shadow-color, #0000001a);
      box-shadow:
        var(--tw-inset-shadow), var(--tw-inset-ring-shadow),
        var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
    }
    .hover\:shadow-gray-900\/10:hover {
      --tw-shadow-color: #1018281a;
    }
    @supports (color: color-mix(in lab, red, red)) {
      .hover\:shadow-gray-900\/10:hover {
        --tw-shadow-color: color-mix(
          in oklab,
          color-mix(in oklab, var(--color-gray-900) 10%, transparent)
            var(--tw-shadow-alpha),
          transparent
        );
      }
    }
  }
  .focus\:border-\[\#3b6fd9\]:focus {
    border-color: #3b6fd9;
  }
  .focus\:border-\[\#93b4f0\]:focus {
    border-color: #93b4f0;
  }
  .focus\:border-\[var\(--blue-300\)\]:focus {
    border-color: var(--blue-300);
  }
  .focus\:bg-white:focus {
    background-color: var(--color-white);
  }
  .focus\:ring-2:focus {
    --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0
      calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow:
      var(--tw-inset-shadow), var(--tw-inset-ring-shadow),
      var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }
  .focus\:ring-\[\#3b6fd9\]\/15:focus {
    --tw-ring-color: oklab(56.3643% -0.0222467 -0.170706/.15);
  }
  .focus\:ring-\[\#3b6fd9\]\/20:focus {
    --tw-ring-color: oklab(56.3643% -0.0222467 -0.170706/.2);
  }
  .focus\:outline-none:focus {
    --tw-outline-style: none;
    outline-style: none;
  }
  @media (prefers-reduced-motion: reduce) {
    .motion-reduce\:transition-none {
      transition-property: none;
    }
    @media (hover: hover) {
      .motion-reduce\:hover\:translate-y-0:hover {
        --tw-translate-y: calc(var(--spacing) * 0);
        translate: var(--tw-translate-x) var(--tw-translate-y);
      }
    }
  }
  @media (width>=40rem) {
    .sm\:block {
      display: block;
    }
    .sm\:w-\[200px\] {
      width: 200px;
    }
    .sm\:w-\[220px\] {
      width: 220px;
    }
    .sm\:grid-cols-2 {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .sm\:flex-row {
      flex-direction: row;
    }
    .sm\:items-center {
      align-items: center;
    }
    .sm\:p-6 {
      padding: calc(var(--spacing) * 6);
    }
    .sm\:text-5xl {
      font-size: var(--text-5xl);
      line-height: var(--tw-leading, var(--text-5xl--line-height));
    }
    .sm\:text-xl {
      font-size: var(--text-xl);
      line-height: var(--tw-leading, var(--text-xl--line-height));
    }
  }
  @media (width>=48rem) {
    .md\:grid-cols-2 {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }
  @media (width>=64rem) {
    .lg\:sticky {
      position: sticky;
    }
    .lg\:top-\[120px\] {
      top: 120px;
    }
    .lg\:order-1 {
      order: 1;
    }
    .lg\:order-2 {
      order: 2;
    }
    .lg\:block {
      display: block;
    }
    .lg\:flex {
      display: flex;
    }
    .lg\:inline-flex {
      display: inline-flex;
    }
    .lg\:hidden {
      display: none;
    }
    .lg\:grid-cols-4 {
      grid-template-columns: repeat(4, minmax(0, 1fr));
    }
    .lg\:grid-cols-\[280px_minmax\(0\,1fr\)\] {
      grid-template-columns: 280px minmax(0, 1fr);
    }
    .lg\:flex-row {
      flex-direction: row;
    }
    .lg\:items-center {
      align-items: center;
    }
    .lg\:gap-4 {
      gap: calc(var(--spacing) * 4);
    }
    .lg\:gap-6 {
      gap: calc(var(--spacing) * 6);
    }
    .lg\:gap-12 {
      gap: calc(var(--spacing) * 12);
    }
    .lg\:gap-16 {
      gap: calc(var(--spacing) * 16);
    }
    .lg\:p-8 {
      padding: calc(var(--spacing) * 8);
    }
    .lg\:px-6 {
      padding-inline: calc(var(--spacing) * 6);
    }
    .lg\:py-24 {
      padding-block: calc(var(--spacing) * 24);
    }
    .lg\:pt-16 {
      padding-top: calc(var(--spacing) * 16);
    }
    .lg\:text-3xl {
      font-size: var(--text-3xl);
      line-height: var(--tw-leading, var(--text-3xl--line-height));
    }
    .lg\:text-4xl {
      font-size: var(--text-4xl);
      line-height: var(--tw-leading, var(--text-4xl--line-height));
    }
    .lg\:text-6xl {
      font-size: var(--text-6xl);
      line-height: var(--tw-leading, var(--text-6xl--line-height));
    }
    .lg\:text-base {
      font-size: var(--text-base);
      line-height: var(--tw-leading, var(--text-base--line-height));
    }
  }
  @media (width>=80rem) {
    .xl\:grid-cols-3 {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }
  }

  /* Выше слоя components: отступ шапки #header сверху +10px к py-4 */
  #header.header.py-4 {
    padding-top: calc(var(--spacing) * 4 + 10px);
    padding-bottom: calc(var(--spacing) * 4);
  }
}
@property --tw-translate-x {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}
@property --tw-translate-y {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}
@property --tw-translate-z {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}
@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-space-y-reverse {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}
@property --tw-border-style {
  syntax: "*";
  inherits: false;
  initial-value: solid;
}
@property --tw-gradient-position {
  syntax: "*";
  inherits: false;
}
@property --tw-gradient-from {
  syntax: "<color>";
  inherits: false;
  initial-value: #0000;
}
@property --tw-gradient-via {
  syntax: "<color>";
  inherits: false;
  initial-value: #0000;
}
@property --tw-gradient-to {
  syntax: "<color>";
  inherits: false;
  initial-value: #0000;
}
@property --tw-gradient-stops {
  syntax: "*";
  inherits: false;
}
@property --tw-gradient-via-stops {
  syntax: "*";
  inherits: false;
}
@property --tw-gradient-from-position {
  syntax: "<length-percentage>";
  inherits: false;
  initial-value: 0%;
}
@property --tw-gradient-via-position {
  syntax: "<length-percentage>";
  inherits: false;
  initial-value: 50%;
}
@property --tw-gradient-to-position {
  syntax: "<length-percentage>";
  inherits: false;
  initial-value: 100%;
}
@property --tw-leading {
  syntax: "*";
  inherits: false;
}
@property --tw-font-weight {
  syntax: "*";
  inherits: false;
}
@property --tw-tracking {
  syntax: "*";
  inherits: false;
}
@property --tw-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-shadow-color {
  syntax: "*";
  inherits: false;
}
@property --tw-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}
@property --tw-inset-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-inset-shadow-color {
  syntax: "*";
  inherits: false;
}
@property --tw-inset-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}
@property --tw-ring-color {
  syntax: "*";
  inherits: false;
}
@property --tw-ring-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-inset-ring-color {
  syntax: "*";
  inherits: false;
}
@property --tw-inset-ring-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-ring-inset {
  syntax: "*";
  inherits: false;
}
@property --tw-ring-offset-width {
  syntax: "<length>";
  inherits: false;
  initial-value: 0;
}
@property --tw-ring-offset-color {
  syntax: "*";
  inherits: false;
  initial-value: #fff;
}
@property --tw-ring-offset-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@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;
}
@property --tw-duration {
  syntax: "*";
  inherits: false;
}
@property --tw-ease {
  syntax: "*";
  inherits: false;
}
@property --tw-scale-x {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}
@property --tw-scale-y {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}
@property --tw-scale-z {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}

@keyframes pulse {
  50% {
    opacity: 0.5;
  }
}

.cart-page {
  padding: 20px 0 36px;
}

.cart-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 16px;
  margin-bottom: 16px;
}

.cart-head h1 {
  margin: 0;
  font-size: 28px;
  line-height: 1.15;
  color: var(--text);
}

.cart-head p {
  margin: 0;
  font-size: 14px;
  line-height: 1.45;
  color: var(--gray-600);
}

.cart-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 18px;
  align-items: start;
}

.cart-items-card,
.cart-summary-card {
  border: 1px solid var(--gray-200);
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 2px 14px rgba(20, 23, 28, 0.04);
}

.cart-items-card {
  padding: 16px;
}

.cart-items-card__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}

.cart-items-card__head h2,
.cart-summary-card h2 {
  margin: 0;
  font-size: 18px;
  color: var(--text);
}

.cart-clear-btn {
  border: 0;
  background: transparent;
  color: var(--gray-500);
  text-decoration: underline;
  cursor: pointer;
}

.cart-items-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin: 0;
  padding: 0;
  list-style: none;
  background: #f3f6fa;
  border: 1px solid #d9e1eb;
  border-radius: 14px;
  padding: 10px;
}

.cart-item {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr) auto;
  gap: 12px;
  padding: 12px;
  border: 1px solid #cfd8e3;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 2px 10px rgba(20, 23, 28, 0.08);
  transition: box-shadow .18s ease, border-color .18s ease;
  position: relative;
}

.cart-item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 10px;
  bottom: 10px;
  width: 3px;
  border-radius: 3px;
  background: #d7e4ff;
}

.cart-item:hover {
  border-color: #b8c6d8;
  box-shadow: 0 6px 18px rgba(20, 23, 28, 0.12);
}

.cart-item__image {
  width: 92px;
  height: 92px;
  border-radius: 10px;
  overflow: hidden;
  background: var(--gray-100);
}

.cart-item__image img,
.cart-item__fallback {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cart-item__name {
  display: inline-block;
  color: var(--text);
  font-weight: 500;
  text-decoration: none;
  font-size: 15px;
  line-height: 1.4;
}

.cart-item__name:hover {
  color: var(--blue-500);
}

.cart-item__sku {
  margin-top: 6px;
  font-size: 12px;
  color: var(--gray-600);
}

.cart-item__controls {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: space-between;
  gap: 8px;
}

.cart-item__line-total {
  font-size: 16px;
  font-weight: 600;
  color: var(--text);
  white-space: nowrap;
}

.cart-item__remove {
  border: 0;
  background: transparent;
  color: #c33838;
  cursor: pointer;
}

.cart-empty {
  text-align: center;
  border: 1px dashed var(--gray-200);
  border-radius: 12px;
  padding: 28px 16px;
}

.cart-empty h3 {
  margin: 0 0 8px;
}

.cart-empty p {
  margin: 0 0 14px;
  color: var(--gray-500);
}

.cart-summary-card {
  padding: 16px;
  position: sticky;
  top: 88px;
}

.cart-summary-card dl {
  margin: 14px 0 0;
}

.cart-summary-card dl > div {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
  font-size: 14px;
  color: var(--gray-700);
}

.cart-summary-amount {
  color: var(--text);
}

.cart-summary-amount dd {
  font-weight: 700;
}

.cart-summary-total {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--gray-100);
  font-weight: 600;
  font-size: 16px;
  color: var(--text);
}

.cart-checkout-btn,
.cart-continue-btn {
  width: 100%;
  margin-top: 12px;
  text-align: center;
}

.cart-continue-btn {
  display: inline-block;
  text-decoration: none;
}

/* Убираем двойные боковые отступы у вложенных контейнеров в основном контенте. */
.container .container {
  max-width: 100%;
  padding-left: 0;
  padding-right: 0;
}

.cart-confirm-modal {
  position: fixed;
  inset: 0;
  z-index: 1200;
}

.cart-confirm-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.45);
}

.cart-confirm-modal__dialog {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: min(92vw, 420px);
  background: #fff;
  border-radius: 14px;
  padding: 16px;
  box-shadow: 0 18px 46px rgba(15, 23, 42, 0.28);
}

.cart-confirm-modal__dialog h3 {
  margin: 0;
  font-size: 20px;
}

.cart-confirm-modal__dialog p {
  margin: 10px 0 0;
  color: #5b6474;
}

.cart-confirm-modal__actions {
  margin-top: 16px;
  display: flex;
  gap: 8px;
  justify-content: flex-end;
}

@media (max-width: 980px) {
  .cart-layout {
    grid-template-columns: 1fr;
  }

  .cart-summary-card {
    position: static;
  }
}

@media (max-width: 700px) {
  .cart-head {
    flex-direction: column;
    align-items: flex-start;
  }

  .cart-item {
    grid-template-columns: 72px minmax(0, 1fr);
  }

  .cart-item__image {
    width: 72px;
    height: 72px;
  }

  .cart-item__controls {
    grid-column: 1 / -1;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
  }
}

.top-bar-account__button {
  border: 0;
  background: transparent;
  padding: 0;
  cursor: pointer;
  font: inherit;
}

.top-bar-account__auth-state {
  color: #4b5563;
}

.auth-modal {
  position: fixed;
  inset: 0;
  z-index: 1400;
  display: grid;
  place-items: center;
}

.auth-modal[hidden] {
  display: none;
}

.auth-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(17, 24, 39, 0.45);
}

.auth-modal__dialog {
  position: relative;
  width: min(980px, calc(100vw - 28px));
  max-height: calc(100vh - 28px);
  overflow: auto;
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  border: 1px solid #dbe6f8;
  border-radius: 16px;
  padding: 22px;
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.28);
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.18s ease, transform 0.18s ease;
}

.auth-modal.active .auth-modal__dialog {
  opacity: 1;
  transform: translateY(0);
}

.auth-modal__dialog--small {
  width: min(460px, calc(100vw - 32px));
}

.auth-modal__close {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 8px;
  background: #eef2f9;
  color: #475569;
  cursor: pointer;
}

.auth-modal__close:hover {
  background: #e2e8f0;
}

.auth-modal__title {
  margin: 0;
  color: #1f2937;
  font-size: 32px;
  font-weight: 700;
  line-height: 1.2;
}

.auth-modal__lead {
  margin: 8px 0 16px;
  color: #64748b;
  font-size: 14px;
}

.auth-modal__switch {
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin-bottom: 16px;
  padding: 4px;
  border: 1px solid #cddbf3;
  border-radius: 12px;
  background: #eef4ff;
}

.auth-person-switch {
  border: 1px solid transparent;
  border-radius: 9px;
  background: transparent;
  padding: 10px 12px;
  font-size: 17px;
  font-weight: 600;
  color: #334155;
  cursor: pointer;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.auth-person-switch.is-active {
  background: #fff;
  border-color: #94b6ee;
  color: #2457c5;
  box-shadow: 0 1px 0 rgba(59, 111, 217, 0.15);
}

.auth-modal__errors {
  margin: 8px 0 12px;
  padding: 10px 12px;
  border-radius: 8px;
  background: #fee2e2;
  color: #991b1b;
  font-size: 14px;
}

.auth-modal__errors p + p {
  margin-top: 4px;
}

.auth-modal__callback-success {
  margin: 8px 0 0;
  padding: 14px 16px;
  border-radius: 12px;
  background: #ecfdf5;
  border: 1px solid #a7f3d0;
  color: #065f46;
  font-size: 15px;
  line-height: 1.45;
}

.auth-modal__callback-success p {
  margin: 0;
}

.auth-form {
  display: grid;
  gap: 12px;
}

.auth-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px 18px;
}

.auth-form label {
  display: grid;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  color: #334155;
  letter-spacing: 0.01em;
}

.auth-form input,
.auth-form textarea {
  width: 100%;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  padding: 8px 10px;
  font-size: 14px;
  background: #fff;
  color: #1f2937;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.auth-form input:focus,
.auth-form textarea:focus {
  outline: none;
  border-color: #3b6fd9;
  box-shadow: 0 0 0 3px rgba(59, 111, 217, 0.16);
}

.auth-form label.auth-checkbox {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  grid-template-columns: none;
  gap: 10px;
  font-size: 13px;
  font-weight: 500;
  color: #475569;
  line-height: 1.35;
}

.auth-form label.auth-checkbox input[type='checkbox'] {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  margin: 0;
}

.auth-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 4px;
}

.auth-actions .btn-primary {
  min-width: 220px;
}

#loginModal .auth-alt-link {
  margin-top: 10px;
  display: flex;
  justify-content: center;
}

#loginModal .auth-alt-link__a {
  color: #3b6fd9;
  font-weight: 700;
  text-decoration: none;
  padding: 6px 10px;
  border-radius: 10px;
}

#loginModal .auth-alt-link__a:hover {
  background: rgba(59, 111, 217, 0.1);
  text-decoration: underline;
}

#loginModal .auth-actions .btn-primary {
  width: 100%;
  min-width: 0;
}

#loginModal .auth-form {
  gap: 14px;
}

.account-page {
  padding: 26px 0 52px;
  background: linear-gradient(180deg, #f8fbff 0%, #ffffff 42%);
}

.account-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 14px;
}

.account-tab-btn {
  border: 1px solid #cfdcf3;
  background: #fff;
  color: #334155;
  border-radius: 10px;
  padding: 8px 12px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}

.account-tab-btn.is-active {
  background: #3b6fd9;
  border-color: #3b6fd9;
  color: #fff;
}

.account-card {
  border: 1px solid #dbe6f8;
  border-radius: 16px;
  background: #fff;
  padding: 22px;
  margin-bottom: 20px;
  box-shadow: 0 14px 36px rgba(15, 23, 42, 0.06);
}

.account-card--hero {
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}

.account-hero {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 20px;
  margin-bottom: 16px;
}

.account-hero__title h1 {
  margin: 0;
  font-size: 20px;
  line-height: 1.15;
  color: #1f2937;
}

.account-hero__title p {
  margin: 10px 0 0;
  color: #64748b;
  max-width: 690px;
}

.account-hero__meta {
  display: grid;
  gap: 8px;
  justify-items: end;
}

.account-badge {
  display: inline-flex;
  align-items: center;
  padding: 8px 12px;
  border-radius: 999px;
  background: #eef4ff;
  border: 1px solid #cdddff;
  color: #2557c4;
  font-size: 13px;
  font-weight: 600;
}

.account-hero__email {
  color: #475569;
  font-size: 14px;
}

.account-card__head h1,
.account-card__head h2 {
  margin: 0 0 8px;
  color: #1f2937;
}

.account-card__head p {
  margin: 0;
  color: #64748b;
}

.account-form-errors {
  margin: 12px 0;
  padding: 10px 12px;
  border-radius: 8px;
  background: #fee2e2;
  color: #991b1b;
}

.account-form {
  display: grid;
  gap: 16px;
  margin-top: 10px;
}

.account-form__switch {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  padding: 4px;
  border: 1px solid #cddbf3;
  border-radius: 12px;
  background: #eef4ff;
}

.account-switch-item {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: 10px;
  border: 1px solid transparent;
  min-height: 44px;
  color: #334155;
  font-weight: 600;
  cursor: pointer;
}

.account-switch-item:has(input:checked) {
  background: #fff;
  border-color: #94b6ee;
  color: #2457c5;
}

.account-switch-item input {
  accent-color: #3b6fd9;
}

.account-section-title {
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #3b6fd9;
  margin-top: 4px;
}

.account-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 18px;
}

.account-grid label,
.account-form__scope {
  display: grid;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  color: #334155;
}

.account-grid input,
.account-form__scope textarea {
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  padding: 8px 10px;
  font-size: 14px;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.account-grid input:focus,
.account-form__scope textarea:focus {
  outline: none;
  border-color: #3b6fd9;
  box-shadow: 0 0 0 3px rgba(59, 111, 217, 0.16);
}

.account-grid label.account-form__vat {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  grid-template-columns: none;
  gap: 8px;
  font-size: 13px;
  font-weight: 600;
  color: #475569;
}

.account-grid label.account-form__vat input[type='checkbox'] {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  margin: 0;
}

.account-actions {
  display: flex;
  justify-content: flex-end;
}

.account-actions .btn-primary {
  min-width: 240px;
}

.account-form-success {
  margin: 12px 0;
  padding: 10px 12px;
  border-radius: 8px;
  background: #dcfce7;
  color: #166534;
}

.account-orders table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}

.account-orders th,
.account-orders td {
  border-bottom: 1px solid #e6edf8;
  text-align: left;
  padding: 12px 10px;
}

.account-orders th {
  color: #64748b;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.account-orders__number {
  font-weight: 700;
  color: #1f2937;
}

.account-status {
  display: inline-flex;
  align-items: center;
  padding: 5px 10px;
  border-radius: 999px;
  background: #eff6ff;
  border: 1px solid #cddfff;
  color: #1d4ed8;
  font-size: 12px;
  font-weight: 600;
}

.account-orders__sum {
  font-weight: 700;
  color: #1f2937;
}

.account-orders__details-cell {
  padding: 0 10px 14px !important;
  border-bottom: 1px solid #e6edf8;
}

.account-order-details {
  border: 1px solid #dbe6f8;
  border-radius: 10px;
  background: #f8fbff;
  padding: 8px 10px;
}

.account-order-details > summary {
  cursor: pointer;
  font-size: 13px;
  font-weight: 600;
  color: #2f5fc8;
  user-select: none;
}

.account-order-items {
  margin-top: 10px;
  display: grid;
  gap: 8px;
}

.account-order-item {
  border: 1px solid #e2e8f5;
  background: #fff;
  border-radius: 8px;
  padding: 8px 10px;
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
}

.account-order-item__thumb {
  width: 52px;
  height: 52px;
  border-radius: 8px;
  background: #f1f5f9;
  overflow: hidden;
}

.account-order-item__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.account-order-item__thumb-placeholder {
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #e2e8f0 0%, #cbd5e1 100%);
}

.account-order-item__body {
  min-width: 0;
}

.account-order-item__name {
  font-size: 14px;
  font-weight: 600;
  color: #1f2937;
}

.account-order-item__meta {
  margin-top: 4px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  font-size: 12px;
  color: #64748b;
}

.account-order-details__empty {
  margin: 10px 0 2px;
  color: #64748b;
  font-size: 13px;
}

.account-orders-pagination {
  margin-top: 12px;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-start;
}

.account-orders-pagination__link {
  border: 1px solid #cddbf3;
  border-radius: 8px;
  padding: 6px 10px;
  font-size: 13px;
  color: #334155;
  text-decoration: none;
  background: #fff;
}

.account-orders-pagination__link.is-active {
  background: #3b6fd9;
  border-color: #3b6fd9;
  color: #fff;
}

.account-empty {
  color: #64748b;
  padding: 14px;
  border-radius: 10px;
  background: #f8fafc;
  border: 1px dashed #d7e1f2;
}

.checkout-modal {
  position: fixed;
  inset: 0;
  z-index: 1500;
  display: grid;
  place-items: center;
}

.checkout-modal[hidden] {
  display: none;
}

.checkout-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(17, 24, 39, 0.48);
}

.checkout-modal__dialog {
  position: relative;
  width: min(980px, calc(100vw - 28px));
  max-height: calc(100vh - 28px);
  overflow: auto;
  border-radius: 22px;
  border: 1px solid #cfe0fb;
  background: linear-gradient(180deg, #f7fbff 0%, #ffffff 38%);
  box-shadow:
    0 28px 70px rgba(15, 23, 42, 0.28),
    0 2px 0 rgba(255, 255, 255, 0.85) inset;
  padding: 22px;
}

.checkout-modal__close {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 10px;
  background: #e7eefb;
  color: #1e3a8a;
  cursor: pointer;
  font-weight: 700;
  transition: transform 0.15s ease, background-color 0.15s ease;
}

.checkout-modal__close:hover {
  background: #dbe7ff;
  transform: translateY(-1px);
}

.checkout-modal__hero {
  margin: -22px -22px 14px;
  padding: 18px 22px 14px;
  border-bottom: 1px solid #dbe8ff;
  background: radial-gradient(circle at 14% -65%, #76a8ff 0%, rgba(118, 168, 255, 0) 58%), linear-gradient(180deg, #f2f7ff 0%, #ffffff 100%);
}

.checkout-modal__eyebrow {
  display: inline-flex;
  align-items: center;
  margin-bottom: 6px;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #3b82f6;
}

.checkout-modal__hero h3 {
  margin: 0;
  font-size: 26px;
  line-height: 1.2;
  color: #10243f;
}

.checkout-modal__lead {
  margin: 6px 0 0;
  color: #4b5d7a;
  font-size: 14px;
}

.checkout-section {
  margin-bottom: 14px;
  border: 1px solid #d7e5fb;
  border-radius: 14px;
  background: #f9fbff;
}

.checkout-section__head {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  border-bottom: 1px solid #e4ecfb;
}

.checkout-section__icon {
  display: inline-flex;
  width: 24px;
  height: 24px;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: #e4eeff;
}

.checkout-section__title {
  margin: 0;
  font-size: 16px;
  color: #1e293b;
}

.checkout-section__body {
  padding: 12px;
}

.checkout-delivery-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.checkout-delivery-option {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  min-height: 64px;
  border-radius: 12px;
  border: 1px solid #d4e2fb;
  background: #fff;
  padding: 10px 12px;
  cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.checkout-delivery-option:hover {
  border-color: #96bbff;
  box-shadow: 0 8px 22px rgba(59, 111, 217, 0.14);
  transform: translateY(-1px);
}

.checkout-delivery-option input[type='radio'] {
  margin-top: 3px;
  accent-color: #2563eb;
}

.checkout-delivery-option strong {
  display: block;
  color: #1e3a8a;
  line-height: 1.2;
}

.checkout-delivery-option small {
  display: block;
  margin-top: 2px;
  color: #64748b;
  font-size: 12px;
}

.checkout-delivery-option:has(input[type='radio']:checked) {
  border-color: #3b6fd9;
  box-shadow: 0 0 0 2px rgba(59, 111, 217, 0.18);
}

.checkout-choice {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.checkout-section .checkout-field-label {
  position: relative;
  display: grid;
  gap: 5px;
  padding: 8px 10px;
  border: 2px solid #6f89b8;
  border-radius: 12px;
  background: linear-gradient(180deg, #ffffff 0%, #f6f9ff 100%);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.65) inset;
  color: #334155;
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.01em;
  transition: border-color 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease;
}

.checkout-section .checkout-field-label:hover {
  border-color: #4f72b8;
  box-shadow: 0 10px 18px -14px rgba(59, 111, 217, 0.5);
}

.checkout-section .checkout-field-label:focus-within {
  border-color: #2f63cc;
  box-shadow: 0 0 0 2px rgba(59, 111, 217, 0.2);
  transform: translateY(-1px);
}

.checkout-section .checkout-field-label::before {
  display: none;
}

.checkout-section .checkout-field-label select {
  width: 100%;
  min-height: 28px;
  margin: 0;
  padding: 2px 30px 2px 0;
  border: 0;
  border-radius: 0;
  background-color: transparent;
  color: #1e3a8a;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.15;
  appearance: none;
  -webkit-appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, #355fb8 50%), linear-gradient(135deg, #355fb8 50%, transparent 50%);
  background-position: calc(100% - 13px) calc(50% + 1px), calc(100% - 8px) calc(50% + 1px);
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
  cursor: pointer;
}

.checkout-section .checkout-field-label select:focus {
  outline: none;
}

.checkout-section .checkout-field-label select option {
  color: #1f2937;
  font-weight: 500;
  font-size: 15px;
}

#checkoutCityFieldWrap {
  grid-column: 1;
}

#checkoutPickupPointWrap select {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.3;
}

#checkoutPickupPointWrap {
  grid-column: 1 / -1;
  border-color: #3f66b0;
  background: linear-gradient(180deg, #ffffff 0%, #eef4ff 100%);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.72) inset,
    0 6px 18px -14px rgba(59, 111, 217, 0.55);
}

#checkoutPickupPointWrap::before {
  width: 62px;
  background: linear-gradient(90deg, #2f63cc 0%, #77a3ff 100%);
}

#checkoutPickupPointWrap select {
  font-size: 14px;
  font-weight: 700;
  padding-right: 28px;
}

.checkout-passport-note {
  margin: 0 0 10px;
  color: #475569;
  font-size: 13px;
  line-height: 1.35;
}

.checkout-passport-grid {
  gap: 10px 14px;
}

.checkout-passport-label {
  display: grid;
  gap: 6px;
  font-size: 14px;
  font-weight: 600;
  color: #334155;
}

.checkout-passport-label input {
  width: 100%;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  padding: 8px 10px;
  font-size: 14px;
  background: #fff;
  color: #1f2937;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.checkout-passport-label input:focus {
  outline: none;
  border-color: #3b6fd9;
  box-shadow: 0 0 0 3px rgba(59, 111, 217, 0.16);
}

.checkout-passport-label--wide {
  grid-column: 1 / -1;
}

.checkout-choice .btn-primary,
.checkout-choice .btn-outline {
  min-width: 220px;
}

.checkout-action-btn {
  min-height: 44px;
  border-radius: 12px;
}

.checkout-modal__errors {
  margin: 6px 0 12px;
  padding: 10px 12px 10px 36px;
  border-radius: 10px;
  border: 1px solid #fecaca;
  background: linear-gradient(180deg, #fff1f2 0%, #ffe4e6 100%);
  color: #9f1239;
  font-size: 14px;
  position: relative;
}

.checkout-modal__errors::before {
  content: '!';
  position: absolute;
  left: 12px;
  top: 9px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #fb7185;
  color: #fff;
  font-weight: 700;
  font-size: 12px;
  line-height: 18px;
  text-align: center;
}

.checkout-modal__errors p + p {
  margin-top: 4px;
}

@media (max-width: 900px) {
  .auth-grid,
  .account-grid {
    grid-template-columns: 1fr;
  }

  .account-hero {
    flex-direction: column;
  }

  .account-hero__title h1 {
    font-size: 28px;
  }

  .account-hero__meta {
    justify-items: start;
  }

  .account-actions .btn-primary {
    width: 100%;
    min-width: 0;
  }

  .auth-modal__dialog {
    padding: 18px;
  }

  .checkout-delivery-options {
    grid-template-columns: 1fr;
  }

  .checkout-section .checkout-field-label {
    padding: 7px 9px;
  }

  .checkout-section .checkout-field-label select {
    font-size: 13px;
    min-height: 26px;
    padding-right: 24px;
    background-position: calc(100% - 11px) calc(50% + 1px), calc(100% - 6px) calc(50% + 1px);
  }

  #checkoutCityFieldWrap,
  #checkoutPickupPointWrap {
    grid-column: auto;
  }

  #checkoutPickupPointWrap select {
    font-size: 13px;
  }


  .checkout-passport-label--wide {
    grid-column: auto;
  }

  .auth-modal__title {
    font-size: 26px;
  }

  .auth-person-switch {
    font-size: 15px;
  }
}

.favorite-heart-btn {
  position: absolute;
  right: 10px;
  top: 10px;
  z-index: 2;
  width: 34px;
  height: 34px;
  border: 1px solid rgba(148, 163, 184, 0.55);
  background: rgba(255, 255, 255, 0.92);
  color: #334155;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
}

.product-image,
.gallery-main {
  position: relative;
}

.favorite-heart-btn:hover {
  border-color: #60a5fa;
  color: #1d4ed8;
  transform: scale(1.04);
}

.favorite-heart-btn svg {
  width: 18px;
  height: 18px;
}

.favorite-heart-btn.is-active {
  color: #dc2626;
  border-color: #fca5a5;
  background: #fff1f2;
}

.favorite-heart-btn--product {
  right: 14px;
  top: 14px;
}

.favorite-remove-btn {
  color: #b91c1c;
  border-color: #fca5a5;
  background: #fff1f2;
}

.favorite-remove-btn:hover {
  color: #991b1b;
  border-color: #f87171;
  background: #ffe4e6;
}

.favorite-fly-ghost {
  position: fixed;
  z-index: 9999;
  width: 32px;
  height: 32px;
  color: #dc2626;
  pointer-events: none;
  opacity: 0.96;
  transition: transform 0.7s cubic-bezier(.2,.8,.2,1), opacity 0.7s ease;
}

.favorite-fly-ghost svg {
  width: 100%;
  height: 100%;
}

.cart-fly-ghost {
  position: fixed;
  z-index: 9999;
  width: 32px;
  height: 32px;
  border-radius: 999px;
  overflow: hidden;
  pointer-events: none;
  color: #2563eb;
  background: #eff6ff;
  border: 1px solid rgba(147, 197, 253, 0.8);
  box-shadow: 0 10px 28px rgba(37, 99, 235, 0.28);
  opacity: 0.96;
  transition: transform 0.76s cubic-bezier(.2,.8,.2,1), opacity 0.76s ease;
}

.cart-fly-ghost svg,
.cart-fly-ghost img {
  width: 100%;
  height: 100%;
}

.cart-fly-ghost img {
  object-fit: cover;
}

.favorites-icon-bump {
  animation: favoritesIconBump 0.28s ease;
}

.cart-target-bump {
  animation: cartTargetBump 0.3s ease;
}

@keyframes favoritesIconBump {
  0% { transform: scale(1); }
  45% { transform: scale(1.16); }
  100% { transform: scale(1); }
}

@keyframes cartTargetBump {
  0% { transform: scale(1); }
  45% { transform: scale(1.14); }
  100% { transform: scale(1); }
}

@media (max-width: 1023.98px) {
  body {
    padding-bottom: calc(74px + env(safe-area-inset-bottom));
  }

  .mobile-bottom-nav {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1200;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    align-items: stretch;
    padding: 8px 10px calc(10px + env(safe-area-inset-bottom));
    background: rgba(255, 255, 255, 0.96);
    border-top: 1px solid rgba(148, 163, 184, 0.35);
    box-shadow: 0 -6px 20px rgba(15, 23, 42, 0.08);
    backdrop-filter: blur(8px);
  }

  .mobile-bottom-nav__item {
    position: relative;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 56px;
    border-radius: 12px;
    color: #1f2937;
    background: #f8fafc;
    box-shadow: inset 0 0 0 1px rgba(148, 163, 184, 0.18);
    border: 0;
    cursor: pointer;
    font: inherit;
    text-decoration: none;
  }

  .mobile-bottom-nav__item:active {
    transform: translateY(1px);
  }

  .mobile-bottom-nav__icon {
    width: 21px;
    height: 21px;
  }

  .mobile-bottom-nav__icon-wrap {
    position: relative;
    width: 28px;
    height: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .mobile-bottom-nav__label {
    font-size: 10px;
    line-height: 1;
    font-weight: 600;
    letter-spacing: 0.01em;
    text-align: center;
  }

  .mobile-bottom-nav__icon--search {
    width: 20px;
    height: 20px;
  }

  .mobile-bottom-nav__sub {
    max-width: 100%;
    font-size: 9px;
    line-height: 1;
    color: #64748b;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-top: -1px;
  }

  .mobile-bottom-nav__badge {
    position: absolute;
    top: -7px;
    right: -10px;
    min-width: 18px;
    height: 18px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 5px;
    font-size: 10px;
    line-height: 1;
    color: #fff;
    background: var(--blue-500);
  }

  .mobile-bottom-nav__badge--cart {
    background: linear-gradient(135deg, #3b6fd9, #2a4a8c);
  }
}

/* Final mobile header override (kept at file end to win cascade). */
@media (max-width: 1023.98px) {
  .header {
    overflow: visible !important;
    z-index: 60 !important;
  }

  .container {
    max-width: none !important;
    width: 100% !important;
  }

  .page-category .products-header {
    flex-wrap: wrap !important;
    align-items: flex-start !important;
    gap: 8px 10px !important;
  }

  .page-category .products-count {
    flex: 1 1 100%;
  }

  .page-category .products-active-filters {
    margin-left: 0 !important;
    justify-content: flex-start !important;
    flex: 1 1 100%;
  }

  .page-category .sort-select {
    margin-left: 0 !important;
    width: 100%;
    min-width: 0;
  }

  .page-category .sort-select form {
    width: 100%;
    min-width: 0;
  }

  .page-category .sort-select select {
    width: 100%;
    min-width: 0;
  }

  .header .header-main-row {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 0.65rem !important;
  }

  .header .header-main-right {
    justify-self: stretch !important;
    justify-content: flex-end !important;
    flex-wrap: wrap !important;
    gap: 0.55rem !important;
  }

  .header .header-contact-stack {
    order: 2 !important;
    flex: 1 1 100% !important;
    min-width: 0 !important;
    align-items: stretch !important;
  }

  .header .header-phone-block {
    width: 100% !important;
    max-width: 100% !important;
  }

  .header .logo {
    gap: 10px !important;
    min-height: 52px !important;
  }

  .header .logo > img {
    width: 44px !important;
    height: 52px !important;
  }

  .header .logo-title-line {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-end !important;
    gap: 1px !important;
    width: fit-content !important;
    max-width: 100% !important;
  }

  .header .logo-text-region {
    display: inline-block !important;
    font-size: 0.62rem !important;
    line-height: 1 !important;
    letter-spacing: 0.04em !important;
    margin: 0 0 -5px 0 !important;
    order: 0 !important;
    padding-top: 0 !important;
  }

  .header .logo-text {
    font-size: 1.66rem !important;
    line-height: 0.96 !important;
    letter-spacing: 0.01em !important;
    white-space: nowrap !important;
    color: #4061a6 !important;
    text-shadow: none !important;
    -webkit-text-stroke: 0 !important;
    order: 0 !important;
  }

  .header .logo-subtitle {
    display: inline-block !important;
    margin: -14.4px 0 0 0 !important;
    padding: 0.036rem 0.384rem 0.084rem !important;
    font-size: 0.67rem !important;
    line-height: 1.1 !important;
    white-space: nowrap !important;
    position: relative !important;
    top: -8.4px !important;
  }

  .mobile-header-menu {
    margin-top: 8px;
    border: 1px solid rgba(148, 163, 184, 0.34);
    border-left: 3px solid rgba(130, 157, 212, 0.55);
    border-radius: 14px;
    background: linear-gradient(
      118deg,
      rgba(59, 111, 217, 0.1) 0%,
      rgba(255, 255, 255, 0.14) 42%,
      rgba(241, 245, 249, 0.24) 100%
    );
    box-shadow:
      0 3px 16px rgba(15, 23, 42, 0.08),
      inset 0 1px 0 rgba(255, 255, 255, 0.78);
    overflow: visible;
    position: relative;
    z-index: 20;
  }

  .mobile-header-menu__scroller {
    display: flex;
    align-items: center;
    gap: 12px;
    overflow: visible;
    padding: 10px 12px;
    position: relative;
  }

  .mobile-header-menu__item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
    text-decoration: none;
    color: #475569;
    font-size: 0.7rem;
    line-height: 1;
    font-weight: 600;
    flex-shrink: 0;
  }

  .mobile-header-menu__chevron {
    color: #3b6fd9;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
  }

  .mobile-header-menu__item--sale {
    color: #b91c1c;
    font-weight: 700;
  }

  .mobile-header-menu__item--new {
    color: #047857;
    font-weight: 700;
  }

  .mobile-header-menu__more {
    margin-left: auto;
    position: relative;
    flex-shrink: 0;
    z-index: 30;
  }

  .mobile-header-menu__more-btn {
    border: 1px solid rgba(148, 163, 184, 0.36);
    background: #f8fafc;
    color: #334155;
    width: 28px;
    height: 24px;
    border-radius: 8px;
    font-weight: 700;
    line-height: 1;
  }

  .mobile-header-menu__overflow {
    position: absolute;
    top: auto;
    bottom: calc(100% + 8px);
    right: 0;
    min-width: 180px;
    max-width: min(82vw, 260px);
    border-radius: 12px;
    border: 1px solid rgba(148, 163, 184, 0.34);
    background: #ffffff;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.16);
    padding: 8px;
    display: grid;
    gap: 2px;
    z-index: 40;
  }

  .mobile-header-menu__overflow-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    text-decoration: none;
    color: #475569;
    font-size: 0.76rem;
    font-weight: 600;
    line-height: 1.1;
    padding: 7px 8px;
    border-radius: 8px;
  }

  .mobile-header-menu__overflow-item:hover {
    background: #f1f5f9;
  }

  /* Keep "up" button visible above bottom mobile nav. */
  .scroll-to-top {
    z-index: 1301 !important;
    bottom: calc(86px + env(safe-area-inset-bottom, 0px)) !important;
    right: max(1rem, env(safe-area-inset-right, 0px)) !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateY(0) !important;
  }
}
