/* StartWise — головна (макет: figma-desktop/Slide 2, figma-mobile/iPhone … - 1) */

/* Fixel Variable — основний шрифт сайту (MacPaw Fixel) */
@font-face {
    font-family: "Fixel";
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url("../fonts/FixelVariable.ttf") format("truetype");
}

@font-face {
    font-family: "Fixel";
    font-style: italic;
    font-weight: 100 900;
    font-display: swap;
    src: url("../fonts/FixelVariableItalic.ttf") format("truetype");
}

/* Static fallbacks (woff2) */
@font-face {
    font-family: "Fixel Display";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("../fonts/FixelDisplay-Regular.woff2") format("woff2");
}

@font-face {
    font-family: "Fixel Display";
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url("../fonts/FixelDisplay-Medium.woff2") format("woff2");
}

@font-face {
    font-family: "Fixel Display";
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url("../fonts/FixelDisplay-SemiBold.woff2") format("woff2");
}

@font-face {
    font-family: "Fixel Display";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url("../fonts/FixelDisplay-Bold.woff2") format("woff2");
}

@font-face {
    font-family: "Fixel Display";
    font-style: normal;
    font-weight: 800;
    font-display: swap;
    src: url("../fonts/FixelDisplay-ExtraBold.woff2") format("woff2");
}

@font-face {
    font-family: "Fixel Display";
    font-style: normal;
    font-weight: 900;
    font-display: swap;
    src: url("../fonts/FixelDisplay-Black.woff2") format("woff2");
}

@font-face {
    font-family: "Fixel Text";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("../fonts/FixelText-Regular.woff2") format("woff2");
}

@font-face {
    font-family: "Fixel Text";
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url("../fonts/FixelText-Medium.woff2") format("woff2");
}

@font-face {
    font-family: "Fixel Text";
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url("../fonts/FixelText-SemiBold.woff2") format("woff2");
}

@font-face {
    font-family: "Fixel Text";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url("../fonts/FixelText-Bold.woff2") format("woff2");
}

:root {
    --sw-black: #000000;
    --sw-white: #ffffff;
    --sw-cream: #f5f5f0;
    --sw-muted: #8a8a8a;
    --sw-lime: #d4e157;
    --sw-lime-bright: #C3D110;
    /* Великий продукт-кард «бухгалтерія»: гірчично-оливковий фон макету */
    --sw-product-mustard: #bfa63a;
    --sw-purple-start: #6b5ce7;
    --sw-purple-end: #4a90d9;
    --sw-font: "Fixel", "Fixel Text", "Fixel Display", system-ui, sans-serif;
    --sw-display: "Fixel", "Fixel Display", system-ui, sans-serif;
    /* Єдиний розмір секційних h2 на головній */
    --sw-h2-size: clamp(2.5rem, 4.2vw, 4rem);
    --radius-sm: 12px;
    --radius-md: 20px;
    --radius-lg: 28px;
    --radius-pill: 999px;
    --header-h: 72px;
    --container: min(1931px, calc(100% - 48px));
    --bottom-nav-h: 64px;
    --consult-pill-bg: #e4e4e4;
    --consult-pill-text: #000000;
    --consult-knob-bg: #000000;
    --consult-knob-ring: #e4e4e4;
    --consult-height: 57px;
    --sw-services-bg: #f7f0ec;
    --sw-header-line: #1e88ff;
    --sw-nav-paren: #e8e632;
    --sw-products-bg: #f4ebe6;
    --sw-card-dark: #1a1614;
    --sw-hero-bg: #0d0202;
    --sw-hero-cream: #f4ebe3;
    --sw-hero-cream-soft: rgba(244, 235, 227, 0.78);
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    font-family: var(--sw-font);
    font-size: 15px;
    line-height: 1.5;
    color: var(--sw-black);
    background: var(--sw-black);
    -webkit-font-smoothing: antialiased;
}

/* Світлі сторінки (каталог, товар, обладнання) — не успадковують чорний фон головної */
body.page-catalog {
    background-color: #e4e4df;
    color: var(--sw-black);
}

body.page-product,
body.page-equipment {
    background-color: #f5f5f2;
    color: var(--sw-black);
}

body.page-cart,
body.page-checkout,
body.page-order-success {
    background-color: #f5f5f2;
    color: var(--sw-black);
}

html:has(body.page-catalog) {
    background-color: #e4e4df;
}

html:has(body.page-product),
html:has(body.page-equipment),
html:has(body.page-cart),
html:has(body.page-checkout),
html:has(body.page-order-success) {
    background-color: #f5f5f2;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

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

button {
    font: inherit;
    cursor: pointer;
    border: none;
    background: none;
}

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

/* ——— Preloader (механіка як 375.studio, кольори StartWise) ——— */
html.is-preloading,
html.is-preloading body {
    overflow: hidden;
}

.preloader {
    position: fixed;
    inset: 0;
    z-index: 99999;
    width: 100vw;
    height: 100vh;
    height: 100dvh;
    background: #000;
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    padding: clamp(24px, 4vw, 50px);
    overflow: hidden;
    color: #fff;
}

.preloader__percent {
    margin: 0;
    font-family: var(--sw-display);
    font-size: clamp(4rem, 12vw, 7.5rem);
    font-weight: 500;
    color: var(--sw-lime-bright, #C3D110);
    line-height: 1;
    letter-spacing: -0.03em;
    font-variant-numeric: tabular-nums;
    z-index: 1;
}

.preloader.is-done {
    pointer-events: none;
}

/*
 * Повноекранні панелі як .overlay на 375.studio:
 * стартують під екраном (translateY 100%) і піднімаються вгору.
 */
.preloader-curtain {
    position: fixed;
    inset: 0;
    width: 100vw;
    height: 100vh;
    height: 100dvh;
    z-index: 100000;
    transform: translate3d(0, 100%, 0);
    will-change: transform;
    pointer-events: none;
}

/* Порядок шарів: dark (низ) → lime → black (верх) */
.preloader-curtain--dark {
    background: #0d0202;
    z-index: 100000;
}

.preloader-curtain--lime {
    background: var(--sw-lime-bright, #C3D110);
    z-index: 100001;
}

.preloader-curtain--black {
    background: #000;
    z-index: 100002;
}

body.page-home .site-header,
body.page-home .hero__inner {
    opacity: 0;
}

body.page-home.preloader-done .site-header,
body.page-home.preloader-done .hero__inner {
    opacity: 1;
}

/* ——— Header ——— */
.site-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: rgba(0, 0, 0, 0.92);
    backdrop-filter: blur(12px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.site-header__inner {
    max-width: var(--container);
    margin: 0 auto;
    min-height: var(--header-h);
    padding: 0 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

/* Головна: шапка над hero без плашки (прозорий inner + прозорий фон header) */
body.page-home .site-header {
    background: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

body.page-home .site-header__inner {
    background: transparent;
}

body.page-home .site-header.site-header--solid {
    background: rgba(0, 0, 0, 0.92);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.logo {
    display: inline-flex;
    align-items: center;
    line-height: 0;
    color: var(--sw-white);
}

.logo picture {
    display: block;
    line-height: 0;
}

.logo__img {
    display: block;
    height: 42px;
    width: auto;
    max-width: min(200px, 52vw);
}

@media (max-width: 1023px) {
    .logo__img {
        height: auto;
        width: 36px;
        max-width: none;
        aspect-ratio: 1;
    }
}

.nav-main {
    display: none;
}

.nav-main__list {
    margin: 0;
    padding: 8px 10px;
    list-style: none;
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 4px;
    background: rgba(12, 12, 14, 0.55);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: var(--radius-pill);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.35);
}

.nav-main__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 16px;
    border-radius: var(--radius-pill);
    color: rgba(255, 255, 255, 0.92);
    font-size: 18px;
    font-weight: 600;
    font-family: var(--sw-font);
    text-decoration: none;
    border: none;
    background: transparent;
    cursor: pointer;
    white-space: nowrap;
    transition: color 0.2s, background 0.2s;
}

.nav-main__link:hover {
    color: var(--sw-white);
    background: rgba(255, 255, 255, 0.06);
}

.nav-dropdown {
    position: relative;
}

.nav-main__label {
    position: relative;
    display: inline-block;
}

/* Дужки поза потоком — сусідні пункти не зміщуються */
.nav-dropdown:hover .nav-main__label::before,
.nav-dropdown:hover .nav-main__label::after,
.nav-dropdown:focus-within .nav-main__label::before,
.nav-dropdown:focus-within .nav-main__label::after {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    color: var(--sw-nav-paren);
    font-weight: 600;
    line-height: 1;
    pointer-events: none;
    white-space: nowrap;
}

.nav-dropdown:hover .nav-main__label::before,
.nav-dropdown:focus-within .nav-main__label::before {
    content: "(";
    right: 100%;
    margin-right: 2px;
}

.nav-dropdown:hover .nav-main__label::after,
.nav-dropdown:focus-within .nav-main__label::after {
    content: ")";
    left: 100%;
    margin-left: 2px;
}

.nav-main__panel {
    position: absolute;
    top: calc(100% + 14px);
    left: 0;
    min-width: min(260px, 70vw);
    padding: 22px 26px;
    background: rgba(14, 14, 18, 0.78);
    backdrop-filter: blur(28px);
    -webkit-backdrop-filter: blur(28px);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 24px;
    box-shadow: 0 28px 56px rgba(0, 0, 0, 0.55);
    z-index: 120;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(6px);
    transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s;
}

.nav-dropdown:hover .nav-main__panel,
.nav-dropdown:focus-within .nav-main__panel {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}

/* Звужує розрив між кнопкою і панеллю, щоб не гасло меню при русі курсора */
.nav-main__panel::before {
    content: "";
    position: absolute;
    bottom: 100%;
    left: 0;
    right: 0;
    height: 18px;
}

.nav-main__sub {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.nav-main__sub a {
    display: inline-block;
    color: rgba(255, 255, 255, 0.92);
    font-size: 0.95rem;
    font-weight: 500;
    padding-bottom: 2px;
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: color 0.2s, border-color 0.2s;
}

.nav-main__sub a:hover,
.nav-main__sub a:focus-visible {
    color: var(--sw-white);
    border-bottom-color: var(--sw-nav-paren);
}

@media (prefers-reduced-motion: reduce) {
    .nav-main__panel {
        transition: none;
    }
}

.header-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

.icon-link {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    color: var(--sw-white);
}


.icon-link svg {
    width: 30px;
    height: 30px;
    position: relative;
    z-index: 2;
}

.header-actions > .icon-link:not(.icon-link--cart) {
    width: 38px;
    height: 38px;
    color: #111;
}

.header-actions > .icon-link:not(.icon-link--cart)::before {
    content: "";
    position: absolute;
    inset: -6px;
    border-radius: 999px;
    background:
        conic-gradient(from 210deg, rgba(255, 255, 255, 0) 0deg, rgba(255, 255, 255, 0.45) 95deg, rgba(255, 255, 255, 0) 185deg),
        radial-gradient(110% 80% at 30% 20%, rgba(255, 255, 255, 0.25), rgba(255, 255, 255, 0) 60%);
    filter: blur(0.5px);
    opacity: 0.9;
    pointer-events: none;
}

.header-actions > .icon-link:not(.icon-link--cart)::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 10px 22px rgba(0, 0, 0, 0.35);
}

.header-actions > .icon-link[aria-label="Telegram"]:not(.icon-link--cart) {
    color: #fff;
}

.header-actions > .icon-link[aria-label="Telegram"]:not(.icon-link--cart)::after {
    background: #27a7ea;
}

.header-actions > .icon-link:not(.icon-link--cart):hover::before {
    opacity: 1;
}

.header-actions > .icon-link:not(.icon-link--cart):hover::after {
    transform: scale(1.02);
}

/* Figma: ~303×57 — світло-сірий пігулка + чорне коло зі світло-сірим контуром, перекриття дає «з’єднання» */

.sw-btn {
    --sw-btn-bg: rgba(255, 255, 255, 0.1);
    --sw-btn-border: rgba(255, 255, 255, 0.22);
    --sw-btn-text: #ffffff;
    --sw-btn-hover-bg: #ffffff;
    --sw-btn-hover-border: #ffffff;
    --sw-btn-hover-text: #2a2218;
}

.btn-consult {
    display: none;
    align-items: center;
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
    cursor: pointer;
}

.btn-consult__body {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 0;
    min-height: var(--consult-height);
    transition: transform 0.28s ease, background-color 0.28s ease, border-color 0.28s ease;
}

.btn-consult__label {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: calc(var(--consult-height) - 4px);
    /* Легкий overlap з колом — «талія» як у макеті */
    margin-right: -12px;
    border-radius: var(--radius-pill);
    padding: 6px 26px 6px 20px;
    font-weight: 500;
    font-size: 18px;
    white-space: nowrap;
    position: relative;
    z-index: 1;
    transition: color 0.28s ease, background-color 0.28s ease, border-color 0.28s ease;
}

.btn-consult__label.white {
    background: var(--sw-white);
    border: 1px solid var(--sw-white);
    color: var(--sw-black);
}

.btn-consult__label.black {
    background: var(--sw-black);
    border: 1px solid var(--sw-black);
    color: var(--sw-white);
}

.menu-dialog__footer .btn-consult__label {
    border: 1px solid var(--sw-white);
    background: var(--sw-black);
}

.btn-consult__knob {
    width: 50px;
    height: 50px;
    flex-shrink: 0;
    border-radius: 999px;
    /* Непрозорий фон обов’язковий: інакше пігулка просвічує крізь коло */
    background: var(--sw-black);
    border: 1px solid var(--sw-white);
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--sw-white);
    position: relative;
    z-index: 2;
    transition: transform 0.28s ease, background-color 0.28s ease, border-color 0.28s ease, color 0.28s ease;
}

.btn-consult__knob.white {
    background: var(--sw-black);
    border: 1px solid var(--sw-white);
    color: var(--sw-white);
}

.btn-consult__knob.black {
    background: var(--sw-white);
    border: 1px solid var(--sw-black);
    color: var(--sw-black);
}

.btn-consult__knob.black:hover {
    color: var(--sw-black);
}

.btn-consult__icon {
    width: 26px;
    height: 26px;
    transition: transform 0.32s cubic-bezier(0.2, 0.7, 0.2, 1);
}


.btn-consult:hover .btn-consult__icon,
.btn-consult:focus-visible .btn-consult__icon {
        transform: rotate(45deg);
}

/* Мобільне меню: чорна пігулка + коло з білою обводкою */
.btn-consult--menu {
    display: inline-flex;
    max-width: 100%;
}

.btn-consult--menu .btn-consult__knob.white {
    background: #0a0a0a;
    border-color: var(--sw-white);
    color: var(--sw-white);
}


.icon-link--cart {
    position: relative;
    width: 36px;
    height: 36px;
    margin-left: 6px;
    color: #0f0f10;
    isolation: isolate;
}

.header-actions .icon-link--cart::before {
    content: "";
    position: absolute;
    inset: -7px;
    border-radius: 999px;
    background:
        conic-gradient(from 210deg, rgba(255, 255, 255, 0) 0deg, rgba(255, 255, 255, 0.48) 95deg, rgba(255, 255, 255, 0) 185deg),
        radial-gradient(115% 85% at 28% 18%, rgba(255, 255, 255, 0.24), rgba(255, 255, 255, 0) 60%);
    filter: blur(0.5px);
    z-index: 0;
    pointer-events: none;
}

.header-actions .icon-link--cart::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 12px 26px rgba(0, 0, 0, 0.38);
    z-index: 0;
}

.header-actions .icon-link--cart svg {
    width: 22px;
    height: 22px;
    position: relative;
    z-index: 2;
}

.header-actions .icon-link--cart .icon-link__badge {
    position: absolute;
    top: -4px;
    right: -2px;
    min-width: 16px;
    height: 16px;
    background: var(--sw-lime-bright);
    color: #0d0d0d;
    font-size: 11px;
    font-weight: 500;
    line-height: 16px;
    text-align: center;
    border-radius: 50%;
    pointer-events: none;
    z-index: 3;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.28);
}

.header-actions .icon-link--cart:hover::after {
    transform: scale(1.02);
}

.header-actions > .icon-link:not(.icon-link--cart) svg {
    width: 24px;
    height: 24px;
}

.header-actions .btn-consult {
    --consult-height: 44px;
}

.header-actions .btn-consult__label {
    font-size: 15px;
    padding: 4px 22px 4px 16px;
    margin-right: -10px;
}

.header-actions .btn-consult__knob {
    width: 40px;
    height: 40px;
}

.header-actions .btn-consult__icon {
    width: 20px;
    height: 20px;
}

.burger {
    position: relative;
    width: 44px;
    height: 44px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 7px;
    padding: 10px;
    box-sizing: border-box;
}

/*.burger__base {
    position: absolute;
    inset: 0;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.1);
    z-index: 1;
    pointer-events: none;
}*/

.burger__line {
    display: block;
    position: relative;
    z-index: 2;
    height: 2px;
    width: 22px;
    margin-left: auto;
    background: var(--sw-white);
    border-radius: 2px;
    transform-origin: center;
}

@media (max-width: 1023px) {
    .site-header {
        border-top: 2px solid var(--sw-header-line);
        padding-top: env(safe-area-inset-top, 0px);
    }

    .site-header__inner {
        padding-left: max(16px, env(safe-area-inset-left, 0px));
        padding-right: max(16px, env(safe-area-inset-right, 0px));
    }

    .burger {
        box-sizing: border-box;
    }

    .header-actions .icon-link,
    .header-actions .btn-consult,
    .header-actions .icon-link--cart {
        display: none !important;
    }

    .header-actions .burger {
        display: flex;
    }
}

@media (min-width: 1024px) {
    .nav-main {
        display: block;
        flex: 1;
        display: flex;
        justify-content: center;
    }

    .btn-consult {
        display: inline-flex;
    }

    .burger {
        display: none;
    }
}

/* ——— Hero (відео + сітка + жовте світло + заголовок + три скляні панелі) ——— */
.hero {
    position: relative;
    isolation: isolate;
    min-height: min(92vh, 900px);
    padding: clamp(72px, 11vh, 120px) 24px clamp(28px, 5vh, 48px);
    display: flex;
    flex-direction: column;
    align-items: stretch;
    overflow: hidden;
    color: var(--sw-hero-cream);
    background: var(--sw-hero-bg);
}

body.page-home .hero {
    margin-top: calc(-1 * (var(--header-h) + env(safe-area-inset-top, 0px)));
    padding-top: calc(var(--header-h) + env(safe-area-inset-top, 0px) + clamp(40px, 8vh, 88px));
    min-height: min(100vh, 920px);
}

@media (max-width: 1023px) {
    body.page-home .hero {
        padding-bottom: calc(var(--bottom-nav-h) + env(safe-area-inset-bottom, 0px) + 20px);
    }
}

.hero__bg {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.hero__video-fallback {
    position: absolute;
    inset: 0;
    z-index: 0;
    background:
        radial-gradient(ellipse 90% 75% at 50% 100%, #1a1210 0%, #0a0808 50%, #000 100%),
        radial-gradient(ellipse 60% 45% at 40% 35%, rgba(60, 48, 44, 0.55) 0%, transparent 70%);
}

.hero__video {
    position: absolute;
    inset: 0;
    z-index: 2;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
}

.hero__video-scrim {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: linear-gradient(
        180deg,
        rgba(13, 2, 2, 0.38) 0%,
        rgba(13, 2, 2, 0.22) 48%,
        rgba(13, 2, 2, 0.62) 100%
    );
}

.hero__grid {
    position: absolute;
    inset: 0;
    z-index: 3;
    pointer-events: none;
    opacity: 0.5;
    /* Figma: тонкі вертикалі теплого червоно-коричневого на темному */
    background: repeating-linear-gradient(
        90deg,
        transparent 0,
        transparent calc(100% / 14 - 1px),
        rgba(88, 36, 38, 0.38) calc(100% / 14 - 1px),
        rgba(88, 36, 38, 0.38) calc(100% / 14)
    );
}

/* Figma: м’яке лимонно-жовте світло за словом BAS (правий бік) */
.hero__glow {
    position: absolute;
    left: 58%;
    top: 42%;
    width: min(56vw, 1100px);
    height: min(52vh, 900px);
    transform: translate(-8%, -42%);
    z-index: 4;
    pointer-events: none;
    border-radius: 50%;
    background: radial-gradient(
        ellipse 68% 62% at 55% 45%,
        rgba(255, 244, 120, 0.95) 0%,
        rgba(232, 230, 50, 0.78) 18%,
        rgba(220, 210, 40, 0.42) 36%,
        rgba(200, 190, 30, 0.16) 54%,
        transparent 72%
    );
    filter: blur(72px);
    opacity: 0.92;
}

.hero__inner {
    position: relative;
    z-index: 5;
    flex: 1;
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: var(--container);
    margin: 0 auto;
    min-height: min(68vh, 640px);
}

.hero__stage {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: center;
    padding: clamp(12px, 3vw, 40px) 0;
}

/* Повна ширина вікна (вихід за max-width .hero__inner), як на макеті */
.hero__headline-wrap {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding: clamp(12px, 3vw, 32px) clamp(16px, 4vw, 32px);
    box-sizing: border-box;
}

/* Заголовок + лід: блок по центру сторінки, підзаголовок по лівому краю заголовка */
.hero__headline-inner {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
}

.hero__headline-block {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: fit-content;
    max-width: 100%;
}

/* Рядок заголовка: текст ззаду (z-index 1), три «скляні» панелі поверх (z-index 2) */
.hero__title-row {
    position: relative;
    width: fit-content;
    max-width: 100%;
    margin: 0 auto;
    align-self: center;
}

.hero__title-stack {
    position: relative;
    z-index: 1;
    min-width: 0;
    max-width: 100%;
}

/*
 * Три панелі «Glass» (Figma): ~367×449, corner46, обертання до30°.
 * Frost 4 → легкий backdrop-blur; світло −45° / 80% → діагональний sheen.
 * Рефракція з плагіна в CSS не повторюється — лише saturate/contrast.
 */
.hero__glass {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;
    width: min(44rem, min(96vw, 100%));
    height: 112%;
    min-height: 8rem;
    max-height: 125%;
    pointer-events: none;
    box-sizing: border-box;
}

.hero__glass-strip {
    --glass-frost: 5px;
    --glass-sat: 1.42;
    --glass-contrast: 1.06;
    position: absolute;
    left: 50%;
    top: 50%;
    width: min(46vw, 220px);
    max-width: min(367px, 78vw);
    aspect-ratio: 367 / 449;
    height: auto;
    transform-origin: center center;
    border-radius: 46px;
    overflow: hidden;
    -webkit-backdrop-filter: blur(var(--glass-frost)) saturate(var(--glass-sat)) contrast(var(--glass-contrast));
    backdrop-filter: blur(var(--glass-frost)) saturate(var(--glass-sat)) contrast(var(--glass-contrast));
    background:
        linear-gradient(
            -45deg,
            rgba(255, 252, 248, 0.38) 0%,
            rgba(255, 255, 255, 0.12) 22%,
            rgba(255, 255, 255, 0.03) 45%,
            transparent 58%,
            rgba(12, 8, 10, 0.14) 100%
        ),
        linear-gradient(
            165deg,
            rgba(255, 255, 255, 0.06) 0%,
            rgba(255, 255, 255, 0.015) 48%,
            rgba(0, 0, 0, 0.05) 100%
        );
    border: 1px solid rgba(255, 252, 248, 0.22);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.35),
        inset 0 0 0 1px rgba(0, 0, 0, 0.1),
        0 28px 64px rgba(0, 0, 0, 0.34),
        0 4px 16px rgba(0, 0, 0, 0.18);
}

.hero__glass-strip--1 {
    z-index: 1;
    transform: translate(-50%, -50%) rotate(-20deg) translate(-17%, -0.5%);
    --glass-frost: 1px;
}

.hero__glass-strip--2 {
    z-index: 3;
    transform: translate(-50%, -50%) rotate(5deg) translate(0, 0.5%);
    --glass-frost: 2px;
}

.hero__glass-strip--3 {
    z-index: 2;
    transform: translate(-50%, -50%) rotate(30deg) translate(17%, -0.5%);
    --glass-frost: 1px;
}

@media (min-width: 900px) {
    .hero__glass {
        width: min(48rem, 82vw);
    }

    .hero__glass-strip {
        width: min(24vw, 367px);
        max-width: 367px;
        /*--glass-frost: 2px;*/
    }

    .hero__glass-strip--1 {
        transform: translate(-50%, -50%) rotate(-20deg) translate(-18%, -0.5%);
    }

    .hero__glass-strip--3 {
        transform: translate(-50%, -50%) rotate(30deg) translate(18%, -0.5%);
    }
}

/* Hero H1 — один рядок; частина літер може проходити «під» склом */
.hero__inner .hero__title {
    position: relative;
    z-index: 1;
    margin: 0;
    max-width: 100%;
    font-family: var(--sw-display);
    font-weight: 500;
    font-size: clamp(2.25rem, 8.2vw, 10.5rem);
    line-height: 1.02;
    letter-spacing: -0.02em;
    color: var(--sw-hero-cream);
    text-transform: uppercase;
    text-align: left;
    text-wrap: balance;
}

/* Інші hero (наприклад банер без .hero__inner) */
.hero__title {
    position: relative;
    z-index: 2;
    margin: 0;
    font-family: var(--sw-display);
    font-weight: 600;
    font-size: clamp(1.75rem, 4vw, 2.75rem);
    line-height: 1.1;
    letter-spacing: 0.02em;
    color: rgba(255, 252, 250, 0.97);
    text-transform: uppercase;
}

.hero__title .scribble {
    position: relative;
    display: inline-block;
    /* Figma: periwinkle — світлий лавандово-блакитний → середній blue-violet */
    background: linear-gradient(180deg, #c8c6ff 0%, #a8a4f5 42%, #7b78e8 78%, #6b5ce7 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

/* Підкреслення BAS — img/scribble.svg (viewBox 401×31) */
.hero__inner .hero__title .scribble::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -0.06em;
    transform: translateX(-50%);
    width: max(112%, 9rem);
    max-width: min(100vw, 380px);
    aspect-ratio: 401 / 31;
    height: auto;
    background: url("../img/scribble.svg") center / 100% auto no-repeat;
    pointer-events: none;
}

.hero__lead {
    margin: clamp(18px, 4vw, 28px) 0 0 0;
    width: min(26rem, 100%);
    max-width: 100%;
    font-size: clamp(0.78rem, 2vw, 1.2rem);
    line-height: 1.55;
    color: var(--sw-white);
    text-align: left;
    padding: 0;
}

.btn-consult--mobile {
    display: inline-flex;
    margin-top: 20px;
    align-self: center;
}

.btn-consult--mobile .btn-consult__label {
    font-size: 14px;
    padding-left: 22px;
    padding-right: 24px;
    margin-right: -12px;
}

.btn-consult--mobile .btn-consult__knob {
    background: #000;
    border-color: var(--sw-white);
    color: var(--sw-white);
}

@media (max-width: 1023px) {
    .hero__lead {
        max-width: 100%;
        text-align: left;
    }

    .btn-consult--mobile {
        align-self: center;
    }
}

@media (max-width: 767px) {
    .hero {
        min-height: 100svh;
        padding: 88px 16px 28px;
    }

    body.page-home .hero {
        padding-top: calc(var(--header-h) + env(safe-area-inset-top, 0px) + 14px);
        padding-bottom: calc(var(--bottom-nav-h) + env(safe-area-inset-bottom, 0px) + 20px);
        padding-left: max(16px, env(safe-area-inset-left, 0px));
        padding-right: max(16px, env(safe-area-inset-right, 0px));
        min-height: 100svh;
    }

    .hero__grid {
        opacity: 0.22;
    }

    .hero__glow {
        left: 50%;
        top: 36%;
        width: min(92vw, 420px);
        height: min(38vh, 320px);
        transform: translate(-10%, -48%);
        filter: blur(56px);
    }

    .hero__inner {
        min-height: auto;
    }

    .hero__stage {
        justify-content: flex-end;
        padding: 0;
    }

    .hero__headline-wrap {
        margin: 0;
        width: 100%;
        max-width: 100%;
        padding: 0;
    }

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

    .hero__headline-block {
        width: 100%;
        align-items: center;
    }

    .hero__title-row {
        width: 100%;
        padding-top: clamp(100px, 28svh, 240px);
    }

    .hero__glass {
        top: 0px;
        left: 50%;
        transform: translateX(-50%);
        width: min(90vw, 360px);
        height: 220px;
    }

    .hero__glass-strip {
        width: min(46vw, 170px);
        max-width: 170px;
        border-radius: 28px;
    }

    .hero__inner .hero__title {
        font-size: clamp(2.95rem, 11.2vw, 4.25rem);
        line-height: 1.02;
        text-align: center;
    }

    .hero__lead {
        margin-top: 14px;
        width: min(94%, 320px);
        font-size: 1.8rem;
        line-height: 1.35;
        text-align: center;
        color: rgba(255, 255, 255, 0.92);
    }

    .btn-consult--mobile {
        margin-top: 22px;
        align-self: center;
    }
}

@media (min-width: 1024px) {
    .hero {
        padding-left: max(24px, calc((100% - 1931px) / 2 + 24px));
        padding-right: max(24px, calc((100% - 1931px) / 2 + 24px));
    }

    .hero__inner {
        min-height: min(74vh, 720px);
    }

    .btn-consult--mobile {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .hero__video {
        display: none;
    }
}

/* Банер каталогу: розмітка без відео-шару */
.hero:has(.hero__figure) {
    align-items: center;
    text-align: center;
}

.hero:has(.hero__figure) .hero__glow {
    inset: 10% 20% auto;
    height: 55%;
    background: radial-gradient(ellipse at center, rgba(80, 80, 90, 0.5) 0%, transparent 65%);
}

.hero:has(.hero__figure) .hero__figure {
    display: block;
    position: relative;
    width: min(100%, 420px);
    aspect-ratio: 1;
    margin: 0 auto 32px;
    border-radius: 50%;
    background: radial-gradient(circle at 35% 30%, #2a2a2e 0%, #0d0d0f 45%, #000 100%);
    box-shadow:
        inset 0 0 80px rgba(255, 255, 255, 0.04),
        0 40px 100px rgba(0, 0, 0, 0.6);
}

.hero:has(.hero__figure) .hero__figure::after {
    content: "";
    position: absolute;
    inset: 15%;
    border-radius: 40% 60% 55% 45% / 45% 50% 50% 55%;
    background: linear-gradient(145deg, #1f1f24, #0a0a0c);
    filter: blur(1px);
    opacity: 0.95;
}

.hero:has(.hero__figure) .hero__content {
    position: relative;
    z-index: 5;
    max-width: 720px;
}

@media (min-width: 1024px) {
    .hero:has(.hero__figure) {
        flex-direction: row;
        align-items: center;
        text-align: left;
        gap: 48px;
    }

    .hero:has(.hero__figure) .hero__figure {
        order: 2;
        width: min(48%, 520px);
        margin: 0;
        flex-shrink: 0;
    }

    .hero:has(.hero__figure) .hero__content {
        order: 1;
        max-width: 520px;
    }

    .hero:has(.hero__figure) .hero__lead {
        margin-left: 0;
    }
}

/* ——— Promo slider ——— */
.section-promo {
    padding: 0 24px 56px;
    background: var(--sw-products-bg);
}

.promo-wrap {
    max-width: var(--container);
    margin: 0 auto;
    padding-top: 50px;
}

.promo-viewport {
    border-radius: var(--radius-lg);
    overflow: hidden;
    background: #0a0a0c;
}

.promo-track {
    display: flex;
    transition: transform 0.4s ease;
}

.promo-slide {
    flex: 0 0 100%;
    min-width: 0;
    padding: 32px 28px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
    align-items: center;
    min-height: 200px;
    box-sizing: border-box;
}

.promo-slide:not(.promo-slide--svg) {
    background: linear-gradient(115deg, var(--sw-purple-start), var(--sw-purple-end));
}

/* Слайд з SVG-банером (макет) */
.promo-slide--svg {
    padding: 0;
    display: block;
    min-height: 0;
    background: transparent;
}

.promo-slide__banner {
    display: block;
    width: 100%;
    height: auto;
    vertical-align: middle;
}

.promo-slider__text {
    color: var(--sw-white);
    font-size: clamp(1.1rem, 2.5vw, 1.45rem);
    font-weight: 600;
    line-height: 1.35;
    margin: 0;
}

.promo-slider__visual {
    justify-self: center;
    width: 120px;
    height: 120px;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.2);
    display: grid;
    place-items: center;
    font-size: 3rem;
}

.promo-slider__controls {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: clamp(12px, 3vw, 20px);
    margin-top: 18px;
    width: 100%;
    max-width: min(520px, 100%);
    margin-left: auto;
    margin-right: auto;
}

.promo-slider__center {
    position: relative;
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    min-width: 0;
}

.promo-slider__scrub {
    display: flex;
    flex: 1;
    align-items: center;
    min-width: 0;
    width: 100%;
}

/* N слайдів = N сегментів; кожен .promo-slider__scrub-tick — один банер (риска) */
.promo-slider__scrub-meter {
    position: relative;
    flex: 1;
    width: 100%;
    height: 14px;
    min-height: 12px;
}

.promo-slider__scrub-ticks {
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    width: 100%;
    height: 100%;
    gap: 0;
}

.promo-slider__scrub-tick {
    flex: 1;
    min-width: 0;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: flex-end;
    box-sizing: border-box;
}

/* Одна вертикальна риска на банер (сегмент) */
.promo-slider__scrub-tick::after {
    content: "";
    display: block;
    width: 1px;
    height: 9px;
    background: #0a0a0a;
    opacity: 0.92;
}

/* Зростаючий блок з обводкою: накриває перші k сегментів (ширина з JS) */
.promo-slider__scrub-fill {
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 50%;
    min-width: 0;
    height: 12px;
    border: 1px solid #0a0a0a;
    border-radius: 2px;
    background: rgba(255, 255, 255, 0.96);
    box-sizing: border-box;
    padding: 2px;
    display: flex;
    align-items: stretch;
    z-index: 2;
    pointer-events: none;
    transition: width 0.45s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.promo-slider__scrub-fill-inner {
    flex: 1;
    min-height: 0;
    background: #f4ebe6;
    border-radius: 1px;
}

.promo-slider__dots {
    display: flex;
    gap: 8px;
}

.promo-slider__dots button {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.35);
    padding: 0;
}

.promo-slider__dots button.is-active {
    background: var(--sw-lime-bright);
    transform: scale(1.15);
}

.promo-slider__dots--on-dark button {
    background: rgba(255, 255, 255, 0.4);
}

.promo-slider__dots--on-dark button.is-active {
    background: var(--sw-lime-bright);
}

.promo-nav {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: none;
    padding: 0;
    background: #0a0a0a;
    color: #fff;
    display: grid;
    place-items: center;
    cursor: pointer;
    transition: background 0.2s ease, transform 0.15s ease;
}

.promo-nav__icon {
    display: block;
    transition: transform 0.35s ease;
}

.promo-nav:hover .promo-nav__icon,
.promo-nav:focus-visible .promo-nav__icon {
    transform: translateX(-2px);
}

.promo-nav--next:hover .promo-nav__icon,
.promo-nav--next:focus-visible .promo-nav__icon {
    transform: translateX(2px);
}

.promo-nav:hover {
    background: #1a1a1a;
}

.promo-nav:active {
    transform: scale(0.96);
}

.promo-nav:focus-visible {
    outline: 2px solid #0a0a0a;
    outline-offset: 3px;
}



@media (min-width: 768px) {
    .promo-slide:not(.promo-slide--svg) {
        grid-template-columns: 1fr auto;
        padding: 40px 48px;
    }
}

@media (max-width: 767px) {
    .section-promo {
        background: var(--sw-cream);
        padding: 0 max(20px, env(safe-area-inset-left, 0px)) 48px max(20px, env(safe-area-inset-right, 0px));
    }

    .promo-viewport {
        border-radius: clamp(22px, 6vw, 30px);
        background: #eceae4;
    }

    .promo-slider__controls {
        gap: 14px;
        margin-top: 20px;
        max-width: 100%;
    }

    .section-promo .promo-nav {
        width: 48px;
        height: 48px;
    }

}

/* ——— Light sections ——— */
.section-light {
    background: var(--sw-cream);
    color: var(--sw-black);
    padding: 72px 24px;
}

.section-light__inner {
    max-width: var(--container);
    margin: 0 auto;
}

.section-title {
    margin: 0 0 40px;
    font-family: var(--sw-display);
    font-weight: 500;
    font-size: var(--sw-h2-size);
    line-height: 1.15;
    letter-spacing: -0.03em;
    max-width: 20em;
}

.section-title .accent {
    color: var(--sw-lime);
}

.section-title .circle-word {
    position: relative;
    display: inline-block;
}

.title-underline {
    text-decoration: underline;
    text-decoration-color: var(--sw-lime);
    text-decoration-thickness: 3px;
    text-underline-offset: 6px;
}

.section-title .circle-word::after {
    content: "";
    position: absolute;
    inset: -6px -8px -10px;
    border: 2px solid var(--sw-lime);
    border-radius: 50%;
    transform: rotate(-3deg);
    pointer-events: none;
}

/* ——— Блок послуг (#services) — макет: кремовий фон, акордеон з круглими стрілками ——— */
.section-services {
    background: #f9f9f7;
}

.section-services .section-title--services {
    margin: 0;
    max-width: 14em;
    font-weight: 300;
    letter-spacing: -0.03em;
    line-height: 1.18;
    color: #1a1a1a;
}

/* Макет: овал навколо «бізнесу» — service_after.svg (viewBox 469×120) */
.section-services .section-title--services .circle-word::after {
    content: "";
    position: absolute;
    inset: auto;
    border: none;
    border-radius: 0;
    left: 50%;
    bottom: -0.1em;
    transform: translateX(-50%) rotate(-2.5deg);
    width: max(118%, 9.5rem);
    max-width: min(100vw, 400px);
    aspect-ratio: 469 / 120;
    height: auto;
    background: url("../img/service_after.svg") center / 100% auto no-repeat;
    pointer-events: none;
}

.services-head {
    display: grid;
    grid-template-columns: 1fr;
    gap: 28px;
    margin-bottom: 16px;
}

.services-intro {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
}

.services-intro__text {
    margin: 0;
    font-size: 1.2rem;
    line-height: 1.55;
    color: var(--sw-black);
    max-width: 36em;
}

.section-services .btn-consult {
    display: inline-flex;
}

@media (min-width: 900px) {
    .services-head {
        grid-template-columns: repeat(12, 1fr);
        gap: 32px 24px;
        align-items: start;
        margin-bottom: 50px;
    }

    .section-title--services {
        grid-column: 1 / span 7;
    }

    .services-intro {
        grid-column: 9 / span 4;
        align-items: flex-end;
        text-align: right;
    }

    .services-intro__text {
        margin-left: auto;
    }
}

/* Темний варіант для контрастних блоків (чорна пігулка; ховер як sw-btn) */
.btn-consult--dark .btn-consult__label {
    color: var(--sw-white);
    background: var(--sw-black);
    border-color: var(--sw-black);
}

.btn-consult--dark .btn-consult__knob {
    background: var(--sw-black);
    color: var(--sw-white);
    border-color: var(--sw-white);
}

.btn-consult--dark:hover .btn-consult__label,
.btn-consult--dark:focus-visible .btn-consult__label {
    color: var(--sw-btn-hover-text);
    background: var(--sw-btn-hover-bg);
    border-color: var(--sw-btn-hover-border);
}

.btn-consult--dark:hover .btn-consult__knob,
.btn-consult--dark:focus-visible .btn-consult__knob {
    background: var(--sw-btn-hover-bg);
    color: var(--sw-btn-hover-text);
    border-color: var(--sw-btn-hover-border);
}

.btn-consult--compact {
    --consult-height: 48px;
    margin-top: 4px;
}

.btn-consult--compact .btn-consult__label {
    font-size: 14px;
    padding-left: 22px;
    padding-right: 26px;
}

.btn-consult--compact .btn-consult__icon {
    width: 18px;
    height: 18px;
}

.btn-all-services {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 10px 10px 10px 22px;
    background: var(--sw-black);
    color: var(--sw-white);
    border-radius: var(--radius-pill);
    font-weight: 600;
    font-size: 0.9rem;
}

.btn-all-services__icon {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--sw-lime);
    color: var(--sw-black);
    display: grid;
    place-items: center;
    flex-shrink: 0;
}

.services-acc {
    border-top: 1px solid rgba(0, 0, 0, 0.14);
}

.services-acc__item {
    border-bottom: 1px solid rgba(0, 0, 0, 0.14);
}

.services-acc__btn {
    width: 100%;
    padding: 22px 0;
    display: flex;
    align-items: center;
    gap: 16px;
    border: none;
    background: transparent;
    cursor: pointer;
    text-align: left;
    color: var(--sw-black);
}

.services-acc__dot {
    display: none;
}

.services-acc__label {
    flex: 1;
    font-weight: 500;
    font-size: clamp(1.94rem, 2.4vw, 3rem);
    line-height: 1.35;
    padding-right: 16px;
    position: relative;
    display: inline-flex;
    align-items: center;
    color: var(--sw-black);
}

.services-acc__label::before,
.services-acc__label::after {
    content: none;
}

.services-acc__item.is-open .services-acc__label {
    color: var(--sw-black);
}

/* Закрито: чорне коло + біла стрілка ↗; відкрито: #e6f4a2 + чорна стрілка ↘ */
.services-acc__icon-wrap {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    border-radius: 50%;
    background: var(--sw-black);
    color: var(--sw-white);
    display: grid;
    place-items: center;
    transition: background-color 0.3s ease, color 0.3s ease, transform 0.3s ease;
}

.services-acc__item.is-open .services-acc__icon-wrap {
    background: #e6f4a2;
    color: var(--sw-black);
}

.services-acc__icon {
    width: 18px;
    height: 18px;
    display: block;
    transition: opacity 0.2s ease, transform 0.3s ease;
}

.services-acc__icon--open {
    display: none !important;
    width: 18px;
    height: 18px;
}

.services-acc__item.is-open .services-acc__icon--closed {
    display: none !important;
}

.services-acc__item.is-open .services-acc__icon--open {
    display: block !important;
}

.services-acc__panel {
    display: none;
    padding: 0 0 28px;
    padding-left: 0;
    padding-right: 0;
    gap: 24px;
    grid-template-columns: 1fr;
}

.services-acc__item.is-open .services-acc__panel {
    display: grid;
}

.services-acc__panel p {
    margin: 0;
    color: rgba(0, 0, 0, 0.52);
    font-size: clamp(16px, 18px, 24px);
    line-height: 1.58;
    max-width: 40em;
}

.services-acc__panel-main {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
}

.services-acc__panel-link {
    display: inline-flex !important;
}

.services-acc__art {
    min-height: 180px;
    border-radius: var(--radius-md);
    background: linear-gradient(145deg, #eef6e8 0%, #d8e8d0 45%, #c5dcc0 100%);
    display: grid;
    place-items: center;
    position: relative;
    overflow: hidden;
}

.services-acc__art-inner {
    font-size: 4rem;
    line-height: 1;
    filter: drop-shadow(0 8px 24px rgba(0, 0, 0, 0.08));
}

@media (min-width: 900px) {
    .services-acc__panel {
        align-items: start;
        padding-left: 0;
        padding-right: 0;
    }

    .services-acc__panel--split {
        grid-template-columns: minmax(0, 1fr) minmax(200px, 280px);
    }

    .services-acc__art {
        min-height: 200px;
    }
}

/* Server card */
.section-server {
    padding: 0 24px 72px;
    background: var(--sw-cream);
}

.server-card {
    max-width: var(--container);
    margin: 0 auto;
    background: var(--sw-black);
    color: var(--sw-white);
    border-radius: var(--radius-lg);
    padding: 36px 28px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 24px;
    position: relative;
}

.server-card__icon {
    width: 56px;
    height: 56px;
    border-radius: 14px;
    background: rgba(212, 225, 87, 0.2);
    display: grid;
    place-items: center;
    font-size: 1.75rem;
}

.server-card h2 {
    margin: 0;
    flex: 1;
    font-size: clamp(1.25rem, 2.5vw, 1.75rem);
    font-weight: 700;
}

.server-card .scribble-u {
    position: relative;
}

.server-card .scribble-u::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -4px;
    height: 10px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 12' fill='none'%3E%3Cpath d='M2 8c15-4 35-6 55-4s35 4 43 0' stroke='%23d4e157' stroke-width='2.5' stroke-linecap='round'/%3E%3C/svg%3E") bottom / 100% auto no-repeat;
}

.server-card__link {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.25);
    color: var(--sw-white);
    display: grid;
    place-items: center;
    margin-left: auto;
    text-decoration: none;
    transition: border-color 0.2s, background 0.2s;
}

.server-card__link svg {
    transition: transform 0.35s ease;
}

.server-card__link:hover svg,
.server-card__link:focus-visible svg {
    transform: rotate(135deg);
}

.product-card-lg__fab-icon {
    width: 28px;
    height: 28px;
    transition: transform 0.35s ease;
}

.product-card-lg__fab:hover .product-card-lg__fab-icon,
.product-card-lg__fab:focus-visible .product-card-lg__fab-icon {
    transform: rotate(90deg);
}

/* Products (#products) — макет: рожевий фон, виріз у куті картки, прогрес-бар */
.section-products {
    background: var(--sw-products-bg);
    color: #2a221e;
    padding: 72px 24px 88px;
}

.products-inner {
    max-width: var(--container);
    margin: 0 auto;
}

.products-head {
    display: grid;
    grid-template-columns: 1fr;
    gap: clamp(18px, 3vw, 28px);
    margin: 0 0 clamp(28px, 4vw, 44px);
    padding: 0;
}

.section-title--products {
    margin: 0;
    font-family: var(--sw-display);
    font-size: var(--sw-h2-size);
    font-weight: 500;
    line-height: 1.15;
    letter-spacing: -0.03em;
    color: #000;
}

.section-title--products__line1 {
    display: block;
}

.section-title--products__line2 {
    display: block;
    margin-top: 0.02em;
}

.products-title-wrap {
    position: relative;
    display: inline-block;
    margin-left: 0.12em;
    vertical-align: baseline;
}

.products-title-accent {
    position: relative;
    display: inline-block;
    color: #b6c92d;
    font-weight: 500;
}

/* Тонкий штрих над «програмні» */
.products-title-accent::before {
    content: "/";
    position: absolute;
    left: 50%;
    bottom: calc(100% + 0.02em);
    transform: translateX(-50%) rotate(-18deg);
    font-size: 0.42em;
    font-weight: 800;
    line-height: 1;
    color: #b6c92d;
    pointer-events: none;
}

.products-intro {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
}

.products-intro__text {
    margin: 0;
    font-size: clamp(0.92rem, 1.1vw, 1.02rem);
    line-height: 1.45;
    max-width: 30em;
    color: rgba(0, 0, 0, 0.72);
}

.products-intro__lead {
    font-weight: 500;
    color: rgba(0, 0, 0, 0.72);
}

.products-intro__muted {
    font-weight: 400;
    color: rgba(0, 0, 0, 0.72);
}

.products-intro__link {
    font-size: clamp(0.95rem, 1.1vw, 1.02rem);
    font-weight: 600;
    color: #000;
    text-decoration: underline;
    text-underline-offset: 4px;
    text-decoration-thickness: 1px;
}

.products-intro__link:hover {
    color: #1a1410;
}

@media (min-width: 900px) {
    .products-head {
        grid-template-columns: repeat(12, 1fr);
        gap: 22px 24px;
        align-items: start;
    }

    .section-title--products {
        grid-column: 1 / span 7;
    }

    .products-intro {
        grid-column: 9 / span 4;
        align-items: flex-start;
        text-align: left;
    }

    .products-intro__text {
        margin-left: 0;
    }
}

.products-track-wrap {
    overflow: hidden;
    margin: 0 -24px;
    padding: 0 24px;
}

.products-viewport {
    overflow: hidden;
}

.products-track {
    display: flex;
    gap: 20px;
    transition: transform 0.4s ease;
}

.product-card-lg {
    --product-fab-top: clamp(16px, 5.2vw, 22px);
    --product-fab-right: 6px;
    flex: 0 0 min(86vw, 340px);
    min-height: 400px;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    position: relative;
    overflow: visible;
    box-sizing: border-box;
    padding: 0;
    background: transparent;
    color: var(--sw-white);
}

.product-card-lg__plate {
    position: relative;
    z-index: 1;
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    min-height: 0;
    padding: 32px 28px 36px;
    border-radius: 40px;
    background: #0d0202;
    box-sizing: border-box;
    color: inherit;
    -webkit-mask-image: radial-gradient(circle 48px at calc(100% - 34px) 34px, transparent 47px, black 48px);
    mask-image: radial-gradient(circle 48px at calc(100% - 34px) 34px, transparent 47px, black 48px);
}

.product-card-lg.is-lime .product-card-lg__plate {
    background: var(--sw-product-mustard);
}

.product-card-lg__fab {
    position: absolute;
    z-index: 4;
    width: 76px;
    height: 76px;
    border-radius: 50%;
    background: #0d0202;
    color: var(--sw-white);
    border: none;
    margin: 0;
    display: grid;
    place-items: center;
    cursor: pointer;
    text-decoration: none;
    top: -4px;
    right: -4px;
    box-shadow: 0 0 0 10px var(--sw-products-bg, #f4ebe6);
}

.product-card-lg.is-lime .product-card-lg__fab {
    background: var(--sw-lime-bright);
    color: #fff;
    border: none;
    box-shadow: 0 0 0 10px var(--sw-products-bg, #f4ebe6);
}

.product-card-lg__title {
    margin: 0 0 10px;
    padding-right: 64px;
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1.15;
    position: relative;
    z-index: 1;
}

.product-card-lg__title--hero {
    margin-bottom: 16px;
}

.product-card-lg__title--hero .product-card-lg__brand {
    display: block;
    font-size: clamp(1.65rem, 4.8vw, 2.2rem);
    font-weight: 800;
    line-height: 1.02;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.product-card-lg__title--hero .product-card-lg__title-line {
    display: block;
    margin-top: 0.2em;
    font-size: clamp(1.28rem, 3.8vw, 1.72rem);
    font-weight: 400;
    letter-spacing: -0.02em;
    text-transform: lowercase;
}

.product-card-lg__title-line {
    display: block;
    margin-top: 0.08em;
    font-size: 1.2em;
    font-weight: 800;
    letter-spacing: -0.02em;
}

.product-card-lg__sub {
    margin: 0 0 22px;
    font-size: 0.875rem;
    font-weight: 400;
    line-height: 1.5;
    color: rgba(255, 255, 255, 0.52);
    padding-right: 52px;
    position: relative;
    z-index: 1;
}

.product-card-lg.is-lime .product-card-lg__sub {
    color: rgba(255, 255, 255, 0.95);
    font-weight: 400;
    font-size: 0.8125rem;
    line-height: 1.45;
}

/* Картка «Бухгалтерія» — типографіка як на макеті */
.product-card-lg__title--accounting {
    margin-bottom: 12px;
    padding-right: 56px;
}

.product-card-lg__brand-tag {
    display: block;
    font-size: clamp(0.78rem, 2.2vw, 0.88rem);
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    line-height: 1.2;
    margin-bottom: 0.35em;
    opacity: 0.98;
}

.product-card-lg__title-accent {
    display: block;
    font-size: clamp(1.2rem, 3.6vw, 1.42rem);
    font-weight: 700;
    line-height: 1.12;
    letter-spacing: -0.02em;
}

.product-card-lg__visual--binders {
    width: 100%;
    max-width: 260px;
    height: auto;
    min-height: 168px;
    margin: 12px auto 0;
    border-radius: 0;
    background: transparent;
    display: block;
}

.product-card-lg__binders-scene {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;
    max-height: 220px;
    margin: 0 auto;
}

.product-card-lg__binders-orbit {
    position: absolute;
    inset: 6% 4% 30% 4%;
    border: 2px solid rgba(110, 181, 255, 0.92);
    border-radius: 50%;
    pointer-events: none;
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.12) inset;
}

.product-card-lg__binders-node {
    position: absolute;
    z-index: 3;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: #fff;
    display: grid;
    place-items: center;
    font-size: 0.72rem;
    line-height: 1;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
    transform: translate(-50%, -50%);
}

.product-card-lg__binders-node--1 {
    top: 18%;
    left: 76%;
}

.product-card-lg__binders-node--2 {
    top: 30%;
    left: 92%;
}

.product-card-lg__binders-node--3 {
    top: 56%;
    left: 94%;
}

.product-card-lg__binders-node--4 {
    top: 78%;
    left: 22%;
}

.product-card-lg__binders-node--5 {
    top: 22%;
    left: 12%;
}

.product-card-lg__binders-stack {
    position: absolute;
    z-index: 2;
    left: 50%;
    bottom: 18%;
    transform: translateX(-50%);
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 5px;
}

.product-card-lg__binder {
    width: 26px;
    height: 72px;
    border-radius: 5px 5px 2px 2px;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding: 0 2px 6px;
    box-sizing: border-box;
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.22);
}

.product-card-lg__binder span {
    font-size: clamp(5px, 1.6vw, 7px);
    font-weight: 700;
    line-height: 1.05;
    text-align: center;
    color: rgba(255, 255, 255, 0.96);
    text-transform: uppercase;
    letter-spacing: 0.02em;
    word-break: break-word;
    max-width: 100%;
}

.product-card-lg__binder--orange {
    background: linear-gradient(180deg, #ff8a4c 0%, #e85a2e 100%);
    height: 68px;
}

.product-card-lg__binder--blue {
    background: linear-gradient(180deg, #5ba3ff 0%, #2a6fd4 100%);
    height: 78px;
}

.product-card-lg__binder--red {
    background: linear-gradient(180deg, #ff6b6b 0%, #d62828 100%);
    height: 74px;
}

.product-card-lg__binder--green {
    background: linear-gradient(180deg, #4cd4a0 0%, #1f8f5b 100%);
    height: 70px;
}

.product-card-lg__binders-shelf {
    position: absolute;
    z-index: 1;
    left: 8%;
    right: 8%;
    bottom: 14%;
    height: 5px;
    border-radius: 2px;
    background: #fff;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
}

.product-card-lg__visual {
    width: 118px;
    height: 118px;
    margin: auto auto 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.1);
    display: grid;
    place-items: center;
    font-size: 2.75rem;
    flex-shrink: 0;
    position: relative;
    z-index: 1;
}

.product-card-lg.is-lime .product-card-lg__visual:not(.product-card-lg__visual--binders) {
    background: rgba(255, 255, 255, 0.22);
}

.product-card-lg__visual--orbit {
    width: clamp(180px, 52vw, 216px);
    height: clamp(180px, 52vw, 216px);
    border-radius: 50%;
    background: transparent;
    margin-top: auto;
    margin-bottom: 0;
}

.product-card-lg__orbit {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
    border-style: dotted;
    border-width: 2px;
}

.product-card-lg__orbit--a {
    inset: 0;
    border-color: rgba(255, 255, 255, 0.38);
    transform: rotate(-10deg);
}

.product-card-lg__orbit--b {
    inset: 20px;
    border-color: rgba(255, 145, 77, 0.7);
    transform: rotate(14deg);
}

.product-card-lg__orbit--c {
    inset: 40px;
    border-color: rgba(120, 195, 255, 0.58);
    transform: rotate(-6deg);
}

.product-card-lg__orbit--d {
    inset: 60px;
    border-color: rgba(255, 255, 255, 0.22);
    transform: rotate(9deg);
}

.product-card-lg__satellite {
    position: absolute;
    z-index: 2;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-size: 0.9rem;
    line-height: 1;
    transform: translate(-50%, -50%);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.28);
}

.product-card-lg__satellite--1 {
    top: 10%;
    left: 74%;
    background: #e85a8f;
}

.product-card-lg__satellite--2 {
    top: 26%;
    left: 92%;
    background: #7fd89a;
}

.product-card-lg__satellite--3 {
    top: 82%;
    left: 78%;
    background: #ffb070;
}

.product-card-lg__satellite--4 {
    top: 14%;
    left: 16%;
    background: #6eb5ff;
}

.product-card-lg__satellite--5 {
    top: 72%;
    left: 10%;
    background: #c49cff;
}

.product-card-lg__satellite--6 {
    top: 48%;
    left: 4%;
    background: #fff3b0;
}

.product-card-lg__emoji {
    position: relative;
    z-index: 1;
    font-size: clamp(2.5rem, 7vw, 3.1rem);
    line-height: 1;
    filter: drop-shadow(0 3px 10px rgba(0, 0, 0, 0.35)) saturate(1.12);
}

/* Продукти: розмітка + стилі як у .promo-slider__controls (клас на обгортці) */
.products-controls.promo-slider__controls {
    margin-top: 32px;
}

@media (max-width: 767px) {
    .products-controls.promo-slider__controls {
        margin-top: 28px;
        max-width: 100%;
    }

    .products-controls.promo-slider__controls .promo-nav {
        width: 48px;
        height: 48px;
    }
}

@media (min-width: 1024px) {
    .product-card-lg {
        flex: 0 0 calc((100% - 60px) / 4);
    }

    .products-track-wrap {
        margin: 0;
        padding: 0;
    }
}

/* Equipment (#marketplace) */
.section-equipment {
    background: var(--sw-cream);
    color: var(--sw-white);
    padding: 48px 24px 72px;
    position: relative;
    z-index: 2;
}

.equipment-shell {
    max-width: var(--container);
    margin: 0 auto;
    background: #0c0c0c;
    border-radius: clamp(32px, 5vw, 52px);
    padding: clamp(28px, 4vw, 48px) clamp(22px, 3vw, 40px);
    box-sizing: border-box;
}

.equipment-inner {
    max-width: 100%;
}

.equipment-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px 32px;
    margin-bottom: clamp(28px, 4vw, 40px);
}

.equipment-title {
    margin: 0;
    font-family: var(--sw-display);
    font-size: var(--sw-h2-size);
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 12px;
    line-height: 1.15;
    letter-spacing: -0.03em;
}

.equipment-cursor {
    flex-shrink: 0;
    color: var(--sw-white);
    opacity: 0.95;
}

.equipment-meta {
    max-width: 420px;
    text-align: left;
}

@media (min-width: 768px) {
    .equipment-meta {
        text-align: right;
    }
}

.equipment-meta p {
    margin: 0 0 12px;
    font-size: 1.2rem;
    line-height: 1.5;
    color: var(--sw-white);
}

.equipment-meta__link {
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--sw-white);
    text-decoration: underline;
    text-underline-offset: 5px;
    text-decoration-thickness: 1px;
}

.equipment-meta__link:hover {
    color: var(--sw-lime-bright);
}

.equipment-stage {
    position: relative;
    min-height: clamp(280px, 45vw, 420px);
}

.equipment-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 6px;
    position: relative;
    z-index: 1;
}

.equipment-list__btn {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 20px;
    border: none;
    border-radius: var(--radius-md);
    background: transparent;
    color: rgba(255, 255, 255, 0.92);
    font-weight: 600;
    font-size: clamp(1.4rem, 3vw, 3.5rem);
    text-align: left;
    cursor: pointer;
    transition: background 0.25s ease, color 0.25s ease;
}

.equipment-list__arrow {
    opacity: 0;
    transform: translateX(4px);
    transition: opacity 0.25s ease, transform 0.25s ease;
    color: var(--sw-black);
    display: grid;
    place-items: center;
    flex-shrink: 0;
}

.equipment-list li:hover .equipment-list__btn,
.equipment-list li:focus-within .equipment-list__btn {
    background: var(--sw-lime-bright);
    color: var(--sw-black);
}

.equipment-list li:hover .equipment-list__arrow,
.equipment-list li:focus-within .equipment-list__arrow {
    opacity: 1;
    transform: translateX(0);
}

@media (hover: hover) and (pointer: fine) {
    .equipment-list:hover li:not(:hover) .equipment-list__btn,
    .equipment-list:focus-within li:not(:focus-within) .equipment-list__btn {
        color: rgba(255, 255, 255, 0.34);
    }
}

.equipment-float {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;
    width: min(100%, 320px);
    max-width: 92vw;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.35s ease, visibility 0.35s;
}

.equipment-float.is-visible {
    opacity: 1;
    visibility: visible;
}

.equipment-float__card {
    background: #f5e8e4;
    border-radius: var(--radius-lg);
}

.equipment-float__img {
    width: 100%;
    height: auto;
    max-height: min(56vh, 420px);
    object-fit: contain;
    display: block;
    border-radius: var(--radius-sm);
}

@media (min-width: 900px) {
    .equipment-float__card {
        transform: rotate(-7deg);
    }
}

@media (max-width: 899px) {
    .equipment-float {
        position: relative;
        left: auto;
        top: auto;
        transform: none;
        width: 100%;
        max-width: none;
        margin-top: 0;
        max-height: 0;
        overflow: hidden;
        opacity: 0;
        visibility: hidden;
        transition: max-height 0.4s ease, opacity 0.35s ease, margin 0.35s ease, visibility 0.35s;
    }

    .equipment-float.is-visible {
        max-height: 560px;
        margin-top: 20px;
        opacity: 1;
        visibility: visible;
    }

    .equipment-stage {
        min-height: 0;
    }
}

/* Solutions — Rayo: padding-stacked-section + ScrollTrigger stack (усі ширини); tap лише fallback без GSAP */
.section-solutions {
    --solutions-bg: #f2e8e4;
    background: var(--solutions-bg);
    padding: 72px 24px 100px;
    position: relative;
    z-index: 0;
}

.section-solutions.mxd-section.padding-stacked-section {
    padding: 72px 24px 48px;
}

.section-solutions[data-solutions-mode="scroll"] {
    overflow: visible;
    z-index: 1;
}

.solutions-inner {
    max-width: var(--container);
    margin: 0 auto;
}

.solutions-head {
    position: relative;
    text-align: center;
    max-width: 42rem;
    margin: 0 auto 48px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 28px;
    isolation: isolate;
}

/* М’яке тепле світіння за заголовком (макет) */
.solutions-head::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 42%;
    width: min(92%, 34rem);
    height: min(140%, 18rem);
    transform: translate(-50%, -50%);
    z-index: -1;
    pointer-events: none;
    border-radius: 50%;
    background: radial-gradient(
        ellipse 70% 60% at 50% 50%,
        rgba(255, 214, 170, 0.55) 0%,
        rgba(255, 228, 200, 0.28) 42%,
        transparent 72%
    );
    filter: blur(36px);
}

.section-title--solutions {
    margin: 0;
    font-family: var(--sw-display);
    font-size: var(--sw-h2-size);
    font-weight: 500;
    line-height: 1.15;
    letter-spacing: -0.03em;
    color: #1a1614;
}

.section-title--solutions__line {
    display: block;
}

/* Hand-drawn овал навколо «рішення» — як у блоці послуг */
.section-solutions .section-title--solutions .circle-word::after {
    content: "";
    position: absolute;
    inset: auto;
    border: none;
    border-radius: 0;
    left: 50%;
    bottom: -0.08em;
    transform: translateX(-50%) rotate(-2.5deg);
    width: max(118%, 8.5rem);
    max-width: min(100vw, 360px);
    aspect-ratio: 469 / 120;
    height: auto;
    background: url("../img/service_after.svg") center / 100% auto no-repeat;
    pointer-events: none;
}

.solutions-head .btn-consult {
    display: inline-flex;
}

.solutions-head .btn-consult--compact {
    --consult-height: 52px;
    margin-top: 0;
}

.solutions-head .btn-consult--compact .btn-consult__label {
    font-size: 16px;
    font-weight: 500;
    padding-left: 26px;
    padding-right: 32px;
}

.solutions-head .btn-consult--compact .btn-consult__knob {
    width: 52px;
    height: 52px;
}

.solutions-head .btn-consult--compact .btn-consult__icon {
    width: 20px;
    height: 20px;
}

/* ——— Стек: sticky-картки як Blinkpath ——— */
#clients .stack-wrapper {
    position: relative;
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding-left: 6vw;
    padding-right: 6vw;
    box-sizing: border-box;
}

#clients .stack-offset {
    display: none;
}

#clients .services-stack {
    width: 100%;
    position: relative;
    max-width: 100%;
    margin: 0 auto;
}

#clients[data-solutions-mode="tap"] .stack-item {
    display: contents;
}

/* Scroll-режим: CSS sticky stacking (як Blinkpath approach-cards) */
#clients[data-solutions-mode="scroll"] .services-stack {
    display: flex;
    flex-direction: column;
}

#clients[data-solutions-mode="scroll"] .stack-item {
    position: sticky;
    top: 12vh;
}

#clients[data-solutions-mode="scroll"] .stack-item:nth-child(1) {
    z-index: 1;
    padding-bottom: 15vh;
}

#clients[data-solutions-mode="scroll"] .stack-item:nth-child(2) {
    z-index: 2;
    padding-bottom: 8vh;
}

#clients[data-solutions-mode="scroll"] .stack-item:nth-child(3) {
    z-index: 3;
    padding-bottom: 2vh;
}

#clients[data-solutions-mode="scroll"] .stack-item .solution-card {
    width: 100%;
    min-height: 65vh;
    display: flex;
    flex-direction: column;
}

#clients[data-solutions-mode="scroll"] .solution-card__body {
    flex: 1;
}

#clients[data-solutions-mode="scroll"] .solution-card__next {
    display: none;
}

@media (max-width: 767px) {
    #clients[data-solutions-mode="scroll"] .stack-item {
        top: 8vh;
    }

    #clients[data-solutions-mode="scroll"] .stack-item:nth-child(1) {
        padding-bottom: 12vh;
    }

    #clients[data-solutions-mode="scroll"] .stack-item:nth-child(2) {
        padding-bottom: 6vh;
    }

    #clients[data-solutions-mode="scroll"] .stack-item .solution-card {
        min-height: 50vh;
    }
}

@media (prefers-reduced-motion: reduce) {
    .solution-card {
        transition: none;
    }
}

@keyframes solutions-circle-pop {
    0% {
        transform: translateX(-50%) rotate(-2.5deg) scale(1);
    }
    45% {
        transform: translateX(-50%) rotate(-2.5deg) scale(1.055);
    }
    100% {
        transform: translateX(-50%) rotate(-2.5deg) scale(1);
    }
}

.section-solutions[data-solutions-inview="1"] .section-title--solutions .circle-word::after {
    animation: solutions-circle-pop 0.85s cubic-bezier(0.25, 0.9, 0.35, 1.15) both;
}

@media (prefers-reduced-motion: reduce) {
    .section-solutions[data-solutions-inview="1"] .section-title--solutions .circle-word::after {
        animation: none;
    }
}

.solution-card {
    border-radius: 40px;
    box-sizing: border-box;
    box-shadow: 0 24px 56px rgba(35, 28, 24, 0.12);
}

/* Режим tap: абсолютний стек + глибина */
.section-solutions[data-solutions-mode="tap"] .solution-card {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    transition:
        transform 0.72s cubic-bezier(0.25, 0.92, 0.3, 1),
        box-shadow 0.72s ease,
        filter 0.72s ease;
    will-change: transform;
}

.section-solutions[data-solutions-mode="tap"] .solution-card[data-depth="0"] {
    z-index: 30;
    transform: translateY(0) scale(1);
    pointer-events: auto;
    filter: none;
}

.section-solutions[data-solutions-mode="tap"] .solution-card[data-depth="1"] {
    z-index: 20;
    transform: translateY(var(--stack-peek)) scale(var(--stack-scale));
    pointer-events: none;
    box-shadow: 0 14px 36px rgba(35, 28, 24, 0.08);
    filter: brightness(0.99);
}

.section-solutions[data-solutions-mode="tap"] .solution-card[data-depth="2"] {
    z-index: 10;
    transform: translateY(calc(var(--stack-peek) * 2)) scale(calc(var(--stack-scale) * var(--stack-scale)));
    pointer-events: none;
    box-shadow: 0 8px 24px rgba(35, 28, 24, 0.06);
    filter: brightness(0.97);
}

/* Scroll: sticky-картки */
.section-solutions[data-solutions-mode="scroll"] .solution-card {
    position: relative;
    transition: box-shadow 0.35s ease;
    padding: clamp(24px, 3vw, 48px);
}

.section-solutions[data-solutions-mode="scroll"] .solution-card--dark {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.section-solutions[data-solutions-mode="scroll"] .solution-card__dark-panel {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.section-solutions[data-solutions-mode="scroll"] .solution-card--dark .solution-card__body {
    flex: 1;
}

.solution-card--light {
    background: #faf6f3;
    border: 1px solid rgba(42, 34, 30, 0.06);
    padding: 28px 24px 28px 28px;
    color: #2a221e;
}

.solution-card--tint {
    background: #f7f1ed;
}

.solution-card__body {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 20px 24px;
}

.solution-card__copy {
    flex: 1;
    min-width: min(100%, 220px);
}

.solution-card__idx {
    display: block;
    font-size: 0.9rem;
    font-weight: 600;
    color: rgba(42, 34, 30, 0.45);
    margin-bottom: 10px;
}

.solution-card--dark .solution-card__idx {
    color: rgba(255, 255, 255, 0.45);
}

.solution-card__title {
    margin: 0;
    font-size: clamp(1.2rem, 2.8vw, 1.65rem);
    font-weight: 700;
    line-height: 1.25;
}

.solution-card__lead {
    margin: 12px 0 0;
    font-size: 0.92rem;
    line-height: 1.5;
    color: rgba(255, 255, 255, 0.65);
    max-width: 28em;
}

.solution-card__aside {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-shrink: 0;
}

.solution-card__art {
    width: 96px;
    height: 96px;
    border-radius: 20px;
    background: rgba(0, 0, 0, 0.05);
    display: grid;
    place-items: center;
    font-size: 2.5rem;
}

.solution-card--dark .solution-card__art {
    background: rgba(255, 255, 255, 0.08);
}

.solution-card__next {
    width: 48px;
    height: 48px;
    flex-shrink: 0;
    border: none;
    border-radius: 50%;
    background: #1a1614;
    color: var(--sw-white);
    display: grid;
    place-items: center;
    cursor: pointer;
    transition: transform 0.2s, background 0.2s;
}

.solution-card__next:hover,
.solution-card__next:focus-visible {
    background: #000;
    transform: scale(1.05);
    outline: none;
}

.solution-card__next--on-dark {
    position: relative;
    z-index: 4;
    background: #000;
    border: 2px solid rgba(255, 255, 255, 0.2);
}

/* Темна картка: лайм-смуга + панель з вирізом */
.solution-card--dark {
    padding: 0;
    overflow: visible;
    background: transparent;
    border: none;
}

.solution-card--dark .solution-card__tab {
    display: block;
    padding: 14px 28px;
    background: var(--sw-lime);
    color: var(--sw-black);
    font-weight: 700;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    border-radius: 40px 40px 0 0;
}

.solution-card__dark-panel {
    position: relative;
    background: #121110;
    color: var(--sw-white);
    border-radius: 0 0 40px 40px;
    padding: 0;
    overflow: visible;
}

.solution-card__cutout {
    position: absolute;
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: var(--solutions-bg);
    top: -6px;
    right: -6px;
    z-index: 2;
    pointer-events: none;
}

.solution-card--dark .solution-card__body {
    position: relative;
    z-index: 1;
    padding: 26px 24px 28px 28px;
}

@media (max-width: 540px) {
    .solution-card__aside {
        width: 100%;
        justify-content: space-between;
    }
}

/* News — макет: центрований хедер, сітка карток, outline CTA */
.section-news {
    background: #f7f4f0;
    padding: clamp(64px, 8vw, 96px) 24px clamp(72px, 9vw, 110px);
}

.news-head {
    text-align: center;
    max-width: 40rem;
    margin: 0 auto 40px;
}

.section-title--news {
    max-width: none;
    margin: 0 0 16px;
    font-family: var(--sw-display);
    font-size: var(--sw-h2-size);
    font-weight: 500;
    letter-spacing: -0.03em;
    line-height: 1.15;
    color: #1a1614;
}

.news-head__intro {
    margin: 0 auto;
    max-width: 34rem;
    font-size: clamp(0.95rem, 1.4vw, 1.125rem);
    line-height: 1.55;
    color: rgba(42, 34, 30, 0.55);
}

.news-shell {
    max-width: var(--container);
    margin: 0 auto;
}

.news-viewport {
    overflow: hidden;
    width: 100%;
}

.news-track {
    display: flex;
    gap: 18px;
    transition: transform 0.4s ease;
}

.news-card {
    flex: 0 0 100%;
    min-width: 0;
    box-sizing: border-box;
    background: var(--sw-white);
    border-radius: 22px;
    overflow: hidden;
    border: 1px solid rgba(0, 0, 0, 0.04);
    box-shadow: 0 12px 40px rgba(26, 22, 20, 0.06);
}

.news-card__surface {
    display: flex;
    flex-direction: column;
    height: 100%;
    text-decoration: none;
    color: inherit;
}

.news-card__surface:hover .news-card__more {
    transform: scale(1.06);
    background: #000;
    color: var(--sw-white);
}

.news-card__img {
    aspect-ratio: 16 / 10;
    background-color: #e8e4e0;
    background-size: cover;
    background-position: center;
}

.news-card__img--1 {
    background-image: linear-gradient(135deg, rgba(0, 0, 0, 0.08), rgba(0, 0, 0, 0.02)),
        url("https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=900&q=80");
}

.news-card__img--2 {
    background-image: linear-gradient(135deg, rgba(0, 0, 0, 0.06), transparent),
        url("https://images.unsplash.com/photo-1554224155-6726b3ff858f?w=900&q=80");
}

.news-card__img--3 {
    background-image: linear-gradient(135deg, rgba(0, 0, 0, 0.06), transparent),
        url("https://images.unsplash.com/photo-1551288049-bebda4e38f71?w=900&q=80");
}

.news-card__img--4 {
    background-image: linear-gradient(135deg, rgba(0, 0, 0, 0.06), transparent),
        url("https://images.unsplash.com/photo-1586528116311-ad8dd3c8310d?w=900&q=80");
}

.news-card__body {
    position: relative;
    padding: 18px 20px 64px;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.news-card__meta-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.news-card__tag {
    display: inline-block;
    padding: 6px 12px;
    border-radius: 999px;
    background: rgba(42, 34, 30, 0.07);
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: rgba(42, 34, 30, 0.72);
    text-decoration: none;
    transition: background 0.2s ease, color 0.2s ease;
}

a.news-card__tag:hover {
    background: rgba(42, 34, 30, 0.14);
    color: var(--sw-black);
}

.news-card__date {
    font-size: 0.8rem;
    font-weight: 500;
    color: rgba(42, 34, 30, 0.45);
    white-space: nowrap;
}

.news-card h3 {
    margin: 0 0 10px;
    font-family: var(--sw-display);
    font-size: 1.08rem;
    font-weight: 600;
    line-height: 1.3;
    color: #1a1614;
}

.news-card__excerpt {
    margin: 0;
    font-size: 0.86rem;
    line-height: 1.5;
    color: rgba(42, 34, 30, 0.52);
    flex: 1;
}

.news-card__more {
    position: absolute;
    right: 18px;
    bottom: 18px;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #f3f0ec;
    color: var(--sw-black);
    display: grid;
    place-items: center;
    transition: transform 0.2s ease, background 0.2s ease, color 0.2s ease;
    pointer-events: none;
}

.news-controls {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    margin-top: 24px;
    max-width: 420px;
    margin-left: auto;
    margin-right: auto;
}

.news-nav-btn {
    width: 44px;
    height: 44px;
    flex-shrink: 0;
    border-radius: 50%;
    border: none;
    background: var(--sw-card-dark);
    color: var(--sw-white);
    display: grid;
    place-items: center;
    cursor: pointer;
    padding: 0;
    transition: background 0.2s ease, transform 0.15s ease;
}

.news-nav-btn:hover {
    background: #000;
}

.news-nav-btn:active {
    transform: scale(0.96);
}

.news-scrub {
    flex: 1;
    min-width: 0;
    max-width: 220px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: stretch;
}

.news-scrub__track {
    height: 4px;
    border-radius: 2px;
    background: rgba(42, 34, 30, 0.12);
    overflow: hidden;
}

.news-scrub__fill {
    height: 100%;
    width: 25%;
    border-radius: 2px;
    background: var(--sw-card-dark);
    transition: width 0.4s ease;
}

.news-scrub__ticks {
    display: flex;
    justify-content: space-between;
    padding: 0 2px;
    gap: 4px;
}

.news-scrub__ticks span {
    flex: 1;
    height: 12px;
    max-width: 3px;
    margin: 0 auto;
    border-radius: 1px;
    background: rgba(42, 34, 30, 0.2);
    transition: background 0.3s;
}

.news-scrub__ticks span.is-active {
    background: var(--sw-card-dark);
}

.news-empty {
    margin: 0 0 24px;
    text-align: center;
    color: rgba(42, 34, 30, 0.55);
    font-size: 0.95rem;
}

.news-all-wrap {
    text-align: center;
    margin: 40px 0 0;
}

.news-all-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 12px 22px 12px 26px;
    border-radius: 999px;
    border: 1px solid rgba(42, 34, 30, 0.18);
    background: rgba(255, 255, 255, 0.72);
    color: #2a2218;
    font-family: var(--sw-font);
    font-size: 0.95rem;
    font-weight: 500;
    text-decoration: none;
    transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

.news-all-btn__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: inherit;
}

.news-all-btn:hover,
.news-all-btn:focus-visible {
    background: #fff;
    border-color: rgba(42, 34, 30, 0.32);
    box-shadow: 0 8px 24px rgba(26, 22, 20, 0.08);
    color: #000;
}

.button_main_wrap {
    --button-text-color: #2a2218;
    --button-bg-color: rgba(42, 34, 30, 0.08);
    --button-bg-color-hover: #2a2218;
    --button-hover-text-color: #ffffff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border-radius: 999px;
    position: relative;
    cursor: pointer;
}

.clickable_wrap.u-cover-absolute {
    position: absolute;
    inset: 0;
    z-index: 4;
}

.clickable_link {
    width: 100%;
    height: 100%;
    display: block;
    border-radius: inherit;
}

.button_main_text_wrap {
    position: relative;
    border-radius: 999px;
    overflow: hidden;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 24px;
}

.button_main_bg {
    position: absolute;
    inset: 0;
    border: 1px solid rgba(42, 34, 30, 0.24);
    border-radius: inherit;
    background: var(--button-bg-color);
    transition: background-color 0.3s ease, border-color 0.3s ease;
}

.button_main_text_mask {
    position: relative;
    display: inline-flex;
    min-height: 1.2em;
    overflow: hidden;
}

.button_main_text {
    font-size: 0.9rem;
    font-weight: 600;
    line-height: 1.2;
    color: var(--button-text-color);
    white-space: nowrap;
    transition: transform 0.35s ease, color 0.35s ease;
}

.button_main_text.is-2 {
    position: absolute;
    left: 0;
    top: 0;
    transform: translateY(105%);
}

.button_main_icon {
    width: 44px;
    height: 44px;
    border-radius: 999px;
    position: relative;
    overflow: hidden;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--button-text-color);
}

.button_icon {
    width: 12px;
    height: 12px;
    position: relative;
    z-index: 1;
    transition: transform 0.35s ease, color 0.35s ease;
}

.button_icon_bg {
    position: absolute;
    inset: 0;
    border-radius: inherit;
    border: 1px solid rgba(42, 34, 30, 0.24);
    background: var(--button-bg-color);
    transition: background-color 0.3s ease, border-color 0.3s ease;
}

.button_main_bg_wrap {
    display: none;
}

.button_main_wrap:hover .button_main_bg,
.button_main_wrap:focus-within .button_main_bg,
.button_main_wrap:hover .button_icon_bg,
.button_main_wrap:focus-within .button_icon_bg {
    background: var(--button-bg-color-hover);
    border-color: var(--button-bg-color-hover);
}

.button_main_wrap:hover .button_main_text,
.button_main_wrap:focus-within .button_main_text,
.button_main_wrap:hover .button_main_icon,
.button_main_wrap:focus-within .button_main_icon {
    color: var(--button-hover-text-color);
}

.button_main_wrap:hover .button_main_text[data-button-text-primary],
.button_main_wrap:focus-within .button_main_text[data-button-text-primary] {
    transform: translateY(-105%);
}

.button_main_wrap:hover .button_main_text.is-2,
.button_main_wrap:focus-within .button_main_text.is-2 {
    transform: translateY(0);
}

.button_main_wrap:hover .button_icon,
.button_main_wrap:focus-within .button_icon {
    transform: translate(1px, -1px);
}

/* Як btn-consult sw-btn: біла пігулка + контурне коло зі стрілкою (блок «Усі статті») */
.button_main_wrap.sw-btn {
    gap: 8px;
    --button-text-color: var(--sw-black);
}

.button_main_wrap.sw-btn .button_main_text_wrap {
    min-height: calc(var(--consult-height) - 4px);
    padding: 6px 20px;
}

.button_main_wrap.sw-btn .button_main_bg {
    background: var(--sw-white);
    border: 1px solid var(--sw-btn-border);
}

.button_main_wrap.sw-btn .button_main_text {
    font-size: 18px;
    font-weight: 500;
}

.button_main_wrap.sw-btn .button_main_icon {
    width: 50px;
    height: 50px;
    color: var(--sw-white);
}

.button_main_wrap.sw-btn .button_icon {
    width: 26px;
    height: 26px;
}

.button_main_wrap.sw-btn .button_icon_bg {
    background: transparent;
    border: 1px solid var(--sw-white);
}

.button_main_wrap.sw-btn:hover .button_main_bg,
.button_main_wrap.sw-btn:focus-within .button_main_bg {
    background: var(--sw-white);
    border-color: var(--sw-btn-border);
}

.button_main_wrap.sw-btn:hover .button_main_text,
.button_main_wrap.sw-btn:focus-within .button_main_text {
    color: var(--sw-btn-hover-text);
}

.button_main_wrap.sw-btn:hover .button_main_icon,
.button_main_wrap.sw-btn:focus-within .button_main_icon {
    color: var(--sw-btn-hover-text);
}

.button_main_wrap.sw-btn:hover .button_icon_bg,
.button_main_wrap.sw-btn:focus-within .button_icon_bg {
    background: var(--sw-btn-hover-bg);
    border-color: var(--sw-btn-hover-border);
}

.button_main_wrap.sw-btn:hover .button_icon,
.button_main_wrap.sw-btn:focus-within .button_icon {
    transform: translate(1px, -1px) rotate(45deg);
}

@media (min-width: 768px) {
    .news-head {
        margin-bottom: 48px;
    }

    .news-viewport {
        overflow: visible;
    }

    .news-track {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 22px;
        transform: none !important;
    }

    .news-card {
        flex: none;
    }

    .news-controls {
        display: none;
    }
}

@media (min-width: 1100px) {
    .news-track {
        grid-template-columns: repeat(4, 1fr);
        gap: 24px;
    }
}

/* Partners */
.section-partners {
    background: #f3f3f1;
    padding: clamp(56px, 8vw, 84px) 24px;
}

.partners-grid {
    max-width: min(1280px, 100%);
    margin: 34px auto 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.partner-cell {
    min-height: 88px;
    border-radius: 16px;
    background: #fafafa;
    display: grid;
    place-items: center;
    font-weight: 600;
    font-size: clamp(1.65rem, 3.2vw, 3.3rem);
    line-height: 1;
    color: #8a8e96;
    border: 1px solid rgba(0, 0, 0, 0.04);
    letter-spacing: -0.02em;
    text-transform: none;
}

.section-partners .section-title {
    margin: 0 auto;
    max-width: 10.6em;
    text-align: center;
    font-family: var(--sw-display);
    font-size: var(--sw-h2-size);
    font-weight: 500;
    line-height: 1.15;
    letter-spacing: -0.03em;
    color: #0a0a0a;
}

.section-partners .title-underline {
    text-decoration-color: #b8cb2d;
    text-decoration-thickness: 2px;
    text-underline-offset: 8px;
}

.partners-grid .partner-cell:nth-child(3),
.partners-grid .partner-cell:nth-child(7) {
    background: #bdd312;
    color: #0b0b0b;
}

.partners-grid .partner-cell:nth-child(4),
.partners-grid .partner-cell:nth-child(8) {
    color: #9bb4e8;
}

.partners-carousel {
    position: relative;
}

.partners-carousel__btn {
    display: none;
}

@media (max-width: 1023px) {
    .partners-carousel__btn {
        display: grid;
        place-items: center;
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        width: 42px;
        height: 42px;
        padding: 0;
        border: none;
        border-radius: 50%;
        background: #fff;
        color: #0a0a0a;
        box-shadow: 0 4px 22px rgba(0, 0, 0, 0.14);
        cursor: pointer;
        z-index: 2;
        -webkit-tap-highlight-color: transparent;
        transition: transform 0.15s ease, box-shadow 0.15s ease;
    }

    .partners-carousel__btn:hover {
        box-shadow: 0 6px 28px rgba(0, 0, 0, 0.18);
    }

    .partners-carousel__btn:active {
        transform: translateY(-50%) scale(0.96);
    }

    .partners-carousel__btn:disabled {
        opacity: 0.32;
        cursor: not-allowed;
        pointer-events: none;
        box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
    }

    .partners-carousel__btn--prev {
        left: max(4px, env(safe-area-inset-left, 0px));
    }

    .partners-carousel__btn--next {
        right: max(4px, env(safe-area-inset-right, 0px));
    }

    .section-partners {
        padding-left: 0;
        padding-right: 0;
    }

    .section-partners .section-light__inner {
        padding-left: 24px;
        padding-right: 24px;
    }

    /* Горизонтальний скрол логотипів: max-width: none — інакше базове max-width: 100% не дає контенту бути ширшим за контейнер */
    .partners-grid {
        --partners-scroll-pad: 24px;
        --partners-arrow-gutter: 48px;
        max-width: none;
        margin-top: 28px;
        margin-left: calc(-1 * var(--partners-scroll-pad));
        margin-right: calc(-1 * var(--partners-scroll-pad));
        padding-left: calc(var(--partners-scroll-pad) + var(--partners-arrow-gutter));
        padding-right: calc(var(--partners-scroll-pad) + var(--partners-arrow-gutter));
        padding-bottom: 8px;
        box-sizing: border-box;
        width: calc(100% + 2 * var(--partners-scroll-pad));
        display: grid;
        grid-auto-flow: column;
        grid-template-rows: repeat(2, minmax(0, 1fr));
        grid-template-columns: none;
        grid-auto-columns: minmax(132px, 42vw);
        gap: 14px;
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x mandatory;
        scroll-padding-inline: calc(var(--partners-scroll-pad) + var(--partners-arrow-gutter));
        -webkit-overflow-scrolling: touch;
        overscroll-behavior-x: contain;
    }

    .partners-grid::-webkit-scrollbar {
        height: 4px;
    }

    .partners-grid::-webkit-scrollbar-thumb {
        background: rgba(0, 0, 0, 0.18);
        border-radius: 999px;
    }

    .partner-cell {
        min-height: 118px;
        font-size: clamp(1.1rem, 7vw, 2.15rem);
        scroll-snap-align: start;
    }
}

@media (min-width: 1024px) {
    .partners-grid {
        grid-template-columns: repeat(4, 1fr);
        grid-auto-flow: row;
        grid-auto-columns: auto;
        grid-template-rows: none;
        gap: 16px;
        width: 100%;
        max-width: min(1280px, 100%);
        min-width: 0;
        margin-left: auto;
        margin-right: auto;
        padding-left: 0;
        padding-right: 0;
        overflow: visible;
        scroll-snap-type: none;
    }

    .partner-cell {
        min-height: 136px;
        scroll-snap-align: none;
    }
}

/* Footer — десктоп / мобільна версія за макетом */
.site-footer {
    background: #0d0d0d;
    color: var(--sw-white);
    padding: 56px 24px 100px;
    position: relative;
    overflow: hidden;
}

@media (min-width: 1024px) {
    .site-footer {
        padding: 72px 24px 64px;
    }
}

.site-footer__glow {
    position: absolute;
    bottom: -25%;
    right: -8%;
    width: min(70%, 520px);
    height: min(75%, 480px);
    background: radial-gradient(circle, rgba(212, 225, 87, 0.42) 0%, transparent 62%);
    pointer-events: none;
    z-index: 0;
}

.site-footer__inner {
    max-width: var(--container);
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

.site-footer__main {
    display: flex;
    flex-direction: column;
    gap: 36px;
    padding-bottom: 32px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

@media (min-width: 1024px) {
    .site-footer__main {
        flex-direction: row;
        justify-content: space-between;
        align-items: flex-start;
        gap: 48px 64px;
        padding-bottom: 48px;
    }
}

.site-footer__cta {
    flex: 0 0 auto;
    max-width: 360px;
}

.site-footer__cta-title {
    margin: 0 0 12px;
    font-size: clamp(1.35rem, 3vw, 1.75rem);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -0.02em;
    color: var(--sw-white);
    text-transform: none;
}

.site-footer__phone-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 4px 0 14px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.14);
}

.site-footer__phone {
    font-size: 1rem;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.42);
    text-decoration: none;
}

.site-footer__phone:hover {
    color: rgba(255, 255, 255, 0.65);
}

.site-footer__cta-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.92rem;
    font-weight: 600;
    color: var(--sw-lime);
    text-decoration: none;
    flex-shrink: 0;
}

.site-footer__cta-link:hover {
    color: #e8f54a;
}

.site-footer__cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px 24px;
    flex: 1;
    min-width: 0;
}

.site-footer__col--contacts {
    grid-column: 1 / -1;
}

@media (min-width: 1024px) {
    .site-footer__cols {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 32px 40px;
        max-width: 640px;
    }

    .site-footer__col--contacts {
        grid-column: auto;
    }
}

.site-footer__col-title {
    margin: 0 0 14px;
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: none;
    color: rgba(255, 255, 255, 0.38);
}

.site-footer__col ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.site-footer__col li + li {
    margin-top: 10px;
}

.site-footer__col a {
    font-size: 0.92rem;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.92);
    text-decoration: none;
}

.site-footer__col a:hover {
    color: var(--sw-lime);
}

/* Зворотна сумісність зі старими колонками */
.footer-col h3 {
    margin: 0 0 16px;
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: rgba(255, 255, 255, 0.38);
    text-transform: none;
}

.footer-col ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.footer-col li + li {
    margin-top: 10px;
}

.footer-col a {
    color: rgba(255, 255, 255, 0.92);
}

.footer-col a:hover {
    color: var(--sw-lime);
}

.footer-contact-line {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin-top: 12px;
}

.site-footer__bottom {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-end;
    gap: 24px 16px;
    margin-top: 36px;
}

@media (min-width: 1024px) {
    .site-footer__bottom {
        margin-top: 40px;
    }
}

.site-footer__legal {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
}

.site-footer__mark {
    display: flex;
    line-height: 0;
    border-radius: 8px;
    box-shadow: 0 6px 20px rgba(212, 225, 87, 0.25);
}

.site-footer__mark:hover {
    opacity: 0.92;
}

.site-footer__copy {
    margin: 0;
    font-size: 0.78rem;
    color: rgba(255, 255, 255, 0.4);
}

.footer-mega {
    position: relative;
    z-index: 1;
    text-align: right;
    margin-left: auto;
}

.footer-mega__line {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.12em;
    font-size: clamp(2.75rem, 14vw, 5.75rem);
    line-height: 0.95;
    letter-spacing: -0.03em;
}

.footer-mega__start {
    font-weight: 400;
    color: var(--sw-white);
}

.footer-mega__wise {
    position: relative;
    font-weight: 800;
    color: var(--sw-white);
}

@media (min-width: 1024px) {
    .footer-mega__wise {
        background: linear-gradient(100deg, #7c9cff 0%, #9b7dff 45%, #c084fc 100%);
        -webkit-background-clip: text;
        background-clip: text;
        color: transparent;
    }

    .footer-mega__wise::before {
        content: "";
        position: absolute;
        left: 50%;
        top: 50%;
        transform: translate(-50%, -48%);
        width: 120%;
        height: 140%;
        background: radial-gradient(ellipse at center, rgba(232, 245, 74, 0.55) 0%, rgba(212, 225, 87, 0.2) 40%, transparent 72%);
        z-index: -1;
        pointer-events: none;
    }
}

/* Старі класи для зворотної сумісності */
.footer-mega__word {
    font-size: clamp(2.5rem, 12vw, 7rem);
    font-weight: 800;
    line-height: 0.95;
    letter-spacing: -0.02em;
}

.footer-mega__word--grad {
    background: linear-gradient(90deg, #6b8cff, #a855f7);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

/* Bottom nav mobile */
.bottom-nav {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    min-height: calc(var(--bottom-nav-h) + env(safe-area-inset-bottom, 0px));
    height: auto;
    box-sizing: border-box;
    background: var(--sw-white);
    border-top: 1px solid rgba(0, 0, 0, 0.08);
    display: flex;
    align-items: center;
    justify-content: space-around;
    z-index: 90;
    padding-bottom: env(safe-area-inset-bottom, 0);
    padding-left: env(safe-area-inset-left, 0px);
    padding-right: env(safe-area-inset-right, 0px);
}

.bottom-nav a {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    font-size: 0.65rem;
    color: #c4c4c4;
    font-weight: 500;
    padding: 8px 12px;
    text-decoration: none;
}

.bottom-nav a.is-active {
    color: #000000;
}

.bottom-nav svg {
    width: 22px;
    height: 22px;
    flex-shrink: 0;
}

/* Кошик у нижній навігації: лічильник як у хедері (cart.js оновлює .icon-link--cart .icon-link__badge) */
.bottom-nav a.icon-link--cart {
    width: auto;
    height: auto;
    margin-left: 0;
    isolation: auto;
}

.bottom-nav a.icon-link--cart .bottom-nav__icon-hit {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    flex-shrink: 0;
}

.bottom-nav a.icon-link--cart .icon-link__badge {
    position: absolute;
    top: -5px;
    right: -6px;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    box-sizing: border-box;
    background: var(--sw-lime-bright);
    color: #0d0d0d;
    font-size: 10px;
    font-weight: 600;
    line-height: 16px;
    text-align: center;
    border-radius: 999px;
    pointer-events: none;
    z-index: 1;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

body {
    padding-bottom: calc(var(--bottom-nav-h) + env(safe-area-inset-bottom, 0px));
}

@media (min-width: 1024px) {
    .bottom-nav {
        display: none;
    }

    body {
        padding-bottom: 0;
    }
}

/* Consultation dialog */
.consult-dialog {
    padding: 0;
    border: none;
    width: 100%;
    max-width: 100vw;
    height: 100%;
    max-height: 100vh;
    background: transparent;
    margin: 0;
}

.consult-dialog[open] {
    display: flex;
    flex-direction: column;
}

.consult-dialog::backdrop {
    background: rgba(0, 0, 0, 0.48);
}

.consult-dialog__frame {
    flex: 1;
    display: flex;
    width: 100%;
    min-height: 100dvh;
    min-height: 100vh;
    align-items: stretch;
}

.consult-dialog__scrim {
    flex: 1;
    min-width: 0;
    border: none;
    padding: 0;
    margin: 0;
    background: transparent;
    cursor: pointer;
}

.consult-dialog__sheet {
    position: relative;
    width: min(620px, 42vw);
    max-width: 100%;
    background: #f8ebe6;
    padding: 40px 32px 48px;
    overflow-y: auto;
    box-sizing: border-box;
    border-radius: 26px;
}

.consult-dialog__close {
    position: absolute;
    top: 20px;
    right: 20px;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: none;
    border: 1px solid var(--sw-black);
    color: var(--sw-black);
    display: grid;
    place-items: center;
    cursor: pointer;
    z-index: 2;
}

.consult-dialog__eyebrow {
    margin: 0 0 16px;
    font-size: 0.8rem;
    color: rgba(0, 0, 0, 0.45);
    letter-spacing: 0.02em;
}

.consult-dialog__title {
    margin: 0 0 28px;
    padding-right: 52px;
    font-size: clamp(1.5rem, 4vw, 48px);
    font-weight: 500;
    line-height: 1.2;
    color: var(--sw-black);
    border-bottom: 1px solid #000;
    padding-bottom: 20px;
}

.circle-word--consult {
    position: relative;
    display: inline-block;
}

.circle-word--consult::after {
    content: "";
    position: absolute;
    inset: -5px -8px -10px;
    border: 2px solid var(--sw-lime-bright);
    border-radius: 50%;
    transform: rotate(-4deg);
    pointer-events: none;
}

.consult-dialog__rule--mobile {
    display: none;
    border: none;
    border-top: 1px solid rgba(0, 0, 0, 0.12);
    margin: -8px 0 24px;
}

.consult-form__row--2 {
    display: grid;
    gap: 16px;
}

@media (min-width: 480px) {
    .consult-form__row--2 {
        grid-template-columns: 1fr 1fr;
    }
}

.consult-form__field {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 18px;
}

.consult-form__label {
    font-size: 0.88rem;
    font-weight: 500;
    color: var(--sw-black);
}

.consult-form__field input,
.consult-form__field textarea {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid rgba(0, 0, 0, 0.28);
    border-radius: 14px;
    padding: 14px 16px;
    font: inherit;
    background: var(--sw-white);
    transition: border-color 0.2s;
}

.consult-form__field input:focus,
.consult-form__field textarea:focus {
    outline: none;
    border-color: var(--sw-black);
}

.consult-form__field textarea {
    resize: vertical;
    min-height: 120px;
}

.consult-form__submit-wrap {
    margin-top: 12px;
}

/* Submit: чорна пігулка + біле коло зі стрілкою (як btn-consult) */
.consult-submit {
    display: inline-flex;
    align-items: center;
    gap: 0;
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    font-family: var(--sw-font);
    -webkit-tap-highlight-color: transparent;
}

.consult-submit__pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    margin-right: -12px;
    padding: 10px 28px 10px 22px;
    border-radius: 999px;
    background: var(--sw-black);
    border: 1px solid var(--sw-black);
    color: var(--sw-white);
    font-size: 0.95rem;
    font-weight: 500;
    line-height: 1.2;
    white-space: nowrap;
    position: relative;
    z-index: 1;
    transition: background-color 0.22s ease, color 0.22s ease, border-color 0.22s ease;
}

.consult-submit__knob {
    width: 48px;
    height: 48px;
    flex-shrink: 0;
    border-radius: 999px;
    background: var(--sw-white);
    border: 1px solid var(--sw-black);
    color: var(--sw-black);
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: relative;
    z-index: 2;
    transition: transform 0.28s cubic-bezier(0.2, 0.7, 0.2, 1), background-color 0.22s ease, color 0.22s ease;
}

.consult-submit__knob svg {
    width: 18px;
    height: 18px;
    display: block;
}

.consult-submit:hover .consult-submit__knob,
.consult-submit:focus-visible .consult-submit__knob {
    transform: rotate(45deg);
}

.consult-submit:focus-visible {
    outline: 2px solid var(--sw-lime-bright);
    outline-offset: 3px;
    border-radius: 999px;
}

.consult-submit:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.consult-submit:disabled .consult-submit__knob {
    transform: none;
}

.consult-form__alt {
    display: none;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 24px;
}

.consult-chip {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 12px 20px;
    border-radius: var(--radius-pill);
    border: 1px solid rgba(0, 0, 0, 0.15);
    background: var(--sw-white);
    color: var(--sw-black);
    font-weight: 600;
    font-size: 0.88rem;
    text-decoration: none;
}

.consult-chip:hover {
    border-color: var(--sw-black);
}

.consult-form__hours {
    margin: 20px 0 0;
    text-align: left;
    font-size: 0.8rem;
    color: rgba(0, 0, 0, 0.42);
}

@media (max-width: 767px) {
    .consult-dialog__frame {
        flex-direction: column;
    }

    .consult-dialog__scrim {
        display: none;
    }

    .consult-dialog__sheet {
        width: 100%;
        flex: 1;
        min-height: 100dvh;
        padding: 36px 20px 32px;
    }

    .consult-dialog__title {
        margin-bottom: 20px;
    }

    .consult-dialog__rule--mobile {
        display: block;
    }

    .consult-form__alt {
        display: flex;
    }

    .consult-form__hours {
        margin-top: 28px;
    }
}

/* Mobile menu dialog (fullscreen) */
@keyframes menu-dialog-backdrop-in {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

@keyframes menu-dialog-inner-in {
    from {
        opacity: 0;
        transform: translateY(22px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.menu-dialog {
    margin: 0;
    max-width: 100%;
    width: 100%;
    height: 100%;
    max-height: 100%;
    border: none;
    background: var(--sw-black);
    color: var(--sw-white);
    padding: 0;
    overflow: hidden;
}

.menu-dialog::backdrop {
    background: var(--sw-black);
    animation: menu-dialog-backdrop-in 0.4s ease forwards;
}

.menu-dialog[open] .menu-dialog__inner {
    animation: menu-dialog-inner-in 0.48s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.menu-dialog--motion-gsap[open] .menu-dialog__inner {
    animation: none;
}

.menu-dialog__head {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 0;
    margin-bottom: 8px;
    flex-shrink: 0;
}

.menu-dialog__flip-slot {
    position: relative;
    pointer-events: none;
}

.menu-dialog--closing .menu-dialog__inner {
    animation: none;
    opacity: 0;
    transform: translateY(16px);
    transition:
        opacity 0.34s ease,
        transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.menu-dialog--closing::backdrop {
    animation: none;
    opacity: 0;
    transition: opacity 0.32s ease;
}

@media (prefers-reduced-motion: reduce) {
    .menu-dialog::backdrop,
    .menu-dialog[open] .menu-dialog__inner {
        animation: none !important;
    }

    .menu-dialog--closing .menu-dialog__inner,
    .menu-dialog--closing::backdrop {
        transition: none !important;
    }

    .menu-dialog--motion-gsap[open] .menu-dialog__inner {
        animation: none !important;
    }
}

.menu-dialog__inner {
    box-sizing: border-box;
    padding: 16px 22px 28px;
    min-height: 100%;
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    padding-bottom: calc(28px + env(safe-area-inset-bottom, 0px));
}

.menu-dialog__close {
    width: 48px;
    height: 48px;
    flex-shrink: 0;
    border: none;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.14);
    color: var(--sw-white);
    display: grid;
    place-items: center;
    cursor: pointer;
    transition: background 0.2s;
}

.menu-dialog__close:hover {
    background: rgba(255, 255, 255, 0.22);
}

.menu-dialog__nav {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    padding-top: 8px;
}

.menu-dialog__group {
    width: 100%;
    margin-bottom: 8px;
}

.menu-dialog__primary {
    display: block;
    padding: 14px 0 6px;
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--sw-white);
    text-decoration: none;
    line-height: 1.25;
}

.menu-dialog__primary--solo {
    padding-top: 18px;
    padding-bottom: 4px;
}

.menu-dialog__sub {
    margin: 0;
    padding: 0 0 12px 0;
    list-style: none;
}

.menu-dialog__sub li {
    margin: 0;
}

.menu-dialog__sub a {
    display: block;
    padding: 10px 0 10px 4px;
    font-size: 1rem;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.45);
    text-decoration: none;
}

.menu-dialog__sub a:hover {
    color: rgba(255, 255, 255, 0.75);
}

.menu-dialog__accent {
    color: var(--sw-lime-bright) !important;
    text-decoration: underline !important;
    text-underline-offset: 5px;
    text-decoration-thickness: 1px;
}

.menu-dialog__footer {
    margin-top: auto;
    padding-top: 28px;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 16px;
}

.menu-dialog__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.menu-dialog__chip {
    flex: 1;
    min-width: calc(50% - 6px);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 14px 16px;
    border-radius: var(--radius-pill);
    background: #141414;
    border: 1px solid rgba(255, 255, 255, 0.18);
    color: var(--sw-white);
    font-weight: 600;
    font-size: 0.9rem;
    text-decoration: none;
    box-sizing: border-box;
}

.menu-dialog__chip:hover {
    border-color: rgba(255, 255, 255, 0.35);
}

.menu-dialog__hours {
    margin: 8px 0 0;
    text-align: center;
    font-size: 0.8rem;
    color: rgba(255, 255, 255, 0.4);
}

/* Тост кошика (динамічно з js/cart.js на сторінках з додаванням у кошик) */
.sw-cart-toast {
    position: fixed;
    bottom: calc(24px + env(safe-area-inset-bottom, 0));
    left: 50%;
    transform: translateX(-50%) translateY(120%);
    z-index: 9999;
    max-width: min(92vw, 400px);
    padding: 14px 22px;
    border-radius: 999px;
    background: var(--sw-black);
    color: var(--sw-white);
    font-size: 0.9rem;
    font-weight: 600;
    text-align: center;
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.35);
    opacity: 0;
    pointer-events: none;
    transition: transform 0.35s ease, opacity 0.35s ease;
}

.sw-cart-toast--visible {
    transform: translateX(-50%) translateY(0);
    opacity: 1;
}
