@charset "utf-8";
/* CSS Document */


@import url('https://fonts.googleapis.com/css2?family=Hina+Mincho&display=swap');

.RinjiAllBnr{display: none;}

:root{
  --fontfamily-english: "Cantarell", sans-serif;
  --fontfamily-japanese-serif: 'Noto Serif JP', serif;
  --fontfamily-japanese-serif2:"Hina Mincho", serif;
  --color-base-01:#00a0d2;
  --color-base-02:#71c9e7;
  --color-base-03:#0087cb;
}

/*注意書き*/
.attention p {
  margin: 0 20px;
  font-size: 12px;
  line-height: 1.2em;
  text-align: center;
  padding: 0 0 40px;
}

/*エフェクト*/
.fade{
	opacity : 0;
	transform: translateY(10px);
	transition: 3s;
}

/*--------------------
KITTEのGW 2026
--------------------*/
body{background: none;}

.pc #contents-main .sp,
.sp #contents-main .pc{
  display: none;
}

#contents.goldenweek {
  padding: 0; min-height: 600px;
}

#contents-main.all {
  padding: 0 0 0 0;
}
.pc #contents{
  background-size: 100%;
}
#contents-main > .inner{
  padding: 0 1%;
}
#contents .bg_event{
  background: linear-gradient(180deg, rgba(216,238,246,1) 40%, rgba(255,255,255,1) 70%) fixed;
}

/*タイトル*/
#contents-main .title{
  position: relative;
  overflow: hidden;
  padding: 0;
  text-align: center;
  transition: .3s;
  height: 650px;
  /* background: url(bg_img.jpg);
  background-size: contain;
  background-repeat: repeat-x; */
  background: none;
  h2{
    padding:0;
    width: 1100px;
    img{width: 100%;}
  }
  .ttl_caption {
    position: absolute;
    writing-mode: vertical-lr;
    font-family: var(--fontfamily-japanese-serif);
    color: #0063b2;
    width: 60px;
    top: 20px;
    right: 132px;
    letter-spacing: 5px;
    font-size: 20px;
    line-height: 150%;
    text-align: left;
  }
}
#contents-main h3.subttl {
  margin: 30px 0 0;
  background: var(--color-base-02);
  color: #fff;
  font-size: 24px;
  letter-spacing: 3px;
  font-weight: bold;
  line-height: 1.2em;
}

/*アンカーリンク用ナビ*/
#contents ul.nav{
  display: flex;
  justify-content: center;
  margin: 30px 20px 0;
  gap: 10px;
  li{
    list-style: none;
    text-align: center;
    width: calc(100% / 3);
    position: relative;
  }
  li a{
    display: block;
    color: #fff;
    background: var(--color-base-03);
    padding: 10px 0 4px;
    line-height: 1.4em;
  }
  li a:after{
    display: block;
    content: "\f107";
    color: #fff;
    font-family: "font Awesome 5 Free";
    font-weight: bold;
  }
}

/*イベント概要*/
#contents-main article.intro{
	padding: 0 30px 60px;
  .subtitle{
    padding: 0 0 20px;
    p{
      color: var(--color-base-01);
      text-align: center;
      font-size: 20px;
      line-height: 1.6;
      font-family: var(--fontfamily-japanese-serif2);
    }
  }
  .image{
    padding: 0 0 20px;
    img{
      width: 80%;
      margin: auto;
      display: block;
    }
  }
  .ev_date p{
    text-align: center;
    font-size: 18px;
    font-weight: bold;
  }
  .ev_detail{
    padding: 20px 0 0;
    p{
      text-align: center;
      font-size: 18px;
      font-family: var(--fontfamily-japanese-serif2);
    }
  }
  h4{
    font-size: 32px;
    line-height: 1.3em;
    letter-spacing: 0.05em;
    font-weight: bold;
    color: var(--color-base-01);
    text-align: center;
    margin-bottom: 20px;
    font-family: var(--fontfamily-japanese-serif2);
  }
}

article.topic,
article.program,
article.eventlist{
  padding: 40px 30px;
  background: #fff;
  margin: 30px 0;
  box-shadow: 0 2px 2px 0 rgb(0 0 0 / 14%), 0 1px 5px 0 rgb(0 0 0 / 12%), 0 3px 1px -2px rgb(0 0 0 / 20%);
}

/*イベントニュース読込*/
#contents-main article.eventlist{
  h3{
    margin: 0 0 10px;
    background: none;
    font-family: var(--fontfamily-english);
    font-weight: bold;
    font-size: 40px;
    color: var(--color-base-03);
  }
  .ev_item{
    border: 10px solid rgba(255,255,255,0.8);
    margin-bottom: 20px;
    background: #d3d3d4;
    .detail{
      overflow: hidden;
      background: #fff;
      padding: 4% 6%;
      h4{
        font-size: 18px;
        font-weight: 600;
        padding: 0 0 20px;
        margin-bottom: 20px;
        border-bottom: 1px solid #696b68;
      }
      .ev_detail{
        margin-bottom: 20px;
        text-align: justify;
      }
      .remarks{
        font-size: 12px;
        margin-top: 20px;
      }
      .remarks dd{
        white-space: pre-wrap;
        line-height: 1.3em;
      }
      .link {
        text-align: center;
        margin: 30px 0;
      }
      .link a {
        text-align: center;
        text-decoration: none;
        padding: 20px 30px 20px 20px;
        border-radius: 4px;
        position: relative;
        font-weight: 700;
        font-size: 16px;
        min-width: 40%;
        display: inline-block;
        border: 1px solid var(--color-base-01);
      }
      .link a:after {
        font-family: "font Awesome 5 Free";
        margin: 0 0 0 10px;
        font-size: 18px;
        color: var(--color-base-01);
        display: inline;
        content: "\f105";
        font-weight: bold;
        position: absolute;
        right: 10px;
      }
    }
  }
  .ev_item.overday{
    display: none;
  }
}
.pc{
  article.eventlist .ev_item .detail .event_text{
    float: left;
    width: 60%;
    margin: 0 0 16px;
  }
  article.eventlist .ev_item .detail .image{
    padding-left: 30px;
    width: 40%;
    float: right;
    box-sizing: border-box;
  }
}

/*以下はページ特有　テンプレート外*/
article.program{
  h4{
    background: none;
    font-size: 40px;
    font-weight: bold;
    color: var(--color-base-03);
    padding: 0 0 30px;
    text-align: center;
    border-bottom: 1px solid var(--color-base-03);
    span{
      display:block;
      font-size: 18px;
      margin-bottom:16px;
    }
  }
  p.caption{
    display: block;
    padding: 20px 0 20px;
    font-size: 16px;
    text-align: center;
  }
  .ev_date{
    p{
      text-align: center;
      font-size: 18px;
      font-weight: bold;
    }
    p:before {
      content: "● ";
    }
  }
}
article.program ul.time_table{
  margin: 30px 0;
  li{
    display: flex;
    background-color: #d1ecfb;
    margin: 6px 0px;
    flex-wrap: wrap;
    a{text-decoration: underline;}
  }
  li:nth-of-type(2n){
    background-color: #fff;
  }
  li dt{
    font-weight: bold;
    background-color: #e72122;
    display: flex;
    align-items: center;
    font-size: 32px;
    width: 120px;
    color: #fff;
    border-right: 5px solid rgba(255,255,255,1);
    line-height: 110%;
    letter-spacing: 1px;
    justify-content: center;
    min-width: 120px;
    flex-wrap: wrap;
    align-content: center;
    font-family: var(--fontfamily-english);
  }
  li dt span {
    font-size: 17px;
    width: 100%;
    text-align: center;
  }
  li .artist_desc{
    width: calc(100% - 125px);
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 0 10px;
    box-sizing: border-box;
  }
  li .artist_desc dd {
    flex:1;
    line-height:1.45;
    font-weight: bold;
    font-size: 15px;
  }
  li .artist_desc dd.txt {
    flex: auto;
    font-weight: normal;
    padding: 20px;
    font-size: 13px;
  }
  li .artist_desc dd em {
    font-size: 18px;
    display:block;
    font-weight: bold;
    margin-bottom: 5px;
    line-height: 1.4em;
  }
  li dd span {
    width: 100%;
    color: var(--color-base-01);
    font-size: 18px;
    font-weight: bold;
    display: block;
  }
  li dd span.time{
    font-size: 20px;
    display: block;
    padding: 10px 0;
  }
  li dd img{
    width:100%;
  }
}
.pc article.program#program3 ul.time_table li .artist_desc dd:last-of-type {
  flex: 3;
}

/* ラ フォル ジェルネ */
article.program ul.time_table.fol li {
  flex-wrap: nowrap;
  dd{
    flex:1;
    line-height: 1.45;
    font-weight: normal;
    font-size: 12px;
  }
  dd.txt{
    padding: 5px 15px;
    font-size: 11px;
  }
  dd.txt em{
    font-weight: bold;
    display: block;
    font-size: 12px;
  }
}


/*---------
SP
----------*/
body.sp .attention p{
  padding: 20px 0;
}
body.sp .foot_bnr{
  padding: 20px 0;
  margin: 0;
}
body.sp .to-top{
  bottom: 20px !important;
}

body.sp{
  #contents.goldenweek{
    padding: 0 0 0;
  }
  #contents-main.all{
    padding: 0;
  }
  #contents .bg_event {
    background-image: linear-gradient(180deg, rgba(216, 238, 246, 1) 30%, rgba(255, 255, 255, 1) 50%) fixed;
    background: linear-gradient(180deg, rgba(216, 238, 246, 1) 30%, rgba(255, 255, 255, 1) 50%) fixed;
  }
  #contents-main .title{
    height: auto;
    background-size: cover;
    .ttl_caption{
      top: 14px;
      right: 0px;
      font-size: 12px;
    }
  }
  #contents-main article.intro{
    margin: 0 0 20px;
    padding: 0;
    .subtitle p{font-size: 4.0vw;}
    .image img{width: 100%;}
    .ev_date p{font-size: 4.2vw;}
    .ev_detail{
      padding: 10px 0 0;
      p{font-size: 4.0vw;line-height: 1.6em;}
    }
  }
  #contents-main article.intro h4{font-size: 5vw;margin-bottom: 10px;}
  #contents-main h3.subttl{font-size: 4.0vw;letter-spacing: 1px;}
  #contents ul.nav {
    margin: 20px 0;
    gap: 5px;
    li{
      margin: 0 2px;
      font-size: 3.2vw;
    }
  }
  #contents-main article.program{
    h4 {
      font-size: 7vw;
      padding: 0 0 20px;
      span {font-size: 3.6vw;margin-bottom: 6px;}
      img.sp_view{width: calc(100% - 40px);}
    }
    p.caption{font-size: 3.6vw;line-height: 1.6em;}
    .ev_date p{font-size: 4.2vw;}
  }

  article.topic,
  article.program,
  article.eventlist {
    padding: 20px 0 0;
  }

  article.topic{
    .attention p{margin: 0;padding: 10px;}
  }
}

/*イベントニュース読込*/
body.sp #contents-main article.eventlist{
  h3{
    font-size: 7vw;
    padding: 0 0 0;
  }
  .ev_item{
    .detail h4{
    font-size: 4.2vw;
    padding: 0 0 10px;
    margin-bottom: 20px;
    .detail{
      padding: 4%;
      h4{
        font-size: 5.0vw;
        border-bottom: 0;
        margin-bottom: 0;
        padding: 0 0 20px;
      }
      h4:after{margin: 20px 0;}
      .event_text{padding-top: 20px;}
      .remarks{margin:10px 0 20px;}
      }
    }
  }
  table.table01 th,
  table.table01 td{
    font-size: 3.3vw;
  }
}


/*以下はページ特有　テンプレート外*/
body.sp article.program{
  h3 span{margin-bottom:0px;}
  .ev_date{margin-bottom: 20px;}
  ul.time_table{margin: 0;}
  ul.time_table li{
    flex-wrap: wrap;
    gap: 10px;
    margin: 0;
    paddning: 0 0 20px;
    dt{
      width: 100%;
      border-right: none;
      padding: 8px 0;
      font-size: 28px;
    }
    dd{
      width: 100%;
      flex: auto;
      font-size: 16px;
      text-align: center;
    }
    dd:not(:has(img)){padding: 2px 10px 20px;}
    dd.txt {
      padding: 10px 20px 20px;
      text-align: left;
      flex:auto;
    }
    dd img{height: 180px;width: auto;}
    dt span{
      width: 70px;
    }
    .artist_desc{
      width: 100%;
      padding: 0;
    }
  }
}
