/* =========================================
   SHARED LOCATION MAP
========================================= */
.amadeus-map-wide{
  margin-top:clamp(44px, 7vw, 84px);
  padding-bottom:clamp(40px, 6vw, 72px);
}

.amadeus-map-copy{
  inline-size:min(1100px, 92vw);
  margin-inline:auto;
  margin-bottom:20px;
}

.amadeus-map-title{
  margin:0 0 8px;
  font-family:"Playfair Display", serif;
  font-size:var(--am-type-section-title);
  color:var(--amadeus-text, #233d40);
}

.amadeus-map-sub{
  max-width:50rem;
  margin:0 0 16px;
  color:#2f4345;
  font-size:var(--am-type-body);
  line-height:1.7;
}

.amadeus-map-parking{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  list-style:none;
  margin:0 0 18px;
  padding:0;
}

.amadeus-map-parking li{
  padding:10px 14px;
  border-radius:999px;
  background:color-mix(in srgb, #fff 78%, transparent);
  border:1px solid rgba(35,61,64,.08);
  box-shadow:0 10px 22px rgba(0,0,0,.05);
  color:#233d40;
  font-size:var(--am-type-body-sm);
  line-height:1.4;
  backdrop-filter:blur(8px);
}

.amadeus-map-cta{
  margin:0;
}

.amadeus-map-link,
.amadeus-map-link:visited,
.amadeus-map-link:hover,
.amadeus-map-link:focus,
.amadeus-map-link:active{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:11px 18px;
  border-radius:999px;
  background:#cca300;
  border:1px solid rgba(35,61,64,.12);
  color:#233d40 !important;
  text-decoration:none;
  font-family:"Inter", system-ui, sans-serif;
  font-size:var(--am-type-body-sm);
  font-weight:600;
  line-height:1.3;
  text-shadow:none;
  box-shadow:0 8px 22px rgba(0,0,0,.10);
  transition:transform .12s ease, box-shadow .2s ease, background-color .2s ease;
}

.amadeus-map-link::after{
  content:"\2192";
  font-size:1em;
}

.amadeus-map-link:hover,
.amadeus-map-link:focus{
  background:#e0b200;
  color:#233d40 !important;
  transform:translateY(-1px);
  box-shadow:0 12px 28px rgba(0,0,0,.14);
}

.amadeus-map-bleed{
  position:relative;
  left:50%;
  width:100svw;
  margin-left:-50svw;
  margin-right:-50svw;
  aspect-ratio:21/9;
  overflow:hidden;
  border:0;
  box-shadow:0 10px 40px rgba(0,0,0,.08);
  background:#faf9f3;
  max-width:100svw;
}

#amadeus-map{
  position:absolute;
  inset:0;
  inline-size:100%;
  block-size:100%;
}

@media (max-width:1100px){
  .amadeus-map-bleed{
    aspect-ratio:16/9;
  }
}

@media (max-width:700px){
  .amadeus-map-copy{
    inline-size:min(1100px, 90vw);
  }

  .amadeus-map-link{
    inline-size:100%;
    justify-content:center;
  }
}

@media (max-width:600px){
  .amadeus-map-bleed{
    aspect-ratio:auto;
    block-size:70vh;
    block-size:70svh;
  }

  .amadeus-map-parking{
    gap:8px;
  }

  .amadeus-map-parking li{
    inline-size:100%;
  }
}

/* Leaflet */
.leaflet-container{
  font-family:"Inter", system-ui, sans-serif;
  background:#faf9f3;
}

.is-sleek .leaflet-tile-pane img.leaflet-tile{
  filter:grayscale(.85) saturate(.8) brightness(1.06) contrast(.96);
}

.leaflet-popup-content-wrapper{
  background:color-mix(in srgb, #fff 90%, transparent);
  backdrop-filter:blur(8px);
  border-radius:14px;
  border:1px solid rgba(0,0,0,.06);
  box-shadow:0 14px 36px rgba(0,0,0,.16);
}

.leaflet-popup-content{
  margin:14px 18px 16px;
  color:#233d40;
  font-size:var(--am-type-body-sm);
  line-height:1.45;
}

.leaflet-popup-tip{
  background:color-mix(in srgb, #fff 90%, transparent);
}

.leaflet-control-scale-line{
  background:rgba(255,255,255,.88);
  border-color:rgba(35,61,64,.14);
  color:#233d40;
}

.am-popup{
  display:grid;
  gap:10px;
  min-inline-size:220px;
}

.am-popup__title{
  margin:0;
  color:#233d40;
  font-weight:700;
}

.am-popup__meta{
  margin:0;
  color:#5a6a6d;
  font-size:var(--am-type-body-sm);
}

.leaflet-popup-content .am-popup__btn,
.leaflet-popup-content .am-popup__btn:visited,
.leaflet-popup-content .am-popup__btn:hover,
.leaflet-popup-content .am-popup__btn:focus,
.leaflet-popup-content .am-popup__btn:active{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  align-self:start;
  gap:8px;
  min-block-size:44px;
  padding:10px 16px;
  border-radius:999px;
  background:#cca300;
  border:1px solid rgba(35,61,64,.18);
  color:#233d40 !important;
  text-decoration:none;
  font-size:var(--am-type-body-sm);
  font-weight:700;
  line-height:1.2;
  white-space:nowrap;
  text-shadow:none;
  box-shadow:0 8px 22px rgba(0,0,0,.12);
  transition:transform .12s ease, box-shadow .2s ease, background-color .2s ease;
}

.leaflet-popup-content .am-popup__btn::after{
  content:"\2192";
  font-size:.95em;
}

.leaflet-popup-content .am-popup__btn:hover,
.leaflet-popup-content .am-popup__btn:focus{
  background:#e0b200;
  transform:translateY(-1px);
  box-shadow:0 8px 22px rgba(0,0,0,.12);
}

.am-pin{
  background:none;
  border:0;
}

.am-pin-svg{
  display:block;
  inline-size:32px;
  block-size:44px;
  overflow:visible;
  filter:drop-shadow(0 8px 18px rgba(0,0,0,.16));
  transition:transform .15s ease;
}

.leaflet-marker-icon:hover .am-pin-svg{
  transform:translateY(-1px);
}

.am-pin-shape{
  fill:#eef1f3;
  stroke:rgba(0,0,0,.08);
  stroke-width:1.2;
}

.am-pin-core{
  fill:rgba(255,255,255,.92);
}

.am-pin-label{
  fill:#233d40;
  font-family:"Inter", system-ui, sans-serif;
  font-size:11px;
  font-weight:700;
  text-anchor:middle;
  dominant-baseline:middle;
}

.am-pin--rest{
  color:#233d40;
}

.am-pin--rest .am-pin-shape{
  fill:#f6e7ae;
}

.am-pin--park{
  color:#233d40;
}

.am-map-controls{
  position:absolute;
  inset:16px auto auto 16px;
  z-index:1000;
  display:flex;
  gap:8px;
  padding:6px;
  border-radius:999px;
  background:color-mix(in srgb, #fff 80%, transparent);
  backdrop-filter:blur(8px);
  border:1px solid rgba(0,0,0,.06);
  box-shadow:0 10px 26px rgba(0,0,0,.12);
}

.amc-btn{
  inline-size:40px;
  block-size:40px;
  border:0;
  padding:0;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:#fff;
  color:#233d40;
  font:600 16px/1 "Inter", system-ui, sans-serif;
  cursor:pointer;
  box-shadow:0 2px 10px rgba(0,0,0,.08);
  transition:transform .12s ease, box-shadow .2s ease, background-color .2s ease;
}

.amc-btn svg{
  inline-size:18px;
  block-size:18px;
  display:block;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.amc-locate svg{
  transform:translateY(-.5px);
}

.amc-btn:hover{
  transform:translateY(-1px);
  box-shadow:0 8px 20px rgba(0,0,0,.16);
}

.amc-btn:active{
  transform:translateY(0);
}

.amc-locate.is-loading{
  background:repeating-linear-gradient(90deg, #fff 0 12px, #f4f4f4 12px 24px);
}
