@charset "UTF-8";

/*
Theme Name: taw.warehouseofart.org 2024
Description: taw.warehouseofart.org 2024
Version: 2024.05
Author: YH
*/


/* ------------------------------------------
   Reset
------------------------------------------ */

html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-style: normal;
  font-weight: normal;
  font-size: 100%;
  vertical-align: baseline;
}

* {
  outline: none;
}

body {
  line-height: 1;
}

h1, h2, h3, h4, h5, h6 {
  font-weight: normal;
}

ol, ul {
  list-style: none;
}

blockquote {
  quotes: none;
}

blockquote:before, blockquote:after {
  content: '';
  content: none;
}

del {
  text-decoration: line-through;
}


/* tables still need 'cellspacing="0"' in the markup */

table {
  border-collapse: collapse;
  border-spacing: 0;
}

caption, th {
  text-align: left;
}

a:focus {
  outline: none;
}

a img {
  border: none;
}

input, button, select, textarea {
  border-radius: 0;
  -webkit-appearance: none;
  appearance: none;
}

button {
  background: none;
  border: none;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  cursor: pointer;
  padding: 0;
}

@media screen and (max-width: 767px) {
  input, button, select, textarea {}
}


/* ------------------------------------------
   Utility Class
------------------------------------------ */

.clearfix::after {
  content: ".";
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
}


/*
Web Fonts
font-family: 'Syncopate', sans-serif;
font-family: 'Zen Kaku Gothic New', sans-serif;
*/


/* Style
-------------------------------------------------------------- */

body {
  height: 100%;
  font-size: 16px;
  line-height: 2em;
  letter-spacing: 0.05em;
  color: #0B0E12;
  transition: opacity 0.6s ease;
  -webkit-print-color-adjust: exact;
  -webkit-text-size-adjust: none;
  animation: revert;
  font-feature-settings: "palt";
  font-family: 'Noto Sans JP', sans-serif;
}

body.show {
  opacity: 1 !important;
  /* height: 3000px; */
}

body p {
  color: inherit;
  font-size: inherit;
  line-height: 2em;
  letter-spacing: 0.05em;
}

a, a img, button {
  text-decoration: none;
  font-weight: 500;
  color: #0B0E12;
  transition: all 0.3s ease
}

.pc_view a:hover, .pc_view button:hover {
  opacity: 0.75;
}

span {
  font-size: inherit;
  font-weight: inherit;
  color: inherit;
}

pictuire, img {
  display: block;
  max-width: 100%;
  height: auto;
}

h1, h2, h3, h4, h5, h6 {
  line-height: inherit;
}

.non_pc {
  display: none !important;
}

.f_en {
  font-family: 'Roboto Condensed', sans-serif;
  font-weight: 700;
  letter-spacing: 0.08em;
}


/* =============================
  Common
============================= */

.language_jp .en,
.language_en .jp {
	display: none !important;
}
#grad1 {
  position: absolute;
  left: 50%;
  top: -107px;
  width: 2118px;
  margin-left: -1089px;
}

#grad1 image {
  width: 2009px;
  height: auto;
}

#grad1 polyline, #grad1 line {
  stroke-width: 0;
  stroke: #fff !important;
}

#grad1.active polyline, #grad1.active line {
  animation: anime1 3s ease;
  stroke-width: 80px;
  stroke-dasharray: 3500px;
  stroke-dashoffset: 100px;
}

@keyframes anime1 {
  0% {
    stroke-width: 0px;
    stroke-dashoffset: 3500px;
  }
  100% {
    stroke-width: 80px;
    stroke-dashoffset: 0px;
  }
}

body.simple #grad1.active polyline, body.simple #grad1.active line {
  animation: anime1_s 3s ease;
}

@keyframes anime1_s {
  0% {
    stroke-dashoffset: 3500px;
  }
  100% {
    stroke-dashoffset: 0px;
  }
}

#grad2 {
  position: absolute;
  left: 50%;
  top: 950px;
  width: 1109px;
  margin-left: -14px;
}

#grad2 image {
  width: 1060px;
  height: auto;
}

#grad2 polyline, #grad2 line {
  stroke-width: 0;
  stroke: #fff !important;
}

#grad2.active polyline, #grad2.active line {
  animation: anime2 3s ease;
  stroke-width: 80px;
  stroke-dasharray: 2400px;
  stroke-dashoffset: 100px;
}

@keyframes anime2 {
  0% {
    stroke-width: 0px;
    stroke-dashoffset: 2400px;
  }
  100% {
    stroke-width: 80px;
    stroke-dashoffset: 0px;
  }
}

#grad3 {
  position: absolute;
  left: 50%;
  top: 1160px;
  width: 2067px;
  margin-left: -1051px;
}

#grad3 image {
  width: 1960px;
  height: auto;
}

#grad3 polyline, #grad3 line {
  stroke-width: 0;
  stroke: #fff !important;
}

#grad3.active polyline, #grad3.active line {
  animation: anime3 3s ease;
  stroke-width: 80px;
  stroke-dasharray: 5000px;
  stroke-dashoffset: 100px;
}

@keyframes anime3 {
  0% {
    stroke-width: 0px;
    stroke-dashoffset: 5000px;
  }
  100% {
    stroke-width: 80px;
    stroke-dashoffset: 0px;
  }
}

#grad4 {
  left: 50%;
  top: 2352px;
  width: 2131px;
  margin-left: -1019px;
  position: absolute;
}

#grad4 image {
  width: 1900px;
  height: auto;
}

#grad4 polyline, #grad4 line {
  stroke-width: 0;
  stroke: #fff !important;
}

#grad4.active polyline, #grad4.active line {
  animation: anime4 3s ease;
  stroke-width: 80px;
  stroke-dasharray: 5100px;
  stroke-dashoffset: 100px;
}

@keyframes anime4 {
  0% {
    stroke-width: 0px;
    stroke-dashoffset: 5100px;
  }
  100% {
    stroke-width: 80px;
    stroke-dashoffset: 0px;
  }
}

#grad5 {
  position: absolute;
  left: 50%;
  top: 4502px;
  width: 2009px;
  margin-left: -998px;
}

#grad5 image {
  width: 1910px;
  height: auto;
}

#grad5 polyline, #grad5 line {
  stroke-width: 0;
  stroke: #fff !important;
}

#grad5.active polyline, #grad5.active line {
  animation: anime5 3s ease;
  stroke-width: 120px;
  stroke-dasharray: 5100px;
  stroke-dashoffset: 100px;
}

@keyframes anime5 {
  0% {
    stroke-width: 0px;
    stroke-dashoffset: 5100px;
  }
  100% {
    stroke-width: 120px;
    stroke-dashoffset: 0px;
  }
}

#grad6 {
  position: absolute;
  left: 50%;
  top: 6464px;
  width: 2015px;
  margin-left: -1014px;
}

#grad6 image {
  width: 2320px;
  height: auto;
}

#grad6 polyline, #grad6 line {
  stroke-width: 0;
  stroke: #fff !important;
}

#grad6.active polyline, #grad6.active line {
  animation: anime6 3s ease;
  stroke-width: 120px;
  stroke-dasharray: 5100px;
  stroke-dashoffset: 100px;
}

@keyframes anime6 {
  0% {
    stroke-width: 0px;
    stroke-dashoffset: 5100px;
  }
  100% {
    stroke-width: 120px;
    stroke-dashoffset: 0px;
  }
}

#grad7 {
  position: absolute;
  left: 50%;
  top: 8564px;
  width: 1983px;
  margin-left: -998px;
}

#grad7 image {
  width: 2290px;
  height: auto;
}

#grad7 polyline, #grad7 line {
  stroke-width: 0;
  stroke: #fff !important;
}

#grad7.active polyline, #grad7.active line {
  animation: anime7 3s ease;
  stroke-width: 120px;
  stroke-dasharray: 5100px;
  stroke-dashoffset: 100px;
}

@keyframes anime7 {
  0% {
    stroke-width: 0px;
    stroke-dashoffset: 5100px;
  }
  100% {
    stroke-width: 120px;
    stroke-dashoffset: 0px;
  }
}

#grad8 {
  position: absolute;
  left: 50%;
  top: 11263px;
  width: 2113px;
  margin-left: -1030px;
}

#grad8 image {
  width: 2320px;
  height: auto;
}

#grad8 polyline, #grad8 line {
  stroke-width: 0;
  stroke: #fff !important;
}

#grad8.active polyline, #grad8.active line {
  animation: anime7 3s ease;
  stroke-width: 120px;
  stroke-dasharray: 5100px;
  stroke-dashoffset: 100px;
}

@keyframes grad8 {
  0% {
    stroke-width: 0px;
    stroke-dashoffset: 5100px;
  }
  100% {
    stroke-width: 120px;
    stroke-dashoffset: 0px;
  }
}

body.simple #grad1, body.simple #grad2, body.simple #grad3, body.simple #grad4, body.simple #grad5, body.simple #grad6, body.simple #grad7, body.simple #grad8 {
  margin-top: 0 !important;
}

body.simple #grad1.active polyline, body.simple #grad2.active polyline, body.simple #grad3.active polyline, body.simple #grad4.active polyline, body.simple #grad5.active polyline, body.simple #grad6.active polyline, body.simple #grad7.active polyline, body.simple #grad8.active polyline {
  animation: none;
}

body.simple #grad1 polyline, body.simple #grad2 polyline, body.simple #grad3 polyline, body.simple #grad4 polyline {
  stroke-width: 80px;
}

body.simple #grad5 polyline, body.simple #grad6 polyline, body.simple #grad7 polyline, body.simple #grad8 polyline {
  stroke-width: 120px;
}

#grad2, #grad3, #grad4, #grad5, #grad6, #grad7, #grad8 {
  transition: margin 0.1s ease;
}

#logo polyline, #logo line {
  stroke-width: 48px;
  stroke: #fff !important;
  stroke-dasharray: 500px;
  stroke-dashoffset: 100px;
}

#grad_v {
  position: absolute;
  left: -151px;
  top: -139px;
  width: 855.68px;
}

#grad_v image {
  width: auto;
  height: auto;
}

#grad_v polyline, #grad_v line {
  stroke-width: 18px;
  stroke: #fff !important;
  animation: l1 3s ease;
  stroke-dasharray: 500px;
  stroke-dashoffset: 100px;
}

#grad_v .l2 {
  animation: l2 3s ease;
  stroke-dasharray: 400px;
  stroke-dashoffset: 100px;
}

#grad_v .l3 {
  animation: l3 3s ease;
  stroke-dasharray: 1000px;
  stroke-dashoffset: 100px;
}

#grad_v .l4 {
  animation: l4 2.5s ease;
  stroke-dasharray: 850px;
  stroke-dashoffset: 100px;
}

@keyframes l1 {
  0% {
    stroke-dashoffset: 500px;
  }
  100% {
    stroke-dashoffset: 0px;
  }
}

@keyframes l2 {
  0% {
    stroke-dashoffset: 400px;
  }
  100% {
    stroke-dashoffset: 0px;
  }
}

@keyframes l3 {
  0% {
    stroke-dashoffset: 1000px;
  }
  100% {
    stroke-dashoffset: 0px;
  }
}

@keyframes l4 {
  0% {
    stroke-dashoffset: 850px;
  }
  100% {
    stroke-dashoffset: 0px;
  }
}

.outline {
  position: relative;
  overflow: hidden;
  margin: 0 auto;
  transform-origin: 50% 0;
}

header {
  position: fixed;
  left: 0;
  top: 0;
  height: 0;
  width: 100%;
  z-index: 1000;
}

header>.inner {
  display: flex;
  justify-content: space-between;
  width: 100%;
  padding: 20px 80px 20px 60px;
  box-sizing: border-box;
  align-items: center;
}

header .bt_menu {
  display: block;
  width: 70px;
  height: 70px;
  margin: 0;
  font-size: 12px;
  text-align: center;
  box-sizing: border-box;
  z-index: 1000;
  overflow: hidden;
  padding-top: 0;
  position: relative;
}

header .bt_menu::before, header .bt_menu::after, header .bt_menu span::before {
  display: block;
  position: absolute;
  content: "";
  width: 38px;
  height: 1px;
  background: #000;
  top: 50%;
  left: 17px;
  transition: all 0.3s ease;
  margin-top: 7px;
}

header .bt_menu::after {
  margin-top: -7px;
}

header .bt_menu span::before {
  margin: 0;
}

header.open .bt_menu span::before {
  opacity: 0;
}

header.open .bt_menu::before {
  transform: rotate(155deg);
  left: 17px;
  margin: 0;
}

header.open .bt_menu::after {
  transform: rotate(-155deg);
  left: 17px;
  margin: 0;
}

header .bt_menu span {
  display: block;
  text-indent: -9999px;
  overflow: hidden;
  height: 100%;
}

header .language_box {
  margin: 0 12px 0 auto;
  width: 120px;
  position: relative;
}
header .language_box .bt_language {
  display: block;
  color: #fff;
  line-height: 42px;
  box-sizing: border-box;
  padding: 0 0 0 0;
  position: relative;
  z-index: 100;
}
header .language_box .bt_language span::after {
	top: 42%;
	left: auto !important;
	right: 10px;
	border: solid transparent;
	content: "";
	height: 0;
	width: 0;
	position: absolute;
	pointer-events: none;
	border-color: rgba(255, 255, 255, 0);
	border-top-color: #fff;
	border-width: 8px;
	margin-left: -8px;
	transform: scale(0.7, 1);
	opacity: 0;
	transition: 0.3 ease opacity;
}
header .language_box .bt_language.active span::after {
  opacity: 1;
}
header .language_box .bt_language.open::after {
left: 0;
}
header .language_box .list {position: absolute;top: 100%;background: #ececec;width: 100%;padding: 0 0;height: 0;transition: all ease 0.3s;overflow:hidden;z-index: 100;}
.pc_view header .language_box:hover .list,
header .language_box .bt_language.open + .list {
	height: 54px;
	padding: 10px 0;
}
header .language_box .list a  {display: block;line-height: 2em;text-align: center;font-size: 13px;transition: 0.3s ease all;}
.pc_view header .language_box .list a:hover,
header .language_box .list a.active  {
	opacity: 1;
	background: linear-gradient(135deg, #e5b239 0%, #e55659 100%);
	background: -webkit-linear-gradient(-45deg, #e5b239 0%, #e55659 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
}
header .bt_contact {
  display: block;
  color: #fff;
  width: 160px;
  line-height: 42px;
  box-sizing: border-box;
  padding: 0;
}

header .bt_contact span,
header .bt_language span {
  position: relative;
  text-align: left;
  padding: 0 20px;
  opacity: 0;
  transition: all ease 0.3s;
}

header .bt_contact.active span,
header .bt_language.active span {
  opacity: 1;
}

header .bt_contact.f_en span::before {
  content: "";
  display: block;
  position: absolute;
  right: 14px;
  top: 50%;
  background: url(../images/icon_mail2.png) no-repeat center center;
  background-size: 25px auto;
  width: 25px;
  height: 25px;
  transform: translate(0, -50%);
}

header .gmenu {
  position: fixed;
  top: 0;
  left: -460px;
  width: 460px;
  background: url(../images/bg_gradient.png) no-repeat center center;
  background-size: 100% 100%;
  height: 100%;
  transition: left 0.3s ease;
}

header.open .gmenu {
  left: 0;
}

header .gmenu>.inner {
  padding-top: 94px;
  box-sizing: border-box;
}

header .gmenu ul.list {
  margin: 0 30px 0 80px;
}

header .gmenu ul.list>li {
  opacity: 0;
  transition: opacity 1s +0.1s ease;
}

header.open .gmenu ul.list>li {
  opacity: 1;
}

header.open .gmenu ul.list>li:nth-child(2) {
  transition-delay: 0.2s;
}

header.open .gmenu ul.list>li:nth-child(3) {
  transition-delay: 0.3s;
}

header.open .gmenu ul.list>li:nth-child(4) {
  transition-delay: 0.4s;
}
header.open .gmenu ul.list>li:nth-child(5) {
  transition-delay: 0.5s;
}
header.open .gmenu ul.list>li:nth-child(6) {
  transition-delay: 0.6s;
}

header .gmenu ul.list li+li {
  margin-top: 10px;
}

header .gmenu ul.list>li>a {
  font-size: 25px;
  font-weight: bold;
}

header .gmenu ul.list li ul {
  margin-top: 10px;
  margin-bottom: 20px;
}

header .gmenu ul.list li ul li+li {
  margin-top: 9px;
}

header .gmenu ul.list li ul a {
  font-size: 15px;
  letter-spacing: 0.05em;
  font-weight: bold;
  position: relative;
  display: block;
  padding-left: 22px;
  line-height: 1.4em;
}

header .gmenu ul.list li ul a::before {
  content: "";
  display: block;
  position: absolute;
  width: 10px;
  height: 2px;
  background: #000;
  left: 0;
  top: 10px;
}

header .gmenu .logo {
  position: absolute;
  left: 0;
  bottom: 0;
  height: 230px;
  width: 100%;
}

header .gmenu .logo::before {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  background: #1e1e1e;
  width: 0%;
  height: 100%;
  transition: 0.5s ease width +0.1s;
}

header.open .gmenu .logo::before {
  width: 100%;
}

header .gmenu .logo .img {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 250px;
  transform: translate(-50%, -50%);
  transition: 0.5s ease opacity +0.3s;
  opacity: 0;
}

header.open .gmenu .logo .img {
  opacity: 1;
}

footer {
  background: #81a1a8;
  position: relative;
}

footer::before {
  content: "";
  width: 0;
  display: block;
  position: absolute;
  left: 0;
  height: 100%;
  top: 0;
  background: #000;
  transition: width 1s ease;
}

footer.active::before {
  width: 100%;
}

footer>.inner {
  width: 1000px;
  display: flex;
  margin: 0 auto;
  justify-content: space-between;
  align-items: start;
  padding: 40px 0 28px 0;
  position: relative;
  opacity: 0;
  transition: opacity 1s ease +0.5s;
  flex-wrap: wrap;
}

footer.active>.inner {
  opacity: 1;
}

footer > .inner > .logo {
  width: 346px;
  margin-top: 5px;
}

footer .logo img {}

footer .info {
  color: #fff;
}

footer .info dl {
  display: flex;
  flex-wrap: wrap;
  width: 310px;
  font-size: 11px;
  line-height: 2.1em;
  margin-right: -20px;
}

footer .info dl dt {
  width: 40px;
}

footer .info dl dd {
  width: 270px;
  margin-left: 0;
}
footer .info dl.en dt {
  width: 100px;
}
footer .info dl.en dd {
  width: 210px;
}

footer .info .logo {
  display: block;
  width: auto;
  margin: 40px 0 0 0;
  position: relative;
}

footer .info .logo::before {
  content: "";
  position: absolute;
  width: 50px;
  height: 50px;
  background: url(../images/icon_link.png) no-repeat center center / contain;
  right: 0;
  top: 15px;
}

footer .info .logo img {
  width: 212px;
}
footer .info .sns {
  display: flex;
  justify-content: right;
  margin-top: 35px;
}
footer .info .sns a {
  display: block;
  width: 36px;
}
footer .info .sns a + a {margin-left: 30px;}
footer .linkbox {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  margin-top: 18px;
}
footer .linkbox .copyright {font-size: 11px;color: #fff;letter-spacing: 0.15em;}
footer .linkbox .link {
}
footer .linkbox .link a {color: #fff;font-size: 11px;display: inline-block;letter-spacing: 0.2em;}
footer .linkbox .link a + a {
  margin-left: 23px;
}

.main {}

h2.scrollactive {
  font-size: 62px;
  line-height: 1em;
  display: flex;
  height: 62px;
}

h2.scrollactive span {
  transition: ease 1s height;
  overflow: hidden;
  height: 0;
  display: block;
}

h2.scrollactive.active span {
  height: 100%;
}
h2.scrollactive.active span.ml {
  margin-left: 0.4em;
}

h2.scrollactive.active span:nth-child(2) {
  transition-delay: 0.05s
}

h2.scrollactive.active span:nth-child(3) {
  transition-delay: 0.1s
}

h2.scrollactive.active span:nth-child(4) {
  transition-delay: 0.15s
}

h2.scrollactive.active span:nth-child(5) {
  transition-delay: 0.2s
}

h2.scrollactive.active span:nth-child(6) {
  transition-delay: 0.25s
}

h2.scrollactive.active span:nth-child(7) {
  transition-delay: 0.3s
}

h2.scrollactive.active span:nth-child(8) {
  transition-delay: 0.35s;
}

h2.scrollactive.active span:nth-child(9) {
  transition-delay: 0.4s
}

h2.scrollactive.active span:nth-child(10) {
  transition-delay: 0.45s
}

h2.scrollactive.active span:nth-child(11) {
  transition-delay: 0.5s
}

h2.scrollactive.active span:nth-child(12) {
  transition-delay: 0.55s
}

h2.scrollactive.active span:nth-child(13) {
  transition-delay: 0.6s
}

h2.scrollactive.active span:nth-child(14) {
  transition-delay: 0.65s
}

.bt_more {
  display: block;
  font-size: 13px;
  font-family: 'Roboto Condensed', sans-serif;
  font-weight: bold;
  width: 100%;
  text-align: center;
  padding: 2px 0;
  overflow: hidden;
  color: transparent;
  position: relative;
}

.bt_more.active {
  color: #ffff;
}

.bt_more::before, .bt_more::after {
  content: "";
  display: block;
  height: 100%;
  width: 100%;
  background: #ff0066;
  position: absolute;
  left: -100%;
  top: 0;
  transition: all ease 0.3s;
}

.bt_more.black::before {
  background: #000;
}

.bt_more::before {
  transition-delay: 0.1s;
}

.bt_more::after,
.bt_more.reverse::before {
  background: #e55659;
  /* Old browsers */
  background: -moz-linear-gradient(left, #e2dd2a 0%, #e55659 100%);
  /* FF3.6-15 */
  background: -webkit-linear-gradient(left, #e2dd2a 0%, #e55659 100%);
  /* Chrome10-25,Safari5.1-6 */
  background: linear-gradient(to right, #e2dd2a 0%, #e55659 100%);
  /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#e2dd2a', endColorstr='#e55659', GradientType=1);
  /* IE6-9 */
}
.bt_more.reverse::after {
  background: #ff0066;
}

.pc_view .bt_more:hover {
  opacity: 1 !important;
  color: #fff;
}

.bt_more.active::before {
  left: 0;
}

.bt_more.active::after {
  left: 100%;
}

.pc_view .bt_more:hover::after,
.pc_view .language_box:hover .bt_more::after {
  left: 0;
}

.bt_more>span {
  display: block;
  text-align: center;
  position: relative;
  z-index: 10;
}

.bt_link {
  display: block;
  color: #fff;
  font-family: 'Roboto Condensed', sans-serif;
  font-size: 13px;
  font-weight: bold;
  width: 200px;
  box-sizing: border-box;
  padding: 0;
  letter-spacing: 0.1em;
  margin-top: 40px;
}

.bt_link span {
  display: block;
  position: relative;
  padding: 2px 15px;
  color: #fff;
  text-align: left;
  opacity: 0;
  transition: 0.3s ease all;
}
.bt_link.active span {
  opacity: 1;
}

.bt_link span::before {
  content: "";
  background: url(../images/icon_arrow.png) no-repeat center center;
  background-size: 15px auto;
  position: absolute;
  display: block;
  width: 15px;
  height: 15px;
  right: 12px;
  top: 50%;
  transform: translate(0, -50%);
}

.bg {
  position: absolute;
  top: -10px;
  left: 50%;
  width: 1800px;
  height: 100%;
  z-index: -1;
  margin-left: -900px;
  overflow: hidden;
}
.bg .dummy {
	opacity: 0.3;
}
.bg .svg {
	position: absolute;
	left: 0;
	top: 0;
	max-width: none;
	transition: clip-path ease 1.2s;
	clip-path: polygon(0% 0%, 0% 100%, 0% 100%, 0% 0%); /* l to r 0%*/
}
.bg .svg.active {
	clip-path: polygon(0% 0%, 0% 100%, 100% 100%, 100% 0%); /* l to r 100%*/
}
.bg .svg.bg6,
.bg .svg.bg7,
.bg .svg.bg10,
.bg .svg.bg12,
.bg .svg.bg13 {
	clip-path: polygon(100% 00%, 0% 0%, 0% 0%, 100% 0%); /* t to b 0%*/
}
.bg .svg.bg6.active,
.bg .svg.bg7.active,
.bg .svg.bg10.active,
.bg .svg.bg12.active,
.bg .svg.bg13.active {
	clip-path: polygon(100% 100%, 0% 100%, 0% 0%, 100% 0%); /* t to b 100%*/
}
.bg .svg.bg1 {
	left: calc(50% - 835px);
	top: -89px;
	width: 650px;
	transition-duration: 0.7s;
}
.bg .svg.bg2 {
	left: calc(50% - 92px);
	top: -257px;
	width: 992px;
	transition-delay: 0.3s;
	transition-duration: 0.7s;
}
.bg .svg.bg3 {
	left: calc(50% - 752px);
	top: 225px;
	width: 1575px;
	transition-delay: 0.6s;
	transition-duration: 0.8s;
}
.bg .svg.bg4 {
	left: calc(50% - 875px);
	top: 647px;
	width: 1865px;
	transition-delay: 0.9s;
}
.bg .svg.bg5 {
	left: calc(50% - 963px);
	top: 1439px;
	width: 2085px;
}
.bg .svg.bg6 {
	left: calc(50% - 1337px);
	top: 1763px;
	width: 982px;
}
.bg .svg.bg7 {
	left: calc(50% + 1px);
	top: 2272px;
	width: 982px;
}
.bg .svg.bg8 {
	left: calc(50% - 943px);
	top: 3915px;
	width: 2028px;
}
.bg .svg.bg9 {
	left: calc(50% - 980px);
	top: 5656px;
	width: 1748px;
}
.bg .svg.bg10 {
	left: calc(50% - 1041px);
	top: 6096px;
	width: 982px;
}
.bg .svg.bg11 {
	left: calc(50% - 1144px);
	top: 8007px;
	width: 2348px;
}
.bg .svg.bg12 {
	left: calc(50% - -95px);
	top: 9480px;
	width: 982px;
}
.bg .svg.bg13 {
	left: calc(50% - 959px);
	top: 10493px;
	width: 982px;
}

.bg2 .svg.bg1 {
	left: calc(50% - 800px);
	top: -59px;
	width: 615px;
	transition-duration: 0.7s;
}
.bg2 .svg.bg2 {
	left: calc(50% - 92px);
	top: -214px;
	width: 893px;
	transition-delay: 0.3s;
	transition-duration: 0.7s;
}
.bg2 .svg.bg3 {
	left: calc(50% - 800px);
	top: 213px;
	width: 1600px;
	transition-delay: 0.6s;
	transition-duration: 0.8s;
}
.bg2 .svg.bg4 {
	left: calc(50% - 800px);
	top: 643px;
	width: 1600px;
	transition-delay: 0.9s;
}
.bg2 .svg.bg5 {
	left: calc(50% - 800px);
	top: 1612px;
	width: 1600px;
}
.bg2 .svg.bg6 {
	left: calc(50% - 800px);
	top: 1988px;
	width: 444px;
}
.bg2 .svg.bg7 {
	left: calc(50% + 0px);
	top: 2168px;
	width: 800px;
}
.bg2 .svg.bg8 {
	left: calc(50% - 800px);
	top: 4085px;
	width: 1600px;
}
.bg2 .svg.bg9 {
	left: calc(50% - 800px);
	top: 6026px;
	width: 1600px;
}
.bg2 .svg.bg10 {
	left: calc(50% - 802px);
	top: 6676px;
	width: 742px;
}
.bg2 .svg.bg11 {
	left: calc(50% - 800px);
	top: 8727px;
	width: 1600px;
}
.bg2 .svg.bg12 {
	left: calc(50% - -95px);
	top: 10470px;
	width: 705px;
}
.bg2 .svg.bg13 {
	left: calc(50% - 800px);
	top: 11673px;
	width: 822px;
}
body.tablet .bg {
  background: url(../images/bg_simple.png?v=1) no-repeat center top;
  background-size: 1300px auto;
}
body.tablet .bg svg {
  display: none;
}

.activefade {
  position: relative;
  top: 20px;
  transition: all ease 1s;
  opacity: 0;
}

.activefade.active {
  opacity: 1;
  top: 0;
}

.visual {
  position: relative;
}

.visual::before, .intro::before, .program_index::before {
  content: "";
  background: #80a1a8;
  width: 100%;
  height: 100%;
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  z-index: -100;
}
.program_index::before {
  background: #ececec;
}
.visual>.inner {
  width: 1000px;
  margin: 0 auto;
  position: relative;
  padding: 220px 0 150px 0;
}

.visual h1 {
  width: 316px;
  height: 289px;
  margin: 0 auto;
}

.visual h1 span {
  display: block;
  overflow: hidden;
  height: 0;
  transition: height 1s +0.6s ease;
}

.visual.active h1 span {
  height: 289px;
}

.visual .period {
  width: 898px;
  margin: 154px auto 0 auto;
  display: flex;
  height: 59px;
  justify-content: space-between;
  position: relative;
}

.visual .period::before {
  display: block;
  content: "";
  position: absolute;
  left: 463px;
  top: 33px;
  width: 0;
  height: 7px;
  background: #000;
  transition: width 0.6s +1.2s ease;
}

.visual .period.active::before {
  width: 118px;
}

.visual .period>div {
  height: 0;
  transition: height 0.6s +1s ease;
  overflow: hidden;
}

.visual .period>div+div {
  transition-delay: 1.4s;
}

.visual .period.active>div {
  height: 59px;
}

.visual .period>div img {
  height: 59px;
}

.visual #grad_v {
  position: absolute;
  left: calc(50% - 500px);
  top: -144px;
  width: 1028px;
}

.visual #grad_v image {
  width: auto;
  height: auto;
}
.visual .bt_archive {
  display: block;
  width: 190px;
  border-radius: 100px;
  overflow: hidden;
  position: absolute;
  right: -90px;
  top: 445px;
  opacity: 0;
  transform: scale(1.1);
  pointer-events: none;
}
.visual .bt_archive.active {
  opacity: 1;
  transform: scale(1);
  pointer-events: auto;
}
.visual .bt_archive:hover {
  opacity: 1;
  transform: scale(1.1);
}
.visual .bt_archive::after {
	left: 50%;
	top: 50%;
	border: solid transparent;
	content: "";
	height: 0;
	width: 0;
	position: absolute;
	pointer-events: none;
	border-color: rgba(136, 183, 213, 0);
	border-left-color: #000;
	border-width: 30px;
	margin-top: -30px;
	transform: translate(-10px, 0) scale(1, 0.6);
}
.visual .bt_archive img {
  animation: anime_archive 10s infinite linear;
}

@keyframes anime_archive {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}



@media screen and (max-width: 1200px) {
  .visual .bt_archive {
    right: 0px;
  }
}
.intro {
  position: relative;
}

.intro>.inner {
  padding: 100px 0 100px 0;
  width: 1000px;
  margin: 0 auto;
  position: relative;
}

.intro .text {
  font-size: 15px;
  font-weight: bold;
  margin-top: 70px;
  letter-spacing: 0.2em;
  line-height: 1.9em;
}

.intro .text.f_en {
  font-weight: normal;
  letter-spacing: 0.03em;
  margin-top: 65px;
  line-height: 1.7em;
  width: 570px;
}

.intro .bt_tokyogendai {
  position: absolute;
  display: block;
  left: 0;
  bottom: 0;
  /* background: #c1ff00; */
  width: 196px;
  line-height: 62px;
  box-sizing: border-box;
  font-size: 13px;
  padding: 0;
}

.intro .bt_tokyogendai span {
  display: block;
  position: relative;
  padding: 0 24px;
  text-align: left;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: normal;
}

.intro .bt_tokyogendai span::before {
  top: 46%;
  right: 22px;
  border: solid transparent;
  content: "";
  height: 0;
  width: 0;
  position: absolute;
  pointer-events: none;
  border-color: rgba(136, 183, 213, 0);
  border-top-color: #000;
  border-width: 8px;
  transform: scale(0.8, 1);
  transition: all ease 0.3s;
  opacity: 0;
}

.intro .bt_tokyogendai.active span::before {
  opacity: 1;
}

.intro .bt_tokyogendai:hover span::before {
  border-top-color: #fff;
}

.program_index {
  position: relative;
}
.program_index>.inner {
  width: 1000px;
  margin: 0 auto;
  padding: 164px 0;
}

.program_index {}

.program_index h2.f_en {}

.program_index ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin-top: 105px;
}

.program_index ul li {
  width: 308px;
  margin-top: 60px;
}

.program_index ul li:nth-child(-n+3) {
  margin-top: 0;
}

.program_index ul li a {
  display: block;
}

.program_index ul li a:hover {
  opacity: 1;
}

.program_index ul li a .img {
  position: relative;
  padding-top: 206px;
}

.program_index ul li a .img div {
  position: absolute;
  height: 0;
  top: 0;
  left: 0;
  transition: all ease 1s;
  overflow: hidden;
}

.program_index ul li:nth-child(3n-1) a .img div {
  transition-delay: 0.1s;
}

.program_index ul li:nth-child(3n) a .img div {
  transition-delay: 0.2s;
}

.program_index ul li.active a .img div {
  height: 206px;
}

.program_index ul li a .img::after {
  content: "";
  background: rgb(7, 158, 229);
  /* Old browsers */
  background: -moz-linear-gradient(left, rgba(7, 158, 229, 1) 0%, rgba(241, 234, 19, 1) 100%);
  /* FF3.6-15 */
  background: -webkit-linear-gradient(left, rgba(7, 158, 229, 1) 0%, rgba(241, 234, 19, 1) 100%);
  /* Chrome10-25,Safari5.1-6 */
  background: linear-gradient(to right, rgba(7, 158, 229, 1) 0%, rgba(241, 234, 19, 1) 100%);
  /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#079ee5', endColorstr='#f1ea13', GradientType=1);
  /* IE6-9 */
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  mix-blend-mode: screen;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.program_index ul li a .img img {
  transform: scale(1);
}
.program_index ul li a:hover .img img {
  transform: scale(1.1);
}

.program_index ul li a:hover .img::after {
  opacity: 0.5;
}
body.simple .program_index ul li a:hover .img::after {
  opacity: 0;
}

.program_index ul li a .info {
  position: relative;
  transition: all ease 1s;
  opacity: 0;
}

.program_index ul li.active a .info {
  opacity: 1;
}

.program_index ul li:nth-child(3n-1) a .info {
  transition-delay: 0.1s;
}

.program_index ul li:nth-child(3n) a .info {
  transition-delay: 0.2s;
}

.program_index ul li a .place {
  display: flex;
  margin-top: 20px;
}

.program_index ul li a .place span {
  display: block;
  background: #000;
  text-align: center;
  font-size: 11px;
  font-weight: bold;
  color: #fff;
  padding: 5px 10px 7px 10px;
  line-height: 1em;
  margin-right: 5px;
}

.program_index ul li a .sub {
  font-size: 13px;
  letter-spacing: 0.1em;
  margin-top: 5px;
}

.program_index ul li a .title {
  line-height: 1.5em;
  font-size: 18px;
  font-weight: bold;
  margin-top: 10px;
}
.program_index ul li a .title.f_en {
  font-size: 20px;
  line-height: 1.3em;
}

.program_index ul li a .title.f_en span {
  display: flex;
  font-size: 12px;
  font-weight: normal;
  line-height: 1.5em;
}


/*============================
#program_datail
============================*/

.program_datail {}

.program_datail>.inner {
  width: 1000px;
  margin: 0 auto;
  padding: 156px 0;
}

.program_datail article {
  margin-top: 135px;
}

.program_datail article.program1 {
  margin-top: 65px;
}

.program_datail article>.img {
  position: relative;
  padding-top: 666px;
}
.program_datail article.program3>.img {
  /* padding-top: 571px; */
}

.program_datail article>.img div {
  position: absolute;
  height: 0;
  top: 0;
  left: 0;
  transition: all ease 1s;
  overflow: hidden;
}

.program_datail article>.img.active div {
  height: 666px;
}
.program_datail article.program3>.img.active div {
  /* height: 571px; */
}

.program_datail article>.fbox {
  display: flex;
  margin-top: 58px;
  justify-content: space-between;
  flex-wrap: wrap;
  align-items: start;
  position: relative;
}

.program_datail article .fbox .info {
  width: 470px;
}

.program_datail article .fbox .info .sub {
  font-size: 15px;
  letter-spacing: 0.15em;
}

.program_datail article .fbox .info h1 {
  font-family: 'Roboto Condensed', sans-serif;
  font-weight: 700;
  line-height: 1.3em;
  font-size: 35px;
  letter-spacing: 0.05em;
  margin-top: 8px;
  width: 110%;
}
.program_datail article.program3 .fbox .info h1 {
	width: 100%;
}
.program_datail article .fbox .info h1.jp {font-size: 33px;line-height: 1.4em;}

.program_datail article .fbox .info h1 span {
  display: block;
  font-size: 20px;
  font-weight: normal;
  letter-spacing: 0.1em;
  line-height: 1.3em;
  margin-top: 10px;
}

.program_datail article .fbox .info .subtitle {
  font-size: 20px;
  margin: 25px 0 -12px 0;
  font-weight: bold;
  line-height: 1.6em;
}
.program_datail article .fbox .info .text {
  font-size: 15px;
  margin-top: 35px;
}
.program_datail article .fbox .info .text a {
	text-decoration: underline;	
}

.program_datail article .fbox .info .text.f_en {
  font-weight: normal;
  line-height: 1.7em;
  font-size: 13px;
  letter-spacing: 0.6px;
}
.program_datail article .fbox .info .text.mini {
	font-size: 12px;
}
.program_datail article .fbox .info .text.f_en.mini {
	font-size: 11px;
}

.program_datail article .fbox .info .credit {
  font-size: 11px;
  margin-top: 38px;
  line-height: 1.5em;
  color: #646464;
}

.program_datail article .fbox .info a.bt_link {}

.program_datail article .fbox .detail {
  width: 468px;
  /* margin-top: -90px; */
  box-sizing: border-box;
  padding: 42px 50px 70px 50px;
  position: relative;
  top: 20px;
  transition: all ease 1s +0.3s;
  opacity: 0;
}
.program_datail article .fbox .info .detail {margin-top: 40px;}

.program_datail article .fbox .info.active+.detail,
.program_datail article .fbox .images.active+.detail,
.program_datail article .fbox .info.active .detail,
.program_datail article .fbox .images.active .detail{
  opacity: 1;
  top: 0;
}

.program_datail article .fbox .detail::before {
  background: #f1f1f1;
  position: absolute;
  content: "";
  display: block;
  width: 100%;
  height: 0%;
  top: 0;
  left: 0;
  transition: all ease 1s +0.5s;
}

.program_datail article .fbox .info.active+.detail::before,
.program_datail article .fbox .images.active+.detail::before,
.program_datail article .fbox .info.active .detail::before,
.program_datail article .fbox .images.active .detail::before {
  height: 100%;
}

.program_datail article .fbox .detail>section {
  position: relative;
  margin-top: 30px;
  padding-top: 30px;
}

.program_datail article .fbox .detail>.label {
  font-size: 25px;
  line-height: 1.3em;
  margin-bottom: 20px;
  position: relative;
}

.program_datail article .fbox .detail>section:first-child, .program_datail article .fbox .detail>.label+section {
  padding-top: 0;
  margin-top: 0
}

.program_datail article .fbox .detail section::before {
  content: "";
  width: 30px;
  height: 1px;
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  background: #000;
}

.program_datail article .fbox .detail>section:first-child::before, .program_datail article .fbox .detail>.label+section::before {
  display: none
}

.program_datail article .fbox .detail section h2 {
  font-family: 'Roboto Condensed', sans-serif;
  font-size: 15px;
  letter-spacing: 0.1em;
  position: relative;
  padding-left: 18px;
  line-height: 1.5em;
  margin-bottom: 15px;
}

.program_datail article .fbox .detail section h2::before {
  left: 0;
  top: 50%;
  border: solid transparent;
  content: "";
  height: 0;
  width: 0;
  position: absolute;
  pointer-events: none;
  border-color: rgba(136, 183, 213, 0);
  border-left-color: #000;
  border-width: 10px;
  margin-top: -10px;
  transform: scale(1, 0.6);
}

.program_datail article .fbox .detail section .fbox {
  display: flex;
  align-items: center;
}
.program_datail article .fbox .detail section .fbox + .fbox {
  margin-top: 4px;
}
.program_datail article .fbox .detail section.fee .bt_more {
  position: absolute;
  width: 150px;
  top: 50%;
  right: 0;
  padding: 10px 0;
}
.program_datail article.program1 .fbox .detail section.fee .bt_more {
  margin-top: -30px;
}
.program_datail article.program2 .fbox .detail section.fee .bt_more {
  margin-top: -7px;
}
.program_datail article.program5 .fbox .detail section.fee .bt_more {
  margin-top: 25px;
}
.program_datail article .fbox .detail section.fee .bt_more span {font-size: 17px;}
.program_datail article .fbox .detail .l {
  font-size: 15px;
  line-height: 1em;
  padding: 3px 0;
  width: 46px;
  margin-right: 10px;
  font-weight: bold;
}
.program_datail article .fbox .detail .l.en {font-size: 14px;width: 135px;}
.program_datail article .fbox .detail .l.en .mini  {font-size: 10px;display: block;letter-spacing: 0;margin-top: 4px;transform: scale(0.9);transform-origin: 0 0;width: 120%;}
.program_datail article.program2 .fbox .detail .l {width: 126px;}
.program_datail article.program2 .fbox .detail .l.en {width: 130px;font-size: 12px;letter-spacing: 0;}
.program_datail article .fbox .detail .l.vip {
  border-color: #97672f;
  color: #97672f;
  font-family: 'Roboto Condensed', sans-serif;
  padding: 4px 0 2px 0;
}

.program_datail article .fbox .detail .note {
  font-size: 13px;
  line-height: 1.8em;
  margin-top: 0;
}
.program_datail article .fbox .detail .note.en  {
  font-size: 11px;
  margin-top: 5px;
}
.program_datail article.program1 .fbox .detail .note {
  margin-top: 10px;
}
.program_datail article.program5 .fbox .detail .note {
  margin-bottom: 25px;
}
.program_datail article.program2 .fbox .detail .fbox + .note,.program_datail article.program2 .fbox .detail .fbox + .note + .note {
  margin: 10px 0 0 0;
}
.program_datail article.program5 .fbox .detail .fbox + .note,.program_datail article.program5 .fbox .detail .fbox + .note + .note {
  margin: 20px 0 0 0;
}

.program_datail article .fbox .detail section h3 {
  margin-bottom: 10px;
}

.program_datail article .fbox .detail section section+section {
  margin-top: 15px;
}

.program_datail article .fbox .detail section dl {
  display: flex;
  flex-wrap: wrap;
  font-family: 'Roboto Condensed', sans-serif;
  font-weight: bold;
  line-height: 1.8;
}

.program_datail article .fbox .detail section dl dt {
  font-weight: bold;
  width: 130px;
}

.program_datail article .fbox .detail section dl dd {
  font-weight: bold;
  width: calc(100% - 130px);
}
.program_datail article .fbox .detail section dl dd span {
  font-size: 10px;
  font-weight: bold;
  margin-left: 5px;
}
.program_datail article .fbox .detail section dl dd span > span {
  margin-left: 0px;
  margin-right: 5px;
	letter-spacing: 0;
}

.program_datail article .fbox .detail section dl.wide dt {
  width: 220px;
}

.program_datail article .fbox .detail section dl.wide dd {
  width: calc(100% - 220px);
}
.program_datail article .fbox .detail section dl.wide2 dt {
  width: 200px;
}

.program_datail article .fbox .detail section dl.wide2 dd {
  width: calc(100% - 200px);
}

.program_datail article .fbox .detail section .name.f_en {
  line-height: 1.5em;
}

.program_datail article .fbox .detail section .address {
  font-size: 13px;
  margin-top: 3px;
}

.program_datail article .fbox .detail section .address+.fbox {
  justify-content: space-between;
  margin-top: 10px;
}

.program_datail article .fbox .detail section .address+.fbox a.bt_more {
  width: 48%;
}

.program_datail article .fbox .detail section .fbox .fee {
  font-size: 17px;
  font-family: 'Roboto Condensed', 'Noto Sans JP', sans-serif;
  font-weight: bold;
  line-height: 1.5em;
}

.program_datail article .fbox .detail section .fbox .fee+a.bt_more {
  width: 178px;
  margin-left: 20px;
}

.program_datail article.program1 .fbox .detail section .fbox .fee+a.bt_more {
  width: 110px;
}

.program_datail article .fbox .detail section .fbox+.name.f_en {
  margin-top: 20px;
}

.program_datail article .fbox .detail section .text {
  font-size: 13px;
  line-height: 1.7em;
  letter-spacing: 0;
  margin-top: 20px;
}

.program_datail article .fbox .detail section .text strong {
  font-weight: bold;
  text-decoration: underline;
  margin-bottom: 5px;
  display: block;
}

.program_datail article .fbox .detail section .text+.note {
  font-size: 11px;
}

.program_datail article .fbox .images {
  width: 470px;
  margin-top: 45px;
}

.program_datail article .fbox .images+.detail {
  margin-top: -10px;
}

.program_datail article .fbox .images .img {
  margin-top: 22px;
}
.program_datail article .video {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
  margin-top: 60px;
}
.program_datail article .video iframe {
	display: block;
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
}


/*============================
#map
============================*/

.map {
  background: #80a1a8;
}

.map>.inner {
  width: 1000px;
  margin: 0 auto;
  padding: 120px 0 10px 0;
}

.map h2.f_en {}

.map .mapbox {
  margin-top: 60px;
}

.map .mapbox iframe {
  display: block;
  width: 100%;
  height: 560px;
}

.map a.bt_more {
  margin: 20px 0 0 auto;
  width: 170px;
}


/*============================
#access
============================*/

.access {
  background: #80a1a8;
}

.access>.inner {
  width: 1000px;
  margin: 0 auto;
  padding: 80px 0 150px 0;
}

.access h2.f_en {}

.access .accessbox {
  margin-top: 50px;
}

.access .accessbox h3 {
  overflow: hidden;
  transition: 1s ease all;
  width: 0;
}

.access .accessbox h3.active {
  width: 100%;
}

.access .accessbox h3 img {
  max-width: none;
  width: 1000px
}

.access .accessbox .fbox {
  display: flex;
  padding: 22px 36px;
  position: relative;
}

.access .accessbox .fbox::before, .access .bus::before {
  content: "";
  display: block;
  background: #fff;
  position: absolute;
  left: 0;
  top: 0;
  width: 0%;
  height: 100%;
  transition: 1s ease all;
}

.access .accessbox .fbox.active::before, .access .bus.active::before {
  width: 100%;
}

.access .accessbox .fbox .box, .access .bus h3, .access .bus .fbox p {
  position: relative;
  transition: 1s ease +0.3s all;
  opacity: 0;
}

.access .accessbox .fbox.active .box, .access .bus.active h3, .access .bus.active .fbox p {
  opacity: 1;
}

.access .accessbox .fbox .box+.box {
  /* margin-left: 70px; */
  transition-delay: 0.5s;
}

.access .accessbox .fbox .box .title {
  font-size: 17px;
  font-weight: bold;
  font-family: 'Roboto Condensed', 'Noto Sans JP', sans-serif;
}

.access .accessbox .fbox .box .address {
  font-size: 13px;
}

.access .accessbox .fbox .box .route {
  font-size: 11px;
  line-height: 1.7em;
  margin-top: 10px;
}

.access .accessbox .fbox .box.f_en {}

.access .accessbox .fbox .box.f_en .title {}

.access .accessbox .fbox .box.f_en .address {}

.access .accessbox .fbox .box.f_en .route {}

.access .bus {
  position: relative;
  margin-top: 30px;
  padding: 22px 36px;
}

.access .bus h3 {
  background: url(../images/icon_bus.png) no-repeat left center;
  background-size: 50px auto;
  padding-left: 60px;
  font-size: 20px;
  line-height: 1.8em;
  margin-bottom: 12px;
}

.access .bus .fbox {
  display: flex;
}

.access .bus .fbox p {
  font-size: 13px;
  line-height: 1.7em;
}

.access .bus .fbox p.f_en {
  font-weight: normal;
  margin-left: 50px;
  transition-delay: 0.5s;
}

.main .bt_contact {
  background: #81a1a8;
}

.main .bt_contact a {
  display: block;
  position: relative;
}

.main .bt_contact a::before {
  content: "";
  width: 0;
  display: block;
  position: absolute;
  left: 0;
  height: 100%;
  top: 0;
  transition: width 1s ease;
  background: #e55659;
  /* Old browsers */
  background: -moz-linear-gradient(left, #e2dd2a 0%, #e55659 100%);
  /* FF3.6-15 */
  background: -webkit-linear-gradient(left, #e2dd2a 0%, #e55659 100%);
  /* Chrome10-25,Safari5.1-6 */
  background: linear-gradient(to right, #e2dd2a 0%, #e55659 100%);
  /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#e2dd2a', endColorstr='#e55659', GradientType=1);
  /* IE6-9 */
}

.main .bt_contact.active a::before {
  width: 100%;
}

.main .bt_contact span {
  display: block;
  font-size: 40px;
  color: #fff;
  padding: 60px 0;
  background: url(../images/icon_mail.png) no-repeat right center;
  background-size: 60px auto;
  width: 1000px;
  margin: 0 auto;
  position: relative;
  opacity: 0;
  transition: opacity 1s ease +0.5s;
}

.main .bt_contact.active span {
  opacity: 1;
}

.related {
  background: #e0e0e0;
  position: relative;
  padding: 80px 0;
}
.related2 {
  background: #e5e5e5;
  padding-top: 60px;
}
.related > .inner {
  width: 1000px;
  margin: 0 auto;
  position: relative;
}
.related2 .title {
	font-size: 20px;
	margin-bottom: 2px;
}
.related2 ul + .title {margin-top: 20px;}
.related ul {display: flex;flex-wrap: wrap;justify-content: space-between;gap: 36px 0;}
.related ul li {
  width: 305px;
}
.related ul li a {display: block;width: 0;overflow: hidden;
  transition: 1s ease all;}
.related.active ul li a {
  width: 305px;
}
.related ul li a img {
  width: 305px;
  max-width: none;
}
.related ul li.wide {
  width: 656px;
}
.related.active ul li.wide a {
  width: 656px;
}
.related ul li.wide a img {
  width: 656px;
  max-width: none;
}
.related .bt_gototop {display: block;position: absolute;right: -77px;background: #000;width: 38px;height: 38px;color: #fff;box-sizing: border-box;padding: 21px 0 0 0;bottom: 0;}
.related .bt_gototop::before {
  content: "";
  position: absolute;
  display: block;
  width: 12px;
  height: 12px;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  transform: translate(-50%, 0) rotate(-45deg);
  left: 50%;
  top: 10px;
}
.related .bt_gototop span {text-align: center;display: block;font-size: 10px;line-height: 1em;letter-spacing: 0.1em;}



.remodal-overlay {
  background: rgba(0, 0, 0, 0.5);
  z-index: 1000000;
}

.remodal-wrapper {
  z-index: 1000001;
}

.remodal-close {
  left: auto;
  right: -5px;
  top: 12px;
  bottom: auto;
  width: 42px;
  height: 57px;
  transform: translate(-50%, 0);
  color: #fff;
  box-sizing: border-box;
  padding-top: 30px;
}
.remodal-close:hover {
	color: #fff;
}

.remodal-close::before {
  display: none;
}

.remodal-close::before, .remodal-close::after {
  display: block;
  position: absolute;
  content: "";
  width: 30px;
  height: 1px;
  background: #fff;
  left: 6px;
  top: 35%;
  transform: rotate(-45deg);
}

.remodal-close::after {
  transform: rotate(45deg);
}

.remodal {
  margin-bottom: 40px;
  text-align: left;
  background: #000;
  width: 700px;
  padding: 70px;
}
.remodal.archive {
  width: 100%;
  max-width: 1000px;
}
.remodal.archive .video {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
}
.remodal.archive .video iframe {
	display: block;
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
}


@media screen and (max-width: 787px) {
  .non_pc {
    display: block !important;
  }
  .non_sp {
    display: none !important;
  }
  

  /* =============================
    Common
  ============================= */

  .bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: auto;
    z-index: -1;
    margin-left: 0;
    opacity: 1;
    overflow: visible;
  }
.bg .dummy {
	width: 800px;
	position: absolute;
	left: 50%;
	top: 0;
	max-width: none;
	margin-left: -400px;
}
.bg .svg {
	position: absolute;
	left: 0;
	top: 0;
	max-width: none;
	transition: clip-path ease 2s;
	clip-path: polygon(100% 00%, 0% 0%, 0% 0%, 100% 0%) !important; /* t to b 0%*/
	transition-duration: 2s !important;
	transition-delay: 0s !important;
}
.bg .svg.active {
	clip-path: polygon(100% 100%, 0% 100%, 0% 0%, 100% 0%) !important; /* t to b 100%*/
}
.bg .svg.bg1 {
	left: calc(50% - 856px);
	top: -169px;
	width: 1448px;
	transition-delay: 0.2s !important;
	clip-path: polygon(0% 0%, 0% 100%, 0% 100%, 0% 0%) !important; /* l to r 0%*/
}
.bg .svg.bg1.active {
	clip-path: polygon(0% 0%, 0% 100%, 100% 100%, 100% 0%) !important; /* l to r 100%*/
}
.bg .svg.bg2 {
	left: calc(50% - 403px);
	top: 1025px;
	width: 502px;
}
.bg .svg.bg3 {
	left: calc(50% - 279px);
	top: 1913px;
	width: 677px;
}
.bg .svg.bg4 {
	left: calc(50% - 505px);
	top: 3284px;
	width: 1388px;
}
.bg .svg.bg5 {
	left: calc(50% - 624px);
	top: 3939px;
	width: 1080px;
}
.bg .svg.bg6 {
	left: calc(50% - 856px);
	top: 5221px;
	width: 1289px;
}
.bg .svg.bg7 {
	left: calc(50% - 403px);
	top: 6209px;
	width: 502px;
}
.bg .svg.bg8 {
	left: calc(50% - 279px);
	top: 7097px;
	width: 677px;
}
.bg .svg.bg9 {
	left: calc(50% - 650px);
	top: 8449px;
	width: 1080px;
}
.bg .svg.bg10 {
	left: calc(50% - 615px);
	top: 9464px;
	width: 1080px;
}
.bg .svg.bg11 {
	left: calc(50% - 852px);
	top: 10525px;
	width: 1289px;
}
.bg .svg.bg12 {
	left: calc(50% - 403px);
	top: 11525px;
	width: 502px;
}
.bg .svg.bg13 {
	left: calc(50% - 279px);
	top: 12913px;
	width: 677px;
}
  
  .outline {
    position: relative;
    overflow: hidden;
    margin: 0 auto;
    transform-origin: 50% 0;
  }
  
  header {
    position: fixed;
    left: 0;
    top: 0;
    height: 0;
    width: 100%;
    z-index: 1000;
  }
  
  header>.inner {
    display: flex;
    justify-content: space-between;
    width: 100%;
    padding: 10px 10px 10px 10px;
    box-sizing: border-box;
    align-items: center;
  }
  
  header .bt_menu {
    display: block;
    width: 80px;
    height: 50px;
    margin: 0;
    font-size: 12px;
    text-align: center;
    box-sizing: border-box;
    z-index: 1000;
    overflow: hidden;
    padding-top: 0;
    position: relative;
  }
  
  header .bt_menu::before, header .bt_menu::after, header .bt_menu span::before {
    display: block;
    position: absolute;
    content: "";
    width: 56px;
    height: 3px;
    background: #000;
    top: 50%;
    left: 12px;
    transition: all 0.3s ease;
    margin-top: 10px;
  }
  
  header .bt_menu::after {
    margin-top: -10px;
  }
  
  header .bt_menu span::before {
    margin: 0;
  }
  
  header.open .bt_menu span::before {
    opacity: 0;
  }
  
  header.open .bt_menu::before {
    transform: rotate(155deg);
    left: 10px;
    margin: 0;
  }
  
  header.open .bt_menu::after {
    transform: rotate(-155deg);
    left: 10px;
    margin: 0;
  }
  
  header .bt_menu span {
    display: block;
    text-indent: -9999px;
    overflow: hidden;
    height: 100%;
  }
  
  header a.bt_contact.f_en {
    display: block;
    color: #fff;
    width: auto;
    height: 50px;
    box-sizing: border-box;
    padding: 0;
  }
  header a.bt_contact.f_en::before,
  header a.bt_contact.f_en::after {
    display: none;
  }
  
  header a.bt_contact.f_en span {
    position: relative;
    text-align: left;
    padding: 0;
    opacity: 1;
    transition: all ease 0.3s;
    text-indent: -9999px;
    overflow: hidden;
    width: 50px;
    height: 100%;
  }
  
  header a.bt_contact.f_en.active span {
    opacity: 1;
  }
  
  header a.bt_contact.f_en span::before {
    content: "";
    display: block;
    position: absolute;
    right: 9px;
    top: 50%;
    background: url(../images/icon_mail_b.png) no-repeat center center;
    background-size: 32px auto;
    width: 32px;
    height: 32px;
    transform: translate(0, -50%);
  }
  
  header .gmenu {
    position: fixed;
    top: 0;
    left: -100%;
    width: 100%;
    background: url(../images/bg_gradient.png) no-repeat center center;
    background-size: 100% 100%;
    height: 100%;
    transition: left 0.3s ease;
  }
  
  header.open .gmenu {
    left: 0;
  }
  
  header .gmenu>.inner {
    padding-top: 80px;
    box-sizing: border-box;
  }
  
  header .gmenu ul.list {
    margin: 0 0 0 30px;
  }
  
  header .gmenu ul.list>li {
    opacity: 0;
    transition: opacity 1s +0.1s ease;
  }
  
  header.open .gmenu ul.list>li {
    opacity: 1;
  }
  
  header.open .gmenu ul.list>li:nth-child(2) {
    transition-delay: 0.2s;
  }
  
  header.open .gmenu ul.list>li:nth-child(3) {
    transition-delay: 0.3s;
  }
  
  header.open .gmenu ul.list>li:nth-child(4) {
    transition-delay: 0.4s;
  }
  
  header .gmenu ul.list li+li {
    margin-top: 5px;
  }
  
  header .gmenu ul.list>li>a {
    font-size: 25px;
    font-weight: bold;
  }
  
  header .gmenu ul.list li ul {
    margin-top: 10px;
    margin-bottom: 19px;
  }
  
  header .gmenu ul.list li ul li+li {
    margin-top: 10px;
  }
  
  header .gmenu ul.list li ul a {
    font-size: 15px;
    letter-spacing: 0.05em;
    font-weight: bold;
    position: relative;
    display: block;
    padding-left: 22px;
  }
  
  header .gmenu ul.list li ul a::before {
    content: "";
    display: block;
    position: absolute;
    width: 10px;
    height: 2px;
    background: #000;
    left: 0;
    top: 11px;
  }
  
  header .gmenu .logo {
    position: absolute;
    left: 0;
    bottom: 0;
    height: 140px;
    width: 100%;
  }
  
  header .gmenu .logo::before {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    background: #1e1e1e;
    width: 0%;
    height: 100%;
    transition: 0.5s ease width +0.1s;
  }
  
  header.open .gmenu .logo::before {
    width: 100%;
  }
  
  header .gmenu .logo .img {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 200px;
    transform: translate(-50%, -50%);
    transition: 0.5s ease opacity +0.3s;
    opacity: 0;
  }
  
  header.open .gmenu .logo .img {
    opacity: 1;
  }
  
  footer {
    /* background: #9baa9b; */
    position: relative;
  }
  
  footer::before {
    content: "";
    width: 0;
    display: block;
    position: absolute;
    left: 0;
    height: 100%;
    top: 0;
    background: #000;
    transition: width 1s ease;
  }
  
  footer.active::before {
    width: 100%;
  }
  
  footer>.inner {
    width: 90%;
    display: block;
    margin: 0 auto;
    justify-content: space-between;
    align-items: center;
    padding: 60px 0;
    position: relative;
    opacity: 0;
    transition: opacity 1s ease +0.5s;
  }
  
  footer.active>.inner {
    opacity: 1;
  }
  
  footer > .inner > .logo {
    width: 270px;
    margin: 0 auto;
  }
  
  footer .logo img {}
  
  footer .info {
    color: #fff;
    width: auto;
    margin: 50px auto 0 auto;
  }
  
  footer .info dl {
    display: block;
    flex-wrap: wrap;
    width: auto;
    font-size: 14px;
    line-height: 2.1em;
    margin-left: 0;
  }
  
  footer .info dl dt {
    width: auto !important;
  }
  
  footer .info dl dd {
    width: auto !important;
    margin-left: 0;
  }
  
footer .info .logo {
  display: block;
  width: 290px;
  margin: 25px 0 0 0;
  position: relative;
}

footer .info .logo::before {
  content: "";
  position: absolute;
  width: 60px;
  height: 60px;
  background: url(../images/icon_link.png) no-repeat center center / contain;
  right: 0;
  top: 5px;
}

footer .info .logo img {
  width: 200px;
}
footer .info .sns {
  display: flex;
  justify-content: left;
  margin-top: 35px;
}
footer .info .sns a {
  display: block;
  width: 46px;
}
footer .info .sns a + a {margin-left: 30px;}
footer .linkbox {
  display: flex;
  justify-content: start;
  align-items: start;
  flex-direction: column-reverse;
  width: 100%;
  margin-top: 40px;
}
footer .linkbox .copyright {font-size: 11px;color: #fff;letter-spacing: 0.15em;margin-top: 30px;}
footer .linkbox .link {line-height: 1.8em;}
footer .linkbox .link a {color: #fff;font-size: 11px;display: inline-block;letter-spacing: 0.2em;margin-right: 25px;line-height: 1.8em;}
footer .linkbox .link a + a {
  margin-left: 0;
}

  
  .main {}
  
  h2.scrollactive {
    font-size: 34px;
    line-height: 1em;
    display: flex;
    height: 34px;
  }
  
  h2.scrollactive span {
    transition: ease 1s height;
    overflow: hidden;
    height: 0;
    display: block;
  }
  
  h2.scrollactive.active span {
    height: 100%;
  }
  
  h2.scrollactive.active span:nth-child(2) {
    transition-delay: 0.05s
  }
  
  h2.scrollactive.active span:nth-child(3) {
    transition-delay: 0.1s
  }
  
  h2.scrollactive.active span:nth-child(4) {
    transition-delay: 0.15s
  }
  
  h2.scrollactive.active span:nth-child(5) {
    transition-delay: 0.2s
  }
  
  h2.scrollactive.active span:nth-child(6) {
    transition-delay: 0.25s
  }
  
  h2.scrollactive.active span:nth-child(7) {
    transition-delay: 0.3s
  }
  
  h2.scrollactive.active span:nth-child(8) {
    transition-delay: 0.35s
  }
  
  h2.scrollactive.active span:nth-child(9) {
    transition-delay: 0.4s
  }
  
  h2.scrollactive.active span:nth-child(10) {
    transition-delay: 0.45s
  }
  
  h2.scrollactive.active span:nth-child(11) {
    transition-delay: 0.5s
  }
  
  h2.scrollactive.active span:nth-child(12) {
    transition-delay: 0.55s
  }
  
  h2.scrollactive.active span:nth-child(13) {
    transition-delay: 0.6s
  }
  
  h2.scrollactive.active span:nth-child(14) {
    transition-delay: 0.65s
  }
  
  .bt_more {
    display: block;
    font-size: 13px;
    font-family: 'Roboto Condensed', sans-serif;
    font-weight: bold;
    width: 100%;
    text-align: center;
    padding: 2px 0;
    overflow: hidden;
    color: transparent;
    position: relative;
  }
  
  .bt_more.active {
    /* color: #000; */
  }
  
  .bt_more::before, .bt_more::after {
    content: "";
    display: block;
    height: 100%;
    width: 100%;
    /* background: #bfff00; */
    position: absolute;
    left: -100%;
    top: 0;
    transition: all ease 0.3s;
  }
  
  .bt_more.black::before {
    background: #000;
  }
  
  .bt_more::before {
    transition-delay: 0.1s;
  }
  
  .pc_view .bt_more:hover {
    opacity: 1 !important;
    color: #fff;
  }
  
  .bt_more.active::before {
    left: 0;
  }
  
  .bt_more.active::after {
    left: 100%;
  }
  
  .pc_view .bt_more:hover::after {
    left: 0;
  }
  
  .bt_more>span {
    display: block;
    text-align: center;
    position: relative;
    z-index: 10;
  }
  
  .bt_link {
    display: block;
    color: #fff;
    font-family: 'Roboto Condensed', sans-serif;
    font-size: 13px;
    font-weight: bold;
    width: 200px;
    box-sizing: border-box;
    padding: 0;
    letter-spacing: 0.1em;
    margin-top: 30px;
  }
  
  .bt_link span {
    display: block;
    position: relative;
    padding: 2px 15px;
    color: #fff;
    text-align: left;
  }
  
  .bt_link span::before {
    content: "";
    background: url(../images/icon_arrow.png) no-repeat center center;
    background-size: 15px auto;
    position: absolute;
    display: block;
    width: 15px;
    height: 15px;
    right: 12px;
    top: 50%;
    transform: translate(0, -50%);
  }
  
  
  .activefade {
    position: relative;
    top: 20px;
    transition: all ease 1s;
    opacity: 0;
  }
  
  .activefade.active {
    opacity: 1;
    top: 0;
  }
  
  .visual {
    position: relative;
  }
  
  .visual::before, .intro::before, .intro::before, .intro::before {
    content: "";
    /* background: #9baa9b; */
    width: 100%;
    height: 100%;
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    z-index: -100;
  }
  
  .visual>.inner {
    width: auto;
    margin: 0 auto;
    position: relative;
    padding: 10px 0 80px 0;
  }
  .visual .img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    padding-top: 0%;
    overflow: hidden;
    transition: padding 2s ease;
  }
  .visual.active .img {
    padding-top: 310%;
  }
  .visual .img img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    max-width: none;
  }
  
  .visual h1 {
    width: 100%;
    height: 450px;
    margin-top: 10px;
    position: relative;
  }
  
  .visual h1 span {
    overflow: hidden;
    height: 0;
    transition: height 1s +0.6s ease;
    position: relative;
    top: auto;
    left: auto;
  }
  .visual h1 span img {
    width: 1080px;
    max-width: none;
    position: absolute;
    left: calc(50% - 607px);
    top: -209px;
  }
  
  .visual.active h1 span {
    height: 450px;
  }
  
  .visual .period {
    width: 350px;
    margin: 150px auto 0 auto;
    display: flex;
    justify-content: space-between;
    position: relative;
    flex-direction: column;
    align-items: end;
    height: 114px;
  }
  
  .visual .period::before {
    display: block;
    content: "";
    position: absolute;
    left: 0;
    top: 87px;
    width: 0;
    height: 6px;
    background: #000;
    transition: width 0.6s +1.2s ease;
  }
  
  .visual.active .period::before {
    width: 94px;
  }
  
  .visual .period>div {
    height: 0;
    transition: height 0.6s +1s ease;
    overflow: hidden;
  }
  
  .visual .period>div+div {
    transition-delay: 1.4s;
    margin-top: 16px;
  }
  
  .visual.active .period>div {
    height: 49px;
  }
  .visual.active .period>div+div img {
    height: 49px;
  }
  .visual.active .period>div+div {    
    height: 49px;
  }
  
  .visual .period>div img {
    height: 49px;
  }
  
  .visual #grad_v {
    display: none;
  }
  .visual .bt_archive {
      top: 56%;
      right: 5%;
      width: 132px;
  }
  
  .intro {
    position: relative;
  }
  
  .intro>.inner {
    padding: 70px 0 120px 0;
    width: 90%;
    margin: 0 auto;
    position: relative;
  }
  
  .intro .text {
    font-size: 16px;
    font-weight: bold;
    margin-top: 36px;
    letter-spacing: 0.2em;
    line-height: 1.7em;
    text-align: justify;
  }
  
  .intro .text.f_en {
    font-weight: normal;
    letter-spacing: 0.03em;
    margin-top: 30px;
    line-height: 1.7em;
    font-size: 15px;
    width: auto;
  }
  
  .intro .bt_tokyogendai {
    position: absolute;
    display: block;
    left: 0;
    bottom: 0;
    /* background: #c1ff00; */
    width: 196px;
    line-height: 62px;
    box-sizing: border-box;
    font-size: 13px;
    padding: 0;
  }
  
  .intro .bt_tokyogendai span {
    display: block;
    position: relative;
    padding: 0 24px;
    text-align: left;
  }
  
  .intro .bt_tokyogendai span::before {
    top: 46%;
    right: 22px;
    border: solid transparent;
    content: "";
    height: 0;
    width: 0;
    position: absolute;
    pointer-events: none;
    border-color: rgba(136, 183, 213, 0);
    border-top-color: #000;
    border-width: 8px;
    transform: scale(0.8, 1);
    transition: all ease 0.3s;
    opacity: 0;
  }
  
  .intro .bt_tokyogendai.active span::before {
    opacity: 1;
  }
  
  .intro .bt_tokyogendai:hover span::before {
    border-top-color: #fff;
  }
  
  .program_index>.inner {
    width: 90%;
    margin: 0 auto;
    padding: 70px 0 70px 0;
  }
  
  .program_index {}
  
  .program_index h2.f_en {}
  
  .program_index ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin-top: 50px;
  }
  
  .program_index ul li {
    width: 47%;
    margin-top: 30px;
  }
  
  .program_index ul li:nth-child(-n+3) {
    margin-top: 30px;
  }  
  .program_index ul li:nth-child(-n+2) {
    margin-top: 0;
  }
  
  .program_index ul li a {
    display: block;
  }
  
  .program_index ul li a:hover {
    opacity: 1;
  }
  
  .program_index ul li a .img {
    position: relative;
    padding-top: 67%;
  }
  .program_index ul li a .img.short {
    /* padding-top: 57.1%; */
  }
  
  .program_index ul li a .img div {
    position: absolute;
    height: 0;
    top: 0;
    left: 0;
    transition: all ease 1s;
    overflow: hidden;
  }
  
  .program_index ul li:nth-child(3n-1) a .img div {
    transition-delay: 0.1s;
  }
  
  .program_index ul li:nth-child(3n) a .img div {
    transition-delay: 0.2s;
  }
  
  .program_index ul li.active a .img div {
    height: 100%;
  }
  
  .program_index ul li a .img::after {
    content: "";
    background: rgb(7, 158, 229);
    /* Old browsers */
    background: -moz-linear-gradient(left, rgba(7, 158, 229, 1) 0%, rgba(241, 234, 19, 1) 100%);
    /* FF3.6-15 */
    background: -webkit-linear-gradient(left, rgba(7, 158, 229, 1) 0%, rgba(241, 234, 19, 1) 100%);
    /* Chrome10-25,Safari5.1-6 */
    background: linear-gradient(to right, rgba(7, 158, 229, 1) 0%, rgba(241, 234, 19, 1) 100%);
    /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#079ee5', endColorstr='#f1ea13', GradientType=1);
    /* IE6-9 */
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    mix-blend-mode: screen;
    opacity: 0;
    transition: opacity 0.3s ease;
  }
  
  .program_index ul li a:hover .img img {
    transform: scale(1.1);
  }
  
  .program_index ul li a:hover .img::after {
    opacity: 0.5;
  }
  
  .program_index ul li a .info {
    position: relative;
    transition: all ease 1s;
    opacity: 0;
  }
  
  .program_index ul li.active a .info {
    opacity: 1;
  }
  
  .program_index ul li:nth-child(3n-1) a .info {
    transition-delay: 0.1s;
  }
  
  .program_index ul li:nth-child(3n) a .info {
    transition-delay: 0.2s;
  }
  
  .program_index ul li a .place {
    display: flex;
    margin-top: 12px;
  }
  
  .program_index ul li a .place span {
    display: block;
    background: #000;
    text-align: center;
    font-size: 9px;
    font-weight: bold;
    color: #fff;
    padding: 4px 6px 5px 6px;
    line-height: 1em;
    margin-right: 5px;
  }
  
  .program_index ul li a .sub {
    font-size: 11px;
    letter-spacing: 0.1em;
    margin-top: 3px;
  }
  
  .program_index ul li a .title {
    line-height: 1.3em;
    font-size: 13px;
    margin-top: 8px;
    letter-spacing: 0.05em;
  }
	.program_index ul li a .title.f_en {
	  font-size: 14px;
	  line-height: 1.3em;
	}
  
  .program_index ul li a .title.f_en span {
    display: flex;
    font-size: 10px;
    font-weight: normal;
    line-height: 1.5em;
    letter-spacing: 0;
  }
  
  
  /*============================
  #program_datail
  ============================*/
  
  .program_datail {}
  
  .program_datail>.inner {
    width: 90%;
    margin: 0 auto;
    padding: 70px 0;
  }
  
  .program_datail article {
    margin-top: 70px;
  }
  
  .program_datail article.program1 {
    margin-top: 45px;
  }
  
  .program_datail article>.img {
    position: relative;
    padding-top: 100% !important;
  }
  
  .program_datail article>.img div {
    position: absolute;
    height: 0;
    top: 0;
    left: 0;
    transition: all ease 1s;
    overflow: hidden;
  }
  
  .program_datail article>.img.active div {
    height: 100%;
  }
  
  .program_datail article>.fbox {
    display: block;
    margin-top: 30px;
    justify-content: space-between;
    flex-wrap: wrap;
    align-items: start;
    position: relative;
  }
  
  .program_datail article .fbox .info {
    width: auto;
  }
  .program_datail article .fbox .info + .info {
	  margin-top: 60px;
  }
  
  .program_datail article .fbox .info .sub {
    font-size: 15px;
    letter-spacing: 0.15em;
  }
  
  .program_datail article .fbox .info h1 {
    font-family: 'Roboto Condensed', sans-serif;
    font-weight: 700;
    line-height: 1.1em;
    font-size: 25px;
    letter-spacing: 0.05em;
    margin-top: 5px;
    width: auto;
  }
.program_datail article .fbox .info h1.jp {font-size: 24px;line-height: 1.4em;}
  
  .program_datail article .fbox .info h1 span {
    display: block;
    font-size: 15px;
    font-weight: normal;
    letter-spacing: 0.1em;
    line-height: 1.3em;
    margin-top: 5px;
  }
	  
	.program_datail article .fbox .info .subtitle {
	  font-size: 17px;
	  margin: 20px 0 0px 0;
	  font-weight: bold;
	  line-height: 1.6em;
	}
  .program_datail article .fbox .info .text {
    font-size: 14px;
    margin-top: 15px;
    line-height: 1.7em;
  }
  
  .program_datail article .fbox .info .text.f_en {
    font-weight: normal;
    line-height: 1.7em;
    font-size: 11px;
    letter-spacing: 0.6px;
  }
.program_datail article .fbox .info .text.mini {
	font-size: 12px;
}
.program_datail article .fbox .info .text.f_en.mini {
	font-size: 10px;
}
  
  .program_datail article .fbox .info .credit {
    font-size: 9px;
    margin-top: 20px;
    line-height: 1.7em;
    color: #646464;
  }
  
  .program_datail article .fbox .info a.bt_link {}
  
  .program_datail article .fbox .detail {
    width: auto;
    margin-top: 35px;
    box-sizing: border-box;
    padding: 22px 17px;
    position: relative;
    top: 20px;
    transition: all ease 1s +0.3s;
    opacity: 0;
  }
  
  .program_datail article .fbox .info.active+.detail, .program_datail article .fbox .images.active+.detail {
    opacity: 1;
    top: 0;
  }
  
  .program_datail article .fbox .detail::before {
    background: #f1f1f1;
    position: absolute;
    content: "";
    display: block;
    width: 100%;
    height: 0%;
    top: 0;
    left: 0;
    transition: all ease 1s +0.5s;
  }
  
  .program_datail article .fbox .info.active+.detail::before, .program_datail article .fbox .images.active+.detail::before {
    height: 100%;
  }
  
  .program_datail article .fbox .detail>section {
    position: relative;
    margin-top: 24px;
    padding-top: 24px;
  }
  
  .program_datail article .fbox .detail>.label {
    font-size: 25px;
    line-height: 1.3em;
    margin-bottom: 20px;
    position: relative;
  }
  
  .program_datail article .fbox .detail>section:first-child, .program_datail article .fbox .detail>.label+section {
    padding-top: 0;
    margin-top: 0
  }
  
  .program_datail article .fbox .detail section::before {
    content: "";
    width: 30px;
    height: 1px;
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    background: #000;
  }
  
  .program_datail article .fbox .detail>section:first-child::before, .program_datail article .fbox .detail>.label+section::before {
    display: none
  }
  
  .program_datail article .fbox .detail section h2 {
    font-family: 'Roboto Condensed', sans-serif;
    font-size: 14px;
    letter-spacing: 0.1em;
    position: relative;
    padding-left: 18px;
    line-height: 1.5em;
    margin-bottom: 15px;
  }
  
  .program_datail article .fbox .detail section h2::before {
    left: 0;
    top: 50%;
    border: solid transparent;
    content: "";
    height: 0;
    width: 0;
    position: absolute;
    pointer-events: none;
    border-color: rgba(136, 183, 213, 0);
    border-left-color: #000;
    border-width: 10px;
    margin-top: -10px;
    transform: scale(1, 0.6);
  }
  
  .program_datail article .fbox .detail section .fbox {
    display: flex;
    align-items: center;
  }
  
  .program_datail article .fbox .detail .l {
    font-size: 12px;
    line-height: 1em;
    /* border: 2px solid #000; */
    /* padding: 3px 0; */
    width: 35px;
    text-align: left;
    margin-right: 10px;
    font-weight: bold;
  }
	.program_datail article .fbox .detail .l.en {font-size: 13px;width: 115px;}
	.program_datail article .fbox .detail .l.en .mini  {font-size: 10px;display: block;letter-spacing: 0;margin-top: 4px;transform: scale(0.8);transform-origin: 0 0;width: 140%;}

	.program_datail article.program2 .fbox .detail .l {width: 106px;}
	.program_datail article.program2 .fbox .detail .l.en {width: 117px;font-size: 11px;letter-spacing: 0;}
  
  .program_datail article .fbox .detail .l.vip {
    border-color: #97672f;
    color: #97672f;
    font-family: 'Roboto Condensed', sans-serif;
    padding: 4px 0 2px 0;
  }
  
  .program_datail article .fbox .detail .note {
    font-size: 11px;
    line-height: 1.6em;
    margin-top: 9px;
  }
	.program_datail article .fbox .detail section.fee .bt_more {
	  position: absolute;
	  width: 120px;
	  top: 50%;
	  right: 0;
	  padding: 10px 0;
	}
  
	.program_datail article.program2 .fbox .detail section.fee .bt_more {
	  margin-top: -16px;
	}
  .program_datail article .fbox .detail section h3 {
    margin-bottom: 10px;
  }
  
  .program_datail article .fbox .detail section section+section {
    margin-top: 15px;
  }
  
  .program_datail article .fbox .detail section dl {
    display: flex;
    flex-wrap: wrap;
    font-family: 'Roboto Condensed', sans-serif;
    font-weight: bold;
    line-height: 1.8;
    font-size: 14px;
  }
  
  .program_datail article .fbox .detail section dl dt {
    font-weight: bold;
    width: 120px;
  }
  
  .program_datail article .fbox .detail section dl dd {
    font-weight: bold;
    width: calc(100% - 120px);
    letter-spacing: 0;
  }
  
  .program_datail article .fbox .detail section dl.wide dt {
    width: 200px;
  }
  
  .program_datail article .fbox .detail section dl.wide dd {
    width: calc(100% - 200px);
  }
  
  .program_datail article .fbox .detail section .name.f_en {
    line-height: 1.5em;
    font-size: 14px;
  }
  
  .program_datail article .fbox .detail section .address {
    font-size: 11px;
    margin-top: 3px;
  }
  
  .program_datail article .fbox .detail section .address+.fbox {
    justify-content: space-between;
    margin-top: 10px;
  }
  
  .program_datail article .fbox .detail section .address+.fbox a.bt_more {
    width: 48%;
  }
  
  .program_datail article .fbox .detail section .fbox .fee {
    font-size: 14px;
    font-family: 'Roboto Condensed', 'Noto Sans JP', sans-serif;
    font-weight: bold;
    /* line-height: 1em; */
  }
  
  .program_datail article .fbox .detail section .fbox .fee+a.bt_more {
    width: 178px;
    margin-left: 10px;
  }
  
  .program_datail article.program1 .fbox .detail section .fbox .fee+a.bt_more {
    width: 70px;
  }
  
  .program_datail article .fbox .detail section .fbox+.name.f_en {
    margin-top: 20px;
  }
  
  .program_datail article .fbox .detail section .text {
    font-size: 13px;
    line-height: 1.7em;
    letter-spacing: 0;
    margin-top: 20px;
  }
  
  .program_datail article .fbox .detail section .text strong {
    font-weight: bold;
    text-decoration: underline;
    margin-bottom: 5px;
    display: block;
  }
  
  .program_datail article .fbox .detail section .text+.note {
    font-size: 11px;
  }
  
	.program_datail article.program5 .fbox .detail .note {
	  margin-bottom: 15px;
	}
	.program_datail article.program2 .fbox .detail .fbox + .note,.program_datail article.program2 .fbox .detail .fbox + .note + .note {
	  margin: 15px 0 0 0;
	}
	.program_datail article.program5 .fbox .detail .fbox + .note,.program_datail article.program5 .fbox .detail .fbox + .note + .note {
	  margin: 10px 0 0 0;
	}
  .program_datail article .fbox .images {
    width: auto;
    margin-top: 30px;
  }
  
  .program_datail article .fbox .images+.detail {
    margin-top: 30px;
  }
  
  .program_datail article .fbox .images .img {
    margin-top: 15px;
  }
  .program_datail article .video {
    margin-top: 40px;
  }
  
  
  /*============================
  #map
  ============================*/
  
  .map {
    /* background: #9baa9b; */
  }
  
  .map>.inner {
    width: 90%;
    margin: 0 auto;
    padding: 70px 0 10px 0;
  }
  
  .map h2.f_en {}
  
  .map .mapbox {
    margin-top: 30px;
  }
  
  .map .mapbox iframe {
    display: block;
    width: 100%;
    height: 350px;
  }
  
  .map a.bt_more {
    margin: 20px 0 0 auto;
    width: 170px;
  }
  
  
  /*============================
  #access
  ============================*/
  
  .access {
    /* background: #9baa9b; */
  }
  
  .access>.inner {
    width: 90%;
    margin: 0 auto;
    padding: 60px 0 66px 0;
  }
  
  .access h2.f_en {}
  
  .access .accessbox {
    margin-top: 30px;
  }
  
  .access .accessbox h3 {
    overflow: hidden;
    transition: 1s ease all;
    width: 100%;
    opacity: 0;
  }
  
  .access .accessbox h3.active {
    opacity: 1;
  }
  
  .access .accessbox h3 img {
  width: 100%;
  }
  
  .access .accessbox .fbox {
    display: block;
    padding: 24px 18px;
    position: relative;
  }
  
  .access .accessbox .fbox::before, .access .bus::before {
    content: "";
    display: block;
    background: #fff;
    position: absolute;
    left: 0;
    top: 0;
    width: 0%;
    height: 100%;
    transition: 1s ease all;
  }
  
  .access .accessbox .fbox.active::before, .access .bus.active::before {
    width: 100%;
  }
  
  .access .accessbox .fbox .box, .access .bus h3, .access .bus .fbox p {
    position: relative;
    transition: 1s ease +0.3s all;
    opacity: 0;
  }
  
  .access .accessbox .fbox.active .box, .access .bus.active h3, .access .bus.active .fbox p {
    opacity: 1;
  }
  
  .access .accessbox .fbox .box+.box {
    margin-left: 0;
    /* margin-top: 30px; */
    transition-delay: 0.5s;
  }
  
  .access .accessbox .fbox .box .title {
    font-size: 15px;
    font-weight: bold;
    font-family: 'Roboto Condensed', 'Noto Sans JP', sans-serif;
  }
  
  .access .accessbox .fbox .box .address {
    font-size: 13px;
  }
  
  .access .accessbox .fbox .box .route {
    font-size: 11px;
    line-height: 1.7em;
    margin-top: 5px;
  }
  
  .access .accessbox .fbox .box.f_en {}
  
  .access .accessbox .fbox .box.f_en .title {}
  
  .access .accessbox .fbox .box.f_en .address {}
  
  .access .accessbox .fbox .box.f_en .route {
  font-size: 10px;
}
  
  .access .bus {
    position: relative;
    margin-top: 36px;
    padding: 24px 18px;
  }
  
  .access .bus h3 {
    background: url(../images/icon_bus.png) no-repeat left center;
    background-size: 40px auto;
    padding-left: 50px;
    font-size: 15px;
    line-height: 1.8em;
    margin-bottom: 12px;
  }
  
  .access .bus .fbox {
    display: block;
  }
  
  .access .bus .fbox p {
    font-size: 13px;
    line-height: 1.7em;
  }
  
  .access .bus .fbox p.f_en {
    font-weight: normal;
    margin-left: 0;
    margin-top: 20px;
    transition-delay: 0.5s;
    font-size: 10px;
  }
  
  .main .bt_contact {
    /* background: #9baa9b; */
  }
  
  .main .bt_contact a {
    display: block;
    position: relative;
  }
  
  .main .bt_contact a::before {
    content: "";
    width: 0;
    display: block;
    position: absolute;
    left: 0;
    height: 100%;
    top: 0;
    transition: width 1s ease;
  }
  
  .main .bt_contact.active a::before {
    width: 100%;
  }
  
  .main .bt_contact span {
    display: block;
    font-size: 30px;
    color: #fff;
    padding: 42px 28px;
    background: url(../images/icon_mail.png) no-repeat right 25px center;
    background-size: 50px auto;
    width: auto;
    margin: 0 auto;
    position: relative;
    opacity: 0;
    transition: opacity 1s ease +0.5s;
  }
  
  .main .bt_contact.active span {
    opacity: 1;
  }
	.related {
	  position: relative;
	  padding: 45px 0 45px 0;
	}
	.related2 {
	  padding: 29px 0 45px 0;
	}
	.related > .inner {
	  width: 90%;
	  margin: 0 auto;
	  position: relative;
	}
	.related2 > .inner {
	  padding-bottom: 40px;
	}
	.related2 .title {
		font-size: 17px;
		margin-bottom: 2px;
	}
	.related ul {display: flex;flex-wrap: wrap;justify-content: space-between;gap: 20px 0;}
	.related ul li {
	  width: 48%;
	}
	.related ul li a {display: block;width: 0;overflow: hidden;
	  transition: 1s ease all;}
	.related.active ul li a {
	  width: 100%;
	}
	.related ul li a img {
	  width: 43vw;
	  max-width: none;
	}
	.related ul li.wide {
	  width: 100%;
	}
	.related.active ul li.wide a {
	  width: 100%;
	}
	.related ul li.wide a img {
	  width: 90vw;
	  max-width: none;
	}
	.related .bt_gototop {display: block;position: absolute;right: 0;background: #000;width: 50px;height: 50px;color: #fff;box-sizing: border-box;padding: 28px 0 0 0;bottom: 0;}
	.related .bt_gototop::before {
	  content: "";
	  position: absolute;
	  display: block;
	  width: 15px;
	  height: 15px;
	  border-top: 1px solid #fff;
	  border-right: 1px solid #fff;
	  transform: translate(-50%, 0) rotate(-45deg);
	  left: 50%;
	  top: 13px;
	}
	.related .bt_gototop span {text-align: center;display: block;font-size: 14px;line-height: 1em;letter-spacing: 0.1em;}
	

  .remodal-overlay {
    background: rgba(0, 0, 0, 0.5);
    z-index: 1000000;
  }
  
  .remodal-wrapper {
    z-index: 1000001;
  }
  
  .remodal-close {
    left: 50%;
    right: auto;
    top: auto;
    bottom: 7px;
    width: 42px;
    height: 57px;
    transform: translate(-50%, 0);
    color: #fff;
    box-sizing: border-box;
    padding-top: 30px;
  }
  
  .remodal-close::before {
    display: none;
  }
  
  .remodal-close::before, .remodal-close::after {
    display: block;
    position: absolute;
    content: "";
    width: 30px;
    height: 1px;
    background: #fff;
    left: 6px;
    top: 35%;
    transform: rotate(-45deg);
  }
  
  .remodal-close::after {
    transform: rotate(45deg);
  }
  
  .remodal {
    margin-bottom: 40px;
    text-align: left;
    background: #000;
    width: 98%;
    padding: 15px 15px 71px 15px;
  }
  .remodal.archive {
    width: 100%;
  }

}