@charset "utf-8";
/* CSS Document */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Sawarabi+Gothic&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Josefin+Sans:wght@400;700&display=swap');
* {
	margin:0;
	padding:0;
	outline:none;
	box-sizing:border-box;
}
body {
	text-align:center;
	font-family: 'Noto Sans JP', sans-serif;
	font-size:16px;
	line-height:200%;
	-webkit-text-size-adjust: 100% !important;
	max-height: 100%;
}
ul, li {
	list-style:none;
}
p {
	letter-spacing:0.08em;
}
a {
	color:#000;
	text-decoration:none;
}
a img {
	background:none!important;
	border:0;
}
a:hover img {
	opacity:0.6;
	filter:alpha(opacity=60);
	-ms-filter: "alpha( opacity=60 )";
	background:none!important;
}
a:hover img.none_alpha {
	opacity:1;
	filter:alpha(opacity=100);
	-ms-filter: "alpha( opacity=100 )";
	background:none!important;
}
.sp_740 {
	display:none;
}
.anchor {
	display: block;
	padding-top: 100px;
	margin-top: -100px;
	height: 0;
}
/* 画像設定 */
img {
	border:0;
	max-width:100%;
	height:auto;
	vertical-align: bottom;
}
.parallax-mirror {
	top:148px!important;
}
.parallax-window {
	min-height: 400px;
	background: transparent;
}
.parallax-mirror img {
	left:0;
}
header {
	font-family: 'Sawarabi Gothic', sans-serif;
	text-align:left;
	width:100%;
	margin:auto;
	position:fixed;
	top:0;
	left:0;
	right:0;
	background:#FFF;
	padding:40px 10px 40px 300px;
	z-index:99;
}
header h1 {
	font-size: 24px;
	line-height: 120%;
	font-weight: normal;
	width: 250px;
	margin-left: 0;
	position: absolute;
	top: 40px;
	left: 50px;
}
header h1 {
	text-decoration:none;
	color:#000;
}
header h1 small {
	font-size:13px;
	line-height:120%;
	display:block;
}
nav {
	font-size: 14px;
	line-height: 120%;
	margin-right: 0;
	margin-left: auto;
}
#side_btn {
	position:fixed;
	right:0;
	top:30%;
	z-index: 99;
}
#topmain_bg {
	margin-top:225px;
	min-height:575px;
	position:relative;
	padding-top:42%;
	height:100%;
}
#sub_contents {
	margin-top:180px;
}
#topmain_bg::after {
 content:"";
 position:fixed;
 top:0;
 left:0;
 width:100%;
 height:100%;
 background-image: url(../images/main_ph2022_a.jpg);
 background-position: center 225px;
 background-repeat: no-repeat;
 z-index: -1;
 background-size: cover;
}
#topmain_bg .txt {
	font-family: 'Josefin Sans', sans-serif;
	font-size: 70px;
	line-height: 130%;
	position: absolute;
	top: -80px;
	left: 50px;
	text-align: left;
}
.information_box_top {
	display: table;
    margin: auto auto 100px auto;
    background: #FFF;
    padding: 2em;
    border: solid 2px #c82c55;
	text-align: left;
	max-width: 750px;
}
.information_box_top big {
    display: block;
    width: 100%;
    color: #c82c55;
    font-size: 1.3em;
	font-weight: bold;
	text-align: center;
	margin-bottom: 8px;
}
dl.schedule {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	font-weight: bold;
	padding-top:15px;
	font-size: 1.2em;
	line-height: 120%;
}
dl.schedule dt {
	width: 120px;
	position: relative;
	margin-bottom: 8px;
}
dl.schedule dt::after {
	content:"：";
	position: absolute;
	top:0;
	right: 0;
}
dl.schedule dd {
	width: calc(100% - 120px );
	margin-bottom: 8px;
	
}
.inner {
	padding:100px 0;
	width:100%;
	max-width:1300px;
	margin:auto;
	position: relative;
	z-index: 1;
}
.flex_box, ul.cloumn2_link {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items:center;
}
.flex_box .in_box {
	width:50%;
	padding-right:50px;
	padding-left:50px;
}
.flex_box .in_box.ph img {
	border-radius: 20px;
	-webkit-border-radius: 20px;
	-moz-border-radius: 20px;
}
.flex_box .in_box.txt {
	text-align:left;
}
ul.cloumn2_link {
	max-width: 760px;
	margin: auto;
	padding-top: 60px;
}
ul.cloumn2_link li {
	width: 50%;
	padding: 0 38px;
	text-shadow: 0 0 2px #FFF;
}
.bg_wh {
	background:#FFF;
	position:relative;
	overflow:hidden;
	z-index:1;
}
h2 {
	font-size:75px;
	line-height:110%;
	margin-bottom:50px;
	font-weight:400;
	font-family: 'Josefin Sans', 'Sawarabi Gothic', sans-serif;
	letter-spacing:0.05em;
	color:#dbdcdc;
}
h2 small {
	font-size:21px;
	line-height:120%;
	font-weight:bold;
	display:block;
	letter-spacing:0.1em;
	color: #000;
}
#sub_contents h2 {
	margin-bottom:0px;
}
h3 {
	text-align:left;
	font-size:40px;
	line-height:120%;
	margin-bottom:50px;
	letter-spacing:0.05em;
}
#sub_contents h3 {
	text-align:center;
	font-size:25px;
	color:#c82c55;
}
.link_box a {
	diaplay:block;
	padding: 15px 20px 10px 20px;
	border-bottom: 1px solid #000;
	text-align: center;
	min-width: 120px;
	font-family: 'Josefin Sans', 'Sawarabi Gothic', sans-serif;
	letter-spacing:0.05em;
	font-size:18px;
	position: relative;
}
.link_box a:hover {
	color:#FFF;
}
.link_box a:hover::after, .link_box a:active::after {
 border-radius:5px 5px 0 0;
 -webkit-border-radius:5px 5px 0 0;
 -moz-border-radius:5px 5px 0 0;
 position:absolute;
 bottom:0;
 content:"";
 width:50%;
 margin:auto;
 left:0;
 right:0;
 display:block;
 height:100%;
 background-color: #000;
 -webkit-animation-duration: 300ms;
 animation-duration: 300ms;
 -webkit-animation-fill-mode: both;
 animation-fill-mode: both;
 -webkit-animation-iteration-count: 1;
 animation-iteration-count: 1;
 -webkit-animation-name: animeline2;
 animation-name:animeline2;
 -webkit-transform-origin: center center;
 transform-origin: center center;
 z-index: -1;
}
.information_box {
	background:#FFF;
	position:relative;
	z-index:10;
}
.information_box h2 {
	text-align:right;
}
.information_box h2 small {
	color:#000;
}
.information_box p {
	margin-bottom: 60px;
}
.business_box {
	padding-top:100px;
	position:relative;
	z-index:1;
}
.pg_mv .business_box::after {
 content: "";
 position: fixed;
 top: 140px;
 left: 0;
 width: 100%;
 height: 575px;
 background-image: url(../images/top_business_bg_a.jpg);
 background-position: center top;
 background-repeat: no-repeat;
 z-index: 0;
 background-size: cover;
}
ul.cloumn4_business {
	display: flex;
	flex-direction: row;
}
ul.cloumn4_business li {
	width: 23%;
	margin-left: 1%;
	margin-right: 1%;
	background: #FFF;
	border-radius: 5px;
	-webkit-border-radius: 5px;
	-moz-border-radius: 5px;
	padding:40px 25px;
}
ul.cloumn4_business li strong {
	display: block;
	font-size:21px;
	line-height:120%;
	text-align: center;
	padding-bottom: 20px;
	margin-bottom: 20px;
	position: relative;
}
ul.cloumn4_business li strong::after {
 content:"";
 width: 55px;
 height: 3px;
 display: block;
 margin:auto;
 background-color: #e3007f;
 position: absolute;
 left:0;
 right:0;
 bottom:0;
}
ul.cloumn4_business li:nth-of-type(2) strong::after {
 background-color: #1eaa39;
}
ul.cloumn4_business li:nth-of-type(3) strong::after {
 background-color: #009fe8;
}
ul.cloumn4_business li:nth-of-type(4) strong::after {
 background-color: #6a00e5;
}
ul.cloumn4_business li .txt_box {
	text-align: left;
	font-size: 14px;
	line-height: 160%;
	display: block;
}
.business_box h2 {
	color:#FFF;
	margin-bottom: 185px;
	text-shadow: 0 0 5px #000;
}
.business_box h2 small {
	color:#FFF;
}
.contact_box table {
	border-top:1px solid #EEE;
	border-collapse: collapse;
	width:100%;
	margin-bottom:60px;
	max-width: 980px;
	margin-left: auto;
	margin-right: auto;
}
.contact_box table td a::before {
 content: "";
 width: 13px;
 height: 13px;
 background-image: url(../images/icon_window.png);
 background-position: center center;
 background-repeat: no-repeat;
 background-size: 13px;
 margin-right: 0.5em;
 display: inline-block;
}
.contact_box table th, .contact_box table td {
	padding:15px 8px;
	box-sizing:border-box;
	text-align:left;
	border-bottom:1px solid #EEE;
	position:relative;
	vertical-align: top;
}
.contact_box table th {
	padding-right:70px;
	width:220px;
}
.contact_box table th .tx_red {
	display:inline-block;
	background-color:#c82c55;
	color:#FFF;
	font-size:14px;
	line-height:100%;
	padding:5px 8px;
	margin-left:10px;
	position:absolute;
	top:19px;
	right:10px;
	border-radius: 3px;
	-webkit-border-radius: 3px;
	-moz-border-radius: 3px;
}
input[type="text"].width30 {
	width:60px;
	margin-bottom:5px;
}
input[type="text"].width40 {
	width:80px;
	margin-bottom:5px;
}
input[type="text"], textarea {
	width:100%;
	padding:5px;
	box-sizing:border-box;
	border:1px solid #CCC;
	font-family: yu-gothic-pr6n, sans-serif;
	font-size:18px;
	line-height:100%;
}
select {
	border-radius: 3px;
	-webkit-border-radius: 3px;
	-moz-border-radius: 3px;
	padding:6px;
	box-sizing:border-box;
	border:1px solid #CCC;
	font-size:17px;
	line-height: 130%;
	height: 2.25em;
}
input[type="submit"], input[type="reset"] {
	font-family: 'Noto Sans JP', sans-serif;
	padding:15px 50px;
	font-size:19px;
	line-height:100%;
	margin:auto 12px 9px auto;
	text-align:center;
	font-weight:bold;
	-webkit-appearance: none;
	border:0;
	border-radius: 3px;
	-webkit-border-radius: 3px;
	-moz-border-radius: 3px;
	max-width: 220px;
    width: 100%;
}
input[type="submit"] {
	background-color:rgb(230, 230, 230);
	color:#999;
}
input[type="submit"].checkd_btn {
	background-color:#c82c55;
	cursor: pointer;
	color:#FFF;
}
input[type="reset"] {
	background-color:#f29600;
	color:#FFF;
	cursor: pointer;
}
input[type="submit"].checkd_btn:hover {
	background-color:#c82c55;
	color:#FFF;
}
input[type="reset"]:hover {
	background-color:#222;
	color:#FFF;
}
label {
	width:100%;
	padding-left: 1em;
}
.ggmap {
	position: relative;
	padding-top: 50px;
	overflow: hidden;
	width: 100%;
	margin: auto auto 0px auto;
	min-height: 550px;
	z-index: 2;
	height: 100%;
}
.ggmap iframe, .ggmap object, .ggmap embed {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
footer {
	background-color: #231815;
	color:#FFF;
	position: relative;
	z-index: 3;
}
footer .flex_box {
	max-width: 1300px;
	margin: auto;
	width: 100%;
}
footer .flex_box .in_box.logo {
	width: 40%;
	text-align: left;
	font-size: 14px;
	line-height: 160%;
	letter-spacing: 0.08em;
	padding-top: 80px;
	padding-bottom: 80px;
	padding-left: 0;
	padding-right: 0;
}
footer .flex_box .in_box.logo strong {
	display: block;
	border-bottom: 1px solid #FFF;
	font-size: 22px;
	line-height: 100%;
	padding: 15px 0 30px 0;
	max-width: 320px;
	font-weight: normal;
	letter-spacing: 0.1em;
	margin-bottom: 30px;
}
footer .flex_box .in_box.navi {
	width: 60%;
	padding-left: 0;
	padding-right: 0;
}
footer .flex_box .in_box.navi ul {
	display: flex;
	flex-direction: row;
	justify-content: flex-end;
}
footer .flex_box .in_box.navi ul li {
	padding:0 10px;
}
footer .flex_box .in_box.navi ul li a {
	color:#FFF;
	display:block;
	font-family: 'Sawarabi Gothic', sans-serif;
	letter-spacing: 0.1em;
	padding:10px 10px;
	position:relative;
}
#copyright {
	text-align: right;
	max-width: 1300px;
	margin: auto;
	width: 100%;
	font-size: 11px;
	letter-spacing: 0.1em;
}

@media screen and (min-width: 891px) {
.menu-toggle {
		display: none;
}
	nav {
 max-width: 600px;
}
nav ul.menu {
 display: flex;
 flex-direction: row;
}
nav ul.menu {
 justify-content: flex-end;
}
nav ul.menu li {
 padding:0 10px;
}
nav ul.menu li a {
 display:block;
 font-family: 'Sawarabi Gothic', sans-serif;
 letter-spacing: 0.1em;
 padding:10px 25px;
 position:relative;
}
nav ul.menu li a:hover::after {
 position:absolute;
 bottom:0;
 content:"";
 width:50%;
 margin:auto;
 left:0;
 right:0;
 display:block;
 height:1px;
 -webkit-animation-duration: 300ms;
 animation-duration: 300ms;
 -webkit-animation-fill-mode: both;
 animation-fill-mode: both;
 -webkit-animation-iteration-count: 1;
 animation-iteration-count: 1;
 -webkit-animation-name: animeline;
 animation-name:animeline;
 -webkit-transform-origin: center center;
 transform-origin: center center;
 background:#000;
}
}
@media screen and (max-width: 1200px) {
ul.cloumn4_business {
 flex-wrap: wrap;
}
ul.cloumn4_business li {
 width: 46%;
 margin-left: 2%;
 margin-right: 2%;
 margin-bottom: 2%;
}
}
@media screen and (max-width: 1028px) {
 .inner {
 width: 94%;
 margin: auto;
}
.flex_box .in_box {
 width: 100%;
 padding-right: 0px;
 padding-left: 0px
}
.flex_box .in_box.ph {
 margin-bottom: 50px;
}
footer .in_box.navi {
 display: none!important;
}
footer .flex_box {
 justify-content: center;
}
footer .flex_box .in_box.logo {
 text-align: center;
 width: 100%;
}
footer .flex_box .in_box.logo strong {
 margin-right: auto;
 margin-left: auto;
}
}
@media screen and (max-width: 890px) {
 button {
 opacity: 0.6;
 background-color: transparent;
 position: fixed;
 z-index: 2;
 top: 40px;
 right: 50px;
 border: none;
 width: 50px;
 height: 40px;
 outline: none;
 transition: opacity 0.2s ease-out;
}
button:before {
 content: "";
 position: absolute;
 top: 0;
 right: 0;
 bottom: 0;
 left: 0;
 margin: auto;
 right: auto;
 width: 100%;
 background: linear-gradient(to bottom, #000, #000 10%, transparent 10%, transparent 45%, #000 45%, #000 55%, transparent 55%, transparent 90%, #000 90%, #000 100%);
 transition: opacity 0.2s ease-out, width 0.2s 0.2s ease-out;
}
button:after {
 opacity: 0;
 content: '×';
 color: #000;
 position: absolute;
 top: 16px;
 left: -4px;
 font-family: Arial, sans-serif;
 font-size: 76px;
 line-height: 0;
 transition: opacity 0.4s ease-out;
}
button:active {
 transform: translateY(2px);
}
button:hover {
 opacity: 1;
}
.open button {
 opacity: 1;
}
.open button:before {
 opacity: 0;
 width: 0;
}
.open button:after {
 opacity: 1;
 transform: translate3d(0, 0, 0) rotate(360deg);
 transition: transform 0.4s 1s ease-out, opacity 0.4s 1s ease-out;
}
nav {
 z-index: 1;
 position: fixed;
 top: -100%;
 left: 0;
 width: 100%;
 height: 100%;
 transform: translate3d(0, 0, 0);
 backface-visibility: hidden;
 overflow: hidden;
}
nav:before {
 content: '';
 position: absolute;
 top: 0;
 right: 0;
 bottom: 0;
 left: 0;
 margin: auto;
 background: rgba(245, 245, 245, 0.98);
 width: 100%;
 height: 0;
 padding-bottom: 100%;
 border-radius: 100%;
 transform: scale(0.04), translateY(9999px);
 overflow: hidden;
}
.open nav {
 top: 0;
}
.open nav:before {
 animation: menu-animation 0.8s ease-out forwards;
}
ul.menu {
 position: fixed;
 top: 50%;
 left: 50%;
 transform: translate3d(-50%, -50%, 0);
 backface-visibility: hidden;
 perspective: 1000;
 color: white;
}
ul.menu li {
 opacity: 0;
 text-align: center;
 transform: translate3d(0, 36px, 0);
}
.open ul.menu li {
 opacity: 1;
 transform: translate3d(0, 0, 0);
 transition: transform 0.2s ease-out, opacity 0.2s ease-out;
 font-family: 'Sawarabi Gothic', sans-serif;
}
.open ul.menu li a {
 display: block;
 padding: 15px 0;
 text-align: center;
 font-size: 23px;
 line-height: 110%;
 letter-spacing: 0.1em;
}
.open ul.menu li:nth-child(1) {
 transition-delay: 0.75s;
}
.open ul.menu li:nth-child(2) {
 transition-delay: 0.85s;
}
.open ul.menu li:nth-child(3) {
 transition-delay: 0.95s;
}
.open ul.menu li:nth-child(4) {
 transition-delay: 1.05s;
}
}
@media screen and (max-width: 740px) {
.sp_740 {
 display:block;
}
.pc_740 {
 display:none;
}
}
@media screen and (max-width: 680px) {
 header {
 height: 120px;
}
header h1 {
 left:20px;
 width: 270px;
}
button {
 right: 20px;
}
#topmain_bg .txt {
 font-size: 50px;
 left: 20px;
 top: -110px;
}
#topmain_bg::after {
 background-position: center 175px;
}
h2 {
 font-size: 45px;
}
ul.cloumn2_link li {
 width: 100%;
 margin-bottom: 30px;
}
.contact_box table, .contact_box table tbody, .contact_box table tr {
 width:100%;
 display: flex;
 flex-direction: column;
 margin: auto;
}
.contact_box table th, .contact_box table td {
 width:100%;
 border: 0;
}
.contact_box table th {
 background-color: #EEE;
 border-radius: 5px 5px 0 0;
 -webkit-border-radius: 5px 5px 0 0;
 -moz-border-radius: 5px 5px 0 0;
 padding: 8px;
}
.contact_box table td {
 padding-bottom: 20px;
}
.contact_box table th .tx_red {
 top: 12px;
}
}
@media screen and (max-width: 480px) {
 ul.cloumn4_business li {
 width: 96%;
 margin-bottom: 30px;
}
}

/* アニメーション */
@keyframes menu-animation {
 0% {
 opacity: 0;
 transform: scale(0.04) translateY(300%);
}
 40% {
 transform: scale(0.04) translateY(0);
 transition: ease-out;
}
 40% {
 transform: scale(0.04) translateY(0);
}
 60% {
 opacity: 1;
 transform: scale(0.02) translateY(0px);
}
 61% {
 transform: scale(0.04);
}
 99.9% {
 height: 0;
 padding-bottom: 100%;
 border-radius: 100%;
}
 100% {
 transform: scale(2);
 height: 100%;
 padding-bottom: 0;
 border-radius: 0;
}
}
 @-webkit-keyframes animeline {
 from {
 -webkit-animation-timing-function: linear;
 -webkit-transform: translate(0px, 0px) scale(0, 0) rotate(0deg) skew(0deg, 0deg);
 opacity: 1;
}
to {
	-webkit-animation-timing-function: linear;
	-webkit-transform: translate(0px, 0px) scale(1, 1) rotate(0deg) skew(0deg, 0deg);
	opacity: 1;
}
50% {
 -webkit-animation-timing-function: linear;
 -webkit-transform: translate(0px, 0px) scale(2, 1) rotate(0deg) skew(0deg, 0deg);
 opacity: 1.0;
}
}
 @keyframes animeline {
 from {
 animation-timing-function: linear;
 transform: translate(0px, 0px) scale(0, 0) rotate(0deg) skew(0deg, 0deg);
 opacity: 1;
}
to {
	animation-timing-function: linear;
	transform: translate(0px, 0px) scale(1, 1) rotate(0deg) skew(0deg, 0deg);
	opacity: 1;
}
50% {
 animation-timing-function: linear;
 transform: translate(0px, 0px) scale(2, 1) rotate(0deg) skew(0deg, 0deg);
 opacity: 1.0;
}
}
@-webkit-keyframes animeline2 {
 from {
 -webkit-animation-timing-function: linear;
 -webkit-transform: translate(0px, 0px) scale(0, 0) rotate(0deg) skew(0deg, 0deg);
 opacity: 1;
}
to {
	-webkit-animation-timing-function: linear;
	-webkit-transform: translate(0px, 0px) scale(2, 1) rotate(0deg) skew(0deg, 0deg);
	opacity: 1;
}
}
 @keyframes animeline2 {
 from {
 animation-timing-function: linear;
 transform: translate(0px, 0px) scale(0, 0) rotate(0deg) skew(0deg, 0deg);
 opacity: 1;
}
to {
	animation-timing-function: linear;
	transform: translate(0px, 0px) scale(2, 1) rotate(0deg) skew(0deg, 0deg);
	opacity: 1;
}
}
