/* cyrillic-ext */
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(/assets/fonts/onest-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(/assets/fonts/onest-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* math */
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(/assets/fonts/onest-math.woff2) format('woff2');
  unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-209F, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;
}
/* symbols */
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(/assets/fonts/onest-symbols.woff2) format('woff2');
  unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AE, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F8D0-1F8D8, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FAC6, U+1FAC8, U+1FACC-1FADD, U+1FADF-1FAEB, U+1FAEF-1FAFA, U+1FB00-1FBFF;
}
/* vietnamese */
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(/assets/fonts/onest-vietnamese.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(/assets/fonts/onest-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(/assets/fonts/onest-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root {
    --char-tone-1: rgba(0, 0, 0, 0.45);
    --char-tone-2: rgba(245, 241, 233, 0.18);
    --char-tone-3: #ad2028;
    --char-tone-4: #f5f1e9;
    --char-tone-5: #33312e;
    --char-tone-6: #171717;
    --char-tone-7: #242424;
    --char-tone-8: #aaa69e;
    --char-tone-9: #9edba9;
    --char-tone-10: #ff9b8a;
    --char-tone-11: rgba(23, 23, 23, 0.96);
    --char-tone-12: #203628;
    --char-tone-13: #ffd59c;
    --color-ink: #f5f1e9;
    --color-muted: #aaa69e;
    --color-accent: #ad2028;
    --color-accent-dark: #cb3038;
    --color-creen: #83c58a;
    --color-paper: #0b0c0c;
    --color-surface: #171717;
    --color-soft: #242424;
    --color-line: #292a29;
    --color-gray: #272727;
    --color-black: #000000;
    --button-text: #fff8f0;
    --color-transparent: transparent;
    --color-success: #9edba9;
    --color-success-bg: #203628;
    --color-warning: #ffd59c;
    --color-warning-bg: #352a1a;
    --color-danger: #ff9b8a;
    --color-danger-bg: #38221f;
    --header-bg: rgba(11, 11, 11, 0.96);
    --shadow-panel: 0 18px 50px rgba(0, 0, 0, 0.4);
    --border: 1px solid var(--color-line);
    --bgpaper: none;
    --font-body: 'Onest', sans-serif;
    --font-display: Georgia, 'Times New Roman', serif;
    --page-title-size: clamp(32px, 4vw, 56px);
    --page-title-line-height: 1.05;
    --product-list-image-width: 100%;
    --product-quick-image-width: 448px;
    --product-cart-image-width: 72px;
    --radius-large: 12px;
    --radius-large-m: 10px;
    --radius-medium: 10px;
    --radius-medium-m: 8px;
    --header-height: 88px;
    --header-height-m: 70px;
    --site-width: 1320px;
    --btn-radius: 6px;
    --line: var(--color-line);
    --ink: var(--color-ink);
    --accent: var(--color-accent);
}
@font-face {
    font-family: 'Avenir Next Cyr Bold';
    src: url('/fonts/AvenirNextCyr-Bold.eot?#iefix') format('embedded-opentype'),
    url('/fonts/AvenirNextCyr-Bold.woff') format('woff'),
    url('/fonts/AvenirNextCyr-Bold.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}
* {
    box-sizing: border-box;
}
body.locked {
    overflow: hidden;
}
button,
input,
select,
textarea {
    font: inherit;
}
select {
    width: 100%;
    min-height: 48px;
    padding: 0 46px 0 14px;
    border: 1px solid var(--color-gray);
    border-radius: var(--btn-radius);
    background-color: var(--color-surface);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='0 0 14 8'%3E%3Cpath d='m1 1 6 6 6-6' fill='none' stroke='%23181916' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-position: right 16px center;
    background-repeat: no-repeat;
    color: var(--color-ink);
    appearance: none;
    cursor: pointer;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
select:hover {
    border-color: var(--color-muted);
}
select:focus-visible {
    border-color: var(--color-accent);
    box-shadow: 0 0 0 3px var(--char-tone-1);
}
select:disabled {
    background-color: var(--color-soft);
    color: var(--color-muted);
    cursor: not-allowed;
}
button,
a {
    -webkit-tap-highlight-color: var(--color-transparent);
}
a {
    color: inherit;
    text-decoration: none;
}
img,
svg {
    display: block;
    max-width: 100%;
}
button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 3px solid var(--char-tone-2);
    outline-offset: 3px;
}
.flex {
    display: flex;
}
.grid {
    display: grid;
}
.working-hours-trigger {
    min-width: 150px;
    padding: 6px 0;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    border: 0;
    background: var(--color-transparent);
    color: var(--color-ink);
    text-align: left;
    cursor: pointer;
}
.working-hours-trigger > i {
    width: 24px;
    height: 24px;
    display: block;
    border-radius: 50%;
    background: var(--char-tone-3);
}
.working-hours-trigger > span {
    min-width: 0;
    display: grid;
    gap: 2px;
}
.working-hours-trigger small {
    color: var(--color-muted);
    font-size: 11px;
    white-space: nowrap;
}
.working-hours-trigger strong {
    overflow: hidden;
    font-family: var(--font-body);
    font-size: 14px;
    line-height: 1.15;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.working-hours-trigger.is-open > i {
    background: var(--color-creen);
}
.working-hours-trigger.is-closed > i {
    background: var(--char-tone-3);
}
.brand {
    display: inline-flex;
    align-items: baseline;
    gap: 5px;
    font-family: var(--font-display);
    font-size: 17px;
    font-weight: 700;
    white-space: nowrap;
}
.brand b {
    color: var(--color-accent);
    font-size: 1.65em;
}
.mtoggler {
    min-height: 44px;
    padding: 0 14px;
    align-items: center;
    gap: 10px;
    border: 0;
    border-radius: var(--btn-radius);
    background: var(--color-accent-dark);
    color: var(--char-tone-4);
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}
.burger-btn {
    position: relative;
    width: 22px;
    height: 16px;
    flex: 0 0 22px;
    background: linear-gradient(currentColor, currentColor) center / 100% 2px no-repeat;
    transition: background-size .2s ease;
}
.burger-btn::before,
.burger-btn::after {
    content: '';
    position: absolute;
    left: 0;
    width: 22px;
    height: 2px;
    border-radius: 99px;
    background: currentColor;
    transition: top .24s ease, bottom .24s ease, transform .24s ease;
}
.burger-btn::before {
    top: 0;
}
.burger-btn::after {
    bottom: 0;
}
.mtoggler[aria-expanded="true"] .burger-btn {
    background-size: 0 2px;
}
.mtoggler[aria-expanded="true"] .burger-btn::before {
    top: 7px;
    transform: rotate(45deg);
}
.mtoggler[aria-expanded="true"] .burger-btn::after {
    bottom: 7px;
    transform: rotate(-45deg);
}
.mtoggler:focus-visible {
    outline: 3px solid var(--char-tone-2);
    outline-offset: 3px;
}
.main-nav {
    justify-self: center;
    display: flex;
    align-items: center;
    gap: 28px;
}
.main-nav .main-nav-phone {
    display: none;
}
.main-nav a {
    position: relative;
    padding: 8px 0;
    font-size: 14px;
    font-weight: 400;
}
.main-nav a::after {
    content: '';
    position: absolute;
    right: 0;
    bottom: 4px;
    left: 0;
    height: 2px;
    background: var(--color-accent);
    transform: scaleX(0);
    transform-origin: right;
    transition: transform 0.2s ease;
}
.main-nav a:hover::after {
    transform: scaleX(1);
    transform-origin: left;
}
.phone {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 10px;
    line-height: 1.1;
}
.phone > .site-icon {
    color: var(--color-accent);
    font-size: 18px;
}
.phone > span {
    display: grid;
    gap: 1px;
}
.phone small {
    color: var(--color-muted);
    font-size: 11px;
}
.phone strong {
    font-family: var(--font-display);
    font-size: 26px;
}
.cart-trigger {
    min-height: 48px;
    padding: 0 9px 0 20px;
    display: flex;
    align-items: center;
    gap: 12px;
    border: 0;
    border-radius: 999px;
    background: var(--bgpaper);
    color: var(--char-tone-4);
    cursor: pointer;
}
.cart-trigger b {
    min-width: 32px;
    height: 32px;
    padding: 0 8px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: var(--color-accent);
    color: var(--char-tone-4);
    font-weight: normal;
}
.cart-trigger > .site-icon {
    font-size: 19px;
}
.mobile-menu-toggle {
    width: 48px;
    height: 48px;
    padding: 12px;
    display: none;
    place-content: center;
    gap: 5px;
    border: 1px solid var(--color-line);
    border-radius: 17px;
    background: var(--color-paper);
    color: var(--color-ink);
    cursor: pointer;
    box-shadow: 0 8px 24px var(--char-tone-1);
}
.cart-trigger.cart-received {
    animation: cart-received 0.5s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.cart-flight {
    position: fixed;
    z-index: 200;
    pointer-events: none;
    object-fit: contain;
    border: 2px solid var(--char-tone-5);
    border-radius: 50%;
    background: var(--char-tone-6);
    box-shadow: 0 12px 30px var(--char-tone-1);
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1) rotate(0);
    transition: transform 0.72s cubic-bezier(0.22, 0.75, 0.2, 1), opacity 0.72s ease;
    will-change: transform, opacity;
}
.cart-flight.is-flying {
    opacity: 0.2;
    transform: translate3d(var(--flight-x), var(--flight-y), 0) scale(0.14) rotate(16deg);
}
@keyframes cart-received {
    0%, 100% {
        transform: scale(1);
    }
    38% {
        transform: scale(1.16) rotate(-4deg);
    }
    68% {
        transform: scale(0.96) rotate(2deg);
    }
}
.promotions-carousel,
.promotions-grid-section {
    --promotions-gap: 18px;
    margin: clamp(34px, 6vw, 72px) 0;
}
.promotions-carousel {
    --promotions-visible: var(--promotions-columns, 3);
}
.promotions-carousel__header,
.promotions-grid__header {
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}
.promotions-carousel__header h2,
.promotions-grid__header h2 {
    margin: 0;
    font-family: "Unbounded", sans-serif;
    font-size: clamp(24px, 3vw, 40px);
    line-height: 1.1;
}
.promotions-carousel__controls {
    display: flex;
    gap: 8px;
}
.promotions-carousel__controls button {
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    border: 1px solid var(--line, var(--char-tone-5));
    border-radius: 50%;
    color: var(--ink, var(--char-tone-4));
    background: var(--char-tone-6);
    cursor: pointer;
    transition: color .2s ease, background .2s ease, transform .2s ease;
}
.promotions-carousel__controls button:hover {
    color: var(--char-tone-4);
    background: var(--accent, var(--char-tone-3));
    transform: translateY(-2px);
}
.promotions-carousel__viewport {
    overflow: hidden;
    touch-action: pan-y;
}
.promotions-carousel__track {
    display: flex;
    gap: var(--promotions-gap);
    transition: transform .46s cubic-bezier(.22, .7, .2, 1);
    will-change: transform;
}
.promotions-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--promotions-gap);
}
.promotion-card {
    overflow: hidden;
    display: flex;
    flex-direction: column;
    border: 1px solid var(--char-tone-2);
    border-radius: 24px;
    background: var(--char-tone-6);
}
.promotions-carousel .promotion-card {
    min-width: calc((100% - (var(--promotions-gap) * (var(--promotions-visible) - 1))) / var(--promotions-visible));
    flex: 0 0 calc((100% - (var(--promotions-gap) * (var(--promotions-visible) - 1))) / var(--promotions-visible));
}
.promotions-grid .promotion-card {
    min-width: 0;
}
.promotion-card__image {
    overflow: hidden;
    aspect-ratio: 16 / 10;
    background: var(--char-tone-6);
}
.promotion-card__image img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transition: transform .45s ease;
}
.promotion-card:hover .promotion-card__image img {
    transform: scale(1.035);
}
.promotion-card__body {
    flex: 1;
    padding: 20px;
}
.promotion-card__body h3 {
    margin: 0 0 10px;
    font-size: clamp(18px, 2vw, 26px);
    line-height: 1.15;
}
.promotion-card__description {
    line-height: 1.55;
}
.promotions-carousel__dots {
    margin-top: 18px;
    display: flex;
    justify-content: center;
    gap: 7px;
}
.promotions-carousel__dots button {
    width: 8px;
    height: 8px;
    padding: 0;
    border: 0;
    border-radius: 99px;
    background: var(--char-tone-7);
    cursor: pointer;
    transition: width .2s ease, background .2s ease;
}
.promotions-carousel__dots button.active {
    width: 28px;
    background: var(--color-accent);
}
.checkout-address-autocomplete {
    position: relative;
    min-width: 0;
}
.checkout-address-autocomplete label {
    display: grid;
    gap: 7px;
}
.checkout-suggestions {
    position: absolute;
    z-index: 1250;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    overflow: hidden;
    max-height: 260px;
    border: 1px solid var(--char-tone-2);
    border-radius: 14px;
    background: var(--char-tone-6);
    box-shadow: 0 18px 46px var(--char-tone-1);
}
.checkout-suggestions button {
    display: block;
    width: 100%;
    padding: 12px 14px;
    border: 0;
    border-bottom: 1px solid var(--char-tone-2);
    background: var(--color-transparent);
    color: inherit;
    text-align: left;
    cursor: pointer;
}
.checkout-suggestions button:last-child {
    border-bottom: 0;
}
.checkout-suggestions button:hover,
.checkout-suggestions button:focus-visible {
    background: var(--char-tone-6);
}
.checkout-delivery-result {
    padding: 12px 14px;
    border-radius: 14px;
    background: var(--char-tone-6);
    color: var(--char-tone-8);
    font-size: 13px;
    line-height: 1.45;
}
.checkout-delivery-result[data-state="success"] {
    background: var(--char-tone-6);
    color: var(--char-tone-9);
}
.checkout-delivery-result[data-state="warning"] {
    background: var(--char-tone-6);
    color: var(--char-tone-10);
}
.checkout-review-delivery {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding-top: 10px;
    color: var(--char-tone-8);
}
.checkout-time-trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
    margin-top: 10px;
    padding: 12px 14px;
    border: 1px solid var(--char-tone-2);
    border-radius: 14px;
    background: var(--char-tone-6);
    color: inherit;
    cursor: pointer;
}
.checkout-time-dialog {
    z-index: 3000;
    width: min(620px, calc(100% - 24px));
    max-height: calc(100dvh - 24px);
    padding: 0;
    border: 0;
    border-radius: 28px;
    background: var(--char-tone-6);
    color: var(--char-tone-4);
    box-shadow: 0 30px 90px var(--char-tone-1);
}
.working-hours-dialog {
    z-index: 3000;
    width: min(540px, calc(100% - 24px));
    max-height: calc(100dvh - 24px);
    padding: 0;
    border: 0;
    border-radius: 28px;
    background: var(--char-tone-6);
    color: var(--color-ink);
    box-shadow: 0 30px 90px var(--char-tone-1);
}
.working-hours-dialog::backdrop {
    background: var(--char-tone-11);
    backdrop-filter: blur(4px);
}
.working-hours-sheet {
    overflow-y: auto;
    max-height: calc(100dvh - 24px);
    padding: 28px;
}
.working-hours-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}
.working-hours-heading small {
    color: var(--color-accent);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}
.working-hours-heading h2 {
    margin: 5px 0 0;
    font-family: var(--font-display);
    font-size: 28px;
}
.working-hours-status {
    margin-top: 22px;
    padding: 18px;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 14px;
    border-radius: 18px;
    background: var(--color-soft);
}
.working-hours-status > i {
    width: 24px;
    height: 24px;
    display: block;
    border-radius: 50%;
    background: var(--char-tone-3);
}
.working-hours-status.is-open > i {
    background: var(--color-creen);
}
.working-hours-status.is-closed > i {
    background: var(--char-tone-3);
}
.working-hours-status strong,
.working-hours-status p {
    display: block;
}
.working-hours-status strong {
    font-family: var(--font-display);
    font-size: 18px;
}
.working-hours-status p {
    margin: 5px 0 0;
    color: var(--color-muted);
    line-height: 1.45;
}
.working-hours-week {
    margin-top: 26px;
}
.working-hours-week h3 {
    margin: 0 0 10px;
    font-family: var(--font-display);
    font-size: 17px;
}
.working-hours-list {
    display: grid;
}
.working-hours-row {
    min-height: 44px;
    padding: 9px 10px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    border-bottom: 1px solid var(--color-line);
}
.working-hours-row.is-today {
    margin: 2px 0;
    border-bottom-color: var(--color-transparent);
    border-radius: 12px;
    background: var(--color-soft);
}
.working-hours-row span {
    color: var(--color-muted);
}
.working-hours-row.is-today span,
.working-hours-row strong {
    color: var(--color-ink);
}
.working-hours-row em {
    color: var(--color-muted);
    font-style: normal;
}
.checkout-time-dialog::backdrop {
    background: var(--char-tone-11);
    backdrop-filter: blur(4px);
}
.checkout-time-sheet {
    overflow-y: auto;
    max-height: calc(100dvh - 24px);
    padding: 24px;
}
.checkout-time-heading,
.checkout-time-selected,
.checkout-time-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}
.checkout-time-heading h2 {
    margin: 4px 0 0;
    font-size: 24px;
}
.checkout-time-selected {
    margin: 20px 0;
    padding: 16px;
    border-radius: 16px;
    background: var(--char-tone-6);
}
.checkout-time-sheet section + section {
    margin-top: 22px;
}
.checkout-time-sheet section h3 {
    margin: 0 0 12px;
    font-size: 16px;
}
.checkout-date-scroller {
    display: flex;
    overflow-x: auto;
    gap: 10px;
    padding: 2px 2px 10px;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
}
.checkout-date-card {
    display: grid;
    flex: 0 0 86px;
    gap: 3px;
    padding: 12px 8px;
    border: 1px solid var(--char-tone-2);
    border-radius: 16px;
    background: var(--char-tone-6);
    color: inherit;
    text-align: center;
    cursor: pointer;
}
.checkout-date-card strong {
    font-size: 24px;
}
.checkout-date-card.is-selected {
    border-color: var(--char-tone-5);
    background: var(--char-tone-6);
    color: var(--char-tone-9);
}
.checkout-date-card:disabled {
    opacity: 0.38;
    cursor: not-allowed;
}
.checkout-time-wheels {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: 12px;
}
.checkout-time-wheels > div {
    min-width: 0;
}
.checkout-time-wheels > div > span {
    display: block;
    margin-bottom: 7px;
    color: var(--char-tone-8);
    font-size: 12px;
}
.checkout-time-wheels > b {
    padding-top: 20px;
    font-size: 24px;
}
.checkout-time-wheel {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    overflow-y: auto;
    gap: 7px;
    max-height: 170px;
    padding: 8px;
    border-radius: 16px;
    background: var(--char-tone-6);
}
.checkout-time-wheel button {
    min-height: 40px;
    border: 0;
    border-radius: 10px;
    background: var(--char-tone-6);
    color: inherit;
    cursor: pointer;
}
.checkout-time-wheel button.is-selected {
    background: var(--char-tone-12);
    color: var(--char-tone-4);
}
.checkout-time-message {
    color: var(--char-tone-10);
}
.checkout-time-actions {
    margin-top: 24px;
}
.checkout-time-actions button {
    flex: 1;
    min-height: 44px;
    border: 0;
    border-radius: 13px;
    background: var(--char-tone-6);
    color: inherit;
    cursor: pointer;
}
.checkout-time-actions button.is-primary {
    background: var(--char-tone-12);
    color: var(--char-tone-4);
}
.kit-sidebar {
    position: fixed;
    z-index: 99;
    top: calc(var(--header-height) + 30px);
    left: 50%;
    width: 100%;
    max-width: 1400px;
    overflow: hidden;
    border-radius: var(--radius-large);
    background: var(--color-surface);
    box-shadow: var(--shadow-panel);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translate(-50%, -12px);
    transition: opacity .2s ease, visibility .2s ease, transform .24s ease;
}
.kit-sidebar.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translate(-50%, 0);
}
.kit-sidebar-head {
    margin: 0;
    padding: 20px 30px 10px;
    color: var(--color-muted);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}
.category-rail {
    width: 100%;
    padding: 4px 20px 12px;
    display: grid;
    gap: 3px;
    grid-template-columns: repeat(5,1fr);
}
.category-link {
    padding: 7px 10px;
    display: flex;
    align-items: center;
    gap: 10px;
    border-radius: var(--btn-radius);
    color: var(--color-ink);
    font-size: 18px;
    font-weight: 700;
    line-height: 1.2;
    transition: background 0.18s ease, color 0.18s ease;
}
.category-link:hover,
.category-link.is-active {
    background: var(--color-soft);
}
.kit-content {
    min-width: 0;
}
.kit-menu-intro {
    padding: 24px 0 12px;
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 30px;
}
.kit-menu-intro h1 {
    margin: 0;
    font-family: var(--font-display);
    font-size: var(--page-title-size);
    line-height: var(--page-title-line-height);
}
.kit-menu-intro p {
    max-width: 38ch;
    margin: 0;
    color: var(--color-muted);
}
.section-heading {
    margin-bottom: 34px;
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(240px, 0.7fr);
    align-items: end;
    gap: 32px;
}
.section-heading h2 {
    margin: 0;
    font-family: var(--font-display);
    font-size: var(--page-title-size);
    line-height: var(--page-title-line-height);
}
.section-heading > p {
    margin: 0;
    color: var(--color-muted);
}
.product-badges {
    position: absolute;
    top: 12px;
    left: 12px;
    z-index: 2;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 6px;
    pointer-events: none;
}
.product-badge {
    padding: 7px 11px;
    border-radius: 999px;
    color: var(--char-tone-4);
    font-size: 11px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    border: var(--border);
}
.product-badge--discount {
    background: var(--color-accent);
}
.product-badge--icon {
    position: relative;
    width: 36px;
    height: 36px;
    padding: 0px;
    display: grid;
    place-items: center;
    background: var(--char-tone-6);
    pointer-events: auto;
    cursor: help;
}
.product-badge--icon img {
    width: 26px;
    height: 26px;
    display: block;
    object-fit: contain;
}
.product-badge--icon:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 2px;
}
.product-badge-tooltip {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    width: max-content;
    max-width: min(220px, calc(100vw - 48px));
    padding: 9px 11px;
    border-radius: 10px;
    background: var(--char-tone-7);
    color: var(--char-tone-4);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: 0;
    text-align: left;
    text-transform: none;
    white-space: normal;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-4px);
    transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s ease;
}
.product-badge--icon:hover .product-badge-tooltip,
.product-badge--icon:focus .product-badge-tooltip {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.product-price,
.quick-info .price {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 8px;
}
.price-old {
    color: var(--color-muted);
    font-size: 0.72em;
    font-weight: 600;
    text-decoration-thickness: 1px;
}
.price-current {
    white-space: nowrap;
}
.quick-info [data-quick-add] {
    min-height: 48px;
    padding: 0 24px;
    border: 0;
    border-radius: var(--btn-radius);
    background: var(--color-accent);
    color: var(--char-tone-4);
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.2s ease;
    white-space: nowrap;
}
.quick-info [data-quick-add]:hover {
    background: var(--color-accent-dark);
}
.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}
.side-cart {
    position: fixed;
    z-index: 99;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(500px, 100%);
    height: 100dvh;
    display: flex;
    overflow: hidden;
    flex-direction: column;
    border-radius: var(--radius-large) 0 0 var(--radius-large);
    background: var(--color-surface);
    opacity: 0;
    visibility: hidden;
    transform: translateX(100%);
    transition: opacity .2s ease, visibility .2s ease, transform .28s cubic-bezier(.22, .75, .2, 1);
}
.side-cart.open {
    opacity: 1;
    visibility: visible;
    transform: translateX(0);
}
.cart-viewport {
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-color: var(--color-accent) var(--color-transparent);
    scrollbar-width: thin;
}
.cart-viewport::-webkit-scrollbar {
    width: 5px;
}
.cart-viewport::-webkit-scrollbar-track {
    background: var(--color-transparent);
}
.cart-viewport::-webkit-scrollbar-thumb {
    border-radius: 99px;
    background: var(--color-accent);
}
.cart-viewport::-webkit-scrollbar-thumb:hover {
    background: var(--char-tone-3);
}
.cart-flow {
    --checkout-step-padding: 22px;
    display: grid;
    grid-template-columns: 100% 100%;
    align-items: start;
    transition: transform .42s cubic-bezier(.22,.75,.2,1);
}
.side-cart.checkout-active .cart-flow {
    transform: translateX(-100%);
}
.cart-step {
    min-width: 0;
}
.cart-step-checkout {
    max-height: 0;
    padding: 0 var(--checkout-step-padding);
    overflow: hidden;
}
.side-cart.checkout-active .cart-step-basket {
    max-height: 0;
    overflow: hidden;
}
.side-cart.checkout-active .cart-step-checkout {
    max-height: none;
    padding: var(--checkout-step-padding);
    overflow: visible;
}
.panel-head {
    padding: 22px;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    border-bottom: 1px solid var(--color-line);
}
.panel-head small {
    color: var(--color-muted);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}
.panel-head h2 {
    margin: 4px 0 0;
    font-family: var(--font-display);
    font-size: 26px;
}
.icon-close {
    position: relative;
    width: 40px;
    height: 40px;
    padding: 0;
    flex: 0 0 auto;
    border-radius: 50%;
    background: var(--color-paper);
    cursor: pointer;
    border: none;
    display: grid;
    place-items: center;
}
.side-cart .icon-close {
    display: block;
}
.kit-cart-tools {
    margin: 12px 14px 4px;
    padding: 8px;
    border-radius: 16px;
    background: var(--color-surface);
}
.kit-cart-modes {
    padding: 3px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4px;
    border-radius: var(--btn-radius);
    background: var(--color-paper);
}
.kit-cart-modes button {
    min-height: 40px;
    border: 0;
    border-radius: var(--btn-radius);
    background: var(--color-transparent);
    color: var(--color-muted);
    font-weight: 700;
    cursor: pointer;
}
.kit-cart-modes button.is-active {
    background: var(--char-tone-6);
    color: var(--color-ink);
    box-shadow: 0 2px 8px var(--char-tone-1);
}
.kit-address {
    width: 100%;
    min-height: 46px;
    margin-top: 8px;
    padding: 0 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-radius: var(--btn-radius);
    background: var(--char-tone-6);
    color: var(--color-ink);
    font-weight: 600;
    cursor: pointer;
    border: 2px solid var(--color-paper);
}
.kit-address span:last-child {
    color: var(--color-accent);
}
.cart-content {
    padding: 0 22px 22px;
}
.cart-empty {
    min-height: 220px;
    display: grid;
    place-content: center;
    text-align: center;
}
.cart-empty h3 {
    max-width: 16ch;
    margin: 0 auto;
    font-size: 18px;
}
.cart-items {
    display: grid;
    gap: 5px;
}
.cart-extras {
    padding-top: 20px;
    border-top: 1px solid var(--color-line);
}
.cart-extras > h3 {
    margin: 0 0 14px;
    line-height: 1.3;
    color: var(--color-muted);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}
.cart-extra-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}
.cart-extra {
    min-width: 0;
    padding: 8px;
    display: flex;
    align-items: center;
    flex-direction: column;
    border: 1px solid var(--color-gray);
    border-radius: 16px;
    background: var(--color-surface);
    text-align: center;
}
.cart-extra img {
    width: 72px;
    height: auto;
    aspect-ratio: auto;
    border-radius: 12px;
}
.cart-extra h4 {
    min-height: 1.7em;
    margin: 8px 0 5px;
    display: flex;
    align-items: center;
    color: var(--color-ink);
    font-size: 11px;
    line-height: 1.35;
}
.cart-extra > strong {
    margin-bottom: 8px;
    font-size: 12px;
}
.cart-extra .cart-quantity {
    margin-top: auto;
}
.cart-extra .cart-quantity button {
    width: 25px;
    height: 30px;
}
.cart-extra .cart-quantity input {
    width: 25px;
    height: 30px;
    font-size: 12px;
}
.cart-item {
    position: relative;
    display: grid;
    grid-template-columns: var(--product-cart-image-width) minmax(0, 1fr) 28px;
    gap: 12px;
    align-items: center;
    border: 1px solid var(--color-gray);
    border-radius: 15px;
    padding: 5px 10px;
}
.cart-item img {
    width: var(--product-cart-image-width);
    height: auto;
    border-radius: 20px;
}
.cart-item h3 {
    margin: 0 0 8px;
    font-size: 13px;
    line-height: 1.35;
}
.cart-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}
.cart-quantity,
.quick-quantity {
    display: flex;
    align-items: center;
    overflow: hidden;
    border: 1px solid var(--color-paper);
    border-radius: var(--btn-radius);
    width: fit-content;
}
.cart-quantity button {
    width: 32px;
    height: 34px;
    padding: 0;
    display: grid;
    place-items: center;
    border: 0;
    background: var(--color-soft);
    color: var(--color-ink);
    cursor: pointer;
}
.cart-quantity button:hover {
    background: var(--color-line);
}
.cart-quantity input {
    width: 34px;
    height: 34px;
    padding: 0;
    border: 0;
    background: var(--color-surface);
    color: var(--color-ink);
    text-align: center;
}
.cart-row strong {
    font-size: 13px;
}
.cart-remove {
    width: 28px;
    height: 28px;
    border: 0;
    border-radius: 50%;
    background: var(--color-soft);
    color: var(--color-muted);
    cursor: pointer;
    margin: 23px 0 0;
}
.cart-remove:hover {
    color: var(--color-accent);
}
.cart-summary {
    margin-top: 22px;
    padding-top: 18px;
    display: grid;
    gap: 16px;
    border-top: 1px solid var(--color-line);
}
.cart-total {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.cart-total strong {
    font-family: var(--font-display);
    font-size: 19px;
}
.checkout-link {
    width: 100%;
    border: 0;
    min-height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--btn-radius);
    background: var(--color-accent);
    color: var(--char-tone-4);
    font-weight: 700;
    cursor: pointer;
}
.checkout-form {
    display: grid;
    gap: 20px;
}
.checkout-back {
    width: max-content;
    padding: 0;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    border: 0;
    background: var(--color-transparent);
    color: var(--color-muted);
    font-weight: 700;
    cursor: pointer;
}
.checkout-back:hover {
    color: var(--color-accent);
}
.checkout-fields,
.checkout-conditional {
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 12px;
}
.checkout-form [hidden] {
    display: none;
}
.checkout-fields label,
.checkout-conditional label,
.checkout-comment {
    display: grid;
    gap: 7px;
    color: var(--color-muted);
    font-size: 12px;
    font-weight: 700;
}
.checkout-fields .wide,
.checkout-conditional .wide {
    grid-column: 1 / -1;
}
.checkout-form input:not([type="radio"]):not([type="checkbox"]),
.checkout-form select,
.checkout-form textarea,
.site-field {
    width: 100%;
    min-height: 44px;
    padding: 10px 12px;
    border: 1px solid var(--color-gray);
    border-radius: 12px;
    outline: none;
    background: var(--color-paper);
    color: var(--color-ink);
}
.checkout-form textarea {
    resize: vertical;
}
.checkout-form input:focus,
.checkout-form select:focus,
.checkout-form textarea:focus,
.site-field:focus {
    border-color: var(--color-accent);
    box-shadow: 0 0 0 3px var(--char-tone-1);
}
.checkout-pickup-point,
.checkout-notice {
    grid-column: 1 / -1;
    padding: 14px;
    display: grid;
    gap: 5px;
    border-radius: 14px;
    background: var(--color-soft);
}
.checkout-pickup-point small {
    color: var(--color-muted);
}
.checkout-time {
    margin: 0;
    padding: 0;
    display: grid;
    gap: 9px;
    border: 0;
}
.checkout-time legend {
    margin-bottom: 8px;
    color: var(--color-muted);
    font-size: 12px;
    font-weight: 700;
}
.checkout-time label {
    min-height: 42px;
    padding: 0 12px;
    display: flex;
    align-items: center;
    gap: 10px;
    border: 1px solid var(--color-line);
    border-radius: 12px;
    cursor: pointer;
}
.checkout-time label.is-unavailable {
    cursor: not-allowed;
    opacity: .55;
}
.checkout-time small {
    margin-left: 5px;
    color: var(--color-accent);
}
.checkout-review {
    padding-top: 18px;
    border-top: 1px solid var(--color-line);
}
.checkout-review h3 {
    margin: 0 0 13px;
    font-family: var(--font-display);
    font-size: 17px;
}
.checkout-review-items {
    display: grid;
    gap: 9px;
}
.checkout-review-items > div,
.checkout-review-total {
    display: flex;
    justify-content: space-between;
    gap: 15px;
    font-size: 12px;
    line-height: 1.4;
}
.checkout-review-items span {
    color: var(--color-muted);
}
.checkout-review-total {
    margin-top: 16px;
    padding-top: 14px;
    align-items: center;
    border-top: 1px solid var(--color-line);
    font-size: 15px;
}
.checkout-review-total strong {
    font-family: var(--font-display);
    font-size: 18px;
}
.checkout-privacy {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    color: var(--color-muted);
    font-size: 11px;
    line-height: 1.45;
    cursor: pointer;
}
.checkout-privacy input {
    margin-top: 1px;
    flex: 0 0 auto;
    accent-color: var(--color-accent);
}
.checkout-privacy a {
    color: var(--color-ink);
    text-decoration: underline;
}
.checkout-error {
    min-height: 0;
    color: var(--color-accent);
    font-size: 12px;
    font-weight: 700;
}
.checkout-error:empty {
    display: none;
}
.checkout-submit {
    min-height: 50px;
    border: 0;
    border-radius: var(--btn-radius);
    background: var(--color-accent);
    color: var(--char-tone-4);
    font-weight: 800;
    cursor: pointer;
}
.checkout-submit:disabled {
    cursor: wait;
    opacity: .65;
}
.checkout-success {
    min-height: 420px;
    padding: 38px 24px;
    display: grid;
    place-content: center;
    justify-items: center;
    text-align: center;
}
.checkout-success-icon {
    width: 64px;
    height: 64px;
    margin-bottom: 20px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--char-tone-6);
    color: var(--char-tone-9);
    font-size: 24px;
}
.checkout-success h3 {
    margin: 7px 0 10px;
    font-family: var(--font-display);
    font-size: 24px;
}
.scrim {
    position: fixed;
    z-index: 80;
    inset: 0;
    background: rgb(0 0 0 / 24%);
    backdrop-filter: blur(9px);
}
.quick-view {
    position: fixed;
    z-index: 90;
    top: 50%;
    left: 50%;
    width: min(960px, calc(100% - 32px));
    max-height: calc(100dvh - 32px);
    overflow: auto;
    border-radius: 26px;
    background: var(--color-surface);
    box-shadow: 0 28px 90px var(--char-tone-1);
    opacity: 0;
    visibility: hidden;
    transform: translate(-50%, -47%);
    transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease;
}
.quick-view.open {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, -50%);
}
.quick-view > .icon-close {
    position: absolute;
    z-index: 2;
    top: 18px;
    right: 18px;
}
.quick-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(320px, 0.95fr);
}
.quick-image {
    min-height: 540px;
    padding: 28px;
    display: grid;
    place-items: center;
}
.quick-image img {
    width: min(100%, var(--product-quick-image-width));
    height: auto;
    border-radius: var(--radius-large);
}
.quick-info {
    padding: 60px 30px;
}
.quick-info h2 {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(28px, 3vw, 32px);
    line-height: 1.12;
}
.quick-info .price {
    margin-top: 22px;
    font-family: var(--font-display);
    font-size: 24px;
}
.quick-weight {
    margin-top: 8px;
    color: var(--color-muted);
    font-size: 14px;
    font-weight: 600;
}
.quick-info .desc {
    margin-top: 22px;
    line-height: 1.65;
}
.quick-info select {
    margin-top: 26px;
}
.quick-info label {
    margin-top: 26px;
    display: grid;
    gap: 8px;
    color: var(--color-muted);
    font-size: 12px;
    font-weight: 700;
}
.quick-quantity-group {
    display: grid;
    gap: 8px;
    color: var(--color-muted);
    font-size: 12px;
    font-weight: 700;
}
.quick-quantity button {
    width: 40px;
    height: 44px;
    padding: 0;
    display: grid;
    place-items: center;
    border: 0;
    background: var(--color-soft);
    color: var(--color-ink);
    cursor: pointer;
}
.quick-quantity button:hover {
    background: var(--color-line);
}
.quick-quantity input {
    width: 44px;
    height: 44px;
    padding: 0;
    border: 0;
    background: var(--color-surface);
    color: var(--color-ink);
    text-align: center;
}
.copy {
    width: 100%;
}
.empty-page {
    min-height: 60vh;
    margin: 0 auto;
    padding: 64px;
    border-radius: var(--radius-large);
    background: var(--color-surface);
    text-align: center;
}
.empty-page h1 {
    margin: 0;
    font-family: var(--font-display);
    font-size: var(--page-title-size);
    line-height: var(--page-title-line-height);
}
.quick-purchase-controls {
    display: flex;
    align-items: center;
    gap: 20px;
    margin: 40px 0 0;
}
.product-badge--gift {
    width: 36px;
    height: 36px;
    padding: 0;
    display: grid;
    place-items: center;
    background: var(--char-tone-6);
    color: var(--char-tone-9);
    pointer-events: auto;
    cursor: help;
    border-radius: 5px;
    bottom: 0;
}
.product-badge--gift img {
    display: block;
    width: 33px;
    height: 33px;
    border-radius: 4px;
}
.product-badge--gift:hover .product-badge-tooltip,
.product-badge--gift:focus .product-badge-tooltip {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.cart-gifts {
    display: grid;
    gap: 5px;
    margin-top: 8px;
}
.cart-item--gift {
    background: var(--char-tone-6);
    border-color: var(--char-tone-5);
}
.cart-gift-label,
.cart-gift-icon {
    color: var(--char-tone-9);
    font-weight: 800;
}
.cart-gift-icon {
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;
}
.cart-gift-icon img {
    display: block;
    width: 32px;
    height: 32px;
}
.storefront-operational-notice {
    margin: 0 0 16px;
    padding: 14px 16px;
    border: 1px solid var(--char-tone-5);
    border-radius: 14px;
    background: var(--char-tone-6);
    color: var(--char-tone-10);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.45;
}
.storefront-operational-notice.is-stop {
    border-color: var(--char-tone-3);
    background: var(--char-tone-6);
    color: var(--char-tone-10);
}
body.is-ordering-stopped [data-add-product],
body.is-ordering-stopped [data-quick-add],
body.is-ordering-stopped [data-cart-increase],
body.is-ordering-stopped [data-extra-increase] {
    display: none;
}
.checkout-link:disabled {
    cursor: not-allowed;
    opacity: .55;
}
.cookie-consent {
    position: fixed;
    z-index: 300;
    left: 20px;
    bottom: max(20px, env(safe-area-inset-bottom));
    width: 300px;
    max-width: calc(100vw - 32px);
    padding: 18px;
    border: 1px solid var(--char-tone-2);
    border-radius: 18px;
    background: var(--char-tone-11);
    box-shadow: 0 18px 50px var(--char-tone-1);
    opacity: 0;
    transform: translateY(16px);
    transition: opacity .24s ease, transform .24s ease;
    backdrop-filter: blur(14px);
}
.cookie-consent[hidden] {
    display: none;
}
.cookie-consent.is-visible {
    opacity: 1;
    transform: translateY(0);
}
.cookie-consent p {
    margin: 0;
    font-size: 14px;
    line-height: 1.5;
}
.cookie-consent__accept {
    min-height: 44px;
    margin-top: 14px;
    padding: 0 18px;
    border: 0;
    border-radius: var(--btn-radius);
    background: var(--color-accent);
    color: var(--char-tone-4);
    font: inherit;
    font-weight: 700;
    cursor: pointer;
    transition: background .2s ease, transform .2s ease;
}
.cookie-consent__accept:hover {
    background: var(--color-accent-dark);
    transform: translateY(-1px);
}
.cookie-consent__accept:focus-visible {
    outline: 3px solid var(--char-tone-2);
    outline-offset: 3px;
}
.reviews-page {
    width: min(var(--site-width), calc(100% - 40px));
    margin: 0 auto;
    padding: 72px 0 100px;
}
.reviews-page__header {
    max-width: 760px;
    margin-bottom: 38px;
}
.reviews-page__header h1 {
    margin: 0 0 16px;
    font-family: var(--font-display);
    font-size: var(--page-title-size);
    line-height: var(--page-title-line-height);
}
.reviews-page__header > p:last-child {
    max-width: 620px;
    margin: 0;
    color: var(--color-muted);
    font-size: 18px;
}
.reviews-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}
.review-card {
    display: flex;
    min-width: 0;
    padding: 28px;
    flex-direction: column;
    border: var(--border);
    border-radius: var(--radius-large);
    background: var(--color-surface);
    box-shadow: var(--shadow-panel);
}
.review-card__top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}
.review-card__top > div {
    display: grid;
    gap: 2px;
}
.review-card__top strong,
.review-card__reply strong {
    font-family: var(--font-display);
}
.review-card__top time {
    color: var(--color-muted);
    font-size: 13px;
}
.review-card__stars {
    color: var(--char-tone-13);
    font-size: 18px;
    font-style: normal;
    letter-spacing: 2px;
    white-space: nowrap;
}
.review-card__stars i {
    color: var(--char-tone-8);
    font-style: normal;
}
.review-card h2 {
    margin: 22px 0 0;
    font-family: var(--font-display);
    font-size: 22px;
}
.review-card__text {
    margin: 18px 0 0;
    overflow-wrap: anywhere;
    line-height: 1.65;
}
.review-card__reply {
    margin-top: 24px;
    padding: 18px 20px;
    border-radius: var(--radius-medium-m);
    background: var(--color-gray);
}
.review-card__reply p {
    margin: 7px 0 0;
    overflow-wrap: anywhere;
}
.reviews-empty {
    padding: 36px;
    border: var(--border);
    border-radius: var(--radius-large);
    background: var(--color-surface);
    color: var(--color-muted);
    text-align: center;
}
.review-submit {
    max-width: 640px;
    margin: 0 auto 32px;
}
.review-submit__toggle {
    list-style: none;
    cursor: pointer;
}
.review-submit__toggle::-webkit-details-marker {
    display: none;
}
.review-submit__panel {
    margin-top: 16px;
    padding: 22px;
    border: 1px solid var(--color-gray);
    border-radius: var(--radius-medium);
    background: var(--color-surface);
}
.review-submit__intro {
    margin-bottom: 16px;
}
.review-submit__intro h2 {
    margin: 0 0 6px;
    font-family: var(--font-display);
    font-size: 24px;
    line-height: 1.2;
}
.review-submit__intro p {
    margin: 0;
    color: var(--color-muted);
    font-size: 14px;
}
.review-form {
    position: relative;
    display: grid;
    gap: 14px;
}
.review-form__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px;
}
.review-form__field {
    display: grid;
    gap: 6px;
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}
.review-form__field > span,
.review-form__field legend {
    font-size: 13px;
    font-weight: 700;
}
.review-form__field small {
    color: var(--color-muted);
    font-weight: 400;
}
.review-form__rating {
    display: flex;
    flex-direction: row-reverse;
    align-items: center;
    justify-content: flex-end;
    min-height: 44px;
    gap: 3px;
}
.review-form__rating input {
    position: absolute;
    width: 1px;
    height: 1px;
    clip-path: inset(50%);
    overflow: hidden;
}
.review-form__rating label {
    color: var(--char-tone-8);
    cursor: pointer;
    font-size: 28px;
    line-height: 1;
}
.review-form__rating label:hover,
.review-form__rating label:hover ~ label,
.review-form__rating input:checked ~ label {
    color: var(--color-accent);
}
.review-form__rating input:focus-visible + label {
    outline: 2px solid var(--color-accent);
    outline-offset: 2px;
}
.review-form__privacy {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 12px;
    color: var(--color-muted);
}
.review-form__privacy input {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    margin: 0;
    accent-color: var(--color-accent);
}
.review-form__submit {
    justify-self: start;
}
.review-form__notice {
    padding: 12px;
    border-radius: 12px;
    font-size: 14px;
}
.review-form__notice--success {
    background: var(--char-tone-6);
    color: var(--char-tone-9);
}
.review-form__notice--error {
    background: var(--char-tone-6);
    color: var(--char-tone-10);
}
.review-form__trap {
    position: absolute;
    left: -10000px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}
.site-field {
    font-size: 16px;
}
.contacts-layout {
    display: grid;
    grid-template-columns: minmax(240px,.42fr) minmax(0,1fr);
    gap: 40px;
    margin-top: 70px;
    text-align: left;
}
.contacts-card {
    align-self: center;
}
.contacts-logo {
    max-width: 220px;
    margin: 0 0 30px;
}
.contacts-logo img {
    display: block;
    width: 100%;
    max-height: 120px;
    object-fit: contain;
    object-position: left;
}
.contacts-list {
    display: grid;
    gap: 15px;
}
.contact-row {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}
.contact-row__icon {
    flex: 0 0 30px;
    color: var(--color-accent);
    text-align: center;
}
.contact-row__text {
    color: inherit;
    line-height: 1.45;
    text-decoration: none;
}
a.contact-row__text:hover {
    color: var(--color-accent);
}
.contacts-map {
    min-width: 0;
}
.contacts-map,
.contacts-map>div {
    min-height: 500px;
}
.contacts-map>div {
    position: relative;
    width: 100%;
    overflow: hidden;
    border-radius: 30px;
    background: var(--color-background);
}
.contacts-map__status {
    position: absolute;
    inset: 50% auto auto 50%;
    z-index: 1;
    transform: translate(-50%,-50%);
    color: var(--color-muted);
}
.contacts-map__status[hidden] {
    display: none;
}
.contacts-balloon__logo {
    display: block;
    max-width: 150px;
    max-height: 70px;
    margin-bottom: 10px;
    object-fit: contain;
}
.contacts-map [class*="-balloon__layout"],
.contacts-map [class*="-balloon__content"] {
    background: var(--color-black);
    color: var(--color-ink);
}
.contacts-map [class*="-balloon__layout"] {
    border-radius: var(--radius-medium);
}
.contacts-map [class*="-balloon__tail"]::after {
    background: var(--color-black);
}
.contacts-map [class*="-balloon__close-button"] {
    filter: invert(1);
    opacity: 0.72;
}
.contacts-map [class*="-balloon__close-button"]:hover {
    opacity: 1;
}
html {
    scroll-behavior: smooth;
    color-scheme: dark;
}
body {
    margin: 0;
    color: var(--color-ink);
    background: var(--color-paper);
    font-family: var(--font-body);
    -webkit-font-smoothing: antialiased;
}
main {
    width: 100%;
}
.site-header {
    position: relative;
    z-index: 50;
    width: min(var(--site-width), calc(100% - 80px));
    min-height: 100px;
    margin: 0 auto;
    padding: 20px 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    background: var(--color-paper);
}
.char-logo {
    display: block;
    width: 160px;
    height: auto;
}
.top-right {
    display: flex;
    align-items: center;
    gap: 24px;
}
.cat-nav-wrap.flex {
    gap: 24px;
}
.site-header .phone small {
    display: none;
}
.site-header .phone strong {
    font-size: 18px;
}
.site-header .cart-trigger {
    width: auto;
    gap: 12px;
    background: var(--color-transparent);
    color: var(--color-ink);
}
.site-header .cart-trigger b {
    background: var(--color-accent);
    color: var(--button-text);
}
.kit-shell {
    width: min(var(--site-width), calc(100% - 80px));
    margin: 0 auto;
    display: grid;
    align-items: start;
    gap: 0;
}
.hero-carousel {
    position: relative;
    overflow: hidden;
    background: var(--color-paper);
}
.hero-track {
    display: flex;
    transition: transform .65s cubic-bezier(.22,.7,.2,1);
    touch-action: pan-y;
    will-change: transform;
    gap: 2px;
}
.hero {
    position: relative;
    min-height: 570px;
    padding: 46px 0 65px;
    display: grid;
    grid-template-columns: 37% 63%;
    align-items: center;
    background: var(--color-paper);
}
.hero-slide {
    flex: 0 0 100%;
    min-width: 0;
}
.hero-copy {
    position: relative;
    z-index: 2;
    min-width: 0;
}
.eyebrow {
    margin: 0 0 24px;
    color: var(--color-muted);
    font-size: 10px;
    font-weight: 400;
    letter-spacing: .28em;
    text-transform: uppercase;
    line-height: 1.7;
}
.hero-title {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(38px,4.1vw,59px);
    font-weight: 400;
    line-height: 1.06;
}
.hero-title span {
    display: block;
}
.hero-copy > p:not(.eyebrow) {
    max-width: 32ch;
    margin: 24px 0 0;
    color: var(--color-muted);
    font-size: 18px;
    line-height: 1.55;
}
.char-slider-images {
    min-width: 0;
    display: grid;
    align-items: center;
}
.char-slider-layer {
    min-width: 0;
    grid-area: 1 / 1;
    transform: translate3d(var(--parallax-x, 0px), var(--parallax-y, 0px), 0);
}
.char-slider-layer img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 600px;
    object-fit: contain;
}
.char-hero-photo {
    min-width: 0;
    display: flex;
    align-items: end;
}
.char-hero-photo img {
    display: block;
    height: auto;
    object-fit: contain;
}
.primary-action,
.site-action {
    min-height: 48px;
    margin-top: 26px;
    padding: 0 26px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
    border-radius: 5px;
    background: var(--color-accent);
    color: var(--button-text);
    font-size: 13px;
    font-weight: 600;
    transition: background .2s ease;
}
.primary-action:hover,
.site-action:hover {
    background: var(--color-accent-dark);
}
.hero-navigation {
    position: absolute;
    z-index: 4;
    left: 0;
    bottom: 25px;
    display: flex;
    align-items: center;
    gap: 14px;
}
.hero-navigation > button {
    width: 28px;
    height: 28px;
    padding: 0;
    border: 0;
    background: var(--color-transparent);
    color: var(--color-muted);
    cursor: pointer;
}
.hero-dots {
    display: flex;
    align-items: center;
    gap: 12px;
}
.hero-dots button {
    width: 9px;
    height: 9px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--color-line);
    cursor: pointer;
}
.hero-dots button.active {
    background: var(--color-accent);
}
.char-menu {
    scroll-margin-top: 90px;
}
.char-category-nav {
    display: flex;
    gap: 56px;
    padding: 0;
    border-top: var(--border);
    border-bottom: var(--border);
}
.char-category-nav a {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 24px 0 20px;
    border-bottom: 2px solid var(--color-transparent);
    font-size: 18px;
}
.char-category-nav a.is-active {
    border-bottom-color: var(--color-accent);
}
.char-category-nav a:hover,
.char-category-nav a:focus-visible {
    color: var(--color-accent-dark);
}
.char-category-nav span {
    color: var(--color-muted);
    font-size: 12px;
}
.char-category {
    padding-top: 32px;
    scroll-margin-top: 90px;
}
.char-category-heading {
    margin: 20px 0 28px;
}
.char-category-heading h2 {
    margin: 0;
    font: 400 40px var(--font-display);
}
.catalog-section {
    width: 100%;
    padding: 0;
}
.product-grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 32px 0;
}
.product-card {
    position: relative;
    min-width: 0;
    padding: 0 28px 28px;
    display: flex;
    flex-direction: column;
    border-right: var(--border);
    border-bottom: var(--border);
    background: var(--color-transparent);
}
.product-card:nth-child(3n) {
    border-right: 0;
}
.product-image {
    width: 100%;
    padding: 0;
    display: grid;
    place-items: center;
    border: 0;
    background: var(--color-transparent);
    cursor: pointer;
}
.product-image img {
    width: 100%;
    height: auto;
    aspect-ratio: 1;
    object-fit: contain;
}
.product-meta {
    flex: 1;
    padding: 12px 0 0;
}
.product-meta small {
    float: right;
    margin: 6px 0 0 10px;
    color: var(--color-muted);
    font-size: 12px;
}
.product-meta h3 {
    margin: 0;
    font: 400 28px/1.2 var(--font-display);
}
.product-meta p {
    margin: 10px 0 0;
    color: var(--color-muted);
    font-size: 16px;
    line-height: 1.5;
}
.product-buy {
    margin-top: auto;
    padding: 16px 0 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.product-buy strong {
    font: 600 23px var(--font-body);
}
.product-buy button {
    min-height: 42px;
    padding: 0 20px;
    border: 0;
    border-radius: 9px;
    background: var(--color-accent);
    color: var(--button-text);
    font: 600 14px var(--font-body);
    cursor: pointer;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    gap: 12px;
}
.product-buy button > span {
    margin-left: 12px;
    font-size: 18px;
}
.product-buy button:hover {
    background: var(--color-accent-dark);
}
.char-soup-banner {
    margin: 42px 0 0;
    padding: 28px 0;
    display: grid;
    grid-template-columns: 35% 65%;
    align-items: center;
    gap: 0;
    border-bottom: var(--border);
}
.char-soup-banner h2 {
    margin: 0;
    font: 400 48px/1.08 var(--font-display);
}
.char-soup-banner p {
    color: var(--color-muted);
    line-height: 1.6;
}
.char-soup-banner .eyebrow {
    color: var(--color-accent-dark);
}
.char-soup-banner a {
    display: inline-block;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--color-muted);
    font-size: 14px;
}
.char-about {
    width: min(var(--site-width),calc(100% - 80px));
    margin: 64px auto 0;
    padding: 36px 0;
    border-top: var(--border);
    align-items: center;
}
.char-about .char-a-left h2 {
    font-size: 64px;
}
.char-a-left {
    width: 45%;
}
.char-a-right {
    width: 55%;
    padding: 0 0 0 40px;
}
.char-about h2 {
    margin: 0;
    font: 400 34px var(--font-display);
}
.char-about p {
    max-width: 68ch;
    color: var(--color-muted);
    line-height: 1.7;
}
footer {
    width: min(var(--site-width),calc(100% - 80px));
    margin: 0 auto;
    padding: 32px 0;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 28px;
    border-top: var(--border);
}
footer .brand {
    width: 160px;
    margin-right: auto;
}
footer#contacts a.phones-f {
    color: var(--color-ink);
    font-size: 20px;
}
.copy.flex a {
    color: var(--color-muted);
    font-size: 12px;
    font-weight: 400;
}
.site-icon {
    width: 22px;
    height: 22px;
    display: inline-block;
    flex-shrink: 0;
    vertical-align: middle;
    fill: none;
    stroke: currentColor;
}
.product-buy .site-icon {
    width: 16px;
    height: 16px;
}
.working-hours-trigger .site-icon {
    color: var(--color-muted);
}
.char-catalog-sentinel {
    height: 1px;
}
.char-catalog-bar {
    position: sticky;
    top: 0;
    z-index: 40;
    display: flex;
    align-items: center;
    background: var(--color-paper);
}
.char-catalog-bar .char-category-nav {
    min-width: 0;
    flex: 1;
}
.char-catalog-cart {
    display: none;
}
.char-catalog-bar.is-stuck .char-catalog-cart {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: auto;
    min-width: 72px;
    margin-left: 24px;
    padding: 0 8px;
    background: var(--color-transparent);
    color: var(--color-ink);
}

.quick-variant-config {
  display: grid;
  gap: 18px;
  margin-top: 24px;
}
.quick-variant-group {
  margin: 0;
  padding: 0;
  border: 0;
}
.quick-variant-group legend {
  margin-bottom: 8px;
  color: var(--color-muted);
  font-size: 13px;
  font-weight: 700;
}
.quick-variant-options {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(90px, 1fr));
  gap: 15px;
  padding: 4px;
  border-radius: 20px;
  background: var(--color-soft);
}
.quick-variant-option {
  padding: 6px 12px;
  border: 0;
  border-radius: var(--btn-radius);
  background: var(--color-soft);
  font: inherit;
  cursor: pointer;
}
.quick-variant-option.is-active {
  border: 1px solid var(--color-line);
  background: var(--color-surface);
}
.quick-variant-option:disabled {
  color: var(--color-muted);
  cursor: not-allowed;
  opacity: .42;
}
.quick-variant-option:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}
@media (max-width: 1180px) {
    .phone {
        display: none;
    }
}
@media (max-width: 920px) {
    .mobile-menu-toggle {
        display: grid;
    }
    .main-nav {
        position: absolute;
        top: calc(100% + 8px);
        right: 0;
        display: none;
        width: min(300px, calc(100vw - 32px));
        padding: 9px;
        gap: 0;
        border: 1px solid var(--color-line);
        border-radius: 20px;
        background: var(--color-paper);
        box-shadow: 0 24px 70px var(--char-tone-1);
    }
    .site-header.mobile-menu-open .main-nav {
        display: grid;
    }
    .main-nav a {
        min-height: 50px;
        padding: 0 14px;
        display: flex;
        align-items: center;
        border-radius: 13px;
        font-weight: 700;
    }
    .main-nav .main-nav-phone {
        display: flex;
        gap: 10px;
        margin-bottom: 8px;
        color: var(--color-accent);
        font-size: 20px;
    }
    .main-nav a::after {
        display: none;
    }
    .main-nav a:hover {
        background: var(--color-soft);
        color: var(--color-accent-dark);
    }
    .promotions-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .working-hours-trigger {
        min-width: 0;
        max-width: 190px;
        justify-self: end;
    }
    .cart-trigger {
        min-height: 44px;
        padding-left: 14px;
    }
    .mtoggler {
        display: none;
    }
    .kit-sidebar {
        position: sticky;
        z-index: 30;
        top: var(--header-height);
        left: auto;
        width: 100%;
        max-width: none;
        overflow: visible;
        border-radius: 16px;
        box-shadow: none;
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: none;
        transition: none;
    }
    .kit-sidebar-head {
        display: none;
    }
    .category-rail {
        padding: 7px;
        display: flex;
        gap: 5px;
        overflow-x: auto;
        scrollbar-width: none;
    }
    .category-rail::-webkit-scrollbar {
        display: none;
    }
    .category-link {
        min-width: max-content;
        min-height: 48px;
        padding: 5px 12px 5px 7px;
        border-radius: 12px;
    }
    .side-cart {
        width: min(440px, 100%);
        border-radius: 0;
    }
    .quick-grid {
        grid-template-columns: 1fr;
    }
    .quick-image {
        min-height: 360px;
    }
    .site-header,
    .kit-shell,
    .char-about,
    footer {
        width: calc(100% - 40px);
    }
    .site-header {
        min-height: 80px;
        gap: 16px;
    }
    .top-right {
        gap: 14px;
    }
    .hero {
        grid-template-columns: 43% 57%;
    }
    .hero-title {
        font-size: 38px;
    }
    .hero-copy > p:not(.eyebrow) {
        font-size: 13px;
    }
    .product-grid {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }
    .product-card:nth-child(3n) {
        border-right: var(--border);
    }
    .product-card:nth-child(2n) {
        border-right: 0;
    }
    .char-category-nav {
        gap: 24px;
    }
    .char-category-nav a {
        font-size: 13px;
    }
}
@media (max-width: 767px) {
    .working-hours-trigger > i {
        width: 14px;
        height: 14px;
    }
    .empty-page {
        padding: 20px;
    }
    .promotions-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
    }
    .working-hours-trigger {
        max-width: none;
        gap: 7px;
        order: 5;
        flex-basis: 100%;
        width: 100%;
        padding: 6px 0 0;
        justify-content: start;
    }
    .working-hours-trigger > span {
        display: flex;
        align-items: center;
        gap: 12px;
    }
    .cart-trigger {
        gap: 6px;
        padding: 5px;
        min-height: auto;
    }
    .cart-trigger b {
        min-width: auto;
        height: 24px;
        width: 24px;
        padding: 0;
        font-weight: 700;
        font-size: 10px;
    }
    .mobile-menu-toggle {
        width: 42px;
        height: 42px;
        padding: 10px;
        border-radius: 14px;
    }
    .cart-flow {
        --checkout-step-padding: 18px;
    }
    .checkout-fields,
    .checkout-conditional {
        gap: 10px;
    }
    .brand {
        font-size: 13px;
    }
    .main-nav {
        display: none;
    }
    .working-hours-trigger small {
        display: none;
    }
    .working-hours-trigger strong {
        font-size: 10px;
        white-space: normal;
    }
    .kit-menu-intro {
        display: grid;
        gap: 14px;
    }
    .section-heading {
        grid-template-columns: 1fr;
        gap: 14px;
    }
    .quick-view {
        width: calc(100% - 16px);
        max-height: calc(100dvh - 16px);
        border-radius: 20px;
    }
    .quick-image {
        min-height: 260px;
        padding: 18px;
    }
    .quick-info {
        padding: 0 22px 28px;
    }
    .quick-purchase-controls {
        margin: 20px 0 0;
    }
    .category-link {
        min-height: auto;
        padding: 5px 7px;
        border-radius: 7px;
        font-size: 14px;
    }
    .kit-sidebar {
        position: fixed;
        top: var(--header-height-m);
        left: 12px;
        width: calc(100% - 24px);
        overflow: auto;
        border: var(--border);
        border-radius: 12px;
    }
    .working-hours-heading h2 {
        font-size: 16px;
    }
    .working-hours-status strong {
        font-family: var(--font-display);
        font-size: 14px;
    }
    .working-hours-status p {
        color: var(--char-tone-4);
        font-size: 12px;
    }
    .working-hours-week h3 {
        font-size: 14px;
    }
    .working-hours-row {
        min-height: auto;
        padding: 5px 10px;
        font-size: 14px;
    }
    .working-hours-row span {
        color: var(--char-tone-4);
    }
    .checkout-time-dialog,
    .working-hours-dialog {
        width: calc(100% - 24px);
        max-width: none;
        margin: 0;
        border-radius: 15px;
        left: 12px;
        top: 12px;
    }
    .icon-close {
        position: absolute;
        top: 12px;
        right: 12px;
    }
    .kit-menu-intro h1 {
        font-size: var(--page-title-size);
    }
    .contacts-layout {
        grid-template-columns: 1fr;
        gap: 28px;
        margin-top: 28px;
    }
    .contacts-map,
    .contacts-map>div {
        min-height: 360px;
    }
    .reviews-page {
        padding: 28px 0;
    }
    .reviews-page__header {
        margin-bottom: 24px;
    }
    .reviews-grid {
        grid-template-columns: 1fr;
    }
    .review-card {
        padding: 18px;
    }
    .review-card__top {
        flex-wrap: wrap;
    }
    .review-submit__panel {
        padding: 16px;
    }
    .review-form__row {
        grid-template-columns: 1fr;
        gap: 12px;
    }
    .review-form__submit {
        width: 100%;
    }
    main {
        padding-top: 0;
    }
    .site-header {
        padding: 16px 0;
        min-height: 76px;
        flex-wrap: wrap;
    }
    .hero {
        grid-template-columns: 1fr;
        min-height: 0;
        padding: 26px 0 54px;
    }
    .hero-title {
        font-size: 42px;
    }
    .eyebrow {
        font-size: 8px;
        margin-bottom: 18px;
    }
    .hero-copy > p:not(.eyebrow) {
        max-width: 36ch;
        margin-top: 18px;
    }
    .primary-action {
        margin-top: 18px;
        min-height: 44px;
    }
    .char-hero-photo {
        margin-top: 22px;
    }
    .hero-navigation {
        bottom: 14px;
    }
    .char-category-nav {
        overflow-x: auto;
        gap: 28px;
    }
    .char-category-nav a {
        flex-shrink: 0;
        padding: 20px 0 16px;
    }
    .char-category {
        padding-top: 24px;
    }
    .char-category-heading h2 {
        font-size: 32px;
    }
    .char-soup-banner {
        grid-template-columns: 1fr;
        margin-top: 24px;
    }
    .char-soup-banner h2 {
        font-size: 38px;
    }
    .char-about {
        margin-top: 40px;
    }
    footer {
        gap: 18px;
    }
    .site-header .brand {
        flex: 0 0 auto;
    }
    .top-right {
        display: contents;
    }
    .site-header .cart-trigger {
        margin-left: auto;
    }
    .char-catalog-bar.is-stuck .char-catalog-cart {
        min-width: 52px;
        margin-left: 12px;
        gap: 5px;
    }
}
@media (max-width: 620px) {
    .promotions-carousel {
        --promotions-gap: 12px;
    }
    .promotion-card {
        border-radius: 20px;
    }
    .promotions-carousel__controls {
        display: none;
    }
    .promotion-card__body {
        padding: 17px;
    }
}
@media (max-width: 560px) {
    .checkout-time-dialog,
    .working-hours-dialog {
        width: 100%;
        max-width: none;
        max-height: calc(100dvh - 12px);
        margin: auto 0 0;
        border-radius: 26px 26px 0 0;
    }
    .checkout-time-sheet {
        max-height: calc(100dvh - 12px);
        padding: 20px 16px;
    }
    .working-hours-sheet {
        max-height: calc(100dvh - 12px);
        padding: 22px 18px;
    }
    .checkout-time-wheel {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .product-grid {
        grid-template-columns: 1fr;
        gap: 26px;
    }
    .product-card,
    .product-card:nth-child(3n) {
        border-right: 0;
        padding: 0 0 26px;
    }
    .product-image img {
        max-width: 360px;
    }
    .product-meta h3 {
        font-size: 26px;
    }
    .product-buy button {
        min-height: 44px;
    }
}
@media (prefers-reduced-motion: reduce) {
    .cart-flight {
        display: none;
    }
    .cart-trigger.cart-received {
        animation: none;
    }
    .promotions-carousel__track {
        transition: none;
    }
    .promotion-card__image img {
        transition: none;
    }
    html {
        scroll-behavior: auto;
    }
    .hero-track {
        transition: none;
    }
}
@media (max-width: 1100px) {
    .hero {
        min-height: 440px;
    }
    .hero-title {
        font-size: 44px;
    }
    .product-card {
        padding: 0 18px 24px;
    }
    .product-meta h3 {
        font-size: 22px;
    }
    .char-category-nav {
        gap: 32px;
    }
}
