@charset "utf-8";



* {
    margin: 0;
    padding: 0;
    list-style: none;
    text-decoration: none;
    -webkit-box-sizing: inherit;
    box-sizing: inherit;}
body {
    overflow: hidden;
    width: 100%;
    height: 100vh;
    position: fixed;
    background-color: #000;
    font-family: "HKPn";}

@font-face {
	font-family: "ninja";
	src: url("font/ninja.woff2") format("woff2"),url("font/ninja.woff") format("woff");}
.ninja{ font-family: "ninja";}
@font-face {
	font-family: "HKPn";
	src: url("font/HKPn.woff2") format("woff2"),url("font/HKPn.woff") format("woff");}
.hika { font-family: "HKPn";}
@font-face {
	font-family: "HKPb";
	src: url("font/HKPb.woff2") format("woff2"),url("font/HKPb.woff") format("woff");}
.hika { font-family: "HKPb";}
@font-face {
	font-family: "HKPw";
	src: url("font/HKPw.woff2") format("woff2"),url("font/HKPw.woff") format("woff");}
.hikaw { font-family: "HKPw";}

.clearfix:after{
	content: "";
	clear: both;
	display: block;}
.wrapper {
    width: 100%;
    height: 100vh;
    position: fixed;
    top: 0;
    left: 0;}
.mainBtn {
    width: 100%;
    max-width: 1000px;
    position: absolute;
    top: 80%;
    left: 50%;
    transform: translateY(-50%) translateX(-50%);
    -webkit- transform: translateY(-50%) translateX(-50%);}
.mainBtn ul {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-evenly;}
.mainBtn ul li { padding: 10px;}
.mainBtn ul li:nth-child(1) { animation: fadeIn .5s ease 1.5s 1 normal backwards;}
.mainBtn ul li:nth-child(2) { animation: fadeIn .5s ease 2s 1 normal backwards;}
.mainBtn ul li:nth-child(3) { animation: fadeIn .5s ease 2.5s 1 normal backwards;}
.mainBtn ul li:nth-child(4) { animation: fadeIn .5s ease 3s 1 normal backwards;}
@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.mainBtn ul li a {}
.btn,
a.btn,
button.btn {
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.5;
    position: relative;
    display: inline-block;
    padding: 1rem 4rem;
    cursor: pointer;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    -webkit-transition: all 0.3s;
    transition: all 0.3s;
    text-align: center;
    vertical-align: middle;
    text-decoration: none;
    letter-spacing: 0.1em;
    color: #fff;
    border-radius: 0.5rem;}
a.btn-svg {
    font-weight: 700;
    line-height: 54px;
    width: 204px;
    height: 54px;
    padding: 0;
    cursor: pointer;
    text-decoration: none;
    background-color: transparent;
    opacity: .5;}
a.btn-svg:hover { opacity: 1;}
a.btn-svg svg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;}
a.btn-svg svg rect {
    -webkit-transition: all 400ms ease;
    transition: all 400ms ease;
    stroke: #fff;
    stroke-width: 1;
    stroke-dasharray: 200px, 16px;
    stroke-dashoffset: 70px;}
a.btn-svg:hover svg rect {
    stroke-dashoffset: 284px;
    rx: 0;}
a.btn-svg span { color: #fff;}
.animate {
    margin: 0;
    font-weight: bold;
    font-size: 15px;
    width: max-content;
    opacity: .5;
    position: absolute;
    transition: 0.3s;}
.animate span {
    display: inline-block;
    color: transparent;}
.animate span:nth-of-type(2) {	animation-delay: .05s;}
.animate span:nth-of-type(3) {	animation-delay: .1s;}
.animate span:nth-of-type(4) {	animation-delay: .15s;}
.animate span:nth-of-type(5) {	animation-delay: .2s;}
.animate span:nth-of-type(6) {	animation-delay: .25s;}
.animate span:nth-of-type(7) {	animation-delay: .3s;}
.animate span:nth-of-type(8) {	animation-delay: .35s;}
.animate span:nth-of-type(9) {	animation-delay: .4s;}
.animate span:nth-of-type(10) {	animation-delay: .45s;}
.animate span:nth-of-type(11) {	animation-delay: .5s;}
.animate span:nth-of-type(12) {	animation-delay: .55s;}
.animate span:nth-of-type(13) {	animation-delay: .6s;}
.animate span:nth-of-type(14) {	animation-delay: .65s;}
.animate span:nth-of-type(15) {	animation-delay: .7s;}
.animate span:nth-of-type(16) {	animation-delay: .75s;}
.animate span:nth-of-type(17) {	animation-delay: .8s;}
.animate span:nth-of-type(18) {	animation-delay: .85s;}
.animate span:nth-of-type(19) {	animation-delay: .9s;}
.animate span:nth-of-type(20) {	animation-delay: .95s;}
.three span {
    opacity: 0;
    transform: translate(-300px, 0) scale(0);
    animation: sideSlide .5s forwards;
    color: #fff;}
@keyframes sideSlide {
    60% {	transform: translate(20px, 0) scale(1);
		color: #b10e81;}
    80% {	transform: translate(20px, 0) scale(1);
		color: #fff;}
    99% {	transform: translate(0) scale(1.2);
		color: #00f0ff;}
    100% {	transform: translate(0) scale(1);
		opacity: 1;
		color: #fff;}
}
.animate:hover { opacity: 1;}
.contact {
    top: 21px;
    right: 14px;}
.name {
    top: 21px;
    left: 14px;}
.headline {
    position: relative;
    width: 100%;
    height: 100vh;
    z-index: -1;
    font-family: serif;
    font-weight: 800;}
.headline h2,
.headline p {
    color: #fff;
    opacity: 0;
    left: 10vw;
    width: 100%;
    font-size: min(10vw,4em);
    font-weight: bold;
    text-align: center;
    margin: 0 auto;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateY(-50%) translateX(-50%);
    -webkit- transform: translateY(-50%) translateX(-50%);
    animation: switch 25s linear;}
.headline h2 { animation-delay: 4s;}
.headline p { animation-delay: 8s}

@keyframes switch {
    0% { opacity: 0;filter: blur(20px); transform:translateY(-50%) translateX(-50%) scale(12)}
    3% { opacity: 1;filter: blur(0); transform:translateY(-50%) translateX(-50%) scale(1)}
    10% { opacity: 1;filter: blur(0); transform:translateY(-50%) translateX(-50%) scale(.9)}
    13% { opacity: 0;filter: blur(10px); transform:translateY(-50%) translateX(-50%) scale(.1)}
    80% { opacity: 0}
    100% { opacity: 0}
}
.footer {
    position: absolute;
    bottom: 5px;
    width: 100%;
    text-align: center;
    color: #fff;
    opacity: .5;}




.menu_ {
    top: 51px;
    left: 14px;
    position: absolute;
    color: #fff;
    font-weight: bold;}

.menu_ li a {
    color: #fff;
    transition: 0.3s;
    opacity: .5;
    display: block;}

.menu_ li a:hover {
    opacity: 1;
    transform: translateX(10px);}


.main {
    width: 80%;
    height: auto;
    max-height: 80vh;
    margin: 10vh auto 0;
    max-width: 1000px;
    overflow: hidden;}
.main .inner {
    width: 90%;
    background-color: #ffffff9e;
    margin: 3% auto;
    padding: 5%;
    overflow-y: scroll;
    height: 70vh;}
.main .inner::-webkit-scrollbar{ display: none;}
.main h2 {
    font-weight: normal;
    font-family: 'HKPw';
    color: #fff;
    text-align: center;}
.main h2 span {
    display: block;
    font-size: 12px;
    width: max-content;
    margin: 0 auto;
    position: relative;}
.main h2 span:before,
.main h2 span:after {
    content: "";
    position: absolute;
    width: 50px;
    height: 1px;
    background-color: #fff;
    position: absolute;
    top: 50%;
    transform: translateY(-50%) translateX(0%);
    -webkit- transform: translateY(-50%) translateX(-50%);}
.main h2 span:before { left: -100%;}
.main h2 span:after { right: -100%;}

.main .inner dl {
    display: flex;
    width: 100%;
    flex-wrap: wrap;
    align-items: center;
        padding: 0 0 50px;}
.main .inner dt {
    width: 30%;
    padding: 7px 0;}
.main .inner dd {
    width: 70%;
    padding: 7px 0;}
.menu { display: none;}
.main .inner p { margin: 0 0 14px;}

.main .inner p.name {
    margin: 0;
    align-items: center;
    display: flex;
    justify-content: flex-end;}
.main .inner p.name span{
    font-size: 50px;
    margin: 0 0 0 14px;}



.service {}
.service .main .inner {
    background-color: transparent;
    padding: 0;}
.service .main .inner .img {
    width: 100%;
    padding: 3%;
    display: flex;}
.service .main .inner .img div:nth-child(1) { width: 45%;}
.service .main .inner .img h3 {
    font-size: 30px;
    color: #fff;
    text-align: right;
    font-family: serif;}
.service .main .inner .img p { color: #fff;}
.service .main .inner .img div:nth-child(2) {
    width: calc(50% + 50px);
    margin: 50px 0 0 -100px;}
.service .main .inner .img div:nth-child(2) p span {
    display: block;
    margin: 21px 0 0;
    font-family: 'HKPb';
    font-size: 17px;}
.service .main .inner .img p {
    background-color: #00000096;
    padding: 25px;
    border: solid 2px #fff;
    font-size: 15px;}
.service .main .inner .img img {
    width: 100%;}
form {
    margin: 0 0 100px;}
form dl {}
form dt {}
form dt:after {
    content:"必須";
    font-size: 13px;
    color: #f00;
    margin-left: 14px;}
form dd {}
form select {
    height: 50px;
    width: calc(100% - 20px);
    padding: 7px;
    border: solid 3px #999;
    font-size: 20px;}
form input[type="text"],
form input[type="tel"],
form input[type="mail"] {
    height: 50px;
    width: calc(100% - 20px);
    padding: 7px;
    border: solid 3px #999;
    font-size: 20px;}
form textarea {
    border: solid 3px #999;
    width: calc(100% - 20px);
    padding: 7px;
    height: 200px;
    font-size: 20px;}

.main .inner form p {
    display: flex;
    justify-content: center;
    width: 100%;
    max-width: 500px;
    margin: 0 auto;}
form input[type="submit"],
form input[type="reset"] {
    border: solid 1px #999;
    padding: 7px 14px;
    margin: 0 5%;
    cursor: pointer;}



@media screen and (max-width:767px) {
	.menu {
	    display: block;
	    position: absolute;
	    top: 7px;
	    right: 7px;
	    background-color: #fff;
	    width: 50px;
	    height: 50px;
	    border-radius: 50%;
	    opacity: .9;
	    z-index: 5;}
	.menu span {
	    width: 100%;
	    display: block;
	    position: absolute;
	    top: 50%;
	    left: 50%;
	    transform: translateY(-50%) translateX(-50%);
	    -webkit- transform: translateY(-50%) translateX(-50%);
	    font-size: 12px;
	    text-align: center;
	    transition: 0.3s;}
	.menu span.on { color: transparent;}
	.menu span.on:before,
	.menu span.on:after {
	    content: "";
	    width: 50%;
	    display: block;
	    height: 2px;
	    background-color: #000;
	    position: absolute;
	    top: 50%;
	    left: 50%;}
	.menu span.on:before { transform: translateY(-50%) translateX(-50%) rotate(45deg);}
	.menu span.on:after { transform: translateY(-50%) translateX(-50%) rotate(-45deg);}
	.animate,
	a.btn-svg { opacity: 1;}
	.animate { font-size: 13px;}
	.name,
	.contact { top: 14px;}
	.main .inner dl {
	    display: block;
	    font-size: 15px;}
	.main .inner dt {
	    padding: 7px 0 0 0;
	    width: 100%;}
	.main .inner dd {
	    width: 100%;
	    padding: 0 0 7px 0;
	    border-bottom: dotted 1px;}
	.menu_ {
	    top: 51px;
	    left: 14px;
	    position: absolute;
	    color: #fff;
	    font-weight: bold;
	    background-color: #1d1d1d;
	    width: 100%;
	    height: 100vh;
	    top: 0;
	    left: -100%;
	    z-index: 4;
	    transition: 0.3s;}
	.menu_.on {
	    top: 0;
	    left: 0;
	    padding: 0;}
	.menu_ ul {
	    position: absolute;
	    top: 50%;
	    left: 50%;
	    transform: translateY(-50%) translateX(-50%);
	    -webkit- transform: translateY(-50%) translateX(-50%);}
	.menu_ li {
	    line-height: 3;
	    text-align: center;}
	.menu_ li a { opacity: 1;}
	.service .main .inner .img {
	    display: block;
	    padding: 3% 0;}
	.service .main .inner .img div:nth-child(1) { width: 100%;}
	.service .main .inner .img div:nth-child(2) {
	    width: 80%;
	    margin: -20% auto 0;
	    position: relative;}
	.service .main .inner .img h3 {
	    text-align: center;
	    text-shadow: 0px 0px 3px #000, 0px 0px 3px #000, 0px 0px 3px #000, 0px 0px 3px #000;}
	.service .main { width: 100%;}
	.service .main .inner .img p { padding: 14px;}
	form { margin: 0 0 30px;}
	.main .inner form dd {
	    width: 100%;
	    padding: 0 0 7px 0;
	    border-bottom: none;}
}
@media screen and (max-width:500px) {
	.main .inner p.name { font-size: 12px;}
	.main .inner p.name span { font-size: 30px;}
	.service .main .inner .img div:nth-child(2) { width: 90%;}
	.service .main .inner .img h3 { font-size: 24px;}
	.main .inner p.name {
    font-size: 10px;
    display: block;
    width: 140px;
    margin-left: auto;}
	.main .inner p.name span {
    font-size: 24px;
    display: block;
    text-align: right;}
}