.v2-yuzawa-page .yuzawa-overview-grid { gap: 1rem; }
.v2-yuzawa-page :is(.yuzawa-overview-card, .yuzawa-filter-card) { padding: 1.25rem; box-shadow: 0 .3rem .9rem rgb(6 40 95 / 4%); }
.v2-yuzawa-page :is(.yuzawa-overview-card__tags span, .yuzawa-filter-card__ratings span, .yuzawa-tag) { font-weight: 600; }
.v2-yuzawa-page .yuzawa-resort-card__summary { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); padding: 1.2rem; }
.v2-yuzawa-page .yuzawa-resort-card__media { height: auto; align-self: start; aspect-ratio: 4 / 3; min-height: 0; }
.v2-yuzawa-page .yuzawa-resort-card__media .v2-snow-media-placeholder { min-height: 0; height: 100%; }
.v2-yuzawa-page .yuzawa-resort-card__body { padding: 1.3rem; }
.v2-yuzawa-page .yuzawa-resort-card { scroll-margin-top: .5rem; }
.v2-yuzawa-page .yuzawa-map-layout { align-items: start; }
.v2-yuzawa-page .yuzawa-map-canvas { min-height: 36rem; }
.v2-yuzawa-page .yuzawa-map-preview { position: sticky; top: 5.5rem; }
.v2-yuzawa-page .yuzawa-map-preview__media { min-height: 0; height: auto; aspect-ratio: 4 / 3; }
.v2-yuzawa-page .yuzawa-map-preview__media img { height: 100%; min-height: 0; }
.v2-yuzawa-page .yuzawa-map-list { max-height: none; padding: .3rem; overflow: visible; }
.v2-yuzawa-page .yuzawa-map-list__button { min-height: 48px; }
.v2-yuzawa-page .yuzawa-map-list__button b { white-space: normal; overflow: visible; text-overflow: clip; font-size: .8rem; font-weight: 600; }
.v2-yuzawa-page .yuzawa-map-marker[hidden], .v2-yuzawa-page .yuzawa-map-list__button[hidden] { display: none; }
.yuzawa-map-region-switch { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1rem 0 .5rem; }
.yuzawa-map-region-switch button { min-height: 44px; padding: .5rem .75rem; border: 1px solid #bfd6e5; border-radius: .65rem; color: #193e60; background: #fff; font: inherit; font-size: .82rem; cursor: pointer; }
.yuzawa-map-region-switch [aria-pressed="true"] { color: #fff; background: #06285f; box-shadow: inset 0 -3px #ffd24a; }
.yuzawa-map-region-status { margin: .6rem 0 1rem; color: #526d85; font-size: .82rem; }
.yuzawa-map-marker__name { position: absolute; top: calc(100% + .3rem); left: 50%; transform: translateX(-50%); display: none; width: max-content; max-width: 8rem; padding: .4rem .5rem; border-radius: .4rem; color: #06285f; background: #fff; box-shadow: 0 2px 8px #173a6040; font: 600 .72rem/1.4 var(--font-family-sans); pointer-events: none; }
.yuzawa-map-marker:is(.is-active, :hover, :focus-visible) .yuzawa-map-marker__name { display: block; }
.yuzawa-map-marker[data-edge="left"] .yuzawa-map-marker__name { left: 0; transform: none; }
.yuzawa-map-marker[data-edge="right"] .yuzawa-map-marker__name { left: auto; right: 0; transform: none; }
.yuzawa-map-marker[data-bottom="true"] .yuzawa-map-marker__name { top: auto; bottom: calc(100% + .3rem); }
.v2-yuzawa-page .yuzawa-filter-option span { display: flex; align-items: center; min-height: 44px; font-weight: 600; }
.v2-yuzawa-page .yuzawa-filter-card__ratings span.is-selected-criterion { background: #fff1bd; color: #59400c; font-weight: 700; }
.yuzawa-filter-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin: 1rem 0; }
.yuzawa-filter-toolbar .yuzawa-filter-status { flex: 1 1 18rem; margin: 0; }
.yuzawa-compare-jump { flex: 0 0 auto; }
.yuzawa-compare-heading { scroll-margin-top: .5rem; }
.v2-yuzawa-page .yuzawa-compare-chip { gap: .4rem; padding: .25rem .45rem .25rem .8rem; }
.v2-yuzawa-page .yuzawa-compare-chip button { min-height: 44px; min-width: 44px; }
.v2-yuzawa-page .yuzawa-compare-table { font-size: .86rem; }
.yuzawa-compare-mobile { display: none; }
.v2-yuzawa-page :is(.yuzawa-stay-card, .yuzawa-food-card, .yuzawa-poi-card) { border-color: #d2e0e9; }
.v2-yuzawa-page :is(.yuzawa-stay-card__copy, .yuzawa-food-card__body, .yuzawa-poi-card__body) { padding: 1.25rem; }
.v2-yuzawa-page :is(.yuzawa-stay-card__details summary, .yuzawa-stay-filter__button) { min-height: 44px; }
@media (max-width: 70rem) {
  .v2-yuzawa-page .yuzawa-map-layout { grid-template-columns: minmax(0, 1.2fr) minmax(15rem, .85fr); }
}
@media (max-width: 47.5rem) {
  .v2-yuzawa-page .yuzawa-resort-card__summary { grid-template-columns: 1fr; padding: 1.1rem; }
  .v2-yuzawa-page .yuzawa-resort-card__media { width: 100%; max-height: 15rem; aspect-ratio: 4 / 3; }
  .v2-yuzawa-page .yuzawa-rating-grid--quick { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .v2-yuzawa-page .yuzawa-map-layout { grid-template-columns: 1fr; }
  .v2-yuzawa-page .yuzawa-map-canvas { min-height: 29rem; }
  .v2-yuzawa-page .yuzawa-map-preview { position: static; }
  .v2-yuzawa-page .yuzawa-map-preview__media { min-height: 0; height: auto; aspect-ratio: 16 / 9; }
  .v2-yuzawa-page .yuzawa-map-list { display: grid; grid-template-columns: 1fr 1fr; max-height: none; overflow: visible; }
  .v2-yuzawa-page .yuzawa-map-list__button { grid-template-columns: 1.5rem minmax(0, 1fr); padding: .5rem; }
  .v2-yuzawa-page .yuzawa-map-marker { width: 2rem; height: 2rem; }
  .v2-yuzawa-page .yuzawa-map-region-switch button { flex: 1 1 40%; text-align: left; }
  .v2-yuzawa-page .yuzawa-map-region-switch button:first-child { flex-basis: 100%; }
  .v2-yuzawa-page :is(.yuzawa-compare-table-wrap, .yuzawa-compare-actions) { display: none; }
  .yuzawa-compare-mobile { display: grid; gap: 1rem; margin-top: 1rem; }
  .yuzawa-compare-mobile article { min-width: 0; padding: 1rem; border: 1px solid #bfd6e5; border-radius: .85rem; background: #fff; }
  .yuzawa-compare-mobile h4 { margin: 0 0 .75rem; color: #06285f; font-size: 1.2rem; }
  .yuzawa-compare-mobile dl { margin: 0; }
  .yuzawa-compare-mobile dl > div { padding: .6rem 0; border-top: 1px solid #dfE8ef; }
  .yuzawa-compare-mobile dt { color: #075da5; font-size: .8rem; font-weight: 700; }
  .yuzawa-compare-mobile dd { margin: .25rem 0 0; color: #3e5c75; font-size: .86rem; overflow-wrap: anywhere; }
  .yuzawa-compare-mobile .is-selected-criterion { padding-inline: .6rem; background: #fff4c9; }
}
@media (prefers-reduced-motion: reduce) { .v2-yuzawa-page .yuzawa-map-marker { transition: none; } }

/* Split-page card parity.  MNO remains the visual reference; these values
   keep Yuzawa accommodation, food and sightseeing on the same quiet system. */
html.v2-yuzawa-preview :is(.yuzawa-stay-card, .yuzawa-poi-card) {
  border-color: #d5e0e4;
  border-radius: .75rem;
  background: #fff;
  box-shadow: none;
}
html.v2-yuzawa-preview :is(.yuzawa-stay-card__copy, .yuzawa-poi-card__body) { padding: 1rem; }
html.v2-yuzawa-preview :is(.yuzawa-stay-card, .yuzawa-poi-card) h4 {
  color: #183e56;
  font-size: 1rem;
  line-height: 1.45;
}
html.v2-yuzawa-preview :is(.yuzawa-stay-card__positioning, .yuzawa-poi-card__summary) {
  color: #617887;
  font-size: .82rem;
  line-height: 1.65;
}
html.v2-yuzawa-preview :is(.yuzawa-stay-tags span, .yuzawa-poi-badge) {
  padding: .15rem .45rem;
  border-color: transparent;
  border-radius: .35rem;
  color: #416678;
  background: #eef4f4;
  font-size: .7rem;
  font-weight: 600;
}
html.v2-yuzawa-preview .yuzawa-poi-badge--category {
  color: #315f7c;
  background: #e8f1f5;
}

@media (max-width: 24rem) {
  html.v2-yuzawa-preview :is(.yuzawa-stay-card__copy, .yuzawa-poi-card__body) { padding: .85rem; }
}
