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

.site-header {
	width: 100%;
}

/* コンテンツ(wide 1200)より広いヘッダー幅。狭幅時は左右パディングで余白を確保 */
.site-header-inner {
	box-sizing: border-box;
	width: 100%;
	max-width: 1440px;
	margin-inline: auto;
	align-items: center;
	gap: var(--wp--preset--spacing--md);
}

/* TOP: ヒーローに重ねる透過ヘッダー。常に上部固定。
   Heroを過ぎたら header-scroll-bg.js が <body> に is-past-hero を付与し、白背景に切り替わる。
   template-part の <header> 自体を fixed にし、.wp-site-blocks の gap 余白を防ぐ */
body.home .wp-site-blocks > header.wp-block-template-part,
body.front-page .wp-site-blocks > header.wp-block-template-part {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 100;
	width: 100%;
	margin: 0;
	background: transparent;
	transition: background-color 0.3s ease;
}

body.home .site-header,
body.front-page .site-header,
body.home .site-header-inner,
body.front-page .site-header-inner {
	background: transparent;
}

body.home.is-past-hero .wp-site-blocks > header.wp-block-template-part,
body.front-page.is-past-hero .wp-site-blocks > header.wp-block-template-part {
	background-color: var(--wp--preset--color--base);
}

body.home.is-past-hero .site-header,
body.front-page.is-past-hero .site-header,
body.home.is-past-hero .site-header-inner,
body.front-page.is-past-hero .site-header-inner {
	background-color: var(--wp--preset--color--base);
}

body.home .section-hero,
body.front-page .section-hero {
	margin-block-start: 0;
}

body.home .entry-content.wp-block-post-content,
body.front-page .entry-content.wp-block-post-content {
	margin-block-start: 0;
}

/* 下層: 白背景の通常ヘッダー。sticky で常に上部固定
   （レイアウト上の高さを確保したまま固定されるため、本文側のオフセット補正は不要） */
body:not(.home):not(.front-page) .wp-site-blocks > header.wp-block-template-part {
	position: sticky;
	top: 0;
	z-index: 100;
}

body:not(.home):not(.front-page) .site-header {
	background-color: var(--wp--preset--color--base);
}

.site-header .custom-logo-link {
	display: inline-flex;
	flex-shrink: 0;
	line-height: 0;
}

.site-header .custom-logo {
	height: auto;
	width: 240px;
	max-width: 100%;
}

.site-header-actions {
	flex: 1 1 auto;
	justify-content: flex-end;
	align-items: center;
	gap: var(--wp--preset--spacing--md);
	min-width: 0;
}

.site-header .wp-block-navigation {
	flex-shrink: 1;
}

.site-header .wp-block-navigation .wp-block-navigation-item__label {
	white-space: nowrap;
}

/* サブメニューの下矢印を少し大きく・太く */
.site-header .wp-block-navigation__submenu-icon {
	width: 0.85em;
	height: 0.85em;
	margin-left: 0.2em;
}

.site-header .wp-block-navigation__submenu-icon svg {
	width: 0.85em;
	height: 0.85em;
	stroke: currentColor;
}

.site-header .wp-block-navigation__submenu-icon svg path {
	stroke-width: 2.25;
}

.site-header .site-header-cta {
	flex-shrink: 0;
}

.site-header .site-header-cta .wp-block-button__link {
	white-space: nowrap;
}

.site-header .lang-switch {
	display: inline-flex;
	flex-shrink: 0;
	align-items: center;
}

.site-header .lang-switch .pll-switcher-select {
	background-color: transparent;
	border: 1px solid var(--wp--preset--color--subtle);
	border-radius: 4px;
	color: var(--wp--preset--color--primary);
	/* 右側はブラウザ標準の矢印アイコンと文字が近接しないよう広めに確保 */
	padding: 0.25em 1.4em 0.25em 0.5em;
	line-height: 1.2;
	cursor: pointer;
}

.site-header .lang-switch .pll-switcher-select:hover,
.site-header .lang-switch .pll-switcher-select:focus-visible {
	border-color: var(--wp--preset--color--primary);
}

/* -------------------------------------------------------------------------
   Mobile Navigation Overlay
   コアのデフォルトは、開いたオーバーレイ内でサブメニューを常に全展開してしまう
   （submenuVisibility: hover だと触れないため）。ここでは代わりに、
   トグルボタンの aria-expanded 状態（コアのInteractivity APIが自動で切り替える）
   を使って、メインメニューのみ最初に表示しクリックで下層ページを展開する形に上書きする。
   ------------------------------------------------------------------------- */

.site-header .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) {
	padding-top: var(--wp--preset--spacing--md);
	padding-right: var(--wp--preset--spacing--md);
	padding-bottom: var(--wp--preset--spacing--md);
	padding-left: var(--wp--preset--spacing--md);
}

.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	align-items: flex-start;
	text-align: left;
	font-size: var(--wp--preset--font-size--sm);
}

.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container,
.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item {
	align-items: flex-start;
	width: 100%;
	/* コアが .has-xs-font-size を !important 付きで nav コンテナと各項目(li)双方に出力するため、
	   ここも !important で上書きする */
	font-size: var(--wp--preset--font-size--sm) !important;
}

/* 項目間の上下の区切りをラインで分かりやすくする(トップレベルのみ) */
.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content > .wp-block-navigation__container > .wp-block-navigation-item {
	border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 12%, transparent);
	padding-top: var(--wp--preset--spacing--xs);
	padding-bottom: var(--wp--preset--spacing--xs);
}

.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content > .wp-block-navigation__container > .wp-block-navigation-item:last-child {
	border-bottom: 0;
}

/* トグルボタン（矢印アイコン）をオーバーレイ内でも表示し直し、ラベルと高さを揃えて左側に配置する */
.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-icon {
	display: inline-flex;
}

.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .has-child {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	column-gap: var(--wp--preset--spacing--xs);
}

.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .has-child > .wp-block-navigation-item__content {
	order: 1;
	flex: 1 1 auto;
	padding: 0;
}

/* 矢印は「展開トリガー」として右端に。ラベルとの誤タップを防ぐため左に少し余白を持たせる */
.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation-submenu__toggle {
	order: 2;
	align-self: center;
	margin: 0 0 0 var(--wp--preset--spacing--sm);
}

/* 下層メニューは aria-expanded="true" になるまで畳んでおく。左の余白（コアの2rem）も詰める */
.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation__submenu-container {
	order: 3;
	flex: 1 1 100%;
	width: 100%;
	padding-left: var(--wp--preset--spacing--sm);
	padding-right: 0;
	visibility: hidden;
	opacity: 0;
	height: 0;
	overflow: hidden;
}

.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container {
	visibility: visible;
	opacity: 1;
	height: auto;
	overflow: visible;
}

.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle svg {
	transition: transform 0.2s ease;
}

.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle[aria-expanded="true"] svg {
	transform: rotate(180deg);
}

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

.section-hero {
	position: relative;
}

.hero-cover {
	position: relative;
}

.hero-cover .wp-block-cover__inner-container {
	position: relative;
	width: 100%;
	min-height: inherit;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	align-items: flex-end;
}

/* コアの `.is-position-*` が inner-container に width:auto を強制するため、
   #hero のID詳細度で上書きしてhero-markの中央揃え計算が崩れないようにする */
#hero .hero-cover .wp-block-cover__inner-container {
	width: 100%;
}

/* 中央の大きなブランド文字（後でアニメーション予定） */
.hero-mark {
	position: absolute;
	left: 50%;
	top: 44%;
	transform: translate(-50%, -50%);
	width: max-content;
	max-width: 100%;
	margin: 0;
	opacity: 0.45;
	pointer-events: none;
	user-select: none;
	z-index: 1;
}

.hero-copy {
	position: relative;
	z-index: 2;
	max-width: 40rem;
}

.hero-copy p,
.hero-copy h1 {
	margin: 0;
}

.hero-tagline {
	opacity: 0.8;
}

@media (max-width: 960px) {
	.site-header .custom-logo {
		width: 180px;
	}

	.site-header-actions {
		gap: var(--wp--preset--spacing--sm);
	}
}

@media (max-width: 781px) {
	.site-header .custom-logo {
		width: 170px;
	}

	/* お問い合わせボタンはアイコンのみの丸ボタンにする。
	   テキストは a11y のため残し、視覚的にだけ隠す */
	.site-header-cta .wp-block-button__link {
		position: relative;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 2.5rem;
		height: 2.5rem;
		padding: 0 !important;
		border-radius: 999px;
		font-size: 0 !important;
		overflow: hidden;
	}

	.site-header-cta .wp-block-button__link::before {
		content: "";
		display: block;
		width: 1.1rem;
		height: 1.1rem;
		background-color: currentColor;
		-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E") no-repeat center / contain;
		mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E") no-repeat center / contain;
	}

	.hero-cover {
		min-height: 28rem;
	}

	/* コンテンツ（ブランド文字＋コピー）をまとめて上に引き上げ、下端の見切れを防ぐ */
	.hero-cover .wp-block-cover__inner-container {
		transform: translateY(-9.8rem);
	}

	.hero-copy {
		max-width: 100%;
	}

	/* 「世界と日本を、つなぐ。」の「ぐ。」だけ折り返すため、左右余白を狭めて文字サイズを少し下げる。
	   padding はブロック側でインラインstyleとして出力されるため、レスポンシブに上書きするには !important が必要 */
	.hero-cover {
		padding-left: var(--wp--preset--spacing--sm) !important;
		padding-right: var(--wp--preset--spacing--sm) !important;
	}

	/* .hero-copy が layout:constrained の has-global-padding を持ち、hero-cover の余白と二重にかかるため、
	   ここだけ打ち消して hero-cover 側の余白のみにする */
	.hero-copy.has-global-padding {
		padding-left: 0;
		padding-right: 0;
	}

	/* コアが .has-xl-font-size 等のプリセットclassを !important 付きで出力するため、
	   ここも !important が必要 */
	.hero-copy h1 {
		font-size: calc(var(--wp--preset--font-size--lg) * 0.9) !important;
	}
}

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

.section-page-header {
	position: relative;
	display: flex;
	align-items: center;
	/* トークン化されていない固定値。ヘッダー帯の基準高さ（デザイン指定 400px 相当）。
	   タイトルが折り返した場合はパネルの高さに合わせてここから伸びる */
	min-height: 400px;
	padding-inline: var(--wp--preset--spacing--md);
	background-color: var(--wp--preset--color--base);
	overflow: hidden;
}

/* header 直後のページヘッダーに .wp-site-blocks > * の margin-block-start が乗らないようにする */
.wp-site-blocks > .section-page-header,
.wp-site-blocks > .section-single-header {
	margin-block-start: 0;
}

/* 写真は背面に敷き、左端を斜めに切り落とす。
   パララックスJSが img に transform をかけるため、clip-path は
   transform のかからない cover 側に当てる（img に当てると斜めが1.15倍にずれる） */
.page-header-cover {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
	/* 斜めの中心を横19.4%に置き、上下で±45pxずらす（垂直から約12.7度） */
	clip-path: polygon(
		calc(19.4% + 45px) 0,
		100% 0,
		100% 100%,
		calc(19.4% - 45px) 100%
	);
}

.page-header-cover.has-js-parallax .wp-block-cover__image-background {
	transform: translate3d(0, 0, 0) scale(1.15);
	transform-origin: center center;
	will-change: transform;
	backface-visibility: hidden;
}

/* パンくず・装飾英字ラベル・タイトルを載せる青帯。
   帯はテキスト量に追従して縦に伸びる。左はビューポート端まで抜く */
.page-header-panel {
	position: relative;
	z-index: 2;
	width: clamp(20rem, 33%, 42rem);
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--wp--preset--spacing--xs);
	padding-block: var(--wp--preset--spacing--md);
	/* 帯の右端を skew で倒すと、下端が左へ寄る。その分テキストが帯からはみ出さないよう
	   右の余白を md より広く取る */
	padding-inline-end: var(--wp--preset--spacing--lg);
}

.page-header-panel::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset-block: 0;
	/* skew で上端が右・下端が左にずれるため、左は余分に伸ばしてビューポート外まで隠す */
	inset-inline-start: calc(-1 * var(--wp--preset--spacing--md) - 6rem);
	inset-inline-end: 0;
	background-color: color-mix(in srgb, var(--wp--preset--color--primary) 70%, transparent);
	/* 写真の切り口と同じ角度。clip-path の px 指定だと帯の高さ（ページごとに約2倍差がある）で
	   角度が変わってしまうため、高さに依存しない skewX で倒す */
	transform: skewX(-12.7deg);
	transform-origin: center;
}

/* モバイルでは斜めをやめて写真を全幅に戻し、帯も全幅にする。
   写真の上に直接乗るため不透明度を上げて可読性を確保する */
@media (max-width: 781px) {
	.section-page-header {
		min-height: 320px;
	}

	.page-header-cover {
		clip-path: none;
	}

	.page-header-panel {
		width: 100%;
	}

	.page-header-panel::before {
		inset-inline: calc(-1 * var(--wp--preset--spacing--md));
		background-color: color-mix(in srgb, var(--wp--preset--color--primary) 82%, transparent);
		/* 全幅表示では右端の斜めが画面端を削ってしまうため寝かせない */
		transform: none;
	}
}

/* パンくず（primearc_breadcrumb()が出力） */
.page-breadcrumb {
	display: flex;
	/* 長いページ名が折り返したとき、HOME が上下中央に浮かないよう先頭行に揃える */
	align-items: baseline;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--xs);
	margin: 0;
	color: var(--wp--preset--color--base);
	opacity: 0.8;
	font-size: var(--wp--preset--font-size--sm);
}

.page-breadcrumb a {
	color: inherit;
	text-decoration: none;
}

.page-breadcrumb a:hover {
	text-decoration: underline;
}

.page-breadcrumb-sep {
	opacity: 0.6;
}

/* single-header / archive-header は明るい subtle 背景のため、
   page-header（hero画像背景）向けの白文字を上書きする */
.section-single-header .page-breadcrumb {
	color: var(--wp--preset--color--contrast);
}

/* 装飾英字ラベル（固定ページタイトル帯用、任意入力）。長い1単語でもはみ出さないよう折り返しを許可 */
.page-header-mark {
	margin: 0;
	opacity: 0.7;
	max-width: 100%;
	overflow-wrap: break-word;
}

.page-header-panel .wp-block-post-title {
	margin: 0;
}

/* -------------------------------------------------------------------------
   Vision
   ------------------------------------------------------------------------- */

.section-vision {
	position: relative;
	overflow: hidden;
	background-color: var(--wp--preset--color--base);
}

.section-vision-inner {
	position: relative;
	z-index: 1;
}

.section-vision .section-label {
	margin: 0 0 var(--wp--preset--spacing--sm);
}

/* Global Bridge Company: 斜めグラデーションがゆっくり移動 */
.vision-heading {
	margin: 0;
	background-image: var(--wp--preset--gradient--vision-shimmer);
	background-size: 200% 200%;
	background-position: 0% 0%;
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	-webkit-text-fill-color: transparent;
	animation: vision-gradient-shift 12s ease-in-out infinite alternate;
}

@keyframes vision-gradient-shift {
	0% {
		background-position: 0% 0%;
	}
	100% {
		background-position: 100% 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.vision-heading {
		animation: none;
		background-position: 0% 50%;
	}
}

.vision-body {
	padding-top: var(--wp--preset--spacing--lg);
}

.vision-tagline {
	margin-bottom: 0;
}

@media (max-width: 781px) {
	.vision-body {
		padding-top: var(--wp--preset--spacing--md);
	}
}

/* -------------------------------------------------------------------------
   Service
   ------------------------------------------------------------------------- */

.section-service {
	position: relative;
	/* section-service-inner::before の width:100vw がスクロールバー幅分はみ出し、
	   ページ全体に横スクロールを発生させるため、ここで切り詰める */
	overflow-x: hidden;
	background-color: var(--wp--preset--color--base);
}

.section-service::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background-color: var(--wp--preset--color--subtle);
	clip-path: polygon(0% 13.7%, 100% 1.1%, 100% 13.7%, 0% 26.3%);
}

.section-service::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background-color: var(--wp--preset--color--subtle);
	clip-path: polygon(0% 37.2%, 100% 48.2%, 100% 60.6%, 0% 49.7%);
}

.section-service.reveal-armed::before {
	clip-path: polygon(100% 13.7%, 100% 1.1%, 100% 13.7%, 100% 26.3%);
}

.section-service.reveal-armed::after {
	clip-path: polygon(0% 37.2%, 0% 48.2%, 0% 60.6%, 0% 49.7%);
}

.section-service.reveal-armed.is-visible::before {
	animation: service-band-1-reveal 1s ease forwards;
	animation-delay: 0s;
}

.section-service.reveal-armed.is-visible::after {
	animation: service-band-2-reveal 1s ease forwards;
	animation-delay: 0.15s;
}

@keyframes service-band-1-reveal {
	0% {
		clip-path: polygon(100% 13.7%, 100% 1.1%, 100% 13.7%, 100% 26.3%);
	}
	50% {
		clip-path: polygon(44% 13.7%, 100% 1.1%, 100% 13.7%, 56% 26.3%);
	}
	100% {
		clip-path: polygon(0% 13.7%, 100% 1.1%, 100% 13.7%, 0% 26.3%);
	}
}

@keyframes service-band-2-reveal {
	0% {
		clip-path: polygon(0% 37.2%, 0% 48.2%, 0% 60.6%, 0% 49.7%);
	}
	50% {
		clip-path: polygon(0% 37.2%, 44% 48.2%, 56% 60.6%, 0% 49.7%);
	}
	100% {
		clip-path: polygon(0% 37.2%, 100% 48.2%, 100% 60.6%, 0% 49.7%);
	}
}

.section-service-inner {
	position: relative;
	z-index: 1;
}

.section-service-inner::before {
	content: "";
	position: absolute;
	top: calc(-1 * var(--wp--preset--spacing--xl));
	left: 50%;
	width: 100vw;
	height: calc(100% + (2 * var(--wp--preset--spacing--xl)));
	transform: translateX(-50%);
	z-index: -1;
	pointer-events: none;
	background-color: var(--wp--preset--color--subtle);
	clip-path: polygon(0% 86.2%, 100% 73.7%, 100% 86.3%, 0% 98.8%);
}

.section-service.reveal-armed .section-service-inner::before {
	clip-path: polygon(100% 86.2%, 100% 73.7%, 100% 86.3%, 100% 98.8%);
}

.section-service.reveal-armed.is-visible .section-service-inner::before {
	animation: service-band-3-reveal 1s ease forwards;
	animation-delay: 0.3s;
}

@keyframes service-band-3-reveal {
	0% {
		clip-path: polygon(100% 86.2%, 100% 73.7%, 100% 86.3%, 100% 98.8%);
	}
	50% {
		clip-path: polygon(44% 86.2%, 100% 73.7%, 100% 86.3%, 56% 98.8%);
	}
	100% {
		clip-path: polygon(0% 86.2%, 100% 73.7%, 100% 86.3%, 0% 98.8%);
	}
}

.section-service .service-row {
	align-items: center;
}

.section-service .service-image {
	margin: 0;
	overflow: hidden;
	border-radius: 4px;
}

.section-service .service-image img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
}

.section-service .service-number {
	margin: 0;
	opacity: 0.45;
}

.section-service .service-label {
	margin: 0;
}

.section-service .service-text {
	margin: 0;
}

.section-service .service-more {
	margin-bottom: 0;
}

.section-service .service-more a {
	display: inline-flex;
	align-items: center;
	gap: var(--wp--preset--spacing--xs);
	color: inherit;
	text-decoration: none;
}

.section-service .service-more a::after {
	content: "";
	display: block;
	width: 1.75rem;
	height: 1px;
	background-color: currentColor;
}

@media (max-width: 781px) {
	.section-service .service-row {
		flex-direction: column;
	}

	/* スマホでは常に画像→テキストの順 */
	.section-service .service-row.is-text-first .service-media {
		order: -1;
	}

	.section-service .service-media,
	.section-service .service-content {
		flex-basis: 100%;
		width: 100%;
	}
}

/* -------------------------------------------------------------------------
   Strength
   ------------------------------------------------------------------------- */

.section-strength {
	position: relative;
	overflow: hidden;
	background-image: var(--wp--preset--gradient--primary-to-secondary);
	color: var(--wp--preset--color--base);
}

.section-strength-inner {
	position: relative;
	z-index: 1;
}

/* 背景の大きな STRENGTH（後でアニメーション予定） */
.strength-mark {
	position: absolute;
	left: 50%;
	top: 18%;
	transform: translateX(-50%);
	width: max-content;
	max-width: none;
	margin: 0;
	opacity: 0.12;
	pointer-events: none;
	user-select: none;
	z-index: 0;
	color: var(--wp--preset--color--base);
	-webkit-text-fill-color: var(--wp--preset--color--base);
	white-space: nowrap;
}

.strength-heading .section-label,
.strength-heading h2 {
	margin: 0;
}

.strength-card {
	height: 100%;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--base) 45%, transparent);
	border-radius: 12px;
	background-color: color-mix(in srgb, var(--wp--preset--color--base) 16%, transparent);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	box-sizing: border-box;
}

.strength-card-number,
.strength-card-label,
.strength-card-text {
	margin: 0;
}

.strength-card-number {
	margin-bottom: var(--wp--preset--spacing--sm);
	opacity: 0.55;
}

.strength-card-label {
	margin-bottom: 0;
}

.strength-card-title {
	margin-top: var(--wp--preset--spacing--xs);
	margin-bottom: var(--wp--preset--spacing--md);
}

@media (max-width: 781px) {
	.strength-mark {
		top: 8%;
	}
}

/* -------------------------------------------------------------------------
   News
   ------------------------------------------------------------------------- */

.section-news {
	background-color: var(--wp--preset--color--base);
}

.news-heading .section-label,
.news-heading h2 {
	margin: 0;
}

.news-archive-link {
	margin: 0;
}

.news-archive-link a {
	display: inline-flex;
	align-items: center;
	gap: var(--wp--preset--spacing--xs);
	color: inherit;
	text-decoration: none;
}

.news-archive-link a::after {
	content: "→";
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.75rem;
	height: 1.75rem;
	border-radius: 999px;
	background-color: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	font-size: var(--wp--preset--font-size--xs);
	line-height: 1;
}

.news-item {
	border-bottom: 1px solid var(--wp--preset--color--subtle);
	width: 100%;
}

.news-item-main {
	flex: 1 1 auto;
	min-width: 0;
}

.news-item-date {
	flex: 0 0 auto;
	min-width: 6.5em;
	color: color-mix(in srgb, var(--wp--preset--color--contrast) 55%, var(--wp--preset--color--base));
}

.news-item-category {
	display: inline-flex;
	align-items: center;
	margin: 0;
}

.news-item-category a,
.news-item-category .wp-block-post-terms__separator {
	text-decoration: none;
}

.news-item-category a {
	display: inline-block;
	padding: 0.2em 0.75em;
	border-radius: 999px;
	background-color: var(--wp--preset--color--subtle);
	color: var(--wp--preset--color--secondary);
	font-weight: 700;
	line-height: 1.4;
}

.news-item-title {
	margin: 0;
	flex: 1 1 auto;
	min-width: 0;
}

.news-item-title a {
	color: inherit;
	text-decoration: none;
}

.news-item-arrow {
	flex: 0 0 auto;
	margin: 0;
	opacity: 0.45;
	line-height: 1;
}

@media (max-width: 781px) {
	.news-item {
		align-items: flex-start;
	}

	.news-item-arrow {
		margin-top: var(--wp--preset--spacing--xs);
	}

	.news-item-date {
		min-width: 0;
	}
}

/* -------------------------------------------------------------------------
   CTA / Contact
   ------------------------------------------------------------------------- */

.section-cta {
	position: relative;
	overflow: hidden;
	background-color: var(--wp--preset--color--primary);
	background-image: radial-gradient(
		ellipse at 50% 0%,
		color-mix(in srgb, var(--wp--preset--color--secondary) 35%, var(--wp--preset--color--primary)) 0%,
		var(--wp--preset--color--primary) 70%
	);
	color: var(--wp--preset--color--base);
}

.section-cta-inner {
	position: relative;
	z-index: 1;
}

.cta-mark {
	position: absolute;
	right: 4%;
	top: 8%;
	margin: 0;
	opacity: 0.12;
	pointer-events: none;
	user-select: none;
	z-index: 0;
	color: var(--wp--preset--color--base);
	-webkit-text-fill-color: var(--wp--preset--color--base);
	white-space: nowrap;
}

.cta-copy h2 {
	margin: 0;
}

.cta-form-card {
	width: 100%;
	max-width: 22rem;
	margin-left: auto;
	box-sizing: border-box;
	border-radius: 12px;
	background-color: var(--wp--preset--color--base);
}

.cta-form-label,
.cta-form-title {
	margin: 0;
}

.cta-form-title {
	margin-top: var(--wp--preset--spacing--xs);
}

.cta-form-title a {
	color: inherit;
	text-decoration: none;
}

.cta-form-arrow {
	display: inline-flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 2.25rem;
	height: 2.25rem;
	margin: 0;
	border-radius: 999px;
	background-color: var(--wp--preset--color--primary);
	line-height: 1;
	font-size: var(--wp--preset--font-size--xs);
}

@media (max-width: 781px) {
	.cta-mark {
		right: 50%;
		transform: translateX(50%);
		top: 4%;
	}

	.cta-form-card {
		max-width: none;
		margin-left: 0;
		border-radius: 12px;
	}
}

/* -------------------------------------------------------------------------
   Footer
   ------------------------------------------------------------------------- */

.site-footer {
	width: 100%;
}

.footer-nav-title {
	margin: 0 0 var(--wp--preset--spacing--sm);
}

.footer-nav-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.footer-nav-list li {
	margin: 0 0 var(--wp--preset--spacing--xs);
}

.footer-nav-list li:last-child {
	margin-bottom: 0;
}

.footer-nav-list a {
	color: color-mix(in srgb, var(--wp--preset--color--contrast) 75%, var(--wp--preset--color--base));
	text-decoration: none;
}

.footer-nav-list a:hover {
	color: var(--wp--preset--color--primary);
}

.footer-separator {
	width: 100%;
	max-width: var(--wp--style--global--wide-size, 1200px);
	height: 0;
	margin-top: var(--wp--preset--spacing--md);
	margin-bottom: var(--wp--preset--spacing--md);
	margin-inline: auto;
	border: 0;
	border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 12%, transparent);
	background: none;
	opacity: 1;
}

.footer-brand .custom-logo {
	height: auto;
	width: 180px;
	max-width: 100%;
}

.footer-copyright {
	margin: 0;
	opacity: 0.65;
}

/* template-part（footer等）直前の自動マージンを打ち消す */
.wp-site-blocks > footer.wp-block-template-part {
	margin-block-start: 0;
}

/* archive.html のページネーション */
.archive-pagination {
	gap: var(--wp--preset--spacing--xs);
	margin-top: var(--wp--preset--spacing--lg);
}

.archive-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.25em;
	height: 2.25em;
	padding: 0 0.25em;
	border-radius: 999px;
	color: var(--wp--preset--color--contrast);
	font-size: var(--wp--preset--font-size--xs);
	text-decoration: none;
}

.archive-pagination .page-numbers.current {
	background-color: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
}

.archive-pagination a.page-numbers:hover {
	background-color: var(--wp--preset--color--subtle);
}

.archive-pagination .wp-block-query-pagination-previous,
.archive-pagination .wp-block-query-pagination-next {
	color: var(--wp--preset--color--primary);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 700;
}

/* -------------------------------------------------------------------------
   下層ページ: 交互カラム（画像+テキスト）
   ------------------------------------------------------------------------- */

.is-style-primearc-alt-image-left > .wp-block-column {
	align-self: center;
}

@media (max-width: 781px) {
	/* core自体のモバイル積み上げは flex-direction を row のまま保ち、
	   flex-wrap:wrap!important + 各カラム flex-basis:100%!important で
	   折り返して縦積みにしている(column方向には切り替えない)。
	   ここで flex-direction:column に変えてしまうと、PC用の
	   align-self:center(縦中央寄せ)の意味がクロス軸=横幅に変わってしまい、
	   画像の実寸ぶんだけ横にはみ出す不具合が起きるため、
	   coreと同じ「row+wrap」のまま order だけ入れ替えて対応する。 */
	.is-style-primearc-alt-image-left > .wp-block-column:last-child {
		order: -1;
	}
}

/* -------------------------------------------------------------------------
   下層ページ: 斜め帯背景（グループ用）
   ------------------------------------------------------------------------- */

.is-style-primearc-diagonal-band-up,
.is-style-primearc-diagonal-band-down,
.is-style-primearc-diagonal-band {
	position: relative;
	isolation: isolate;
}

/* clip-pathの%指定だと中身が増えるほど帯が太くなってしまう問題があったため、
   TOPでも元々使っていた画像方式(斜め帯の形を描いたSVG)に戻した。
   background-sizeで太さ(高さ)を固定remにして幅だけ100%に伸ばすことで、
   中身の量に関わらず帯の太さが一定になる。 */
.is-style-primearc-diagonal-band-up::before,
.is-style-primearc-diagonal-band-down::before,
.is-style-primearc-diagonal-band::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	width:100%;
	height:100%;
	z-index: -1;
	pointer-events: none;
	background-image: url('../images/diagonal-band.svg?123');
	background-repeat: no-repeat;
	background-position: top left;
	background-size: 100% 100%;
}

/* 右下がり: 右上がり用のSVGをそのまま上下反転して使う(画像は1枚で済む) */
.is-style-primearc-diagonal-band-down::before,
.is-style-primearc-diagonal-band.is-diagonal-band-down::before {
	transform: scaleY(-1);
}



.is-style-primearc-diagonal-band::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	width:100%;
	height:100%;
	z-index: -1;
	pointer-events: none;
	background-image: url('../images/diagonal-band.svg?123');
	background-repeat: no-repeat;
	background-position: top left;
	background-size: 100% 100%;
	transform: scaleY(-1);
}

/* -------------------------------------------------------------------------
   汎用スタイル: Check List / Ruled Table / Q&A / Timeline
   ------------------------------------------------------------------------- */

.is-style-primearc-check-list {
	margin: 0;
	padding-left: 0;
	list-style: none;
}

.is-style-primearc-check-list > li {
	position: relative;
	margin: 0 0 var(--wp--preset--spacing--sm);
	padding-left: 2rem;
}

.is-style-primearc-check-list > li:last-child {
	margin-bottom: 0;
}

.is-style-primearc-check-list > li::before {
	content: "";
	position: absolute;
	top: 0.5em;
	left: 0;
	width: 1.125rem;
	height: 1.125rem;
	border-radius: 999px;
	background-color: var(--wp--preset--color--subtle);
}

.is-style-primearc-check-list > li::after {
	content: "";
	position: absolute;
	top: 0.78em;
	left: 0.28rem;
	width: 0.5rem;
	height: 0.25rem;
	border-left: 2px solid var(--wp--preset--color--secondary);
	border-bottom: 2px solid var(--wp--preset--color--secondary);
	transform: rotate(-45deg);
}

.is-style-primearc-ruled-table {
	margin: 0;
}

.is-style-primearc-ruled-table table {
	width: 100%;
	border-collapse: collapse;
	border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 12%, transparent);
	border-left: 0;
	border-right: 0;
	border-bottom: 0;
}

.is-style-primearc-ruled-table th,
.is-style-primearc-ruled-table td {
	padding: 1em 0.75em;
	border: 0;
	border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 12%, transparent);
	text-align: left;
	vertical-align: top;
}

.is-style-primearc-ruled-table th {
	width: 30%;
	font-weight: 700;
	color: var(--wp--preset--color--primary);
	background: transparent;
}

.is-style-primearc-qa-accordion {
	margin: 0;
	padding: var(--wp--preset--spacing--sm) 0;
	border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 12%, transparent);
	border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 12%, transparent);
}

.is-style-primearc-qa-accordion + .is-style-primearc-qa-accordion {
	margin-top: -1px;
}

.is-style-primearc-qa-accordion summary {
	position: relative;
	padding: 0.15em 2.25rem 0.15em 0;
	color: var(--wp--preset--color--primary);
	font-weight: 700;
	cursor: pointer;
	list-style: none;
}

.is-style-primearc-qa-accordion summary::-webkit-details-marker {
	display: none;
}

.is-style-primearc-qa-accordion summary::before {
	content: "Q";
	display: inline-block;
	margin-right: 0.6em;
	color: var(--wp--preset--color--secondary);
}

.is-style-primearc-qa-accordion summary::after {
	content: "+";
	position: absolute;
	top: 50%;
	right: 0;
	transform: translateY(-50%);
	color: var(--wp--preset--color--secondary);
	font-size: var(--wp--preset--font-size--lg);
	line-height: 1;
}

.is-style-primearc-qa-accordion[open] summary::after {
	content: "-";
}

.is-style-primearc-qa-accordion > :not(summary) {
	margin-top: var(--wp--preset--spacing--sm);
	padding-right: var(--wp--preset--spacing--lg);
}

.is-style-primearc-timeline-stack {
	position: relative;
	padding-left: 0;
	padding-right: 0;
}

.is-style-primearc-timeline-stack::before {
	content: "";
	position: absolute;
	top: 0.35rem;
	bottom: 0.35rem;
	left: 50%;
	width: 1px;
	transform: translateX(-50%);
	background-color: color-mix(in srgb, var(--wp--preset--color--secondary) 90%, transparent);
}

.is-style-primearc-timeline-stack > .timeline-item {
	position: relative;
	margin: 0;
	padding-top: var(--wp--preset--spacing--md);
	padding-bottom: var(--wp--preset--spacing--md);
	text-align: center;
}

.is-style-primearc-timeline-stack > .timeline-item:first-child {
	padding-top: 0;
}

.is-style-primearc-timeline-stack > .timeline-item:last-child {
	padding-bottom: 0;
}

.is-style-primearc-timeline-stack > .timeline-item::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	width: 1rem;
	height: 1rem;
	transform: translateX(-50%);
	border: 2px solid var(--wp--preset--color--secondary);
	border-radius: 999px;
	background-color: var(--wp--preset--color--base);
	box-sizing: border-box;
	z-index: 1;
}

.is-style-primearc-timeline-stack > .timeline-item:first-child::before {
	top: 0;
}

.is-style-primearc-timeline-stack > .timeline-item > * {
	position: relative;
	z-index: 1;
}

/* 先頭アイテムはドットの下に本文が来るよう余白を確保 */
.is-style-primearc-timeline-stack > .timeline-item > *:first-child {
	margin-top: var(--wp--preset--spacing--md);
}

@media (max-width: 781px) {
	.is-style-primearc-ruled-table th,
	.is-style-primearc-ruled-table td {
		display: block;
		width: 100%;
		padding-inline: 0;
	}

	.is-style-primearc-ruled-table th {
		padding-bottom: 0.35em;
		border-bottom: 0;
	}

	.is-style-primearc-ruled-table td {
		padding-top: 0;
	}
}

/* -------------------------------------------------------------------------
   Human Resources Chart（国籍別の登録人材数）
   ------------------------------------------------------------------------- */

.chart-bars-section {
	padding-top: var(--wp--preset--spacing--lg);
	padding-bottom: var(--wp--preset--spacing--lg);
}

.chart-bars-heading {
	margin: 0 0 var(--wp--preset--spacing--md);
}

.chart-bars-total {
	line-height: 1;
}

.chart-bars-total-number {
	margin: 0;
	font-size: var(--wp--preset--font-size--xxl);
}

.chart-bars-total-unit {
	margin: 0 0 0.15em;
}

.chart-bars-lead {
	margin: var(--wp--preset--spacing--xs) 0 0;
	color: var(--wp--preset--color--contrast);
	opacity: 0.75;
}

.chart-bar-row {
	gap: var(--wp--preset--spacing--sm);
}

.chart-bar-label {
	flex: 0 0 7.5em;
	margin: 0;
	color: var(--wp--preset--color--contrast);
}

.chart-bar-track {
	flex: 1 1 auto;
	min-width: 0;
	height: 24px;
	border-radius: 4px;
	background-color: var(--wp--preset--color--subtle);
	overflow: hidden;
}

.chart-bar-fill {
	height: 100%;
	min-width: 3px;
	/* データ側の baseline（左）は直角のまま、先端（右）だけ角丸にする */
	border-radius: 0 4px 4px 0;
	transform-origin: left;
}

.chart-bar-value {
	flex: 0 0 5.5em;
	margin: 0;
	text-align: right;
	font-variant-numeric: tabular-nums;
	color: var(--wp--preset--color--contrast);
}

.chart-bar-unit {
	margin-left: 0.15em;
	font-size: 0.85em;
	opacity: 0.7;
}

@media (max-width: 781px) {
	.chart-bar-label {
		flex-basis: 5.5em;
	}

	.chart-bar-value {
		flex-basis: 4.5em;
	}
}

/* -------------------------------------------------------------------------
   Forms (input / textarea / select)
   ------------------------------------------------------------------------- */

.wp-site-blocks label,
.entry-content label,
.wpcf7 label {
	display: inline-block;
	margin-bottom: var(--wp--preset--spacing--xs);
	color: var(--wp--preset--color--contrast);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 700;
	line-height: 1.5;
}

.wp-site-blocks input[type="text"],
.wp-site-blocks input[type="email"],
.wp-site-blocks input[type="url"],
.wp-site-blocks input[type="tel"],
.wp-site-blocks input[type="number"],
.wp-site-blocks input[type="password"],
.wp-site-blocks input[type="search"],
.wp-site-blocks input[type="date"],
.wp-site-blocks input[type="time"],
.wp-site-blocks input[type="datetime-local"],
.wp-site-blocks input[type="month"],
.wp-site-blocks input[type="week"],
.wp-site-blocks textarea,
.wp-site-blocks select,
.entry-content input[type="text"],
.entry-content input[type="email"],
.entry-content input[type="url"],
.entry-content input[type="tel"],
.entry-content input[type="number"],
.entry-content input[type="password"],
.entry-content input[type="search"],
.entry-content input[type="date"],
.entry-content input[type="time"],
.entry-content input[type="datetime-local"],
.entry-content input[type="month"],
.entry-content input[type="week"],
.entry-content textarea,
.entry-content select,
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="url"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="number"],
.wpcf7 input[type="password"],
.wpcf7 input[type="search"],
.wpcf7 input[type="date"],
.wpcf7 textarea,
.wpcf7 select {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: var(--wp--preset--spacing--sm) var(--wp--preset--spacing--md);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 22%, transparent);
	border-radius: 8px;
	background-color: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	font-family: inherit;
	font-size: var(--wp--preset--font-size--sm);
	line-height: 1.5;
	appearance: none;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.wp-site-blocks textarea,
.entry-content textarea,
.wpcf7 textarea {
	min-height: 10em;
	resize: vertical;
}

.wp-site-blocks select,
.entry-content select,
.wpcf7 select {
	padding-right: calc(var(--wp--preset--spacing--md) + 1.25em);
	background-image: linear-gradient(45deg, transparent 50%, var(--wp--preset--color--contrast) 50%),
		linear-gradient(135deg, var(--wp--preset--color--contrast) 50%, transparent 50%);
	background-position:
		calc(100% - 1.1em) 55%,
		calc(100% - 0.75em) 55%;
	background-size: 0.35em 0.35em, 0.35em 0.35em;
	background-repeat: no-repeat;
}

.wp-site-blocks input::placeholder,
.wp-site-blocks textarea::placeholder,
.entry-content input::placeholder,
.entry-content textarea::placeholder,
.wpcf7 input::placeholder,
.wpcf7 textarea::placeholder {
	color: color-mix(in srgb, var(--wp--preset--color--contrast) 45%, transparent);
	opacity: 1;
}

.wp-site-blocks input:hover,
.wp-site-blocks textarea:hover,
.wp-site-blocks select:hover,
.entry-content input:hover,
.entry-content textarea:hover,
.entry-content select:hover,
.wpcf7 input:hover,
.wpcf7 textarea:hover,
.wpcf7 select:hover {
	border-color: color-mix(in srgb, var(--wp--preset--color--secondary) 70%, var(--wp--preset--color--contrast));
}

.wp-site-blocks input:focus,
.wp-site-blocks textarea:focus,
.wp-site-blocks select:focus,
.entry-content input:focus,
.entry-content textarea:focus,
.entry-content select:focus,
.wpcf7 input:focus,
.wpcf7 textarea:focus,
.wpcf7 select:focus {
	outline: 2px solid color-mix(in srgb, var(--wp--preset--color--secondary) 55%, transparent);
	outline-offset: 2px;
	border-color: var(--wp--preset--color--secondary);
}

.wp-site-blocks input:disabled,
.wp-site-blocks textarea:disabled,
.wp-site-blocks select:disabled,
.entry-content input:disabled,
.entry-content textarea:disabled,
.entry-content select:disabled,
.wpcf7 input:disabled,
.wpcf7 textarea:disabled,
.wpcf7 select:disabled {
	opacity: 0.55;
	cursor: not-allowed;
	background-color: var(--wp--preset--color--subtle);
}

.wp-site-blocks input[type="checkbox"],
.wp-site-blocks input[type="radio"],
.entry-content input[type="checkbox"],
.entry-content input[type="radio"],
.wpcf7 input[type="checkbox"],
.wpcf7 input[type="radio"] {
	width: 1.125em;
	height: 1.125em;
	margin: 0 var(--wp--preset--spacing--xs) 0 0;
	padding: 0;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 30%, transparent);
	accent-color: var(--wp--preset--color--primary);
	vertical-align: middle;
}

.wp-site-blocks input[type="radio"],
.entry-content input[type="radio"],
.wpcf7 input[type="radio"] {
	border-radius: 999px;
}

.wp-site-blocks input[type="file"],
.entry-content input[type="file"],
.wpcf7 input[type="file"] {
	width: 100%;
	padding: var(--wp--preset--spacing--xs) 0;
	border: 0;
	background: transparent;
	font-size: var(--wp--preset--font-size--sm);
}

.wp-site-blocks input[type="submit"],
.wp-site-blocks input[type="reset"],
.wp-site-blocks button[type="submit"],
.entry-content input[type="submit"],
.entry-content input[type="reset"],
.entry-content button[type="submit"],
.wpcf7 input[type="submit"],
.wpcf7 input.wpcf7-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--wp--preset--spacing--xs);
	margin: 0;
	padding: 0.9em 4.5em;
	border: 0;
	border-radius: 999px;
	background-color: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	font-family: inherit;
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 700;
	line-height: 1.3;
	cursor: pointer;
	appearance: none;
	transition: background-color 0.2s ease, opacity 0.2s ease;
}

.wp-site-blocks input[type="submit"]:hover,
.wp-site-blocks input[type="reset"]:hover,
.wp-site-blocks button[type="submit"]:hover,
.entry-content input[type="submit"]:hover,
.entry-content input[type="reset"]:hover,
.entry-content button[type="submit"]:hover,
.wpcf7 input[type="submit"]:hover,
.wpcf7 input.wpcf7-submit:hover {
	background-color: var(--wp--preset--color--secondary);
}

.wp-site-blocks input[type="submit"]:focus-visible,
.wp-site-blocks input[type="reset"]:focus-visible,
.wp-site-blocks button[type="submit"]:focus-visible,
.entry-content input[type="submit"]:focus-visible,
.entry-content input[type="reset"]:focus-visible,
.entry-content button[type="submit"]:focus-visible,
.wpcf7 input[type="submit"]:focus-visible,
.wpcf7 input.wpcf7-submit:focus-visible {
	outline: 2px solid var(--wp--preset--color--secondary);
	outline-offset: 2px;
}

.wp-site-blocks fieldset,
.entry-content fieldset,
.wpcf7 fieldset {
	margin: 0 0 var(--wp--preset--spacing--md);
	padding: var(--wp--preset--spacing--md);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 12%, transparent);
	border-radius: 8px;
}

.wp-site-blocks legend,
.entry-content legend,
.wpcf7 legend {
	padding: 0 var(--wp--preset--spacing--xs);
	color: var(--wp--preset--color--primary);
	font-weight: 700;
}

/* Contact Form 7 の余白・メッセージ */
.wpcf7 .wpcf7-form-control-wrap {
	display: block;
}

.wpcf7 p {
	margin-bottom: var(--wp--preset--spacing--md);
}

.wpcf7 .wpcf7-not-valid {
	border-color: var(--wp--preset--color--danger);
}

.wpcf7 .wpcf7-not-valid-tip {
	display: block;
	margin-top: var(--wp--preset--spacing--xs);
	color: var(--wp--preset--color--danger);
	font-size: var(--wp--preset--font-size--xs);
}

.wpcf7 .wpcf7-response-output {
	margin: var(--wp--preset--spacing--md) 0 0;
	padding: var(--wp--preset--spacing--sm) var(--wp--preset--spacing--md);
	border-radius: 8px;
	border-width: 1px;
	border-style: solid;
}

.wpcf7 form.sent .wpcf7-response-output {
	border-color: var(--wp--preset--color--secondary);
	background-color: var(--wp--preset--color--subtle);
	color: var(--wp--preset--color--primary);
}

/* 検索ブロック */
.wp-block-search .wp-block-search__input {
	min-width: 0;
}

.wp-block-search.wp-block-search__button-inside .wp-block-search__inside-wrapper {
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 22%, transparent);
	border-radius: 8px;
	padding: 0;
}

.wp-block-search.wp-block-search__button-inside .wp-block-search__input {
	border: 0;
}