.c-top { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.c-wrap { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 380px); gap: 16px; align-items: start; }
.c-prev { position: sticky; top: 16px; }
.c-page { overflow: hidden; border: 1px solid var(--control); border-radius: 22px; background: var(--surface); }
.c-head { padding: 28px 20px 22px; background: var(--sun-soft); text-align: center; }
.c-head h2 { font-size: 1.625rem; font-weight: 800; letter-spacing: -.02em; overflow-wrap: anywhere; }
.c-head p { margin-top: 6px; color: var(--ink-2); overflow-wrap: anywhere; }
.c-body { display: grid; gap: 14px; padding: 18px 20px 22px; }
.c-line { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 8px; font-size: .9375rem; }
.c-line b { color: var(--ink-2); font-weight: 650; }
.c-line span { overflow-wrap: anywhere; }
.c-map { position: relative; height: 130px; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: var(--paper-2); }
.c-road-h, .c-road-v { position: absolute; background: var(--surface); }
.c-road-h { left: 0; right: 0; top: 52%; height: 14px; }
.c-road-v { top: 0; bottom: 0; left: 38%; width: 14px; }
.c-block { position: absolute; border: 1px solid var(--line); background: var(--surface); border-radius: 6px; }
.c-pin { position: absolute; width: 22px; height: 22px; margin: -11px 0 0 -11px; border: 3px solid var(--ink); border-radius: 50%; background: var(--sun); transition: left .25s var(--ease-out), top .25s var(--ease-out); }
.c-map-cap { position: absolute; left: 8px; bottom: 6px; padding: 1px 7px; border-radius: 6px; background: var(--surface); font-size: var(--t-s); }
.c-pub { padding: 12px 14px; border: 1px dashed var(--ink); border-radius: 12px; }
@media (max-width: 860px) { .c-wrap { grid-template-columns: minmax(0, 1fr); } .c-prev { position: static; } }
@media (prefers-reduced-motion: reduce) { .c-pin { transition: none; } }
