@charset "utf-8";
/* top css */

/*-------------------------------------------------
loading
-------------------------------------------------*/

/*TOPページ用loader*/
.loader_top {
position: fixed;
z-index: 7;
top: 0;
right: 0;
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 100%;
background: #003D7C;
}
.is-loaded .loader_top {
animation-name: loader_fadeOut;
animation-duration: 1.5s;
animation-timing-function: cubic-bezier(0, 0, 0.58, 1);
animation-delay: 2.5s;
animation-fill-mode: forwards;
}
.is-loaded .loader_logo {
animation: loader_fadeIn 1.5s cubic-bezier(0.42, 0, 1, 1) forwards 0.5s,
reset_zindex 0s cubic-bezier(0.42, 0, 1, 1) forwards 4.5s;
}
.progress {
backface-visibility: hidden;
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin: auto;
width: 200px;
height: 1px;
background: #999;
}

@media screen and (min-width: 768px) {
.progress {
min-width: 272px;
width: 18.88889%;
}
}

@media screen and (max-width: 767px) {
.progress {
width: 32.85024%; 
} 
}

.is-loaded .progress {
animation-name: loader_fadeOut;
animation-duration: 0.5s;
animation-timing-function: cubic-bezier(0, 0, 0.58, 1);
animation-delay: .3s;
animation-fill-mode: forwards;
}
.progress_inner {
position: relative;
width: 100%;
height: 100%;
}
.progress_bar {
width: 100%;
height: 100%;
background: #ffffff;
transform: scaleX(0);
transform-origin: 0 50%;
transition: all 10s cubic-bezier(0, 0, 0.58, 1);
}

@keyframes loader_fadeIn {
from {
opacity: 0;
visibility: visible;
filter: blur(5px);
}
to {
opacity: 1;
filter: none;
visibility: visible;
} 
}

@keyframes loader_fadeOut {
from {
opacity: 1;
}
to {
opacity: 0;
visibility: hidden;
}
}

@keyframes reset_zindex {
from { 
}
to {
z-index: 1;
} 
}


/*-------------------------------------------------
header
-------------------------------------------------*/

.site_header {
position: absolute;
left: 0;
top: 0;
z-index: 6;
background: rgba(255,255,255,0.8);
}



/*-------------------------------------------------
PV
-------------------------------------------------*/

.header_top {
width: 100%;
transition: 1.3s;
position: relative;
height: 100vh;
}

@media all and (max-width : 767px ){
.header_top {
height: 100dvh; 
}
}


/*-------------------------------------------------
pv タイトルロゴ
-------------------------------------------------*/

.header_title {
position: absolute;
top: 45%;
left: 50%;
z-index: 7;
transform: translate(-50%, -50%);
-webkit-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
visibility: hidden;
opacity: 0; 
}
.header_title {
width: 596px;
height: auto;
}


@media all and (max-width : 820px ){
.header_title {
width: 430px;
height: auto;
}
}

@media screen and (max-width: 767px) {
.header_title {
width: 330px;
top: 36%;
}
}

.header_title_svg {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
width: 100%;
height: 100%;
}


/*-------------------------------------------------
KV swiper
-------------------------------------------------*/

.kv_slide {
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
z-index: 0;
}
.kv_slide .swiper .swiper-wrapper {
position: relative;
}
.kv_slide .swiper .swiper-wrapper::after {
content: "";
display: block;
background: url("../img/common/bg_grid_50.png");
background-repeat: repeat;
width: 100%;
height: 100%;
position: absolute;
left: 0;
top: 0;
z-index: 1;
}
.mv01 .swiper-fade .swiper-slide {
-webkit-transition-property: opacity, -webkit-transform !important;
transition-property: opacity, -webkit-transform !important;
transition-property: opacity, transform !important;
transition-property: opacity, transform, -webkit-transform !important;
pointer-events: none;
}
.mv01 .swiper-fade .swiper-slide-active {
pointer-events: auto;
}
.mv01 .swiper-pagination {
position: absolute;
z-index: 2;
top: 0;
bottom: 0;
left: 3.2rem;
height: -webkit-max-content;
height: -moz-max-content;
height: max-content;
margin: auto;
}

@media all and (max-width : 767px ){
.mv01 .swiper-pagination {
position: absolute;
top: 0;
bottom: 0;
left: 1.5rem;
}
}

.mv01 .swiper-pagination-bullet {
display: block;
width: 3px;
height: 4rem;
cursor: pointer;
-webkit-transition: var(--transition);
transition: var(--transition);
background-color: rgba(255, 255, 255, 0.6);
opacity: 100%;
border-radius: 0%;
}
.mv01 .swiper-pagination-bullet:not(:first-child) {
margin-top: 0.8rem;
}
.mv01 .swiper-pagination-bullet-active {
background: #FCC800;
}
.mv01 .slide-media {
width: 100%;
height: 100vh;
}

@media all and (max-width : 767px ){
.mv01 .slide-media {
height: 100dvh; 
}
}

.mv01 .slide-media img {
-webkit-transition: 5s 1s ease-out;
transition: 5s 1s ease-out;
width: 100%;
height: 100%;
object-fit: cover;
}

.mv01 .swiper-slide[class*=-active] .slide-media img {
-webkit-transition-delay: 0s;
transition-delay: 0s;
-webkit-transform: scale(1.05);
transform: scale(1.05);
}

@-webkit-keyframes mv01-fadeIn {
0% {
-webkit-transform: scale(0.5);
transform: scale(0.5);
opacity: 0;
-webkit-filter: blur(300px);
filter: blur(300px);
}
100% {
-webkit-transform: scale(1);
transform: scale(1);
opacity: 1;
-webkit-filter: blur(0);
filter: blur(0);
}
}

@keyframes mv01-fadeIn {
0% {
-webkit-transform: scale(0.5);
transform: scale(0.5);
opacity: 0;
-webkit-filter: blur(300px);
filter: blur(300px);
}
100% {
-webkit-transform: scale(1);
transform: scale(1);
opacity: 1;
-webkit-filter: blur(0);
filter: blur(0);
}
}

/*------------------------------------------------- 
scroll bar
------------------------------------------------- */

.scroll_bar a {
position: fixed;
bottom: 0;
left: 50%;
transform: translateX(-50%);
-webkit-transform: translateX(-50%);
-ms-transform: translateX(-50%);
z-index: 4;
padding: 10px 10px 110px;
color: #ddd;
}
.scroll_bar a::after {
content: '';
position: absolute;
bottom: -100px;
left: 50%;
width: 1px;
height: 200px;
background: #ddd;
}
.scroll_bar a::before {
content: '';
position: absolute;
bottom: -100px;
left: 50%;
width: 1px;
height: 200px;
background-color: rgba(131, 131, 127, 0.4);
}
.scroll_bar a::after {
animation: sdl 1.5s cubic-bezier(1, 0, 0, 1) infinite;
}

@keyframes sdl {
0% {
transform: scale(1, 0);
transform-origin: 0 0;
}
50% {
transform: scale(1, 1);
transform-origin: 0 0;
}
50.1% {
transform: scale(1, 1);
transform-origin: 0 100%;
}
100% {
transform: scale(1, 0);
transform-origin: 0 100%;
}
}

@media all and (max-width : 767px ){
.scroll_bar a::after {
bottom: -30px;
height: 60px;
}
.scroll_bar a::before {
bottom: -30px;
height: 60px;
}
}


/*-------------------------------------------------
sec_concept
-------------------------------------------------*/

.header_bottom {
width: 100%;
transition: 1.3s;
position: relative;
z-index: 6;
color: #fff;
}
.sec_concept {
position: relative;
z-index: 3;
width: 100%;
background-image: url("../img/top/concept_bg.jpg");
background-repeat: repeat;
background-position: left top;
}
.j_map {
position: relative;
z-index: 3;
}
.j_map img {
width: 100%;
}

@media all and (max-width : 1635px ){
.j_map {
padding-top: 100px;
}
}

@media all and (max-width : 1200px ){
.j_map {
padding-top: 150px;
}
}

@media all and (max-width : 940px ){
.j_map {
padding-top: 200px;
}
}

@media all and (max-width : 768px ){
.j_map {
padding-top: 230px;
}
}

@media all and (max-width : 767px ){
.j_map {
padding-top: 0px;
}
}

.concept_txt_box {
width: 100%;
position: absolute;
top: 4.17vw;
left: 50%;
transform: translateX(-50%);
-webkit-transform: translateX(-50%);
-ms-transform: translateX(-50%);
z-index: 5;
}
.about_title {
font-size: 2.4rem;
font-weight: 500;
letter-spacing: 0.3em;
line-height: 240%;
writing-mode: vertical-rl;
}
.about_txt {
width: 59.38%;
font-size: 1.6rem;
line-height: 220%;
margin-left: 100px;
padding-left: 100px;
position: relative;
letter-spacing: 0.15em;
}

@media all and (max-width : 1366px ){
.about_title {
font-size: 2.2rem;
letter-spacing: 0.25em;
}
.about_txt {
font-size: 1.5rem;
line-height: 200%;
}
}

@media all and (max-width : 1024px ){
.about_title {
font-size: 2.0rem;
}
.about_txt {
width: 64%;
font-size: 1.4rem;
margin-left: 60px;
padding-left: 60px;
}
}

@media all and (max-width : 820px ){
.concept_txt_box {
top: 6.17vw;
}
.about_txt {
width: 72%;
margin-left: 45px;
padding-left: 35px;
}
}

.about_txt::before {
position: absolute;
content: "";
width: 1px;
height: calc(100% - 16px);
left: 0;
top: 10px;
background: rgb(255, 255, 255, 0.502)
}
.about_txtbox_wrap {
display: flex;
justify-content: center;
position: relative;
z-index: 20;
}
.under_txt {
width: 90%;
height: auto;
position: absolute;
bottom: 2%;
left: 50%;
transform: translateX(-50%);
-webkit-transform: translateX(-50%);
-ms-transform: translateX(-50%);
}

@media all and (max-width : 767px ){
.sec_concept {
overflow-x: hidden;
}
.concept_txt_box {
top: 8.17vw;
padding: 0 0 0 25px;
}
.about_txtbox_wrap {
display: flex;
justify-content: center;
flex-direction: column;
}
.about_title {
font-size: 1.6rem;
letter-spacing: 0.3em;
line-height: 180%;
writing-mode: horizontal-tb;
margin-bottom: 20px;
}
.about_txt {
width: 100%;
font-size: 1.3rem;
font-weight: 400;
line-height: 180%;
margin-left: 0px;
padding-left: 0px;
margin-top: 0px;
letter-spacing: 0.15em;
}
.about_txt::before {
display: none;
}
.under_txt {
width: 87px;
height: auto;
position: absolute;
top: 0;
bottom: 0;
left: -20px;
transform: none;
}
}


/*-------------------------------------------------
content
-------------------------------------------------*/

main {
position: relative;
background: #fff;
z-index: 9;
}
.content {
padding: 0;
}


/*-------------------------------------------------
sec_title
-------------------------------------------------*/

.sec_title {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
margin-bottom: 50px;
}
.sec_title dt {
font-family: "Copperplate Gothic LT W01 33BC";
font-weight: normal;
font-size: 5.0rem;
letter-spacing: 0;
line-height: 100%;
color: #003D7C;
margin-bottom: 10px;
}
.sec_title dd {
font-family: "vdl-yotag", sans-serif;
font-weight: 500;
font-size: 1.6rem;
letter-spacing: 0;
}

@media all and (max-width : 767px ){
.sec_title {
margin-bottom: 30px;
}
.sec_title dt {
font-size: 3.0rem;
margin-bottom: 0px;
}
.sec_title dd {
font-size: 1.2rem;
}
}


/*-------------------------------------------------
sec_news
-------------------------------------------------*/

.sec_news {
padding: 100px 0;
}
.sec_news .box_m {
display: flex;
justify-content: space-between;
align-items: flex-start;
}
.news_box_wrap {
width: 79.37%;
}
.sec_news .link_btn_box {
justify-content: flex-end;
margin-top: 50px;
}

@media all and (max-width : 980px ){
.sec_news .box_m {
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: center;
}
.news_box_wrap {
width: 100%;
}
}

@media all and (max-width : 767px ){
.sec_news {
padding: 40px 0;
}
.news_box {
padding: 13px 15px;
}
.sec_news .link_btn_box {
justify-content: center;
margin-top: 30px;
}
}

/*-------------------------------------------------
sec_theme
-------------------------------------------------*/

.sec_theme {
width: 100%;
background: #F5F5F4;
padding: 80px 0 100px;
}
.intro_copy {
font-size: 2.2rem;
font-weight: 700;
letter-spacing: 0.2em;
text-align: center;
display: block;
margin-bottom: 30px;
}
.intro_txt {
font-size: 1.5rem;
line-height: 200%;
margin-bottom: 50px;
text-align: center;
display: block;
}
.theme_box_wrap {
display: flex;
}
.theme_box {
width: calc(50% - 40px / 2);
margin-right: 40px;
}
.theme_box:nth-child(2) {
margin-right: 0px;
}
.theme_imgbox {
position: relative;
}
.theme_imgbox a::before {
content: "";
display: block;
position: absolute;
width: 100%;
height: 100%;
left: 0px;
top: 0px;
opacity: 0.35;
z-index: 5;
background: #000;
transition: opacity 0.3s ease 0s;
}
.theme_img {
position: relative;
background: #000;
overflow: hidden;
}
.theme_img img {
width: 100%;
transition-duration: 0.7s;
}
.theme_imgbox a:hover .theme_img img {
transform: scale(1.05);
transition-duration: 0.7s;
}
.theme_title_box {
width: 100%;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
-webkit-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
z-index: 5;
}
.theme_jp_title {
font-family: "vdl-yotag", sans-serif;
font-weight: 500;
font-size: 3.0rem;
color: #fff;
letter-spacing: 0.2em;
text-align: center;
line-height: 100%;
margin-bottom: 10px;
}
.theme_en_title {
font-family: "Oswald", sans-serif;
font-weight: 400;
font-size: 1.2rem;
color: #fff;
letter-spacing: 0.1em;
line-height: 100%;
text-align: center;
}

@media all and (max-width : 820px ){
.theme_jp_title {
font-size: 1.4em;
letter-spacing: 0.2em;
}
.theme_en_title {
font-size: 1.1rem;
}
.theme_cap {
font-size: 1.3rem;
}
}

@media all and (max-width : 767px ){
.sec_theme {
padding: 40px 0 30px;
}
.intro_copy {
font-size: 1.6rem;
font-weight: 700;
letter-spacing: 0.2em;
margin-bottom: 20px;
}
.intro_txt {
font-size: 1.3rem;
line-height: 180%;
margin-bottom: 30px;
text-align: center;
}
.theme_box_wrap {
display: flex;
flex-wrap: wrap;
flex-direction: column;
}
.theme_box {
width: 100%;
margin-right: 0px;
margin-bottom: 20px;
}
.theme_jp_title {
font-weight: 700;
font-size: 1.4em;
letter-spacing: 0.2em;
}
.theme_en_title {
font-size: 1.0rem;
}
}


/*-------------------------------------------------
sec_spot
-------------------------------------------------*/

.sec_spot {
padding: 80px 0 100px;
background: #fff;
}
.spot_box .category {
border: none;
display: inline-block;
}
.link_btn_box {
margin-top: 0px;
}

@media all and (max-width : 767px ){
.sec_spot {
padding: 40px 0 30px;
}
}


/*-------------------------------------------------
sec_pamphlet
-------------------------------------------------*/

.sec_pamphlet {
width: 100%;
background: #F5F5F4;
padding: 80px 0 100px;
}
.pamph_box {
position: relative;
max-width: 1100px;
margin: 0 auto;
}
.pamph_img {
position: relative;
background: #000;
overflow: hidden;
}
.pamph_img img {
width: 100%;
transition-duration: 0.7s;
}
.pamph_box a:hover .pamph_img img {
transform: scale(1.05);
transition-duration: 0.7s;
}
.pamph_title {
max-width: 360px;
height: auto;
position: absolute;
top: 45%;
left: 50%;
transform: translate(-50%, -50%);
-webkit-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
z-index: 10;
}

@media all and (max-width : 767px ){
.sec_pamphlet {
padding: 40px 0 40px;
}
.pamph_box a:hover .pamph_img img {
transform: scale(1.05);
transition-duration: 0.7s;
}
.pamph_title {
position: absolute;
top: 40%;
}
}


/*-------------------------------------------------
sec_about
-------------------------------------------------*/

.sec_about {
width: 100%;
background-image: url("../img/top/about_bg.jpg");
background-repeat: no-repeat;
/*background-position: center top;*/
background-size: cover;
background-attachment: fixed;
position: relative;
color: #fff;
}
.sec_about::after {
content: "";
display: block;
background-color: #000;
opacity: 0.3;
width: 100%;
height: 100%;
position: absolute;
left: 0;
top:0;
z-index: 0;
}
.sec_about .box_m {
position: relative;
z-index: 1;
}
.about_intro_title {
font-size: 2.4rem;
font-weight: 700;
padding: 60px 0 30px 50px;
letter-spacing: 0.3em;
}
.about_intro_txt {
font-size: 1.5rem;
line-height: 200%;
padding: 0 20px 50px 50px;
}
.about_box_wrap {
display: flex;
align-items: stretch;
}
.about_box {
margin-left: 20px;
margin-right: 80px;
}
.sec_about .block_title_wrap {
padding-top: 80px;
margin-bottom: 40px;
}
.sec_about .block_title_en {
color: #fff;
}
.about_title_jp {
font-family: "vdl-yotag", sans-serif;
font-weight: 500;
font-size: 2.4rem;
padding-left: 33px;
line-height: 100%;
margin-bottom: 10px;
position: relative;
}
.about_title_jp::before {
content: "";
display: inline-block;
background-color: #fff;
width: 26px;
height: 1px;
position: absolute;
left: 0;
top: 50%;
}
.about_title_en {
font-family: "Oswald", serif;
font-weight: 400;
font-size: 1.0rem;
letter-spacing: 0.05em;
line-height: 100%;
margin: 0 0 15px 33px;
}
.about_list {
display: flex;
flex-direction: column;
gap: 3rem;
padding-top: 4rem;
padding-bottom: 10rem;
border-left: 1px solid #b0b5c2;
margin-left: 35px;
height: 87.5%;
}
.about_box_wrap .about_box:first-of-type .about_list {
padding-bottom: 29.5rem;
}
.about_list li a {
font-size: 1.6rem;
padding-left: 35px;
position: relative;
}
.about_list li a::before {
content: "";
display: inline-block;
background-color: #b0b5c2;
width: 26px;
height: 1px;
position: absolute;
left: 0;
top: 50%;
}

@media all and (max-width : 980px ){
.about_title_jp {
font-size: 2.0rem;
}
.about_list li a {
font-size: 1.4rem;
white-space: nowrap;
}
}

@media all and (max-width : 940px ){
.generic {
display: none;
}
}

@media all and (max-width : 767px ){
.sec_about {
background-position: right top;
}
.about_intro_title {
font-size: 1.6rem;
padding: 30px 0 15px 0px;
letter-spacing: 0.2em;
}
.about_intro_txt {
font-size: 1.3rem;
line-height: 180%;
padding: 0 0px 15px 0px;
}
.about_box_wrap {
padding-top: 20px;
}
.about_box {
margin-left: 0px;
margin-right: 20px;
}
.about_title_jp {
font-size: 1.6rem;
letter-spacing: 0.05em;
padding-left: 0px;
margin-bottom: 5px;
}
.about_title_jp::before {
display: none;
}
.about_title_en {
margin: 0 0 15px 3px;
}
.about_list {
gap: 1.5rem;
padding-top: 2rem;
padding-bottom: 10rem;
margin-left: 5px;
height: 80%;
}
.about_box_wrap .about_box:first-of-type .about_list {
padding-bottom: 22.5rem;
}
.about_list li a {
font-size: 1.2rem;
letter-spacing: 0.05em;
padding-left: 20px;
white-space: nowrap;
}
.about_list li a::before {
width: 16px;
}
}
