/* ==========================================================================
   Common: Animation
   ========================================================================== */

/* スクロールで表示（JS有効時のみ隠す。reveal.js が .is-visible を付与） */
@keyframes ooyama-reveal {
	from {
		opacity: 0;
		transform: translateY(24px);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

.js .reveal {
	opacity: 0;
}

.js .reveal.is-visible {
	opacity: 1;
	/* backwards：終了後は通常スタイルに戻るので、.lift の hover と干渉しない */
	animation: ooyama-reveal 0.7s cubic-bezier(0.22, 1, 0.36, 1) backwards;
}

/* ホバーで浮く */
.lift {
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.lift:hover,
.lift:focus-within {
	transform: translateY(-4px);
	box-shadow: 0 12px 32px rgba(20, 33, 61, 0.08);
}

@media (prefers-reduced-motion: reduce) {
	.js .reveal,
	.js .reveal.is-visible {
		opacity: 1;
		animation: none;
	}

	.lift,
	.lift:hover,
	.lift:focus-within {
		transition: none;
		transform: none;
	}
}

/* ホバーで画像をズーム */
.zoom img {
	transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}

.zoom:hover img,
.zoom:focus-within img {
	transform: scale(1.05);
}

/* カラム内のカードは順に少しずつ遅らせて表示 */
.wp-block-columns > .reveal:nth-child(2) {
	animation-delay: 0.1s;
}

.wp-block-columns > .reveal:nth-child(3) {
	animation-delay: 0.2s;
}

@media (prefers-reduced-motion: reduce) {
	.zoom img,
	.zoom:hover img,
	.zoom:focus-within img {
		transition: none;
		transform: none;
	}
}

/* ==========================================================================
   Common: Button
   ========================================================================== */

/* 枠線ボタン：ホバーで紺に塗りつぶし（色クラスが !important のため上書きも !important） */
.wp-block-button.is-style-outline > .wp-block-button__link {
	transition: background-color 0.2s ease, color 0.2s ease;
}

.wp-block-button.is-style-outline > .wp-block-button__link:hover,
.wp-block-button.is-style-outline > .wp-block-button__link:focus-visible {
	background-color: var(--wp--preset--color--contrast) !important;
	color: var(--wp--preset--color--base) !important;
}

/* ==========================================================================
   Common: Section
   ========================================================================== */

.section-lead {
	max-width: 720px;
}

/* ページ内リンクはなめらかにスクロール */
html {
	scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
}

/* ==========================================================================
   Page: 共通（固定ページ）
   ========================================================================== */

/* 本文にセクションを並べるページ：全幅セクションの間の余白をなくす
   （全幅以外の段落・見出しなどには通常の余白を残す。プライバシーポリシーなど文章だけのページ用） */
.wp-block-post-content.page-sections > .alignfull {
	margin-block-start: 0;
	margin-block-end: 0;
}

/* ページ内リンク */
.page-nav .wp-block-button__link {
	font-size: 14px;
	transition: border-color 0.2s ease;
}

.page-nav .wp-block-button__link:hover {
	border-color: var(--wp--preset--color--contrast) !important;
}

/* ==========================================================================
   Page: Company（会社概要）
   ========================================================================== */

/* --- レイアウト：左に目次（sticky）、右に本文 --- */
.co-columns {
	align-items: flex-start;
}

.co-side {
	position: sticky;
	top: calc(var(--ooyama-header-h) + 24px + var(--wp-admin--admin-bar--height, 0px));
	align-self: flex-start;
}

/* スマホ（カラムが縦並び）では目次を非表示（ページ上部のリンクで代用） */
@media (max-width: 781px) {
	.co-side {
		display: none;
	}
}

/* 本文のセクション：間は区切り線 */
.co-main > .co-section {
	margin-block: 0;
}

/* --- 目次 --- */
.co-toc__list {
	margin: 0;
	padding: 0;
	list-style: none;
	border-left: 2px solid var(--wp--preset--color--line);
	counter-reset: co-toc;
	font-size: 15px;
}

.co-toc__list > li {
	margin: 0;
	counter-increment: co-toc;
}

.co-toc__list a {
	display: flex;
	align-items: baseline;
	gap: 12px;
	margin-left: -2px;
	padding: 10px 0 10px 18px;
	border-left: 2px solid transparent;
	color: var(--wp--preset--color--body);
	text-decoration: none;
	transition: color 0.2s ease, border-color 0.2s ease;
}

.co-toc__list a::before {
	content: counter(co-toc, decimal-leading-zero);
	font-size: 12px;
	color: var(--wp--preset--color--label);
}

.co-toc__list a:hover,
.co-toc__list a.is-active {
	border-left-color: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--contrast);
	font-weight: 700;
}

/* --- 代表あいさつ --- */
.co-message__photo {
	flex-shrink: 0;
	margin: 0;
}

/* --- 会社情報（1項目＝1行） --- */
.co-dl > .co-dl__item {
	margin: 0;
	padding: 20px 0;
	border-top: 1px solid var(--wp--preset--color--line);
}

.co-dl > .co-dl__item:last-child {
	border-bottom: 1px solid var(--wp--preset--color--line);
}

/* 関連ページへのリンク（→ はオレンジ） */
.co-links p {
	margin: 0;
}

.co-links a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
}

.co-links a::after {
	content: "→" / "";
	color: var(--wp--preset--color--label);
	transition: transform 0.2s ease;
}

.co-links a:hover::after {
	transform: translateX(4px);
}

/* 沿革（年月は <strong>） */
.history-list {
	margin: 28px 0 0;
	padding: 0 0 0 24px;
	list-style: none;
	border-left: 2px solid var(--wp--preset--color--light-muted);
}

.history-list > li {
	position: relative;
	display: grid;
	grid-template-columns: 120px 1fr;
	gap: 4px 32px;
	color: var(--wp--preset--color--body);
}

.history-list > li + li {
	margin-top: 28px;
}

.history-list > li::before {
	content: "";
	position: absolute;
	top: 8px;
	left: -33px;
	width: 16px;
	height: 16px;
	box-sizing: border-box;
	border: 3px solid var(--wp--preset--color--secondary);
	border-radius: 50%;
	background-color: var(--wp--preset--color--contrast);
}

/* 最初と最新はアクセント色 */
.history-list > li:first-child::before,
.history-list > li:last-child::before {
	background-color: var(--wp--preset--color--accent);
}

.history-list > li strong {
	font-family: var(--wp--preset--font-family--zen-kaku);
	font-size: 18px;
	font-weight: 900;
	color: var(--wp--preset--color--contrast);
}

@media (max-width: 600px) {
	.history-list > li {
		grid-template-columns: 1fr;
	}
}

/* --- アクセス --- */
.access-map iframe {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 7;
	border: 0;
	border-radius: 20px;
}

@media (max-width: 600px) {
	.access-map iframe {
		aspect-ratio: 4 / 3;
	}
}

.co-routes {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	column-gap: 32px;
}

.co-routes > .co-routes__item {
	margin: 0;
	padding: 16px 0;
	border-top: 1px solid var(--wp--preset--color--contrast);
}

/* ==========================================================================
   Page: Contact（お問い合わせ）
   ========================================================================== */

/* --- レイアウト：左に連絡先（1）、右にフォーム（2）。狭い画面では縦並び --- */
.contact__layout {
	align-items: flex-start;
}

.contact__side {
	flex: 1 1 320px;
	min-width: 0;
}

.contact-form {
	flex: 2 1 560px;
	min-width: 0;
}

/* PC：フォームが長いので連絡先はスクロールに追従 */
@media (min-width: 960px) {
	.contact__side {
		position: sticky;
		top: calc(var(--ooyama-header-h) + 24px + var(--wp-admin--admin-bar--height, 0px));
	}
}

/* --- 電話 --- */
.contact-tel__number a {
	color: inherit;
	text-decoration: none;
}

/* --- FAX・所在地（1項目＝1行、間は区切り線） --- */
.contact-info > .contact-info__item {
	margin: 0;
	padding: 20px 0;
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.contact-info > .contact-info__item:last-child {
	border-bottom: 0;
}

/* --- フォーム --- */
.contact-form__head > * {
	margin: 0;
}

.contact-form__required {
	color: var(--wp--preset--color--label);
}

/* --- Snow Monkey Forms（.contact-form の中だけに適用） --- */

/* 項目を縦に並べる（間隔は gap で管理） */
.contact-form .smf-form {
	display: flex;
	flex-direction: column;
	gap: 28px;
}

.contact-form .smf-form > *,
.contact-form .smf-form .smf-item {
	margin: 0;
}

/* 2列の行（メールアドレス・電話番号など）：狭い画面では縦並び */
.contact-form .smf-form > .wp-block-columns {
	gap: 28px 20px;
}

.contact-form .smf-form > .wp-block-columns > .wp-block-column {
	margin: 0;
}

/* ラベル */
.contact-form .smf-item__col--label {
	margin-bottom: 8px;
}

.contact-form .smf-item__label__text {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-weight: 700;
	color: var(--wp--preset--color--contrast);
}

/* 必須バッジ：必須チェックが入っている項目に自動で付ける */
.contact-form .smf-item:has([data-validations~="required"]) .smf-item__label__text::after {
	content: "必須";
	padding: 0 8px;
	border-radius: 4px;
	background-color: var(--wp--preset--color--label);
	color: var(--wp--preset--color--base);
	font-size: 11px;
	line-height: 1.8;
}

.contact-form .snow-monkey-form[data-screen="confirm"] .smf-item__label__text::after {
	content: none;
}

/* 入力欄・セレクト・テキストエリア */
.contact-form .smf-form .smf-text-control__control,
.contact-form .smf-form .smf-select-control__control,
.contact-form .smf-form .smf-textarea-control__control {
	box-sizing: border-box;
	width: 100%;
	min-height: 48px;
	padding: 0 16px;
	border: 1px solid var(--wp--preset--color--light-muted);
	border-radius: 10px;
	background-color: var(--wp--preset--color--base);
	box-shadow: none;
	color: var(--wp--preset--color--contrast);
	font-family: inherit;
	font-size: 15px;
	line-height: 1.5;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.contact-form .smf-form .smf-textarea-control__control {
	min-height: 200px;
	padding: 12px 16px;
	line-height: 1.7;
	resize: vertical;
}

.contact-form .smf-form .smf-text-control__control::placeholder,
.contact-form .smf-form .smf-textarea-control__control::placeholder {
	color: var(--wp--preset--color--light-muted);
}

.contact-form .smf-form .smf-text-control__control:focus,
.contact-form .smf-form .smf-select-control__control:focus,
.contact-form .smf-form .smf-textarea-control__control:focus {
	border-color: var(--wp--preset--color--contrast);
	box-shadow: 0 0 0 3px rgba(20, 33, 61, 0.12);
	outline: 0;
}

/* セレクト：幅いっぱい、矢印は右端 */
.contact-form .smf-form .smf-select-control {
	display: block;
}

.contact-form .smf-form .smf-select-control__control {
	padding-right: 44px;
}

.contact-form .smf-form .smf-select-control__toggle::before {
	right: 20px;
	width: 8px;
	height: 8px;
	border-width: 0 2px 2px 0;
	color: var(--wp--preset--color--contrast);
}

.contact-form .smf-form .smf-select-control__control:focus + .smf-select-control__toggle::before {
	border-color: currentcolor;
}

/* エラー */
.contact-form .smf-form [data-invalid="1"] {
	border-color: #cc3033;
}

.contact-form .smf-error-messages {
	margin-top: 8px;
	font-size: 13px;
	font-weight: 700;
}

/* 個人情報の取り扱い＋同意チェック（チェックボックスを含むグループを枠にする） */
.contact-form .smf-form > .wp-block-group:has(.smf-checkboxes-control) {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 20px 24px;
	border-radius: 12px;
	background-color: var(--wp--preset--color--secondary);
	font-size: 14px;
}

.contact-form .smf-form > .wp-block-group:has(.smf-checkboxes-control) > * {
	max-width: none;
	margin: 0;
}

.contact-form .smf-form .smf-checkbox-control {
	align-items: center;
	gap: 12px;
	min-height: 44px;
	font-weight: 700;
	color: var(--wp--preset--color--contrast);
	cursor: pointer;
}

.contact-form .smf-form .smf-checkbox-control__control {
	width: 22px;
	height: 22px;
	margin: 0;
	border: 1px solid var(--wp--preset--color--light-muted);
	border-radius: 4px;
}

.contact-form .smf-form .smf-checkbox-control__control::before {
	top: calc(50% - 7px);
	left: calc(50% - 4px);
	width: 7px;
	height: 11px;
}

.contact-form .smf-form .smf-checkbox-control__control:checked {
	border-color: var(--wp--preset--color--contrast);
	background-color: var(--wp--preset--color--contrast);
}

.contact-form .smf-form .smf-checkbox-control__control:focus-visible {
	box-shadow: 0 0 0 3px rgba(20, 33, 61, 0.2);
}

/* 確認画面：個人情報の説明＋同意の枠（フォーム直下のグループ）は出さない
   （中の hidden の値は非表示でも送信される） */
.contact-form .snow-monkey-form[data-screen="confirm"] .smf-form > .wp-block-group {
	display: none;
}

/* 確認画面：見出し横の「必須の項目は必ずご入力ください」も出さない */
.contact-form:has(.snow-monkey-form[data-screen="confirm"]) .contact-form__head > p:has(.contact-form__required) {
	display: none;
}

/* 確認画面：入力値をテキストで表示 */
.contact-form .snow-monkey-form[data-screen="confirm"] .smf-item__controls {
	padding: 11px 16px;
	border-radius: 10px;
	background-color: var(--wp--preset--color--secondary);
	color: var(--wp--preset--color--contrast);
	line-height: 1.7;
	min-height: 51px;
	word-break: break-all;
	font-size: 15px;
}

/* ボタン（確認画面では「戻る」と並ぶ） */
.contact-form .smf-action {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 16px;
	margin-top: 28px;
}

.contact-form .smf-action .smf-button-control + .smf-button-control {
	margin-left: 0;
}

.contact-form .smf-action .smf-button-control__control {
	min-width: min(280px, 100%);
	min-height: 56px;
	padding: 0 40px;
	border: 2px solid var(--wp--preset--color--accent);
	border-radius: 999px;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
	font-family: inherit;
	font-size: 17px;
	font-weight: 700;
	cursor: pointer;
	transition: filter 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}

.contact-form .smf-action .smf-button-control__control:hover {
	filter: brightness(1.05);
}

.contact-form .smf-action .smf-button-control__control:focus-visible {
	outline: 3px solid var(--wp--preset--color--contrast);
	outline-offset: 3px;
}

/* 「戻る」は枠線ボタン */
.contact-form .smf-action .smf-button-control__control[data-action="back"] {
	border-color: var(--wp--preset--color--contrast);
	background: var(--wp--preset--color--base);
}

.contact-form .smf-action .smf-button-control__control[data-action="back"]:hover {
	filter: none;
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

.contact-form .smf-action .smf-button-control__control .smf-sending {
	right: 16px;
}

/* --- 完了画面（data-screen="complete"）---
   完了画面の中身（見出し・ボタン）は Snow Monkey Forms の「完了画面」で編集。
   アイコンと THANK YOU は CSS で追加。 */

/* フォームの見出し・必須の説明・下の注記は完了画面では出さない */
.contact-form:has(.snow-monkey-form[data-screen="complete"]) > .contact-form__head,
.contact-form:has(.snow-monkey-form[data-screen="complete"]) > .contact-form__body ~ * {
	display: none;
}

.contact-form:has(.snow-monkey-form[data-screen="complete"]) > .contact-form__body {
	margin-top: 0;
}

.contact-form:has(.snow-monkey-form[data-screen="complete"]) {
	padding-top: clamp(40px, 6vw, 50px) !important;
	padding-bottom: clamp(40px, 6vw, 42px) !important;
}

.contact-form .smf-complete-content {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
	text-align: center;
}

.contact-form .smf-complete-content > * {
	margin: 0;
}

/* チェックのアイコン（クリーム色の丸にオレンジのチェック） */
.contact-form .smf-complete-content::before {
	content: "";
	width: 88px;
	height: 88px;
	border-radius: 50%;
	background:
		url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 88 88%27%3E%3Ccircle cx=%2744%27 cy=%2744%27 r=%2744%27 fill=%27%23FDEBDD%27/%3E%3Cpath d=%27M29 45l9 9 21-21%27 fill=%27none%27 stroke=%27%23B4511A%27 stroke-width=%275%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27/%3E%3C/svg%3E")
		no-repeat center / 100%;
	animation: ooyama-done-pop 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}

@keyframes ooyama-done-pop {
	from {
		transform: scale(0.6);
		opacity: 0;
	}
	to {
		transform: none;
		opacity: 1;
	}
}

@media (prefers-reduced-motion: reduce) {
	.contact-form .smf-complete-content::before {
		animation: none;
	}
}

/* 見出し：上に THANK YOU */
.contact-form .smf-complete-content > .wp-block-heading {
	color: var(--wp--preset--color--contrast);
	font-family: var(--wp--preset--font-family--zen-kaku);
	font-size: clamp(22px, 4vw, 30px);
	font-weight: 900;
	line-height: 1.5;
}

.contact-form .smf-complete-content > .wp-block-heading::before {
	content: "THANK YOU";
	display: block;
	margin: 8px 0 16px;
	color: var(--wp--preset--color--label);
	font-family: var(--wp--preset--font-family--sans);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.14em;
	line-height: 1.6;
}

/* ボタン：塗り＝紺、枠線＝紺の線 */
.contact-form .smf-complete-content > .wp-block-buttons {
	gap: 12px;
	margin-top: 16px;
}

.contact-form .smf-complete-content .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	min-height: 52px;
	padding: 0 32px;
	border: 2px solid var(--wp--preset--color--contrast);
	border-radius: 999px;
	background-color: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	font-size: 16px;
	font-weight: 700;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.contact-form .smf-complete-content .is-style-outline .wp-block-button__link {
	background-color: transparent;
	color: var(--wp--preset--color--contrast);
}

.contact-form .smf-complete-content .wp-block-button__link:hover,
.contact-form .smf-complete-content .wp-block-button__link:focus-visible {
	background-color: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
}

.contact-form .smf-complete-content .is-style-outline .wp-block-button__link:hover,
.contact-form .smf-complete-content .is-style-outline .wp-block-button__link:focus-visible {
	background-color: var(--wp--preset--color--contrast) !important;
	color: var(--wp--preset--color--base) !important;
}

/* ==========================================================================
   Page: Recruit（採用情報）
   ========================================================================== */

/* --- ヒーロー：背景に白抜きの「RECRUIT」（装飾なので読み上げ対象外） --- */
.recruit-hero {
	position: relative;
	overflow: hidden;
}

.recruit-hero::before {
	content: "RECRUIT" / "";
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	font-family: var(--wp--preset--font-family--zen-kaku);
	font-size: clamp(96px, 18vw, 220px);
	font-weight: 900;
	line-height: 1;
	letter-spacing: 0.04em;
	white-space: nowrap;
	color: transparent;
	-webkit-text-stroke: 1px rgba(255, 255, 255, 0.08);
	pointer-events: none;
}

.recruit-hero > * {
	position: relative;
	z-index: 1;
}

.recruit-hero__lead {
	max-width: 600px;
}

/* 枠線ボタン（紺背景の上）：ホバーで白に塗りつぶし */
.wp-block-button.is-style-outline.recruit-button--outline > .wp-block-button__link:hover,
.wp-block-button.is-style-outline.recruit-button--outline > .wp-block-button__link:focus-visible {
	background-color: var(--wp--preset--color--base) !important;
	color: var(--wp--preset--color--contrast) !important;
}

.recruit-button .wp-block-button__link {
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.recruit-button .wp-block-button__link:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 24px rgba(20, 33, 61, 0.2);
}

/* --- 中央揃えの見出しエリア --- */
.recruit-head--center {
	text-align: center;
}

.recruit-head__lead {
	max-width: 680px;
}

/* --- こんな人を待っています --- */
.recruit-welcome__text {
	flex: 1 1 320px;
	min-width: 0;
}

.recruit-welcome__list {
	flex: 1.4 1 420px;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.recruit-welcome__list > li {
	margin: 0;
	padding: 22px 28px;
	border-radius: 16px;
	background-color: var(--wp--preset--color--secondary);
	color: var(--wp--preset--color--contrast);
	font-family: var(--wp--preset--font-family--zen-kaku);
	font-size: 19px;
	font-weight: 700;
	line-height: 1.5;
}

/* --- カード（働き方・成長・選考の流れ）：横に並べ、狭い画面では折り返す --- */
.recruit-work__cards > .recruit-work__card {
	flex: 1 1 300px;
	min-width: 0;
}

.recruit-growth__items > .recruit-growth__item {
	flex: 1 1 280px;
	min-width: 0;
}

.recruit-flow__steps > .recruit-flow__step {
	flex: 1 1 200px;
	min-width: 0;
}

/* 順に少しずつ遅らせて表示 */
:is(.recruit-work__cards, .recruit-growth__items, .recruit-flow__steps) > .reveal:nth-child(2) {
	animation-delay: 0.1s;
}

:is(.recruit-work__cards, .recruit-growth__items, .recruit-flow__steps) > .reveal:nth-child(3) {
	animation-delay: 0.2s;
}

.recruit-flow__steps > .reveal:nth-child(4) {
	animation-delay: 0.3s;
}

/* --- 募集要項（1項目＝1行、左に項目名） --- */
.recruit-req__list > .recruit-req__row {
	margin: 0;
	padding: 20px 0;
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.recruit-req__list > .recruit-req__row:last-child {
	border-bottom: 0;
}

.recruit-req__term {
	flex: 0 0 140px;
}

.recruit-req__desc {
	flex: 1 1 400px;
	min-width: 0;
}

.recruit-req__note {
	font-size: 14px;
	color: var(--wp--preset--color--muted);
}

/* --- 応募への誘導 --- */
.recruit-cta__text {
	flex: 1 1 380px;
	min-width: 0;
}

/* --- 基本方針 --- */
.security-policy__num {
	flex: 0 0 auto;
	min-width: 1em;
}

.security-policy__body {
	flex: 1 1 auto;
	min-width: 0;
}

/* PDCAサイクルの図：上下に余白、原寸（698px）より大きくしない */
.security-policy > .security-policy__pdca {
	display: block;
	margin-block: 24px;
}

.security-policy__pdca img {
	display: block;
	width: 100%;
	margin-inline: auto;
	max-width: 698px;
	height: auto;
}

.security-policy__note {
	border-left: 4px solid var(--wp--preset--color--light-muted);
}

/* --- ISO27001 取得概要（1項目＝1行、左に項目名） --- */
.security-dl > .security-dl__row {
	margin: 0;
	padding: 18px 8px;
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.security-dl__term {
	flex: 0 0 180px;
}

.security-dl__desc {
	flex: 1 1 400px;
	min-width: 0;
}

/* --- ISMS 認証の案内 --- */
.security-isms__mark {
	flex: 0 0 auto;
}

.security-isms__mark .wp-block-image {
	margin: 0;
}

.security-isms__mark img {
	display: block;
	max-width: 100%;
	height: auto;
}

.security-isms__text {
	flex: 1 1 360px;
	min-width: 0;
}

/* ==========================================================================
   Page: Dispatch（労働者派遣について）
   ========================================================================== */

/* --- 数値カード --- */
.dispatch-stats > .dispatch-stat {
	flex: 1 1 240px;
	min-width: 0;
}

.dispatch-stat__unit {
	margin-left: 2px;
	font-size: 16px;
}

/* --- マージンに含まれるもの --- */
.dispatch-box .wp-block-list {
	padding-inline-start: 20px;
}

.dispatch-box .wp-block-list > li + li {
	margin-top: 4px;
}

/* --- キャリア形成支援制度（表）：content.css のデフォルトを上書き --- */
.dispatch-table {
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 16px;
}

.dispatch-table table {
	min-width: 560px;
	border-collapse: collapse;
}

.dispatch-table table :is(th, td) {
	padding: 14px 16px;
	border: 0;
}

.dispatch-table table thead th {
	border: 0;
	background-color: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

.dispatch-table table tbody tr {
	border-top: 1px solid var(--wp--preset--color--line);
}

.dispatch-table table tbody tr:nth-child(even) {
	background-color: #F8F9FB;
}

.dispatch-table table tbody td:first-child {
	color: var(--wp--preset--color--contrast);
	font-weight: 500;
}

/* --- キャリアコンサルティング相談窓口 --- */
.dispatch-consult__tel a {
	color: inherit;
	text-decoration: none;
}

/* --- その他の参考事項（.security-dl を流用し、項目名の幅だけ広げる） --- */
.dispatch-dl .security-dl__term {
	flex-basis: 220px;
}

.dispatch-dl .security-dl__desc {
	flex-basis: 360px;
}

/* ==========================================================================
   下層ページのヘッダー（.page-hero）
   ========================================================================== */

/* 背景：白地に右上の水色・左下の紫の淡い光
   （ブロックの背景色 secondary より優先させるため !important） */
.page-hero.has-background {
	background-color: var(--wp--preset--color--base) !important;
	background-image:
		linear-gradient(rgba(20, 33, 61, 0.05) 1px, transparent 1px),
		linear-gradient(90deg, rgba(20, 33, 61, 0.05) 1px, transparent 1px),
		radial-gradient(circle at 85% 20%, rgba(95, 227, 255, 0.22), transparent 40%),
		radial-gradient(circle at 10% 100%, rgba(181, 124, 255, 0.12), transparent 45%),
		linear-gradient(180deg, #FFFFFF 0%, #FFFFFF 70%, #F7FAFD 100%);
}

/* ==========================================================================
   Front: Hero（キービジュアル）
   ========================================================================== */

/* 背景：紺のグラデーション＋細かいドット＋右上の光 */
.hero-flow {
	position: relative;
	overflow: hidden;
	background-color: var(--wp--preset--color--contrast);
	background-image:
		radial-gradient(circle at 1px 1px, rgba(255, 255, 255, 0.08) 1px, transparent 0),
		radial-gradient(ellipse 60% 70% at 85% 15%, rgba(95, 227, 255, 0.16), transparent 70%),
		linear-gradient(120deg, #14213D 0%, #1A2D57 30%, #1C4076 55%, #182A52 80%, #14213D 100%);
	background-size: 24px 24px, 100% 100%, 100% 100%;
}

/* 読み込み時にふわっと表示（.d2 は少し遅らせる） */
.hero-in {
	animation: ooyama-reveal 0.9s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.hero-in.d2 {
	animation-delay: 0.15s;
}

.hero-lead {
	max-width: 520px;
}

.hero-visual {
	position: relative;
}

.hero-visual .hero-visual__image {
	margin: 0;
}

.hero-visual .hero-visual__image img {
	display: block;
	width: 100%;
	height: auto;
}

/* since 2008 バッジ */
.hero-visual .hero-badge {
	position: absolute;
	left: -16px;
	bottom: -20px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 120px;
	height: 120px;
	margin: 0;
	padding: 0;
	border-radius: 50%;
	text-align: center;
}

@media (max-width: 600px) {
	.hero-visual .hero-badge {
		left: -8px;
		width: 96px;
		height: 96px;
		font-size: 13px !important;
	}
}

/* ゆっくり上下に揺れる */
@keyframes ooyama-bob {
	0%,
	100% {
		transform: translateY(0);
	}
	50% {
		transform: translateY(-8px);
	}
}

.bob {
	animation: ooyama-bob 4s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
	.hero-in,
	.bob {
		animation: none;
	}
}

/* ==========================================================================
   Front: Certs（認証・許可）
   ========================================================================== */

.front-certs strong {
	color: var(--wp--preset--color--contrast);
}

/* ==========================================================================
   Front: About
   ========================================================================== */

/* リード文：PCは「オオヤマは、」から改行、スマホは改行せず自然に折り返す */
@media (max-width: 720px) {
	.about-lead br {
		display: none;
	}
}

.about-flow {
	position: relative;
}

/* PC：3つの丸を点線でつなぐ（丸の中心＝上から48px） */
@media (min-width: 782px) {
	.about-flow::before {
		content: "";
		position: absolute;
		top: 47px;
		left: 16.66%;
		right: 16.66%;
		border-top: 2px dashed var(--wp--preset--color--light);
		z-index: 0;
	}
}

.about-step {
	position: relative;
	z-index: 1;
}

.about-step .about-step__icon {
	margin: 0 0 10px;
}

.about-step .about-step__icon img {
	display: block;
	margin-inline: auto;
}

.about-step .about-step__text {
	max-width: 280px;
	margin-inline: auto;
}

/* ==========================================================================
   Front: Recruit
   ========================================================================== */

.front-recruit {
	position: relative;
	overflow: hidden;
}

/* 背景の白抜き「RECRUIT」（装飾なので読み上げ対象外） */
.front-recruit::before {
	content: "RECRUIT" / "";
	position: absolute;
	top: 24px;
	right: -24px;
	font-family: var(--wp--preset--font-family--zen-kaku);
	font-size: clamp(88px, 15vw, 180px);
	font-weight: 900;
	line-height: 1;
	letter-spacing: 0.04em;
	white-space: nowrap;
	color: transparent;
	-webkit-text-stroke: 1px rgba(255, 255, 255, 0.12);
	pointer-events: none;
}

/* 装飾文字より前面に */
.front-recruit > * {
	position: relative;
	z-index: 1;
}

.front-recruit .recruit-head__text {
	flex: 1 1 520px;
	min-width: 0;
}

.front-recruit .recruit-lead {
	max-width: 640px;
}

.front-recruit .recruit-button .wp-block-button__link {
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.front-recruit .recruit-button .wp-block-button__link:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 24px rgba(0, 0, 0, 0.25);
}

.front-recruit .recruit-image {
	margin: 0;
}

.front-recruit .recruit-image img {
	display: block;
	width: 100%;
}

.front-recruit .recruit-features > .recruit-feature {
	flex: 1 1 220px;
}

.front-recruit .recruit-feature__icon {
	margin: 0;
	flex-shrink: 0;
}

/* ==========================================================================
   Front: News（お知らせ）
   ========================================================================== */

.news-list .wp-block-post-template {
	border-top: 1px solid var(--wp--preset--color--line);
}

.news-list .wp-block-post-template > li {
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.news-item {
	position: relative;
}

.news-item .news-item__date {
	min-width: 96px;
}

.news-item .news-item__title {
	flex: 1 1 320px;
	margin: 0;
}

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

/* タイトルのリンクを行全体に広げる */
.news-item .news-item__title a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.news-item .news-item__title a:focus-visible {
	outline: none;
}

.news-item:focus-within {
	outline: 2px solid var(--wp--preset--color--contrast);
	outline-offset: 2px;
}

/* タグのラベル（リンクなしの <span class="works-tag">。リンクの場合も行全体リンクより前面に出す） */
:is(.news-item, .news-single__meta) .news-item__tag :is(a, .works-tag) {
	position: relative;
	z-index: 1;
	display: inline-block;
	padding: 2px 12px;
	border-radius: 999px;
	background-color: var(--wp--preset--color--tag);
	color: var(--wp--preset--color--contrast);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.8;
	text-decoration: none;
}

/* タグ別の色：スラッグ event（イベント） */
:is(.news-item, .news-single__meta) .news-item__tag :is(a, .works-tag).term-event {
	background-color: var(--wp--preset--color--cream);
	color: #8A3A10;
}

/* 行ごとに少しずつ遅らせて表示 */
.news-list li:nth-child(2) .reveal {
	animation-delay: 0.1s;
}

.news-list li:nth-child(3) .reveal {
	animation-delay: 0.2s;
}

/* ==========================================================================
   Archive / Single: News（お知らせ一覧 archive-news.html・詳細 single-news.html）
   - 一覧の行は Front: News（.news-list / .news-item）と同じデザイン
   ========================================================================== */

.news-archive__lead {
	max-width: 720px;
}

/* 一覧：行のデザインはトップページのお知らせと同じ（.news-list / .news-item） */
.news-list--archive .wp-block-post-template {
	margin: 0;
	padding: 0;
	list-style: none;
}

/* 4行目以降は同時に表示 */
.news-list--archive li:nth-child(n+4) .reveal {
	animation-delay: 0.3s;
}

/* 共通のページ送り（margin-top: 56px）より詰める */
.news-archive .news-pagination {
	margin-top: 32px;
}

/* 詳細：日付とタグ */
.news-single__meta > * {
	margin: 0;
}

/* ==========================================================================
   Front: CTA（お問い合わせ）
   ========================================================================== */

.cta-box .cta-box__text {
	flex: 1 1 420px;
	min-width: 0;
}

.cta-tel .cta-tel__number a {
	color: inherit;
	text-decoration: none;
}

.cta-button .wp-block-button__link {
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.cta-button .wp-block-button__link:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 24px rgba(20, 33, 61, 0.2);
}

/* ==========================================================================
   Front: Works
   ========================================================================== */

.works-card {
	position: relative;
	overflow: hidden;
}

.works-card .works-card__image {
	margin: 0;
	overflow: hidden;
}

.works-card .works-card__image img {
	display: block;
	width: 100%;
}

.works-card .works-card__title a {
	color: inherit;
	text-decoration: none;
}

/* タイトルのリンクをカード全体に広げる */
.works-card .works-card__title a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.works-card .works-card__title a:focus-visible {
	outline: none;
}

.works-card:focus-within {
	outline: 2px solid var(--wp--preset--color--contrast);
	outline-offset: 2px;
}

/* ==========================================================================
   Archive: Works（開発実績一覧）
   ========================================================================== */

/* 2列。狭い画面では1列 */
.works-query .works-grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (max-width: 781px) {
	.works-query .works-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* カード：本文を縦に並べ、「詳しく見る」を下端にそろえる */
.works-query .works-card {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.works-query .works-card .works-card__image {
	margin: 0;
}

.works-query .works-card__body {
	display: flex;
	flex-direction: column;
	flex-grow: 1;
	gap: 12px;
}

.works-query .works-card__body > * {
	margin: 0;
}

.works-query .works-card__more {
	margin-top: auto;
	padding-top: 8px;
}

.works-query .wp-block-post-excerpt__excerpt {
	margin: 0;
}

/* カテゴリー・タグ（core/post-terms をラベル表示に） */
.works-card__category,
.works-card__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.works-card__category .works-tag,
.works-card__tags .works-tag {
	padding: 2px 10px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.8;
}

.works-card__category .works-tag {
	padding-inline: 12px;
	background-color: var(--wp--preset--color--cream);
	color: #8A3A10;
}

.works-card__tags .works-tag {
	background-color: var(--wp--preset--color--tag);
	color: var(--wp--preset--color--contrast);
}

:is(.works-card__category, .works-card__tags) .wp-block-post-terms__separator {
	display: none;
}

/* ページ送り（開発実績一覧・お知らせ一覧で共通） */
:is(.works-pagination, .news-pagination) {
	margin-top: 56px;
	gap: 8px;
}

:is(.works-pagination, .news-pagination) .page-numbers,
:is(.works-pagination, .news-pagination) .wp-block-query-pagination-previous,
:is(.works-pagination, .news-pagination) .wp-block-query-pagination-next {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 16px;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	color: var(--wp--preset--color--contrast);
	font-weight: 700;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}

:is(.works-pagination, .news-pagination) .page-numbers.current,
:is(.works-pagination, .news-pagination) a:hover {
	border-color: var(--wp--preset--color--contrast);
	background-color: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

:is(.works-pagination, .news-pagination) .page-numbers.dots {
	border: 0;
}

/* ==========================================================================
   Single: Works（開発実績の詳細）
   ========================================================================== */

/* ヘッダー：日付とカテゴリー */
.works-single__meta > * {
	margin: 0;
}

.works-single__category {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.works-single__category .works-tag {
	padding: 2px 12px;
	border-radius: 999px;
	background-color: var(--wp--preset--color--peach);
	color: var(--wp--preset--color--contrast);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.8;
}

.works-single__category .wp-block-post-terms__separator {
	display: none;
}

.works-lead {
	max-width: 1200px;
}

.works-lead .wp-block-post-excerpt__excerpt {
	margin: 0;
}

/* 代表的な機能・構成 */
.works-info > .works-features {
	flex: 3 1 420px;
	min-width: 0;
}

.works-info > .works-spec {
	flex: 2 1 280px;
	min-width: 0;
}

.works-features__list > .works-features__row {
	margin: 0;
	padding: 14px 0;
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.works-features__list > .works-features__row:last-child {
	border-bottom: 0;
}

/* 一覧に戻る */
.works-back .wp-block-button__link::before {
	content: "←" / "";
	margin-right: 12px;
}

/* ==========================================================================
   Block: Gallery（スタイル：スライド）
   - 横スクロール＋スクロールスナップ。ドットと「n / 全体」は gallery-slider.js
   - コアのギャラリーは :not(#individual-image) で詳細度が高いため一部 !important
   ========================================================================== */

.wp-block-gallery.has-nested-images.is-style-slider {
	flex-wrap: nowrap;
	align-items: flex-start;
	gap: 16px;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	border-radius: 20px;
}

.wp-block-gallery.has-nested-images.is-style-slider:focus-visible {
	outline: 2px solid var(--wp--preset--color--contrast);
	outline-offset: 4px;
}

/* JS が有効（ドットで操作できる）ときはスクロールバーを隠す */
.js .wp-block-gallery.has-nested-images.is-style-slider {
	scrollbar-width: none;
}

.js .wp-block-gallery.has-nested-images.is-style-slider::-webkit-scrollbar {
	display: none;
}

/* 1枚＝横幅いっぱい */
.wp-block-gallery.has-nested-images.is-style-slider figure.wp-block-image:not(#individual-image) {
	flex: 0 0 100% !important;
	width: 100% !important;
	gap: 8px;
	scroll-snap-align: start;
}

/* 画像：16:10 の枠に全体が収まるように表示（スクリーンショットが切れないように） */
.wp-block-gallery.has-nested-images.is-style-slider figure.wp-block-image:not(#individual-image) img {
	flex: none;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 10;
	padding: 10px;
	object-fit: contain;
	border-radius: 20px;
	background-color: var(--wp--preset--color--secondary);
}

/* 画像ごとのキャプション：画像の上に重ねず、下に表示 */
.wp-block-gallery.has-nested-images.is-style-slider figure.wp-block-image::before {
	content: none;
}

.wp-block-gallery.has-nested-images.is-style-slider figure.wp-block-image figcaption {
	position: static;
	max-height: none;
	padding: 0;
	background: none;
	color: var(--wp--preset--color--muted);
	font-size: 14px;
	text-align: center;
	text-shadow: none;
}

.wp-block-gallery.is-style-slider .gal-count {
	color: var(--wp--preset--color--muted);
	font-size: 14px;
	text-align: center;
}

/* ドット（番号ボタン） */
.gal-dots {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin-top: 20px;
}

.gal-dots button {
	min-width: 44px;
	min-height: 44px;
	padding: 0;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	background-color: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	font-size: 14px;
	font-weight: 700;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.gal-dots button:hover,
.gal-dots button[aria-current="true"] {
	border-color: var(--wp--preset--color--contrast);
	background-color: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

.gal-dots button:focus-visible {
	outline: 2px solid var(--wp--preset--color--contrast);
	outline-offset: 2px;
}

/* ==========================================================================
   Page: 404
   ========================================================================== */

/* 大きな「404」：紺の縁取り文字 */
.nf-num {
	margin: 0;
	font-size: clamp(96px, 20vw, 160px);
	font-weight: 900;
	line-height: 1;
	letter-spacing: 0.04em;
	color: transparent;
	-webkit-text-stroke: 2px var(--wp--preset--color--contrast);
}

.nf-text {
	max-width: 560px;
}

/* よく見られているページ：白いカード、右端に → */
.nf-links > p {
	margin: 0;
}

.nf-link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	min-height: 56px;
	padding: 16px 20px;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 16px;
	background-color: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	font-weight: 700;
	text-decoration: none;
	transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.nf-link::after {
	content: "→" / "";
	color: var(--wp--preset--color--label);
	transition: transform 0.2s ease;
}

.nf-link:hover {
	border-color: var(--wp--preset--color--contrast);
	transform: translateY(-2px);
	box-shadow: 0 8px 20px rgba(20, 33, 61, 0.08);
}

.nf-link:hover::after {
	transform: translateX(4px);
}

@media (prefers-reduced-motion: reduce) {
	.nf-link,
	.nf-link::after {
		transition: none;
	}

	.nf-link:hover,
	.nf-link:hover::after {
		transform: none;
	}
}

/* ==========================================================================
   Header
   ========================================================================== */

/* スクロール後のヘッダーの高さ（ページ内リンクや sticky 要素の位置合わせに使用）
   PC：上部バー 32px + メイン 63px + 下線 1px */
:root {
	--ooyama-header-h: 96px;
}

@media (max-width: 768px) {
	:root {
		--ooyama-header-h: 48px;
	}
}

/* ページ内リンクの移動先がヘッダーに隠れないようにずらす */
html {
	scroll-padding-top: calc(var(--ooyama-header-h) + var(--wp-admin--admin-bar--height, 0px) + 16px);
}

/*
 * スクロールしても上部に固定（sticky）
 * ※ transform / backdrop-filter はスマホのメニュー（position: fixed）の表示を壊すので使わない
 */
.wp-site-blocks > header.wp-block-template-part {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 100;
	transition: box-shadow 0.3s ease;
}

/* 600px以下は管理バーが固定されないので 0 */
@media (max-width: 600px) {
	.wp-site-blocks > header.wp-block-template-part {
		top: 0;
	}
}

/* スクロール後：影を付ける（header.js が .is-scrolled を付与） */
.wp-site-blocks > header.wp-block-template-part.is-scrolled {
	box-shadow: 0 6px 24px rgba(20, 33, 61, 0.08);
}

/*
 * スクロール後：背景をすりガラス（blur）に
 * backdrop-filter をヘッダー本体に付けるとスマホメニュー（position: fixed）が
 * ヘッダー内に閉じ込められるため、背景専用の疑似要素に付ける
 */
.site-header {
	position: relative;
	isolation: isolate;
	transition: background-color 0.3s ease;
}

.site-header::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background-color: rgba(255, 255, 255, 0.7);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	opacity: 0;
	transition: opacity 0.3s ease;
	pointer-events: none;
}

/* 背景色クラスが !important のため上書きも !important */
.is-scrolled .site-header {
	background-color: transparent !important;
}

.is-scrolled .site-header::before {
	opacity: 1;
}

/* メイン部分の高さ：PC 79px → スクロール後 63px（上部バー 32px・下線 1px は別） */
.site-header__inner {
	height: 72px;
	transition: height 0.3s ease;
}

.is-scrolled .site-header__inner {
	height: 63px;
}

.site-header .site-brand img {
	transition: width 0.3s ease;
}

.is-scrolled .site-header .site-brand img {
	width: 100px !important;
	height: auto;
}

@media (max-width: 768px) {
	/* ヘッダーの高さ：SP 48px（スクロール後も同じ） */
	.site-header__inner,
	.is-scrolled .site-header__inner {
		height: 47px;
	}

	/* 48pxに収まるようロゴを縮小（120x43 → 90x32） */
	.site-header .site-brand img,
	.is-scrolled .site-header .site-brand img {
		width: 90px !important;
		height: auto;
	}
}

@media (prefers-reduced-motion: reduce) {
	.wp-site-blocks > header.wp-block-template-part,
	.site-header__inner,
	.site-header .site-brand img {
		transition: none;
	}
}

/* PC表示：メニュー内の「お問い合わせ」（ボタンがある）と小さいリンク（上部バーにある）は非表示 */
@media (min-width: 769px) {
	.site-header .nav-contact,
	.site-header .nav-small {
		display: none;
	}
}

/* --- 上部バー（紺） --- */
.hd-top__inner {
	min-height: 32px;
}

.hd-top p {
	margin: 0;
	line-height: 1.6;
}

.hd-top a {
	color: #ffffff;
	text-decoration: none;
	transition: color 0.2s ease;
}

/* ホバー・表示中のページ（aria-current は inc/blocks.php で付与） */
.hd-top a:hover,
.hd-top a[aria-current="page"] {
	color: #f1c001;
}

/* リンクの間に縦線 */
.hd-top__nav > p + p::before {
	content: "";
	display: inline-block;
	width: 1px;
	height: 10px;
	margin: 0 12px;
	background-color: #ffffff;
	vertical-align: middle;
}

/* スマホでは上部バーを出さない（リンクはメニューの中にある） */
@media (max-width: 768px) {
	.hd-top {
		display: none;
	}
}

/* --- メインメニュー：英字ラベル＋日本語。表示中・ホバーで下に黄色の線 --- */
@media (min-width: 769px) {
	.hd-nav .hd-item > .wp-block-navigation-item__content {
		position: relative;
		display: flex;
		flex-direction: column;
		align-items: center;
		padding: 8px 14px;
		line-height: 1.4;
	}

	.hd-nav .hd-item > .wp-block-navigation-item__content::before {
		font-size: 10px;
		font-weight: normal;
		letter-spacing: 0.14em;
		color: var(--wp--preset--color--label);
	}

	.hd-nav .hd-item--company > .wp-block-navigation-item__content::before {
		content: "COMPANY" / "";
	}

	.hd-nav .hd-item--works > .wp-block-navigation-item__content::before {
		content: "WORKS" / "";
	}

	.hd-nav .hd-item--recruit > .wp-block-navigation-item__content::before {
		content: "RECRUIT" / "";
	}

	.hd-nav .hd-item--news > .wp-block-navigation-item__content::before {
		content: "NEWS" / "";
	}

	.hd-nav .hd-item > .wp-block-navigation-item__content::after {
		content: "";
		position: absolute;
		right: 14px;
		bottom: 0;
		left: 14px;
		height: 2px;
		border-radius: 2px;
		background-color: var(--wp--preset--color--accent);
		transform: scaleX(0);
		transition: transform 0.25s ease;
	}

	.hd-nav .hd-item > .wp-block-navigation-item__content:hover::after,
	.hd-nav .hd-item.current-menu-item > .wp-block-navigation-item__content::after {
		transform: scaleX(1);
	}
}

/* --- お問い合わせボタン：メールのアイコン付き --- */
.hd-btn .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 22px;
	background-color: #FFD559;
	font-size: 14px;
	font-weight: 400;
	transition: background-color 0.3s ease, color 0.3s ease;
}

/* ホバー：紺に白文字（上の背景色指定がボタン共通のホバーより強いため、ここでも指定） */
.hd-btn .wp-block-button__link:hover,
.hd-btn .wp-block-button__link:focus-visible {
	background-color: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

.hd-btn .wp-block-button__link::before {
	content: "";
	width: 18px;
	height: 18px;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%23000%27 stroke-width=%272%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Crect x=%273%27 y=%275%27 width=%2718%27 height=%2714%27 rx=%272%27/%3E%3Cpath d=%27M3 7l9 6 9-6%27/%3E%3C/svg%3E") no-repeat center / contain;
	mask: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%23000%27 stroke-width=%272%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Crect x=%273%27 y=%275%27 width=%2718%27 height=%2714%27 rx=%272%27/%3E%3Cpath d=%27M3 7l9 6 9-6%27/%3E%3C/svg%3E") no-repeat center / contain;
}

/* 768px以下：ロゴ + ハンバーガーのみ（WP標準の切替は600px未満なので上書き） */
@media (max-width: 768px) {
	/* お問い合わせボタンを非表示 */
	.site-header .wp-block-buttons {
		display: none;
	}

	/* ハンバーガーボタンを表示 */
	.site-header .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}

	/* 閉じている間はメニューを非表示 */
	.site-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: none;
	}
}

/* ==========================================================================
   展開メニュー（オーバーレイ）
   ========================================================================== */

/*
 * WP標準CSSより確実に優先させるため、すべて下記の起点から指定
 * .site-header .wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open
 */
.site-header .wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open {
	background-color: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	padding: 16px 24px 32px;
}

/* 中身を縦いっぱいに広げ、お問い合わせを最下部へ */
.site-header .wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close,
.site-header .wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog {
	display: flex;
	flex-direction: column;
	flex: 1;
	max-width: none;
	width: 100%;
	position: relative;
}

.site-header .wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	flex: 1;
	align-items: flex-start;
	padding-top: 64px;
}

/* 閉じるボタン：右上 */
.site-header .wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
	top: 8px;
	right: 0;
	left: auto;
	color: var(--wp--preset--color--contrast);
}

/* ナビゲーション：左寄せ */
.site-header .wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	flex: 1;
	width: 100%;
	align-items: flex-start;
	justify-content: flex-start;
	gap: 24px;
}

.site-header .wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	align-items: flex-start;
	font-size: 14px;
	width: 100%;
}

.site-header .wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item .wp-block-navigation-item__content {
	width: 100%;
}

/* 情報セキュリティ基本方針などの小さいリンク */
.site-header .wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open .nav-small {
	font-size: 14px;
	color: var(--wp--preset--color--muted);
}

.site-header .wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open .hd-item--news + .nav-small {
	margin-top: 8px;
	padding-top: 24px;
	border-top: 1px solid var(--wp--preset--color--line);
	width: 100%;
}

/* お問い合わせ：最下部・PCと同じボタンデザイン */
.site-header .wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open .nav-contact {
	margin-top: auto;
	width: 100%;
	align-items: stretch;
}

.site-header .wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open .nav-contact .wp-block-navigation-item__content {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 10px 20px;
	border-radius: 999px;
	background-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
	font-weight: 700;
}

/* メニュー展開：左からスライドイン */
@keyframes ooyama-menu-slide-in {
	from {
		transform: translateX(-100%);
	}
	to {
		transform: translateX(0);
	}
}

.site-header .wp-block-navigation__responsive-container.is-menu-open {
	animation: ooyama-menu-slide-in 0.35s cubic-bezier(0.22, 1, 0.36, 1) both;
}

/* 動きを減らす設定のユーザーにはアニメーションしない */
@media (prefers-reduced-motion: reduce) {
	.site-header .wp-block-navigation__responsive-container.is-menu-open {
		animation: none;
	}
}

/* ==========================================================================
   Footer
   ========================================================================== */

/* 本文とフッターの間の余白（ルートの blockGap）をなくす */
.wp-site-blocks > footer.wp-block-template-part {
	margin-block-start: 0;
}
