/*
 * Homepage component layer.
 *
 * Keep this file scoped to the public homepage. Checkout, Dokan, account and
 * editor controls intentionally retain their own design systems.
 */
body.home {
    --n9-cta-height: 46px;
    --n9-cta-radius: 999px;
    --n9-cta-padding-x: 26px;
    --n9-cta-duration: 220ms;
    --n9-cta-ease: cubic-bezier(.2, .8, .2, 1);
    --n9-cta-dark: #0b1220;
    --n9-cta-dark-hover: #2a3342;
    --n9-cta-accent: #f7a984;
    --n9-cta-accent-hover: #f3a078;
    --n9-cta-muted: #475467;
    --n9-cta-outline: rgba(152, 162, 179, .21);
    --n9-cta-outline-hover: rgba(152, 162, 179, .29);
    --n9-cta-shadow-xs: 0 1px 2px rgba(16, 24, 40, .042);
    --n9-cta-shadow-md: 0 8px 30px rgba(16, 24, 40, .04);
    --n9-editorial-ink: #1d2735;
    --n9-editorial-rule: rgba(71, 84, 103, .18);
    --n9-editorial-crop-rule: rgba(71, 84, 103, .18);
    --n9-editorial-dot: rgba(247, 169, 132, .32);
}

/* Shared homepage CTA geometry and transition contract. */
body.home .n9-pr-home .n9-pr-button,
body.home .kitchor-lite-hero__btn,
body.home .elementor-element-156ecb1 .elementor-button,
body.home .elementor-element-dcf8042 .elementor-button,
body.home footer .elementor-element-c506423 .elementor-button,
body.home footer .elementor-element-c506423 .elementor-button.elementor-animation-float {
    box-sizing: border-box;
    min-height: var(--n9-cta-height);
    border-radius: var(--n9-cta-radius);
    padding: 0 var(--n9-cta-padding-x);
    font-family: "Circe", Arial, sans-serif !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    line-height: 1 !important;
    text-shadow: none !important;
    transition: background-color var(--n9-cta-duration) var(--n9-cta-ease),
        border-color var(--n9-cta-duration) var(--n9-cta-ease),
        box-shadow var(--n9-cta-duration) var(--n9-cta-ease),
        color var(--n9-cta-duration) var(--n9-cta-ease),
        transform var(--n9-cta-duration) var(--n9-cta-ease) !important;
}

/* Outline variant: «Подробнее». */
body.home .n9-pr-home .n9-pr-button:first-child {
    border: 1px solid var(--n9-cta-outline) !important;
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%) !important;
    color: var(--n9-cta-muted) !important;
    box-shadow: var(--n9-cta-shadow-xs) !important;
}

body.home .n9-pr-home .n9-pr-button:first-child:hover,
body.home .n9-pr-home .n9-pr-button:first-child:focus-visible {
    border-color: var(--n9-cta-outline-hover) !important;
    background: linear-gradient(180deg, #fff 0%, #f4f7fb 100%) !important;
    color: var(--n9-cta-muted) !important;
    box-shadow: var(--n9-cta-shadow-md) !important;
}

/* Accent variant: «Заказать». */
body.home .n9-pr-home .n9-pr-button--ready,
body.home footer .elementor-element-c506423 .elementor-button {
    border-color: rgba(247, 169, 132, .24) !important;
    background-color: var(--n9-cta-accent) !important;
    background-image: linear-gradient(135deg, #f9b493 0%, var(--n9-cta-accent) 100%) !important;
    color: #fff !important;
    box-shadow: 0 12px 28px rgba(247, 169, 132, .21), var(--n9-cta-shadow-xs) !important;
}

body.home footer .elementor-element-c506423 .elementor-button.elementor-animation-float {
    box-shadow: 0 12px 28px rgba(247, 169, 132, .21), var(--n9-cta-shadow-xs) !important;
    animation: none !important;
}

html body.home footer#colophon .elementor-element-c506423 .elementor-button.elementor-animation-float {
    box-shadow: 0 12px 28px rgba(247, 169, 132, .21), var(--n9-cta-shadow-xs) !important;
    transition-property: background-color, border-color, box-shadow, color, transform !important;
    transition-duration: var(--n9-cta-duration) !important;
    transition-timing-function: var(--n9-cta-ease) !important;
}

@media (hover: hover) and (pointer: fine) {
    html body.home footer#colophon .elementor-element-c506423 .elementor-button.elementor-animation-float:hover,
    html body.home footer#colophon .elementor-element-c506423 .elementor-button.elementor-animation-float:focus-visible {
        box-shadow: var(--n9-cta-shadow-md) !important;
        transform: translateY(-2px) !important;
    }
}

body.home .n9-pr-home .n9-pr-button--ready {
    text-shadow: 0 1px 1px rgba(18, 24, 38, .14) !important;
}

@supports (color: color-mix(in srgb, #000 10%, transparent)) {
    body.home .n9-pr-home .n9-pr-button--ready,
    body.home footer .elementor-element-c506423 .elementor-button {
        background-image: linear-gradient(135deg, color-mix(in srgb, var(--n9-cta-accent) 92%, #fff 8%) 0%, var(--n9-cta-accent) 100%) !important;
    }
}

/* Dark variant: hero, «Зарегистрироваться» and «Открыть каталог». */
body.home .kitchor-lite-hero__btn,
body.home .elementor-element-156ecb1 .elementor-button,
body.home .elementor-element-dcf8042 .elementor-button {
    border: 1px solid transparent !important;
    background: var(--n9-cta-dark) !important;
    color: #fff !important;
    box-shadow: var(--n9-cta-shadow-xs) !important;
}

@media (hover: hover) and (pointer: fine) {
    body.home .n9-pr-home .n9-pr-button--ready:hover,
    body.home .n9-pr-home .n9-pr-button--ready:focus-visible {
        border-color: rgba(247, 169, 132, .32) !important;
        background-color: var(--n9-cta-accent-hover) !important;
        background-image: linear-gradient(135deg, #f7aa84 0%, var(--n9-cta-accent) 100%) !important;
        box-shadow: 0 14px 30px rgba(247, 169, 132, .24), 0 4px 14px rgba(16, 24, 40, .07) !important;
        transform: translateY(-2px);
    }

    body.home footer .elementor-element-c506423 .elementor-button:hover,
    body.home footer .elementor-element-c506423 .elementor-button:focus-visible {
        border-color: transparent !important;
        background: var(--n9-cta-dark) !important;
        color: #fff !important;
        box-shadow: var(--n9-cta-shadow-md) !important;
        transform: translateY(-2px) !important;
    }

    body.home .kitchor-lite-hero__btn:hover,
    body.home .kitchor-lite-hero__btn:focus-visible,
    body.home .elementor-element-156ecb1 .elementor-button:hover,
    body.home .elementor-element-156ecb1 .elementor-button:focus-visible,
    body.home .elementor-element-dcf8042 .elementor-button:hover,
    body.home .elementor-element-dcf8042 .elementor-button:focus-visible {
        background: var(--n9-cta-accent) !important;
        color: #fff !important;
        box-shadow: var(--n9-cta-shadow-md) !important;
        transform: translateY(-2px);
    }
}

body.home .n9-pr-home .n9-pr-button:focus-visible,
body.home .kitchor-lite-hero__btn:focus-visible,
body.home .elementor-element-156ecb1 .elementor-button:focus-visible,
body.home .elementor-element-dcf8042 .elementor-button:focus-visible,
body.home footer .elementor-element-c506423 .elementor-button:focus-visible {
    outline: 2px solid var(--n9-cta-accent) !important;
    outline-offset: 3px;
}

/* The three editorial CTAs must share the left edge with number and title. */
html body.home .elementor-element-97e7102 .elementor-element-4e88e17 .elementor-cta__button,
html body.home .elementor-element-97e7102 .elementor-element-6cf33ad .elementor-cta__button,
html body.home .elementor-element-97e7102 .elementor-element-9c85d25 .elementor-cta__button {
    justify-content: flex-start !important;
    padding-inline: 0 !important;
    text-align: left !important;
    text-shadow: none !important;
    filter: none !important;
}

html body.home .elementor-element-97e7102 .elementor-element-4e88e17 .elementor-button-content-wrapper,
html body.home .elementor-element-97e7102 .elementor-element-6cf33ad .elementor-button-content-wrapper,
html body.home .elementor-element-97e7102 .elementor-element-9c85d25 .elementor-button-content-wrapper {
    justify-content: flex-start !important;
    text-align: left !important;
}

html body.home .elementor-element-97e7102 .elementor-element-4e88e17 .elementor-button-text,
html body.home .elementor-element-97e7102 .elementor-element-6cf33ad .elementor-button-text,
html body.home .elementor-element-97e7102 .elementor-element-9c85d25 .elementor-button-text {
    text-align: left !important;
}

/* Single authoritative overlay layer for the homepage reasons cards. */
html body.home .elementor-element-91c1121 > .elementor-element-populated > .elementor-background-overlay {
    background-color: transparent !important;
    background-image: linear-gradient(180deg, rgba(255, 255, 255, .72), rgba(248, 250, 252, .87)) !important;
    opacity: 1 !important;
    transition: none !important;
    mix-blend-mode: normal !important;
}

html body.home .elementor-element-97e7102 .elementor-element-4e88e17 .elementor-cta__bg-overlay,
html body.home .elementor-element-97e7102 .elementor-element-6cf33ad .elementor-cta__bg-overlay,
html body.home .elementor-element-97e7102 .elementor-element-9c85d25 .elementor-cta__bg-overlay {
    position: absolute;
    inset: 0;
    background-color: transparent !important;
    background-image: linear-gradient(180deg, rgba(255, 255, 255, .72), rgba(248, 250, 252, .87)), radial-gradient(ellipse at 50% 110%, rgba(247, 169, 132, .0460759347), transparent 58%) !important;
    opacity: 1 !important;
    transition: none !important;
    mix-blend-mode: normal !important;
    pointer-events: none;
}

html body.home .elementor-element-97e7102 .elementor-element-4e88e17 .elementor-cta__bg-overlay::after,
html body.home .elementor-element-97e7102 .elementor-element-6cf33ad .elementor-cta__bg-overlay::after,
html body.home .elementor-element-97e7102 .elementor-element-9c85d25 .elementor-cta__bg-overlay::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(255, 255, 255, .21), rgba(248, 250, 252, .23));
    opacity: 0;
    pointer-events: none;
    transition: opacity 220ms cubic-bezier(.2, .8, .2, 1);
}

@media (hover: hover) and (pointer: fine) {
    html body.home .elementor-element-97e7102 .elementor-element-4e88e17:hover .elementor-cta__bg-overlay::after,
    html body.home .elementor-element-97e7102 .elementor-element-6cf33ad:hover .elementor-cta__bg-overlay::after,
    html body.home .elementor-element-97e7102 .elementor-element-9c85d25:hover .elementor-cta__bg-overlay::after,
    html body.home .elementor-element-97e7102 .elementor-element-4e88e17:focus-within .elementor-cta__bg-overlay::after,
    html body.home .elementor-element-97e7102 .elementor-element-6cf33ad:focus-within .elementor-cta__bg-overlay::after,
    html body.home .elementor-element-97e7102 .elementor-element-9c85d25:focus-within .elementor-cta__bg-overlay::after {
        opacity: 1;
    }
}

/* Editorial ink: static headings only; the animated hero remains untouched. */
html body.home .n9-editorial-ink {
    color: var(--n9-editorial-ink) !important;
    mix-blend-mode: multiply;
}

html body.home .n9-editorial-ink:is(h1, h2, h3, .elementor-heading-title) {
    isolation: isolate;
}

/* Small newspaper registration rule. It is paint-only and never changes flow. */
html body.home .n9-editorial-kicker,
html body.home .n9-pr-eyebrow {
    position: relative;
    isolation: isolate;
}

html body.home .n9-editorial-kicker::after,
html body.home .n9-pr-eyebrow::after {
    content: "";
    position: absolute;
    top: 50%;
    left: calc(100% + 12px);
    width: 48px;
    height: 1px;
    transform: translateY(-50%);
    pointer-events: none;
    background: linear-gradient(90deg, var(--n9-editorial-rule) 0 84%, var(--n9-editorial-dot) 84% 100%);
}

/* A second, shorter register line gives the kicker a restrained print-mark rhythm. */
html body.home .n9-editorial-kicker::before,
html body.home .n9-pr-eyebrow::before {
    content: "";
    position: absolute;
    top: calc(50% + 3px);
    left: calc(100% + 12px);
    width: 32px;
    height: 1px;
    transform: translateY(-50%);
    pointer-events: none;
    background: var(--n9-editorial-rule);
}

/* Crop marks are paint-only and never affect heading geometry or interaction. */
html body.home .n9-editorial-crop {
    position: relative;
    isolation: isolate;
}

html body.home .n9-editorial-crop::before,
html body.home .n9-editorial-crop::after {
    content: "";
    position: absolute;
    width: 10px;
    height: 10px;
    pointer-events: none;
    opacity: .58;
}

html body.home .n9-editorial-crop::before {
    top: -9px;
    left: -14px;
    border-top: 1px solid var(--n9-editorial-crop-rule);
    border-left: 1px solid var(--n9-editorial-crop-rule);
}

html body.home .n9-editorial-crop::after {
    right: -14px;
    bottom: -9px;
    border-right: 1px solid var(--n9-editorial-crop-rule);
    border-bottom: 1px solid var(--n9-editorial-crop-rule);
}

/* Tiny halftone is reused as a paint layer; it adds no asset request or layout. */
html body.home .elementor-element-97e7102 {
    position: relative;
    isolation: isolate;
}

html body.home .elementor-element-97e7102::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    opacity: .058;
    background-image: radial-gradient(circle, rgba(29, 39, 53, .45) .55px, transparent .7px);
    background-size: 5px 5px;
}

html body.home .elementor-element-97e7102 > .elementor-container {
    position: relative;
    z-index: 1;
}

@media (max-width: 767px) {
    html body.home .n9-editorial-kicker::after,
    html body.home .n9-pr-eyebrow::after {
        left: calc(100% + 8px);
        width: 24px;
    }

    html body.home .n9-editorial-kicker::before,
    html body.home .n9-pr-eyebrow::before {
        left: calc(100% + 8px);
        width: 16px;
    }

    html body.home .n9-editorial-crop::before,
    html body.home .n9-editorial-crop::after {
        display: none;
    }

    html body.home .elementor-element-97e7102::before {
        display: none;
    }
}

@media (forced-colors: active), print {
    html body.home .n9-editorial-ink {
        mix-blend-mode: normal;
    }

    html body.home .n9-editorial-kicker::before,
    html body.home .n9-editorial-kicker::after,
    html body.home .n9-editorial-crop::before,
    html body.home .n9-editorial-crop::after,
    html body.home .elementor-element-97e7102::before {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.home .n9-pr-home .n9-pr-button,
    body.home .kitchor-lite-hero__btn,
    body.home .elementor-element-156ecb1 .elementor-button,
    body.home .elementor-element-dcf8042 .elementor-button,
    body.home footer .elementor-element-c506423 .elementor-button {
        transition: none !important;
        transform: none !important;
    }

    html body.home .elementor-element-97e7102 .elementor-cta__bg-overlay::after {
        transition: none;
    }
}
