/* common.css
========================================*/
/* module */
/* ==========================
	default style
============================= */
body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, form, fieldset, legend, input, textarea, p, blockquote, th, td {
	margin:0;
	padding:0;
}

h1, h2, h3, h4, h5, h6, em, address, small {
	font-size:100%;
	font-style:normal;
	font-weight:normal;
}

table {
	border-collapse:collapse;
	border-spacing:0;
}

th {
	font-weight:normal;
	text-align:left;
	vertical-align:top;
}

ul, ol, li {
	list-style-type:none;
}

img {
	border:0;
	vertical-align:bottom;
	max-width:100%;
}

a img {
	vertical-align:middle;
}

a {
	display:inline-block;
	text-decoration:none;
}

strong {
	font-size:100%;
	font-style:normal;
	font-weight:bold;
}

button, input[type=submit] {
	background:none;
	border:0;
	padding:0;
}

input[type=text], input[type=email], input[type=tel], textarea {
	border-radius:0;
	outline:none;
}

input[type=radio], input[type=checkbox] {
	-webkit-appearance:none;
	-moz-appearance:none;
	appearance:none;
	display:none;
}

select {
	-webkit-appearance:none;
	-moz-appearance:none;
	appearance:none;
	border-radius:0;
}

* {
	box-sizing:border-box;
}

/* font reset */
body {
	font-family:sans-serif;
	line-height:1;
}

input, button, textarea, select {
	color:inherit;
	font:inherit;
}

/* HTML5 */
article, aside, figure, figcaption, footer, header, nav, section, main, picture {
	display:block;
	margin:0;
	padding:0;
}

/* ==========================
	base style
============================= */
html {
	overflow:auto;
	scroll-behavior:smooth;
}
@media screen and (max-width: 767px) {
	html {
		font-size:3.7333333333vw;
		-webkit-text-size-adjust:100%;
	}
}
@media print, screen and (min-width: 768px) {
	html {
		font-size:16px;
	}
}

body {
	color:#333;
	font-family:"Noto Sans JP";
	font-weight:400;
}
@media print, screen and (min-width: 768px) {
	body {
		min-width:1200px;
	}
}
@media screen and (max-width: 767px) {
	body {
		width:100vw;
	}
}

a {
	color:#333;
}

#main {
	background-color:#f0f1f1;
	letter-spacing:.03rem;
	animation:fadein .8s ease;
}
@media screen and (max-width: 767px) {
	#main {
		line-height:1.7;
		padding:13.3333333333vw 0;
	}
}
@media print, screen and (min-width: 768px) {
	#main {
		line-height:1.6;
		padding:30px 0 80px;
	}
}

@keyframes fadein {
	0% {
		opacity:0;
	}
	100% {
		opacity:1;
	}
}
@media screen and (max-width: 767px) {
	.pconly {
		display:none;
	}
}
@media print, screen and (min-width: 768px) {
	.sponly {
		display:none;
	}
}
/* ==========================
	header style
============================= */
@media print, screen and (min-width: 768px) {
	#header .header-top {
		display:flex;
		flex-wrap:wrap;
		align-items:center;
		justify-content:space-between;
		padding:5px 2% 15px 1.5%;
	}
	#header .header-top .-logo img {
		height:70px;
	}
	#header .header-top .-menubtn {
		display:none;
	}
}
@media screen and (max-width: 767px) {
	#header .header-top {
		display:flex;
		flex-wrap:wrap;
		align-items:center;
		justify-content:space-between;
		padding:8vw 4vw 5.3333333333vw 2.6666666667vw;
		position:relative;
	}
	#header .header-top .-logo {
		width:66.6666666667vw;
	}
	#header .header-top .-menubtn {
		display:flex;
		flex-wrap:wrap;
		align-items:center;
		justify-content:center;
		background-color:#173bbf;
		position:fixed;
		top:5.3333333333vw;
		right:4vw;
		height:17.3333333333vw;
		width:17.3333333333vw;
		z-index:999;
	}
}
#header .header-top .-rightbox .-search input[type=text] {
	border:0;
	box-shadow:0 0 5px rgba(59, 59, 63, .15);
}
#header .header-top .-rightbox .-search input[type=text]::placeholder {
	color:rgba(23, 59, 191, .8);
}
#header .header-top .-rightbox .-search input[type=submit] {
	background-color:#173bbf;
	color:#fff;
}
@media print, screen and (min-width: 768px) {
	#header .header-top .-rightbox {
		display:flex;
		flex-wrap:wrap;
		align-items:center;
	}
	#header .header-top .-rightbox .-search input[type=text] {
		margin-top:30px;
		padding:12px 20px;
		height:48px;
		width:300px;
	}
	#header .header-top .-rightbox .-search input[type=submit] {
		cursor:pointer;
		height:48px;
		width:50px;
	}
}
@media screen and (max-width: 767px) {
	#header .header-top .-rightbox {
		background-color:#fff;
		border-top:1px solid #eee;
		padding:3.2vw 5.3333333333vw 1.8666666667vw;
		position:fixed;
		left:0;
		bottom:0;
		width:100%;
		z-index:1000;
	}
	#header .header-top .-rightbox .-search {
		text-align:center;
	}
	#header .header-top .-rightbox .-search input[type=text] {
		font-size:3.4666666667vw;
		padding:2.1333333333vw 5.3333333333vw;
		height:9.3333333333vw;
		width:69.3333333333vw;
	}
	#header .header-top .-rightbox .-search input[type=submit] {
		font-size:3.4666666667vw;
		height:9.3333333333vw;
		width:10.6666666667vw;
	}
}
#header .header-top .-rightbox .-info {
	line-height:1.4em;
	text-align:right;
}
#header .header-top .-rightbox .-info ._tel {
	font-weight:700;
	letter-spacing:.05em;
	line-height:1.5em;
}
@media print, screen and (min-width: 768px) {
	#header .header-top .-rightbox .-info {
		font-size:.875rem;
		margin-left:40px;
	}
	#header .header-top .-rightbox .-info ._tel {
		font-size:2rem;
	}
	#header .header-top .-rightbox .-info ._tel>a {
		pointer-events:none;
	}
}
@media screen and (max-width: 767px) {
	#header .header-top .-rightbox .-info {
		display:flex;
		flex-wrap:wrap;
		justify-content:space-between;
		font-size:3.2vw;
		margin-top:2.6666666667vw;
	}
	#header .header-top .-rightbox .-info ._tel {
		font-size:6.4vw;
		line-height:1.3em;
	}
	#header .header-top .-rightbox .-info ._time {
		line-height:1.3em;
	}
	#header .header-top .-rightbox .-info ._address {
		display:none;
	}
}
#header .menu .-list>li {
	font-weight:500;
	letter-spacing:.05em;
}
#header .menu .-list>li>a, #header .menu .-list>li>span {
	display:inline-block;
	line-height:1.8em;
}
#header .menu .-sublist>li {
	letter-spacing:.03em;
}
@media print, screen and (min-width: 768px) {
	#header .menu {
		border-top:2px solid #333;
	}
	#header .menu.is-fixed {
		background-color:#fff;
		position:fixed;
		top:0;
		left:0;
		width:100%;
		z-index:1000;
	}
	#header .menu .-sphead {
		display:none;
	}
	#header .menu .-list {
		margin-left:auto;
		margin-right:auto;
		width:100%;
		min-width:1200px;
		max-width:1400px;
		display:flex;
		flex-wrap:wrap;
		justify-content:center;
	}
	#header .menu .-list>li {
		font-size:1rem;
		position:relative;
		text-align:center;
		width:14.2857142857%;
	}
	#header .menu .-list>li>a, #header .menu .-list>li>span {
		padding:15px 0;
	}
	#header .menu .-list>li>span {
		cursor:default;
	}
	#header .menu .-list>li:hover>a, #header .menu .-list>li:hover>span {
		color:#173bbf;
	}
	#header .menu .-list>li:hover .-sublist {
		height:317px;
	}
	#header .menu .-sublist {
		background-color:#fff;
		box-shadow:0 3px 5px rgba(0, 0, 0, .15);
		overflow:hidden;
		position:absolute;
		right:calc(50% - 130px);
		height:0;
		width:260px;
		z-index:1000;
		transition:.3s ease;
	}
	#header .menu .-sublist>li {
		font-size:.9375rem;
		font-weight:400;
		text-align:left;
	}
	#header .menu .-sublist>li:last-of-type {
		margin-bottom:5px;
	}
	#header .menu .-sublist>li>a {
		display:flex;
		flex-wrap:wrap;
		align-items:center;
		line-height:1.5em;
		padding:0 18px 0 25px;
		height:52px;
	}
	#header .menu .-sublist>li>a:hover {
		background-color:rgba(23, 59, 191, .05);
	}
}
@media screen and (max-width: 767px) {
	#header .menu {
		background-color:#173bbf;
		color:#fff;
		overflow:hidden;
		position:fixed;
		top:5.3333333333vw;
		right:4vw;
		height:0;
		width:0;
		z-index:1000;
		transition:.5s ease;
	}
	#header .menu.is-show {
		overflow-y:scroll;
		height:95vh;
		width:92vw;
	}
	#header .menu .-inner {
		height:162.6666666667vw;
		width:92vw;
	}
	#header .menu .-sphead {
		display:flex;
		flex-wrap:wrap;
		align-items:center;
		justify-content:space-between;
		margin-bottom:6.6666666667vw;
		padding:5.3333333333vw 5.3333333333vw 8vw;
		position:relative;
	}
	#header .menu .-sphead:after {
		background-color:#fff;
		content:"";
		display:block;
		position:absolute;
		left:calc(50% - 26.6666666667vw);
		bottom:0;
		height:.2666666667vw;
		width:53.3333333333vw;
	}
	#header .menu .-sphead>p {
		font-size:5.8666666667vw;
		font-weight:700;
		letter-spacing:.05em;
		padding-left:2.6666666667vw;
	}
	#header .menu .-list {
		padding:0 10.6666666667vw 5.3333333333vw;
	}
	#header .menu .-list a {
		color:#fff;
		line-height:2em;
	}
	#header .menu .-list>li {
		font-size:4.8vw;
		margin-bottom:2.6666666667vw;
	}
	#header .menu .-sublist {
		padding:0 5.3333333333vw;
	}
	#header .menu .-sublist>li {
		font-size:4.2666666667vw;
		font-weight:400;
		margin-top:2.6666666667vw;
	}
	#header .menu .-sublist>li>a {
		line-height:2em;
	}
}

@media print, screen and (min-width: 768px) {
	#gtranslate_wrapper {
		right:25% !important;
	}
}
@media screen and (max-width: 767px) {
	#gtranslate_wrapper {
		right:45% !important;
	}
}

/* ==========================
	footer style
============================= */
@media print, screen and (min-width: 768px) {
	#footer {
		padding:30px 0 20px;
	}
}
@media screen and (max-width: 767px) {
	#footer {
		padding:8vw 5.3333333333vw 29.3333333333vw;
	}
}
@media print, screen and (min-width: 768px) {
	#footer .footer-top {
		display:flex;
		flex-wrap:wrap;
		justify-content:space-between;
		padding:0 2.5%;
	}
}
@media print, screen and (min-width: 768px) {
	#footer .footer-top .-logo {
		margin-bottom:10px;
		width:350px;
	}
	#footer .footer-top .-logo img {
		width:330px;
	}
}
@media screen and (max-width: 767px) {
	#footer .footer-top .-logo {
		margin-bottom:2.6666666667vw;
		text-align:center;
	}
	#footer .footer-top .-logo img {
		width:66.6666666667vw;
	}
}
#footer .footer-top .-info ._tel {
	font-weight:700;
	letter-spacing:.05em;
	line-height:1.5em;
}
#footer .footer-top .-info ._time {
	line-height:1.6em;
}
#footer .footer-top .-info ._mail {
	line-height:1.6em;
}
@media print, screen and (min-width: 768px) {
	#footer .footer-top .-info {
		font-size:.9375rem;
		text-align:right;
		width:400px;
	}
	#footer .footer-top .-info ._tel {
		font-size:1.875rem;
	}
	#footer .footer-top .-info ._tel>a {
		pointer-events:none;
	}
	#footer .footer-top .-info ._mail a:hover {
		color:#173bbf;
	}
}
@media screen and (max-width: 767px) {
	#footer .footer-top .-info {
		text-align:center;
	}
	#footer .footer-top .-info ._address {
		margin-bottom:1.3333333333vw;
		text-align:center;
	}
	#footer .footer-top .-info ._tel {
		display:none;
	}
	#footer .footer-top .-info ._time {
		display:none;
	}
}
#footer .-nav>ul>li {
	font-weight:500;
}
#footer .-nav>ul>li>span {
	display:block;
}
#footer .-nav>ul .-sublist>li {
	font-weight:400;
	line-height:1.5em;
}
@media print, screen and (min-width: 768px) {
	#footer .-nav {
		margin-left:auto;
		margin-right:auto;
		width:100%;
		min-width:1200px;
		max-width:1400px;
		margin-top:30px;
	}
	#footer .-nav>ul {
		display:flex;
		flex-wrap:wrap;
		justify-content:center;
	}
	#footer .-nav>ul>li {
		width:18%;
	}
	#footer .-nav>ul>li._form {
		width:22%;
	}
	#footer .-nav>ul>li:last-of-type {
		margin-right:0;
	}
	#footer .-nav>ul>li a:hover {
		color:#173bbf;
	}
	#footer .-nav>ul>li>p {
		margin-bottom:20px;
	}
	#footer .-nav>ul .-sublist {
		margin-top:5px;
		padding-left:10px;
	}
	#footer .-nav>ul .-sublist>li {
		font-size:.9375rem;
	}
}
@media screen and (max-width: 767px) {
	#footer .-nav {
		margin-top:8vw;
		padding:0 2.6666666667vw;
	}
	#footer .-nav>ul>li {
		font-size:4vw;
		line-height:2em;
		margin-bottom:4vw;
	}
	#footer .-nav>ul>li:last-of-type {
		margin-bottom:0;
	}
	#footer .-nav>ul>li>p {
		margin-bottom:4vw;
	}
	#footer .-nav>ul .-sublist {
		margin-top:1.3333333333vw;
		padding-left:2.6666666667vw;
	}
	#footer .-nav>ul .-sublist>li {
		font-size:3.7333333333vw;
		line-height:2em;
	}
}
#footer .copyright {
	display:block;
	line-height:1.4em;
	text-align:center;
}
@media print, screen and (min-width: 768px) {
	#footer .copyright {
		font-size:.9375rem;
		margin-top:20px;
	}
}
@media screen and (max-width: 767px) {
	#footer .copyright {
		font-size:3.4666666667vw;
		margin-top:8vw;
	}
}

/* ==========================
	project style
============================= */
.p-clearfix:after {
	clear:both;
	content:"";
	display:block;
	overflow:hidden;
}

.p-clearfix {
	zoom:1;
}

@media print, screen and (min-width: 768px) {
	.p-topicpath {
		margin-left:auto;
		margin-right:auto;
		width:1200px;
		margin-bottom:50px;
	}
	.p-topicpath>ul {
		display:flex;
		flex-wrap:wrap;
	}
	.p-topicpath>ul>li>a {
		color:#173bbf;
	}
	.p-topicpath>ul>li>a:hover {
		opacity:.7;
	}
	.p-topicpath>ul>li:after {
		content:">";
		display:inline-block;
		margin:0 10px;
	}
	.p-topicpath>ul>li:last-of-type {
		font-weight:500;
	}
	.p-topicpath>ul>li:last-of-type:after {
		display:none;
	}
}
@media screen and (max-width: 767px) {
	.p-topicpath {
		display:none;
	}
}

.p-pagettl {
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	font-weight:700;
	letter-spacing:.1em;
}
.p-pagettl:before {
	background-color:#173bbf;
	content:"";
	display:block;
}
@media print, screen and (min-width: 768px) {
	.p-pagettl {
		margin-left:auto;
		margin-right:auto;
		width:100%;
		min-width:1200px;
		max-width:1400px;
		font-size:2.25rem;
		margin-bottom:80px;
	}
	.p-pagettl:before {
		margin-right:40px;
		height:2px;
		width:160px;
	}
}
@media screen and (max-width: 767px) {
	.p-pagettl {
		font-size:6.4vw;
		letter-spacing:.05em;
		margin-bottom:10.6666666667vw;
		padding:0 2.6666666667vw;
	}
	.p-pagettl>span {
		flex:1;
		line-height:1.3em;
	}
	.p-pagettl:before {
		margin-right:3.2vw;
		height:.5333333333vw;
		width:10.6666666667vw;
	}
}

@media print, screen and (min-width: 768px) {
	.p-section {
		margin-bottom:120px;
	}
}
@media screen and (max-width: 767px) {
	.p-section {
		margin-bottom:21.3333333333vw;
	}
}
@media print, screen and (min-width: 768px) {
	.p-section .-inner {
		margin-left:auto;
		margin-right:auto;
		width:1200px;
	}
}
@media screen and (max-width: 767px) {
	.p-section .-inner {
		padding:0 5.3333333333vw;
	}
}

.p-title {
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	font-weight:700;
	letter-spacing:.1em;
}
.p-title:before {
	background-color:#333;
	content:"";
	display:block;
}
@media print, screen and (min-width: 768px) {
	.p-title {
		font-size:1.5rem;
		margin-bottom:50px;
	}
	.p-title:before {
		margin-right:20px;
		height:2px;
		width:60px;
	}
}
@media screen and (max-width: 767px) {
	.p-title {
		font-size:5.3333333333vw;
		margin-bottom:8vw;
	}
	.p-title:before {
		margin-right:4vw;
		height:.5333333333vw;
		width:8vw;
	}
}

.p-lead {
	line-height:1.6em;
	margin-bottom:1em;
}
.p-lead._center {
	text-align:center;
}
@media print, screen and (min-width: 768px) {
	.p-lead {
		font-size:1.125rem;
	}
}
@media screen and (max-width: 767px) {
	.p-lead {
		font-size:4.2666666667vw;
	}
}
