/*
Theme Name:   updaters
Description:  UPDATERS公式テーマは、株式会社updatersの公式テーマです。WordPressのカスタマイズや開発に役立つ機能を提供します。
Author:       株式会社updaters
Version:      1.0.0
License:      GNU General Public License v2 or later
License URI:  https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  updaters
Domain Path:  /languages
*/
/* =========================================================
   Root（カラー等のみ：スペース用トークンは不使用）
   ========================================================= */
:root {
	/* Colors */
	--color-text-wh: #fff;
	--color-text-bk: #333;
	--color-bg-wh: #fff;
	--color-bg-bk: #333;
	--color-gray: #F7F7F7;
	--color-main: #5F9476;
	--color-submain: #215143;
	--color-back: #F0F2F1;
	--color-yel: #FFE83A;
	--color-red: #DF0004;
	--color-grad: linear-gradient(270deg, #215143 0%, #215143 100%);
	/* 互換用 */
	--txt: var(--color-text-bk);
	--color-text: var(--color-text-bk);
	--color-bg: var(--color-bg-wh);
	/* 既存ブレイクポイント（参照があるため残す） */
	--bp-sm: 576px;
	--bp-md: 768px;
	--bp-lg: 1024px;
	--bp-xl: 1200px;
}

/* =========================================================
   Reset & Base
   ========================================================= */
*, *::before, *::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

:where(article, aside, div, figure, figcaption,
	footer, header, hgroup, main, nav, section, summary) {
	display: block;
}

:where(html) {
	height: 100%;
	-webkit-text-size-adjust: 100%;
	-ms-text-size-adjust: 100%;
	font-size: 100%;
	line-height: 1.75;
	background: #fff;
}

/* 本文ベースをfluid化（14→16px程度） */
html {
	font-size: clamp(14px, 1.25vw, 16px);
	line-height: 1.75;
}

body {
	margin: 0;
	font-family: "Roboto", "Noto Sans JP", sans-serif;
	font-size: 1rem;
	color: var(--color-text-bk);
	background-color: #fff;
}

:where(h1, h2, h3, h4, h5, h6, p, blockquote, pre) {
	margin: 0;
}

address {
	font-style: normal;
}

p + p {
	margin-top: clamp(10px, 1.8vw, 16px);
}

strong {
	font-weight: bold;
}

:where(figure) {
	line-height: 0;
	margin: 0;
}

figcaption {
	display: none;
}

:where(ul) {
	margin: 0;
	padding: 0;
	list-style: disc;
}

:where(ol) {
	margin: 0;
	padding: 0;
	list-style: auto;
}

:where(ol, ul) {
	padding-left: clamp(16px, 4vw, 24px);
}

:where(li) {
	margin: clamp(2px, 0.6vw, 4px) 0;
}

:where(img, picture, video, canvas, svg) {
	display: block;
	max-width: 100%;
	height: auto;
}

:where(table) {
	border-collapse: collapse;
	width: 100%;
}

:where(th, td) {
	text-align: left;
	padding: 0.5em;
}

:where(a) {
	color: inherit;
	text-decoration: none;
}

:where(a:hover, a:focus) {
	opacity: .8;
	transition: opacity .2s ease;
}

:where(button, input, select, textarea) {
	font: inherit;
	line-height: inherit;
	border: none;
	background: none;
}

button {
	cursor: pointer;
}

input:focus, button:focus, select:focus, textarea:focus {
	outline: 2px solid var(--color-main);
	outline-offset: 2px;
}

/* 誤字修正 */
:where(abbr, dfn, mark, small) {
	font-style: normal;
	font-weight: normal;
}

/* Gutenberg */
.wp-block {
	margin-bottom: 1.5em;
}

.alignwide, .alignfull {
	width: 100%;
	max-width: 100%;
	margin: 0 auto;
}

/* Misc */
hr {
	border: none;
	height: 0;
	overflow: visible;
}

blockquote, q {
	quotes: none;
}

blockquote::before, blockquote::after, q::before, q::after {
	content: none;
}

[hidden] {
	display: none !important;
}

/* =========================================================
   サイド（固定SNS）
   ========================================================= */
.floating-sns {
	display: flex;
	align-items: center;
	gap: 10px;
	position: fixed;
	right: -90px;
	top: 60%;
	z-index: 99;
	transform: rotate(90deg) translate(-50%, -50%);
}

.floating-sns p {
	line-height: 1;
	font-family: "Cormorant", serif;
}

.floating-border {
	width: 40px;
	height: 1px;
	background: var(--txt);
}

.floating-sns-con {
	display: flex;
	gap: 10px;
	align-items: center;
}

.floating-sns-con a {
	width: 30px;
	display: block;
	line-height: 0;
	transform: rotate(-90deg);
}

@media (width <=1000px) {
	.floating-sns {
		display: none;
	}
}

/* =========================================================
   Utilities / Layout Helpers
   ========================================================= */
.sp {
	display: none !important;
}

.pc {
	display: block !important;
}

@media (width <=1000px) {
	.pc {
		display: none !important;
	}

	.sp {
		display: block !important;
	}
}

.l-innerWidth {
	max-width: 1200px;
	padding-left: clamp(16px, 5vw, 50px);
	padding-right: clamp(16px, 5vw, 50px);
	margin-left: auto;
	margin-right: auto;
	position: relative;
	z-index: 99;
}

.l-sectionHeight {
	padding-top: clamp(80px, 8vw, 100px);
	padding-bottom: clamp(80px, 8vw, 100px);
}

.img-maru {
	border-radius: 10px;
	overflow: hidden;
}

.seo-hidden {
	display: none !important;
}

.margin-top-20 {
	margin-top: clamp(20px, 3.2vw, 30px);
}

/* =========================================================
   固定ページ共通：ページタイトル
   ========================================================= */
.page-ttl-wrap {
	background: var(--color-main);
	padding-top: clamp(80px, 8vw, 100px);
	padding-bottom: clamp(80px, 8vw, 100px);
}

.page-ttl {
	position: relative;
	display: flex;
	align-items: center;
	gap: clamp(20px, 3.2vw, 30px);
}

.page-ttl h1 {
	position: relative;
	font-size: clamp(32px, 4.8vw, 60px);
	letter-spacing: 0.125em;
	line-height: 1;
	font-weight: 600;
	color: var(--color-text-wh);
}

@media (width <=1000px) {
	.page-ttl {
		position: relative;
		gap: clamp(10px, 2.2vw, 30px) clamp(10px, 2.2vw, 30px);
		flex-direction: column;
		align-items: center;
	}

	.page-ttl h1 {
		font-size: clamp(28px, 5.5vw, 32px);
	}
}

/* コンテンツ内見出し */
.page-ttl02 h2 {
	font-size: clamp(24px, 3.2vw, 36px);
	line-height: 1;
	letter-spacing: 0.125em;
}

.page-ttl02 p {
	margin-top: clamp(4px, .6vw, 5px);
	font-size: clamp(14px, 2vw, 18px);
	line-height: 1;
}

.page-ttl03 h2 {
	font-size: clamp(24px, 3.2vw, 32px);
	line-height: 1;
	padding-bottom: clamp(10px, 1.6vw, 10px);
	margin-bottom: clamp(30px, 5vw, 40px);
	border-bottom: 3px solid var(--color-gray);
	position: relative;
}

.page-ttl03 h2::before {
	position: absolute;
	content: "";
	width: clamp(50px, 15vw, 150px);
	height: 3px;
	background: var(--color-main);
	bottom: -3px;
	left: 0;
}

/* =========================================================
   サイト内ナビ
   ========================================================= */
.page-nav {
	text-align: center;
	margin-bottom: clamp(24px, 4.8vw, 30px);
}

.page-nav.l-sectionHeight {
	padding-bottom: clamp(24px, 4.8vw, 30px);
}

.page-nav ul {
	display: flex;
	flex-wrap: wrap;
	column-gap: clamp(10px, 3.2vw, 20px);
	list-style: none;
	padding-left: 0;
}

.page-nav .btn02 {
	padding: clamp(9px, 1.4vw, 12px) clamp(30px, 6vw, 40px) clamp(7px, 1.2vw, 10px) clamp(20px, 4vw, 20px);
	min-width: clamp(100px, 18vw, 160px);
	filter: drop-shadow(0 0 0 rgba(12, 28, 32, 0));
	border: 1px solid #ccc;
}

.page-nav .btn02-txt {
	font-weight: 400;
	font-size: clamp(12px, 1.8vw, 16px);
}

.page-nav .btn02-arrow {
	width: 26px;
	height: 26px;
}

/* =========================================================
   ボタン
   ========================================================= */
.btn-left {
	display: flex;
	justify-content: flex-start;
}

.btn-right {
	display: flex;
	justify-content: flex-end;
}

.btn-center {
	display: flex;
	justify-content: center;
}

.btn01 {
	display: flex;
	align-items: center;
	color: var(--color-text-bk);
	position: relative;
	filter: drop-shadow(2px 2px 4px rgba(0, 0, 0, .1));
}

.btn01-arrow {
	position: relative;
	margin-left: clamp(16px, 2.6vw, 20px);
	width: 30px;
	height: 30px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--color-bg-bk);
	border-radius: 50px;
}

.white .btn01-txt {
	color: var(--color-text-wh);
}

.white .btn01-arrow {
	border: 1px solid var(--color-bg-wh);
}

.btn02 {
	text-align: center;
	color: var(--color-text-wh);
	display: inline-block;
	background: var(--color-main);
	line-height: 1;
	padding: clamp(12px, 2.1vw, 16px) clamp(50px, 6vw, 60px) clamp(10px, 1.8vw, 14px) clamp(30px, 4vw, 40px);
	min-width: clamp(140px, 22vw, 200px);
	position: relative;
	border-radius: 50px;
	filter: drop-shadow(1px 2px 2px rgba(12, 28, 32, .3));
}

.btn02-arrow {
	position: absolute;
	top: 50%;
	right: 5px;
	width: 30px;
	height: 30px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--color-bg-wh);
	border-radius: 50px;
	transform: translate(0, -50%);
}

.btn02-txt {
	font-size: clamp(16px, 2.1vw, 18px);
	font-weight: 600;
	line-height: 1;
	text-align: center;
}

.btn02.white {
	background: var(--color-bg-wh);
	color: var(--color-text-bk);
}

.btn02.white .btn02-arrow {
	background: var(--color-main);
}

a.btn03 {
	position: relative;
	border-radius: 50px;
	filter: drop-shadow(0 0 6px rgba(12, 28, 32, .2));
}

a.btn03::before {
	position: absolute;
	content: "";
	width: 30px;
	height: 30px;
	border-radius: 50px;
	background: #fff;
	top: 50%;
	right: 10px;
	transform: translate(0, -50%);
	z-index: 98;
}

a.btn03::after {
	position: absolute;
	content: "";
	width: 14px;
	height: 8px;
	background: url(images/arrow.svg) no-repeat center/100%;
	top: 50%;
	right: 18px;
	transform: translate(0, -50%);
	z-index: 99;
}

a.btn03 p {
	color: #fff;
	display: inline-block;
	background: #5B5953;
	padding: clamp(10px, 2vw, 15px) 80px clamp(9px, 1.8vw, 14px) clamp(40px, 5vw, 50px);
	position: relative;
	border-radius: 50px;
}

@media (width <=1000px) {
	.btn-02-wrap {
		margin-top: clamp(16px, 3.2vw, 20px);
	}

	a.btn03::before {
		width: 25px;
		height: 25px;
		right: 6px;
	}

	a.btn03::after {
		width: 12px;
		height: 6px;
		right: 13px;
	}

	a.btn03 p {
		padding: clamp(10px, 2vw, 12px) 80px clamp(9px, 1.6vw, 11px) clamp(30px, 4vw, 40px);
	}
}

/* =========================================================
   PARTS｜CONTACT
   ========================================================= */
.parts-btn-contact-wrap {
	background: var(--color-main);
	color: #fff;
	padding: clamp(60px, 8vw, 100px) clamp(40px, 6vw, 60px) clamp(60px, 8vw, 100px) 0;
	border-left: clamp(10px, 8vw, 120px) solid var(--color-submain);
	display: flex;
	justify-content: space-between;
	align-items: center;
	line-height: 1;
}

.parts-btn-contact-txt {
	margin-left: clamp(-60px, -4vw, -10px);
}

.parts-btn-contact-txt h2 {
	color: #fff;
	font-size: clamp(28px, 3.6vw, 46px);
	letter-spacing: 0.125em;
	font-weight: 700;
}

.parts-btn-contact-txt p {
	margin-top: clamp(4px, .8vw, 7px);
	letter-spacing: 0.06em;
}

@media (width <=1030px) {
	.parts-btn-contact-wrap {
		padding: clamp(30px, 7vw, 50px) 5%;
		flex-direction: column;
		justify-content: center;
		text-align: center;
		border-left: 10px solid var(--color-submain);
		border-right: 10px solid var(--color-submain);
	}

	.parts-btn-contact-txt {
		margin-left: 0;
		margin-bottom: clamp(20px, 4.8vw, 30px);
	}

	.parts-btn-contact-txt h2 {
		font-size: clamp(24px, 5.5vw, 40px);
	}
}

/* =========================================================
   ヘッダー
   ========================================================= */
.header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: clamp(8px, 1.6vw, 10px) clamp(5%, 5vw, 50px);
}

.header-logo {
	display: flex;
	align-items: center;
	width: clamp(80px, 8vw, 110px);
}

@media (max-width: 1399px) {
	.header {
		padding: clamp(7px, 1.4vw, 8px) 5%;
	}

	.header-logo {
		width: clamp(70px, 7vw, 80px);
	}
}

/* PCナビ */
#header-navi {
	display: flex;
	align-items: center;
}

.header-navi-list {
	display: flex;
	align-items: center;
	gap: clamp(12px, 3.2vw, 20px);
	justify-content: flex-end;
}

.header-navi-list li {
	font-weight: 700;
	cursor: pointer;
	line-height: 1;
	list-style: none;
	font-size: clamp(14px, 1.8vw, 16px);
}

.header-navi-list li a {
	color: var(--color-text-bk);
}

/* ハンバーガー */
.menu-trigger {
	position: relative;
	width: 28px;
	height: 20px;
	background: transparent;
	border: none;
	padding: 0;
	cursor: pointer;
	display: none;
	z-index: 1000;
}

.menu-trigger span {
	position: absolute;
	left: 0;
	width: 100%;
	height: 2px;
	background: var(--color-bg-bk);
	transition: transform .25s ease, opacity .25s ease;
}

.menu-trigger span:nth-child(1) {
	top: 0;
}

.menu-trigger span:nth-child(2) {
	top: 50%;
	transform: translateY(-50%);
}

.menu-trigger span:nth-child(3) {
	bottom: 0;
}

.menu-trigger[aria-expanded="true"] span:nth-child(1) {
	transform: translateY(8px) rotate(45deg);
}

.menu-trigger[aria-expanded="true"] span:nth-child(2) {
	opacity: 0;
}

.menu-trigger[aria-expanded="true"] span:nth-child(3) {
	transform: translateY(10px) rotate(-45deg);
}

@media (max-width:1399px) {
	.menu-trigger {
		display: block;
	}

	body.is-menu-open {
		overflow: hidden;
	}

	.is-menu-open .menu-trigger {
		width: 30px;
		height: 0;
	}

	#header-navi {
		display: flex;
		flex-direction: column;
		position: fixed;
		top: 0;
		right: 0;
		width: 75%;
		max-width: 380px;
		height: 100svh;
		padding: 100px 20px 40px;
		background: #fff;
		transform: translateX(100%);
		transition: transform .3s ease;
		z-index: 999;
		overflow-y: auto;
		box-shadow: -5px 0 15px rgba(0, 0, 0, .12);
	}

	#header-navi.is-open {
		transform: translateX(0);
	}

	.header-navi-list {
		flex-direction: column;
		align-items: flex-start;
		width: 100%;
		gap: 0;
	}

	.header-navi-list li {
		width: 100%;
	}

	.header-navi-list li a {
		width: 100%;
		text-align: left;
		padding-top: clamp(16px, 3.6vw, 20px);
		padding-bottom: clamp(14px, 3.2vw, 20px);
		border-bottom: 1px solid #ccc;
		display: block;
	}

	.header-navi-list li:first-child {
		border-top: 1px solid #ccc;
	}
}

/* =========================================================
   フッター
   ========================================================= */
footer {
	background: var(--color-submain);
	padding-top: clamp(60px, 7vw, 80px);
	color: var(--color-text-wh);
}

.footer-inner {
	padding-left: clamp(20px, 8vw, 100px);
	padding-right: clamp(20px, 8vw, 100px);
	margin: 0 auto;
	position: relative;
	z-index: 1;
	display: flex;
	justify-content: space-between;
}

.footer-logo {
	display: block;
	width: clamp(100px, 10vw, 150px);
}

.footer-info {
	margin-top: clamp(16px, 2.6vw, 20px);
}

.footer-list-nav {
	display: flex;
	justify-content: space-between;
	gap: clamp(20px, 5vw, 60px);
	letter-spacing: 0.06em;
}

footer .menu-item {
	list-style: none;
	font-size: clamp(14px, 1.8vw, 16px);
	font-weight: 600;
	margin-bottom: clamp(6px, 2vw, 10px);
}

footer .sub-menu {
	padding-left: clamp(16px, 2.2vw, 25px);
}

footer .sub-menu .menu-item {
	position: relative;
	list-style-type: "ー ";
	font-weight: normal;
}

.footer-links {
	margin-top: clamp(40px, 7vw, 60px);
	text-align: center;
}

.footer-links a {
	font-size: clamp(12px, 1.6vw, 12px);
	color: var(--color-text-wh);
	display: inline-block;
	margin-bottom: clamp(3px, .8vw, 5px);
}

.footer-links a + a {
	margin-left: clamp(10px, 2.2vw, 20px);
}

footer .copyright {
	background: #0a0a0a;
	text-align: center;
	padding: 3px 0 4px;
	line-height: 1;
	color: var(--color-gray);
}

@media (width <=1000px) {
	footer {
		padding-top: clamp(60px, 8vw, 80px);
	}

	.footer-inner {
		padding-left: 5%;
		padding-right: 5%;
		flex-direction: column;
	}

	.footer-logo {
		width: clamp(80px, 18vw, 100px);
	}

	.footer-nav-wrap {
		flex-wrap: wrap;
		gap: 25px 5%;
		margin-top: clamp(40px, 8vw, 60px);
		padding-top: clamp(40px, 8vw, 60px);
		border-top: 1px solid #ccc;
	}

	.footer-list-nav {
		flex-wrap: wrap;
		padding-left: 0;
		gap: 20px 5%;
	}

	.footer-list-nav > .menu-item {
		width: calc((100% - 5%) / 2);
	}
}

/* =========================================================
   TOP 共通
   ========================================================= */
.page-top-ttl {
	margin: 0 0 clamp(30px, 6vw, 45px);
	display: flex;
	align-items: center;
}

.page-top-ttl h2 {
	color: var(--color-main);
	font-size: clamp(45px, 6vw, 60px);
	font-weight: 600;
	line-height: 1;
	padding-right: clamp(16px, 3.2vw, 20px);
}

.page-top-ttl p {
	color: var(--color-text-bk);
	font-size: clamp(16px, 2.6vw, 20px);
	line-height: 1;
}

.page-top-ttl02 {
	color: var(--color-text-wh);
	text-align: center;
}

.page-top-ttl02 h2 {
	color: var(--color-text-wh);
	font-size: clamp(45px, 6vw, 60px);
	font-weight: 600;
	line-height: 1;
	margin-top: clamp(6px, 1vw, 8px);
	filter: drop-shadow(2px 2px 1px rgba(0, 0, 0, .25));
}

.page-top-ttl02 p {
	font-size: clamp(14px, 2vw, 16px);
	line-height: 1;
	font-weight: 600;
	filter: drop-shadow(2px 2px 1px rgba(0, 0, 0, .25));
}

.page-top-ttl03 {
	margin-bottom: clamp(30px, 6vw, 45px);
}

.page-top-ttl03 h2 {
	color: var(--color-main);
	font-size: clamp(45px, 6vw, 60px);
	line-height: 1;
}

.page-top-ttl03 p {
	color: var(--color-text-bk);
	font-size: clamp(16px, 2.6vw, 20px);
	line-height: 1;
	margin-top: clamp(3px, .8vw, 5px);
}

.txt-bigtxt {
	font-size: clamp(18px, 3.2vw, 36px);
	line-height: 1.5;
	letter-spacing: 0.06em;
	font-weight: 600;
}

.txt-bigtxt span {
	color: var(--color-red);
}

.txt-txt-wrap {
	margin-top: clamp(20px, 5vw, 30px);
}

.txt-txt + .txt-txt {
	margin-top: clamp(10px, 2.6vw, 15px);
}

/* =========================================================
   FV
   ========================================================= */
.home-fv {}

.home-fv-con {
	height: min(88svh, 88dvh);
	position: relative;
	overflow: hidden;
	z-index: 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.home-fv-con::before {
	content: "";
	position: absolute;
	width: 100px;
	height: 331px;
	top: 50%;
	left: 0;
	background: url(images/logo_gy.svg) no-repeat center/100px auto;
	transform: translate(0, -50%);
}

.home-fv-txt {
	position: relative;
	z-index: 2;
	margin-left: 15vw;
}

.home-fv-txt-main {
	font-size: clamp(24px, 2.8vw, 36px);
	line-height: 1.6;
	letter-spacing: .4px;
	font-weight: 500;
}

.home-fv-txt-main span {
	color: var(--color-main);
}

.home-fv-txt-sub {
	margin-top: clamp(20px, 4.8vw, 30px);
	display: inline-block;
	border-radius: 5px;
	line-height: 1.5;
	font-size: clamp(16px, 2.6vw, 20px);
}

.home-fv-txt-en {
	margin-top: clamp(30px, 5.5vw, 50px);
	font-size: clamp(12px, 2.8vw, 36px);
	font-weight: 300;
	color: var(--color-main);
	line-height: 1.3;
	letter-spacing: .20px;
}

.home-fv-img {
	width: 50%;
}

.home-fv-scroll {
	position: absolute;
	bottom: 0%;
	left: 40%;
	padding-left: 5px;
	height: 100px;
	color: var(--color-main);
	letter-spacing: .2em;
	font-size: clamp(12px, 1.6vw, 14px);
	text-align: left;
	z-index: 1;
	-webkit-writing-mode: vertical-rl;
	writing-mode: vertical-rl;
}

.home-fv-scroll::before {
	position: absolute;
	top: 0;
	left: 0;
	width: 1px;
	height: 100%;
	background: var(--color-main);
	content: "";
}

.home-fv-scroll::after {
	position: absolute;
	top: 0;
	left: 0;
	width: 1px;
	height: 20px;
	background: #fff;
	content: "";
	animation: 1.5s ease 0s infinite forwards animeScroll;
}

@keyframes animeScroll {
	0% {
		top: 0
	}

	100% {
		top: 80px
	}
}

@media (width <=1000px) {
	.home-fv {
		height: auto;
		max-height: 100%;
	}

	.home-fv-con {
		width: 100%;
		text-align: center;
		padding-right: 0;
		flex-direction: column;
		height: calc(100svh - 41px);
	}

	.home-fv-con::before {
		width: 100px;
		height: 331px;
		z-index: 1;
		top: auto;
		bottom: 0;
		left: 70%;
		background: url(images/logo_gy.svg) no-repeat center/70px auto;
		transform: translate(-50%, 0);
	}

	.home-fv-txt {
		margin-left: 0;
		margin-top: 20vh;
	}

	.home-fv-txt-main {
		font-size: clamp(20px, 5vw, 24px);
		line-height: 1.45;
		font-weight: 700;
	}

	.home-fv-txt-sub {
		display: block;
		width: 100%;
		margin: 0 auto;
		margin-top: clamp(16px, 4.8vw, 20px);
	}

	.home-fv-txt-en {
		margin: 0 auto;
		font-size: clamp(12px, 2.6vw, 12px);
		margin-top: clamp(20px, 5.5vw, 30px);
	}

	.home-fv-img {
		width: 60%;
		position: absolute;
		bottom: 0;
		left: 0;
		border-radius: 0 30px 0 0;
		overflow: hidden;
	}

	.home-fv-scroll {
		display: none;
	}
}

/* =========================================================
   NEWS
   ========================================================= */
#news .l-innerWidth {
	display: flex;
	justify-content: space-between;
	gap: 0;
}

.news-items-wrap {
	width: 70%;
}

@media (width <=1000px) {
	#news .l-innerWidth {
		flex-direction: column;
	}

	.news-items-wrap {
		width: 100%;
	}
}

/* =========================================================
   SERVICE
   ========================================================= */
#home-service {
	background: var(--color-grad);
}

#home-service h2, #home-service p {
	color: var(--color-text-wh);
}

.home-service-con-wrap {
	margin-top: clamp(30px, 6vw, 45px);
}

.home-service-con {
	border-top: 1px solid var(--color-bg-wh);
	padding: clamp(28px, 5.5vw, 30px) 0 clamp(28px, 5.5vw, 30px);
	display: flex;
	align-items: center;
	justify-content: space-between;
	position: relative;
}

.home-service-con:last-child {
	border-bottom: 1px solid var(--color-bg-wh);
}

.home-service-con-txt-number {
	line-height: 1;
	font-size: clamp(24px, 2.4vw, 32px);
	width: 40px;
	padding-right: 40px;
}

.home-service-con-txt {
	line-height: 1.5;
	color: var(--color-text-wh);
	width: calc(100% - 50px - 80px);
	padding-right: 80px;
}

.home-service-con-txt dt {
	font-size: clamp(20px, 2.2vw, 28px);
	letter-spacing: .12em;
	font-weight: 600;
}

.home-service-con-txt dd {
	margin-top: clamp(5px, 1.4vw, 8px);
	font-size: clamp(14px, 2vw, 16px);
}

.home-service-con-btn {
	position: absolute;
	right: 0;
	top: 50%;
	transform: translate(0, -50%);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border: 1px solid var(--color-bg-wh);
	border-radius: 50%;
}

@media (width <=1000px) {
	.home-service-con-wrap {
		margin-top: clamp(20px, 5vw, 30px);
	}

	.home-service-con {
		padding: clamp(28px, 6vw, 30px) 0 clamp(26px, 5.5vw, 28px);
	}

	.home-service-con-txt-number {
		display: none;
	}

	.home-service-con-txt {
		width: calc(100% - 40px);
		padding-right: 0;
	}

	.home-service-con-txt dt {
		font-size: clamp(18px, 4.8vw, 20px);
	}

	.home-service-con-txt dd {
		margin-top: clamp(4px, 1.2vw, 5px);
		font-size: clamp(14px, 3.6vw, 14px);
	}

	.home-service-con-btn {
		width: 30px;
		height: 30px;
	}
}

/* =========================================================
   ABOUT（トップセクション）
   ========================================================= */
#home-about {
	background: var(--color-grad);
}

.home-about-con {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: clamp(60px, 8vw, 100px) clamp(8px, 1vw, 10px);
	background: url(images/about-us-bg.jpg) no-repeat center/cover;
	color: var(--color-text-wh);
	border-radius: 10px;
	filter: drop-shadow(0 0 10px rgba(0, 0, 0, .2));
}

.home-about-con + .home-about-con {
	margin-top: clamp(20px, 4.8vw, 30px);
}

#home-recruit {
	background: var(--color-main);
}

.home-recruit-con {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: clamp(60px, 8vw, 100px) clamp(8px, 1vw, 10px);
	background: url(images/recruit-link-bg.jpg) no-repeat center/cover;
	color: var(--color-text-wh);
	border-radius: 10px;
	filter: drop-shadow(0 0 10px rgba(0, 0, 0, .2));
}

/* デジマバナー */
.dm-banner {
	padding: clamp(60px, 8vw, 80px) 0 0;
}

.dm-banner-wrap {
	display: flex;
	justify-content: center;
	column-gap: clamp(20px, 4.8vw, 30px);
}

.dm-banner-wrap a {
	display: inline-block;
	width: 50%;
}

@media (width <=768px) {
	.dm-banner {
		padding: clamp(60px, 8vw, 80px) 0 0;
	}

	.dm-banner-wrap {
		flex-direction: column;
		gap: clamp(10px, 3.2vw, 15px) clamp(10px, 3.2vw, 15px);
	}

	.dm-banner-wrap a {
		width: 100%;
	}
}

/* =========================================================
   ABOUT 詳細
   ========================================================= */
#mvv {
	background: var(--color-bg-wh);
}

#mvv .l-sectionHeight {
	padding-top: 0;
}

.about-mvv-item + .about-mvv-item {
	margin-top: clamp(40px, 6vw, 60px);
}

.about-mvv-item-txt {
	font-size: clamp(18px, 2.2vw, 24px);
	font-weight: 600;
	color: var(--color-main);
}

ul.about-mvv-item-txt {
	font-size: clamp(16px, 1.8vw, 20px);
	line-height: 2.5;
	color: var(--color-text-bk);
}

#member {
	background: var(--color-back);
}

#member .page-ttl03 h2 {
	border-color: #ccc;
}

.about-member h3.wp-block-heading {
	margin-top: clamp(40px, 6vw, 60px);
	margin-bottom: clamp(20px, 4vw, 30px);
}

.about-member-txt {
	font-size: clamp(12px, 1.6vw, 12px);
	color: var(--color-main);
}

#message {
	background: var(--color-gray);
	position: relative;
	z-index: 0;
}

#message .l-sectionHeight {
	padding-bottom: clamp(120px, 10vw, 180px);
}

#message .page-ttl03 h2 {
	border-color: var(--color-back);
}

.about-message-contents {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: clamp(20px, 3.2vw, 30px);
}

.about-message-ceo {
	width: 30%;
}

.about-message-ceo-name {
	margin-top: clamp(8px, 1.6vw, 10px);
}

.about-message-ceo-name span {
	color: var(--color-main);
}

.about-message-txt {
	width: calc(70% - 30px);
	line-height: 1.75;
}

.about-message-txt p:first-child {
	font-weight: 600;
}

.about-message-txt p + p {
	margin-top: clamp(16px, 3.2vw, 20px);
}

#outline {
	margin-top: clamp(-80px, -6vw, -60px);
	border-radius: 60px 60px 0 0;
	background: var(--color-grad);
	color: var(--color-text-wh);
	position: relative;
	z-index: 1;
}

.about-outline {
	display: flex;
	justify-content: space-between;
}

.about-outline-wrap {
	width: 70%;
}

.about-outline-wrap dl {
	padding: clamp(20px, 4.8vw, 40px) 0;
	border-bottom: 1px solid var(--color-back);
	display: flex;
}

.about-outline-wrap dl:first-child {
	padding-top: 0;
}

.about-outline-wrap dt {
	font-weight: bold;
	display: block;
	width: 25%;
	min-width: 170px;
}

.about-outline-wrap dd a {
	color: var(--color-text-bk);
}

#map {
	text-align: center;
}

#map h2.page-ttl01-ttl {
	color: var(--color-main);
}

#map .page-ttl01-subttl {
	color: var(--color-text-bk);
}

.about-map-wrap {
	display: flex;
	justify-content: center;
	gap: 3%;
	margin-top: clamp(20px, 4.8vw, 30px);
}

.about-map {
	width: calc((100% - 3%) / 2);
}

.map-iframe-box {
	position: relative;
	padding-bottom: 56.25%;
	height: 0;
	overflow: hidden;
}

.map-iframe-box iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

@media (width <=1000px) {
	#outline {
		margin-top: clamp(-80px, -8vw, -60px);
		border-radius: 30px 30px 0 0;
	}

	.about-outline {
		flex-direction: column;
	}

	.about-outline-wrap {
		width: 100%;
		text-align: left;
	}

	.about-outline-wrap dl {
		padding: clamp(20px, 4.8vw, 20px) 0;
		flex-direction: column;
	}

	.about-outline-wrap dl:first-child {
		border-top: 1px solid var(--color-back);
		padding-top: clamp(20px, 4.8vw, 20px);
		margin-top: clamp(20px, 4.8vw, 20px);
	}

	.about-outline-wrap dt, .about-outline-wrap dd {
		width: 100%;
	}

	.about-outline-wrap dd {
		margin-top: clamp(3px, .8vw, 5px);
	}

	.about-map-wrap {
		flex-direction: column;
		gap: clamp(20px, 5.5vw, 30px);
	}

	.about-map {
		width: 100%;
	}
}

/* オリジナル追記: CEO写真非表示を維持 */
.about-message-ceo {
	display: none;
}

.about-message-txt {
	width: 100%;
	line-height: 1.75;
}

.about-message-txt-ceo-name {
	text-align: right;
	line-height: 1.25;
}

.about-message-txt-ceo-name span {
	color: var(--color-main);
	font-size: clamp(12px, 1.6vw, 14px);
}

/* =========================================================
   事業紹介一覧
   ========================================================= */
.service {
	background: var(--color-grad) no-repeat left center / 50% auto;
}

.service-page {
	padding: clamp(60px, 8vw, 80px) clamp(30px, 6vw, 60px);
	background: var(--color-bg-wh);
	filter: drop-shadow(5px 10px 12px rgba(0, 0, 0, .05));
}

.service-concept-en {
	font-size: clamp(12px, 1.6vw, 14px);
	font-weight: 600;
	letter-spacing: .12em;
	line-height: 1;
	color: var(--color-main);
}

.service-concept-bigtxt {
	margin-top: clamp(8px, 1.6vw, 10px);
	font-size: clamp(22px, 2.2vw, 32px);
	line-height: 1;
	font-weight: 600;
	color: var(--color-text-bk);
}

.service-concept-txt {
	margin-top: clamp(16px, 3.2vw, 20px);
}

.service-contents {
	margin-top: clamp(40px, 6vw, 60px);
}

.service-contents-item {
	border-top: 1px solid #ccc;
	padding: clamp(40px, 7vw, 60px) 0;
}

.service-contents-item:last-child {
	border-bottom: 1px solid #ccc;
}

.service-contents-item-ttl {
	font-size: clamp(20px, 2.6vw, 32px);
	line-height: 1;
	font-weight: 600;
	color: var(--color-text-bk);
}

.service-contents-item-ttl-en {
	font-size: clamp(12px, 1.6vw, 14px);
	letter-spacing: .12em;
	line-height: 1;
	margin-top: clamp(6px, 1.6vw, 8px);
	color: var(--color-main);
}

.service-contents-item-main {
	display: flex;
	gap: clamp(16px, 3.2vw, 20px) clamp(16px, 3.2vw, 20px);
	margin-top: clamp(15px, 3vw, 20px);
}

.service-contents-item-main-img {
	width: 100%;
	max-width: 400px;
	position: relative;
	overflow: hidden;
	border-radius: 6px;
}

.service-contents-item-main-txt-wrap {
	width: calc(100% - 250px);
}

.service-contents-item-main-bigtxt {
	font-size: clamp(18px, 2.6vw, 20px);
	line-height: 1.5;
	font-weight: 600;
}

.service-contents-item-main-txt {
	margin-top: clamp(8px, 2vw, 10px);
}

@media (width <=1000px) {
	.service-page {
		padding: clamp(40px, 8vw, 60px) 5%;
	}

	.service-contents-item-ttl {
		font-size: clamp(20px, 5.5vw, 24px);
	}

	.service-contents-item-main {
		flex-direction: column;
		margin-top: clamp(16px, 5vw, 20px);
	}

	.service-contents-item-main-txt-wrap {
		width: 100%;
	}
}

/* =========================================================
   事業紹介 詳細
   ========================================================= */
.service-content .page-ttl-wrap {
	background: url(./images/service-road-infrastructure-top.jpg);
}

.service-pavement .page-ttl-wrap {
	background: url(./images/service-pavement-top.jpg);
}

.service-hillside .page-ttl-wrap {
	background: url(./images/service-hillside-top.jpg);
}

.service-slope-protection .page-ttl-wrap {
	background: url(./images/service-slope-protection-top.jpg);
}

.service-snow-removal .page-ttl-wrap {
	background: url(./images/service-snow-removal-top.jpg);
}

.service-content h1 {
	color: #fff;
	filter: drop-shadow(0 0 6px rgba(0, 0, 0, .2));
}

.service-content-concept-bigttx {
	font-size: clamp(22px, 2.6vw, 30px);
	color: var(--color-main);
	font-weight: 600;
}

.service-content-concept {
	margin-top: clamp(30px, 5vw, 60px);
	display: flex;
	justify-content: space-between;
	gap: clamp(20px, 3.2vw, 30px);
}

.service-content-concept-txt {
	width: 50%;
}

.service-content-concept-txt p + p {
	margin-top: clamp(16px, 3.2vw, 20px);
}

.service-content-concept-img {
	width: calc(50% - 30px);
}

.service-content-works {
	background: var(--color-gray);
	padding: clamp(60px, 7vw, 80px) clamp(30px, 5vw, 50px);
	margin-top: clamp(40px, 6vw, 60px);
}

.service-content-works .page-ttl3 h2,
.service-content-works .page-ttl03 h2 {
	font-size: clamp(24px, 2.2vw, 32px);
	padding-bottom: clamp(16px, 3vw, 20px);
	margin-bottom: clamp(24px, 4vw, 32px);
	border-bottom: 3px solid #ccc;
	position: relative;
}

.service-content-works-list ul li {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.service-content-works-list ul li + li {
	margin-top: clamp(20px, 5.5vw, 30px);
}

.service-content-works-list-item-number {
	width: calc(64px + 30px);
	font-size: clamp(40px, 5vw, 64px);
	color: var(--color-main);
	font-weight: 600;
	padding-right: 30px;
	margin-right: 30px;
	border-right: 1px solid #ccc;
}

.service-content-works-list-item-txt {
	width: calc(100% - (64px + 30px + 30px));
}

.service-content-works-list-item-txt h3 {
	font-size: clamp(18px, 2vw, 24px);
	font-weight: 600;
}

.service-content-works-list-item-txt p {
	margin-top: clamp(6px, 1.8vw, 8px);
}

/* =========================================================
   記事ページ共通
   ========================================================= */
.post-content-main > * {
	margin-bottom: clamp(24px, 4.8vw, 30px);
}

/* ブロックエディター見出し */
h2.wp-block-heading {
	font-size: clamp(20px, 2.2vw, 24px);
	line-height: 1.5;
	color: var(--color-text-bk);
	background-color: var(--color-gray);
	padding: clamp(12px, 2.6vw, 15px) clamp(10px, 2vw, 12px) clamp(12px, 2.6vw, 12px);
	border-bottom: 1px solid var(--color-main);
	margin-top: clamp(80px, 8vw, 120px);
	margin-bottom: clamp(30px, 4vw, 40px);
}

h3.wp-block-heading {
	font-size: clamp(16px, 2vw, 20px);
	line-height: 1.25;
	color: var(--color-text-bk);
	margin-top: clamp(50px, 6vw, 60px);
	position: relative;
	padding: 2px 5px;
	border-left: solid 5px var(--color-main);
	margin-bottom: clamp(26px, 3.2vw, 32px);
}

h4.wp-block-heading {
	font-size: clamp(14px, 1.8vw, 18px);
	line-height: 1.5;
	color: var(--color-text-bk);
	padding-bottom: clamp(10px, 1.6vw, 10px);
	border-bottom: 1px solid var(--color-main);
	margin-top: clamp(24px, 3vw, 32px);
	margin-bottom: clamp(24px, 3vw, 32px);
}

h5.wp-block-heading {
	margin-top: clamp(24px, 3vw, 32px);
}

h6.wp-block-heading {
	margin-top: clamp(24px, 3vw, 32px);
}

.wp-block-list {
	margin-top: clamp(20px, 5vw, 30px);
}

.wp-block-image {
	margin-top: clamp(10px, 2.6vw, 15px);
}

figure.wp-block-embed.wp-has-aspect-ratio {
	position: relative;
	width: 100%;
	padding-bottom: 56.25%;
}

figure.wp-block-embed.wp-has-aspect-ratio .wp-block-embed__wrapper {
	position: absolute;
	inset: 0;
}

figure.wp-block-embed.wp-has-aspect-ratio .wp-block-embed__wrapper iframe {
	width: 100%;
	height: 100%;
	display: block;
	border: none;
}

.wp-block-gallery {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: center;
}

.wp-block-gallery .wp-block-image {
	flex: 0 1 calc(33.333% - 10px);
	box-sizing: border-box;
}

.wp-block-gallery .wp-block-image img {
	width: 100%;
	height: auto;
	display: block;
}

@media (width <=999px) {
	.wp-block-gallery .wp-block-image {
		flex: 0 1 calc(50% - 10px);
	}
}

@media (width <=480px) {
	.wp-block-gallery .wp-block-image {
		flex: 0 1 100%;
	}
}

@media (width <=999px) {
	.wp-block-column + .wp-block-column {
		margin-top: clamp(24px, 5.5vw, 30px);
	}
}

.wp-block-columns {
	display: flex;
	flex-wrap: wrap;
	gap: 5%;
}

.wp-block-columns + .wp-block-columns {
	margin-top: clamp(40px, 6vw, 60px);
}

.wp-block-columns.has-2-columns .wp-block-column {
	flex: 0 1 calc(50% - 20px);
	box-sizing: border-box;
}

.wp-block-columns.has-3-columns .wp-block-column {
	flex: 0 1 calc(33.333% - 20px);
}

.wp-block-columns.has-4-columns .wp-block-column {
	flex: 0 1 calc(25% - 20px);
}

@media (width <=999px) {

	.wp-block-columns.has-2-columns .wp-block-column,
	.wp-block-columns.has-3-columns .wp-block-column,
	.wp-block-columns.has-4-columns .wp-block-column {
		flex: 0 1 100%;
	}
}

/* WPボタン */
.wp-block-button__link {
	margin-top: clamp(24px, 5.5vw, 30px);
	position: relative;
	display: inline-block;
	padding: clamp(12px, 2.6vw, 15px) 80px clamp(11px, 2.4vw, 14px) clamp(40px, 6vw, 50px);
	border-radius: 50px;
	filter: drop-shadow(0 0 6px rgba(12, 28, 32, .2));
	background: var(--color-main);
	color: #fff;
	line-height: 1;
}

.wp-block-button__link::before {
	position: absolute;
	content: "";
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: #fff;
	top: 50%;
	right: 4px;
	transform: translateY(-50%);
	z-index: 98;
}

.wp-block-button__link::after {
	position: absolute;
	content: "";
	width: 14px;
	height: 8px;
	background: url("images/arrow.svg") no-repeat center/100%;
	top: 50%;
	right: 13px;
	transform: translateY(-50%);
	z-index: 99;
}

/* コード/表/引用 */
.wp-block-preformatted {
	margin-top: clamp(20px, 5.5vw, 30px);
	background-color: var(--color-back);
	border: 1px solid #ccc;
	border-left: 5px solid var(--color-main);
	padding: clamp(16px, 3.6vw, 20px);
	font-family: "Roboto", "Noto Sans JP", sans-serif;
	line-height: 1.6;
	overflow-x: auto;
	white-space: pre-wrap;
	word-wrap: break-word;
}

.wp-block-table > table {
	margin-bottom: 0;
}

.wp-block-table table, .wp-block-flexible-table-block-table {
	border: none;
	border-collapse: collapse;
	border-spacing: 0;
	line-height: 1.6;
	max-width: 100%;
	text-align: left;
	width: 100%;
}

.wp-block-table thead td, .wp-block-table thead th,
.wp-block-flexible-table-block-table thead td, .wp-block-flexible-table-block-table thead th {
	background-color: var(--thead-color--bg, var(--color-main));
	color: var(--thead-color--txt, #fff);
}

.wp-block-table td, .wp-block-table th,
.wp-block-flexible-table-block-table td, .wp-block-flexible-table-block-table th {
	background-clip: padding-box;
	border: 1px solid #dcdcdc;
	min-width: 0 !important;
	padding: 8px 12px;
	position: relative;
	vertical-align: top;
	z-index: 0;
}

.wp-block-table > table tr > :first-child:not(.-no1),
.wp-block-flexible-table-block-table tr > :first-child:not(.-no1) {
	max-width: auto;
	min-width: 0;
	width: auto;
}

.wp-block-separator {
	margin: clamp(40px, 7vw, 60px) 0;
	margin-left: auto;
	margin-right: auto;
	max-width: 200px;
	border-top: 1px solid rgba(0, 0, 0, .3);
}

.wp-block-quote {
	padding: 1.5em 2em 1.5em 3em;
	background: var(--color-gray);
	position: relative;
	margin-top: clamp(20px, 5.5vw, 30px);
}

.wp-block-quote::before {
	position: absolute;
	content: "";
	display: block;
	width: 5px;
	height: calc(100% - 3em);
	top: 1.5em;
	left: 1.5em;
	border-left: solid 1px rgba(180, 180, 180, .75);
	border-right: solid 1px rgba(180, 180, 180, .75);
}

/* =========================================================
   記事リスト｜縦リスト
   ========================================================= */
.post-time-item {
	font-size: clamp(12px, 1.6vw, 14px);
	line-height: 1;
	display: inline-block;
}

.post-taxonomy {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: clamp(8px, 2vw, 10px) clamp(4px, 1.8vw, 5px);
}

.post-taxonomy-item, a .post-taxonomy-item {
	position: relative;
	display: inline-block;
	font-size: clamp(12px, 1.6vw, 14px);
	line-height: 1;
	color: var(--color-main);
	padding-left: 10px;
	margin-top: 0;
}

.post-taxonomy-item::before, a .post-taxonomy-item::before {
	position: absolute;
	content: "#";
	font-size: clamp(12px, 1.6vw, 14px);
	top: 50%;
	left: 0;
	transform: translateY(-50%);
}

.post-tag {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: clamp(8px, 2vw, 10px) clamp(4px, 1.8vw, 5px);
}

.post-tag-item, a .post-tag-item {
	font-size: clamp(12px, 1.6vw, 14px);
	position: relative;
	color: #A0A0A0;
}

.c-postList__items {
	padding-left: 0;
}

.c-postList__item {
	list-style: none;
}

.c-postList__item > a {
	padding-top: clamp(15px, 5.5vw, 30px);
	padding-bottom: clamp(15px, 5vw, 25px);
	padding-left: 8px;
	border-bottom: 1px solid #ccc;
	color: var(--color-text-bk);
	display: block;
}

.c-postList__item > a:hover {
	opacity: .8;
	transition: opacity .3s ease;
}

.c-postList__item:first-child > a {
	border-top: 1px solid #ccc;
}

.c-postList__info {
	display: flex;
	align-items: center;
	gap: clamp(10px, 3.2vw, 20px);
	line-height: 1;
	flex-wrap: wrap;
}

.c-postList__text {
	margin-top: clamp(6px, 2.6vw, 8px);
}

@media (width <=1000px) {
	.c-postList__info {
		gap: clamp(8px, 2.4vw, 8px);
	}

	.c-postList__text {
		margin-top: clamp(8px, 3.2vw, 8px);
		font-size: clamp(16px, 2.6vw, 16px);
		font-weight: normal;
		line-height: 1.3;
	}
}

/* =========================================================
   記事リスト｜1カラム
   ========================================================= */
.c-1columnList {
	margin-top: clamp(60px, 8vw, 120px);
	border-top: 1px solid #ccc;
	padding-top: clamp(40px, 7vw, 60px);
}

.c-1columnList__items {
	margin-top: clamp(20px, 5.5vw, 30px);
}

.c-1columnList__item {
	width: 100%;
	max-width: 700px;
	margin: 0 auto;
}

.c-1columnList__item + .c-1columnList__item {
	margin-top: clamp(30px, 6vw, 40px);
}

.c-1columnList__link {
	gap: 5%;
	color: var(--color-text-bk);
	display: block;
}

.c-1columnList__imgWrap {
	border-radius: 5px;
	width: 100%;
	aspect-ratio: 16/9;
	position: relative;
	overflow: hidden;
}

.c-1columnList__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 50%;
}

.c-1columnList__cat {
	margin-top: clamp(10px, 2.6vw, 10px);
	display: flex;
	gap: 2px 8px;
	flex-wrap: wrap;
	color: var(--color-main);
}

.c-1columnList__catItem {
	background: #141212;
	padding: 3px 8px 2px;
	line-height: 1;
	font-size: clamp(12px, 1.6vw, 14px);
	border-radius: 20px;
}

/* =========================================================
   記事リスト｜2カラム
   ========================================================= */
.c-2columnList {
	margin-top: clamp(60px, 8vw, 120px);
	border-top: 1px solid #ccc;
	padding-top: clamp(40px, 7vw, 60px);
}

.c-2columnList__items {
	margin-top: clamp(20px, 5.5vw, 30px);
}

.c-2columnList__item {
	width: calc((100% - 5%) / 2);
}

.c-2columnList__item + .c-2columnList__item {
	margin-top: clamp(16px, 3.2vw, 20px);
}

.c-2columnList__link {
	gap: 5%;
	color: var(--color-text-bk);
	display: block;
}

.c-2columnList__imgWrap {
	border-radius: 5px;
	width: 100%;
	aspect-ratio: 16/9;
	position: relative;
	overflow: hidden;
}

.c-2columnList__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 50%;
}

.c-2columnList__cat {
	margin-top: clamp(10px, 2.6vw, 10px);
	display: flex;
	gap: 2px 8px;
	flex-wrap: wrap;
	color: var(--color-main);
}

.c-2columnList__catItem {
	background: #141212;
	padding: 3px 8px 2px;
	line-height: 1;
	font-size: clamp(12px, 1.6vw, 14px);
	border-radius: 20px;
}

/* =========================================================
   記事リスト｜3カラム
   ========================================================= */
.c-3columnList__items {
	display: flex;
	gap: 30px 2.5%;
	padding-left: 0;
	list-style: none;
	flex-wrap: wrap;
}

.c-3columnList__item {
	background: var(--color-bg-wh);
	border-radius: 5px;
	width: calc((100% - 5%) / 3);
	filter: drop-shadow(1px 1px 7px rgba(0, 0, 0, .08));
}

.c-3columnList__link {
	color: var(--color-text-bk);
	display: block;
}

.c-3columnList__imgWrap {
	border-radius: 5px 5px 0 0;
	width: 100%;
	aspect-ratio: 16/9;
	position: relative;
	overflow: hidden;
}

.c-3columnList__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 50%;
}

.c-3columnList__txt {
	background: var(--color-bg-wh);
	padding: clamp(16px, 3.2vw, 20px) clamp(16px, 3.2vw, 20px) clamp(12px, 2.6vw, 15px);
}

.c-3columnList__title {
	font-weight: 600;
	line-height: 1.5;
	margin-top: clamp(10px, 2.6vw, 10px);
	font-size: clamp(16px, 2.1vw, 18px);
}

.c-3columnList__taxonomy {
	display: flex;
	gap: 2px 8px;
	flex-wrap: wrap;
	margin-top: clamp(10px, 2.6vw, 10px);
	justify-content: space-between;
}

.c-3columnList__taxonomy-items {
	width: calc(100% - 72px - 8px);
}

.c-3columnList .post-time-item {
	position: absolute;
	right: 10px;
	bottom: 10px;
}

@media (width <=1000px) {
	.c-3columnList__items {
		margin-top: clamp(20px, 5.5vw, 30px);
		gap: clamp(20px, 5.5vw, 20px) 2.5%;
	}

	.c-3columnList__item {
		width: 100%;
	}

	.c-3columnList__item + .c-3columnList__item {
		margin-top: clamp(16px, 3.2vw, 20px);
	}

	.c-3columnList__txt {
		width: 100%;
		padding: clamp(12px, 2.6vw, 15px) 5% clamp(16px, 3.2vw, 20px);
	}

	.c-3columnList__link {
		flex-direction: column;
		gap: clamp(10px, 2.6vw, 10px) 0;
	}
}

/* =========================================================
   事例カード
   ========================================================= */
.c-case-columnList {
	padding-left: 0;
	display: flex;
	flex-wrap: wrap;
	gap: clamp(16px, 3.2vw, 20px) clamp(16px, 3.2vw, 20px);
}

.c-case-columnList-item {
	width: calc((100% - 40px) / 3);
	list-style: none;
}

.c-case-columnList-con {
	padding: clamp(20px, 4.8vw, 30px);
	border: 1px solid #ccc;
	border-radius: 10px;
	background: var(--color-bg-wh);
	display: block;
}

.c-case-columnList-con-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: clamp(16px, 3.2vw, 20px);
}

.c-case-columnList-con-top-txt {
	width: calc(100% - 80px - 20px);
}

.c-case-columnList-con-top-txt-ttl {
	font-size: clamp(16px, 2.1vw, 18px);
	font-weight: 600;
	margin-top: clamp(8px, 1.8vw, 8px);
	line-height: 1.5;
}

.c-case-columnList-con-top-img {
	width: 80px;
	height: auto;
	border-radius: 990px;
	overflow: hidden;
}

.c-case-columnList-con-under {
	margin-top: clamp(16px, 3.2vw, 20px);
}

@media (width <=1000px) {
	.c-case-columnList {
		gap: clamp(16px, 3.2vw, 20px) 5%;
	}

	.c-case-columnList-item {
		width: 100%;
	}

	.c-case-columnList-con {
		padding: clamp(16px, 3.6vw, 20px) 5%;
	}

	.c-case-columnList-con-top-txt {
		width: 100%;
	}

	.c-case-columnList-con-top-img {
		display: none;
	}

	.c-case-columnList-con-under {
		margin-top: clamp(12px, 2.6vw, 15px);
	}
}

/* =========================================================
   アーカイブ：タクソノミー
   ========================================================= */
.c-archive-taxonomy-wrap {
	margin-bottom: clamp(30px, 6vw, 40px);
}

.c-archive-taxonomy-list {
	display: flex;
	gap: clamp(10px, 3.2vw, 15px);
	list-style: none;
	margin: 0;
	padding: 0;
	flex-wrap: wrap;
}

.c-archive-taxonomy-item {
	display: inline-block;
	border: 1px solid #ccc;
	border-radius: 50px;
}

.c-archive-taxonomy-item .btn02 {
	padding: clamp(9px, 1.4vw, 12px) clamp(40px, 6vw, 40px) clamp(7px, 1.2vw, 10px) clamp(20px, 4vw, 20px);
	min-width: clamp(120px, 16vw, 140px);
	filter: drop-shadow(0 0 0 rgba(12, 28, 32, 0));
}

.c-archive-taxonomy-item .btn02-txt {
	font-weight: 400;
}

.c-archive-taxonomy-item .btn02-arrow {
	width: 26px;
	height: 26px;
}

/* =========================================================
   記事詳細
   ========================================================= */
.post {
	display: flex;
	justify-content: space-between;
	column-gap: clamp(30px, 6vw, 60px);
	line-height: 1.75;
}

.post-main {
	width: calc(100% - 300px - 60px);
	margin-left: auto;
	margin-right: auto;
}

h1.post-ttl {
	font-size: clamp(24px, 3.4vw, 36px);
	color: var(--color-text-bk);
	line-height: 1.3;
	margin-bottom: clamp(24px, 6vw, 36px);
}

.post-info {
	display: flex;
	gap: clamp(16px, 3.2vw, 20px);
	margin-bottom: clamp(40px, 8vw, 60px);
	width: 100%;
	justify-content: space-between;
	flex-direction: row-reverse;
}

.post-main a.post-taxonomy-item {
	font-size: clamp(14px, 2.4vw, 18px);
}

.post-thumbnail {
	width: 100%;
	aspect-ratio: 16/9;
	position: relative;
	overflow: hidden;
	margin-bottom: clamp(20px, 5.5vw, 30px);
}

#post-footer {
	background: var(--color-back);
}

#post-footer .page-ttl03 h2 {
	border-bottom: #ccc 3px solid;
}

@media (width <=999px) {
	.post-main {
		width: 100%;
	}

	h1.post-ttl {
		font-size: clamp(20px, 5.2vw, 24px);
		margin-bottom: clamp(20px, 5.5vw, 24px);
	}

	.post-main a.post-taxonomy-item {
		font-size: clamp(14px, 3.6vw, 14px);
	}
}

/* 事例詳細ヘッダー等 */
.post-case-header {
	display: flex;
	justify-content: space-between;
	gap: clamp(16px, 3.2vw, 20px);
	margin-bottom: clamp(24px, 6vw, 40px);
}

.post-case-header-txt {
	width: calc(100% - 120px - 20px);
}

.post-case-header .post-info {
	margin-bottom: 0;
}

.post-case-header .c-case-columnList-con-top-img {
	width: 120px;
	height: 120px;
}

#post-case a .post-taxonomy-item {
	font-size: clamp(14px, 2.6vw, 16px);
}

#post-case .post-info {
	flex-direction: row;
}

.post-case-info {
	padding-bottom: clamp(20px, 6vw, 30px);
	border-bottom: 1px solid #ccc;
	margin-bottom: clamp(20px, 6vw, 30px);
}

.post-case-info-content {
	display: flex;
	background: var(--color-gray);
	gap: clamp(5px, 3vw, 20px) clamp(5px, 3vw, 20px);
	padding: clamp(15px, 5vw, 30px) clamp(20px, 5vw, 35px) clamp(12px, 3.6vw, 18px);
	flex-wrap: wrap;
}

.post-case-info-content-item {
	display: flex;
	width: calc(50% - 10px);
}

@media (width <=999px) {
	.post-case-header-txt {
		width: 100%;
	}

	.post-case-header .c-case-columnList-con-top-img {
		display: none;
	}

	#post-case a .post-taxonomy-item {
		font-size: clamp(14px, 3.6vw, 14px);
	}

	.post-case-info {
		padding-bottom: clamp(16px, 4.8vw, 20px);
		margin-bottom: clamp(16px, 4.8vw, 20px);
	}

	.post-case-info-content {
		gap: clamp(5px, 2.5vw, 5%) 5%;
		padding: clamp(12px, 4vw, 15px) 5% clamp(12px, 3.6vw, 12px);
	}

	.post-case-info-content-item {
		width: calc(50% - 2.5%);
	}
}
/* --------------------------------
   記事アーカイブ｜事例
-------------------------------- */
.case-filter-form {
}
.case-filter-submit-reset {
    display: inline-block;
    padding: 6px 20px 5px;
    line-height: 1;
    border-radius: 5px;
    border: 1px solid #ccc;
    color: #5a5a5a;
    border-right: 1px solid #ccc;
}
.case-filter-submit-area {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    column-gap: 20px;
}
.case-selected-filters-display {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 10px;
    line-height: 1;
}
.case-selected-filter-item {
}
.case-filter-submit-btn {
    display: inline-block;
    padding: 6px 20px 5px;
    line-height: 1;
    border-radius: 5px;
    color: var(--color-text-bk);
    cursor: pointer;
    border: 1px solid #ccc;
}
.case-filter {
    margin-bottom: 40px;
}
.case-tab-buttons {
    margin-top: 20px;
    display: flex;
    justify-content: space-between;
    column-gap: 5px;
    border-bottom: 2px solid #ddd;
}
.case-tab-button {
    width: calc((100% / 3) - 5px);
    padding: 10px 20px 9px;
    line-height: 1;
    cursor: pointer;
    color: var(--color-text-bk);
    background: var(--color-gray);
}
.case-tab-button.is-active {
    font-weight: bold;
    border-bottom-color: var(--color-main);
}
.case-tab-panel {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    border: none;
    padding-top: 0;
    padding-bottom: 0;
    transition: all 0.4s ease-out;
}
.case-tab-panel.is-active {
    opacity: 1;
    padding-top: 20px;
    padding-bottom: 20px;
    max-height: 500px;
}
.case-checkbox-group {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 20px;
    border: none;
}
.case-checkbox-items {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 20px;
}
.case-checkbox-item {
    display: flex;
    align-items: center;
    gap: 10px;
}
.case-checkbox input[type="checkbox"] {
    width: 20px;
    height: 20px;
    cursor: pointer;
}
@media (max-width: 1000px) {
    .case-filter-form {
        display: flex;
        flex-direction: column;
        row-gap: 8px;
    }
    .case-filter-submit-reset {
        display: inline-block;
        padding: 6px 15px 5px;
        line-height: 1;
        border-radius: 5px;
        border: 1px solid #ccc;
        color: #5a5a5a;
        border-right: 1px solid #ccc;
        font-size: 14px;
    }
    .case-selected-filters-display {
        margin-bottom: 10px;
        margin-top: 10px;
    }
    .case-tab-buttons,.case-tab-panels,.case-filter-submit-area {
        display: contents;
    }
    .case-tab-buttons {
        border-bottom: none; margin-top: 0;
    }
    .case-tab-button {
        width: 100%;
        display: block;
        text-align: left;
        padding: 10px 16px;
        border: 1px solid #ddd;
        border-radius: 8px;
        background: #f6f8fa;
        color: var(--color-text-bk);
        position: relative;
        font-weight: 600;
        cursor: pointer;
        font-size: 14px;
    }
    .case-tab-button::after {
        content: "▾";
        position: absolute;
        right: 12px;
        top: 50%;
        transform: translateY(-50%);
        transition: transform .2s ease;
    }
    .case-tab-button.is-active {
        background: var(--color-gray);
        border-bottom-left-radius: 0;
        border-bottom-right-radius: 0;
    }
    .case-tab-button.is-active::after {
        transform: translateY(-50%) rotate(180deg);
    }
    .case-tab-panel {
        border: 1px solid #ddd;
        border-top: none;
        border-radius: 0 0 8px 8px;
        background: #fff;
        padding: 0 12px;
        max-height: 0;
        overflow: hidden;
        opacity: 0;
        margin-top: -1px;
        transition: max-height .35s ease, opacity .25s ease, padding .25s ease;
    }
    .case-tab-panel.is-active {
        padding: 12px;
        max-height: 60vh;
        opacity: 1;
        margin-top: -11px;
    }
    .case-checkbox-items {
        gap: 12px 16px;
    }
    .case-checkbox-item {
        gap: 12px;
    }
    .case-checkbox-item label {
        line-height: 1;
    }
    .case-checkbox input[type="checkbox"] {
        width: 22px;
        height: 22px;
    }

    .case-tab-button:nth-of-type(1) { order: 10; }
    .case-tab-panel:nth-of-type(1)  { order: 11; }
    .case-tab-button:nth-of-type(2) { order: 12; }
    .case-tab-panel:nth-of-type(2)  { order: 13; }
    .case-tab-button:nth-of-type(3) { order: 14; }
    .case-tab-panel:nth-of-type(3)  { order: 15; }
    .case-tab-button:nth-of-type(4) { order: 16; }
    .case-tab-panel:nth-of-type(4)  { order: 17; }
    .case-tab-button:nth-of-type(5) { order: 18; }
    .case-tab-panel:nth-of-type(5)  { order: 19; }

    .case-filter-submit-reset {
        order: 1;
        align-self: flex-start;
    }
    .case-selected-filters-display {
        order: 2;
    }
    .case-filter-submit-btn {
        order: 999;
        width: 100%;
        padding: 14px 18px;
        border-radius: 8px;
        font-weight: 700;
        border: 1px solid var(--color-main);
        background: var(--color-main);
        color: #fff;
        position: sticky; bottom: 0; z-index: 1;
    }
    .case-filter {
        margin-bottom: 20px;
    }
}

/* =========================================================
   サイドバー
   ========================================================= */
#siderbar {
	position: sticky;
	top: 0;
	width: 100%;
	max-width: 300px;
	margin-left: auto;
	margin-right: auto;
}

.sidebar-post, .c-sideTaxonomies__group {
	margin-bottom: clamp(40px, 8vw, 60px);
}

.sidebar-post h3, .c-sideTaxonomies__group h3 {
	position: relative;
	line-height: 1;
	padding-bottom: clamp(10px, 1.8vw, 10px);
	border-bottom: 2px solid #eee;
	font-size: clamp(18px, 2.2vw, 20px);
	margin-bottom: clamp(16px, 3.6vw, 20px);
}

.sidebar-post h3::before, .c-sideTaxonomies__group h3::before {
	position: absolute;
	content: "";
	bottom: -2px;
	left: 0;
	width: 80px;
	height: 2px;
	background: var(--color-main);
}

.sidebar-post-list {
	list-style: none;
	padding-left: 0;
}

.sidebar-post-list li {
	padding-bottom: clamp(16px, 4.8vw, 20px);
	border-bottom: 1px solid #eee;
	margin-bottom: clamp(16px, 4.8vw, 20px);
}

.sidebar-post-list li:last-child {
	border-bottom: none;
}

.sidebar-post-item {
	display: flex;
	gap: clamp(10px, 2.6vw, 10px);
	color: var(--color-text-bk);
}

.sidebar-post-item-img {
	width: 38%;
	filter: drop-shadow(1px 2px 1px rgba(12, 28, 32, .18));
}

.sidebar-post-item-txt {
	width: calc(62% - 10px);
	line-height: 1.35;
	font-weight: 600;
}

.c-sideTaxonomies__list {
	list-style: none;
	padding-left: 0;
}

.c-sideTaxonomies__level-group .cat-item {
	margin: 0;
}

.c-sideTaxonomies__level-group .cat-item a {
	display: block;
	width: 100%;
	line-height: 1;
	padding-top: clamp(15px, 4.8vw, 15px);
	border-bottom: 1px solid #eee;
	padding-bottom: clamp(14px, 4.5vw, 14px);
	padding-left: 5px;
}

.c-sideTaxonomies__level-group .cat-item:first-child a {
	border-top: 1px solid #eee;
}

.c-sideTags {
	display: flex;
	gap: clamp(8px, 2.6vw, 10px) clamp(8px, 2.6vw, 10px);
	flex-wrap: wrap;
}

.c-sideTags__item {
	margin: 0;
	line-height: 1;
}

.c-sideTags__link {
	min-width: 60px;
	text-align: center;
	display: inline-block;
	padding: clamp(5px, 1.6vw, 6px) clamp(12px, 2.6vw, 14px);
	line-height: 1;
	background: var(--color-back);
	color: var(--color-text-bk);
	font-size: clamp(12px, 1.6vw, 14px);
}

/* 事例フィルター（サイド） */
.case-filter-sidebar {
	background: var(--color-back);
	padding: clamp(20px, 4.8vw, 30px) clamp(12px, 3.2vw, 15px) clamp(16px, 3vw, 20px);
	margin-bottom: clamp(40px, 8vw, 60px);
}

.case-filter-sidebar h3 {
	border-bottom: none;
	position: inherit;
	text-align: center;
	padding-bottom: 0;
	margin-bottom: 0;
}

.case-filter-select {
	margin-top: clamp(15px, 3.6vw, 20px);
	border-top: 1px solid #ccc;
	padding-top: clamp(15px, 3.6vw, 20px);
}

.case-filter-select:first-child {
	padding-top: 0;
	border: none;
}

.case-filter-select label {
	display: block;
	font-weight: 600;
	line-height: 1;
}

.case-filter-select select {
	display: block;
	width: 100%;
	background: var(--color-bg-wh);
	padding: clamp(6px, 1.8vw, 8px) 5px;
	border-radius: 5px;
	margin-top: clamp(5px, 1.6vw, 7px);
}

.case-filter-actions {
	text-align: center;
	margin-top: clamp(20px, 5.5vw, 25px);
}

.case-filter-actions .case-filter-submit-btn {
	display: inline-block;
	padding: clamp(6px, 1.8vw, 8px) 20px;
	line-height: 1;
	border-radius: 5px;
	color: var(--color-text-bk);
	cursor: pointer;
	border: 1px solid #ccc;
}

/* =========================================================
   資料請求ページ
   ========================================================= */
.document {
	display: flex;
	justify-content: space-between;
}

.document-contents {
	width: 58%;
}

.document-con-ttl h2 {
	font-size: clamp(24px, 3.6vw, 36px);
	font-weight: 700;
	padding-bottom: clamp(16px, 3.6vw, 20px);
	margin-bottom: clamp(40px, 8vw, 60px);
	border-bottom: 5px solid var(--color-main);
	line-height: 1.35;
}

.document-con-ttl p {
	font-size: clamp(20px, 3.6vw, 36px);
	font-weight: 700;
	padding-bottom: clamp(16px, 3.6vw, 20px);
	margin-bottom: clamp(30px, 6vw, 40px);
	border-bottom: 5px solid var(--color-main);
}

.document-contents .post-thumbnail {
	box-shadow: 5px 5px 4px rgba(0, 0, 0, .035);
}

.document-subcon-wrap {
	margin-top: clamp(40px, 7vw, 60px);
	padding-top: clamp(40px, 7vw, 60px);
	border-top: 1px solid #ccc;
}

.document-subcon-service-ttl {
	text-align: center;
	font-size: clamp(24px, 4vw, 32px);
	font-weight: bold;
	letter-spacing: 0.2rem;
}

.document-subcon-service {
	text-align: center;
	margin-top: clamp(20px, 5.5vw, 30px);
}

.document-subcon-service figure {
	width: 100%;
	max-width: 420px;
	margin: 0 auto;
}

.document-subcon-service figure + figure {
	margin-top: clamp(30px, 6vw, 30px);
	border-top: 1px solid #ccc;
	padding-top: clamp(30px, 6vw, 30px);
}

.document-subcon-service-txt {
	text-align: center;
	font-size: clamp(16px, 2.8vw, 20px);
	font-weight: 600;
	margin-top: clamp(16px, 4.8vw, 20px);
}

.document-subcon-sev-ttl, .document-subcon-logo-ttl {
	text-align: center;
	line-height: 1;
}

.document-subcon-sev-ttl p, .document-subcon-logo-ttl h2 {
	font-size: clamp(24px, 4vw, 32px);
	font-weight: bold;
	letter-spacing: 0.2rem;
}

.document-subcon-sev-txt {
	font-size: clamp(14px, 2.6vw, 18px);
	margin-top: clamp(20px, 6vw, 30px);
}

.document-subcon-sev-txt p + p {
	margin-top: clamp(4px, 1.4vw, 5px);
}

.document-subcon-logo-ttl p {
	font-size: clamp(10px, 2vw, 12px);
	margin-top: clamp(4px, 1.6vw, 5px);
}

.document-subcon-logo-con {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 1px 20px;
	margin-top: clamp(20px, 5.5vw, 30px);
}

.document-subcon-logo-con figure {
	width: calc((100% - 60px) / 3);
	text-align: center;
}

.form-document {
	width: 38%;
}

.form-document-wrap {
	padding: clamp(30px, 6vw, 40px);
	border: 1px solid #ccc;
	border-radius: 5px;
}

.form-document-input {
	display: block;
	margin-top: clamp(20px, 6vw, 30px);
}

.form-document-input span {
	display: block;
}

.form-document-name-ttl {
	margin-bottom: clamp(6px, 2vw, 7px);
	position: relative;
	padding-right: 40px;
}

.form-document-name-ttl.required::after {
	position: absolute;
	content: "必須";
	color: #fff;
	font-size: clamp(10px, 1.6vw, 12px);
	background: var(--color-main);
	padding: 5px 7px 4px;
	line-height: 1;
	border-radius: 20px;
	top: 50%;
	right: 0;
	transform: translate(0, -50%);
}

.form-document-name-txt {
	padding: 5px 10px;
	border-radius: 5px;
	border: 1px solid #ccc;
	margin-top: clamp(5px, 1.6vw, 7px);
}

.form-document-input .wpcf7-form-control-wrap {
	display: block;
}

.form-document-input .wpcf7-form-control {
	font-size: clamp(16px, 2.1vw, 18px);
	width: 100%;
}

.form-document .wpcf7-not-valid-tip {
	color: var(--color-red);
}

.form-policy-wrap {
	margin-top: clamp(20px, 6vw, 30px);
}

.form-policy {
	margin-bottom: clamp(6px, 2vw, 10px);
	font-size: clamp(12px, 1.6vw, 12px);
}

.form-document-wrap .wpcf7-spinner {
	position: absolute;
	top: 24%;
	right: 70px;
}

.form-document-warning {
	text-align: center;
	margin-bottom: clamp(16px, 3.2vw, 20px);
	border-radius: 30px;
	background: var(--color-main);
	display: block;
	color: #fff;
	padding: clamp(10px, 2.6vw, 12px) 0 clamp(9px, 2.4vw, 11px);
	line-height: 1;
}

@media (width <=980px) {
	.document {
		flex-direction: column;
	}

	.document-contents {
		width: 100%;
	}

	.document-con-ttl h2 {
		border-bottom: 3px solid var(--color-main);
	}

	.document-subcon-service {
		margin: 0 auto;
		margin-top: clamp(16px, 5.5vw, 20px);
		width: 80%;
	}

	.document-subcon-logo-ttl h2 {
		font-size: clamp(18px, 4.8vw, 20px);
	}

	.document-subcon-logo-ttl p {
		font-size: clamp(10px, 2.4vw, 10px);
	}

	.document-subcon-logo-con {
		gap: 1px 15px;
	}

	.document-subcon-logo-con figure {
		width: calc((100% - 30px) / 3);
		max-height: 75px;
		text-align: center;
	}

	.form-document {
		width: 100%;
		margin-top: clamp(40px, 7vw, 60px);
	}

	.form-document-wrap {
		padding: clamp(30px, 6vw, 40px) 5%;
	}
}

/* =========================================================
   404
   ========================================================= */
.page-404-under {
	border-top: 1px solid #eee;
	margin-top: clamp(60px, 9vw, 100px);
}

/* =========================================================
   お問い合わせ（共通）
   ========================================================= */
.form-content-wrap {
	padding: clamp(60px, 8vw, 80px) clamp(40px, 10vw, 120px) clamp(60px, 8vw, 80px);
	border-radius: 10px;
	background: var(--color-gray);
}

.form-page-con-img {
	width: 40px;
	height: 40px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--color-bg-wh);
	border-radius: 100px;
	transform: scale(1.5);
}

.form-page-con-ttl {
	text-align: center;
	margin-top: clamp(20px, 5vw, 30px);
	font-size: clamp(20px, 2.6vw, 24px);
	font-weight: 600;
}

.form-page-con-txt {
	text-align: center;
	margin-top: clamp(12px, 2.6vw, 15px);
	margin-bottom: clamp(12px, 2.6vw, 15px);
}

@media (width <=999px) {
	.form-content-wrap {
		padding: clamp(40px, 8vw, 60px) 5% clamp(30px, 6vw, 40px);
	}
}

/* 入力確認 */
.confirm-txt {
	padding: clamp(10px, 2.2vw, 10px) clamp(10px, 2.2vw, 10px) clamp(9px, 2vw, 9px);
	border: 1px solid #aaa;
	border-radius: 5px;
	margin-top: 4px;
	display: block;
	background: var(--color-bg-wh);
}

.confirm-txt-last {
	margin-bottom: clamp(60px, 9vw, 100px);
}

#form .wpcf7-previous {
	background: transparent !important;
	box-shadow: initial;
	border: solid 1px var(--color-text-bk) !important;
	font-size: clamp(12px, 1.6vw, 12px);
	color: var(--color-text-bk);
	width: 100%;
	max-width: 180px;
	margin-left: auto;
	margin-right: auto;
	padding: clamp(5px, 1.8vw, 5px) 20px;
	border-radius: 100px !important;
	font-weight: normal;
	letter-spacing: .06em;
	cursor: pointer;
	margin-bottom: clamp(16px, 3.2vw, 20px);
}

/* サンクス */
.thanks-page-check-icon svg {
	margin: 0 auto;
}

.thanks-page-con-ttl {
	text-align: center;
	margin-top: clamp(12px, 2.6vw, 15px);
	font-size: clamp(20px, 2.6vw, 24px);
	font-weight: 700;
}

.thanks-page-con-txt {
	text-align: center;
	margin-top: clamp(12px, 2.6vw, 15px);
}

#thanks h2.wp-block-heading {
	font-size: clamp(24px, 3.6vw, 36px);
	line-height: 1.5;
	font-weight: 600;
	color: var(--color-text-bk);
	text-align: center;
	margin-top: clamp(30px, 5.5vw, 60px);
	background: none;
	border: none;
}

/* =========================================================
   フォーム共通
   ========================================================= */
#form label {
	display: block;
	margin-top: clamp(20px, 6vw, 30px);
}

#form input, #form select, #form textarea {
	background-color: var(--color-bg-wh);
	border: 1px solid #ccc;
	border-radius: 0;
	color: var(--color-text-bk);
	padding: 5px 10px;
	width: 100%;
	border-radius: 5px;
}

#form select {
	padding: 8px 10px;
	color: var(--color-text-bk);
}

#form select option {
	color: var(--color-text-bk);
}

#form input::placeholder {
	color: #A0A0A0;
}

.form-btn-submit {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: clamp(8px, 2.6vw, 10px);
}

#form .wpcf7-submit {
	width: 100%;
	max-width: 500px;
	margin-left: auto;
	margin-right: auto;
	padding: clamp(15px, 5.8vw, 20px) 20px clamp(14px, 5.2vw, 18px);
	border-radius: 100px;
	background: var(--color-main);
	color: #fff;
	font-size: clamp(16px, 2.4vw, 18px);
	line-height: 1;
	font-weight: 700;
	cursor: pointer;
	filter: drop-shadow(1px 2px 3px rgba(0, 0, 0, .15));
	transition: .3s;
	border: none;
}

.wpcf7-submit:hover, .wpcf7-previous:hover {
	opacity: .6;
}

@media (width <=999px) {
	#form .wpcf7-submit {
		padding: clamp(12px, 5vw, 15px) 20px clamp(11px, 4.5vw, 14px);
		font-size: clamp(16px, 3.6vw, 16px);
	}
}

.form-item-ttl {
	line-height: 1;
	font-weight: 600;
	position: relative;
}

.form-item-ttl.required::before {
	position: absolute;
	content: "必須";
	font-size: clamp(10px, 1.6vw, 10px);
	top: 45%;
	right: -50px;
	background: var(--color-red);
	color: var(--color-text-wh);
	padding: 4px 10px 3px;
	line-height: 1;
	border-radius: 30px;
	transform: translate(0, -50%);
}

.form-btn {
	margin-top: clamp(20px, 6vw, 30px);
	text-align: center;
}

.form-smalltxt {
	margin-bottom: clamp(10px, 2.6vw, 15px) !important;
	font-size: clamp(12px, 1.6vw, 14px);
}

.form-smalltxt a {
	text-align: center;
	display: block;
	line-height: 1;
	margin-top: clamp(0px, 1.6vw, 10px);
	font-size: clamp(12px, 1.6vw, 14px);
	color: var(--color-text-bk);
}

@media (width <=999px) {
	.form-item-ttl.required::before {
		font-size: clamp(10px, 2.4vw, 10px);
		padding: 4px 7px 3px;
	}
}

/* プラポリ承諾チェック */
#form .checkbox {
	display: inline-block;
	cursor: pointer;
	font-size: clamp(16px, 2.1vw, 16px);
	user-select: none;
	margin: 0 auto clamp(10px, 3.2vw, 20px);
}

#form .checkbox label {
	text-align: center;
	margin-top: clamp(5px, 1.6vw, 7px);
}

.checkbox input[type="checkbox"] {
	display: none !important;
}

.checkbox .wpcf7-list-item-label {
	position: relative;
	padding-left: 30px;
	line-height: 20px;
	display: inline-block;
}

.checkbox .wpcf7-list-item-label::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0;
	width: 20px;
	height: 20px;
	border: 2px solid #ccc;
	border-radius: 4px;
	background: var(--color-bg-wh);
	transition: all .2s ease;
}

.checkbox input[type="checkbox"]:checked + .wpcf7-list-item-label::before {
	background: var(--color-main);
	border-color: var(--color-main);
}

.checkbox input[type="checkbox"]:checked + .wpcf7-list-item-label::after {
	content: '';
	position: absolute;
	left: 7px;
	top: 3px;
	width: 6px;
	height: 12px;
	border: solid var(--color-text-wh);
	border-width: 0 3px 3px 0;
	transform: rotate(45deg);
}

@media (width <=999px) {
	#form .checkbox {
		font-size: clamp(14px, 3.6vw, 14px);
		margin-bottom: clamp(16px, 5vw, 20px);
	}

	.checkbox .wpcf7-list-item {
		margin-left: 0;
	}

	.checkbox .wpcf7-list-item-label {
		padding-left: 20px;
		line-height: 15px;
	}

	.checkbox .wpcf7-list-item-label::before {
		width: 15px;
		height: 15px;
	}

	.checkbox input[type="checkbox"]:checked + .wpcf7-list-item-label::after {
		left: 5px;
		top: 1px;
	}
}

/* =========================================================
   メンバープロフィール
   ========================================================= */
.member-name-post {
	color: var(--color-main);
}

.member-name-post, .member-name-kana {
	margin-bottom: 0;
}

h2.member-name-ttl {
	padding: 0;
	margin: 0;
	border-left: 0;
	font-size: clamp(24px, 3.6vw, 30px);
	letter-spacing: .5px;
	background: #fff;
	border: none;
}

.member-name-kana {
	line-height: 1;
	letter-spacing: .12em;
}

.member-catch {
	font-size: clamp(24px, 3.6vw, 30px);
	color: var(--color-main);
	margin-top: clamp(20px, 6vw, 30px);
	line-height: 1.3;
}

.member-sns {
	gap: clamp(8px, 3.2vw, 10px) 5%;
}

.member-sns .wp-block-column {
	width: calc(50% - 5%);
	text-align: center;
}

@media (width <=768px) {
	.member-name-post, h2.member-name-ttl, .member-name-kana, .member-catch {
		text-align: center;
	}

	h2.member-name-ttl {
		font-size: clamp(20px, 6vw, 24px);
	}

	.member-catch {
		font-size: clamp(20px, 6vw, 24px);
		margin-top: clamp(15px, 5vw, 15px);
	}

	.member-sns {
		gap: clamp(8px, 3.2vw, 10px) 5%;
		flex-wrap: wrap !important;
	}

	.member-sns .wp-block-column {
		width: calc(50% - 5%);
		text-align: center;
		flex-basis: auto !important;
	}

	.member-sns .wp-block-column a {
		text-align: center;
		display: inline-block;
	}
}

/* =========================================================
   ページネーション
   ========================================================= */
.nav-links-wrap {
	margin-top: clamp(12px, 2.6vw, 15px);
}

.nav-links {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 5px;
}

.nav-links .page-numbers {
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 1.25px;
	height: 27.5px;
	width: 27.5px;
	font-size: clamp(16px, 2.1vw, 16px);
	color: var(--txt);
	border-radius: 100%;
	transition: color .5s cubic-bezier(0.45, 0.05, 0.55, 0.95), background-color .5s cubic-bezier(0.45, 0.05, 0.55, 0.95);
}

.nav-links .page-numbers.current {
	color: var(--txt);
	background-color: #f2f1f0;
}

.fa-chevron-right, .fa-chevron-left {
	background: url(images/arrow.svg) no-repeat center/100%;
	width: 14px;
	height: 10px;
}

.fa-chevron-left {
	transform: rotate(180deg);
}

@media (width <=1000px) {
	.nav-links .page-numbers {
		color: var(--color-text-bk);
	}

	.nav-links .page-numbers.current {
		color: var(--color-text-bk);
		background-color: #f2f1f0;
	}
}