.yuzawa-traffic-block {
  padding: 2rem 0;
  border-top: 1px solid #d5e6f0;
}

.yuzawa-traffic-block:first-child {
  padding-top: 0;
  border-top: 0;
}

.yuzawa-traffic-subheading {
  max-width: 54rem;
  margin-bottom: 1.15rem;
}

.yuzawa-traffic-subheading h3 {
  margin: .22rem 0 0;
  color: #06285f;
  font-size: clamp(1.35rem, 2.4vw, 1.85rem);
  line-height: 1.3;
}

.yuzawa-traffic-subheading > p:last-child {
  margin: .5rem 0 0;
  color: #506d83;
  line-height: 1.75;
}

.yuzawa-traffic-quick-grid,
.yuzawa-arrival-grid,
.yuzawa-station-area-grid,
.yuzawa-station-type-grid,
.yuzawa-resort-route-grid,
.yuzawa-driving-grid {
  display: grid;
  gap: 1rem;
}

.yuzawa-traffic-quick-grid,
.yuzawa-station-area-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.yuzawa-traffic-quick-card,
.yuzawa-arrival-card,
.yuzawa-station-area-card,
.yuzawa-station-type-card,
.yuzawa-resort-route-card,
.yuzawa-driving-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #c8dfec;
  border-radius: 1rem;
  background: #fff;
  box-shadow: 0 .4rem 1.1rem rgba(7, 54, 100, .07);
}

.yuzawa-traffic-quick-card__media,
.yuzawa-traffic-quick-card__media.v2-snow-media-placeholder {
  min-height: 0;
  border: 0;
  border-bottom: 1px solid #c8dfec;
  border-radius: 0;
}

.yuzawa-traffic-quick-card__media img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

.yuzawa-traffic-quick-card__zoom {
  display: block;
  cursor: zoom-in;
}

.yuzawa-traffic-quick-card__zoom:focus-visible {
  outline: 3px solid #2467a0;
  outline-offset: -3px;
}

.yuzawa-traffic-quick-card__copy .yuzawa-traffic-quick-card__hint {
  font-size: .85rem;
  color: #37617e;
}

.yuzawa-traffic-quick-card__copy,
.yuzawa-arrival-card,
.yuzawa-station-area-card,
.yuzawa-station-type-card,
.yuzawa-resort-route-card,
.yuzawa-driving-card {
  padding: 1.1rem;
}

.yuzawa-traffic-quick-card h4,
.yuzawa-arrival-card h4,
.yuzawa-station-area-card h4,
.yuzawa-station-type-card h4,
.yuzawa-resort-route-card h4,
.yuzawa-driving-card h4,
.yuzawa-station-facilities h4,
.yuzawa-driving-suitable h4 {
  margin: 0;
  color: #063d70;
  font-size: 1.08rem;
  line-height: 1.45;
}

.yuzawa-traffic-quick-card__copy p,
.yuzawa-station-area-card__summary,
.yuzawa-driving-card > p:last-child {
  margin: .5rem 0 0;
  color: #506d83;
  line-height: 1.7;
}

.yuzawa-arrival-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.yuzawa-arrival-card {
  display: flex;
  flex-direction: column;
}

.yuzawa-arrival-card__route,
.yuzawa-driving-card__rank {
  width: fit-content;
  max-width: 100%;
  margin: 0 0 .55rem;
  padding: .3rem .55rem;
  border-radius: 99rem;
  color: #075da5;
  background: #e6f5fc;
  font-size: .72rem;
  font-weight: 900;
  overflow-wrap: anywhere;
}

.yuzawa-arrival-card__duration {
  margin: .45rem 0 .8rem;
  color: #b3571f;
  font-weight: 900;
}

.yuzawa-arrival-card__fares {
  display: grid;
  gap: .35rem;
  margin: 0;
}

.yuzawa-arrival-card__fares > div {
  display: grid;
  grid-template-columns: 5rem minmax(0, 1fr);
  gap: .6rem;
  padding: .55rem .65rem;
  border-radius: .65rem;
  background: #f2f8fb;
}

.yuzawa-arrival-card__fares dt {
  color: #075da5;
  font-weight: 900;
}

.yuzawa-arrival-card__fares dd {
  min-width: 0;
  margin: 0;
  color: #3e6077;
  font-weight: 800;
}

.yuzawa-traffic-list {
  margin: .75rem 0 0;
  padding-left: 1.15rem;
  color: #4f6d83;
  line-height: 1.7;
}

.yuzawa-traffic-list li + li {
  margin-top: .28rem;
}

.yuzawa-traffic-actions {
  display: flex;
  gap: .5rem;
  flex-wrap: wrap;
  margin-top: auto;
  padding-top: .9rem;
}

.yuzawa-traffic-notice,
.yuzawa-station-facilities,
.yuzawa-driving-suitable,
.yuzawa-traffic-closing,
.yuzawa-resort-route-notices {
  margin-top: 1rem;
  padding: 1rem 1.1rem;
  border: 1px solid #b9dced;
  border-left: .35rem solid #0b86c8;
  border-radius: .9rem;
  color: #365e77;
  background: linear-gradient(135deg, #fff, #eef8fd);
}

.yuzawa-traffic-notice strong,
.yuzawa-traffic-closing strong {
  color: #063d70;
}

.yuzawa-station-type-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 1rem;
}

.yuzawa-station-facilities {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .7rem 1.2rem;
  align-items: start;
}

.yuzawa-station-facilities h4 {
  grid-column: 1 / -1;
}

.yuzawa-station-facilities .yuzawa-traffic-list,
.yuzawa-station-facilities .yuzawa-traffic-actions {
  margin-top: 0;
  padding-top: 0;
}

.yuzawa-traffic-inline-warning {
  margin: .8rem 0 0;
  color: #805b0a;
  font-weight: 900;
  line-height: 1.7;
}

.yuzawa-resort-route-legend {
  display: flex;
  gap: .45rem;
  flex-wrap: wrap;
  margin-bottom: 1rem;
}

.yuzawa-resort-route-legend span {
  padding: .4rem .65rem;
  border: 1px solid #bcd9e8;
  border-radius: 99rem;
  color: #075da5;
  background: #f6fbfd;
  font-size: .78rem;
  font-weight: 900;
}

.yuzawa-resort-route-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.yuzawa-resort-route-card {
  display: flex;
  flex-direction: column;
}

.yuzawa-resort-route-card__heading {
  display: flex;
  gap: .75rem;
  align-items: start;
  justify-content: space-between;
}

.yuzawa-resort-route-card__heading span {
  flex: 0 0 auto;
  padding: .28rem .48rem;
  border-radius: .45rem;
  color: #fff;
  background: #087cbc;
  font-size: .7rem;
  font-weight: 900;
}

.yuzawa-resort-route-card__method {
  margin: .55rem 0 0;
  color: #315d78;
  font-weight: 900;
  line-height: 1.6;
}

.yuzawa-resort-route-card__return {
  margin: .7rem 0 0;
  color: #8b5c00;
  font-size: .83rem;
  font-weight: 900;
}

.yuzawa-resort-route-notices p {
  margin: 0;
  line-height: 1.7;
}

.yuzawa-resort-route-notices p + p {
  margin-top: .45rem;
}

.yuzawa-driving-suitable {
  margin-top: 0;
}

.yuzawa-driving-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 1rem;
}

.yuzawa-traffic-notice--winter {
  border-color: #f0d28b;
  border-left-color: #d79018;
  background: linear-gradient(135deg, #fff, #fff7dc);
}

.yuzawa-traffic-official-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.yuzawa-traffic-closing {
  margin-top: 0;
  margin-bottom: .25rem;
  border-color: #f0d28b;
  border-left-color: #d79018;
  background: #fff8e2;
}

.yuzawa-traffic-closing p {
  margin: .4rem 0 0;
  line-height: 1.7;
}

@media (max-width: 64rem) {
  .yuzawa-traffic-official-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .yuzawa-arrival-grid,
  .yuzawa-driving-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .yuzawa-station-type-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 47.5rem) {
  .yuzawa-traffic-official-grid { grid-template-columns: minmax(0, 1fr); }
  .yuzawa-traffic-quick-grid,
  .yuzawa-arrival-grid,
  .yuzawa-station-area-grid,
  .yuzawa-station-type-grid,
  .yuzawa-resort-route-grid,
  .yuzawa-driving-grid {
    grid-template-columns: 1fr;
  }

  .yuzawa-traffic-block {
    padding: 1.55rem 0;
  }

  .yuzawa-traffic-quick-card__media .v2-snow-media-placeholder {
    min-height: 11rem;
    height: 11rem;
  }

  .yuzawa-station-facilities {
    grid-template-columns: 1fr;
  }

  .yuzawa-station-facilities h4 {
    grid-column: auto;
  }
}

@media (max-width: 24.375rem) {
  .yuzawa-traffic-quick-card__copy,
  .yuzawa-arrival-card,
  .yuzawa-station-area-card,
  .yuzawa-station-type-card,
  .yuzawa-resort-route-card,
  .yuzawa-driving-card,
  .yuzawa-traffic-notice,
  .yuzawa-station-facilities,
  .yuzawa-driving-suitable,
  .yuzawa-traffic-closing,
  .yuzawa-resort-route-notices {
    padding: .9rem;
  }

  .yuzawa-arrival-card__fares > div {
    grid-template-columns: 1fr;
    gap: .15rem;
  }

  .yuzawa-resort-route-card__heading {
    flex-direction: column;
  }
}

@media (prefers-reduced-motion: reduce) {
  .yuzawa-traffic-block * {
    scroll-behavior: auto;
  }
}
