@charset "UTF-8";
.clearfix:before,
.clearfix:after,
.container:before,
.container:after,
.container-fluid:before,
.container-fluid:after,
.row:before,
.row:after {
  content: " ";
  display: table;
}

.clearfix:after,
.container:after,
.container-fluid:after,
.row:after {
  clear: both;
}

/*　////////////////////////////////
ブレイクポイント
//////////////////////////////////　*/
/*　////////////////////////////////
ベースフォント
//////////////////////////////////　*/
/*　////////////////////////////////
カラー
//////////////////////////////////　*/
/*　////////////////////////////////
clearfix[@extend .clearfix];
//////////////////////////////////　*/
.clearfix {
  zoom: 1;
}
.clearfix:after {
  display: block;
  content: "";
  clear: both;
}

/*　////////////////////////////////////////////////////////////////////////////////////////////////
flex include
//////////////////////////////////////////////////////////////////////////////////////////////////　*/
/*　////////////////////////////////////////////////////////////////////////////////////////////////
初期値top:50%; left:50%;
[@include set-top();] [@include set-left();]
//////////////////////////////////////////////////////////////////////////////////////////////////　*/
/*縦中央*/
/*横中央*/
/* -----上下左右中央、%指定で調整可能----- */
/*　////////////////////////////////
flex 設定
//////////////////////////////////　*/
/*　////////////////////////////////
三角形
//////////////////////////////////　*/
/*　////////////////////////////////
矢印
//////////////////////////////////　*/
/*　////////////////////////////////////////////////////////////////////////////////////////////////
font-size
//////////////////////////////////////////////////////////////////////////////////////////////////　*/
/*　////////////////////////////////
汎用style
//////////////////////////////////　*/
/*パンくず*/
.breadcrumb-wrap {
  margin: 0 0 30px;
  padding: 10px 0;
}
@media (min-width: 768px) {
  .breadcrumb-wrap {
    margin: 0 0 45px;
  }
}
.breadcrumb-wrap .breadcrumb li {
  display: inline;
  list-style: none;
  font-size: 1.4rem;
  line-height: 1;
  color: #231815;
}
.breadcrumb-wrap .breadcrumb li a {
  text-decoration: none;
  color: #231815;
}
.breadcrumb-wrap .breadcrumb li a:hover {
  text-decoration: underline;
}
.breadcrumb-wrap .breadcrumb li:after {
  content: "＞";
  padding: 0 3px;
}
.breadcrumb-wrap .breadcrumb li:last-child:after {
  content: "";
}

/*　////////////////////////////////
lower-main-visual
//////////////////////////////////　*/
.lower-main-visual {
  position: relative;
  margin-bottom: 50px;
}
.lower-main-visual::after {
  position: absolute;
  content: "";
  height: 28px;
  width: 100%;
  top: 0;
  left: 0;
  opacity: 0.66;
  background: #FFFFFF;
  background: -webkit-gradient(linear, left bottom, left top, color-stop(60%, rgba(255, 255, 255, 0)), to(rgb(113, 185, 219)));
  background: linear-gradient(0deg, rgba(255, 255, 255, 0) 60%, rgb(113, 185, 219) 100%);
  mix-blend-mode: multiply;
}
.lower-main-visual .title-area {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  color: #fff;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding-bottom: 5%;
}
.lower-main-visual .title-area .program-title {
  -webkit-box-ordinal-group: 4;
      -ms-flex-order: 3;
          order: 3;
  font-family: "Zen Antique", serif;
  font-weight: 400;
  font-style: normal;
  font-size: 2.6rem;
  font-size: clamp(2.6rem, 4vw, 5.2rem);
}
.lower-main-visual .title-area .program-title-en {
  -webkit-box-ordinal-group: 3;
      -ms-flex-order: 2;
          order: 2;
  font-family: "Teko", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
  font-size: 2rem;
  font-size: clamp(2rem, 2.5vw, 3.8rem);
  letter-spacing: 0.1em;
}
.lower-main-visual .title-area .program-logo {
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1;
  width: 80px;
  width: clamp(80px, 12vw, 160px);
}

@media (min-width: 768px) {
  .lower-main-visual {
    margin-bottom: 80px;
  }
}
/*　////////////////////////////////
lower-first
//////////////////////////////////　*/
.lower-first .first-title-area {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  margin-bottom: clamp(4rem, 6vw, 7rem);
}
.lower-first .first-title-area .first-title {
  -webkit-box-ordinal-group: 3;
      -ms-flex-order: 2;
          order: 2;
  font-weight: bold;
  font-size: 3rem;
  font-size: clamp(3rem, 4.2vw, 6.2rem);
  line-height: 1.4;
  text-align: center;
  margin-bottom: 0.5em;
}
.lower-first .first-title-area .first-title span {
  font-family: "Zen Antique", serif;
  font-weight: 400;
  font-style: normal;
}
.lower-first .first-title-area .minato-story {
  -webkit-box-ordinal-group: 4;
      -ms-flex-order: 3;
          order: 3;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 0.2em;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 1em 2em 0.7em;
  border: 1px solid #231815;
}
.lower-first .first-title-area .minato-story .en-txt {
  font-family: "Teko", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
  font-size: clamp(1.6rem, 1.5vw, 2.3rem);
  line-height: 1;
  letter-spacing: 0.05em;
}
.lower-first .first-title-area .minato-story .story {
  width: 30px;
  width: clamp(30px, 2.3vw, 48px);
  height: auto;
}
.lower-first .first-title-area .illust-box {
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1;
  text-align: center;
}
.lower-first .first-title-area .illust-box .illust {
  display: inline-block;
  width: 120px;
  width: clamp(120px, 13vw, 170px);
  height: auto;
}
.lower-first .first-sub-title {
  text-align: center;
  text-wrap: balance;
  font-weight: bold;
  margin-bottom: 1em;
  font-size: 2rem;
  font-size: clamp(2rem, 2vw, 3.2rem);
}
.lower-first .first-txt {
  max-width: 900px;
  margin: 0 auto;
}

/*　////////////////////////////////
program-contents
//////////////////////////////////　*/
.program-contents {
  max-width: 750px;
  margin: 0 auto;
}
.program-contents .contents-title {
  font-weight: bold;
  font-size: 2.6rem;
  font-size: clamp(2.6rem, 3.5vw, 5rem);
  margin-bottom: 0.5em;
  text-align: center;
  text-wrap: balance;
}
.program-contents .thumbnail-wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  gap: 8%;
  max-width: 400px;
  margin: 0 auto;
}
.program-contents .thumbnail-wrap .thumbnail-box {
  width: 46%;
  margin-bottom: 40px;
  -webkit-box-shadow: 4px 3px 12px -5px rgba(28, 28, 28, 0.6);
          box-shadow: 4px 3px 12px -5px rgba(28, 28, 28, 0.6);
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}
.program-contents .thumbnail-wrap .thumbnail-box:hover {
  -webkit-box-shadow: 0px 0px 0px 0px rgba(28, 28, 28, 0);
          box-shadow: 0px 0px 0px 0px rgba(28, 28, 28, 0);
}
.program-contents .thumbnail-wrap .thumbnail-box .hide-area {
  display: none;
}
.program-contents .num-list li {
  text-indent: -1em;
  margin-left: 1em;
}

/*popupエリア*/
.popup-contents {
  height: 60vh;
  overflow-y: scroll;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 12px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
  -ms-flex-direction: row-reverse;
  flex-direction: row-reverse;
  /*スクロールバー変更
  &::-webkit-scrollbar {
  	background: #ddd;
  	width: 15px;
  	height: 15px;
  	border-radius: 20px;
  }
  &::-webkit-scrollbar-thumb {
  	background-color: #aaa;
  	border-radius: 20px;
  }
  */
}
.popup-contents .popup-txt, .popup-contents .popup-img {
  width: 100%;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
.popup-contents .popup-txt {
  margin-bottom: 30px;
}
.popup-contents .popup-txt .scroll {
  display: block;
  font-size: 2.2rem;
  font-family: "Teko", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
  margin-bottom: 10px;
}
.popup-contents .popup-txt .popup-title {
  font-family: "Zen Antique", serif;
  font-weight: 400;
  font-style: normal;
  font-size: clamp(2rem, 2.5vw, 3rem);
  margin-bottom: 15px;
  line-height: 1.5;
}
.popup-contents .popup-txt .txt {
  font-size: clamp(1.6rem, 1.7vw, 1.8rem);
}

@media (min-width: 768px) {
  /*popupエリア*/
  .popup-contents .popup-txt {
    width: 50%;
  }
  .popup-contents .popup-txt .scroll {
    display: none;
  }
  .popup-contents .popup-img {
    width: 47%;
    margin-right: 3%;
  }
}
/*　////////////////////////////////
flyer-area
//////////////////////////////////　*/
.flyer-area {
  max-width: 900px;
  margin: 0 auto;
}
.flyer-area .flyer-title {
  background: #231815;
  color: #fff;
  font-family: "Zen Antique", serif;
  font-weight: 400;
  font-style: normal;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 0.7em;
  border-radius: 50px;
  font-size: 2.1rem;
  font-size: clamp(2.1rem, 2.5vw, 3rem);
  line-height: 1.3;
  text-align: center;
  position: relative;
  margin-bottom: 2.2em;
}
.flyer-area .flyer-title::after {
  content: "";
  position: absolute;
  background: #231815;
  width: 1.5em;
  height: 1.3em;
  top: 100%;
  top: calc(100% - 1px);
  left: 50%;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}
.flyer-area .flyer-wrap {
  max-width: 365px;
  margin: 0 auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  gap: 8%;
}
.flyer-area .flyer-wrap .flyer-box {
  width: 46%;
  -webkit-box-shadow: 4px 3px 12px -5px rgba(28, 28, 28, 0.6);
          box-shadow: 4px 3px 12px -5px rgba(28, 28, 28, 0.6);
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
  margin-bottom: 20px;
}
.flyer-area .flyer-wrap .flyer-box:hover {
  -webkit-box-shadow: 0px 0px 0px 0px rgba(28, 28, 28, 0);
          box-shadow: 0px 0px 0px 0px rgba(28, 28, 28, 0);
}
.flyer-area .flyer-wrap .flyer-box .flyer-link {
  display: block;
}

/*　////////////////////////////////
program-link-area
//////////////////////////////////　*/
.program-link-area {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  max-width: 900px;
  margin: 0 auto 80px;
}
.program-link-area .link-box {
  width: 100%;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  margin-bottom: 25px;
  text-align: center;
  border: 1px solid #474342;
}
.program-link-area .link-title {
  font-family: "Teko", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
  font-size: 2.8rem;
  font-size: clamp(2.8rem, 3vw, 4.4rem);
  letter-spacing: 0.075em;
  background: #474342;
  color: #fff;
  line-height: 1;
  padding: 0.4em 0.4em 0.2em;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
.program-link-area .link-area {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 1em;
  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;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 6%;
}
.program-link-area .link-area .link {
  display: inline-block;
  font-size: 2.8rem;
  font-size: clamp(1.6rem, 1.5vw, 2rem);
  line-height: 1.4;
  font-weight: bold;
}

@media (min-width: 768px) {
  .program-link-area {
    margin: 0 auto 140px;
    gap: 4%;
  }
  .program-link-area .link-box {
    width: 48%;
  }
}
.program-contents .contents-title {
  color: #488b37;
}