@charset "UTF-8";

html,body{
width:100%;
height:100%;
position: relative;
background:#fff;
color:#333;
}

body.fixed {
width: 100%;
height: 100%;
position: fixed;
}

img{ 
vertical-align:middle;
width:100%;
height:auto;
}

@media screen and (max-width:767px){

body{ letter-spacing:0.05em; }

}

*, *:before, *:after {
    -webkit-box-sizing: border-box;
       -moz-box-sizing: border-box;
         -o-box-sizing: border-box;
        -ms-box-sizing: border-box;
            box-sizing: border-box;
}


/*----------------------------------------------------------------------------------------------------------------------laoding----------*/

#loader {
display:none;
position:fixed;
top:50%;
left:50%;
z-index:1030;
margin-left:-16px;
margin-top:-16px;
width:32px;
height:32px;
}

#loader img{
width:100%;
height:auto;
}

#fade {
width:100%;
height:100%;
display:none;
background-color:#fff;
position: absolute;
top:0;
left:0;
z-index:1020;
}




/*----------------------------------------------------------------------------------------------------------------------#sp_menu----------*/

/*-------------------------------------------------------------------animation----------*/

/*SPメニュー出現時*/

.slide_in { animation: slideIn 1s cubic-bezier(0.19, 1, 0.22, 1); }

@keyframes slideIn {
0% {
transform: translateX(100px);
opacity: 0;
}

100% { 
transform: translateX(0);
opacity: 1; 
}

}

.btn_wrapper {
position:fixed;
z-index:100;
width:70px;
height:70px;
top:20px;
right:4.15%;
}

.menu_btn {
width:60px;
height:100px;
overflow:visible;
cursor:pointer;
z-index:100;
position:absolute;
top:0 ;
left:calc(50% - 30px) ;
}

.menu_btn .line {
position:absolute;
background-color:#333;
overflow:hidden;
width:55px;
height:2px;
left:0;
-webkit-transition: all 400ms ease-out 0ms;
-moz-transition: all 400ms ease-out 0ms;
-o-transition: all 400ms ease-out 0ms;
transition: all 400ms ease-out 0ms;
}

.menu_btn .line:nth-child(1) {
top:45px;
left:10px;
}
.menu_btn .line:nth-child(2) {
bottom:45px;
left:10px;
}

.btn_wrapper.clicked .menu_btn .line:nth-child(1) {
-webkit-transform: translateY(4px) rotate(45deg);
transform: translateY(4px) rotate(45deg);
-webkit-transition: all 400ms ease-out 0ms;
-moz-transition: all 400ms ease-out 0ms;
-o-transition: all 400ms ease-out 0ms;
transition: all 400ms ease-out 0ms;
background-color: #fff;
}

.btn_wrapper.clicked .menu_btn .line:nth-child(2) {
-webkit-transform: translateY(-4px) rotate(-45deg);
transform: translateY(-4px) rotate(-45deg);
-webkit-transition: all 400ms ease-out 0ms;
-moz-transition: all 400ms ease-out 0ms;
-o-transition: all 400ms ease-out 0ms;
transition: all 400ms ease-out 0ms;
background-color: #fff;
}

.btn_wrapper.clicked { background-color: rgba(95, 185, 227, 0); }


#sp_menu{ position:relative; }

#sp_menu nav {
position: fixed;
width: 66.6%;
height: 100%;/*100vh*/
top: 0;
right: 0;
display:none;
z-index:99;
background-color: rgba(190, 190, 190, .95);
}

.gnav_sp{
height:100%;
margin-left: 6%;
position: relative;
}

.gnav_sp h1{
position:absolute;
top:45px;
left:0;
width:30%;
}

.gnav_sp h2{
position:absolute;
bottom:50px;
left:0;
width:38px;
}

.gnav_sp{
display: flex;
align-items: center;
}

.gnav_sp li {
font-size:18px;
font-weight:bold;
letter-spacing:0.1em;
color:#fff;
}

#sp_menu nav a {
transition: all 0.75s cubic-bezier(0.19, 1, 0.22, 1);
opacity:1;
color:#fff;
}

#sp_menu nav a:hover{ opacity:0.6; }

@media screen and (max-width:767px){

.btn_wrapper {
width:55px;
height:55px;
top:10px;
right:0;
border-left:none;
}

#sp_menu nav { width: 88%; }

.gnav_sp h1{
top:65px;
width:54%;
}

.menu_btn {
width:55px;
height:55px;
left:calc(50% - 30px) ;
}

.menu_btn .line { width:30px; }

.menu_btn .line:nth-child(1) {
top:30px;
left:10px;
}

.menu_btn .line:nth-child(2) {
bottom:30px;
left:10px;
}

.btn_wrapper.clicked .menu_btn .line:nth-child(1) {
-webkit-transform: translateY(-4px) rotate(45deg);
transform: translateY(-4px) rotate(45deg);
}

.btn_wrapper.clicked .menu_btn .line:nth-child(2) {
-webkit-transform: translateY(3px) rotate(-45deg);
transform: translateY(3px) rotate(-45deg);
}


}


/*----------------------------------------------------------------------------------------------------------------------#main_v----------*/

#main_v{
width:100%;
height:100%;
position:relative;
background: linear-gradient(0deg, rgb(95, 185, 227), rgb(156, 195, 146));
}

#main_v h1{
width:13.8%;
max-width:300px;
line-height:1;
position:absolute;
top:56px;
left:4.15%;
z-index:10;
}

#main_v h2{
position: absolute;
left:50%;
top:50%;
transform: translateY(-50%);
-webkit-transform: translateY(-50%);
-ms-transform: translateY(-50%);
z-index: 10;
width:36%;
filter: drop-shadow(12px 12px 32px rgba(0,0,0,0.25));
}

#main_v h3{
line-height:1;
position:absolute;
bottom:75px;
left:4.15%;
z-index:10;
font-size:20px;
font-weight:bold;
color: #333;
}

#visual{
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
-webkit-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
z-index:5;
width:82%;
}

#visual_sp{ display: none; }

#main_v .copyright{
font-size:8px;
position: absolute;
bottom:75px;
right:4.15%;
writing-mode: vertical-rl;
text-orientation: mixed;
color:#333;
z-index:10;
}


@keyframes fuwafuwa {
  0%, 100% {
    transform: translateY(5px);
  }
  50% {
    transform: translateY(-5px) ;
  }
}

.anime-fuwafuwa { animation: 20s fuwafuwa infinite; }



@media screen and (max-width:1100px){

}


@media screen and (max-width:767px){

#main_v h1{
width:40%;
max-width:40%;
top:20px;
left:4.15%;
}

#main_v h2{
left:8.3%;
width:78%;
}

#main_v h3{
bottom:50px;
left:4.15%;
font-size:18px;
line-height: 1.6;
}

#visual{
display: none;
}

#visual_sp{
display: block;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
-webkit-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
z-index:5;
width:100%;
}

#main_v .copyright{
font-size:8px;
bottom:50px;
right:4.15%;
margin-right: -4px;
}

}



/*----------------------------------------------------------------------------------------------------------------------#about----------*/

#about{ 
background: linear-gradient(0deg, rgb(255, 255, 255) 50%, rgb(95, 185, 227));
}

#about .cont_box{ 
padding-top:150px;
padding-bottom:150px;
display:flex;
justify-content:space-between;
align-items: center;
flex-direction: row-reverse;
}

#about .txt_about { 
width: 54%;
position: relative;
z-index: 10;
}

#about .txt_about_noimg { 
width: 100%;
position: relative;
z-index: 10;
}

#about .txt_about p{ 
margin: 35px 0 0 0;
width:55%;
}

#about .img_about { 
margin-left: -16%;
width:60%; 
}

@media screen and (max-width:1100px){}

@media screen and (max-width:767px){

#about .cont_box{ 
padding-top:70px;
padding-bottom:70px;
display:block;
}

#about .txt_about { width: 100%; }

#about .txt_about h2{ margin-top: 20px; }

#about .txt_about p{ 
margin: 25px 0 0 0;
width:100%;
}

#about .img_about { 
margin-left:0;
width:100%; 
}


}

/*----------------------------------------------------------------------------------------------------------------------#about_noimg----------*/

#about_noimg{ 
background: linear-gradient(0deg, rgb(255, 255, 255) 50%, rgb(95, 185, 227));
}

#about_noimg .cont_box{ 
padding-top:150px;
padding-bottom:150px;
}

#about_noimg .txt_about { 
width: 100%;
position: relative;
z-index: 10;
}

#about_noimg .txt_about p{ 
margin: 35px 0 0 10%;
width:90%;
}

@media screen and (max-width:767px){

#about_noimg .cont_box{ 
padding-top:60px;
padding-bottom:70px;
}

#about_noimg .txt_about { width: 100%; }

#about_noimg .txt_about h2{ margin-top: 20px; }

#about_noimg .txt_about p{ 
margin: 25px 0 0 0;
width:100%;
}


}



/*----------------------------------------------------------------------------------------------------------------------#consult----------*/

#consult .cont_box{
padding-top: 100px;
padding-bottom: 120px;
}

#consult .cont_box ul {
display: flex;
justify-content: space-between;
width:90%;
margin-left: auto;
}

#consult .cont_box ul li{
width:44.4%;
margin-top:60px;
}

#consult .cont_box ul li:last-child{
border-left:1px solid #ddd;
padding-left: 5.6%;
width:50%;
}

#consult .cont_box .ph{ 
border:1px solid #ddd;
padding: 4px;
}

#consult .cont_box h4{
font-size:22px;
color:#38a6d9;
font-weight:bold;
margin-top:25px;
border-bottom:1px dotted #ccc;
padding-bottom:8px;
margin-bottom:14px;
}

#consult .cont_box dl{
margin-top:12px;
display: flex;
justify-content: space-between;
flex-wrap: wrap;
}

#consult .cont_box dl dt{ width:15%; }

#consult .cont_box dl dd{ width:85%; }

#consult .arw_btn{ margin-top:30px;}

#consult .cont_box .caution { 
margin-top: 60px;
font-size:14px;
font-weight: bold;
color: #7894c6;
}


@media screen and (max-width:1100px){

#consult .cont_box dl dt{ width:18%; }

#consult .cont_box dl dd{ width:82%; }

}

@media screen and (max-width:767px){

#consult .cont_box{
padding-top: 60px;
padding-bottom: 60px;
}

#consult .cont_box ul {
display: block;
width:90%;
margin-left: auto;
}

#consult .cont_box ul li{
width:100%;
margin-top:40px;
}

#consult .cont_box ul li:last-child{
border-left:none;
padding-left: 0;
width:100%;
}

#consult .arw_btn{ margin-top:20px;}

#consult .cont_box h4{ margin-top:20px; }

#consult .cont_box dl{ margin-top:15px; }

#consult .cont_box dl dt{ width:18%; }

#consult .cont_box dl dd{ width:82%; }

}



/*----------------------------------------------------------------------------------------------------------------------#exhibitions----------*/

#exhibitions .cont_box{
position:relative;
padding-top: 100px;
padding-bottom: 100px;
}

.tabs {
margin-top:50px;
width:90%;
margin-left: auto;
}

.tab_item {
width: calc(100%/3);
height: 50px;
border-bottom: 1px solid #ddd;
line-height: 50px;
text-align: center;
display: block;
float: left;
font-weight: normal;
ransition: all 0.2s ease;
position: relative;
}

.tab_item::after {
content: "";
background-color:rgba(221,221,221,1);
display: block;
height: 15px;
position: absolute;
right:0;
bottom:0;
width: 1px;
}

.tab_item:hover { 
font-weight: bold;
cursor: pointer;
}


input[name="tab_item"] { display: none; }

/*選択したタブのコンテンツのみ表示*/
#school:checked ~ #school_content,
#personal:checked ~ #personal_content,
#project:checked ~ #project_content {
display: block;
}

/*選択したタブのスタイルを変更*/
.tabs input:checked + .tab_item {
font-weight: bold;
border-bottom: 1px solid #333;
}

.tab_content {
display: none;
clear: both;
overflow: hidden;
}

.tab_content ul{
display: flex;
justify-content: space-between;
flex-wrap: wrap;
}

.tab_content ul li{
width:44%;
margin-top:50px;
position: relative;
padding-bottom: 45px;
}

#exhibitions .cont_box ul li:nth-child(odd){
border-right:1px solid #ddd;
padding-right: 5.6%;
width:50%;
}

.tab_content ul .ph{ 
border:1px solid #ddd;
padding: 4px;
}


.tab_content ul h4{
font-size:22px;
color:#38a5d8;
font-weight:bold;
margin-top:36px;
border-bottom:1px dotted #ccc;
padding-bottom:8px;
}

.tab_content ul h5{
font-size:16px;
font-weight:bold;
margin-top:15px;
}

.tab_content ul p{ margin-top:12px; }

.tab_content ul p a,
.tab_content dl a{
font-weight:bold;
text-decoration: underline;
color:#38a5d8;
}

.tab_content ul p a:hover,
.tab_content dl a:hover
{ text-decoration: none; }

.tab_content dl{
margin-top:12px;
display: flex;
justify-content: space-between;
flex-wrap: wrap;
width:100%;
}

.tab_content dl dt{ width:15%; }

.tab_content dl dd{ width:85%; }


@media screen and (max-width:767px){

#exhibitions .cont_box{
padding-top: 70px;
padding-bottom: 70px;
}

.tabs { margin-top:20px; }

/*タブのスタイル*/
.tab_item {
width:100%;
height: 60px;
line-height: 60px;
}

.tab_item::after {
height: 0px;
width: 0px;
}

.tab_content ul{display: block; }

.tab_content ul li{
width:100%;
margin-top:50px;
padding-bottom: 45px;
}

#exhibitions .cont_box ul li:nth-child(odd){
border-right:none;
padding-right:0;
width:100%;
}

.tab_content ul h4{
font-size:18px;
margin-top:25px;
}

.tab_content ul h5{ margin-top:12px; }

}


/*----------------------------------------------------------------------------------------------------------------------#question----------*/

#question .cont_box{
padding-top: 100px;
padding-bottom: 150px;
}

#question .inner{
margin-top:40px;
width:90%;
margin-left: auto;
display: flex;
align-items: center;
}

#question .inner p { 
width:80%;
padding-right: 10%;
}

#question .inner .arw_btn { 
width:20%;

}


@media screen and (max-width:767px){

#question .cont_box{
padding-top: 70px;
padding-bottom: 70px;
}

#question .inner{
margin-top:30px;
display: block;
}

#question .inner p { 
width:100%;
padding-right:0;
}

#question .inner .arw_btn { 
width:100%;
margin-top: 30px;
}


}


/*----------------------------------------------------------------------------------------------------------------------#iamas----------*/

#iamas .cont_box{
padding-top: 110px;
padding-bottom: 140px;
}

#iamas .inner{
margin-top:80px;
width:90%;
margin-left: auto;
display: flex;
flex-direction: row-reverse;
justify-content: space-between;
}

#iamas .inner p { 
width:44.4%;
margin-top: -8px;
}

#iamas .inner .ph { 
width:50.1%;
}

#iamas ul{ 
margin-top:40px;
width:90%;
margin-left: auto;
display: flex;
justify-content: space-between;
flex-wrap: wrap;
}

#iamas ul li{ 
width:33%;
margin-top:25px;
}


@media screen and (max-width:767px){

#iamas .cont_box{
padding-top: 70px;
padding-bottom: 70px;
}

#iamas .inner{
margin-top:40px;
width:90%;
display: block;
}

#iamas .inner p { 
width:100%;
margin-top: 30px;
}

#iamas .inner .ph { 
width:100%;
}

#iamas ul{ 
margin-top:40px;
width:90%;
margin-left: auto;
display: block;
}

#iamas ul li{ 
width:100%;
margin-top:20px;
}

}


/*----------------------------------------------------------------------------------------------------------------------#access----------*/

#access .cont_box{
padding-top: 110px;
padding-bottom: 140px;
}

#access ul {
display: flex;
justify-content: space-between;
width:90%;
margin-left: auto;
}

#access ul li{
width:44%;
margin-top:50px;
}

#access ul li:nth-child(odd){
border-right:1px solid #ddd;
padding-right: 5.6%;
width:50%;
}

#access ul .ph {
border:1px solid #ddd;
padding: 4px;
}

#access ul li p{ margin-top:30px; }

#access ul li .arw_btn{ margin-top:30px;}

#gmap { 
margin-top:80px;
margin-left: 10%;
width: 80%;
}

#access .method{ 
margin-top:40px;
margin-left: auto;
width: 90%;
}

#access .method h4{ font-weight: bold; }

#access .method .arw_btn{ margin-top: 10px;}

#access .method .caution{
margin-top: 10px;
font-size:14px;
font-weight: bold;
color: #38a5d8;
}


@media screen and (max-width:767px){

#access .cont_box{
padding-top: 70px;
padding-bottom: 70px;
}

#access ul {
display: block;
width:90%;
margin-left: auto;
}

#access ul li{
width:100%;
margin-top:40px;
}

#access ul li:nth-child(odd){
border-right:none;
padding-right: 0;
width:100%;
}

#access ul li p{ margin-top:20px; }

#access ul li .arw_btn{ margin-top:10px;}

#gmap { 
margin-top:50px;
width: 90%;
}

#gmap iframe{ height: 300px; }

#access .method{ margin-top:30px; }

#access .method .caution{ font-size:12px; }

}



/*----------------------------------------------------------------------------------------------------------------------footer----------*/


footer{
padding:120px 0;
width:100%;
background-color: #5fb9e3;
}

footer h1{ 
width:30%;
max-width:500px;
margin: 0 auto;
}

footer h1 img{ 
width:100%;
height: auto;
}


@media screen and (max-width:767px){

footer{ padding:80px 0; }

footer h1{ width:60%; }

}


/*----------------------------------------------------------------------------------------------------------------------css_btn----------*/


.arw_btn a {
background:url('/openhouse/24/images/arrow.png') no-repeat left center;
background-size:40px 40px;
padding:2px 0 6px 55px;
font-size: 18px;
text-decoration: underline;
opacity: 1;
transition: all 0.5s 0s cubic-bezier(0.23,1,0.32,1);
display: inline-block;
}

.arw_btn a:hover  {
text-decoration:none;
opacity: 0.6;
}



@media screen and (max-width:767px){



}

/*----------------------------------------------------------------------------------------------------------------------共通要素----------*/

.br_pc{ display:inline; }

.br_sp{ display:none; }

.cont_box{
margin: 0 auto;
border-left:1px solid #ddd;
border-right:1px solid #ddd;
width: 91.7%;
padding-right:4.15%;
padding-left:4.15%;
}

.sec_box{
width:100%;
border-top:1px solid #ddd;
}

.cont_box h2{
font-weight:bold;
font-size: 14px;
color: #38a6d9;
letter-spacing:0.01em;
}

.tit_jp{
/*font-size:60px;*/
font-size: clamp(35px,4vw,70px);
font-weight:bold;
color:#333;
line-height: 1;
margin-top: 10px;
}

.tit_jp .marker{ 
text-decoration: underline; 
text-decoration-thickness: 0.35em; /* 太さ */
text-decoration-color: rgba(214, 214, 214, 1);
text-underline-offset: -0.35em; /* 位置*/
text-decoration-skip-ink: none; 
}

.bg_grey_box{ background-color:#f6f6f6; }

@media screen and (max-width:1100px){

.br_pc{ display:none; }

.br_sp{ display:inline; }

}


@media screen and (max-width:767px){

.cont_box{
margin: 0 auto;
border-left:1px solid #ddd;
border-right:1px solid #ddd;
width: 90%;
padding-right:5%;
padding-left:5%;
}

.sec_box{
width:100%;
border-top:1px solid #ddd;
}


.tit_jp{
font-size: clamp(35px,4vw,70px);
font-weight:bold;
color:#333;
line-height: 1;
margin-top: 5px;
}


}



/*----------------------------------------------------------------------------------------------------------------------#time_table----------*/

#time_table .cont_box{
padding-top: 110px;
padding-bottom: 140px;
}

#time_table h4 { 
font-size:24px;
font-weight: bold;
line-height:1;
margin: 60px 0 0 10%;
width:90%;
}

.table {
margin:35px 0 0 10%;
width:90%;
display: flex;
height: 462px;
overflow-x:scroll;
position: relative;
}

.table .fix_time{
position:sticky;
top:0;
left:0;
z-index: 50;
}

.table p img{
height: 462px;
width:auto;
}

.cont_box table{ 
width:90%;
background-color:#fff;
margin: 30px 0 0 10%;
line-height:1.8;
}

.cont_box table th{
font-weight:bold;
color:#38a6d9;
width: 25%;
padding: 18px 0 18px 30px;
border-right:1px solid #ddd;
}

.cont_box table td{
font-weight:normal;
width:75%;
padding: 18px 0 18px 40px;
}

.cont_box table tr:nth-child(odd) th{ background-color: #F0F0F0;}
.cont_box table tr:nth-child(odd) td{ background-color: #F0F0F0;}
.cont_box table tr:last-child th{ border-bottom: none; }
.cont_box table tr:last-child th{ border-bottom: none; }
.cont_box table tr:last-child td{ border-bottom: none; }

.space{
height: 565px;
}

.space .fix_place{
position:sticky;
top:0;
left:0;
z-index: 50;
}

.space p img{
height: 565px;
width:auto;
}

.space .fix_place p img{
height: 565px;
width:auto;
}


.space_ws{
height: 670px;
}

.space_ws .fix_place{
position:sticky;
top:0;
left:0;
z-index: 50;
}

.space_ws p img{
height: 670px;
width:auto;
}


@media screen and (max-width:767px){

#time_table .cont_box{
padding-top: 70px;
padding-bottom: 70px;
}

#time_table h4 { 
font-size:18px;
margin: 40px 0 0 0;
width:100%;
}

.table {
margin:20px 0 0 0;
width:100%;
}

.cont_box table th{
width: 35%;
padding: 12px 0 12px 12px;
font-size:14px;
}

.cont_box table td{
width:65%;
padding: 12px 12px 12px 12px;
font-size:14px;
}

.cont_box table{ 
width:100%;
margin: 20px 0 0 0;
}

}

/*----------------------------------------------------------------------------------------------------------------------#guide----------*/

#guide .cont_box{
padding-top: 120px;
padding-bottom: 140px;
}

#guide .cont_box ul {
display: flex;
justify-content: space-between;
width:90%;
margin-left: 10%;
}

#guide .cont_box ul li{
width:44.4%;
margin-top:60px;
}

#guide .cont_box ul li:last-child{
border-left:1px solid #ddd;
padding-left: 5.6%;
width:50%;
}

#guide .cont_box .ph{ 
border:1px solid #ddd;
padding: 4px;
}

#guide .cont_box ul li .arw_btn{ margin-top:50px; }

@media screen and (max-width:767px){

#guide .cont_box{
padding-top: 70px;
padding-bottom: 70px;
}

#guide .cont_box ul {display:block; }

#guide .cont_box ul li{
width:100%;
margin-top:40px;
}

#guide .cont_box ul li:last-child{
border-left:none;
padding-left:0;
width:100%;
}


#guide .cont_box ul li .arw_btn{ margin-top:30px; }

}






