/*---------------------------------------------------------
                        共通
---------------------------------------------------------*/
/*-----------共通-----------*/
/*カラーパレット*/
:root {
  --color-font: #0074c4;
  --color-black: #0c0b12;
  --color-point3:#3f84df;
  --font-size-xsmall: 0.63rem;
  --font-size-small:  0.85rem;
  --font-size-normal:  1rem;
  --font-size-large: 1.38rem;
  --font-size-xlarge: 1.63rem;
  --font-size-xxlarge: 2rem;
}

/* 箇条書き */
p.items, ul.items li, span.items{
  position: relative;
  padding-left: 1em;
  box-sizing: border-box;
  text-align: left;
}
  p.nopb, ul.nopb li, span.nopb{
    padding-bottom: 0!important;
  }
  p.nopt, ul.nopt li, span.nopt{
    padding-top: 0!important;
  }
  p.items::before,ul.items li::before, span.items::before{
    margin-left: -1em;
  }
  /* 米印 */
  p.items.asterisk::before,ul.items.asterisk > li::before, span.items.asterisk::before{
    position: absolute;
    content: "※";
    display: inline-block;
    margin-left: -1em;
  }
  span.items.asterisk::before{
    top: -3px;
    left: 1.1em;
  }
  /* 点・四角 */
  p.items.dots, ul.items.dots > li,p.items.square, ul.items.square > li{
    position: relative;
    box-sizing: border-box;
  }
  p.items.dots::before,ul.items.dots > li::before{
    position: absolute;
    content: "・";
    display: block;
  }
  p.items.square::before,ul.items.square > li::before{
    position: absolute;
    content: "◼︎";
    display: block;
    font-size: 70%;
    line-height: 2;
  }
  /* 数字 */
  ol.items.numbering, ol.items.numbering > li{
    position: relative;
    box-sizing: border-box;
    counter-increment: li;
    padding-left: 1.2em;
  }
  p.items.numbering::before,ol.items.numbering > li::before{
    position: absolute;
    content: counter(li) ".";
    display: block;
    margin-left: -1.2em;
  }

  /* 小さめ文字ver */
  p.items.small, ul.items.small > li, span.items.small{
    padding-bottom: 0.25rem;
    font-size: var(--font-size-small);
    line-height: 1.3;
  }

.nowrap{
  display: block;
  border: none;
  text-indent: 100%;
  white-space: nowrap;
  overflow: hidden;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
}
.nospace{ letter-spacing: -2px; }
.underline{ text-decoration: underline; }
small, .small, .small *{
  font-size: 0.8em;
}
.red, .red::before{ color: #ed7a80; }
.blue{ color: #007fc9 }
.font-normal, .font-normal *{ font-weight: normal;}


/*-----------レイアウト-----------*/
html{
  background: linear-gradient(90deg,#c5e8ef 0%,#529dd3 60%);
}
main, section:not(#contact){
  width: 80%;
  max-width: 850px;
  margin: 10em auto;
}

/*-----------ヘッダー-----------*/
header{
  position: relative;
  padding-bottom: 5em;
}
header h1{
  width: 100%;
  height: 0;
  padding-bottom: 74.8%;
  background: url("../img/header.jpg");
}
header h2{
  position: absolute;
  width: 90vw;
  height: 11.84vw;
  margin: -2vw 5vw 0;
  background: url("../img/header_title.png");
  z-index: 100;
}
header div{
  width: 60vw;
  height: 22.3vw;
  margin: 5.5vw auto 0;
  background: url("../img/header_period.png");
}

/*-----------メイン-----------*/
main{
  margin-top: -2em;
  position: relative;
}
main div{
  width: 100%;
  height: 0;
  padding-bottom: 70%;
  margin: 6vw auto 0;
  background: url("../img/message.png");
}
  main div::before,main div::after{
    position: absolute;
    content: "";
    display: block;
    background-repeat: no-repeat;
  }
    main div::before{
      width: 11.7vw;
      height: 28vw;
      top: -8vw;
      right: -10vw;
      background-image: url("../img/message_balloonA.png");
      background-size: contain;
    }
    main div::after{
      width: 6vw;
      height: 22.2vw;
      bottom: -7vw;
      left: -4vw;
      background-image: url("../img/message_balloonB.png");
      background-size: contain;
    }



/*-----------共通点-----------*/
section > h2:not(#app h2):not(#contact h2){
  display: block;
  border: none;
  text-indent: 100%;
  white-space: nowrap;
  overflow: hidden;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  width: 39.45vw;
  height: 6vw;
  margin: 0 auto 2em;
}
section#term > h2{ background-image: url("../img/term_h2.png"); }
section#concert > h2{ background-image: url("../img/concert_h2.png"); }
section#tour > h2{ background-image: url("../img/tour_h2.png"); }
section#fee > h2{ background-image: url("../img/fee_h2.png"); }
section#sche > h2{ background-image: url("../img/sche_h2.png"); }
section#detail > h2{ background-image: url("../img/detail_h2.png"); }
section#other > h2{ background-image: url("../img/other_h2.png"); }


/*-----------申込について-----------*/
#term h3{
  text-align: center;
}
#term h3 b{
  display: inline-block;
  background-color: #fff;
  margin: 0 0.25em 1em;
  padding: 0 0.5em;
  line-height: 2;
  border-radius: 2px;
}
#term table, #concert table{
  margin: 0 auto;
  border-collapse: inherit;
  border-spacing: 0.5em;
}
  #term th,#concert th{
    min-width: 4em;
    font-size: var(--font-size-small);
    vertical-align: middle;
  }
  #term th span,#concert th span{
    display: block;
    padding: 0.5em;
    background-color: #fff;
    border-radius: 2px;
    text-align: center
  }
  #term td,#concert td{
    font-size: var(--font-size-large);
    line-height: 1.25;
    padding: 0 0.5em;
  }
  #term td{ vertical-align: middle; }

/*-----------公演情報-----------*/
#concert div{
  width: 64.7%;
  margin: 0 auto;
}
#concert > h3{
  padding: 2em 0 1em;
  font-size: var(--font-size-large);
  text-align: center;
}
#concert > p{
  line-height: 2;
  text-align: center;
}
#concert table{
  margin: 2em auto;
  border-spacing: 1em;
}

#concert th{
  text-align: justify;
  text-justify: inter-ideograph;
  padding: 0 0.5em;
  line-height: 2.5;
  vertical-align: text-top;
}

#concert table tr:last-child td{
  vertical-align: middle;
}
  #concert td p{
    font-size: var(--font-size-normal);
  }

/*-----------ツアー内容・特典-----------*/
#tour > div{
  width: 60vw;
  height: 48vw;
  margin: 0 auto;
  background: url("../img/tour_img.png") no-repeat;
  background-size: contain;
}

/*-----------代金-----------*/
#fee ul{
  margin: 0 auto;
  width: fit-content;
}
#fee > ul > li{
  padding-bottom: 2em;
}
  #fee > ul > li h3{
    padding-left: 1.25em;
    background: url("../img/fee_star.png") no-repeat;
    background-size: 0.85em;
    background-position: left;
    margin-bottom: 0.5em;
  }
    #fee > ul > li h3 span{
      background-color: #fff;
      border-radius: 2px;
      font-size: var(--font-size-small);
      padding: 0.2em 0.5em;
    }
    #fee > ul > li p{
      line-height: 1.75;
      padding-bottom: 0.75em;
      font-weight: normal;
    }
  
    .seat{
      display: block;
      width: 60vw;
      margin: 0 auto;
      background-color: #fff;
      border: 3px dotted var(--color-font);
      padding: 2em;
    }
      .seat h2{
        width: 60%;
        min-width: 8em;
        margin: 0 auto;
        text-align: center;
        border-bottom: 1px solid var(--color-font);
      }
        .seat h2 + p{
          text-align: center;
          font-size: var(--font-size-xsmall);
          line-height: 2;
          padding-bottom: 1em;
        }
        .seat ul,.seat p{
          padding-bottom: 0.75em;
        }
          .seat li{
            padding-bottom: 0.25em;
          }
        .seat .items li{
          font-weight: normal;
        }


/*-----------行程-----------*/
#sche h3{
  text-align: center;
  line-height: 4;
}
  #sche table{
    margin: 0 auto 1.5em;
    border-collapse: inherit;
    border-spacing: 1em;
  }
  #sche th{
    width: 4.5em;
    height: 4.5em;
    background-repeat: no-repeat;
  }
  #sche tr:nth-child(1) th{ background-image: url("../img/sche_0117.png"); }
  #sche tr:nth-child(2) th{ background-image: url("../img/sche_0118.png"); }
  #sche td{
    padding-left: 0.5em;
    vertical-align: middle;
  }
  #sche h4{
    font-size: 1.16em;
    text-align: center;
  }
  #sche p{
    text-align: center;
  }

/*-----------詳細-----------*/
#detail *:not(li){
  width: fit-content;
  margin: 0 auto;
}
#detail h3, #other h3,#air h3{
  position: relative;
  display: block;
  width: fit-content;
  margin: 5em auto 0.8em;
}
  #detail h3::before, #detail h3::after, #other h3::before, #other h3::after,#air h3::before,#air h3::after{
    position: absolute;
    content: "";
    display: block;
    width: 0.55em;
    height: 0.55em;
    background-color: #fff;
    border-radius: 50%;
    top: 0.45em;
  }
  #detail h3::before, #other h3::before,#air h3::before{ left: -1em; }
  #detail h3::after, #other h3::after,#air h3::after{ right: -1em; }

  #detail td + td{
    padding-left: 1em;
  }
  #detail ol{
    width: 85%;
    text-indent: -1.1em;
  }
  #detail h3 + p{
    text-align: center;
  }

/*-----------その他ご注意-----------*/
#other .blue{
  text-align: center;
  padding: 2em 0 1em;
}
#other > ul li{
  padding-top: 0.5em;
}

#other h4{
  padding-top: 1em;
}
  #other h4 + ul{
    padding-bottom: 1em;
  }

/* 留意 */
table.point {
  margin-top: 1.5em;
  border-spacing: 0.5em 1.5em;
  border-collapse: inherit;
}
.point th{
  width: 1.5em;
  height: 100%;
  background-color: #fff;
  vertical-align: middle;
}
.point tr:nth-child(1) th p{ background-image: url("../img/other_point1.png"); }
.point tr:nth-child(2) th p{ background-image: url("../img/other_point2.png"); }
.point tr:nth-child(3) th p{ background-image: url("../img/other_point3.png"); }
.point tr:nth-child(4) th p{ background-image: url("../img/other_point4.png"); }
.point tr:nth-child(5) th p{ background-image: url("../img/other_point5.png"); }
.point td{
  padding-left: 0.5em;
  line-height: 1.75;
  font-weight: normal;
  vertical-align: middle;
}

/* 変更・取消手数料のご案内 */
.cancel h4{
  position: relative;
  text-indent: 0.75em;
  line-height: 2;
}
.cancel h4::before{
  position: absolute;
  display: block;
  content: "";
  width: 0.35em;
  height: 0.35em;
  background-color: var(--color-font);
  top: 1.75em;
}
.cancel table th{
  padding-right: 1em;
}
.cancel table td{
  vertical-align: middle;
}

/*-----------お申し込みはこちら-----------*/
#app{
  margin: 4em auto!important;
}
#app *{
  text-align: center;
  margin: 0 auto;
  font-weight: normal;
}
#app a{
  width: 8rem;
  height: 8rem;
  margin: 2em auto;
  transform: rotate(45deg);
  background-image: url("../img/app.png");
  box-shadow: 0.5em 0.5em #006cb69c;
}
#app a:hover{
  margin-top: 2.5em;
  margin-bottom: 1.5em;
  box-shadow: none;
}
#app p{
  padding-top: 1em;
}
  #app p span{
    padding: 0 0.25em;
    font-size: var(--font-size-large);
    font-weight: bold;
  }


/*-----------航空券-----------*/
#air{
  padding-top: 4em;
  background: url("../img/line.png") no-repeat top;
  background-size: 70%;
}
  #air .box{
    width: fit-content;
    margin: 0 auto;
  }
  #air a{
    position: relative;
    display: block;
    width: fit-content;
    padding: 1em;
    margin-top: 2em;
    background-color: #fff;
  }
    #air a::after{
      position: absolute;
      content: "";
      display: block;
      width: 100%;
      height: 100%;
      background-color: rgba(143, 200 , 229, 30);
      bottom: -0.75em;
      right: -0.75em;
      mix-blend-mode:multiply;
      z-index: -100;
    }
    #air a:hover{
      margin: 2.75em -0.75em -0.75em 0.75em;
    }
    #air a:hover::after{
      display: none;
    }

/*-----------お問い合わせ-----------*/
#contact{
  width: 100%;
  padding-bottom: 3vw;
  background: #006cb6;
  text-align: center;
}
  #contact h2{
    padding-top: 1.25vw;
    line-height: 3;
    color: #fff!important;
    text-align: center;
  }
  .contact_white {
    width: 750px;
    max-width: 86vw;
    padding: 2.3vw 3vw;
    margin: 0 auto;
    background: #fff;
  }
  .contact_white div{
    padding-top: 0.5em;
  }
  .contact_white *{
    color: #121212;
    font-weight: normal;
    text-align: center;
  }
  #contact h3{
    font-size: var(--font-size-normal);
    line-height: 2;
    padding-bottom: 0.2em;
  }
  #contact p:not(.small){
    line-height: 1.7;
  }
  #contact .upper{
    padding-top: 1vw;
    font-size: 1.1vw;
  }
  #contact address{
    padding: 0.5vw 0;
  }
  #contact address a{
    font-size: var(--font-size-large);
  }

  #contact h4{
    font-size: larger;
    padding-bottom: 0.25em;
  }
  #contact .small{
    width: fit-content;
    margin: 0 auto;
    text-align: left;
  }

/*-----------フッター-----------*/
.copyright{
  width: 100%;
  font-size: small;
  line-height: 1.86;
  text-align: center;
  color: var(--color-black);
  font-weight: normal;
}

/*---------------------------------------------------------
                        SP
---------------------------------------------------------*/
@media screen and (max-width: 750px){
  .pc-only{
    display: none;
  }
  body{
    overflow-x: hidden;
  }

  /*カラーパレット*/
:root {
  --font-size-h2: 1.5rem;
}
/*-----------フォント数の変更-----------*/
body{
  width: 100vw;
  text-align: justify;
  text-justify:inter-ideograph;
}
main, section:not(#contact){
  width: 94vw;
  max-width: 94%;
  margin: 15vw auto;
}
section#app{
  padding-bottom: 6vw;
}

/*-----------ヘッダー-----------*/

header h2{
  width: 94vw;
  height: 28vw;
  margin: -3vw 3vw 0;
  background-image: url("../img/header_title-sp.png");
}
header div{
  width: 80vw;
  height: 29.7vw;
  margin: 19vw auto 0;
}

/*-----------メイン-----------*/
main{
  width: 94vw;
  margin: 0 auto;
}
main div{
  width: 86vw;
  padding-bottom: 89vw;
  margin: 0 auto;
  background: url("../img/message-sp.png");
}
  main div::before{
    width: 17.5vw;
    height: 42vw;
    top: -14vw;
    right: 4vw;
  }
  main div::after{
    width: 9vw;
    height: 33.3vw;
    bottom: -1em;
    left: 0.5em;
  }


section > h2:not(#app h2):not(#contact h2){
  width: 70vw;
  height: 11.7vw;
}
/* 申込について */
#term table, #concert table{
  border-spacing: 0.25em 1em;
}
#term td,#concert td{
  padding: 0 0.35em;
}

/* 公演情報 */
#concert div{
  width: 90vw;
}
#concert > p{
text-align: left;
}

/* ツアー内容 */
#tour > div{
  width: 94vw;
  height: 110.85vw;
  background: url("../img/tour_img-sp.png") no-repeat;
  background-size: contain;
}

/* 代金 */
#fee > ul > li h3{
  background-position: 0 0.35em;
}
#fee > ul > li h3 span{
  display: block;
  width: fit-content;
  margin-top: 0.5em;
}
.seat{
  width: auto;
  padding: 2em 7vw;
}

/* 行程 */
#sche h3{
  line-height: 2;
}
#detail h3 + p{
  text-align: left;
}

/* その他御注意 */
#other .blue{
  color: #fff;
}
#other .nopt li{
  padding-bottom: 0.5em;
}
.cancel h4 + p{
  padding-bottom: 0.5em;
}

/* お申し込みはこちら */
#app h2{
  margin-top: 13vw;
}

/* 航空券 */
#air{
  padding-top: 6vw;
}

/*-----------お問合せ-----------*/
#contact h2{
  line-height: 4;
}
.contact_white{
  padding: 3vw 3vw 1vw;
  letter-spacing: -0.05em;
}
.contact_white > div{
  padding-bottom: 5vw;
}
  #contact h3{
    font-size: larger;
    line-height: 1.5;
    padding: 0.5em 0;
  }
  #contact .tel{
    display: block;
    font-size: larger;
    line-height: 2;
  }
   #contact address{
    letter-spacing: 0;
  }
  #contact p:not(.small){
    line-height: 1.5;
  }
  .contact_white p.small{
    padding-top: 1vw;
    text-align: justify; 
    text-justify:inter-ideograph;
    font-weight: normal;
    text-indent: -3vw;
    padding-left: 3vw;
  }
  #contact .upper{
    padding-top: 1vw;
    font-size: var(--font-size-small)
  }

  .copyright{
    font-size: 0.8rem;
    line-height: 2;
  }
}

/*---------------------------------------------------------
                        PC
---------------------------------------------------------*/
@media screen and (min-width: 750px){
.sp-only, .sp-only *{
  display: none!important;
  height: 0px!important;
  padding: 0px!important;
  margin: 0px!important;
}


section > div{
  max-width: 850px;
}
section > div#fee{
  width: fit-content;
  max-width: 94vw;
}

#sche > div{
  display: -webkit-flex; display: -moz-flex; display: -ms-flex; display: -o-flex; display: flex; 
  justify-content: space-between;
}
#sche > div > ul{
  width: 48%;
}
.day2{
  width: 850px;
}
#sche > li.sepa{
  width: 100%;
}
#sche .sepa h4 img{
  left: 47%;
}
.nosepa{
  width: 208%;
}
  .nosepa h4 img{
    left: 46%;
  }
#sche.genchi{
  margin-left: -400px;
}
.genchi .nosepa *,.genchi h4{
  display: block;
  opacity: 0;
}
.genchi .day1 ul{
  height: 1059px !important;
}

}