@media only screen and (max-width: 768px) {
  .pc {
    display: none;
  }
}

@media print, screen and (min-width: 769px) {
  .sp {
    display: none;
  }
}

.accessCard {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}

.accessCard__body {
  margin-top: 40px;
  text-align: center;
}

.accessCard__ttl {
  color: #a59c7f;
  font-family: "Barlow Semi Condensed", serif;
  font-size: 50px;
  font-weight: 100;
  letter-spacing: 0;
  line-height: 1.2;
}

.accessCard__ttl:before {
  content: '';
  display: block;
  height: 0;
  margin-top: calc((1 - 1.2) * .5em);
  width: 0;
}

.accessCard__ttl:after {
  content: '';
  display: block;
  height: 0;
  margin-bottom: calc((1 - 1.2) * .5em);
  width: 0;
}

.accessCard__dist {
  color: #a59c7f;
  font-family: "Barlow Semi Condensed", serif;
  font-size: 30px;
  font-weight: 500;
  letter-spacing: .05em;
  margin-top: 8px;
  line-height: 1.2;
}

.accessCard__dist:before {
  content: '';
  display: block;
  height: 0;
  margin-top: calc((1 - 1.2) * .5em);
  width: 0;
}

.accessCard__dist:after {
  content: '';
  display: block;
  height: 0;
  margin-bottom: calc((1 - 1.2) * .5em);
  width: 0;
}

.accessCard__dist .large {
  display: inline-block;
  font-size: 40px;
  margin-left: 6px;
  margin-right: 6px;
}

.accessCard__dist .small {
  font-size: 24px;
  margin-right: 6px;
}

.accessCard__cap {
  color: #4b4426;
  font-size: 13px;
  letter-spacing: 0;
  margin-top: 16px;
  line-height: 1.6;
}

.accessCard__cap:before {
  content: '';
  display: block;
  height: 0;
  margin-top: calc((1 - 1.6) * .5em);
  width: 0;
}

.accessCard__cap:after {
  content: '';
  display: block;
  height: 0;
  margin-bottom: calc((1 - 1.6) * .5em);
  width: 0;
}

.busSect {
  margin: 0 auto;
}

@media print, screen and (min-width: 769px) {
  .busSect {
    max-width: 1200px;
  }
}

@media print, screen and (min-width: 768px) and (max-width: 1199px) {
  .busSect {
    padding: 0 20px;
    width: 100%;
  }
}

.is-tb .busSect {
  padding: 0 20px;
  width: 100%;
}

@media only screen and (max-width: 768px) {
  .busSect {
    padding: 0 32px;
  }
}

.busSect__head {
  margin-left: auto;
}

@media print, screen and (min-width: 769px) {
  .busSect__head {
    margin-right: 104px;
    width: 368px;
  }
}

@media only screen and (max-width: 768px) {
  .busSect__head {
    margin-right: 0;
    width: 210px;
  }
}

.busSect__cont {
  background-color: #ffffff;
  -webkit-box-shadow: 0 50px 50px 0 rgba(0, 0, 0, 0.08);
          box-shadow: 0 50px 50px 0 rgba(0, 0, 0, 0.08);
}

@media print, screen and (min-width: 769px) {
  .busSect__cont {
    border-radius: 0 150px 150px 0;
    margin-left: calc(50% - 50vw);
    margin-right: 320px;
    margin-top: -288px;
    padding: 120px 300px 120px 120px;
  }
}

@media only screen and (max-width: 768px) {
  .busSect__cont {
    border-radius: 0 80px 80px 0;
    margin-left: -32px;
    margin-right: -32px;
    margin-top: -70px;
    padding: 120px 32px 80px 32px;
  }
}

@media print, screen and (min-width: 769px) {
  .busSect__inner {
    margin-left: auto;
    margin-right: 0;
    max-width: 680px;
  }
}

.busSect__inner .photo + .caption {
  margin-top: 24px;
}

@media print, screen and (min-width: 769px) {
  .busSect__inner .headingUnit {
    margin-top: 60px;
  }
}

@media only screen and (max-width: 768px) {
  .busSect__inner .headingUnit {
    margin-top: 32px;
    max-width: 268px;
  }
}

.busSect__inner .headingUnit + .photo {
  margin-top: 60px;
}

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

.carSect__head {
  margin: 0 auto;
}

@media print, screen and (min-width: 769px) {
  .carSect__head {
    max-width: 784px;
  }
}

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

.is-tb .carSect__head {
  width: 100%;
}

@media print, screen and (min-width: 769px) {
  .carSect__head {
    text-align: center;
  }
}

@media only screen and (max-width: 768px) {
  .carSect__head {
    padding: 0 32px;
  }
}

@media print, screen and (min-width: 769px) {
  .carSect__head .enTtl + .headingUnit {
    margin-top: 56px;
  }
}

@media only screen and (max-width: 768px) {
  .carSect__head .enTtl + .headingUnit {
    margin-top: 40px;
  }
}

.carSect__head .photo {
  margin-top: 60px;
}

.carSect__visual {
  position: absolute;
  z-index: -1;
}

@media print, screen and (min-width: 769px) {
  .carSect__visual {
    left: -272px;
    top: 676px;
    width: 920px;
  }
}

@media only screen and (max-width: 768px) {
  .carSect__visual {
    left: -117px;
    top: 474px;
    width: 468px;
  }
}

.carSect__visual .maskedImage {
  width: 100%;
}

.carSect__visual .maskedImage .carSVG {
  height: auto;
  width: 100%;
}

.carSect__visual .maskedImage .carSVG__image {
  width: 100%;
}

.carSect__visual .maskedImage .carSVG__path {
  -webkit-transform: scale(0.6);
          transform: scale(0.6);
  -webkit-transform-origin: top left;
          transform-origin: top left;
  -webkit-transition: -webkit-transform 2s cubic-bezier(0.16, 1, 0.3, 1);
  transition: -webkit-transform 2s cubic-bezier(0.16, 1, 0.3, 1);
  transition: transform 2s cubic-bezier(0.16, 1, 0.3, 1);
  transition: transform 2s cubic-bezier(0.16, 1, 0.3, 1), -webkit-transform 2s cubic-bezier(0.16, 1, 0.3, 1);
}

.carSect__visual .maskedImage__cap {
  position: absolute;
  right: 0;
}

@media print, screen and (min-width: 769px) {
  .carSect__visual .maskedImage__cap {
    bottom: 230px;
  }
}

@media only screen and (max-width: 768px) {
  .carSect__visual .maskedImage__cap {
    bottom: 110px;
  }
}

.carSect__visual.sai-animate .maskedImage .carSVG__path {
  -webkit-animation: floating 3s cubic-bezier(0.45, 0, 0.55, 1) infinite;
          animation: floating 3s cubic-bezier(0.45, 0, 0.55, 1) infinite;
  -webkit-animation-delay: 2s;
          animation-delay: 2s;
  -webkit-transform: scale(1);
          transform: scale(1);
}

.carSect__cont {
  margin: 0 auto;
}

@media print, screen and (min-width: 769px) {
  .carSect__cont {
    max-width: 1200px;
  }
}

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

.is-tb .carSect__cont {
  width: 100%;
}

@media print, screen and (min-width: 769px) {
  .carSect__cont {
    margin-top: 320px;
  }
}

@media only screen and (max-width: 768px) {
  .carSect__cont {
    margin-top: 290px;
  }
}

@media print, screen and (min-width: 769px) {
  .carSect__cont .generalSlider .swiper-wrapper {
    gap: 80px 48px;
  }
}

@media print, screen and (min-width: 769px) {
  .carSect__cont .generalSlider .swiper-slide {
    width: 576px;
  }
}

@media only screen and (max-width: 768px) {
  .carSect__cont .generalSlider .swiper-slide {
    width: 268px;
  }
}

@media print, screen and (min-width: 769px) {
  .carSect__cont .generalSlider + .caption {
    margin-top: 80px;
  }
}

@media only screen and (max-width: 768px) {
  .carSect__cont .generalSlider + .caption {
    margin-top: 40px;
    padding: 0 32px;
  }
}

.highwayCard__body {
  margin: 40px auto 0;
}

@media print, screen and (min-width: 769px) {
  .highwayCard__body {
    max-width: 390px;
  }
}

@media print, screen and (min-width: 769px) {
  .highwayCard__desc {
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 8px;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
}

.highwayCard__ttl {
  letter-spacing: 0;
  line-height: 2;
}

.highwayCard__ttl:before {
  content: '';
  display: block;
  height: 0;
  margin-top: calc((1 - 2) * .5em);
  width: 0;
}

.highwayCard__ttl:after {
  content: '';
  display: block;
  height: 0;
  margin-bottom: calc((1 - 2) * .5em);
  width: 0;
}

@media print, screen and (min-width: 769px) {
  .highwayCard__ttl {
    font-size: 26px;
  }
}

.highwayCard__dist {
  color: #a59c7f;
  font-family: "Barlow Semi Condensed", serif;
  font-size: 30px;
  font-weight: 500;
  letter-spacing: .05em;
  line-height: 1.2;
}

.highwayCard__dist:before {
  content: '';
  display: block;
  height: 0;
  margin-top: calc((1 - 1.2) * .5em);
  width: 0;
}

.highwayCard__dist:after {
  content: '';
  display: block;
  height: 0;
  margin-bottom: calc((1 - 1.2) * .5em);
  width: 0;
}

.highwayCard__dist .num {
  display: inline-block;
  font-size: 40px;
  margin-left: 6px;
  margin-right: 6px;
}

.highwayCard__dist .jp {
  display: inline-block;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 18px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1;
}

.highwayCard__cap {
  color: #7e7a6a;
  letter-spacing: 0;
  line-height: 1.6;
}

.highwayCard__cap:before {
  content: '';
  display: block;
  height: 0;
  margin-top: calc((1 - 1.6) * .5em);
  width: 0;
}

.highwayCard__cap:after {
  content: '';
  display: block;
  height: 0;
  margin-bottom: calc((1 - 1.6) * .5em);
  width: 0;
}

@media print, screen and (min-width: 769px) {
  .highwayCard__cap {
    font-size: 13px;
    margin-top: 24px;
  }
}

@media only screen and (max-width: 768px) {
  .highwayCard__cap {
    font-size: 12px;
    margin-top: 32px;
  }
}

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

.pageIntro__shape {
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 2;
}

.pageIntro__shape .shapeSVG {
  height: auto;
  width: 100%;
}

@media only screen and (max-width: 768px) {
  .pickupCard__head .labelTtl {
    text-align: left;
  }
}

@media print, screen and (min-width: 769px) {
  .pickupCard__body .txt + .photo {
    margin-top: 48px;
  }
}

@media only screen and (max-width: 768px) {
  .pickupCard__body .txt + .photo {
    margin-top: 24px;
  }
}

@media print, screen and (min-width: 769px) {
  .pickupCard__head + .pickupCard__body {
    margin-top: 40px;
  }
}

@media only screen and (max-width: 768px) {
  .pickupCard__head + .pickupCard__body {
    margin-top: 24px;
  }
}

@media print, screen and (min-width: 769px) {
  .pickupCard--col .pickupCard__body {
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 48px;
  }
}

@media print, screen and (min-width: 769px) {
  .pickupCard--col .pickupCard__body .txt {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
  }
}

@media print, screen and (min-width: 769px) {
  .pickupCard--col .pickupCard__body .photo {
    margin-top: 0;
    width: 472px;
  }
}

@media print, screen and (min-width: 768px) and (max-width: 1199px) {
  .pickupCard--col .pickupCard__body .photo {
    width: calc(472 / 1440 * 100vw);
  }
}

.is-tb .pickupCard--col .pickupCard__body .photo {
  width: calc(472 / 1440 * 100vw);
}

.pickupSect {
  position: relative;
  z-index: 1;
  margin: 0 auto;
}

@media print, screen and (min-width: 769px) {
  .pickupSect {
    max-width: 1200px;
  }
}

@media print, screen and (min-width: 768px) and (max-width: 1199px) {
  .pickupSect {
    padding: 0 20px;
    width: 100%;
  }
}

.is-tb .pickupSect {
  padding: 0 20px;
  width: 100%;
}

@media only screen and (max-width: 768px) {
  .pickupSect {
    padding: 0 32px;
  }
}

@media print, screen and (min-width: 769px) {
  .pickupSect__head {
    bottom: -60px;
    position: absolute;
    right: 104px;
    width: 368px;
    z-index: 2;
  }
}

@media print, screen and (min-width: 768px) and (max-width: 1199px) {
  .pickupSect__head {
    width: calc(368 / 1440 * 100vw);
  }
}

.is-tb .pickupSect__head {
  width: calc(368 / 1440 * 100vw);
}

@media only screen and (max-width: 768px) {
  .pickupSect__head {
    margin-left: auto;
    margin-right: 0;
    position: relative;
    width: 210px;
    z-index: 2;
  }
}

.pickupSect__cont {
  background-color: #ffffff;
  -webkit-box-shadow: 0 50px 50px 0 rgba(0, 0, 0, 0.08);
          box-shadow: 0 50px 50px 0 rgba(0, 0, 0, 0.08);
}

@media print, screen and (min-width: 769px) {
  .pickupSect__cont {
    border-radius: 0 150px 150px 0;
    margin-left: calc(50% - 50vw);
    margin-right: 264px;
    padding: 120px 152px 120px 120px;
  }
}

@media print, screen and (min-width: 768px) and (max-width: 1199px) {
  .pickupSect__cont {
    padding: calc(120 / 1440 * 100vw) calc(152 / 1440 * 100vw) calc(120 / 1440 * 100vw) calc(120 / 1440 * 100vw);
  }
}

.is-tb .pickupSect__cont {
  padding: calc(120 / 1440 * 100vw) calc(152 / 1440 * 100vw) calc(120 / 1440 * 100vw) calc(120 / 1440 * 100vw);
}

@media only screen and (max-width: 768px) {
  .pickupSect__cont {
    border-radius: 0 80px 80px 0;
    margin-left: -32px;
    margin-right: 26px;
    margin-top: -70px;
    padding: 120px 32px 80px 32px;
  }
}

@media print, screen and (min-width: 769px) {
  .pickupSect__inner {
    margin-left: auto;
    margin-right: 0;
    max-width: 784px;
  }
}

.pickupSect__list {
  margin-top: 60px;
}

@media print, screen and (min-width: 769px) {
  .pickupSect__list {
    display: grid;
    gap: 60px 48px;
    grid-template-columns: 472px 1fr;
  }
}

@media print, screen and (min-width: 768px) and (max-width: 1199px) {
  .pickupSect__list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
}

.is-tb .pickupSect__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

@media only screen and (max-width: 768px) {
  .pickupSect__list .pickupCard:not(:first-child) {
    margin-top: 60px;
  }
}

@media print, screen and (min-width: 769px) {
  .pickupSect__list .pickupCard--col {
    grid-column: auto / span 2;
  }
}

.pickupSect__list + .caption {
  margin-top: 60px;
}

.trainSect__head {
  margin: 0 auto;
}

@media print, screen and (min-width: 769px) {
  .trainSect__head {
    max-width: 780px;
  }
}

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

.is-tb .trainSect__head {
  width: 100%;
}

@media print, screen and (min-width: 769px) {
  .trainSect__head {
    text-align: center;
  }
}

@media only screen and (max-width: 768px) {
  .trainSect__head {
    padding: 0 32px;
  }
}

.trainSect__head .enTtl + .photo {
  margin-top: 60px;
}

.trainSect__cont .generalSlider .swiper-wrapper {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.trainSect__cont .generalSlider .swiper-slide {
  -webkit-transition: -webkit-transform 600ms cubic-bezier(0.45, 0, 0.55, 1);
  transition: -webkit-transform 600ms cubic-bezier(0.45, 0, 0.55, 1);
  transition: transform 600ms cubic-bezier(0.45, 0, 0.55, 1);
  transition: transform 600ms cubic-bezier(0.45, 0, 0.55, 1), -webkit-transform 600ms cubic-bezier(0.45, 0, 0.55, 1);
}

@media print, screen and (min-width: 769px) {
  .trainSect__cont .generalSlider .swiper-slide {
    -webkit-transform: scale(0.8);
            transform: scale(0.8);
    width: 470px;
  }
}

@media only screen and (max-width: 768px) {
  .trainSect__cont .generalSlider .swiper-slide {
    -webkit-transform: scale(0.94366);
            transform: scale(0.94366);
    width: 284px;
  }
}

.trainSect__cont .generalSlider .swiper-slide-active {
  -webkit-transform: scale(1);
          transform: scale(1);
  z-index: 10;
}

@media print, screen and (min-width: 769px) {
  .trainSect__cont .generalSlider__bottom {
    margin-top: 32px;
  }
}

@media print, screen and (min-width: 769px) {
  .trainSect__head + .trainSect__cont {
    margin-top: 140px;
  }
}

@media only screen and (max-width: 768px) {
  .trainSect__head + .trainSect__cont {
    margin-top: 60px;
  }
}

@media print, screen and (min-width: 769px) {
  .access-bus {
    padding: 140px 0 180px;
  }
}

@media only screen and (max-width: 768px) {
  .access-bus {
    padding: 80px 0;
  }
}

@media print, screen and (min-width: 769px) {
  .access-pickup {
    padding: 140px 0 160px;
  }
}

@media only screen and (max-width: 768px) {
  .access-pickup {
    padding: 80px 0 90px;
  }
}

@media print, screen and (min-width: 769px) {
  .access-car {
    padding: 140px 0 200px;
  }
}

@media only screen and (max-width: 768px) {
  .access-car {
    padding: 80px 0 140px;
  }
}

.access-train {
  padding: 140px 0;
}
