@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Zen+Kaku+Gothic+New:wght@400;500;700&display=swap');

/* --------------------------------------------------
 normalize
--------------------------------------------------- */
button,hr,input{overflow:visible;padding:0;}progress,sub,sup{vertical-align:baseline;}[type=checkbox],[type=radio],legend{box-sizing:border-box;padding:0;}html{line-height:1;-webkit-text-size-adjust:100%}body{margin:0}details,main{display:block}hr{box-sizing:content-box;height:0}code,kbd,pre,samp{font-size:1em;font-family:monospace,monospace;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{margin:0;font-size:100%;font-family:inherit;line-height:1;}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none;}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:ButtonText dotted 1px}fieldset{padding:.35em .75em .625em}legend{display:table;max-width:100%;color:inherit;white-space:normal}textarea{overflow:auto}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px-webkit-appearance:textfield;}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button;}summary{display:list-item}[hidden],template{display:none}table{border-spacing:0;border-collapse:collapse;}td,th{padding:0;font-weight:normal;}ul{margin:0;padding:0;}ul li{margin:0;padding:0;list-style:none;}ol{margin:0;padding:0;}ol li{margin:0;padding:0;list-style:none;}
main,figure,figcaption,time,address,dl,dt,dd{display: block;margin:0;padding:0;}h1,h2,h3,h4,h5{margin:0;font-size:100%;}p{margin:0; padding:0;}address{font-style: normal;}*,*:after,*:before{outline:none;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);scrollbar-color: transparent transparent;scrollbar-width: 0px;-ms-overflow-style: none;}h1,h2,h3,h4{font-weight:normal;}mark{background: none;}html{box-sizing:border-box;}*,*:before,*:after{box-sizing:border-box;}


/* --------------------------------------------------
 common
--------------------------------------------------- */
html{ width: 100%; font-size: 62.5%;}
body{
    background: #fff;
    color: #333;
    font-weight: 500;
    font-size: 16px;
    font-family: "Inter", "Zen Kaku Gothic New", sans-serif;
    line-height: 1;

    font-optical-sizing: auto;
    -webkit-font-smoothing: antialiased;
}
img{ width: 100%; vertical-align: bottom;}
video{ max-width: 100%; vertical-align: bottom;}
a{ color: #333; text-decoration: none; transition: all .1s ease;}
.sp{ display: none;}
p a{ text-decoration: underline;}

@media screen and (max-width: 768px){
    body{ }
    .pc{ display: none;}
    .sp{ display: block;}
}

/* --------------------------------------------------
 maintenance
--------------------------------------------------- */
.maintenance{ padding: 1em 0; font-size: 14px; line-height: 1.5; text-align: center; color: #f00;}
.maintenance p + p{ margin: 1em 0 0;}

/* --------------------------------------------------
 aside
--------------------------------------------------- */
.aside{ display: flex; padding: 12px 45px; background: #000; color: #fff; justify-content: space-between; align-items: center;}
.aside a{ color: #fff;}
.aside p{ font-size: 13px; line-height: 1.5;}
.aside ul{ display: flex; justify-content: flex-end; align-items: baseline;}
.aside ul > li{ margin: 0 0 0 15px;}
.aside ul > li img{ width: auto; height: 24px;}


/* --------------------------------------------------
 header
--------------------------------------------------- */
.header{ position: sticky; top: 0; z-index: 10; display: flex; padding: 24px 45px; background: rgba(255,255,255,.8); justify-content: space-between; align-items: center;}
.header .tl{ display: flex; align-items: center;}
.header .tl h1{ width: 180px;}
.header .tl address{ margin: 0 0 0 1em; font-size: 13px; line-height: 1.5;}
.header nav{ font-weight: 700;}
.header nav > ul{ display: flex; align-items: center;}
.header nav > ul > li{ margin: 0 0 0 21px;}
.header nav > ul > li.btn{ margin: 0 0 0 30px;}
.header nav > ul > li.btn + .btn{ margin: 0 0 0 9px;}
.header nav > ul > li.btn > a{ display: flex; padding: 0 15px; height: 30px; border-radius: 3px; background: #000; color: #fff; font-size: 14px; justify-content: center; align-items: center;}

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


/* --------------------------------------------------
 main
--------------------------------------------------- */

/* top
--------------------------------------------------- */
.top{ margin: 0 auto; width: 1170px; line-height: 1.75;}

.hero{ padding: 0 0 120px;}
.slide1{ opacity: 0; transition: opacity 1.2s ease;}
.slide1.slick-initialized{ opacity: 1;}

section{ padding: 0 0 120px;}
section h2{ font-weight: 700; font-size: 180%;}
section p{ margin: 2em 0 0;}

.list-note{ display: flex; margin: 0 -15px; flex-wrap: wrap;}
.list-note > li{ padding: 60px 15px 0; width: 25%;}
.list-note a{ display: block;}
.list-note figure{ overflow: hidden; width: 100%; border-radius: 10px; aspect-ratio: 1280 / 670;}
.list-note figure img{ object-fit: cover;}
.list-note h3{ margin: 1em 0 0; font-weight: 700; font-size: 14px;}

.list-event > li{ display: flex; margin: 60px 0 0; justify-content: space-between;}
.list-event > li .status{ display: flex; width: 90px; height: 30px; color: #fff; font-size: 14px; justify-content: center; align-items: center;}
.list-event > li .status.fin{ background: #000;}
.list-event > li dl{ padding: 0 0 0 60px; width: calc(100% - 90px);}
.list-event > li dt{ font-weight: 600; font-size: 110%;}
.list-event > li dd{ padding: 1em 0 0;}
.list-event > li dd p{ margin: 1em 0 0;}

.map{ display: flex; margin: 60px 0 0;}
.map iframe{ width: 50%; aspect-ratio: 1 / 1;}
.map figcaption{ padding: 0 0 0 90px;}
.map figcaption > *:first-child{ margin: 0;}

/* 
--------------------------------------------------- */
article{ margin: 0 auto; padding: 120px 0; width: 1170px;}
article header h1{ font-weight: 700; font-size: 180%;}

.content{ padding: 60px 0 0; line-height: 1.75;}

.list-news > li{ display: flex; padding: 0 0 90px; align-items: baseline;}
.list-news time{ width: 15%;}
.list-news h2{ font-weight: 700; font-size: 120%;}
.list-news p{ margin: 1em 0 0;}

.list{ margin: 1em 0 0 1.3em;}
.list > li{ list-style: disc;}

.list-gallery{ display: flex; margin: 0 calc(50% - 50vw); background: #000; flex-wrap: wrap;}
.list-gallery > li{ width: 25%;}
.list-gallery > li > a{ display: block; overflow: hidden; aspect-ratio: 6 / 4;}
.list-gallery > li > a > img{ object-fit: cover;}

.dl-faq{ border-bottom: 1px solid #ddd;}
.dl-faq dt{ position: relative; padding: 15px 0 15px 45px; border-top: 1px solid #ddd; font-weight: 700; cursor: pointer;}
.dl-faq dt:before,
.dl-faq dt:after{ position: absolute; top: 50%; right: 0; display: block; width: 15px; height: 2px; background: #333; content: ""; transform: translate(0,-50%);}
.dl-faq dt:after{ transform: translate(0,-50%) rotate(90deg);}
.dl-faq dt.active:after{ transform: translate(0,-50%) rotate(0);}
.dl-faq dt span{ position: absolute; top: 50%; left: 10px; display: block; color: #fff; font-weight: 700; transform: translate(0,-50%);}
.dl-faq dt span:before{ position: absolute; top: 50%; left: 50%; z-index: -1; width: 30px; height: 30px; border-radius: 100%; background: #333; content: ""; transform: translate(-50%,-50%);}
.dl-faq dd{ display: none; padding: 0 45px 30px 45px;}

.list-terms{ margin: 0 0 0 1.5em;}
.list-terms > li{ padding: 0 0 1em; list-style: disc;}

.right{ margin: 3em 0 0; text-align: right;}

.privacy .content > *:first-child{ margin: 0;}
.privacy h2{ margin: 2em 0 0; font-weight: 700; font-size: 120%;}
.privacy p{ margin: 1em 0 0;}

.list-tab{ display: flex; justify-content: center;}
.list-tab > li{ padding: 0 9px;}
.list-tab .tab{ display: flex; padding: 0 1.5em; height: 50px; border-radius: 25px; background: #eee; color: #000; font-size: 18px; cursor: pointer; justify-content: center; align-items: center;}
.list-tab .tab.current{ background: #000; color: #fff;}

.tab-content{ display: none; padding: 90px 0 0;}
.tab-content.current{ display: block;}

.tab-content h2{ font-weight: 700; font-size: 180%;}
.tab-content p{ margin: 1em 0 0; line-height: 2;}
.tab-content .slide-thumb-wrap{ margin: 30px -5px 0; width: 50%;}
.tab-content .slide-thumb-wrap .slick-slide{ padding: 0 5px; width: 20%;}

.slide-wrap{ margin: 60px 0 0; display: flex; justify-content: space-between;}
.slide-wrap .slide-thumb{ width: 19.1%;}
.slide-wrap .slide{ width: 80.9%;}

.bg{ display: flex; margin: 30px calc(50% - 50vw) 0; background: #000; color: #fff; line-height: normal; line-height: 0; justify-content: space-between;}
.bg .slide-wrap{ width: 50%;}
.bg .map-wrap{ width: 50%;}
.bg .map-wrap iframe{ width: 100%; height: 100%;}

/* --------------------------------------------------
 footer
--------------------------------------------------- */
.footer{ display: flex; padding: 30px 45px 90px; background: #000; color: #fff; font-size: 14px; justify-content: space-between; flex-wrap: wrap;}
.footer aside ul{ display: flex;}
.footer aside ul > li{ margin: 0 12px 0 0; width: 150px;}
.footer nav a{ color: #fff;}
.footer nav ul{ display: flex;}
.footer nav ul > li + li{ margin: 0 0 0 1em; padding: 0 0 0 1em; border-left: 1px solid rgba(255,255,255,.5);}
.footer small{ width: 100%; text-align: right; font-size: 12px;}

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