@charset "UTF-8";
/****************************************
	共通
****************************************/
html, body, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6 {
	margin:0;
	padding:0;
}

ul, ol, li {
  list-style:none;
}

table{
  border-collapse:collapse;
  border-spacing:0;
  border:none;
}

a {
	text-decoration:none;
	color:#2c4fff;
}

a:hover {
	text-decoration:underline;
	color:#062fff;
}
.clearfix {
	clear: both;
}

/****************************************
	html
****************************************/
html {
	min-height: 100%;
	position: relative;
}

/****************************************
	body
****************************************/
body {
	font-family:"Mona Sans" , "M PLUS 1 Code", sans-serif;
    word-wrap:break-word;
	overflow-wrap:break-word;
	margin:0px;
	opacity:0;
	overflow-x: hidden;
}

body.m_active {
	overflow:hidden;
}

/****************************************
	wrapper
****************************************/
#wrapper {
	position:relative;
	width:100%;
	height: 100vh;
	max-width:2000px;
	margin:0px auto;
}




/****************************************
	common
****************************************/
*, *:before, *:after {
	-webkit-box-sizing: border-box;
	box-sizing: border-box
}

.content {
	width:100%;
	margin:0px auto;
	max-width:1080px;
}

.content-3 {
	width:100%;
	margin:0px auto;
	max-width:800px;
}


.breadcrumb {
	padding:20px 10% 3px;
}

.breadcrumb ul {
	width:100%;
	padding:0px 0px 0px 0px;
}

.breadcrumb ul li {
	display:inline-block;
	padding:0px 1px;
	font-size:12px;
}

.breadcrumb ul li a {
	color:#101010;
	text-decoration:underline;
	transition:.4s;
}

.breadcrumb ul li a:hover {
	color:#505050;
	transition:.4s;
}

.visually-hidden {
	position:absolute;
	width:1px;
	height:1px;
	margin:-1px;
	padding:0;
	overflow:hidden;
	clip:rect(0 0 0 0);
	border:0;
}


h2 {
	position: relative;
	padding:0;
	margin:0 0 20px 0;
	color:#000;
	font-size:36px;
	font-weight:200;
	letter-spacing:0.1em;
}

h2 strong {
	display:block;
}

h2 small {
	display:block;
	letter-spacing:0.05em;
	font-size:13px;
	font-weight:300;
}




h3 {
	position: relative;
	padding:20px 7px 20px 22px;
	letter-spacing:0.2em;
	font-weight:400;
	font-size:16px;
	background:#d0d0d0;
	color:#000;
	text-align:left;
}

h3 span {
	display:block;
	font-size:12px;
}

h4 {
	position: relative;
	max-width:1080px;
	margin:10px;
	padding:2px 3px 2px 15px;
	letter-spacing:0.1em;
	font-size:14px;
	width:100%;
	border-bottom:1px solid #f0f0f0;
	text-align:left;
}

.clear {
	clear:both;
}

.flex {
	display:flex;
	flex-wrap:wrap;
}

p {
	margin:0;
	letter-spacing:0.05em;
	line-height:1.5em;
}

.list-disc li {
	margin:0px 0px 0px 20px;
}

.list-disc li {
	list-style-type:disc;
}

.list-decimal li {
	margin:0px 0px 0px 20px;
}

.list-decimal li {
	list-style-type:decimal;
}

@media screen and (max-width:768px){

p {
	line-height:1.8em;
}


}

@media screen and (max-width:480px){

	h3 {
		font-size:16px;
	}

}


/****************************************
	nav
****************************************/
nav#hb-menu {
	position:fixed;
	top:0;
	right:0;
	background:#666666;
	margin:0px 0 0 0;
	padding:60px 10px 100px;
	width:100%;
	height:100vh;
	overflow:auto;
	z-index:98;
	opacity:0;
	visibility:hidden;
	pointer-events:none;
	transition:
		opacity .6s ease,
		visibility 0s linear .6s;
}

body.m_active nav#hb-menu {
	opacity:1;
	visibility:visible;
	pointer-events:auto;
	transition:
		opacity .6s ease,
		visibility 0s linear 0s;
}

nav#hb-menu .nav-content {
	position:absolute;
	bottom:0;
	left:0;
	padding:30px;
	opacity:0;
	transform:translateY(20px);
	transition:.6s ease;
}

body.m_active nav#hb-menu .nav-content{
	opacity:1;
	transform:translateY(0);
}

nav#hb-menu .nav-content .nav-sns {
	margin-bottom:15px;
}

nav#hb-menu .nav-content .nav-sns img {
	width:32px;
}

nav#hb-menu .nav-content ul li {
	padding:10px 0px;
}

nav#hb-menu .nav-content ul li a,
nav#hb-menu .nav-content ul li span {
	position: relative;
	display: inline-block;
	color:#fff;
	font-size:18px;
	font-weight:500;
	letter-spacing:0.03em;
	transition:.4s ease;
	cursor:pointer;
}

nav#hb-menu .nav-content ul li a:hover,
nav#hb-menu .nav-content ul li span:hover {
	text-decoration:none;
	transform: translateY(-5px);
}

nav#hb-menu .nav-content ul li a::after,
nav#hb-menu .nav-content ul li span::after {
  content:"";
  position:absolute;
  left:0;
  bottom:-4px;
  width:100%;
  height:1px;
  background: currentColor;
  opacity:0;
  transform: scaleX(0);
  transition:.4s ease;
}

nav#hb-menu .nav-content ul li a:hover::after,
nav#hb-menu .nav-content ul li span:hover::after {
  opacity:.6;
  transform: scaleX(.5);
}











@media screen and (max-width:768px){


}


/****************************************
	header
****************************************/

header {
	position:fixed;
	top:0;
	left:0;
	width:100%;
	height:60px;
	z-index:99;
	/*background:rgba(255,255,255,0.5);*/
	transition:1s;
}

header.scrolled {
	background: rgba(255, 255, 255, 0.95);
	box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

header .header-content {
	position:relative;
	width:100%;
	height:100%;
}


header .header-content .h-logo {
	position:absolute;
	top:15px;
	left:10px;
	width:100%;
	height:30px;
	transition:
		opacity .4s ease,
		transform .4s ease;
}

body.m_active header .header-content .h-logo {
	opacity:0;
	transform: translateY(-5px);
}

header .header-content .h-logo img {
	filter: drop-shadow(0px 4px 16px rgba(255, 255, 255, 0.8));
}

header .header-content .h-logo img {
	height:100%;
}

header .header-content .h-logo a {
	color:#000;
	transition: 0.4s;
}

header .header-content .h-logo a:hover {
	color:#000;
	text-decoration:none;
	transition: 0.4s;
}

.menu-bar-area {
	position:absolute;
	top:0;
	right:0;
	transition: 0.4s;
}


#menu-bar {
	position: absolute;
	top: 0;
	right: 0;
	width: 60px;
	height: 60px;
	cursor: pointer;
	z-index: 999;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* ===============================
   TRIGGER WRAPPER
================================= */
#menu-trigger {
	width: 80%;
	aspect-ratio: 1 / 1;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* ===============================
   COMMON LINE STYLE
================================= */
#menu-trigger span {
	position: absolute;
	width: 50%;
	height: 2px;
	background: #000;
	border-radius: 4px;
	transform-origin: center;
	transition: transform .5s cubic-bezier(.65,0,.35,1),
	            height .3s ease,
	            width .3s ease,
				background-color .4s ease;
}

/* 上線 */
#menu-trigger span:nth-of-type(1){
	top: calc(50% - 5px);
	transform:rotate(0);
}

/* 下線 */
#menu-trigger span:nth-of-type(2){
	top: calc(50% + 5px);
	transform:rotate(0);
	transform:rotate(0) translateX(20%);
	width:30%;
}

/* ===============================
   ACTIVE STATE
================================= */

/* 上線 → 右回転 */
body.m_active #menu-trigger span:nth-of-type(1){
	top:50%;
	transform:rotate(405deg);
	background: #fff;
}

/* 下線 → 左回転 */
body.m_active #menu-trigger span:nth-of-type(2){
	top:50%;
	transform:rotate(-405deg);
	background: #fff;
	width:50%;
}


@keyframes line1{
	0%{
		transform: translateY(0) scaleX(1) rotate(0);
	}
	30%{
		transform: translateY(0) scaleX(.7) rotate(0);
	}
	60%{
		transform: translateY(6px) scaleX(1) rotate(200deg);
	}
	100%{
		transform: translateY(6px) scaleX(1) rotate(405deg);
	}
}

@keyframes line2{
	0%{
		transform: translateY(0) scaleX(1) rotate(0);
	}
	30%{
		transform: translateY(0) scaleX(.7) rotate(0);
	}
	60%{
		transform: translateY(-6px) scaleX(1) rotate(-200deg);
	}
	100%{
		transform: translateY(-6px) scaleX(1) rotate(-405deg);
	}
}


@media screen and (max-width:768px){



}

@media screen and (max-width:480px){


}


/****************************************
	main-content
****************************************/
.main-content {
	display:flex;
	flex-flow:column;
	min-height:100vh;
}

body.m_active .main-content {
	filter: blur(2px);
	opacity:.8;
	transition:.6s ease;
}

@media screen and (max-width:768px){


}


/****************************************
	main
****************************************/
main {
}

.to-list {
	padding:0px 0px 0px;
}

.to-list a {
	position:relative;
	display:inline-block;
	max-width:300px;
	padding:55px 50px 75px;
	border:1px solid #c0c0c0;
	border-radius:50%;
	background:#fff;
	color:#c0c0c0;
	font-size:12px;
	text-align:center;
	box-shadow:0px 4px 8px rgba(0, 0, 0, 0.6);
	transition:.4s;
}


.to-list a:hover {
	border:1px solid #333;
	background:#fff;
	color:#333;
	text-decoration:none;
	transform:translateY(-5px) scale(1.05);
	transition:.4s;
}

.to-list a::after{
	content:"→";
	position:absolute;
	top:50%;
	left:50%;
	transform:translateX(-50%);
	font-size:25px;
	transition:.4s;
}

.to-list a:hover:after{
}

.to-list .btn {
	display:inline-block;
	width:100%;
	padding:10px 30px;
	background:#133684;
	font-size:14px;
	color:#fff;
	transition: all .4s;
	cursor:pointer;
	border-radius:60px;
}

.to-list .btn:hover {
	background:#0b2656;
	transition: all .4s;
}

.select-area {
	padding:5px 10px 20px;
}

.select-area ul {
	width:100%;
}

.select-area ul li {
	border-bottom:1px dashed #c0c0c0;
}

.select-area ul li:last-child {
	border-bottom:none;
}

.select-area ul li a {
	display:block;
	height:100%;
	padding:10px;
	color:#101010;
}

.select-area ul li a:hover {
	text-decoration:none;
	background:#f0f0f0;
}

.select-area ul ul.children {
	width:100%;
	padding-left:10px;
}

.select-area ul ul.children li {
	margin-left:40px;
	list-style-type:disc;
	font-size:14px;
}

.select-area ul ul.children ul.children li {
	margin-left:15px;
	list-style-type:circle;
	font-size:14px;
}

@media screen and (max-width:870px){


}

@media screen and (max-width:768px){


}



/****************************************
	footer-contact
****************************************/
section#footer-contact {
	position:relative;
	margin-top: auto;
	font-weight:400;
	letter-spacing:0.1em;
	transition:.4s;
}



section#access {
	position:relative;
	width:100%;
	padding:100px 5% 0px;
	background:#f8f8f8;
	color:#000;
}


section#access table {
	width:100%;
}

section#access th {
	width:180px;
	padding:20px;
	text-align:left;
	vertical-align:top;
	font-weight:normal;
	border:1px solid #d0d0d0;
}

section#access td {
	width:calc(100% - 180px);
	padding:20px;
	text-align:left;
	vertical-align:top;
	font-weight:normal;
	border:1px solid #d0d0d0;
}

section#access td a {
	color:#000;
	transition:.4s;
}

section#access td a:hover {
	text-decoration:none;
	background:#fff;
	color:#555;
}



section#access p {
	font-size:12px;
	padding:10px 0px;
}

section#map {
	font-size:0;
}

section#map iframe {
	width:100%;
	height:400px;
}






section#contact{
	position:relative;
}

section#contact a{
	position:relative;
	display:flex;
	align-items:center;
	justify-content:center;
	text-align:center;
	color:#fff;
	padding:40px 5%;
	font-size:28px;
	letter-spacing:0.1em;
	overflow:hidden;
	text-decoration:none;
}

/* 文字 */
section#contact a .contact-text{
	position:relative;
	z-index:3;
}

/* 背景 */
section#contact a::before{
	content:"";
	position:absolute;
	inset:0;
	background:url("../img/contact-bg.jpg") center/cover no-repeat;
	transform:scale(1.1);
	transition:1.2s;
	z-index:1;
}

/* 暗さフィルター */
section#contact a::after{
	content:"";
	position:absolute;
	inset:0;
	background:rgba(0,0,0,0.55);
	backdrop-filter: blur(2px);
	z-index:2;
	transition:.4s;
}

/* サブ文字 */
section#contact small{
	display:block;
	font-size:14px;
	margin-top:5px;
	letter-spacing:0.1em;
}

/* hover */
section#contact a:hover::before{
	transform:scale(1);
}

section#contact a:hover::after{
	background:rgba(0,0,0,0.35);
}







#price-btn {
  position: fixed;
  bottom: 20px;
  right: 20px;
  width: 100px;
  height: 100px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 999;
  text-decoration: none;
  transition:.4s;
}

#price-btn:hover {
	transform:translateY(-5px);
	text-decoration:none;
}

#price-btn a {
    text-decoration: none;
    outline: none;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
	transition:.4s;
}

.center-text {
	display:block;
	color: #333; /* 文字色 */
	font-weight: bold;
	z-index: 1;
	pointer-events: auto;
	background:#fff;
	padding:23px 13px;
	border-radius:50%;
	font-size:14px;
	box-shadow:0px 4px 8px rgba(0, 0, 0, 0.6);
	transition:.4s;
}

#price-btn:hover .center-text {
	background:#f0f0f0;
	text-decoration:none;
}

.rotating-text {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transform-origin: 50% 50%;
  animation: rotateText 9s linear infinite;
}

.rotating-text textPath {
  fill: #333;
  font-size: 12.5px;
  letter-spacing:0.2em;
}

@keyframes rotateText {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}



@media screen and (max-width:768px) {
	



}



@media screen and (max-width:480px){


}





/****************************************
	footer
****************************************/
footer {
	background:#ddd;
	color:#000;
	padding:40px 5%;
}

footer .f-area {
	width:100%;
	text-align:center;
}

footer .f-area .f-title {
	font-size:14px;
	letter-spacing:0.2em;
	padding:0px 0px 15px;
}

footer .f-area .f-address {
	font-size:12px;
}

footer .f-area .f-tel {
	padding:20px 0px 10px;
}

footer .f-area .f-tel span {
	display:inline-block;
	padding-right:40px;
}

footer .f-area .f-tel img {
	width:30px;
	margin-right:13px;
	vertical-align:middle;
}

footer .f-area .f-tel a {
	display:inline-block;
	border:1px solid #000;
	padding:7px 20px;
	color:#000;
	font-size:22px;
	font-weight:300;
	letter-spacing:0.1em;
	vertical-align:middle;
	transition:.4s;
}

footer .f-area .f-tel a:hover {
	color:#555;
	text-decoration:none;
}

footer .f-area .f-tel .f-info {
	font-size:12px;
	padding:20px 5px 10px;
}

footer table {
	width:100%;
	max-width:250px;
	margin:10px auto;
}

footer tr {
	border-bottom:1px solid #fff;
}

footer th {
	padding:12px 10px;
	font-size:14px;
	font-weight:400;
	text-align:left;
	vertical-align:top;
}

footer td {
	padding:12px 10px;
	font-size:14px;
	font-weight:400;
	text-align:right;
	vertical-align:top;
}


footer tr:last-child {
	border-bottom:none;
}



footer .copyright {
	display: flex;
	justify-content:center;
	align-items:center;
	padding:30px 30px 0px 0px;
	font-size:12px;
}

footer .copyright img {
	width:15px;
	margin-right:10px;
}


footer .recaptcha {
	text-align:center;
	font-size:12px;
	padding:10px;
}

footer .recaptcha span {
	display:inline-block;
}

footer .recaptcha a {
}

@media screen and (max-width:1080px){



}

@media screen and (max-width:480px){

	footer {
		padding:40px 5% 70px;
	}

}

/****************************************
	contact
****************************************/
.grecaptcha-badge {
	visibility: hidden;
}





