@charset "UTF-8";
.section_title {
		position: relative;
		font-size: 2.5rem;
		font-weight: 500;
		line-height: 1.5;
		-webkit-padding-start: 20px;
		        padding-inline-start: 20px;
		-webkit-padding-after: 15px;
		        padding-block-end: 15px;
		border-bottom: solid 1px #DBD9CD;
}
@media screen and (min-width: 992px) {
		.section_title {
				font-size: 3rem;
		}
}
.section_title::before {
		content: "";
		position: absolute;
		top: 0.8em;
		left: 0;
		translate: 0 -50%;
		width: 10px;
		height: 8px;
		background-color: #008C64;
		border-radius: 0 100vmax 100vmax 0;
}

#case_single {
		padding-block: 140px 80px;
		padding-inline: 20px;
}
@media screen and (min-width: 425px) {
		#case_single {
				padding-inline: 30px;
		}
}
@media screen and (min-width: 768px) {
		#case_single {
				padding-inline: 40px;
		}
}
@media screen and (min-width: 992px) {
		#case_single {
				padding-inline: 70px min(100vw - 435px, 250px);
		}
}
@media screen and (min-width: 1300px) {
		#case_single {
				padding-inline: 70px;
		}
}

.single_title {
		font-size: 2.5rem;
		line-height: 1.8;
}
@media screen and (min-width: 768px) {
		.single_title {
				font-size: 3rem;
		}
}
@media screen and (min-width: 992px) {
		.single_title {
				font-size: 3.5rem;
		}
}

.category_list {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-ms-flex-wrap: wrap;
		    flex-wrap: wrap;
		gap: 15px 4px;
		-webkit-margin-before: 20px;
		        margin-block-start: 20px;
}
.category_list li {
		width: -webkit-fit-content;
		width: -moz-fit-content;
		width: fit-content;
}
.category_list li span {
		display: block;
		padding-block: 5px;
		padding-inline: 15px;
		border-radius: 6px;
		font-size: 1.4rem;
		line-height: 1.8;
		border: solid 1px #9D9B94;
}

.case_thumbnail {
		-webkit-margin-before: 40px;
		        margin-block-start: 40px;
}
.case_thumbnail img {
		display: block;
}

.case_single_row {
		-webkit-margin-before: 60px;
		        margin-block-start: 60px;
}
@media screen and (min-width: 992px) {
		.case_single_row {
				-webkit-margin-before: 80px;
				        margin-block-start: 80px;
		}
}

.section_subtitle {
		font-size: 2rem;
		font-weight: 500;
		line-height: 1.8;
		-webkit-margin-before: 40px;
		        margin-block-start: 40px;
}
.section_subtitle + .case_text {
		-webkit-margin-before: 15px;
		        margin-block-start: 15px;
}

.case_text {
		-webkit-margin-before: 30px;
		        margin-block-start: 30px;
		line-height: 1.8;
		font-size: 1.6rem;
}

.contact_cta {
		padding: 50px 35px;
		border: solid 1px #DBD9CD;
		border-radius: 6px;
}

.contact_cta_text {
		font-size: 1.7rem;
		line-height: 2;
		text-box-trim: trim-both;
		text-align: center;
}
@media screen and (min-width: 768px) {
		.contact_cta_text {
				font-size: 2rem;
		}
}
@media screen and (min-width: 768px) {
		.contact_cta_text .sp {
				display: none;
		}
}

.contact_cta_button {
		display: block;
		-webkit-margin-before: 40px;
		        margin-block-start: 40px;
		border-radius: 6px;
		background-color: #222222;
		padding-block: 27px;
		width: 100%;
		text-align: center;
		border: solid 1px #222222;
		-webkit-transition: background-color 0.3s;
		transition: background-color 0.3s;
		max-width: 350px;
		margin-inline: auto;
}
.contact_cta_button span {
		position: relative;
		color: #fff;
		font-size: 1.6rem;
		font-weight: 500;
		line-height: 1.5;
		-webkit-padding-start: 24px;
		        padding-inline-start: 24px;
		-webkit-transition: color 0.3s;
		transition: color 0.3s;
}
@media screen and (min-width: 992px) {
		.contact_cta_button span {
				font-size: 2rem;
		}
}
.contact_cta_button span::before {
		content: "";
		position: absolute;
		top: 50%;
		left: 0;
		width: 18px;
		height: 20px;
		-webkit-mask-image: url(../img/common/contact_icon.svg);
		        mask-image: url(../img/common/contact_icon.svg);
		-webkit-mask-size: cover;
		        mask-size: cover;
		background-color: #DBD9CD;
		translate: 0 -50%;
		-webkit-transition: background-color 0.3s;
		transition: background-color 0.3s;
}
@media (hover: hover) and (pointer: fine) {
		.contact_cta_button:hover {
				background-color: #FAF8F4;
		}
		.contact_cta_button:hover span {
				color: #222222;
		}
		.contact_cta_button:hover span::before {
				background-color: #222222;
		}
}

.contact_cta {
		-webkit-margin-before: 60px;
		        margin-block-start: 60px;
}
@media screen and (min-width: 992px) {
		.contact_cta {
				-webkit-margin-before: 80px;
				        margin-block-start: 80px;
		}
}

.caselist {
		display: -ms-grid;
		display: grid;
		gap: 50px;
		-webkit-padding-before: 40px;
		        padding-block-start: 40px;
		border-top: solid 1px #DBD9CD;
}
@media screen and (min-width: 768px) {
		.caselist {
				-ms-grid-columns: 1fr 40px 1fr;
				grid-template-columns: 1fr 1fr;
				gap: 60px 40px;
				-webkit-padding-before: 60px;
				        padding-block-start: 60px;
		}
}

.case_item a {
		color: #222222;
		-webkit-transition: color 0.3s;
		transition: color 0.3s;
}
@media (hover: hover) and (pointer: fine) {
		.case_item a:hover {
				color: #008C64;
		}
		.case_item a:hover .case_thumbnail img {
				scale: 1.1;
		}
}

.case_thumbnail {
		overflow: hidden;
		border-radius: 6px;
		width: 100%;
		height: auto;
}
.case_thumbnail img {
		display: block;
		width: 100%;
		height: auto;
		-o-object-fit: cover;
		   object-fit: cover;
		-webkit-transition: scale 0.3s;
		transition: scale 0.3s;
}

.case_title {
		display: -webkit-box;
		-webkit-box-orient: vertical; /* 垂直方向に配置 */
		overflow: hidden; /* 溢れた部分を隠す */
		text-overflow: ellipsis; /* 溢れた部分に「...」を表示 */
		-webkit-line-clamp: 2;
		font-size: 1.6rem;
		font-weight: 500;
		line-height: 1.8;
		text-align: left;
		-webkit-margin-before: 15px;
		        margin-block-start: 15px;
}

.case_spec {
		-webkit-margin-before: 15px;
		        margin-block-start: 15px;
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: center;
		    -ms-flex-align: center;
		        align-items: center;
}
.case_spec + .case_spec {
		-webkit-margin-before: 7px;
		        margin-block-start: 7px;
}
.case_spec dt {
		font-size: 1.3rem;
		line-height: 16px;
		-webkit-padding-end: 8px;
		        padding-inline-end: 8px;
		border-right: solid 1px #DBD9CD;
}
.case_spec dd {
		-webkit-box-flex: 1;
		    -ms-flex: 1;
		        flex: 1;
		-webkit-padding-start: 8px;
		        padding-inline-start: 8px;
		font-size: 1.3rem;
		line-height: 16px;
}

.case_category {
		-webkit-margin-before: 20px;
		        margin-block-start: 20px;
		border-top: solid 1px #DBD9CD;
		-webkit-padding-before: 20px;
		        padding-block-start: 20px;
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		gap: 4px;
		-ms-flex-wrap: wrap;
		    flex-wrap: wrap;
}
.case_category li span {
		display: block;
		padding-block: 5px;
		padding-inline: 15px;
		border-radius: 6px;
		font-size: 1.4rem;
		line-height: 1.8;
		color: #222222;
		border: solid 1px #DBD9CD;
}

.post_single_buttonblock {
		-webkit-margin-before: 80px;
		        margin-block-start: 80px;
		border-top: solid 1px #222222;
}
@media screen and (min-width: 992px) {
		.post_single_buttonblock {
				display: -webkit-box;
				display: -ms-flexbox;
				display: flex;
				gap: 25px;
				-webkit-box-align: center;
				    -ms-flex-align: center;
				        align-items: center;
				-webkit-box-pack: justify;
				    -ms-flex-pack: justify;
				        justify-content: space-between;
				-webkit-padding-before: 40px;
				        padding-block-start: 40px;
		}
}

.archive_link {
		position: relative;
		display: block;
		text-align: center;
		font-size: 2.5rem;
		color: #222222;
		-webkit-margin-before: 30px;
		        margin-block-start: 30px;
		-webkit-transition: color 0.3s, opacity 0.3s;
		transition: color 0.3s, opacity 0.3s;
}
@media screen and (min-width: 992px) {
		.archive_link {
				-webkit-box-ordinal-group: 3;
				    -ms-flex-order: 2;
				        order: 2;
				-webkit-margin-before: 0;
				        margin-block-start: 0;
				padding-inline: 30px;
		}
}
.archive_link span {
		width: -webkit-fit-content;
		width: -moz-fit-content;
		width: fit-content;
		padding-inline: 5px;
		color: #008C64;
}
.archive_link::before, .archive_link::after {
		position: absolute;
		top: 50%;
		width: 1px;
		height: 40px;
		background-color: #DBD9CD;
		translate: 0% -50%;
}
@media screen and (min-width: 992px) {
		.archive_link::before, .archive_link::after {
				content: "";
		}
}
.archive_link::before {
		left: 0;
}
.archive_link::after {
		right: 0;
}
@media (hover: hover) and (pointer: fine) {
		.archive_link:hover {
				color: #008C64;
				opacity: 0.7;
		}
}

.single_post_button_group {
		position: relative;
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		border-top: solid 1px #DBD9CD;
		-webkit-padding-before: 20px;
		        padding-block-start: 20px;
		-webkit-margin-before: 30px;
		        margin-block-start: 30px;
		gap: 45px;
}
@media screen and (min-width: 992px) {
		.single_post_button_group {
				display: contents;
		}
}
.single_post_button_group::before {
		content: "";
		position: absolute;
		top: 50%;
		left: 50%;
		width: 1px;
		height: 40px;
		background-color: #DBD9CD;
		translate: 0% -25%;
}
@media screen and (min-width: 992px) {
		.single_post_button_group::before {
				display: none;
		}
}

.single_post_link {
		position: relative;
		color: #222222;
		-webkit-box-flex: 1;
		    -ms-flex: 1;
		        flex: 1;
}
@media screen and (min-width: 768px) {
		.single_post_link {
				font-size: 1.6rem;
				max-width: 215px;
				min-width: 215px;
		}
}
.single_post_link span {
		font-size: 1.2rem;
		display: -webkit-box;
		-webkit-box-orient: vertical; /* 垂直方向に配置 */
		overflow: hidden; /* 溢れた部分を隠す */
		text-overflow: ellipsis; /* 溢れた部分に「...」を表示 */
		-webkit-line-clamp: 2;
		text-align: left;
		color: #222222;
		-webkit-transition: color 0.3s;
		transition: color 0.3s;
}
@media screen and (min-width: 768px) {
		.single_post_link span {
				font-size: 1.6rem;
		}
}
@media (hover: hover) and (pointer: fine) {
		.single_post_link:hover span {
				color: #008C64;
		}
		.single_post_link:hover::before {
				background-color: #008C64;
		}
}
.single_post_link::before {
		content: "";
		position: absolute;
		top: 50%;
		width: 10px;
		height: 18px;
		background-color: #222222;
		-webkit-transition: translate 0.3s, background-color 0.3s;
		transition: translate 0.3s, background-color 0.3s;
}
.single_post_link::after {
		content: "";
		position: absolute;
		top: 50%;
		width: 10px;
		height: 18px;
		background-color: #FAF8F4;
		-webkit-transition: translate 0.3s;
		transition: translate 0.3s;
}
.single_post_link._prev {
		-webkit-padding-start: 45px;
		        padding-inline-start: 45px;
		-webkit-box-ordinal-group: 2;
		    -ms-flex-order: 1;
		        order: 1;
}
@media screen and (min-width: 992px) {
		.single_post_link._prev {
				-webkit-padding-start: 30px;
				        padding-inline-start: 30px;
		}
}
.single_post_link._prev:is(a)::before {
		left: 0%;
		translate: 0% -50%;
		clip-path: polygon(0 50%, 100% 100%, 100% 0%);
}
.single_post_link._prev:is(a)::after {
		left: 0%;
		clip-path: polygon(0 50%, 100% 100%, 100% 0%);
		translate: 1.5px -50%;
}
@media (hover: hover) and (pointer: fine) {
		.single_post_link._prev:is(a):hover::before {
				translate: -3px -50%;
		}
		.single_post_link._prev:is(a):hover::after {
				translate: 0 -50%;
		}
}
.single_post_link._next {
		-webkit-padding-end: 45px;
		        padding-inline-end: 45px;
		-webkit-box-ordinal-group: 4;
		    -ms-flex-order: 3;
		        order: 3;
}
@media screen and (min-width: 992px) {
		.single_post_link._next {
				-webkit-padding-end: 30px;
				        padding-inline-end: 30px;
		}
}
.single_post_link._next:is(a)::before {
		right: 0;
		translate: 0% -50%;
		clip-path: polygon(0% 0%, 100% 50%, 0% 100%);
}
.single_post_link._next:is(a)::after {
		right: 0;
		clip-path: polygon(0% 0%, 100% 50%, 0% 100%);
		translate: -1.5px -50%;
}
@media (hover: hover) and (pointer: fine) {
		.single_post_link._next:is(a):hover::before {
				translate: 3px -50%;
		}
		.single_post_link._next:is(a):hover::after {
				translate: 0 -50%;
		}
}