/* ============================================================
   ФИНМОНИТОР — главная «Финансовый сигнал»
   Выразительный первый экран и спокойный каталог данных.
============================================================ */

.home-hero {
    --home-ink: #07111f;
    --home-panel: rgba(13, 31, 52, .78);
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(3.7rem, 6vw, 5.7rem) 0 clamp(4.8rem, 7.5vw, 6.7rem);
    color: #f7fbff;
    background:
        radial-gradient(circle at var(--hero-x, 72%) var(--hero-y, 24%), rgba(56,189,248,.18), transparent 26%),
        radial-gradient(circle at 18% 86%, rgba(74,222,128,.09), transparent 25%),
        linear-gradient(145deg, #07111f 0%, #0a1728 52%, #0c1c2f 100%);
}
.home-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -2;
    opacity: .5;
    background-image: linear-gradient(rgba(148,163,184,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.055) 1px,transparent 1px);
    background-size: 68px 68px;
    mask-image: linear-gradient(to bottom,black,transparent 92%);
}
.home-hero::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 1px;
    background: linear-gradient(90deg,transparent,rgba(125,211,252,.5),rgba(74,222,128,.4),transparent);
}
.home-hero-glow { position:absolute; z-index:-1; border-radius:50%; filter:blur(1px); pointer-events:none; }
.home-hero-glow-one { width:520px; height:520px; right:-260px; top:-290px; border:1px solid rgba(125,211,252,.12); box-shadow:0 0 0 90px rgba(56,189,248,.025),0 0 0 180px rgba(56,189,248,.018); }
.home-hero-glow-two { width:290px; height:290px; left:-170px; bottom:-190px; border:1px solid rgba(74,222,128,.12); box-shadow:0 0 0 70px rgba(74,222,128,.022); }
.home-hero-grid { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(410px,.78fr); align-items:center; gap:clamp(3rem,7vw,7rem); }
.home-hero-copy { max-width:760px; animation:home-rise .75s cubic-bezier(.2,.75,.2,1) both; }
.home-kicker { display:inline-flex; align-items:center; gap:.6rem; margin-bottom:1.5rem; color:#a9bad0; font-size:.76rem; font-weight:720; letter-spacing:.085em; text-transform:uppercase; }
.home-kicker>span { width:8px; height:8px; border-radius:50%; background:#4ade80; box-shadow:0 0 0 6px rgba(74,222,128,.1); animation:home-live 2.4s ease-in-out infinite; }
.home-hero h1 { max-width:840px; margin:0; font-family:var(--font-display); font-size:clamp(3.4rem,6.5vw,6.15rem); font-weight:710; line-height:.91; letter-spacing:-.066em; text-wrap:balance; }
.home-hero h1 em { color:#7dd3fc; font-style:normal; font-weight:590; }
.home-hero-copy>p { max-width:650px; margin:1.7rem 0 0; color:#a9bad0; font-size:clamp(1rem,1.35vw,1.18rem); line-height:1.65; }
.home-hero-actions { display:flex; flex-wrap:wrap; gap:.75rem; margin-top:2rem; }
.home-btn { display:inline-flex; min-height:50px; align-items:center; justify-content:center; gap:.7rem; padding:.75rem 1.15rem; border:1px solid rgba(148,163,184,.25); border-radius:999px; font-size:.88rem; font-weight:720; transition:transform .2s ease,border-color .2s ease,background .2s ease; }
.home-btn:hover { transform:translateY(-2px); }
.home-btn-primary { color:#07111f; background:#f8fbff; border-color:#f8fbff; box-shadow:0 12px 34px rgba(3,12,24,.2); }
.home-btn-primary span { color:#0284c7; font-size:1.05rem; }
.home-btn-primary:hover { background:#dff5ff; }
.home-btn-secondary { color:#d7e8f6; background:rgba(255,255,255,.035); }
.home-btn-secondary:hover { border-color:rgba(125,211,252,.55); background:rgba(56,189,248,.08); }
.home-trust-line { display:flex; flex-wrap:wrap; gap:1rem 1.35rem; margin-top:2.2rem; color:#8192a7; font-size:.7rem; text-transform:uppercase; letter-spacing:.055em; }
.home-trust-line span { display:inline-flex; align-items:center; gap:.4rem; }
.home-trust-line i { color:#4ade80; font-style:normal; font-family:var(--font-mono); font-size:.64rem; }

.signal-panel { position:relative; min-height:500px; padding:1.25rem; overflow:hidden; border:1px solid rgba(125,211,252,.22); border-radius:30px; background:linear-gradient(155deg,rgba(16,37,61,.72),rgba(8,22,39,.68)); box-shadow:0 30px 90px rgba(0,0,0,.3),inset 0 1px rgba(255,255,255,.09),inset 1px 0 rgba(0,209,255,.05); backdrop-filter:blur(24px) saturate(135%); animation:home-panel-in .9s .12s cubic-bezier(.2,.75,.2,1) both; transform-style:preserve-3d; }
.signal-panel::before { content:''; position:absolute; inset:0; pointer-events:none; background:radial-gradient(circle at var(--panel-x,70%) var(--panel-y,20%),rgba(125,211,252,.14),transparent 32%); }
.signal-panel-head,.signal-panel-foot { position:relative; z-index:3; display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }
.signal-live { display:inline-flex; align-items:center; gap:.35rem; color:#83a0b8; font-size:.64rem; font-weight:700; letter-spacing:.07em; text-transform:uppercase; }
.signal-live i { width:6px; height:6px; border-radius:50%; background:#4ade80; box-shadow:0 0 12px #4ade80; }
.signal-panel h2 { margin:.28rem 0 0; font-family:var(--font-display); font-size:1.45rem; font-weight:650; letter-spacing:-.035em; }
.signal-index { color:#567085; font-family:var(--font-mono); font-size:.65rem; }
.signal-chart-head { position:relative; z-index:3; display:flex; align-items:end; justify-content:space-between; gap:1rem; margin-top:1.15rem; }
.signal-chart-head>div>span { display:block; color:#71869a; font-size:.62rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.signal-chart-head strong { display:block; margin-top:.15rem; color:#e9fbff; font-family:var(--font-display); font-size:2.15rem; line-height:1; letter-spacing:-.055em; }
.signal-trend { padding:.32rem .52rem; border:1px solid rgba(125,211,252,.16); border-radius:999px; color:#8ca2b7; background:rgba(3,13,25,.45); font-size:.66rem; font-weight:720; white-space:nowrap; }
.signal-trend.is-down { color:#7de9ff; border-color:rgba(0,209,255,.26); background:rgba(0,209,255,.08); }
.signal-trend.is-up { color:#ff9ceb; border-color:rgba(255,117,230,.27); background:rgba(255,117,230,.08); }
.signal-chart { position:relative; z-index:3; height:218px; margin:.55rem 0 .25rem; overflow:hidden; border:1px solid rgba(125,211,252,.11); border-radius:18px; background:linear-gradient(180deg,rgba(0,209,255,.035),rgba(3,13,25,.32)); }
.signal-chart svg { width:100%; height:188px; overflow:visible; }
.signal-chart-grid { fill:none; stroke:rgba(125,211,252,.09); stroke-width:.75; }
.signal-chart-area { fill:url(#signalAreaGradient); }
.signal-chart-line { fill:none; stroke:#00d1ff; stroke-width:2.6; stroke-linejoin:round; stroke-linecap:round; filter:url(#signalLineGlow); stroke-dasharray:1; stroke-dashoffset:1; animation:signal-chart-draw 1.25s .28s cubic-bezier(.2,.75,.2,1) forwards; }
.signal-chart-nodes circle { fill:#091522; stroke:#7de9ff; stroke-width:1.5; }
.signal-chart-current { fill:#ff75e6; stroke:#ffd1f7; stroke-width:1.5; filter:drop-shadow(0 0 6px rgba(255,117,230,.85)); animation:signal-current-pulse 2.3s ease-in-out infinite; }
.signal-chart-max,.signal-chart-min { position:absolute; right:.65rem; padding:.15rem .3rem; border-radius:5px; color:#7f97ad; background:rgba(4,13,24,.64); font-family:var(--font-mono); font-size:.58rem; }
.signal-chart-max { top:.55rem; }.signal-chart-min { bottom:1.85rem; }
.signal-chart-period { position:absolute; right:.65rem; bottom:.5rem; left:.65rem; display:flex; justify-content:space-between; color:#62778b; font-family:var(--font-mono); font-size:.58rem; text-transform:uppercase; }
.signal-metrics { position:relative; z-index:4; display:grid; grid-template-columns:1.25fr 1fr 1fr; gap:.55rem; }
.signal-metric { min-width:0; padding:.8rem; border:1px solid rgba(148,163,184,.12); border-radius:13px; background:rgba(3,13,25,.66); backdrop-filter:blur(12px); }
.signal-metric span,.signal-metric small { display:block; overflow:hidden; color:#70879b; font-size:.6rem; line-height:1.3; text-overflow:ellipsis; white-space:nowrap; }
.signal-metric strong { display:block; margin:.35rem 0 .25rem; color:#e8f5ff; font-family:var(--font-display); font-size:1.3rem; line-height:1; letter-spacing:-.04em; }
.signal-metric-rate { border-color:rgba(74,222,128,.22); background:rgba(25,78,57,.18); }.signal-metric-rate strong { color:#86efac; font-size:1.65rem; }
.signal-panel-foot { align-items:center; margin-top:.7rem; padding-top:.75rem; border-top:1px solid rgba(148,163,184,.11); color:#71869a; font-size:.66rem; }
.signal-panel-foot a { color:#7dd3fc; font-weight:700; }

.main-content { position:relative; padding-top:clamp(4.5rem,8vw,7rem); background:linear-gradient(180deg,transparent,#f0f5fb 30%,transparent 80%); }
.home-catalog-intro { display:grid; grid-column:1 / -1; grid-template-columns:minmax(0,.8fr) minmax(420px,1.2fr); align-items:end; gap:clamp(2rem,7vw,6rem); margin-bottom:2rem; scroll-margin-top:90px; }
.home-section-index { display:block; margin-bottom:.9rem; color:#0284c7; font-family:var(--font-mono); font-size:.67rem; font-weight:700; letter-spacing:.07em; }
.home-catalog-copy h2 { margin:0; font-family:var(--font-display); font-size:clamp(2.2rem,4.2vw,4rem); font-weight:690; line-height:.98; letter-spacing:-.055em; }.home-catalog-copy h2 em { color:#0284c7; font-style:normal; font-weight:560; }.home-catalog-copy p { max-width:500px; margin-top:1rem; color:var(--color-text-muted); font-size:.92rem; }
.home-catalog-tools { display:grid; gap:.8rem; }
.catalog-goals { display:grid; gap:.5rem; }
.catalog-goals-label { color:var(--color-text-muted); font-family:var(--font-mono); font-size:.63rem; font-weight:700; letter-spacing:.07em; text-transform:uppercase; }
.home-catalog-tools .quick-filters { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.45rem; }
.home-catalog-tools .quick-btn { min-height:66px; justify-content:flex-start; padding:.65rem .7rem; border-radius:15px; font-size:.75rem; text-align:left; }
.home-catalog-tools .quick-btn>span:not(.quick-btn-icon) { min-width:0; }
.home-catalog-tools .quick-btn strong,.home-catalog-tools .quick-btn small { display:block; }
.home-catalog-tools .quick-btn strong { color:var(--color-text); font-size:.76rem; line-height:1.2; }
.home-catalog-tools .quick-btn small { max-height:2.5em; margin-top:.22rem; overflow:hidden; color:var(--color-text-muted); font-size:.59rem; font-weight:500; line-height:1.25; white-space:normal; }
.quick-btn-icon { display:grid; width:25px; height:25px; flex:0 0 25px; place-items:center; border:1px solid rgba(0,209,255,.18); border-radius:8px; color:var(--color-accent); background:rgba(0,209,255,.06); font-family:var(--font-mono); font-size:.72rem; }
.home-catalog-tools .quick-btn.active { color:#075985; border-color:#7dd3fc; background:#e8f7ff; box-shadow:inset 0 0 0 1px rgba(56,189,248,.08); }
.home-catalog-tools .quick-btn.active .quick-btn-icon { color:#063e55; border-color:rgba(0,151,194,.25); background:rgba(125,211,252,.38); }
.catalog-goal-summary { min-height:1rem; margin:0; color:var(--color-text-muted); font-size:.68rem; }
.home-catalog-actions { display:grid; grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr); gap:.65rem; }
.home-filter-toggle,.home-calc-shortcut { display:flex; align-items:center; justify-content:space-between; gap:1rem; min-height:66px; padding:.8rem 1rem; border-radius:16px; color:var(--color-text); font:inherit; text-align:left; }
.home-filter-toggle { border:1px solid rgba(0,209,255,.2); background:linear-gradient(110deg,rgba(0,209,255,.09),rgba(0,209,255,.025)); transition:transform .25s ease,border-color .25s ease,background .25s ease; }
.home-filter-toggle:hover,.home-filter-toggle[aria-expanded="true"] { transform:translateY(-2px); border-color:rgba(0,209,255,.48); background:rgba(0,209,255,.1); }
.home-filter-toggle span,.home-calc-shortcut span { font-size:.82rem; font-weight:700; }
.home-filter-toggle small,.home-calc-shortcut small { display:block; margin-bottom:.2rem; color:var(--color-accent); font-size:.61rem; letter-spacing:.06em; text-transform:uppercase; }
.home-filter-toggle b { display:grid; width:27px; height:27px; flex:0 0 27px; place-items:center; border-radius:50%; color:#a6efff; background:rgba(0,209,255,.11); font-size:1rem; }
.home-calc-shortcut { display:flex; align-items:center; justify-content:space-between; gap:1rem; min-height:66px; padding:.8rem 1rem; border:1px solid rgba(167,139,250,.22); border-radius:16px; background:linear-gradient(110deg,rgba(167,139,250,.1),rgba(56,189,248,.07)); transition:transform .2s ease,border-color .2s ease; }.home-calc-shortcut:hover { transform:translateY(-2px); border-color:rgba(167,139,250,.45); }.home-calc-shortcut span { font-size:.82rem; font-weight:700; }.home-calc-shortcut small { display:block; margin-bottom:.2rem; color:#7c3aed; font-size:.61rem; letter-spacing:.06em; text-transform:uppercase; }.home-calc-shortcut b { color:#7c3aed; font-size:1.05rem; }

.home-catalog-layout { grid-template-columns:0 minmax(0,1fr)!important; gap:0!important; transition:grid-template-columns .42s cubic-bezier(.2,.75,.2,1),gap .42s cubic-bezier(.2,.75,.2,1); }
.home-catalog-layout.filters-open { grid-template-columns:260px minmax(0,1fr)!important; gap:2rem!important; }
.home-catalog-layout .home-catalog-intro { grid-column:1 / -1; }
.home-catalog-layout .filters-panel { grid-column:1; min-width:0; border-radius:20px; box-shadow:0 14px 45px rgba(15,23,42,.07); transition:opacity .3s ease,transform .38s cubic-bezier(.2,.75,.2,1),padding .38s ease,border-width .3s ease; }
.home-catalog-layout .filters-panel.is-collapsed { overflow:hidden; padding-inline:0; border-width:0; opacity:0; transform:translateX(-18px); pointer-events:none; }
.home-catalog-layout .catalog-section { grid-column:2; min-width:0; }
.home-catalog-layout .products-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.home-catalog-layout.filters-open .products-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.catalog-toolbar { margin-top:.5rem; padding:.7rem .9rem; overflow:hidden; border-radius:16px; }
.product-card { border-radius:20px; box-shadow:0 10px 32px rgba(15,23,42,.06); transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease; }
.product-card:hover { transform:translateY(-4px); box-shadow:0 18px 42px rgba(15,23,42,.1); }
.card-header-tools { display:flex; align-items:flex-start; gap:.45rem; flex:0 0 auto; }
.card-compare-toggle { display:grid; width:34px; height:34px; flex:0 0 34px; place-items:center; margin-top:1px; padding:0; border:1px solid rgba(0,209,255,.2); border-radius:11px; color:#1685a8; background:rgba(0,209,255,.055); box-shadow:inset 0 1px rgba(255,255,255,.32); cursor:pointer; transition:transform .2s ease,border-color .2s ease,background .2s ease,color .2s ease,box-shadow .2s ease; }
.card-compare-toggle svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.card-compare-toggle:hover { transform:translateY(-2px); border-color:rgba(0,209,255,.52); color:#007fa8; background:rgba(0,209,255,.12); box-shadow:0 7px 18px rgba(0,151,194,.12),inset 0 1px rgba(255,255,255,.45); }
.card-compare-toggle.checked { border-color:#00b7e3; color:#043346; background:linear-gradient(145deg,#7de9ff,#38d5f7); box-shadow:0 7px 20px rgba(0,183,227,.22),inset 0 1px rgba(255,255,255,.58); }
:root[data-theme="dark"] .card-compare-toggle { color:#7de9ff; background:rgba(0,209,255,.075); }
:root[data-theme="dark"] .card-compare-toggle.checked { color:#051822; background:linear-gradient(145deg,#7de9ff,#00c4ef); }

.home-motion-ready .home-reveal { opacity:0; transform:translateY(24px); transition:opacity .7s cubic-bezier(.2,.75,.2,1),transform .7s cubic-bezier(.2,.75,.2,1); }
.home-motion-ready .home-reveal.is-visible { opacity:1; transform:none; }

:root[data-theme="dark"] .main-content { background:linear-gradient(180deg,transparent,rgba(30,41,59,.45) 30%,transparent 80%); }
:root[data-theme="dark"] .home-catalog-tools .quick-btn.active { color:#bae6fd; background:rgba(56,189,248,.13); }
:root[data-theme="dark"] .home-catalog-tools .quick-btn.active strong { color:#eefdff; }
:root[data-theme="dark"] .home-catalog-tools .quick-btn.active .quick-btn-icon { color:#c9f5ff; background:rgba(0,209,255,.16); }

@keyframes home-rise { from { opacity:0; transform:translateY(24px); } to { opacity:1; transform:none; } }
@keyframes home-panel-in { from { opacity:0; transform:translateY(30px) scale(.97); } to { opacity:1; transform:none; } }
@keyframes home-live { 0%,100% { opacity:.55; transform:scale(.85); } 50% { opacity:1; transform:scale(1); } }
@keyframes signal-chart-draw { to { stroke-dashoffset:0; } }
@keyframes signal-current-pulse { 0%,100% { opacity:.72; } 50% { opacity:1; r:5px; } }

@media (max-width:1050px) {
    .home-hero { padding-top:4.5rem; }
    .home-hero-grid { grid-template-columns:1fr; }
    .home-hero-copy { max-width:850px; }
    .signal-panel { width:min(100%,720px); min-height:500px; }
    .home-catalog-intro { grid-template-columns:1fr; align-items:start; }
    .home-catalog-layout .products-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .home-catalog-layout.filters-open { grid-template-columns:220px minmax(0,1fr)!important; }
    .home-catalog-layout.filters-open .products-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:680px) {
    .home-hero { padding:3.7rem 0 5.7rem; }
    .home-hero-grid { gap:2rem; }
    .home-hero h1 { font-size:clamp(3rem,14vw,3.6rem); letter-spacing:-.06em; }
    .home-hero-copy>p { font-size:.96rem; }
    .home-trust-line { display:grid; gap:.55rem; }
    .signal-panel { min-height:420px; padding:1rem; border-radius:24px; }
    .signal-chart { height:205px; }.signal-chart svg { height:176px; }
    .signal-metrics { gap:.35rem; }.signal-metric { padding:.65rem .55rem; }.signal-metric strong { font-size:1.05rem; }.signal-metric-rate strong { font-size:1.25rem; }
    .main-content { padding-top:4rem; }
    .home-catalog-tools .quick-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .home-catalog-actions { grid-template-columns:1fr; }
    .home-catalog-layout,.home-catalog-layout.filters-open { grid-template-columns:minmax(0,1fr)!important; gap:1rem!important; }
    .home-catalog-layout .filters-panel,.home-catalog-layout .catalog-section { grid-column:1; }
    .home-catalog-layout .filters-panel.is-collapsed { max-height:0; padding-block:0; }
    .home-catalog-layout .products-grid,.home-catalog-layout.filters-open .products-grid { grid-template-columns:1fr; }
}
@media (max-width:440px) {
    .home-hero-actions { display:grid; }.home-btn { width:100%; }
    .signal-panel-foot { align-items:flex-start; flex-direction:column; }
    .home-catalog-tools .quick-filters { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) {
    .home-hero-copy,.signal-panel,.home-kicker>span,.signal-chart-line,.signal-chart-current { animation:none; }
    .home-motion-ready .home-reveal { opacity:1; transform:none; transition:none; }
    .home-btn,.home-calc-shortcut,.product-card,.card-compare-toggle { transition:none; }
}
