.sd-head{padding-top:clamp(176px,16vw,190px);padding-bottom:clamp(30px,4vw,50px)}
.sd-ghost{top:clamp(90px,9vw,120px);left:calc(var(--pad) - 30px);font-size:clamp(3.4rem,10vw,8.4rem);text-transform:uppercase}
.sd-head h1{position:relative;max-width:760px;font-size:clamp(2.6rem,4.7vw,4.2rem);letter-spacing:-.02em}
.sd-head{--expo:cubic-bezier(.16,1,.3,1)}
.sd-head h1 .rv{display:block}
.sd-head .rv{transform:translateY(20px);transition:opacity .8s var(--expo),transform .8s var(--expo)}
.sd-head .rv.in{transform:none}
.sd-list:not([hidden]){animation:sdIn .45s cubic-bezier(.4,0,.2,1)}
@keyframes sdIn{from{opacity:0;transform:translateY(10px)}}
@media (prefers-reduced-motion:reduce){.sd-head .rv{transform:none;transition:none}.sd-list:not([hidden]){animation:none}}
.sd{padding:0 0 clamp(70px,9vw,120px)}
.sd-tabs{display:flex;width:max-content;max-width:100%;margin:0 auto 44px;padding:4px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 4px 14px rgba(11,20,24,.04)}
.sd-tabs button{min-height:44px;padding:0 22px;border-radius:5px;font-size:14px;font-weight:500;color:var(--g900);transition:background .3s,color .3s}
.sd-tabs button[aria-selected=true]{background:var(--g700);color:var(--paper)}
.sd-grid{display:grid;gap:32px;max-width:1240px;margin:0 auto}
.sd-list{list-style:none;margin:0;padding:0;display:grid;gap:22px}
.sd-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:4px;padding:30px 32px;box-shadow:0 4px 18px rgba(11,20,24,.04);transition:border-color .3s,box-shadow .3s}
.sd-card::before{content:"";position:absolute;left:-1px;top:-1px;bottom:-1px;width:3px;border-radius:4px 0 0 4px;background:var(--o400);transform:scaleY(0);transition:transform .4s var(--ease)}
.sd-card.on{border-color:var(--o300)}
.sd-card.on::before{transform:none}
.sd-tag{display:inline-block;padding:3px 8px;border:1px solid var(--o200);border-radius:3px;font-size:9.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--o700)}
.sd-name{margin-top:14px;display:flex;align-items:center;gap:14px;font-size:1.7rem;font-weight:500;color:var(--g900)}
.sd-ico{width:40px;height:40px;flex:none;display:grid;place-items:center;border-radius:4px;background:var(--o50);color:var(--o600)}
.sd-ico svg{width:20px;height:20px}
.sd-addr{margin-top:8px;padding-left:54px;font-size:14px;color:#5a676c}
.sd-go{margin-top:14px;min-height:44px;color:var(--g900);border-bottom:1px solid var(--line)}
.sd-info{margin-top:32px;padding:30px 32px;background:var(--g800);color:var(--paper);border-radius:4px}
.sd-info-a{margin-top:10px;font-family:var(--serif);font-size:1.45rem}
.sd-info-n{margin:10px 0 22px;font-size:14.5px;line-height:1.65;color:rgba(251,250,247,.8)}
.sd-info .btn{background:var(--o400);color:var(--g900)}
.sd-map{margin:0;background:#fff;border:1px solid var(--line);border-radius:4px;padding:24px;box-shadow:0 4px 18px rgba(11,20,24,.04);align-self:start}
.sd-map svg{width:100%;height:auto;display:block;font-family:var(--sans)}
.sd-map figcaption{margin-top:10px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--o600);text-align:center}
.pv{fill:var(--g50);stroke:var(--g200);stroke-width:1.2;stroke-linejoin:round}
.lk{fill:#cfdfe2;stroke:var(--g200);stroke-width:1}
.rvr{fill:none;stroke:#a9c2c6;stroke-width:3;stroke-linecap:round}
.lb-lk,.lb-rv{font-size:10px;fill:var(--g400);font-style:italic}
.lb-lk{transform:rotate(-80deg);transform-origin:30px 120px;transform-box:view-box}
.mk{cursor:pointer}
.mk-halo{fill:var(--o400);opacity:0;transition:opacity .3s}
.mk-dot{fill:var(--g700);stroke:#fff;stroke-width:2;transition:fill .3s}
.mk text{font-size:12px;font-weight:500;fill:var(--g800);paint-order:stroke;stroke:#fff;stroke-width:3px}
.mk.on .mk-dot{fill:var(--o700)}
.mk.on .mk-halo{opacity:.3;animation:pulse 2s var(--ease) infinite}
.mk.on text{font-weight:700;fill:var(--o800)}
@keyframes pulse{0%,100%{opacity:.35}50%{opacity:.1}}
@media (prefers-reduced-motion:reduce){.mk.on .mk-halo{animation:none}}
@media (min-width:900px){.sd-grid{grid-template-columns:1fr 1fr;gap:48px}.sd-map{position:sticky;top:110px}}
@media (max-width:480px){.sd-card,.sd-info{padding:24px 20px}.sd-name{font-size:1.45rem}.sd-tabs button{padding:0 16px}.sd-grid .sd-map{order:-1}}
.mks[hidden]{display:none}
.sd-list[hidden]{display:none}
