@charset "utf-8";
/*
Theme Name: hokuto-kogyo
Author: YES-REFORM CO., LTD.
*/

/* Body
========================================== */
html, body{
	width: 100%;
	font-size:62.5%;/*10px*/
}
body {
	color:var(--txt-color);
	line-height:1.8;
	background-color: #fff;
	font-size:1.6rem;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-weight: 400;
	font-style: normal;
}
@media screen and (max-width: 599px) {
	body{
		word-wrap:break-word;}
}
@media screen and (min-width: 841px) {.tablet {display:none!important;}}
@media screen and (min-width: 600px) {.sp {display:none!important;}}
@media screen and (max-width: 840px) {.pc {display:none!important;}}

/* header
========================================== */
.headerArea{
	position: relative;
	z-index: 1000;
	position: fixed;
	top:0;
	left: 0;
	width: 100%;
	display: flex;
	justify-content: space-between;
}
.headerArea .inner{
	display: flex;
	justify-content: space-between;
	width:100%;
	height:120px;
}
.headerArea .gnavWrap{
	display: flex;
	align-items: center;
	justify-content: space-between;
	background-color: #fff;
	width:68.75%;
	padding-left: 2%;
}
.headerArea .infoWrap{
	line-height: 1;
	display: flex;
	justify-content: flex-end;
	align-items: flex-start;
	width: 28%;}

.headerLogo{width: 80px;text-align: center;}
.headerLogo a{display: block;}
.headerLogo img{max-width: 100%;height: auto;}

.gnav{width: 82%;padding-right: 3%;}
.gnav ul{
	display: flex;
	justify-content: space-around;
	align-items: center;
	list-style: none;}

.gnav ul li{
	margin-left: 2em;}

.gnav ul li a{
	line-height: 1.2;
	display: block;
	color: var(--txt-color);
	font-weight: 700;
	font-size: 1.4rem;
	text-decoration: none;
	text-align: center;
	transition: 0.3s;
}
.gnav ul li a i{
	display: block;
	margin-bottom: 10px;}
.gnav ul li.current a,
.gnav ul li a:hover{color: var(--main-color);}

.headerTel .tel .number{
	line-height: 1.2;
	margin-left: 2em;
	text-align: center;
}
.gnav ul li a:hover img{opacity: 1;}

.headerInfo{
	background-color: #fff;
	padding: 1em;
	text-align: center;}
.headerInfo .address span{display: inline-block;}
.headerInfo .tel{margin-top: 10px;}
.headerInfo .tel .number{
	display: block;
	font-size: 2.6rem;
	color: var(--main-color);
}
.headerContact{width: 40%;}
.headerContact a{
	position: relative;
	display: block;
	padding: 4.5em 1em 2em;
	background-color: var(--main-color);
	width: 100%;
	text-align: center;
	text-decoration: none;
	color: #fff;
	transition: 0.3s;
}
.headerContact a::before{
	content: "";
	position: absolute;
	top: 1em;
	left: 50%;
	transform: translateX(-50%);
	background: url(images/icn_mail.svg) left top /contain no-repeat;
	width: 50px;
	height: 50px;
	transition: 0.3s;
}
.headerContact a:hover{background-color: var(--point-color);color: var(--txt-color);}
.headerContact a:hover::before{
	background-image: url(images/icn_mail_black.svg);}


.spBtn,
.spContact{display: none}
.drawerMenu{display: none;}

@media screen and (max-width:1600px){
	.gnav ul li{margin-left: 1em;}
}

@media screen and (max-width:1300px){
	.gnav ul li a{font-size: 1.2rem;}
	.headerInfo{font-size: 1.4rem;}
	.headerInfo .tel .number{font-size: 2.2rem;}
	.headerContact a{padding: 0.8em;height: 80px;}
	.headerContact div{display: none;}
	.headerArea .gnavWrap{
		width:73%;
	}
}

@media screen and (max-width:1180px){
	.headerLogo{padding-left: 10px;}
	.gnav ul li{margin-left: 0.6em;}
	.gnav ul li a{font-size: 1rem;}
	.headerInfo .tel .number{font-size:2rem;}
	.headerInfo .tel {font-size: 1.2rem;}
}

@media screen and (max-width:840px){
	.headerArea{position: absolute;background-color: #fff;}
	.headerArea .inner{
		height: 50px;
	}
	.headerArea .gnavWrap{padding-left:0;}
	.headerLogo{padding-top:0;width: auto;}
	.headerLogo img{height: 40px;width: auto;}
	.headerInfo,
	.headerContact,
	.gnav{display: none;}
	.drawerMenu{display: none;}
	.drawerMenu{
		overflow-y: scroll;
		position: fixed;
		top: 0px;
		left: 0px;
		display: none;
		padding:70px 30px 30px;
		width: 100%;
		height: 100%;
		background-color:#224082;
	}
	.drawerMenu.open{
		display: block;
		animation-name: fadeIn;
		animation-fill-mode:forwards;
		animation-duration:0.5s;}
	.drawerMenu::-webkit-scrollbar{
		width: 10px;
	}
	.drawerMenu::-webkit-scrollbar-track{background: #224082;}
	.drawerMenu::-webkit-scrollbar-thumb {background:#224082;}
	.gnavSp{
		margin-bottom: 40px;
		padding: 0 10px 10px;
		border-bottom: 1px solid #fff;}

	.gnavSp li{margin-bottom: 20px;text-align: center;}
	.gnavSp li a{
		position: relative;
		color: #fff;
		font-optical-sizing: auto;
		font-weight: 600;
		text-decoration: none;
		text-align: center;
	}
	.spHeaderLogo{margin-bottom: 20px;text-align: center;}
	.spHeaderLogo a{display: block;}
	.spHeaderLogo img{max-width: 100%;height: auto;}
	.spAddress{
		margin-bottom: 15px;
		line-height: 1.2;
		color: #fff;text-align: center;}
	.spTel{text-align: center;color: #fff;}
	.spTel a{
		line-height: 1.2;
		letter-spacing: 1px;
		display: block;
		font-size: 3rem;
		text-decoration: none;
		color: #fff;}

	.spBtn{
		position:fixed;
		top: 0;
		right: 0;
		display: inline-block;
		width: 50px;
		height:50px;
		padding: 20px 13px 15px;
		background-color: #224082;
		cursor: pointer;
		z-index: 2000;
	}
	.spBtn::after{
		position: absolute;
		left: 0;
		top: 3px;
		content: "MENU";
		text-align: center;
		width: 50px;
		font-size: 8px;
		color: #fff;
	}
	.spBtn.open::after{content: "CLOSE";}

	.spBtn div {position: relative;}
	.spBtn span {
		display: block;
		position: absolute;
		height: 2px;
		width: 100%;
		background:#fff;
		left: 0;
		-webkit-transition: .3s ease-in-out;
		-moz-transition: .3s ease-in-out;
		transition: .3s ease-in-out;
	}
	.spBtn span:nth-child(1) {top: 0;}
	.spBtn span:nth-child(2) {top: 8px;}
	.spBtn span:nth-child(3) {top: 16px;}
	.spBtn.open span:nth-child(1) {
		top: 8px;
		-webkit-transform: rotate(45deg);
		-moz-transform: rotate(45deg);
		transform: rotate(45deg);
	}
	.spBtn.open span:nth-child(2) {
		width: 0;
		left: 50%;
	}
	.spBtn.open span:nth-child(3) {
		top: 8px;
		-webkit-transform: rotate(-45deg);
		-moz-transform: rotate(-45deg);
		transform: rotate(-45deg);
	}
	.spContact{
		position:fixed;
		top: 0;
		right: 50px;
		display: inline-block;
		width: 50px;
		height:50px;
		background-color:var(--main-color);
		cursor: pointer;
		z-index: 2000;
	}
	.spContact a{
		display: block;
		position: relative;
		height: 100%;}
	.spContact img{
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		width: 40px;height: 40px;}
}


/* mv
========================================== */
.mvWrap{
	position: relative;
	overflow: hidden;
	padding-top: 60px;
	position: relative;
	margin-bottom: 80px;}
.mvWrap .img img{width: 100%; height: auto;}

.mvWrap .imgPc{display: block;}
.mvWrap .imgSp{display: none;}
.mvWrap .mvInner{
	position: absolute;
	left: 50%;
	bottom: 30%;
	transform: translateX(-50%);
	margin: 0 auto;
	width: 1200px;
}

.mvWrap .mvInner .logo{
	width: 18%;
	margin: 0 auto 3em;
	text-align: center;}
.mvWrap .mvInner .logo img{width: 100%;height: auto;}
.mvWrap .mvInner .text01,
.mvWrap .mvInner .text02{
	line-height: 1;
    display: block;
    padding: .2em .5em .5em;
    width: fit-content;
    background-color: rgba(255, 255, 255, 1);
	font-weight: 700;
	opacity: 0;
	animation: fade-in 1s ease-in-out forwards;
}
.mvWrap .mvInner .text01{
	margin-bottom: 0.5em;
	font-size: clamp(1.4rem, 2.7vw, 4rem);}
.mvWrap .mvInner .text02{
	font-size: clamp(1.4rem, 2.7vw, 3.2rem);}

@keyframes fade-in {
	0% {opacity: 0;}
	100% {opacity: 1;}
}

.mvWrap .mvText {
	display: flex;
	position: relative;
	bottom:60px;
	z-index:2;
	animation: marquee-left 30s linear infinite;
	-webkit-backface-visibility:hidden;
	backface-visibility:hidden;
	width: auto;
}

@keyframes marquee-left {
	100% {
		transform: translateX(-100%);
	}
}

@media screen and (max-width:1200px){
	.mvWrap .mvInner{
		position: absolute;
		left: 5%;
		bottom: 32%;
		transform: translateX(0);
		margin: 0 auto;
		width: 90%;
	}
	.mvWrap .mvInner .logo{width: 15%;margin-bottom: 2em;}
}

@media screen and (max-width:840px){
	.mvWrap{
		padding-top:50px;
		margin-bottom:0;}
	.mvWrap .mvInner{
		bottom: 25%;
	}
	.mvWrap .mvInner .logo{width: 30%;margin-bottom: 2em;}
	.mvWrap .mvText {bottom: 30px;}
	.mvWrap .mvText img{
		height: 65px;
		width: auto;
	}
	.mvWrap .imgPc{display: none;}
	.mvWrap .imgSp{display:block;}
}

@media screen and (max-width:599px){
	.mvArea{margin-bottom: 0;}
	.mvWrap .mvText {bottom: 20px;}
	.mvWrap .mvText img{height: 50px;}
}

/* contents
========================================== */
.contents{
	overflow: hidden;
	margin:0 auto;
	width:100%;
	background-color: var(--c-grey);}
.contents p+p{margin-top: 1.5em;}
.contentsInner{
	margin:0 auto;
	padding: 0;
	width:1200px;}

@media screen and (max-width:1200px){
	.contentsInner{
		width: 100%;
		padding: 0 30px;}
}

@media screen and (max-width:599px){
	.contentsInner{padding: 0 20px;}
}


/* サービス共通
========================================== */
.serviceWrap{
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin: 0 auto;
	width: 1200px;
}

.serviceWrap .txtBox{width: 50%;padding-right: 10%;}
.serviceWrap .imgBox{width: 50%;}

.serviceWrap .imgBox div:nth-child(2){text-align: right;}
.serviceWrap .imgBox img{
	max-width: 100%;
	height: auto;
	box-shadow: 7px 7px rgba(111,116,120,0.15);}

.serviceWrap.imgLeft .imgBox{order: 1;}
.serviceWrap.imgLeft .txtBox{order: 2;padding:0 0 0 10%;}

/*屋根工事*/
.roofArea{
	position: relative;
	aspect-ratio: 160/75;
	background: url(images/roof_bg.png) left center /cover no-repeat;
}

/*外壁工事*/
.outerwallArea{
	overflow: hidden;
	position: relative;
	margin-bottom: 60px;
	padding-bottom: 80px;
}
.outerwallArea::after{
	content: "";
	z-index: -1;
	position: absolute;
	top: 100px;
	background-color: var(--c-grey);
	width: 100%;
	height: 100%;
}

/*リフォーム工事*/
.reformArea{
	position: relative;
	aspect-ratio: 160/65;
	background: url(images/reform_bg.png) left center /cover no-repeat;
}

/*板金工事*/
.sheetmetalArea{
	position: relative;
	aspect-ratio: 160/65;
	background: url(images/reform_bg.png) left center /cover no-repeat;
}
.sheetmetalArea .ttlMain {margin-left:-30%;}
.sheetmetalArea .ttlMain .en img {
    max-width: 100%;
	height: auto;
}
/*
.sheetmetalArea{
	overflow: hidden;
	position: relative;
	padding-bottom: 60px;
}
.sheetmetalArea::after{
	content: "";
	z-index: -1;
	position: absolute;
	top: 120px;
	background-color: var(--c-grey);
	width: 100%;
	height: 100%;
}
*/

@media screen and (max-width:1200px){
	.serviceWrap{width:100%;padding: 0 30px;overflow: hidden;}
	.serviceWrap .txtBox{width: 60%;padding-right: 10%;}
	.serviceWrap .imgBox{width: 40%;}
	.serviceWrap .imgBox img{max-width: 90%;}
	.roofArea,
	.reformArea{
		padding:0 0 80px;
		aspect-ratio: auto;
	}
}

@media screen and (max-width:599px){
	.serviceWrap{display: block;}
	.serviceWrap .txtBox{width: 100%;padding-right:0;margin-bottom: 30px;}
	.serviceWrap .imgBox{width: 100%;}
	.serviceWrap.imgLeft .txtBox{padding:0;}
	.serviceWrap .imgBox{display: flex;justify-content: center;}
	.serviceWrap .imgBox div{width: 50%;}
	.serviceWrap .imgBox img{max-width: 95%;}
	.serviceWrap .btnMore{text-align: center;}

	.sheetmetalArea .ttlMain {margin-left:0;}

}


/* 選ばれる理由
========================================== */
.strengthArea{
	padding: 80px 0;
	background: url(images/ourstrength_bg.jpg) left top/cover no-repeat;
}

.strengthArea .inner{
	display: flex;
	margin-left: calc((100% - 1200px)/2);
}
.strengthArea .inner .boxL{width: 50%;padding-right: 5%;}
.strengthArea .inner .boxR{
	overflow: hidden;
	width: 50%;}

.scroll{
	display: flex;
	overflow: auto;
	white-space: nowrap;
}
.scroll::-webkit-scrollbar{height: 15px;}
.scroll::-webkit-scrollbar-track{background: #fff;}
.scroll::-webkit-scrollbar-thumb {background: var(--main-color);}

.strengthList{
	display: flex;
	align-items: flex-start;
	margin-bottom: 60px;
}

.strengthList li{
	display: block;
	white-space: normal;
	width: 280px;
	background-color: #fff;
	box-shadow: 7px 7px rgba(111,116,120,0.15);
}
.strengthList li:not(:last-child){margin-right: 40px;}
.strengthList li .imgBox{position: relative;}
.strengthList li .imgBox img{
	width: 100%;height: auto;
}
.strengthList li .imgBox .num{
	position: absolute;
	left: 0.5em;
	bottom: -0.3em;
	font-size: 5rem;
	color: var(--point-color);}
.strengthList li .txtBox{
	padding: 1.5em;}
.strengthList li .txtBox h3{margin-bottom: 1em;font-weight: 700;}


@media screen and (max-width:1200px){
	.strengthArea .inner{margin: 0;padding:0 0 0 30px;}
}

@media screen and (max-width:840px){
	.strengthArea{padding:50px 0;}
	.strengthArea .ttlMain img{
		height: 130px;
		width: auto;
	}
	.strengthArea .inner{
		display: block;
		padding:0;
	}
	.strengthArea .inner .boxL{width: 100%;padding: 0 30px;margin-bottom: 40px;}
	.strengthArea .inner .boxR{
		padding-left: 30px;
		width: 100%;}
}
@media screen and (max-width:599px){
	.strengthArea .ttlMain img{height: 100px;}
}


/* 事例
========================================== */
.exampleArea{
	padding: 80px 0;
}

.caseList{margin-bottom: 50px;}
.caseList.sub{
	display: flex;
	flex-wrap: wrap;
}
.caseList.sub > li {
	margin-right: 5%;
	margin-bottom: 5%;
	width: calc(90% / 3);
}
.caseList.sub > li:nth-child(3n){margin-right: 0;}

.caseList li .imgBox {
	margin-bottom: 15px;
}
.caseList li .imgBox a{
	display: block;
	position: relative;
	overflow: hidden;
	aspect-ratio: 4 / 3;
}
.caseList li .imgBox a::before{
	content: "";
	display: block;
}
.caseList li .imgBox a img{
	z-index: 1;
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	margin: auto;
	object-fit: cover;
	transition: 0.5s;
}
.caseList li .info{
	display: flex;
	flex-wrap: wrap;
	margin-bottom:15px;
	font-weight: 600;}
.caseList li .info .category{
	margin-right: 1em;
	padding: 0 1em;
	background-color: var(--point-color);
}
.caseList.sub li .info{font-size: 1.4rem;}

.caseList li .ttl{
	margin-bottom: .5em;
	font-weight: 600;}
.caseList li .txt{margin-top: 0;}

.caseList li:hover .imgBox {border-color: var(--sub-color);}
.caseList li .imgBox a:hover img{
	opacity: 1;
	transform: scale(1.1);}

@media screen and (max-width: 840px) {
	.caseList.sub > li {
		margin-bottom: 8%;
		width: calc(95% / 2);
	}
	.caseList.sub > li:nth-child(3n){margin-right: 5%;}
	.caseList.sub > li:nth-child(even){margin-right: 0;}
}
@media screen and (max-width: 599px) {
	.caseList.sub > li {
		margin-right: 0;
		margin-bottom: 8%;
		width: 100%;
	}
	.caseList.sub > li:nth-child(3n){margin-right:0;}
}


/* 会社概要
========================================== */
.companyArea{
	padding: 80px 0;
	background-color: var(--c-grey);
}
.companyArea .inner{
	display: flex;
	align-items: center;
	width:1200px;
	margin: 0 auto;
}
.companyArea .inner .boxL{width: 50%;}
.companyArea .inner .boxR{
	margin: -200px 0;
	padding-left: 5%;
	width: 50%;
}
.companyArea .inner .boxR img{width: 100%;height: auto;}

@media screen and (max-width:1200px){
	.companyArea .inner{
		padding: 0 30px;
		width:100%;
	}
}
@media screen and (max-width:599px){
	.companyArea .inner{
		display: block;
	}
	.companyArea .inner .boxL{width: 100%;margin-bottom: 30px;}
	.companyArea .inner .boxR{
		margin: 0 auto;
		padding-left: 0;
		width: 60%;
	}
	.companyArea .btnMore{text-align: center;}
}


/* エリア
========================================== */
.areaArea{
	aspect-ratio: 160/101;
	padding: 80px 0;
	background: url(images/area_bg.png) left top/contain no-repeat;
}

.areaArea .inner{
	width: 30%;
	margin: 0 10% 0 auto;
	text-shadow: 1px 1px 1px #fff;
}
.areaArea .inner h3{
	margin-bottom: 1em;
	font-size: 2rem;
	font-weight: 600;
	color: var(--main-color);
}

@media screen and (max-width:1200px){
	.areaArea .inner{
		margin: 0 0 0 auto;
		width: 50%;
		padding: 0 30px;
	}
}
@media screen and (max-width:840px){
	.areaArea{
		padding:60px 0;
		aspect-ratio: auto;
		background: url(images/area_bg_sp.png) right top/contain no-repeat;
	}
	.areaArea .inner{width: 100%;}

}

/* 流れ
========================================== */
.flowArea{
	position: relative;
	aspect-ratio: 160/75;
	background: url(images/flow_bg.png) left center /cover no-repeat;
}

.flowWrap{
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}

.flowBox{
	position: relative;
	margin-right: 3%;
	width: 22.5%;
	margin-bottom: 3%;
	padding: 1em;
	background-color: rgba(255,255,255,0.95);
	box-shadow: 7px 7px rgba(111, 116, 120, 0.15);
}
.flowBox:nth-child(4n),
.flowBox:last-child{margin-right: 0;}

.flowBox:not(:first-child):before{
	content: "";
	position: absolute;
	left: -25px;
	top: 50%;
	background: url(images/arrow_icn_blue.png) left top/contain no-repeat;
	width: 20px;
	height: 20px;

}

.flowBox .icon{
	margin: 20px auto;
	height: 62px;
	text-align: center;
}
.flowBox .icon img{width: auto;height: 100%;}

.flowBox dt{
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
	height: 3.5em;
	margin-bottom: 1em;
	background-color: var(--sub-color);
	text-align: center;
	font-size: 2rem;
	color: var(--main-color);
}
.flowBox dd{line-height: 1.5;}

@media screen and (max-width: 1200px){
	.flowArea{
		padding: 50px 0;
		background: none;
		background-color: var(--c-grey);
		aspect-ratio: auto;
		padding-bottom: 50px;}
	.flowScroll{
		overflow: auto;
		white-space: nowrap;
	}
	.flowScroll::-webkit-scrollbar{height: 15px;}
	.flowScroll::-webkit-scrollbar-track{background: #fff;}
	.flowScroll::-webkit-scrollbar-thumb {background: var(--main-color);}
	.flowWrap{
		flex-wrap:nowrap;
		justify-content: flex-start;
		width: 2100px;
	}
	.flowBox{
		position: relative;
		margin-right: 35px;
		margin-bottom: 30px;
		width: 260px;
	}
	.flowBox:nth-child(4n){margin-right: 30px;}
	.flowBox dd{white-space: normal;}
}


/* よくあるご質問
========================================== */
.faqArea{
	padding:120px 0 80px;
	background-color: var(--c-beige);
}

.faqArea .inner{
	margin: 0 auto;
	padding: 60px 60px;
	width: 1200px;
	background-color: #fff;
	box-shadow: 7px 7px rgba(111, 116, 120, 0.15);
}

.faqArea .inner .ttlMain{
	margin-top: -100px;
}

.faqList{padding-bottom: 20px;}
.faqList dl{
	margin-bottom: 30px;
	padding: 30px;
	box-sizing: border-box;
	background-color: #fff;
	border: 1px solid var(--sub-color);
	box-sizing: border-box;
	box-shadow: 7px 7px rgba(111, 116, 120, 0.15);
}

.faqList dl dt,
.faqList dl dd{
	position: relative;
	padding-left: 3.5em;
	font-weight: normal;
}

.faqList dl dt::before,
.faqList dl dd::before{
	position: absolute;
	top: -0.4em;
	left: 0;
	color: var(--main-color);
	font-size: 2.6rem;
	font-weight: 700;
	width: 1.5em;
	text-align: center;
}
.faqList dl dt::before{content: "Q.";}
.faqList dl dd::before{content: "A.";}

.faqList dl dt{
	margin-bottom: 1em;
	font-weight: 700;}


@media screen and (max-width: 1200px){
	.faqArea{padding:120px 0 80px;}
	.faqArea .inner{
		padding: 60px 30px;
		width:100%;
	}

}
@media screen and (max-width:840px){
	.faqArea{padding:100px 0 80px;}
	.faqArea .inner{padding: 60px 20px;}
}

@media screen and (max-width:599px){
	.faqArea .inner{
		background: none;
		box-shadow: none;
	}
	.faqList dl{
		padding: 1.5em 1.5em 1.5em 1em;
	}
}


/* コラム
========================================== */
.columnArea{
	padding:120px 0 80px;
	background: url(images/column_bg.jpg) left top/cover no-repeat;
}
.columnArea .inner{
	margin: 0 auto;
	padding: 60px 60px;
	width: 1200px;
	background-color: rgba(255,255,255,0.9);
	box-shadow: 7px 7px rgba(111, 116, 120, 0.15);
}
.columnArea .inner .ttlMain{
	margin-top: -100px;
	margin-bottom: 80px;
}

.columnList{
	display: flex;
	flex-wrap: wrap;
}
.columnList > li {
	margin-right: 5%;
	margin-bottom: 5%;
	width: calc(90% / 3);
}
.columnList > li:nth-child(3n){margin-right: 0;}
.columnList > li a{
	position: relative;
	text-decoration: none;
	color: var(--txt-color);
	font-weight: 600;
	transition: 0.3s;
}
.columnList .imgBox{
	position: relative;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	margin-bottom: 20px;
	box-shadow: 7px 7px rgba(111, 116, 120, 0.15);
}
.columnList .imgBox::before{
	content: "";
	display: block;
}
.columnList .imgBox img{
	z-index: 1;
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	margin: auto;
	object-fit: cover;
	transition: 0.5s;
}
.columnList > li a:hover .ttl{color: var(--main-color);}
.columnList > li a:hover .imgBox img{
	opacity: 1;
	transform: scale(1.1);}
.columnList .category{margin-top: 1em;}
.columnList .category li{
	display: inline-block;
	padding: 0 0.5em;
	background-color: var(--point-color);
	font-weight: 400;
	font-size: 1.4rem;
}

@media screen and (max-width:1200px){
	.columnArea{
		padding:120px 0 80px;
	}
	.columnArea .inner{
		padding: 60px 60px;
		width: 100%;
	}
}

@media screen and (max-width:840px){
	.columnArea{padding:0;background: none;}
	.columnArea .inner{padding: 60px 30px;}
}
@media screen and (max-width:599px){
	.columnArea{padding:0;}
	.columnArea .inner{padding:40px 20px 60px;}

	.columnArea .inner .ttlMain{margin-top: -60px;margin-bottom: 60px;}
	.columnList{display: block;margin-bottom: 30px;}
	.columnList > li{
		margin-right: 0;
		margin-bottom: 0;
		width:100%;}

	.columnList > li a{
		display: flex;
		justify-content: space-between;
		align-items: flex-start;
		padding:10px 0 17px;
		border-bottom: 1px solid #d5d4d4;
	}
	.columnList li .imgBox:before{padding-top: 100%;}
	.columnList li .imgBox{width:20%;margin: 0;aspect-ratio: 1/1;}
	.columnList li .txtBox{width:80%;padding-left:2em;}
	.columnList .category li{font-size: 1.2rem;}

}

/* footer
========================================== */
footer{background-color:#224082;}

.footerWrap .inner{
	display: flex;
	align-items: center;
	margin: 0 auto;
	padding: 50px 0;
	width: 1200px;
	color: #fff;
}
.footerInfo{width: 20%;}
.footerContact{
	width: 50%;
	padding: 0 10%;
	text-align: center;}
.fnavWrap{
	display: flex;
	width:30%;
}

.footerLogo{margin-bottom: 20px;text-align: center;}
.footerLogo a{display: block;}
.footerLogo img{max-width: 100%;height: auto;}
.footerInfo .address{text-align: center;}
.footerInfo .tel {
	line-height: 1.2;
	margin: 10px auto 0;
	width: fit-content;
	text-align: center;
	font-size: 2rem;
}
.footerInfo .tel a{
	display: block;
	color: #fff;
	text-decoration: none;
	font-size: 3.2rem;
}

.footerContact{font-weight: 600;}
.footerContact .txt span{
	display: block;
	font-size: 2.2rem;}
.footerContact a{
	position: relative;
	display: block;
	margin-top: 1em;
	width: 100%;
	padding:4.5em 2em 1.5em;
	background-color: var(--main-color);
	text-align: center;
	color: #fff;
	text-decoration: none;
	transition: 0.5s;
}
.footerContact a:hover{
	background-color: var(--point-color);
	color: var(--txt-color);
}
.footerContact a::before{
	content: "";
	position: absolute;
	top: 1.3em;
	left: 50%;
	transform: translateX(-50%);
	background: url(images/icn_mail.svg) left top /contain no-repeat;
	width: 50px;
	height: 50px;
	transition: 0.5s;
}
.headerContact a:hover{background-color: var(--point-color);color: var(--txt-color);}
.footerContact a:hover::before{
	background-image: url(images/icn_mail_black.svg);}

.fnav:first-child{margin-right: 4em;}
.fnav li:not(:last-child){margin-bottom: 1.5em;}
.fnav li a{
	display: block;
	line-height: 1.2;
	color: #fff;
	text-decoration: none;
	font-size: 1.4rem;
	font-weight: 600;
}
.fnav li a:hover{text-decoration: underline;}

.copyright{
	padding: 1em 1em;
	text-align: center;
	color: #fff;
	font-size:1.2rem;}

@media screen and (max-width: 1200px) {
	.footerWrap .inner{
		padding: 50px 30px;
		width: 100%;}
	.footerInfo{width: 25%;}
	.footerContact{
		width: 45%;
		padding: 0 5%;}
}
@media screen and (max-width: 840px) {
	.footerWrap .inner{
		flex-wrap: wrap;
		padding: 50px 30px 20px;}
	.footerInfo{width: 50%;}
	.footerContact{
		width: 50%;
		padding: 0 3% 50px;}
	.fnavWrap{width:100%;margin-top: 30px;}
	.fnav{width: 50%;}
	.fnav li a{
		text-align: center;
	}
}
@media screen and (max-width: 599px) {
	.footerWrap .inner{display: block;}
	.footerInfo{width: fit-content;margin: 0 auto;}
	.footerLogo{}
	.footerContact{
		width: 100%;
		padding: 20px 3%;}
}
@media screen and (max-width: 320px) {
}


/* pageTop
========================================== */
#pageTop{
	position:fixed;
	line-height: 1;
	right:20px;
	bottom:20px;
	z-index: 100;}
#pageTop a{
	display: block;
	position:relative;
	padding:20px;
	background-color:var(--main-color);
	box-sizing: border-box;
	color:#fff;
	font-size: 1.2rem;
	text-decoration: none;
	transition: all .3s;
}
#pageTop a::before{
	position:absolute;
	content: "";
	top:17px;
	left:50%;
	margin-left: -4px;
	width: 8px;
	height: 8px;
	border-top: solid 2px #fff;
	border-right: solid 2px #fff;
	-webkit-transform: rotate(-45deg);
	transform: rotate(-45deg);
	transition: all .3s;
	}
#pageTop:hover a{background-color: var(--point-color);}
#pageTop:hover a::before{top:13px;border-color: var(--txt-color);}
@media screen and (max-width: 1200px) {
	#pageTop{
		right:0;}
}

@media screen and (max-width: 599px) {
	#pageTop{display: none!important}
}
