@charset "utf-8";
/* CSS Document */

/* post（共通）
========================================== */
.postCategory{
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap:1em;
	margin-bottom: 4em;
}
.postCategory li a{
	line-height: 1.2;
	display: block;
	padding:.3em 1em;
	background-color:#fff;
	box-sizing: border-box;
	border: 1px solid var(--color-primary);
	color:var(--text-primary);
	font-size: var(--font-size-caption);
	text-decoration: none;
	transition: .3s;
}
.postCategory li a:hover,
.postCategory .current a{background-color: var(--color-primary);color: #fff;}

@media screen and (max-width:840px) {
	.postCategory{
		justify-content: flex-start;
		gap:.6em;
	}
}

.postBox{
	margin-top: 10px;
	margin-bottom: 30px;
	padding:0 0 5%;
	border-bottom: 1px solid var(--border-color);
}
.postBox ul,.postBox ol{margin-left: 1.2em;margin-bottom: 1em;}
.postBox ul{list-style-type: disc;}
.postBox ul li{list-style-type: inherit;}
.postBox ol {list-style-type: decimal}
.postBox ol li{list-style-type: inherit;}

.postTitle{
	line-height:1.2;
	margin-bottom:1em;
	padding: 0 0 1em;
	border-bottom: 1px solid var(--color-primary);
	box-sizing: border-box;
	font-size:clamp(1.6rem, 3vw, 2rem);
	font-weight: 800;
	color: var(--color-primary);
}
.postInfo{display:flex;flex-wrap: wrap;align-items: center;gap:.6em 1em;}
.postInfo .date{
	font-size: 1.3rem;
    font-family: var(--font-number);
    text-align: right;
    color: #888;
}
.postInfo .category{
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .6em;
	margin-left: 0;
	margin-bottom: 0;
	list-style-type: none;}

.postInfo .category li{
	text-decoration: none;
	list-style-type: none;}

.postInfo .category a{
	padding: 0 0.6em;
	text-decoration: none;
	box-sizing: border-box;
	background-color:var(--color-primary);
	color: #fff;
	font-size: 1.3rem;
	transition: 0.3s;
}
.postInfo .category a:hover{background-color: var(--color-accent);}
.postInfo .tag{
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5em;
	margin-left: 0;
	margin-bottom: 0;
	list-style-type: none;}

.postInfo .tag li{
	text-decoration: none;
	list-style-type: none;}

.postInfo .tag a{
	text-decoration: none;
	color: var(--text-secondary);
	font-size: 1.3rem;
	transition: 0.3s;
}
.postInfo .tag a::before{
	content: "#";
	display: inline-block;
}
.postInfo .tag a:hover{text-decoration: underline;}
.postText{padding: 2.5em 0;}
.postSignature{
	padding:20px;
	box-sizing: border-box;
	background-color:var(--bg-grey);
}
.postSignature .name{font-weight: 600;}
.postSignature p+p{margin-top: 0.5em!important;}
.postSignature .tel a{text-decoration: none;color: var(--txt-color);margin-right: 1em;}

/* nav（共通）
========================================== */
.wp_nav{margin: 30px 0 20px;}
.wp_nav .wp-pagenavi{padding:10px 0;}
.wp_nav::after{
	content:" ";
	display:block;
	clear:both;
	font-size:0;}

/* Pager（共通）
========================================== */
.pager {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	align-items: center;
}
.pager li.prev {
	grid-column: 1;
	text-align: left;
}
.pager li.list {
	grid-column: 2;
	text-align: center;
}
.pager li.next {
	grid-column: 3;
	text-align: right;
}
.pager li a {
	position: relative;
	padding-bottom: 5px;
	color: var(--text-primary);
	text-decoration: none;
}
.pager li a::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 1px;
	background-color: var(--color-primary);
	transform: scale(0, 1);
	transform-origin: left top;
	transition: 0.3s;
}
.pager li a:hover::after {
	transform: scale(1, 1);
}

@media screen and (max-width: 599px) {
	.pager {
		display: flex;
		flex-direction: column;
		gap: 1em;
	}
	.pager li {
		text-align: center;
	}
	.pager li.prev { order: 2; }
	.pager li.list { order: 3; }
	.pager li.next { order: 1; }
}


/* editor img
========================================== */
img.alignleft {
	display: inline;
	float: left;
	margin-right: 20px;
}
img.alignright {
	display: inline;
	float: right;
	margin-left: 20px;
}
img.aligncenter {
	clear: both;
	display: block;
	margin-left: auto;
	margin-right: auto;
}
.postBox p::after{content:" ";display:block;clear:both;font-size:0;}
@media screen and (max-width:599px){
	img.alignleft,
	img.alignright,
	img.aligncenter{
		display:block;
		float:none;
		margin:0 0 10px;
	}
}

/* 事例
========================================== */
.caseList{
	display: grid;
	grid-template-columns: repeat(3,1fr);
	gap:40px 3%;
}
.caseList .item{}
.caseList .item .imageBlock {margin-bottom: 15px;}
.caseList .item .imageBlock a{
	display: block;
	position: relative;
	overflow: hidden;
	aspect-ratio: 4 / 3;
}
.caseList .item .imageBlock  a::before{
	content: "";
	display: block;
}
.caseList .item .imageBlock 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.3s;
}
.caseList .item .title{
	line-height: 1.3;
	margin-bottom: 1em;}
.caseList .item .title a{
	display: block;
	text-decoration: none;
	font-weight: 600;}
.caseList .item .category{
	display: flex;
	flex-wrap: wrap;
	line-height: 1.3;
	gap: .3em;
}
.caseList .item .category a{
	display: inline-block;
	padding: .2em .5em;
	box-sizing: border-box;
	background-color: #fff;
	border: 1px solid var(--color-primary);
	text-decoration: none;
	color: var(--text-primary);
	font-size: 1.2rem;
	transition: .3s;
}
.caseList .item .text{
	line-height: 1.5;
	font-size: var(--font-size-caption);
}

.caseList .item .category a:hover{
	background-color: var(--color-primary);
	color: #fff;
}
.caseList .item .title a:hover{
	text-decoration: underline;
	color: var(--color-primary);
}
.caseList .item .imageBlock a:hover img{
	opacity: 1;
	transform: scale(1.2);}

.caseList .item .tag{
	display: flex;
	flex-wrap: wrap;
	margin-top: 15px;
	gap:.6em .6em;
}
.caseList .item .tag li a{
	line-height: 1.2;
	font-size: var(--font-size-caption);
	text-decoration: none;
	color: var(--text-secondary);
}
.caseList .item .tag li a::before{
	content: "#";
	display: inline-block;
}
.caseList .item .tag li a:hover{
	text-decoration: underline;
}

@media screen and (max-width:1024px){
	.caseList{
		grid-template-columns: repeat(2,1fr);
		gap:30px 3%;}

}
@media screen and (max-width:380px){
	.caseList{
		grid-template-columns: 1fr;
	}

}


/* サイドカテゴリー
========================================== */

.sideTitle{
	margin-bottom: 1em;
	padding:.5em 0;
	border-top:2px solid var(--color-primary);
	border-bottom: 1px solid var(--border-color);
	font-family: var(--font-secondary);
	font-weight: 900;
	color: var(--color-primary);
}
.sideCategory{
	margin-bottom: 30px;
}
.sideCategory li{
	position: relative;
	margin-left: 1em;
	padding-left: 20px;
}
.sideCategory li::before{
	content:"";
	position: absolute;
	left: 0;
	top: 14px;
	background-color: var(--text-primary);
	width: 10px;
	height: 1px;
}
.sideCategory li a{
	text-decoration: none;
	font-size: var(--font-size-caption);
}
.sideCategory li a:hover{
	color: var(--color-primary);
	text-decoration: underline;
}



/* 事例詳細
========================================== */
.postTable{
	margin:50px auto;
	width: 100%;
	border-collapse: collapse;
}
.postTable th,
.postTable td{
	border: 1px solid var(--border-color);
	padding:1em 1.5em;
}
.postTable th {
	width: 10em;
	text-align: left;
	background-color:var(--color-primary);
	vertical-align: middle;
	color: #fff;
}

.requestResponse{
	display: flex;
	gap:60px;
	margin-bottom: 30px;
}
.requestResponse .item{
	position: relative;
	width: 50%;
	box-sizing: border-box;
	border: 1px solid var(--border-color);
}
.requestResponse .item:first-of-type::after{
	content: "";
	position: absolute;
	top: 50%;
	right: -25px;
	width: 30px;
	height: 30px;
	transform: rotate(45deg) translateY(-50%);
	border-top: 2px solid var(--color-primary);
	border-right: 2px solid var(--color-primary);
}
.requestResponse .item .title{
	padding: 1em;
	line-height: var(--line-height-heading);
	background-color: var(--color-secondary);
	text-align: center;
}

.requestResponse .item .text{
	padding: 1em;
}

.caseLink{
	text-align: center;
}
.caseLink a{
	line-height: 1.3;
	display: inline-block;
	padding: 1em 1.5em;
	background-color: var(--color-accent);
	color: #fff;
	text-align: center;
	text-decoration: none;
	transition: 0.3s;
}
.caseLink a:hover{
	background-color: var(--color-primary);
}

@media screen and (max-width:840px){
	.requestResponse{
		flex-direction: column;
	}
	.requestResponse .item{width: 100%;}
	.requestResponse .item:first-of-type::after{
		top: auto;
		right: auto;
		bottom: -20px;
		left: 50%;
		transform: rotate(135deg) translate(20px,0);
	}
}

@media screen and (max-width:599px){
	.postTable th {
		width: 8em;
	}
}


/* スライダー
========================================== */
.postSlider { margin-top: 30px; }
.postSlider .mainImage {
    box-sizing: border-box;
    margin-bottom: 20px;
    max-width: 600px;
}

.postSlider .mainImage ul li {
    list-style-type: none;
    box-sizing: border-box;
    aspect-ratio: 4/3;
}

.postSlider .mainImage ul li .img {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.postSlider .mainImage ul li .img img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
}
.postSlider .thumbImage {
    margin: 0 auto;
}
.postSlider .thumbImage ul {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    list-style-type: none;
}
.postSlider .thumbImage ul li {
    position: relative;
    max-width: 100px;
	cursor: pointer;
}
.postSlider .thumbImage ul li:before {
    display: block;
    padding-top: 100%;
    content: '';
}
.postSlider .thumbImage ul li img {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin: auto;
    object-fit: cover;
    border: 2px solid var(--border-color);
    box-sizing: border-box;
    cursor: pointer;
}
.postSlider .thumbImage ul li.swiper-slide {
    opacity: 0.6;
    transform: scale(1);
}
.postSlider .thumbImage ul li.swiper-slide-thumb-active {
    opacity: 1;
}
.postSlider .thumbImage ul li.swiper-slide-thumb-active img {
    border: 2px solid var(--color-primary);
}
.postSlider ul { margin-left: 0!important; }

@media screen and (max-width:840px) {
    .postSlider .mainImage ul li {
        padding: 10px;
        height: auto;
        aspect-ratio: 4/3;
    }

	.postSlider .thumbImage ul {
		justify-content: start;
	}
    .postSlider .thumbImage ul li {
        position: relative;
        width: calc((100% - 10px * 4)/5);
    }
}