/* ========================================
   Halloween-тема публичного сайта (25.10–01.11.2026).
   Подключается includes/halloween.php поверх main.css и components.css.
   Интерактив — js/halloween-theme.js. Стиль — как у страницы /halloween/.
   ======================================== */

:root {
    --hw-night: #0c0806;
    --hw-night-2: #120b08;
    --hw-surface: #170f0b;
    --hw-surface-2: #21150f;
    --hw-line: rgba(255, 122, 36, 0.24);
    --hw-line-soft: rgba(244, 231, 212, 0.1);
    --hw-ember: #ff7a24;
    --hw-ember-deep: #e2470c;
    --hw-flame: #ffb347;
    --hw-bone: #f4e7d4;
    --hw-muted: #bba795;
    --hw-mist: rgba(120, 80, 150, 0.16);
    --hw-display: 'Oswald', 'Arial Narrow', sans-serif;
    --hw-spell: 'Rubik Wet Paint', 'Oswald', sans-serif;
    --hw-web: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='rgba(244,231,212,0.32)' stroke-width='0.7'%3E%3Cpath d='M0 0L130 0M0 0L120 50M0 0L92 92M0 0L50 120M0 0L0 130M16.0 0.0Q13.2 2.6 14.8 6.1Q11.2 7.5 11.3 11.3Q7.5 11.2 6.1 14.8Q2.6 13.2 0.0 16.0M32.0 0.0Q26.5 5.3 29.6 12.2Q22.4 15.0 22.6 22.6Q15.0 22.4 12.2 29.6Q5.3 26.5 0.0 32.0M50.0 0.0Q41.4 8.2 46.2 19.1Q35.1 23.4 35.4 35.4Q23.4 35.1 19.1 46.2Q8.2 41.4 0.0 50.0M70.0 0.0Q57.9 11.5 64.7 26.8Q49.1 32.8 49.5 49.5Q32.8 49.1 26.8 64.7Q11.5 57.9 0.0 70.0M92.0 0.0Q76.1 15.1 85.0 35.2Q64.5 43.1 65.1 65.1Q43.1 64.5 35.2 85.0Q15.1 76.1 0.0 92.0'/%3E%3C/svg%3E");

    /* Палитра сайта, перекрашенная в ночь */
    --color-primary: #ff7a24;
    --color-primary-dark: #c9450c;
    --color-primary-light: #ff9a4d;
    --color-secondary: #ffb347;
    --color-secondary-dark: #e08a1e;
    --color-secondary-light: #ffd08a;
    --color-cream: var(--hw-surface);
    --color-border-warm: var(--hw-line);
    --color-dark: var(--hw-bone);
    --color-dark-light: var(--hw-surface-2);
    --color-gray: var(--hw-muted);
    --color-gray-light: #8a7768;
    --color-light: var(--hw-surface);
    --color-white: #fff6ea;
    --gradient-primary: linear-gradient(180deg, var(--hw-ember), var(--hw-ember-deep));
    --gradient-gold: linear-gradient(135deg, var(--hw-flame), var(--hw-ember-deep));
    --gradient-dark: linear-gradient(180deg, var(--hw-night), var(--hw-surface));
    --font-heading: var(--hw-display);
    color-scheme: dark;
}

body {
    background:
        radial-gradient(80% 50% at 50% 0%, rgba(226, 71, 12, 0.08), transparent 70%),
        var(--hw-night);
    color: var(--hw-bone);
}

::selection { background: rgba(255, 122, 36, 0.4); color: #fff; }

/* Заголовки — плакатный Oswald, как на постере */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--hw-display);
    font-weight: 600;
    letter-spacing: 0.01em;
    text-transform: uppercase;
    color: var(--hw-bone);
}

h1 { font-size: clamp(2.3rem, 5vw, 3.8rem); }
h2 { font-size: clamp(1.8rem, 3.6vw, 2.7rem); }
h3 { font-size: clamp(1.25rem, 2.4vw, 1.6rem); }
h4 { font-size: clamp(1.05rem, 1.8vw, 1.25rem); }

.section__title {
    text-shadow: 0 0 28px rgba(255, 122, 36, 0.22);
}

.section__subtitle,
p { color: inherit; }

/* Секции: все ночные, тёмные — ещё глубже, с лёгкой дымкой */
.section,
.section--gradient {
    position: relative;
    background: var(--hw-night);
}

.section:nth-of-type(even):not(.section--dark) {
    background: var(--hw-night-2);
}

.section--dark {
    background:
        radial-gradient(70% 60% at 85% 10%, var(--hw-mist), transparent 70%),
        radial-gradient(60% 50% at 10% 100%, rgba(226, 71, 12, 0.1), transparent 70%),
        #090605;
}

/* ---------- Полоса-анонс над шапкой ---------- */
.hw-banner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 38px;
    padding: 6px 16px;
    background: linear-gradient(90deg, #1a0d06, #2a1206 50%, #1a0d06);
    border-bottom: 1px solid var(--hw-line);
    color: var(--hw-bone);
    font: 500 14px/1.25 var(--font-primary);
    text-align: center;
}

.hw-banner:hover .hw-banner__cta { color: #fff; text-shadow: 0 0 12px var(--hw-ember); }

.hw-banner__text { font-weight: 600; }

.hw-banner__note { color: var(--hw-muted); font-weight: 400; }

.hw-banner__cta {
    flex: none;
    color: var(--hw-ember);
    font: 600 13px/1 var(--hw-display);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    transition: color 0.15s, text-shadow 0.15s;
}

.hw-banner__candles { display: inline-flex; gap: 5px; align-items: flex-end; height: 18px; flex: none; }

.hw-banner__candles i,
.hw-candle {
    position: relative;
    display: block;
    width: 5px;
    height: 11px;
    border-radius: 1px;
    background: linear-gradient(90deg, #d9c7ae, #f6ead8 55%, #cbb698);
}

.hw-banner__candles i:nth-child(2) { height: 14px; }

.hw-banner__candles i::before,
.hw-candle::before {
    content: '';
    position: absolute;
    left: 50%;
    bottom: 100%;
    width: 5px;
    height: 8px;
    margin-left: -2.5px;
    border-radius: 50% 50% 45% 45% / 65% 65% 35% 35%;
    background: radial-gradient(circle at 50% 70%, #fff6c9 0 18%, var(--hw-flame) 45%, var(--hw-ember-deep) 85%);
    box-shadow: 0 0 8px 2px rgba(255, 140, 40, 0.6);
    transform-origin: 50% 100%;
    animation: hw-flicker 2.4s ease-in-out infinite;
}

.hw-banner__candles i:nth-child(2)::before { animation-duration: 3s; animation-delay: -0.7s; }
.hw-banner__candles i:nth-child(3)::before { animation-duration: 2s; animation-delay: -1.3s; }

.hw-banner__short { display: none; }

@media (max-width: 640px) {
    .hw-banner { gap: 10px; min-height: 0; padding: 5px 14px; font-size: 13px; justify-content: space-between; text-align: left; }
    .hw-banner__text { flex: 1; min-width: 0; line-height: 1.2; }
    .hw-banner__full, .hw-banner__dot { display: none; }
    .hw-banner__short { display: inline; }
    .hw-banner__note { display: block; font-size: 12px; }
    .section__title, h2 { font-size: clamp(1.6rem, 7.4vw, 2.1rem); }
    .hero__title { font-size: clamp(2rem, 9vw, 2.6rem); }
}

/* Шапка с полосой стала выше — сдвигаем первый экран и якоря */
html { scroll-padding-top: 140px; }
.hero { padding-top: 124px; }
.page-header { padding-top: calc(var(--spacing-2xl) + 124px); }

@media (max-width: 640px) {
    html { scroll-padding-top: 130px; }
    .hero { padding-top: 136px; }
    .page-header { padding-top: calc(var(--spacing-2xl) + 124px); }
}

/* ---------- Шапка и меню ---------- */
.header,
.header--scrolled {
    background: rgba(12, 8, 6, 0.92);
    border-bottom: 1px solid var(--hw-line-soft);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.45);
}

.header__logo-img { filter: drop-shadow(0 0 10px rgba(255, 122, 36, 0.35)); }

.nav__link:hover,
.nav__link--active { color: var(--hw-flame); }

.mobile-menu__panel { background: var(--hw-surface); color: var(--hw-bone); }

/* ---------- Кнопки ---------- */
.btn--primary {
    background: var(--gradient-primary);
    color: #1a0b03;
    font-weight: 600;
    box-shadow: 0 0 22px rgba(255, 122, 36, 0.35), inset 0 1px 0 rgba(255, 230, 190, 0.45);
}

.btn--primary:hover {
    background: var(--gradient-primary);
    color: #1a0b03;
    box-shadow: 0 0 34px rgba(255, 122, 36, 0.6), inset 0 1px 0 rgba(255, 230, 190, 0.45);
    animation: hw-btn-flicker 0.9s ease-in-out;
}

.btn--outline,
.section--dark .btn--outline {
    border-color: rgba(255, 122, 36, 0.6);
    color: var(--hw-flame);
    background: transparent;
}

.btn--outline:hover,
.section--dark .btn--outline:hover {
    background: rgba(255, 122, 36, 0.14);
    border-color: var(--hw-ember);
    color: #fff;
}

@keyframes hw-btn-flicker {
    0%, 100% { filter: brightness(1); }
    20% { filter: brightness(1.18); }
    35% { filter: brightness(0.95); }
    55% { filter: brightness(1.12); }
}

/* ---------- Первый экран: ночь, луна, туман, фонарик ---------- */
.hero { background: var(--hw-night); isolation: isolate; }

.hero::before { opacity: 0.32; filter: sepia(0.6) saturate(1.4) hue-rotate(-12deg) brightness(0.7); }

.hero__overlay {
    background:
        radial-gradient(60% 50% at 20% 30%, rgba(226, 71, 12, 0.16), transparent 70%),
        linear-gradient(180deg, rgba(12, 8, 6, 0.35) 0%, rgba(12, 8, 6, 0.75) 70%, var(--hw-night) 100%);
}

.hero__title { text-shadow: 0 0 30px rgba(0, 0, 0, 0.6); }

.hero__title .highlight,
.hw-spell {
    font-family: var(--hw-spell);
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0.01em;
    color: var(--hw-ember);
    -webkit-text-fill-color: currentColor;
    background: none;
    text-shadow: 0 0 22px rgba(255, 122, 36, 0.55);
}

.hw-torch {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: radial-gradient(circle 240px at var(--hw-x, 70%) var(--hw-y, 35%), rgba(255, 170, 80, 0.16), rgba(12, 8, 6, 0) 60%, rgba(5, 3, 2, 0.5) 100%);
    transition: background 0.05s;
}

.hw-torch.is-auto { animation: hw-torch-wander 14s ease-in-out infinite alternate; }

@property --hw-x { syntax: '<percentage>'; inherits: false; initial-value: 70%; }
@property --hw-y { syntax: '<percentage>'; inherits: false; initial-value: 35%; }

@keyframes hw-torch-wander {
    0% { --hw-x: 75%; --hw-y: 25%; }
    35% { --hw-x: 30%; --hw-y: 45%; }
    70% { --hw-x: 65%; --hw-y: 70%; }
    100% { --hw-x: 20%; --hw-y: 20%; }
}

.hw-moon {
    position: absolute;
    z-index: 0;
    top: 15%;
    right: 8%;
    width: clamp(110px, 18vw, 230px);
    aspect-ratio: 1;
    border-radius: 50%;
    pointer-events: none;
    background:
        radial-gradient(circle at 34% 30%, rgba(255, 255, 255, 0.5), transparent 30%),
        radial-gradient(circle at 62% 62%, rgba(180, 120, 60, 0.35) 0 9%, transparent 10%),
        radial-gradient(circle at 40% 70%, rgba(180, 120, 60, 0.28) 0 6%, transparent 7%),
        radial-gradient(circle at 70% 35%, rgba(180, 120, 60, 0.25) 0 5%, transparent 6%),
        radial-gradient(circle, #ffe7b0 0%, #ffc56b 60%, #f29a3a 100%);
    box-shadow: 0 0 60px 20px rgba(255, 170, 80, 0.28), 0 0 160px 60px rgba(255, 122, 36, 0.14);
    opacity: 0.85;
}

@media (max-width: 760px) {
    .hw-moon { top: 128px; right: -24px; opacity: 0.55; }
}

.hw-fog {
    position: absolute;
    z-index: 1;
    left: -20%;
    right: -20%;
    bottom: -10px;
    height: 34%;
    pointer-events: none;
    background:
        radial-gradient(40% 60% at 20% 80%, rgba(200, 180, 210, 0.13), transparent 70%),
        radial-gradient(35% 55% at 55% 90%, rgba(200, 180, 210, 0.11), transparent 70%),
        radial-gradient(40% 60% at 85% 85%, rgba(200, 180, 210, 0.12), transparent 70%);
    filter: blur(6px);
    animation: hw-fog-drift 22s ease-in-out infinite alternate;
}

.hw-fog--back { opacity: 0.7; animation-duration: 31s; animation-direction: alternate-reverse; bottom: 8%; }

@keyframes hw-fog-drift {
    from { transform: translateX(-6%); }
    to { transform: translateX(6%); }
}

.hw-embers {
    position: absolute;
    inset: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

.hero__container,
.page-header .container { position: relative; z-index: 2; }

.page-header {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(60% 80% at 80% 0%, rgba(226, 71, 12, 0.18), transparent 70%),
        radial-gradient(50% 70% at 10% 100%, var(--hw-mist), transparent 70%),
        var(--hw-night);
}

/* ---------- Летучие мыши ---------- */
.hw-bats { position: absolute; inset: 0; z-index: 1; pointer-events: none; overflow: hidden; }

.hw-bat {
    position: absolute;
    left: 0;
    top: 0;
    width: 46px;
    color: #050302;
    filter: drop-shadow(0 0 6px rgba(255, 140, 60, 0.25));
    offset-rotate: 0deg;
    animation: hw-bat-fly var(--hw-dur, 16s) linear var(--hw-delay, 0s) infinite;
    opacity: 0;
}

.hw-bat svg { display: block; width: 100%; height: auto; overflow: visible; }

.hw-bat .hw-wing { transform-box: fill-box; animation: hw-flap 0.32s ease-in-out infinite alternate; }
.hw-bat .hw-wing--l { transform-origin: 100% 40%; }
.hw-bat .hw-wing--r { transform-origin: 0% 40%; }

@keyframes hw-flap {
    from { transform: scaleY(1); }
    to { transform: scaleY(0.35); }
}

@keyframes hw-bat-fly {
    0% { transform: translate(var(--hw-x0), var(--hw-y0)) scale(var(--hw-s, 1)); opacity: 0; }
    6% { opacity: 1; }
    50% { transform: translate(calc((var(--hw-x0) + var(--hw-x1)) / 2), var(--hw-ym)) scale(var(--hw-s, 1)); }
    94% { opacity: 1; }
    100% { transform: translate(var(--hw-x1), var(--hw-y1)) scale(var(--hw-s, 1)); opacity: 0; }
}

.hw-sky {
    position: fixed;
    inset: 0;
    z-index: 900;
    pointer-events: none;
    overflow: hidden;
}

/* ---------- Разделители секций: тыква или свечи на «лиане» ---------- */
.hw-divider {
    position: absolute;
    z-index: 3;
    top: 0;
    left: 50%;
    display: flex;
    align-items: center;
    gap: 14px;
    transform: translate(-50%, -50%);
    pointer-events: none;
}

.hw-divider::before,
.hw-divider::after {
    content: '';
    width: clamp(60px, 18vw, 220px);
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--hw-line));
}

.hw-divider::after { background: linear-gradient(90deg, var(--hw-line), transparent); }

.hw-divider .hw-pumpkin { width: 40px; }

.hw-divider--candles { gap: 10px; }

.hw-divider--candles .hw-candles { display: flex; gap: 9px; align-items: flex-end; padding-top: 10px; }

.hw-candle { width: 7px; height: 16px; }
.hw-candle:nth-child(2) { height: 22px; }
.hw-candle::before { width: 7px; height: 11px; margin-left: -3.5px; }
.hw-candle:nth-child(2)::before { animation-duration: 3.1s; animation-delay: -0.6s; }
.hw-candle:nth-child(3)::before { animation-duration: 2.1s; animation-delay: -1.2s; }

.hw-pumpkin { display: block; height: auto; overflow: visible; }

.hw-pumpkin .hw-pumpkin__glow { animation: hw-glow 2.8s ease-in-out infinite; }

@keyframes hw-glow {
    0%, 100% { opacity: 1; }
    45% { opacity: 0.72; }
    60% { opacity: 0.95; }
}

@keyframes hw-flicker {
    0%, 100% { transform: scale(1, 1) rotate(-2deg); opacity: 1; }
    40% { transform: scale(0.9, 1.1) rotate(2deg); opacity: 0.88; }
    70% { transform: scale(1.06, 0.94) rotate(-1deg); opacity: 1; }
}

/* ---------- Паутинки на карточках ---------- */
.hw-webbed { position: relative; }

.hw-webbed::after {
    content: '';
    position: absolute;
    z-index: 2;
    top: 0;
    right: 0;
    width: 64px;
    height: 64px;
    background: var(--hw-web) no-repeat right top / contain;
    transform: scaleX(-1);
    pointer-events: none;
    opacity: 0.9;
}

.hw-web-corner {
    position: absolute;
    z-index: 1;
    width: clamp(90px, 14vw, 170px);
    aspect-ratio: 1;
    background: var(--hw-web) no-repeat left top / contain;
    pointer-events: none;
    opacity: 0.7;
}

.hw-web-corner--right { right: 0; top: 0; transform: scaleX(-1); }
.hw-web-corner--left { left: 0; top: 0; }

.hw-spider {
    position: absolute;
    z-index: 2;
    width: 1px;
    background: rgba(244, 231, 212, 0.35);
    pointer-events: none;
    animation: hw-spider 7s ease-in-out infinite;
    transform-origin: top;
}

.hw-spider::after {
    content: '';
    position: absolute;
    bottom: -6px;
    left: -5px;
    width: 11px;
    height: 9px;
    border-radius: 50% 50% 45% 45%;
    background: #050302;
    box-shadow: 0 0 0 1px rgba(255, 122, 36, 0.35), -4px -1px 0 -3px #050302, 4px -1px 0 -3px #050302;
}

@keyframes hw-spider {
    0%, 100% { height: 30px; }
    50% { height: 70px; }
}

/* ---------- Тыква-гадалка ---------- */
.hw-oracle {
    position: fixed;
    z-index: 1150;
    left: 18px;
    bottom: 18px;
    width: 64px;
    height: 64px;
    padding: 0;
    border-radius: 50%;
    background: radial-gradient(circle at 50% 60%, rgba(255, 122, 36, 0.28), rgba(12, 8, 6, 0.85) 70%);
    border: 1px solid var(--hw-line);
    box-shadow: 0 0 30px rgba(255, 122, 36, 0.35);
    cursor: pointer;
    animation: hw-bob 3.4s ease-in-out infinite;
}

.hw-oracle .hw-pumpkin { width: 46px; margin: 4px auto 0; }

.hw-oracle:hover,
.hw-oracle:focus-visible { box-shadow: 0 0 44px rgba(255, 122, 36, 0.7); outline: none; }

.hw-oracle:focus-visible { outline: 2px solid var(--hw-bone); outline-offset: 3px; }

.hw-oracle__hint {
    position: absolute;
    left: 74px;
    bottom: 14px;
    padding: 6px 10px;
    border-radius: 10px;
    background: rgba(12, 8, 6, 0.92);
    border: 1px solid var(--hw-line);
    color: var(--hw-bone);
    font: 500 13px/1.2 var(--font-primary);
    white-space: nowrap;
    opacity: 0;
    transform: translateX(-6px);
    transition: opacity 0.3s, transform 0.3s;
    pointer-events: none;
}

.hw-oracle.is-hinting .hw-oracle__hint,
.hw-oracle:hover .hw-oracle__hint { opacity: 1; transform: none; }

.hw-oracle__count {
    position: absolute;
    top: -4px;
    right: -6px;
    min-width: 26px;
    padding: 3px 6px;
    border-radius: 999px;
    background: var(--hw-ember);
    color: #1a0b03;
    font: 700 11px/1 var(--hw-display);
    letter-spacing: 0.04em;
}

.hw-oracle__count[hidden] { display: none; }

@keyframes hw-bob {
    0%, 100% { transform: translateY(0) rotate(-3deg); }
    50% { transform: translateY(-6px) rotate(3deg); }
}

.hw-dialog {
    position: fixed;
    z-index: 2100;
    inset: 0;
    display: grid;
    place-items: end start;
    padding: 18px;
    background: rgba(5, 3, 2, 0.45);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.25s, visibility 0.25s;
}

.hw-dialog.is-open { opacity: 1; visibility: visible; }

.hw-dialog--center { place-items: center; }

.hw-dialog__card {
    position: relative;
    width: min(360px, 100%);
    margin-bottom: 84px;
    padding: 24px 22px 20px;
    border-radius: 16px;
    border: 1px solid var(--hw-line);
    background:
        var(--hw-web) no-repeat right -10px top -10px / 90px,
        linear-gradient(180deg, var(--hw-surface-2), var(--hw-surface));
    color: var(--hw-bone);
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.6), 0 0 60px rgba(255, 122, 36, 0.18);
    transform: translateY(12px) scale(0.97);
    transition: transform 0.3s var(--ease-out);
}

.hw-dialog--center .hw-dialog__card { margin: 0; text-align: center; }

.hw-dialog.is-open .hw-dialog__card { transform: none; }

.hw-dialog__close {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    color: var(--hw-muted);
    font-size: 22px;
    line-height: 1;
}

.hw-dialog__close:hover { color: var(--hw-bone); background: rgba(255, 255, 255, 0.06); }

.hw-dialog__eyebrow {
    margin-bottom: 6px;
    color: var(--hw-ember);
    font: 600 12px/1.2 var(--hw-display);
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.hw-dialog__title {
    margin-bottom: 10px;
    font-size: 34px;
    line-height: 1.05;
}

.hw-dialog__text { margin-bottom: 18px; font-size: 17px; line-height: 1.5; min-height: 3em; }

.hw-dialog__text.is-revealing { animation: hw-reveal 0.6s ease-out; }

@keyframes hw-reveal {
    from { opacity: 0; filter: blur(6px); transform: translateY(4px); }
    to { opacity: 1; filter: none; transform: none; }
}

.hw-dialog__actions { display: flex; flex-wrap: wrap; gap: 10px; }

.hw-dialog__actions .btn { padding: 12px 18px; font-size: 15px; }

.hw-dialog__hunt {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid var(--hw-line-soft);
    color: var(--hw-muted);
    font-size: 14px;
}

.hw-dialog__hunt b { color: var(--hw-flame); }

.hw-dialog__big-pumpkin { width: 96px; margin: 0 auto 10px; }

/* ---------- Охота за тыквами ---------- */
.hw-hidden-pumpkin {
    position: absolute;
    z-index: 4;
    width: 34px;
    height: 34px;
    padding: 0;
    opacity: 0.55;
    filter: saturate(0.6) brightness(0.8);
    cursor: pointer;
    transition: opacity 0.2s, filter 0.2s, transform 0.2s;
}

.hw-hidden-pumpkin .hw-pumpkin { width: 100%; }

.hw-hidden-pumpkin:hover,
.hw-hidden-pumpkin:focus-visible {
    opacity: 1;
    filter: none;
    transform: scale(1.15) rotate(-6deg);
    outline: none;
}

.hw-hidden-pumpkin.is-found { animation: hw-found 0.7s ease-in forwards; pointer-events: none; }

@keyframes hw-found {
    40% { opacity: 1; filter: none drop-shadow(0 0 16px var(--hw-ember)); transform: scale(1.6) rotate(10deg); }
    100% { opacity: 0; transform: scale(0.2) translateY(-40px); }
}

.hw-toast {
    position: fixed;
    z-index: 2050;
    left: 50%;
    top: 136px;
    padding: 10px 16px;
    border-radius: 12px;
    background: rgba(12, 8, 6, 0.95);
    border: 1px solid var(--hw-ember);
    color: var(--hw-bone);
    font: 500 15px/1.3 var(--font-primary);
    box-shadow: 0 0 30px rgba(255, 122, 36, 0.35);
    transform: translate(-50%, -12px);
    opacity: 0;
    transition: opacity 0.25s, transform 0.25s;
    pointer-events: none;
}

.hw-toast.is-visible { opacity: 1; transform: translate(-50%, 0); }

/* ---------- Искры при касании ---------- */
.hw-spark {
    position: fixed;
    z-index: 2200;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: radial-gradient(circle, #fff3c4, var(--hw-flame) 50%, transparent 70%);
    box-shadow: 0 0 8px 2px rgba(255, 140, 40, 0.7);
    pointer-events: none;
    animation: hw-spark 0.7s ease-out forwards;
}

@keyframes hw-spark {
    to { transform: translate(var(--hw-dx), var(--hw-dy)) scale(0.2); opacity: 0; }
}

/* ---------- Подвал со свечами ---------- */
.footer { position: relative; background: #070504; border-top: 1px solid var(--hw-line-soft); }

.hw-footer-candles {
    display: flex;
    justify-content: center;
    gap: clamp(10px, 2.4vw, 22px);
    padding: 26px 0 6px;
    align-items: flex-end;
}

.hw-footer-candles .hw-candle { width: 9px; height: 22px; }
.hw-footer-candles .hw-candle:nth-child(3n + 1) { height: 30px; }
.hw-footer-candles .hw-candle:nth-child(4n + 2) { height: 16px; }
.hw-footer-candles .hw-candle::before { width: 9px; height: 14px; margin-left: -4.5px; }
.hw-footer-candles .hw-candle:nth-child(2n)::before { animation-duration: 3.2s; animation-delay: -1s; }
.hw-footer-candles .hw-candle:nth-child(3n)::before { animation-duration: 2.1s; animation-delay: -0.4s; }

.hw-footer-greeting {
    margin: 4px 0 0;
    text-align: center;
    color: var(--hw-muted);
    font: 500 13px/1.4 var(--hw-display);
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

/* ---------- Формы и модальное окно записи ---------- */
.modal__content {
    background: linear-gradient(180deg, var(--hw-surface-2), var(--hw-surface));
    border: 1px solid var(--hw-line);
    color: var(--hw-bone);
}

.form__input,
.modal__form .form__input,
input[type='text'],
input[type='tel'],
input[type='email'],
select,
textarea {
    background-color: rgba(0, 0, 0, 0.35);
    border-color: rgba(244, 231, 212, 0.18);
    color: var(--hw-bone);
}

.form__input::placeholder { color: rgba(187, 167, 149, 0.6); }

.form__input:focus { border-color: var(--hw-ember); box-shadow: 0 0 0 3px rgba(255, 122, 36, 0.22); }

select option { background: var(--hw-surface); color: var(--hw-bone); }

.form__checkbox input { accent-color: var(--hw-ember); }

.cookie-banner { background: rgba(12, 8, 6, 0.96); border: 1px solid var(--hw-line); color: var(--hw-bone); }

.back-to-top, .back-to-back { color: #1a0b03; box-shadow: 0 0 20px rgba(255, 122, 36, 0.4); }

@media (prefers-reduced-motion: reduce) {
    .hw-banner__candles i::before,
    .hw-candle::before,
    .hw-pumpkin .hw-pumpkin__glow,
    .hw-fog,
    .hw-torch.is-auto,
    .hw-bat,
    .hw-bat .hw-wing,
    .hw-oracle,
    .hw-spider { animation: none; }
    .hw-bat { display: none; }
    .btn--primary:hover { animation: none; }
}

.hw-pumpkin { filter: drop-shadow(0 0 8px rgba(255, 122, 36, 0.45)); }

/* ---------- Карточки: светлые поверхности становятся ночными ---------- */
.audience__card,
.discipline-item,
.benefits__card,
.quiz__card,
.pricing__card,
.pricing__conditions,
.kgoal-promo,
.faq__item {
    background: linear-gradient(180deg, var(--hw-surface-2), var(--hw-surface));
    border-color: var(--hw-line-soft);
    color: var(--hw-bone);
    box-shadow: 0 14px 40px rgba(0, 0, 0, 0.35);
}

.pricing__card--highlight {
    border-color: rgba(255, 122, 36, 0.6);
    box-shadow: 0 0 0 1px rgba(255, 122, 36, 0.35), 0 0 50px rgba(255, 122, 36, 0.18);
}

.pricing__badge { background: var(--gradient-primary); color: #1a0b03; }

.quiz__progress-bar.is-active { background: var(--hw-ember); }

.kgoal-promo__arrow { background: var(--hw-ember); color: #1a0b03; }

/* ---------- Мозаики: огненная плитка, мистическая, тёмные ---------- */
.audience__card,
.benefits__card,
.discipline-item { border: 1px solid var(--hw-line-soft); }

.audience__card p,
.benefits__card p,
.discipline-item p { color: var(--hw-muted); }

.audience__card h3,
.benefits__card h3,
.discipline-item h4 { color: var(--hw-bone); }

/* огонь */
.audience__card:nth-child(1),
.benefits__card:nth-child(1),
.discipline-item:nth-child(5) {
    background: radial-gradient(120% 90% at 20% 0%, #ff9a4d, var(--hw-ember) 45%, var(--hw-ember-deep));
    border-color: transparent;
    box-shadow: 0 0 40px rgba(255, 122, 36, 0.25);
}

.audience__card:nth-child(1) h3,
.benefits__card:nth-child(1) h3,
.discipline-item:nth-child(5) h4 { color: #1a0b03; }

.audience__card:nth-child(1) p,
.benefits__card:nth-child(1) p,
.discipline-item:nth-child(5) p { color: rgba(26, 11, 3, 0.8); }

.audience__card:nth-child(1) .audience__icon { color: #1a0b03; }

/* мистика */
.audience__card:nth-child(2),
.benefits__card:nth-child(3),
.discipline-item:nth-child(3) {
    background:
        radial-gradient(90% 80% at 100% 0%, rgba(150, 90, 190, 0.28), transparent 70%),
        #1b1220;
    border-color: rgba(170, 120, 210, 0.22);
}

/* янтарь */
.audience__card:nth-child(3),
.benefits__card:nth-child(2) {
    background:
        radial-gradient(100% 90% at 0% 100%, rgba(255, 179, 71, 0.22), transparent 70%),
        #22140a;
    border-color: rgba(255, 179, 71, 0.3);
}

.audience__card:nth-child(3) h3,
.benefits__card:nth-child(2) h3 { color: var(--hw-flame); }

/* ночь */
.audience__card:nth-child(4),
.audience__card:nth-child(5),
.benefits__card:nth-child(4),
.benefits__card:nth-child(5),
.discipline-item:nth-child(6) {
    background: linear-gradient(180deg, var(--hw-surface-2), var(--hw-surface));
    box-shadow: none;
}

/* тлеющие угли */
.audience__card:nth-child(6),
.benefits__card:nth-child(6) {
    background:
        radial-gradient(100% 100% at 100% 100%, rgba(226, 71, 12, 0.3), transparent 70%),
        #1d0c06;
    border-color: rgba(226, 71, 12, 0.3);
}

.audience__card:nth-child(6) h3,
.audience__card:nth-child(6) p { color: var(--hw-bone); }

.discipline-item:nth-child(3)::before,
.discipline-item:nth-child(6)::before { background: var(--hw-ember); }

.discipline-item:nth-child(5)::before { background: #1a0b03; }

.discipline-item:nth-child(3) h4,
.discipline-item:nth-child(3) p,
.discipline-item:nth-child(6) h4,
.discipline-item:nth-child(6) p { color: var(--hw-bone); }

.discipline-item:nth-child(3) p,
.discipline-item:nth-child(6) p { color: var(--hw-muted); }

.hw-moon { z-index: 1; }
.header__cabinet { background: transparent; color: var(--hw-bone); border-color: rgba(244, 231, 212, 0.25); }
.header__cabinet:hover { color: var(--hw-flame); border-color: var(--hw-ember); }

.pricing__savings { color: var(--hw-flame); }

.quiz__option {
    background: rgba(0, 0, 0, 0.3);
    border-color: rgba(244, 231, 212, 0.18);
    color: var(--hw-bone);
}

.quiz__option:hover,
.quiz__option:focus-visible { background: rgba(255, 122, 36, 0.12); border-color: var(--hw-ember); }

.quiz__option.is-selected { background: var(--gradient-primary); border-color: transparent; color: #1a0b03; }

.quiz__result-badge { background: rgba(255, 122, 36, 0.16); color: var(--hw-flame); }

/* Финальный призыв — костёр в ночи */
.cta {
    background:
        radial-gradient(60% 90% at 50% 120%, rgba(255, 122, 36, 0.4), transparent 70%),
        radial-gradient(40% 60% at 15% 0%, var(--hw-mist), transparent 70%),
        var(--hw-night);
}

.cta__title { text-shadow: 0 0 30px rgba(255, 122, 36, 0.35); }

.hw-footer-greeting { margin-bottom: 26px; }

@media (max-width: 640px) {
    .hw-oracle { left: 12px; bottom: 14px; width: 54px; height: 54px; }
    .hw-oracle .hw-pumpkin { width: 38px; margin-top: 3px; }
    .hw-oracle__hint { left: 62px; bottom: 10px; }
    .hw-dialog__card { margin-bottom: 70px; }
}

/* ---------- Светлые поверхности внутренних страниц ---------- */
.section--gradient,
.audience,
.trainer,
.benefits,
.directions { background: var(--hw-night); }

.trainer,
.benefits { background: var(--hw-night-2); }

.testimonial-alt,
.team-card,
.contact-card,
.schedule-table,
.live-schedule__item,
.weekly-schedule,
.weekly-schedule__list div,
.accordion__header,
.card,
.seo-link-card,
.seo-checklist li,
.seo-steps li,
.legal-section,
.kgoal-offer,
.modal__selection {
    background: linear-gradient(180deg, var(--hw-surface-2), var(--hw-surface));
    border-color: var(--hw-line-soft);
    color: var(--hw-bone);
    box-shadow: 0 14px 40px rgba(0, 0, 0, 0.3);
}

.weekly-schedule__list div { box-shadow: none; }

.live-schedule__item:hover,
.seo-link-card:hover,
.contact-card:hover { border-color: var(--hw-line); }

.map-container,
.seo-content__aside,
.accordion__body,
.image-placeholder,
.team-card__image,
.card__image,
.gallery-item,
.progress-bar,
.team-card__social a {
    background: var(--hw-surface);
}

.schedule-table tr:hover,
.accordion__header:hover,
.faq__question:hover,
.tabs__btn:hover { background: rgba(255, 122, 36, 0.08); }

.info-box {
    background: linear-gradient(135deg, #22140a, #1a100b);
    color: var(--hw-bone);
}

.warning-box {
    background: linear-gradient(135deg, #2a0f08, #1d0b07);
    color: var(--hw-bone);
}

.legal-content strong { color: var(--hw-bone); }

/* Инлайн-фоны в шаблонах цен и kGoal */
main [style*="background: #fff"],
main [style*="background: white"],
main [style*="#FFFBF0"],
main [style*="var(--bg-card"],
main [style*="background: var(--color-light)"] {
    background: linear-gradient(180deg, var(--hw-surface-2), var(--hw-surface)) !important;
    border-color: var(--hw-line-soft) !important;
    color: var(--hw-bone);
}

.live-schedule__places .is-open { color: #9ee08a; }
.live-schedule__places .is-full { color: #ff8f7a; }

.page-header .hw-fog { opacity: 0.55; height: 70%; }

main [style*="background: var(--color-primary"] { color: #1a0b03 !important; }

/* Промокод за найденные тыквы */
.hw-promo {
    display: grid;
    justify-items: center;
    gap: 6px;
    margin: -4px 0 18px;
    padding: 14px 12px;
    border: 1px dashed rgba(255, 122, 36, 0.6);
    border-radius: 12px;
    background: rgba(255, 122, 36, 0.08);
}

.hw-promo__label {
    color: var(--hw-muted);
    font: 600 12px/1.2 var(--hw-display);
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.hw-promo__code {
    padding: 4px 10px;
    border-radius: 8px;
    color: var(--hw-flame);
    font: 700 28px/1.1 var(--hw-display);
    letter-spacing: 0.12em;
    text-shadow: 0 0 18px rgba(255, 122, 36, 0.5);
    cursor: copy;
}

.hw-promo__code:hover,
.hw-promo__code:focus-visible { background: rgba(255, 122, 36, 0.12); outline: none; }

.hw-promo__code:focus-visible { outline: 2px solid var(--hw-bone); outline-offset: 2px; }

.hw-promo__hint { color: var(--hw-muted); font-size: 13px; line-height: 1.4; }
