.locator-section { padding: 35px 0 50px; background: rgba(247, 243, 252, 0.65); }
.locator-panel { padding: 20px; overflow: hidden; border: 1px solid #e5dcef; border-radius: 18px; background: rgba(255, 255, 255, 0.86); box-shadow: 0 14px 36px rgba(61, 29, 91, 0.1); }
.locator-heading { display: flex; flex-direction: column; align-items: center; padding-top: 10px; text-align: center; }
.locator-heading h2 { max-width: 760px; font-family: "Manrope", sans-serif; font-size: clamp(28px, 3.2vw, 40px); font-weight: 800; line-height: 1.02; letter-spacing: -0.08em; }
.locator-heading h2 em { color: #8339d2; font-family: "Playfair Display", Georgia, serif; font-size: .94em; font-style: italic; font-weight: 700; letter-spacing: -.035em; margin-left: .12em; }
.locator-heading > p { max-width: 460px; margin: 8px 0 10px; color: var(--muted); font-size: 11px; line-height: 1.4; }
.locator-laboratory { display: flex; flex-direction: column; align-items: center; gap: 6px; color: #4b256e; font-size: 12px; font-weight: 700; }
.locator-laboratory img { width: 38px; height: 38px; object-fit: contain; }
.locator-selection { margin-top: 10px; }
.locator-label { display: flex; align-items: center; justify-content: center; gap: 8px; color: #6b6177; font-size: 13px; font-weight: 700; }
.locator-label svg { width: 18px; color: var(--purple); }
.locator-carousel { display: grid; grid-template-columns: 36px minmax(0, 1fr) 36px; gap: 8px; align-items: center; margin-top: 6px; }
.locator-window { overflow: hidden; padding: 8px 2px 10px; mask-image: linear-gradient(to right, transparent, #000 16px, #000 calc(100% - 16px), transparent); }
.locator-unit-list { display: grid; grid-template-rows: repeat(2, 40px); grid-auto-flow: column; grid-auto-columns: max-content; gap: 8px 10px; overflow-x: auto; scroll-behavior: smooth; scrollbar-width: none; }
.locator-unit-list::-webkit-scrollbar { display: none; }
.locator-control { display: grid; width: 36px; height: 36px; place-items: center; border: 1px solid #ddcfeb; border-radius: 50%; background: #fff; color: var(--purple); box-shadow: 0 5px 14px rgba(61, 29, 91, 0.1); cursor: pointer; }
.locator-control:disabled { opacity: 0.3; cursor: default; }
.locator-control svg { width: 22px; }
.locator-unit-button { display: flex; min-width: 118px; min-height: 40px; align-items: center; justify-content: center; gap: 7px; padding: 7px 14px; border: 1px solid #e4dceb; border-radius: 10px; background: #fff; color: #493d55; box-shadow: 0 4px 10px rgba(61, 29, 91, 0.05); font: inherit; font-size: 11px; font-weight: 700; cursor: pointer; white-space: nowrap; }
.locator-unit-button svg { width: 18px; color: var(--purple); }
.locator-unit-button.active { border-color: var(--purple); background: var(--purple); color: #fff; box-shadow: 0 7px 17px rgba(111, 42, 173, 0.24); }
.locator-unit-button.active svg { color: #fff; }
.locator-content { display: grid; grid-template-columns: minmax(280px, 0.68fr) minmax(420px, 1.32fr); gap: 14px; margin-top: 14px; }
.locator-card, .locator-map { border: 1px solid #e5dcef; border-radius: 20px; background: #fff; box-shadow: 0 8px 22px rgba(61, 29, 91, 0.08); }
.locator-card { padding: 16px; }
.locator-card-top { display: flex; align-items: center; gap: 14px; }
.locator-card-logo { display: grid; width: 50px; height: 50px; flex: 0 0 auto; place-items: center; border: 1px solid #e2d8ed; border-radius: 13px; background: linear-gradient(145deg, #fff, #f5effa); }
.locator-card-logo img { width: 35px; height: 35px; object-fit: contain; }
.locator-card-top span { display: block; margin-bottom: 4px; color: var(--purple); font-size: 11px; font-weight: 700; }
.locator-card-top h3 { margin: 0; font: 800 clamp(22px, 2.1vw, 30px)/1 Manrope, sans-serif; letter-spacing: -0.06em; }
.locator-description { margin: 10px 0; padding-bottom: 10px; border-bottom: 1px solid #eee8f4; color: var(--muted); font-size: 11px; line-height: 1.4; }
.locator-data { display: grid; gap: 6px; }
.locator-data > div { display: grid; grid-template-columns: 34px 1fr; align-items: center; gap: 10px; }
.locator-data > div > svg { width: 34px; height: 34px; padding: 8px; border: 1px solid #d8cae8; border-radius: 50%; color: var(--purple); }
.locator-data p { margin: 0; }
.locator-data p span { display: block; color: #7b7285; font-size: 10px; }
.locator-data a, .locator-data strong { color: #39244b; font-size: 11px; line-height: 1.35; overflow-wrap: anywhere; }
.locator-actions { display: grid; grid-template-columns: 1fr 0.92fr; gap: 10px; margin-top: 15px; }
.locator-actions a, .locator-map-open { display: flex; min-height: 42px; align-items: center; justify-content: center; gap: 8px; border-radius: 9px; font-size: 10px; font-weight: 800; text-decoration: none; text-transform: uppercase; }
.locator-actions svg, .locator-map-open svg { width: 18px; }
.locator-contact { background: var(--purple); color: #fff; }
.locator-route { border: 1px solid #cdb9df; background: #f7f1fb; color: #593381; }
.locator-map { position: relative; height: 355px; min-height: 0; overflow: hidden; background: #e9eeee; transform: translateY(14px); }
.locator-map iframe { display: block; width: 100%; height: 100%; min-height: 0; border: 0; filter: saturate(0.78) contrast(0.96); }
.locator-map-open { position: absolute; right: 22px; bottom: 22px; padding: 0 20px; background: #fff; color: #593381; box-shadow: 0 7px 18px rgba(61, 29, 91, 0.14); }

/* Dark mode: keep the unit locator aligned with the site's purple theme. */
body:not(.light-mode) .locator-section { background: #140a1d; }
body:not(.light-mode) .locator-panel { border-color: #4b2e5e; background: #1a0e25; box-shadow: 0 16px 34px rgba(0, 0, 0, .24); }
body:not(.light-mode) .locator-heading h2 { color: #fff; }
body:not(.light-mode) .locator-heading h2 em { color: #c47af4; }
body.light-mode .locator-heading h2 { color: #281044; }
body.light-mode .locator-heading h2 em { color: #873bd0; }
body:not(.light-mode) .locator-heading > p,
body:not(.light-mode) .locator-label { color: #b9a9c5; }
body:not(.light-mode) .locator-laboratory { color: #eadcf3; }
body:not(.light-mode) .locator-control { border-color: #4b2e5e; background: #1b0d29; color: #c47af4; }
body:not(.light-mode) .locator-control:hover { background: #a84ce3; color: #fff; }
body:not(.light-mode) .locator-unit-button { border-color: #4b2e5e; background: #1a0e25; color: #eadcf3; }
body:not(.light-mode) .locator-unit-button.active { border-color: #a84ce3; background: #a84ce3; color: #fff; }
body:not(.light-mode) .locator-card,
body:not(.light-mode) .locator-map { border-color: #4b2e5e; background: #1a0e25; box-shadow: 0 10px 24px rgba(0, 0, 0, .22); }
body:not(.light-mode) .locator-card-logo { border-color: #4b2e5e; background: #2b183a; }
body:not(.light-mode) .locator-card-top span,
body:not(.light-mode) .locator-data a,
body:not(.light-mode) .locator-data strong { color: #eadcf3; }
body:not(.light-mode) .locator-description { border-color: #4b2e5e; color: #b9a9c5; }
body:not(.light-mode) .locator-data p span { color: #b9a9c5; }
body:not(.light-mode) .locator-data > div > svg { border-color: #4b2e5e; color: #c47af4; }
body:not(.light-mode) .locator-route { border-color: #c47af4; background: #2b183a; color: #c47af4; }
body:not(.light-mode) .locator-map { background: #100817; }
body:not(.light-mode) .locator-map iframe { filter: invert(.86) hue-rotate(180deg) saturate(.7) contrast(.9); }
body:not(.light-mode) .locator-map-open { background: #1b0d29; color: #c47af4; box-shadow: 0 7px 18px rgba(0, 0, 0, .28); }

@media (max-width: 800px) { .locator-panel { padding: 28px 20px; } .locator-content { grid-template-columns: 1fr; } .locator-map { height: 400px; } }
@media (max-width: 500px) { .locator-section { padding: 70px 0; } .locator-panel { padding: 24px 14px; } .locator-carousel { grid-template-columns: 34px minmax(0, 1fr) 34px; gap: 6px; } .locator-control { width: 34px; height: 34px; } .locator-actions { grid-template-columns: 1fr; } .locator-map { height: 330px; } }
