/*---------------------------------------------------------
                        共通
---------------------------------------------------------*/
/*-----------共通-----------*/
/*カラーパレット*/
:root {
  --color-font: #020202;
  --color-green: #00b869;
  --color-red: #e60013;
  --color-fc: #7cb342;
  --color-gene: #8d6e63;
  --font-size-xsmall: 0.63rem;
  --font-size-small:  0.85rem;
  --font-size-normal:  1rem;
  --font-size-large: 1.1rem;
  --font-size-xlarge: 1.3rem;
  --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{
    position: relative;
    box-sizing: border-box;
    counter-increment: li;
    padding-left: 1.2em;
    width: fit-content;
    margin: 0 auto;
    text-align: left !important;
    counter-reset: number 0;
  }
    ol.items.numbering > li::before{
      position: absolute;
      counter-increment: number 1;
      content: counter(number) ".";
      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; }

small, .small, .small *:not(li){ 
  display: inline-block;
  font-size: 0.8em!important; 
}
ul.small, ol.small{
  display: block!important;
}


/*-----------レイアウト-----------*/
html{
  background-color: #b5e3e3;
}
#sky{
  position: relative;
  padding-bottom: 6vw;
}
  #sky::before, #sky::after{
    position: absolute;
    display: block;
    content: "";
    bottom: -0.75vw;
    width: 10vw;
    height: 11vw;
    background-repeat: no-repeat;
    background-size: contain;
    z-index: -10;
  }
  #sky::before{
    left: 0;
    background-image: url(../img/bg_sogen_right.png);
  }
  #sky::after{
    right: 0;
    background-image: url(../img/bg_sogen_left.png);
  }
#sea{
  position: relative;
  margin-top: 10vw;
  padding-bottom: 5vw;
  background-color: #0277bd;
  background-image: url("../img/bg_umi2.png");
  background-position: bottom;
  background-repeat: repeat-x;
  background-size: 12vw;
}
  #sea::before{
    position: absolute;
    display: block;
    content: "";
    width: 100%;
    height: 10vw;
    top: -10vw;
    background-image: url(../img/bg_umi.png);
    background-repeat: repeat-x;
    background-size: 10vw;
  }
#underground{
  display: block;
  margin-bottom: 10vw;
  border: 0 solid #303030;
  background-color: #fff;
  border-image-source: url(../img/bg_hashira.png);
  border-image-slice: 230;
  border-image-width: 100px;
  box-sizing: border-box;
  background-color: #303030;
}
  #underground *,#underground *::before{
    color: #fff;
  }

/*-----------ヘッダー-----------*/
header h1 {
  display: -webkit-flex; display: -moz-flex; display: -ms-flex; display: -o-flex; display: flex;
  width: 100vw;
  height: 58.6vw;
}

/*-----------メイン-----------*/
main .txt{
  display: block;
  width: auto;
  height: 5.5em;
  margin: 4em auto;
  background-image: url("../img/main_txt.png");
  background-repeat: no-repeat;
  background-size: contain;
}
main .king{
  width: 8.5vw;
  margin: 0 auto;
}
main ol li{
  position: relative;
  padding-bottom: 4em;
  text-align: center;
}
main ol li::before{
  position: absolute;
  display: block;
  content: "";
  width: 100%;
  height: 2em;
  margin: 0 auto;
  top: -3em;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
}
  main ol li:nth-child(1):before{ background-image: url(../img/tour_01.png); }
  main ol li:nth-child(2):before{ background-image: url(../img/tour_02.png); }
  main ol li:nth-child(3):before{ background-image: url(../img/tour_03.png); }
  main ol li:nth-child(4):before{ background-image: url(../img/tour_04.png); }
  main ol li:nth-child(5):before{ background-image: url(../img/tour_05.png); }
  main ol li:nth-child(6):before{ background-image: url(../img/tour_06.png); }

  main ol li h3{
    display: block;
    width: 100%;
    height: 4em;
    margin-top: 2em;
    margin-bottom: 1em;
      border: none;
      text-indent: 100%;
      white-space: nowrap;
      overflow: hidden;
      background-repeat: no-repeat;
      background-size: contain;
      background-position: center;
  }
  main ol li:nth-child(1) h3{ background-image: url("../img/tour_01h3.png"); }
  main ol li:nth-child(2) h3{ background-image: url("../img/tour_02h3.png"); height: 2em; }
  main ol li:nth-child(3) h3{ background-image: url("../img/tour_03h3.png"); }
  main ol li:nth-child(4) h3{ background-image: url("../img/tour_04h3.png"); height: 2em; }
  main ol li:nth-child(5) h3{ background-image: url("../img/tour_05h3.png"); }
  main ol li:nth-child(6) h3{ background-image: url("../img/tour_06h3.png"); height: 2em; }
  main ol p:not(.busplan){
    font-size: var(--font-size-large);
    text-align: center;
  }
  main .photo{
    display: -webkit-flex; display: -moz-flex; display: -ms-flex; display: -o-flex; display: flex;
    justify-content: center;
    width: 100%;
    padding-top: 1em;
  }
  main .photo img{
    width: auto;
    height: 7.3em;
    margin: 0 0.2em;
  }
  main li:nth-child(6) .photo img{
    height: 9em;
  }

/*-----------共通点-----------*/
main h2, .contents h2, .detail h2{
  display: block;
  width: 100%;
  text-align: center;
  padding-top: 4em;
  padding-bottom: 3em;
}
  .detail h2{
    padding-bottom: 2em;
  }
  main h2 img, .contents h2 img, .detail h2 img{
    width: auto;
    height: 2em;
  }

  /* バス現地 */
.busplan, .genchiplan{
  display: block;
  min-width: 8em;
  width: fit-content;
  padding: 0 8px;
  margin: 0 auto 0.5em;
  text-align: center;
}
.busplan{ background-color: var(--color-green); }
.genchiplan{ background-color: var(--color-red); }

/* 半分 */
.separate{
  display: -webkit-flex; display: -moz-flex; display: -ms-flex; display: -o-flex; display: flex;
  justify-content: space-between;
  max-width: 970px;
  width: 80vw;
  margin: 0 auto;
}
  .separate > li{
    width: 48.5%;
  }

/* ボックス */
ul.box li, div.box{
  display: block;
  border: 10px solid #000;
  background-color: #fff;
  border-image-slice: 20;
  border-image-width: 15px;
  box-sizing: border-box;
  border-image-source: url(../img/kado.png);
}
#sky ul.box li, #sky div.box{
  border-image-source: url(../img/kado2.png);
}
ul.box li{ padding: 1.2em;}
div.box{
  max-width: 970px;
  width: 80vw;
  padding: 1.2em; 
  margin: 1em auto;
}

/*-----------申込について-----------*/
#app > p{
  text-align: center;
}
  #app .separate{
    max-width: 570px;
    margin-top: 1.5em;
  }
  #app li {
    display: -webkit-flex; display: -moz-flex; display: -ms-flex; display: -o-flex; display: flex;
    flex-direction: column;
    justify-content: space-between;
  }
  #app li *{
    text-align: center;
  }
    #app li a{
      display: block;
      width: 84%;
      margin: 0 auto 1em;
    }
    #app li .red{
      color: var(--color-red);
      -webkit-text-stroke: 3px #fff;
      text-stroke: 3px #fff;
      paint-order: stroke;
    }
    #app h4{
      width: fit-content;
      padding: 1.5em 10px 0;
      margin: 0 auto 1em;
      border-bottom: 8px solid var(--color-fc);
    }
    #app .app_gene h4{
      border-bottom: 8px solid var(--color-gene);
    }
    #app p b{
      font-size: var(--font-size-xlarge);
    }
    #app h4 + p{
      position: relative;
      padding-bottom: 1em;
    }
    #app h4 + p:after{
      position: absolute;
      display: block;
      content: "";
      left: 49%;
      bottom: 0.4em;
      width: 0;
      height: 0;
      border-style: solid;
      border-right: 6px solid transparent;
      border-left: 6px solid transparent;
      border-top: 7px solid var(--color-font);
      border-bottom: 0;
    }

/*-----------プラン内容-----------*/
#plan h3, #fee h3, #sche h3{
  width: fit-content;
  margin: 0 auto 0.75em;
}
  #plan h3 img, #fee h3 img, #sche h3 img{
    width: auto;
    height: 2em;
  }
  #plan p{
    text-align: center;
  }
  #plan p + h4{
    margin-top: 1em;
  }
  #plan .items {
    width: fit-content;
    margin: 2em auto 0;
  }
  #plan .items li{
    color: #fff;
    font-weight: normal;
    text-align: left;
  }
  #plan .items li::before{
    color: #fff;
  }

/*-----------代金-----------*/
.bus, .genchi{
  position: relative;
}
  .bus::before, .genchi::before{
    position: absolute;
    display: block;
    content: "";
    background-size: contain;
    background-repeat: no-repeat;
  }
  .bus::before{
    height: 33px;
    width: 69px;
    top: -40px;
    left: 15px;
    background-image: url("../img/bus_icon.png");
  }
  .genchi::before{
    height: 36px;
    width: 40px;
    top: -42px;
    right: 15px;
    background-image: url("../img/genchi_icon.png");
  }
#fee th{
  padding-right: 0.6em;
}
#fee th + td{
  padding-right: 0.3em;
}
#fee div.box{
  padding: 0.5em;
}
  #fee div.box p{
    font-size: var(--font-size-small);
    text-align: center;
  }

/*-----------行程-----------*/
#sche h4{
  width: fit-content;
  margin: 0 auto 0.5em;
}
  #sche h4 img{
    height: 2.75em;
  }
  #sche table{
    min-width: 14em;
    margin: 1em auto 2em;
  }
  #sche table:last-of-type{
    margin-bottom: 0;
  }
  .genchi h3 + h4{
    margin-bottom: 2.5em!important;
  }
  #sche th{
    padding-right: 1em;
  }
  .hotel{
    display: -webkit-flex; display: -moz-flex; display: -ms-flex; display: -o-flex; display: flex!important;
    justify-content: flex-start;
    padding: 1em 4%!important;
  }
    .hotel_photo{
      width: 45%;
      padding-right: 5%;
    }
    .hotel_detail{
      padding: 1em 0;
    }
      .hotel_detail p{
        padding-bottom: 0.5em;
      }
      .hotel_detail .items{
        padding-top: 0.5em;
      }

/*-----------詳細-----------*/
.detail {
  padding-bottom: 5vw;
}
.detail p{
  text-align: center;
}
.detail table {
  margin: 0 auto;
}
  .detail table th{
    padding-right: 1rem;
  }
.detail .items{
  width: fit-content;
  margin: 1em auto 0;
}
.detail a{
  display: block;
  width: 40vw;
  max-width: 460px;
  margin: 1em auto;
}

/*-----------その他ご注意-----------*/
.notice .box{
  padding: 0 8vw 6vw;
  margin-bottom: 10vw;
}
  .notice .box h2{
    padding-top: 4vw;
    padding-bottom: 1rem;
    font-size: var(--font-size-large);
    text-align: center;
  }
  .notice .box *:not(h2){
    font-weight: normal;
    font-size: 0.9rem;
  }
  .notice .box li{
    padding-bottom: 0.5em;
  }
  .notice .box p + p{
    padding-top: 1em;
  }
  .notice .box table{
    margin: 0.5em 0 1em;
  }
    .notice .box th{
      padding-right: 0.5em;
    }


/*-----------お問い合わせ-----------*/
#contact{
  width: 100%;
  padding-bottom: 3.5vw;
  background: #006cb6;
  text-align: center;
}
  #contact h2{
    padding-top: 2vw;
    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, .pc-only *{
    display: none!important;
  }
  body{
    overflow-x: hidden;
  }

  /*カラーパレット*/
  :root {
    --font-size-h2: 1.5rem;
  }
  small, .small, .small *{ 
    font-size: 0.9rem!important;
    line-height: 1.5!important;
  }

/*-----------レイアウト-----------*/
body{
  width: 100vw;
  text-align: justify;
  text-justify:inter-ideograph;
}
main, #sky{
  width: 90vw;
  padding: 0 5vw;
}
  #sky::before, #sky::after{
    width: 15vw;
    height: 16vw;
  }
#sea{
  width: 94vw;
  padding: 0 3vw 10vw;
  margin-bottom: 0;
}
  #sea::before{
    width: 120vw;
    height: 15vw;
    left: -10vw;
    background-size: 15vw;
  }
#underground{
  width: 100vw;
  border-image-width: 60px;
}
  #underground *:not(h2 img){
    width: 70vw;
    margin: 0 auto;
  }

/*-----------メイン-----------*/
main .txt{
  width: 90vw;
  height: 32.85vw;
  margin-bottom: 2em;
  background-image: url("../img/main_txt-sp.png");
}
main .king{
  width: 14vw;
}
main ol li:nth-child(1) h3{ background-image: url("../img/tour_01h3-sp.png"); height: 6em;}
main ol li:nth-child(4) h3{ background-image: url("../img/tour_04h3-sp.png"); height: 4em;}
main ol li:nth-child(5) h3{ background-image: url("../img/tour_05h3-sp.png"); height: 6em;}
main li small{
  padding-top: 0.5em;
}
main .photo{
  display: block;
  width: 100%;
}
  main .photo img{
    width: 90vw;
    height: auto!important;
    margin-bottom: 2vw;
  }

/*-----------共通-----------*/
.separate{
  display: block;
  width: 100%;
}
  .separate > li{
    width: 100%;
    padding-bottom: 10vw;
  }

  ul.box li{
    margin-bottom: 1em;
    padding-bottom: 1em;
  }

/*-----------内容-----------*/
.app_gene div{
  padding-bottom: 1em;
  margin-top: -5vw;
}

/* プラン */
#plan .items li{
  font-size: var(--font-size-small)!important;
}

/* ツアー代金 */
.bus{
  margin-bottom: 3em!important;
}
div.box{
  width: 100%;
}
.hotel{
  display: block!important;
}
  .hotel_photo{
    width: 100%;
    padding: 0;
  }

/* 詳細 */
.detail p{
  text-align: left;
}
.detail h2 img{
  max-width: 70vw;
  height: 1.3em;
}
.detail .items{
  margin-top: 1em!important;
}
.detail a{
  margin: 2em auto!important;
}

/* 注意 */
.notice .box{
  padding: 0 4vw 6vw;
}
.notice .box h2{
  padding-top: 2em
}
.notice .box th{
  padding-right: 1em;
}
.notice .box td{
  vertical-align: middle;
}

/*-----------お問合せ-----------*/
#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;
}

ul.box li table{
  margin: 0 auto 3%;
}

}