/* Каталог услуг */
.smap-box { position: relative; aspect-ratio: 6 / 5; width: 100%; max-width: 640px; margin-inline: auto; }
.smap { width: 100%; height: 100%; overflow: visible; }
.smap-link { stroke: rgba(170, 181, 207, 0.22); stroke-width: 1.5; transition: stroke .3s; }
.smap-link.is-main { stroke: rgba(142, 171, 255, 0.4); stroke-width: 2; stroke-dasharray: 4 6; }
.smap-link.is-on { stroke: var(--signal); }
.smap-item circle { fill: var(--night-2); stroke: var(--flow-light); stroke-width: 2; transition: fill .3s, stroke .3s; }
.smap-item text { font-family: var(--font-text); font-size: 15px; font-weight: 500; fill: #dfe6f6; }
.smap-item:hover circle, .smap-item:focus-visible circle, .smap-item.is-on circle { fill: var(--signal); stroke: var(--signal); }
.smap-item:hover text, .smap-item.is-on text { fill: #fff; }
.smap-item:focus-visible { outline: none; }
.smap-hub circle { fill: var(--night-3); stroke: var(--flow); stroke-width: 2; }
.smap-hub.is-on circle { stroke: var(--signal); }
/* узел направления — ссылка на общую страницу направления */
a.smap-hub:focus-visible { outline: none; }
a.smap-hub:hover circle, a.smap-hub:focus-visible circle { stroke: var(--signal); stroke-width: 3; }
.smap-hub text { font-family: var(--font-display); font-size: 15px; font-weight: 600; fill: #fff; }
.smap-center circle { fill: var(--signal); }
.smap-center .halo { fill: none; stroke: var(--signal); stroke-width: 2; opacity: 0.4; }
.smap-center text { font-family: var(--font-display); font-size: 13px; font-weight: 700; fill: var(--ink); }
.smap-pulse { fill: var(--signal); }

.svc-group { display: grid; grid-template-columns: minmax(0, 0.7fr) minmax(0, 1.3fr); gap: clamp(20px, 4vw, 56px); padding: clamp(28px, 4vw, 44px) 0; border-top: 1px solid var(--line); }
.svc-group:last-child { border-bottom: 1px solid var(--line); }
.svc-group h2 { font-family: var(--font-display); font-size: var(--step-3); font-weight: 600; letter-spacing: -0.03em; line-height: 1.1; }
.svc-group > div > p { color: var(--fg-soft); margin-top: 12px; }
/* ссылка на хаб направления под описанием группы: Директ и разработка */
.svc-hub { display: inline-block; margin-top: 14px; color: var(--link); font-weight: 600; text-decoration: none; }
.svc-hub::after { content: "→"; content: "→" / ""; display: inline-block; margin-left: 8px; transition: transform .3s var(--ease-out); }
.svc-hub:hover { text-decoration: underline; }
.svc-hub:hover::after { transform: translateX(4px); }
.svc-list { display: grid; gap: 8px; }
.svc { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 8px 24px; align-items: center; padding: 18px 20px; border-radius: var(--radius-md); background: var(--surface); border: 1px solid var(--line); color: inherit; text-decoration: none; transition: border-color .3s, transform .4s var(--ease-out); }
.svc:hover { border-color: var(--flow); transform: translateX(6px); text-decoration: none; }
.svc b { display: block; font-size: var(--step-1); font-weight: 650; line-height: 1.3; }
.svc small { display: block; color: var(--fg-soft); font-size: 0.93rem; margin-top: 2px; }
.svc-price { font-family: var(--font-display); font-weight: 600; letter-spacing: -0.02em; white-space: nowrap; text-align: right; }
.svc-term { color: var(--fg-dim); font-size: 0.9rem; white-space: nowrap; text-align: right; min-width: 9ch; }
.svc .go { grid-column: 1 / -1; display: none; }
.pick { display: grid; gap: 12px; }
.pick-card { display: grid; gap: 6px; padding: 18px 20px; border-radius: var(--radius-md); background: var(--night-3); border: 1px solid var(--line); color: inherit; text-decoration: none; transition: border-color .3s; }
.pick-card:hover { border-color: var(--signal); text-decoration: none; }
.pick-card b { font-weight: 650; font-size: var(--step-1); }
.pick-card span { color: var(--fg-soft); }
.pick-card em { font-style: normal; color: var(--signal); font-weight: 600; }
@media (max-width: 860px) {
  .svc-group { grid-template-columns: minmax(0, 1fr); }
  .svc { grid-template-columns: minmax(0, 1fr) auto; }
  .svc-term { grid-column: 1 / -1; text-align: left; }
}
