@charset "utf-8";

/*		Contents
---------------------------------------------------------------------------
	common
	header
	main
	footer
------------------------------------------------------------------------ */


/* ========================================================================
	common
======================================================================== */
:root{
	--color_01:#3baea7; /* 緑色 */
	--color_02:#fff100; /* 黄色 */
}


@media print, screen and (min-width:768px){
body{
	min-width:1260px;
}

.sp{
	display:none;
}

.inner{
	position:relative;
	width:1200px;
	margin:0 auto;
}

a img, .fade, .fades a{ transition-duration:0.2s; }
a:hover img, .fade:hover, .fades a:hover{ opacity:0.8; }
.fade:hover img, .fades a:hover img{ opacity:1; }
}

@media screen and (max-width:767px){
body{
	min-width:320px;
	font-size:1.6rem; /* 16px */
}

.pc{
	display:none;
}

.inner{
	position:relative;
	padding:0 20px;
}
}


/* ----------------------------------------
	common_contact
---------------------------------------- */
.common_contact{
	overflow:hidden;
	width:1200px;
	margin:0 auto 80px;
	background:#393939;
	border:5px solid #393939;
	border-radius:20px;
}

.common_contact h2{
	margin:0;
	padding:29px 0;
	text-align:center;
	font-size:4.4rem !important;
	font-weight:900;
	color:#ffffff;
	line-height:1;
}

.common_contact h2 span{
	color:#fff100 !important;
}

@media screen and (max-width:767px){
.common_contact{
	width:auto;
	margin:0 20px 20px;
}

.common_contact h2{
	padding:16px 20px;
	font-size:2.0rem !important;
	line-height:2.8rem;
}
}


/* call
---------------------------------------- */
.common_contact .call{
	padding:26px 0;
	background:#ffffff;
	text-align:center;
	line-height:1;
}

.common_contact .call a{
	display:inline-block;
	margin:0 0 10px 0;
	font-size:7.2rem;
	color:#e60012;
	text-decoration:none;
}

.common_contact .call a img{
	margin:0 20px 0 0;
}

.common_contact .call span{
	display:block;
	font-size:2.4rem;
	font-weight:900;
}

@media screen and (max-width:767px){
.common_contact .call{
	padding:20px;
}

.common_contact .call a{
	margin:0 0 10px 0;
	font-size:3.0rem;
}

.common_contact .call a img{
	width:30px;
	margin:0 10px 0 0;
}

.common_contact .call span{
	font-size:1.6rem;
}
}


/* ----------------------------------------
	common_other
---------------------------------------- */
.common_other{
	position:relative;
	padding:30px 0 40px 0;
	background:url(../../img/common/bg_contact.png);
}

.common_other::before{
	content:"";
	position:absolute;
	bottom:8px;
	right:10px;
	background:url(../../img/common/illust_contact.png) no-repeat center;
	width:286px;
	height:334px;
}

.common_other dt{
	margin:0 0 30px 0;
	text-align:center;
	font-size:3.3rem;
	font-weight:900;
	line-height:1;
}
.common_other dt::before{ content:"＼ "; }
.common_other dt::after{ content:" ／"; }

.common_other dt span{
	background:linear-gradient(transparent 0% 67%, #fff100 67% 100%, transparent 100% 100%) no-repeat center bottom 4px;
}

.common_other dd{
	position:relative;
}

@media screen and (max-width:767px){
.common_other{
	padding:20px 20px 30px;
	text-align:center;
}
.common_other::before{ content:none; }

.common_other dt{
	display:inline-block;
	position:relative;
	margin:0 0 20px 0;
	font-size:2.0rem;
	line-height:3.0rem;
}

.common_other dt::before,
.common_other dt::after{
	position:absolute;
	top:50%;
	left:-1.5em;
	transform:translateY(-50%);
}
.common_other dt::after{
	left:auto;
	right:-1.5em;
}

.common_other dt span{
	background-position:center bottom;
}
}


/* common_btn
---------------------------------------- */
.common_other .common_btn{
	margin:0;
}

.common_other .common_btn a{
	justify-content:flex-start;
	padding:0 0 0 30px;
}
.common_other .common_btn .line{
	background:#06c755;
	box-shadow:0 0 9px 0 rgba(6,199,85,0.2);
}

.common_other .common_btn img{
	margin:0 40px 0 0;
}

@media screen and (max-width:767px){
.common_other .common_btn a{
	justify-content:center;
	padding:0 15px;
}

.common_other .common_btn img{
	width:auto;
	height:23px;
	margin:0 10px 0 0;
}
}


/* ----------------------------------------
	common_btn
---------------------------------------- */
.common_btn{
	display:flex;
	flex-wrap:wrap;
	justify-content:center;
	gap:15px 38px;
	margin:0 0 60px 0;
}

.common_btn a,
.common_btn button{
	display:flex;
	justify-content:center;
	align-items:center;
	width:446px;
	height:98px;
	background:#ea5404;
	border:5px solid #ffffff;
	border-radius:12px;
	box-shadow:0 0 9px 0 rgba(234,84,4,0.2);
	font-size:2.6rem;
	font-weight:900;
	color:#ffffff;
	line-height:1;
	text-decoration:none;
}

.common_btn .back{
	background:#dddddd;
	box-shadow:0 0 9px 0 rgba(0,0,0,0.2);
	color:#333333;
}

@media screen and (max-width:767px){
.common_btn{
	margin:0 0 30px 0;
}

.common_btn a,
.common_btn button{
	width:100%;
	height:66px;
	padding:0 15px;
	border:3px solid #ffffff;
	font-size:1.8rem;
	line-height:2.4rem;
}
}


/* ========================================================================
	header
======================================================================== */
header{
	position:fixed;
	top:0;
	left:0;
	width:100%;
	height:128px;
	background:#ffffff;
	z-index:10;
}

header .inner{
	width:auto;
	max-width:1480px;
	padding:0 40px;
}

@media screen and (max-width:767px){
header{
	height:80px;
}

header .inner{
	max-width:none;
	padding:0 20px;
}
}


/* ----------------------------------------
	h1 / logo
---------------------------------------- */
header h1,
header .logo{
	padding:12px 0;
}

header h1 img,
header .logo img{
	width:auto;
	height:50px;
}

@media screen and (max-width:767px){
header h1,
header .logo{
	padding:20px 0;
}

header h1 img,
header .logo img{
	height:40px;
}
}


/* ----------------------------------------
	menu
---------------------------------------- */
#menu .btn{
	display:none;
}

@media screen and (max-width:767px){
#menu .btn{
	display:block;
	position:fixed;
	top:15px;
	right:20px;
	cursor:pointer;
	z-index:10;
}

#menu .menu{
	display:none;
	position:fixed;
	top:80px;
	left:0;
	width:100%;
	height:calc(100% - 80px);
	background:rgba(255,255,255,1);
}
}


/* gnavi
---------------------------------------- */
#menu .gnavi{
	display:flex;
	max-width:1200px;
	margin:0 auto;
}

#menu .gnavi li{
	width:20%;
	border-left:1px solid #b7b7b7;
}
#menu .gnavi li:first-child{ border:none; }

#menu .gnavi a{
	display:flex;
	justify-content:center;
	align-items:center;
	height:44px;
	font-size:1.7rem;
	font-weight:700;
	text-decoration:none;
}
#menu .gnavi a:hover{ color:#0ba29a; }

@media screen and (max-width:767px){
#menu .gnavi{
	display:block;
	max-width:none;
	padding:20px 20px 5px;
}

#menu .gnavi li{
	width:auto;
	border:none;
}

#menu .gnavi a{
	height:36px;
	font-size:1.6rem;
}
#menu .gnavi a:hover{ color:#333333; }
}


/* call
---------------------------------------- */
#menu .call{
	position:absolute;
	top:0;
	right:448px;
}

#menu .call a{
	display:block;
	width:312px;
	padding:8px 0;
	background:#e5eded;
	border-radius:0 0 10px 10px;
	text-align:center;
	text-decoration:none;
}

#menu .call .tel{
	display:flex;
	justify-content:center;
	align-items:center;
	margin:0 0 4px 0;
	font-size:3.0rem;
	font-weight:700;
	color:#ff0000;
	line-height:1;
}

#menu .call .tel span{
	width:70px;
	margin:0 8px 0 0;
	padding:3px 0;
	background:#00968e;
	border-radius:12px;
	text-align:center;
	vertical-align:bottom;
	font-size:1.8rem;
	color:#ffffff;
}

#menu .call .time{
	font-size:1.4rem;
	font-weight:700;
	line-height:1;
}

@media screen and (max-width:767px){
#menu .call{
	position:static;
	padding:0 20px;
}

#menu .call a{
	width:100%;
	margin:15px 0 0 0;
	border-radius:10px;
}

#menu .call .tel{
	font-size:2.8rem;
}

#menu .call .tel span{
	font-size:1.6rem;
}
}


/* contact
---------------------------------------- */
#menu .contact{
	display:flex;
	gap:0 8px;
	position:absolute;
	top:6px;
	right:40px;
}

#menu .contact a{
	display:block;
	width:194px;
	background:#ffb892;
	border-radius:6px;
	text-align:center;
	font-size:1.3rem;
	font-weight:700;
	line-height:1.7rem;
	text-decoration:none;
}
#menu .contact .line a{ background:#43ee89; }

#menu .contact span{
	display:flex;
	justify-content:center;
	align-items:center;
	height:35px;
	background:#ea5404;
	border-radius:6px 6px 0 0;
	font-size:1.5rem;
	font-weight:900;
	color:#ffffff;
	line-height:1;
}
#menu .contact .line span{ background:#06c755; }

#menu .contact img{
	margin:0 6px 0 0;
}

@media screen and (max-width:767px){
#menu .contact{
	display:block;
	position:static;
	padding:0 20px;
}

#menu .contact a{
	display:block;
	width:100%;
	margin:15px 0 0 0;
}
}


/* ========================================================================
	main
======================================================================== */
main{
	overflow:hidden;
	margin:128px 0 0 0;
}

@media screen and (max-width:767px){
main{
	margin:80px 0 0 0;
}
}


/* ----------------------------------------
	h要素
---------------------------------------- */
main h1{
	padding:110px 0;
	background:url(../../img/common/h1.png) no-repeat center;
	background-size:cover;
	border-top:1px solid #b7b7b7;
	border-bottom:1px solid #b7b7b7;
	text-align:center;
	font-size:6.0rem;
	font-weight:700;
	color:#ffffff;
	line-height:1;
}

main h2,
main h3{
	margin:0 0 60px 0;
	text-align:center;
	font-size:5.0rem;
	font-weight:700;
	line-height:1;
}
main h3{ font-size:3.0rem; }

@media screen and (max-width:767px){
main h1{
	padding:50px 0;
	font-size:3.0rem;
}

main h2,
main h3{
	margin:0 0 30px 0;
	font-size:2.4rem;
	line-height:3.2rem;
}
main h3{
	font-size:2.0rem;
	line-height:2.8rem;
}
}


/* ----------------------------------------
	path
---------------------------------------- */
main .path{
	display:flex;
	flex-wrap:wrap;
	padding:20px 0 120px 0;
}

main .path li{
	display:flex;
	font-size:2.0rem;
	font-weight:500;
	line-height:4.0rem;
}

main .path li:first-child{
	padding:0 0 0 33px;
	background:url(../../img/common/icon_home.png) no-repeat left center;
	background-size:23px 21px;
}

main .path li::after{
	content:">";
	margin:0 0.5em;
}
main .path li:last-child::after{ content:none; }

main .path a{
	display:block;
	position:relative;
	text-decoration:none;
}
main .path a:hover{ text-decoration:underline; }

@media screen and (max-width:767px){
main .path{
	padding:20px 20px 60px;
}

main .path li{
	font-size:1.6rem;
	line-height:3.6rem;
}
}


/* ----------------------------------------
	table
---------------------------------------- */
main .table{
	overflow:hidden;
	margin:0 0 60px 0;
	border-radius:20px;
	border:1px solid #b7b7b7;
	line-height:2.8rem;
}
main .table tr{ border-top:1px solid #b7b7b7; }
main .table tr:first-child{ border:none; }

main .table th{
	width:240px;
	padding:28px 40px;
	background:#F5F5F5;
	border-right:1px solid #b7b7b7;
	vertical-align:top;
	font-weight:500;
	white-space:nowrap;
}

main .table td{
	padding:28px 40px;
	font-weight:500;
}

@media screen and (max-width:767px){
main .table{
	margin:0 0 30px 0;
	line-height:2.6rem;
}

main .table th{
	display:block;
	width:auto;
	padding:15px 20px;
	border-bottom:1px solid #b7b7b7;
	border-right:none;
	white-space:normal;
}

main .table td{
	display:block;
	padding:15px 20px;
}
}


/* ========================================================================
	footer
======================================================================== */
footer{
	padding:120px 0 0 0;
	background:#15a69e;
}

footer .inner{
	padding:60px 70px;
	background:#ffffff;
	border-radius:20px;
}

footer small{
	display:block;
	padding:44px 0 54px 0;
	text-align:center;
	font-size:1.6rem;
	color:#ffffff;
	line-height:1;
	letter-spacing:0.05em;
}

@media screen and (max-width:767px){
footer{
	padding:40px 0 0 0;
}

footer .inner{
	margin:0 20px;
	padding:40px 20px;
	text-align:center;
}

footer small{
	padding:20px 0;
	font-size:1.4rem;
}
}


/* ----------------------------------------
	company
---------------------------------------- */
footer .company .logo{
	margin:0 0 22px 0;
}

footer .company dl dt{
	margin:0 0 10px 0;
	font-size:1.8rem;
	font-weight:700;
	line-height:1;
}

footer .company dl dd ul li{
	margin:0 0 6px 0; 
	font-size:1.5rem;
	font-weight:500;
	line-height:2.4rem;
}

footer .company dl dd ul li.tel{
	margin:0;
	font-size:1.6rem;
	line-height:3.0rem;
}

footer .company dl dd ul li.num{
	margin:0;
	font-size:1.4rem;
	line-height:3.0rem;
}

@media screen and (max-width:767px){
footer .company{
	display:inline-block;
	text-align:left;
}

footer .company .logo img{
	width:auto;
	height:50px;
}

footer .company dl dt{
	font-size:1.6rem;
}

footer .company dl dd ul li,
footer .company dl dd ul li.tel,
footer .company dl dd ul li.num{
	font-size:1.4rem;
	line-height:2.4rem;
}
}


/* ----------------------------------------
	menu
---------------------------------------- */
footer .menu{
	display:flex;
	gap:0 120px;
	position:absolute;
	top:60px;
	right:120px;
}

footer .menu a{
	display:inline-block;
	vertical-align:bottom;
	font-size:1.6rem;
	font-weight:700;
	line-height:3.6rem;
	text-decoration:none;
}
footer .menu a:hover{ color:#0ba29a; }

footer .menu ul ul{
	padding:2px 0 0 8px;
}

footer .menu ul ul a{
	font-size:1.4rem;
	font-weight:500;
	line-height:3.0rem;
}

@media screen and (max-width:767px){
footer .menu{
	display:none;
}
}