@charset "UTF-8";
.areaMap {
  font-family: "YakuHanMP", "Shippori Mincho B1", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
}

.areaMap .photo--areaMap .photo__image {
  display: block;
  width: 100%;
  height: auto;
}

.areaMap__map {
  /* swipe touchFigure: full-bleed 100vw, breaking out of the wrap's SP gutter; built-in caption hidden */
  /* use the swipe icon badge from the PSD instead of the built-in SVG */
}

@media screen and (max-width: 768px) {
  .areaMap__map .touchFigure {
    margin: 0 calc(-60 / 750 * 100vw);
    width: 100vw;
  }
}

@media screen and (max-width: 768px) {
  .areaMap__map .touchFigure--swipe {
    height: 40vh;
  }
}

@media print, screen and (min-width: 768px) {
  .areaMap__map .touchFigure__image {
    display: block;
    width: 100%;
  }
}

.areaMap__map .touchFigure__capOut {
  display: none;
}

@media screen and (max-width: 768px) {
  .areaMap__map .touchFigure__spIcon {
    top: 0;
    left: 0;
    width: calc(80 / 750 * 100vw);
    height: calc(80 / 750 * 100vw);
    background-image: url("../imgs/icon-swipe.png");
    background-repeat: no-repeat;
    background-size: contain;
  }
}

.areaMap__map .touchFigure__spIcon .swipeSVG {
  display: none;
}

.areaMap__mapCap {
  color: #464646;
  font-size: 10px;
  line-height: 1.6;
  text-align: right;
}

@media print, screen and (min-width: 768px) {
  .areaMap__mapCap {
    margin-top: 19px;
  }
}

@media screen and (max-width: 768px) {
  .areaMap__mapCap {
    margin-top: calc(20 / 750 * 100vw);
  }
}

.areaMap__hanabi {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

@media print, screen and (min-width: 768px) {
  .areaMap__hanabi {
    max-width: 717px;
    margin: 59px auto 0;
    -webkit-column-gap: 47px;
       -moz-column-gap: 47px;
            column-gap: 47px;
  }
}

@media screen and (max-width: 768px) {
  .areaMap__hanabi {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    margin-top: calc(80 / 750 * 100vw);
  }
}

@media print, screen and (min-width: 768px) {
  .areaMap__hanabiImg {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 338px;
            flex: 0 0 338px;
  }
}

@media screen and (max-width: 768px) {
  .areaMap__hanabiImg {
    width: 100%;
  }
}

.areaMap__imgCap {
  color: #464646;
  font-size: 10px;
  line-height: 1;
  text-align: right;
  margin-top: 6px;
}

@media print, screen and (min-width: 768px) {
  .areaMap__hanabiTxt {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
  }
}

@media screen and (max-width: 768px) {
  .areaMap__hanabiTxt {
    width: 100%;
    margin-top: calc(48 / 750 * 100vw);
  }
}

.areaMap__hanabiTtl {
  color: #464646;
  font-weight: 500;
  letter-spacing: .08em;
}

@media print, screen and (min-width: 768px) {
  .areaMap__hanabiTtl {
    font-size: 24px;
  }
}

@media screen and (max-width: 768px) {
  .areaMap__hanabiTtl {
    font-size: calc(40 / 750 * 100vw);
  }
}

.areaMap__hanabiBody {
  color: #464646;
  font-weight: 500;
  letter-spacing: .05em;
  line-height: 1.8;
  text-align: left;
}

@media print, screen and (min-width: 768px) {
  .areaMap__hanabiBody {
    margin-top: 32px;
    font-size: 16px;
  }
}

@media screen and (max-width: 768px) {
  .areaMap__hanabiBody {
    margin-top: calc(36 / 750 * 100vw);
    font-size: calc(30 / 750 * 100vw);
  }
}

.areaMap__hanabiNote {
  color: #464646;
  font-weight: 500;
  letter-spacing: .05em;
  line-height: 1.8;
  font-size: 10px;
}

@media print, screen and (min-width: 768px) {
  .areaMap__hanabiNote {
    margin-top: 12px;
  }
}

@media screen and (max-width: 768px) {
  .areaMap__hanabiNote {
    margin-top: calc(20 / 750 * 100vw);
  }
}

.comfortable {
  color: #464646;
  font-family: "YakuHanMP", "Shippori Mincho B1", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
}

.comfortable__lead {
  text-align: center;
}

.comfortable__heading {
  color: #1a5072;
  font-weight: 500;
  letter-spacing: .04em;
  line-height: 1.4;
}

@media print, screen and (min-width: 768px) {
  .comfortable__heading {
    font-size: 44px;
  }
}

@media screen and (max-width: 768px) {
  .comfortable__heading {
    font-size: calc(64 / 750 * 100vw);
  }
}

.comfortable__txt {
  font-weight: 500;
  letter-spacing: .04em;
  line-height: 1.8;
  text-align: left;
}

@media print, screen and (min-width: 768px) {
  .comfortable__txt {
    margin-top: 27px;
    font-size: 16px;
    text-align: center;
  }
}

@media screen and (max-width: 768px) {
  .comfortable__txt {
    margin-top: calc(40 / 750 * 100vw);
    font-size: calc(30 / 750 * 100vw);
  }
}

@media print, screen and (min-width: 768px) {
  .comfortable__map {
    margin-top: 52px;
  }
}

@media screen and (max-width: 768px) {
  .comfortable__map {
    /* full-bleed: break out of the wrap's SP gutter */
    margin: calc(60 / 750 * 100vw) calc(-60 / 750 * 100vw) 0;
  }
}

.comfortable__map .pic--comfortable {
  display: block;
}

.comfortable__map .pic--comfortable .pic__image {
  display: block;
  width: 100%;
  height: auto;
}

.comfortable__cap {
  color: #999999;
  font-size: 10px;
  line-height: 1;
  text-align: right;
}

@media print, screen and (min-width: 768px) {
  .comfortable__cap {
    margin-top: 8px;
  }
}

@media screen and (max-width: 768px) {
  .comfortable__cap {
    margin-top: calc(12 / 750 * 100vw);
  }
}

.convenience {
  font-family: "YakuHanMP", "Shippori Mincho B1", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
  /* --- エリアマップイラスト（areaMapより移設） --- */
  /* --- 徒歩圏内スポット：画像＋徒歩分数のみ（2×2） --- */
  /* --- place heading (shop / street): name on line 1, 徒歩 X 分 on line 2 --- */
  /* --- 2 shop cards --- */
  /* --- sub heading --- */
  /* --- 2 street cards (left) + map (right) --- */
}

.convenience .photo--convenience .photo__image {
  display: block;
  width: 100%;
  height: auto;
}

@media print, screen and (min-width: 768px) {
  .convenience__illust {
    margin-top: 48px;
  }
}

@media screen and (max-width: 768px) {
  .convenience__illust {
    margin-top: calc(60 / 750 * 100vw);
  }
}

.convenience__spots {
  display: grid;
  grid-template-columns: 1fr 1fr;
}

@media print, screen and (min-width: 768px) {
  .convenience__spots {
    gap: 48px 24px;
    margin-top: 48px;
  }
}

@media screen and (max-width: 768px) {
  .convenience__spots {
    gap: calc(56 / 750 * 100vw) calc(24 / 750 * 100vw);
    margin-top: calc(60 / 750 * 100vw);
  }
}

.convenience__spotImg {
  aspect-ratio: 483 / 323;
  overflow: hidden;
}

.convenience__spotImg .photo--spot,
.convenience__spotImg .photo--spot .photo__image {
  display: block;
  width: 100%;
  height: 100%;
}

.convenience__spotImg .photo--spot .photo__image {
  -o-object-fit: cover;
     object-fit: cover;
}

@media print, screen and (min-width: 768px) {
  .convenience__spot .convenience__place {
    margin-top: 16px;
  }
}

@media screen and (max-width: 768px) {
  .convenience__spot .convenience__place {
    margin-top: calc(20 / 750 * 100vw);
  }
}

.convenience__place {
  color: #464646;
  font-weight: 500;
}

.convenience__place .name {
  display: block;
  line-height: 1.3;
}

@media print, screen and (min-width: 768px) {
  .convenience__place .name {
    font-size: 20px;
  }
}

@media screen and (max-width: 768px) {
  .convenience__place .name {
    font-size: calc(36 / 750 * 100vw);
  }
}

.convenience__place .walk {
  display: block;
  line-height: 1;
}

@media print, screen and (min-width: 768px) {
  .convenience__place .walk {
    margin-top: 10px;
    font-size: 16px;
  }
}

@media screen and (max-width: 768px) {
  .convenience__place .walk {
    margin-top: calc(16 / 750 * 100vw);
    font-size: calc(28 / 750 * 100vw);
  }
}

.convenience__place .num {
  margin: 0 .04em;
  color: #cc5277;
  font-family: "Cinzel", serif;
  font-weight: 400;
  vertical-align: baseline;
}

@media print, screen and (min-width: 768px) {
  .convenience__place .num {
    font-size: 40px;
  }
}

@media screen and (max-width: 768px) {
  .convenience__place .num {
    font-size: calc(64 / 750 * 100vw);
  }
}

.convenience__place .dist {
  margin-left: .2em;
}

@media print, screen and (min-width: 768px) {
  .convenience__place .dist {
    font-size: 14px;
  }
}

@media screen and (max-width: 768px) {
  .convenience__place .dist {
    font-size: calc(24 / 750 * 100vw);
  }
}

.convenience__shops {
  display: grid;
}

@media print, screen and (min-width: 768px) {
  .convenience__shops {
    grid-template-columns: 483fr 484fr;
    -webkit-column-gap: 61px;
       -moz-column-gap: 61px;
            column-gap: 61px;
    margin-top: 37px;
  }
}

@media screen and (max-width: 768px) {
  .convenience__shops {
    grid-template-columns: 1fr;
    row-gap: calc(80 / 750 * 100vw);
    margin-top: calc(50 / 750 * 100vw);
  }
}

@media print, screen and (min-width: 768px) {
  .convenience__shop .convenience__place {
    margin-top: 32px;
  }
}

@media screen and (max-width: 768px) {
  .convenience__shop .convenience__place {
    margin-top: calc(40 / 750 * 100vw);
  }
}

.convenience__shopBody {
  color: #464646;
  font-weight: 500;
  letter-spacing: .05em;
  line-height: 1.8;
  text-align: left;
}

@media print, screen and (min-width: 768px) {
  .convenience__shopBody {
    margin-top: 26px;
    font-size: 16px;
  }
}

@media screen and (max-width: 768px) {
  .convenience__shopBody {
    margin-top: calc(32 / 750 * 100vw);
    font-size: calc(30 / 750 * 100vw);
  }
}

.convenience__inlineNote {
  display: inline-block;
  margin-top: 6px;
  font-size: 12px;
}

.convenience__hours {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  background-color: #e1f3f7;
  color: #464646;
  font-weight: 500;
  line-height: 1.5;
  text-align: center;
}

@media print, screen and (min-width: 768px) {
  .convenience__hours {
    min-height: 42px;
    margin-top: 22px;
    padding: 6px 10px;
    font-size: 16px;
  }
}

@media screen and (max-width: 768px) {
  .convenience__hours {
    margin-top: calc(32 / 750 * 100vw);
    padding: calc(20 / 750 * 100vw);
    font-size: calc(28 / 750 * 100vw);
  }
}

.convenience__lead {
  text-align: center;
}

@media print, screen and (min-width: 768px) {
  .convenience__lead {
    margin-top: 138px;
  }
}

@media screen and (max-width: 768px) {
  .convenience__lead {
    margin-top: calc(90 / 750 * 100vw);
  }
}

.convenience__leadTtl {
  color: #464646;
  font-weight: 500;
  letter-spacing: .06em;
}

@media print, screen and (min-width: 768px) {
  .convenience__leadTtl {
    font-size: 24px;
  }
}

@media screen and (max-width: 768px) {
  .convenience__leadTtl {
    font-size: calc(36 / 750 * 100vw);
  }
}

.convenience__leadBody {
  color: #464646;
  font-weight: 500;
  letter-spacing: .05em;
  line-height: 1.8;
}

@media print, screen and (min-width: 768px) {
  .convenience__leadBody {
    max-width: 904px;
    margin: 26px auto 0;
    font-size: 16px;
  }
}

@media screen and (max-width: 768px) {
  .convenience__leadBody {
    margin-top: calc(36 / 750 * 100vw);
    font-size: calc(30 / 750 * 100vw);
    text-align: left;
  }
}

.convenience__streets {
  display: grid;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
}

@media print, screen and (min-width: 768px) {
  .convenience__streets {
    grid-template-columns: 311fr 669fr;
    -webkit-column-gap: 48px;
       -moz-column-gap: 48px;
            column-gap: 48px;
    margin-top: 59px;
  }
}

@media screen and (max-width: 768px) {
  .convenience__streets {
    grid-template-columns: 1fr;
    row-gap: calc(80 / 750 * 100vw);
    margin-top: calc(80 / 750 * 100vw);
  }
}

@media print, screen and (min-width: 768px) {
  .convenience__streetCard + .convenience__streetCard {
    margin-top: 39px;
  }
}

@media screen and (max-width: 768px) {
  .convenience__streetCard + .convenience__streetCard {
    margin-top: calc(60 / 750 * 100vw);
  }
}

@media print, screen and (min-width: 768px) {
  .convenience__streetCard .convenience__place {
    margin-top: 18px;
  }
}

@media screen and (max-width: 768px) {
  .convenience__streetCard .convenience__place {
    margin-top: calc(28 / 750 * 100vw);
  }
}

.convenience__mapCap {
  color: #464646;
  font-size: 10px;
  line-height: 1;
  text-align: right;
  margin-top: 8px;
}

.leisure {
  font-family: "YakuHanMP", "Shippori Mincho B1", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
  /* --- 生田緑地 (left column) --- */
  /* park photo spans the 科学館 group + ばら苑 photo, so its bottom lines up with the ばら苑 photo */
  /* --- よみうりランド (right column) --- */
}

.leisure__cols {
  display: grid;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
}

@media print, screen and (min-width: 768px) {
  .leisure__cols {
    grid-template-columns: 664fr 311fr;
    -webkit-column-gap: 51px;
       -moz-column-gap: 51px;
            column-gap: 51px;
    margin-top: 26px;
  }
}

@media screen and (max-width: 768px) {
  .leisure__cols {
    grid-template-columns: 1fr;
    row-gap: calc(90 / 750 * 100vw);
    margin-top: calc(48 / 750 * 100vw);
  }
}

.leisure .photo--leisure .photo__image {
  display: block;
  width: 100%;
  height: auto;
}

.leisure .photo--cover {
  height: 100%;
}

.leisure .photo--cover .photo__image {
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.leisure__place {
  color: #464646;
  font-weight: 500;
  line-height: 1;
}

@media print, screen and (min-width: 768px) {
  .leisure__place {
    font-size: 16px;
  }
}

@media screen and (max-width: 768px) {
  .leisure__place {
    font-size: calc(28 / 750 * 100vw);
  }
}

@media print, screen and (min-width: 768px) {
  .leisure__place .name {
    margin-right: .5em;
    font-size: 20px;
  }
}

@media screen and (max-width: 768px) {
  .leisure__place .name {
    margin-right: .4em;
    font-size: calc(32 / 750 * 100vw);
  }
}

.leisure__place .num {
  margin: 0 .04em;
  color: #cc5277;
  font-family: "Cinzel", serif;
  font-weight: 400;
  vertical-align: baseline;
}

@media print, screen and (min-width: 768px) {
  .leisure__place .num {
    font-size: 40px;
  }
}

@media screen and (max-width: 768px) {
  .leisure__place .num {
    font-size: calc(64 / 750 * 100vw);
  }
}

.leisure__place .dist {
  margin-left: .2em;
}

@media print, screen and (min-width: 768px) {
  .leisure__place .dist {
    font-size: 14px;
  }
}

@media screen and (max-width: 768px) {
  .leisure__place .dist {
    font-size: calc(24 / 750 * 100vw);
  }
}

@media print, screen and (min-width: 768px) {
  .leisure__place--name {
    font-size: 20px;
  }
}

@media screen and (max-width: 768px) {
  .leisure__place--name {
    font-size: calc(36 / 750 * 100vw);
  }
}

.leisure__txt {
  color: #464646;
  font-weight: 500;
  letter-spacing: .05em;
  line-height: 1.8;
  text-align: left;
}

@media print, screen and (min-width: 768px) {
  .leisure__txt {
    font-size: 16px;
  }
}

@media screen and (max-width: 768px) {
  .leisure__txt {
    font-size: calc(30 / 750 * 100vw);
  }
}

.leisure__inlineNote {
  margin-left: .3em;
  font-size: 12px;
}

.leisure__note {
  color: #464646;
  font-weight: 500;
  letter-spacing: .05em;
  line-height: 1.8;
}

@media print, screen and (min-width: 768px) {
  .leisure__note {
    margin-top: 12px;
    font-size: 12px;
  }
}

@media screen and (max-width: 768px) {
  .leisure__note {
    margin-top: calc(20 / 750 * 100vw);
    font-size: calc(22 / 750 * 100vw);
  }
}

@media print, screen and (min-width: 768px) {
  .leisure__col--main .leisure__txt {
    margin-top: 21px;
  }
}

@media screen and (max-width: 768px) {
  .leisure__col--main .leisure__txt {
    margin-top: calc(36 / 750 * 100vw);
  }
}

.leisure__gallery {
  display: grid;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
}

@media print, screen and (min-width: 768px) {
  .leisure__gallery {
    grid-template-columns: 433fr 213fr;
    -webkit-column-gap: 18px;
       -moz-column-gap: 18px;
            column-gap: 18px;
    row-gap: 8px;
    margin-top: 30px;
  }
}

@media screen and (max-width: 768px) {
  .leisure__gallery {
    grid-template-columns: 1fr 1fr;
    -webkit-column-gap: calc(28 / 750 * 100vw);
       -moz-column-gap: calc(28 / 750 * 100vw);
            column-gap: calc(28 / 750 * 100vw);
    row-gap: calc(24 / 750 * 100vw);
    margin-top: calc(48 / 750 * 100vw);
  }
}

@media print, screen and (min-width: 768px) {
  .leisure__galleryMain {
    grid-column: 1;
    grid-row: 1 / 3;
    align-self: stretch;
    height: 100%;
  }
}

@media screen and (max-width: 768px) {
  .leisure__galleryMain {
    grid-column: 1 / -1;
    grid-row: 1;
  }
}

.leisure__thumb--kagaku {
  grid-column: 2;
  grid-row: 1;
}

@media screen and (max-width: 768px) {
  .leisure__thumb--kagaku {
    grid-column: 1;
    grid-row: 2;
  }
}

.leisure__thumb--bara {
  grid-column: 2;
  grid-row: 2;
}

@media print, screen and (min-width: 768px) {
  .leisure__thumb--bara {
    position: relative;
  }
}

@media screen and (max-width: 768px) {
  .leisure__thumb--bara {
    grid-column: 2;
    grid-row: 2;
  }
}

.leisure__thumbCap {
  color: #464646;
  font-weight: 500;
  letter-spacing: 0;
  margin-top: 7px;
  /* ばら苑 caption: on PC it hangs below the photo out of flow (so the park still
       aligns to the photo bottom); on SP it flows normally under the ばら苑 photo */
}

@media print, screen and (min-width: 768px) {
  .leisure__thumbCap--bara {
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
  }
}

.leisure__thumbCap .t {
  display: block;
  line-height: 1.5;
  font-size: 14px;
}

.leisure__thumbCap .d {
  display: block;
  margin-top: 8px;
  font-size: 12px;
}

@media print, screen and (min-width: 768px) {
  .leisure__col--sub .leisure__place--name {
    margin-top: 37px;
  }
}

@media screen and (max-width: 768px) {
  .leisure__col--sub .leisure__place--name {
    margin-top: calc(40 / 750 * 100vw);
  }
}

.leisure__dist {
  color: #464646;
  font-weight: 500;
  line-height: 1.6;
}

@media print, screen and (min-width: 768px) {
  .leisure__dist {
    margin-top: 10px;
    font-size: 12px;
  }
}

@media screen and (max-width: 768px) {
  .leisure__dist {
    margin-top: calc(16 / 750 * 100vw);
    font-size: calc(24 / 750 * 100vw);
  }
}

@media print, screen and (min-width: 768px) {
  .leisure__col--sub .leisure__txt {
    margin-top: 18px;
  }
}

@media screen and (max-width: 768px) {
  .leisure__col--sub .leisure__txt {
    margin-top: calc(28 / 750 * 100vw);
  }
}

.lifeStage {
  font-family: "YakuHanMP", "Shippori Mincho B1", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
}

.lifeStage__label {
  color: #464646;
  font-family: "Shippori Mincho B1", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
  text-align: left;
}

@media print, screen and (min-width: 768px) {
  .lifeStage__label {
    margin: 32px 0 16px;
    font-size: 16px;
  }
}

.lifeStage__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

@media print, screen and (min-width: 768px) {
  .lifeStage__list {
    gap: 48px;
  }
}

@media screen and (max-width: 768px) {
  .lifeStage__list {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    margin-top: calc(50 / 750 * 100vw);
    gap: calc(56 / 750 * 100vw);
  }
}

@media print, screen and (min-width: 768px) {
  .lifeStage__item {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
  }
}

@media screen and (max-width: 768px) {
  .lifeStage__item {
    width: 100%;
  }
}

.lifeStage__txt {
  margin: 0 auto;
  color: #464646;
  font-weight: 500;
  letter-spacing: .05em;
  line-height: 1.8;
  text-align: left;
}

@media print, screen and (min-width: 768px) {
  .lifeStage__txt {
    max-width: 902px;
    margin-top: 38px;
    font-size: 16px;
  }
}

@media screen and (max-width: 768px) {
  .lifeStage__txt {
    margin-top: calc(60 / 750 * 100vw);
    font-size: calc(30 / 750 * 100vw);
  }
}

.cityCard {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

@media print, screen and (min-width: 768px) {
  .cityCard {
    height: 100%;
  }
}

@media screen and (max-width: 768px) {
  .cityCard {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: calc(32 / 750 * 100vw);
  }
}

@media screen and (max-width: 768px) {
  .cityCard__figure {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
    -ms-flex-negative: 0;
        flex-shrink: 0;
    width: calc(300 / 750 * 100vw);
  }
}

.cityCard__visual {
  position: relative;
  overflow: hidden;
}

.cityCard__visual .pic--cityCard {
  display: block;
}

.cityCard__visual .pic--cityCard .pic__image {
  display: block;
  width: 100%;
  height: auto;
}

.cityCard__name {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  color: #ffffff;
  font-family: 'Cormorant Garamond', serif;
  letter-spacing: .1em;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
}

@media print, screen and (min-width: 768px) {
  .cityCard__name {
    padding: 17px 0 16px;
    font-size: 24px;
  }
}

@media screen and (max-width: 768px) {
  .cityCard__name {
    padding: calc(20 / 750 * 100vw) 0 calc(17 / 750 * 100vw);
    font-size: calc(36 / 750 * 100vw);
  }
}

.cityCard__name:after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: #849aba;
  mix-blend-mode: multiply;
  content: '';
}

.cityCard__nameInner {
  position: relative;
  z-index: 1;
}

.cityCard__cap {
  color: #999999;
  font-size: 10px;
  line-height: 1;
  text-align: right;
}

@media print, screen and (min-width: 768px) {
  .cityCard__cap {
    margin-top: 8px;
  }
}

@media screen and (max-width: 768px) {
  .cityCard__cap {
    margin-top: calc(12 / 750 * 100vw);
  }
}

.accessCard {
  color: #464646;
  font-family: "Shippori Mincho B1", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
}

@media print, screen and (min-width: 768px) {
  .accessCard {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    padding: 29px 13px 14px;
    background-color: #e1f3f7;
    text-align: center;
  }
}

@media screen and (max-width: 768px) {
  .accessCard {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    text-align: left;
  }
}

.accessCard__station {
  line-height: 1;
}

@media print, screen and (min-width: 768px) {
  .accessCard__station {
    font-size: 28px;
  }
}

@media screen and (max-width: 768px) {
  .accessCard__station {
    font-size: calc(40 / 750 * 100vw);
    white-space: nowrap;
  }
}

@media print, screen and (min-width: 768px) {
  .accessCard__station .name {
    font-size: 34px;
  }
}

@media screen and (max-width: 768px) {
  .accessCard__station .name {
    font-size: calc(48 / 750 * 100vw);
  }
}

@media screen and (max-width: 768px) {
  .accessCard__bracket {
    margin: 0 -0.15em;
  }
}

.accessCard__time {
  line-height: 1;
}

@media print, screen and (min-width: 768px) {
  .accessCard__time {
    margin-top: 21px;
  }
}

@media screen and (max-width: 768px) {
  .accessCard__time {
    margin-top: calc(18 / 750 * 100vw);
  }
}

@media print, screen and (min-width: 768px) {
  .accessCard__time .pre,
  .accessCard__time .unit {
    font-size: 24px;
  }
}

@media screen and (max-width: 768px) {
  .accessCard__time .pre,
  .accessCard__time .unit {
    font-size: calc(32 / 750 * 100vw);
  }
}

.accessCard__time .num {
  margin: 0 .02em;
  color: #1a5072;
  font-family: "Cinzel", serif;
  vertical-align: baseline;
}

@media print, screen and (min-width: 768px) {
  .accessCard__time .num {
    font-size: 40px;
  }
}

@media screen and (max-width: 768px) {
  .accessCard__time .num {
    font-size: calc(56 / 750 * 100vw);
  }
}

.accessCard__time .sub {
  color: #766629;
  letter-spacing: .05em;
  white-space: nowrap;
}

@media print, screen and (min-width: 768px) {
  .accessCard__time .sub {
    font-size: 10px;
  }
}

@media screen and (max-width: 768px) {
  .accessCard__time .sub {
    font-size: calc(20 / 750 * 100vw);
  }
}

.accessCard__note {
  color: #999999;
  letter-spacing: -.06em;
  line-height: 1.6;
  text-align: left;
}

@media print, screen and (min-width: 768px) {
  .accessCard__note {
    margin-top: 25px;
    font-size: 10px;
  }
}

@media screen and (max-width: 768px) {
  .accessCard__note {
    margin-top: calc(18 / 750 * 100vw);
    font-size: calc(22 / 750 * 100vw);
  }
}

.renewalArea {
  position: relative;
  font-family: "YakuHanMP", "Shippori Mincho B1", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
}

.renewalArea__bgLayer {
  position: absolute;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100%;
  margin-left: calc(50% - 50vw);
  background-color: #f4f7f6;
}

.renewalArea__inner {
  position: relative;
  z-index: 1;
}

@media print, screen and (min-width: 768px) {
  .renewalArea__inner {
    padding: 100px 0;
  }
}

@media screen and (max-width: 768px) {
  .renewalArea__inner {
    padding: calc(100 / 750 * 100vw) 0;
  }
}

.renewalArea__heading {
  color: #464646;
  font-weight: 500;
  letter-spacing: .08em;
  line-height: 1.6;
  text-align: center;
}

@media print, screen and (min-width: 768px) {
  .renewalArea__heading {
    font-size: 24px;
  }
}

@media screen and (max-width: 768px) {
  .renewalArea__heading {
    /* CB指定の4行改行（最長14文字）が1行に収まるよう字送りを縮小 */
    font-size: calc(40 / 750 * 100vw);
    letter-spacing: .04em;
  }
}

@media print, screen and (min-width: 768px) {
  .renewalArea__rows {
    margin-top: 100px;
  }
}

@media screen and (max-width: 768px) {
  .renewalArea__rows {
    margin-top: calc(80 / 750 * 100vw);
  }
}

.renewalArea__row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}

@media print, screen and (min-width: 768px) {
  .renewalArea__row {
    -webkit-column-gap: 46px;
       -moz-column-gap: 46px;
            column-gap: 46px;
  }
}

@media screen and (max-width: 768px) {
  .renewalArea__row {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}

@media print, screen and (min-width: 768px) {
  .renewalArea__row + .renewalArea__row {
    margin-top: 57px;
  }
}

@media screen and (max-width: 768px) {
  .renewalArea__row + .renewalArea__row {
    margin-top: calc(80 / 750 * 100vw);
  }
}

@media print, screen and (min-width: 768px) {
  .renewalArea__rowImg {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 338px;
            flex: 0 0 338px;
  }
}

@media screen and (max-width: 768px) {
  .renewalArea__rowImg {
    width: 100%;
  }
}

.renewalArea .photo--renewalArea .photo__image {
  display: block;
  width: 100%;
  height: auto;
}

@media print, screen and (min-width: 768px) {
  .renewalArea__rowTxt {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
  }
}

@media screen and (max-width: 768px) {
  .renewalArea__rowTxt {
    width: 100%;
    margin-top: calc(40 / 750 * 100vw);
  }
}

.renewalArea__divider {
  display: block;
  position: relative;
  height: 1px;
  background-color: #e2e5e4;
}

.renewalArea__divider:before {
  position: absolute;
  top: 0;
  left: 0;
  width: 42px;
  height: 100%;
  background-color: #94afaa;
  content: '';
}

.renewalArea__rowTtl {
  color: #464646;
  font-weight: 500;
  letter-spacing: .05em;
  line-height: 1.3;
}

@media print, screen and (min-width: 768px) {
  .renewalArea__rowTtl {
    margin-top: 34px;
    font-size: 24px;
  }
}

@media screen and (max-width: 768px) {
  .renewalArea__rowTtl {
    margin-top: calc(40 / 750 * 100vw);
    font-size: calc(40 / 750 * 100vw);
  }
}

.renewalArea__rowBody {
  color: #464646;
  font-weight: 500;
  letter-spacing: .05em;
  line-height: 1.8;
  text-align: left;
}

@media print, screen and (min-width: 768px) {
  .renewalArea__rowBody {
    margin-top: 22px;
    font-size: 16px;
  }
}

@media screen and (max-width: 768px) {
  .renewalArea__rowBody {
    margin-top: calc(28 / 750 * 100vw);
    font-size: calc(30 / 750 * 100vw);
  }
}

.renewalArea__note {
  color: #464646;
  font-size: 10px;
  line-height: 1.6;
}

@media print, screen and (min-width: 768px) {
  .renewalArea__note {
    margin-top: 27px;
  }
}

@media screen and (max-width: 768px) {
  .renewalArea__note {
    margin-top: calc(48 / 750 * 100vw);
  }
}

.routeAccess__lead {
  color: #464646;
  font-family: "Shippori Mincho B1", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
  text-align: center;
}

@media print, screen and (min-width: 768px) {
  .routeAccess__leadInner {
    display: inline-block;
    text-align: left;
  }
}

@media screen and (max-width: 768px) {
  .routeAccess__leadInner {
    display: block;
    text-align: center;
  }
}

@media print, screen and (min-width: 768px) {
  .routeAccess__eyebrow {
    display: block;
    margin: 0 0 2px 20px;
    font-size: 20px;
    line-height: 1;
  }
}

@media screen and (max-width: 768px) {
  .routeAccess__eyebrow {
    /* CB: SPは「中野島」駅と同じ行に並べる */
    display: inline;
    font-size: calc(22 / 750 * 100vw);
  }
}

.routeAccess__ttl {
  font-weight: 400;
  line-height: 1.1;
}

@media print, screen and (min-width: 768px) {
  .routeAccess__ttl {
    font-size: 22px;
  }
}

@media screen and (max-width: 768px) {
  .routeAccess__ttl {
    font-size: calc(32 / 750 * 100vw);
    line-height: 1.9;
    text-align: center;
  }
}

@media print, screen and (min-width: 768px) {
  .routeAccess__ttl .station {
    font-size: 44px;
  }
}

@media screen and (max-width: 768px) {
  .routeAccess__ttl .station {
    font-size: calc(48 / 750 * 100vw);
  }
}

@media print, screen and (min-width: 768px) {
  .routeAccess__ttl .suffix {
    font-size: 37px;
  }
}

@media screen and (max-width: 768px) {
  .routeAccess__ttl .suffix {
    font-size: calc(40 / 750 * 100vw);
  }
}

.routeAccess__ttl .note {
  letter-spacing: .1em;
}

@media print, screen and (min-width: 768px) {
  .routeAccess__ttl .note {
    font-size: 30px;
  }
}

@media screen and (max-width: 768px) {
  .routeAccess__ttl .note {
    font-size: calc(34 / 750 * 100vw);
  }
}

.routeAccess__ttl .walk {
  white-space: nowrap;
}

@media print, screen and (min-width: 768px) {
  .routeAccess__ttl .walk {
    font-size: 37px;
  }
}

.routeAccess__ttl .num {
  margin: 0 .05em;
  color: #1a5072;
  font-family: "Cinzel", serif;
  letter-spacing: .04em;
  line-height: 1;
  vertical-align: baseline;
}

@media print, screen and (min-width: 768px) {
  .routeAccess__ttl .num {
    font-size: 81px;
  }
}

@media screen and (max-width: 768px) {
  .routeAccess__ttl .num {
    font-size: calc(84 / 750 * 100vw);
  }
}

.routeAccess__ttl .dist {
  display: block;
  margin-top: -4px;
  color: #999999;
  font-size: 13px;
  letter-spacing: .05em;
  line-height: 1;
  text-align: right;
}

@media screen and (max-width: 768px) {
  .routeAccess__ttl .dist {
    /* CB: 「徒歩10分」の下に改行して中央配置。__ttl の line-height 1.9 由来の
           ハーフレディングを負マージンで打ち消し、この2行の行間のみを詰める */
    margin-top: calc(-8 / 750 * 100vw);
    text-align: center;
  }
}

.waterside {
  font-family: "YakuHanMP", "Shippori Mincho B1", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
}

@media print, screen and (min-width: 768px) {
  .waterside__block {
    margin-top: 37px;
  }
}

@media screen and (max-width: 768px) {
  .waterside__block {
    margin-top: calc(50 / 750 * 100vw);
  }
}

@media print, screen and (min-width: 768px) {
  .waterside__block + .waterside__block {
    margin-top: 99px;
  }
}

@media screen and (max-width: 768px) {
  .waterside__block + .waterside__block {
    margin-top: calc(100 / 750 * 100vw);
  }
}

.waterside__grid {
  display: grid;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
  gap: 7px;
}

@media print, screen and (min-width: 768px) {
  .waterside__grid--tama {
    grid-template-columns: 595fr 420fr;
  }
}

@media screen and (max-width: 768px) {
  .waterside__grid--tama {
    grid-template-columns: 1fr;
    gap: calc(24 / 750 * 100vw);
  }
}

.waterside__grid--nikaryo {
  grid-template-columns: 595fr 420fr;
}

.waterside__subGrid {
  display: grid;
}

@media print, screen and (min-width: 768px) {
  .waterside__subGrid {
    grid-template-columns: 143fr 270fr;
    -webkit-column-gap: 7px;
       -moz-column-gap: 7px;
            column-gap: 7px;
    row-gap: 9px;
  }
}

@media screen and (max-width: 768px) {
  .waterside__subGrid {
    grid-template-columns: repeat(3, 1fr);
    gap: calc(12 / 750 * 100vw);
  }
}

@media print, screen and (min-width: 768px) {
  .waterside__subGrid > .photo:first-child {
    grid-column: 1 / -1;
  }
}

@media screen and (max-width: 768px) {
  .waterside__subGrid .photo__image {
    aspect-ratio: 4 / 3;
    -o-object-fit: cover;
       object-fit: cover;
  }
}

.waterside__rideway {
  color: #464646;
  line-height: 1.5;
  text-align: right;
}

@media print, screen and (min-width: 768px) {
  .waterside__rideway {
    margin-top: 6px;
  }
}

@media screen and (max-width: 768px) {
  .waterside__rideway {
    margin-top: calc(8 / 750 * 100vw);
  }
}

.waterside__rideway .l1 {
  display: block;
}

@media print, screen and (min-width: 768px) {
  .waterside__rideway .l1 {
    font-size: 14px;
  }
}

@media screen and (max-width: 768px) {
  .waterside__rideway .l1 {
    font-size: calc(22 / 750 * 100vw);
  }
}

.waterside__rideway .l2 {
  display: block;
}

@media print, screen and (min-width: 768px) {
  .waterside__rideway .l2 {
    font-size: 12px;
  }
}

@media screen and (max-width: 768px) {
  .waterside__rideway .l2 {
    font-size: calc(20 / 750 * 100vw);
  }
}

.waterside .photo--waterside .photo__image {
  display: block;
  width: 100%;
  height: auto;
}

.waterside__place {
  color: #464646;
  font-weight: 500;
  line-height: 1;
}

@media print, screen and (min-width: 768px) {
  .waterside__place {
    margin-top: 39px;
    font-size: 16px;
  }
}

@media screen and (max-width: 768px) {
  .waterside__place {
    margin-top: calc(48 / 750 * 100vw);
    font-size: calc(28 / 750 * 100vw);
  }
}

@media print, screen and (min-width: 768px) {
  .waterside__place .name {
    margin-right: .5em;
    font-size: 20px;
  }
}

@media screen and (max-width: 768px) {
  .waterside__place .name {
    margin-right: .4em;
    font-size: calc(32 / 750 * 100vw);
  }
}

.waterside__place .num {
  margin: 0 .04em;
  color: #cc5277;
  font-family: "Cinzel", serif;
  font-weight: 400;
  vertical-align: baseline;
}

@media print, screen and (min-width: 768px) {
  .waterside__place .num {
    font-size: 40px;
  }
}

@media screen and (max-width: 768px) {
  .waterside__place .num {
    font-size: calc(64 / 750 * 100vw);
  }
}

.waterside__place .dist {
  margin-left: .2em;
}

@media print, screen and (min-width: 768px) {
  .waterside__place .dist {
    font-size: 14px;
  }
}

@media screen and (max-width: 768px) {
  .waterside__place .dist {
    font-size: calc(24 / 750 * 100vw);
  }
}

.waterside__txt {
  color: #464646;
  font-weight: 500;
  letter-spacing: .05em;
  line-height: 1.8;
  text-align: left;
}

@media print, screen and (min-width: 768px) {
  .waterside__txt {
    margin-top: 27px;
    font-size: 16px;
  }
}

@media screen and (max-width: 768px) {
  .waterside__txt {
    margin-top: calc(40 / 750 * 100vw);
    font-size: calc(30 / 750 * 100vw);
  }
}

.waterside__note {
  color: #464646;
  font-weight: 500;
  letter-spacing: .05em;
  line-height: 1.8;
  text-align: left;
}

@media print, screen and (min-width: 768px) {
  .waterside__note {
    margin-top: 4px;
    font-size: 12px;
  }
}

@media screen and (max-width: 768px) {
  .waterside__note {
    margin-top: calc(8 / 750 * 100vw);
    font-size: calc(22 / 750 * 100vw);
  }
}

@media print, screen and (min-width: 768px) {
  .waterside__block:first-of-type .waterside__place {
    margin-top: 6px;
  }
}

@media screen and (max-width: 768px) {
  .waterside__block:first-of-type .waterside__place {
    margin-top: calc(12 / 750 * 100vw);
  }
}

/* concept page uses the shared .wrap (1024px on PC); on SP it carries a fluid
   side gutter (60/750*100vw ≈ 30px) so full-bleed elements break out with
   margin: 0 calc(-60 / 750 * 100vw) */
@media screen and (max-width: 768px) {
  .wrap {
    padding: 0 calc(60 / 750 * 100vw);
  }
}

/* ===========================================================================
   Section wrappers: concept-{sectionName}
   Each section is <div class="concept-{name}"><div class="wrap">…</div></div>.
   The concept-{name} wrapper owns the vertical rhythm (margin / padding)
   BETWEEN sections; components style only their own internals.
   =========================================================================== */
@media print, screen and (min-width: 768px) {
  .concept-routeAccess {
    margin-top: 99px;
    padding-bottom: 56px;
  }
}

@media screen and (max-width: 768px) {
  .concept-routeAccess {
    margin-top: calc(100 / 750 * 100vw);
    padding-bottom: calc(80 / 750 * 100vw);
  }
}

@media print, screen and (min-width: 768px) {
  .concept-lifeStage {
    margin-top: 81px;
  }
}

@media screen and (max-width: 768px) {
  .concept-lifeStage {
    margin-top: calc(100 / 750 * 100vw);
  }
}

@media print, screen and (min-width: 768px) {
  .concept-waterside {
    margin-top: 99px;
  }
}

@media screen and (max-width: 768px) {
  .concept-waterside {
    margin-top: calc(100 / 750 * 100vw);
  }
}

@media print, screen and (min-width: 768px) {
  .concept-leisure {
    margin-top: 99px;
  }
}

@media screen and (max-width: 768px) {
  .concept-leisure {
    margin-top: calc(100 / 750 * 100vw);
  }
}

@media print, screen and (min-width: 768px) {
  .concept-areaMap {
    margin-top: 99px;
  }
}

@media screen and (max-width: 768px) {
  .concept-areaMap {
    margin-top: calc(100 / 750 * 100vw);
  }
}

@media print, screen and (min-width: 768px) {
  .concept-renewalArea {
    margin-top: 99px;
  }
}

@media screen and (max-width: 768px) {
  .concept-renewalArea {
    margin-top: calc(100 / 750 * 100vw);
  }
}

@media print, screen and (min-width: 768px) {
  .concept-convenience {
    margin-top: 138px;
    padding-bottom: 120px;
  }
}

@media screen and (max-width: 768px) {
  .concept-convenience {
    margin-top: calc(100 / 750 * 100vw);
    padding-bottom: calc(120 / 750 * 100vw);
  }
}
