.v2-snow-media {
  min-inline-size: 0;
  margin: 0;
  background: var(--color-surface-muted);
  overflow: hidden;
}

.v2-snow-media__image,
.v2-snow-media__video {
  display: block;
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
}

.v2-snow-media__caption {
  padding: var(--space-2) var(--space-3);
  color: var(--color-text-secondary);
  background: var(--color-surface);
  font-size: var(--font-size-sm);
  line-height: var(--line-height-body);
}

.v2-snow-media--temporary { position: relative; }
.v2-snow-media--temporary .v2-snow-media__caption {
  position: absolute; inset-inline: 0; bottom: 0; padding: .35rem .55rem;
  color: #173f5c; background: rgb(255 255 255 / 92%); font: 500 .65rem/1.4 var(--font-family-sans);
}

.v2-snow-media-placeholder {
  display: grid;
  min-block-size: 10rem;
  padding: var(--space-5);
  place-items: center;
  align-content: center;
  gap: var(--space-2);
  color: var(--color-brand-blue);
  background:
    radial-gradient(circle at 20% 20%, rgb(255 255 255 / 82%), transparent 32%),
    linear-gradient(145deg, var(--color-surface-muted), var(--color-snow));
  text-align: center;
}

.v2-snow-media-placeholder__mark {
  display: grid;
  inline-size: 3rem;
  block-size: 3rem;
  place-items: center;
  border: 2px solid currentcolor;
  border-radius: 50%;
  font-family: var(--font-family-serif);
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-bold);
}

.v2-snow-media-placeholder__label {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-bold);
  letter-spacing: var(--letter-spacing-wide);
}

.v2-snow-rating {
  display: inline-flex;
  min-block-size: var(--touch-target-min);
  max-inline-size: 100%;
  padding: var(--space-2) var(--space-3);
  align-items: center;
  gap: var(--space-2);
  border: var(--border-width) solid rgb(138 90 0 / 24%);
  border-radius: var(--radius-pill);
  color: var(--color-warning);
  background: #FFF8DF;
  font-weight: var(--font-weight-bold);
}

.v2-snow-rating__stars {
  color: #D58A00;
  letter-spacing: 0.04em;
}

.v2-snow-rating__score {
  color: var(--color-text-primary);
  font-size: var(--font-size-sm);
}

.v2-snow-rating--special {
  border-color: rgb(7 91 173 / 26%);
  color: var(--color-brand-blue);
  background: var(--color-snow);
}

.v2-snow-resource-card__logo {
  display: grid;
  min-block-size: 10rem;
  place-items: center;
}

.v2-snow-resource-card__logo :is(img, video) {
  object-fit: contain;
}

.v2-snow-accordion {
  display: grid;
  gap: var(--space-3);
}

.v2-snow-accordion__item {
  border: var(--border-width) solid var(--color-border);
  border-radius: var(--radius-medium);
  background: var(--color-surface);
  overflow: clip;
}

.v2-snow-accordion__summary {
  min-block-size: var(--touch-target-min);
  padding: var(--space-4) var(--space-5);
  color: var(--color-text-primary);
  cursor: pointer;
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-heading);
}

.v2-snow-accordion__summary:focus-visible {
  outline: var(--focus-ring-width) solid var(--color-focus);
  outline-offset: calc(-1 * var(--focus-ring-width));
}

.v2-snow-accordion__body {
  padding: 0 var(--space-5) var(--space-5);
  color: var(--color-text-secondary);
  line-height: var(--line-height-body);
}

.v2-snow-dialog {
  inline-size: min(42rem, calc(100% - (2 * var(--gutter-mobile))));
  max-block-size: min(48rem, calc(100dvh - (2 * var(--gutter-mobile))));
  padding: 0;
  border: 0;
  border-radius: var(--radius-large);
  color: var(--color-text-primary);
  background: var(--color-surface);
  box-shadow: var(--shadow-overlay);
  overflow: hidden;
}

.v2-snow-dialog::backdrop {
  background: var(--color-overlay);
}

.v2-snow-dialog__panel {
  display: grid;
  max-block-size: inherit;
  grid-template-rows: auto minmax(0, 1fr);
}

.v2-snow-dialog__header {
  display: flex;
  min-inline-size: 0;
  padding: var(--space-4) var(--space-5);
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  border-block-end: var(--border-width) solid var(--color-border);
}

.v2-snow-dialog__title {
  min-inline-size: 0;
  margin: 0;
  font-family: var(--font-family-serif);
  font-size: var(--font-size-lg);
  line-height: var(--line-height-heading);
  overflow-wrap: anywhere;
}

.v2-snow-dialog__close {
  min-inline-size: var(--touch-target-min);
  min-block-size: var(--touch-target-min);
  padding: var(--space-2) var(--space-3);
  border: var(--border-width) solid var(--color-border);
  border-radius: var(--radius-pill);
  color: var(--color-brand-blue);
  background: var(--color-surface);
  cursor: pointer;
  font: inherit;
  font-weight: var(--font-weight-bold);
}

.v2-snow-dialog__body {
  min-block-size: 0;
  padding: var(--space-5);
  overflow: auto;
}

.v2-snow-map-explorer {
  display: grid;
  min-inline-size: 0;
  grid-template-columns: minmax(0, 1.4fr) minmax(16rem, 0.6fr);
  grid-template-areas:
    "canvas preview"
    "list preview";
  gap: var(--space-4);
}

.v2-snow-map-explorer__canvas {
  grid-area: canvas;
  position: relative;
  isolation: isolate;
  min-block-size: clamp(22rem, 58vw, 38rem);
  border: var(--border-width) solid var(--color-border);
  border-radius: var(--radius-large);
  background:
    linear-gradient(rgb(6 40 95 / 8%) 1px, transparent 1px),
    linear-gradient(90deg, rgb(6 40 95 / 8%) 1px, transparent 1px),
    linear-gradient(145deg, var(--color-snow), var(--color-surface-muted));
  background-position: center;
  background-size: 2rem 2rem, 2rem 2rem, cover;
  box-shadow: var(--shadow-card);
  overflow: hidden;
}

.v2-snow-map-explorer__marker {
  --marker-x: 50%;
  --marker-y: 50%;
  position: absolute;
  inset-inline-start: var(--marker-x);
  inset-block-start: var(--marker-y);
  max-inline-size: min(12rem, 42%);
  min-block-size: var(--touch-target-min);
  padding: var(--space-2) var(--space-3);
  border: 2px solid var(--color-surface);
  border-radius: var(--radius-pill);
  color: var(--color-text-inverse);
  background: var(--color-brand-blue);
  box-shadow: 0 0 0 2px var(--color-brand-blue), var(--shadow-card);
  cursor: pointer;
  font: inherit;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-heading);
  translate: -50% -50%;
  overflow-wrap: anywhere;
}

.v2-snow-map-explorer__marker:focus-visible,
.v2-snow-map-explorer__marker.is-active {
  z-index: 2;
  color: var(--color-on-action);
  background: var(--color-brand-gold);
  box-shadow: 0 0 0 2px var(--color-brand-gold), var(--shadow-elevated);
  outline: none;
}

.v2-snow-map-explorer__marker--flow {
  position: relative;
  inset: auto;
  margin: var(--space-2);
  translate: none;
}

.v2-snow-map-explorer__preview {
  grid-area: preview;
  align-self: start;
  position: sticky;
  inset-block-start: calc(var(--space-4) + 4.5rem);
  min-inline-size: 0;
  border: var(--border-width) solid var(--color-border);
  border-radius: var(--radius-large);
  background: var(--color-surface);
  box-shadow: var(--shadow-card);
  overflow: hidden;
}

.v2-snow-map-explorer__media {
  aspect-ratio: 4 / 3;
}

.v2-snow-map-explorer__copy {
  display: grid;
  gap: var(--space-3);
  padding: var(--space-5);
}

.v2-snow-map-explorer__title,
.v2-snow-map-explorer__summary {
  margin: 0;
}

.v2-snow-map-explorer__title {
  color: var(--color-text-primary);
  font-family: var(--font-family-serif);
  font-size: var(--font-size-lg);
  line-height: var(--line-height-heading);
}

.v2-snow-map-explorer__summary {
  color: var(--color-text-secondary);
  line-height: var(--line-height-body);
}

.v2-snow-map-explorer__list {
  grid-area: list;
  display: flex;
  min-inline-size: 0;
  padding-block: var(--space-1);
  gap: var(--space-2);
  overflow-x: auto;
  scrollbar-gutter: stable;
}

.v2-snow-map-explorer__list-button {
  flex: 0 0 auto;
  min-block-size: var(--touch-target-min);
  padding: var(--space-2) var(--space-4);
  border: var(--border-width) solid var(--color-border);
  border-radius: var(--radius-pill);
  color: var(--color-brand-blue);
  background: var(--color-surface);
  cursor: pointer;
  font: inherit;
  font-weight: var(--font-weight-bold);
}

@media (max-width: 47.99rem) {
  .v2-snow-dialog--sheet {
    inline-size: 100%;
    max-block-size: min(82dvh, 48rem);
    margin: auto 0 0;
    border-end-start-radius: 0;
    border-end-end-radius: 0;
  }

  .v2-snow-map-explorer {
    grid-template-columns: 1fr;
    grid-template-areas:
      "canvas"
      "list"
      "preview";
  }

  .v2-snow-map-explorer__canvas {
    min-block-size: clamp(20rem, 112vw, 31rem);
  }

  .v2-snow-map-explorer__preview {
    position: static;
  }
}

@media (prefers-reduced-motion: reduce) {
  .v2-snow-map-explorer__marker {
    transition: none;
  }
}

/* Shared action language for the three split snow-area previews. */
html.v2-snow-action-theme body a:is(.v2-snow-action--google-maps, .v2-snow-action--website) {
  display: inline-flex;
  box-sizing: border-box;
  flex: 0 1 auto;
  align-self: flex-start;
  justify-self: start;
  gap: .5rem;
  width: auto;
  inline-size: auto;
  min-inline-size: min(7rem, 100%);
  min-block-size: 44px;
  min-height: 44px;
  max-inline-size: 100%;
  margin: 0;
  align-items: center;
  justify-content: center;
  padding: .55rem .8rem;
  border: 1px solid;
  border-radius: .55rem;
  font-family: var(--font-family-sans);
  font-style: normal;
  font-size: var(--font-size-sm, .84rem);
  font-weight: var(--font-weight-bold, 700);
  line-height: 1.45;
  letter-spacing: normal;
  white-space: normal;
  text-align: center;
  text-decoration: none;
  box-shadow: none;
  text-shadow: none;
  transform: none;
  filter: none;
}

html.v2-snow-action-theme body .v2-snow-card-actions {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: .5rem;
}

html.v2-snow-action-theme body a.v2-snow-card-link:focus-visible {
  outline: 3px solid #1769a4; outline-offset: 3px;
}

html.v2-snow-action-theme body a.v2-snow-action--google-maps {
  border-color: #b9d8bf;
  color: #285f3e;
  background: #eef7ef;
}

html.v2-snow-action-theme body a.v2-snow-action--google-maps:hover {
  color: #214f34;
  background: #e2f1e5;
}

html.v2-snow-action-theme body a.v2-snow-action--website {
  border-color: #b8d1e0;
  color: #245b78;
  background: #eef6fb;
}

html.v2-snow-action-theme body a.v2-snow-action--website:hover {
  color: #194963;
  background: #e3f0f8;
}

html.v2-snow-action-theme body summary.v2-snow-summary--complete {
  min-block-size: 44px;
  min-height: 44px;
  padding-inline: .7rem;
  border-radius: .45rem;
  color: #5f4a1f;
  background: #fff7df;
}

html.v2-snow-action-theme body details[open] > summary.v2-snow-summary--complete {
  background: #fff1bf;
}
