@charset "utf-8";

/* # =================================================================
#### font-family
# ================================================================= */
html {
	color: #121212;
	font-family: 'Lato', 'Noto Sans JP', 'ヒラギノ角ゴ ProN', 'Hiragino Kaku Gothic ProN', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
}

/* # =================================================================
#### font-size
# ================================================================= */
html {
	font-size: 62.5%;
	/* fontのベースサイズを10pxに指定 */
}

body {
	font-size: 1.6rem;
	/* 16px */
}

h1 {
	font-size: 36px;
	/* IE8以下とAndroid4.3以下用フォールバック */
	font-size: calc(2.4rem + ((1vw - 0.64rem) * 2.1429));
	/* 24px~36pxで可変 */
}

h2 {
	font-size: 24px;
	/* IE8以下とAndroid4.3以下用フォールバック */
	font-size: calc(2rem + ((1vw - 0.64rem) * 0.7143));
	/* 20px~24pxで可変 */
}

h3 {
	font-size: 20px;
	/* IE8以下とAndroid4.3以下用フォールバック */
	font-size: calc(1.8rem + ((1vw - 0.64rem) * 0.3571));
	/* 18px~20pxで可変 */
}

h4 {
	font-size: 18px;
	/* IE8以下とAndroid4.3以下用フォールバック */
	font-size: calc(1.6rem + ((1vw - 0.64rem) * 0.3571));
	/* 16px~18pxで可変 */
}

h5,
p,
a,
li,
dt,
dd,
th,
td {
	font-size: 16px;
	/* IE8以下とAndroid4.3以下用フォールバック */
	font-size: calc(1.4rem + ((1vw - 0.64rem) * 0.3571));
	/* 14px~16pxで可変 */
}

@media (min-width: 1200px) {

	/* 1200px以上*/
	h1 {
		font-size: 3.6rem;
		/* 36px */
	}

	h2 {
		font-size: 2.4rem;
		/* 24px */
	}

	h3 {
		font-size: 2.0rem
			/* 20px */
	}

	h4 {
		font-size: 1.8rem
			/* 18px */
	}

	h5,
	p,
	a,
	li,
	dt,
	dd,
	th,
	td {
		font-size: 1.6rem;
		/* 16px */
	}
}

@media screen and (max-width: 640px) {

	/* 640px以下*/
	h1 {
		font-size: 2.4rem;
		/* 24px */
	}

	h2 {
		font-size: 2rem;
		/* 20px */
	}

	h3 {
		font-size: 1.8rem
			/* 18px */
	}

	h4 {
		font-size: 1.6rem
			/* 16px */
	}

	h5,
	p,
	a,
	li,
	dt,
	dd,
	th,
	td {
		font-size: 1.4rem;
		/* 14px */
	}
}

/* # =================================================================
#### table
# ================================================================= */
table {
	border-collapse: collapse;
	width: 100%;
}

table,
th,
td {
	border: 1px solid #000;
	padding: 10px;
	text-align: center;
}

/* # =================================================================
#### common
# ================================================================= */
img {
	display: block;
}

img.obj {
	object-fit: cover;
	font-family: 'object-fit:cover;';
}

a {
	text-decoration: none;
	transition: 0.5s;
}

a:hover {
	transition: 0.5s;
}

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

.slick-slide:focus {
	outline: none;
}

/*** common ***/
main.top {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	background: #EFEFEF;
}

section.contents {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	padding: 0 0 50px;
}

.wrap {
	position: relative;
	display: block;
	width: 1180px;
	height: auto;
	margin: 0 auto;
}

/** more **/
.more {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	text-align: right;
}

.more a {
	position: relative;
	display: inline-block;
	width: auto;
	height: auto;
	line-height: 1;
	color: #121212;
	padding-right: 15px;
}

.more a:hover {
	color: #003784;
}

.more a:after {
	content: '';
	width: 8px;
	height: 8px;
	border-top: solid 2px #121212;
	border-right: solid 2px #121212;
	position: absolute;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	top: 0;
	bottom: 0;
	right: 0;
	margin: auto;
	transform: rotate(45deg);
	transition: 0.5s;
}

.more a:hover:after {
	content: '';
	width: 8px;
	height: 8px;
	border-top: solid 2px #003784;
	border-right: solid 2px #003784;
	position: absolute;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	top: 0;
	bottom: 0;
	right: 0;
	margin: auto;
	transform: rotate(45deg);
	transition: 0.5s;
}

/**  **/
h2.headline {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	text-align: center;
	margin-bottom: 50px;
}

h2.headline span {
	position: relative;
	display: inline-block;
	width: auto;
	height: auto;
	color: #003784;
	font-size: 22px;
	font-weight: normal;
	line-height: 1;
}

h2.headline span:before {
	content: "";
	position: absolute;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	top: 0;
	bottom: 0;
	left: -15px;
	margin: auto;
	width: 1px;
	height: 1em;
	background: #003784;
}

h2.headline span:after {
	content: "";
	position: absolute;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	top: 0;
	bottom: 0;
	right: -15px;
	margin: auto;
	width: 1px;
	height: 1em;
	background: #003784;
}

h3.title_link {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	margin-bottom: 30px;
}

h3.title_link span.sup {
	display: block;
	color: #003784;
	font-size: 14px;
	font-weight: normal;
}

h3.title_link span.sup:after {
	content: none;
}

h3.title_link span {
	position: relative;
	display: inline-block;
	width: auto;
	height: auto;
	line-height: 1;
	font-size: 18px;
	font-weight: bold;
	padding-right: 10px;
	margin-right: 10px;
}

h3.title_link span:after {
	content: '';
	width: 8px;
	height: 8px;
	border-top: solid 2px #121212;
	border-right: solid 2px #121212;
	position: absolute;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	top: 0;
	bottom: 0;
	right: 0;
	margin: auto;
	transform: rotate(45deg);
	transition: 0.5s;
}

h3.title_link a {
	position: relative;
	display: inline-block;
	width: auto;
	height: auto;
	line-height: 1;
	color: #0E8AF4;
	font-size: 14px;
	top: -1px;
}

h3.title_link a:hover {
	opacity: 0.5;
}

/* # =================================================================
#### swiper
# ================================================================= */
/*** common ***/
.swiper-container {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	overflow: hidden;
}

.swiper-wrapper {
	position: relative;

	width: 100%;
	height: auto;
}

.swiper-slide {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
}

.swiper-slide .images_wrap {
	position: relative;
	display: block;
	width: 100%;
	height: 0;
	padding-top: 75%;
}

.swiper-slide .images_wrap img.obj {
	position: absolute;
	display: block;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	object-fit: cover;
	font-family: 'object-fit:cover;';
}

.swiper-button-next,
.swiper-button-prev {
	top: 46%;
}

.swiper-button-prev {
	left: 20px;
}

.swiper-button-next {
	right: 20px;
}

.swiper-button-prev:after,
.swiper-button-next:after {
	content: "";
	background-repeat: no-repeat;
	background-size: contain;
	height: 40px;
	width: 40px;
	margin: auto;
}

.swiper-button-prev:after {
	/* position: relative;
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	content: "\f137";
	color: #fff; */
	background-image: url(../images/chevron-circle-left-solid.svg);
}

.swiper-button-next:after {
	/* position: relative;
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	content: "\f138";
	color: #fff; */
	background-image: url(../images/chevron-circle-right-solid.svg);
}

.swiper-pagination-bullet {
	width: var(--swiper-pagination-bullet-width, var(--swiper-pagination-bullet-size, 13px));
	height: var(--swiper-pagination-bullet-height, var(--swiper-pagination-bullet-size, 13px));
	border: 2px solid #003784;
	background: #FFF;
}

.swiper-pagination-bullet-active {
	background: #003784;
}

/* # =================================================================
#### header
# ================================================================= */
header {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
}

header:after {
	content: "";
	display: block;
	height: 91.45px;
}

header .inner {
	position: fixed;
	display: block;
	width: 100%;
	height: auto;
	background: #003784;
	z-index: 1000;
	transition: 0.5s;
	padding: 15px;
	top: 0;
}

header .inner.scroll.hide {
	transform: translateY(-100%);
}

/*** logo ***/
header h1 {
	position: relative;
	display: block;
	width: 300px;
	height: auto;
	margin-bottom: 10px;
}

header h1 a {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
}

header h1 a img {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
}

/*** nav ***/
header nav {
	position: relative;
	display: block;
	width: 1180px;
	height: auto;
	margin: 0 auto;
}

/* # =================================================================
#### footer
# ================================================================= */
.footer_fixed {}

.footer_fixed:after {}

.footer_fixed .inner {
	position: fixed;
	display: block;
	width: 100%;
	height: auto;
	background: #606672;
	z-index: 990;
	transition: 0.5s;
	padding: 15px 0;
	bottom: 0;
}

.footer_fixed .inner.scroll.hide {
	transform: translateY(100%);
}

/** pc_wrap **/
.footer_fixed .pc_wrap {}

.footer_fixed .pc_wrap .top {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	border-bottom: 1px solid #FFF;
	padding-bottom: 15px;
}

.footer_fixed .pc_wrap .bottom {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	padding-top: 15px;
}

.footer_fixed .pc_wrap .flex {
	position: relative;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
	width: 800px;
	margin: 0 auto;
}

.footer_fixed .pc_wrap .flex a {
	position: relative;
	display: block;
	width: 170px;
	height: auto;
}

.footer_fixed .pc_wrap .flex a img {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
}

.footer_fixed .pc_wrap .flex a:hover {
	opacity: 0.5;
}

.footer_fixed .pc_wrap .tel_wrap {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
}

.footer_fixed .pc_wrap .tel_wrap a {
	position: relative;
	display: block;
	width: 350px;
	height: auto;
	margin: 0 auto;
}

.footer_fixed .pc_wrap .tel_wrap a img {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
}

.footer_fixed .pc_wrap .tel_wrap a:hover {
	opacity: 0.5;
}

/** sp_wrap **/
.footer_fixed .sp_wrap {
	position: relative;
	display: none;
	width: 100%;
	height: auto;
}

.footer_fixed .sp_wrap .flex {
	position: relative;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
	width: 100%;
	margin: 0 auto;
}

.sp_wrap .top {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
}

.footer_fixed .sp_wrap .flex a {
	position: relative;
	display: block;
	width: 33.33333%;
	height: auto;
	padding: 5px 10px;
	border-left: 1.5px solid #FFF;
}

.footer_fixed .sp_wrap .flex a:first-child {
	border-left: none;
}

.footer_fixed .sp_wrap .flex a:hover {
	opacity: 0.5;
}

.footer_fixed .sp_wrap .flex a img {
	position: relative;
	display: block;
	width: 90px;
	height: auto;
	margin: 0 auto;
}

.sp_wrap .bottom {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	padding: 10px;
}

.sp_wrap .bottom .tel_wrap {
	position: relative;
	display: block;
	width: 200px;
	height: auto;
	margin: 0 auto;
}

.sp_wrap .bottom .tel_wrap a {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
}

.sp_wrap .bottom .tel_wrap a img {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
}





/*** footer_list ***/
.footer_list {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	background: #8CA0C1;
	padding: 35px 0 35px;
}

.footer_list ul {
	position: relative;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
	width: 100%;
	height: auto;
}

.footer_list ul:before {
	content: "";
	display: block;
	width: 250px;
	order: 1;
}

.footer_list ul:after {
	content: "";
	display: block;
	width: 250px;
}

.footer_list ul li {
	position: relative;
	display: block;
	width: 250px;
	height: 84px;
	margin-bottom: 20px;
}

.footer_list ul li a {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
	border: 1px solid #003784;
	border-radius: 5px;
	background: #FFF;
	color: #003784;
	font-size: 18px;
	padding: 15px 30px;
}

.footer_list ul li a:hover {
	opacity: 0.5;
}

.footer_list ul li a:after {
	content: '';
	width: 8px;
	height: 8px;
	border-top: solid 2px #003784;
	border-right: solid 2px #003784;
	position: absolute;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	top: 0;
	bottom: 0;
	right: 15px;
	margin: auto;
	transform: rotate(45deg);
	transition: 0.5s;
}

/** page top **/
.page_top {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	background: #000;
	text-align: center;
}

.page_top p {}

.page_top p a {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	color: #FFF;
	font-size: 16px;
	padding: 30px 0;
}

.page_top p a span {
	position: relative;
	display: inline-block;
	width: auto;
	height: auto;
	transition: 0.5s;
}

.page_top p a:hover span {
	opacity: 0.5;
	transition: 0.5s;
}

.page_top p a:before {
	content: "";
	position: absolute;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	top: -20px;
	left: 0;
	right: 0;
	margin: auto;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 0 25px 25px 25px;
	border-color: transparent transparent #000000 transparent;
}

/*** footer ***/
.footer {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	background: #EFEFEF;
	padding: 50px 0 25px;
}

.footer .flex {
	position: relative;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
}

/** left **/
.footer .flex .left {
	position: relative;
	display: block;
	width: 420px;
	height: auto;
}

/* top */
.footer .flex .left .top {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	background: #FFF;
	text-align: center;
	padding: 15px;
}

.footer .flex .left .top img {
	position: relative;
	display: block;
	width: 150px;
	height: auto;
	margin: 0 auto 5px;
}

.footer .flex .left .top p {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
}

/* bottom */
.footer .flex .left .bottom {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	background: #003784;
	text-align: center;
	padding: 15px;
}

.footer .flex .left .bottom p {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	color: #FFF;
	font-size: 14px;
}

/** right **/
.footer .flex .right {
	position: relative;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
	width: calc(100% - 420px);
	padding-left: 50px;
}

.footer .flex .right .box {
	position: relative;
	display: block;
	width: 33%;
	border-left: 1px solid #A0A0A0;
	padding-left: 20px;
}

.footer .flex .right .box ul {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
}

.footer .flex .right .box ul li {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	margin-bottom: 15px;
}

.footer .flex .right .box ul li a {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	color: #121212;
	font-size: 14px;
	padding-left: 1.2em;
}

.footer .flex .right .box ul li a:hover {
	opacity: 0.5;
}

.footer .flex .right .box ul li a:before {
	content: '';
	width: 8px;
	height: 8px;
	border-top: solid 2px #121212;
	border-right: solid 2px #121212;
	position: absolute;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	top: 0;
	bottom: 0;
	left: 0;
	margin: auto;
	transform: rotate(45deg);
	transition: 0.5s;
}

.footer .flex .right .box:nth-child(1) ul li a:before {
	border-top: solid 2px #003784;
	border-right: solid 2px #003784;
}

.footer .flex .right .box:nth-child(2) ul li a:before {
	border-top: solid 2px #0E8AF4;
	border-right: solid 2px #0E8AF4;
}

.footer .flex .right .box:nth-child(3) ul li a:before {
	border-top: solid 2px #121212;
	border-right: solid 2px #121212;
}

/*** copy ***/
.footer small {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	font-size: 14px;
	text-align: center;
	margin-top: 50px;
}

/* # =================================================================
#### main_slider
# ================================================================= */
.main_slider {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	padding: 30px 0 50px;
}

.main_slider .swiper-container {
	padding-bottom: 50px;
}

.main_slider .swiper-pagination {
	bottom: 15px;
}

/* # =================================================================
#### topics
# ================================================================= */
.topics {
	position: relative;
	display: block;
	width: 100px;
	height: auto;
}

.topics_wrap {
	position: relative;
	display: block;
	width: 960px;
	height: auto;
	margin: 0 auto;
}

.topics dl {
	position: relative;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
	width: 100%;
	height: auto;
	margin-bottom: 30px;
}

.topics dl dt {
	position: relative;
	display: block;
	width: 100px;
	height: auto;
	color: #003784;
	border-bottom: 1px dotted #7b7b7b;
	padding-bottom: 15px;
	margin-bottom: 15px;
	padding-top: 19px;
}

.topics dl dd {
	position: relative;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
	width: calc(100% - 100px);
	height: auto;
	border-bottom: 1px dotted #7b7b7b;
	padding-bottom: 15px;
	margin-bottom: 15px;
	line-height: 3.5;
}

.topics dl dt:nth-last-child(2),
.topics dl dd:last-child {
	margin-bottom: 0;
}

.topics dl dd p {
	position: relative;
	display: block;
	width: calc(100% - 100px);
	padding-right: 50px;
}

.topics dl dd a {
	position: relative;
	display: inline-block;
	width: auto;
	max-width: 100%;
	height: auto;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	color: #121212;
	line-height: 3.5;
}

.topics dl dd a:hover {
	color: #003784;
}

.topics dl dd .thumb {
	position: relative;
	display: block;
	width: 100px;
	height: auto;
}

.topics dl dd .thumb .img_wrap {
	position: relative;
	display: block;
	width: 100%;
	height: 0;
	padding-top: 75%;
}

.topics dl dd .thumb .img_wrap img {
	position: absolute;
	display: block;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
}






/* # =================================================================
#### tab-area
# ================================================================= */
.tab-area {
	position: relative;
	display: block;
	width: 90%;
	height: auto;
	margin: 0 auto;
	padding-bottom: 50px;
}

.tab-btn {
	display: none;
	/*タブの切り替えを制御するラジオボタンを非表示に*/
}

.tab-list-wrap {
	position: relative;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
	width: 600px;
	height: auto;
	margin: 0 auto 0;
}

.tab-list-wrap li {
	position: relative;
	display: block;
	width: 25%;
	height: auto;
}

.tab-list {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	text-align: center;
	border-top: 1px solid #121212;
	border-right: 1px solid #121212;
	border-bottom: 1px solid #121212;
	background: #FFF;
	color: #B7B7B7;
	font-size: 18px;
	padding: 10px 0;
	cursor: pointer;
	/*オンマウス時にカーソルを指の形に*/
}

#tab-list1 {
	border-left: 1px solid #121212;
}

#tab-btn1:checked~.tab-list-wrap #tab-list1,
#tab-btn2:checked~.tab-list-wrap #tab-list2,
#tab-btn3:checked~.tab-list-wrap #tab-list3,
#tab-btn4:checked~.tab-list-wrap #tab-list4 {
	background: #121212;
	color: #FFF;
}

#tab-btn1:checked~.tab-list-wrap #tab-list1:after,
#tab-btn2:checked~.tab-list-wrap #tab-list2:after,
#tab-btn3:checked~.tab-list-wrap #tab-list3:after,
#tab-btn4:checked~.tab-list-wrap #tab-list4:after {
	content: "";
	position: absolute;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	top: 0;
	bottom: -56px;
	left: 0;
	right: 0;
	margin: auto;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 8px 7.5px 0 7.5px;
	border-color: #121212 transparent transparent transparent;
	z-index: 1;
	transition: 0.8s;
}

.tab-content-wrap {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	background: #FFF;
	padding: 25px 20px 20px;
}

.tab-content {
	position: relative;
	width: 1180px;
	height: auto;
	margin: 0 auto;
	/* display : none; 初期状態を非表示に */
}

#tab-btn1:checked~.tab-content-wrap #tab-content1,
#tab-btn2:checked~.tab-content-wrap #tab-content2,
#tab-btn3:checked~.tab-content-wrap #tab-content3,
#tab-btn4:checked~.tab-content-wrap #tab-content4 {
	display: block;
	/*対応するボタンにチェックが入ったときに表示*/
}

/**** ggmap ****/
.map {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	margin-bottom: 50px;
}

.ggmap {
	position: relative;
	width: 100%;
	height: 0;
	padding-top: 56.25%;
	;
}

.ggmap iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

/* # =================================================================
#### 新着・既存・街 テンプレート
# ================================================================= */
/** swiper **/
.temp .swiper-container {
	padding-bottom: 10px;
}

.temp .swiper-slide .slide_wrap {
	background: #F5F5F5;
	padding: 10px;
	box-shadow: 2px 2px 2px #00000029;
}

.temp .swiper-button-next,
.temp .swiper-button-prev {
	top: 40%;
}

.temp.machi .swiper-button-next,
.temp.machi .swiper-button-prev {
	top: 34%;
}

.temp.machi .swiper-button-next {
	right: 10px;
}

.temp.machi .swiper-button-prev {
	left: 10px;
}

.temp .swiper-button-prev:after,
.temp .swiper-button-next:after {

	/* font-size: 23px; */
	height: 23px;
	width: 23px;
}

/** 本体 **/
.temp {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	margin-bottom: 90px;
}

.temp .images_wrap {
	position: relative;
	display: block;
	width: 100%;
	height: 0;
	padding-top: 75%;
}

.temp .images_wrap img.obj {
	position: absolute;
	display: block;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	object-fit: cover;
	font-family: 'object-fit:cover;';
}

.temp .catebox {
	position: relative;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-pack: start;
	-ms-flex-pack: start;
	justify-content: flex-start;
	width: 100%;
	height: auto;
	margin-bottom: 5px;
}

.temp .catebox span {
	position: relative;
	display: block;
	width: auto;
	height: auto;
	color: #FFF;
	font-size: 13px;
	line-height: 1;
	padding: 5px 10px;
}

.temp .catebox span:first-child {
	margin-right: 10px;
}

.temp .catebox .category {
	background: #48A4D5;
}

.temp .catebox .status {
	background: #D54869;
}

/** 20230729 **/
.temp .catebox span:last-child {
	margin-left: 10px;
}

.temp .catebox .guarantee {
	background: #004841;
}

.temp .catebox .building-condition {
	background: #004841;
}




.temp .addr {
	position: relative;
	display: block;
	width: 100%;
	height: 48px;
	margin-bottom: 5px;
}

.temp .infobox {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	margin-top: 10px;
	margin-bottom: 15px;
}

.temp .infobox .name {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	color: #003784;
	font-size: 18px;
	font-weight: bold;
	margin-bottom: 10px;
}





/* # =================================================================
#### 20230729
# ================================================================= */
/** construction-date **/
.temp .infobox .construction-date {
	position: relative;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-pack: start;
	-ms-flex-pack: start;
	justify-content: flex-start;
	width: 100%;
	height: auto;
	margin-bottom: 10px;
}

.temp .infobox .construction-date span {
	position: relative;
	display: block;
	width: auto;
	height: auto;
	background: #003784;
	padding: 3px 10px;
	color: white;
}

.temp .infobox .construction-date>span.plan {
	color: #000;
	font-size: 20px;
	font-weight: bold;
	background: none;
}

/** yen-area **/
.temp .infobox .yen-area {
	position: relative;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
	width: 100%;
	height: auto;
}

.temp .infobox .yen-area .price {
	position: relative;
	display: block;
	width: 50%;
	height: auto;
	color: #D60000;
	font-size: 32px;
	font-weight: 800;
	line-height: 1;
	padding: 9px 0 0;
	text-align: center;
}

.temp .infobox .yen-area .price span {
	font-size: 14px;
	font-weight: normal;
	margin-left: 5px;
}

.temp .infobox .yen-area .loan {
	position: relative;
	display: flex;
	align-items: center;
	width: 50%;
	height: auto;
	line-height: 1;
}

.temp .infobox .yen-area .loan a {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
}

.temp .infobox .yen-area .loan a:hover {
	opacity: 0.5;
}

.temp .infobox .yen-area .loan a img {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
}

/* # =================================================================
#### 20230823 ローンシミュレーション
# ================================================================= */
button,
input,
select,
textarea {
	background-color: #FFF;
	border: 1px solid #003784;
	border-radius: 5px;
	padding: 3px 10px;
	line-height: 1;
	text-align: right;
	color: #000;
	font-size: 20px;
	font-weight: 600;
	margin-right: 0.2em;
}

/*****  *****/
.modal-content.simulation {
	border: none;
	padding: 0;
	height: 630px;
	overflow: hidden;
}

.simulation h2.simulation-title {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	background-color: #003784;
	text-align: center;
	color: #FFF;
	font-size: 20px;
	font-weight: normal;
	line-height: 1;
	padding: 20px 10px;
}

.simulation__wrap {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
	background-color: #FAF6ED;
	padding: 30px 35px 125px;
	overflow: scroll;
}

.simulation__wrap p {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	text-align: justify;
	font-size: 16px;
	margin-bottom: 30px;
}

/***** simulation__form *****/
.simulation__form {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	margin-bottom: 50px;
}

.simulation__input-forms {
	position: relative;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
	width: 100%;
	height: auto;
}

.simulation__input-forms li {
	position: relative;
	display: block;
	width: 49%;
	height: auto;
	color: #003784;
	font-size: 16px;
	font-weight: 600;
	margin-bottom: 15px;
}

.simulation__input-forms li.wide {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
}

.simulation__input-forms li label {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	color: #003784;
	font-size: 16px;
	font-weight: 600;
}

.simulation__input-forms li span {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	color: #2E2E2E;
	font-size: 10px;
	font-weight: normal;
}

.simulation__input-forms li .flex {
	position: relative;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-pack: start;
	-ms-flex-pack: start;
	justify-content: flex-start;
	align-items: flex-end;
}

.simulation__input-forms li .flex input {
	position: relative;
	display: block;
	width: calc(100% - 2.5em);
	height: auto;
}

.simulation__input-forms li.wide .flex input {
	background-color: #FDE3A2;
}

.simulation__input-forms li .flex select {
	position: relative;
	display: block;
	width: calc(100% - 2.5em);
	height: auto;
}

.simulation__input-forms li .flex select option {}

.simulation__form input[type="submit"] {
	position: relative;
	display: block;
	width: 180px;
	height: auto;
	line-height: 1;
	border: 1px solid #267EF8;
	border-radius: 25px;
	background-color: #267EF8;
	text-align: center;
	color: #FFF;
	font-size: 16px;
	font-weight: normal;
	padding: 5px 0;
	margin: 0 auto;
}

/***** simulation__result *****/
.simulation__result {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
}

/***** simulation__output-result *****/
.simulation__output-result {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	background-color: #FFF;
	border-radius: 10px;
	margin-bottom: 30px;
}

.simulation__output-result h2 {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	background-color: #FFC500;
	text-align: center;
	color: #FFF;
	font-size: 20px;
	font-weight: normal;
	line-height: 1;
	border-radius: 10px 10px 0 0;
	padding: 10px
}

.simulation__output-result-wrap {
	position: relative;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
	width: 100%;
	height: auto;
	padding: 15px 15px;
}

.simulation__output-result-wrap span {
	position: relative;
	display: flex;
	align-items: center;
	width: auto;
	height: auto;
	font-size: 16px;
}

.simulation__output-result-wrap span img {
	position: relative;
	display: block;
	width: 25px;
	height: auto;
	margin-right: 5px;
}

.simulation__output-result-wrap div {
	position: relative;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-pack: start;
	-ms-flex-pack: start;
	justify-content: flex-start;
	align-items: center;
	width: calc(100% - 210px);
	height: auto;
}

.simulation__output-result-wrap input {
	position: relative;
	display: block;
	width: calc(100% - 2.0em);
	height: auto;
	border: none;
	padding: 0;
	color: #FF9E2E;
	font-size: 30px;
	font-weight: bold;
	line-height: 1;
}

/***** simulation__text-result *****/
.simulation__text-result {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	background: #FFF;
	border: 1px solid #FFC500;
	border-radius: 10px;
	text-align: justify;
	padding: 15px;
	margin-bottom: 10px;
}

/***** simulation__info-result ******/
.simulation__wrap .simulation__info-result {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	font-weight: bold;
}

/*** contact ***/
.simulation__result a.contact {
	position: relative;
	display: block;
	width: 180px;
	height: auto;
	line-height: 1;
	border: 1px solid #FFC502;
	border-radius: 25px;
	background-color: #FFC502;
	text-align: center;
	color: #FFF;
	font-size: 16px;
	font-weight: normal;
	padding: 5px 0;
	margin: 0 auto;
}

/***** close-btn *****/
.close-btn {
	position: absolute;
	display: block;
	width: 100%;
	height: auto;
	color: #FFF;
	background-color: #121212;
	bottom: 0;
}

.close-btn a {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	text-align: center;
	text-decoration: none;
	color: #FFF;
	padding: 15px 10px;
	line-height: 1;
}





/** 修正ここまで **/










.temp .infobox .note {
	position: relative;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
	width: 100%;
	line-height: 1.2;
	font-size: 14px;
}

.link_btn {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	text-align: center;
	line-height: 1;
	border: 1px solid #121212;
	border-radius: 5px;
	background: #FFF;
	color: #121212;
	font-size: 15px;
	padding: 5px 0;
}

.link_btn:hover {
	background: #121212;
	color: #FFF;
}

/** 全ての物件を確認する **/
.sp_all {
	position: relative;
	display: block;
	width: 250px;
	height: auto;
	text-align: center;
	margin: 30px auto 0;
}

.sp_all a {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	border: 1px solid #121212;
	background: #121212;
	color: #FFF;
	font-size: 14px;
	line-height: 1;
	padding: 10px 0;
}

.sp_all a:hover {
	background: #FFF;
	color: #121212;
}

.sp_all a:before {
	content: "";
	position: absolute;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	top: 0;
	bottom: 0;
	right: 15px;
	margin: auto;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 5px 0 5px 10px;
	border-color: transparent transparent transparent #FFF;
	transition: 0.5s;
}

.sp_all a:hover:before {
	content: "";
	position: absolute;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	top: 0;
	bottom: 0;
	right: 15px;
	margin: auto;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 5px 0 5px 10px;
	border-color: transparent transparent transparent #121212;
	transition: 0.5s;
}




/* # =================================================================
#### 富山で暮らす　安心・安全な街
# ================================================================= */
.temp.machi .swiper-slide .slide_wrap {
	background: none;
	box-shadow: none;
	padding: 0;
	margin-bottom: 5px;
}

.temp.machi .addr {
	height: auto;
}

.temp.machi .bg_wrap {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	border-radius: 5px;
	background: #616671;
	padding: 10px;
}

.temp.machi .infobox .name {
	color: #FFF;
	font-size: 16px;
}

.temp.machi .infobox .note {
	color: #FFF;
}

/* # =================================================================
#### トピックス一覧
# ================================================================= */
.topics_wrap .text {
	position: relative;
	display: block;
	width: calc(100% - 100px);
	padding-right: 50px;
}

.topics_wrap .text p.title {
	width: 100%;
	padding-right: 0;
	font-size: 16px;
	font-weight: bold;
	margin-bottom: 10px;
}

.topics_wrap .text p.title a {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	line-height: 1.5;
}

.topics_wrap .text p {
	width: 100%;
	padding-right: 0;
}

.topics_wrap .text p a {
	display: block;
	width: 100%;
	overflow: initial;
	text-overflow: inherit;
	white-space: normal;
	line-height: 1.5;
}

.topics_wrap .text p a:hover {}

/*** ページング ***/
.tablenav {
	position: relative;
	display: block;
	width: 100%;
	color: #121212;
	margin: 50px auto;
	line-height: 2em;
	text-align: center;
}

a.page-numbers,
.tablenav .current {
	display: inline;
	color: #121212;
	padding: 4px 8px;
	border: solid 1px #121212;
	text-decoration: none;
	font-size: smaller;
}

a.page-numbers:hover {
	color: white;
	background: #121212;
	border-color: #121212;
}

a.page-numbers:first-child:hover,
a.page-numbers:last-child:hover {
	background-color: #fff;
}

.tablenav .current {
	color: white;
	background: #121212;
	border-color: #121212;
	font-weight: bold;
}

.tablenav .next,
.tablenav .prev {
	border: 0 none;
	background: transparent;
	text-decoration: underline;
	font-size: smaller;
	font-weight: bold;
}

a.page-numbers span.prev_arrow {
	position: relative;
	display: inline-block;
	width: 20px;
	height: 10px;
	background: url(../images/arrow_01.png)no-repeat;
	background-size: contain;
	transform: scale(-1, 1);
	transition: 0.5s;
}

a.page-numbers:hover span.prev_arrow {

	transition: 0.5s;
}

a.page-numbers span.next_arrow {
	position: relative;
	display: inline-block;
	width: 20px;
	height: 10px;
	background: url(../images/arrow_01.png)no-repeat;
	background-size: contain;
	transition: 0.5s;
}

a.page-numbers:hover span.next_arrow {

	transition: 0.5s;
}

/* # =================================================================
#### 一覧
# ================================================================= */
/** page_header **/
.page_header {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
}

.page_header h2 {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	text-align: center;
	color: #003784;
	font-size: 22px;
	font-weight: bold;
	margin-bottom: 16px;
	/* margin-bottom: 30px; */
}

.page_header .page_nav_heading {
	text-align: center;
	color: #003784;
	font-size: 18px;
	font-weight: bold;
	margin: 0px auto 8px;
}

.page_header .page_nav {
	position: relative;
	display: block;
	width: 700px;
	height: auto;
	margin: 0 auto 50px;
}

.page_header .page_nav ul {
	position: relative;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-around;
}

.page_header .page_nav ul li {
	position: relative;
	display: block;
	width: auto;
	height: auto;
}

.page_header .page_nav ul li a {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	border: 1px solid #121212;
	border-radius: 5px;
	background: #FFF;
	color: #B7B7B7;
	font-size: 15px;
	text-align: center;
	line-height: 1;
	padding: 5px 20px;
}

.page_header .page_nav ul li.current a {
	background: #121212;
	color: #FFF;
}

.page_header .page_nav ul li a:hover {
	background: #121212;
	color: #FFF;
}

/** 新着・おすすめ物件 本体 **/
.page .temp {
	padding: 50px 0;
	margin-bottom: 0;
}

.page .temp .flex {
	position: relative;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
}

.page .temp .flex:after {
	content: "";
	display: block;
	width: 31%;
}

.page .temp .flex .temp_box {
	position: relative;
	display: block;
	width: 31%;
	height: auto;
	margin-bottom: 30px;
	background: #F5F5F5;
	padding: 10px;
	box-shadow: 2px 2px 2px #00000029;
}

.page .temp .document {
	position: relative;
	display: block;
	width: 70%;
	height: auto;
	margin: 10px 0 20px auto;
}

.page .temp .document:hover {
	opacity: 0.5;
}

.page .temp .document img {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
}

/** マチ本体 **/
.page .temp.machi .flex .temp_box {
	background: none;
	box-shadow: none;
	padding: 0;
}

.temp.machi .flex .temp_box .bg_wrap {
	margin-top: 5px;
}

/* # =================================================================
#### 詳細
# ================================================================= */
.blog {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	background: #EFEFEF;
	padding: 50px 0;
}

.blog h2.title {
	position: relative;
	display: block;
	width: 960px;
	height: auto;
	color: #003784;
	font-size: 20px;
	margin: 0 auto 30px;
}

.blog p.ymd {
	position: relative;
	display: block;
	width: 960px;
	height: auto;
	font-size: 14px;
	margin: 0 auto 20px;
}

.blog .wrap {
	width: 960px;
	background: #FFF;
	padding: 30px;
}

.blog .wrap .thumbnail {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	margin-bottom: 30px;
}

.blog .wrap .thumbnail>img {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	margin-bottom: 0;
}

.blog .wrap h1 {

	margin-bottom: 30px;
}

.blog .wrap h2 {

	margin-bottom: 30px;
}

.blog .wrap h3 {

	margin-bottom: 30px;
}

.blog .wrap h4 {

	margin-bottom: 30px;
}

.blog .wrap p {

	text-align: justify;
	margin-bottom: 30px;
}

.blog .wrap a {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	color: blue;
	text-decoration: underline;
	margin-bottom: 30px;
}

.blog .wrap a:hover {
	color: red;
}

.blog .wrap img {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	margin-bottom: 30px;
}

/*** ページング ***/
#pagenavi {
	position: relative;
	display: flex;
	display: -ms-flexbox;
	/* IE10 */
	display: -webkit-box;
	/* Android4.3以下、Safari3.1～6.0 */
	display: -webkit-flex;
	/* Safari6.1以降 */
	flex-wrap: wrap;
	-webkit-flex-wrap: wrap;
	/* for old webkit browser */
	-ms-flex-wrap: wrap;
	/* for IE10 */
	justify-content: space-between;
	-webkit-justify-content: space-between;
	/* Safari etc. */
	-ms-justify-content: space-between;
	/* IE10 */
	width: 960px;
	margin: 50px auto 0;
	padding: 0;
	list-style: none;
}

#pagenavi li {
	position: relative;
	display: block;
	width: auto;
}

#pagenavi li a {
	text-decoration: none;
	color: #121212;
}

#pagenavi li a:hover {
	opacity: 0.5;
}

#pagenavi li.center a:before {
	content: "";
	position: absolute;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	top: 3px;
	bottom: 0;
	left: -17px;
	margin: auto;
	background: url(../images/icon_topics.png)no-repeat;
	background-size: contain;
	width: 15px;
	height: 16px;
}

.index_item .links {
	display: flex;
	margin: 12px auto;
	gap: 8px;
}

.index_item .links img {
	width: 100%;
}