.grecaptcha-badge {
	visibility: hidden;
}

.mtauto {
	margin-top: auto;
}


/* ==================================================
   KAZE DESIGN
   Site specific styles
================================================== */


/* --------------------------------------------------
   Header
-------------------------------------------------- */

/* ヘッダー上段 */
.naviheader #header-title {
	background: rgba(255, 255, 255, 0.96);
	border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.naviheader #header-title .inner {
	min-height: 78px;
	padding-top: 14px;
	padding-bottom: 14px;
}


/* ロゴ・サイトタイトル */
.naviheader .sitetitle {
	gap: 10px;
}

.naviheader .logo-l {
	margin-right: 0;
}

.naviheader .logo-l img {
	display: block;
	width: auto;
	max-height: 52px;
}

.naviheader #header-title h1,
.naviheader #header-title .hx {
	margin: 0;
	padding: 0 0 5px;
	font-size: 1.25rem;
	line-height: 1.35;
	font-weight: 600;
	letter-spacing: 0.02em;
}

.naviheader #header-title .subofficename {
	font-size: 0.84rem;
	line-height: 1.4;
	font-weight: 400;
	letter-spacing: 0.05em;
}


/* 電話番号 */
.naviheader .hb-left {
	padding-top: 0;
	margin-right: 24px;
}

.naviheader .hb-number {
	font-size: 1.45rem;
	line-height: 1.2;
	font-weight: 600;
	letter-spacing: 0.02em;
}

.naviheader .hb-info {
	padding-top: 5px;
	font-size: 0.75rem;
	color: #666;
}


/* お問い合わせボタン */
.naviheader .header-button .simple-button {
	margin-top: 0;
	border: 0;
	border-radius: 4px;
	background: var(--maincolor);
	transition:
		background-color 0.25s ease,
		transform 0.25s ease;
}

.naviheader .header-button .simple-button a {
	padding: 14px 22px;
	font-size: 0.9rem;
	font-weight: 500;
	letter-spacing: 0.06em;
}

.naviheader .header-button .simple-button:hover {
	opacity: 1;
	background: #062f56;
	transform: translateY(-1px);
}


/* --------------------------------------------------
   Global Navigation
-------------------------------------------------- */

.naviheader .header-menu {
	background: rgba(255, 255, 255, 0.96);
	border-bottom: 1px solid rgba(0, 0, 0, 0.07);
}

.naviheader nav.menu ul {
	justify-content: flex-end;
	gap: 38px;
}

.naviheader nav.menu ul li {
	font-weight: 400;
}

.naviheader nav.menu ul li a {
	position: relative;
	padding: 17px 0 15px;
	font-size: 0.9rem;
	line-height: 1.4;
	letter-spacing: 0.04em;
	transition: color 0.25s ease;
}


/* hover下線 */
.naviheader nav.menu ul li a::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 8px;
	width: 0;
	height: 1px;
	background: var(--maincolor);
	transform: translateX(-50%);
	transition: width 0.25s ease;
}

.naviheader nav.menu ul li a:hover::after,
.naviheader nav.menu ul li.current-menu-item a::after {
	width: 100%;
}


/* sticky */
.naviheader .header-menu.is-stuck {
	background: rgba(255, 255, 255, 0.97);
	box-shadow: 0 5px 20px rgba(0, 0, 0, 0.06);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
}


/* --------------------------------------------------
   Header Responsive
-------------------------------------------------- */

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

	.naviheader #header-title .inner {
		min-height: 64px;
		padding-top: 10px;
		padding-bottom: 10px;
	}

	.naviheader .logo-l img {
		max-height: 44px;
	}

	.naviheader #header-title h1,
	.naviheader #header-title .hx {
		font-size: 1rem;
	}

	.naviheader #header-title .subofficename {
		font-size: 0.72rem;
	}

	.naviheader #menubtn {
		top: 18px;
		right: 18px;
	}

	.naviheader #menubtn svg {
		font-size: 2rem;
	}

	.naviheader nav.menu.is-open {
		border-top: 1px solid rgba(0, 0, 0, 0.06);
		box-shadow: 0 12px 24px rgba(0, 0, 0, 0.08);
	}

	.naviheader nav.menu ul {
		gap: 0;
	}

	.naviheader nav.menu ul li {
		padding: 0;
		border-bottom: 1px solid rgba(0, 0, 0, 0.06);
	}

	.naviheader nav.menu ul li a {
		padding: 16px 20px;
		text-align: left;
	}

	.naviheader nav.menu ul li a::after {
		display: none;
	}

}


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

	.naviheader .sitetitle {
		max-width: calc(100% - 55px);
	}

	.naviheader .logo-l img {
		max-height: 40px;
	}

	.naviheader #header-title h1,
	.naviheader #header-title .hx {
		font-size: clamp(0.78rem, 3.1vw, 0.95rem);
	}

	.naviheader #header-title .subofficename {
		font-size: clamp(0.65rem, 2.5vw, 0.75rem);
	}

}


/* ==================================================
   Hero
================================================== */

.home #header-text.kaze-hero {
	display: block;
	padding: 85px 0 95px;
	background: #fff;
	font-weight: 400;
	overflow: hidden;
}

.home .kaze-hero__body {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(360px, 0.75fr);
	align-items: center;
	gap: clamp(40px, 5vw, 70px);
	min-height: 420px;
}


/* Copy
-------------------------------------------------- */

.home .kaze-hero__copy {
	position: relative;
	z-index: 5;
}

.home .kaze-hero__title {
	margin: 0;
	color: var(--blackcolor);
	font-size: clamp(2.1rem, 3.1vw, 3.5rem);
	line-height: 1.38;
	font-weight: 500;
	letter-spacing: 0.01em;
}

.home .kaze-hero__title span, .subherohead span {
	color: var(--maincolor);
}

.home #header-text .kaze-hero__lead {
	margin: 30px 0 0;
	color: #555;
	font-size: 1rem;
	line-height: 2;
	font-weight: 400;
	letter-spacing: 0.025em;
	text-align: left;
}


/* Visual
-------------------------------------------------- */

.home .kaze-hero__visual {
	position: relative;
	z-index: 1;
	min-width: 0;
}

.home .kaze-hero__visual-inner {
	position: relative;
	width: 100%;
}

.home .kaze-hero__concept-image {
	display: block;
	width: 100%;
	height: auto;
	margin: 0 auto;
}


/* --------------------------------------------------
   Hero Responsive
-------------------------------------------------- */

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

	.home .kaze-hero__body {
		grid-template-columns: minmax(0, 1fr) minmax(340px, 0.9fr);
		gap: 40px;
	}

	.home .kaze-hero__title {
		font-size: clamp(2.2rem, 4vw, 3.4rem);
	}

}


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

	.home #header-text.kaze-hero {
		padding: 48px 0 58px;
	}

	.home .kaze-hero__body {
		grid-template-columns: 1fr;
		gap: 42px;
		min-height: 0;
	}

	.home .kaze-hero__copy {
		max-width: 680px;
	}

	.home .kaze-hero__visual {
		width: min(100%, 680px);
		margin: 0 auto;
	}

}


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

	.home #header-text.kaze-hero {
		padding: 38px 0 48px;
	}

	.home .kaze-hero__body {
		gap: 34px;
	}

	.home .kaze-hero__title {
		font-size: clamp(2rem, 9.5vw, 3.2rem);
		line-height: 1.4;
	}

	.home #header-text .kaze-hero__lead {
		margin-top: 24px;
		font-size: 0.94rem;
		line-height: 1.9;
	}

	.home .kaze-hero__lead br {
		display: none;
	}

}


/* ==================================================
   Top - Introduction
================================================== */

.home #top-lp .kaze-intro {
	background-color: var( --lightcolor);
	position: relative;
	padding: 60px 0 72px;
}


/* Label
-------------------------------------------------- */

.home #top-lp .kaze-intro__label {
	margin: 0 0 28px;
	padding: 0;
	color: var(--maincolor);
	font-size: 0.72rem;
	line-height: 1.5;
	font-weight: 500;
	letter-spacing: 0.18em;
}


/* Layout
-------------------------------------------------- */

.home #top-lp .kaze-intro__body {
	display: grid;
	grid-template-columns: minmax(300px, 0.72fr) minmax(0, 1.28fr);
	align-items: center;
	gap: clamp(45px, 6vw, 90px);
}


/* Content
-------------------------------------------------- */

.home #top-lp .kaze-intro__content {
	padding: 0;
}

.home #top-lp .kaze-intro__title {
	margin: 0 0 30px;
	padding: 0;
	color: var(--blackcolor);
	font-size: clamp(1.55rem, 2vw, 2.1rem);
	line-height: 1.5;
	font-weight: 500;
	letter-spacing: 0.01em;
}

.home #top-lp .kaze-intro__content p {
	margin: 0 0 22px;
	padding: 0;
	color: #444;
	font-size: 0.95rem;
	line-height: 2;
	font-weight: 400;
	letter-spacing: 0.025em;
}

.home #top-lp .kaze-intro__content p:last-child {
	margin-bottom: 0;
}


/* Web支店を強調する最後のメッセージ
-------------------------------------------------- */

.home #top-lp .kaze-intro__message {
	position: relative;
	margin-top: 32px !important;
	padding-top: 27px !important;
	color: #222 !important;
}

.home #top-lp .kaze-intro__message::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 48px;
	height: 1px;
	background: var(--maincolor);
}

.home #top-lp .kaze-intro__message span {
	color: var(--maincolor);
	font-weight: 600;
}


/* Visuals
-------------------------------------------------- */

.home #top-lp .kaze-intro__visuals {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-items: start;
	gap: 28px;
	min-width: 0;
}

.home #top-lp .kaze-intro__visual {
	min-width: 0;
	padding: 12px;
	background: #fff;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.05);
}

.home #top-lp .kaze-intro__visual img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	background: #fff;
}

.home #top-lp .kaze-intro__visual p {
	margin: 12px 0 0;
	padding: 0;
	color: #333;
	font-size: 0.82rem;
	line-height: 1.7;
	font-weight: 500;
	text-align: center;
	letter-spacing: 0.025em;
}


/* --------------------------------------------------
   Top - Introduction Responsive
-------------------------------------------------- */

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

	.home #top-lp .kaze-intro__body {
		grid-template-columns: minmax(260px, 0.75fr) minmax(0, 1.25fr);
		gap: 40px;
	}

	.home #top-lp .kaze-intro__visuals {
		gap: 12px;
	}

}


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

	.home #top-lp .kaze-intro {
		padding: 56px 0 64px;
	}

	.home #top-lp .kaze-intro__body {
		grid-template-columns: 1fr;
		gap: 38px;
	}

	.home #top-lp .kaze-intro__visuals {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 12px;
	}

}


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

	.home #top-lp .kaze-intro {
		padding: 48px 0 56px;
	}

	.home #top-lp .kaze-intro__label {
		margin-bottom: 20px;
	}

	.home #top-lp .kaze-intro__title {
		margin-bottom: 24px;
		font-size: clamp(1.6rem, 7vw, 2.2rem);
		line-height: 1.5;
	}

	.home #top-lp .kaze-intro__content p {
		margin-bottom: 20px;
		font-size: 0.94rem;
		line-height: 1.9;
	}

	.home #top-lp .kaze-intro__content .pc-only {
		display: none;
	}

	.home #top-lp .kaze-intro__message {
		margin-top: 28px !important;
		padding-top: 24px !important;
	}

}


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

	.home #top-lp .kaze-intro__visuals {
		display: grid;
		grid-template-columns: 1fr;
		width: 100%;
		max-width: none;
		margin: 0;
		padding: 0;
		gap: 26px;
	}

	.home #top-lp .kaze-intro__visual {
		display: block;
		width: 100%;
		max-width: 420px;
		margin-left: auto;
		margin-right: auto;
		padding: 12px;
		box-sizing: border-box;
	}

	.home #top-lp .kaze-intro__visual img {
		display: block;
		width: 100%;
		max-width: 100%;
		height: auto;
		margin: 0 auto;
	}

}

/* ==================================================
   Top - Features
================================================== */

.home #top-lp .kaze-features {
	position: relative;
	padding: 100px 0 0;
	background: #fff;
}


/* --------------------------------------------------
   Section Header
-------------------------------------------------- */

.home #top-lp .kaze-features__header {
	max-width: 760px;
	margin: 0 0 90px;
}

.home #top-lp .kaze-features__label {
	margin: 0 0 22px;
	padding: 0;

	color: var(--maincolor);

	font-size: 0.72rem;
	line-height: 1.5;
	font-weight: 500;
	letter-spacing: 0.18em;
}

.home #top-lp .kaze-features__heading {
	margin: 0 0 28px;
	padding: 0;

	color: var(--blackcolor);

	font-size: clamp(2rem, 3vw, 3rem);
	line-height: 1.45;
	font-weight: 500;
	letter-spacing: 0.01em;

	text-align: left;
}

.home #top-lp .kaze-features__intro {
	margin: 0;
	padding: 0;

	color: #555;

	font-size: 0.98rem;
	line-height: 2;
	font-weight: 400;
	letter-spacing: 0.025em;

	text-align: left;
}


/* --------------------------------------------------
   Feature List
-------------------------------------------------- */

.home #top-lp .kaze-features__list {
	position: relative;
}


/* 各項目 */
.home #top-lp .kaze-feature {
	display: grid;

	grid-template-columns:
		minmax(0, 1fr)
		minmax(420px, 0.92fr);

	align-items: center;

	gap: clamp(55px, 7vw, 100px);

	padding: 86px 0;

	border-top: 1px solid #e4e8eb;
}


/* 最後 */
.home #top-lp .kaze-feature:last-child {
	border-bottom: 1px solid #e4e8eb;
}


/* 左右反転 */
.home #top-lp .kaze-feature--reverse .kaze-feature__content {
	order: 2;
}

.home #top-lp .kaze-feature--reverse .kaze-feature__visual {
	order: 1;
}


/* --------------------------------------------------
   Feature Content
-------------------------------------------------- */

.home #top-lp .kaze-feature__content {
	min-width: 0;
}


/* 番号＋英字 */
.home #top-lp .kaze-feature__number {
	display: flex;
	align-items: center;
	gap: 12px;

	margin: 0 0 24px;
	padding: 0;

	color: #8b969e;

	font-size: 0.7rem;
	line-height: 1.5;
	font-weight: 500;
	letter-spacing: 0.16em;
}

.home #top-lp .kaze-feature__number span {
	color: var(--maincolor);

	font-size: 0.82rem;
	font-weight: 600;
	letter-spacing: 0.08em;
}


/* 見出し */
.home #top-lp .kaze-feature__title {
	margin: 0 0 30px;
	padding: 0;

	color: var(--blackcolor);

	font-size: clamp(1.75rem, 2.6vw, 2.65rem);
	line-height: 1.5;
	font-weight: 500;
	letter-spacing: 0.01em;
}


/* 本文 */
.home #top-lp .kaze-feature__text {
	max-width: 600px;
}

.home #top-lp .kaze-feature__text p {
	margin: 0 0 22px;
	padding: 0;

	color: #444;

	font-size: 0.95rem;
	line-height: 2;
	font-weight: 400;
	letter-spacing: 0.02em;
}

.home #top-lp .kaze-feature__text p:last-child {
	margin-bottom: 0;
}


/* 強調 */
.home #top-lp .kaze-feature__text strong {
	color: var(--maincolor);
	font-weight: 600;
}


/* --------------------------------------------------
   Feature Visual
-------------------------------------------------- */

.home #top-lp .kaze-feature__visual {
	position: relative;
	min-width: 0;
}


/* 写真の背後に薄い面を置く */
.home #top-lp .kaze-feature__visual::before {
	content: "";

	position: absolute;

	right: -18px;
	bottom: -18px;

	width: 78%;
	height: 78%;

	background: #f2f5f7;

	z-index: 0;
}


/* 反転側 */
.home #top-lp .kaze-feature--reverse .kaze-feature__visual::before {
	right: auto;
	left: -18px;
}


/* 写真 */
.home #top-lp .kaze-feature__visual img {
	position: relative;
	z-index: 1;

	display: block;

	width: 100%;
	height: auto;

	aspect-ratio: 3 / 2;

	object-fit: cover;

	margin: 0;

	background: #f5f5f5;
}


/* ==================================================
   Service Guide
================================================== */

.home #top-lp .kaze-service-guide {
	margin-top: 110px;
	padding: 90px 0;

	background: #f6f8fa;
}

.home #top-lp .kaze-service-guide__inner {
	display: grid;

	grid-template-columns:
		minmax(220px, 0.68fr)
		minmax(0, 1.32fr);

	align-items: center;

	gap: clamp(55px, 8vw, 110px);

	max-width: 1040px;
	margin: 0 auto;
}


/* Cover
-------------------------------------------------- */

.home #top-lp .kaze-service-guide__cover {
	position: relative;

	max-width: 300px;
	margin: 0 auto;
}

.home #top-lp .kaze-service-guide__cover a {
	display: block;
}

.home #top-lp .kaze-service-guide__cover img {
	display: block;

	width: 100%;
	height: auto;

	margin: 0;

	box-shadow: 0 14px 34px rgba(0, 0, 0, 0.10);

	transition:
		transform 0.3s ease,
		box-shadow 0.3s ease;
}

.home #top-lp .kaze-service-guide__cover a:hover img {
	opacity: 1;

	transform: translateY(-4px);

	box-shadow: 0 20px 42px rgba(0, 0, 0, 0.13);
}


/* Content
-------------------------------------------------- */

.home #top-lp .kaze-service-guide__label {
	margin: 0 0 20px;
	padding: 0;

	color: var(--maincolor);

	font-size: 0.72rem;
	line-height: 1.5;
	font-weight: 500;
	letter-spacing: 0.18em;
}

.home #top-lp .kaze-service-guide__title {
	margin: 0 0 26px;
	padding: 0;

	color: var(--blackcolor);

	font-size: clamp(1.7rem, 2.4vw, 2.4rem);
	line-height: 1.5;
	font-weight: 500;
	letter-spacing: 0.01em;
}

.home #top-lp .kaze-service-guide__text {
	margin: 0 0 34px;
	padding: 0;

	color: #555;

	font-size: 0.95rem;
	line-height: 2;
}


/* Links
-------------------------------------------------- */

.home #top-lp .kaze-service-guide__links {
	border-top: 1px solid #dce2e6;
}

.home #top-lp .kaze-service-link {
	display: flex;

	align-items: center;
	justify-content: space-between;

	gap: 20px;

	padding: 19px 4px;

	border-bottom: 1px solid #dce2e6;

	color: #222;

	font-size: 0.92rem;
	line-height: 1.6;
	font-weight: 500;
	letter-spacing: 0.02em;

	text-decoration: none;

	transition:
		color 0.25s ease,
		padding-left 0.25s ease;
}

.home #top-lp .kaze-service-link:visited {
	color: #222;
}

.home #top-lp .kaze-service-link:hover {
	padding-left: 7px;

	color: var(--maincolor);
}

.home #top-lp .kaze-service-link__arrow {
	flex: 0 0 auto;

	color: var(--maincolor);

	font-size: 1.15rem;

	transition: transform 0.25s ease;
}

.home #top-lp .kaze-service-link:hover .kaze-service-link__arrow {
	transform: translateX(5px);
}


/* ==================================================
   Reveal Animation
================================================== */

/* 通常は必ず表示 */
.home .kaze-reveal {
	opacity: 1;
	transform: none;
}


/* JSが動作するときだけアニメーションを有効化 */
@media (prefers-reduced-motion: no-preference) {

	.home.js-reveal-ready .kaze-reveal {
		opacity: 0;
		transform: translateY(28px);

		transition:
			opacity 0.75s ease,
			transform 0.75s ease;
	}

	.home.js-reveal-ready .kaze-reveal.is-visible {
		opacity: 1;
		transform: translateY(0);
	}


	/* 写真 */
	.home.js-reveal-ready
	.kaze-feature.kaze-reveal
	.kaze-feature__visual {
		opacity: 0;
		transform: translateX(18px);

		transition:
			opacity 0.8s ease 0.12s,
			transform 0.8s ease 0.12s;
	}

	.home.js-reveal-ready
	.kaze-feature--reverse.kaze-reveal
	.kaze-feature__visual {
		transform: translateX(-18px);
	}

	.home.js-reveal-ready
	.kaze-feature.kaze-reveal.is-visible
	.kaze-feature__visual {
		opacity: 1;
		transform: translateX(0);
	}

}


/* ==================================================
   Features Responsive
================================================== */

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

	.home #top-lp .kaze-feature {
		grid-template-columns:
			minmax(0, 1fr)
			minmax(340px, 0.85fr);

		gap: 45px;
	}

}


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

	.home #top-lp .kaze-features {
		padding-top: 76px;
	}

	.home #top-lp .kaze-features__header {
		margin-bottom: 54px;
	}

	.home #top-lp .kaze-feature {
		grid-template-columns: 1fr;

		gap: 38px;

		padding: 64px 0;
	}


	/* スマホでは必ず文章→写真 */
	.home #top-lp .kaze-feature--reverse .kaze-feature__content {
		order: 1;
	}

	.home #top-lp .kaze-feature--reverse .kaze-feature__visual {
		order: 2;
	}


	.home #top-lp .kaze-feature__text {
		max-width: none;
	}


	.home #top-lp .kaze-feature__visual {
		width: min(100%, 680px);
	}


	.home #top-lp .kaze-feature--reverse .kaze-feature__visual::before {
		left: auto;
		right: -18px;
	}


	/* Service Guide */
	.home #top-lp .kaze-service-guide {
		margin-top: 76px;
		padding: 70px 0;
	}

	.home #top-lp .kaze-service-guide__inner {
		grid-template-columns: 220px minmax(0, 1fr);

		gap: 44px;
	}

}


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

	.home #top-lp .kaze-features {
		padding-top: 64px;
	}

	.home #top-lp .kaze-features__label {
		margin-bottom: 18px;
	}

	.home #top-lp .kaze-features__heading {
		margin-bottom: 22px;

		font-size: clamp(1.8rem, 7.5vw, 2.5rem);
	}

	.home #top-lp .kaze-features__intro {
		font-size: 0.94rem;
		line-height: 1.9;
	}

	.home #top-lp .kaze-features .pc-only {
		display: none;
	}


	.home #top-lp .kaze-feature {
		padding: 52px 0;
	}

	.home #top-lp .kaze-feature__number {
		margin-bottom: 18px;
	}

	.home #top-lp .kaze-feature__title {
		margin-bottom: 24px;

		font-size: clamp(1.6rem, 7vw, 2.15rem);
	}

	.home #top-lp .kaze-feature__text p {
		font-size: 0.94rem;
		line-height: 1.9;
	}


	.home #top-lp .kaze-feature__visual::before,
	.home #top-lp .kaze-feature--reverse .kaze-feature__visual::before {
		right: -10px;
		bottom: -10px;
	}


	/* Service Guide */
	.home #top-lp .kaze-service-guide {
		margin-top: 64px;
		padding: 58px 0 64px;
	}

	.home #top-lp .kaze-service-guide__inner {
		grid-template-columns: 1fr;

		gap: 44px;
	}

	.home #top-lp .kaze-service-guide__cover {
		width: min(68%, 260px);
	}

	.home #top-lp .kaze-service-guide__title {
		font-size: clamp(1.55rem, 6.5vw, 2rem);
	}

}


/* --------------------------------------------------
   Reduced Motion
-------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {

	.home .kaze-reveal,
	.home .kaze-feature__visual,
	.home .kaze-service-guide__cover img,
	.home .kaze-service-link,
	.home .kaze-service-link__arrow {
		transition: none !important;
		transform: none !important;
		opacity: 1 !important;
	}

}

/* ==================================================
   Top - Consultation
================================================== */

.home #top-lp .kaze-consultation {
	position: relative;
	padding: 110px 0;
	overflow: hidden;
	background: var(--maincolor);
}


/* 背景の薄い装飾 */
.home #top-lp .kaze-consultation::before {
	content: "";
	position: absolute;
	top: -180px;
	right: -180px;
	width: 520px;
	height: 520px;
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 50%;
	pointer-events: none;
}

.home #top-lp .kaze-consultation::after {
	content: "";
	position: absolute;
	top: -80px;
	right: -80px;
	width: 320px;
	height: 320px;
	border: 1px solid rgba(255, 255, 255, 0.06);
	border-radius: 50%;
	pointer-events: none;
}

.home #top-lp .kaze-consultation .inner {
	position: relative;
	z-index: 1;
}


/* ==================================================
   Introduction
================================================== */

.home #top-lp .kaze-consultation__intro {
	display: grid;
	grid-template-columns:
		minmax(0, 1fr)
		minmax(400px, 0.9fr);
	align-items: center;
	gap: clamp(55px, 7vw, 100px);
}

.home #top-lp .kaze-consultation__content {
	min-width: 0;
}

.home #top-lp .kaze-consultation__label {
	margin: 0 0 22px;
	padding: 0;
	color: rgba(255, 255, 255, 0.58);
	font-size: 0.72rem;
	line-height: 1.5;
	font-weight: 500;
	letter-spacing: 0.18em;
}

.home #top-lp .kaze-consultation__title {
	margin: 0 0 32px;
	padding: 0;
	color: #fff;
	font-size: clamp(2rem, 3vw, 3rem);
	line-height: 1.45;
	font-weight: 500;
	letter-spacing: 0.01em;
	text-align: left;
}

.home #top-lp .kaze-consultation__text {
	max-width: 620px;
}

.home #top-lp .kaze-consultation__text p {
	margin: 0 0 22px;
	padding: 0;
	color: rgba(255, 255, 255, 0.82);
	font-size: 0.95rem;
	line-height: 2;
	font-weight: 400;
	letter-spacing: 0.02em;
}

.home #top-lp .kaze-consultation__text p:last-child {
	margin-bottom: 0;
}


/* 問い合わせボタン */
.home #top-lp .kaze-consultation__button {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 40px;
	min-width: 300px;
	margin-top: 38px;
	padding: 18px 22px;
	border: 1px solid rgba(255, 255, 255, 0.55);
	color: #fff;
	font-size: 0.9rem;
	line-height: 1.6;
	font-weight: 500;
	letter-spacing: 0.04em;
	text-decoration: none;
	transition:
		background-color 0.25s ease,
		color 0.25s ease,
		transform 0.25s ease;
}

.home #top-lp .kaze-consultation__button:visited {
	color: #fff;
}

.home #top-lp .kaze-consultation__button:hover {
	background: #fff;
	color: var(--maincolor);
	transform: translateY(-2px);
}

.home #top-lp .kaze-consultation__arrow {
	flex: 0 0 auto;
	font-size: 1.15rem;
	transition: transform 0.25s ease;
}

.home #top-lp .kaze-consultation__button:hover
.kaze-consultation__arrow {
	transform: translateX(5px);
}


/* 写真 */
.home #top-lp .kaze-consultation__visual {
	position: relative;
	min-width: 0;
}

.home #top-lp .kaze-consultation__visual::before {
	content: "";
	position: absolute;
	right: -16px;
	bottom: -16px;
	width: 72%;
	height: 72%;
	border: 1px solid rgba(255, 255, 255, 0.22);
	z-index: 0;
}

.home #top-lp .kaze-consultation__visual img {
	position: relative;
	z-index: 1;
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	margin: 0;
	object-fit: cover;
}


/* ==================================================
   Locations
================================================== */

.home #top-lp .kaze-consultation__locations {
	margin-top: 110px;
	padding-top: 82px;
	border-top: 1px solid rgba(255, 255, 255, 0.18);
}

.home #top-lp .kaze-consultation__locations-header {
	max-width: 700px;
	margin: 0 0 50px;
}

.home #top-lp .kaze-consultation__locations-label {
	margin: 0 0 18px;
	padding: 0;
	color: rgba(255, 255, 255, 0.55);
	font-size: 0.7rem;
	line-height: 1.5;
	font-weight: 500;
	letter-spacing: 0.18em;
}

.home #top-lp .kaze-consultation__locations-title {
	margin: 0 0 18px;
	padding: 0;
	color: #fff;
	font-size: clamp(1.65rem, 2.3vw, 2.3rem);
	line-height: 1.5;
	font-weight: 500;
	letter-spacing: 0.01em;
}

.home #top-lp .kaze-consultation__locations-text {
	margin: 0;
	padding: 0;
	color: rgba(255, 255, 255, 0.72);
	font-size: 0.94rem;
	line-height: 1.9;
}


/* 地図カード */
.home #top-lp .kaze-location-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
}

.home #top-lp .kaze-location-card {
	min-width: 0;
	padding: 26px;
	background: #fff;
	box-shadow: 0 16px 40px rgba(0, 0, 0, 0.14);
}

.home #top-lp .kaze-location-card__heading {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-bottom: 22px;
}

.home #top-lp .kaze-location-card__number {
	flex: 0 0 auto;
	margin: 0;
	padding: 0;
	color: var(--maincolor);
	font-size: 0.72rem;
	line-height: 1;
	font-weight: 600;
	letter-spacing: 0.08em;
}

.home #top-lp .kaze-location-card__title {
	margin: 0;
	padding: 0 0 0 16px;
	border-left: 1px solid #dce2e6;
	color: var(--blackcolor);
	font-size: 1.12rem;
	line-height: 1.4;
	font-weight: 500;
	letter-spacing: 0.02em;
}

.home #top-lp .kaze-location-card__title span {
	margin-left: 8px;
	color: #7b858c;
	font-size: 0.78rem;
	font-weight: 400;
	letter-spacing: 0.08em;
}

.home #top-lp .kaze-location-card__map {
	position: relative;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background: #edf0f2;
}

.home #top-lp .kaze-location-card__map iframe {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
}


/* 地図カードの時間差表示 */
@media (prefers-reduced-motion: no-preference) {

	.home.js-reveal-ready
	.kaze-location-card:nth-child(2) {
		transition-delay: 0.1s;
	}

	.home.js-reveal-ready
	.kaze-location-card:nth-child(3) {
		transition-delay: 0.2s;
	}

}


/* ==================================================
   Consultation Responsive
================================================== */

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

	.home #top-lp .kaze-consultation__intro {
		grid-template-columns:
			minmax(0, 1fr)
			minmax(340px, 0.82fr);
		gap: 48px;
	}

	.home #top-lp .kaze-location-card {
		padding: 20px;
	}

}


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

	.home #top-lp .kaze-consultation {
		padding: 80px 0;
	}

	.home #top-lp .kaze-consultation__intro {
		grid-template-columns: 1fr;
		gap: 48px;
	}

	.home #top-lp .kaze-consultation__visual {
		width: min(100%, 680px);
	}

	.home #top-lp .kaze-consultation__locations {
		margin-top: 80px;
		padding-top: 64px;
	}

	.home #top-lp .kaze-location-grid {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.home #top-lp .kaze-location-card {
		padding: 26px;
	}

	.home #top-lp .kaze-location-card__map {
		aspect-ratio: 16 / 8;
	}

}


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

	.home #top-lp .kaze-consultation {
		padding: 64px 0;
	}

	.home #top-lp .kaze-consultation__label {
		margin-bottom: 18px;
	}

	.home #top-lp .kaze-consultation__title {
		margin-bottom: 26px;
		font-size: clamp(1.8rem, 7.5vw, 2.5rem);
	}

	.home #top-lp .kaze-consultation__text p {
		font-size: 0.94rem;
		line-height: 1.9;
	}

	.home #top-lp .kaze-consultation__button {
		width: 100%;
		min-width: 0;
		margin-top: 32px;
	}

	.home #top-lp .kaze-consultation__visual::before {
		right: -10px;
		bottom: -10px;
	}

	.home #top-lp .kaze-consultation__locations {
		margin-top: 64px;
		padding-top: 52px;
	}

	.home #top-lp .kaze-consultation__locations-header {
		margin-bottom: 36px;
	}

	.home #top-lp .kaze-consultation__locations-title {
		font-size: clamp(1.5rem, 6.5vw, 2rem);
	}

	.home #top-lp .kaze-location-card {
		padding: 18px;
	}

	.home #top-lp .kaze-location-card__map {
		aspect-ratio: 4 / 3;
	}

}


@media (prefers-reduced-motion: reduce) {

	.home #top-lp .kaze-consultation__button,
	.home #top-lp .kaze-consultation__arrow {
		transition: none !important;
		transform: none !important;
	}

}

/* --------------------------------------------------
   Post Date
-------------------------------------------------- */

.single .entry-date {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 22px;
	margin: 12px 0 28px;
	color: #777;
	font-size: 0.82rem;
	line-height: 1.6;
	letter-spacing: 0.02em;
}

.single .entry-date time {
	color: inherit;
}

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

	.single .entry-date {
		gap: 4px 16px;
		margin: 10px 0 22px;
		font-size: 0.78rem;
	}

}

/* ==================================================
   Post / Article Design
================================================== */


/* --------------------------------------------------
   Article Title
-------------------------------------------------- */

.single .entrytitle {
	margin: 0 0 14px;
	padding: 0;
	color: var(--blackcolor);
	font-size: clamp(2rem, 3.4vw, 3rem);
	line-height: 1.45;
	font-weight: 500;
	letter-spacing: 0.01em;
}


/* 公開日・更新日 */
.single .entry-date {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 22px;
	margin: 12px 0 34px;
	color: #777;
	font-size: 0.82rem;
	line-height: 1.6;
	letter-spacing: 0.02em;
}

.single .entry-date time {
	color: inherit;
}


/* ==================================================
   Post / Article Design
   投稿ページ専用
================================================== */


/* --------------------------------------------------
   Article Base
-------------------------------------------------- */

.single-post #post {
	color: #333;
	font-size: 1rem;
	line-height: 2;
}

.single-post .entry {
	padding: 0;
}

.single-post #post p {
	margin-bottom: 1.8em;
	font-size: 1rem;
	line-height: 2;
	letter-spacing: 0.015em;
}


/* --------------------------------------------------
   Article Title
-------------------------------------------------- */

.single-post .entrytitle {
	margin: 0 0 14px;
	padding: 0;
	color: var(--blackcolor);
	font-size: clamp(2rem, 3.4vw, 3rem);
	line-height: 1.45;
	font-weight: 500;
	letter-spacing: 0.01em;
	text-align: left;
}


/* 公開日・更新日 */
.single-post .entry-date {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 22px;
	margin: 12px 0 34px;
	color: #777;
	font-size: 0.82rem;
	line-height: 1.6;
	letter-spacing: 0.02em;
}

.single-post .entry-date time {
	color: inherit;
}


/* ==================================================
   Headings
================================================== */


/* --------------------------------------------------
   H2
-------------------------------------------------- */

.single-post .entry h2 {
	position: relative;

	margin: 3.5em 0 1.35em;
	padding: 0.12em 0 0.12em 22px;

	background: none;
	background-color: transparent;

	border: 0;

	color: #222;

	font-size: clamp(1.65rem, 2.5vw, 2.2rem);
	line-height: 1.5;
	font-weight: 500;
	letter-spacing: 0.01em;
}

.single-post .entry h2::before {
	content: "";
	position: absolute;
	top: 0.18em;
	bottom: 0.18em;
	left: 0;

	width: 4px;

	background: var(--maincolor);
}


/* --------------------------------------------------
   H3
-------------------------------------------------- */

.single-post .entry h3 {
	position: relative;

	margin: 2.8em 0 1.2em;
	padding: 0 0 12px;

	background: none;
	background-color: transparent;

	border: 0;
	border-bottom: 0;

	color: #222;

	font-size: clamp(1.35rem, 2vw, 1.75rem);
	line-height: 1.5;
	font-weight: 500;
	letter-spacing: 0.01em;
}

.single-post .entry h3::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;

	width: 42px;
	height: 2px;

	background: var(--maincolor);
}


/* --------------------------------------------------
   H4
-------------------------------------------------- */

.single-post .entry h4 {
	margin: 2.2em 0 1em;
	padding: 0;

	background: none;
	background-color: transparent;

	border: 0;
	border-left: 0;

	color: #222;

	font-size: 1.12rem;
	line-height: 1.65;
	font-weight: 600;
	letter-spacing: 0.01em;
}


/* ==================================================
   Lists
================================================== */


/* --------------------------------------------------
   Unordered List
-------------------------------------------------- */

.single-post .entry ul {
	margin: 1.5em 0 2em;
	padding: 0;

	list-style: none;

	color: #333;
	line-height: 1.8;
}

.single-post .entry ul > li {
	position: relative;

	margin: 0 0 0.8em;
	padding-left: 1.55em;
}

.single-post .entry ul > li::before {
	content: "";

	position: absolute;
	left: 0.25em;
	top: 0.72em;

	width: 6px;
	height: 6px;

	border-radius: 50%;
	background: var(--maincolor);
}


/* --------------------------------------------------
   Ordered List
-------------------------------------------------- */

.single-post .entry ol {
	margin: 1.5em 0 2em;
	padding: 0;

	list-style: none;
	counter-reset: kaze-counter;

	color: #333;
	line-height: 1.8;
}

.single-post .entry ol > li {
	position: relative;

	margin: 0 0 1em;
	padding-left: 3em;

	counter-increment: kaze-counter;
}

.single-post .entry ol > li::before {
	content: counter(kaze-counter, decimal-leading-zero);

	position: absolute;
	left: 0;
	top: 0.05em;

	color: var(--maincolor);

	font-size: 0.82rem;
	line-height: 1.8;
	font-weight: 600;
	letter-spacing: 0.06em;
}


/* --------------------------------------------------
   Nested Lists
-------------------------------------------------- */

.single-post .entry li > ul,
.single-post .entry li > ol {
	margin-top: 0.6em;
	margin-bottom: 0.6em;
}


/* ==================================================
   Table
================================================== */

.single-post .entry table {
	width: 100%;

	margin: 2em 0 2.5em;

	border: 0;
	border-collapse: collapse;
	border-spacing: 0;

	background: #fff;

	font-size: 0.94rem;
	line-height: 1.7;
}

.single-post .entry th,
.single-post .entry td {
	padding: 16px 18px;

	border: 0;
	border-bottom: 1px solid #e3e7ea;

	vertical-align: top;
	text-align: left;

	font-size: inherit;
}

.single-post .entry th {
	background: #f4f7f9;

	color: #222;
	font-weight: 600;
}

.single-post .entry tr:first-child th,
.single-post .entry tr:first-child td {
	border-top: 1px solid #e3e7ea;
}


/* 左列見出し型の表にも対応 */
.single-post .entry tbody th {
	width: 28%;
}


/* ==================================================
   Blockquote
================================================== */

.single-post .entry blockquote {
	margin: 2.2em 0;
	padding: 22px 26px;

	border: 0;
	border-left: 3px solid var(--maincolor);

	background: #f6f8fa;

	color: #444;

	font-size: 0.96rem;
	line-height: 1.9;
}

.single-post .entry blockquote p:last-child {
	margin-bottom: 0;
}


/* ==================================================
   Strong / Emphasis
================================================== */

.single-post .entry strong {
	color: #222;
	font-weight: 600;
}


/* ==================================================
   Links
================================================== */

.single-post .entry a {
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
}


/* ==================================================
   Horizontal Rule
================================================== */

.single-post .entry hr {
	margin: 3em 0;

	border: 0;
	border-top: 1px solid #e3e7ea;
}


/* ==================================================
   Images
================================================== */

.single-post .entry img {
	max-width: 100%;
	height: auto;
}


/* ==================================================
   Responsive
================================================== */

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

	.single-post #post {
		font-size: 0.96rem;
		line-height: 1.95;
	}

	.single-post #post p {
		font-size: 0.96rem;
		line-height: 1.95;
	}


	/* Title */
	.single-post .entrytitle {
		margin-bottom: 12px;

		font-size: clamp(1.7rem, 7vw, 2.3rem);
		line-height: 1.5;
	}


	/* Date */
	.single-post .entry-date {
		gap: 4px 16px;

		margin: 10px 0 28px;

		font-size: 0.78rem;
	}


	/* H2 */
	.single-post .entry h2 {
		margin: 3em 0 1.25em;
		padding-left: 16px;

		font-size: clamp(1.45rem, 6vw, 1.9rem);
	}

	.single-post .entry h2::before {
		width: 3px;
	}


	/* H3 */
	.single-post .entry h3 {
		margin-top: 2.5em;

		font-size: clamp(1.25rem, 5vw, 1.55rem);
	}


	/* H4 */
	.single-post .entry h4 {
		font-size: 1.06rem;
	}


	/* Lists */
	.single-post .entry ul > li {
		padding-left: 1.4em;
	}

	.single-post .entry ol > li {
		padding-left: 2.7em;
	}


	/* Table */
	.single-post .entry table {
		font-size: 0.9rem;
	}

	.single-post .entry th,
	.single-post .entry td {
		padding: 12px 10px;
	}

	.single-post .entry tbody th {
		width: 32%;
	}


	/* Blockquote */
	.single-post .entry blockquote {
		padding: 18px 20px;

		font-size: 0.93rem;
	}

}

/* ==================================================
   Archive / Category
================================================== */


/* --------------------------------------------------
   Archive Header
-------------------------------------------------- */

.archive #post {
	background: transparent;
}

.archive .archive-header {
	margin-bottom: 56px;
	padding-bottom: 34px;
	border-bottom: 1px solid #e5e8eb;
}

.archive .archive-header__label {
	margin: 0 0 14px;
	padding: 0;

	color: var(--maincolor);

	font-size: 0.72rem;
	line-height: 1.5;
	font-weight: 500;
	letter-spacing: 0.18em;
}

.archive .archive-header__title {
	margin: 0;
	padding: 0;

	color: #222;

	font-size: clamp(2rem, 3vw, 2.8rem);
	line-height: 1.45;
	font-weight: 500;
	letter-spacing: 0.01em;
}

.archive .archive-header__description {
	max-width: 720px;
	margin-top: 18px;

	color: #666;

	font-size: 0.95rem;
	line-height: 1.9;
}


/* --------------------------------------------------
   Archive List
-------------------------------------------------- */

.archive .archive-list {
	display: block;
}

.archive .archive-item {
	display: grid;

	grid-template-columns:
		minmax(280px, 0.42fr)
		minmax(0, 0.58fr);

	align-items: start;

	gap: 34px;

	margin: 0;
	padding: 34px 0;

	border-bottom: 1px solid #e5e8eb;
}


/* Image
-------------------------------------------------- */

.archive .archive-item__image {
	display: flex;
	align-items: center;
	justify-content: center;

	align-self: start;

	width: 100%;
	aspect-ratio: 16 / 9;

	margin: 0;
	padding: 0;

	overflow: hidden;

	background: #f6f7f8;

	text-decoration: none;
	line-height: 0;
}

.archive .archive-item__image img {
	display: block;

	width: 100% !important;
	height: 100% !important;
	max-width: none;

	margin: 0 !important;
	padding: 0;

	object-fit: contain;

	transition: transform 0.35s ease;
}

.archive .archive-item__image:hover img {
	transform: scale(1.025);
}


/* Body
-------------------------------------------------- */

.archive .archive-item__body {
	min-width: 0;
	padding-top: 2px;
}


/* Meta
-------------------------------------------------- */

.archive .archive-item__meta {
	display: flex;
	flex-wrap: wrap;

	align-items: center;

	gap: 8px 14px;

	margin-bottom: 14px;

	color: #777;

	font-size: 0.76rem;
	line-height: 1.5;
	letter-spacing: 0.04em;
}

.archive .archive-item__category {
	display: inline-block;

	padding: 3px 8px;

	background: #f2f5f7;

	color: #555;

	font-size: 0.72rem;
}


/* Title
-------------------------------------------------- */

.archive .archive-item__title {
	margin: 0 0 16px;
	padding: 0;

	background: none;
	border: 0;

	color: #222;

	font-size: clamp(1.35rem, 2vw, 1.75rem);
	line-height: 1.55;
	font-weight: 500;
	letter-spacing: 0.01em;
}

.archive .archive-item__title a {
	color: inherit;
	text-decoration: none;
}

.archive .archive-item__title a:hover {
	color: var(--maincolor);
}


/* Excerpt
-------------------------------------------------- */

.archive .archive-item__excerpt {
	color: #555;

	font-size: 0.92rem;
	line-height: 1.9;
}

.archive .archive-item__excerpt p {
	margin: 0;
}


/* Read More
-------------------------------------------------- */

.archive #post p.archive-item__more {
	margin: 22px 0 0;
}

.archive .archive-item__more a {
	display: inline-flex;
	align-items: center;

	gap: 9px;

	padding: 0;

	border: 0;
	background: transparent;

	color: var(--maincolor);

	font-size: 0.82rem;
	line-height: 1.5;
	font-weight: 500;
	letter-spacing: 0.03em;

	text-decoration: none;
}

.archive .archive-item__more span {
	transition: transform 0.25s ease;
}

.archive .archive-item__more a:hover span {
	transform: translateX(4px);
}


/* ==================================================
   Archive Responsive
================================================== */

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

	.archive .archive-header {
		margin-bottom: 40px;
		padding-bottom: 26px;
	}

	.archive .archive-item {
		grid-template-columns: 1fr;
		gap: 20px;

		padding: 30px 0;
	}

	.archive .archive-item__image {
		width: 100%;
	}

	.archive .archive-item__image img {
		aspect-ratio: 16 / 9;
	}

}


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

	.archive .archive-header__title {
		font-size: clamp(1.7rem, 7vw, 2.3rem);
	}

	.archive .archive-item__title {
		font-size: clamp(1.25rem, 5.5vw, 1.55rem);
	}

	.archive .archive-item__excerpt {
		font-size: 0.9rem;
		line-height: 1.85;
	}

}

/* ==================================================
   Entry Eyecatch
================================================== */

.single-post .entry-eyecatch,
.page .entry-eyecatch {
	margin: 34px 0 54px;
	padding: 18px;

	background: #f6f8fa;
}

.single-post .entry-eyecatch__image,
.page .entry-eyecatch__image {
	display: block;

	width: 100%;
	height: auto;

	margin: 0;

	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.04);
}


/* --------------------------------------------------
   Responsive
-------------------------------------------------- */

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

	.single-post .entry-eyecatch,
	.page .entry-eyecatch {
		margin: 26px 0 38px;
	}

}

/* ==================================================
   Pagination
================================================== */

.archive .pagination,
.archive .wp-pagenavi {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;

	margin: 46px 0 90px;
	padding: 0;

	font-size: 0.9rem;
}


/* ページ番号 */
.archive .pagination a,
.archive .pagination span,
.archive .wp-pagenavi a,
.archive .wp-pagenavi span {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	min-width: 38px;
	height: 38px;

	padding: 0 11px;

	border: 1px solid #dfe4e8;

	background: #fff;

	color: #555;

	text-decoration: none;
	line-height: 1;

	transition:
		border-color 0.2s ease,
		background-color 0.2s ease,
		color 0.2s ease;
}


/* hover */
.archive .pagination a:hover,
.archive .wp-pagenavi a:hover {
	border-color: var(--maincolor);
	color: var(--maincolor);
}


/* 現在ページ */
.archive .pagination .current,
.archive .wp-pagenavi .current {
	border-color: var(--maincolor);
	background: var(--maincolor);

	color: #fff;

	font-weight: 500;
}


/* 「1/13」のようなページ数表示 */
.archive .wp-pagenavi .pages {
	min-width: auto;

	padding: 0 12px;

	border-color: transparent;

	background: #f4f6f8;

	color: #777;
}


/* 省略記号 */
.archive .wp-pagenavi .extend {
	min-width: 30px;

	padding: 0 4px;

	border-color: transparent;

	background: transparent;

	color: #999;
}


/* 最後へ・次へ */
.archive .wp-pagenavi .nextpostslink,
.archive .wp-pagenavi .previouspostslink,
.archive .wp-pagenavi .last,
.archive .wp-pagenavi .first {
	padding-left: 14px;
	padding-right: 14px;
}

/* ==================================================
   Contact / Soudan
================================================== */

.soudan-area {
	margin-top: 90px;
	padding: 70px clamp(28px, 5vw, 70px) 76px;

	background: #f6f8fa;

	border: 0;
}


/* --------------------------------------------------
   Main Title
-------------------------------------------------- */

.soudan-area .soudan-title {
	margin: 0 0 18px;
	padding: 0;

	background: none;
	border: 0;

	color: #222;

	font-size: clamp(2rem, 3vw, 2.7rem);
	line-height: 1.45;
	font-weight: 500;
	letter-spacing: 0.01em;
	text-align: left;
}


/* --------------------------------------------------
   Section Header
-------------------------------------------------- */

.soudan-area .soudan-header {
	margin: 44px 0 30px;
	padding: 0 0 15px;

	background: none;
	border: 0;
	border-bottom: 1px solid #dfe4e8;

	color: var(--maincolor);

	font-size: 1.15rem;
	line-height: 1.5;
	font-weight: 500;
	letter-spacing: 0.02em;
	text-align: left;
}


/* 最初の小見出し */
.soudan-area .soudan-title + .soudan-header {
	margin-top: 30px;
}


/* --------------------------------------------------
   Telephone
-------------------------------------------------- */

.soudan-area .center {
	text-align: left;
}

.soudan-area .center > p {
	margin: 0 0 12px;

	color: #555;

	font-size: 0.92rem;
	line-height: 1.8;
}

.soudan-area .soudancontact-number {
	margin: 0 0 6px;

	font-size: clamp(1.8rem, 3vw, 2.5rem);
	line-height: 1.3;
	font-weight: 500;
	letter-spacing: 0.02em;
}

.soudan-area .soudancontact-number a {
	color: var(--maincolor);
	text-decoration: none;
}

.soudan-area .soudancontact-info {
	color: #777;

	font-size: 0.82rem;
	line-height: 1.7;
}


/* ==================================================
   Contact Form 7
================================================== */

.soudan-area .wpcf7 {
	margin: 0;
	padding: 0;
}

.soudan-area .wpcf7-form {
	margin: 0;
	padding: 0;
}


/* 各項目 */
.soudan-area .wpcf7-form p {
	margin: 0 0 28px;

	color: #333;

	font-size: 0.95rem;
	line-height: 1.8;
}


/* ラベル */
.soudan-area .wpcf7-form label {
	display: block;

	margin: 0 0 9px;

	color: #333;

	font-weight: 500;
}


/* --------------------------------------------------
   Form Controls
-------------------------------------------------- */

.soudan-area input[type="text"],
.soudan-area input[type="email"],
.soudan-area input[type="tel"],
.soudan-area input[type="url"],
.soudan-area select,
.soudan-area textarea {
	display: block;

	width: 100%;
	max-width: none;

	box-sizing: border-box;

	margin: 8px 0 0;
	padding: 13px 14px;

	border: 1px solid #cfd5da;
	border-radius: 2px;

	background: #fff;

	color: #222;

	font-family: inherit;
	font-size: 1rem;
	line-height: 1.6;

	transition:
		border-color 0.2s ease,
		box-shadow 0.2s ease,
		background-color 0.2s ease;
}


/* 一行フォーム */
.soudan-area input[type="text"],
.soudan-area input[type="email"],
.soudan-area input[type="tel"],
.soudan-area input[type="url"],
.soudan-area select {
	min-height: 50px;
}


/* textarea */
.soudan-area textarea {
	min-height: 210px;
	resize: vertical;
}


/* focus */
.soudan-area input[type="text"]:focus,
.soudan-area input[type="email"]:focus,
.soudan-area input[type="tel"]:focus,
.soudan-area input[type="url"]:focus,
.soudan-area select:focus,
.soudan-area textarea:focus {
	outline: none;

	border-color: var(--maincolor);

	background: #fff;

	box-shadow: 0 0 0 3px rgba(0, 72, 125, 0.08);
}


/* --------------------------------------------------
   Select
-------------------------------------------------- */

.soudan-area select {
	appearance: auto;
	-webkit-appearance: auto;

	cursor: pointer;
}


/* --------------------------------------------------
   Checkbox
-------------------------------------------------- */

.soudan-area input[type="checkbox"] {
	width: 16px;
	height: 16px;

	margin: 0 8px 0 0;

	vertical-align: -2px;

	accent-color: var(--maincolor);
}

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


/* --------------------------------------------------
   Required
-------------------------------------------------- */

.soudan-area .required,
.soudan-area .hissu,
.soudan-area .must {
	display: inline-block;

	margin-left: 7px;
	padding: 2px 6px;

	background: var(--maincolor);

	color: #fff;

	font-size: 0.65rem;
	line-height: 1.4;
	font-weight: 500;
	letter-spacing: 0.03em;

	vertical-align: 2px;
}


/* --------------------------------------------------
   Submit
-------------------------------------------------- */

.soudan-area input[type="submit"],
.soudan-area button[type="submit"] {
	display: block;

	width: min(100%, 320px);

	margin: 38px auto 0;
	padding: 15px 28px;

	border: 0;
	border-radius: 2px;

	background: var(--maincolor);

	color: #fff;

	font-family: inherit;
	font-size: 1rem;
	line-height: 1.5;
	font-weight: 500;
	letter-spacing: 0.06em;

	cursor: pointer;

	transition:
		background-color 0.2s ease,
		transform 0.2s ease;
}

.soudan-area input[type="submit"]:hover,
.soudan-area button[type="submit"]:hover {
	background: #062f56;
	transform: translateY(-1px);
}


/* --------------------------------------------------
   CF7 Messages
-------------------------------------------------- */

.soudan-area .wpcf7-response-output {
	margin: 28px 0 0 !important;
	padding: 14px 16px !important;

	border-width: 1px !important;

	font-size: 0.88rem;
	line-height: 1.7;
}

.soudan-area .wpcf7-not-valid-tip {
	margin-top: 6px;

	color: #b42318;

	font-size: 0.78rem;
}


/* --------------------------------------------------
   reCAPTCHA / note
-------------------------------------------------- */

.soudan-area .wpcf7-form > p:last-child {
	margin-top: 34px;
	margin-bottom: 0;

	color: #777;

	font-size: 0.78rem;
	line-height: 1.8;
}


/* ==================================================
   Responsive
================================================== */

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

	.soudan-area {
		margin-top: 70px;
		padding: 46px 20px 52px;
	}

	.soudan-area .soudan-title {
		font-size: clamp(1.7rem, 7vw, 2.2rem);
	}

	.soudan-area .soudan-header {
		margin-top: 34px;
		margin-bottom: 24px;

		font-size: 1.05rem;
	}

	.soudan-area .wpcf7-form p {
		margin-bottom: 24px;

		font-size: 0.92rem;
	}

	.soudan-area input[type="text"],
	.soudan-area input[type="email"],
	.soudan-area input[type="tel"],
	.soudan-area input[type="url"],
	.soudan-area select,
	.soudan-area textarea {
		font-size: 16px;
	}

	.soudan-area textarea {
		min-height: 180px;
	}

	.soudan-area input[type="submit"],
	.soudan-area button[type="submit"] {
		width: 100%;
	}

}

/* Newpost Catch */
#npcatch {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

#npcatch > li {
	display: block !important;
	float: none !important;
	clear: both !important;
	margin: 0 !important;
	padding: 14px 0 !important;
	border-bottom: 1px solid #e5e5e5;
	overflow: hidden;
}

#npcatch > li > a {
	display: flex !important;
	align-items: center;
	gap: 14px;
	width: 100%;
	text-decoration: none;
}

#npcatch figure {
	display: block !important;
	float: none !important;
	flex: 0 0 90px;
	width: 90px !important;
	margin: 0 !important;
	padding: 0 !important;
}

#npcatch figure img {
	display: block !important;
	float: none !important;
	width: 90px !important;
	height: 90px !important;
	margin: 0 !important;
	padding: 0 !important;
	object-fit: cover;
	box-shadow: none !important;
}

#npcatch .detail {
	display: block !important;
	float: none !important;
	flex: 1;
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
}

#npcatch .title {
	display: block !important;
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	font-size: 15px !important;
	line-height: 1.6 !important;
	font-weight: 500;
}

/* ========================================
   記事下 著者プロフィール
======================================== */

.author-profile {
	margin: 48px 0 24px;
}


/* 見出し */
.author-profile__heading {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding: 9px 16px;
	background: var( --maincolor);
	color: #fff;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.4;
	border-radius: 4px 4px 0 0;
}


/* 見出しアイコン */
.author-profile__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 13px;
}


/* ボックス本体 */
.author-box {
	display: flex;
	align-items: center;
	gap: 24px;
	padding: 26px 28px;
	background: #fff;
	border: 1px solid #dfe6ec;
	border-top: 3px solid var( --maincolor);
	box-shadow: 0 3px 14px rgba(0, 0, 0, 0.05);
}


/* 写真エリア */
.author-box__image {
	flex: 0 0 110px;
}


/* 写真 */
.author-box__image img {
	display: block;
	width: 110px;
	height: 110px;
	margin: 0;
	object-fit: cover;
	border-radius: 50%;
	border: 4px solid #f1f4f7;
}


/* テキスト側 */
.author-box__content {
	flex: 1;
	min-width: 0;
}


/* 名前 */
.author-box__name {
	margin: 0 0 5px;
	color: #222;
	font-size: 22px;
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: 0.03em;
}


/* 肩書き */
.author-box__meta {
	margin: 0 0 13px;
	color: #666;
	font-size: 14px;
	line-height: 1.7;
}


/* 会社名リンク */
.author-box__meta a {
	color: #0d55a5;
	font-weight: 500;
	text-decoration: none;
}

.author-box__meta a:hover {
	text-decoration: underline;
}


/* 紹介文 */
.author-box__text {
	margin: 0;
	color: #555;
	font-size: 14px;
	line-height: 1.9;
}


/* ========================================
   スマートフォン
======================================== */

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

	.author-profile {
		margin-top: 36px;
	}

	.author-profile__heading {
		padding: 8px 14px;
		font-size: 14px;
	}

	.author-box {
		display: block;
		padding: 22px 20px;
	}

	.author-box__image {
		margin: 0 0 16px;
	}

	.author-box__image img {
		width: 90px;
		height: 90px;
	}

	.author-box__name {
		font-size: 20px;
	}

	.author-box__meta {
		font-size: 13px;
	}

	.author-box__text {
		font-size: 14px;
		line-height: 1.85;
	}
}

/* ==================================================
   Top - Works
================================================== */

.home #top-lp .kaze-works {
	position: relative;
	padding: 110px 0;
	background: #f6f8fa;
}


/* --------------------------------------------------
   Section Header
-------------------------------------------------- */

.home #top-lp .kaze-works__header {
	max-width: 760px;
	margin: 0 0 62px;
}

.home #top-lp .kaze-works__label {
	margin: 0 0 22px;
	padding: 0;
	color: var(--maincolor);
	font-size: 0.72rem;
	line-height: 1.5;
	font-weight: 500;
	letter-spacing: 0.18em;
}

.home #top-lp .kaze-works__title {
	margin: 0 0 26px;
	padding: 0;
	color: var(--blackcolor);
	font-size: clamp(2rem, 3vw, 3rem);
	line-height: 1.45;
	font-weight: 500;
	letter-spacing: 0.01em;
	text-align: left;
}

.home #top-lp .kaze-works__intro {
	max-width: 680px;
	margin: 0;
	padding: 0;
	color: #555;
	font-size: 0.98rem;
	line-height: 2;
	font-weight: 400;
	letter-spacing: 0.025em;
}


/* --------------------------------------------------
   Works Grid
-------------------------------------------------- */

.home #top-lp .kaze-works__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 30px 24px;
}


/* --------------------------------------------------
   Work Card
-------------------------------------------------- */

.home #top-lp .kaze-work-card {
	min-width: 0;
	margin: 0;
	padding: 0;
	overflow: hidden;
	border: 1px solid #e0e5e8;
	background: #fff;
	box-shadow: 0 10px 28px rgba(17, 34, 48, 0.06);
}

.home #top-lp .kaze-work-card__visual {
	position: relative;
	overflow: hidden;
	aspect-ratio: 768 / 400;
	background: #e9edf0;
}

.home #top-lp .kaze-work-card__visual::after {
	content: "";
	position: absolute;
	inset: 0;
	border-bottom: 1px solid rgba(17, 34, 48, 0.08);
	pointer-events: none;
}

.home #top-lp .kaze-work-card__visual img {
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	object-fit: cover;
	object-position: center top;
}

.home #top-lp .kaze-work-card__content {
	display: flex;
	flex-direction: column;
	min-height: 0;
	padding: 22px 24px 21px;
}

.home #top-lp .kaze-work-card__location {
	align-self: flex-start;
	margin: 0 0 13px;
	padding: 4px 9px;
	background: #eef2f4;
	color: #69747b;
	font-size: 0.68rem;
	line-height: 1.4;
	font-weight: 500;
	letter-spacing: 0.08em;
}

.home #top-lp .kaze-work-card__title {
	margin: 0 0 23px;
	padding: 0;
	color: var(--blackcolor);
	font-size: 1rem;
	line-height: 1.75;
	font-weight: 500;
	letter-spacing: 0.015em;
	text-align: left;
}

.home #top-lp .kaze-work-card__url {
	display: flex;
	align-items: flex-start;
	gap: 10px;

	margin: 22px 0 0;
	padding: 16px 0 0;

	border-top: 1px solid #e6eaed;

	color: #7a848b;

	font-size: 0.72rem;
	line-height: 1.65;
	font-weight: 400;
	letter-spacing: 0.01em;

	overflow-wrap: anywhere;
	word-break: break-word;
}

.home #top-lp .kaze-work-card__url span {
	flex: 0 0 auto;
	padding-top: 1px;
	color: var(--maincolor);
	font-size: 0.62rem;
	font-weight: 600;
	letter-spacing: 0.12em;
}


/* --------------------------------------------------
   More Works
-------------------------------------------------- */

.home #top-lp .kaze-works__more {
	display: none;
	margin-top: 30px;
}

.home #top-lp .kaze-works__more.is-open {
	display: block;
}

.home #top-lp .kaze-works__more-button {
	display: flex;
	justify-content: center;
	margin-top: 54px;
}

.home #top-lp .kaze-works__toggle {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 36px;
	min-width: 300px;
	padding: 17px 22px;
	border: 1px solid var(--maincolor);
	border-radius: 0;
	background: transparent;
	color: var(--maincolor);
	font: inherit;
	font-size: 0.88rem;
	line-height: 1.6;
	font-weight: 500;
	letter-spacing: 0.04em;
	cursor: pointer;
	transition:
		background-color 0.25s ease,
		color 0.25s ease,
		transform 0.25s ease;
}

.home #top-lp .kaze-works__toggle::after {
	content: "+";
	flex: 0 0 auto;
	font-size: 1.25rem;
	line-height: 1;
	font-weight: 300;
}

.home #top-lp .kaze-works__toggle[aria-expanded="true"]::after {
	content: "−";
}

.home #top-lp .kaze-works__toggle:hover {
	background: var(--maincolor);
	color: #fff;
	transform: translateY(-2px);
}

.home #top-lp .kaze-works__toggle:focus-visible {
	outline: 2px solid var(--maincolor);
	outline-offset: 4px;
}


/* ==================================================
   Works Responsive
================================================== */

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

	.home #top-lp .kaze-works__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

}


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

	.home #top-lp .kaze-works {
		padding: 80px 0;
	}

	.home #top-lp .kaze-works__header {
		margin-bottom: 48px;
	}

}


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

	.home #top-lp .kaze-works {
		padding: 64px 0;
	}

	.home #top-lp .kaze-works__label {
		margin-bottom: 18px;
	}

	.home #top-lp .kaze-works__title {
		margin-bottom: 22px;
		font-size: clamp(1.8rem, 7.5vw, 2.5rem);
	}

	.home #top-lp .kaze-works__intro {
		font-size: 0.94rem;
		line-height: 1.9;
	}

	.home #top-lp .kaze-works__grid {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.home #top-lp .kaze-work-card__content {
		min-height: 0;
		padding: 22px 20px 21px;
	}

	.home #top-lp .kaze-works__more {
		margin-top: 24px;
	}

	.home #top-lp .kaze-works__more-button {
		margin-top: 42px;
	}

	.home #top-lp .kaze-works__toggle {
		width: 100%;
		min-width: 0;
	}

}


@media (prefers-reduced-motion: reduce) {

	.home #top-lp .kaze-works__toggle {
		transition: none !important;
		transform: none !important;
	}

}

/* ==================================================
   Fixed Page - Table
================================================== */

.page .entry table {
	width: 100%;
	margin: 2em 0 2.8em;

	border: 1px solid #dfe5e8;
	border-collapse: separate;
	border-spacing: 0;

	background: #fff;

	font-size: 0.95rem;
	line-height: 1.85;

	box-shadow: 0 8px 28px rgba(17, 34, 48, 0.045);
}

.page .entry th,
.page .entry td {
	padding: 20px 24px;

	border: 0;
	border-bottom: 1px solid #e3e8eb;

	vertical-align: top;
	text-align: left;

	font-size: inherit;
}

.page .entry th {
	width: 25%;

	border-right: 1px solid #e3e8eb;

	background: #f4f7f8;

	color: #29343b;

	font-weight: 600;
	letter-spacing: 0.02em;
}

.page .entry tr:last-child th,
.page .entry tr:last-child td {
	border-bottom: 0;
}

.page .entry td > :first-child {
	margin-top: 0;
}

.page .entry td > :last-child {
	margin-bottom: 0;
}

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

	.page .entry table {
		font-size: 0.92rem;
	}

	.page .entry th,
	.page .entry td {
		padding: 14px 16px;
	}

	.page .entry th {
		width: 30%;
	}

}

/* ==================================================
   Sidebar - Modern Style
================================================== */


/* --------------------------------------------------
   Sidebar Base
-------------------------------------------------- */

#sidebar {
	color: #344149;
	background: #fff;
}

#sidebar .sidesticky {
	margin: 0;
	padding: 0;
}

#sidebar .sidesticky > ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

#sidebar .sidesticky > ul > .widget {
	margin: 0 0 46px;
	padding: 0;
}

#sidebar .sidesticky > ul > .widget:last-child {
	margin-bottom: 0;
}


/* --------------------------------------------------
   Widget Heading
-------------------------------------------------- */

#sidebar .side-h {
	position: relative;
	margin: 0 0 20px;
	padding: 0 0 15px;
	border: 0;
	border-bottom: 1px solid #e5eaed;
	color: #26343d;
	font-size: 1.08rem;
	line-height: 1.55;
	font-weight: 500;
	letter-spacing: 0.015em;
}

#sidebar .side-h::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -1px;
	width: 34px;
	height: 2px;
	background: var(--maincolor);
}


/* --------------------------------------------------
   Standard Link Lists
-------------------------------------------------- */

#sidebar .widget ul {
	margin: 0;
	padding: 0;
}

#sidebar .widget ul li {
	margin: 0;
	padding: 0;
}

#sidebar li li a {
	position: relative;
	display: block;
	padding: 12px 25px 12px 0;
	border: 0;
	border-bottom: 1px solid #e8ecef;
	background: transparent;
	color: #33424b;
	font-size: 0.88rem;
	line-height: 1.7;
	font-weight: 400;
	letter-spacing: 0.01em;
	text-decoration: none;
	transition:
		color 0.22s ease,
		padding-left 0.22s ease;
}

#sidebar li li a:visited {
	color: #33424b;
}

#sidebar li li a::after {
	content: "→";
	position: absolute;
	top: 50%;
	right: 3px;
	color: #a2abb1;
	font-size: 0.82rem;
	line-height: 1;
	transform: translateY(-50%);
	transition:
		color 0.22s ease,
		transform 0.22s ease;
}

#sidebar li li a:hover {
	padding-left: 4px;
	background: transparent;
	color: var(--maincolor);
}

#sidebar li li a:hover::after {
	color: var(--maincolor);
	transform: translate(3px, -50%);
}

#sidebar li li a:focus-visible {
	outline: 2px solid var(--maincolor);
	outline-offset: 3px;
}


/* --------------------------------------------------
   Newpost Catch
-------------------------------------------------- */

#sidebar #npcatch {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

#sidebar #npcatch > li {
	display: block !important;
	float: none !important;
	clear: both !important;
	margin: 0 !important;
	padding: 16px 0 !important;
	border: 0;
	border-bottom: 1px solid #e5eaed;
	overflow: visible;
}

#sidebar #npcatch > li:first-child {
	padding-top: 0 !important;
}

#sidebar #npcatch > li > a {
	display: flex !important;
	align-items: flex-start;
	gap: 14px;
	width: 100%;
	padding: 0;
	color: #33424b;
	text-decoration: none;
	transition: color 0.22s ease;
}

#sidebar #npcatch > li > a::after {
	content: none;
}

#sidebar #npcatch figure {
	display: block !important;
	float: none !important;
	flex: 0 0 92px;
	width: 92px !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden;
	background: #edf1f3;
}

#sidebar #npcatch figure img {
	display: block !important;
	float: none !important;
	width: 92px !important;
	height: 70px !important;
	margin: 0 !important;
	padding: 0 !important;
	object-fit: cover;
	object-position: center top;
	box-shadow: none !important;
	transition:
		opacity 0.22s ease,
		transform 0.3s ease;
}

#sidebar #npcatch .detail {
	display: block !important;
	float: none !important;
	flex: 1;
	min-width: 0;
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
}

#sidebar #npcatch .title {
	display: -webkit-box !important;
	float: none !important;
	overflow: hidden;
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	color: #33424b;
	font-size: 0.84rem !important;
	line-height: 1.65 !important;
	font-weight: 500;
	letter-spacing: 0.01em;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}

#sidebar #npcatch > li > a:hover .title {
	color: var(--maincolor);
}

#sidebar #npcatch > li > a:hover figure img {
	opacity: 0.9;
	transform: scale(1.025);
}


/* --------------------------------------------------
   Text Widget
-------------------------------------------------- */

#sidebar .textwidget {
	padding: 0;
	color: #4a555c;
	font-size: 0.88rem;
	line-height: 1.85;
}

#sidebar .textwidget p {
	margin: 0 0 1em;
}

#sidebar .textwidget p:last-child {
	margin-bottom: 0;
}


/* ==================================================
   Sidebar Responsive
================================================== */

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

	#sidebar {
		margin-top: 64px;
		padding-top: 54px;
		border-top: 1px solid #e2e7ea;
	}

	#sidebar .sidesticky > ul > .widget {
		margin-bottom: 44px;
	}

}


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

	#sidebar {
		margin-top: 52px;
		padding-top: 44px;
	}

	#sidebar .sidesticky > ul > .widget {
		margin-bottom: 38px;
	}

	#sidebar .side-h {
		margin-bottom: 16px;
		padding-bottom: 13px;
		font-size: 1.02rem;
	}

	#sidebar li li a {
		padding-top: 11px;
		padding-bottom: 11px;
		font-size: 0.86rem;
	}

	#sidebar #npcatch > li {
		padding: 14px 0 !important;
	}

	#sidebar #npcatch figure {
		flex-basis: 88px;
		width: 88px !important;
	}

	#sidebar #npcatch figure img {
		width: 88px !important;
		height: 68px !important;
	}

}


@media (prefers-reduced-motion: reduce) {

	#sidebar a,
	#sidebar a::after,
	#sidebar #npcatch figure img {
		transition: none !important;
		transform: none !important;
	}

}

/* ==================================================
   Fixed Page Design
   固定ページだけに適用し、トップページと投稿ページには影響しません。
================================================== */


/* --------------------------------------------------
   Page Base
-------------------------------------------------- */

.page:not(.home) #post {
	color: #333;
	font-size: 1rem;
	line-height: 1.9;
}

.page:not(.home) .entry {
	padding: 0;
}

.page:not(.home) #post p {
	margin: 0 0 1.45em;
	font-size: 1rem;
	line-height: 1.9;
	letter-spacing: 0.012em;
}


/* --------------------------------------------------
   Page Title / H1
-------------------------------------------------- */

.page:not(.home) .entrytitle {
	margin: 0 0 38px;
	padding: 0 0 20px;
	border-bottom: 1px solid #dfe5e8;
	color: var(--blackcolor);
	font-size: clamp(2rem, 3.2vw, 2.7rem);
	line-height: 1.45;
	font-weight: 500;
	letter-spacing: 0.01em;
	text-align: left;
}


/* --------------------------------------------------
   H2 - 大きなセクション見出し
-------------------------------------------------- */

.page:not(.home) .entry h2 {
	position: relative;
	margin: 3.2em 0 1.35em;
	padding: 18px 22px 18px 26px;
	border: 0;
	background: #f3f6f8;
	color: #26343d;
	font-size: clamp(1.55rem, 2.4vw, 2rem);
	line-height: 1.55;
	font-weight: 500;
	letter-spacing: 0.01em;
}

.page:not(.home) .entry h2::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	width: 4px;
	background: var(--maincolor);
}


/* --------------------------------------------------
   H3 - 小見出し
-------------------------------------------------- */

.page:not(.home) .entry h3 {
	position: relative;
	margin: 2.6em 0 1.2em;
	padding: 0 0 13px;
	border: 0;
	border-bottom: 1px solid #dfe5e8;
	background: transparent;
	color: #26343d;
	font-size: clamp(1.28rem, 2vw, 1.62rem);
	line-height: 1.55;
	font-weight: 500;
	letter-spacing: 0.01em;
}

.page:not(.home) .entry h3::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -1px;
	width: 46px;
	height: 2px;
	background: var(--maincolor);
}


/* --------------------------------------------------
   H4 - 項目内の補助見出し
-------------------------------------------------- */

.page:not(.home) .entry h4 {
	margin: 2.1em 0 1em;
	padding: 0.08em 0 0.08em 15px;
	border: 0;
	border-left: 3px solid var(--maincolor);
	background: transparent;
	color: #303c44;
	font-size: 1.1rem;
	line-height: 1.65;
	font-weight: 600;
	letter-spacing: 0.01em;
}


/* --------------------------------------------------
   Lists
-------------------------------------------------- */

.page:not(.home) .entry ul,
.page:not(.home) .entry ol {
	margin: 1.4em 0 1.8em;
	padding-left: 1.55em;
	color: #333;
	line-height: 1.85;
}

.page:not(.home) .entry ul {
	list-style: disc;
}

.page:not(.home) .entry ol {
	list-style: decimal;
}

.page:not(.home) .entry li {
	margin: 0 0 0.65em;
	padding-left: 0.2em;
}

.page:not(.home) .entry li:last-child {
	margin-bottom: 0;
}

.page:not(.home) .entry li::marker {
	color: var(--maincolor);
	font-weight: 600;
}

.page:not(.home) .entry li > ul,
.page:not(.home) .entry li > ol {
	margin-top: 0.55em;
	margin-bottom: 0.55em;
}


/* --------------------------------------------------
   Strong / Links
-------------------------------------------------- */

.page:not(.home) .entry strong {
	color: #222;
	font-weight: 600;
}

.page:not(.home) .entry a {
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
}


/* --------------------------------------------------
   Images / Figures
-------------------------------------------------- */

.page:not(.home) .entry img {
	max-width: 100%;
	height: auto;
}

.page:not(.home) .entry figure {
	max-width: 100%;
	margin: 1.8em 0 2.2em;
}

.page:not(.home) .entry figure img {
	display: block;
	margin: 0;
}

.page:not(.home) .entry figcaption,
.page:not(.home) .entry .wp-caption-text {
	margin: 10px 0 0;
	padding: 0;
	color: #778188;
	font-size: 0.78rem;
	line-height: 1.65;
	text-align: left;
}

.page:not(.home) .entry .wp-caption {
	max-width: 100%;
	padding: 0;
	border: 0;
	background: transparent;
	text-align: left;
}

.page:not(.home) .catchimg {
	margin: 0 0 40px;
}

.page:not(.home) .catchimg img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0;
}


/* --------------------------------------------------
   Blockquote / Notice
-------------------------------------------------- */

.page:not(.home) .entry blockquote {
	margin: 2em 0;
	padding: 21px 24px;
	border: 0;
	border-left: 3px solid var(--maincolor);
	background: #f5f7f8;
	color: #434e55;
	font-size: 0.95rem;
	line-height: 1.85;
}

.page:not(.home) .entry blockquote p:last-child {
	margin-bottom: 0;
}


/* --------------------------------------------------
   Table
-------------------------------------------------- */

.page:not(.home) .entry table {
	width: 100%;
	margin: 2em 0 2.8em;
	border: 1px solid #dfe5e8;
	border-collapse: separate;
	border-spacing: 0;
	background: #fff;
	font-size: 0.95rem;
	line-height: 1.85;
	box-shadow: 0 8px 28px rgba(17, 34, 48, 0.045);
}

.page:not(.home) .entry th,
.page:not(.home) .entry td {
	padding: 20px 24px;
	border: 0;
	border-bottom: 1px solid #e3e8eb;
	vertical-align: top;
	text-align: left;
	font-size: inherit;
}

.page:not(.home) .entry th {
	width: 25%;
	border-right: 1px solid #e3e8eb;
	background: #f4f7f8;
	color: #29343b;
	font-weight: 600;
	letter-spacing: 0.02em;
}

.page:not(.home) .entry tr:last-child th,
.page:not(.home) .entry tr:last-child td {
	border-bottom: 0;
}

.page:not(.home) .entry td > :first-child {
	margin-top: 0;
}

.page:not(.home) .entry td > :last-child {
	margin-bottom: 0;
}


/* --------------------------------------------------
   Horizontal Rule
-------------------------------------------------- */

.page:not(.home) .entry hr {
	margin: 2.8em 0;
	border: 0;
	border-top: 1px solid #dfe5e8;
}


/* ==================================================
   Fixed Page Responsive
================================================== */

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

	.page:not(.home) #post p {
		margin-bottom: 1.35em;
		font-size: 0.96rem;
		line-height: 1.9;
	}

	.page:not(.home) .entrytitle {
		margin-bottom: 30px;
		padding-bottom: 16px;
		font-size: clamp(1.7rem, 7vw, 2.25rem);
		line-height: 1.5;
	}

	.page:not(.home) .entry h2 {
		margin: 2.7em 0 1.2em;
		padding: 15px 16px 15px 20px;
		font-size: clamp(1.4rem, 6vw, 1.72rem);
	}

	.page:not(.home) .entry h2::before {
		width: 3px;
	}

	.page:not(.home) .entry h3 {
		margin: 2.3em 0 1.1em;
		padding-bottom: 11px;
		font-size: clamp(1.2rem, 5.2vw, 1.45rem);
	}

	.page:not(.home) .entry h4 {
		margin: 1.9em 0 0.9em;
		padding-left: 12px;
		font-size: 1.04rem;
	}

	.page:not(.home) .entry ul,
	.page:not(.home) .entry ol {
		margin: 1.25em 0 1.6em;
		padding-left: 1.4em;
		font-size: 0.96rem;
		line-height: 1.8;
	}

	.page:not(.home) .entry figure {
		margin: 1.5em 0 1.8em;
	}

	.page:not(.home) .entry blockquote {
		padding: 18px 19px;
		font-size: 0.92rem;
	}

	.page:not(.home) .entry table {
		font-size: 0.9rem;
	}

	.page:not(.home) .entry th,
	.page:not(.home) .entry td {
		padding: 13px 11px;
	}

	.page:not(.home) .entry th {
		width: 31%;
	}

}

/* =========================================================
   サイドバー検索フォーム
========================================================= */

/*
 * 従来型ウィジェット
 * ブロック型検索ウィジェット
 * 旧形式の #searchform
 * のすべてに対応
 */
#sidebar .search-form,
#sidebar #searchform,
#sidebar .wp-block-search__inside-wrapper {
	display: flex;
	align-items: stretch;
	width: 100%;
	margin: 0;
	gap: 0;
}

#sidebar .search-form__label,
#sidebar .search-form label {
	display: block;
	flex: 1 1 auto;
	min-width: 0;
	margin: 0;
}

/* 検索入力欄 */
#sidebar .search-field,
#sidebar #s,
#sidebar .wp-block-search__input {
	box-sizing: border-box;
	width: 100%;
	min-width: 0;
	height: 46px;
	margin: 0;
	padding: 0 15px;

	color: #333;
	background-color: #fff;
	border: 1px solid #d8e0e5;
	border-right: 0;
	border-radius: 3px 0 0 3px;

	font: inherit;
	font-size: 0.94em;
	line-height: 1;

	-webkit-appearance: none;
	appearance: none;

	transition:
		border-color 0.2s ease,
		box-shadow 0.2s ease,
		background-color 0.2s ease;
}

#sidebar .search-field::placeholder,
#sidebar #s::placeholder,
#sidebar .wp-block-search__input::placeholder {
	color: #9099a1;
	opacity: 1;
}

/* 入力時・フォーカス時 */
#sidebar .search-field:focus,
#sidebar #s:focus,
#sidebar .wp-block-search__input:focus {
	position: relative;
	z-index: 1;

	background-color: #fff;
	border-color: var(--maincolor);
	outline: none;
	box-shadow: 0 0 0 3px rgba(0, 74, 128, 0.1);
}

/* 検索ボタン */
#sidebar .search-submit,
#sidebar #searchsubmit,
#sidebar .wp-block-search__button {
	box-sizing: border-box;
	flex: 0 0 auto;
	min-width: 78px;
	height: 46px;
	margin: 0 !important;
	padding: 0 17px;

	color: #fff;
	background-color: var(--maincolor);
	border: 1px solid var(--maincolor);
	border-radius: 0 3px 3px 0;

	font: inherit;
	font-size: 0.9em;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.08em;
	text-align: center;

	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;

	transition:
		filter 0.2s ease,
		transform 0.2s ease,
		box-shadow 0.2s ease;
}

#sidebar .search-submit:hover,
#sidebar #searchsubmit:hover,
#sidebar .wp-block-search__button:hover {
	color: #fff;
	filter: brightness(0.88);
}

#sidebar .search-submit:active,
#sidebar #searchsubmit:active,
#sidebar .wp-block-search__button:active {
	transform: translateY(1px);
}

#sidebar .search-submit:focus-visible,
#sidebar #searchsubmit:focus-visible,
#sidebar .wp-block-search__button:focus-visible {
	outline: 3px solid rgba(0, 74, 128, 0.2);
	outline-offset: 2px;
}

/* Safariの検索欄に表示される装飾を調整 */
#sidebar input[type="search"]::-webkit-search-decoration {
	-webkit-appearance: none;
}

#sidebar input[type="search"]::-webkit-search-cancel-button {
	cursor: pointer;
}


/* =========================================================
   ページ上部へ戻るボタン
========================================================= */

#back-top {
	position: fixed;
	right: 28px;
	bottom: 28px;
	z-index: 50;

	margin: 0;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateY(10px);

	transition:
		opacity 0.25s ease,
		visibility 0.25s ease,
		transform 0.25s ease;
}

#back-top.is-visible {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateY(0);
}

#back-top a {
	box-sizing: border-box;
	display: grid;
	place-items: center;

	width: 48px;
	height: 48px;

	color: #fff;
	background-color: var(--maincolor);
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 4px;

	box-shadow:
		0 5px 16px rgba(20, 42, 60, 0.16),
		0 1px 3px rgba(20, 42, 60, 0.12);

	transition:
		transform 0.2s ease,
		filter 0.2s ease,
		box-shadow 0.2s ease;
}

#back-top a:visited {
	color: #fff;
}

/* CSSで上向き矢印を描画 */
#back-top a span {
	display: block;
	width: 11px;
	height: 11px;

	border-top: 2px solid currentColor;
	border-left: 2px solid currentColor;

	transform: translateY(3px) rotate(45deg);
}

#back-top a:hover {
	color: #fff;
	filter: brightness(0.9);
	transform: translateY(-3px);

	box-shadow:
		0 8px 20px rgba(20, 42, 60, 0.2),
		0 2px 5px rgba(20, 42, 60, 0.14);
}

#back-top a:active {
	transform: translateY(-1px);
}

#back-top a:focus-visible {
	outline: 3px solid rgba(0, 74, 128, 0.24);
	outline-offset: 3px;
}


/* =========================================================
   スマートフォン
========================================================= */

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

	#sidebar .search-field,
	#sidebar #s,
	#sidebar .wp-block-search__input,
	#sidebar .search-submit,
	#sidebar #searchsubmit,
	#sidebar .wp-block-search__button {
		height: 44px;
	}

	#sidebar .search-submit,
	#sidebar #searchsubmit,
	#sidebar .wp-block-search__button {
		min-width: 72px;
		padding-right: 14px;
		padding-left: 14px;
	}

	#back-top {
		right: 16px;
		bottom: 16px;
	}

	#back-top a {
		width: 44px;
		height: 44px;
	}
}


/* 動きを抑える設定を利用している場合 */
@media (prefers-reduced-motion: reduce) {

	#back-top,
	#back-top a,
	#sidebar .search-field,
	#sidebar #s,
	#sidebar .wp-block-search__input,
	#sidebar .search-submit,
	#sidebar #searchsubmit,
	#sidebar .wp-block-search__button {
		transition: none;
	}

	html {
		scroll-behavior: auto;
	}
}

/* =========================================================
   士業ホームページの制作（/flow-01/）用パーツ
   本文中のクラス名はすべて ffw- で始まります。
   固定ページ本文の既存スタイル（.page:not(.home) #post p 等）より
   優先されるよう、先頭に .page:not(.home) #post を付けています。
========================================================= */

/* --- 注記 --- */
.page:not(.home) #post .ffw-note {
	margin: -0.4em 0 1.8em;
	color: #5c666d;
	font-size: 0.88rem;
	line-height: 1.8;
}

.page:not(.home) #post .ffw-note--alert {
	padding: 12px 16px;
	border-left: 3px solid #b3261e;
	background: #fbf3f2;
	color: #8a1f18;
	margin-top: 0;
}


/* --- 制作の概要 --- */
.page:not(.home) #post .ffw-overview {
	margin: 2.2em 0 2.6em;
	padding: 26px 28px 22px;
	border-top: 3px solid var(--maincolor);
	background: var(--lightcolor);
}

.page:not(.home) #post .ffw-overview__title {
	margin: 0 0 14px;
	color: var(--maincolor);
	font-size: 1.05rem;
	font-weight: 600;
	letter-spacing: 0.04em;
}

.page:not(.home) #post .ffw-overview__list {
	display: grid;
	grid-template-columns: 9.5em 1fr;
	margin: 0;
	border-top: 1px solid #d3dce3;
}

.page:not(.home) #post .ffw-overview__list dt,
.page:not(.home) #post .ffw-overview__list dd {
	margin: 0;
	padding: 12px 0;
	border-bottom: 1px solid #d3dce3;
	font-size: 0.95rem;
	line-height: 1.7;
}

.page:not(.home) #post .ffw-overview__list dt {
	padding-right: 1em;
	color: #4a5760;
	font-weight: 600;
}

.page:not(.home) #post .ffw-overview__list dd {
	color: #26343d;
}

.page:not(.home) #post .ffw-overview__more {
	margin: 14px 0 0;
	font-size: 0.92rem;
	text-align: right;
}


/* --- 設定内容が反映される場所（FLOW-FLEX） --- */
.page:not(.home) #post .ffw-sync {
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) 44px minmax(0, 1.2fr);
	align-items: center;
	margin: 1.8em 0 2em;
}

.page:not(.home) #post .ffw-sync__box {
	height: 100%;
	padding: 20px 22px;
	border: 1px solid #dfe5e8;
	background: #fff;
	box-sizing: border-box;
}

.page:not(.home) #post .ffw-sync__box--input {
	display: flex;
	flex-direction: column;
	justify-content: center;
	border-color: var(--maincolor);
	background: var(--maincolor);
	color: #fff;
}

.page:not(.home) #post .ffw-sync__label {
	margin: 0 0 10px;
	font-size: 0.85rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	line-height: 1.5;
}

.page:not(.home) #post .ffw-sync__box--input .ffw-sync__label {
	color: #c9d8e6;
}

.page:not(.home) #post .ffw-sync__box--output .ffw-sync__label {
	color: var(--maincolor);
}

.page:not(.home) #post .ffw-sync__items {
	margin: 0;
	padding: 0;
	list-style: none;
}

.page:not(.home) #post .ffw-sync__items li {
	margin: 0;
	padding: 7px 0;
	border-top: 1px solid #e3e8eb;
	font-size: 0.94rem;
	line-height: 1.6;
}

.page:not(.home) #post .ffw-sync__items li:first-child {
	border-top: 0;
}

.page:not(.home) #post .ffw-sync__box--input .ffw-sync__items,
.page:not(.home) #post .ffw-sync__box--input .ffw-sync__items li {
	color: #fff;
}

.page:not(.home) #post .ffw-sync__box--input .ffw-sync__items li {
	border-top-color: rgba(255, 255, 255, 0.22);
	font-weight: 600;
}

.page:not(.home) #post .ffw-sync__items li::marker {
	content: "";
}

.page:not(.home) #post .ffw-sync__arrow {
	position: relative;
	height: 2px;
	background: var(--maincolor);
}

.page:not(.home) #post .ffw-sync__arrow::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 0;
	width: 10px;
	height: 10px;
	border-top: 2px solid var(--maincolor);
	border-right: 2px solid var(--maincolor);
	transform: translateY(-50%) rotate(45deg);
}


/* --- 向いている／向いていない事務所 --- */
.page:not(.home) #post .ffw-fit {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
	margin: 1.8em 0 2em;
}

.page:not(.home) #post .ffw-fit__col {
	padding: 20px 22px 18px;
	border: 1px solid #dfe5e8;
	background: #fff;
}

.page:not(.home) #post .ffw-fit__col--good {
	border-top: 3px solid var(--maincolor);
}

.page:not(.home) #post .ffw-fit__col--bad {
	border-top: 3px solid #9aa5ad;
	background: #f7f8f9;
}

.page:not(.home) #post .ffw-fit__title {
	margin: 0 0 10px;
	color: #26343d;
	font-size: 1.02rem;
	font-weight: 600;
}

.page:not(.home) #post .ffw-fit ul {
	margin: 0;
	padding-left: 1.3em;
	font-size: 0.94rem;
	line-height: 1.75;
}

.page:not(.home) #post .ffw-fit li {
	margin-bottom: 0.5em;
}

.page:not(.home) #post .ffw-fit__col--bad li::marker {
	color: #9aa5ad;
}


/* --- 対応都道府県の表 --- */
.page:not(.home) #post .ffw-area th {
	width: 22%;
	white-space: nowrap;
}


/* --- 料金表 --- */
.page:not(.home) #post .ffw-price thead th {
	width: auto;
	border-right: 0;
	background: var(--maincolor);
	color: #fff;
	font-weight: 600;
}

.page:not(.home) #post .ffw-price tbody th {
	width: 16%;
	white-space: nowrap;
}

.page:not(.home) #post .ffw-price .ffw-price__amount {
	width: 26%;
	color: var(--maincolor);
	font-weight: 600;
	white-space: nowrap;
}


/* --- ご依頼から公開までの流れ --- */
.page:not(.home) #post .ffw-steps {
	margin: 1.8em 0 2.4em;
	padding: 0;
	list-style: none;
	counter-reset: ffw-step;
}

.page:not(.home) #post .ffw-steps > li {
	position: relative;
	margin: 0;
	padding: 0 0 22px 62px;
	counter-increment: ffw-step;
}

.page:not(.home) #post .ffw-steps > li::marker {
	content: "";
}

/* 番号 */
.page:not(.home) #post .ffw-steps > li::before {
	content: counter(ffw-step);
	position: absolute;
	top: 0;
	left: 0;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--maincolor);
	color: #fff;
	font-size: 1rem;
	font-weight: 600;
	line-height: 40px;
	text-align: center;
}

/* 番号をつなぐ線 */
.page:not(.home) #post .ffw-steps > li:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 44px;
	bottom: 4px;
	left: 19px;
	width: 2px;
	background: #cfd9e1;
}

.page:not(.home) #post .ffw-steps p {
	margin: 0;
	font-size: 0.95rem;
	line-height: 1.8;
}

.page:not(.home) #post .ffw-steps .ffw-steps__title {
	margin: 6px 0 4px;
	color: #26343d;
	font-size: 1.05rem;
	font-weight: 600;
	line-height: 1.6;
}


/* --- サービス案内PDF --- */
.page:not(.home) #post .ffw-guide {
	margin: 1.2em 0 0;
	text-align: center;
}

.page:not(.home) #post .ffw-guide img {
	display: inline-block;
	width: 100%;
	max-width: 320px;
	border: 1px solid #dfe5e8;
	transition: opacity 0.2s ease;
}

.page:not(.home) #post .ffw-guide a:hover img {
	opacity: 0.85;
}


/* --- ページ内リンクの移動先（固定メニューに隠れないように） --- */
.page:not(.home) #post #ffw-price,
.page:not(.home) #post #ffw-system {
	scroll-margin-top: 90px;
}


/* --- スマートフォン --- */
@media screen and (max-width: 768px) {

	.page:not(.home) #post .ffw-overview {
		padding: 20px 18px 16px;
	}

	.page:not(.home) #post .ffw-overview__list {
		grid-template-columns: 1fr;
	}

	.page:not(.home) #post .ffw-overview__list dt {
		padding: 12px 0 0;
		border-bottom: 0;
		font-size: 0.86rem;
	}

	.page:not(.home) #post .ffw-overview__list dd {
		padding: 2px 0 12px;
	}

	.page:not(.home) #post .ffw-sync {
		grid-template-columns: 1fr;
	}

	.page:not(.home) #post .ffw-sync__arrow {
		width: 2px;
		height: 28px;
		margin: 0 auto;
	}

	.page:not(.home) #post .ffw-sync__arrow::after {
		top: auto;
		right: auto;
		bottom: 0;
		left: 50%;
		transform: translateX(-50%) rotate(135deg);
	}

	.page:not(.home) #post .ffw-fit {
		grid-template-columns: 1fr;
		gap: 14px;
	}

	.page:not(.home) #post .ffw-area th,
	.page:not(.home) #post .ffw-area td {
		display: block;
		width: auto;
		border-right: 0;
	}

	.page:not(.home) #post .ffw-price thead {
		display: none;
	}

	.page:not(.home) #post .ffw-price tr {
		display: block;
		border-bottom: 1px solid #e3e8eb;
	}

	.page:not(.home) #post .ffw-price tr:last-child {
		border-bottom: 0;
	}

	.page:not(.home) #post .ffw-price tbody th,
	.page:not(.home) #post .ffw-price td {
		display: block;
		width: auto;
		border: 0;
	}

	.page:not(.home) #post .ffw-price tbody th {
		padding-bottom: 8px;
	}

	.page:not(.home) #post .ffw-price .ffw-price__amount {
		padding-bottom: 0;
		font-size: 1.05rem;
	}

	.page:not(.home) #post .ffw-steps > li {
		padding-left: 52px;
	}

	.page:not(.home) #post .ffw-steps > li::before {
		width: 34px;
		height: 34px;
		line-height: 34px;
		font-size: 0.92rem;
	}

	.page:not(.home) #post .ffw-steps > li:not(:last-child)::after {
		top: 38px;
		left: 16px;
	}
}


/* =========================================================
   FLOW-FLEX 2.0.5 対応（カスタマイザー連動パーツ）
   sidebar.php / sidebar-contact.php / soudan.php /
   menu-navi.php / author-box.php の差し替えに合わせた定義
========================================================= */

/* ---------------------------------------------------------
   サイドバー追尾
   ウィジェットは通常どおりスクロールし、
   お問い合わせボックスだけが画面内に追従します。
   サイドバーが長いサイトでも追尾が効くようにするための構成です。
--------------------------------------------------------- */

#sidebar {
	display: block;
	align-self: stretch;
}

#sidebar .sidesticky {
	position: static;
	top: auto;
	bottom: auto;
	transform: none;
}

@media screen and (min-width: 769px) {

	#sidebar {
		display: flex;
		flex-direction: column;
		justify-content: flex-start;
	}

	/* サイドバーの高さいっぱいに広げ、追尾の可動範囲を確保 */
	#sidebar .sidesticky {
		display: flex;
		flex: 1 1 auto;
		flex-direction: column;
	}

	/* 固定メニュー（約55px）＋余白の分だけ下げて止める */
	#sidebar .sidecontact-box {
		position: -webkit-sticky;
		position: sticky;
		top: var(--sidebar-contact-top, 76px);
		z-index: 1;
	}
}


/* ---------------------------------------------------------
   サイドバーお問い合わせボックス（sidebar-contact.php）
--------------------------------------------------------- */

#sidebar .sidecontact-box {
	box-sizing: border-box;
	margin-top: 46px;
	padding: 26px 22px 22px;
	border: 1px solid #dbe4ea;
	border-radius: 10px;
	background-color: var(--whitecolor);
	color: var(--blackcolor);
	font-weight: 400;
	text-align: center;
	box-shadow: 0 8px 24px rgba(8, 64, 115, 0.08);
}

#sidebar .sidecontact-title {
	width: 100%;
	margin: 0 0 14px;
	padding: 0;
	color: var(--maincolor);
	font-size: 23px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.03em;
	text-align: center;
}

#sidebar .sidecontact-office {
	margin-bottom: 16px;
	color: var(--blackcolor);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.6;
}

/* style.css の「#sidebar .sidecontact-box p { margin: 0; }」より優先 */
#sidebar .sidecontact-box .sidecontact-message {
	margin: 0 0 20px;
	padding: 16px 18px;
	border: 0;
	border-radius: 6px;
	background-color: var(--lightcolor);
	color: var(--blackcolor);
	font-size: 14px;
	line-height: 1.8;
	text-align: left;
}

#sidebar .sidecontact-tel-label {
	margin-bottom: 6px;
	color: #5c6971;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.5;
}

#sidebar .sidecontact-number {
	margin: 0 0 7px;
	padding: 0;
	font-size: clamp(24px, 2vw, 30px);
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	line-height: 1.3;
	letter-spacing: 0.01em;
	white-space: nowrap;
}

#sidebar .sidecontact-number a,
#sidebar .sidecontact-number a:visited {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	color: var(--maincolor);
	text-decoration: none;
}

#sidebar .sidecontact-number a:hover {
	color: var(--markercolor);
	text-decoration: none;
}

#sidebar .sidecontact-number svg {
	flex: 0 0 auto;
	width: 22px;
	height: 22px;
}

#sidebar .sidecontact-hours {
	margin-bottom: 22px;
	color: #5c6971;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.6;
}

#sidebar .sidecontact-button,
#sidebar .sidecontact-button:visited {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	box-sizing: border-box;
	width: 100%;
	min-height: 50px;
	padding: 11px 16px;
	border: 1px solid var(--maincolor);
	border-radius: 6px;
	background-color: var(--maincolor);
	color: var(--whitecolor);
	font-size: 15px;
	font-weight: 700;
	line-height: 1.5;
	text-decoration: none;
	transition:
		background-color 0.2s ease,
		color 0.2s ease,
		box-shadow 0.2s ease;
}

#sidebar .sidecontact-button:hover {
	background-color: var(--whitecolor);
	color: var(--maincolor);
	text-decoration: none;
	box-shadow: 0 6px 16px rgba(8, 64, 115, 0.14);
}

#sidebar .sidecontact-button:focus-visible {
	outline: 2px solid var(--markercolor);
	outline-offset: 3px;
}

#sidebar .sidecontact-button svg {
	flex: 0 0 auto;
	width: 19px;
	height: 19px;
}

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

	#sidebar .sidecontact-box {
		max-width: 520px;
		margin: 38px auto 0;
		padding: 24px 20px 20px;
		border-radius: 8px;
	}

	#sidebar .sidecontact-title {
		font-size: 22px;
	}

	#sidebar .sidecontact-number {
		font-size: clamp(25px, 8vw, 30px);
	}
}


/* ---------------------------------------------------------
   ページ下部の相談エリア（soudan.php）
--------------------------------------------------------- */

.soudan-area .soudan-message {
	margin: 0 0 24px;
	line-height: 1.85;
	text-align: center;
}

.soudan-area .flowflex-admin-notice {
	margin: 16px 0 0;
	padding: 12px 16px;
	border-left: 3px solid #b3261e;
	background: #fbf3f2;
	color: #8a1f18;
	font-size: 0.9rem;
	line-height: 1.7;
}


/* ---------------------------------------------------------
   ヘッダー：電話番号が未設定のときはボタンを右寄せ
   （旧 .header-button--email-only の代替）
--------------------------------------------------------- */

.naviheader .header-button:not(:has(.hb-left)) {
	justify-content: flex-end;
}


/* ---------------------------------------------------------
   著者・監修者ボックス（author-box.php）
   カスタマイザーで有効にした場合のみ表示されます。
--------------------------------------------------------- */

.ffx-author {
	--ffx-author-line: #d6dee6;
	--ffx-author-sub: #5c6971;

	position: relative;
	box-sizing: border-box;
	padding: 36px 32px 30px;
	border: 1px solid var(--ffx-author-line);
	border-top: 2px solid var(--maincolor);
	background-color: var(--whitecolor);
	color: var(--blackcolor);
	font-size: 1rem;
	line-height: 1.8;
}

.ffx-author--top {
	margin: 18px 0 44px;
}

.ffx-author--bottom {
	margin: 60px 0 44px;
}

.ffx-author__label {
	position: absolute;
	top: 0;
	left: 22px;
	transform: translateY(-50%);
	padding: 0 12px;
	background-color: var(--whitecolor);
	color: var(--maincolor);
	font-size: 0.82rem;
	font-weight: 700;
	line-height: 1.6;
	letter-spacing: 0.08em;
}

.ffx-author__body {
	display: grid;
	grid-template-columns: 108px minmax(0, 1fr);
	gap: 0 26px;
	align-items: start;
}

.ffx-author__photo {
	width: 108px;
	margin: 0;
	aspect-ratio: 3 / 4;
	overflow: hidden;
	border-radius: 4px;
	background-color: var(--lightcolor);
}

#post .ffx-author__photo img {
	display: block;
	width: 100%;
	max-width: none;
	height: 100% !important;
	object-fit: cover;
}

.ffx-author__office {
	margin: 2px 0;
	color: var(--ffx-author-sub);
	font-size: 0.84rem;
	font-weight: 600;
	line-height: 1.6;
}

.ffx-author__name {
	margin: 0;
	color: var(--blackcolor);
	font-size: 1.4rem;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 0.08em;
}

/* 投稿本文のリスト装飾（.single-post .entry ul 等）が及ばないよう #post を付与 */
#post .ffx-author__credentials {
	margin: 12px 0 0;
	padding: 12px 0 0;
	border-top: 1px solid var(--ffx-author-line);
	list-style: none;
}

#post .ffx-author__credentials li {
	position: relative;
	margin: 0;
	padding: 0 0 0 16px;
	color: #4a555c;
	font-size: 0.86rem;
	line-height: 1.75;
	font-variant-numeric: tabular-nums;
}

#post .ffx-author__credentials li::before {
	content: "";
	position: absolute;
	top: 0.87em;
	left: 0;
	width: 8px;
	height: 1px;
	background-color: var(--maincolor);
}

.ffx-author__bio {
	grid-column: 1 / -1;
	margin-top: 22px;
	padding-top: 20px;
	border-top: 1px solid var(--ffx-author-line);
}

#post .ffx-author .ffx-author__bio p {
	margin: 0 0 0.9em;
	font-size: 0.92rem;
	line-height: 1.95;
	letter-spacing: 0.02em;
}

#post .ffx-author .ffx-author__bio p:last-child {
	margin-bottom: 0;
}

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

	.ffx-author {
		padding: 30px 20px 22px;
	}

	.ffx-author--bottom {
		margin-top: 48px;
	}

	.ffx-author__label {
		left: 14px;
		padding: 0 10px;
	}

	.ffx-author__body {
		grid-template-columns: 80px minmax(0, 1fr);
		gap: 0 16px;
	}

	.ffx-author__photo {
		width: 80px;
	}

	.ffx-author__name {
		font-size: 1.2rem;
		letter-spacing: 0.05em;
	}

	#post .ffx-author__credentials {
		margin-top: 10px;
		padding-top: 10px;
	}

	#post .ffx-author__credentials li {
		font-size: 0.82rem;
	}
}

/* ---------------------------------------------------------
   /flow-01/ 冒頭ボックス：FLOW-WEBの特徴
--------------------------------------------------------- */

.page:not(.home) #post .ffw-points {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
	margin: 0 0 26px;
	padding: 0;
	list-style: none;
}

.page:not(.home) #post .ffw-points li {
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin: 0;
	padding: 13px 16px 12px;
	border-left: 3px solid var(--maincolor);
	background: #fff;
}

.page:not(.home) #post .ffw-points li::marker {
	content: "";
}

.page:not(.home) #post .ffw-points__head {
	color: var(--maincolor);
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.55;
}

.page:not(.home) #post .ffw-points__text {
	color: #4a5760;
	font-size: 0.88rem;
	line-height: 1.65;
}

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

	.page:not(.home) #post .ffw-points {
		grid-template-columns: 1fr;
		gap: 8px;
		margin-bottom: 22px;
	}

	.page:not(.home) #post .ffw-points li {
		padding: 11px 14px 10px;
	}
}

/* =========================================================
   ダウンロードカード（.dl-card）
   記事本文に置くファイルダウンロード用の部品
   ========================================================= */
.entry a.dl-card {
  display: flex;
  align-items: center;
  gap: 18px;
  margin: 1.6em 0;
  padding: 18px 20px;
  background: var(--wp--custom--color--subtlebg, #f6f8fa);
  border: 1px solid var(--wp--custom--color--border, #dfe5e8);
  border-radius: 4px;
  color: var(--blackcolor, #333);
  text-decoration: none;
  line-height: 1.5;
  transition: border-color .25s, box-shadow .25s, transform .25s;
}
.entry a.dl-card:hover {
  border-color: var(--maincolor, #084073);
  box-shadow: 0 6px 18px rgba(8, 64, 115, .1);
  transform: translateY(-1px);
  text-decoration: none;
  opacity: 1;
}
.entry a.dl-card:focus-visible {
  outline: 3px solid rgba(8, 64, 115, .25);
  outline-offset: 2px;
}

/* 書類のアイコン（画像は使わずCSSで描く） */
.dl-card__icon {
  position: relative;
  flex: 0 0 44px;
  box-sizing: border-box;
  height: 56px;
  padding-bottom: 6px;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  background:
    linear-gradient(#d5dde3, #d5dde3) 8px 13px / 18px 2px no-repeat,
    linear-gradient(#d5dde3, #d5dde3) 8px 20px / 26px 2px no-repeat,
    linear-gradient(#fff 0 58%, #c9372c 58% 100%);
  border: 1px solid #cfd8de;
  border-radius: 3px;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .05em;
  line-height: 1;
}
.dl-card__icon::before {
  content: "";
  position: absolute;
  top: -1px;
  right: -1px;
  width: 13px;
  height: 13px;
  background: linear-gradient(225deg, var(--wp--custom--color--subtlebg, #f6f8fa) 50%, #cfd8de 50%);
}
/* ファイルの種類ごとの色（PDFは指定なしで赤） */
.dl-card--word .dl-card__icon {
  background:
    linear-gradient(#d5dde3, #d5dde3) 8px 13px / 18px 2px no-repeat,
    linear-gradient(#d5dde3, #d5dde3) 8px 20px / 26px 2px no-repeat,
    linear-gradient(#fff 0 58%, #2b579a 58% 100%);
}
.dl-card--excel .dl-card__icon {
  background:
    linear-gradient(#d5dde3, #d5dde3) 8px 13px / 18px 2px no-repeat,
    linear-gradient(#d5dde3, #d5dde3) 8px 20px / 26px 2px no-repeat,
    linear-gradient(#fff 0 58%, #1e7145 58% 100%);
}

/* タイトルと補足 */
.dl-card__body {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.dl-card__title {
  font-size: 1.05em;
  font-weight: 700;
  color: var(--wp--custom--color--heading, #222);
}
.dl-card__meta {
  font-size: .8em;
  color: var(--wp--custom--color--subtext, #555);
}

/* ボタン */
.dl-card__btn {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 11px 18px;
  background: var(--maincolor, #084073);
  border-radius: 4px;
  color: #fff;
  font-size: .9em;
  font-weight: 500;
  letter-spacing: .06em;
  white-space: nowrap;
  transition: background-color .25s;
}
.dl-card__btn::before {
  content: "";
  width: 16px;
  height: 16px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4v11M7 11l5 5 5-5M5 20h14'/%3E%3C/svg%3E") center / contain no-repeat;
}
.entry a.dl-card:hover .dl-card__btn {
  background: #062f56;
}

/* スマートフォン：ボタンを下の段へ */
@media (max-width: 520px) {
  .entry a.dl-card {
    flex-wrap: wrap;
    gap: 14px;
    padding: 16px;
  }
  .dl-card__body {
    flex: 1 1 0;
  }
  .dl-card__btn {
    flex: 1 1 100%;
    justify-content: center;
    padding: 13px 18px;
  }
}


/* =========================================================
   FLOW-FLEX 2.0.4  投稿・固定ページ共通の見出し(H1〜H4)
   ひかり行政書士法人サイトのデザインを反映
   ・投稿と固定ページで見出しデザインを統一
   ・各見出し上部の余白を確保
   ・タイトル(H1)のデザインとサイズを変更
   サイズは下の変数で調整できます(上がPC、下がスマホ)
========================================================= */
:root {
	--ffx-page-h1: clamp(1.6rem, 2.35vw, 1.9rem);      /* タイトル(H1) */
	--ffx-page-h2: clamp(1.35rem, 1.95vw, 1.65rem);    /* 見出し2 */
	--ffx-page-h3: clamp(1.18rem, 1.6vw, 1.35rem);     /* 見出し3 */
	--ffx-page-h4: 1.05rem;                            /* 見出し4 */
}

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

	:root {
		--ffx-page-h1: clamp(1.4rem, 5.8vw, 1.65rem);
		--ffx-page-h2: clamp(1.25rem, 5vw, 1.5rem);
		--ffx-page-h3: clamp(1.1rem, 4.4vw, 1.3rem);
		--ffx-page-h4: 1rem;
	}
}


/* =========================================================
   投稿・固定ページ共通の見出し：やわらかな帯 (2026-10-08)
   サイズは --ffx-page-h2 / h3 / h4（上の既存変数）に統一。
========================================================= */
.single-post .entry h2,
.page:not(.home) .entry h2 {
	position: relative;
	margin: 2.4em 0 1em;
	padding: 14px 20px 14px 26px;
	border: 0;
	border-radius: 8px;
	background: var(--lightcolor);
	color: var(--blackcolor);
	font-size: var(--ffx-page-h2);
	line-height: 1.6;
	font-weight: 600;
	letter-spacing: .02em;
}

.single-post .entry h2::before,
.page:not(.home) .entry h2::before {
	content: "";
	position: absolute;
	top: 18px;
	bottom: 18px;
	left: 12px;
	width: 4px;
	border-radius: 4px;
	background: var(--maincolor);
}

.single-post .entry h2::after,
.page:not(.home) .entry h2::after {
	content: none;
}

.single-post .entry h3,
.page:not(.home) .entry h3 {
	position: relative;
	margin: 2em 0 .9em;
	padding: 0 0 11px;
	border: 0;
	border-bottom: 1px solid #dce9e1;
	border-bottom-color: color-mix(in srgb, var(--maincolor) 15%, var(--whitecolor));
	border-radius: 0;
	background: transparent;
	color: var(--blackcolor);
	font-size: var(--ffx-page-h3);
	line-height: 1.6;
	font-weight: 600;
	letter-spacing: .02em;
}

.single-post .entry h3::before,
.page:not(.home) .entry h3::before {
	content: none;
}

.single-post .entry h3::after,
.page:not(.home) .entry h3::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -1px;
	width: 48px;
	height: 3px;
	border-radius: 3px;
	background: var(--maincolor);
}

.single-post .entry h4,
.page:not(.home) .entry h4 {
	position: relative;
	margin: 1.7em 0 .8em;
	padding: 0 0 0 17px;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--blackcolor);
	font-size: var(--ffx-page-h4);
	line-height: 1.65;
	font-weight: 600;
	letter-spacing: .02em;
}

.single-post .entry h4::before,
.page:not(.home) .entry h4::before {
	content: "";
	position: absolute;
	top: .53em;
	left: 0;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--maincolor);
}

.single-post .entry h4::after,
.page:not(.home) .entry h4::after {
	content: none;
}

@media screen and (max-width: 768px) {
	.single-post .entry h2,
	.page:not(.home) .entry h2 {
		margin-top: 2em;
		padding: 12px 16px 12px 24px;
	}

	.single-post .entry h2::before,
	.page:not(.home) .entry h2::before {
		top: 16px;
		bottom: 16px;
		left: 10px;
	}

	.single-post .entry h3,
	.page:not(.home) .entry h3 {
		margin-top: 1.8em;
	}

	.single-post .entry h4,
	.page:not(.home) .entry h4 {
		margin-top: 1.5em;
	}
}

/* 本文が見出しから始まる場合は上余白を重ねない。 */
.single-post .entry > h2:first-child,
.single-post .entry > h3:first-child,
.single-post .entry > h4:first-child,
.page:not(.home) .entry > h2:first-child,
.page:not(.home) .entry > h3:first-child,
.page:not(.home) .entry > h4:first-child {
	margin-top: 0;
}

/* =========================================================
   投稿・固定ページ共通のタイトル(H1) (2026-10-08)
   文字の下に淡い線を引き、左端に小さな丸を3つ(濃い→淡い)のせる。
   サイズは --ffx-page-h1(上の変数)
========================================================= */
.single-post .entrytitle,
.page:not(.home) .entrytitle {
	position: relative;
	margin: 0 0 30px;
	padding: 0 0 18px;
	border: 0;
	border-bottom: 1px solid var(--lightcolor);
	border-bottom-color: color-mix(in srgb, var(--maincolor) 15%, var(--whitecolor));
	color: var(--blackcolor);
	font-size: var(--ffx-page-h1);
	line-height: 1.5;
	font-weight: 600;
	letter-spacing: .02em;
	text-align: left;
}

/* 丸3つ。白い縁取り(3px)で、下の線を丸のところだけ切る */
.single-post .entrytitle::after,
.page:not(.home) .entrytitle::after {
	content: "";
	position: absolute;
	left: 3px;
	bottom: -4px;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--maincolor);
	box-shadow:
		0 0 0 3px var(--whitecolor),
		14px 0 0 var(--maincolor),
		14px 0 0 3px var(--whitecolor),
		28px 0 0 var(--lightcolor),
		28px 0 0 3px var(--whitecolor);
	box-shadow:
		0 0 0 3px var(--whitecolor),
		14px 0 0 color-mix(in srgb, var(--maincolor) 55%, var(--whitecolor)),
		14px 0 0 3px var(--whitecolor),
		28px 0 0 color-mix(in srgb, var(--maincolor) 25%, var(--whitecolor)),
		28px 0 0 3px var(--whitecolor);
}

/* 投稿はタイトルのすぐ下に公開日・更新日が入るので、間を詰める */
.single-post .entrytitle {
	margin-bottom: 18px;
}

@media screen and (max-width: 768px) {
	.single-post .entrytitle,
	.page:not(.home) .entrytitle {
		margin-bottom: 26px;
		padding-bottom: 15px;
		line-height: 1.55;
	}

	.single-post .entrytitle {
		margin-bottom: 16px;
	}
}

