@charset "UTF-8";
/*
 * Sass    : Dart sass
 * 命名規則 : BEM ベース
 *   [接頭辞]
 *   .-****  : Variant
 *   ._****  : Helpers
 *   .c-**** : 汎用コンポーネント
 *   .l-**** : レイアウト
 *   .f-**** : フォーム系コンポーネント
 */
@import url("https://use.fontawesome.com/releases/v5.15.1/css/all.css");
/**************************************************/
/* helpers */
/**************************************************/
._disp-ib {
  display: inline-block !important;
}

@media (max-width: 857px) {
  ._view-cw-high {
    display: none !important;
  }
}
@media (min-width: 858px) {
  ._view-cw-low {
    display: none !important;
  }
}
@media (max-width: 1279px) {
  ._view-xl-high {
    display: none !important;
  }
}
@media (min-width: 1280px) {
  ._view-xl-low {
    display: none !important;
  }
}
@media (max-width: 1023px) {
  ._view-lg-high {
    display: none !important;
  }
}
@media (min-width: 1024px) {
  ._view-lg-low {
    display: none !important;
  }
}
@media (max-width: 639px) {
  ._view-md-high {
    display: none !important;
  }
}
@media (min-width: 640px) {
  ._view-md-low {
    display: none !important;
  }
}
@media (max-width: 479px) {
  ._view-sm-high {
    display: none !important;
  }
}
@media (min-width: 480px) {
  ._view-sm-low {
    display: none !important;
  }
}
._clearfix {
  zoom: 1;
}
._clearfix:after {
  content: "";
  display: block;
  clear: both;
  overflow: auto;
}

._center {
  text-align: center !important;
}

._left {
  text-align: left !important;
}

._right {
  text-align: right !important;
}

._float-l {
  float: left !important;
}

._float-r {
  float: right !important;
}

._clear {
  clear: both !important;
}

._hidden {
  display: none !important;
}

._disp-ib {
  display: inline-block !important;
}

._margin0 {
  margin: 0 !important;
}

._padding0 {
  padding: 0 !important;
}

._border0 {
  border: none !important;
}

._fixed {
  position: fixed !important;
}

._absolute {
  position: absolute !important;
}

._static {
  position: static !important;
}

._xsmall {
  font-size: 75% !important;
}

._small {
  font-size: 88% !important;
}

._large {
  font-size: 113% !important;
}

._xlarge {
  font-size: 133% !important;
}

._nowrap {
  white-space: nowrap !important;
}

._nobg {
  background: none !important;
}

._full {
  width: 100% !important;
}

/**************************************************/
/* base */
/**************************************************/
:root {
  font-size: min(16px, 1.9047619048vw);
}
@media (max-width: 639px) {
  :root {
    font-size: 4.2666666667vw;
  }
}

html {
  -webkit-font-smoothing: antialiased;
}

body {
  min-width: 320px;
  max-width: 840px;
  margin: auto;
  padding: 0;
  background-color: #fff;
  color: #231815;
  font-family: "Noto Sans JP", "Noto Sans CJK JP", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "ヒラギノ角ゴ Pro", "Hiragino Sans", "游ゴシック体", "YuGothic", "游ゴシック", "Yu Gothic", sans-serif;
  font-size: 1rem;
  line-height: 1.5;
  font-feature-settings: "palt";
}

input,
textarea {
  font-size: 16px;
}

input,
textarea,
select,
button {
  font-family: "Noto Sans JP", "Noto Sans CJK JP", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "ヒラギノ角ゴ Pro", "Hiragino Sans", "游ゴシック体", "YuGothic", "游ゴシック", "Yu Gothic", sans-serif;
}

button,
input[type=button],
input[type=submit] {
  transition: opacity 0.15s ease-out;
}
button:hover,
input[type=button]:hover,
input[type=submit]:hover {
  opacity: 0.7;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

a {
  color: #0068b7;
  text-decoration: underline;
  transition: opacity 0.15s ease-out;
}
a:hover {
  opacity: 0.7;
}
a:hover {
  text-decoration: none;
}

em {
  font-style: normal;
}

a.-telink,
a.js-telink {
  cursor: default;
  opacity: 1 !important;
}

body._ios a:hover {
  opacity: 1;
}

/**************************************************/
/* pages */
/**************************************************/
.l-footer {
  position: relative;
  z-index: 5;
}
.l-footer__text {
  display: block;
  margin: 0;
  padding: 1.875rem 1.875rem;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.5;
  text-align: center;
}
.l-footer__copyright {
  display: block;
  margin: 0;
  padding: 1rem 1.875rem;
  background: #00a7e3;
  color: #fff;
  font-size: 1rem;
  line-height: 1.5;
  text-align: center;
}
@media (max-width: 639px) {
  .l-footer__text {
    padding: 1.875rem 1rem;
    font-size: 0.75rem;
  }
  .l-footer__copyright {
    padding: 1rem 1rem;
    font-size: 0.75rem;
  }
}

.l-footer-banner {
  padding: 2.25rem;
  background: #bae3f9;
}
.l-footer-banner__bnr + .l-footer-banner__bnr {
  margin-top: 1.5rem;
}
.l-footer-banner__bnr-link {
  display: block;
  text-align: center;
}
.l-footer-banner__bnr-link img {
  display: block;
  width: 100%;
}
@media (max-width: 639px) {
  .l-footer-banner {
    padding: 2rem 1rem;
  }
  .l-footer-banner__bnr + .l-footer-banner__bnr {
    margin-top: 1rem;
  }
}

.l-page-container {
  position: relative;
}

/**************************************************/
/* pages */
/**************************************************/
/**************************************************/
/* Home */
/**************************************************/
.p-mv {
  position: relative;
  padding: 0 1.875rem 1.875rem;
  background: #0068b7;
}
.p-mv__logo {
  position: absolute;
  top: 1.5rem;
  right: 3.5rem;
  width: 17.5625rem;
  z-index: 2;
}
.p-mv__logo img {
  display: block;
  width: 100%;
}
.p-mv__main {
  margin: 0 -1.875rem;
  line-height: 0;
}
.p-mv__main img {
  display: block;
  width: 100%;
}
.p-mv__about {
  padding: 1.25rem 2.5rem;
  border-radius: 1.5625rem;
  background: #fff;
}
.p-mv__about-ttl {
  margin: 0 auto;
  color: #0068b7;
  font-size: 2.375rem;
  font-weight: 900;
  line-height: 1.25;
  text-align: center;
}
.p-mv__about-ttl em {
  font-size: 3.4375rem;
}
.p-mv__about-marker {
  display: inline-block;
  padding: 0 0.1em;
  background: linear-gradient(to bottom, transparent 70%, #fff100 70%);
}
.p-mv__about-text {
  margin: 0.5rem 0 0;
  font-size: 1.4375rem;
  font-weight: 500;
  line-height: 1.5;
}
.p-mv__about-note {
  margin: 0;
  padding-left: 1em;
  text-indent: -1em;
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 1.5;
}
.p-mv__point {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin: 1.875rem 0 0;
}
.p-mv__point-item {
  display: block;
  width: calc((100% - 1rem) / 2);
}
.p-mv__point-item img {
  display: block;
  width: 100%;
}
@media (max-width: 639px) {
  .p-mv {
    padding: 0 1.5rem 1.5rem;
  }
  .p-mv__logo {
    top: 0.5rem;
    right: 1.5rem;
    width: 8.25rem;
  }
  .p-mv__main {
    margin: 0 -1.5rem;
  }
  .p-mv__about {
    padding: 1.25rem 1.5rem;
    border-radius: 1rem;
  }
  .p-mv__about-ttl {
    font-size: 1.625rem;
  }
  .p-mv__about-ttl em {
    font-size: 2.25rem;
  }
  .p-mv__about-text {
    font-size: 1rem;
  }
  .p-mv__about-note {
    font-size: 0.875rem;
  }
  .p-mv__point {
    margin-top: 1.5rem;
  }
  .p-mv__point-item {
    width: 100%;
  }
}

.p-purchase {
  padding: 3rem 1.875rem;
}
.p-purchase__content {
  padding: 1.875rem;
  border-radius: 1.25rem;
  background: #0068b7;
}
.p-purchase__ttl {
  margin: 0;
  padding: 1rem 1.25rem;
  border-radius: 1.25rem 1.25rem 0 0;
  background: #00a7e3;
  color: #fff;
  font-size: 2.125rem;
  font-weight: 700;
  line-height: 1.25;
  text-align: center;
}
.p-purchase__block {
  margin-top: 1.5rem;
}
.p-purchase__block-head {
  position: relative;
  padding: 1rem 1.25rem;
  border-radius: 1.25rem 1.25rem 0 0;
  background: #00a7e3;
  color: #fff;
  font-size: 2.125rem;
  font-weight: 700;
  line-height: 1.25;
  text-align: center;
  cursor: pointer;
  transition: opacity 0.3s ease;
}
.p-purchase__block-head:hover {
  opacity: 0.7;
}
.p-purchase__block-head::before {
  display: block;
  position: absolute;
  top: calc(50% - 1.0625rem);
  left: 2.5rem;
  border-style: solid;
  border-width: 1.0625rem 0 1.0625rem 1.375rem;
  border-color: transparent transparent transparent #fff;
  content: "";
}
.p-purchase__block-head.-small {
  font-size: 2rem;
  letter-spacing: -0.04em;
}
.p-purchase__block-body {
  display: none;
  box-sizing: border-box;
  padding: 1.875rem;
  border-radius: 0 0 1.25rem 1.25rem;
  background: #fff;
}
.p-purchase__flow {
  display: block;
  box-sizing: border-box;
  position: relative;
  max-width: 38.75rem;
  margin: 1.875rem auto 0;
  padding: 1.25rem;
  border-radius: 6.25rem;
  border: 0.5rem solid #fff;
  background: #00499f;
  color: #fff;
  font-size: 2.3125rem;
  font-weight: 700;
  line-height: 1.25;
  text-align: center;
  text-decoration: none;
  box-shadow: 0.3125rem 0.3125rem 0 #c9caca;
}
.p-purchase__flow::before {
  display: block;
  position: absolute;
  top: calc(50% - 1.0625rem);
  right: 1.25rem;
  border-style: solid;
  border-width: 1.0625rem 0 1.0625rem 1.375rem;
  border-color: transparent transparent transparent #fff;
  content: "";
}
@media (max-width: 639px) {
  .p-purchase {
    padding: 2rem 1rem;
  }
  .p-purchase__content {
    padding: 1rem;
    border-radius: 1rem;
  }
  .p-purchase__ttl {
    padding: 1rem 1rem;
    border-radius: 1rem 1rem 0 0;
    font-size: 1rem;
  }
  .p-purchase__block {
    margin-top: 1rem;
  }
  .p-purchase__block-head {
    padding: 1rem 0.5rem 1rem 1.5rem;
    border-radius: 1rem 1rem 0 0;
    font-size: 1rem;
  }
  .p-purchase__block-head::before {
    top: calc(50% - 0.5rem);
    left: 1rem;
    border-width: 0.5rem 0 0.5rem 0.6875rem;
  }
  .p-purchase__block-head.-small {
    font-size: 0.9375rem;
  }
  .p-purchase__block-body {
    padding: 1rem 0.75rem;
    border-radius: 0 0 1rem 1rem;
  }
  .p-purchase__flow {
    padding: 1.25rem 1.5rem 1.25rem 1rem;
    border-width: 0.25rem;
    font-size: 1.25rem;
    box-shadow: 0.25rem 0.25rem 0 #c9caca;
  }
  .p-purchase__flow::before {
    top: calc(50% - 0.6875rem);
    right: 1rem;
    border-width: 0.6875rem 0 0.6875rem 0.875rem;
  }
}

.p-purchase-box {
  margin: 0;
}
.p-purchase-box + .p-purchase-box {
  margin-top: 1.5rem;
}
.p-purchase-box__head {
  display: block;
  box-sizing: border-box;
  position: relative;
  margin: 0;
  padding: 1rem 1.25rem;
  border-radius: 1.25rem 1.25rem 0 0;
  background: #00a7e3;
  color: #fff;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.25;
  text-align: center;
  cursor: pointer;
  transition: opacity 0.3s ease;
}
.p-purchase-box__head:hover {
  opacity: 0.7;
}
.p-purchase-box__head::before {
  display: block;
  position: absolute;
  top: calc(50% - 1.0625rem);
  left: 2rem;
  border-style: solid;
  border-width: 1.0625rem 0 1.0625rem 1.375rem;
  border-color: transparent transparent transparent #fff;
  content: "";
}
.p-purchase-box__head.-small {
  font-size: 1.875rem;
  letter-spacing: -0.04em;
}
.p-purchase-box__body {
  display: none;
  box-sizing: border-box;
  margin: 0;
  padding: 1.25rem 1.875rem;
  border-radius: 0 0 1.25rem 1.25rem;
  background: #b5e3f8;
}
.p-purchase-box__list {
  margin: 0;
  padding-left: 1.5em;
  font-size: 1.5625rem;
  font-weight: 700;
  line-height: 1.5;
}
.p-purchase-box__small {
  display: inline-block;
  font-size: 70%;
}
.p-purchase-box__btnset {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.875rem;
  max-width: 30.625rem;
  margin: 0.75rem auto 0;
}
.p-purchase-box__btn {
  display: block;
  box-sizing: border-box;
  padding: 0.625rem;
  border-radius: 1rem;
  border: 3px solid #fff;
  background: linear-gradient(180deg, #f39800 50%, #d28300 100%);
  color: #fff;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.25;
  text-align: center;
  text-decoration: none;
}
.p-purchase-box__btn-label {
  display: inline-block;
  position: relative;
  padding-left: 1.5rem;
}
.p-purchase-box__btn-label::before {
  display: block;
  position: absolute;
  top: calc(50% - 0.625rem);
  left: 0;
  border-style: solid;
  border-width: 0.6875rem 0 0.6875rem 0.875rem;
  border-color: transparent transparent transparent #fff;
  content: "";
}
@media (max-width: 639px) {
  .p-purchase-box + .p-purchase-box {
    margin-top: 1rem;
  }
  .p-purchase-box__head {
    padding: 1rem 0.5rem 1rem 1.5rem;
    border-radius: 1rem 1rem 0 0;
    font-size: 0.9375rem;
  }
  .p-purchase-box__head::before {
    top: calc(50% - 0.4375rem);
    left: 0.75rem;
    border-width: 0.5rem 0 0.5rem 0.6875rem;
  }
  .p-purchase-box__head.-small {
    font-size: 0.875rem;
  }
  .p-purchase-box__body {
    padding: 1rem 0.75rem;
    border-radius: 0 0 1rem 1rem;
  }
  .p-purchase-box__list {
    font-size: 0.9375rem;
  }
  .p-purchase-box__btnset {
    gap: 0.75rem;
  }
  .p-purchase-box__btn {
    padding: 0.625rem;
    border-radius: 0.75rem;
    border-width: 2px;
    font-size: 0.875rem;
  }
  .p-purchase-box__btn-label {
    padding-left: 1.125rem;
  }
  .p-purchase-box__btn-label::before {
    top: calc(50% - 0.375rem);
    border-width: 0.375rem 0 0.375rem 0.5625rem;
  }
}

.p-purchase-train {
  margin: 0;
  padding: 0;
  list-style: none;
}
.p-purchase-train > li {
  display: block;
}
.p-purchase-train > li + li {
  margin-top: 1.5rem;
}
.p-purchase-train__link {
  display: block;
  position: relative;
  margin: 0;
  padding: 1rem 1.25rem;
  border-radius: 1.25rem 1.25rem 0 0;
  background: #00a7e3;
  color: #fff;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.25;
  text-align: center;
  text-decoration: none;
}
.p-purchase-train__link::before {
  display: block;
  position: absolute;
  top: calc(50% - 1.0625rem);
  left: 2rem;
  border-style: solid;
  border-width: 1.0625rem 0 1.0625rem 1.375rem;
  border-color: transparent transparent transparent #fff;
  content: "";
}
@media (max-width: 639px) {
  .p-purchase-train > li + li {
    margin-top: 0.75rem;
  }
  .p-purchase-train__link {
    padding: 1rem 0.5rem 1rem 1.5rem;
    border-radius: 1rem 1rem 0 0;
    font-size: 0.9375rem;
  }
  .p-purchase-train__link::before {
    top: calc(50% - 0.5rem);
    left: 0.75rem;
    border-width: 0.5rem 0 0.5rem 0.6875rem;
  }
}

.p-purchase-about {
  margin: 1.875rem 0 0;
}
.p-purchase-about__ttl {
  margin: 0 auto;
  color: #0068b7;
  font-size: 2.375rem;
  font-weight: 900;
  line-height: 1.25;
  text-align: center;
}
.p-purchase-about__ttl em {
  font-size: 3.4375rem;
}
.p-purchase-about__marker {
  display: inline-block;
  padding: 0 0.1em;
  background: linear-gradient(to bottom, transparent 70%, #fff100 70%);
}
.p-purchase-about__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin: 1.5rem 0 0;
}
.p-purchase-about__link {
  display: flex;
  align-items: center;
  flex-direction: column;
  justify-content: center;
  position: relative;
  padding: 1rem 0.25rem;
  border: 1px solid #0068b7;
  color: #0068b7;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.25;
  text-align: center;
  text-decoration: none;
}
@media (max-width: 639px) {
  .p-purchase-about__ttl {
    font-size: 1.625rem;
  }
  .p-purchase-about__ttl em {
    font-size: 2.25rem;
  }
  .p-purchase-about__list {
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
  }
  .p-purchase-about__link {
    font-size: 1rem;
  }
}

/**************************************************/
/* きっぷ購入の流れ */
/**************************************************/
.p-pagettl {
  position: relative;
  background: #0068b7;
}
.p-pagettl__logo {
  position: absolute;
  top: 1.5rem;
  right: 3.5rem;
  width: 17.5625rem;
  z-index: 2;
}
.p-pagettl__logo img {
  display: block;
  width: 100%;
}
.p-pagettl__main {
  margin: 0;
  line-height: 0;
}
.p-pagettl__main img {
  display: block;
  width: 100%;
}
@media (max-width: 639px) {
  .p-pagettl__logo {
    top: 0.5rem;
    right: 1.5rem;
    width: 8.25rem;
  }
}

.p-flow {
  padding: 2rem 5rem 3rem;
}
.p-flow__inner > *:first-child {
  margin-top: 0 !important;
}
.p-flow__head {
  margin: 2rem 0 0;
  padding: 1rem 1.25rem;
  border-radius: 0.9375rem;
  background: #e6e6e6;
}
.p-flow__head-ttl {
  margin: 0;
  padding-left: 1em;
  text-indent: -1em;
  color: #0068b7;
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1.5;
}
.p-flow__head-ttl strong {
  color: #e60012;
  font-weight: inherit;
}
.p-flow__head-ex {
  margin: 0.3125rem 0 0;
  padding-left: 1.75rem;
  font-size: 0.9375rem;
  font-weight: 500;
  line-height: 1.5;
}
.p-flow__img {
  width: 80%;
  max-width: 20rem;
  margin: 1rem auto 0;
  text-align: center;
}
.p-flow__img img {
  display: block;
  width: 100%;
}
@media (max-width: 639px) {
  .p-flow {
    padding: 2rem 1rem;
  }
  .p-flow__head {
    margin: 2rem 0 0;
    padding: 1rem;
  }
  .p-flow__head-ttl {
    font-size: 1rem;
  }
  .p-flow__head-ex {
    padding-left: 0.875rem;
    font-size: 0.75rem;
  }
}

.p-flow-receive {
  margin: 2rem 0 0;
  padding: 0 1rem;
}
.p-flow-receive__ttl {
  margin: 0 -1rem;
  padding: 0.75rem 1rem;
  border-radius: 0.9375rem;
  background: #0068b7;
  color: #fff;
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
}
.p-flow-receive__explain {
  margin: 1.25rem 0 0;
  padding-left: 1em;
  text-indent: -1em;
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.5;
}
.p-flow-receive__dl {
  margin: 1rem 0 0;
}
.p-flow-receive__dl > *:first-child {
  margin-top: 0 !important;
}
.p-flow-receive__dl > dt {
  margin: 1rem 0 0;
  color: #0068b7;
  font-size: 1.625rem;
  font-weight: 700;
}
.p-flow-receive__dl > dd {
  margin-left: 0.5em;
  font-size: 1.3125rem;
  font-weight: 500;
}
.p-flow-receive__dl > dd sub {
  bottom: 0;
}
.p-flow-receive__notes {
  list-style: none;
  margin: 1.5rem 0 0;
  padding-left: 0;
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.5;
}
.p-flow-receive__notes > li {
  display: flex;
  flex-wrap: nowrap;
}
.p-flow-receive__notes-mark {
  flex: 0 0 auto;
  min-width: 2em;
  margin-right: 0.5em;
}
@media (max-width: 639px) {
  .p-flow-receive__ttl {
    font-size: 1rem;
  }
  .p-flow-receive__explain {
    font-size: 0.875rem;
  }
  .p-flow-receive__dl > dt {
    font-size: 1rem;
  }
  .p-flow-receive__dl > dd {
    margin-left: 0;
    font-size: 0.875rem;
  }
  .p-flow-receive__notes {
    font-size: 0.875rem;
  }
}