﻿@charset "utf-8";



html     ,
body     ,
article  ,
section  ,
div      ,
h1       ,
h2       ,
h3       ,
h4       ,
h5       ,
dl       ,
dt       ,
dd       ,
ul       ,
ol       ,
li       ,
p        ,
input    ,
select   ,
textarea {
	margin:0;
	padding:0;
	font-family: 'Noto Sans JP', sans-serif, YakuHanMP, '游明朝', YuMincho, 'Noto Serif JP', 'ＭＳ Ｐ明朝', 'ＭＳ 明朝', serif;
	color:#646e6e;
	font-size:16px;
    font-weight:400;
	font-feature-settings:"palt"1;
	line-height:2.5;
	letter-spacing:0.1em;
	-webkit-text-size-adjust:100%;
	border:none;
}

@media only screen and (max-width:640px){
    
    html     ,
    body     ,
    article  ,
    section  ,
    div      ,
    h1       ,
    h2       ,
    h3       ,
    h4       ,
    h5       ,
    dl       ,
    dt       ,
    dd       ,
    ul       ,
    ol       ,
    li       ,
    p        ,
    input    ,
    select   ,
    textarea {
        font-size:15px;
        line-height:2;
    }
}

.en ,
header h1 b ,
nav a ,
.flow ol li div::after,
footer small {font-family:'Alice', serif;}

.mincho ,
header h1 span {font-family:'Shippori Mincho', serif;}

html {overflow-y:scroll; margin-bottom:1px; height:100%;}
body {background:#fff;}

img {
	margin: 0;
	padding:0;
	vertical-align:bottom;
	line-height:0;
	border:none;
    -webkit-backface-visibility: hidden;}

ul,ol {list-style:none;}
li {list-style-position:outside;}

table {border-collapse:collapse;}
th,td {padding:0; text-align:left; vertical-align:top;}

a {color:#646e6e; text-decoration:none; transition: .2s;}
a:hover {opacity:.6;}

p {text-align:justify; text-justify:inter-ideograph;}

* {-webkit-appearance: none;}

::selection {background:#d7d5d2;}
::-moz-selection {background:#d7d5d2;}



@media only screen and (min-width:641px){

    .sp ,
    .SPnav { display:none !important;}
}

@media only screen and (max-width:640px){
    
    .pc ,
    .PCnav { display:none !important;}

}





/* bg */

.bg {
    width:100%;
    height:100vh;
    position:fixed; top:0; left:0;
    background:url("../img/bg.svg") center no-repeat;
    background-size:cover;
    -ms-filter: blur(8px);
    filter: blur(8px);
    animation: bg 5s linear infinite;
    z-index:-1;
}
@keyframes bg {
      0% { opacity: 1;}
     70% { opacity: 0;}
    100% { opacity: 1;}
}

@media only screen and (max-width:640px){}





/* header */

header {
    width:100%;
    padding:6% 0 0;
    position:absolute; top:0; left:0; right:0;
    z-index:1000;
}
header h1 {
    margin:0 auto 30px;
    display:flex; flex-flow:row wrap; justify-content:center; align-content:center; align-items:center; flex-direction:column;
    font-size:3rem;
    color:#fff;
    text-align:center;
    line-height:1.8;
}
header h1 b {font-weight:normal;}
header h1 span {font-size:1rem;}

@media only screen and (max-width:640px){
    
    header {
        padding:40% 0 0;
    }
    header h1 {
        font-size:2rem;
        line-height:1.5;
    }
    header h1 b {margin-bottom:15px;}
}



/* PCnav */

@media only screen and (min-width:641px){
    
    ul.PCnav {
        width:100%;
        margin:0 auto;
        display:flex; flex-flow:row wrap; justify-content:center; align-content:center; align-items:center;
    }
    ul.PCnav li {
        margin:0 1.5%;
    }
    ul.PCnav li a {
        margin: 0 auto;
        display:block;
        color:#fff;
        line-height:1;
    }
    ul.PCnav li:not[class] a {}
    
    ul.PCnav li.contact-sns {
        margin:0;
        display:flex; flex-flow:row wrap; justify-content:flex-end; align-content:center; align-items:center;
        position:absolute; top:20px; right:20px;
    }
    ul.PCnav li.contact-sns a {margin-left:10px;}
    ul.PCnav li.contact-sns a.en {
        height:30px;
        padding:0 20px;
        display:flex; flex-flow:row wrap; justify-content:center; align-content:center; align-items:center;
        color:#fff;
        line-height:normal;
        background:#8ccdd2;
    }
    ul.PCnav li.contact-sns a[target="_blank"] {width:30px;}
    ul.PCnav li.contact-sns a[target="_blank"] img {max-width:100%;}
}



/* 確認画面・エラー画面・完了画面 */
body.form header h1 ,
body.form ul.PCnav {display:none;}



/* SPnav */

@media only screen and (max-width:640px){
    
    .SPnav {
        padding:0.5rem 1rem;
        display:flex; justify-content:space-between; align-items:center;
        position:relative;
        z-index:10001;
    }
    .buttom {
        width: 2.2rem;
        height:2.2rem;
        position:fixed; top:3%; right:5%;
        cursor:pointer;
        z-index:100000;
    }
    .buttom > span {
        width: 2.2rem;
        height:2px;
        display:block;
        background:#fff;
    }
    .scroll-class .buttom > span {
        background:#646e6e;
    }
    .buttom > span:first-child {
        position:absolute; top:5px; left:0;
        transition:transform 0.3s ease;
    }
    .buttom > span:nth-child(2) {
        position:absolute; top:49%; left:0;
        transition:opacity 0.3s ease;
    }
    .buttom > span:last-child {
        position:absolute; bottom:5px; left:0;
        transition:transform 0.3s ease;
    }
    
    .buttom.active > span:first-child {top:47%; left:0; transform:rotate(-45deg);}
    .buttom.active > span:nth-child(2){opacity:0;}
    .buttom.active > span:last-child  {bottom:47%; left:0; transform:rotate(45deg);}

    .scroll-class .buttom.active > span {
        background:#fff;
    }
    
    .drawer {
        width: 100%;
        height:100vh;
        position:fixed; top:0; left:0;
        background-color:rgba(0, 0, 0, 0.5);
        transition:opacity 0.3s ease;
        opacity:0;
        visibility:hidden;
    }
    .drawer.active {
        opacity: 1;
        visibility: visible;
    }
    .drawer__inner {
        width: 70%;
        height:100%;
        margin: 0 0 0 auto;
        padding: 30px 1.5rem 1rem;
        background:rgba(140,205,210,0.8);
        position: relative;
        overflow: scroll;
        transform: translateX(100%);
        transition:transform 0.3s ease;
    }
    .drawer.active .drawer__inner {transform:translateX(0);}
    
    .SPnav ul {margin-bottom:10px;}
    .SPnav ul li a {
        display:block;
        padding: 1rem 0;
        color:#fff;
        text-align: center;
        border-bottom:solid 1px #fff;
    }
    .SPnav ul li:last-of-type a {border-bottom:none;}
    
    .drawer__inner a.contact {
        width:98%;
        margin:0 auto 30px;
        padding:10px 0;
        color:#fff;
        display: block;
        text-align: center;
        border:solid 1px #fff;
        background:#8ccdd2;
    }
    .drawer__inner .sns {
        width:100%;
        display:flex; flex-flow:row wrap; justify-content:center; align-content:center; align-items:center;
    }
    .drawer__inner .sns a {
        width:36px;
        margin:0 8px;
    }
    .drawer__inner .sns a img {max-width:100%;}

    body.active {
        height:100%;
        overflow:hidden;
    }
}



/* article */

article {
    width:100%;
    margin:0 auto;
}

section span[id] {position:absolute; top:0; left:0;}

section {
    width:100%;
    margin:0 auto;
    padding:70px 0;
    position:relative;
}
section h3 {
    width:100%;
    font-size:1.2rem;
    color:#8ccdd2;
    text-align:center;
}
section h3 span.en {
    margin:0 auto;
    display:block;
    font-size:7rem;
    line-height:1;
    opacity: .3;
}
section h3 span.mincho {
    font-size:1.8rem;
}

@media only screen and (max-width:640px){
    
    section {
        padding:40px 0;
    }
    section h3 span.en {
        font-size:4rem;
    }
    section h3 span.mincho {
        font-size:1.3rem;
    }
}



/* footer */

footer {
    width:100%;
    margin: 0 auto;
    padding:100px 0;
    position:relative;
}

footer a.instagram {
    width:100%;
    margin:0 auto 100px;
    padding:150px 0;
    display:flex; flex-flow:row wrap; justify-content:center; align-content:center; align-items:center; flex-direction:column;
    background:url("../img/instagramBg.jpg") center bottom no-repeat fixed;
    background-size:cover;
    position:relative;
    transition: 1s;
}
footer a.instagram::after {
    content: "";
    width:100%;
    height:100%;
    position:absolute; top:0; left:0;
    background:rgba(0,0,0,0.3);
    z-index:1;
}
footer a.instagram img {
    max-width:36px;
    margin-bottom:20px;
    z-index:10;
}
footer a.instagram span {
    width:100%;
    color:#fff;
    font-size:1.2rem;
    text-align:center;
    line-height:1.5;
    z-index:10;
}
footer a.instagram p {
    color:#fff;
    font-size:0.8rem;
    text-align:center;
    z-index:10;
}
footer a.instagram p span {
    display: block;
}

footer dl {
    margin:0 auto 50px;
}
footer dl dt ,
footer dl dd {
    text-align:center;
}
footer dl dt {
    font-size:2rem;
    color:#8ccdd2;
}
footer dl dd {
    margin-top:10px;
    line-height:1.8;
}
footer dl dd a {
    font-size:1.5rem;
}
footer dl dd a span {
    font-size:1.8rem;
}
footer dl dd a span.mailadd::before {
    content: "info@";
}
footer dl dd.mail_url {
    display:flex; flex-flow:row wrap; justify-content:center; align-content:center; align-items:center; flex-direction:column;
}
footer dl dd.mail_url a {
    font-size:1rem;
}
footer dl dd.mail_url a span {
    margin-left:15px;
    font-size:1rem;
}

footer table {
    margin:0 auto 100px;
}
footer table th ,
footer table td {
    line-height:1.8;
    vertical-align:middle;
}
footer table th {
    padding:0 10px;
    font-size:0.9rem;
    text-align:center;
    border-bottom:solid 2px #fff;
    background:#ebebeb;
}
footer table td {
    padding:0 0 0 10px;
}

footer iframe {
    width:100%;
    height:400px;
    margin:0 auto;
    display:block;
    border:none;
}
footer small {
    width:100%;
    margin:100px auto 0;
    display:block;
    font-size:1rem;
    color:#8ccdd2;
    text-align:center;
}

@media only screen and (max-width:640px){
    
    footer {
        padding:50px 0;
    }
    footer a.instagram {
        margin:0 auto 50px;
        padding:100px 0;
        background:url("../img/instagramBg.jpg") center bottom no-repeat;
        background-size:cover;
    }
    footer a.instagram img {
        margin-bottom:10px;
    }
    footer a.instagram span {
        font-size:1.3rem;
        line-height:2;
    }
    footer dl {
        margin:0 auto 20px;
    }
    footer dl dt {
        margin-bottom:20px;
        font-size:1.5rem;
    }
    footer table {
        margin:0 auto 50px;
    }
    footer table th ,
    footer table td {
        padding:0;
        display:block;
        text-align:center;
    }
    footer table th {
        margin-top:20px;
        padding:0;
    }
    footer table td {
        padding:0;
    }
    
    footer small {
        margin:50px auto 0;
    }
}


