.sands-contact-quick-card{
    border:1px solid rgba(255,255,255,.08);
}

/* v0.1.120 — premium animated shared locator for Contact + Home. */
.sands-location-map-section{
    position:relative;
    overflow:hidden;
}

.sands-location-map-heading{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(280px,440px);
    gap:32px;
    align-items:end;
    margin-bottom:28px;
}

.sands-location-map-heading__copy h2{
    margin-bottom:0;
}

.sands-location-map-heading__address{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:12px;
    min-width:0;
    color:rgba(255,255,255,.68);
    font-size:14px;
    line-height:1.55;
    text-align:end;
}

.sands-location-map-heading__address-icon{
    flex:0 0 42px;
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    border:1px solid rgba(255,255,255,.11);
    border-radius:14px;
    background:rgba(255,255,255,.05);
    color:var(--primary-color);
}

.sands-location-map-shell{
    position:relative;
    isolation:isolate;
    padding:8px;
    border:1px solid rgba(255,255,255,.10);
    border-radius:34px;
    background:rgba(255,255,255,.035);
    box-shadow:0 38px 96px rgba(0,0,0,.24),0 10px 32px rgba(0,0,0,.13);
    transition:transform .45s cubic-bezier(.22,1,.36,1),border-color .35s ease,box-shadow .45s ease;
}

.sands-location-map-shell::before,
.sands-location-map-shell::after{
    content:"";
    position:absolute;
    pointer-events:none;
}

.sands-location-map-shell::before{
    inset:-1px;
    z-index:-1;
    border-radius:35px;
    background:linear-gradient(125deg,rgba(255,255,255,.15),transparent 22%,transparent 75%,rgba(255,255,255,.07));
    opacity:.72;
}

.sands-location-map-shell::after{
    left:10%;
    right:10%;
    bottom:-30px;
    height:62px;
    z-index:-2;
    border-radius:50%;
    background:rgba(0,0,0,.26);
    filter:blur(34px);
    opacity:.58;
}

.sands-location-map-shell:hover{
    transform:translateY(-3px);
    border-color:rgba(255,255,255,.16);
    box-shadow:0 44px 108px rgba(0,0,0,.27),0 12px 34px rgba(0,0,0,.15);
}

.sands-location-map-stage{
    position:relative;
    min-height:570px;
    overflow:hidden;
    border-radius:27px;
    background:#d8dcde;
}

.sands-location-map-stage iframe,
.sands-location-map-canvas{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    min-height:570px;
    border:0;
    display:block;
    transform:none;
    pointer-events:auto;
    user-select:auto;
    touch-action:auto;
    animation:sands-location-map-reveal 1.15s cubic-bezier(.22,1,.36,1) both;
}

/* v0.1.131 — real Google Maps JavaScript API surface. */
.sands-location-map-canvas{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    min-height:570px;
    touch-action:auto;
    user-select:auto;
}

.sands-location-map-canvas .gm-style{
    font-family:inherit;
}

.sands-location-map-atmosphere{
    position:absolute;
    inset:0;
    z-index:2;
    pointer-events:none;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.06),inset 0 -76px 94px rgba(0,0,0,.12);
    background:
        radial-gradient(circle at 50% 48%,rgba(255,255,255,.02) 0,rgba(255,255,255,0) 27%),
        linear-gradient(180deg,rgba(8,12,16,.015),rgba(8,12,16,.04));
}

.sands-location-map-scan{
    position:absolute;
    left:8%;
    right:8%;
    top:-8%;
    z-index:3;
    height:1px;
    pointer-events:none;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.68),transparent);
    box-shadow:0 0 18px rgba(255,255,255,.23);
    opacity:.34;
    animation:sands-location-map-scan 7s ease-in-out 1.2s infinite;
}

.sands-location-map-corner{
    position:absolute;
    z-index:6;
    width:34px;
    height:34px;
    pointer-events:none;
    opacity:.65;
}

.sands-location-map-corner::before,
.sands-location-map-corner::after{
    content:"";
    position:absolute;
    background:rgba(255,255,255,.82);
    border-radius:999px;
    box-shadow:0 1px 8px rgba(0,0,0,.14);
}

.sands-location-map-corner::before{width:22px;height:2px}
.sands-location-map-corner::after{width:2px;height:22px}
.sands-location-map-corner--tl{left:22px;top:22px}
.sands-location-map-corner--tr{right:22px;top:22px;transform:rotate(90deg)}
.sands-location-map-corner--br{right:22px;bottom:22px;transform:rotate(180deg)}
.sands-location-map-corner--bl{left:22px;bottom:22px;transform:rotate(270deg)}

.sands-location-map-dock{
    position:absolute;
    left:30px;
    bottom:30px;
    z-index:7;
    width:min(500px,calc(100% - 60px));
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    align-items:center;
    gap:14px;
    padding:12px 12px 12px 13px;
    border:1px solid rgba(255,255,255,.24);
    border-radius:22px;
    background:rgba(12,15,19,.82);
    -webkit-backdrop-filter:blur(20px) saturate(140%);
    backdrop-filter:blur(20px) saturate(140%);
    box-shadow:0 20px 48px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.05);
    color:#fff;
    text-decoration:none;
    transition:transform .28s cubic-bezier(.22,1,.36,1),border-color .25s ease,background .25s ease;
}

.sands-location-map-dock:hover,
.sands-location-map-dock:focus-visible{
    transform:translateY(-2px);
    border-color:rgba(255,255,255,.36);
    color:#fff;
}

.sands-location-map-dock__icon{
    position:relative;
    flex:0 0 50px;
    width:50px;
    height:50px;
    display:grid;
    place-items:center;
    border-radius:16px;
    background:rgba(255,255,255,.07);
    color:var(--primary-color);
    overflow:hidden;
}

.sands-location-map-dock__icon > i{
    position:relative;
    z-index:2;
    font-size:20px;
}

.sands-location-map-dock__pulse{
    position:absolute;
    left:50%;
    top:50%;
    width:18px;
    height:18px;
    border:1px solid color-mix(in srgb,var(--primary-color) 68%,white 32%);
    border-radius:50%;
    transform:translate(-50%,-50%);
    animation:sands-location-map-dock-pulse 2.8s ease-out infinite;
}

.sands-location-map-dock__copy{
    min-width:0;
    display:grid;
    gap:3px;
}

.sands-location-map-dock__copy strong{
    color:#fff;
    font-size:16px;
    line-height:1.35;
    font-weight:700;
}

.sands-location-map-dock__copy small{
    color:rgba(255,255,255,.68);
    font-size:13px;
    line-height:1.45;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.sands-location-map-dock__action{
    width:48px;
    height:48px;
    display:grid;
    place-items:center;
    border-radius:15px;
    background:var(--primary-color);
    color:#fff;
    box-shadow:0 10px 24px color-mix(in srgb,var(--primary-color) 24%,transparent);
}

.rtl .sands-location-map-dock{
    left:auto;
    right:30px;
}

@keyframes sands-location-map-reveal{
    0%{transform:scale(1.045);filter:saturate(.84) blur(1.5px)}
    100%{transform:scale(1);filter:saturate(1) blur(0)}
}

@keyframes sands-location-map-scan{
    0%,14%{top:-8%;opacity:0}
    26%{opacity:.34}
    68%{opacity:.18}
    82%,100%{top:108%;opacity:0}
}



@keyframes sands-location-map-dock-pulse{
    0%{transform:translate(-50%,-50%) scale(.7);opacity:.66}
    72%{opacity:.08}
    100%{transform:translate(-50%,-50%) scale(2.25);opacity:0}
}

body:not(.dark-scheme) .sands-location-map-heading__address{
    color:rgba(20,27,34,.68);
}

body:not(.dark-scheme) .sands-location-map-heading__address-icon{
    border-color:rgba(20,27,34,.10);
    background:rgba(20,27,34,.035);
}

body:not(.dark-scheme) .sands-location-map-shell{
    border-color:rgba(15,23,42,.10);
    background:#fff;
    box-shadow:0 36px 96px rgba(15,23,42,.14),0 8px 28px rgba(15,23,42,.07);
}

body:not(.dark-scheme) .sands-location-map-shell:hover{
    border-color:rgba(15,23,42,.15);
    box-shadow:0 44px 108px rgba(15,23,42,.16),0 11px 34px rgba(15,23,42,.08);
}

body:not(.dark-scheme) .sands-location-map-dock{
    border-color:rgba(255,255,255,.82);
    background:rgba(255,255,255,.92);
    box-shadow:0 20px 48px rgba(15,23,42,.18),inset 0 1px 0 #fff;
    color:#111820;
}

body:not(.dark-scheme) .sands-location-map-dock:hover,
body:not(.dark-scheme) .sands-location-map-dock:focus-visible{
    border-color:rgba(15,23,42,.12);
    color:#111820;
}

body:not(.dark-scheme) .sands-location-map-dock__icon{
    background:rgba(15,23,42,.045);
}

body:not(.dark-scheme) .sands-location-map-dock__copy strong{
    color:#111820;
}

body:not(.dark-scheme) .sands-location-map-dock__copy small{
    color:rgba(17,24,32,.62);
}

@media (max-width:991.98px){
    .sands-location-map-heading{
        grid-template-columns:1fr;
        gap:16px;
        margin-bottom:22px;
    }
    .sands-location-map-heading__address{
        justify-content:flex-start;
        max-width:620px;
        text-align:start;
    }
    .sands-location-map-shell{border-radius:27px}
    .sands-location-map-stage{
        min-height:510px;
        border-radius:20px;
    }
    .sands-location-map-stage iframe{min-height:510px}
    .sands-location-map-dock{
        left:24px;
        bottom:24px;
        width:min(470px,calc(100% - 48px));
    }
    .rtl .sands-location-map-dock{
        left:auto;
        right:24px;
    }
}

@media (max-width:575.98px){
    .sands-location-map-heading{margin-bottom:18px}
    .sands-location-map-heading__address{
        align-items:flex-start;
        font-size:13px;
    }
    .sands-location-map-heading__address-icon{
        flex-basis:38px;
        width:38px;
        height:38px;
        border-radius:12px;
    }
    .sands-location-map-shell{
        padding:5px;
        border-radius:20px;
        transform:none !important;
    }
    .sands-location-map-stage{
        min-height:430px;
        border-radius:15px;
    }
    .sands-location-map-stage iframe{min-height:430px}
    .sands-location-map-corner--tl{left:15px;top:15px}
    .sands-location-map-corner--tr{right:15px;top:15px}
    .sands-location-map-corner--br{right:15px;bottom:15px}
    .sands-location-map-corner--bl{left:15px;bottom:15px}
    .sands-location-map-dock,
    .rtl .sands-location-map-dock{
        left:12px;
        right:12px;
        bottom:12px;
        width:auto;
        padding:10px;
        gap:10px;
        border-radius:18px;
    }
    .sands-location-map-dock__icon{
        width:44px;
        height:44px;
        border-radius:14px;
    }
    .sands-location-map-dock__copy strong{font-size:14px}
    .sands-location-map-dock__copy small{font-size:11.5px}
    .sands-location-map-dock__action{
        width:42px;
        height:42px;
        border-radius:13px;
    }
}

@media (prefers-reduced-motion:reduce){
    .sands-location-map-shell{transition:none !important}
    .sands-location-map-stage iframe,
    .sands-location-map-canvas,
    .sands-location-map-scan,
    .sands-location-map-dock__pulse{
        animation:none !important;
    }
}

/* v0.1.129 — simple standard location pin on the exact initial SANDS map centre. */
.sands-location-map-google-pin{
    position:absolute;
    left:50%;
    top:50%;
    z-index:5;
    width:42px;
    height:56px;
    transform:translate(-50%,-100%);
    transform-origin:50% 100%;
    pointer-events:none;
    filter:drop-shadow(0 5px 8px rgba(0,0,0,.28));
    transition:opacity .18s ease,transform .18s ease;
}

.sands-location-map-google-pin svg{
    display:block;
    width:100%;
    height:100%;
}

/* Once the live Google iframe has focus, do not leave a fixed overlay marker
   visible while the visitor pans the real map. */
.sands-location-map-stage:focus-within .sands-location-map-google-pin{
    opacity:0;
    transform:translate(-50%,-94%) scale(.94);
}

@media (max-width:575.98px){
    .sands-location-map-google-pin{
        width:36px;
        height:48px;
    }
}

@media (prefers-reduced-motion:reduce){
    .sands-location-map-google-pin{transition:none !important}
}


/* v0.1.130 — deterministic exact-location pin with local zoom controls. */
.sands-location-map-stage--fixed-location iframe{
    pointer-events:none;
    user-select:none;
    touch-action:none;
}

.sands-location-map-stage--fixed-location .sands-location-map-google-pin,
.sands-location-map-stage--fixed-location:focus-within .sands-location-map-google-pin{
    left:50%;
    top:50%;
    opacity:1;
    transform:translate(-50%,-100%);
}

.sands-location-map-zoom{
    position:absolute;
    top:24px;
    right:24px;
    z-index:8;
    display:grid;
    gap:8px;
    pointer-events:auto;
}

.rtl .sands-location-map-zoom{
    right:auto;
    left:24px;
}

.sands-location-map-zoom__button{
    width:44px;
    height:44px;
    display:grid;
    place-items:center;
    padding:0;
    border:1px solid rgba(255,255,255,.32);
    border-radius:13px;
    background:rgba(15,18,22,.88);
    -webkit-backdrop-filter:blur(14px);
    backdrop-filter:blur(14px);
    box-shadow:0 10px 26px rgba(0,0,0,.20);
    color:#fff;
    font-family:inherit;
    font-weight:600;
    font-size:25px;
    line-height:1;
    cursor:pointer;
    transition:transform .18s ease,background .18s ease,border-color .18s ease,opacity .18s ease;
}

.sands-location-map-zoom__button:hover,
.sands-location-map-zoom__button:focus-visible{
    transform:translateY(-1px);
    background:rgba(24,28,33,.96);
    border-color:rgba(255,255,255,.52);
    outline:none;
}

.sands-location-map-zoom__button:disabled{
    opacity:.38;
    cursor:default;
    transform:none;
}

body:not(.dark-scheme) .sands-location-map-zoom__button{
    border-color:rgba(15,23,42,.16);
    background:rgba(255,255,255,.94);
    color:#111820;
    box-shadow:0 10px 26px rgba(15,23,42,.14);
}

@media (max-width:575.98px){
    .sands-location-map-zoom{
        top:16px;
        right:16px;
        gap:7px;
    }
    .rtl .sands-location-map-zoom{
        right:auto;
        left:16px;
    }
    .sands-location-map-zoom__button{
        width:42px;
        height:42px;
        border-radius:12px;
        font-size:23px;
    }
}

@media (prefers-reduced-motion:reduce){
    .sands-location-map-zoom__button{transition:none !important}
}
