/**
 * ページ固有（ホームのサービス＝参考デザイン準拠、事業内容）
 */

/* ----- トップ：FV ヒーロー（背景写真 or ダミー） ----- */
.home-hero {
	position: relative;
	min-height: min(78vh, 52rem);
	display: flex;
	align-items: center;
	padding-block: var(--space-12) var(--space-10);
	background-color: #1c1917;
	background-image: var(--home-hero-bg);
	background-size: cover;
	background-position: center 28%;
	overflow: hidden;
}

.home-hero--dummy {
	background-image:
		linear-gradient(120deg, rgba(15, 23, 42, 0.82) 0%, rgba(30, 58, 138, 0.45) 45%, rgba(234, 88, 12, 0.35) 100%),
		radial-gradient(ellipse 90% 70% at 70% 20%, rgba(56, 189, 248, 0.35), transparent 55%),
		radial-gradient(ellipse 60% 50% at 20% 80%, rgba(251, 146, 60, 0.25), transparent 50%),
		linear-gradient(180deg, #0f172a 0%, #1e293b 100%);
}

.home-hero__shade {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0.25) 0%, rgba(0, 0, 0, 0.5) 100%);
	pointer-events: none;
}

.home-hero__mesh {
	position: absolute;
	inset: 0;
	opacity: 0.18;
	pointer-events: none;
	background-image:
		repeating-linear-gradient(-12deg, transparent, transparent 12px, rgba(255, 255, 255, 0.04) 12px, rgba(255, 255, 255, 0.04) 13px),
		repeating-linear-gradient(12deg, transparent, transparent 12px, rgba(255, 255, 255, 0.03) 12px, rgba(255, 255, 255, 0.03) 13px);
}

.home-hero__inner {
	position: relative;
	z-index: 1;
	max-width: min(100%, 52rem);
}

@media (min-width: 1280px) {
	.home-hero {
		min-height: min(82vh, 58rem);
		padding-block: var(--space-12) calc(var(--space-12) + 0.5rem);
	}

	.home-hero__inner {
		max-width: min(100%, 64rem);
	}
}

@media (min-width: 1536px) {
	.home-hero {
		min-height: min(85vh, 62rem);
	}

	.home-hero__inner {
		max-width: min(100%, 72rem);
	}
}

.home-hero__eyebrow {
	margin: 0 0 var(--space-4);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: none;
	color: rgba(255, 255, 255, 0.88);
}

.home-hero__title {
	margin: 0 0 var(--space-6);
	font-size: clamp(1.85rem, 1.1rem + 3.2vw, 3.15rem);
	font-weight: 700;
	line-height: 1.28;
	letter-spacing: 0.04em;
	color: #fff;
	text-shadow: 0 2px 24px rgba(0, 0, 0, 0.35);
	word-break: keep-all;
	overflow-wrap: normal;
	line-break: strict;
}

/* 「サービス」と「を、」の間だけで改行されないようまとめる（スマホ幅対策） */
.home-hero__title-kern {
	white-space: nowrap;
}

@media (min-width: 1024px) {
	.home-hero__title {
		font-size: clamp(2.35rem, 1.5rem + 2.8vw, 3.75rem);
		letter-spacing: 0.03em;
	}
}

.home-hero__title-line {
	display: inline-block;
	padding-bottom: 0.12em;
	border-bottom: 4px solid rgba(250, 204, 21, 0.95);
}

.home-hero__band {
	padding: var(--space-5) var(--space-6);
	background: rgba(255, 255, 255, 0.92);
	border-radius: var(--radius-md);
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.18);
	border: 1px solid rgba(255, 255, 255, 0.5);
}

.home-hero__lead {
	margin: 0;
	font-size: clamp(1rem, 0.92rem + 0.35vw, 1.125rem);
	line-height: 1.9;
	color: var(--color-muted);
	font-weight: 500;
}

@media (min-width: 1024px) {
	.home-hero__lead {
		font-size: clamp(1.0625rem, 0.95rem + 0.5vw, 1.25rem);
	}

	.home-hero__band {
		padding: var(--space-6) var(--space-8);
	}
}

/* ----- 下層：ページヒーロー帯 ----- */
.page-hero {
	position: relative;
	min-height: min(42vh, 22rem);
	display: flex;
	align-items: flex-end;
	padding-bottom: 0;
	background-color: #1e293b;
	background-image: var(--page-hero-bg);
	background-size: cover;
	background-position: center;
	overflow: hidden;
}

.page-hero--dummy.page-hero--dummy-company {
	background-image:
		linear-gradient(135deg, rgba(15, 23, 42, 0.85), rgba(30, 64, 175, 0.4)),
		radial-gradient(ellipse 100% 80% at 50% 0%, rgba(147, 197, 253, 0.4), transparent 50%),
		linear-gradient(180deg, #334155, #0f172a);
}

.page-hero--dummy.page-hero--dummy-service {
	background-image:
		linear-gradient(160deg, rgba(15, 23, 42, 0.9), rgba(234, 88, 12, 0.25)),
		radial-gradient(circle at 30% 40%, rgba(52, 211, 153, 0.2), transparent 50%),
		linear-gradient(180deg, #1e293b, #0f172a);
}

.page-hero--dummy.page-hero--dummy-contact {
	background-image:
		linear-gradient(180deg, rgba(15, 23, 42, 0.88), rgba(8, 47, 73, 0.75)),
		radial-gradient(ellipse 80% 60% at 60% 30%, rgba(56, 189, 248, 0.35), transparent 55%),
		linear-gradient(180deg, #0c4a6e, #0f172a);
}

.page-hero--dummy.page-hero--dummy-law,
.page-hero--dummy.page-hero--dummy-policy {
	background-image:
		linear-gradient(135deg, rgba(23, 23, 23, 0.88), rgba(82, 82, 82, 0.5)),
		radial-gradient(ellipse 70% 50% at 80% 20%, rgba(234, 88, 12, 0.2), transparent 50%),
		linear-gradient(180deg, #262626, #171717);
}

.page-hero__shade {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		180deg,
		transparent 0%,
		rgba(0, 0, 0, 0.22) 45%,
		rgba(0, 0, 0, 0.62) 100%
	);
	pointer-events: none;
}

.page-hero__mesh {
	position: absolute;
	inset: 0;
	opacity: 0.12;
	pointer-events: none;
	background-image: repeating-linear-gradient(
		-8deg,
		transparent,
		transparent 14px,
		rgba(255, 255, 255, 0.05) 14px,
		rgba(255, 255, 255, 0.05) 15px
	);
}

.page-hero__band {
	position: relative;
	z-index: 1;
	width: 100%;
	padding: var(--space-6) 0 var(--space-8);
	background: transparent;
	border: none;
	box-shadow: none;
}

.page-hero__title {
	margin: 0;
	font-size: clamp(1.65rem, 1.2rem + 1.8vw, 2.35rem);
	font-weight: 700;
	letter-spacing: 0.06em;
	color: #fff;
	text-align: center;
	text-shadow:
		0 1px 2px rgba(0, 0, 0, 0.35),
		0 4px 28px rgba(0, 0, 0, 0.45);
}

@media (min-width: 1024px) {
	.page-hero {
		min-height: min(48vh, 28rem);
	}

	.page-hero__title {
		font-size: clamp(2rem, 1.35rem + 2vw, 2.85rem);
	}

	.page-hero__band {
		padding: var(--space-8) 0 var(--space-10);
	}
}

/* ----- トップ：お問い合わせ CTA（全面背景） ----- */
.home-cta-block {
	position: relative;
	min-height: min(52vh, 28rem);
	display: flex;
	align-items: center;
	padding-block: var(--space-12);
	margin-top: var(--space-4);
	background-color: #172554;
	background-image: var(--cta-hero-bg);
	background-size: cover;
	background-position: center;
	overflow: hidden;
}

.home-cta-block--dummy {
	background-image:
		linear-gradient(195deg, rgba(15, 23, 42, 0.92) 0%, rgba(30, 58, 138, 0.55) 100%),
		radial-gradient(ellipse 90% 70% at 50% 100%, rgba(234, 88, 12, 0.35), transparent 55%),
		radial-gradient(ellipse 50% 40% at 20% 30%, rgba(56, 189, 248, 0.2), transparent 50%),
		linear-gradient(180deg, #1e3a8a, #0f172a);
}

.home-cta-block__shade {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.45);
	pointer-events: none;
}

.home-cta-block__inner {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 52rem;
	margin-inline: auto;
	text-align: center;
}

@media (min-width: 1280px) {
	.home-cta-block {
		min-height: min(58vh, 34rem);
		padding-block: calc(var(--space-12) + 0.5rem);
	}

	.home-cta-block__inner {
		max-width: 64rem;
	}
}

.home-cta-block .cta-title {
	color: #fff;
	font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2rem);
	text-shadow: 0 2px 16px rgba(0, 0, 0, 0.35);
}

@media (min-width: 1024px) {
	.home-cta-block .cta-title {
		font-size: clamp(1.85rem, 1.3rem + 1.5vw, 2.5rem);
	}
}

.home-cta-block .cta-text {
	color: rgba(255, 255, 255, 0.92);
	font-size: 1.0625rem;
}

.home-cta-block .cta-tel {
	font-size: clamp(1.35rem, 1rem + 1.2vw, 1.85rem);
}

.home-cta-block .cta-tel a {
	color: #fff;
	text-decoration: none;
	text-shadow: 0 1px 8px rgba(0, 0, 0, 0.4);
}

.home-cta-block .cta-tel__label {
	color: rgba(255, 255, 255, 0.75);
}

.home-cta-block .btn--primary {
	background: var(--color-primary);
	color: #fff;
	box-shadow: 0 4px 20px rgba(234, 88, 12, 0.45);
}

.home-cta-block .btn--primary:hover {
	background: #fff;
	color: var(--color-primary);
}

.home-cta-block .section-actions {
	margin-top: var(--space-6);
	margin-bottom: 0;
}

/* ----- セクション装飾（メッシュ感） ----- */
.section--mesh-panel {
	position: relative;
	overflow: hidden;
}

.section--mesh-panel::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	opacity: 0.35;
	background:
		radial-gradient(ellipse 100% 60% at 50% 0%, rgba(234, 88, 12, 0.08), transparent 55%),
		repeating-linear-gradient(
			0deg,
			transparent,
			transparent 24px,
			rgba(0, 0, 0, 0.015) 24px,
			rgba(0, 0, 0, 0.015) 25px
		);
}

.section--mesh-panel .container {
	position: relative;
	z-index: 1;
}

/* ----- ホーム: 事業内容（Figma / 参考コーポレートのタイル＋カラー帯） ----- */
.section--services-ref {
	position: relative;
	padding-block: var(--space-12);
	overflow: hidden;
	background: var(--color-bg);
}

.section--services-ref__deco {
	position: absolute;
	inset: 0;
	pointer-events: none;
	opacity: 0.45;
	background:
		radial-gradient(ellipse 80% 50% at 10% 20%, rgba(234, 88, 12, 0.06), transparent 55%),
		radial-gradient(ellipse 70% 45% at 90% 80%, rgba(3, 105, 161, 0.07), transparent 50%),
		radial-gradient(ellipse 60% 40% at 50% 50%, rgba(21, 128, 61, 0.05), transparent 55%);
}

.section--services-ref .container {
	position: relative;
	z-index: 1;
}

.section-header--service {
	margin-bottom: var(--space-8);
}

.section-title--service {
	margin: 0;
	font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2rem);
	font-weight: 700;
	letter-spacing: 0.08em;
	color: var(--color-ink);
	border-bottom: 3px solid var(--color-primary);
	padding-bottom: var(--space-3);
	display: inline-block;
}

@media (min-width: 1024px) {
	.section-title--service {
		font-size: clamp(1.85rem, 1.35rem + 1.4vw, 2.5rem);
		padding-bottom: var(--space-4);
		border-bottom-width: 4px;
	}
}

/* グリッド: スマホ2列＋3件目全幅 / PCは3列 */
.service-tiles {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-4) var(--space-4);
	align-items: stretch;
}

.service-tile--wide {
	grid-column: 1 / -1;
}

@media (min-width: 1024px) {
	.service-tiles {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: var(--space-6);
	}

	.service-tile--wide {
		grid-column: auto;
	}
}

@media (min-width: 1280px) {
	.service-tiles {
		gap: var(--space-8);
	}

	.service-tile__ribbon {
		min-height: 3.65rem;
	}

	.service-tile__ribbon-title {
		font-size: 1.0625rem;
	}
}

.service-tile {
	display: flex;
	flex-direction: column;
	border-radius: var(--radius-lg);
	overflow: hidden;
	background: var(--color-bg);
	box-shadow: var(--shadow-md);
	border: 1px solid rgba(0, 0, 0, 0.06);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.service-tile:hover {
	transform: translateY(-3px);
	box-shadow: 0 14px 40px rgba(0, 0, 0, 0.12);
}

.service-tile__photo {
	position: relative;
	aspect-ratio: 4 / 3;
	background: var(--color-bg-muted);
	overflow: hidden;
}

.service-tile--wide .service-tile__photo {
	aspect-ratio: 16 / 9;
}

@media (min-width: 1024px) {
	.service-tile--wide .service-tile__photo {
		aspect-ratio: 4 / 3;
	}
}

.service-tile__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.service-tile__placeholder {
	width: 100%;
	height: 100%;
	background: linear-gradient(160deg, #ececec 0%, #d4d4d4 100%);
}

/* カラー帯（参考サイトのサービスタイル） */
.service-tile--electric {
	--tile-ribbon: var(--service-electric);
}

.service-tile--gas {
	--tile-ribbon: var(--service-gas);
}

.service-tile--internet {
	--tile-ribbon: var(--service-internet);
}

.service-tile__ribbon {
	display: flex;
	align-items: stretch;
	min-height: 3.35rem;
	margin-top: auto;
	/* clip-path 境界の隙間で白が見えないよう、帯全体をグレー寄りに */
	background: linear-gradient(180deg, rgba(55, 55, 55, 0.2), rgba(35, 35, 35, 0.12));
}

.service-tile__ribbon-edge {
	flex: 0 0 2.35rem;
	min-width: 0;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0.22), rgba(0, 0, 0, 0.12));
	position: relative;
	z-index: 1;
	/* 右辺をオレンジ帯の左斜め（11px ずれ）と平行にし、カットインの下にグレーが潜り込まないようにする */
	clip-path: polygon(0 0, 100% 0, calc(100% - 11px) 100%, 0 100%);
}

.service-tile__ribbon-edge::after {
	content: "›";
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: rgba(255, 255, 255, 0.95);
	font-size: 1.35rem;
	font-weight: 300;
	line-height: 1;
}

.service-tile__ribbon-body {
	flex: 1;
	display: flex;
	align-items: center;
	padding: var(--space-3) var(--space-4);
	background: var(--tile-ribbon);
	clip-path: polygon(0 0, 100% 0, 100% 100%, 11px 100%);
	/* グレー帯の斜め右端と継ぎ目が合うよう 11px だけ重ねる */
	margin-left: -11px;
	padding-left: calc(var(--space-4) + 11px);
	position: relative;
	z-index: 0;
	transform: translateZ(0);
	backface-visibility: hidden;
}

.service-tile__ribbon-title {
	font-size: 1rem;
	font-weight: 700;
	color: #fff;
	letter-spacing: 0.06em;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
}

/* ----- 事業内容（詳細） ----- */
.service-section {
	margin-bottom: var(--space-12);
}

.service-section__title {
	margin: 0 0 var(--space-6);
	font-size: clamp(1.25rem, 1rem + 0.8vw, 1.5rem);
	padding-bottom: var(--space-3);
	border-bottom: 2px solid rgba(234, 88, 12, 0.45);
	letter-spacing: 0.04em;
}

.section-anchor {
	scroll-margin-top: calc(var(--header-height) + var(--space-4));
}

.service-showcase {
	display: grid;
	gap: var(--space-6);
	align-items: start;
}

@media (min-width: 900px) {
	.service-showcase {
		grid-template-columns: 1fr 1.1fr;
		align-items: center;
	}

	.service-showcase--reverse .service-showcase__media-wrap {
		order: 2;
	}

	.service-showcase--reverse .service-showcase__body {
		order: 1;
	}
}

.service-showcase__media-wrap {
	border-radius: var(--radius-lg);
	overflow: hidden;
	border: 1px solid var(--color-border);
	box-shadow: var(--shadow-md);
	background: var(--color-bg-muted);
}

.service-showcase__img {
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.service-showcase__fallback {
	min-height: 14rem;
	aspect-ratio: 4 / 3;
	background: linear-gradient(145deg, #f5f5f5, #e5e5e5);
}

.service-showcase__body {
	font-size: 0.9375rem;
	color: var(--color-muted);
	line-height: 1.9;
}

.service-showcase__body p {
	margin: 0 0 var(--space-4);
}

.service-showcase__body p:last-child {
	margin-bottom: 0;
}

.page-company .page-content,
.page-law .page-content,
.page-policy .page-content {
	margin-top: var(--space-2);
}

/* ----- Google マップ埋め込み ----- */
.map-embed-section {
	margin-top: var(--space-10);
	margin-bottom: var(--space-2);
}

.map-embed-section__title {
	margin: 0 0 var(--space-4);
	font-size: clamp(1.125rem, 1rem + 0.5vw, 1.25rem);
	font-weight: 700;
	letter-spacing: 0.04em;
	color: var(--color-ink);
}

.map-embed {
	position: relative;
	width: 100%;
	overflow: hidden;
	border-radius: var(--radius-md);
	border: 1px solid var(--color-border);
	box-shadow: var(--shadow-md);
	background: var(--color-bg-muted);
	aspect-ratio: 16 / 9;
	max-height: min(70vh, 28rem);
}

.map-embed__frame {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.page-contact .map-embed-section {
	margin-top: 0;
	margin-bottom: var(--space-10);
}

.page-law .data-table th {
	width: 38%;
}

.page-law__lead {
	margin-bottom: var(--space-6);
}

.data-table__note {
	display: block;
	margin-top: var(--space-2);
	font-size: 0.8125rem;
	color: var(--color-muted);
	line-height: 1.6;
}

/* 法的文書（プライバシーポリシー等） */
.entry-content.legal-doc h2 {
	margin-top: var(--space-8);
	margin-bottom: var(--space-4);
	font-size: 1.125rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	color: var(--color-ink);
	border-bottom: 1px solid rgba(234, 88, 12, 0.22);
	padding-bottom: var(--space-2);
}

.entry-content.legal-doc > p.prose-block + .legal-doc__section h2 {
	margin-top: var(--space-6);
}

.legal-doc ul {
	margin: 0 0 var(--space-4);
	padding-left: 1.35rem;
	list-style: disc;
}

.legal-doc li {
	margin-bottom: var(--space-2);
	line-height: 1.8;
	font-size: 0.9375rem;
	color: var(--color-muted);
}

.legal-doc li:last-child {
	margin-bottom: 0;
}

.legal-doc__contact {
	margin: var(--space-4) 0 0;
	padding: var(--space-4) var(--space-5);
	border-radius: var(--radius-md);
	background: var(--color-bg-soft);
	border: 1px solid var(--color-border);
	line-height: 1.85;
	font-size: 0.9375rem;
}

.legal-doc__contact a {
	font-weight: 600;
	color: var(--color-primary);
	text-decoration: none;
}

.legal-doc__contact a:hover,
.legal-doc__contact a:focus-visible {
	text-decoration: underline;
}

.legal-doc__enacted {
	margin-top: var(--space-10);
	padding-top: var(--space-6);
	border-top: 1px solid var(--color-border);
	font-size: 0.875rem;
	color: var(--color-muted);
}

.site-main--front .section:first-of-type {
	margin-top: 0;
}

/* ----- お問い合わせ（CF7・参考コーポレート風） ----- */
.page-shell--contact {
	padding-block: var(--space-12) var(--space-14);
}

.page-shell--contact::before {
	opacity: 0.55;
}

.page-contact .contact-page-lead {
	margin: 0 auto var(--space-8);
	max-width: 42rem;
	text-align: center;
	font-size: clamp(1rem, 0.92rem + 0.35vw, 1.125rem);
	font-weight: 500;
	line-height: 1.75;
	color: var(--color-ink);
}

.contact-form-block {
	margin-top: var(--space-2);
}

.contact-form-block__title {
	margin: 0 0 var(--space-2);
	font-size: clamp(1.35rem, 1.1rem + 0.85vw, 1.85rem);
	font-weight: 700;
	text-align: center;
	letter-spacing: 0.05em;
	color: var(--color-ink);
}

.contact-form-block__title::after {
	content: "";
	display: block;
	width: 3.5rem;
	height: 4px;
	margin: var(--space-3) auto 0;
	border-radius: 999px;
	background: linear-gradient(90deg, var(--color-primary), rgba(234, 88, 12, 0.45));
}

.contact-form-block__note {
	margin: 0 0 var(--space-8);
	text-align: center;
	font-size: 0.9375rem;
	line-height: 1.65;
	color: #404040;
}

.contact-form-block__required {
	color: #dc2626;
	font-weight: 600;
}

.contact-form7-panel {
	max-width: 52rem;
	margin-inline: auto;
	padding: clamp(1.35rem, 3vw, 2.75rem);
	border-radius: var(--radius-md);
	border: 1px solid rgba(0, 0, 0, 0.08);
	background: #ebebeb;
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.75) inset,
		0 8px 28px rgba(15, 23, 42, 0.06);
}

.contact-form7-panel__fallback {
	margin: 0;
	text-align: center;
	color: #404040;
	font-size: 0.9375rem;
	line-height: 1.7;
}

.contact-form7-panel .wpcf7 {
	margin: 0;
}

.contact-form7-panel .wpcf7-form p {
	margin: 0 0 var(--space-5);
}

.contact-form7-panel .wpcf7-form p:last-of-type {
	margin-bottom: 0;
}

.contact-form7-panel .wpcf7-form label {
	display: block;
	font-weight: 600;
	font-size: 0.9375rem;
	color: var(--color-ink);
}

.contact-form7-panel .wpcf7-form-control-wrap {
	display: block;
	margin-top: var(--space-2);
}

.contact-form7-panel input[type="text"],
.contact-form7-panel input[type="email"],
.contact-form7-panel input[type="tel"],
.contact-form7-panel input[type="url"],
.contact-form7-panel input[type="number"],
.contact-form7-panel select,
.contact-form7-panel textarea {
	width: 100%;
	max-width: 100%;
	padding: var(--space-3) var(--space-4);
	border: 1px solid rgba(0, 0, 0, 0.12);
	border-radius: var(--radius-sm);
	font: inherit;
	background: #fff;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.contact-form7-panel input:focus,
.contact-form7-panel select:focus,
.contact-form7-panel textarea:focus {
	outline: none;
	border-color: rgba(234, 88, 12, 0.55);
	box-shadow: 0 0 0 3px rgba(234, 88, 12, 0.15);
}

.contact-form7-panel textarea {
	min-height: 11rem;
	resize: vertical;
	line-height: 1.65;
}

.contact-form7-panel .wpcf7-list-item {
	margin: 0 0 var(--space-2);
}

.contact-form7-panel .wpcf7-list-item label {
	font-weight: 500;
	color: var(--color-ink);
}

.contact-form7-panel .wpcf7-submit {
	display: block;
	min-width: 12.5rem;
	margin-top: var(--space-2);
	margin-inline: auto;
	padding: var(--space-3) var(--space-8);
	font-weight: 600;
	letter-spacing: 0.06em;
	color: var(--color-ink);
	background: #fff;
	border: 1px solid #262626;
	border-radius: var(--radius-sm);
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease, transform 0.15s ease;
}

.contact-form7-panel .wpcf7-submit:hover {
	color: #fff;
	background: #171717;
}

.contact-form7-panel .wpcf7-spinner {
	margin-left: var(--space-2);
	vertical-align: middle;
}

.contact-form7-panel .wpcf7-not-valid-tip {
	font-size: 0.8125rem;
	margin-top: var(--space-1);
	color: #b91c1c;
	font-weight: 500;
}

.contact-form7-panel .wpcf7-response-output {
	margin: var(--space-5) 0 0;
	padding: var(--space-3) var(--space-4);
	border-radius: var(--radius-sm);
	font-size: 0.9375rem;
	line-height: 1.6;
	color: #262626;
}

.page-contact .page-content--after-form {
	margin-top: var(--space-12);
	max-width: 52rem;
	margin-inline: auto;
	padding-top: var(--space-8);
	border-top: 1px solid rgba(0, 0, 0, 0.06);
	color: var(--color-ink);
}

.page-contact .page-content--after-form p,
.page-contact .page-content--after-form li {
	color: #2d2d2d;
}

/* フォームの下に配置した電話ブロック */
.page-contact .contact-tel-card--after-form {
	margin: var(--space-10) auto var(--space-6);
}
