/* Plan illustré Orélia. Brand tokens and exact miniature from the approved kit. */
.visit-section.has-location-map {column-gap:70px;row-gap:34px}
.visit-section>.location-map {grid-column:1/-1}
.location-map {margin:0;min-width:0;isolation:isolate}
.location-map__surface {
  position:relative;width:100%;min-width:0;aspect-ratio:5/2;overflow:hidden;
  border:1px solid var(--brand-line);border-radius:48% 48% 2px 2px / 34px 34px 2px 2px;
  background:var(--cream);
}
.location-map__art,.location-map__art img {display:block;width:100%;height:100%}
.location-map__art img {object-fit:cover;object-position:center}
.location-map__district {
  position:absolute;top:29px;left:32px;margin:0;
  color:var(--wine);font:400 28px/1.2 var(--serif);letter-spacing:.12em;
  text-shadow:0 1px 6px var(--paper);
}
.location-map__north {
  position:absolute;top:31px;right:28px;display:flex;gap:8px;align-items:center;
  color:var(--wine);font:600 12px/1.6 var(--sans);
}
.location-map__north svg {width:13px;height:30px}
.location-map__destination {
  position:absolute;top:50%;left:50%;display:flex;flex-direction:column;align-items:center;
  width:max-content;max-width:calc(100% - 28px);gap:13px;transform:translate(-50%,-28px);
  text-decoration:none;color:var(--wine);border-radius:2px;
}
.location-map__pin {position:relative;display:grid;place-items:center;width:56px;height:56px;flex:none}
.location-map__pin::before,.location-map__pin::after {
  content:"";position:absolute;inset:-10px;border:1px solid var(--gold);border-radius:50%;opacity:.38;
  pointer-events:none;
}
.location-map__pin::after {inset:-20px;opacity:.14}
.location-map__pin img {display:block;width:56px;height:56px;border:4px solid var(--paper);border-radius:50%;box-shadow:0 3px 12px rgb(81 40 56 / .12)}
.location-map__label {
  display:grid;gap:2px;max-width:100%;padding:12px 18px;text-align:center;
  color:var(--wine);background:var(--paper);border:1px solid var(--brand-line);
  box-shadow:0 6px 20px rgb(81 40 56 / .07);font:400 14px/1.6 var(--sans);
}
.location-map__label strong {font-size:15px;font-weight:600}
.location-map__label span:last-child {display:inline-flex;justify-content:center;align-items:center;gap:8px;margin-top:5px;text-decoration:underline;text-underline-offset:4px}
.location-map__label svg {width:19px;height:14px}
.location-map__destination:hover .location-map__label {border-color:var(--gold)}
.location-map .location-map__destination:focus-visible {outline:3px solid var(--wine);outline-offset:7px;box-shadow:0 0 0 4px var(--paper)}
.location-map__caption {display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:4px 24px;margin-top:10px;color:var(--wine);font:400 14px/1.6 var(--sans)}
.location-map__caption a {display:inline-flex;align-items:center;min-height:28px;text-decoration:underline;text-underline-offset:3px}
@media (max-width:960px) {
  .visit-section.has-location-map {column-gap:35px}
  .location-map__surface {aspect-ratio:45/23}
}
@media (max-width:620px) {
  .visit-section.has-location-map {row-gap:28px}
  .location-map__surface {aspect-ratio:1;min-height:320px;max-height:460px;border-radius:48% 48% 2px 2px / 26px 26px 2px 2px}
  .location-map__district {font-size:23px;left:22px;top:23px}
  .location-map__north {right:21px;top:22px}
  .location-map__caption a {min-height:44px}
  .location-map__caption {gap:0 14px}
  .location-map__label {padding:10px 15px}
}
@media (prefers-reduced-motion:no-preference) {
  .location-map__label {transition:border-color .2s}
}
