/* CoreStruct Location */
@keyframes cswPinPulse{from{scale:.6;opacity:.6}to{scale:1.6;opacity:0}}
.csw-location{background:var(--mint)}
.csw-location .deco i:nth-child(1),.csw-location .deco i:nth-child(2){background:var(--white)}
.csw-location .deco i:nth-child(3){background:var(--sage)}
.csw-location .loc-grid{display:grid;grid-template-columns:var(--loc-cols,1fr 1.6fr);gap:20px}
.csw-location .loc-info{position:relative;overflow:hidden;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='254' viewBox='0 0 220 254'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.08' stroke-width='1.2'%3E%3Cpath d='M110 0 220 63.5v127L110 254 0 190.5v-127z'/%3E%3Cpath d='M110 0v127M110 127 220 190.5M110 127 0 190.5'/%3E%3C/g%3E%3C/svg%3E") center/220px 254px,var(--forest);color:var(--white);border-radius:var(--radius);padding:clamp(32px,4vw,56px);display:flex;flex-direction:column;justify-content:center;gap:32px;box-shadow:0 20px 40px -28px rgba(40,58,43,.6)}
.csw-location .loc-item{display:flex;gap:18px;align-items:flex-start}
.csw-location .loc-item i{width:52px;height:52px;flex:none;border-radius:50%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);display:grid;place-items:center;color:var(--gold);font-style:normal}
.csw-location .loc-item svg{width:24px;height:24px}
.csw-location .loc-k{display:block;margin:0 0 4px;padding:0;font:700 18px/1.3 var(--f-accent);color:var(--white)}
.csw-location .loc-item .loc-v{display:block;margin:0;padding:0;font:400 17px/1.65 var(--f-head);color:var(--mint)}
.csw-location .loc-info .px{position:absolute;width:28px;height:28px}
.csw-location .lp1{bottom:0;right:0;background:var(--mint)}
.csw-location .lp2{bottom:0;right:56px;background:var(--mint)}
.csw-location .lp3{bottom:28px;right:28px;background:var(--gold)}
.csw-location .loc-map{position:relative;display:block;min-height:420px;border-radius:var(--radius);overflow:hidden;background:#DCEAE5;text-decoration:none;box-shadow:0 20px 40px -28px rgba(40,58,43,.5)}
.csw-location .map-grid{position:absolute;inset:0;background:
  linear-gradient(115deg,transparent 46%,rgba(255,255,255,.95) 46.5%,rgba(255,255,255,.95) 48.5%,transparent 49%),
  linear-gradient(20deg,transparent 60%,rgba(255,255,255,.85) 60.4%,rgba(255,255,255,.85) 61.8%,transparent 62.2%),
  linear-gradient(160deg,transparent 30%,rgba(212,184,29,.55) 30.3%,rgba(212,184,29,.55) 31.3%,transparent 31.6%),
  repeating-linear-gradient(0deg,rgba(90,124,108,.12) 0 1px,transparent 1px 48px),
  repeating-linear-gradient(90deg,rgba(90,124,108,.12) 0 1px,transparent 1px 48px),
  radial-gradient(40% 50% at 78% 70%,rgba(90,124,108,.25),transparent 70%),
  var(--mint)}
.csw-location .map-frame{position:absolute;inset:0;z-index:0}
.csw-location .map-frame iframe{width:100%;height:100%;border:0;pointer-events:none;filter:saturate(.55) hue-rotate(-10deg) contrast(1.02)}
.csw-location .loc-map.has-map .map-grid{display:none}
.csw-location .loc-map.has-map::before{content:"";position:absolute;inset:0;z-index:1;background:rgba(232,244,241,.18);transition:background .3s}
.csw-location .loc-map.has-map:hover::before{background:rgba(40,58,43,.12)}
.csw-location .map-pin{position:absolute;z-index:2;left:50%;top:50%;translate:-50% -100%;width:64px;height:64px;border-radius:50% 50% 50% 0;rotate:-45deg;background:var(--forest);display:grid;place-items:center;box-shadow:0 12px 24px -8px rgba(40,58,43,.6)}
.csw-location .map-pin svg{width:28px;height:28px;color:var(--gold);rotate:45deg}
.csw-location .map-pin::after{content:"";position:absolute;inset:-14px;border-radius:50%;border:2px solid var(--sage);opacity:.5;animation:cswPinPulse 2.2s ease-out infinite}
.csw-location .map-label{display:block;margin:0;position:absolute;z-index:2;left:50%;top:calc(50% + 18px);translate:-50% 0;background:var(--white);color:var(--ink);font:600 15px/1.2 var(--f-nav);padding:12px 18px;border-radius:999px;white-space:nowrap;box-shadow:0 10px 20px -10px rgba(40,58,43,.5);transition:background .25s,color .25s}
.csw-location .loc-map:hover .map-label{background:var(--gold)}
@media (prefers-reduced-motion:reduce){.csw-location .map-pin::after{animation:none}}
@media (max-width:860px){.csw-location .loc-grid{grid-template-columns:1fr}.csw-location .loc-map{min-height:320px}.csw-location .map-label{white-space:normal;text-align:center;max-width:85%}}

.csw-location a.loc-item{text-decoration:none;color:inherit;border-radius:12px;transition:transform .25s}
.csw-location a.loc-item i{transition:background .25s,border-color .25s,color .25s}
.csw-location a.loc-item:hover i,.csw-location a.loc-item:focus-visible i{background:var(--gold);border-color:var(--gold);color:var(--forest)}
.csw-location a.loc-item:hover .loc-v,.csw-location a.loc-item:focus-visible .loc-v{color:var(--white)}
.csw-location a.loc-item:hover{transform:translateX(4px)}
