/* Rivali replica: live locations map + 'Our locations' block (dark / purple brand) */
.locmap{background:radial-gradient(120% 90% at 40% 30%,#17161b 0%,#09090b 62%,#050506 100%);color:#fff;padding:64px 24px 60px;position:relative;clear:both}
.locmap__inner{max-width:1180px;margin:0 auto}
.locmap .locmap__title{font-family:SweetSansProRegular,Barlow,sans-serif!important;font-weight:400!important;text-transform:uppercase;letter-spacing:.1em;font-size:clamp(24px,2.4vw,34px)!important;line-height:1.15!important;color:#fff!important;text-align:center!important;margin:0 0 10px!important}
.locmap .locmap__sub{font:400 16px/1.5 Barlow,"Open Sans",sans-serif!important;color:#bdb9c3!important;text-align:center!important;margin:0 0 26px!important}
.locmap__map{position:relative;height:440px;border-radius:2px;overflow:hidden;background:#f2f2f0;box-shadow:0 0 0 1px rgba(255,255,255,.08),0 24px 60px rgba(0,0,0,.5)}
.locmap__map .leaflet-tile-pane{filter:grayscale(1) brightness(1.06) contrast(.92)}
.locmap__offline{display:none;position:absolute;inset:0;margin:0;align-items:center;justify-content:center;text-align:center;padding:24px;font:400 16px Barlow,sans-serif;color:#d9d6dd}
.locmap.is-offline .locmap__map{height:auto;min-height:90px}.locmap.is-offline .locmap__offline{display:flex;position:static}
.locmap__pin span{display:block;width:30px;height:30px;border-radius:50% 50% 50% 0;background:#73378a;transform:rotate(-45deg);border:2px solid #fff;box-shadow:0 4px 12px rgba(0,0,0,.5)}
.locmap__pin span::after{content:"";position:absolute;left:9px;top:9px;width:8px;height:8px;border-radius:50%;background:#fff}
.locmap__popup .leaflet-popup-content-wrapper,.locmap__popup .leaflet-popup-tip{background:#141317;color:#f1eff3;box-shadow:0 10px 30px rgba(0,0,0,.6);border:1px solid rgba(255,255,255,.12)}
.locmap__popup .leaflet-popup-content{margin:14px 16px;font:400 14px/1.45 Barlow,"Open Sans",sans-serif}
.locmap__popup a.leaflet-popup-close-button{color:#cfcbd5}
.locmap__pop strong{display:block;font-family:SweetSansProRegular,Barlow,sans-serif;font-weight:400;letter-spacing:.06em;text-transform:uppercase;font-size:13px;margin-bottom:6px;color:#fff}
.locmap__pop span{display:block;margin-bottom:4px}.locmap__pop ul{list-style:none;margin:6px 0;padding:0;color:#c9c5ce}.locmap__pop li{margin:0}
.locmap__pop a{color:#d4b0ea!important}.locmap__pop p{margin:8px 0 0!important;display:flex;gap:14px}
.locmap__cards{list-style:none;margin:28px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.locmap__card{border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.03);padding:20px 20px 18px;margin:0;color:#e9e7ec}
.locmap__card.is-current{border-color:#73378a;box-shadow:inset 3px 0 0 #73378a}
.locmap .locmap__name{font-family:SweetSansProRegular,Barlow,sans-serif!important;font-weight:400!important;text-transform:uppercase;letter-spacing:.08em;font-size:15px!important;line-height:1.3!important;color:#fff!important;margin:0 0 10px!important;text-align:left!important}
.locmap__addr{font:normal 400 16px/1.45 Barlow,"Open Sans",sans-serif;color:#e9e7ec;margin:0 0 8px}
.locmap .locmap__phone{margin:0 0 8px!important;font:400 16px Barlow,sans-serif}.locmap__phone a{color:#e9e7ec!important}
.locmap__hours{list-style:none;margin:0 0 14px;padding:0;font:400 14px/1.5 Barlow,sans-serif;color:#bdb9c3}.locmap__hours li{margin:0;padding:0}
.locmap .locmap__links{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;margin:0!important}
.locmap__links a,.locmap__show{font:500 13px Barlow,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#d4b0ea!important;text-decoration:none;background:none;border:0;padding:6px 0;cursor:pointer;min-height:32px}
.locmap__dir{background:#73378a!important;color:#fff!important;padding:8px 14px!important}
.locmap__links a:hover,.locmap__show:hover{text-decoration:underline}
.locmap a:focus-visible,.locmap button:focus-visible{outline:2px solid #c9a3e0;outline-offset:3px}
@media (max-width:900px){.locmap__cards{grid-template-columns:1fr}.locmap__map{height:360px}}
@media (max-width:767px){.locmap{padding:44px 16px 40px}.locmap__map{height:320px}}

/* Round 18: Contact chooser */
.locmap--chooser{padding-top:28px}
.locmap--chooser .locmap__map{height:min(62vh,560px)}
.locmap__choose{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0}
.locmap__choose a,.locmap__choose button,.locmap__soon{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;font:600 13px Barlow,sans-serif;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;border:1px solid rgba(255,255,255,.35);color:#fff;background:transparent;cursor:pointer}
.locmap__choose .locmap__book{background:#73378a;border-color:#73378a}.locmap__soon{color:#a9a6ae;border-style:dashed;cursor:default}
.locmap__choose .locmap__open{display:none}
.locmap__modal{position:fixed;inset:0;z-index:100000;display:grid;place-items:center;padding:16px}
.locmap__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.66)}
.locmap__dialog{position:relative;width:min(460px,100%);max-height:calc(100vh - 32px);overflow:auto;background:#0e0d11;color:#ece9ef;border:1px solid rgba(176,127,208,.55);box-shadow:0 20px 60px rgba(0,0,0,.6);padding:26px 24px 20px;font-family:Barlow,"Open Sans",sans-serif}
.locmap__x{position:absolute;top:6px;right:6px;width:44px;height:44px;background:none;border:0;color:#fff;font-size:28px;line-height:1;cursor:pointer}
.locmap__dlgtitle{font-family:SweetSansProRegular,Barlow,sans-serif!important;text-transform:uppercase;letter-spacing:.08em;font-size:19px!important;color:#fff!important;margin:0 40px 4px 0!important;font-weight:400!important}
.locmap__dlgsub{margin:0 0 16px!important;color:#bdb9c3!important;font-size:15px!important}
.locmap__choices{display:grid;gap:10px;margin:0 0 18px}
.locmap__btn{display:block;min-height:60px;padding:13px 16px;text-decoration:none!important;border:1px solid rgba(255,255,255,.35);color:#fff!important;font:600 15px Barlow,sans-serif;letter-spacing:.1em;text-transform:uppercase}
.locmap__btn span{display:block;font-weight:400;letter-spacing:0;text-transform:none;font-size:13px;color:#cfc9d6;margin-top:3px}
.locmap__btn--book{background:#73378a;border-color:#73378a}.locmap__btn--book:hover{background:#8a44a6}.locmap__btn--quote:hover{border-color:#b07fd0}
.locmap__btn--soon{color:#a9a6ae!important;border-style:dashed}
.locmap__btn:focus-visible,.locmap__x:focus-visible,.locmap__dlginfo a:focus-visible,.locmap__choose a:focus-visible{outline:2px solid #c9a3e0;outline-offset:2px}
.locmap__dlginfo{border-top:1px solid rgba(255,255,255,.12);padding-top:12px;font-size:14px;color:#bdb9c3}
.locmap__dlginfo address{font-style:normal;color:#e9e7ec;margin:0 0 4px}.locmap__dlginfo ul{list-style:none;margin:6px 0;padding:0}
.locmap__dlginfo a{color:#d4b0ea!important;margin-right:14px}
.locmap__choose .locmap__bookalt{border:0;min-height:44px;padding:0 6px;text-transform:none;letter-spacing:0;font-weight:400;color:#d4b0ea;text-decoration:underline}
.locmap__alt{margin:-8px 0 14px!important;font-size:13px!important;color:#a9a6ae!important}.locmap__alt a{color:#d4b0ea!important}
