/* #contract — модель договора участия. Цвет несёт смысл везде: инвестор — бирюзовый, инициатор — золотой, Mekenim — фирменный красный. */
.contract-page{--c-i:#1f6f6a;--c-i-soft:#e3f1ef;--c-s:#966f32;--c-s-soft:#f6eedf;--c-m:#b82436;--c-m-soft:#f8e8e8;--c-line:#e5dbcf;--c-muted:#70665f;max-width:1120px;margin:0 auto}
.contract-page h1{font-size:clamp(30px,4.2vw,44px);line-height:1.1;letter-spacing:-.02em;margin:6px 0 12px}
.contract-page h2{font-size:clamp(22px,2.6vw,28px);letter-spacing:-.01em;margin:0 0 6px}
.contract-page h3{font-size:18px;margin:0}
.contract-page h4{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--c-muted);margin:14px 0 8px}
.c-eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--c-muted);font-weight:600}
.c-lead{color:var(--c-muted);max-width:65ch;font-size:17px;margin:0 0 14px}
.c-top{padding-bottom:28px;border-bottom:1px solid var(--c-line)}
.c-legend{display:flex;gap:18px;flex-wrap:wrap;font-size:14px;margin:0 0 14px}
.c-legend span{display:inline-flex;align-items:center;gap:8px}
.c-dot{width:12px;height:12px;border-radius:50%;display:inline-block}
.c-dot.c-i{background:var(--c-i)}.c-dot.c-s{background:var(--c-s)}.c-dot.c-m{background:var(--c-m)}
.c-note{background:#fff6dc;color:#6a4a00;border-radius:10px;padding:12px 14px;font-size:14px;margin:0;max-width:80ch}
.c-sec{padding:36px 0;border-bottom:1px solid var(--c-line)}
.c-head{margin-bottom:20px}.c-head p{color:var(--c-muted);max-width:70ch;margin:0}
/* Путь денег: карточки-узлы, связи с золотыми точками, панель шага. Цвет стороны приходит через --side. */
.c-flow .c-i{--side:var(--c-i);--side-soft:var(--c-i-soft)}.c-flow .c-s{--side:var(--c-s);--side-soft:var(--c-s-soft)}.c-flow .c-m{--side:var(--c-m);--side-soft:var(--c-m-soft)}
.c-flow{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:start}
.c-map-wrap{min-width:0}
.c-map{width:100%;height:auto;display:block;overflow:visible}
/* Внешняя группа неподвижна и держит зону наведения .c-hit; поднимается только внутренняя .c-nodein, поэтому край карточки не мерцает под курсором. */
.c-nodeg{cursor:pointer;outline:none}
.c-hit{fill:transparent;stroke:none}
.c-nodein{transform-box:fill-box;transform-origin:center;transition:transform .2s ease,filter .2s ease;filter:drop-shadow(0 1px 1px rgba(41,37,34,.06))}
.c-nodeg:hover .c-nodein,.c-nodeg.is-peek .c-nodein{transform:translateY(-3px) scale(1.025);filter:drop-shadow(0 8px 12px rgba(41,37,34,.16))}
/* Приглушённая карточка: бледнеют рамка, заливка и иконка, текст остаётся читаемым (подпись 11 px). */
.c-nodeg.is-dim .c-node{stroke-opacity:.4;fill-opacity:.7}.c-nodeg.is-dim .c-ico{opacity:.5}.c-nodeg.is-dim text{opacity:.85}
.c-map.has-peek .c-nodeg.is-dim .c-node{stroke-opacity:.3}
.c-node{fill:#fff;stroke:var(--side);stroke-width:1.5;transition:stroke-width .2s,fill .2s,stroke-opacity .2s,fill-opacity .2s}
.c-nodeg.is-active .c-node{stroke-width:3;fill:var(--side-soft)}
.c-nodeg.is-peek .c-node{stroke-width:2.5}
.c-ring{fill:none;stroke:var(--side);stroke-width:2;opacity:0}
.c-nodeg:focus-visible .c-ring{opacity:1}
.c-num{font-size:10px;font-weight:600;letter-spacing:.06em;fill:var(--c-muted)}
.c-ico{fill:none;stroke:var(--side);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.c-lbl{font-size:13px;font-weight:600;fill:#292522}.c-sub{font-size:11px;fill:var(--c-muted)}
.c-arrow{fill:#b9aea2}.c-arrow.c-i{fill:var(--c-i)}.c-arrow.c-s{fill:var(--c-s)}.c-arrow.c-m{fill:var(--c-m)}
.c-edge{stroke:#d8cdbf;stroke-width:2;fill:none;transition:stroke .2s,stroke-width .2s,opacity .2s}
.c-edge.is-active,.c-edge.is-peek{stroke:var(--side);stroke-width:3}
.c-edge.c-i.is-active,.c-edge.c-i.is-peek{marker-end:url(#c-arr-i)}.c-edge.c-s.is-active,.c-edge.c-s.is-peek{marker-end:url(#c-arr-s)}.c-edge.c-m.is-active,.c-edge.c-m.is-peek{marker-end:url(#c-arr-m)}
.c-edge.is-dim{opacity:.35}
.c-dot-flow{fill:#b8903a;stroke:#fff;stroke-width:1;pointer-events:none}
.c-tip{pointer-events:none;animation:c-fade .15s ease-out}.c-tip[hidden]{display:none}
.c-tip rect{fill:#292522}.c-tip text{fill:#fff;font-size:11px;font-weight:500}
/* Вступление ≤1,2 с: карточки поднимаются по очереди, связи прорисовываются; fill backwards не мешает наведению после конца. */
.c-map.c-in .c-nodeg{animation:c-rise .42s cubic-bezier(.2,.7,.2,1) backwards}
.c-map.c-in .c-nodeg:nth-of-type(2){animation-delay:.06s}.c-map.c-in .c-nodeg:nth-of-type(3){animation-delay:.12s}.c-map.c-in .c-nodeg:nth-of-type(4){animation-delay:.18s}.c-map.c-in .c-nodeg:nth-of-type(5){animation-delay:.24s}.c-map.c-in .c-nodeg:nth-of-type(6){animation-delay:.3s}.c-map.c-in .c-nodeg:nth-of-type(7){animation-delay:.36s}.c-map.c-in .c-nodeg:nth-of-type(8){animation-delay:.42s}
.c-map.c-in .c-edge{animation:c-draw .5s .4s ease-out backwards}
@keyframes c-rise{from{opacity:0;transform:translateY(8px)}}
@keyframes c-draw{from{stroke-dasharray:1 1;stroke-dashoffset:1;opacity:0}30%{opacity:1}to{stroke-dasharray:1 1;stroke-dashoffset:0}}
@keyframes c-fade{from{opacity:0}}
@keyframes c-swap{from{opacity:.2;transform:translateY(3px)}}
/* Панель шага */
.c-panel{background:#fff;border:1px solid var(--c-line);border-radius:14px;padding:18px;display:grid;gap:14px;min-width:0;transition:border-color .2s}
.c-panel.c-peek{border-color:#cfc3b4}
.c-panel-body{display:grid;gap:12px;align-content:start}
.c-panel-body.is-swapping{animation:c-swap .18s ease-out}
.c-panel h3{font-size:20px}.c-panel p{margin:0}
.c-progress{list-style:none;margin:2px 0 0;padding:0 0 0 2px;display:flex;align-items:center;gap:20px}
.c-progress li{position:relative;width:10px;height:10px;border-radius:50%;border:1.5px solid #b9aea2;background:#fff;box-sizing:border-box;flex:none;transition:background .2s,border-color .2s,transform .2s}
.c-progress li+li::before{content:'';position:absolute;top:calc(50% - 1px);right:calc(100% + 3px);width:16px;height:2px;border-radius:1px;background:var(--c-line)}
.c-progress li.is-done{background:#b9aea2}.c-progress li.is-done::before,.c-progress li.is-current::before{background:#b9aea2}
.c-progress li.is-current{background:#292522;border-color:#292522;transform:scale(1.25)}
.c-status{margin:2px 0 0;padding-top:12px;border-top:1px solid var(--c-line);display:grid;gap:10px;font-size:14px}
.c-status div{display:grid;gap:2px}
.c-status dt{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--c-muted)}
.c-status dd{margin:0;line-height:1.4}
.c-can dt::before,.c-cannot dt::before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px;vertical-align:1px;background:var(--c-i)}.c-cannot dt::before{background:var(--c-m)}
.c-controls{display:flex;gap:8px;flex-wrap:wrap}
.c-steps{display:flex;gap:6px;flex-wrap:wrap}
.c-steps button{font:inherit;font-size:13px;padding:6px 11px;border-radius:8px;border:1px solid var(--c-line);background:#fff;cursor:pointer}
.c-steps button[aria-pressed="true"],.c-controls [aria-pressed="true"]{background:#292522;color:#fff;border-color:#292522}
@media (min-width:901px){.c-panel-body{min-height:520px}}
/* Телефон: вместо схемы вертикальный список карточек по ходу денег. */
.c-flow-list{display:none;list-style:none;margin:0;padding:0}
.c-flow-list li{position:relative}
/* Связка над карточкой: стрелка по ходу денег; ответвление (06 из 05) пунктиром, продолжение после него (07 из 05) с подписью. */
.c-fl-link{position:absolute;left:25px;top:-19px;height:18px;padding-left:18px;font-size:11px;line-height:18px;color:var(--c-muted);white-space:nowrap}
.c-fl-link::before{content:'';position:absolute;left:4px;top:2px;width:2px;height:10px;background:#cfc3b4}
.c-fl-link::after{content:'';position:absolute;left:0;top:11px;border:5px solid transparent;border-top-color:#cfc3b4;border-bottom:0}
.c-fl-link.is-branch::before{width:0;background:none;border-left:2px dashed #cfc3b4}
.c-fl-link.is-branch,.c-fl-link.is-skip{font-weight:600}
.c-fl-card{display:grid;grid-template-columns:30px minmax(0,1fr) 18px;gap:10px;align-items:start;width:100%;text-align:left;font:inherit;color:#292522;background:#fff;border:1.5px solid var(--side);border-radius:14px;padding:12px 14px;cursor:pointer;transition:background .2s,box-shadow .2s}
.c-fl-card.is-active{background:var(--side-soft);box-shadow:inset 0 0 0 1.5px var(--side)}
.c-fl-card:focus-visible{outline:2px solid var(--side);outline-offset:3px}
.c-fl-num{font-size:11px;font-weight:600;letter-spacing:.06em;color:var(--c-muted);padding-top:2px}
.c-fl-text{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;min-width:0}
.c-fl-text b{font-size:15px}.c-fl-text small{flex-basis:100%;font-size:13px;color:var(--c-muted)}
.c-fl-badge{font-size:11px;font-weight:600;padding:1px 8px;border-radius:999px;background:var(--side-soft);color:var(--side)}
.c-fl-ico{display:block;margin-top:1px}
@media (max-width:720px){.c-map{display:none}.c-flow-list{display:grid;gap:20px}}
@media (prefers-reduced-motion:reduce){.c-map.c-in .c-nodeg,.c-map.c-in .c-edge,.c-tip,.c-panel-body.is-swapping{animation:none}.c-nodein,.c-nodeg:hover .c-nodein,.c-nodeg.is-peek .c-nodein{transform:none;transition:none}.c-node,.c-edge,.c-progress li,.c-fl-card{transition:none}}
.c-parties{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.c-card{background:#fff;border:1px solid var(--c-line);border-radius:14px;padding:18px 20px;min-width:0}
.c-card.c-i{border-top:4px solid var(--c-i)}.c-card.c-s{border-top:4px solid var(--c-s)}.c-card.c-m{border-top:4px solid var(--c-m)}
.c-card ul{margin:0;padding-left:18px;display:grid;gap:7px;font-size:15px}
.c-tag{font-size:13px;padding:3px 10px;border-radius:999px;font-weight:600}
.c-tag.c-i{background:var(--c-i-soft);color:var(--c-i)}.c-tag.c-s{background:var(--c-s-soft);color:#6f5020}.c-tag.c-m{background:var(--c-m-soft);color:var(--c-m)}
.c-small{font-size:13px;color:var(--c-muted);margin:14px 0 0}
.c-table-wrap{overflow-x:auto}
.c-table{width:100%;border-collapse:collapse;font-size:15px}
.c-table th{text-align:left;padding:10px 12px;border-bottom:2px solid var(--c-line)}
.c-table td{padding:12px;border-bottom:1px solid var(--c-line);vertical-align:top}
.c-table td:first-child{font-weight:600;width:20%}
.c-table td:last-child{color:var(--c-i)}
.c-risks{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.c-risk{background:#fff;border:1px solid var(--c-line);border-radius:12px;padding:14px;font-size:14px;min-width:0}
.c-risk b{display:block;margin-bottom:4px}
.c-docs{display:flex;gap:8px;flex-wrap:wrap;font-size:14px}
.c-docs span{border:1px solid var(--c-line);border-radius:999px;padding:6px 12px;background:#fff}
.c-actions{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0 0}
.c-foot{color:var(--c-muted);font-size:13px;max-width:75ch;padding-top:24px}
@media (max-width:900px){.c-flow,.c-parties{grid-template-columns:1fr}.c-risks{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.c-risks{grid-template-columns:1fr}}
