.bouzy-vineyard-map {
  --bouzy-map-background: #f1ebe5;
  --bouzy-map-surface: #fffdf9;
  --bouzy-map-canvas: #f7f3ee;
  --bouzy-map-ink: #4a4038;
  --bouzy-map-vineyard: #6e304a;
  --bouzy-map-other-vineyard: #a79d92;
  --bouzy-map-chardonnay: #946a0e;
  --bouzy-map-accent: #6e304a;
  --bouzy-map-stone: #d8d1c8;

  background: var(--bouzy-map-background);
  color: var(--bouzy-map-ink);
  font-family: var(--font-body, "Libre Franklin", sans-serif);
  padding-block: clamp(4.5rem, 8vw, 7rem);
}

.bouzy-vineyard-map__inner {
  margin-inline: auto;
  max-width: 90rem;
  padding-inline: 1rem;
}

.bouzy-vineyard-map__header {
  margin: 0 auto clamp(2.5rem, 5vw, 4rem);
  max-width: 48rem;
  text-align: center;
}

.bouzy-vineyard-map__eyebrow {
  color: var(--bouzy-map-accent);
  font-family: var(--font-label, "Libre Franklin", sans-serif);
  font-size: 0.75rem;
  font-weight: 650;
  letter-spacing: 0.18em;
  line-height: 1.5;
  margin: 0 0 1rem;
  text-transform: uppercase;
}

.bouzy-vineyard-map__title {
  color: var(--bouzy-map-ink);
  font-family: var(--font-display, "Libre Bodoni", serif);
  font-size: clamp(2.5rem, 5vw, 3rem);
  font-optical-sizing: auto;
  font-weight: 600;
  letter-spacing: -0.025em;
  line-height: 1.08;
  margin: 0;
  text-wrap: balance;
}

.bouzy-vineyard-map__introduction {
  color: rgb(74 64 56 / 82%);
  font-size: clamp(1rem, 2.3vw, 1.125rem);
  line-height: 1.75;
  margin: 1.5rem auto 0;
  max-width: 68ch;
  text-wrap: pretty;
}

.bouzy-vineyard-map__stage {
  background: var(--bouzy-map-canvas);
  border: 1px solid rgb(74 64 56 / 22%);
  border-radius: 0.375rem;
  box-shadow: 0 3px 8px rgb(74 64 56 / 8%);
  height: clamp(28rem, 72svh, 50rem);
  isolation: isolate;
  min-height: 28rem;
  overflow: hidden;
  position: relative;
}

.bouzy-vineyard-map__canvas {
  background: var(--bouzy-map-canvas);
  height: 100%;
  position: relative;
  width: 100%;
  z-index: 0;
}

.bouzy-vineyard-map__canvas:focus-visible {
  outline: 3px solid var(--bouzy-map-accent);
  outline-offset: -3px;
}

.bouzy-vineyard-map__directions {
  inset: 0;
  pointer-events: none;
  position: absolute;
  z-index: 450;
}

.bouzy-vineyard-map__directions[hidden] {
  display: none !important;
}

.bouzy-vineyard-map__direction {
  --bouzy-direction-angle: 0deg;

  align-items: center;
  color: rgb(74 64 56 / 76%);
  display: flex;
  font-family: var(--font-label, "Libre Franklin", sans-serif);
  font-size: 0.6875rem;
  font-weight: 700;
  gap: 0.4rem;
  letter-spacing: 0.08em;
  line-height: 1;
  position: absolute;
  text-shadow:
    0 1px 0 var(--bouzy-map-canvas),
    0 0 5px var(--bouzy-map-canvas);
  text-transform: uppercase;
  white-space: nowrap;
}

.bouzy-vineyard-map__direction-arrow {
  align-items: center;
  background: rgb(247 243 238 / 88%);
  border: 1px solid rgb(74 64 56 / 38%);
  border-radius: 50%;
  display: inline-flex;
  font-size: 1rem;
  height: 1.75rem;
  justify-content: center;
  line-height: 1;
  transform: rotate(var(--bouzy-direction-angle));
  width: 1.75rem;
}

.bouzy-vineyard-map__direction--reims {
  --bouzy-direction-angle: -34deg;

  left: 0.875rem;
  top: 7rem;
}

.bouzy-vineyard-map__direction--epernay {
  --bouzy-direction-angle: -105deg;

  bottom: 7.5rem;
  left: 0.875rem;
}

.bouzy-vineyard-map__direction--chalons {
  --bouzy-direction-angle: 125deg;

  bottom: 11.5rem;
  right: 0.875rem;
}

.bouzy-vineyard-map__legend {
  align-items: center;
  background: rgb(255 253 249 / 96%);
  border: 1px solid rgb(74 64 56 / 24%);
  border-radius: 0.25rem;
  box-shadow: 0 2px 6px rgb(74 64 56 / 12%);
  display: flex;
  gap: 0.75rem;
  left: 4.25rem;
  padding: 0.5rem 0.625rem;
  pointer-events: none;
  position: absolute;
  top: 0.75rem;
  z-index: 500;
}

.bouzy-vineyard-map__legend-item {
  align-items: center;
  color: var(--bouzy-map-ink);
  display: inline-flex;
  font-family: var(--font-label, "Libre Franklin", sans-serif);
  font-size: 0.75rem;
  font-weight: 650;
  gap: 0.375rem;
  line-height: 1.25;
  white-space: nowrap;
}

.bouzy-vineyard-map__legend-swatch {
  border: 1px solid rgb(74 64 56 / 32%);
  border-radius: 0.125rem;
  display: inline-block;
  height: 0.75rem;
  width: 0.75rem;
}

.bouzy-vineyard-map__legend-swatch--pinot {
  background: #73344f;
}

.bouzy-vineyard-map__legend-swatch--chardonnay {
  background: #d3ad4f;
  border-color: var(--bouzy-map-chardonnay);
}

.bouzy-vineyard-map__parcel-selector {
  background: var(--bouzy-map-surface);
  border: 1px solid rgb(74 64 56 / 24%);
  border-radius: 0.25rem;
  bottom: 0.75rem;
  box-shadow: 0 2px 6px rgb(74 64 56 / 12%);
  left: 0.75rem;
  padding: 0.625rem;
  position: absolute;
  width: min(20rem, calc(100% - 7.5rem));
  z-index: 1100;
}

.bouzy-vineyard-map__parcel-selector label {
  color: var(--bouzy-map-ink);
  display: block;
  font-family: var(--font-label, "Libre Franklin", sans-serif);
  font-size: 0.75rem;
  font-weight: 650;
  line-height: 1.4;
  margin-bottom: 0.375rem;
}

.bouzy-vineyard-map__parcel-selector select {
  appearance: none;
  background:
    linear-gradient(45deg, transparent 50%, currentcolor 50%) calc(100% - 1rem) 50% / 0.35rem 0.35rem no-repeat,
    linear-gradient(135deg, currentcolor 50%, transparent 50%) calc(100% - 0.65rem) 50% / 0.35rem 0.35rem no-repeat,
    var(--bouzy-map-surface);
  border: 1px solid rgb(74 64 56 / 35%);
  border-radius: 0.125rem;
  color: var(--bouzy-map-ink);
  font: 600 1rem/1.35 var(--font-label, "Libre Franklin", sans-serif);
  min-height: 2.75rem;
  padding: 0.625rem 2rem 0.625rem 0.75rem;
  width: 100%;
}

.bouzy-vineyard-map__parcel-selector select:focus-visible {
  border-color: var(--bouzy-map-accent);
  outline: 3px solid var(--bouzy-map-accent);
  outline-offset: 2px;
}

.bouzy-vineyard-map__details {
  background: var(--bouzy-map-surface);
  border: 1px solid rgb(74 64 56 / 24%);
  border-radius: 0.25rem;
  bottom: auto;
  box-shadow: 0 3px 8px rgb(74 64 56 / 12%);
  color: var(--bouzy-map-ink);
  left: 0.75rem;
  max-width: calc(100% - 1.5rem);
  opacity: 0;
  padding: 1rem 1.125rem;
  pointer-events: none;
  position: absolute;
  right: 0.75rem;
  top: 4.75rem;
  transform: translateY(0.5rem);
  transition:
    opacity 180ms cubic-bezier(0.22, 1, 0.36, 1),
    transform 180ms cubic-bezier(0.22, 1, 0.36, 1),
    visibility 0s linear 180ms;
  visibility: hidden;
  z-index: 500;
}

.bouzy-vineyard-map__details[data-active="true"] {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0s;
  visibility: visible;
}

.bouzy-vineyard-map__place-name {
  color: var(--bouzy-map-vineyard);
  font-family: var(--font-display, "Libre Bodoni", serif);
  font-size: clamp(1.25rem, 4vw, 1.5rem);
  font-optical-sizing: auto;
  font-weight: 600;
  line-height: 1.2;
  margin: 0;
  text-wrap: balance;
}

.bouzy-vineyard-map__metadata {
  align-items: center;
  color: rgb(74 64 56 / 82%);
  display: flex;
  flex-wrap: wrap;
  font-family: var(--font-label, "Libre Franklin", sans-serif);
  font-size: 0.8125rem;
  font-weight: 600;
  gap: 0.375rem 0.75rem;
  line-height: 1.5;
  margin: 0.5rem 0 0;
}

.bouzy-vineyard-map__metadata[hidden] {
  display: none;
}

.bouzy-vineyard-map__metadata-item {
  align-items: center;
  display: flex;
  margin: 0;
}

.bouzy-vineyard-map__metadata-item[hidden] {
  display: none;
}

.bouzy-vineyard-map__metadata-item + .bouzy-vineyard-map__metadata-item::before {
  background: var(--bouzy-map-accent);
  border-radius: 999px;
  content: "";
  height: 0.25rem;
  margin-right: 0.75rem;
  width: 0.25rem;
}

.bouzy-vineyard-map__metadata dd {
  margin: 0;
}

.bouzy-vineyard-map__metadata-item--variety {
  font-weight: 700;
}

.bouzy-vineyard-map__metadata-item--variety[data-cepage="pinot_noir"] {
  color: var(--bouzy-map-vineyard);
}

.bouzy-vineyard-map__metadata-item--variety[data-cepage="chardonnay"] {
  color: var(--bouzy-map-chardonnay);
}

.bouzy-vineyard-map__metadata-item--variety[data-cepage="mixed"] {
  color: var(--bouzy-map-ink);
}

.bouzy-vineyard-map__metadata-item--variety::before {
  background: currentcolor !important;
}

.bouzy-vineyard-map__footer {
  align-items: flex-start;
  display: flex;
  gap: 0.75rem 2rem;
  justify-content: space-between;
  margin: 0.625rem 0.25rem 0;
}

.bouzy-vineyard-map__route-link {
  align-items: center;
  color: var(--bouzy-map-vineyard);
  display: inline-flex;
  flex: 0 0 auto;
  font-family: var(--font-label, "Libre Franklin", sans-serif);
  font-size: 0.8125rem;
  font-weight: 700;
  gap: 0.35rem;
  line-height: 1.5;
  min-height: 2.25rem;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.22em;
}

.bouzy-vineyard-map__route-link:hover {
  color: var(--bouzy-map-ink);
}

.bouzy-vineyard-map__route-link:focus-visible {
  outline: 2px solid var(--bouzy-map-accent);
  outline-offset: 3px;
}

.bouzy-vineyard-map__attribution {
  color: rgb(74 64 56 / 76%);
  font-family: var(--font-label, "Libre Franklin", sans-serif);
  font-size: 0.6875rem;
  line-height: 1.5;
  margin: 0.35rem 0 0 auto;
  text-align: right;
}

.bouzy-vineyard-map__compass {
  bottom: 3.25rem;
  color: var(--bouzy-map-ink);
  filter: drop-shadow(0 1px 1px rgb(255 253 249 / 92%));
  pointer-events: none;
  position: absolute;
  right: 0.75rem;
  width: clamp(4.75rem, 8vw, 5.5rem);
  z-index: 500;
}

.bouzy-vineyard-map__compass svg {
  display: block;
  overflow: visible;
  width: 100%;
}

.bouzy-vineyard-map__compass text {
  fill: currentcolor;
  font-family: var(--font-label, "Libre Franklin", sans-serif);
  font-size: 9px;
  font-weight: 700;
}

.bouzy-vineyard-map__compass-ring {
  fill: rgb(255 253 249 / 88%);
  stroke: currentcolor;
  stroke-width: 1.75;
}

.bouzy-vineyard-map__compass-axis {
  fill: none;
  stroke: currentcolor;
  stroke-linecap: round;
  stroke-width: 1.5;
}

.bouzy-vineyard-map__compass-north {
  fill: currentcolor;
  stroke: currentcolor;
  stroke-linejoin: round;
  stroke-width: 1;
}

.bouzy-vineyard-map__compass-south {
  fill: var(--bouzy-map-surface);
  stroke: currentcolor;
  stroke-linejoin: round;
  stroke-width: 1;
}

.bouzy-vineyard-map__compass-center {
  fill: var(--bouzy-map-accent);
}

.bouzy-vineyard-map__visually-hidden {
  border: 0;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

.bouzy-vineyard-map__place-label {
  opacity: 0;
  pointer-events: none;
  transition: opacity 160ms cubic-bezier(0.22, 1, 0.36, 1);
}

.bouzy-vineyard-map__place-label.is-visible {
  opacity: 1;
}

.bouzy-vineyard-map__place-label span {
  color: rgb(74 64 56 / 62%);
  font-family: var(--font-label, "Libre Franklin", sans-serif);
  font-size: 0.6875rem;
  font-style: normal;
  font-weight: 650;
  letter-spacing: 0.065em;
  left: 0;
  line-height: 1;
  position: absolute;
  text-shadow:
    0 1px 0 var(--bouzy-map-surface),
    0 0 4px var(--bouzy-map-surface);
  top: 0;
  transform: translate(-50%, -50%);
  white-space: nowrap;
}

.bouzy-vineyard-map__place-label--estate span {
  color: var(--bouzy-map-vineyard);
  font-weight: 700;
}

.bouzy-vineyard-map__place-label--video span {
  transform: translate(-50%, 0.85rem);
}

.bouzy-vineyard-map__place-label--village span {
  color: var(--bouzy-map-ink);
  font-family: var(--font-display, "Libre Bodoni", serif);
  font-size: clamp(1.125rem, 2vw, 1.5rem);
  font-style: normal;
  font-weight: 650;
  letter-spacing: 0.16em;
  text-shadow:
    0 1px 0 var(--bouzy-map-surface),
    0 0 7px var(--bouzy-map-surface);
  transform: translate(-50%, 1.15rem);
}

.bouzy-vineyard-map__video-connector {
  display: none;
  height: 100%;
  inset: 0;
  overflow: visible;
  pointer-events: none;
  position: absolute;
  width: 100%;
  z-index: 490;
}

.bouzy-vineyard-map__video-connector[hidden],
.bouzy-vineyard-map__video-callout[hidden],
.bouzy-vineyard-map__video-place-callout[hidden] {
  display: none;
}

.bouzy-vineyard-map__video-connector path {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
}

.bouzy-vineyard-map__video-connector-halo {
  stroke: rgb(255 253 249 / 96%);
  stroke-width: 7;
}

.bouzy-vineyard-map__video-connector-line {
  stroke: var(--bouzy-map-vineyard);
  stroke-width: 2.75;
}

.bouzy-vineyard-map__video-connector circle {
  fill: var(--bouzy-map-surface);
  stroke: var(--bouzy-map-vineyard);
  stroke-width: 2.75;
  vector-effect: non-scaling-stroke;
}

.bouzy-vineyard-map__video-callout {
  aspect-ratio: 16 / 9;
  background: #171310;
  border: 2px solid var(--bouzy-map-vineyard);
  border-radius: 0.25rem;
  box-shadow: 0 2px 6px rgb(23 19 16 / 28%);
  cursor: pointer;
  display: none;
  overflow: hidden;
  padding: 0;
  position: absolute;
  right: clamp(0.75rem, 2vw, 1.25rem);
  top: clamp(0.75rem, 2vw, 1.25rem);
  transition: border-color 160ms cubic-bezier(0.22, 1, 0.36, 1);
  width: clamp(8rem, 16vw, 11rem);
  z-index: 520;
}

.bouzy-vineyard-map__video-callout:hover {
  border-color: var(--bouzy-map-vineyard);
}

.bouzy-vineyard-map__video-callout:focus-visible {
  border-color: var(--bouzy-map-vineyard);
  outline: 3px solid var(--bouzy-map-vineyard);
  outline-offset: 3px;
}

.bouzy-vineyard-map__video-place-callout {
  aspect-ratio: 1;
  background: #171310;
  border: 3px solid var(--bouzy-map-surface);
  border-radius: 50%;
  box-shadow: 0 0 0 3px var(--bouzy-map-vineyard);
  cursor: pointer;
  margin-left: 0.75rem;
  overflow: hidden;
  padding: 0;
  position: absolute;
  transform: translate(-50%, calc(-100% - 1.5rem));
  transition:
    box-shadow 160ms cubic-bezier(0.22, 1, 0.36, 1),
    transform 160ms cubic-bezier(0.22, 1, 0.36, 1);
  width: clamp(2.75rem, 4vw, 3rem);
  z-index: 520;
}

.bouzy-vineyard-map__video-place-callout:hover {
  box-shadow: 0 0 0 4px var(--bouzy-map-vineyard);
  transform: translate(-50%, calc(-100% - 1.5rem)) scale(1.04);
}

.bouzy-vineyard-map__video-place-callout:focus-visible {
  outline: 3px solid var(--bouzy-map-vineyard);
  outline-offset: 4px;
}

.bouzy-vineyard-map__video-place-callout .bouzy-vineyard-map__video-callout-play {
  font-size: 0.5rem;
  height: 1.5rem;
  width: 1.5rem;
}

.bouzy-vineyard-map__video-thumbnail {
  display: block;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
  width: 100%;
}

.bouzy-vineyard-map__video-callout-play {
  align-items: center;
  background: var(--bouzy-map-vineyard);
  border: 2px solid var(--bouzy-map-surface);
  border-radius: 50%;
  color: var(--bouzy-map-surface);
  display: flex;
  font-size: 0.75rem;
  height: 2.5rem;
  justify-content: center;
  left: 50%;
  padding-left: 0.125rem;
  pointer-events: none;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 2.5rem;
}

.bouzy-vineyard-map__video-dialog {
  background: #171310;
  border: 0;
  border-radius: 0.375rem;
  box-shadow: 0 4px 8px rgb(23 19 16 / 32%);
  color: var(--bouzy-map-surface);
  inset: 50% auto auto 50%;
  margin: 0;
  max-height: calc(100svh - 2rem);
  overflow: hidden;
  padding: 0;
  position: fixed;
  transform: translate(-50%, -50%);
  width: min(68rem, calc(100vw - 2rem));
}

.bouzy-vineyard-map__video-dialog[open] {
  animation: bouzy-video-dialog-enter 220ms cubic-bezier(0.22, 1, 0.36, 1);
}

.bouzy-vineyard-map__video-dialog::backdrop {
  animation: bouzy-video-backdrop-enter 180ms ease-out;
  background: rgb(23 19 16 / 78%);
}

.bouzy-vineyard-map__video-panel {
  display: flex;
  flex-direction: column;
  max-height: calc(100svh - 2rem);
  position: relative;
}

.bouzy-vineyard-map__video-close {
  align-items: center;
  background: rgb(23 19 16 / 76%);
  border: 1px solid rgb(255 253 249 / 64%);
  border-radius: 0.125rem;
  color: var(--bouzy-map-surface);
  cursor: pointer;
  display: inline-flex;
  font: 400 1.75rem/1 var(--font-body, "Libre Franklin", sans-serif);
  height: 2.75rem;
  justify-content: center;
  padding: 0;
  position: absolute;
  right: 0.75rem;
  top: 0.75rem;
  transition:
    background-color 160ms cubic-bezier(0.22, 1, 0.36, 1),
    color 160ms cubic-bezier(0.22, 1, 0.36, 1);
  width: 2.75rem;
  z-index: 2;
}

.bouzy-vineyard-map__video-close:hover,
.bouzy-vineyard-map__video-close:focus-visible {
  background: var(--bouzy-map-vineyard);
  color: var(--bouzy-map-surface);
}

.bouzy-vineyard-map__video-close:focus-visible {
  outline: 3px solid var(--bouzy-map-surface);
  outline-offset: 2px;
}

.bouzy-vineyard-map__video {
  aspect-ratio: 16 / 9;
  background: #171310;
  display: block;
  max-height: calc(100svh - 5.25rem);
  object-fit: contain;
  width: 100%;
}

.bouzy-vineyard-map__video-credit {
  color: rgb(255 253 249 / 78%);
  flex: 0 0 auto;
  font-family: var(--font-label, "Libre Franklin", sans-serif);
  font-size: 0.75rem;
  line-height: 1.5;
  margin: 0;
  padding: 0.75rem clamp(0.75rem, 2vw, 1.25rem);
  text-align: right;
}

@keyframes bouzy-video-dialog-enter {
  from {
    opacity: 0;
    transform: translate(-50%, calc(-50% + 0.75rem)) scale(0.985);
  }

  to {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
  }
}

@keyframes bouzy-video-backdrop-enter {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.bouzy-vineyard-map .leaflet-interactive {
  transition:
    fill-opacity 160ms cubic-bezier(0.22, 1, 0.36, 1),
    opacity 160ms cubic-bezier(0.22, 1, 0.36, 1),
    stroke-width 160ms cubic-bezier(0.22, 1, 0.36, 1);
}

.bouzy-vineyard-map .bouzy-map-commune {
  fill: var(--bouzy-map-canvas);
  fill-opacity: 0.14;
  stroke: var(--bouzy-map-ink);
  stroke-opacity: 0.62;
  stroke-width: 1.5;
}

.bouzy-vineyard-map .bouzy-map-vineyard {
  fill: var(--bouzy-map-other-vineyard);
  fill-opacity: 0.48;
  stroke: var(--bouzy-map-surface);
  stroke-opacity: 0.92;
  stroke-width: 1.25;
}

.bouzy-vineyard-map .bouzy-map-vineyard:hover,
.bouzy-vineyard-map .bouzy-map-vineyard:focus,
.bouzy-vineyard-map .bouzy-map-vineyard.is-selected {
  fill-opacity: 0.74;
  stroke: var(--bouzy-map-accent);
  stroke-width: 2.5;
}

.bouzy-vineyard-map .leaflet-top.leaflet-left {
  left: 0.75rem;
  top: 0.75rem;
}

.bouzy-vineyard-map .leaflet-control-zoom {
  border: 0;
  border-radius: 0.25rem;
  box-shadow: 0 2px 6px rgb(74 64 56 / 12%);
  margin: 0;
  overflow: hidden;
}

.bouzy-vineyard-map .leaflet-control-zoom a {
  align-items: center;
  background: var(--bouzy-map-surface);
  border: 0;
  color: var(--bouzy-map-ink);
  display: flex;
  font-family: var(--font-body, "Libre Franklin", sans-serif);
  font-size: 1.25rem;
  height: 2.75rem;
  justify-content: center;
  line-height: 1;
  min-height: 2.75rem;
  min-width: 2.75rem;
  transition:
    background-color 140ms ease-out,
    color 140ms ease-out;
  width: 2.75rem;
}

.bouzy-vineyard-map .leaflet-control-zoom a + a {
  border-top: 1px solid rgb(74 64 56 / 18%);
}

.bouzy-vineyard-map .leaflet-control-zoom a:hover,
.bouzy-vineyard-map .leaflet-control-zoom a:focus-visible {
  background: var(--bouzy-map-canvas);
  color: var(--bouzy-map-vineyard);
}

.bouzy-vineyard-map .leaflet-control-zoom a:focus-visible {
  outline: 3px solid var(--bouzy-map-accent);
  outline-offset: -3px;
}

.bouzy-vineyard-map .leaflet-control-zoom a.leaflet-disabled {
  color: rgb(74 64 56 / 55%);
  cursor: not-allowed;
}

.bouzy-vineyard-map .leaflet-bottom.leaflet-right {
  bottom: 0.75rem;
  right: 0.75rem;
}

.bouzy-vineyard-map .leaflet-control-scale {
  margin: 0;
}

.bouzy-vineyard-map .leaflet-control-scale-line {
  background: rgb(255 253 249 / 88%);
  border-color: var(--bouzy-map-ink);
  color: var(--bouzy-map-ink);
  font-family: var(--font-label, "Libre Franklin", sans-serif);
  font-size: 0.6875rem;
  font-weight: 650;
  line-height: 1.2;
  padding: 0.125rem 0.25rem;
  text-align: center;
}

.bouzy-vineyard-map .leaflet-control-attribution {
  background: rgb(255 253 249 / 94%);
  color: var(--bouzy-map-ink);
  font-family: var(--font-label, "Libre Franklin", sans-serif);
  font-size: 0.75rem;
  line-height: 1.35;
  padding: 0.375rem 0.5rem;
}

.bouzy-vineyard-map .leaflet-control-attribution a {
  color: var(--bouzy-map-vineyard);
  font-weight: 650;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.16em;
}

.bouzy-vineyard-map .leaflet-control-attribution a:focus-visible {
  outline: 2px solid var(--bouzy-map-accent);
  outline-offset: 2px;
}

@media (min-width: 48rem) {
  .bouzy-vineyard-map__inner {
    padding-inline: 4rem;
  }

  .bouzy-vineyard-map__stage {
    height: clamp(40rem, 75svh, 50rem);
  }

  .bouzy-vineyard-map__video-connector {
    display: block;
  }

  .bouzy-vineyard-map__video-callout {
    display: block;
    top: 50%;
    transform: translateY(-50%);
  }

  .bouzy-vineyard-map__details {
    left: auto;
    max-width: 24rem;
    right: 1rem;
    top: 1rem;
  }
}

@media (max-width: 30rem) {
  .bouzy-vineyard-map__footer {
    align-items: flex-start;
    flex-direction: column;
  }

  .bouzy-vineyard-map__attribution {
    margin: 0;
    text-align: left;
  }

  .bouzy-vineyard-map__direction {
    font-size: 0.625rem;
    gap: 0.3rem;
    letter-spacing: 0.055em;
  }

  .bouzy-vineyard-map__direction-arrow {
    font-size: 0.875rem;
    height: 1.5rem;
    width: 1.5rem;
  }

  .bouzy-vineyard-map__direction--reims {
    top: 6.5rem;
  }

  .bouzy-vineyard-map__direction--epernay {
    bottom: 7.25rem;
  }

  .bouzy-vineyard-map__direction--chalons {
    bottom: 10.75rem;
  }
}

@media (prefers-contrast: more) {
  .bouzy-vineyard-map__stage,
  .bouzy-vineyard-map__details {
    border-color: var(--bouzy-map-ink);
  }

  .bouzy-vineyard-map .bouzy-map-vineyard {
    fill-opacity: 0.64;
    stroke: var(--bouzy-map-surface);
    stroke-width: 2;
  }
}

@media (prefers-reduced-motion: reduce) {
  .bouzy-vineyard-map__video-dialog[open],
  .bouzy-vineyard-map__video-dialog::backdrop {
    animation: none;
  }

  .bouzy-vineyard-map__details,
  .bouzy-vineyard-map__place-label,
  .bouzy-vineyard-map__video-callout,
  .bouzy-vineyard-map__video-place-callout,
  .bouzy-vineyard-map .leaflet-interactive,
  .bouzy-vineyard-map .leaflet-control-zoom a {
    transition: none;
  }
}

@media (forced-colors: active) {
  .bouzy-vineyard-map__stage,
  .bouzy-vineyard-map__details,
  .bouzy-vineyard-map__legend,
  .bouzy-vineyard-map__parcel-selector,
  .bouzy-vineyard-map .leaflet-control-zoom {
    border: 1px solid CanvasText;
  }

  .bouzy-vineyard-map__details,
  .bouzy-vineyard-map__legend,
  .bouzy-vineyard-map__parcel-selector,
  .bouzy-vineyard-map__parcel-selector select,
  .bouzy-vineyard-map__attribution,
  .bouzy-vineyard-map__route-link,
  .bouzy-vineyard-map .leaflet-control-zoom a,
  .bouzy-vineyard-map .leaflet-control-attribution {
    background: Canvas;
    color: CanvasText;
    forced-color-adjust: none;
  }

  .bouzy-vineyard-map__compass {
    color: CanvasText;
    filter: none;
  }

  .bouzy-vineyard-map__place-label span {
    color: CanvasText;
    text-shadow:
      -1px -1px Canvas,
      1px 1px Canvas;
  }

  .bouzy-vineyard-map__direction,
  .bouzy-vineyard-map__direction-arrow {
    background: Canvas;
    border-color: CanvasText;
    color: CanvasText;
    forced-color-adjust: none;
    text-shadow: none;
  }

  .bouzy-vineyard-map__video-dialog,
  .bouzy-vineyard-map__video-callout,
  .bouzy-vineyard-map__video-place-callout,
  .bouzy-vineyard-map__video-close,
  .bouzy-vineyard-map__video-credit {
    background: Canvas;
    border-color: CanvasText;
    color: CanvasText;
    forced-color-adjust: none;
  }

  .bouzy-vineyard-map__video-connector circle {
    fill: Canvas;
    stroke: CanvasText;
  }

  .bouzy-vineyard-map__video-connector-halo {
    stroke: Canvas;
  }

  .bouzy-vineyard-map__video-connector-line {
    stroke: CanvasText;
  }

  .bouzy-vineyard-map__compass-ring,
  .bouzy-vineyard-map__compass-axis,
  .bouzy-vineyard-map__compass-north,
  .bouzy-vineyard-map__compass-south {
    stroke: CanvasText;
  }

  .bouzy-vineyard-map__compass-ring,
  .bouzy-vineyard-map__compass-south {
    fill: Canvas;
  }

  .bouzy-vineyard-map__compass-north,
  .bouzy-vineyard-map__compass-center {
    fill: CanvasText;
  }
}
