.os-mapbox { position: relative; overflow: hidden; aspect-ratio: 1000 / 700; border: 1px solid var(--wp--preset--color--line); border-radius: var(--wp--custom--radius-large); background: var(--wp--preset--color--surface-tint); box-shadow: var(--wp--custom--shadow-tile); }
.os-mapbox > img { position: absolute; inset: 0; width: 100%; height: 100%; }
.os-pin { position: absolute; z-index: 1; padding: 0; border: 0; background: none; font: inherit; line-height: 0; text-decoration: none; cursor: pointer; transform: translate(-50%, -100%); }
.os-pin svg { width: 30px; height: 30px; color: var(--wp--preset--color--action); filter: drop-shadow(0 3px 5px rgba(10, 20, 40, .4)); transition: .15s; }
.os-pin-nm { position: absolute; left: 50%; top: 100%; margin-top: .2rem; padding: .2rem .5rem; border-radius: 6px; background: #fff; box-shadow: 0 2px 6px rgba(10, 20, 40, .18); color: var(--wp--preset--color--ink-strong); font-size: .75rem; font-weight: 700; line-height: 1.3; white-space: nowrap; transform: translateX(-50%); transition: .15s; }
.os-pin.end .os-pin-nm { left: auto; right: -6px; transform: none; }
.os-pin.up .os-pin-nm { top: auto; bottom: 100%; margin: 0 0 .2rem; }
.os-pin:hover, .os-pin:focus-visible, .os-pin.is-on { z-index: 3; }
.os-pin:hover svg, .os-pin:focus-visible svg, .os-pin.is-on svg { color: var(--wp--preset--color--ink-strong); transform: scale(1.2); }
.os-pin:hover .os-pin-nm, .os-pin:focus-visible .os-pin-nm, .os-pin.is-on .os-pin-nm { background: var(--wp--preset--color--ink-strong); color: #fff; }
.os-pin:focus-visible { outline: none; }
.os-pin-num { display: none; }
.os-locwrap { display: grid; grid-template-columns: 1.6fr 1fr; gap: 1rem; }
.os-loclist { box-sizing: border-box; display: flex; flex-direction: column; padding: 1.6rem 1.75rem; border: 1px solid var(--wp--preset--color--line); border-radius: var(--wp--custom--radius-large); background: var(--wp--preset--color--surface-raised); box-shadow: var(--wp--custom--shadow-tile); }
.os-locrow { display: flex; justify-content: space-between; align-items: center; gap: .75rem; padding: .6rem 0; border-bottom: 1px solid var(--wp--preset--color--line); color: var(--wp--preset--color--ink-strong); font-size: var(--wp--preset--font-size--small); font-weight: 600; text-decoration: none; }
.os-locrow:hover, .os-locrow.is-on { color: var(--wp--preset--color--action-hover); }
.os-locrow-n { display: none; }
.os-locrow-nm { flex: 1; }
.os-locrow-city { color: var(--wp--preset--color--ink-muted); font-size: .8125rem; font-weight: 500; text-align: right; }
.os-dir { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; padding: .6em 1em; border: 2px solid var(--wp--preset--color--ink-strong); border-radius: 10px; color: var(--wp--preset--color--ink-strong); font-size: var(--wp--preset--font-size--micro); font-weight: 700; line-height: 1.2; text-decoration: none; transition: .18s; }
.os-dir:hover { background: var(--wp--preset--color--ink-strong); color: var(--wp--preset--color--on-dark); }
.os-loclist > .os-dir { align-self: stretch; margin-top: 1.2rem; padding: .85em 1.5em; border-radius: 12px; font-size: var(--wp--preset--font-size--small); line-height: 1.6; }
.os-locator { display: grid; grid-template-columns: 1.3fr 1fr; gap: 1rem; align-items: start; }
.os-mapcol { position: sticky; top: 6.5rem; }
.os-mapnote { margin: .6rem 0 0 .25rem; color: var(--wp--preset--color--ink-muted); font-size: .8125rem; }
.os-where { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 1rem; align-items: stretch; }
.os-where .os-mapbox { align-self: start; }
.os-lcards { display: flex; flex-direction: column; gap: 1rem; }
.os-lcard { box-sizing: border-box; display: flex; flex-direction: column; overflow: hidden; scroll-margin-top: 7rem; border: 1px solid var(--wp--preset--color--line); border-radius: var(--wp--custom--radius-large); background: var(--wp--preset--color--surface-raised); box-shadow: var(--wp--custom--shadow-tile); transition: border-color .15s, box-shadow .15s; }
.os-lcard.is-on { border-color: var(--wp--preset--color--action); box-shadow: 0 0 0 1px var(--wp--preset--color--action), 0 22px 44px -28px rgba(22, 41, 79, .4); }
.os-lcard-pad { padding: 1.4rem 1.5rem; }
.os-lcard-top { position: relative; display: flex; align-items: flex-start; gap: .8rem; }
.os-lav { flex: 0 0 auto; display: block; width: 48px; height: 48px; overflow: hidden; border-radius: 50%; background: var(--wp--preset--color--surface-tint); box-shadow: 0 0 0 2px #fff, 0 0 0 3px var(--wp--preset--color--line); }
.os-lav img { display: block; width: 48px; height: 48px; object-fit: cover; }
.os-lcard.is-on .os-lav { box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--wp--preset--color--action); }
.os-lcard-n { display: none; }
.os-lcard h3 { margin: 0; font-size: 1.25rem; line-height: 1.2; letter-spacing: -.015em; }
.os-lcard h3 a { color: var(--wp--preset--color--ink-strong); text-decoration: none; }
.os-lcard h3 a:hover { color: var(--wp--preset--color--action-hover); }
.os-lcard-city { margin-top: .1rem; color: var(--wp--preset--color--ink-muted); font-size: var(--wp--preset--font-size--micro); font-weight: 600; }
.os-dist { flex: 0 0 auto; margin-left: auto; padding: .2rem .6rem; border-radius: 999px; background: var(--wp--preset--color--action-wash); color: var(--wp--preset--color--action-hover); font-size: .8125rem; font-weight: 700; }
.os-dist[hidden] { display: none; }
.os-facts { display: grid; grid-template-columns: 1fr 1fr; gap: .45rem 1.25rem; margin: 1rem 0 0 2.8rem; }
.os-fact:first-child { grid-row: span 2; }
.os-fact { display: flex; align-items: flex-start; gap: .55rem; line-height: 1.45; color: var(--wp--preset--color--ink); }
.os-fact svg { flex: 0 0 auto; width: 17px; height: 17px; margin-top: .2rem; color: var(--wp--preset--color--action); }
.os-tel { color: var(--wp--preset--color--ink-strong); font-weight: 700; text-decoration: none; }
.os-who { color: var(--wp--preset--color--ink-muted); font-size: .875rem; }
.os-lcard-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1rem; margin: 1.1rem 0 0 2.8rem; padding-top: 1rem; border-top: 1px solid var(--wp--preset--color--line); }
.os-acts { display: flex; flex-wrap: wrap; gap: .5rem; }
.os-txtlink { display: inline-flex; align-items: center; gap: .35rem; padding: .6em .25em; color: var(--wp--preset--color--action-hover); font-size: .875rem; font-weight: 700; text-decoration: none; }
.os-txtlink:hover { text-decoration: underline; text-underline-offset: 3px; }
.os-txtlink svg { width: 16px; height: 16px; }
.os-where .os-lcard { flex: 1 1 auto; }
.os-where .os-lcard-pad { flex: 0 0 auto; }
.os-where .os-lcard-top { gap: .6rem; }
.os-lphoto { flex: 1 1 0; position: relative; min-height: 0; overflow: hidden; container-type: size; }
.os-lphoto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
@container (max-height: 90px) { .os-lphoto img { display: none; } }
.os-faces { display: flex; align-items: center; gap: .6rem; color: var(--wp--preset--color--ink-muted); font-size: .875rem; font-weight: 600; }
.os-stack { display: flex; }
.os-stack img, .os-stack i, .os-stack b { box-sizing: border-box; display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; margin-left: -8px; border: 2px solid #fff; border-radius: 10px; background: var(--wp--preset--color--action-wash); object-fit: cover; }
.os-stack > :first-child { margin-left: 0; }
.os-stack b { color: var(--wp--preset--color--action-hover); font-size: .75rem; }
@media (min-width: 1041px) { .os-where .os-mapbox { position: sticky; top: 6.5rem; } }
@media (max-width: 1180px) { .os-locator { grid-template-columns: 1.1fr 1fr; } }
@media (max-width: 1040px) { .os-locwrap, .os-locator, .os-where { grid-template-columns: 1fr; } .os-mapcol { position: relative; top: 0; } }
@media (max-width: 560px) {
	.os-pin svg, .os-pin-nm { display: none; }
	.os-pin { transform: translate(-50%, -50%); }
	.os-pin-num { display: flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 50%; background: var(--wp--preset--color--action); box-shadow: 0 0 0 2px #fff, 0 2px 5px rgba(10, 20, 40, .35); color: #fff; font-size: .75rem; font-weight: 800; line-height: 1; }
	.os-pin.is-on .os-pin-num, .os-pin:hover .os-pin-num { background: var(--wp--preset--color--ink-strong); transform: scale(1.2); }
	.os-pin.up { transform: translate(calc(-50% - 11px), -50%); }
	.os-pin.end:not(.up) { transform: translate(calc(-50% + 11px), -50%); }
	.os-locrow-n, .os-lcard-n { display: flex; align-items: center; justify-content: center; flex: 0 0 auto; border-radius: 50%; background: var(--wp--preset--color--action); color: #fff; font-weight: 800; line-height: 1; }
	.os-locrow-n { width: 22px; height: 22px; margin-right: .6rem; font-size: .75rem; }
	.os-lcard-n { position: absolute; left: 30px; top: 30px; width: 20px; height: 20px; box-shadow: 0 0 0 2px #fff; font-size: .6875rem; }
	.os-where .os-lcard-n { position: static; width: 26px; height: 26px; margin-top: .15rem; font-size: .8125rem; }
	.os-lcard.is-on .os-lcard-n { background: var(--wp--preset--color--ink-strong); }
	.os-lcard-pad { padding: 1.25rem; }
	.os-facts, .os-lcard-foot { margin-left: 0; }
	.os-facts { grid-template-columns: 1fr; }
	.os-fact:first-child { grid-row: auto; }
	.os-acts, .os-acts .os-dir { width: 100%; justify-content: center; }
}
