@charset "UTF-8";
.pass{
  display: none !important; /* 後で消す */
}

:root{
  --font: #594939;
  --pink: #E95467;
  --white: #fff;
  --green: #82b816;
  --orange: #ec8f15;

  --gr-pale: #c7e69d;
  --gr-pale-rgb: 140, 194, 32;
  --og-pale: #fcd581;
  --bg-pale: #fbf0df;

  --bgimg: image-set(
    url('../images/background.webp') type('image/webp') ,
    url('../images/background.jpg') type('image/jpeg')
    );
  --bgfl: image-set( 
    url('../images/bg_fl.webp') type('image/webp'),
    url('../images/bg_fl.png') type('image/png')
    );
  --bgfl02: image-set( 
    url('../images/bg_fl02.webp') type('image/webp'),
    url('../images/bg_fl02.png') type('image/png')
    );
  --shadow: drop-shadow(0 3px 10px rgba(190,139,85,0.5));
}

body{
  color: var(--font);
  font-size: 1.1rem;
  font-family: "Work Sans", "Zen Kaku Gothic Antique", sans-serif;
}


/*-----------------------------------------------
__Header
-----------------------------------------------*/
header{
	position: fixed;
  z-index: 200;
	left: 5%;
	top: 0;
	width: 90%;
	height: 80px;
}
header a:hover{
  opacity: 0.5;
}
header .in_box{
  position: relative;
  display: flex;
  justify-content: space-between;
  padding: 15px 160px 15px 20px;
  background: var(--white);
  border-radius: 0 0 10px 10px;
  filter: drop-shadow(0 0 10px rgba(190,139,85,0.25));
}
header .logo{
  width: calc(100% - 5em);
  display: inline-block;
}
header .logo h1{
  display: flex;
  align-items: center;
}
header .logo h1 img{
  height: 30px;
  width: auto;
}
header .logo h1 a{
  display: flex;
  align-items: center;
  height: 100%;
  margin-right: 15px;
  color: var(--font);
  font-weight: bold;
}
header .logo h1 a span{
  margin-left: 0.25em;
  vertical-align: middle;
  color: var(--font);
  font-size: 150%;
  font-weight: 500;
}
.header_inner {
	position: relative;
}
.head_link{
  display: flex;
  align-items: center;
}
.head_link a{
  font-size: 90%;
  color: var(--pink);
  border: 1px solid var(--pink);
  border-radius: 3px;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  width: 120px;
  height: 100%;
}
.head_link a:hover{
  opacity: 1;
  background: var(--pink);
  color: var(--white);
}

/*-----------------------------------------------
__Global Navi
-----------------------------------------------*/
.nav {
    position: fixed;
    right: 5%;
    top: 20px;
    width: 40%;
    height: 100vh;

    transition: all .6s;
    z-index: 200;
    overflow-y: auto;
    -ms-overflow-style: none;
    scrollbar-width: none;

    display: flex;
    flex-direction: column;
    justify-content: space-around;

    opacity: 0;
    pointer-events: none;
  }
  #gl_nv a{
    display: inline-block;
    color: var(--font);
    font-size: 200%;
  }
  #gl_nv a:hover{
    transform: translateX(10px);
    opacity: .5;
  }
  header ul.sub{
    background: var(--white);
    padding: 40px;
    border-radius: 40px;
  }
  .sub a{
    color: var(--font);
    opacity: .7;
  }
  .sub a:hover{
    opacity: .3;
  }
  .nav li{
    margin-bottom: 0.5em;
  }
  .hamburger {
    position: absolute;
    right: 20px;
    top: 0;
    width: 130px;
    height: 62px;
    cursor: pointer;
    z-index: 400;
    transition: all .3s;
  }
  .hamburger:hover{
    opacity: 0.5;
  }
  .hamburger::after{
      position: absolute;
      content: "MENU";
      color: var(--font);
      right: 65px;
      top:50%;
      transform: translateY(-50%);
      transition: all .5s;
  }
  .hamburger_border {
    position: absolute;
    right: 0;
    width: 50px;
    height: 2px;
    background-color: var(--font);
    transition: all .5s;
  }
  .hamburger_border_top {
    top: 40%;
  }
  .hamburger_border_bottom {
    top: 60%;
  }
  .black_bg {
    position: fixed;
    left: 0;
    top: 0;
    width: 100vw;
    height: calc(100vh + 50px);
    z-index: 100;
    background:var(--bgimg);
    background-repeat: repeat;
    opacity: 0;
    visibility: hidden;
    transition: all .5s;
    cursor: pointer;
    overflow: hidden;
    transform: translateY(100px);
  }
  .black_bg::before{
    content: "";
    position: absolute;
    width: 50%;
    height: 100%;
    left: 0;
    top: 0;
    background-image: var(--bgfl02);
    background-repeat: no-repeat;
    background-position: left top;
    background-size: 100% auto;
    pointer-events: none;
  }
  .black_bg::after{
    content: "";
    position: absolute;
    width: 50%;
    height: 100%;
    right: 0;
    top: 0;
    background: var(--og-pale);
  }
  .header_inner figure{
    position: absolute;
    z-index: 200;
    left: 10%;
    top: 50%;
    width: 35%;
    transform: translateY(-50%);
    opacity: 0;
    transition: 0s 0s;
    pointer-events: none;
  }

  /* 表示された時用のCSS */
  .nav-open .nav {
    top: 0;
    opacity: 1;
    pointer-events: all;
  }
  .nav-open .black_bg {
    opacity: 1;
    visibility: visible;
    transform: translateY(-50px);
  }
  .nav-open .hamburger::after{
      content: "CLOSE";
      transition: all .5s;
      color: var(--font);
  }
  .nav-open .hamburger_border{
    background-color: var(--font);
  }
  .nav-open .hamburger_border_top {
    transform: rotate(25deg);
    top: 50%;
    transition: all .5s;
  }
  .nav-open .hamburger_border_bottom {
    transform: rotate(-25deg);
    top: 50%;
    transition: all .5s;
  }
  .nav-open .header_inner{
    position: absolute;
    left: 0;
    top: 0;
    height: 100vh;
    width: 100%;
  }
  .nav-open .header_inner figure{
    opacity: 1;
    transition: all ease .5s .3s;
  }



  header nav{
	background: none;
    }
  #gl_nv{
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    background: var(--white);
    padding: 40px;
    border-radius: 40px;
  }
  #gl_nv li{
    width: 100%;
    padding: 0;
  }
  

/*-----------------------------------------------
__Visual
-----------------------------------------------*/
#visual{
  background: var(--bgimg);
  background-repeat: repeat;
  position: relative;
  height: 100vh;
}
#visual > div.fl_box{
  width: 90%;
  height: 100%;
  margin: 0 auto;
  flex-direction: row-reverse;
  position: relative;
  z-index: 2;
}
#visual .img_box{
  position: relative;
  width: 43%;
  padding-top: 100px;
  display: flex !important;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
#visual .img_box h1{
  position: relative;
  width: 100%;
  z-index: 3;
  pointer-events: none;
  display: block;
}
#visual .img_box h1 img{
  max-width: 460px;
}
#visual .illust_top{
  display: flex;
}
#visual .illust_top > div{
  display: flex;
  pointer-events: none;
  opacity: 0;
  animation: fade-up-illust 1s forwards 1.6s;
}

@keyframes fade-up-illust {
  0%{
    opacity: 0;
    filter: var(--shadow) blur(3px);
    transform: translateY(10px);
  }
  100%{
    opacity: 1;
    filter: var(--shadow) blur(0px);
    transform: translateY(0px);
  }
}
#visual #scroll{
  position: absolute;
  z-index: 2;
  left: 20px;
  bottom: 20px;
}
#visual #scroll a{
  color: var(--font);
  text-decoration: none;
  writing-mode: vertical-lr;
  position: relative;
  display: flex;
  gap: 0 10px;
  align-items: center;
  padding: 16px 8px;
  background-color: #fff;
  border-radius: 30px;
}
#visual #scroll a:hover{
  transform: translateY(5px);
}
#visual #scroll a::after{
  content: "";
  width: 14px;
  height: 14px;
  background: url(../images/ic_arrow.svg) no-repeat;
  background-size: contain;
  background-position: center;
  transform: rotate(90deg);
}

#visual .txt_box{
  width: 55%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative;
  padding: 10vh 0;
  gap: 40px 0;
}
#visual .txt_top{
  width: 55%;
  filter: var(--shadow) ;
}
#visual .txt_box #txt_slide{
  justify-content: flex-end;
  position: relative;
  padding-top: 110px ;
}
#visual .txt_box #txt_slide .txt_top{
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 2;
}
#visual .txt_box .slick-slide{
  border-radius: 20px;
  overflow: hidden;
}
#visual .txt_box .slider{
  width: 55%;
  opacity: 0;
  animation: fade-up-slider 1s forwards 2s;
}
@keyframes fade-up-slider {
  0%{
    opacity: 0;
    filter:  blur(3px);
    transform: translateY(10px);
  }
  100%{
    opacity: 1;
    filter: blur(0px);
    transform: translateY(0px);
  }
}
#visual .txt_box #txt_btns{
  justify-content: flex-end;
  gap: 0 20px;
}
@media screen and (max-width: 1360px) {
  #visual .txt_box #txt_btns{
    flex-direction: column;
    align-items: flex-end;
    gap: 20px 0;
  }
  #txt_btns .entry2026.visual_btn{
    margin-bottom: 0;
    margin-left: 0;
  }
}
#visual .txt_box .ul_link{
  opacity: 0;
  animation: fade-up-illust 1s forwards 1.6s;
  filter: var(--shadow);
}

/*btns*/
.visual_btn{
  height: 120px;
  position: relative;
}
.visual_btn::before,.visual_btn::after{
  position: absolute;
  transition: all ease .3s;
  pointer-events: none;
}
.visual_btn:hover:before,.visual_btn:hover::after{
  transform: translateY(5px);
}
.visual_btn::before{
  z-index: 1;
  content: "\7533\8FBC\53D7\4ED8\4E2D\FF01";
  color: var(--font);
  background: #F5E820;
  color: #222;
  font-weight: bold;
  font-size: 80%;
  text-align: center;
  padding: 3px 10px;

  left: 20px;
  top: -15px;
}
.visual_btn::after{
  z-index: 2;
  content: "";
  width:0;
  height:0;
  border-style:solid;
  border-width: 8px 7.5px 0 7.5px;
  border-color: #F5E820 transparent transparent transparent;

  left: 64px;
  top: 8px;
}

.visual_btn.finish::before{
  content: "\7D42\4E86\3057\307E\3057\305F";
  color: var(--white);
  background: var(--font);
  transform: translateY(5px);
}
.visual_btn.finish::after{
  border-color: #594939 transparent transparent transparent;
  transform: translateY(5px);
}
.visual_btn.finish a{
  opacity: 0.5 !important;
  pointer-events: none !important;
  background: #d83649 !important;
}
.visual_btn.finish a:hover{
  transform: translateY(0) !important;
}
.visual_btn.finish a::before{
  display: none;
}
.visual_btn.finish em{
  color: #fff !important;
}
#visual .visual_btn.finish em{
  flex-direction: column;
}
.visual_btn a{
  display: flex;
  height: 100%;
  padding: 30px 50px 30px 20px;
  border-radius: 10px;
  color: var(--white);
  text-decoration: none;
  font-weight: bold;
  background: #E83760;
  text-align: center;
  position: relative;
  filter: var(--shadow);
}
#visual .visual_btn a{
  filter: none;
}
.visual_btn a:hover{
  transform: translateY(5px);
  background: #d32a52;
}
.visual_btn a::before{
  content: "";
  position: absolute;
  right: 15px;
  top: 50%;
  transform: translateY(-50%);
  width: 14px;
  height: 14px;
  background: url(../images/ic_arrow_w.svg) no-repeat;
  background-size: contain;
  background-position: center;
}
.visual_btn a span{
  display: flex;
  align-items: center;
  background: var(--white);
  color: #E83760;
  padding: 10px 15px;
  font-size: 90%;
  margin-right: 10px;
}
.visual_btn a em{
  display: flex;
  align-items: center;
}
.visual_btn figure{
  margin-top:10px;
}
.entry2026.visual_btn a em{
font-size:150%;
}
#visual .visual_btn{
  opacity: 0;
  animation: fade-up-illust 1s forwards 2s;
}

.ul_link{
  display: flex;
  flex-direction: column;
  background: var(--white);
  border-radius: 24px;
  overflow: hidden;
  filter: drop-shadow(0 0 10px rgba(0,0,0,0.2));
  background-color: var(--white);
}
.ul_link > li{
  position: relative;
}
.ul_link > li:not(:first-of-type)::before {
    content: "";
    position: absolute;
    z-index: 1;
    left: 5%;
    top: 0;
    width: 90%;
    height: 1px;
    border-top: 1px solid var(--font);
    opacity: 0.3;
}
.ul_link a{
  display: block;
  color: var(--font);
  text-decoration: none;
  font-weight: bold;
  padding: 30px 45px 30px 25px;
  position: relative;
}
.ul_link a:hover{
  background: rgba(var(--gr-pale-rgb),0.2);
}
.ul_link a span{
  display: inline-block;
  width: 18px;
  vertical-align:baseline;
  margin-right: 10px;
  line-height: 1;
}
.ul_link a span img{
  display: inline-block;
  vertical-align: middle;
}
.ul_link a::after{
  content: "";
  position: absolute;
  right: 15px;
  top: 50%;
  transform: translateY(-50%);
  width: 12px;
  height: 12px;
  background: url(../images/ic_arrow.svg) no-repeat;
  background-size: contain;
  background-position: center;
  opacity: 0.7;
  transition: all ease .3s;
}
.ul_link a:hover:after{
  opacity: 1;
  right: 10px;
}
.ul_link a[href$=".pdf"]::after{
  content: "";
  border: none;
  font-size: 1em;
  margin-left: 0;
  padding: 0;
}
.ul_link a[href$=".pdf"] span{
  display: inline-block;
  width: 18px;
  height: 18px;
  background: url(../images/ic_pdf.svg) no-repeat;
  vertical-align: middle;
}

.btn{
  margin: 1em 0;
}
.btn.ta_center a{
  margin: 0 auto;
}
.btn a{
  display: table;
  font-size: 120%;
  text-decoration: none;
  color: var(--font);
  position: relative;
  padding: 10px 54px 10px 0;
}
.btn a::before{
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: var(--pink);
  transition: all ease .3s;
}
.btn a:hover::before{
  transform: translateY(-50%) scale(1.1);
}
.btn a::after{
  content: "";
  position: absolute;
  right: 0;
  top: calc(50% - 21px);
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: url(../images/ic_arrow_w.svg);
  background-repeat: no-repeat;
  background-size: 30%;
  background-position: center;
  transition: all ease .3s;
}
.btn a:hover::after{
  animation: hover_arrow 1s forwards 0s;
}
.btn a span{
  background: linear-gradient(#594939, #594939) 0 100%/0 1px no-repeat;
	transition: background .3s .1s;
}
.btn a:hover span{
	background-size: 100% 1px;
}
#schedule .btn{
  padding: 40px 0;
  background: var(--white);
  border-radius: 16px;
}

.bg_fl{
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  pointer-events: none;
  overflow: hidden;
  z-index: 1;
}
.bg_fl picture{
  position: absolute;
}
.bg_fl .fl_01{
  right: -140px;
  top: 55%;
  max-width: 400px;
  transform: rotate(-30deg);
}
.bg_fl .fl_02{
  left:-100px;
  top: 50%;
  max-width: 300px;
  transform: rotate(45deg);
}
.bg_fl .fl_03{
  top: -60px;
  left: 55%;
  max-height: 300px;
  transform: rotate(40deg);
}
.bg_fl .fl_04{
  top: 55%;
  left: 45%;
  max-width: 180px;
  transform: rotate(-10deg);
}
.bg_fl .fl_05{
  top: 120px;
  left: 40%;
  max-width: 60px;
  animation-duration: 4s;
  animation-delay: 1s;
}
.bg_fl .fl_06{
  right: -60px;
  top: 0;
  max-width: 300px;
  transform: rotate(45deg);
}
.bg_fl .fl_07{
  top: 30%;
  left: 2%;
  max-width: 50px;
  animation-duration: 4s;
  animation-delay: 1.6s;
}
.bg_fl .fl_08{
  top: -10px;
  left: -20px;
  max-width: 180px;
  transform: rotate(-20deg);
}
.bg_fl .fl_09{
  bottom: 5%;
  right: 25%;
  max-width: 200px;
  transform: rotate(45deg);
}
.bg_fl .fl_10{
  bottom: 40%;
  right: 20%;
  max-width: 80px;
  animation-duration: 4.4s;
  animation-delay: 1s;
}
.bg_fl .fuwa{
    opacity: 0;
  transform-origin: 0px 0px;
  animation-name: Drop;
  animation-iteration-count: infinite;
  animation-timing-function: linear;
  animation-fill-mode: forwards;
}
@keyframes Drop {
  0% {
    transform: translateY(0px) translateX(0px) rotate(0deg);
    opacity: 0;
}
30% {
    transform: translateY(-20px) translateX(8px) rotate(10deg);
    opacity: 1;
}
40% {
    opacity: 1;
}
50% {
    transform: translateY(-30px) translateX(16px) rotate(20deg);
    opacity: 0;
}
100% {
    transform: translateY(-30px) translateX(16px) rotate(20deg);
    opacity: 0;
}
}

.wave{
  width: 100%;
}
#visual .wave{
  position: absolute;
  left: 0;
  bottom: 0;
  pointer-events: none;
}
#visual .wave svg{
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
}

/*-----------------------------------------------
__Main
-----------------------------------------------*/
section{
  width: 90%;
	margin:0 auto;
  padding: 80px 0;
  display: flex;
  align-items: flex-start;
}
section > div.content{
  width: 80%;
}

main h2{
  display: flex;
  flex-direction:column-reverse;
  writing-mode: vertical-lr;
  justify-content:center;
  padding-top: 75px;
  position: relative;
  line-height: 1.2;
}
main h2 em{
  letter-spacing: 0.1em;
  font-size:2.2em;
}
main h2 span{
  color: var(--orange);
}
main h2::before{
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
  display: block;
  width: 66px;
  height: 66px;
  border-radius: 50%;
}

main h3{
  margin-bottom: 3em;
  display: flex;
  flex-direction: column;
}
main h3 em{
  font-size: 2.6em;
  color:var(--green);
}
section .hl{
  width: 25%;
}
.kasou section{
  align-items: stretch;
}
.kasou section .hl{
  position: relative;
}
.kasou section .hl h2{
  position: sticky;
  top: 100px;
  left: 0;
}
main h4{
  font-size: 110%;
  margin: 1em 0;
  position: relative;
}
main h4::after{
  content: "";
  display: block;
  pointer-events: none;
  position: absolute;
  left: 0;
  top: 50%;
  width: 100%;
  height: 3px;
  background-image: linear-gradient(to right, #594939, #594939 2px, transparent 2px, transparent 8px);
  background-repeat: repeat-x;
  background-size: 10px 2px;
  background-position: left bottom;
}
main h4 span{
  position: relative;
  z-index:1;
  display: inline-block;
  padding-right:10px;
  background: var(--white);
}

ul.list > li{
	list-style-type:disc;
	margin-left:1em;
	padding-left:0.5em;
	margin-bottom:0.5em;
}

#news{
  position: relative;
  background: var(--gr-pale);
  margin-top: -2px;
}
#news::before{
  content: "";
  position: absolute;
  pointer-events: none;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  background-image: var(--bgfl);
  background-repeat: no-repeat;
  background-position: left top;
  background-size: 100% auto;
  z-index: 1;
}
#news .wave{
  position: absolute;
  left: 0;
  top: 0;
  pointer-events: none;
}
#news .wave svg{
  transform: rotate(180deg);
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
}
#news section{
  align-items: stretch;
  justify-content: space-between;
  gap: 0 40px;
  position: relative;
  z-index: 2;
}
#news h3{
  margin-bottom: 0;
  position: relative;
}
main #news h3 em{
  color: var(--green);
}
#news .hl{
  background: var(--white);
  border-radius: 24px;
  padding: 40px;
}
#news .content{
  width: 75%;
  background: var(--white);
  padding: 40px;
  border-radius: 24px;
}
.news_list {
  position: relative;
  width: 100%;
}
.news_list article{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 20px 0;
}
.news_list article span{
  color:var(--orange);
  padding: 5px 15px;
  margin-bottom: 0.5em;
  border: 1px solid var(--orange);
  border-left: 0;
  font-size: 80%;
}
.accordion-text {
  overflow: hidden; /* テキストを隠す */
  position: relative;
  min-height: 200px;
}
/* 最初に見えてるテキストエリアの高さ */
.accordion-text.is-hide {
  height: 200px;
}
/* テキストをグラデーションで隠す */
.accordion-text::before {
  background: -webkit-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,.9) 50%, rgba(255,255,255,.9) 50%, #fff 100%);
  background:         linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,.9) 50%, rgba(255,255,255,.9) 50%, #fff 100%);
  bottom: 0;
  content: "";
  height: 60px; /* グラデーションで隠す高さ */
  position: absolute;
  width: 100%;
}
.accordion-btn.is-show + .accordion-text::before {
  display: none;
}
.accordion-btn {
  position: absolute;
  background:var(--green);
  color: var(--white);
  bottom: 0;
  right: 0;
  z-index: 1;
  text-align: center;
  padding: 10px 40px;
  border-radius: 5px;
  font-size: 90%;
  cursor: pointer;
  transition: all ease .3s;
  min-width: 100px;
}
.accordion-btn:hover{
  transform: translateY(5px);
}
.accordion-btn.is-show {
  bottom: -3em;
}
.accordion-btn::before{
  content:"過去のお知らせ";
}
.accordion-btn.is-show::before{
  content: "閉じる";
}
.accordion-btn::after{
  content: "";
  position: absolute;
  right: 15px;
  top: 40%;
  width: 12px;
  height: 12px;
  background: url(../images/ic_arrow_w.svg) no-repeat;
  background-size: contain;
  background-position: center;
  transform: rotate(90deg);
  opacity: 0.7;
  transition: all ease .3s;
}
.accordion-btn.is-show::after{
  transform: rotate(-90deg);
}

.bd_box{
  border: 1px solid var(--font);
  padding: 40px;
  margin-bottom: 40px;
  text-align: center;
}
#schedule .en2026{
  background: var(--white);
  border-radius: 24px;
  text-align: center;
  padding: 40px;
}
@media screen and (max-width:1300px) {
  #schedule .date_box article{
    width: auto;
  }
  #schedule .en2026 .tb_block{
    display: block;
  }
}

#schedule{
  position: relative;
  background: var(--bg-pale);
  overflow-x: clip;
}
#schedule section.in_box{
  align-items: stretch;
  gap: 0 5%;
}
#schedule section .hl{
  width: 20%;
}
#schedule section .hl h2{
  position: sticky;
  top: 100px;
  left: 0;

  width: 100%;
  padding: 105px 40px 40px 40px;
  border-radius: 24px;
  background-color: var(--white);
}
#schedule .date_box{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
#schedule .date_box::after{
  content: "";
  width: 32%;
}
#schedule .date_box article{
  background: var(--white);
  padding: 20px 25px;
  margin-bottom: 20px;
  position: relative;
  width: 32%;
  border-radius: 16px;
  border: 1px solid var(--font);
}
#schedule .date_box article.finish{
  background: rgba(255,255,255,.7);
}
#schedule .date_box#festival article,#schedule #briefing .date_box article{
  width: 100%;
}
.date_box article::before{
  content: "";
  position: absolute;
  left: 25px;
  top: 0;
  width: 50px;
  height: 3px;
  background: var(--pink);
}
.date_box article.cate_co::before{
  background: #3B75BE;
}
.date_box article.cate_ke::before{
  background: #37AE38;
}
.date_box article.cate_de::before{
  background: #E94929;
}
.date_box article.cate_co.cate_ke::before,
.date_box article.cate_co.cate_de::before{
  width: 25px;
}
.date_box article.cate_co.cate_de::before,
.date_box article.cate_co.cate_ke::before{
  background: #3B75BE;
}
.date_box article.cate_co.cate_de::after{
  content: "";
  position: absolute;
  left: 50px;
  top: 0;
  width: 25px;
  height: 3px;
  background: #E94929;
}
#briefing .date_box article::before{
  display: none;
}
.date_box article.cate_co.cate_ke::after{
  content: "";
  position: absolute;
  left: 50px;
  top: 0;
  width: 25px;
  height: 3px;
  background: #37AE38;
}

.date_box a{
  font-size: 90%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin:1em 0;
  padding: 10px 40px 10px 10px;
  text-align: center;
  color: var(--font);
  text-decoration: none;
  background: var(--white);
  border: 1px solid var(--font);
  filter: drop-shadow(0 3px 0 #594939);
  border-radius: 5px;
}
.date_box a:hover{
  background: #f0f4f7;
  transform: translateY(5px);
  filter: none;
}
.date_box a::after{
  content: "";
  position: absolute;
  right: 15px;
  top: 50%;
  transform: translateY(-50%);
  width: 12px;
  height: 12px;
  background: url(../images/ic_arrow.svg) no-repeat;
  background-size: contain;
  background-position: center;
  opacity: 0.7;
  transition: all ease .3s;
}
.date_box a:hover:after{
  opacity: 1;
  right: 10px;
}
.date_box a[href$=".pdf"]::after,
.date_box a.icon_link::after{
  content: "";
  border: none;
  font-size: 1em;
  margin-left: 0;
  padding: 0;
}
.date_box a[href$=".pdf"]::before,
.date_box a.icon_link::before{
  content: "";
  display: inline-block;
  vertical-align: middle;
  margin-right: 0.5em;
  width: 18px;
  height: 18px;
  background: url(../images/ic_pdf.svg) no-repeat;
}
.date_box article em{
  font-size: 2.4em;
}
.date_box article em small{
  padding-left: 0.5em;
  font-size: 45%;
  font-weight: normal;
}
/*終了しました*/
.finish em{
  color:#94A0B6;
}
.finish em::after{
  content:"";
  display: inline-block;
  vertical-align: middle;
  margin-left: 10px;
  width:87px;
  height:18px;
  background:url(../images/txt_finish.svg);
  background-repeat: no-repeat;
  background-size: contain;
  background-position: left center;
}
/*入試説明会のみ*/
#briefing article em{
  display: table;
  margin-bottom: 10px;
}
#briefing .finish em::after{
  display: none;
}
#briefing .finish em::before{
	content: "";
	display: table;
	margin-left: 0;
	width: 80px;
	height: 23px;
	background:url(../images/txt_finish_sm.svg);
	background-repeat: no-repeat;
	background-size: contain;
	background-position: bottom center;
}
.finish a em::after{
  display: none;
}

.date_box ul{
  margin: 1em 0;
}
.date_box ul > li{
  display: table;
  text-align: center;
  border-radius: 30px;
  padding: 2px 15px;
  margin-bottom: 0.5em;
  font-size: 1vw;
  color: var(--pink);
  border: 1px solid var(--pink);
  background: rgba(233, 84, 103,0.1);
}
.date_box ul > li.cate_co{
  color:#3B75BE;
  border-color: #3B75BE;
  background: rgba(59, 117, 190,0.1);
}
.date_box ul > li.cate_ke{
  color:#37AE38;
  border-color: #37AE38;
  background: rgba(55, 174, 56,0.1);
}
.date_box ul > li.cate_de{
  color:#E94929;
  border-color: #E94929;
  background: rgba(233, 73, 41,0.1);
}

#schedule .in_box{
  position: relative;
}
#schedule .in_box > div{
  position: relative;
  z-index: 1;
}
#schedule .in_box::before,
#schedule .in_box::after{
  content:"";
  position: absolute;
  border-radius: 50%;
  width: 20%;
  aspect-ratio: 1 / 1;
  filter: blur(100px);
  pointer-events: none;
  mix-blend-mode: multiply;
  opacity: 0.2;
}
#schedule .in_box::before{
  background: var(--pink);
  left: -10%;
  bottom: 30%;
}
#schedule .in_box::after{
  background: #3B75BE;
  right: -10%;
  top: 20%;
}
#schedule h2::before{
  background-image: url(../images/ic_schedule.svg);
  background-repeat: no-repeat;
  background-color: var(--white);
  background-position: center;
  background-size: 40%;
  border: none;
  top: 40px;
}

#schedule .date_box#festival{
  flex-direction: column;
  position: relative;
}
#schedule .date_box#festival::before{
  content:"";
  position: absolute;
  border-radius: 50%;
  width: 20%;
  aspect-ratio: 1 / 1;
  filter: blur(100px);
  pointer-events: none;
  mix-blend-mode: multiply;
  opacity: 0.2;
  background: #37AE38;
  right: -10%;
  top: 0;
}
#schedule .date_box#festival h4 span{
  background: var(--bg-pale);
}
#schedule .date_box#festival h4::before{
  content: "";
  width: 20px;
  height: 20px;
  background: url(../images/ic_festival.svg) no-repeat var(--bg-pale);
  display: inline-block;
  vertical-align: middle;
  position: relative;
  z-index: 1;
}
#schedule .date_box#festival a{
  display: flex;
  justify-content: flex-start;
}
.date_box#festival a em{
  font-size: 1em;
}
.date_box#festival .txt_box{
  width: 65%;
}
.date_box#festival .txt_box .fl_box{
  justify-content: flex-start;
}
.date_box#festival .txt_box .fl_box em:last-of-type{
  margin-left: 1em;
}
.date_box#festival .img_box{
  width: 25%;
  display: flex;
  flex-direction: column;
}
.date_box#festival .img_box figure:not(:last-of-type){
  margin-bottom: 20px;
}

#briefing{
  position: relative;
  padding-bottom: 40px;
}
#briefing::before{
  content: "";
  background: rgba(247,240,240,0.75);
  width: 95%;
  height: 100%;
  position: absolute;
  pointer-events: none;
  right: 0;
  bottom: 0;
  border-radius: 50px 0 0 0;
  mix-blend-mode: multiply;
}
#briefing section{
  position: relative;
  z-index: 1;
  padding-left: 5%;
  gap: 0 5%;
}
#briefing section::before{
  content:"";
  position: absolute;
  border-radius: 50%;
  width: 20%;
  aspect-ratio: 1 / 1;
  filter: blur(100px);
  pointer-events: none;
  mix-blend-mode: multiply;
  opacity: 0.2;
  background: #E94929;
  left: -10%;
  top: -10%;
}
#briefing section h2::before{
  background-image: url(../images/ic_briefing.svg);
  background-color: var(--white);
  background-repeat: no-repeat;
  background-position: center;
  background-size: 50%;
  border:none;
}
#briefing .date_box{
  margin-bottom: 30px;
}
#briefing .date_box article > div{
  width: 31%;
  padding-bottom: 20px;
}
#briefing .date_box article > div:not(:last-of-type){
  border-right: 1px solid rgba(44, 67, 111,0.2);
}

#access{
  position: relative;
}
#access > .fl_box:not(.access_map){
  padding: 120px 0 80px 0;
}
#access .txt_box{
  width: 40%;
  padding: 0 10%;
  position: relative;
  z-index: 1;
}
#access .txt_box .ul_link{
  margin-top: 2em;
  max-width: 250px;
}
#access #map{
  position: relative;
  z-index: 1;
  width: 55%;
  aspect-ratio: 10 / 4;
}
#access #map iframe{
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: none;
}
.access_map{
  margin: 0 auto;
}
.access_map dl{
  width: 48%;
  border-top: 2px solid rgba(44, 67, 111,0.2);
}
.access_map dt{
  font-weight: bold;
  padding: 2em 0;
  font-size:120%
}

#college{
  padding: 120px 0 80px 0;
}
#college .txt_box{
  width: 48%;
  padding: 0 10%;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
#college .txt_box::before{
  content:"";
  position: absolute;
  right:0;
  top:0;
  background: #E94929;
  opacity: .05;
  width: 65%;
  height: 85%;
}
#college .txt_box h3 em{
  color: #E94929;
}
#college .txt_box .btn{
  margin-top: 60px;
}
#college .img_box{
  width: 48%;
  display: flex;
  justify-content: space-between;
}
#college .img_box figure{
  width: 48%;
}

#links{
  justify-content: space-between;
  padding: 80px 5%;
  margin: 80px auto;
  background: var(--gr-pale);
  position: relative;
}
#links::before{
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-image: var(--bgfl) ;
  background-repeat: no-repeat;
  background-size: 100% auto;
  background-position: top right;
}
#links > div{
  width: 23%;
  position: relative;
  z-index: 2;
}
#links > div a{
  aspect-ratio: 1 / 1;
  display: flex;
  flex-direction: column;
  background: var(--white);
  justify-content: center;
  text-align: center;
  text-decoration: none;
  color: var(--font);
  border-radius: 16px;
  filter: drop-shadow(0 0 10px rgba(0,0,0,0.2));
  position: relative;
  border: 4px solid var(--white);
}
#links > div a:hover{
  border-color: var(--orange);
  transform: scale(0.95);
  filter: drop-shadow(0 3px 10px rgba(219,55,55,0.2));
}
#links > div a span{
  font-size: 140%;
}
#links > div a small{
  color: var(--orange);
}
#links > div a img{
  max-height: 36px;
  width: auto;
  margin-bottom: 30px;
}

#links > div a::before{
  content: "";
  position: absolute;
  right: -4px;
  bottom: -4px;
  width: 42px;
  height: 42px;
  background-color: var(--orange);
  background-repeat: no-repeat;
  background-position: center;
  border-radius: 16px 0 16px 0 ;
}
#links > div a::after{
  content: "";
  position: absolute;
  right: -4px;
  bottom: -4px;
  width: 42px;
  height: 42px;
  background-image: url(../images/ic_arrow_w.svg);
  background-size: 30%;
  background-repeat: no-repeat;
  background-position: center;
  transition: all ease .3s;
}
#links > div a:hover::after{
  animation: hover_arrow 1s forwards 0s;
}

.bg{
  background: var(--bg-pale);
  padding-top: 100px;
  border-radius: 50px 50px 0 0;
}
#department > div{
  width: 32%;
}
#department a{
  display: block;
  position: relative;
  aspect-ratio: 1 / 1;
  border-radius: 16px;
  overflow: hidden;
  color: var(--white);
  text-decoration: none ;
}
#department a::before{
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: var(--font);
  z-index: 1;
  opacity: 0.5;
  transition:all ease .5s;
}
#department div:nth-of-type(1) a:hover::before{
  background: #3B75BE;
}
#department div:nth-of-type(2) a:hover::before{
  background: #348a36;
}
#department div:nth-of-type(3) a:hover::before{
  background: #E94929;
}
#department a em,#department a span{
  position: absolute;
  z-index: 1;
}
#department a em{
  width: 80%;
  top: 50%;
  left: 10%;
  transform: translateY(-50%);
  font-weight: normal;
  font-size: 1.6vw;
}
#department a span{
  display: block;
  width: 80%;
  left: 10%;
  bottom: 5%;
  font-size: 80%;
  transition: all ease .3s;
}
#department a:hover span{
  left: 12%;
}
#department a span::after{
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  width: 40px;
  height: 40px;
  border: 1px solid var(--white);
  border-radius: 10px;
  background: url(../images/ic_arrow_w.svg) no-repeat;
  background-position: center;
  background-size: 35%;
  transition: all ease .5s;
}
#department a:hover span::after{
  background: url(../images/ic_arrow.svg) no-repeat var(--white);
  background-position: center;
  background-size: 35%;
  animation: hover_arrow 1s forwards 0s;
}
#department a img{
  position: relative;
  z-index: 0;
  transition: all ease 1s;
}
#department a:hover img{
  animation:scale 12s forwards infinite 0s;
}
@keyframes scale{
  0%{
    transform: scale(1);
  }
  50%{
    transform: scale(1.2);
  }
  100%{
    transform: scale(1);
  }
}

.bg2{
  position: relative;
}
.bg2::before{
  content: "";
  background: rgba(247,240,240,0.75);
  width: 95%;
  height: 100%;
  position: absolute;
  pointer-events: none;
  right: 0;
  bottom: 0;
  border-radius: 50px 0 0 0;
  mix-blend-mode: multiply;
}
.bg2 section{
  position: relative;
  z-index: 1;
  padding: 80px 5%;
  margin-top: 100px;
}
#guidance{
  justify-content: space-between;
}
#guidance .txt_box{
  width: 35%;
}
#guidance h3{
  width: 100%;
}
#guidance .table{
  width: 60%;
  padding: 5%;
  background: var(--white);
  border-radius: 24px;
}
#guidance table{
  width: 100%;
  font-size:90%;
  border-top: 1px solid rgba(45,67,111,0.2);
}
#guidance table tr{
  border-bottom: 1px solid rgba(45,67,111,0.2);
}
#guidance table th,
#guidance table td{
  text-align: center;
  padding: 15px 10px;
}
#guidance table th{
  font-size:90%
}

#sns{
  width: 80%;
  margin-top: 60px;
  justify-content: flex-start;
  gap: 0 100px;
}
#sns dl{
  margin-bottom: 40px;
}
#sns dt{
  font-size: 2em;
  font-weight: bold;
  margin-bottom: 15px;
}
#sns dt i{
  width: 32px;
  margin-right: 0.1em;
  display: inline-flex;
  justify-content: center;
  align-items: center;
}
#sns dt i img{
  width: 26px;
}
#sns dl:first-of-type dt i img{
  width: 28px;
}

#sns dd{
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}
#sns dd a{
  width: calc(100% / 3 - 14px);
  color: var(--font);
  padding:15px 30px 15px 15px;
  background: var(--white);
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  position: relative;
  filter: drop-shadow(0 3px 10px rgba(190,139,85,0.2));
  border-radius: 8px;
}
#sns dd a:hover{
  color: var(--pink);
  filter: var(--shadow);
}
#sns dd a::after{
  content: "";
  position: absolute;
  right: 15px;
  top: 50%;
  transform: translateY(-50%);
  width: 12px;
  height: 12px;
  background: url(../images/ic_arrow.svg) no-repeat;
  background-size: contain;
  background-position: center;
  transition: all ease .3s;
}
#sns dd a:hover:after{
  right: 10px;
}

#sns article{
  margin-top: 10px;
}
#sns article > div{
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 32px;
}
#sns article img{
  width: 48px;
  transition: all ease .3s;
}
#sns article a.fade:hover img{
  opacity: 0.5;
}
#sns div[data-sns="insta"]{
  width: auto !important;
  align-items: flex-start;
  gap: 16px;
}
#sns div[data-sns="insta"] ul{
  flex-direction: column;
  gap: 4px 0;
}
#sns div[data-sns="insta"] a{
  color: var(--font);
}

.btn_l{
  margin: 100px auto;
}
.btn_l > div{
  width: 48%;
}
.btn_l a{
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  border-radius: 20px ;
  overflow: hidden;
  position: relative;
  text-decoration: none;
  font-weight: bold;
  font-size:1.8vw;
  aspect-ratio: 16 / 9;
  background: var(--bg-pale);
  color: var(--font);
}
.btn_l a:hover{
  background: #FEE9EC;
}
.btn_l a::after{
  content:"";
  position: absolute;
  right:5%;
  bottom:10%;
  width: 50px;
  height: 50px;
  border-radius: 10px;
  background: url(../images/ic_arrow_w.svg) no-repeat;
  background-color: var(--font);
  background-position: center;
  background-size: 30%;
  transition:all ease .3s;
}
.btn_l a:hover::after{
  animation: hover_arrow 1s forwards 0s;
}
@keyframes hover_arrow{
  0%{
    opacity: 1;
  }
  40%{
    opacity: 0;
    transform:translateX(20px);
  }
  70%{
    opacity: 0;
    transform:translateX(-20px);
  }
  100%{
    opacity: 1;
    transform:translateX(0);
  }
}

.btn_l .bg_c a{
  color: var(--white);
  position: relative;
  background: none;
}
.btn_l .bg_c a::before{
  content:"";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: var(--pink);
  opacity: 1;
  transition:all ease .3s;
}
.btn_l .bg_c a:hover::before{
  opacity: 0.8;
}
.btn_l .bg_c{
  position: relative;
  border-radius: 20px ;
  overflow: hidden;
}
.btn_l .bg_c:hover::before{
  transition: all ease 1s;
  transform: scale(1.2);
}
.btn_l .bg_c a::after{
  background-image: url('data:image/svg+xml;charset=utf8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%3Csvg%20id%3D%22_%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC_2%22%20data-name%3D%22%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC%202%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2011.23%2011.33%22%3E%20%3Cdefs%3E%20%3Cstyle%3E%20.cls-1%20%7B%20fill%3A%20%23E95467%3B%20stroke-width%3A%200px%3B%20%7D%20%3C%2Fstyle%3E%20%3C%2Fdefs%3E%20%3Cg%20id%3D%22_%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC_2-2%22%20data-name%3D%22%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC%202%22%3E%20%3Cpolygon%20class%3D%22cls-1%22%20points%3D%225.57%200%204.16%201.41%207.41%204.66%200%204.66%200%206.66%207.41%206.66%204.16%209.91%205.57%2011.33%2011.23%205.66%205.57%200%22%2F%3E%20%3C%2Fg%3E%3C%2Fsvg%3E');
  background-repeat: no-repeat;
  background-color: var(--white);
}

.btn_l a em{
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 20px 0;
}
.btn_l a em::before{
  content: "";
  width: 60px;
  height:60px;
  background: url(../images/ic_contact.svg) no-repeat;
  background-position: center;
  background-size: 40%;

  border: 2px solid var(--font);
  border-radius: 50%;
}
.btn_l .bg_c a em::before{
  border-color: var(--white);
  background-image: url('data:image/svg+xml;charset=utf8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%3Csvg%20id%3D%22_layer_2%22%20data-name%3D%22layer%202%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2022%2016.29%22%3E%20%3Cdefs%3E%20%3Cstyle%3E%20.cls-1%20%7B%20fill%3A%20%23fff%3B%20stroke-width%3A%200px%3B%20%7D%20%3C%2Fstyle%3E%20%3C%2Fdefs%3E%20%3Cg%20id%3D%22_layer_2-2%22%20data-name%3D%22layer%202%22%3E%20%3Cg%3E%20%3Cpath%20class%3D%22cls-1%22%20d%3D%22m18%2C16.29H4c-2.21%2C0-4-1.79-4-4V4C0%2C1.79%2C1.79%2C0%2C4%2C0h14c2.21%2C0%2C4%2C1.79%2C4%2C4v8.29c0%2C2.21-1.79%2C4-4%2C4ZM4%2C2c-1.1%2C0-2%2C.9-2%2C2v8.29c0%2C1.1.9%2C2%2C2%2C2h14c1.1%2C0%2C2-.9%2C2-2V4c0-1.1-.9-2-2-2H4Z%22%2F%3E%20%3Cpolygon%20class%3D%22cls-1%22%20points%3D%2210.81%2010.07%203.29%204.51%204.48%202.9%2010.84%207.61%2017.54%202.89%2018.69%204.52%2010.81%2010.07%22%2F%3E%20%3C%2Fg%3E%20%3C%2Fg%3E%3C%2Fsvg%3E');
}

/*-----------------------------------------------
__Modal
-----------------------------------------------*/
@media print{
  .modal-window{
    position:absolute;
  }
}
#schedule .modal-window .modal-inner{
  max-height: 85vh;
  max-width: 1000px;
  top: 50%;
  transform: translate(-50%,-50%);
  padding-right: 20px;
  background: #FEE9EC;
  text-align: center;
  border-radius: 20px;
  overflow:visible;
}
#schedule .modal-window .modal-close{
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
}
#schedule .scroll{
  overflow-y: scroll;
  padding: 0 20px 0 0;
  max-height: calc(85vh - 60px);
}
#schedule .modal-window .modal-inner .scroll::-webkit-scrollbar{
  width: 3px;
}
#schedule .modal-window .modal-inner .scroll::-webkit-scrollbar-track{
  background: #FEE9EC
}
#schedule .modal-window .modal-inner .scroll::-webkit-scrollbar-thumb{
  background: var(--white);
}
#schedule .modal-window .inner-close{
  right: -15px;
  top: -15px;
}
#schedule .modal-window .inner-close a{
  text-decoration: none;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--font);
  background: var(--white);
  border-radius:50%;
  padding:10px;
  line-height:1;
}
#schedule .modal-window .inner-close a:hover{
  opacity: 0.5;
}
#schedule .modal-inner h2{
  padding: 25px 10px;
  background-image: url(../images/bg_visual.jpg);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  color: var(--font);
  margin-bottom: 1em;

  flex-direction: column;
  align-items: center;
  writing-mode: horizontal-tb;
}
#schedule .modal-inner h2::before{
  display:none;
}
#schedule .modal-inner h2 em{
  background: var(--white);
  filter:drop-shadow(0 0 10px rgba(45,67,111,0.5));
  font-size: 1.6em;
  padding: 0 5px;
}
#schedule .modal-inner h2 span{
  font-size: 1.1em;
  color:var(--font);
  text-shadow: 0 2px 0 var(--white);
}
#schedule .modal-inner p{
  padding: 0;
  margin-bottom: 1em;
}
#schedule .modal-inner dd p{
  margin-bottom: 0;
  text-align: left;
}
#schedule .modal-inner dd span{
  background: #f0f4f7;
  display:block;
  text-align: center;
  font-size:80%;
  margin-bottom: 0.5em;
}
#schedule .modal-inner section{
  display: block;
  padding: 25px;
  margin: 0 ;
  background: var(--white);
  width: 100%;
}
#schedule .modal-inner section h3{
  width: 100%;
  font-size: 1.3em;
  margin-bottom: 1em;
  background: var(--font);
  padding:10px;
  color:var(--white);
  text-align: center;
}
#schedule .modal-inner dl{
  text-align: left;
  display: flex;
  flex-wrap: wrap;
}
#schedule .modal-inner dt{
  display:flex;
  border-top: 1px solid rgba(44, 67, 111,0.2);
  width: 45%;
  padding: 15px;
  font-weight: bold;
  font-size: 110%;
}
#schedule .modal-inner dd{
  display: flex;
  flex-direction: column;
  justify-content: center;
  border-top: 1px solid rgba(44, 67, 111,0.2);
  width: 55%;
  padding: 15px;
}
#schedule .modal-inner dt.w100{
  width: 100%;
  border-bottom: 1px solid rgba(44, 67, 111,0.2);
}
#schedule .modal-inner dt em{
  color: #3B75BE;
}
#schedule .modal-inner dt span{
  display:flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  font-size: 90%;
  padding: 10px 10px 10px 0;
  margin-right: 20px;
  color: var(--font);
  border-right: 2px solid rgba(44, 67, 111,0.2);
}
#schedule .modal-inner dt em{
  display: flex;
  align-items:center;
}
#schedule .modal-inner dt small{
  font-size: 70%;
  display: block;
}

#schedule .modal-inner dd a{
  color: var(--pink);
  text-decoration: underline;
}
#schedule .modal-inner dd a:hover{
  text-decoration: none;
}
#schedule .modal-inner .bd_box{
  width: 100%;
  padding: 15px;
  border-radius: 10px;
  border: 1px solid var(--font);
  position: relative;
  margin: 30px auto;
}
#schedule .modal-inner .bd_box p:last-of-type{
  margin-bottom: 0;
}
#schedule .modal-inner section .bd_box{
  margin: 30px auto;
}

/*-----------------------------------------------
__low
-----------------------------------------------*/
body.kasou #visual{
  height:auto;
}
body.kasou #visual::before{
  content: "";
  pointer-events: none;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-image: var(--bgfl02);
  background-position: top center;
  background-repeat: no-repeat;
  background-size: 100% auto;
}
body.kasou #visual > div.fl_box{
  height: 100%;
}
body.kasou #visual .txt_box{
  width:100%;
  flex-direction: row;
  justify-content: space-between;
  align-items: flex-end;
}
#visual .txt_box .txt{
  width:40%;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
body.kasou #visual .txt_box .txt{
  justify-content: center;
}
#visual .txt_box .txt img{
  width: 20%;
}
#visual .txt_box .txt img:last-of-type{
  width: 74%;
}
body.kasou #visual .txt_box .fl_box{
  width:55%;
  font-size:90%;
  justify-content: flex-end;
  align-items: center;
  gap: 0 20px;
}

body.kasou section .hl{
  padding: 0 40px 0 0;
}
body.kasou section .hl h2{
  width: 100%;
  padding: 120px 40px 48px 40px;
  border-radius: 24px;
  background-color: var(--bg-pale);
}
body.kasou section .hl h2::before{
  top: 40px;
  background-color: var(--white) !important;
}
body.kasou .bg section .hl h2{
  padding-top: 112px;
  background-color: var(--white);
}
body.kasou section .content.bg{
  border-radius: 24px;
  padding: 56px 48px;
}
body.kasou section .content.bg .bg_wh{
  background-color: var(--white);
  border-radius: 24px;
  padding: 40px;
  margin: 48px auto;
}

.pg_list{
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 56px 48px;
  background: var(--bg-pale);
  padding: 48px;
  border-radius: 24px;
}
#program article{
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  width: calc(50% - 24px);
  position: relative;
}
#program article dl{
  position: relative;
  background-color: var(--white);
  border-radius: 12px;
  padding: 24px;
}
#program article dl::before{
  content: "";
  pointer-events: none;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: -14px;
  
  width:0;
  height:0;
  border-style:solid;
  border-width: 0 16px 16px 16px;
  border-color: transparent transparent var(--white) transparent;
}
#program article dt{
  font-weight: bold;
  font-size:120%;
  letter-spacing: 0.1em;
  margin-bottom: 1em;
  text-align: center;
}
#program article dt span{
  position: relative;
  display: inline-block;
  padding-bottom: 8px;
}
#program article dt span::after{
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 6px;
  background-image: repeating-linear-gradient(90deg, var(--green), var(--green) 6px, transparent 6px, transparent 14px);
  background-position: left bottom;
  background-repeat: repeat-x;
  background-size: 100% 4px;
}
#program article figure{
  aspect-ratio: 3 / 2;
  overflow: hidden;
  border-radius: 12px;
  margin-bottom: 32px;
  position: relative;
  z-index: 1;
  filter: var(--shadow);
}
#program article dd p:last-of-type{
  margin-bottom: 0;
}

span.cate_co,
span.cate_ke,
span.cate_de,
em.cate_co,
em.cate_ke,
em.cate_de{
  display: inline-block;
  text-align: center;
  border-radius: 30px;
  padding: 2px 15px;
  margin: 0 0.25em;
  color: var(--pink);
  border: 1px solid var(--pink);
  background: rgba(233, 84, 103,0.1);
}
span.cate_co,
em.cate_co{
  color:#3B75BE;
  border-color: #3B75BE;
  background: rgba(59, 117, 190,0.1);
}
span.cate_ke,
em.cate_ke{
  color:#37AE38;
  border-color: #37AE38;
  background: rgba(55, 174, 56,0.1);
}
span.cate_de,
em.cate_de{
  color:#E94929;
  border-color: #E94929;
  background: rgba(233, 73, 41,0.1);
}
.bd_inline{
  border:1px solid var(--font);
  display: inline-block;
  padding: 0 10px;
  margin:0 0.25em;
}

#program h2::before{
  background: url(../images/ic_briefing.svg) no-repeat;
  background-position: center;
  background-size: 60%;
}
#u_college h2::before{
  background: url(../images/ic_college.svg) no-repeat;
  background-position: center;
  background-size: 40%;
}
#qa h2::before{
  background: url(../images/ic_qa.svg) no-repeat;
  background-position: center;
  background-size: 60%;
}
#data h2::before{
  background: url(../images/ic_data.svg) no-repeat;
  background-position: center;
  background-size: 60%;
}

#oc_calendar{
  justify-content: space-between;
  margin-bottom: 1em;
}
#oc_calendar > div{
  width: 45%;
}
@media screen and (max-width:1500px) {
  #oc_calendar{
    flex-direction: column;
    }
    #oc_calendar > div{
    width: 100%;
    max-width: 680px;
    }
}


#oc_calendar article{
  display: flex;
  justify-content: space-between;
  gap: 15px;
  margin-bottom: 20px;
}
#oc_calendar article.column{
  flex-direction: column;
}
#oc_calendar .txt_box{
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px 0;
}
#oc_calendar dl{
  width: 100%;
  display: flex;
  align-items: flex-start;
  gap: 20px;
  margin-bottom: 20px;
}
#oc_calendar dt{
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  width: 40px;
  height: 40px;
  font-size: 120%;
  background: var(--pink);
  color: var(--white);
}
#oc_calendar dd{
  width: calc(90% - 40px);
}
#oc_calendar dd ul > li{
  padding-left: 20px;
  position: relative;
  margin-bottom: 0.25em;
}
#oc_calendar dd ul > li::before{
  content: "●";
  position: absolute;
  left: 0;
  top: 0;
}
#oc_calendar dd span{
  font-size: 80%;
}
#oc_calendar .img_box{
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}
#oc_calendar .img_box figure{
  height: 100px;
}
#oc_calendar .img_box figure img{
  max-height: 100%;
  width: auto;
}
#oc_calendar article.column dl{
  margin-bottom: 0;
}
#oc_calendar article.column .img_box{
  width: calc(100% - 50px);
  margin-left: auto;
}

#qa .accordion{
  margin-top: 20px;
  background: var(--white);
  border-radius: 12px;
}
#qa .accordion dt{
  padding:18px 48px 18px 24px;
  cursor: pointer;
  position: relative;
  transition:all ease .5s;
}
#qa .accordion dt:hover{
  background: rgba(255,255,255,0.5);
}
#qa .accordion dt::before{
  content:"Q";
  font-weight: bold;
  font-size:140%;
  display: inline-block;
  margin-right: 0.5em;
  color:var(--green);
}
#qa .accordion dt::after{
  content:"+";
  position: absolute;
  right:24px;
  top:18px;
  font-size:140%;
  opacity: 0.5;
  transition:all ease .7s;
}
#qa .accordion dt.open::after{
  content: "-";
}
#qa .accordion dd{
  border-top: 1px solid rgba(89, 73, 57, 0.1);
  padding: 24px 24px 24px 56px;
  position: relative;
}
#qa .accordion dd::before{
  position: absolute;
  left:24px;
  top:18px;
  content:"A";
  font-weight: bold;
  font-size:140%;
  color:var(--pink);
}
#qa .accordion dd table{
  margin:20px 0;
  border:1px solid rgba(44, 67, 111,0.2);
}
#qa .accordion dd td{
  border:1px solid rgba(44, 67, 111,0.2);
  padding:15px;
  background: var(--white);
}
#qa .accordion dd p:last-of-type{
  margin-bottom: 0;
}

#u_college .btn{
  padding: 40px 0;
  background: var(--white);
  border-radius: 16px;
}
#u_college .college_box{
  gap: 40px;
}
#u_college .video_box{
  margin: 60px auto;
  width: 100%;
  max-width:720px;
  aspect-ratio: 16 / 9;
  border-radius: 12px;
  overflow: hidden;
}
#u_college .video_box iframe{
  width:100%;
  height:100%;
  object-fit: cover;
}

#data article{
  background: var(--white);
  padding:24px;
  border-radius: 24px;
  margin-bottom: 80px;
}
#data .fl_box > article{
  width:49%;
  margin-bottom: 0;
}
#data .fl_box{
  margin-bottom: 80px;
}
#data dl{
  align-items: center;
  background: #3A76BC;
  color:var(--white);
  border-radius: 12px;
  padding:16px 24px;
}
#data .fl_box article:last-of-type dl{
  background: #348a36;
}
#data em.num{
  display: inline-block;
  margin-right: 5px;
  font-size:250%;
}
#data article:last-of-type{
  margin-bottom: 0;
}
#data span.cate_co,#data span.cate_ke,#data span.cate_de{
  margin: 0 0 0.5em 0;
}

/*-----------------------------------------------
__Footer
-----------------------------------------------*/
footer{
	background:var(--bg-pale);
  font-size:90%;
  color:var(--font);
  position: relative;
  padding-top: 60px;
}
footer::before{
  content:"";
  position: absolute;
  left: 0;
  top:0;
  width: 100%;
  height: 80px;
  background: var(--white);
  pointer-events: none;
  border-radius: 0 0 50px 50px;
  z-index: 2;
}
footer::after{
  content:"";
  position: absolute;
  left: 0;
  top:0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  background-image: var(--bgfl) ;
  background-repeat: no-repeat;
  background-size: 100% auto;
  background-position: right bottom;
}
#pagetop{
	display: table;
  position: relative;
  z-index: 3;
  margin: 0 auto 40px auto;
}
#pagetop a{
	display: flex;
  justify-content: center;
  align-items: center;
	width:152px;
	height:152px;
	border-radius: 50%;
	transition:all ease 1s;
  position: relative;
}
#pagetop a:hover{
  transition:all ease 1s;
  animation:scale_up 1s forwards;
}
@keyframes scale_up{
  0%{ transform: scale(1); }
  20%{ transform: scale(0.95); }
  100%{ transform: scale(1.25); }
}
@-webkit-keyframes scale_up{
  0%{ -webkit-transform: scale(1); }
  20%{ -webkit-transform: scale(0.95); }
  100%{ -webkit-transform: scale(1.25); }
}
#pagetop a::before{
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: url(../images/page_top.svg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
#pagetop a img{
  width: 32px;
}
#pagetop a:hover::before{
	animation:page_top 4s linear infinite;
}
@keyframes page_top{
	0%{transform:rotateZ(0deg);}
  100%{transform:rotateZ(360deg);}
}
@-webkit-keyframes page_top{
	0%{-webkit-transform:rotateZ(0deg);}
  100%{-webkit-transform:rotateZ(360deg);}
}


footer > div.fl_box{
  align-items: flex-start;
  background: var(--white);
  border-radius: 24px;
  padding: 40px;
  position: relative;
  z-index: 3;
}
footer address a{
  display: block;
  margin-bottom: 40px;
}
footer ul.fl_box{
  width: auto;
  justify-content: flex-end;
  align-items: flex-start;
  border-left: 1px solid #333;
}
footer ul > li{
  border-right: 1px solid #333;
  padding: 0 1em;
}
footer ul a{
  color: #333;
}
footer ul a:hover{
  text-decoration: underline;
}

footer small{
	display:block;
	padding:60px 0;
	color:var(--font);
  opacity: 0.7;
	text-align:center;
  position: relative;
  z-index: 2;
}

/*-----------------------------------------------
__Common
-----------------------------------------------*/
.fl_box{
	display:flex;
	width:100%;
  justify-content: space-between;
}
.fl_box.wrap{
  width: 90%;
}

.pc_no{
	display:none;
}
a.tel{
	pointer-events:none;
}


.ta_center{
	text-align:center;
}
.f_right{
	float: right;
}
.f_left{
	float: left;
}
.c_both{
	clear: both;
}
.img_line{
	margin: 5px;
	padding: 2px;
	border: 1px solid #ccc;
}
.icon{
	margin: 0 5px;
	vertical-align: middle;
}

#scroll-up{
  position: fixed;
  z-index:10;
  right:20px;
  bottom:60px;
  transform: scale(0.9);
  opacity: 0;
  pointer-events: none;
}
#scroll-up.fixed{
  animation:fade .7s forwards 0s;
  pointer-events: all;
}
@keyframes fade{
  0%{
    opacity:0;
    transform:translateY(20px);
  }
  100%{
    opacity: 1;
    transform:translateY(0px);
  }
}
#scroll-up .finish{
  display: none !important;
}

/*準備中
.visual_btn,
.visual_btn a{
  pointer-events: none;
}
.visual_btn::before,
.visual_btn::after,
.visual_btn a::before{
  display: none;
}
.visual_btn a::after{
  content:"\6E96\5099\4E2D";
  position: absolute;
  left:0;
  top:0;
  width: 100%;
  height: 100%;
  border-radius: 5px;
  background: rgba(44, 67, 111,0.5);
  color:var(--white);
  display: flex;
  padding:5%;
  justify-content: center;
  text-align: center;
  font-weight:normal;
  font-size:120%;
  letter-spacing: 0.1em;
  text-shadow: 0 0 10px rgba(44, 67, 111,0.7);
  box-sizing: border-box;
}

.btn_l .bg_c,
.btn_l .bg_c a{
  pointer-events: none;
}
.btn_l .bg_c{
  position: relative;
}
.btn_l .bg_c::after{
  content:"\6E96\5099\4E2D";
  position: absolute;
  z-index:3;
  left:0;
  top:0;
  width: 100%;
  height: 100%;
  border-radius:20px;
  background: rgba(44, 67, 111,0.5);
  color:var(--white);
  display: flex;
  padding:10%;
  justify-content: center;
  text-align: center;
  font-weight:normal;
  font-size:200%;
  letter-spacing: 0.1em;
  text-shadow: 0 0 10px rgba(44, 67, 111,0.7);
  box-sizing: border-box;
}*/