
.skip-link {
    position: fixed;
    top: 0;
    left: var(--layer-gap);
    z-index: var(--z-modal);
    transform: translateY(-120%);
    padding: var(--space-2) var(--space-4);
    background: var(--brand);
    color: var(--site-color-contrast);
    border-radius: 0 0 var(--radius) var(--radius);
    font-family: var(--font-ui);
    font-weight: var(--fw-medium);
    box-shadow: var(--glass-shadow);
    transition: transform var(--transition);
}
.skip-link:focus {
    transform: translateY(0);
    color: var(--site-color-contrast);
    outline: 2px solid var(--action);
    outline-offset: 2px;
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    padding: 11px 22px 14px;
    font-family: var(--font-ui);
    font-size: .875rem;
    font-weight: var(--fw-medium);
    line-height: 1;
    text-align: center;
    white-space: nowrap;
    cursor: pointer;
    border: 1px solid transparent;
    border-radius: var(--radius);
    --btn-transition: .1s ease;
    transition: background-color var(--btn-transition), color var(--btn-transition),
                border-color var(--btn-transition), box-shadow var(--btn-transition), transform var(--btn-transition),
                opacity .2s ease;
    user-select: none;
}

.btn:disabled,
.btn.is-disabled {
    opacity: .55;
    pointer-events: none;
}

.btn--outline {
    background-color: rgba(255, 255, 255, .6);
    color: var(--brand-dark);
    border-color: var(--brand);

    box-shadow: 0 3px 8px rgba(60, 105, 160, .16), inset 0 1px 0 rgba(255, 255, 255, .6);
}
.btn--outline:hover {

    background-color: var(--brand);
    background-image: var(--btn-sheen);
    color: var(--site-color-contrast);
    border-color: var(--brand);
    box-shadow: var(--shadow-brand);
}

.btn--brand {
    background-color: var(--brand);
    background-image: var(--btn-sheen);
    color: var(--site-color-contrast);
    box-shadow: var(--shadow-brand);
}
.btn--brand:hover {
    background-color: var(--brand-dark);
    color: var(--site-color-contrast);
    box-shadow: var(--shadow-brand-hover);
}
.btn--brand:active {
    box-shadow: 0 3px 8px rgba(60, 105, 160, .35), inset 0 1px 0 rgba(255, 255, 255, .30);
}

.btn--coral {
    background-color: var(--action);
    color: var(--site-color-contrast);
}
.btn--coral:hover {
    background-color: var(--action-dark);
    color: var(--site-color-contrast);
}

.btn--ghost {
    background-color: transparent;
    color: var(--color-text);
}
.btn--ghost:hover {
    background-color: var(--color-bg-soft);
}

.btn--sm    { padding: 9px 18px 11px; font-size: .8rem; }
.btn--lg    { padding: 13px 28px 16px; font-size: .9375rem; }
.btn--block { display: flex; width: 100%; }
.btn--pill  { border-radius: var(--radius-pill); }

.menu-link {
    position: relative;
    display: inline-block;
    padding-block: 4px;
    color: var(--color-heading);
    font-family: var(--font-ui);
    white-space: nowrap;
    transition: color var(--transition);
}
.menu-link::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -1px;
    width: 100%;
    height: 2px;
    border-radius: 2px;
    background-color: var(--brand);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform .22s ease;
}
.menu-link:hover,
.menu-link.is-active { color: var(--brand); }

.menu-link:hover::after,
.menu-link.is-active::after { transform: scaleX(1); }

.logo { display: flex; align-items: center; gap: var(--space-2); line-height: 1.1; }
.logo__text { display: flex; flex-direction: column; }
.logo b { font-size: 1.44rem; letter-spacing: .12em; color: var(--site-color-dark); }
.logo small { font-size: .6rem; letter-spacing: .16em; text-transform: uppercase;
    font-weight: 600; color: var(--color-text-muted); font-family: var(--font-ui); margin-top: 3px;
    white-space: nowrap; }

.logo__mark { width: 70px; height: 70px; flex: 0 0 auto; display: block; margin-block: -5px; }
.logo__glyph {
    display: block; width: 100%; height: 100%;
    background: var(--site-color-dark);

    -webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22568%22%20height%3D%22511%22%20viewBox%3D%22-28%200%20568%20511%22%3E%20%3Cpath%20d%3D%22M%2079%2079%20L%20433%2079%20L%20433%20432%20L%2079%20432%20Z%22%20fill%3D%22none%22%20stroke%3D%22%2344588f%22%20stroke-width%3D%2210%22%20stroke-linejoin%3D%22miter%22%2F%3E%20%3Cpath%20d%3D%22M%2034.9%20227.7%20L%20256%207%20L%20477.1%20227.7%20M%2034.9%20283.3%20L%20256%20504%20L%20477.1%20283.3%22%20fill%3D%22none%22%20stroke%3D%22%2344588f%22%20stroke-width%3D%2210%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%2F%3E%20%3Cpath%20d%3D%22M%207%20224.0%20L%2038.5%20255.5%20L%207%20287.0%20L%20-24.5%20255.5%20Z%20M%20505%20224.0%20L%20536.5%20255.5%20L%20505%20287.0%20L%20473.5%20255.5%20Z%22%20fill%3D%22%2344588f%22%2F%3E%20%3Cpath%20d%3D%22M%20256.00%20110.33%20C%20256.00%20110.33%2C%20258.52%20118.99%2C%20260.14%20123.18%20C%20261.75%20127.38%2C%20263.62%20131.50%2C%20265.71%20135.48%20C%20267.80%20139.45%2C%20270.14%20143.33%2C%20272.66%20147.05%20C%20275.18%20150.77%2C%20277.97%20154.32%2C%20280.82%20157.81%20C%20283.66%20161.29%2C%20286.68%20164.63%2C%20289.72%20167.95%20C%20292.76%20171.27%2C%20295.89%20174.51%2C%20299.03%20177.74%20C%20302.18%20180.96%2C%20305.43%20184.08%2C%20308.58%20187.29%20C%20311.73%20190.51%2C%20314.92%20193.69%2C%20317.92%20197.05%20C%20320.91%20200.41%2C%20323.88%20203.82%2C%20326.56%20207.42%20C%20329.24%20211.03%2C%20331.84%20214.75%2C%20333.99%20218.69%20C%20336.15%20222.61%2C%20338.12%20226.75%2C%20339.48%20231.00%20C%20340.86%20235.25%2C%20341.90%20239.76%2C%20342.22%20244.20%20C%20342.53%20248.64%2C%20342.33%20253.29%2C%20341.39%20257.63%20C%20340.46%20261.96%2C%20338.74%20266.31%2C%20336.58%20270.19%20C%20334.42%20274.09%2C%20331.61%20277.81%2C%20328.43%20280.91%20C%20325.25%20284.00%2C%20321.45%20286.75%2C%20317.51%20288.79%20C%20313.58%20290.85%2C%20309.18%20292.46%2C%20304.82%20293.23%20C%20300.46%20293.98%2C%20295.73%20294.03%2C%20291.36%20293.36%20C%20287.00%20292.67%2C%20282.52%20291.18%2C%20278.60%20289.13%20C%20274.68%20287.07%2C%20271.05%20283.72%2C%20267.86%20281.03%20C%20264.66%20278.36%2C%20261.44%20274.76%2C%20259.46%20273.03%20C%20257.49%20271.29%2C%20257.15%20270.63%2C%20256.00%20270.63%20C%20254.85%20270.63%2C%20254.51%20271.29%2C%20252.54%20273.03%20C%20250.56%20274.76%2C%20247.34%20278.36%2C%20244.14%20281.03%20C%20240.95%20283.72%2C%20237.32%20287.07%2C%20233.40%20289.13%20C%20229.48%20291.18%2C%20225.00%20292.67%2C%20220.64%20293.36%20C%20216.27%20294.03%2C%20211.54%20293.98%2C%20207.18%20293.23%20C%20202.82%20292.46%2C%20198.42%20290.85%2C%20194.49%20288.79%20C%20190.55%20286.75%2C%20186.75%20284.00%2C%20183.57%20280.91%20C%20180.39%20277.81%2C%20177.58%20274.09%2C%20175.42%20270.19%20C%20173.26%20266.31%2C%20171.54%20261.96%2C%20170.61%20257.63%20C%20169.67%20253.29%2C%20169.47%20248.64%2C%20169.78%20244.20%20C%20170.10%20239.76%2C%20171.14%20235.25%2C%20172.52%20231.00%20C%20173.88%20226.75%2C%20175.85%20222.61%2C%20178.01%20218.69%20C%20180.16%20214.75%2C%20182.76%20211.03%2C%20185.44%20207.42%20C%20188.12%20203.82%2C%20191.09%20200.41%2C%20194.08%20197.05%20C%20197.08%20193.69%2C%20200.27%20190.51%2C%20203.42%20187.29%20C%20206.57%20184.08%2C%20209.82%20180.96%2C%20212.97%20177.74%20C%20216.11%20174.51%2C%20219.24%20171.27%2C%20222.28%20167.95%20C%20225.32%20164.63%2C%20228.34%20161.29%2C%20231.18%20157.81%20C%20234.03%20154.32%2C%20236.82%20150.77%2C%20239.34%20147.05%20C%20241.86%20143.33%2C%20244.20%20139.45%2C%20246.29%20135.48%20C%20248.38%20131.50%2C%20250.25%20127.38%2C%20251.86%20123.18%20C%20253.48%20118.99%2C%20256.00%20110.33%2C%20256.00%20110.33%20Z%20M%20256.00%20307.01%20C%20261.62%20324.17%2C%20270.96%20339.83%2C%20283.43%20353.14%20C%20270.96%20366.46%2C%20261.62%20382.12%2C%20256.00%20399.27%20C%20250.38%20382.12%2C%20241.04%20366.46%2C%20228.57%20353.14%20C%20241.04%20339.83%2C%20250.38%20324.17%2C%20256.00%20307.01%20Z%22%20fill%3D%22%2344588f%22%20fill-rule%3D%22evenodd%22%2F%3E%20%3C%2Fsvg%3E") center/contain no-repeat;
            mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22568%22%20height%3D%22511%22%20viewBox%3D%22-28%200%20568%20511%22%3E%20%3Cpath%20d%3D%22M%2079%2079%20L%20433%2079%20L%20433%20432%20L%2079%20432%20Z%22%20fill%3D%22none%22%20stroke%3D%22%2344588f%22%20stroke-width%3D%2210%22%20stroke-linejoin%3D%22miter%22%2F%3E%20%3Cpath%20d%3D%22M%2034.9%20227.7%20L%20256%207%20L%20477.1%20227.7%20M%2034.9%20283.3%20L%20256%20504%20L%20477.1%20283.3%22%20fill%3D%22none%22%20stroke%3D%22%2344588f%22%20stroke-width%3D%2210%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%2F%3E%20%3Cpath%20d%3D%22M%207%20224.0%20L%2038.5%20255.5%20L%207%20287.0%20L%20-24.5%20255.5%20Z%20M%20505%20224.0%20L%20536.5%20255.5%20L%20505%20287.0%20L%20473.5%20255.5%20Z%22%20fill%3D%22%2344588f%22%2F%3E%20%3Cpath%20d%3D%22M%20256.00%20110.33%20C%20256.00%20110.33%2C%20258.52%20118.99%2C%20260.14%20123.18%20C%20261.75%20127.38%2C%20263.62%20131.50%2C%20265.71%20135.48%20C%20267.80%20139.45%2C%20270.14%20143.33%2C%20272.66%20147.05%20C%20275.18%20150.77%2C%20277.97%20154.32%2C%20280.82%20157.81%20C%20283.66%20161.29%2C%20286.68%20164.63%2C%20289.72%20167.95%20C%20292.76%20171.27%2C%20295.89%20174.51%2C%20299.03%20177.74%20C%20302.18%20180.96%2C%20305.43%20184.08%2C%20308.58%20187.29%20C%20311.73%20190.51%2C%20314.92%20193.69%2C%20317.92%20197.05%20C%20320.91%20200.41%2C%20323.88%20203.82%2C%20326.56%20207.42%20C%20329.24%20211.03%2C%20331.84%20214.75%2C%20333.99%20218.69%20C%20336.15%20222.61%2C%20338.12%20226.75%2C%20339.48%20231.00%20C%20340.86%20235.25%2C%20341.90%20239.76%2C%20342.22%20244.20%20C%20342.53%20248.64%2C%20342.33%20253.29%2C%20341.39%20257.63%20C%20340.46%20261.96%2C%20338.74%20266.31%2C%20336.58%20270.19%20C%20334.42%20274.09%2C%20331.61%20277.81%2C%20328.43%20280.91%20C%20325.25%20284.00%2C%20321.45%20286.75%2C%20317.51%20288.79%20C%20313.58%20290.85%2C%20309.18%20292.46%2C%20304.82%20293.23%20C%20300.46%20293.98%2C%20295.73%20294.03%2C%20291.36%20293.36%20C%20287.00%20292.67%2C%20282.52%20291.18%2C%20278.60%20289.13%20C%20274.68%20287.07%2C%20271.05%20283.72%2C%20267.86%20281.03%20C%20264.66%20278.36%2C%20261.44%20274.76%2C%20259.46%20273.03%20C%20257.49%20271.29%2C%20257.15%20270.63%2C%20256.00%20270.63%20C%20254.85%20270.63%2C%20254.51%20271.29%2C%20252.54%20273.03%20C%20250.56%20274.76%2C%20247.34%20278.36%2C%20244.14%20281.03%20C%20240.95%20283.72%2C%20237.32%20287.07%2C%20233.40%20289.13%20C%20229.48%20291.18%2C%20225.00%20292.67%2C%20220.64%20293.36%20C%20216.27%20294.03%2C%20211.54%20293.98%2C%20207.18%20293.23%20C%20202.82%20292.46%2C%20198.42%20290.85%2C%20194.49%20288.79%20C%20190.55%20286.75%2C%20186.75%20284.00%2C%20183.57%20280.91%20C%20180.39%20277.81%2C%20177.58%20274.09%2C%20175.42%20270.19%20C%20173.26%20266.31%2C%20171.54%20261.96%2C%20170.61%20257.63%20C%20169.67%20253.29%2C%20169.47%20248.64%2C%20169.78%20244.20%20C%20170.10%20239.76%2C%20171.14%20235.25%2C%20172.52%20231.00%20C%20173.88%20226.75%2C%20175.85%20222.61%2C%20178.01%20218.69%20C%20180.16%20214.75%2C%20182.76%20211.03%2C%20185.44%20207.42%20C%20188.12%20203.82%2C%20191.09%20200.41%2C%20194.08%20197.05%20C%20197.08%20193.69%2C%20200.27%20190.51%2C%20203.42%20187.29%20C%20206.57%20184.08%2C%20209.82%20180.96%2C%20212.97%20177.74%20C%20216.11%20174.51%2C%20219.24%20171.27%2C%20222.28%20167.95%20C%20225.32%20164.63%2C%20228.34%20161.29%2C%20231.18%20157.81%20C%20234.03%20154.32%2C%20236.82%20150.77%2C%20239.34%20147.05%20C%20241.86%20143.33%2C%20244.20%20139.45%2C%20246.29%20135.48%20C%20248.38%20131.50%2C%20250.25%20127.38%2C%20251.86%20123.18%20C%20253.48%20118.99%2C%20256.00%20110.33%2C%20256.00%20110.33%20Z%20M%20256.00%20307.01%20C%20261.62%20324.17%2C%20270.96%20339.83%2C%20283.43%20353.14%20C%20270.96%20366.46%2C%20261.62%20382.12%2C%20256.00%20399.27%20C%20250.38%20382.12%2C%20241.04%20366.46%2C%20228.57%20353.14%20C%20241.04%20339.83%2C%20250.38%20324.17%2C%20256.00%20307.01%20Z%22%20fill%3D%22%2344588f%22%20fill-rule%3D%22evenodd%22%2F%3E%20%3C%2Fsvg%3E") center/contain no-repeat;
}

.logo--sm { gap: var(--space-2); }
.logo--sm .logo__mark { width: 44px; height: 44px; margin-block: 0; }
.logo--sm b { font-size: 1.1rem; }

@media (max-width: 768px) {
    .logo__mark { width: 44px; height: 44px; }

    .logo b { font-size: 1.2rem; letter-spacing: .2em; }
    .logo small { text-align: justify; text-align-last: justify; letter-spacing: .1em; }

    .site-header .site-header__inner,
    .floating-header .floating-header__bar { gap: var(--space-2); }
    .site-header__inner .header-actions,
    .floating-header__bar .header-actions { gap: var(--space-1); }
    .header-actions .btn { padding: 7px 13px 9px; font-size: .78rem; }

    .search-btn { width: auto; }
    .search-btn:hover { background: transparent; }

    .floating-header__bar { padding-left: var(--space-3); }
}

@media (max-width: 400px) {
    .floating-header__bar .logo b { font-size: 1rem; }
    .floating-header__bar { padding: var(--space-2); }
}

@media (max-width: 359px) {
    .header-actions .search-btn { display: none; }
}

.logo--footer .logo__glyph { background: #fff; }
.logo--footer b { color: #fff; }
.logo--footer small { color: var(--text-on-dark-muted); }

.social-link {
    display: inline-flex; align-items: center; justify-content: center;
    width: 38px; height: 38px; flex: 0 0 auto;
    border-radius: var(--radius-pill);
    background: rgba(255, 255, 255, .1);
    color: #fff;
    transition: background-color var(--transition), transform var(--transition);
}
.social-link svg { width: 18px; height: 18px; fill: currentColor; }

.social-link:hover { background: #fff; transform: translateY(-2px); }
.social-link--tg:hover  { color: #29a9e1; }
.social-link--yt:hover  { color: #ff0000; }
.social-link--vk:hover  { color: #0077ff; }
.social-link--pin:hover { color: #e60023; }
.social-link--ig:hover  { color: #e1306c; }
.social-link--max:hover { color: #5533ee; }

.main-nav { display: flex; gap: var(--space-4); margin-inline: auto; align-items: center; }
.header-actions { display: flex; align-items: center; gap: var(--space-3); }

.menu-drop { position: relative; }
.menu-drop > .menu-link { cursor: pointer; user-select: none; }
.menu-drop > .menu-link::after {
    content: ""; display: inline-block; margin-left: 10px; color: var(--brand); background-color: var(--brand);
    width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
    transform: translateY(-2px) rotate(45deg); transition: transform var(--transition);
}
.menu-drop:hover > .menu-link::after { transform: translateY(0) rotate(225deg); }
.menu-drop::after { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 20px; }
.submenu {
    position: absolute; top: 100%; left: 50%;
    margin-top: 18px; min-width: 210px;
    list-style: none; padding: var(--space-2); margin-block: 0;
    background: var(--glass-bg-strong);
    border: 1px solid var(--glass-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--glass-shadow), var(--glass-highlight);
    opacity: 0; visibility: hidden;
    transform: translateX(-50%) translateY(6px);
    transition: opacity var(--transition), transform var(--transition), visibility var(--transition);
    z-index: var(--z-overlay);
}
.menu-drop:hover .submenu { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }
.submenu a {
    display: block; padding: 9px 14px; border-radius: var(--radius);
    color: var(--color-heading); font-family: var(--font-ui); white-space: nowrap;
    transition: background-color var(--transition), color var(--transition);
}
.submenu a:hover,
.submenu a.is-active { background: var(--site-color-light); color: var(--brand); }
.submenu li + li { margin-top: 2px; }

.search-btn {
    display: inline-flex; align-items: center; justify-content: center;
    width: 40px; height: 40px; flex: 0 0 auto; border-radius: 50%;
    color: var(--site-color-dark);
    transition: background-color var(--transition), color var(--transition);
}
.search-btn:hover { background: var(--site-color-light); color: var(--brand); }
.search-btn__icon {
    width: 20px; height: 20px; background: currentColor;
    -webkit-mask: url("../media/search-icon.svg") center/contain no-repeat;
            mask: url("../media/search-icon.svg") center/contain no-repeat;
}

.account-btn {
    position: relative;
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 40px; min-height: 40px; flex: 0 0 auto;
    border: 0; background: transparent; padding: 0; cursor: pointer;
    color: var(--site-color-dark);
    transition: color var(--transition);
}
.account-btn:hover,
.account-drop.is-open .account-btn { color: var(--brand); }

.account-btn__caret {
    position: absolute; right: -1px; bottom: -1px;
    width: 18px; height: 18px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    background: #fff; color: var(--site-color-dark);
    box-shadow: var(--glass-shadow);
}
.account-btn__caret svg { width: 11px; height: 11px; transition: transform var(--transition); }
.account-drop.is-open .account-btn__caret svg { transform: rotate(180deg); }
.account-btn__icon {
    width: 50px; height: 50px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    background: transparent;
    border: 2px solid var(--action);
    color: var(--action);
    box-shadow: var(--glass-shadow);
    transition: color var(--transition), border-color var(--transition), box-shadow .25s ease;
}
.account-btn__icon::before {
    content: ""; width: 22px; height: 22px; background: currentColor;
    -webkit-mask: url("../media/person-icon.svg") center/contain no-repeat;
            mask: url("../media/person-icon.svg") center/contain no-repeat;
}
.account-btn:hover .account-btn__icon {
    color: var(--action-dark); border-color: var(--action-dark);
    box-shadow: var(--glass-shadow-hover);
}

.status-chip {
    display: inline-flex; align-items: center;
    height: 30px; padding: 0 11px; flex: 0 0 auto;
    border-radius: var(--radius-pill);
    border: 1px solid var(--glass-border);
    background: var(--glass-bg-strong);
    font: 600 .82rem/1 var(--font-ui);
    color: var(--color-text-muted);
    white-space: nowrap; text-decoration: none;
    box-shadow: var(--glass-shadow);
    transition: color var(--transition), background-color var(--transition),
                box-shadow .25s ease, transform .25s ease;
}

.status-chip:hover { transform: translateY(-2px); box-shadow: var(--glass-shadow-hover); }

.status-chip--guest,
.status-chip--free {
    color: var(--action);
    background: var(--action-light);
    border-color: rgba(239, 90, 111, .35);
}
.status-chip--guest:hover,
.status-chip--free:hover { color: var(--action-dark); }
.status-chip--premium {
    color: var(--site-color-dark);
    background: var(--site-color-light);
    border-color: rgba(90, 140, 200, .35);
}
.status-chip--premium:hover { color: var(--brand-dark); }
.status-chip--professional {
    color: var(--color-club);
    background: var(--color-club-light);
    border-color: rgba(212, 162, 60, .45);
}
.status-chip--professional:hover { color: #b07f22; }

.status-drop { position: relative; display: inline-flex; }
.status-menu {
    position: absolute; top: calc(100% + var(--space-2)); right: 0; left: auto;
    min-width: 270px; max-width: calc(100vw - var(--space-4));
    display: flex; flex-direction: column; gap: var(--space-2);
    padding: var(--space-3);
    background: var(--glass-bg-strong);
    border: 1px solid var(--glass-border);
    border-radius: var(--glass-radius);
    box-shadow: var(--glass-shadow);
    transform-origin: top right;
    transform: translateY(-6px) scale(.97);
    opacity: 0; visibility: hidden;
    transition: opacity   var(--anim-expand-dur) var(--anim-expand),
                transform var(--anim-expand-dur) var(--anim-expand),
                visibility 0s var(--anim-expand-dur);
}
.status-drop.is-open .status-menu {
    opacity: 1; visibility: visible; transform: translateY(0) scale(1);
    transition: opacity   var(--anim-expand-dur) var(--anim-expand),
                transform var(--anim-expand-dur) var(--anim-expand);
}
.status-menu__title { margin: 0; font-weight: 700; color: var(--color-heading); }
.status-menu--premium .status-menu__title      { color: var(--site-color-dark); }
.status-menu--professional .status-menu__title  { color: var(--color-club); }
.status-menu .sub__status { font-size: .85rem; color: var(--color-text-muted); }
.status-menu--premium .sub__dot,
.status-menu--professional .sub__dot { --dot: var(--color-success); }
.status-menu__note { margin: 0; font-size: .88rem; line-height: 1.45; color: var(--color-text-muted); }
.status-menu .btn { margin-top: var(--space-1); }
.status-menu__more { text-align: center; font-size: .85rem; color: var(--site-color-dark); }
.status-menu__more:hover { color: var(--action); }

.account-btn__avatar {
    width: 50px; height: 50px; border-radius: 50%;
    background: var(--site-color-light) center/cover no-repeat;
    display: flex; align-items: center; justify-content: center;
    font: 700 1.25rem/1 var(--font-ui); color: #fff; overflow: hidden;
    box-shadow: var(--glass-shadow);
    transition: box-shadow .25s ease;
}
.account-btn--free .account-btn__avatar--initial        { background: var(--color-text-muted); }
.account-btn--premium .account-btn__avatar--initial     { background: var(--brand); }
.account-btn--professional .account-btn__avatar--initial { background: var(--color-club); }

.account-btn:hover .account-btn__avatar         { box-shadow: var(--glass-shadow-hover); }
.account-btn--free .account-btn__avatar      { box-shadow: 0 0 0 2px var(--action), var(--glass-shadow); }
.account-btn--free:hover .account-btn__avatar { box-shadow: 0 0 0 2px var(--action), var(--glass-shadow-hover); }
.account-btn--premium .account-btn__avatar      { box-shadow: 0 0 0 2px var(--brand), var(--glass-shadow); }
.account-btn--premium:hover .account-btn__avatar { box-shadow: 0 0 0 2px var(--brand), var(--glass-shadow-hover); }
.account-btn--professional .account-btn__avatar      { box-shadow: 0 0 0 2px var(--color-club), var(--glass-shadow); }
.account-btn--professional:hover .account-btn__avatar { box-shadow: 0 0 0 2px var(--color-club), var(--glass-shadow-hover); }

@media (max-width: 400px) {
    .account-btn__avatar { width: 40px; height: 40px; font-size: 1.05rem; }
}

@media (max-width: 768px) { .status-chip { display: none; } }

.account-menu__status { display: none; }
@media (max-width: 768px) {
    .account-menu__status {
        display: flex; flex-direction: column; gap: var(--space-2);
        min-width: 210px;
        margin-bottom: var(--space-1);
        padding: var(--space-1) var(--space-2) var(--space-3);
        border-bottom: 1px solid var(--glass-border);
    }
    .account-menu__status-title { margin: 0; font-weight: 700; color: var(--color-heading); }
    .account-menu__status--premium      .account-menu__status-title { color: var(--site-color-dark); }
    .account-menu__status--professional .account-menu__status-title { color: var(--color-club); }
    .account-menu__status .sub__status { margin: 0; display: flex; align-items: center; gap: 6px; font-size: .85rem; color: var(--color-text-muted); }
    .account-menu__status--premium .sub__dot,
    .account-menu__status--professional .sub__dot { --dot: var(--color-success); }
    .account-menu__status .btn { margin-top: 2px; }
    .account-menu__status-more { display: block; text-align: center; font-size: .85rem; color: var(--site-color-dark); }
    .account-menu__status-more:hover { color: var(--action); }
}

/* §k1 — меню человечка (идентично бургеру; .account-drop не создаёт контекст позиционирования) */
.account-drop { display: inline-flex; }
.account-menu {
    position: absolute; top: calc(100% - var(--space-1)); right: var(--container-pad); left: auto;
    width: max-content; min-width: 180px; max-width: calc(100vw - var(--space-4));
    display: flex; flex-direction: column; align-items: stretch; gap: 2px;
    padding: var(--space-2);
    background: var(--glass-bg-strong);
    border: 1px solid var(--glass-border);
    border-radius: var(--glass-radius);
    box-shadow: var(--glass-shadow);
    transform-origin: top right;
    transform: translateY(-6px) scale(.97);
    opacity: 0; visibility: hidden;
    transition: opacity   var(--anim-expand-dur) var(--anim-expand),
                transform var(--anim-expand-dur) var(--anim-expand),
                visibility 0s var(--anim-expand-dur);
}
.account-drop.is-open .account-menu {
    opacity: 1; visibility: visible;
    transform: translateY(0) scale(1);
    transition: opacity   var(--anim-expand-dur) var(--anim-expand),
                transform var(--anim-expand-dur) var(--anim-expand);
}
.floating-header__bar .account-menu { top: calc(100% + var(--space-2) + var(--space-1)); }

.account-menu > * {
    opacity: 0; transform: translateX(12px);
    transition: opacity .3s var(--anim-expand), transform .3s var(--anim-expand),
                background-color var(--transition), color var(--transition);
}
.account-drop.is-open .account-menu > * { opacity: 1; transform: none; }
.account-drop.is-open .account-menu > * {
    --stagger: calc(.06s + var(--i, 0) * .04s);
    transition-delay: var(--stagger), var(--stagger), 0s, 0s;
}

.account-menu > a {
    display: block; padding: 12px 10px; border-radius: var(--radius);
    color: var(--color-heading); font-family: var(--font-ui); font-size: .9rem; white-space: nowrap;
    -webkit-tap-highlight-color: transparent;
}
.account-menu > a:hover,
.account-menu > a.is-active { background: var(--site-color-light); color: var(--brand); }

.account-menu a.account-menu__auth {
    margin-top: 4px; padding-top: 14px;
    border-top: 1px solid var(--glass-border);
    border-radius: 0 0 var(--radius) var(--radius);
    text-align: center;
    font-size: .82rem;
}
.account-menu a.account-menu__auth:hover { background: none; }
.account-menu a.account-menu__auth--in       { color: var(--site-color); }
.account-menu a.account-menu__auth--in:hover  { color: var(--site-color-dark); }
.account-menu a.account-menu__auth--out       { color: var(--action); }
.account-menu a.account-menu__auth--out:hover { color: var(--action-dark); }

.account-menu a.account-menu__auth--reg       { margin-top: 0; padding-top: 4px; border-top: 0; color: var(--site-color); }
.account-menu a.account-menu__auth--reg:hover { color: var(--site-color-dark); }

.burger { display: none; position: relative; width: 40px; height: 40px; flex: 0 0 auto;
    border: none; background: transparent; cursor: pointer; padding: 0; }
.burger span { position: absolute; left: 9px; right: 9px; height: 2px; border-radius: 2px;
    background: var(--color-heading); transition: transform .25s ease, opacity .2s ease; }
.burger span:nth-child(1) { top: 13px; }
.burger span:nth-child(2) { top: 19px; }
.burger span:nth-child(3) { top: 25px; }
.burger.is-active span:nth-child(1) { top: 19px; transform: rotate(45deg); }
.burger.is-active span:nth-child(2) { opacity: 0; }
.burger.is-active span:nth-child(3) { top: 19px; transform: rotate(-45deg); }

@media (max-width: 1200px) {
    .site-header__inner { gap: var(--space-3); }
    .floating-header__bar { gap: var(--space-3); }
    .header-actions { gap: var(--space-3); }

    .main-nav { gap: var(--space-3); }
    .menu-link { font-size: .9rem; }
}

@media (max-width: 1024px) {
    .burger { display: block; }

    .header-actions { margin-left: auto; }

    .site-header__inner, .floating-header__bar { position: relative; }

    .main-nav {
        display: flex;
        flex-direction: column; align-items: stretch; gap: 0;

        position: absolute; top: calc(100% - var(--space-1)); right: var(--container-pad); left: auto;
        width: 170px; max-width: calc(100vw - var(--space-4));
        margin: 0; padding: var(--space-2);
        background: var(--glass-bg-strong);
        border: 1px solid var(--glass-border);
        border-radius: var(--glass-radius);
        box-shadow: var(--glass-shadow);
        max-height: calc(100vh - 100% - var(--space-4)); overflow-x: hidden; overflow-y: auto;
        transform-origin: top right;
        transform: translateY(-6px) scale(.97);
        opacity: 0; visibility: hidden;
        transition: opacity   var(--anim-expand-dur) var(--anim-expand),
                    transform var(--anim-expand-dur) var(--anim-expand),
                    visibility 0s var(--anim-expand-dur);
    }
    .main-nav.is-open {
        opacity: 1; visibility: visible;
        transform: translateY(0) scale(1);
        transition: opacity   var(--anim-expand-dur) var(--anim-expand),
                    transform var(--anim-expand-dur) var(--anim-expand);
    }

    .floating-header__bar .main-nav { top: calc(100% + var(--space-2) + var(--space-1)); }

    .main-nav > * { opacity: 0; transform: translateX(12px); }
    .main-nav > .menu-link {
        transition: opacity   .3s var(--anim-expand),
                    transform .3s var(--anim-expand),
                    background-color var(--transition), color var(--transition);
    }
    .main-nav > .menu-drop {
        transition: opacity .3s var(--anim-expand), transform .3s var(--anim-expand);
    }
    .main-nav.is-open > * { opacity: 1; transform: none; }

    .main-nav.is-open > * {
        --stagger: calc(.06s + var(--i, 0) * .04s);
        transition-delay: var(--stagger), var(--stagger), 0s, 0s;
    }

    .main-nav .menu-link,
    .submenu a { -webkit-tap-highlight-color: transparent; }
    .main-nav > .menu-link,
    .menu-drop > .menu-link { padding: 12px 10px; border-radius: var(--radius); }
    .menu-drop > .menu-link { transition: background-color var(--transition), color var(--transition); }
    .main-nav > .menu-link::after { display: none; }

    .main-nav > .menu-link.is-active { background: var(--site-color-light); color: var(--brand); }
    .main-nav > .menu-link:hover,  .main-nav > .menu-link:active,
    .menu-drop > .menu-link:hover, .menu-drop > .menu-link:active,
    .menu-drop.is-open > .menu-link { background: var(--site-color-light); color: var(--brand); }

    .menu-drop { position: relative; z-index: 1; }
    .menu-drop::after { display: none; }
    .menu-drop > .menu-link { display: flex; justify-content: space-between; align-items: center; }

    .menu-drop > .menu-link::after { transition: transform var(--anim-expand-dur) var(--anim-expand); }

    .menu-drop:hover > .menu-link::after { transform: translateY(-2px) rotate(45deg); }
    .menu-drop.is-open > .menu-link::after,
    .menu-drop.is-open:hover > .menu-link::after { transform: translateY(0) rotate(225deg); }

    .submenu,
    .menu-drop:hover .submenu {
        position: static; left: auto; transform: none; z-index: auto;
        min-width: 0; margin: 0;
        display: block; max-height: 0; overflow: hidden;
        padding: 0 0 0 var(--space-4);
        background: transparent; border: none; box-shadow: none;
        visibility: hidden;
        transition: max-height var(--anim-expand-dur) var(--anim-expand),
                    padding    var(--anim-expand-dur) var(--anim-expand),
                    visibility 0s var(--anim-expand-dur);
    }
    .menu-drop.is-open .submenu,
    .menu-drop.is-open:hover .submenu {
        max-height: 220px;
        padding: var(--space-1) 0 0 var(--space-2);
        visibility: visible;
        transition: max-height var(--anim-expand-dur) var(--anim-expand),
                    padding    var(--anim-expand-dur) var(--anim-expand);
    }
    .submenu a {
        padding: 10px 10px; border-radius: var(--radius); font-size: .85rem;
        transition: background-color var(--transition), color var(--transition);
    }
    .submenu a:hover, .submenu a:active,
    .submenu a:focus-visible { background: var(--site-color-light); color: var(--brand); }
}

.form-group {
    margin-bottom: var(--space-3);
}

.form-label {
    display: inline-block;
    margin-bottom: var(--space-1);
    font-family: var(--font-ui);
    font-size: .9rem;
    color: var(--color-text-muted);
}

.form-control {
    display: block;
    width: 100%;
    padding: var(--space-2) var(--space-3);
    font-family: var(--font-ui);
    background-color: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    transition: border-color var(--transition), box-shadow var(--transition);
}
.form-control:focus {
    outline: none;
    border-color: var(--action);
    box-shadow: 0 0 0 3px var(--action-light);
}

.feedback { padding-block: 0; padding-inline: var(--layer-gap); }

.feedback-section { margin-block: var(--layer-gap); }

.feedback-grid { display: grid; grid-template-columns: 4fr 7fr; gap: var(--space-4); }
.feedback-aside { display: flex; flex-direction: column; gap: var(--layer-gap); }
.feedback-actions { margin-top: auto; display: flex; flex-direction: column; gap: var(--layer-gap); }
.feedback-fields { display: grid; grid-template-columns: 1fr 1fr; gap: var(--layer-gap); align-content: start; }
.feedback-fields .form-field-full { grid-column: 1 / -1; }

.feedback .form-header { margin: 0; }
.feedback-form__title { margin: 0; }
.feedback .form-header p { margin: var(--space-2) 0 0; color: var(--color-text-muted); }
.form-field { position: relative; }

.inputtext, .inputselect, .inputtextarea {
    display: block; width: 100%;
    padding: 8px var(--space-3);
    font-family: var(--font-ui); font-size: .9rem; color: var(--color-text);
    background-color: #fff;
    border: 1px solid var(--color-border); border-radius: var(--radius-lg);
    box-shadow: var(--glass-shadow-inset);
    transition: border-color var(--transition), box-shadow var(--transition), background-color var(--transition);
}
.inputtextarea { min-height: 118px; resize: vertical; line-height: 1.5; }
.inputtext::placeholder, .inputtextarea::placeholder { color: var(--color-text-muted); }
@media (pointer: coarse) {
    .inputtext, .inputselect, .inputtextarea { font-size: 16px; }
}

.inputtext:focus, .inputselect:focus, .inputtextarea:focus {
    outline: none;
    box-shadow: inset 0 2px 5px rgba(68, 88, 143, .8);
}

.form-field.is-invalid .inputtext,
.form-field.is-invalid .inputselect,
.form-field.is-invalid .inputtextarea,
.form-field.is-invalid .am-select__trigger {
    box-shadow: inset 0 2px 5px rgba(239, 90, 111, .8);
}

.form-field .error-message {
    display: grid;
    grid-template-rows: 0fr;
    margin-top: 0;
    margin-bottom: 0;
    opacity: 0;
    color: var(--color-danger);
    font-size: .82rem; line-height: 1.35;
    transition: grid-template-rows var(--anim-expand-dur) var(--anim-expand),
                margin-top         var(--anim-expand-dur) var(--anim-expand),
                opacity            var(--anim-expand-dur) var(--anim-expand);
}
.form-field .error-message > span { min-height: 0; overflow: hidden; padding: 0 2px; }
.form-field.is-invalid .error-message {
    grid-template-rows: 1fr;
    margin-top: 6px;
    opacity: 1;
}
.inputtext:disabled {
    background: var(--color-bg-soft); color: var(--color-text-muted);
    cursor: not-allowed; box-shadow: inset 0 2px 4px rgba(40, 51, 95, .16);
}

.inputselect {
    appearance: none; -webkit-appearance: none; cursor: pointer; padding-right: 42px;
    background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%2344588f%22%20stroke-width%3D%222.4%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M6%209.5%2012%2015.5%2018%209.5%22%2F%3E%3C%2Fsvg%3E");
    background-repeat: no-repeat; background-position: right 14px center; background-size: 18px;
}
.inputselect:invalid { color: var(--color-text-muted); }

.req-star {
    position: absolute; top: 8px; left: 8px; z-index: 2;
    color: var(--action); font-size: 1.05rem; font-weight: var(--fw-bold);
    line-height: 1; pointer-events: none;
}
.form-field:has(.inputtext:disabled) .req-star { display: none; }

.ff-zodiac-hint { margin: 0 0 var(--space-2); font-size: .78rem; color: var(--color-text-muted); }
.ff-zodiac { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.zc-chip { position: relative; cursor: pointer; }
.zc-chip input { position: absolute; opacity: 0; width: 0; height: 0; }
.zc-chip span {
    display: inline-flex; align-items: center; padding: 5px 12px; font-size: .8rem;
    border-radius: var(--radius-pill); border: 1px solid var(--glass-border);
    background: #fff; color: var(--color-heading); font-weight: var(--fw-medium);
    text-transform: capitalize; transition: border-color .15s, background .15s, color .15s;
}
.zc-chip:hover span { border-color: var(--brand); }
.zc-chip input:checked + span { border-color: var(--brand); background: var(--brand); color: #fff; }
.zc-chip input:focus-visible + span { outline: 2px solid var(--brand); outline-offset: 2px; }

.form-field--date .inputtext { padding-right: 42px; }
.form-field--date .feedback-form-control { position: relative; }

/* §k2 — свой placeholder-оверлей даты (нативный placeholder не анимируется) */
.form-field--date .field-ph {
    position: absolute; inset: 0;
    display: flex; align-items: center;
    padding: 8px var(--space-3);
    font-family: var(--font-ui); font-size: .9rem;
    color: var(--color-text-muted); pointer-events: none;
    transition: opacity var(--anim-expand-dur) var(--anim-expand);
}
.form-field--date .field-ph__text {
    position: absolute;
    transition: opacity var(--anim-expand-dur) var(--anim-expand),
                transform var(--anim-expand-dur) var(--anim-expand);
}
.form-field--date .field-ph__text--mask { opacity: 0; transform: translateY(.45em); }
.form-field--date .feedback-form-control:focus-within .field-ph__text--rest { opacity: 0; transform: translateY(-.45em); }
.form-field--date .feedback-form-control:focus-within .field-ph__text--mask { opacity: 1; transform: none; }
.form-field--date .feedback-form-control.is-filled .field-ph { opacity: 0; }

/* §k3 — оверлей контакта (текст динамический, меняется от сервиса) */
.form-field--contact .feedback-form-control { position: relative; }
.form-field--contact .field-ph {
    position: absolute; inset: 0;
    font-family: var(--font-ui); font-size: .9rem;
    color: var(--color-text-muted); pointer-events: none;
    transition: opacity var(--anim-expand-dur) var(--anim-expand);
}
.form-field--contact .field-ph__text {
    position: absolute; top: 50%; left: var(--space-3); right: var(--space-3);
    transform: translateY(-50%);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    opacity: 0;
    transition: opacity var(--anim-expand-dur) var(--anim-expand);
}
.form-field--contact .field-ph__text.is-current { opacity: 1; }
.form-field--contact .feedback-form-control.is-filled .field-ph { opacity: 0; }

.feedback-date-button {
    position: absolute; right: 6px; top: 50%; transform: translateY(-50%);
    display: flex; align-items: center; justify-content: center;
    width: 32px; height: 32px; padding: 0;
    border: 0; background: transparent; cursor: pointer;
    color: var(--site-color-dark); border-radius: var(--radius);
    transition: background var(--transition), color var(--transition);
}
.feedback-date-button:hover { background: var(--color-bg-soft); color: var(--site-color); }
.calendar-icon { width: 18px; height: 18px; pointer-events: none; }

.am-cal {
    position: absolute; z-index: 50; top: calc(100% + 8px); right: 0;
    width: 268px; max-width: calc(100vw - 32px); padding: var(--space-2h);
    background: var(--glass-bg-frost);
    -webkit-backdrop-filter: blur(var(--glass-blur)); backdrop-filter: blur(var(--glass-blur));
    border: 1px solid var(--glass-border); border-radius: var(--glass-radius);
    box-shadow: var(--glass-shadow); color: var(--color-text);
    font-family: var(--font-ui);

    opacity: 0; visibility: hidden;
    transform: translateY(-6px) scale(.98); transform-origin: top right;
    transition: opacity var(--anim-expand-dur) var(--anim-expand),
                transform var(--anim-expand-dur) var(--anim-expand),
                visibility 0s var(--anim-expand-dur);
}
.am-cal:not([hidden]) {
    opacity: 1; visibility: visible; transform: none;
    transition: opacity var(--anim-expand-dur) var(--anim-expand),
                transform var(--anim-expand-dur) var(--anim-expand);
}
.am-cal__head { display: flex; align-items: center; gap: var(--space-2); margin-bottom: var(--space-2); }
.am-cal__title { flex: 1; display: flex; justify-content: center; gap: 6px; }
.am-cal__pick {
    border: 0; background: transparent; cursor: pointer; font: inherit; font-weight: var(--fw-semibold);
    color: var(--color-text); padding: 4px 8px; border-radius: var(--radius); line-height: 1.1;
    transition: background var(--transition), color var(--transition);
}
.am-cal__pick:hover { background: var(--color-bg-soft); color: var(--brand); }
.am-cal__nav {
    flex: none; width: 28px; height: 28px; border: 0; cursor: pointer;
    background: transparent; color: var(--site-color-dark); border-radius: var(--radius);
    font-size: 1.25rem; line-height: 1; display: flex; align-items: center; justify-content: center;
    transition: background var(--transition), color var(--transition);
}
.am-cal__nav:hover { background: var(--color-bg-soft); color: var(--brand); }
.am-cal__dow { display: grid; grid-template-columns: repeat(7, 1fr); margin-bottom: 4px; }
.am-cal__dow span { text-align: center; font-size: .72rem; color: var(--color-text-muted); padding: 4px 0; }
.am-cal__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.am-cal__opts { display: grid; gap: 4px; }
.am-cal__opts--m { grid-template-columns: repeat(3, 1fr); }
.am-cal__opts--y { grid-template-columns: repeat(4, 1fr); max-height: 196px; overflow-y: auto; }
.am-cal__cell {
    border: 0; background: transparent; cursor: pointer; font: inherit; color: var(--color-text);
    height: 32px; border-radius: var(--radius); line-height: 1;
    display: flex; align-items: center; justify-content: center;
    transition: background var(--transition), color var(--transition), box-shadow var(--transition);
}
.am-cal__cell--empty { pointer-events: none; }
.am-cal__cell:not(.is-disabled):not(.is-selected):hover { background: var(--color-bg-soft); color: var(--brand); }
.am-cal__cell.is-today { box-shadow: inset 0 0 0 1.5px var(--action); color: var(--action-dark); font-weight: var(--fw-semibold); }
.am-cal__cell.is-selected { background: var(--brand); color: #fff; box-shadow: var(--shadow-brand); font-weight: var(--fw-semibold); }
.am-cal__cell.is-disabled { color: var(--color-text-muted); opacity: .4; cursor: not-allowed; }
.am-cal__opts--y .am-cal__cell { height: 30px; font-size: .88rem; }

/* §k4 — кастомное поле времени (свой ролик-карусель вместо type=time) */
.am-time { position: relative; }
.am-time input { padding-right: 42px; }
.am-time__btn {
    position: absolute; right: 6px; top: 50%; transform: translateY(-50%);
    display: flex; align-items: center; justify-content: center;
    width: 32px; height: 32px; padding: 0;
    border: 0; background: transparent; cursor: pointer;
    color: var(--site-color-dark); border-radius: var(--radius);
    transition: background var(--transition), color var(--transition);
}
.am-time__btn:hover { background: var(--color-bg-soft); color: var(--site-color); }
.am-time__btn svg { width: 18px; height: 18px; pointer-events: none; }

.am-time__pop {
    position: absolute; z-index: 50; top: calc(100% + 8px); right: 0;
    width: 188px; max-width: calc(100vw - 32px); padding: var(--space-2);
    background: var(--glass-bg-frost);
    -webkit-backdrop-filter: blur(var(--glass-blur)); backdrop-filter: blur(var(--glass-blur));
    border: 1px solid var(--glass-border); border-radius: var(--glass-radius);
    box-shadow: var(--glass-shadow); color: var(--color-text); font-family: var(--font-ui);

    opacity: 0; visibility: hidden;
    transform: translateY(-6px) scale(.98); transform-origin: top right;
    transition: opacity var(--anim-expand-dur) var(--anim-expand),
                transform var(--anim-expand-dur) var(--anim-expand),
                visibility 0s var(--anim-expand-dur);
}
.am-time__pop:not([hidden]) {
    opacity: 1; visibility: visible; transform: none;
    transition: opacity var(--anim-expand-dur) var(--anim-expand),
                transform var(--anim-expand-dur) var(--anim-expand);
}
.am-time__cols { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-1); }
.am-time__lbl { text-align: center; font-size: .68rem; color: var(--color-text-muted); padding: 0 0 4px; }

/* §k5 — колесо-ролик времени (iOS-пикер, окно на 5 строк ROW 32×5=160) */
.am-time__wheel {
    position: relative; height: 160px; overflow: hidden;
    -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 34%, #000 66%, transparent 100%);
            mask-image: linear-gradient(180deg, transparent 0, #000 34%, #000 66%, transparent 100%);
}

.am-time__band {
    position: absolute; left: 4px; right: 4px; top: 64px; height: 32px; z-index: 0;
    border-radius: var(--radius); background: var(--site-color-light); pointer-events: none;
}
.am-time__scroll {
    position: relative; z-index: 1;
    height: 100%; overflow-y: scroll; overscroll-behavior: contain; touch-action: pan-y;
    scrollbar-width: none; -ms-overflow-style: none;
}
.am-time__scroll::-webkit-scrollbar { width: 0; height: 0; display: none; }
.am-time__opt {
    height: 32px; display: flex; align-items: center; justify-content: center;
    font-size: .95rem; color: var(--color-text-muted); cursor: pointer;
    transition: color var(--transition), transform var(--transition), opacity var(--transition);
}
.am-time__opt:hover { color: var(--brand); }
.am-time__opt--empty { letter-spacing: 2px; }

.am-time__opt.is-selected { color: var(--site-color-dark); font-weight: var(--fw-semibold); transform: scale(1.14); }

.checkbox-label { display: block; position: relative; cursor: pointer; }
.checkbox-input { position: absolute; opacity: 0; width: 0; height: 0; }
.checkbox-text {
    position: relative; display: block; padding-left: 30px;
    line-height: 1.45; font-size: .88rem; color: var(--color-text-muted);
}
.checkbox-text::before {
    content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%);
    width: 24px; height: 16px; border-radius: var(--radius-pill);
    background: var(--color-border);
    box-shadow: inset 0 1px 2px var(--color-navy-50);
    transition: background-color var(--anim-expand-dur) var(--anim-expand);
}
.checkbox-text::after {
    content: ""; position: absolute; left: 2px; top: 50%; transform: translateX(0) translateY(-50%);
    width: 12px; height: 12px; border-radius: 50%;
    background: linear-gradient(180deg, #ffffff 55%, #e7ecf5);
    box-shadow: 0 1px 2px rgba(40, 51, 95, .35),
                0 2px 5px rgba(40, 51, 95, .22),
                inset 0 -1px 1px rgba(40, 51, 95, .18);
    transition: transform var(--anim-expand-dur) var(--anim-expand);
}
.checkbox-input:checked + .checkbox-text::before { background: var(--brand); }
.checkbox-input:checked + .checkbox-text::after { transform: translateX(8px) translateY(-50%); }
.checkbox-input:focus-visible + .checkbox-text::before {
    box-shadow: inset 0 1px 2px rgba(40, 51, 95, .18), 0 0 0 3px var(--action-light);
}

.checkbox-text a { color: var(--site-color-dark); font-weight: var(--fw-semibold); }
.checkbox-text a:hover { color: var(--color-heading); }

/* §k6 — радио в стиле нашего чекбокса, но круглое */
.radio-label { display: block; position: relative; cursor: pointer; }
.radio-input { position: absolute; opacity: 0; width: 0; height: 0; }
.radio-text {
    position: relative; display: block; padding-left: 25px;
    line-height: 1.45; font-size: .88rem; color: var(--color-text-muted);
}
.radio-text::before {
    content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%);
    width: 16px; height: 16px; border-radius: 50%;
    background: var(--color-border);
    box-shadow: inset 0 1px 2px var(--color-navy-50);
    transition: background-color var(--anim-expand-dur) var(--anim-expand);
}
.radio-text::after {
    content: ""; position: absolute; left: 3px; top: 50%; transform: translateY(-50%) scale(0);
    width: 10px; height: 10px; border-radius: 50%;
    background: linear-gradient(180deg, #ffffff 55%, #e7ecf5);
    box-shadow: 0 1px 2px rgba(40, 51, 95, .35),
                inset 0 -1px 1px rgba(40, 51, 95, .18);
    transition: transform var(--anim-expand-dur) var(--anim-expand);
}
.radio-input:checked + .radio-text::before { background: var(--brand); }
.radio-input:checked + .radio-text::after { transform: translateY(-50%) scale(1); }
.radio-input:focus-visible + .radio-text::before {
    box-shadow: inset 0 1px 2px rgba(40, 51, 95, .18), 0 0 0 3px var(--action-light);
}

.am-select { position: relative; }
.am-select__trigger {
    display: flex; align-items: center; justify-content: space-between; gap: var(--space-2);
    width: 100%; padding: 8px var(--space-3); cursor: pointer; text-align: left;
    font-family: var(--font-ui); font-size: .9rem; color: var(--color-text);
    background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius-lg);
    box-shadow: var(--glass-shadow-inset);
    transition: border-color var(--transition), box-shadow var(--transition);
}
.am-select__trigger:focus-visible,
.am-select.is-open .am-select__trigger {
    outline: none; box-shadow: inset 0 2px 5px rgba(68, 88, 143, .6);
}
.am-select__value.is-placeholder { color: var(--color-text-muted); }

.am-select__arrow {
    flex: 0 0 auto; width: 9px; height: 9px; margin-right: 8px;
    color: var(--site-color-dark);
    border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    transform-origin: 68% 68%;
    transition: transform var(--transition);
}
.am-select.is-open .am-select__arrow { transform: rotate(225deg); }

/* §k7 — меню am-select порталится в body, координаты ставит JS (position:fixed) */
.am-select__menu {
    position: fixed; top: 0; left: 0;
    width: max-content;
    margin: 0; list-style: none; padding: 4px;
    background: var(--glass-bg-strong); border: 1px solid var(--glass-border);
    border-radius: var(--radius-lg); box-shadow: var(--glass-shadow), var(--glass-highlight);
    opacity: 0; visibility: hidden; transform: translateY(6px);
    transition: opacity var(--transition), transform var(--transition), visibility var(--transition);
    z-index: var(--z-overlay);
    max-height: 288px; overflow-y: auto; overscroll-behavior: contain;
    scrollbar-width: thin; scrollbar-color: var(--color-border) transparent;
}
.am-select__menu.is-open { opacity: 1; visibility: visible; transform: translateY(0); }

.am-select__menu::-webkit-scrollbar { width: 10px; }
.am-select__menu::-webkit-scrollbar-track { background: transparent; }
.am-select__menu::-webkit-scrollbar-thumb {
    background: var(--color-border); border-radius: var(--radius-pill);
    border: 3px solid transparent; background-clip: padding-box;
}
.am-select__menu::-webkit-scrollbar-thumb:hover { background: var(--site-color-dark); background-clip: padding-box; }
.am-select__option {
    padding: 6px 12px; border-radius: var(--radius); cursor: pointer; white-space: nowrap;
    font-family: var(--font-ui); font-size: .88rem; color: var(--color-heading);
    transition: background-color var(--transition), color var(--transition);
}
.am-select__option:hover,
.am-select__option.is-active { background: var(--site-color-light); color: var(--site-color-dark); }
.am-select__option + .am-select__option { margin-top: 2px; }

.am-select__search {
    position: sticky; top: 0; z-index: 1;
    padding: 2px 2px 6px; margin-bottom: 2px;
    background: var(--glass-bg-strong);
}
.am-select__search-input {
    width: 100%; box-sizing: border-box;
    padding: 7px 12px; border: 1px solid var(--color-border);
    border-radius: var(--radius); background: #fff;
    font-family: var(--font-ui); font-size: .88rem; color: var(--color-heading);
    outline: none;
}
.am-select__search-input:focus { border-color: var(--brand); }

@media (max-width: 768px) {
    .am-select__search-input { font-size: 16px; }
}
.am-select__option.is-hidden { display: none; }

.am-select__menu--search,
.am-select__menu--groups { box-sizing: border-box; }
.am-select__menu--search .am-select__option,
.am-select__menu--groups .am-select__option { white-space: normal; }

.am-select__group {
    display: flex; align-items: center;
    padding: 8px 12px 8px; margin-top: 2px;
    font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em;
    color: var(--color-text-muted); cursor: pointer; user-select: none;
    border-radius: var(--radius); transition: background-color var(--transition);
}
.am-select__group:hover { background: var(--site-color-light); }
.am-select__group:first-child { margin-top: 0; }
.am-select__group.is-hidden { display: none; }
.am-select__group-dot { width: 8px; height: 8px; border-radius: 50%; margin-right: 6px; flex: 0 0 auto; background: var(--color-club, #d4a23c); }
.am-select__group-chevron {
    margin-left: auto; width: 6px; height: 6px; flex: 0 0 auto;
    border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
    transform: rotate(45deg); transition: transform .2s ease; opacity: .7;
}
.am-select__group.is-collapsed .am-select__group-chevron { transform: rotate(-45deg); }

.am-select__group-body { display: grid; grid-template-rows: 1fr; transition: grid-template-rows .25s ease; }
.am-select__group-body.is-collapsed { grid-template-rows: 0fr; }

.am-select__menu.is-searching .am-select__group-body { grid-template-rows: 1fr; transition: none; }
.am-select__group-body.is-hidden { display: none; }
.am-select__group-list { min-height: 0; overflow: hidden; margin: 0; padding: 0; list-style: none; }
@media (prefers-reduced-motion: reduce) { .am-select__group-body { transition: none; } }

.am-select__option.suit-red  .am-select__suit,
.am-select__value.suit-red   .am-select__suit { color: #c0392b; }
.am-select__option.suit-black .am-select__suit,
.am-select__value.suit-black  .am-select__suit { color: var(--color-heading); }
.am-select__native { display: none; }

.form-buttons { display: flex; align-items: center; gap: var(--space-3); flex-wrap: wrap; margin-top: var(--space-2); }
.btn-submit {
    background-color: var(--brand);
    background-image: var(--btn-sheen);
    color: var(--site-color-contrast);
    box-shadow: var(--shadow-brand);
}
.btn-submit:hover {
    background-color: var(--brand-dark); color: var(--site-color-contrast);
    box-shadow: var(--shadow-brand-hover);
}
.form-note { margin-left: auto; font-size: .8rem; color: var(--color-text-muted); }

.starrequired, .form-required { color: var(--action); font-size: 1.15rem; font-weight: var(--fw-bold); line-height: 0; vertical-align: -2px; }

.error-message { color: var(--action-dark); font-size: .82rem; margin-bottom: 6px; }
.form-errors-general { margin-bottom: var(--space-3); }

.am-honeypot {
    position: absolute; left: -9999px; top: auto;
    width: 1px; height: 1px; overflow: hidden;
}

@media (max-width: 1024px) {
    .feedback-grid { grid-template-columns: 1fr; }
    .feedback-aside { display: contents; }
    .feedback .form-header { order: 1; }
    .feedback .feedback-fields { order: 2; }
    .feedback-actions { order: 3; margin-top: 0; }
}
@media (max-width: 560px) {
    .feedback-fields { grid-template-columns: 1fr; }
    .form-note { margin-left: 0; order: 3; width: 100%; }

    .form-buttons .btn { flex: 0 0 auto; }
}

.badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-1);
    padding: 5px var(--space-3) 7px;
    font-family: var(--font-ui);
    font-size: .75rem;
    font-weight: var(--fw-medium);
    line-height: 1;
    border-radius: var(--radius-pill);
    background-color: var(--site-color-light);
    color: var(--site-color-dark);
    box-shadow: var(--glass-shadow);
}
.alert {
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius);
    border: 1px solid var(--color-border);
    margin-bottom: var(--space-3);
}
.alert--success { background: #eaf6ea; border-color: #cfe8cf; color: var(--color-success); }
.alert--danger  { background: #fbeae8; border-color: #f3cfc9; color: var(--color-danger); }

.hero {
    position: relative;

    width: 100%;
}

.hero + .content-layer {
    position: relative;
    z-index: 2;
    margin-top: calc(var(--space-2) * -1);
}

.hero__media {
    position: relative;
    width: 100%;

}

.hero__img {
    display: block;
    width: 100%;
    height: auto;
    z-index: 1;
}

.hero__scrim {
    position: absolute;
    inset: 0;
    z-index: 2;
    background: var(--hero-scrim, none);
    pointer-events: none;
}

.hero--home { --hero-scrim: none; }
.hero--home .hero__img {
    -webkit-mask:
        linear-gradient(to right,  #000 50%, rgba(0, 0, 0, .55) 80%, rgba(0, 0, 0, .1) 90%, transparent 100%),
        linear-gradient(to bottom, #000 96%, transparent 100%),
        linear-gradient(to left,   #000 50%, rgba(0, 0, 0, .55) 70%, rgba(0, 0, 0, .1) 90%, transparent 100%),
        linear-gradient(to top,    #000 78%, rgba(0, 0, 0, .84) 84%, rgba(0, 0, 0, .64) 88%, rgba(0, 0, 0, .42) 92%, rgba(0, 0, 0, .22) 96%, rgba(0, 0, 0, .15) 100%);
    -webkit-mask-composite: source-in;
    mask:
        linear-gradient(to right,  #000 50%, rgba(0, 0, 0, .55) 80%, rgba(0, 0, 0, .1) 90%, transparent 100%),
        linear-gradient(to bottom, #000 96%, transparent 100%),
        linear-gradient(to left,   #000 50%, rgba(0, 0, 0, .55) 70%, rgba(0, 0, 0, .1) 90%, transparent 100%),
        linear-gradient(to top,    #000 78%, rgba(0, 0, 0, .84) 84%, rgba(0, 0, 0, .64) 88%, rgba(0, 0, 0, .42) 92%, rgba(0, 0, 0, .22) 96%, rgba(0, 0, 0, .15) 100%);
    mask-composite: intersect;
}

.hero {
    --hero-header-h: 92px;
}
.hero__content {
    position: absolute;
    inset: 0;
    top: var(--hero-header-h);
    z-index: 5;
    display: flex;
    align-items: center;
}

.hero__inner {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
}

.hero__text {
    max-width: 36%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-3);
}

.hero__text .badge {
    text-transform: uppercase;
    letter-spacing: .08em;
}

.hero__cards {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-3);
    flex: 0 0 auto;
}

.hero__card {
    width: 396px;
    display: flex;
}

.hero__card .glass__body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 100%;
    gap: var(--space-2);
}

.hero__card .badge,
.hero__card .btn { align-self: flex-start; }

.hero__card .glass--hover:hover { transform: none; }

.card-img {
    display: block;
    height: auto;
    flex: 0 0 auto;
    border-radius: 3px;
    box-shadow: var(--card-shadow);
}

.card-day { position: relative; display: block; min-height: 232px; }
/* §k8 — .card-day для специфичности; вся плашка-кнопка, разворот по z-index */
.card-day .card-day__panel {
    position: absolute; top: 0; right: 0; width: 100%;
    z-index: 0; cursor: pointer;
    transition: width var(--anim-expand-dur) var(--anim-expand),
                box-shadow var(--anim-expand-dur) var(--anim-expand);
}
.card-day .glass__body { display: flex; flex-direction: column; gap: var(--space-2); }

.card-day__head { display: flex; align-items: center; gap: var(--space-2h); }
.card-day__date { font-family: var(--font-ui); font-size: .8rem; color: var(--color-text-muted); }
.card-day__suit { font-size: 1.4em; line-height: 1; vertical-align: -0.04em; }
.card-day__suit.is-red { color: var(--action); }
.card-day__row { display: flex; gap: var(--space-3); align-items: flex-start; }
.card-day__img { width: 75px; }
.card-day__info { min-width: 0; }
.card-day__title { margin-bottom: var(--space-1); }
.card-day__text {
    margin: 0; color: var(--color-text);
    font-size: 14px;
    max-height: 8.2em; overflow: hidden;

    -webkit-mask-image: linear-gradient(180deg, #000 68%, transparent);
            mask-image: linear-gradient(180deg, #000 68%, transparent);
    transition: max-height var(--anim-expand-dur) var(--anim-expand);
}

@keyframes card-day-text-fade {
    0%   { opacity: 1; }
    30%  { opacity: 0; }
    80%  { opacity: 0; }
    100% { opacity: 1; }
}
.card-day.is-morphing .card-day__text {
    animation: card-day-text-fade var(--anim-expand-dur) var(--anim-expand);
}

.card-day .card-day__loader {
    position: absolute; top: 50%; left: 50%;
    translate: -50% -50%;
    opacity: 0; pointer-events: none;
}
@keyframes card-day-loader-fade {
    0%   { opacity: 0; }
    35%  { opacity: 1; }
    78%  { opacity: 1; }
    100% { opacity: 0; }
}
.card-day.is-morphing .card-day__loader {

    animation: am-loader-spin .9s linear infinite,
               card-day-loader-fade var(--anim-expand-dur) var(--anim-expand);
}

@keyframes card-day-text-fade-out {
    0%   { opacity: 1; }
    21%  { opacity: 0; }
    86%  { opacity: 0; }
    100% { opacity: 1; }
}
.card-day.is-morphing--out .card-day__text {
    animation: card-day-text-fade-out calc(var(--anim-expand-dur) * 1.4) var(--anim-expand);
}
@keyframes card-day-loader-fade-out {
    0%   { opacity: 0; }
    25%  { opacity: 1; }
    75%  { opacity: 1; }
    100% { opacity: 0; }
}
.card-day.is-morphing--out .card-day__loader {
    animation: am-loader-spin .9s linear infinite,
               card-day-loader-fade-out calc(var(--anim-expand-dur) * 1.4) var(--anim-expand);
}

.card-day__toggle {
    align-self: flex-start;
    padding: 0; border: 0; background: none; cursor: pointer;
    font-family: var(--font-ui); font-size: .875rem; font-weight: var(--fw-medium);
    color: var(--site-color-dark);
    transition: color var(--transition);
}
.card-day__panel:hover .card-day__toggle { color: var(--brand-dark); }

.card-day.is-expanded .card-day__panel {
    box-shadow: var(--glass-shadow-hover), var(--glass-highlight);
}
.card-day.is-expanded .card-day__text {
    max-height: 60em;
    -webkit-mask-image: none; mask-image: none;
}

@media (min-width: 1181px) {
    .card-day.is-expanded .card-day__panel { width: 132%; }
}

.sub { position: relative; display: block; height: 220px; }
.sub .sub__panel {
    position: absolute; top: 0; left: 0; right: 0; min-height: 100%;
    cursor: pointer; z-index: 0;
    transition: box-shadow var(--anim-expand-dur) var(--anim-expand);
}
.sub.is-expanded .sub__panel {
    box-shadow: var(--glass-shadow-hover), var(--glass-highlight);
}
.sub .glass__body { display: flex; flex-direction: column; gap: var(--space-2); }
.sub__head { display: flex; align-items: flex-start; gap: var(--space-3); }
.sub__icon {
    width: 46px; height: 46px; flex: 0 0 auto;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 50%;
    background: var(--brand); color: #fff;
}
.sub__ic {
    width: 28px; height: 28px; display: block;
    fill: currentColor;
}
.sub__meta { flex: 1 1 auto; min-width: 0; }
.sub__titlerow { display: flex; align-items: center; gap: var(--space-2); }
.sub__title { font-family: var(--font-heading); font-size: 1.15rem; margin: 0; }
.sub__badge {
    display: none;
    padding: 2px 9px 3px; border-radius: var(--radius-pill);
    font-family: var(--font-ui); font-size: .7rem; font-weight: var(--fw-medium);
    background: var(--color-club); color: #fff;
}
.sub__status { display: flex; align-items: center; gap: 8px; margin: 4px 0 0;
    font-family: var(--font-ui); font-size: .85rem; color: var(--color-text-muted); }
.sub__dot {
    --dot: var(--color-text-muted);
    width: 6px; height: 6px; margin: 0 3px; border-radius: 50%; flex: 0 0 auto;
    background: var(--dot); box-shadow: 0 0 0 2.5px color-mix(in srgb, var(--dot) 22%, transparent);
}
.sub__level { margin: 0; font-family: var(--font-ui); font-size: .85rem; color: var(--color-text-muted); }

.sub__note { margin: 2px 0 0; font-size: .9rem; line-height: 1.4; color: var(--color-text);
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
    min-height: 2.5em; }
.sub__cta { align-self: flex-start; margin-top: 2px; border-radius: var(--radius-pill); }

.sub__extra { display: flex; flex-direction: column; gap: var(--space-2);
    max-height: 0; overflow: hidden;
    margin-top: calc(var(--space-2) * -1);
    transition: max-height var(--anim-expand-dur) var(--anim-expand); }
.sub.is-expanded .sub__extra { max-height: 440px; }
.sub__extra-text { margin: 0; font-size: .9rem; color: var(--color-text); }
.sub__upsell { font-size: .9rem; color: var(--site-color-dark); text-decoration: none; }
.sub__upsell:hover { color: var(--brand); text-decoration: underline; }
.sub__more { align-self: flex-start; font-family: var(--font-ui); font-size: .8rem;
    color: var(--site-color-dark); text-decoration: underline; text-underline-offset: 3px; }
.sub__more:hover { color: var(--brand); }

.sub__panel:hover .sub__cta.btn--coral { background-color: var(--action-dark); }
.sub__panel:hover .sub__cta.btn--brand { background-color: var(--brand-dark); }

.sub__plans { display: flex; flex-direction: column; gap: var(--space-2);
    margin-top: var(--space-4); }
.sub__plan {
    display: flex; flex-direction: column; gap: 6px;
    padding: var(--space-3);
    background: #fff; border: 1px solid var(--glass-border); border-radius: var(--radius);

    box-shadow: var(--glass-shadow), var(--glass-highlight);
}
.sub__plan--best {
    border-color: var(--color-club);
    box-shadow: 0 0 0 1px var(--color-club), var(--glass-shadow), var(--glass-highlight);
}
.sub__plan-top { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-2); }
.sub__plan-name { font-family: var(--font-heading); font-size: .95rem; color: var(--color-heading); }
.sub__plan-tag { margin-left: 6px; padding: 1px 7px 2px; border-radius: var(--radius-pill);
    font-family: var(--font-ui); font-size: .62rem; background: var(--color-club); color: #fff; vertical-align: middle; }
.sub__plan-price { font-family: var(--font-ui); font-weight: var(--fw-bold); color: var(--color-heading); white-space: nowrap; }
.sub__plan-desc { margin: 0; font-size: .8rem; line-height: 1.4; color: var(--color-text-muted); }
.sub__plan .sub__buy { align-self: stretch; margin-top: 4px; }

.sub--none .sub__icon { background: var(--action); }

.sub--calc .sub__panel { background: var(--site-color-light); }
.sub--calc .sub__icon { background: var(--brand); }
.sub--calc .sub__dot { --dot: var(--color-success); }

.sub--club .sub__panel {
    background: var(--panel-dark);
    border-color: var(--hairline-on-dark);
    box-shadow: var(--glass-shadow), var(--glass-highlight-dark);
}
.sub--club.is-expanded .sub__panel { box-shadow: var(--glass-shadow-hover), var(--glass-highlight-dark); }
.sub--club .sub__title { color: #fff; }
.sub--club .sub__icon { background: var(--color-club); }
.sub--club .sub__status,
.sub--club .sub__level { color: var(--text-on-dark); }
.sub--club .sub__extra-text,
.sub--club .sub__note { color: var(--text-on-dark-strong); }
.sub--club .sub__dot { --dot: var(--color-success); }
.sub--club .sub__badge { display: inline-flex; }
.sub--club .sub__more,
.sub--club .sub__upsell { color: var(--text-on-dark); }

.hero__title {
    font-family: var(--font-heading);
    font-size: clamp(2.25rem, 4.4vw, 3.5rem);
    line-height: 1.04;
    color: var(--color-heading);
    margin: 0;
}

.hero__title span { display: block; }

.hero__tagline {
    font-size: clamp(1.15rem, 1.8vw, 1.5rem);
    line-height: 1.25;
    color: var(--site-color-dark);
    margin: 0;
}

.hero__rule { display: inline-flex; align-items: center; gap: 12px; }
.hero__rule::before {
    content: ""; width: 48px; height: 2px; border-radius: 2px;
    background: var(--brand);
}
.hero__rule::after {
    content: ""; width: 8px; height: 8px;
    background-color: var(--brand);
    border-right: 2px solid var(--brand); border-bottom: 2px solid var(--brand);
    transform: rotate(45deg);
}

.hero__lead {
    color: var(--color-text);
    margin: 0;
}

.hero__cta {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: fit-content;
    gap: var(--space-3);
    margin-top: var(--space-3);
}

@media (max-width: 1280px) {
    .hero__card { width: 356px; }
    .hero__cards { gap: var(--space-2); }
    .hero__card .glass__body { gap: var(--space-2); padding: var(--space-3); }
    .card-day { min-height: 0; }
    .card-day__img { width: 64px; }
    .card-day__text { font-size: 13px; max-height: 6.8em; }

    .hero__title { font-size: clamp(2rem, 3.9vw, 3rem); }
    .hero__tagline { font-size: clamp(1.05rem, 1.6vw, 1.35rem); }
    .hero__cta { margin-top: var(--space-2); gap: var(--space-2); }
}

@media (max-width: 1180px) {

    .hero { --hero-banner-h: clamp(520px, 22vw + 360px, 620px); }
    .hero__img {
        height: var(--hero-banner-h);
        object-fit: cover;
        object-position: -13% center;
    }

    .hero__scrim { bottom: auto; height: var(--hero-banner-h); }

    .hero__content { position: static; top: auto; display: block; }
    .hero__inner { display: block; }

    .hero__text {
        position: absolute;

        top: calc((var(--hero-header-h) + var(--hero-banner-h)) / 2); transform: translateY(-50%);
        left: var(--container-pad);
        width: 50%; max-width: calc(50% - var(--container-pad));
        z-index: 5;
    }
    .hero__cta { flex-direction: column; align-items: flex-start; }

    /* §k9 — карты ПОД баннером в ряд, растут вниз независимо (без stretch) */
    .hero__cards { position: relative; flex-direction: row; align-items: flex-start; margin-top: calc(var(--space-3) * -1);
        z-index: 4;}

    .hero__card { display: flex; flex: 1 1 0; width: auto; flex-direction: column; }

    .card-day, .sub { height: auto; min-height: 222px; }
    .card-day .card-day__panel,
    .sub .sub__panel { position: relative; inset: auto; width: auto; flex: 1 1 auto; }

    .card-day .card-day__loader { display: none; }
    .card-day.is-morphing .card-day__text,
    .card-day.is-morphing--out .card-day__text { animation: none; }

    .container .trust { margin-top: var(--space-3); }
}

@media (max-width: 1180px) {
    .hero--home .hero__img {
        -webkit-mask:
            linear-gradient(to bottom, #000 96%, transparent 100%),
            linear-gradient(to left,   #000 44%, rgba(0, 0, 0, .78) 60%, rgba(0, 0, 0, .55) 70%, rgba(0, 0, 0, .3) 80%, rgba(0, 0, 0, .1) 90%, rgba(0, 0, 0, .05) 94%, transparent 100%),
            linear-gradient(to top,    #000 78%, rgba(0, 0, 0, .84) 84%, rgba(0, 0, 0, .64) 88%, rgba(0, 0, 0, .42) 92%, rgba(0, 0, 0, .22) 96%, rgba(0, 0, 0, .15) 100%);
        -webkit-mask-composite: source-in;
        mask:
            linear-gradient(to bottom, #000 96%, transparent 100%),
            linear-gradient(to left,   #000 44%, rgba(0, 0, 0, .78) 60%, rgba(0, 0, 0, .55) 70%, rgba(0, 0, 0, .3) 80%, rgba(0, 0, 0, .1) 90%, rgba(0, 0, 0, .05) 94%, transparent 100%),
            linear-gradient(to top,    #000 78%, rgba(0, 0, 0, .84) 84%, rgba(0, 0, 0, .64) 88%, rgba(0, 0, 0, .42) 92%, rgba(0, 0, 0, .22) 96%, rgba(0, 0, 0, .15) 100%);
        mask-composite: intersect;
    }
}

@media (max-width: 768px) {
    .hero__img { object-position: 15%; }
    .hero__text {
        width: 55%; max-width: calc(55% - var(--container-pad));

        top: calc(var(--hero-header-h) + var(--space-3)); transform: none;
    }
    .hero__cta { flex-direction: column; align-items: stretch; }
    .hero__cta .btn { width: 100%; }
    .hero__cta .btn--lg { padding: 11px 20px 13px; font-size: .9rem; }
    .hero__cards { flex-direction: column; }
    .hero__card { width: 100%; flex: 0 0 auto; }

    .card-day, .sub { min-height: 0; }
}

@media (max-width: 580px) {
    .hero__img { object-position: 25%; }
}
@media (max-width: 540px) {
    .hero__text { width: 60%; max-width: calc(60% - var(--container-pad)); }
}
@media (max-width: 500px) {
    .hero__img { object-position: 30%; }
}

@media (max-width: 480px) {
    .hero__title { font-size: clamp(1.6rem, 7.5vw, 2rem); }
    .hero__tagline { font-size: clamp(.95rem, 3.8vw, 1.1rem); }
    .hero__cta .btn--lg { padding: 10px 18px 12px; font-size: .85rem; }
    .hero__lead { font-size: 0.95rem; }
}
@media (max-width: 450px) {
    .hero__img { object-position: 37%; }
}

@media (max-width: 400px) {
    .hero { --hero-header-h: 74px; }
}

.trust {
    position: relative; z-index: 4;
    display: flex; flex-wrap: wrap;
    margin-top: calc(var(--space-4) * -1);
    padding: var(--space-3) var(--space-3);
    background: var(--panel-dark);
    border: 1px solid var(--hairline-on-dark);
    border-radius: var(--glass-radius);
    box-shadow: var(--glass-shadow), var(--glass-highlight-dark);
}
.trust__item {
    flex: 1 1 0; min-width: 0;
    display: flex; flex-direction: column; align-items: center; gap: var(--space-1);

    text-align: center; padding-inline: clamp(6px, 1.6vw, 24px);
    position: relative;
}

.trust__item + .trust__item::before {
    content: ""; position: absolute; left: 0; top: 10%; bottom: 10%;
    width: 1px; background: var(--hairline-on-dark);
}
.trust__num {
    font-family: var(--font-heading); font-weight: var(--fw-bold);
    font-size: clamp(1.6rem, 2.4vw, 2rem); line-height: 1;
    color: var(--site-color-contrast);
}
.trust__label {

    font-family: var(--font-ui); font-size: clamp(.78rem, .55rem + .55vw, .9rem); line-height: 1.3;
    color: var(--text-on-dark);
}

@media (max-width: 768px) {
    .trust { max-width: 600px; margin-inline: auto; }
    .trust__item { flex: 1 1 30%; padding-block: var(--space-3); }
    .trust__item:nth-child(4)::before { display: none; }
}

.calcs__inner { padding: var(--space-5); }

.calcs__head {
    position: relative;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: var(--space-3) var(--space-4);
    margin-bottom: var(--space-5);
}
.calcs__title { margin: 0; grid-column: 1; }

.calcs__filter {
    grid-column: 2;
    display: inline-grid; grid-auto-flow: column; grid-auto-columns: 1fr;
    gap: var(--space-2);
}

.calcs__tab--locked,
.calcs__tab--locked:hover {
    background-color: var(--color-bg-soft);
    background-image: none;
    color: var(--color-text-muted);
    border-color: var(--color-border);
    box-shadow: none;
    cursor: not-allowed;
}

@media (max-width: 640px) {
    .calcs__head { grid-template-columns: 1fr; }
    .calcs__filter { grid-column: 1; justify-self: center; }
}

.calcs__edit {
    grid-column: 3; justify-self: end;
    position: relative;
    width: 40px; height: 40px; padding: 0; border-radius: 50%; cursor: pointer;
    background: var(--glass-bg-strong); border: 1px solid var(--glass-border);
    box-shadow: var(--glass-shadow); color: var(--site-color-dark);
    transition: color var(--transition), background-color var(--transition),
                border-color var(--transition), box-shadow var(--transition),
                opacity .2s ease, visibility .2s ease;
}

.calcs__edit.is-off { opacity: 0; visibility: hidden; pointer-events: none; }

.calcs__edit svg {
    position: absolute; top: 50%; left: 50%; margin: -9px 0 0 -9px;
    width: 18px; height: 18px; fill: none;
    stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
}
.calcs__edit:hover { color: var(--brand); box-shadow: var(--glass-shadow-hover); }

.calcs__edit[aria-pressed="true"] {
    background: var(--brand); color: var(--site-color-contrast); border-color: var(--brand);
    box-shadow: var(--shadow-brand);
}
.calcs__edit[aria-pressed="true"]:hover { background: var(--brand-dark); box-shadow: var(--shadow-brand-hover); }
@media (max-width: 640px) { .calcs__edit { position: absolute; top: 0; right: 0; } }

.calcs__cell { position: relative; }
.calc-del {
    position: absolute; top: -6px; left: calc(50% + 24px);
    width: 22px; height: 22px; padding: 0; border: 0; z-index: 2;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: var(--radius-pill); cursor: pointer; color: #fff;

    background-color: var(--action); background-image: var(--btn-sheen);
    box-shadow: 0 3px 8px rgba(239, 90, 111, .45), inset 0 1px 0 var(--color-white-45);

    opacity: 0; transform: scale(0); pointer-events: none;
    transition: opacity .2s ease, transform .32s cubic-bezier(.34, 1.56, .64, 1);
}

.calc-del::before { content: ""; position: absolute; inset: -11px; border-radius: 50%; }
.calc-del svg { width: 12px; height: 12px; fill: none; stroke: currentColor; stroke-width: 2.5; stroke-linecap: round; }
.calc-del:hover { background-color: var(--action-dark); box-shadow: 0 5px 12px rgba(239, 90, 111, .5), inset 0 1px 0 var(--color-white-45); }

.calcs__grid--fav.is-editing .calc-del {
    opacity: 1; transform: scale(1); pointer-events: auto;
    transition-delay: calc(var(--i, 0) * 22ms);
}
.calcs__grid--fav.is-editing .calc-del:active { transform: scale(.88); }

.calcs__cell--add { transition: opacity .25s ease, transform .32s cubic-bezier(.34, 1.56, .64, 1); }
.calcs__grid--fav.is-editing .calcs__cell--add { opacity: 0; transform: scale(.6); pointer-events: none; }

.calcs__grid--fav.is-editing .calcs__cell { cursor: grab; user-select: none; }
.calcs__grid--fav.is-editing .calcs__cell:active { cursor: grabbing; }
.calcs__grid--fav.is-editing .calc-item,
.calcs__grid--fav.is-editing .calc-item * { pointer-events: none; }

.calc-ghost { opacity: .35; }
.calc-chosen .calc-item__icon { box-shadow: var(--glass-shadow-hover); }

@keyframes calc-tile-in { from { opacity: 0; transform: scale(.6); } }
.calc-tile-in { animation: calc-tile-in var(--anim-expand-dur) var(--anim-expand); }

.calc-tile-out {
    opacity: 0; transform: scale(.6); pointer-events: none;
    transition: opacity .2s ease, transform .2s ease;
}

.calcs__panels { position: relative; transition: height var(--anim-expand-dur) var(--anim-expand); }
.calcs__grid {
    list-style: none; margin: 0; padding: 0;
    display: grid;

    grid-template-columns: repeat(10, minmax(0, 1fr));
    gap: var(--space-3) var(--space-2);
    align-content: start;
    transition: opacity var(--anim-expand-dur) var(--anim-expand),
                visibility var(--anim-expand-dur) var(--anim-expand);
}
.calcs__grid > li { min-width: 0; }

.calcs__grid.is-inactive {
    position: absolute; inset: 0;
    opacity: 0; visibility: hidden; pointer-events: none;
}

.calc-item {
    display: flex; flex-direction: column; align-items: center; gap: var(--space-2);
    text-align: center;
    color: var(--color-text);
}
a.calc-item:hover { color: var(--site-color-dark); }

.calc-item__icon {
    width: 80px; height: 80px;
    display: flex; align-items: center; justify-content: center;
    background: var(--glass-bg-strong);
    border: 1px solid var(--glass-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--glass-shadow), var(--glass-highlight);
    transition: box-shadow .25s ease, transform .25s ease;
}
.calc-item__icon img { width: 72px; height: 72px; object-fit: contain; }

.calc-item__icon img,
.direction-card__icon--img img,
.theme-card__icon--img img,
.social-card__icon img,
.hero-step__circle img,
.promo__media img,
.about-part__media img {
    filter: drop-shadow(0 1px 1px rgba(40, 51, 95, .45)) drop-shadow(0 2px 2px rgba(40, 51, 95, .30));
    transition: filter .25s ease;
}
.calc-item:hover .calc-item__icon img,
.direction-card:hover .direction-card__icon--img img,
.theme-card:hover .theme-card__icon--img img,
.social-card:hover .social-card__icon img {
    filter: drop-shadow(0 1px 1px rgba(40, 51, 95, .50)) drop-shadow(0 3px 3px rgba(40, 51, 95, .34));
}

.calc-item:hover .calc-item__icon {
    box-shadow: var(--glass-shadow-hover), var(--glass-highlight);
    transform: translateY(-2px);
}

.calc-item__label {
    font-family: var(--font-ui);
    font-size: .8rem; line-height: 1.3;
    height: calc(1.3em * 3);
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;

    /* §k10 — перенос по пробелам; слоговый включает JS (.is-hyphenated) только длинным словам */
    overflow-wrap: break-word;
    -webkit-hyphens: manual; hyphens: manual;
}
.calc-item__label.is-hyphenated {
    -webkit-hyphens: auto; hyphens: auto;
}

button.calc-item {
    border: 0; background: none; padding: 0;
    font: inherit; cursor: pointer;
    width: 100%;
}
.calc-item--add .calc-item__icon {
    background: transparent;
    border: 2px dashed rgba(68, 88, 143, .35);
    box-shadow: none;
    color: var(--site-color-dark);
}
.calc-item--add .calc-item__icon svg {
    width: 26px; height: 26px; fill: none;
    stroke: currentColor; stroke-width: 2; stroke-linecap: round;
}
.calc-item--add:hover .calc-item__icon {
    background: rgba(255, 255, 255, .55);
    border-color: var(--brand);
    box-shadow: var(--glass-shadow), var(--glass-highlight);
    transform: translateY(-2px);
}

@media (max-width: 1200px) { .calcs__grid { grid-template-columns: repeat(7, minmax(0, 1fr)); } }
@media (max-width: 960px)  { .calcs__grid { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
@media (max-width: 600px) {
    .calcs__grid  { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .calcs__inner { padding: var(--space-4) var(--space-3); }
    .calc-item__icon { width: 70px; height: 70px; }
    .calc-item__icon img { width: 60px; height: 60px; }
}
@media (max-width: 400px) { .calcs__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 360px) { .calcs__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.calc-picker {
    position: fixed; inset: 0; z-index: var(--z-modal);
    display: flex; align-items: center; justify-content: center;
    padding: var(--space-4);
}
.calc-picker[hidden] { display: none; }
.calc-picker__backdrop {
    position: absolute; inset: 0;
    background: rgba(20, 30, 60, .45);
    -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px);
}
.calc-picker__dialog {
    position: relative; z-index: 1;
    width: min(680px, 100%); max-height: 86vh; overflow: auto;
}
.calc-picker__dialog .glass__body { padding: var(--space-5); }
.calc-picker__head {
    display: flex; align-items: center; justify-content: space-between;
    gap: var(--space-3); margin-bottom: var(--space-4);
}
.calc-picker__title { margin: 0; font-size: 1.375rem; }
.calc-picker__close {
    flex: 0 0 auto; width: 40px; height: 40px; border: 0; padding: 0;
    display: flex; align-items: center; justify-content: center;
    border-radius: var(--radius-pill); cursor: pointer;
    background: var(--glass-bg-strong); color: var(--color-heading);
    box-shadow: var(--glass-shadow), var(--glass-highlight);
    transition: box-shadow .2s ease, color .2s ease;
}
.calc-picker__close:hover { color: var(--brand); box-shadow: var(--glass-shadow-hover); }
.calc-picker__close svg {
    width: 20px; height: 20px; fill: none;
    stroke: currentColor; stroke-width: 2; stroke-linecap: round;
}

.calc-picker__list {
    list-style: none; margin: 0; padding: 0;
    display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-2);
}
.calc-pick {
    width: 100%; border: 1px solid var(--glass-border);
    background: var(--glass-bg-strong); border-radius: var(--radius);
    padding: var(--space-2);
    display: flex; align-items: center; gap: var(--space-2); text-align: left;
    font: inherit; color: var(--color-text); cursor: pointer;
    transition: box-shadow .2s ease, border-color .2s ease;
}
.calc-pick:hover { box-shadow: var(--glass-shadow); border-color: var(--site-color); }
.calc-pick__icon {
    flex: 0 0 auto; width: 40px; height: 40px;
    display: flex; align-items: center; justify-content: center;
    position: relative; overflow: visible;
}
.calc-pick__icon img { width: 32px; height: 32px; object-fit: contain; }

.calc-pick__icon .calc-crown { width: 18px; height: 18px; top: -6px; right: -6px; }
.calc-pick__icon .calc-crown--partial { width: auto; }
.calc-pick__icon .calc-crown__ic { width: 11px; height: 11px; }
.calc-pick__icon .calc-crown__plus { font-size: 12px; }
.calc-pick__icon .calc-item__badge { font-size: .45rem; padding: 1px 4px; top: -5px; left: -5px; }
.calc-pick__label { flex: 1 1 auto; font-size: .8rem; line-height: 1.25; }

.calc-pick__mark {
    flex: 0 0 auto; width: 22px; height: 22px; border-radius: var(--radius-pill);
    border: 2px solid var(--glass-border); position: relative;
    transition: background .2s ease, border-color .2s ease;
}
.calc-pick.is-on { border-color: var(--brand); }
.calc-pick.is-on .calc-pick__mark { background: var(--brand); border-color: var(--brand); }
.calc-pick.is-on .calc-pick__mark::after {
    content: ""; position: absolute; left: 7px; top: 3px;
    width: 5px; height: 10px; border: solid #fff; border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}
@media (max-width: 560px) { .calc-picker__list { grid-template-columns: 1fr; } }

.directions {
    display: flex;
    gap: var(--layer-gap);
}
.direction-card {
    flex: 1 1 0; min-width: 0;
    display: flex; gap: clamp(var(--space-2), 1.4vw, var(--space-3));
    padding: clamp(var(--space-3), 1.6vw, var(--space-4));
    color: var(--color-text);
}

a.direction-card:hover { color: var(--color-text); }

.direction-card__icon {
    flex: 0 0 auto;
    width: clamp(88px, 8.8vw, 130px); height: clamp(88px, 8.8vw, 130px);
    display: flex; align-items: center; justify-content: center;
    border-radius: var(--radius-lg);
    background: var(--site-color-light);
    color: var(--site-color-dark);
}

.direction-card__icon svg { width: clamp(66px, 6.6vw, 100px); height: clamp(66px, 6.6vw, 100px); }

.direction-card__icon--img img {
    width: 100%; height: 100%;
    object-fit: cover;
    border-radius: inherit;
    display: block;
}

.direction-card--love .direction-card__icon { background: var(--action-light); color: var(--action); }
.direction-card--taro .direction-card__icon { background: var(--color-taro-light); color: var(--color-taro); }
.direction-card--club .direction-card__icon { background: var(--color-club-light); color: var(--color-club); }

.direction-card__body {
    display: flex; flex-direction: column; gap: var(--space-1);
    min-width: 0; width: 100%;
}
.direction-card__title {
    margin: 0;
    font-family: var(--font-heading); font-weight: var(--fw-bold);

    font-size: clamp(.9rem, .58rem + .5vw, 1.05rem); line-height: 1.25;
    color: var(--color-heading);
}
.direction-card__desc {
    font-size: clamp(.8rem, .66rem + .22vw, .875rem); line-height: 1.45;
    color: var(--color-text-muted);
}

.direction-card__go {
    align-self: flex-end;
    margin-top: auto; padding-top: var(--space-2);
    font-family: var(--font-ui); font-size: .875rem; font-weight: var(--fw-medium);
    color: var(--site-color-dark);
    transition: color var(--transition);
}
.direction-card:hover .direction-card__go { color: var(--brand-dark); }

@media (max-width: 1300px) {
    .directions { flex-wrap: wrap; }
    .direction-card { flex: 1 1 44%; }
}
@media (max-width: 600px) {
    .direction-card { flex-basis: 100%; }
    .direction-card__icon { width: 88px; height: 88px; }
    .direction-card__icon svg { width: 68px; height: 68px; }
}

.account-hub {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--layer-gap);
}
@media (max-width: 600px) { .account-hub { grid-template-columns: 1fr; } }

.cabinet {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    gap: var(--layer-gap);
    align-items: start;
}
.cabinet__content { min-width: 0; }

.cabinet-nav {
    display: flex; flex-direction: column; gap: 2px;
    padding: var(--space-2);
    position: sticky;
}
.cabinet-nav__link {
    display: block;
    padding: var(--space-2h) var(--space-3);
    border-radius: var(--radius-lg);
    font-family: var(--font-ui); font-weight: var(--fw-medium);
    color: var(--color-text);
    transition: background var(--transition), color var(--transition);
}
.cabinet-nav__link:hover { background: var(--site-color-light); color: var(--site-color-dark); }
.cabinet-nav__link.is-active {
    background: var(--brand); color: var(--site-color-contrast);
    box-shadow: var(--shadow-brand);
}

.cabinet-nav__group { display: contents; }

@media (max-width: 991px) {
    .cabinet { grid-template-columns: 1fr; }

    .cabinet-nav { position: static; flex-direction: row; flex-wrap: wrap; gap: 4px; padding: var(--space-2); }
    .cabinet-nav__link {
        flex: 1 1 auto; text-align: center;
        padding: 6px 12px; font-size: .85rem; border-radius: var(--radius);
    }

    .cabinet-nav__link:has(.menu-admin-badge),
    .cabinet-nav__link:has(.menu-sub-badge) { justify-content: center; }
    .cabinet-nav__link .menu-admin-badge,
    .cabinet-nav__link .menu-sub-badge { margin-left: 6px; }
}

@media (max-width: 768px) {
    .cabinet-nav {
        flex-direction: column; align-items: center;
        width: fit-content; max-width: 100%; margin-inline: auto;
    }
    .cabinet-nav__group {
        display: flex; flex-wrap: wrap; justify-content: center; gap: 4px;
    }
    .cabinet-nav__link { flex: 0 0 auto; }
}

@media (max-width: 450px) {
    .cabinet-nav { width: auto; align-items: stretch; margin-inline: 0; }
    .cabinet-nav__group { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; }
}

.cabinet-empty {
    text-align: center;
    display: flex; flex-direction: column; align-items: center; gap: var(--space-3);
    color: var(--color-text-muted);
}

.orders__table { width: 100%; border-collapse: collapse; font-family: var(--font-ui); }
.orders__table thead th {
    text-align: left; padding: var(--space-2) var(--space-3);
    font-size: .8rem; font-weight: var(--fw-medium); color: var(--color-text-muted);
    border-bottom: 1px solid var(--glass-border);
}
.orders__cell { padding: var(--space-3); border-bottom: 1px solid var(--glass-border); }
.orders__row:last-child .orders__cell { border-bottom: 0; }
.orders__cell--price { font-weight: var(--fw-bold); color: var(--color-heading); white-space: nowrap; }

@media (max-width: 620px) {
    .orders__table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
    .orders__table, .orders__table tbody, .orders__row, .orders__cell { display: block; width: 100%; }
    .orders__row {
        border: 1px solid var(--glass-border); border-radius: var(--radius-lg);
        padding: var(--space-2) var(--space-3); margin-bottom: var(--space-3);
    }
    .orders__row:last-child { margin-bottom: 0; }
    .orders__cell { border: 0; padding: var(--space-1) 0; display: flex; justify-content: space-between; gap: var(--space-3); }
    .orders__cell::before { content: attr(data-label); color: var(--color-text-muted); font-size: .8rem; }
}

.orders__tabs { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-bottom: var(--space-3); }

@media (max-width: 991px) { .orders__tabs { margin-top: var(--space-1); } }
.orders__list { display: flex; flex-direction: column; gap: var(--layer-gap); }
.orders__empty { text-align: center; }
.orders__empty .glass__body { display: flex; flex-direction: column; align-items: center; gap: var(--space-3); }
.orders__empty-text { margin: 0; color: var(--color-text-muted); }
.orders__pager { margin-top: var(--space-4); }

.order-card__body { display: flex; flex-direction: column; gap: var(--space-3); }
.order-card__head {
    display: flex; align-items: flex-start; justify-content: space-between;
    gap: var(--space-3); flex-wrap: wrap;
}
.order-card__meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-2); }
.order-card__num { font-weight: var(--fw-semibold); color: var(--color-heading); }
.order-card__status {
    flex: 0 0 auto; padding: 4px 12px 6px; border-radius: var(--radius-pill);
    font: 600 .78rem/1 var(--font-ui); white-space: nowrap;
}
.order-card__status--success { color: var(--color-success); background: var(--color-nature-light); }
.order-card__status--warning { color: #9a7500; background: #fbf1d8; }
.order-card__status--danger  { color: var(--color-danger); background: var(--action-light); }

.order-card__items { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-1); }
.order-card__item { display: flex; justify-content: space-between; gap: var(--space-3); color: var(--color-text); }
.order-card__item-qty { color: var(--color-text-muted); white-space: nowrap; }

.order-card__foot {
    display: flex; align-items: center; justify-content: space-between;
    gap: var(--space-3); flex-wrap: wrap;
    border-top: 1px solid var(--color-border); padding-top: var(--space-3);
}
.order-card__total { display: flex; flex-direction: column; gap: 2px; }
.order-card__statusname { font-size: .82rem; color: var(--color-text-muted); }
.order-card__sum { color: var(--color-heading); }
.order-card__sum b { font-weight: var(--fw-bold); }
.order-card__actions { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.order-card__cancel { color: var(--color-danger); }

@media (max-width: 560px) {
    .order-card__foot { align-items: stretch; }
    .order-card__actions { width: 100%; }
    .order-card__actions .btn { flex: 1 1 auto; }
}

.cabinet-nav__link:has(.menu-admin-badge),
.cabinet-nav__link:has(.menu-sub-badge),
.account-menu a[role="menuitem"]:has(.menu-admin-badge),
.account-menu a[role="menuitem"]:has(.menu-sub-badge) { display: flex; align-items: center; gap: var(--space-2); }
.menu-admin-badge, .menu-sub-badge {
    display: inline-block; vertical-align: middle; margin-left: auto;
    padding: 1px 6px 2px; border-radius: var(--radius-pill);
    font-family: var(--font-ui); font-size: .56rem; font-weight: var(--fw-semibold);
    text-transform: uppercase; letter-spacing: .04em;
}
.menu-admin-badge { color: var(--action); background: var(--action-light); }

.menu-sub-badge--pro     { color: var(--site-color-contrast); background: var(--color-club); }
.menu-sub-badge--premium { color: var(--site-color-dark); background: var(--site-color-light); }

.orders-admin__empty { margin: 0; color: var(--color-text-muted); }
.orders-admin__total .orders__cell { font-weight: var(--fw-bold); color: var(--color-heading); }
.subs__val--active  { color: var(--color-success); font-weight: var(--fw-bold); }
.subs__val--expired { color: var(--color-danger); font-weight: var(--fw-bold); }

.settings { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--layer-gap); align-items: start; }
@media (max-width: 768px) { .settings { grid-template-columns: 1fr; } }
.settings-card__title { margin: 0 0 var(--space-3); font-size: 1.15rem; }
.settings-form { display: flex; flex-direction: column; gap: var(--space-3); }
.settings-form__label { display: block; margin-bottom: var(--space-1); font-family: var(--font-ui); font-size: .88rem; color: var(--color-text-muted); }
.settings-form__submit { align-self: flex-start; margin-top: var(--space-1); }
.settings-form__multiselect {
    appearance: auto; -webkit-appearance: auto;
    background-image: none; padding-right: var(--space-3); height: auto;
}

.form-note { padding: var(--space-2h) var(--space-3); border-radius: var(--radius-lg); margin-bottom: var(--space-3); }
.form-note--error { background: var(--action-light); color: var(--action); }
.form-note--ok    { background: var(--site-color-light); color: var(--site-color-dark); }
.req { color: var(--action); }

.profile-form__grid {
    display: grid; grid-template-columns: 220px minmax(0, 1fr);
    gap: var(--space-4); align-items: start;
}

.profile-form__fields {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: var(--space-2) var(--space-4); align-content: start;
}

.profile-form__pass,
.profile-form__actions { grid-column: 1 / -1; }

.profile-form__pass { margin-top: var(--space-1); }

.profile-form__pass-toggle { justify-self: start; }
.profile-form__pass-body {
    display: grid; grid-template-rows: 0fr;
    transition: grid-template-rows var(--anim-expand-dur) var(--anim-expand);
}
.profile-form__pass.is-open .profile-form__pass-body { grid-template-rows: 1fr; }
.profile-form__pass-inner { min-height: 0; overflow: hidden; }
.profile-form__pass-row {
    display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-2) var(--space-4); margin-top: var(--space-2);
}
.profile-form__pass-row + .profile-form__hint { margin-top: var(--space-2); }

.profile-form__pw { position: relative; }
.profile-form__pw .inputtext { padding-right: 44px; }
.profile-form__pw-toggle {
    position: absolute; right: 6px; top: 50%; transform: translateY(-50%);
    display: flex; align-items: center; justify-content: center;
    width: 32px; height: 32px; padding: 0;
    border: 0; background: transparent; cursor: pointer;
    color: var(--site-color-dark); border-radius: var(--radius);
    transition: background var(--transition), color var(--transition);
}
.profile-form__pw-toggle:hover { background: var(--color-bg-soft); color: var(--site-color); }
.profile-form__pw-toggle svg { width: 20px; height: 20px; pointer-events: none; transition: opacity var(--transition); }

.profile-form__pw-toggle .pw-off { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); opacity: 0; }
.profile-form__pw-toggle[aria-pressed="true"] .pw-on { opacity: 0; }
.profile-form__pw-toggle[aria-pressed="true"] .pw-off { opacity: 1; }

.profile-form__photo-wrap { position: relative; margin-bottom: var(--space-2); }
.profile-form__photo {
    aspect-ratio: 1 / 1; border-radius: 50%; overflow: hidden;
    background: var(--site-color-light);
    display: flex; align-items: center; justify-content: center;
}
.profile-form__photo img { width: 100%; height: 100%; object-fit: cover; }

.profile-form__birthcard {
    position: absolute; top: 2%; left: 2%; z-index: 5;
    width: 25%; height: auto;
    box-shadow: var(--card-shadow);
}
.profile-form__photo a { display: block; width: 100%; height: 100%; }

.profile-photo-modal { display: block; width: 100%; height: auto; border-radius: var(--radius-lg); }
.profile-form__photo .profile-form__photo-ph { width: 80%; height: 80%; object-fit: contain; }

.profile-form__file { display: flex; flex-direction: column; gap: 6px; font-size: .85rem; color: var(--color-text-muted); }
.profile-form__upload { display: block; margin: 0; cursor: pointer; }
.profile-form__upload-btn { display: flex; width: 100%; }
.profile-form__upload-input { position: absolute; width: 0; height: 0; opacity: 0; }
.profile-form__filename { font-size: .8rem; color: var(--color-text-muted); text-align: center; word-break: break-word; }
.profile-form__filename:empty { display: none; }

.profile-form__deltoggle { position: relative; display: inline-flex; align-self: flex-start; align-items: center; width: fit-content; margin: 0; cursor: pointer; }
.profile-form__deltoggle-input { position: absolute; opacity: 0; width: 0; height: 0; }
.profile-form__deltoggle-text {
    position: relative; padding-left: 44px; min-height: 20px; line-height: 20px;
    font-size: .85rem; color: var(--color-text-muted);
}
.profile-form__deltoggle-text::before {
    content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%);
    width: 36px; height: 20px; border-radius: var(--radius-pill);
    background: var(--color-border); box-shadow: inset 0 1px 2px var(--color-navy-50);
    transition: background-color var(--anim-expand-dur) var(--anim-expand);
}
.profile-form__deltoggle-text::after {
    content: ""; position: absolute; left: 3px; top: 50%; transform: translateX(0) translateY(-50%);
    width: 14px; height: 14px; border-radius: 50%;
    background: linear-gradient(180deg, #ffffff 55%, #e7ecf5);
    box-shadow: 0 1px 2px rgba(40, 51, 95, .35), 0 2px 5px rgba(40, 51, 95, .22), inset 0 -1px 1px rgba(40, 51, 95, .18);
    transition: transform var(--anim-expand-dur) var(--anim-expand);
}

.profile-form__deltoggle-input:checked + .profile-form__deltoggle-text::before { background: var(--action); }
.profile-form__deltoggle-input:checked + .profile-form__deltoggle-text::after { transform: translateX(16px) translateY(-50%); }
.profile-form__deltoggle-input:focus-visible + .profile-form__deltoggle-text::before {
    box-shadow: inset 0 1px 2px rgba(40, 51, 95, .18), 0 0 0 3px var(--action-light);
}
.profile-form__hint { font-size: .85rem; color: var(--color-text-muted); margin: 0; }
.profile-form__actions { display: flex; align-items: center; gap: var(--space-4); margin-top: var(--space-2); }
.profile-form__logout { color: var(--color-text-muted); }
.profile-form__logout:hover { color: var(--action); }
@media (max-width: 640px) {
    .profile-form__grid { grid-template-columns: 1fr; }
    .profile-form__photo-wrap { max-width: 220px; margin-inline: auto; }
    .profile-form__fields,
    .profile-form__pass-row { grid-template-columns: 1fr; }
}

.subs { display: flex; flex-direction: column; gap: var(--layer-gap); }
.sub-card__head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); margin-bottom: var(--space-3); }
.sub-card__title { margin: 0; font-family: var(--font-heading); font-weight: var(--fw-bold); color: var(--color-heading); font-size: 1.1rem; }
.sub-card__badge { font-family: var(--font-ui); font-size: .8rem; font-weight: var(--fw-medium); padding: 2px 10px; border-radius: var(--radius-pill); white-space: nowrap; }
.sub-card__badge.is-active { background: var(--site-color-light); color: var(--site-color-dark); }
.sub-card__badge.is-expired { background: var(--action-light); color: var(--action); }
.sub-card__meta { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-3); margin: 0; }
.sub-card__meta div { display: flex; flex-direction: column; gap: 2px; }
.sub-card__meta dt { font-size: .8rem; color: var(--color-text-muted); }
.sub-card__meta dd { margin: 0; font-weight: var(--fw-medium); color: var(--color-heading); }
.sub-card__actions { margin-top: var(--space-3); display: flex; flex-wrap: wrap; gap: var(--space-2); justify-content: flex-end; }
@media (max-width: 560px) {
    .sub-card__meta { grid-template-columns: 1fr 1fr; }
    .sub-card__actions .btn { flex: 0 0 auto; }
}

.themes { display: flex; flex-direction: column; gap: var(--layer-gap); }

.themes__head { text-align: center; margin-top: var(--space-2); }
.themes__title {
    margin: 0;
    font-family: var(--font-heading); font-weight: var(--fw-bold);
    font-size: clamp(1.375rem, 1.05rem + 1.1vw, 1.75rem); line-height: 1.2;
    color: var(--color-heading); text-align: center;
}
.themes__lead {
    margin: var(--space-2) 0 0;
    font-family: var(--font-ui); font-size: 1rem; line-height: 1.5;
    color: var(--site-color-dark);
}
.themes__grid { display: flex; gap: var(--layer-gap); }
.theme-card {
    flex: 1 1 0; min-width: 0;
    display: flex; flex-direction: column;
    padding: clamp(var(--space-3), 1.6vw, var(--space-4));
    color: var(--color-text);
}

.theme-card__top {
    display: flex; gap: clamp(var(--space-2), 1.4vw, var(--space-3));
}

a.theme-card:hover { color: var(--color-text); }

.theme-card__icon {
    flex: 0 0 auto;
    width: clamp(80px, 7vw, 100px); height: clamp(80px, 7vw, 100px);
    display: flex; align-items: center; justify-content: center;
    border-radius: var(--radius-lg);
    background: var(--site-color-light); color: var(--site-color-dark);
}
.theme-card__icon svg {
    width: 58%; height: 58%;
    fill: none; stroke: currentColor;
    stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round;
}

.theme-card__icon--img img {
    width: 86%; height: 86%;
    object-fit: cover;
    border-radius: inherit;
    display: block;
}

.theme-card--love     .theme-card__icon { background: var(--action-light);        color: var(--action); }
.theme-card--self     .theme-card__icon { background: var(--color-nature-light);  color: var(--color-nature); }
.theme-card--forecast .theme-card__icon { background: var(--color-crystal-light); color: var(--color-crystal); }

.theme-card__body {
    display: flex; flex-direction: column; gap: var(--space-1);
    min-width: 0; width: 100%;
}
.theme-card__title {
    margin: 0;
    font-family: var(--font-heading); font-weight: var(--fw-bold);
    font-size: 1rem; line-height: 1.25;
    color: var(--color-heading);
}
.theme-card__desc {
    font-size: clamp(.8rem, .66rem + .22vw, .875rem); line-height: 1.45;
    color: var(--color-text-muted);
}

.theme-card__go {
    margin-top: auto;
    padding-top: var(--space-3);
    text-align: center;
    font-family: var(--font-ui); font-size: .875rem; font-weight: var(--fw-medium);
    color: var(--site-color-dark);
    transition: color var(--transition);
}
.theme-card:hover .theme-card__go { color: var(--brand-dark); }

@media (max-width: 1350px) {
    .themes__grid { flex-wrap: wrap; }
    .theme-card { flex: 1 1 44%; }
}
@media (max-width: 600px) {
    .theme-card { flex-basis: 100%; }
    .theme-card__icon { width: 88px; height: 88px; }
}

.theme-all__inner {
    display: flex; align-items: center;
    gap: clamp(var(--space-3), 2.4vw, var(--space-5));
}
.theme-all__body {
    flex: 3 1 0; min-width: 0;
    display: flex; flex-direction: column; gap: var(--space-2);
}
.theme-all__title {
    margin: 0;
    font-family: var(--font-heading); font-weight: var(--fw-bold);
    font-size: 1.375rem; line-height: 1.2; color: var(--color-heading);
}
.theme-all__lead {
    margin: 0;
    font-family: var(--font-ui); font-size: .95rem; color: var(--site-color-dark);
}
.theme-all__text {
    margin: 0; max-width: 46ch;
    font-size: .95rem; line-height: 1.5; color: var(--color-text-muted);
}

.theme-all__list {
    flex: 2 1 0; min-width: 0;
    list-style: none; margin: 0; padding: 0;
    display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 0 var(--space-3);
}
.theme-all__feature {
    display: flex; align-items: center; gap: var(--space-2);
    padding: var(--space-2) 0;
    border-bottom: 1px solid var(--color-border);
    font-size: .8125rem; line-height: 1.35; color: var(--color-text);
}
.theme-all__feature svg {
    width: 22px; height: 22px; flex: 0 0 auto;
    fill: none; stroke: var(--site-color-dark); stroke-width: 1.6;
    stroke-linecap: round; stroke-linejoin: round; opacity: .9;
}

.theme-all__feature-num text {
    fill: var(--site-color-dark); stroke: none;
    font-family: var(--font-heading); font-weight: var(--fw-bold); font-size: 15px;
}

.theme-all__actions {
    flex: 0 0 auto;
    display: flex; flex-direction: column; gap: var(--space-2); align-items: stretch;
}
.theme-all__actions .btn { white-space: nowrap; text-align: center; }

@media (max-width: 1024px) {
    .theme-all__inner { flex-wrap: wrap; }
    .theme-all__actions {
        flex: 0 0 100%;
        flex-direction: row; flex-wrap: wrap;
        justify-content: center; align-items: center;
    }
    .theme-all__actions .btn { flex: 0 1 auto; }
}
@media (max-width: 900px) {
    .theme-all__inner { flex-direction: column; align-items: flex-start; gap: var(--space-4); }
    .theme-all__body, .theme-all__list { width: 100%; }
    .theme-all__actions { width: 100%; flex-basis: auto; }
    .theme-all__text { max-width: none; }
}

.helpcta__inner {
    display: flex; align-items: center;
    gap: clamp(var(--space-3), 2.4vw, var(--space-5));
}
.helpcta__body {
    flex: 1 1 0; min-width: 0;
    display: flex; flex-direction: column; gap: var(--space-2);
}
.helpcta__title {
    margin: 0;
    font-family: var(--font-heading); font-weight: var(--fw-bold);
    font-size: 1.375rem; line-height: 1.2; color: var(--color-heading);
}
.helpcta__text {
    margin: 0; max-width: 64ch;
    font-size: .95rem; line-height: 1.5; color: var(--color-text-muted);
}
.helpcta__actions { flex: 0 0 auto; display: flex; align-items: center; gap: var(--space-3); }

.helpcta__btn { display: inline-flex; align-items: center; gap: var(--space-2); white-space: nowrap; }
.helpcta__btn svg {
    width: 20px; height: 20px; flex: 0 0 auto;
    margin-block: -3px;
    fill: none; stroke: currentColor; stroke-width: 1.7;
    stroke-linecap: round; stroke-linejoin: round;
}

.helpcta__contacts { display: inline-flex; align-items: center; gap: var(--space-2); }
.helpcta__contact {
    width: 46px; height: 46px; flex: 0 0 auto;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 50%; background: var(--brand); color: #fff;
    box-shadow: var(--glass-shadow);
    transition: background-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.helpcta__contact:hover { transform: translateY(-2px); background: var(--brand-dark); box-shadow: var(--shadow-brand-hover); }
.helpcta__contact--mail { background: var(--action); }
.helpcta__contact--mail:hover { background: var(--action-dark); }

.helpcta__contact, .helpcta__contact:hover, .helpcta__contact:focus { color: #fff; }
.helpcta__contact svg { width: 24px; height: 24px; fill: #fff; }@media (prefers-reduced-motion: reduce) {
    .helpcta__contact { transition: none; }
}

@media (max-width: 760px) {
    .helpcta__inner { flex-direction: column; align-items: flex-start; gap: var(--space-4); }

    .helpcta__actions { width: 100%; flex-wrap: wrap; justify-content: center; align-items: center; }
    .helpcta__btn { flex: 0 1 auto; justify-content: center; }
}

@media (max-width: 450px) {
    .theme-all__actions { flex-direction: column; align-items: stretch; }

    .helpcta__actions { flex-direction: column; align-items: stretch; width: fit-content; margin-inline: auto; }
}

.themes__list { display: flex; flex-direction: column; gap: var(--layer-gap); }

.themes__grid[hidden], .themes__list[hidden] { display: none; }

.helpcta-stage > [hidden] { display: none; }

.themes__list-head { display: flex; align-items: center; gap: var(--space-3); flex-wrap: nowrap; }
.themes__list-title {
    margin: 0; flex: 1 1 auto; min-width: 0;
    font-family: var(--font-heading); font-weight: var(--fw-bold);
    font-size: clamp(1.05rem, .95rem + .5vw, 1.3rem); line-height: 1.25; color: var(--color-heading);
}
/* §k11 — «Вы выбрали тему:» приглушённый зачин, зачин и название не переносятся */
.themes__list-pre,
.themes__list-name { white-space: nowrap; }
.themes__list-pre {
    font-family: var(--font-ui); font-weight: 400;
    font-size: .85em; color: var(--color-text-muted);
}

.themes__back {
    display: inline-flex; align-items: center; gap: var(--space-1);
    flex: 0 0 auto; white-space: nowrap;
    padding: var(--space-2) var(--space-3);
    border-radius: 999px;
    background: var(--glass-bg-strong); border: 1px solid var(--glass-border);
    box-shadow: var(--glass-shadow); cursor: pointer;
    font-family: var(--font-ui); font-size: .875rem; font-weight: var(--fw-medium);
    color: var(--site-color-dark);
    transition: color var(--transition), box-shadow var(--transition);
}
.themes__back:hover { color: var(--brand); box-shadow: var(--glass-shadow-hover); }
.themes__back svg {
    width: 18px; height: 18px; flex: 0 0 auto;
    fill: none; stroke: currentColor; stroke-width: 2;
    stroke-linecap: round; stroke-linejoin: round;
}

.themes__collapse {
    align-self: center;
    display: flex; align-items: center; justify-content: center;
    width: 46px; height: 46px; border-radius: 50%;
    background: var(--glass-bg-strong); border: 1px solid var(--glass-border);
    box-shadow: var(--glass-shadow); color: var(--site-color-dark);
    cursor: pointer; transition: color var(--transition), box-shadow var(--transition);
}
.themes__collapse:hover { color: var(--brand); box-shadow: var(--glass-shadow-hover); }
.themes__collapse svg { width: 22px; height: 22px; }

.faq-section__inner { display: flex; flex-direction: column; gap: var(--space-5); }

.faq-section__title { margin: 0; text-align: center; }

.approach__grid {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: var(--layer-gap);
    align-items: stretch;
}

.approach__me .glass__body,
.approach__books .glass__body { display: flex; flex-direction: column; gap: var(--space-3); }
.approach__title { font-family: var(--font-heading); color: var(--color-heading); margin: 0; }

.approach__quote {
    margin: 0;
    display: flex; gap: var(--space-2); align-items: center;
}
.approach__quote-mark {
    flex: 0 0 auto;
    font-family: var(--font-heading); font-size: 3rem;
    line-height: .8;
    color: var(--color-heading);
}
.approach__quote p {
    margin: 0; padding-top: 4px;
    font-family: var(--font-ui);
    font-size: 1.05rem; line-height: 1.5;
    color: var(--site-color-dark);
    text-align: left;
}

.approach__text { display: flex; flex-direction: column; gap: var(--space-3); }
.approach__text p,
.approach__books-intro { margin: 0; color: var(--color-text); }

.book { display: flex; gap: var(--space-3); }
.book + .book { border-top: 1px solid var(--glass-border); padding-top: var(--space-3); }
.book__cover {
    flex: 0 0 auto; align-self: flex-start;
    width: 76px; aspect-ratio: 3 / 4; overflow: hidden;
    display: flex; align-items: center; justify-content: center; text-align: center;
    border-radius: var(--radius);
    background: linear-gradient(140deg, var(--site-color-dark), var(--panel-dark));
    color: #fff; font-family: var(--font-heading); font-size: .78rem; line-height: 1.2;
    box-shadow: var(--card-shadow);
}
.book__cover img { width: 100%; height: 100%; object-fit: cover; }
.book__body { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.book__title { font-family: var(--font-heading); font-size: 1.02rem; margin: 0; color: var(--color-heading); }
.book__desc { margin: 0; font-size: .85rem; line-height: 1.4; color: var(--color-text-muted); }
.book__dl { align-self: flex-start; margin-top: 2px; }

@media (max-width: 1180px) {
    .approach__grid { grid-template-columns: 1.5fr 1fr; }
}
@media (max-width: 900px) {
    .approach__grid { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
    .approach__quote-mark { font-size: 2.2rem; }
    .approach__quote p { font-size: .92rem; line-height: 1.45; }
    .approach__text p,
    .approach__books-intro { font-size: .9rem; line-height: 1.5; }
    .book__desc { font-size: .8rem; }
}

.promo__inner {
    display: flex; align-items: center;
    gap: var(--space-4); height: 100%;
    padding: var(--space-4);
}
.promo__body {
    flex: 1 1 auto; min-width: 0;
    display: flex; flex-direction: column; align-items: flex-start;
    gap: var(--space-2);
}

.promo__title { margin: 0; font-size: 1.375rem; }
.promo__lead {
    margin: 0;
    font-family: var(--font-ui); font-size: .95rem;
    color: var(--site-color-dark);
}
.promo__text { margin: 0; max-width: 62ch; font-size: .95rem; line-height: 1.5; }
.promo__cta { margin-top: var(--space-1); }

.promo__cta--multi { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.promo__cta--multi .btn { flex: 1 1 auto; max-width: 12.75rem; }

.promo--sub .btn--outline:not(:hover):not(:focus-visible) { background-color: #fff; }

.promo__panel { align-self: center; width: 100%; padding: var(--space-4); }
.promo--sub .promo__panel {
    box-shadow: 0 6px 18px rgba(18, 24, 52, .45),
                inset 0 1px 0 rgba(255, 255, 255, .9),
                inset 0 2px 4px rgba(40, 51, 95, .10);
}

.promo__panel .promo__panel-title { margin: 0 0 var(--space-3); font-family: var(--font-heading); font-size: 1.05rem; color: var(--color-heading); }

.promo--light .promo__panel {
    box-shadow: 0 4px 16px rgba(58, 72, 120, .10),
                0 0 0 1px var(--glass-border);
}
/* светлое промо: тёмный хайрлайн — два класса бьют .promo--sub ниже по файлу */
.promo--sub.promo--light .promo__media::before { background: var(--glass-border); }

.promo__features {
    list-style: none; margin: 0; padding: 0;
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-3) var(--space-4);
}
.promo__feature { display: flex; align-items: center; gap: var(--space-3); min-width: 0; }

.promo__feature-ic {
    flex: 0 0 auto; width: 44px; height: 44px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    background: var(--site-color-light, rgba(160, 188, 221, .22));
    color: var(--site-color-dark);
}
.promo__feature-ic svg {
    width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.6;
    stroke-linecap: round; stroke-linejoin: round;
}
.promo__feature-body { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.promo__feature-title { font-family: var(--font-heading); font-weight: var(--fw-medium); font-size: .95rem; line-height: 1.25; color: var(--color-heading); }
.promo__feature-sub { font-size: .8rem; line-height: 1.3; color: var(--color-text-muted); }

.promo--sub .promo__list { flex: 1 1 500px; min-width: 500px; display: flex; flex-direction: column; }

.promo__media { position: relative; flex: 0 1 316px; min-width: 0; max-width: 34%; align-self: stretch; min-height: 0; }
.promo__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; display: block; }

.promo--sub .promo__media::before {
    content: ""; position: absolute; top: 10%; bottom: 10%;
    left: calc(var(--space-4) / -2); width: 1px;
    background: var(--hairline-on-dark);
}

@media (max-width: 1180px) {
    .promo__inner { flex-wrap: wrap; }

    .promo--sub .promo__body { flex: 1 1 0; min-width: 0; }
    .promo--sub .promo__list { flex: 1 1 100%; min-width: 0; }
}
@media (max-width: 1024px) {
    .promo__media { flex-basis: 200px; }
}

@media (max-width: 450px) {
    .promo__inner {
        display: grid;
        grid-template-columns: 1fr 34%;
        grid-template-areas:
            "title title"
            "lead  lead"
            "text  media"
            "cta   cta"
            "list  list";
        align-items: start;
        gap: var(--space-2) var(--space-3);
    }
    .promo--sub .promo__body { display: contents; }
    .promo__title { grid-area: title; }
    .promo__lead  { grid-area: lead; }
    .promo__text  { grid-area: text; max-width: none; }
    .promo__cta   { grid-area: cta; }
    .promo__cta.btn { justify-self: start; }
    .promo__media { grid-area: media; position: relative; flex-basis: auto; width: 100%; max-width: none; align-self: start; }
    .promo__media img { position: static; width: 100%; height: auto; }
    .promo--sub .promo__media::before { left: calc(var(--space-3) / -2); }
    .promo--sub .promo__list { grid-area: list; min-width: 0; margin-top: var(--space-2); }
}

@media (max-width: 360px) {
    .promo__inner { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
    .promo--sub .promo__body { display: flex; }
    .promo--sub .promo__body,
    .promo--sub .promo__list { width: 100%; min-width: 0; margin-top: 0; }
    .promo__text { max-width: none; }

    .promo__media { position: static; flex-basis: auto; width: 130px; max-width: 130px; align-self: center; order: 0; }
    .promo__media img { position: static; height: auto; }
    .promo--sub .promo__media::before { display: none; }
}
@media (max-width: 520px) {
    .promo__features { grid-template-columns: 1fr; }
}

.social-cards {
    display: flex; flex-wrap: wrap; justify-content: center;

    gap: var(--layer-gap);
    margin-top: var(--layer-gap);
}
.social-card {
    flex: 0 0 calc((100% - (var(--social-cols, 3) - 1) * var(--layer-gap)) / var(--social-cols, 3));
    box-sizing: border-box;
    display: flex; align-items: stretch; gap: var(--space-3);
    padding: var(--space-3);
    text-decoration: none; color: inherit;
}
.social-card__icon {
    flex: 0 0 auto; width: 70px; height: 70px; align-self: flex-start;
    border-radius: 14px;
    display: flex; align-items: center; justify-content: center;
}
.social-card__icon img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: inherit; }

.social-card__body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.social-card__title { margin: 0; font-size: 1rem; color: var(--color-heading); }
.social-card__desc { font-size: .85rem; line-height: 1.4; color: var(--color-text-muted); }
.social-card__go { margin-top: auto; padding-top: var(--space-2); font-family: var(--font-ui); font-size: .8rem; font-weight: var(--fw-medium); color: var(--action); }

@media (max-width: 1200px) {
    .social-card { flex-basis: calc((100% - var(--layer-gap)) / 2); }
}
@media (max-width: 768px) {
    .social-card { flex-basis: 100%; }
}

.reviews__inner { padding: var(--space-5); }

.reviews__head { text-align: center; max-width: 660px; margin-inline: auto; }

.reviews__title { margin: 0; }
.reviews__subtitle {
    margin: var(--space-2) 0 0; color: var(--site-color-dark);
    font-size: 1.05rem;
}

.reviews__slider { position: relative; margin-top: var(--space-4); }
.reviews__swiper { overflow: hidden; }
/* §k13 — тень карточек не режется overflow'ом слайдера (padding + отриц. margin) */
.swiper.reviews__swiper {
    padding: 10px 8px 22px;
    margin-left: -8px; margin-right: -8px;
}
/* §k14 — единый easing перелистывания Swiper (--anim-expand) */
.reviews__swiper .swiper-wrapper {
    align-items: flex-start;
    transition-timing-function: var(--anim-expand);
}
/* §k38 — height:auto перебивает Swiper .swiper-slide{height:100%} */
.reviews__swiper .swiper-slide { height: auto; }
.review__card { height: 100%; }
.review__card .glass__body {
    display: flex; flex-direction: column; gap: var(--space-3);
    height: 100%; padding: var(--space-4) var(--space-4) var(--space-3);
}

.review__body { display: flex; gap: var(--space-2); align-items: flex-start; flex: 1 0 auto; }
.review__main { display: flex; flex-direction: column; gap: var(--space-2); flex: 1 1 auto; min-width: 0; }

.review__title {
    font-family: var(--font-heading); color: var(--color-heading);
    font-size: 1.1rem; line-height: 1.3; margin: 0; font-weight: var(--fw-bold);
    display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
}

.review__quote {
    flex: 0 0 auto;
    font-family: var(--font-heading); font-size: 5rem; line-height: .8;
    color: var(--color-heading);
}

.review__text {
    margin: 0; flex: 0 0 auto;
    color: var(--color-text-muted); font-size: .92rem; line-height: 1.55;
    height: calc(1.55em * 6);
    overflow: hidden;
}

.review__text.js-expand { height: auto; flex: 0 1 auto; }

.is-clamped {
    -webkit-mask-image: linear-gradient(180deg, #000 82%, transparent 100%);
            mask-image: linear-gradient(180deg, #000 82%, transparent 100%);
}

.js-expand {
    display: -webkit-box; -webkit-box-orient: vertical;
    -webkit-line-clamp: var(--expand-lines, 6); overflow: hidden;
}
.js-expand.is-expanded { -webkit-line-clamp: unset; overflow: visible; }

.js-expand.is-animating { -webkit-line-clamp: unset; overflow: hidden; }
.expand-toggle {
    align-self: flex-start; margin-top: var(--space-2); padding: 0;
    background: none; border: none; cursor: pointer;
    font-family: var(--font-ui); font-size: .85rem; font-weight: var(--fw-medium);
    color: var(--brand-dark);
    transition: color var(--btn-transition),
                opacity .16s ease, transform .16s ease;
}
.expand-toggle:hover { color: var(--brand); }

.expand-toggle.is-swapping { opacity: 0; transform: translateY(-4px); }
@media (prefers-reduced-motion: reduce) {
    .expand-toggle { transition: color var(--btn-transition); }
    .expand-toggle.is-swapping { opacity: 1; transform: none; }
}

.review__divider { border: none; border-top: 1px solid var(--color-border); margin: 0; }

.review__footer {
    display: flex; align-items: center; justify-content: space-between;
    gap: var(--space-3);
}
.review__author { display: flex; align-items: center; gap: var(--space-3); min-width: 0; flex: 1 1 auto; }
.review__avatar {
    flex: 0 0 auto; width: 46px; height: 46px; border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--site-color-light); color: var(--site-color-dark);
    font-family: var(--font-ui); font-weight: var(--fw-bold); font-size: 1.05rem;
    object-fit: cover;
    box-shadow: var(--glass-shadow);
}

.review__author-name {
    font-weight: var(--fw-bold); color: var(--color-heading);
    min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

@media (max-width: 1399.98px) {
    .review__footer { flex-direction: column; align-items: flex-start; gap: var(--space-2); }
    .review__author { width: 100%; }
}

.reviews__nav,
.gallery__nav {
    position: absolute; top: 50%; transform: translateY(-50%); z-index: 2;
    width: 46px; height: 46px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    background: var(--glass-bg-strong); border: 1px solid var(--glass-border);
    box-shadow: var(--glass-shadow); color: var(--site-color-dark);
    cursor: pointer;

    transition: color var(--transition), box-shadow var(--transition),
                opacity var(--anim-expand-dur) var(--anim-expand);
}
.reviews__nav svg,
.gallery__nav svg { width: 22px; height: 22px; flex: 0 0 auto; }
.reviews__nav:hover,
.posts__nav:hover,
.gallery__nav:hover { color: var(--brand); box-shadow: var(--glass-shadow-hover); }
.reviews__nav--prev { left: calc(-1 * var(--space-3)); }
.reviews__nav--next { right: calc(-1 * var(--space-3)); }
.reviews__nav.swiper-button-disabled,
.posts__nav.swiper-button-disabled,
.gallery__nav.swiper-button-disabled { opacity: .35; cursor: default; box-shadow: var(--glass-shadow); }

.reviews__dots {
    display: none; justify-content: center; align-items: center;
    gap: var(--space-1);
}
.reviews__dots .swiper-pagination-bullet {
    flex: 0 0 auto;
    width: 9px; height: 9px; margin: 0; border-radius: 50%;
    background: var(--site-color); opacity: .35;
    box-shadow: inset 0 1px 2px var(--color-navy-50);
    transition: opacity var(--transition), background-color var(--transition);
    cursor: pointer;
}
.reviews__dots .swiper-pagination-bullet-active { opacity: 1; background: var(--brand); }

.reviews__outro {
    display: flex; gap: var(--space-3);
    max-width: 820px; margin: var(--space-3) auto 0;
    padding: var(--space-2) var(--space-2) var(--space-2) var(--space-2h);
    border-radius: var(--radius-pill);
    background: #fff;
    border: 1px solid var(--glass-border);
    box-shadow: var(--glass-shadow), var(--glass-highlight);
}

.reviews__outro-icon {
    flex: 0 0 auto; align-self: center; width: 40px; height: 40px; border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--site-color); color: #fff;
}
.reviews__outro-icon svg { width: 22px; height: 22px; }
.reviews__outro-text { margin: 0; flex: 1 1 auto; color: var(--site-color-dark); font-size: .875rem; }
.reviews__outro-cta { flex: 0 0 auto; }
.reviews__outro-rowbreak { display: none; }

.reviews__outro-head { display: contents; }

@media (max-width: 840px) {

    .reviews__outro { flex-wrap: wrap; justify-content: center; align-items: center; row-gap: var(--space-2);
        width: fit-content; max-width: 100%;
        background: none; border: none; box-shadow: none; padding: 0; border-radius: 0; }

    .reviews__outro-head {
        display: flex; align-items: center; gap: var(--space-3);
        padding: var(--space-2);
        border-radius: var(--radius-pill);
        background: #fff;
        border: 1px solid var(--glass-border);
        box-shadow: var(--glass-shadow), var(--glass-highlight);
    }
    .reviews__outro-rowbreak { display: block; flex-basis: 100%; height: 0; }

    .reviews__outro-text { flex: 0 1 auto; text-align: center; }

    .reviews__outro-break { display: none; }
}

@media (max-width: 768px) {

    .reviews__nav { display: none; }
    .reviews__dots { display: flex; }
    .review__card .glass__body { padding: var(--space-3); }
}
@media (max-width: 640px) {
    .reviews__inner { padding: var(--space-5) var(--space-3); }
    .reviews__outro { flex-direction: column; text-align: center; }
    .reviews__outro-rowbreak { display: none; }
    .reviews__outro-cta { width: 100%; max-width: 200px; }
}

.posts__inner { padding: var(--space-5); display: grid; grid-template-columns: 2fr auto 1fr; gap: var(--space-3); align-items: stretch; }
/* §k15 — min-width:0 каждому прямому ребёнку грида (иначе слайдер распирает колонку) */
.posts__inner > * { min-width: 0; }

.posts__head {
    display: flex; align-items: center; justify-content: space-between;
    gap: var(--space-3); margin-bottom: var(--space-4);
    padding-inline: 2px;
}
.posts__title { margin: 0; }

.posts__title-link { color: inherit; text-decoration: none; }
.posts__title-link:hover { color: inherit; }
.posts__head:has(.posts__title-link:hover) .posts__all { color: var(--color-heading); }

.posts__headline { display: flex; align-items: center; gap: var(--space-2); min-width: 0; }

.posts__count {
    flex: 0 0 auto;
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 22px; height: 22px; padding: 0 7px; border-radius: 999px;
    margin-block: -1em;
    transform: translateY(0.2em);
    background: var(--glass-bg-strong); border: 1px solid var(--glass-border);
    box-shadow: var(--glass-shadow); color: var(--site-color-dark);
    font-family: var(--font-ui); font-size: .78rem; font-weight: var(--fw-medium); line-height: 1;
}
.posts__controls { display: flex; align-items: center; gap: var(--space-3); flex: 0 0 auto; }
.posts__all { white-space: nowrap; font-family: var(--font-ui); font-size: .9rem; font-weight: var(--fw-medium); }

.posts__all--yt, .posts__all--vk { display: inline-flex; align-items: center; line-height: 0; opacity: .92; transition: opacity var(--transition), transform var(--transition); }
.posts__all--yt svg { display: block; width: 26px; height: auto; }
.posts__all--vk svg { display: block; height: 20px; width: auto; }
.posts__all--yt:hover, .posts__all--vk:hover { opacity: 1; transform: scale(1.06); }
.posts__nav {
    position: relative;
    flex: 0 0 auto; width: 34px; height: 34px; border-radius: 50%; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    background: var(--glass-bg-strong); border: 1px solid var(--glass-border);
    box-shadow: var(--glass-shadow); color: var(--site-color-dark);
    transition: color var(--transition), box-shadow var(--transition),
                opacity var(--anim-expand-dur) var(--anim-expand);
}

.posts__nav svg {
    position: absolute; top: 50%; left: 50%;
    margin: -9px 0 0 -9px;
    width: 18px; height: 18px;
}

.posts__swiper { overflow: hidden; }
/* §k16 — тень карточек не режется overflow'ом (padding + отриц. margin) */
.swiper.posts__swiper {
    padding: 8px 10px 18px;
    margin: -6px -10px -16px;
}
/* §k17 — align-items:flex-start: равная высота свёрнутых, независимый разворот */
.posts__swiper .swiper-wrapper { transition-timing-function: var(--anim-expand); align-items: flex-start; }

.js-panel { position: relative; }
.js-panel[data-panel] .glass__body { position: relative; }

.js-panel[data-panel="link"],
.js-panel[data-panel="expand"].is-expandable { cursor: pointer; }
.js-panel[data-panel="link"] .glass__body,
.js-panel[data-panel="expand"].is-expandable .glass__body { -webkit-user-select: none; user-select: none; }

.panel-more {
    font-family: var(--font-ui); font-size: .85rem; font-weight: var(--fw-medium);
    color: var(--brand); transition: color var(--btn-transition);
}
.js-panel:hover .panel-more { color: var(--brand-dark); text-decoration: underline; text-underline-offset: 3px; }

.js-panel[data-panel="link"] .js-panel__link { position: static; }
.js-panel[data-panel="link"] .js-panel__link::after { content: ""; position: absolute; inset: 0; z-index: 1; }

.post-card .glass__body { display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-4); }
.post-card__date {
    font-family: var(--font-ui); font-size: .78rem; letter-spacing: .04em;
    text-transform: uppercase; color: var(--color-text-muted);
}

.post-card__title {
    font-family: var(--font-heading); color: var(--color-heading);
    font-size: 1.12rem; line-height: 1.3; margin: 0;
    display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
    min-height: calc(1.3em * 2);
}
.post-card__text {
    margin: 0; color: var(--color-text-muted); font-size: .92rem; line-height: 1.55;
    height: calc(1.55em * 6); overflow: hidden;
}
.post-card__divider { border: none; border-top: 1px solid var(--color-border); margin: 0; }

.post-card__more { margin-top: var(--space-3); font-family: var(--font-ui); font-size: .85rem; font-weight: var(--fw-medium); }

.post-card--news .post-card__text { height: auto; min-height: calc(1.55em * var(--expand-lines, 8)); }

.posts .post-card--news .expand-toggle { margin-top: auto; }

[data-anchor].is-target { animation: am-target 2.4s ease-out; }
@keyframes am-target { 0%, 45% { box-shadow: 0 0 0 2px var(--brand); } }

.article-detail { margin-inline: auto; }

.article-detail__body .glass__body { padding: var(--space-5); }
.article-detail__date {
    margin: 0 0 var(--space-4);
    font-family: var(--font-ui); font-size: .82rem; letter-spacing: .04em;
    text-transform: uppercase; color: var(--color-text-muted);
}

.prose { color: var(--color-text); font-size: 1.02rem; line-height: 1.7; overflow-wrap: break-word; }
.prose > :first-child { margin-top: 0; }
.prose > :last-child { margin-bottom: 0; }
.prose p { margin: 0 0 var(--space-3); }
.prose h2 { font-family: var(--font-heading); color: var(--color-heading); font-size: 1.5rem; line-height: 1.25; margin: var(--space-5) 0 var(--space-3); }
.prose h3 { font-family: var(--font-heading); color: var(--color-heading); font-size: 1.2rem; line-height: 1.3; margin: var(--space-4) 0 var(--space-2); }
.prose ul, .prose ol { margin: 0 0 var(--space-3); padding-left: 1.4em; }
.prose li { margin: 0 0 var(--space-1); }
.prose ul { list-style: none; }
.prose ul > li { position: relative; }
.prose ul > li::before {
    content: ""; position: absolute; left: -1.1em; top: calc(.5lh - 3px);
    width: 6px; height: 6px; border-radius: 50%; background: var(--brand);
    box-shadow: 0 0 0 2.5px color-mix(in srgb, var(--brand) 22%, transparent);
}
.prose a:not(.btn) { color: var(--brand-dark); text-decoration: underline; text-underline-offset: 2px; }
.prose a:not(.btn):hover { color: var(--brand); }
.prose img { max-width: 100%; height: auto; border-radius: var(--radius-lg); margin: var(--space-3) 0; }

.prose img[align="left"]  { float: left;  margin: var(--space-1) var(--space-4) var(--space-2) 0; }
.prose img[align="right"] { float: right; margin: var(--space-1) 0 var(--space-2) var(--space-4); }
.prose blockquote {
    margin: var(--space-4) 0; padding: var(--space-2) var(--space-4);
    border-left: 3px solid var(--brand); color: var(--site-color-dark);
    background: var(--site-color-light); border-radius: var(--radius);
}
.prose hr { border: none; border-top: 1px solid var(--color-border); margin: var(--space-4) 0; }

.page-header__author {
    margin: var(--space-3) 0 0;
    width: fit-content; max-width: 62ch;
    display: flex; align-items: center; gap: var(--space-3);
    padding: var(--space-2) var(--space-4) var(--space-2) var(--space-2);
    border-radius: 999px;
    background: rgba(255, 255, 255, .4);
    -webkit-backdrop-filter: blur(2px);
    backdrop-filter: blur(2px);
    border: 1px solid var(--glass-border);
    box-shadow: var(--glass-shadow);
}

.page-header__author--nophoto { padding-left: var(--space-4); }
.page-header__author-photo {
    flex: 0 0 auto; width: 70px; height: 70px; border-radius: 50%;
    object-fit: cover; box-shadow: var(--glass-shadow);
}
.page-header__author-meta { display: flex; flex-direction: column; gap: 2px; }
.page-header__author-label { font-family: var(--font-ui); font-size: .8rem; color: var(--color-text-muted); }
.page-header__author-name { font-family: var(--font-heading); color: var(--color-heading); font-size: 1.1rem; display: inline-flex; align-items: center; white-space: nowrap; }

a.page-header__author { text-decoration: none; cursor: pointer; transition: background .2s ease, transform .2s ease; }
a.page-header__author:hover { background: rgba(255, 255, 255, .62); transform: translateY(-1px); }
a.page-header__author:hover .page-header__author-name-txt { text-decoration: underline; text-underline-offset: 2px; }

.page-header__author-ext { width: .8em; height: .8em; margin-left: .35em; vertical-align: -.06em; color: var(--color-text-muted); flex: 0 0 auto; }
a.page-header__author:hover .page-header__author-ext { color: var(--color-heading); }

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    .page-header__author { background: rgba(255, 255, 255, .82); }
}

.article-detail__back { margin-top: var(--space-4); }

@media (max-width: 768px) {
    .article-detail__body .glass__body { padding: var(--space-3); }
}

.article-calcs__title { margin: 0 0 var(--space-3); font-family: var(--font-heading); color: var(--color-heading); font-size: 1.15rem; }

.article-nav {
    margin-top: var(--space-4);
    display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-3);
}
.article-nav__link {
    display: flex; flex-direction: column; gap: 4px;
    padding: var(--space-3) var(--space-4);
    background: #fff; border: 1px solid var(--glass-border); border-radius: var(--radius-lg);
    box-shadow: var(--glass-shadow), var(--glass-highlight);
    text-decoration: none;
    transition: box-shadow var(--transition), transform var(--transition);
}
.article-nav__link:hover { box-shadow: var(--glass-shadow-hover); transform: translateY(-2px); }
.article-nav__link--next { text-align: right; }
.article-nav__dir { font-family: var(--font-ui); font-size: .8rem; color: var(--color-text-muted); }
.article-nav__title { font-family: var(--font-heading); color: var(--color-heading); font-size: 1rem; line-height: 1.3; }

@media (max-width: 600px) {
    .article-nav { grid-template-columns: 1fr; }
    .article-nav__link { padding: var(--space-3); }
    .article-nav__link--next { text-align: left; }

    .article-nav__spacer { display: none; }
}

@media (max-width: 1024px) {

    .posts__inner { grid-template-columns: 1fr auto 1fr; }
}
@media (max-width: 768px) {

    .post-card .glass__body { padding: var(--space-3); }
    .posts__inner { grid-template-columns: 1fr; gap: var(--space-4); }

    .posts__inner .divider-v { width: auto; height: 1px; }
    .posts__inner .divider-v::before {
        left: 4%; right: 4%; top: 50%; bottom: auto;
        width: auto; height: 1px; transform: translateY(-50%);
        background: linear-gradient(90deg, transparent, rgba(68, 88, 143, .22) 18%, rgba(68, 88, 143, .22) 82%, transparent);
    }
}

.divider-v {
    position: relative;
    align-self: stretch;
    width: var(--space-5);
}
.divider-v::before {
    content: ""; position: absolute; left: 50%; top: 4%; bottom: 4%; width: 1px; transform: translateX(-50%);
    background: linear-gradient(180deg, transparent, rgba(68, 88, 143, .22) 18%, rgba(68, 88, 143, .22) 82%, transparent);
}

.am-loader {
    position: relative;
    display: inline-block;
    width: 34px; height: 34px;
    color: var(--site-color-dark);
    animation: am-loader-spin .9s linear infinite;
}
.am-loader[hidden] { display: none; }

.am-loader::before {
    content: "";
    position: absolute; inset: 0;
    border-radius: 50%;
    background: conic-gradient(from 0deg, transparent 10%, currentColor);
    -webkit-mask-image: radial-gradient(farthest-side, transparent calc(100% - 4px), #000 calc(100% - 3px));
            mask-image: radial-gradient(farthest-side, transparent calc(100% - 4px), #000 calc(100% - 3px));
}

.am-loader::after {
    content: "";
    position: absolute; top: 0; left: 50%;
    width: 3.5px; height: 3.5px; margin-left: -1.75px;
    border-radius: 50%;
    background: currentColor;
}
@keyframes am-loader-spin { to { transform: rotate(360deg); } }

.glass {
    position: relative;
    background-color: var(--glass-bg);

    border: 1px solid var(--glass-border);
    border-radius: var(--glass-radius);
    box-shadow: var(--glass-shadow), var(--glass-highlight);
    transition: box-shadow .25s ease, transform .25s ease;
}

.glass--blur {
    -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(140%);
    backdrop-filter: blur(var(--glass-blur)) saturate(140%);
}

.glass__body { padding: var(--space-4); }

/* §k18 — ≤768: паддинги секций с карточками внутри (отзывы/статьи/faq) */
@media (max-width: 768px) {

    .glass__body { padding: var(--space-3); }

    .glass__body.reviews__inner,
    .glass__body.posts__inner,
    .glass__body.faq-section__inner { padding-inline: 12px; padding-bottom: 12px; }
    /* §k19 — тень карточек слайдера не режется overflow'ом (мобильные паддинги) */
    .swiper.reviews__swiper {
        padding: 10px 12px 22px;
        margin-left: -10px; margin-right: -10px;
    }
    .swiper.posts__swiper {
        padding: 8px 12px 18px;
        margin: -6px -10px -16px;
    }
}

.glass--strong { background-color: var(--glass-bg-strong); }
.glass--frost  { background-color: var(--glass-bg-frost); }
.glass--dark {
    background-color: var(--panel-dark);
    border-color: var(--hairline-on-dark);
    color: var(--site-color-contrast);

    box-shadow: var(--glass-shadow), var(--glass-highlight-dark);
}
.glass--dark .glass__title,
.glass--dark h1, .glass--dark h2, .glass--dark h3, .glass--dark h4 {
    color: var(--site-color-contrast);
}

.glass--dark .promo__lead { color: var(--text-on-dark); }

.glass--sm { border-radius: var(--radius-lg); }

.glass--hover:hover {
    box-shadow: var(--glass-shadow-hover), var(--glass-highlight);
    transform: translateY(-2px);
}

.glass__title {
    font-family: var(--font-heading);
    margin-bottom: var(--space-2);
}

@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
    .glass--blur { background-color: rgba(255, 255, 255, .85); }
}

.page-header {
    position: relative; overflow: hidden;

    padding-block: clamp(104px, 4vw + 64px, 112px) var(--ph-pad-bottom, calc(var(--space-5) * 3));

    min-height: var(--ph-min-h, 500px);

    background: var(--bg-page);

    --phm-left-1: 500px; --phm-left-2: 300px; --phm-left-3: 100px;
}

.page-header::before {
    content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
    background: var(--ph-image, url(../media/hero-fone.webp)) var(--ph-pos, right 77%) / cover no-repeat;

    -webkit-mask:
        linear-gradient(to right,  #000 calc(100% - 130px), rgba(0, 0, 0, .82) calc(100% - 88px), rgba(0, 0, 0, .48) calc(100% - 44px), rgba(0, 0, 0, .16) calc(100% - 16px), transparent 100%),
        linear-gradient(to bottom, #000 calc(100% - 130px), rgba(0, 0, 0, .82) calc(100% - 88px), rgba(0, 0, 0, .48) calc(100% - 42px), rgba(0, 0, 0, .16) calc(100% - 12px), transparent 100%),
        linear-gradient(to left,   #000 calc(100% - var(--phm-left-1)), rgba(0, 0, 0, .55) calc(100% - var(--phm-left-2)), rgba(0, 0, 0, .1) calc(100% - var(--phm-left-3)), transparent 100%),
        linear-gradient(to top,    #000 calc(100% - 120px), rgba(0, 0, 0, .78) calc(100% - 81px), rgba(0, 0, 0, .44) calc(100% - 39px), rgba(0, 0, 0, .13) calc(100% - 11px), transparent 100%),
        radial-gradient(130px at 100% 0,    transparent 0, rgba(0, 0, 0, .16) 12px, rgba(0, 0, 0, .48) 42px, rgba(0, 0, 0, .82) 88px, #000 130px),
        radial-gradient(130px at 100% 100%, transparent 0, rgba(0, 0, 0, .16) 12px, rgba(0, 0, 0, .48) 42px, rgba(0, 0, 0, .82) 88px, #000 130px);
    -webkit-mask-composite: source-in;
    mask:
        linear-gradient(to right,  #000 calc(100% - 130px), rgba(0, 0, 0, .82) calc(100% - 88px), rgba(0, 0, 0, .48) calc(100% - 44px), rgba(0, 0, 0, .16) calc(100% - 16px), transparent 100%),
        linear-gradient(to bottom, #000 calc(100% - 130px), rgba(0, 0, 0, .82) calc(100% - 88px), rgba(0, 0, 0, .48) calc(100% - 42px), rgba(0, 0, 0, .16) calc(100% - 12px), transparent 100%),
        linear-gradient(to left,   #000 calc(100% - var(--phm-left-1)), rgba(0, 0, 0, .55) calc(100% - var(--phm-left-2)), rgba(0, 0, 0, .1) calc(100% - var(--phm-left-3)), transparent 100%),
        linear-gradient(to top,    #000 calc(100% - 120px), rgba(0, 0, 0, .78) calc(100% - 81px), rgba(0, 0, 0, .44) calc(100% - 39px), rgba(0, 0, 0, .13) calc(100% - 11px), transparent 100%),
        radial-gradient(130px at 100% 0,    transparent 0, rgba(0, 0, 0, .16) 12px, rgba(0, 0, 0, .48) 42px, rgba(0, 0, 0, .82) 88px, #000 130px),
        radial-gradient(130px at 100% 100%, transparent 0, rgba(0, 0, 0, .16) 12px, rgba(0, 0, 0, .48) 42px, rgba(0, 0, 0, .82) 88px, #000 130px);
    mask-composite: intersect;
}

@media (max-width: 768px) {
    .page-header { --phm-left-1: 250px; --phm-left-2: 150px; --phm-left-3: 50px; }
    /* §k20 — дефолтный мобильный сдвиг кадра баннера по X */
    .page-header::before { background-position-x: 85% !important; }
    .page-header::before {
        -webkit-mask:
            linear-gradient(to bottom, #000 calc(100% - 130px), rgba(0, 0, 0, .82) calc(100% - 88px), rgba(0, 0, 0, .48) calc(100% - 42px), rgba(0, 0, 0, .16) calc(100% - 12px), transparent 100%),
            linear-gradient(to left,   #000 calc(100% - var(--phm-left-1)), rgba(0, 0, 0, .55) calc(100% - var(--phm-left-2)), rgba(0, 0, 0, .1) calc(100% - var(--phm-left-3)), transparent 100%),
            linear-gradient(to top,    #000 calc(100% - 120px), rgba(0, 0, 0, .78) calc(100% - 81px), rgba(0, 0, 0, .44) calc(100% - 39px), rgba(0, 0, 0, .13) calc(100% - 11px), transparent 100%);
        -webkit-mask-composite: source-in;
        mask:
            linear-gradient(to bottom, #000 calc(100% - 130px), rgba(0, 0, 0, .82) calc(100% - 88px), rgba(0, 0, 0, .48) calc(100% - 42px), rgba(0, 0, 0, .16) calc(100% - 12px), transparent 100%),
            linear-gradient(to left,   #000 calc(100% - var(--phm-left-1)), rgba(0, 0, 0, .55) calc(100% - var(--phm-left-2)), rgba(0, 0, 0, .1) calc(100% - var(--phm-left-3)), transparent 100%),
            linear-gradient(to top,    #000 calc(100% - 120px), rgba(0, 0, 0, .78) calc(100% - 81px), rgba(0, 0, 0, .44) calc(100% - 39px), rgba(0, 0, 0, .13) calc(100% - 11px), transparent 100%);
        mask-composite: intersect;
    }
}

@media (max-width: 600px) {
    .page-header::before { background-position-x: 75% !important; }
}
.page-header > .container { position: relative; z-index: 1; }

/* §k21 — тонкий белый контур-halo на H1 и крошках баннера */
.page-header {
    --ph-text-halo:
        .5px 0 0 rgba(255, 255, 255, .25), -.5px 0 0 rgba(255, 255, 255, .25),
        0 .5px 0 rgba(255, 255, 255, .25), 0 -.5px 0 rgba(255, 255, 255, .25);
}
.page-header__title { margin: 0; text-shadow: var(--ph-text-halo); }
.page-header .breadcrumbs__current { text-shadow: var(--ph-text-halo); }
.page-header__inner { position: relative; }
.page-main > .page-header:last-child { flex: 1 0 auto; }

.page-header__actions { margin-top: var(--space-4); display: flex; flex-wrap: wrap; gap: var(--space-2); }

.page-header__lead {
    margin: var(--space-3) 0 0;
    width: fit-content; max-width: 62ch;
    padding: var(--space-3);
    border-radius: var(--radius-lg);
    background: rgba(255, 255, 255, .4);
    -webkit-backdrop-filter: blur(2px);
    backdrop-filter: blur(2px);
    border: 1px solid var(--glass-border);
    box-shadow: var(--glass-shadow);
    color: var(--color-text); font-size: 1.05rem; line-height: 1.6;
}

.page-header__lead:empty { display: none; }

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    .page-header__lead { background: rgba(255, 255, 255, .82); }
}
@media (max-width: 640px) {
    .page-header__lead { max-width: none; }
}

.page-lead__warn { color: var(--action); font-weight: 700; }

.auth { max-width: 30rem; margin-inline: auto; }

.auth-card { display: block; }
.auth-card .glass__body { display: flex; flex-direction: column; gap: var(--space-3); }
.auth-card__head { text-align: center; margin-bottom: var(--space-1); }
.auth-card__title { margin: 0; font-size: 1.4rem; color: var(--color-heading); }
.auth-card__sub { margin: var(--space-1) 0 0; color: var(--color-text-muted); font-size: .95rem; }

.auth-card .form-field { margin: 0; }
.auth-card__label {
    display: block; margin-bottom: 6px;
    font-family: var(--font-ui); font-size: .9rem; color: var(--color-heading);
}
.auth-card__captcha { display: block; margin-bottom: 8px; border-radius: var(--radius); }

.auth-card__row {
    display: flex; align-items: center; justify-content: space-between;
    gap: var(--space-2); flex-wrap: wrap; margin-top: calc(-1 * var(--space-1));
}
.auth-card__remember { margin: 0; }
.auth-card__forgot { font-size: .9rem; color: var(--site-color-dark); }
.auth-card__forgot:hover { color: var(--action); }

.auth-card__submit { margin-top: var(--space-1); }
.auth-card__reg { margin: 0; text-align: center; color: var(--color-text-muted); font-size: .95rem; }
.auth-card__reg a { color: var(--site-color-dark); font-weight: 600; }
.auth-card__reg a:hover { color: var(--action); }

.auth-card__loggedin { text-align: center; align-items: center; }

.auth-form { display: flex; flex-direction: column; gap: var(--space-3); }
.auth-form[hidden] { display: none; }
.auth-form .form-field { margin: 0; }

.modal__body .auth-form .form-field + .form-field { margin-top: calc(var(--space-2) - var(--space-3)); }

.auth__alert {
    margin-bottom: var(--space-3);
    padding: var(--space-2) var(--space-3);
    border: 0;
    border-radius: var(--radius);
    background: var(--glass-bg-strong, #fff);
    font-size: .9rem;
    line-height: var(--lh-base);
}
.auth__alert.alert--danger {
    background: var(--glass-bg-strong, #fff);
    color: var(--action);
    box-shadow: var(--glass-highlight), 0 0 2px rgba(239, 90, 111, .22), 0 2px 5px rgba(239, 90, 111, .18);
}
.auth__alert.alert--success {
    background: var(--glass-bg-strong, #fff);
    color: var(--color-success);
    box-shadow: var(--glass-highlight), 0 0 2px rgba(46, 125, 50, .20), 0 2px 5px rgba(46, 125, 50, .16);
}
.auth-form .auth__alert { margin: 0; }
.auth-card__hint { margin: 0; color: var(--color-text-muted); font-size: .9rem; }

.auth-loading {
    position: absolute; inset: 0; z-index: 5;
    display: flex; align-items: center; justify-content: center;
    background: rgba(255, 255, 255, .6);
    -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px);
    border-radius: inherit;
}

.auth-hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; pointer-events: none; }

.hero-steps {
    list-style: none; margin: var(--space-4) 0 0; padding: 0;
    display: flex; max-width: 34rem;
}
.hero-step {
    flex: 1 1 0; min-width: 0; position: relative;
    display: flex; flex-direction: column; align-items: center; text-align: center;
    gap: var(--space-2);
}

.hero-step:not(:first-child)::before {
    content: ""; position: absolute; z-index: 0;
    top: calc(clamp(44px, 4vw, 56px) / 2); height: 2px;
    right: 50%; width: 100%;
    background: rgba(40, 51, 95, .22);
}
.hero-step__circle {
    position: relative; z-index: 1;
    flex: 0 0 auto;
    width: clamp(44px, 4vw, 56px); height: clamp(44px, 4vw, 56px);
    display: flex; align-items: center; justify-content: center;
    border-radius: 50%;
    background: #fff; box-shadow: var(--glass-shadow);
    color: var(--site-color-dark);
}
.hero-step__circle img {
    display: block;
    width: 64%; height: 64%;
    object-fit: contain;
}
.hero-step__label {

    width: min-content; margin-inline: auto;
    font-family: var(--font-ui); font-size: clamp(.72rem, .66rem + .2vw, .82rem);
    line-height: 1.3; color: var(--color-heading);
}
@media (max-width: 640px) {
    .hero-steps { max-width: none; }
    .hero-step__label { font-size: .82rem; }
}

.page-header:has(.hero-steps) { display: flex; flex-direction: column; }
.page-header:has(.hero-steps) > .container { flex: 1 1 auto; display: flex; flex-direction: column; }
.page-header:has(.hero-steps) .page-header__inner { flex: 1 1 auto; display: flex; flex-direction: column; }
.page-header:has(.hero-steps) .hero-steps { margin-top: var(--layer-gap); }

.page-header + .content-layer {
    position: relative;
    z-index: 2;
    margin-top: calc(var(--space-2) * -1);
}

.breadcrumbs { margin-bottom: var(--space-4); }
.breadcrumbs__list {
    list-style: none; margin: 0; padding: 0;

    font-family: var(--font-ui); font-size: .85rem; font-weight: var(--fw-medium);
    line-height: 1.6; overflow-wrap: break-word;
}
.breadcrumbs__item { display: inline; }

.breadcrumbs__item + .breadcrumbs__item::before {
    content: ""; display: inline-block; width: 6px; height: 6px; border-radius: 1px;
    margin: 0 var(--space-3); vertical-align: middle;
    background: var(--brand); opacity: .55; transform: rotate(45deg);
}
.breadcrumbs__link { position: relative; color: var(--color-text-muted); transition: color var(--transition); }
.breadcrumbs__link::after {
    content: ""; position: absolute; left: 0; bottom: -2px; width: 100%; height: 2px;
    background: var(--brand); border-radius: 2px;
    transform: scaleX(0); transform-origin: left center; transition: transform .22s ease;
}
.breadcrumbs__link:hover { color: var(--brand); }
.breadcrumbs__link:hover::after { transform: scaleX(1); }
.breadcrumbs__current { color: var(--color-heading); font-weight: var(--fw-semibold); }

/* §k22 — фильтр-табы (.section-filter/.dir-filter): общий вид */
.section-filter, .dir-filter { display: flex; justify-content: center; flex-wrap: wrap; gap: var(--space-2); margin-block: var(--layer-gap); }
.section-filter__tab, .dir-filter__tab { flex: 0 0 auto; }

.section-filter__tab:has(.section-filter__count) { padding: 8px 10px 8px 14px; font-size: .8rem; }

.section-filter__count {
    display: inline-flex; align-items: center; justify-content: center;
    width: 20px; height: 20px; margin-left: 8px;
    border-radius: 50%; background: var(--brand); color: #fff;
    font-size: 10px; font-weight: 600; line-height: 1;
    box-shadow: var(--glass-shadow);
    transition: background-color .25s ease, color .25s ease;
}
.section-filter__tab.btn--brand .section-filter__count {
    background: #fff; color: var(--color-text, #353a52);
}

.section-filter:has(+ .review-list),
.section-filter:has(+ .post-list) { margin-bottom: var(--space-4); }
.section-filter .btn svg, .dir-filter .btn svg { width: 16px; height: 16px; fill: currentColor; }

/* §k23 — отзывы/статьи на штатном AJAX_MODE: фильтр + листинг + пейджер */
.review-list + .pager, .post-list + .pager { margin-top: var(--space-4); }
.review-list, .post-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--layer-gap); align-items: start; }
/* §k24 — в грид-листинге карточка авто-высоты */
.review-list .review__card { height: auto; }
@media (max-width: 720px) { .review-list, .post-list { grid-template-columns: 1fr; } }

.pager { display: flex; justify-content: center; align-items: center; gap: var(--space-2); flex-wrap: wrap; margin-bottom: var(--layer-gap); }
.pager__list { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: var(--space-2); }
.pager__link, .pager__nav, .pager__gap {
    min-width: 42px; height: 42px; padding: 0 var(--space-2);
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: var(--radius-pill);
    font-family: var(--font-ui); font-size: .9rem; color: var(--brand-dark);
}
.pager__link, .pager__nav {
    appearance: none; -webkit-appearance: none;
    background: var(--glass-bg-strong); border: 1px solid var(--glass-border);
    box-shadow: var(--glass-shadow), var(--glass-highlight); cursor: pointer;
    transition: box-shadow var(--btn-transition), color var(--btn-transition),
                background-color var(--btn-transition), transform var(--btn-transition);
}
.pager__link:hover, .pager__nav:hover {
    color: var(--brand); box-shadow: var(--glass-shadow-hover), var(--glass-highlight);
    transform: translateY(-1px);
}
.pager__link:active, .pager__nav:active { transform: translateY(0); }

.pager__link.is-current {
    background-color: var(--brand); background-image: var(--btn-sheen);
    color: var(--site-color-contrast); border-color: var(--brand);
    box-shadow: var(--shadow-brand); cursor: default;
}
.pager__link.is-current:hover { transform: none; }
.pager__nav svg { width: 18px; height: 18px; fill: currentColor; }
.pager__nav.is-disabled, .pager__nav[aria-disabled="true"] {
    opacity: .4; pointer-events: none; box-shadow: var(--glass-shadow);
}
.pager__gap { color: var(--color-text-muted); cursor: default; }

.gallery { position: relative; margin-block: var(--layer-gap); }
.gallery__slider { position: relative; }

.gallery__swiper { overflow: hidden; }
.swiper.gallery__swiper { padding: 8px 10px 16px; }
.gallery__swiper .swiper-wrapper { transition-timing-function: var(--anim-expand); align-items: stretch; }
.gallery__item { height: auto; margin: 0; }

.gallery__link {
    display: block;
    position: relative;

    max-width: 250px; margin-inline: auto;
    padding: var(--space-2);
    border-radius: var(--glass-radius);
    box-shadow: var(--glass-shadow);
    background: var(--glass-bg-strong);
    cursor: zoom-in;
    transition: box-shadow var(--anim-expand-dur) var(--anim-expand),
                transform var(--anim-expand-dur) var(--anim-expand);
}
.gallery__link:hover { transform: translateY(-3px); box-shadow: var(--glass-shadow-hover); }
.gallery__link:focus-visible { outline: 2px solid var(--brand); outline-offset: 3px; }

.gallery__media-wrap {
    display: block;
    position: relative;
    overflow: hidden;
    border-radius: calc(var(--glass-radius) - var(--space-2));
    aspect-ratio: 3 / 4;
}
.gallery__media {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .6s var(--anim-expand);
}
.gallery__link:hover .gallery__media { transform: scale(1.04); }

.gallery__overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: flex-end;
    padding: var(--space-3);
    background: linear-gradient(to top, rgba(40, 51, 95, .74) 0%, rgba(40, 51, 95, 0) 55%);
    opacity: 0;
    transition: opacity var(--anim-expand-dur) var(--anim-expand);
    pointer-events: none;
}
.gallery__link:hover .gallery__overlay,
.gallery__link:focus-visible .gallery__overlay { opacity: 1; }

.gallery__zoom {
    position: absolute;
    top: var(--space-3);
    right: var(--space-3);
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(255, 255, 255, .92);
    color: var(--brand-dark);
    transform: scale(.7);
    transition: transform var(--anim-expand-dur) var(--anim-expand);
}
.gallery__link:hover .gallery__zoom { transform: scale(1); }
.gallery__zoom svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; }

/* §k25 — тач-устройства (нет ховера): поведение лупы поиска */
@media (hover: none) {
    .gallery__overlay { opacity: 1; background: none; }
    .gallery__zoom {
        transform: scale(1);
        width: 32px; height: 32px;
        top: var(--space-2); right: var(--space-2);
    }
    .gallery__zoom svg { width: 16px; height: 16px; }
    .gallery__cap { display: none; }
}

.gallery__cap {
    color: #fff;
    font-family: var(--font-base);
    font-size: .9rem;
    line-height: 1.35;
    transform: translateY(6px);
    transition: transform var(--anim-expand-dur) var(--anim-expand);
}
.gallery__link:hover .gallery__cap { transform: none; }

.gallery__nav--prev { left: calc(var(--space-2) * -1); }
.gallery__nav--next { right: calc(var(--space-2) * -1); }

.gallery__dots {
    display: flex; justify-content: center; align-items: center;
    gap: var(--space-2); margin-top: var(--space-4);
}
.gallery__dots .swiper-pagination-bullet {
    width: 9px; height: 9px; border-radius: 50%;
    background: var(--site-color); opacity: .35;
    box-shadow: inset 0 1px 2px var(--color-navy-50);
    transition: opacity var(--transition), background-color var(--transition);
    cursor: pointer;
}
.gallery__dots .swiper-pagination-bullet-active { opacity: 1; background: var(--brand); }

@media (max-width: 640px) {
    .gallery__nav { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    .gallery__link:hover,
    .gallery__link:hover .gallery__media { transform: none; }
}

.pager--more { justify-content: center; }
[data-load-more] { position: relative; }
[data-load-more].is-loading { pointer-events: none; color: transparent; }
[data-load-more].is-loading::after {
    content: ""; position: absolute; inset: 0; margin: auto;
    width: 20px; height: 20px; border-radius: 50%;
    border: 2px solid var(--color-white-45); border-top-color: #fff;
    animation: am-spin .7s linear infinite;
}
@keyframes am-spin { to { transform: rotate(360deg); } }

/* §k26 — Fancybox v5: перекраска под бренд (navy-бэкдроп, синие кнопки) */
.fancybox__container.fancybox__container {
    --fancybox-bg: rgba(40, 51, 95, .94);
    --fancybox-color: #e9f0fb;
    --fancybox-hover-color: #ffffff;
    --f-button-bg: rgba(255, 255, 255, .10);
    --f-button-hover-bg: var(--brand);
    --f-button-color: #ffffff;
    --f-button-hover-color: #ffffff;
}
.fancybox__toolbar.fancybox__toolbar { --f-progress-color: var(--brand); }
.f-carousel__thumbs.f-carousel__thumbs {
    --f-thumb-selected-opacity: 1;
    --f-thumb-outline-color: var(--brand);
    --f-thumb-border-radius: 12px;
}
.fancybox__caption { font-family: var(--font-base); font-size: 1rem; }

.about-part__panel {
    display: flex; flex-direction: column; gap: var(--space-5);
    padding: clamp(var(--space-3), 2.5vw, var(--space-5));
}

/* Секция «Обо мне»: текст + картинка анонса справа, по центру вертикали */
.about-part__section {
    display: flex; align-items: center; gap: var(--space-5);
}
.about-part__text {
    flex: 1 1 auto; min-width: 0;
    display: flex; flex-direction: column; gap: var(--space-3);
}
/* Квадрат/вертикаль — 35%, горизонталь (--wide) — 45%. */
.about-part__media { flex: 0 0 35%; }
.about-part__media--wide { flex-basis: 45%; }
.about-part__media img {
    width: 100%; height: auto; display: block;
    border-radius: var(--radius-lg);
}

.about-part__section + .about-part__section {
    padding-top: var(--space-5); border-top: 1px solid var(--glass-border);
}
.about-part__sub {
    margin: 0; color: var(--site-color-dark);
}

.about-part__text > p { margin: 0; color: var(--color-text); }

@media (max-width: 768px) {   /* картинку анонса на мобиле не грузим (lazy+none) */
    .about-part__media { display: none; }
}

.about .approach__quote { justify-content: center; text-align: center; }

.services-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--layer-gap); }
@media (max-width: 1024px) { .services-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px)  { .services-grid { grid-template-columns: 1fr; } }

.service-card__inner {
    display: flex; flex-direction: column; height: 100%;
    padding: var(--space-4); gap: var(--space-3);
}

.service-card__img {
    position: relative;
    margin: calc(-1 * var(--space-4)) calc(-1 * var(--space-4)) 0;
    aspect-ratio: 16 / 8;
    border-radius: var(--glass-radius) var(--glass-radius) 0 0;
    overflow: hidden;
    background: linear-gradient(155deg, var(--site-color-light), #fff 70%);
}
.service-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; }

.service-card__img::after {
    content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 55%;
    background: linear-gradient(to top, var(--glass-bg-strong) 10%, rgba(255, 255, 255, 0));
    pointer-events: none;
}

.service-card__name {
    position: relative; z-index: 1;
    margin: calc(-2 * var(--space-5)) 0 0;
    font-family: var(--font-heading); color: var(--color-heading);
    font-size: 1.25rem; line-height: 1.25;
}
.service-card__lead {
    position: relative; z-index: 1;
    margin: 0; color: var(--color-text-muted); font-size: .95rem; line-height: 1.55;
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}

.service-card__features { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-2); }
.service-card__features li { display: flex; align-items: flex-start; gap: var(--space-3); color: var(--color-text); font-size: .95rem; line-height: 1.4; }
.service-card__tick {
    flex: 0 0 auto; width: 6px; height: 6px; margin: calc(.5lh - 3px) 3px 0;
    border-radius: 50%; background: var(--brand);
    box-shadow: 0 0 0 2.5px color-mix(in srgb, var(--brand) 22%, transparent);
}

.service-card__foot {
    margin-top: auto; padding-top: var(--space-3);
    border-top: 1px solid var(--color-border);
    display: flex; justify-content: space-between; align-items: center;
    flex-wrap: wrap; gap: var(--space-3);
}
.service-card__price {
    font-family: var(--font-heading); color: var(--color-heading);
    font-weight: var(--fw-semibold); font-size: 1.6rem; line-height: 1; white-space: nowrap;
}
.service-card__rub { color: var(--brand); }
.service-card__actions { display: flex; gap: var(--space-2); flex-wrap: wrap; }

/* §k27 — вся карточка услуги кликабельна → детальная (растянутая ссылка) */
.service-card__link { position: absolute; inset: 0; z-index: 2; border-radius: inherit; }
.service-card__actions .btn { position: relative; z-index: 3; }

.service-card:hover .btn--outline {
    background-color: var(--brand);
    background-image: var(--btn-sheen);
    color: var(--site-color-contrast);
    border-color: var(--brand);
    box-shadow: var(--shadow-brand);
}

@media (max-width: 768px) {
    .service-card__inner { padding: var(--space-3); }
    .service-card__img { margin: calc(-1 * var(--space-3)) calc(-1 * var(--space-3)) 0; }
}

@media (max-width: 600px) {
    .service-card__foot { flex-direction: column; align-items: stretch; }
    .service-card__actions { justify-content: stretch; }
    .service-card__actions .btn { flex: 1 1 auto; }
    .service-card__name { font-size: 1.1rem; }
    .service-card__lead,
    .service-card__features li { font-size: .85rem; }
    .service-card__price { font-size: 1.35rem; }
}

.love-calcs-panel .glass__body { padding: var(--space-5); }

.love-calcs-panel.calc-related__calcs .glass__body { padding: var(--space-4); }
.love-calcs-panel .dir-filter { margin-top: 0; margin-bottom: var(--space-5); }
.love-calcs { margin-block: 0; }
.love-calcs .calc-item__icon { position: relative; overflow: visible; }
.calc-item__badge {
    position: absolute; top: -7px; left: -7px; z-index: 2;
    padding: 2px 7px; border-radius: var(--radius-pill);
    color: #fff;
    font-family: var(--font-ui); font-weight: var(--fw-semibold);
    font-size: .6rem; line-height: 1.35; white-space: nowrap;
    background-color: var(--action); background-image: var(--btn-sheen);
    box-shadow: 0 3px 8px color-mix(in srgb, var(--action) 45%, transparent), inset 0 1px 0 var(--color-white-45);
    pointer-events: none;
}
.calc-item__badge--new {
    background-color: var(--action);
    box-shadow: 0 3px 8px color-mix(in srgb, var(--action) 45%, transparent), inset 0 1px 0 var(--color-white-45);
}
.calc-item__badge--soon {
    background-color: var(--color-club, #c69a3e);
    box-shadow: 0 3px 8px color-mix(in srgb, var(--color-club, #c69a3e) 45%, transparent), inset 0 1px 0 var(--color-white-45);
}

/* §k28 — корона «расчёт по подписке» в углу плашки */
.calc-crown {
    position: absolute; top: -7px; right: -7px; z-index: 2;
    width: 22px; height: 22px;
    display: flex; align-items: center; justify-content: center;
    line-height: 0;
    border-radius: var(--radius-pill); color: #fff;
    background-color: var(--brand); background-image: var(--btn-sheen);
    box-shadow: 0 3px 8px rgba(64, 83, 143, .45), inset 0 1px 0 var(--color-white-45);
    pointer-events: none;
}
.calc-crown__ic { display: block; width: 16px; height: 16px; fill: currentColor; }

.calc-crown--partial { width: auto; padding: 0 4px; gap: 1px; }
.calc-crown__plus {
    font-weight: 700; font-size: 14px; line-height: 1; color: #fff;
    font-family: var(--font-ui, sans-serif);
}

.calc-item__icon { position: relative; overflow: visible; }
.videos-block .glass__body { padding: var(--space-4); }

@media (max-width: 768px) {
    .videos-block .glass__body { padding: var(--space-3); }
}

.banner-panel {
    margin-top: var(--banner-gap, var(--space-4));
}
.banner-panel .love-calcs-panel {
    width: fit-content;
    /* §k29 — кэп ширины: fit-content, пока плитки влезают ~5 в ряд */
    max-width: 760px;
    margin-inline: 0;
    background: rgba(255, 255, 255, .4);
    -webkit-backdrop-filter: blur(2px);
    backdrop-filter: blur(2px);
}
.banner-panel .glass__body {
    padding: var(--space-4);
}
.banner-panel .calcs__grid {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
}
.banner-panel .calcs__grid > li {
    width: 120px;
}
.banner-panel .calc-item__label {
    height: auto;
    font-weight: 600;
}

/* §k30 — широкий вариант (love-cards): много расчётов + фильтр → грид */
.banner-panel--wide .love-calcs-panel { width: auto; max-width: none; }
.banner-panel--wide .calcs__grid {
    display: grid;
    gap: var(--space-3) var(--space-2);
}
.banner-panel--wide .calcs__grid > li { width: auto; }

/* «Средства связи»: иконки-плитки по ширине контента, в один ряд (nowrap) */
.banner-panel .calcs__grid.social-icons > li { width: auto; }
.banner-panel .calcs__grid.social-icons { gap: var(--space-2); flex-wrap: nowrap; }
.banner-panel .love-calcs-panel--icons .glass__body { padding: var(--space-2); }
@media (max-width: 360px) {   /* узко для одной строки — разрешаем перенос */
    .banner-panel .calcs__grid.social-icons { flex-wrap: wrap; }
}

/* §k31 — узкие экраны: max-width ужимает панель до N колонок (fit-content на flex-wrap сам не ужмётся) */
@media (max-width: 768px) {
    .banner-panel:not(.banner-panel--wide) .love-calcs-panel { max-width: 472px; }
}
@media (max-width: 520px) {
    .banner-panel:not(.banner-panel--wide) .love-calcs-panel { max-width: 328px; }
}
@media (max-width: 600px) {
    .banner-panel .glass__body { padding: var(--space-3); }
}

.video-card { padding: var(--space-2); cursor: grab; }
.video-card__frame {
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;

    border-radius: calc(var(--glass-radius) - var(--space-2));
    background: var(--panel-dark);
}
.video-card__poster { width: 100%; height: 100%; object-fit: cover; display: block; }

.video-card__frame::after {
    content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
    background: linear-gradient(180deg, var(--color-navy-50) 0%, rgba(40, 51, 95, .08) 34%, rgba(40, 51, 95, .55) 100%);
}
.video-card__title {
    position: absolute; top: var(--space-3); left: var(--space-3); right: var(--space-3); z-index: 2;
    color: #fff; font-family: var(--font-heading); font-weight: var(--fw-semibold);
    font-size: 1rem; line-height: 1.3;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
    text-shadow: 0 1px 5px rgba(0, 0, 0, .45);
}
.video-card__players {
    position: absolute; inset: 0; z-index: 2;
    display: flex; align-items: center; justify-content: center; gap: var(--space-2); flex-wrap: wrap;
}

.video-card__play {
    display: inline-flex; padding: 0; border: none; background: none; cursor: pointer;
    filter: drop-shadow(0 4px 12px rgba(0, 0, 0, .35));
    transition: transform .15s ease;
}
.video-card__play:hover { transform: scale(1.09); }
.video-card__play svg { display: block; }
.video-card__play--yt svg { width: 60px; height: auto; }
.video-card__play--vk svg { width: 46px; height: 46px; }

/* §k32 — перебиваем Swiper cursor:grab на вложенных (zoom-in/pointer) */
.gallery__link, .gallery__link * { cursor: zoom-in; }
.video-card__play, .video-card__play * { cursor: pointer; }

.video-card__iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; z-index: 3; }
.video-card__frame.is-playing .video-card__poster,
.video-card__frame.is-playing .video-card__title,
.video-card__frame.is-playing .video-card__players,
.video-card__frame.is-playing::after { display: none; }

.service-detail { display: flex; flex-direction: column; gap: var(--layer-gap); }

/* Описание услуги: текст + картинка анонса справа (как .about-part__section; квадрат 35%, горизонталь 45%).
   Экран ≤1400 — картинка уходит под текст, по центру. */
.service-detail__cols { display: flex; align-items: center; gap: var(--space-5); }
.service-detail__cols .prose { flex: 1 1 auto; min-width: 0; }
.service-detail__media { flex: 0 0 35%; }
.service-detail__media--wide { flex-basis: 45%; }
.service-detail__media img {
    width: 100%; height: auto; display: block;
    border-radius: var(--radius-lg);
}
@media (max-width: 1400px) {
    .service-detail__cols { flex-direction: column; gap: var(--space-2); }
    .service-detail__media,
    .service-detail__media--wide { flex-basis: auto; width: 100%; max-width: 560px; margin-inline: auto; }
}

/* Доп-панели услуги (EXTRA_TEXT_1/2) — цветная тень как у .calc-note-panel: 1 коралл, 2 зелёная. */
.service-extra--coral { box-shadow: var(--glass-highlight), 0 0 4px rgba(239, 90, 111, .60), 0 4px 18px rgba(239, 90, 111, .48); }
.service-extra--green { box-shadow: var(--glass-highlight), 0 0 4px rgba(46, 125, 50, .60), 0 4px 18px rgba(46, 125, 50, .48); }
.service-extra--green .prose { font-weight: var(--fw-semibold); }

/* Липкий buy-bar услуги: пилюля по центру под шапкой; выезжает, когда hero-оффер ушёл за экран.
   top ставит JS (initServiceBuybar) под плавающую шапку — как лента forecast-nav. */
.service-buybar {
    position: fixed; top: var(--layer-gap);
    right: max(var(--layer-gap), calc(50vw - var(--page-max) / 2 + var(--layer-gap)));
    z-index: calc(var(--z-header) - 1);
    display: flex; align-items: center; gap: var(--space-3);
    max-width: calc(100vw - var(--space-4));
    padding: 6px 6px 6px var(--space-4);
    background: var(--glass-bg);
    -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(140%); backdrop-filter: blur(var(--glass-blur)) saturate(140%);
    border: 1px solid var(--glass-border); border-radius: var(--radius-pill);
    box-shadow: var(--glass-shadow), var(--glass-highlight);
    opacity: 0; visibility: hidden; pointer-events: none;
    transform: translateY(-12px);
    transition: opacity   var(--anim-expand-dur) var(--anim-expand),
                transform var(--anim-expand-dur) var(--anim-expand),
                visibility 0s var(--anim-expand-dur);
}
.service-buybar.is-visible {
    opacity: 1; visibility: visible; pointer-events: auto;
    transform: translateY(0);
    transition: opacity   var(--anim-expand-dur) var(--anim-expand),
                transform var(--anim-expand-dur) var(--anim-expand);
}
.service-buybar[hidden] { display: none; }
/* fixed-панель стоит последним ребёнком .content-layer — гасим margin от ритма .content-layer > * + * (top ведёт JS). */
.content-layer > .service-buybar { margin-top: 0; }
.service-buybar__price { font-family: var(--font-heading); font-weight: var(--fw-semibold); font-size: 1.15rem; color: var(--color-heading); white-space: nowrap; }
.service-buybar__cta { flex: 0 0 auto; white-space: nowrap; }
@media (max-width: 480px) {
    .service-buybar { gap: var(--space-2); padding: 4px 4px 4px var(--space-3); }
    .service-buybar__cta { padding: 8px 14px 10px; font-size: .8rem; }
}
@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
    .service-buybar { background: rgba(255, 255, 255, .92); }
}

.service-detail__back { margin-block: calc(var(--space-4) - var(--layer-gap)); }

.page-header__offer {
    margin-top: var(--layer-gap);
    display: inline-flex; align-items: center; gap: var(--space-4); flex-wrap: wrap;
}
@media (max-width: 600px) {
    .page-header__offer { width: 100%; }
}

/* «Правила оформления услуг» — стеклянный чип между лидом и оффером (в стиле .page-header__lead/__author). */
.page-header__rules {
    display: flex; width: fit-content; max-width: 100%; align-self: flex-start;
    align-items: center; gap: var(--space-2);
    margin-top: var(--layer-gap);
    padding: var(--space-2) var(--space-3);
    border-radius: var(--radius-pill);
    background: rgba(255, 255, 255, .4);
    -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px);
    border: 1px solid var(--glass-border);
    box-shadow: var(--glass-shadow);
    font-family: var(--font-ui); font-size: .85rem; font-weight: var(--fw-medium);
    color: var(--site-color-dark); text-decoration: none;
    transition: color var(--transition), background var(--transition),
                box-shadow var(--transition), transform var(--transition);
}
.page-header__rules:hover {
    color: var(--brand); background: rgba(255, 255, 255, .62);
    box-shadow: var(--glass-shadow-hover); transform: translateY(-1px);
}
.page-header__rules svg {
    width: 17px; height: 17px; flex: 0 0 auto;
    fill: none; stroke: currentColor; stroke-width: 1.7;
    stroke-linecap: round; stroke-linejoin: round;
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    .page-header__rules { background: rgba(255, 255, 255, .82); }
}
.page-header__rules + .page-header__lead { margin-top: var(--layer-gap); }

/* §k33 — медиа-панель услуги: видео + галерея → 3-колоночная сетка (--split) */
.service-media__grid { display: grid; gap: var(--space-4); }
.service-media__grid--split { grid-template-columns: 450px auto minmax(0, 1fr); align-items: stretch; }
.service-media__video { min-width: 0; max-width: 450px; }
.service-media__video .video-card { cursor: default; }

.video-card__native { display: block; width: 100%; height: 100%; object-fit: contain; background: var(--panel-dark); }
.video-card__frame--native::after { display: none; }

.service-media__gallery { min-width: 0; }
/* §k34 — галерея рядом с видео (--split): слайдер растянут на высоту видео */
.service-media__grid--split .service-media__gallery { position: relative; }

.service-media__grid--split .gallery { position: absolute; inset: 0; margin: 0; display: flex; flex-direction: column; }
.service-media__grid--split .gallery__slider { flex: 1 1 auto; min-height: 0; }
.service-media__grid--split .gallery__swiper,
.service-media__grid--split .gallery__swiper .swiper-wrapper,
.service-media__grid--split .gallery__swiper .swiper-slide,
.service-media__grid--split .gallery__link { height: 100%; }
.service-media__grid--split .gallery__media-wrap { height: 100%; aspect-ratio: auto; }

.service-media__grid--split .gallery__swiper { padding-top: var(--space-2); padding-bottom: var(--space-2); }
.service-media__grid--split .gallery__dots { flex: 0 0 auto; margin-top: var(--space-3); }

/* §k35 — целевая ширина слайда (initServiceGallery считает по ней число видимых) */
.service-media__gallery { --sg-slide-w: 180px; }

/* §k36 — возвращаем точки в поток (Swiper вешает position:absolute) */
.service-media__gallery .gallery__dots { position: relative; }

.service-media__gallery .gallery__dots { display: none; }
@media (max-width: 768px) {
    .service-media__gallery .gallery__nav  { display: none; }
    .service-media__gallery .gallery__dots { display: flex; }
}

@media (max-width: 991px) {

    .service-media__grid--split { grid-template-columns: 1fr; }
    .service-media__grid--split .service-media__video { margin-inline: auto; }
    .service-media__grid--split .gallery { position: static; }
    .service-media__grid--split .gallery__slider,
    .service-media__grid--split .gallery__swiper,
    .service-media__grid--split .gallery__swiper .swiper-wrapper,
    .service-media__grid--split .gallery__swiper .swiper-slide,
    .service-media__grid--split .gallery__link { height: auto; }
    .service-media__grid--split .gallery__media-wrap { height: auto; aspect-ratio: 3 / 4; }

    .service-media__grid--split .divider-v { width: auto; height: 1px; }
    .service-media__grid--split .divider-v::before {
        left: 4%; right: 4%; top: 50%; bottom: auto;
        width: auto; height: 1px; transform: translateY(-50%);
        background: linear-gradient(90deg, transparent, rgba(68, 88, 143, .22) 18%, rgba(68, 88, 143, .22) 82%, transparent);
    }
}

.legal-page { display: flex; flex-direction: column; gap: var(--layer-gap); }
.legal-page a { color: var(--site-color-dark); text-decoration-thickness: 1px; text-underline-offset: 3px; }
.legal-page a:hover { color: var(--brand); }
.legal-intro .glass__body { display: grid; gap: var(--space-3); }
.legal-intro p { max-width: 980px; margin: 0; color: var(--color-text); }
.legal-toc .glass__body { display: grid; gap: var(--space-3); }
.legal-toc__title { margin: 0; }
.legal-toc__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-2);
}
.legal-toc__list a {
    display: flex;
    align-items: center;
    min-height: 44px;
    padding: 10px 14px 12px;
    border-radius: var(--radius);
    background: var(--site-color-light);
    color: var(--color-heading);
    font-family: var(--font-ui);
    font-size: .9rem;
    line-height: 1.35;
    text-decoration: none;
    box-shadow: 0 3px 8px rgba(60, 105, 160, .16), inset 0 1px 0 rgba(255, 255, 255, .6);
    transition: background-color var(--transition), color var(--transition),
                box-shadow var(--transition), transform var(--transition);
}
.legal-toc__list a:hover {
    background: var(--brand);
    background-image: var(--btn-sheen);
    color: var(--site-color-contrast);
    box-shadow: var(--shadow-brand-hover);
    transform: translateY(-2px);
}
.legal-section .glass__body { display: grid; gap: var(--space-3); }
.legal-section h2,
.legal-section h3,
.legal-section h4,
.legal-section p,
.legal-section ul,
.legal-section ol { margin: 0; }
.legal-section h2 { font-size: 1.35rem; }
.legal-section h3 { font-size: 1.08rem; margin-top: var(--space-1); }
.legal-section h4 { font-size: 1rem; margin-top: var(--space-1); }
.legal-section p,
.legal-section li { color: var(--color-text); }
.legal-section ul,
.legal-section ol { padding-left: 1.25rem; }
.legal-section li + li { margin-top: var(--space-1); }
.legal-section__num { color: inherit; }

.legal-page [id] { scroll-margin-top: 96px; }

@media (max-width: 1024px) {
    .legal-toc__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
    .legal-toc__list { grid-template-columns: 1fr; }
    .legal-section h2 { font-size: 1.15rem; }
}

.acc { display: flex; flex-direction: column; gap: var(--space-3); }

.acc-item { border-radius: var(--glass-radius); overflow: hidden; cursor: pointer; }
.acc-item__head { margin: 0; }

.acc-item__trigger {
    width: 100%; display: flex; align-items: center; justify-content: space-between;
    gap: var(--space-3);
    padding: var(--space-4);
    background: transparent; border: none; cursor: pointer; text-align: left;
    font-family: var(--font-heading); font-size: 1.05rem; line-height: 1.4;
    font-weight: var(--fw-semibold);
    color: var(--color-heading);
    transition: color var(--btn-transition);
}
.acc-item__trigger:hover { color: var(--brand); }
.acc-item__trigger:focus-visible { outline: none; box-shadow: inset 0 0 0 2px var(--action-light); }
.acc-item__title { flex: 1 1 auto; min-width: 0; }

.acc-item__icon {
    flex: 0 0 auto;
    width: 8px; height: 8px;
    background-color: var(--brand);
    border-right: 2px solid var(--brand);
    border-bottom: 2px solid var(--brand);
    transform: rotate(45deg);
    offset-path: path("M0 4 Q 14 28 0 52");
    offset-rotate: 0deg;
    offset-distance: 0%;
    transition: offset-distance var(--anim-expand-dur) var(--anim-expand);
    position: relative; z-index: 1;
}
.acc-item.is-open .acc-item__icon { offset-distance: 100%; }

.acc-item__body {
    display: grid; grid-template-rows: 0fr;
    transition: grid-template-rows var(--anim-expand-dur) var(--anim-expand);
}
.acc-item.is-open .acc-item__body { grid-template-rows: 1fr; }

.acc-item__body-inner { overflow: hidden; min-height: 0; }
.acc-item__body-content {

    padding: 0 calc(var(--space-4) + var(--space-3) + var(--space-2)) var(--space-4) var(--space-4);
    color: var(--color-text-muted); font-size: .95rem; line-height: 1.6;
}
.acc-item__body-content > * { margin: 0; }
.acc-item__body-content > * + * { margin-top: var(--space-2); }

@media (prefers-reduced-motion: reduce) {
    .acc-item__body, .acc-item__icon { transition: none; }
}

@media (max-width: 768px) {
    .acc-item__trigger { padding: var(--space-3); }
    .acc-item__icon { offset-path: path("M0 4 Q 12 24 0 44"); }
}

.modal {
    position: fixed;
    inset: 0;
    z-index: var(--z-modal);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-4);
    background: rgba(40, 51, 95, .38);
    -webkit-backdrop-filter: blur(2px);
    backdrop-filter: blur(2px);
    opacity: 0;
    visibility: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    transition: opacity .22s ease, visibility .22s ease;
}
.modal[hidden] { display: none; }
.modal.is-open { opacity: 1; visibility: visible; }

.modal__dialog {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: var(--modal-w, 34rem);
    max-height: calc(100vh - var(--space-6));
    margin: auto;
    background: var(--glass-bg-frost);
    -webkit-backdrop-filter: blur(var(--glass-blur));
    backdrop-filter: blur(var(--glass-blur));
    border: 1px solid var(--glass-border);
    border-radius: var(--glass-radius);
    box-shadow: var(--glass-shadow), var(--glass-highlight);

    opacity: 0;
    transform: translateY(12px) scale(.98);
    transition: opacity .26s ease, transform .26s var(--anim-expand);
}
.modal.is-open .modal__dialog { opacity: 1; transform: none; }

.modal--sm { --modal-w: 26rem; }
.modal--md { --modal-w: 34rem; }
.modal--lg { --modal-w: 46rem; }
.modal--xl { --modal-w: 60rem; }

/* §k37 — поиск: стеклянная панель как плавающий хедер */
.modal--search { align-items: flex-start; padding: var(--layer-gap) var(--space-4) var(--space-4); }
.modal--search .modal__dialog {
    width: min(720px, 100%); max-width: none; max-height: none;
    margin: 0 auto; gap: var(--space-2);
    background: transparent; border: 0; border-radius: 0; box-shadow: none;
    -webkit-backdrop-filter: none; backdrop-filter: none;
    transform: translateY(-16px) scale(.98);
}
.modal--search.is-open .modal__dialog { transform: none; }

.search-modal__form {
    display: flex; align-items: center; gap: var(--space-3);
    width: 100%;
    padding: var(--space-2) var(--space-3) var(--space-2) var(--space-4);
}
.search-modal__icon {
    width: 22px; height: 22px; flex: 0 0 auto;
    background: var(--site-color-dark);
    -webkit-mask: url("../media/search-icon.svg") center/contain no-repeat;
            mask: url("../media/search-icon.svg") center/contain no-repeat;
}
.search-modal__input {
    flex: 1 1 auto; min-width: 0;
    border: 0; background: transparent; padding: var(--space-2) 0;
    font-family: var(--font-heading); font-size: 1.25rem; line-height: 1.2;
    color: var(--color-heading);
}
.search-modal__input::placeholder { color: var(--color-text-muted); }
.search-modal__input:focus { outline: none; }
.search-modal__input::-webkit-search-cancel-button,
.search-modal__input::-webkit-search-decoration { -webkit-appearance: none; appearance: none; display: none; }
.search-modal__loader { flex: 0 0 auto; width: 18px; height: 18px; color: var(--site-color-dark); }
.search-modal__close {
    flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
    width: 34px; height: 34px; padding: 0;
    border: 0; border-radius: 50%; background: transparent; cursor: pointer;
    color: var(--color-text-muted);
    transition: color var(--transition), background-color var(--transition);
}
.search-modal__close:hover { color: var(--action); background: var(--action-light); }
.search-modal__close svg { width: 18px; height: 18px; }

.search-modal__suggest {
    display: flex; flex-direction: column;
    padding: var(--space-2);
    background: var(--glass-bg-strong);
    border: 1px solid var(--glass-border);
    border-radius: var(--glass-radius);
    box-shadow: var(--glass-shadow), var(--glass-highlight);
    max-height: min(60vh, 460px); overflow-y: auto; overscroll-behavior: contain;
}
.search-modal__suggest[hidden] { display: none; }
.search-modal__item {
    display: flex; flex-direction: column; gap: 2px;
    padding: var(--space-2) var(--space-2h);
    border-radius: var(--radius);
    text-decoration: none; color: var(--color-heading);
    transition: background-color var(--transition), color var(--transition);
}
.search-modal__item:hover,
.search-modal__item.is-active { background: var(--site-color-light); }
.search-modal__item-type {
    font: 600 .72rem/1 var(--font-ui); text-transform: uppercase; letter-spacing: .04em;
    color: var(--color-text-muted);
}
.search-modal__item-title { font-size: .98rem; line-height: 1.3; }
.search-modal__empty { padding: var(--space-3) var(--space-2h); color: var(--color-text-muted); }
.search-modal__all {
    display: flex; justify-content: center;
    margin-top: var(--space-2); padding-top: var(--space-2);
    border-top: 1px solid var(--color-border);
    text-decoration: none;
}
.search-modal__all-label {
    padding: var(--space-2) var(--space-3);
    border-radius: var(--radius);
    font-size: .88rem; color: var(--site-color-dark);
    transition: color var(--transition), background-color var(--transition);
}
.search-modal__all:hover .search-modal__all-label,
.search-modal__all.is-active .search-modal__all-label { color: var(--action); background: var(--action-light); }

@media (max-width: 600px) {
    .modal--search { padding: var(--layer-gap); }
    .search-modal__input { font-size: 1.1rem; }
}

/* §k38 — страница результатов поиска /search/ */
.search-page { display: flex; flex-direction: column; gap: var(--space-4); }
.search-page__form {
    display: flex; align-items: center; gap: var(--space-3);
    padding: var(--space-2) var(--space-2) var(--space-2) var(--space-4);
}
.search-page__icon {
    width: 22px; height: 22px; flex: 0 0 auto;
    background: var(--site-color-dark);
    -webkit-mask: url("../media/search-icon.svg") center/contain no-repeat;
            mask: url("../media/search-icon.svg") center/contain no-repeat;
}
.search-page__input {
    flex: 1 1 auto; min-width: 0;
    border: 0; background: transparent; padding: var(--space-2) 0;
    font-family: var(--font-heading); font-size: 1.15rem; line-height: 1.2;
    color: var(--color-heading);
}
.search-page__input::placeholder { color: var(--color-text-muted); }
.search-page__input:focus { outline: none; }
.search-page__input::-webkit-search-cancel-button,
.search-page__input::-webkit-search-decoration { -webkit-appearance: none; appearance: none; display: none; }

.search-page__stats {
    align-self: flex-start;
    margin-bottom: 0;
    padding: var(--space-2) var(--space-3);
    border-radius: var(--radius-pill);
    background: var(--site-color-dark); color: #fff;
    box-shadow: var(--shadow-brand);
    font-size: .9rem;
}
.search-page__stats b { color: #ffe08a; }
.search-page__note { padding: var(--space-4); color: var(--color-text); }

.search-results { display: flex; flex-direction: column; gap: var(--layer-gap); margin: 0; padding: 0; list-style: none; }
.search-result { display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-3) var(--space-4); }
.search-result__title {
    font-family: var(--font-heading); font-size: 1.15rem; font-weight: var(--fw-bold); line-height: 1.3;
    color: var(--color-heading); text-decoration: none;
    transition: color var(--transition);
}
.search-result__title:hover { color: var(--brand); }
.search-result__title:hover b { color: var(--brand); }
.search-result__path { font-size: .82rem; color: var(--color-text-muted); }
.search-result__body { color: var(--color-text); line-height: 1.55; }
.search-result__title b,
.search-result__body b { background: #ffe08a; color: #3a2f14; border-radius: 3px; padding: 0 1px; font-weight: inherit; transition: color var(--transition); }
.search-result__date { font-size: .82rem; color: var(--color-text-muted); }

@media (max-width: 600px) {
    .search-page__form { padding: var(--space-2) var(--space-2) var(--space-2) var(--space-3); }
    .search-page__input { font-size: 1.05rem; }
    .search-result { padding: var(--space-3); }
}

.modal__header {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    padding: var(--space-3);
}
.modal__title {
    margin: 0;
    font-family: var(--font-heading);
    font-weight: var(--fw-bold);
    font-size: 1.25rem;
    line-height: 1.3;
    color: var(--color-heading);
}
.modal__close {
    flex: 0 0 auto;
    margin-left: auto;
    width: 2.25rem;
    height: 2.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--color-text-muted);
    background: var(--glass-bg-strong);
    border: 1px solid var(--glass-border);
    border-radius: var(--radius-pill);
    box-shadow: var(--glass-shadow);
    cursor: pointer;
    transition: color var(--transition), box-shadow var(--transition);
}
.modal__close:hover { color: var(--color-heading); box-shadow: var(--glass-shadow-hover); }
.modal__close svg { width: 1rem; height: 1rem; }

.modal__body {
    padding: 0 var(--space-3);
    overflow-y: auto;
    overscroll-behavior: contain;
    color: var(--color-text);
    line-height: var(--lh-base);
    scrollbar-width: none;
}
.modal__body::-webkit-scrollbar { display: none; }

.modal__shade {
    position: absolute; left: 0; right: 0; z-index: 2; height: 26px;
    pointer-events: none; opacity: 0; transition: opacity .2s;
}
.modal__shade--top    { background: linear-gradient(180deg, rgba(40, 51, 95, .28), transparent); border-radius: var(--radius-lg) var(--radius-lg) 0 0; }
.modal__shade--bottom { background: linear-gradient(0deg, rgba(40, 51, 95, .28), transparent); border-radius: 0 0 var(--radius-lg) var(--radius-lg); }
.modal__shade.is-on { opacity: 1; }
.modal__body.is-fit { overflow-y: hidden; }
.modal__scrollbar {
    position: absolute; right: 3px; z-index: 3; width: 3px;
    border-radius: var(--radius-pill); background: rgba(68, 88, 143, .12);
    pointer-events: none; opacity: 0; transition: opacity .2s;
}
.modal__scrollbar.is-on { opacity: 1; }
.modal__scrollthumb { display: block; width: 100%; border-radius: inherit; background: var(--site-color); }
.modal__dialog > .modal__body:first-of-type { margin-top: var(--space-3); }
.modal__dialog > .modal__body:last-of-type  { margin-bottom: var(--space-3); }
.modal__body > :first-child { margin-top: 0; }
.modal__body > :last-child  { margin-bottom: 0; }

.modal__body .form-label { font-size: .82rem; margin-bottom: 2px; }
.modal__body .inputtext,
.modal__body .inputselect,
.modal__body .inputtextarea { font-size: .85rem; }
.modal__body .inputtextarea { min-height: 96px; }
.modal__body :not(.feedback-fields) > .form-field + .form-field { margin-top: var(--space-2); }
.ff-count { position: relative; }
.ff-count .inputtext { padding-right: 3.6em; }
.ff-count__num {
    position: absolute; top: 50%; right: 12px; transform: translateY(-50%);
    font-size: .75rem; color: var(--color-text-muted); font-variant-numeric: tabular-nums; pointer-events: none;
}
.modal__body .radio-text::before,
.modal__body .checkbox-text::before {
    background: #fff;
    box-shadow: inset 0 0 0 1px rgba(40, 51, 95, .12),
                inset 0 1px 2px rgba(40, 51, 95, .3);
}
.modal__body .checkbox-text::after {
    left: 3px; width: 10px; height: 10px;
    background: #f0f0f0;
    box-shadow: 0 0 0 1px rgba(40, 51, 95, .12),
                0 1px 2px rgba(40, 51, 95, .3),
                inset 0 -1px 1px rgba(40, 51, 95, .18);
}

.ff-date-row { display: grid; grid-template-columns: 0.8fr 1.5fr 1.1fr; gap: var(--space-2); }

.ff-date-row--noyear { grid-template-columns: 23.5% 44.1%; justify-content: center; }

#form-planet .ff-date-row--noyear { justify-content: start; }

.modal__footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: var(--space-2);
    padding: var(--space-3);
}

.modal__footer .btn { padding: 8px 16px 10px; font-size: .8rem; }

.welcome { text-align: center; }
.ba {
    position: relative; aspect-ratio: 1; margin: 0 0 var(--space-3); overflow: hidden;
    border-radius: var(--radius); border: 1px solid var(--glass-border); box-shadow: var(--glass-shadow);
    user-select: none;
}
.ba__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.ba__img--new { clip-path: inset(0 0 0 var(--pos)); }
.ba__handle {
    position: absolute; top: 0; bottom: 0; left: var(--pos); width: 2px; margin-left: -1px;
    background: #fff; box-shadow: 0 0 6px rgba(40, 51, 95, .45); pointer-events: none;
}
.ba__handle::after {
    content: "‹ ›"; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
    width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%;
    background: #fff; color: var(--site-color-dark); font-size: 1.1rem; font-weight: var(--fw-bold); letter-spacing: .1em;
    box-shadow: 0 2px 10px rgba(40, 51, 95, .3);
}
.ba__tag {
    position: absolute; top: var(--space-2); padding: 3px 10px; border-radius: var(--radius-pill);
    font-size: .75rem; font-weight: var(--fw-bold); color: #fff; background: rgba(40, 51, 95, .72); pointer-events: none;
}
.ba__tag--old { left: var(--space-2); }
.ba__tag--new { right: var(--space-2); background: var(--brand); }
.ba__range { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: ew-resize; }
.welcome__lead { margin: 0 auto var(--space-3); max-width: 460px; font-size: 1rem; line-height: 1.6; color: var(--color-text); }
.welcome__list { margin: 0 0 var(--space-3); padding: 0; list-style: none; text-align: left; display: grid; gap: var(--space-2); }
.welcome__list li {
    position: relative; padding: var(--space-2) var(--space-3) var(--space-2) calc(var(--space-3) + 18px);
    background: var(--glass-bg-strong); border: 1px solid var(--glass-border); border-radius: var(--radius);
    line-height: 1.5;
}
.welcome__list li::before {
    content: ""; position: absolute; left: var(--space-3); top: calc(var(--space-2) + .5lh - 3px);
    width: 6px; height: 6px; border-radius: 50%; background: var(--brand);
    box-shadow: 0 0 0 2.5px color-mix(in srgb, var(--brand) 22%, transparent);
}
.welcome__list b { color: var(--color-heading); }
.welcome__note { margin: 0; font-size: .9rem; color: var(--color-text-muted); }
.modal--welcome .modal__footer { justify-content: center; }
.modal--welcome .modal__footer .btn { padding: 11px 24px 13px; font-size: .875rem; }

.modal__loader {
    padding: var(--space-5) 0;
    text-align: center;
    color: var(--color-text-muted);
}

.am-scroll-lock { overflow: hidden; }

@media (max-width: 480px) {
    .modal { padding: 0 var(--layer-gap) var(--layer-gap); align-items: flex-end; }
    .modal__dialog {
        max-width: none;
        max-height: 92vh;
    }

    .modal--search { align-items: flex-start; padding: var(--layer-gap); }
}

@media (prefers-reduced-motion: reduce) {
    .modal, .modal__dialog { transition: opacity .15s ease, visibility .15s ease; }
    .modal__dialog { transform: none; }
}

#am-progress {
    position: fixed;
    inset: 0 0 auto 0;
    height: 6px;
    z-index: var(--z-progress);
    pointer-events: none;
    opacity: 0;
    transition: opacity .3s ease;
}
#am-progress.is-active { opacity: 1; }
.am-progress__bar {
    height: 100%;
    transform: scaleX(0);
    transform-origin: left center;
    background: linear-gradient(90deg, var(--brand), var(--action));
    box-shadow: 0 0 12px rgba(90, 140, 200, .7), 0 1px 3px rgba(90, 140, 200, .5);
}

[id^="wait_comp_"] { display: none; }

.to-top {
    --to-top-size: 46px;
    position: fixed;

    right: max(var(--layer-gap), calc((100% - var(--page-max)) / 2 - var(--to-top-size) - var(--layer-gap)));
    bottom: var(--layer-gap);
    z-index: var(--z-header);
    width: var(--to-top-size);
    height: var(--to-top-size);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--glass-border);
    border-radius: var(--radius-pill);
    background: var(--bg-content);
    color: var(--site-color-dark);
    box-shadow: var(--glass-shadow), var(--glass-highlight);
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(16px);
    transition: opacity var(--transition), visibility var(--transition),
                background-color var(--transition), color var(--transition),
                box-shadow var(--transition), transform var(--transition);
}
.to-top.is-visible { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); }
.to-top:hover {
    background-color: var(--brand);
    background-image: var(--btn-sheen);
    color: var(--site-color-contrast);
    box-shadow: var(--shadow-brand-hover);
}
.to-top svg { width: 20px; height: 20px; }

@media (max-width: 768px) {
    .to-top { --to-top-size: 36px; }
    .to-top svg { width: 16px; height: 16px; }
}

/* «Поделиться» (standalone): вид как «Наверх», позицию над ней ведёт main.js */
.share-btn {
    --to-top-size: 46px;
    position: fixed;
    right: max(var(--layer-gap), calc((100% - var(--page-max)) / 2 - var(--to-top-size) - var(--layer-gap)));
    bottom: var(--layer-gap);
    z-index: var(--z-header);
    width: var(--to-top-size);
    height: var(--to-top-size);
    display: none;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--glass-border);
    border-radius: var(--radius-pill);
    background: var(--bg-content);
    color: var(--site-color-dark);
    box-shadow: var(--glass-shadow), var(--glass-highlight);
    cursor: pointer;
    transition: bottom var(--transition), background-color var(--transition),
                color var(--transition), box-shadow var(--transition);
}
@media (display-mode: standalone) { .share-btn { display: inline-flex; } }
html.is-standalone .share-btn { display: inline-flex; }
.share-btn:hover {
    background-color: var(--brand);
    background-image: var(--btn-sheen);
    color: var(--site-color-contrast);
    box-shadow: var(--shadow-brand-hover);
}
.share-btn svg { width: 20px; height: 20px; }
.share-btn__ok { display: none; }
.share-btn.is-copied .share-btn__ic { display: none; }
.share-btn.is-copied .share-btn__ok { display: inline-block; color: var(--action); }

@media (max-width: 768px) {
    .share-btn { --to-top-size: 36px; }
    .share-btn svg { width: 16px; height: 16px; }
}

.account-menu > .account-menu__push {
    position: relative;
    display: none; align-items: center; gap: var(--space-2);
    margin-bottom: 4px; padding: 12px 10px 14px;
    border-bottom: 1px solid var(--glass-border);
    border-radius: var(--radius) var(--radius) 0 0;
    -webkit-tap-highlight-color: transparent;
}
html.is-standalone.has-push .account-menu > .account-menu__push { display: flex; }
@media (max-width: 768px) {
    .account-menu__status + .account-menu__push { padding-top: 8px; }
}
@media (hover: hover) {
    .account-menu > .account-menu__push:hover { background: var(--site-color-light); }
}
.account-menu__push-toggle {
    padding: 0; border: 0; background: none; cursor: pointer; text-align: left;
    color: var(--color-heading); font-family: var(--font-ui); font-size: .9rem; white-space: nowrap;
}
.account-menu__push-toggle::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
.account-menu__push-info {
    position: relative; z-index: 2;
    display: inline-flex; align-items: center; justify-content: center;
    width: 18px; height: 18px; padding: 0; flex: 0 0 auto;
    border: 1.5px solid currentColor; border-radius: 50%;
    background: none; cursor: pointer;
    color: var(--color-text-muted); font-family: var(--font-ui); font-size: .7rem; font-weight: 700; line-height: 1;
}
.account-menu__push-info::before { content: ""; position: absolute; inset: -10px -12px; }
.account-menu__push-info:hover { color: var(--brand); }
.account-menu__push-switch {
    position: relative; flex: 0 0 auto; margin-left: auto;
    width: 36px; height: 20px; border-radius: 999px;
    background: color-mix(in srgb, var(--color-text-muted) 35%, transparent);
    pointer-events: none;
    transition: background-color var(--transition);
}
.account-menu__push-switch::before {
    content: ""; position: absolute; top: 2px; left: 2px;
    width: 16px; height: 16px; border-radius: 50%;
    background: #fff; box-shadow: 0 1px 3px rgb(0 0 0 / .2);
    transition: transform var(--transition);
}
html[data-push="on"] .account-menu__push-switch { background: var(--brand); }
html[data-push="on"] .account-menu__push-switch::before { transform: translateX(16px); }
.account-menu__push.is-busy .account-menu__push-toggle { pointer-events: none; }
.account-menu__push-switch .am-loader { position: absolute; top: 4px; left: 4px; width: 12px; height: 12px; display: none; color: var(--brand); }
.account-menu__push-switch .am-loader::before {
    -webkit-mask-image: radial-gradient(farthest-side, transparent calc(100% - 2px), #000 calc(100% - 1.5px));
            mask-image: radial-gradient(farthest-side, transparent calc(100% - 2px), #000 calc(100% - 1.5px));
}
.account-menu__push-switch .am-loader::after { width: 2px; height: 2px; margin-left: -1px; }
html[data-push="on"] .account-menu__push-switch .am-loader { left: 20px; }
.account-menu__push.is-busy .account-menu__push-switch .am-loader { display: block; }

.push-sheet { text-align: center; }
.push-sheet__icon {
    display: inline-flex; align-items: center; justify-content: center;
    width: 64px; height: 64px; margin-bottom: var(--space-3);
    border-radius: 50%;
    background: color-mix(in srgb, var(--brand) 14%, transparent);
    color: var(--brand);
}
.push-sheet__icon svg { width: 32px; height: 32px; }
.push-sheet__lead { margin: 0 0 var(--space-2); line-height: 1.55; color: var(--color-text); }
.push-sheet__list { margin: 0 0 var(--space-3); padding: 0; list-style: none; text-align: left; display: grid; gap: var(--space-2); }
.push-sheet__list li {
    position: relative; padding: var(--space-2) var(--space-3) var(--space-2) calc(var(--space-3) + 18px);
    background: var(--glass-bg-strong); border: 1px solid var(--glass-border); border-radius: var(--radius);
    line-height: 1.5;
}
.push-sheet__list li::before {
    content: ""; position: absolute; left: var(--space-3); top: calc(var(--space-2) + .5lh - 3px);
    width: 6px; height: 6px; border-radius: 50%; background: var(--brand);
    box-shadow: 0 0 0 2.5px color-mix(in srgb, var(--brand) 22%, transparent);
}
.push-sheet__list b { color: var(--color-heading); }
.push-sheet__note { margin: 0; font-size: .9rem; line-height: 1.5; color: var(--color-text-muted); }
.modal--push .modal__footer { justify-content: center; }
.modal--push .modal__footer .btn { flex: 1 1 0; }
.modal--push-info .modal__footer .btn { flex: 0 0 auto; min-width: 140px; }

/* Cookie-согласие: плашка снизу (initCookieConsent) */
.cookie-bar {
    position: fixed; left: 0; right: 0; bottom: 0;
    z-index: var(--z-overlay);
    padding: var(--space-3);
    pointer-events: none;
}
.cookie-bar[hidden] { display: none; }
.cookie-bar__inner {
    pointer-events: auto;
    max-width: 640px; margin-inline: auto;
    display: flex; flex-direction: column; gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    opacity: 0; transform: translateY(16px);
    transition: opacity var(--transition), transform var(--transition);
}
.cookie-bar.is-in .cookie-bar__inner { opacity: 1; transform: translateY(0); }
.cookie-bar__text { min-width: 0; }
.cookie-bar__title { display: block; font-family: var(--font-heading); font-weight: var(--fw-semibold); color: var(--color-heading); }
.cookie-bar__msg { margin: 2px 0 0; font-size: .82rem; line-height: 1.4; color: var(--color-text); }
.cookie-bar__msg a { color: var(--action); }
.cookie-bar__more { font-family: var(--font-ui); font-size: .85rem; color: var(--site-color-dark); white-space: nowrap; }
/* «Подробнее» слева (margin-auto), кнопки справа — один ряд */
.cookie-bar__actions { display: flex; align-items: center; gap: var(--space-3); flex-wrap: nowrap; }
.cookie-bar__actions .cookie-bar__more { margin-right: auto; }
.cookie-bar__actions .btn { flex: 0 1 auto; min-width: 0; }
@media (max-width: 400px) {   /* ≤400: «Подробнее» над кнопками */
    .cookie-bar__actions { flex-wrap: wrap; justify-content: center; }
    .cookie-bar__actions .cookie-bar__more { flex-basis: 100%; text-align: center; }
}
.cookie-block__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-3); margin-top: var(--space-4); }

/* §k40 — медиа в отзывах */
.review-media { margin-top: var(--space-3); max-width: 100%; }
.review-media--video {
    position: relative; overflow: hidden;
    border-radius: var(--radius-lg); background: rgba(18, 24, 52, .92);
}
.review-media__video { display: block; width: 100%; max-height: 22rem; object-fit: contain; }
.review-media__play {
    position: absolute; inset: 0; margin: auto;
    width: 56px; height: 56px; border: 0; border-radius: 50%;
    display: grid; place-items: center; cursor: pointer;
    background: rgba(255, 255, 255, .92); color: var(--brand);
    box-shadow: 0 4px 16px rgba(18, 24, 52, .35);
    transition: transform var(--transition);
}
.review-media__play:hover { transform: scale(1.06); }
.review-media__play svg { width: 24px; height: 24px; margin-left: 3px; fill: currentColor; }
.review-media--video.is-playing .review-media__play { display: none; }

.am-audio {
    display: flex; align-items: center; gap: var(--space-3);
    padding: 6px; border-radius: var(--radius-pill);
    background: var(--site-color-light);
    box-shadow: var(--glass-shadow), var(--glass-highlight);
}
.am-audio__btn {
    flex: 0 0 36px; width: 36px; height: 36px; padding: 0; border: 0; border-radius: 50%;
    display: grid; place-items: center; cursor: pointer;
    background: var(--brand); color: #fff;
}
.am-audio__btn svg { width: 16px; height: 16px; fill: currentColor; }
.am-audio__i-play { margin-left: 2px; }
.am-audio__i-pause,
.am-audio.is-playing .am-audio__i-play { display: none; }
.am-audio.is-playing .am-audio__i-pause { display: block; }
.am-audio__bar {
    position: relative; flex: 1 1 auto; min-width: 0; height: 6px;
    border-radius: var(--radius-pill); background: rgba(255, 255, 255, .85);
    cursor: pointer; touch-action: none;
}
.am-audio__bar::before { content: ""; position: absolute; inset: -9px 0; }
.am-audio__fill { position: absolute; inset: 0 auto 0 0; width: 0; border-radius: inherit; background: var(--brand); }
.am-audio__bar:focus-visible { outline: 2px solid var(--action-light); outline-offset: 3px; }
.am-audio__time {
    flex: 0 0 auto; min-width: 2.8em; text-align: right;
    font-size: .8rem; color: var(--color-text-muted); font-variant-numeric: tabular-nums;
}
.am-audio__volbox { flex: 0 0 auto; display: flex; align-items: center; }
.am-audio__mute {
    flex: 0 0 36px; width: 36px; height: 36px; padding: 0; border: 0; border-radius: 50%;
    display: grid; place-items: center; cursor: pointer;
    background: #fff; color: var(--brand);
}
.am-audio__mute svg { width: 18px; height: 18px; fill: currentColor; }
.am-audio__i-muted,
.am-audio.is-muted .am-audio__i-vol { display: none; }
.am-audio.is-muted .am-audio__i-muted { display: block; }
.am-audio__vol {
    position: relative; flex: 0 0 auto; width: 0; height: 4px; margin-left: 0; opacity: 0;
    border-radius: var(--radius-pill); background: rgba(255, 255, 255, .85);
    cursor: pointer; touch-action: none; visibility: hidden;
    transition: width var(--anim-expand-dur) var(--anim-expand),
                margin-left var(--anim-expand-dur) var(--anim-expand),
                opacity var(--anim-expand-dur) var(--anim-expand),
                visibility 0s linear var(--anim-expand-dur);
}
.am-audio.is-vol-open .am-audio__vol {
    width: 64px; margin-left: var(--space-2); opacity: 1; visibility: visible;
    transition: width var(--anim-expand-dur) var(--anim-expand),
                margin-left var(--anim-expand-dur) var(--anim-expand),
                opacity var(--anim-expand-dur) var(--anim-expand);
}
.am-audio__vol::before { content: ""; position: absolute; inset: -10px 0; }
.am-audio__vol-fill { position: absolute; inset: 0 auto 0 0; width: 100%; border-radius: inherit; background: var(--brand); }
.am-audio__vol:focus-visible { outline: 2px solid var(--action-light); outline-offset: 3px; }

/* §k39 — страница клуба /club/ */
.club { display: flex; flex-direction: column; gap: var(--layer-gap); }
.club__offer { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--space-4); padding-block: var(--space-3); }
.popup-form__form { display: flex; flex-direction: column; gap: var(--space-3); }
.popup-form__radios { display: flex; flex-direction: column; gap: var(--space-2); }
.popup-form__fields .form-field--date    { grid-column: 1; grid-row: 2; }
.popup-form__fields .form-field--service { grid-column: 2; grid-row: 1; }
.popup-form__fields .form-field--contact { grid-column: 2; grid-row: 2; }
@media (max-width: 560px) {
    .popup-form__fields .form-field--date,
    .popup-form__fields .form-field--service,
    .popup-form__fields .form-field--contact { grid-column: auto; grid-row: auto; }
}
.popup-form__question { font-size: .875rem; font-weight: var(--fw-semibold); color: var(--color-heading); }
.popup-form__options { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-4); }
.popup-form__question .req-star { position: static; margin-left: 4px; }
.popup-form__actions { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-2); }
.popup-form__success { display: flex; flex-direction: column; gap: var(--space-2); }
.popup-form__success p { margin: 0; }
.popup-form__fields--single { grid-template-columns: 1fr; }

.am-file {
    position: relative; display: flex; align-items: center; gap: var(--space-3);
    padding: var(--space-2); border-radius: var(--radius-lg); cursor: pointer;
    background: #fff; border: 1px dashed var(--color-border);
    transition: border-color var(--transition);
}
.am-file:hover { border-color: var(--brand); }
.am-file__input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.am-file__input:focus-visible + .am-file__thumb { outline: 2px solid var(--action-light); outline-offset: 2px; }
.am-file__thumb {
    flex: 0 0 48px; width: 48px; height: 48px; border-radius: 50%;
    display: grid; place-items: center; overflow: hidden;
    background: var(--site-color-light) center / cover no-repeat; color: var(--brand);
}
.am-file__thumb svg { width: 22px; height: 22px; }
.am-file.is-filled .am-file__thumb svg { display: none; }
.am-file__text { display: flex; flex-direction: column; min-width: 0; }
.am-file__name { font-size: .9rem; color: var(--color-heading); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.am-file__hint { font-size: .78rem; color: var(--color-text-muted); }
