.locations-section { background: var(--cream); }
.locations-section .section-heading p:last-child { color: var(--muted); max-width: 620px; }
.locations-layout { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(280px, .75fr); background: #fff; box-shadow: var(--shadow); }
.locations-layout #office-map { height: 620px; border: 0; box-shadow: none; }
.location-list { padding: 18px; display: grid; grid-template-columns: 1fr; align-content: start; max-height: 620px; overflow-y: auto; }
.location-item { display: grid; grid-template-columns: 38px 1fr; gap: 14px; align-items: center; width: 100%; min-height: 58px; padding: 10px 12px; border: 0; border-bottom: 1px solid var(--line); background: transparent; color: var(--ink); text-align: left; font: inherit; cursor: pointer; }
.location-item:hover, .location-item.active { background: var(--cream); }
.location-item:focus-visible { position: relative; z-index: 1; }
.location-item__number { color: var(--burgundy); font-size: 11px; font-weight: 700; letter-spacing: .1em; }
.location-item strong { display: block; font-family: var(--serif); font-size: 20px; font-weight: 400; line-height: 1.2; }
.location-item small { display: block; color: var(--muted); font-size: 11px; margin-top: 2px; }
.obo-map-marker { width: 22px; height: 22px; border: 5px solid #fff; border-radius: 50% 50% 50% 0; background: var(--burgundy); box-shadow: 0 3px 12px rgba(11,27,42,.35); transform: rotate(-45deg); }
.obo-map-marker--primary { width: 28px; height: 28px; background: var(--navy); }
.location-popup strong { font-family: var(--serif); font-size: 17px; }
@media(max-width: 860px) { .locations-layout { grid-template-columns: 1fr; } .locations-layout #office-map { height: 470px; } .location-list { grid-template-columns: 1fr 1fr; max-height: none; } }
@media(max-width: 540px) { .locations-layout #office-map { height: 390px; } .location-list { grid-template-columns: 1fr; } }
