/*!
 * components.css — 共通コンポーネント
 *   ボタン / ヘッダー / フッター / フローティングCTA / パンくず / ページネーション / 写真プレースホルダー
 */

/* ============ 写真プレースホルダー（カンプ用・本番では画像に差替え）============ */

.ph {
	position: relative;
	background: repeating-linear-gradient(135deg, #F5EBD2, #F5EBD2 10px, #EFE0BE 10px, #EFE0BE 11px);
	border: 2px dashed var(--ink2);
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	font-family: var(--font-display);
	color: var(--ink2);
	overflow: hidden;
	flex-direction: column;
	gap: 6px;
	padding: 14px;
}
.ph::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to bottom right, transparent calc(50% - 0.5px), rgba(38, 36, 31, .12) 50%, transparent calc(50% + 0.5px));
}
.ph::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to bottom left, transparent calc(50% - 0.5px), rgba(38, 36, 31, .12) 50%, transparent calc(50% + 0.5px));
}
.ph > * {
	position: relative;
	z-index: 1;
}
.ph .ph-icon { font-size: 28px; line-height: 1; }
.ph .ph-type {
	display: inline-block;
	background: var(--ink);
	color: var(--paper);
	font-size: 10px;
	padding: 2px 8px;
	border-radius: 3px;
	letter-spacing: .05em;
}
.ph .ph-desc {
	font-size: 12px;
	color: var(--ink);
	background: rgba(255, 255, 255, .92);
	padding: 4px 10px;
	border: 1.2px solid var(--ink2);
	border-radius: 4px;
	max-width: 90%;
	line-height: 1.4;
}

/* ============ ボタン ============ */

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	font-family: var(--font-display);
	font-size: var(--fs-sm);
	padding: 9px 16px;
	border: var(--bd-w) solid var(--ink);
	box-shadow: 3px 3px 0 var(--ink);
	background: var(--paper);
	color: var(--ink);
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: transform .15s, box-shadow .15s;
}
.btn:hover {
	transform: translate(-1px, -1px);
	box-shadow: 4px 4px 0 var(--ink);
	text-decoration: none;
}
.btn:active {
	transform: translate(1px, 1px);
	box-shadow: 1px 1px 0 var(--ink);
}
/* 4 ボタン共通の色ルール（PC ヘッダー / スマホメニュー両方で統一）
   line: 緑 / tel: アンバー / contact: 濃インク / primary: オレンジ
   色被りを避けるため、お問い合わせは「フォーム送信系」の落ち着いた濃インクに */
.btn--line,
.btn.line {
	background: var(--line-green);
	color: #fff;
}
.btn--tel,
.btn.tel {
	/* 電話相談ボタン：他の CTA（詳細を見る／検索／応募する＝オレンジ）と被らないよう
	   電話専用の温かいアンバー色（--tel-yellow #FFD25C）を採用。テキストは濃インクで視認性確保。 */
	background: var(--tel-yellow);
	color: var(--ink);
}
.btn--tel:hover,
.btn.tel:hover {
	color: var(--ink);
}
.btn--contact,
.btn.contact {
	/* お問い合わせ：電話アンバーと色被りしないよう、フォーム系の落ち着いた濃インクに変更。
	   クリーム文字で視認性を確保し、ヘッダー右側で「LINE 緑／電話 黄／お問い合わせ 黒」の
	   3 色クリアな対比を作る。*/
	background: var(--ink);
	color: var(--paper);
}
.btn--contact:hover,
.btn.contact:hover {
	color: var(--paper);
}
/* フッター内ボタン共通：背景が黒（--ink）なので、ベース .btn の border(--ink) と
   box-shadow(--ink) はアンチエイリアシングで微妙に縁取られて見えてしまう。
   3 ボタン全て border / shadow を撤去し、padding で総寸法を維持する。 */
.site-footer .btn {
	border: none;
	padding: 11px 18px;  /* base padding(9 16) + 撤去 border(2 2) ぶん */
	box-shadow: none;
}
.site-footer .btn:hover {
	box-shadow: none;
	transform: translate(-1px, -1px);
}

/* フッターのお問い合わせ：ページ背景と同じクリーム色＋黒文字。
   border / shadow 撤去は上の共通ルールで実施済み。色だけ個別指定。*/
.site-footer .btn.contact,
.site-footer .btn--contact {
	background: var(--paper);
	color: var(--ink);
}
.site-footer .btn.contact:hover,
.site-footer .btn--contact:hover {
	color: var(--ink);
}
.btn--primary,
.btn.primary {
	background: var(--accent);
	color: #fff;
}
.btn--dark,
.btn.dark {
	background: var(--ink);
	color: var(--paper);
}
.btn--lg,
.btn.lg {
	padding: 14px 32px;
	font-size: var(--fs-body);
}
.btn--block,
.btn.block {
	width: 100%;
}

/* ============ ヘッダー（ロゴ＋アクション・通常スクロール）============ */

.site-header {
	background: var(--paper);
	border-bottom: 1.5px solid var(--ink3);
}

.site-header__inner {
	max-width: var(--container);
	margin: 0 auto;
	padding: 8px var(--gutter);
	display: flex;
	align-items: center;
	gap: 12px;
}

.site-logo {
	display: flex;
	align-items: center;
	gap: 2px;                 /* ロゴ画像と文字の間を最小化（PNG 余白分のスペース込み）*/
	flex-shrink: 0;
	text-decoration: none;
	color: var(--ink);
}
.site-logo:hover {
	text-decoration: none;
}
.site-logo__img {
	/* ロゴ画像（円形枠付きで作成済みのため、背景・枠・影は付けない）
	   PNG 自体に上下左右の透明余白があるため、margin で寄せる */
	width: 60px;
	height: 60px;
	display: block;
	object-fit: contain;
	flex-shrink: 0;
	margin-right: -8px;       /* 円の右側にある透明余白を詰める（文字が円のすぐ横に来る）*/
}
/* タグ自体が <img> の場合（site-logo--image 付き）は flex 内ではなくブロック画像 */
.site-logo--image {
	display: inline-flex;
	align-items: center;
}
.site-logo__name {
	/* サイト全体のデザインフォント（Yusei Magic）に統一。
	   --font-display は内部で Hiragino を 3 番目に持つフォールバックチェーンなので、
	   iOS Safari で Yusei Magic の一部 katakana グリフが欠ける場合も Hiragino に
	   フォールバックして tofu □ にはならない。 */
	font-family: var(--font-display);
	font-size: 17px;          /* 「工場求人ミツカルクン」が収まるよう 19→17 */
	line-height: 1.1;
	font-weight: 700;
	white-space: nowrap;      /* メニューに割り込まれないよう改行禁止 */
	min-width: 0;             /* flex 内で縮められるように */
}
.site-logo__name small {
	display: block;
	font-size: 10px;
	color: var(--ink2);
	font-family: var(--font-body);
	margin-top: 2px;
	white-space: nowrap;
}

.h-actions {
	display: flex;
	gap: 5px;                /* 4 ボタンになって詰まらないよう gap 6→5 */
	align-items: center;
	margin-left: auto;
	margin-right: -2px;
}
/* ヘッダー右側 4 ボタン（LINE/電話/問合せ/お気に入り）：コンパクトピル */
.h-actions .btn {
	font-size: 13px;          /* 小さすぎたので 13 に戻す */
	padding: 8px 14px;        /* 余白も少し増やして読みやすく */
	box-shadow: 2px 2px 0 var(--ink);
	gap: 5px;
}
.h-actions .btn:hover {
	box-shadow: 3px 3px 0 var(--ink);
}
.h-actions .btn:active {
	box-shadow: 1px 1px 0 var(--ink);
}

/* ============ ヘッダー内「初めての方へ」ショートカット（スマホ専用） ============ */
/* gnav タブ時の `.gnav__link--highlight` と同じ見た目に揃える：
   黄色背景 + 太字 + ✦ オレンジマーク、黒縁/影なしのシンプルなタブ風 */
.header-firsttime {
	display: none;  /* デフォルト非表示、スマホ media query で表示 */
	align-items: center;
	gap: 3px;
	margin-left: auto;
	padding: 6px 10px;
	background: var(--sticky);
	color: var(--ink);
	border: none;
	border-radius: 8px;
	font-family: var(--font-display);
	font-size: 13px;
	font-weight: bold;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color .2s;
}
.header-firsttime:hover {
	background: var(--accent);
	color: #fff;
	text-decoration: none;
}
.header-firsttime:hover .header-firsttime__icon {
	color: #fff;
}
.header-firsttime__icon {
	color: var(--accent);
	font-size: 0.9em;
}

/* ============================================================
 *  お気に入りアイコン（ヘッダー）
 *
 *   PC：お問い合わせの右に btn 風の細身ピル。星 + 「お気に入り」+ 件数
 *   SP/中間サイズ：初めての方への右に縦並びカード型（アイコン上・ラベル下）
 *
 *   件数バッジ（.__count）は data-fav-count を JS が更新する
 * ============================================================ */

/* ============================================================
 *  お気に入りアイコン（全画面共通の縦並びカード型）
 *
 *   ・PC / SP / タブレット中間サイズ どこでも同じデザイン
 *   ・星アイコン上 + 「お気に入り」ラベル下 + 件数バッジ右上
 *   ・枠線・影なしのシンプルな見た目
 *   ・件数が変わると bounce アニメーションで「ピコン」と目立つ
 * ============================================================ */
.header-fav {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0;
	padding: 2px 4px;
	min-width: 40px;
	background: transparent;
	border: none;
	box-shadow: none;
	font-family: var(--font-display);
	color: var(--ink);
	text-decoration: none;
	position: relative;
	margin-left: 4px;            /* 「初めての方へ」など隣の要素との余白 */
}
.header-fav:hover { text-decoration: none; color: var(--ink); }
.header-fav__icon {
	color: var(--accent);
	font-size: 22px;
	line-height: 1;
	transition: transform .25s;
}
.header-fav__label {
	font-size: 9px;
	font-weight: bold;
	white-space: nowrap;
	margin-top: 2px;
}
.header-fav__count {
	position: absolute;
	top: -4px;
	right: -4px;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	background: var(--accent);
	color: #fff;
	border: 1.5px solid var(--ink);
	border-radius: 999px;
	font-size: 11px;
	font-weight: bold;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
	transition: transform .25s;
}
.header-fav__count.is-empty { display: none; }

/* 件数が増えた / 減った時の「ピコン」アニメーション。
   JS が .is-pop クラスを付与 → CSS が pop 表現 → 数百 ms 後に JS が削除 */
@keyframes mk-fav-pop {
	0%   { transform: scale(1); }
	30%  { transform: scale(1.5) rotate(-6deg); }
	60%  { transform: scale(0.9) rotate(4deg); }
	100% { transform: scale(1) rotate(0); }
}
@keyframes mk-fav-bounce {
	0%   { transform: scale(1); }
	30%  { transform: scale(1.4); }
	60%  { transform: scale(0.92); }
	100% { transform: scale(1); }
}
.header-fav.is-pop .header-fav__icon  { animation: mk-fav-pop .55s ease-out; }
.header-fav.is-pop .header-fav__count { animation: mk-fav-bounce .5s ease-out; }

/* ============ ハンバーガーボタン（スマホのみ表示） ============ */
.hamburger {
	display: none;  /* PC は非表示、スマホ用 media query で表示 */
	flex-direction: column;
	align-items: center;
	gap: 2px;
	margin-left: auto;
	padding: 6px 10px;
	background: var(--paper);
	border: var(--bd-w) solid var(--ink);
	border-radius: 8px;
	cursor: pointer;
	box-shadow: 2px 2px 0 var(--ink);
	font-family: var(--font-display);
	transition: transform .15s, box-shadow .15s;
}
.hamburger:active {
	transform: translate(1px, 1px);
	box-shadow: 1px 1px 0 var(--ink);
}
.hamburger__label {
	font-size: 9px;
	font-weight: bold;
	letter-spacing: .08em;
	color: var(--ink);
}
.hamburger__lines {
	display: flex;
	flex-direction: column;
	gap: 3px;
	width: 22px;
}
.hamburger__lines span {
	display: block;
	height: 2px;
	background: var(--ink);
	border-radius: 1px;
	transition: transform .25s, opacity .25s;
}
/* メニュー開いた時：×印に変身 */
.hamburger[aria-expanded="true"] .hamburger__lines span:nth-child(1) {
	transform: translateY(5px) rotate(45deg);
}
.hamburger[aria-expanded="true"] .hamburger__lines span:nth-child(2) {
	opacity: 0;
}
.hamburger[aria-expanded="true"] .hamburger__lines span:nth-child(3) {
	transform: translateY(-5px) rotate(-45deg);
}

/* ============ モバイルメニュー（オーバーレイ） ============ */
.mobile-menu {
	position: fixed;
	inset: 0;
	z-index: 200;
	visibility: hidden;
	opacity: 0;
	transition: opacity .25s ease, visibility 0s linear .25s;
}
.mobile-menu.is-open {
	visibility: visible;
	opacity: 1;
	transition: opacity .25s ease;
}
.mobile-menu__overlay {
	position: absolute;
	inset: 0;
	background: rgba(38, 36, 31, 0.5);
}
.mobile-menu__panel {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: min(86%, 380px);
	background: var(--paper);
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	transform: translateX(100%);
	transition: transform .3s cubic-bezier(.4, .0, .2, 1);
	display: flex;
	flex-direction: column;
}
.mobile-menu.is-open .mobile-menu__panel {
	transform: translateX(0);
}

/* メニューヘッダー：ロゴ + 閉じるボタン */
.mobile-menu__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 16px;
	border-bottom: var(--bd-w) solid var(--ink);
	background: var(--paper2);
}
.mobile-menu__logo {
	display: flex;
	align-items: center;
	gap: 2px;                /* PC ヘッダーロゴと統一・PNG 余白を margin で詰める */
	color: var(--ink);
	text-decoration: none;
}
.mobile-menu__logo:hover { text-decoration: none; color: var(--ink); }
.mobile-menu__logo-icon {
	width: 38px;
	height: 38px;
	background: var(--sticky);
	border: var(--bd-w) solid var(--ink);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 18px;
}
/* ロゴ画像版（モバイルメニューヘッダー）：円形ロゴ画像をそのまま表示・装飾不要 */
.mobile-menu__logo-img {
	width: 56px;
	height: 56px;
	display: block;
	object-fit: contain;
	margin-right: -7px;      /* PNG 右側の透明余白を詰める（PC ヘッダー版と同じ仕組み）*/
}
.mobile-menu__logo-text {
	font-family: var(--font-display);
	font-size: 16px;
	line-height: 1.1;
}
.mobile-menu__logo-text small {
	display: block;
	font-size: 9px;
	color: var(--ink2);
	font-family: var(--font-body);
	margin-top: 2px;
}
.mobile-menu__close {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--paper);
	border: var(--bd-w) solid var(--ink);
	box-shadow: 2px 2px 0 var(--ink);
	font-size: 18px;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--ink);
	line-height: 1;
}
.mobile-menu__close:active {
	transform: translate(1px, 1px);
	box-shadow: 1px 1px 0 var(--ink);
}

/* CTAエリア：電話 + 派遣/LINE */
.mobile-menu__cta {
	padding: 14px 16px 16px;
	background: var(--paper2);
	border-bottom: var(--bd-w) solid var(--ink);
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.mobile-menu__tel-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	/* padding を 14px → 11px に縮めて、ドロワー上部の占有を抑える */
	padding: 11px 16px;
	background: var(--tel-yellow);
	color: var(--ink);
	border: var(--bd-w) solid var(--ink);
	border-radius: 999px;
	font-family: var(--font-display);
	font-size: 15px;
	font-weight: bold;
	box-shadow: 3px 3px 0 var(--ink);
	text-decoration: none;
}
.mobile-menu__tel-btn:hover {
	text-decoration: none;
	color: var(--ink);
}
/* 主CTA：LINE 色（緑）。電話の黄色から LINE の緑に切り替え */
.mobile-menu__tel-btn--line {
	background: var(--line-green);
	color: #fff;
}
.mobile-menu__tel-btn--line:hover { color: #fff; }
.mobile-menu__cta-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
}
.mobile-menu__sub-btn {
	display: flex;
	/* アイコン横並びに変更（縦並びは縦幅が大きすぎたため） */
	flex-direction: row;
	align-items: center;
	justify-content: center;
	gap: 6px;
	/* padding 14px → 9px に縮小（電話ボタンとのバランスも考慮） */
	padding: 9px 10px;
	background: var(--paper);
	border: var(--bd-w) solid var(--ink);
	border-radius: 999px;
	font-family: var(--font-display);
	font-size: 13px;
	font-weight: bold;
	box-shadow: 3px 3px 0 var(--ink);
	color: var(--ink);
	text-decoration: none;
	text-align: center;
}
.mobile-menu__sub-btn:hover { text-decoration: none; color: var(--ink); }
/* アイコンサイズも 22px → 16px に縮小（横並びでバランス取れる大きさに） */
.mobile-menu__sub-btn-icon { font-size: 16px; }
.mobile-menu__sub-btn--line {
	/* PC .btn.line と同じ LINE 公式色で統一 */
	background: var(--line-green);
	color: #fff;
}
.mobile-menu__sub-btn--line:hover { color: #fff; }
/* 電話サブ：旧 tel-btn と同じ黄色（主CTA を LINE に譲ったため、ここで電話色を残す）*/
.mobile-menu__sub-btn--tel {
	background: var(--tel-yellow);
	color: var(--ink);
}
.mobile-menu__sub-btn--tel:hover { color: var(--ink); }
/* 「お問い合わせ」は濃インク（PC .btn.contact と統一・電話アンバーと差別化）*/
.mobile-menu__sub-btn--apply {
	background: var(--ink);
	color: var(--paper);
}
.mobile-menu__sub-btn--apply:hover { color: var(--paper); }

/* ━━━ 便利ツール 専用枠（CTA と通常ナビの間）━━━
   外枠は使わず、見出し＋黄色背景カードのみで目立たせる（フラット）。 */
.mobile-menu__tools {
	margin: 14px 16px 18px;
}
.mobile-menu__tools-head {
	font-family: var(--font-display);
	font-size: 12px;
	font-weight: bold;
	color: var(--ink2, #5C5648);
	margin-bottom: 6px;
	letter-spacing: .04em;
}
.mobile-menu__tools-card {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 14px 14px;
	background: var(--sticky, #FFE98A);     /* 一枚カードで黄色背景＝即目に入る */
	border-radius: 8px;
	text-decoration: none;
	color: var(--ink, #26241F);
	transition: filter .12s;
}
/* カードが2枚並ぶので間隔を空ける */
.mobile-menu__tools-card + .mobile-menu__tools-card { margin-top: 8px; }
/* ゲームは便利ツールと色を変えて、遊べるコンテンツだと一目で分かるようにする */
.mobile-menu__tools-card--game {
	background: #FFDCB0;
	box-shadow: inset 0 0 0 1.5px var(--accent, #FF8B3D);
}
.mobile-menu__tools-card:hover,
.mobile-menu__tools-card:active {
	filter: brightness(.95);
	color: var(--ink, #26241F);
	text-decoration: none;
}
.mobile-menu__tools-card-ico {
	font-size: 24px;
	flex-shrink: 0;
}
.mobile-menu__tools-card-body {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.mobile-menu__tools-card-title {
	font-family: var(--font-display);
	font-size: 14px;
	font-weight: bold;
	line-height: 1.3;
}
.mobile-menu__tools-card-desc {
	font-size: 11px;
	color: var(--ink2, #5C5648);
	line-height: 1.4;
}
.mobile-menu__tools-card-arrow {
	font-size: 20px;
	color: var(--ink, #26241F);
	font-weight: bold;
	flex-shrink: 0;
}

/* ナビゲーション縦リスト */
.mobile-menu__nav {
	flex: 1;
}
.mobile-menu__nav ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.mobile-menu__nav li {
	border-bottom: 1.5px solid var(--ink3);
}
.mobile-menu__nav a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 18px;
	color: var(--ink);
	font-family: var(--font-display);
	font-size: 15px;
	text-decoration: none;
}
.mobile-menu__nav a:hover {
	background: var(--paper2);
	text-decoration: none;
	color: var(--ink);
}
/* 現在ページのインジケータ：左にオレンジ太線 + 文字を太字 + 薄い背景。
   PC ヘッダー gnav の下線と同等の役割を、リスト式のモバイルメニューでも表現。 */
.mobile-menu__nav-item.is-current > a {
	border-left: 4px solid var(--accent);
	background: var(--paper2);
	font-weight: bold;
	padding-left: 14px;  /* 元の 18px から border 4px ぶん減らして文字位置を維持 */
}
.mobile-menu__nav-item.is-current > a:hover {
	background: var(--paper2);
}
.mobile-menu__chevron {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--accent);
	color: #fff;
	font-size: 16px;
	font-family: var(--font-display);
	line-height: 1;
}

/* スクロール固定（メニュー開放中は body の縦スクロール停止） */
body.has-mobile-menu-open {
	overflow: hidden;
}
/* メニュー開放中はフローティングボタン（求人検索 / LINE・電話バー）を隠す
   メニュー UI と被って邪魔になるのを防ぐ */
body.has-mobile-menu-open .float-cta,
body.has-mobile-menu-open .float-search {
	opacity: 0;
	pointer-events: none;
	visibility: hidden;
}

/* ============ グローバルナビ（タブ・sticky）============ */

.gnav {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--paper);
	border-bottom: var(--bd-w) solid var(--ink);
	box-shadow: 0 4px 0 rgba(38, 36, 31, .06);
}

.gnav__inner {
	max-width: var(--container);
	margin: 0 auto;
	padding: 14px var(--gutter);
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;       /* 18px → 12px：項目8個でも余裕で収まる */
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}
.gnav__inner::-webkit-scrollbar {
	display: none;
}

.gnav a {
	color: var(--ink);
	font-family: var(--font-display);
	font-size: 16px;
	text-decoration: none;
	padding: 8px 12px;
	border-radius: 8px;
	position: relative;
	white-space: nowrap;
	flex-shrink: 0;
	transition: color .15s, background-color .2s, transform .15s;
}
/* ホバー時：背景塗りつぶしではなく、文字下にオレンジの下線を出すだけのシンプルな反応に。
   is-current（現在ページ）と同じ下線スタイルだが、太字は付けないので区別できる。 */
.gnav a:hover {
	text-decoration: underline;
	text-decoration-color: var(--accent);
	text-decoration-thickness: 3px;
	text-underline-offset: 6px;
	color: var(--ink);
	background: transparent;
}
.gnav a:active {
	transform: translateY(0);
}
/* 現在ページ判定：3 ルートで is-current を反映する（多重保険）：
 *   ① PHP fallback で <a class="is-current"> を吐く
 *   ② wp_nav_menu 使用時は <li class="current-menu-item">
 *   ③ JS（initGnavCurrent）が URL マッチで <a class="is-current"> を後付け
 *
 * 下線は text-decoration で文字の真下にストレートに引く（border-radius の影響を受けない）。 */
.gnav a.is-current,
.gnav .current-menu-item > a,
.gnav .current_page_item > a {
	text-decoration: underline;
	text-decoration-color: var(--accent);
	text-decoration-thickness: 3px;
	text-underline-offset: 6px;
	font-weight: bold;
}

/* 「初めての方へ」を控えめに強調：薄黄色背景＋太字＋小さなインジケーター */
.gnav__link--highlight {
	background: var(--sticky);
	font-weight: bold;
}
.gnav__link--highlight::before {
	content: "✦";
	display: inline-block;
	margin-right: 4px;
	color: var(--accent);
	font-size: 0.85em;
}
/* 「初めての方へ」のホバー時も、通常項目と同じく「オレンジ下線のみ」に統一。
   通常時の薄黄色背景はそのまま保持して、強調状態を維持する。 */
.gnav__link--highlight:hover {
	background: var(--sticky);   /* 通常時の黄色背景を維持（オレンジ塗りは廃止）*/
	color: var(--ink);
}
.gnav__link--highlight:hover::before {
	color: var(--accent);        /* ✦ 印もオレンジのまま */
}

/* ============ パンくず ============ */

.crumb {
	max-width: var(--container);
	margin: 0 auto;
	padding: 14px var(--gutter) 0;
	font-family: var(--font-display);
	font-size: 12px;
	color: var(--ink2);
}
.crumb a {
	color: var(--ink2);
	text-decoration: none;
}
.crumb a:hover {
	text-decoration: underline;
}
.crumb .sep {
	margin: 0 8px;
	color: var(--ink3);
}
.crumb .cur {
	color: var(--ink);
}

/* ============ フッター ============ */

.site-footer {
	background: var(--ink);
	color: var(--paper2);
	padding: 56px var(--gutter) 24px;
	margin-top: 60px;
}

/* ============ ① イントロ：ロゴ + 説明 + CTA ============ */
.site-footer__intro {
	max-width: 900px;
	margin: 0 auto 40px;
	text-align: center;
	padding-bottom: 36px;
	border-bottom: 1px solid var(--ink2);
}
.site-footer .f-logo {
	font-family: var(--font-display);
	font-size: 32px;
	margin: 0 0 8px;
	color: var(--paper);
	font-weight: bold;
}
.site-footer .f-tagline {
	font-family: var(--font-display);
	font-size: 13px;
	color: var(--paper2);
	margin: 0 0 22px;
}
.site-footer .f-desc {
	font-size: 13px;
	line-height: 1.9;
	color: var(--ink3);
	margin: 0 auto 28px;
	max-width: 780px;
	text-align: left;
}
.site-footer .f-cta {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 14px;
}
.site-footer .f-cta .btn {
	min-width: 160px;
}

/* ============ ② 4 列ナビ ============ */
.site-footer__inner {
	max-width: var(--container);
	margin: 0 auto 40px;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 32px;
}
.site-footer h6 {
	font-family: var(--font-display);
	font-size: 14px;
	color: var(--paper);
	margin: 0 0 16px;
	border-left: 3px solid var(--accent);
	padding-left: 10px;
	font-weight: bold;
}
.site-footer ul {
	list-style: none;
	padding: 0;
	margin: 0;
	font-family: var(--font-display);
	font-size: 12px;
}
.site-footer ul li {
	margin-bottom: 10px;
	display: flex;
	align-items: center;
	gap: 6px;
}
.site-footer .f-col ul li::before {
	content: "›";
	color: var(--accent);
	font-family: var(--font-display);
	font-size: 14px;
	line-height: 1;
}
.site-footer ul a {
	color: var(--ink3);
	text-decoration: none;
}
.site-footer ul a:hover {
	color: var(--paper);
	text-decoration: underline;
}

/* 運営会社ブロック */
.site-footer .f-company__name {
	font-family: var(--font-display);
	font-size: 13px;
	color: var(--paper);
	margin-bottom: 10px;
	font-weight: bold;
}
.site-footer .f-company__address {
	font-size: 12px;
	color: var(--ink3);
	line-height: 1.7;
	margin-bottom: 16px;
}

/* SNS アイコン群 */
.site-footer .f-sns {
	display: flex !important;
	gap: 8px;
	margin: 0;
	padding: 0;
}
.site-footer .f-sns li {
	margin: 0;
}
.site-footer .f-sns li::before {
	display: none;
}
.f-sns__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border: 1.5px solid var(--ink3);
	border-radius: 50%;
	overflow: hidden;
	color: var(--paper2);
	font-family: var(--font-display);
	font-size: 11px;
	font-weight: bold;
	text-decoration: none;
	transition: background .15s, border-color .15s, color .15s, transform .15s;
}
.f-sns__icon:hover {
	background: var(--accent);
	border-color: var(--accent);
	color: #fff;
	text-decoration: none;
}
/* アイコン画像を設定したとき：画像を丸枠いっぱいに表示（枠線・ホバー背景は不要） */
.f-sns__icon--img {
	border-color: transparent;
	background: transparent;
}
.f-sns__icon--img:hover {
	background: transparent;
	border-color: transparent;
	transform: translateY(-2px);
}
.f-sns__icon img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* ============ ③ 下部：法的リンク + コピーライト ============ */
.site-footer__bottom {
	max-width: var(--container);
	margin: 0 auto;
	padding-top: 20px;
	border-top: 1px solid var(--ink2);
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 20px;
	flex-wrap: wrap;
}
.f-legal {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	gap: 18px;
	font-family: var(--font-display);
	font-size: 11px;
}
.f-legal li::before { display: none; }
.f-legal li { margin: 0; }
.f-legal a {
	color: var(--ink3);
	text-decoration: none;
}
.f-legal a:hover {
	color: var(--paper);
	text-decoration: underline;
}
.site-footer__copy {
	font-family: var(--font-display);
	font-size: 11px;
	color: var(--ink3);
}

/* ============ フローティングCTA（右下）============ */

/* フォーム入力中はキーボードと被るので一時的に隠す
 *   ・スマホ／PC 共通：input/textarea/select にフォーカスがあると body に
 *     .is-form-focus が付き、float 系を完全非表示
 *   ・focusout 時は JS 側で 80ms 後に再確認して解除（別欄移動時にチラつかない）
 */
body.is-form-focus .float-cta,
body.is-form-focus .float-search,
body.is-form-focus .float-top {
	display: none !important;
}

/* FAQ「もっと見る」ボタンが視界に入ってきたら、右下の追尾ボタン群を
   一時的にフェードアウト（重なって押しにくくなるのを防ぐ）。
   ボタンから離れて上下にスクロールすると元に戻る。
   ※ .float-top.is-visible との詳細度勝負があるので .is-visible も含めて上書き。 */
body.is-near-faq-more .float-cta,
body.is-near-faq-more .float-search,
body.is-near-faq-more .float-top,
body.is-near-faq-more .float-top.is-visible {
	opacity: 0;
	pointer-events: none;
}

.float-cta {
	position: fixed;
	right: 20px;
	bottom: 20px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	z-index: 90;
	/* is-near-faq-more 時のフェード用 */
	transition: opacity .25s ease;
}
.fbtn {
	width: 70px;
	height: 70px;
	border-radius: 50%;
	border: var(--bd-w-thick) solid var(--ink);
	font-family: var(--font-display);
	font-size: 11px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	box-shadow: var(--shadow);
	text-align: center;
	line-height: 1.2;
	gap: 2px;
	text-decoration: none;
	color: var(--ink);
	transition: transform .15s, box-shadow .15s;
}
/* タッチデバイスでは :hover が「初回タップで hover、二回目でクリック」になり
   反応が悪く感じるので、ホバー可能なデバイスのみ hover スタイルを適用 */
@media (hover: hover) and (pointer: fine) {
	.fbtn:hover {
		transform: translate(-1px, -1px);
		box-shadow: 5px 5px 0 var(--ink);
		text-decoration: none;
	}
}
.fbtn .ico {
	font-size: 20px;
}
.fbtn--line,
.fbtn.line {
	background: var(--line-green);
	color: #fff;
}
.fbtn--tel,
.fbtn.tel {
	/* PC .btn.tel / モバイルメニュー電話受付ボタンと同じアンバーで統一 */
	background: var(--tel-yellow);
	color: var(--ink);
}

/* ===== 追尾CTA：1ボタン版（無料相談はこちら・緑）===== */
/* PC（〜1279px）：右下の緑ピル（円形ではなく横長）。.fbtn の円形指定を上書き */
.fbtn.fbtn--solo {
	width: auto;
	height: auto;
	border-radius: 999px;
	flex-direction: row;
	gap: 9px;
	padding: 14px 22px;
	background: var(--line-green);
	color: #fff;
	font-size: 15px;
	font-weight: bold;
	white-space: nowrap;
}
.fbtn--solo__icons { display: inline-flex; align-items: center; gap: 5px; }
.fbtn--solo__icons svg { width: 19px; height: 19px; display: block; }
.fbtn--solo__hand svg { width: 20px; height: 20px; display: block; }
.fbtn--solo__hand { display: inline-flex; transform: scaleX(-1); }  /* 指先を文字側（左）に向ける */

/* ============ フローティング「求人検索」丸ボタン ============ */
/* 画面右下に常時表示、押すと #search-section へスムーズスクロール
   PC: LINE/電話 ボタン（縦並び 2 個、合計 ~160px）の上に配置するため bottom: 190px
   配置順（下から）: LINE(20-90) → 電話(100-170) → 求人検索(190-262) */
.float-search {
	position: fixed;
	bottom: 190px;
	right: 14px;
	width: 72px;
	height: 72px;
	border-radius: 50%;
	background: var(--sticky);
	border: var(--bd-w-thick) solid var(--ink);
	color: var(--ink);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 2px;
	font-family: var(--font-display);
	font-size: 11px;
	line-height: 1.15;
	box-shadow: none;
	text-decoration: none;
	text-align: center;
	z-index: 95;
	/* opacity も transition に含めて、is-near-faq-more 時の表示/非表示が滑らかに */
	transition: transform .15s, opacity .25s ease;
}
@media (hover: hover) and (pointer: fine) {
	.float-search:hover {
		transform: translate(-1px, -1px);
		text-decoration: none;
		color: var(--ink);
	}
}
.float-search__icon {
	font-size: 22px;
	line-height: 1;
}
.float-search__label {
	font-weight: bold;
}

/* PC のみ：求人詳細で「相談する」丸ボタン（#jd-apply へ）。
   詳細に戻るボタン（.float-search）の上に積む配置。SP では非表示。
   2026-07-09 追加 */
.float-consult { display: none; }
@media (min-width: 769px) {
	.float-consult {
		position: fixed;
		right: 14px;
		/* PC (single-job) の右カラム積み上げ順（下から）:
		   詳細に戻る (60-132) → TOP (156-208) → お気に入り (232-284) → 【NEW】相談する (296-368) */
		bottom: 296px;
		width: 72px;
		height: 72px;
		border-radius: 50%;
		background: var(--line-green);
		border: var(--bd-w-thick) solid var(--ink);
		color: #fff;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 2px;
		font-family: var(--font-display);
		font-size: 11px;
		font-weight: bold;
		line-height: 1.15;
		white-space: nowrap;
		box-shadow: none;
		text-decoration: none;
		text-align: center;
		z-index: 95;
		transition: transform .15s, opacity .25s ease;
		animation: float-consult-pulse 2.4s ease-in-out infinite;
	}
	@media (hover: hover) and (pointer: fine) {
		.float-consult:hover {
			transform: translate(-1px, -1px);
			background: var(--line-dark);
			color: #fff;
			text-decoration: none;
		}
	}
	.float-consult__icon { font-size: 22px; line-height: 1; }
	.float-consult__label { font-weight: bold; }
}
@keyframes float-consult-pulse {
	0%, 100% { transform: translate(0, 0); }
	50%      { transform: translate(-1px, -1px); }
}
/* .float-consult 表示中は関連の追尾抑制フックにも同調させる */
body.is-form-focus .float-consult,
body.is-near-faq-more .float-consult { opacity: 0; pointer-events: none; }
body.has-mobile-menu-open .float-consult { opacity: 0; pointer-events: none; }

/* ============ 戻るボタン（フルスクリーン起動時のみ）============
 *   ホーム画面に追加して開くと URL バーが消え、iOS ではブラウザの戻るボタンが
 *   無くなる。その代替として画面左下に出す。
 *   ・通常のブラウザ閲覧では非表示 → 今までの見た目は一切変わらない
 *   ・右側の追従ボタン群とは反対側なので、増えても衝突しない
 *   ・トップページは戻り先が無いので非表示
 */
.float-back { display: none; }

html.mk-standalone .float-back {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1px;
	position: fixed;
	left: 8px;
	bottom: 78px;              /* 下端バー(56) + 余白(22) の上 */
	width: 48px;
	height: 48px;
	padding: 0;
	border-radius: 50%;
	background: var(--paper);
	border: var(--bd-w-thick) solid var(--ink);
	color: var(--ink);
	font-family: var(--font-display);
	font-size: 9px;
	font-weight: bold;
	line-height: 1;
	cursor: pointer;
	z-index: 96;
	box-shadow: none;
	-webkit-tap-highlight-color: transparent;
	transition: transform .15s ease, background .15s ease;
}
html.mk-standalone .float-back:active {
	transform: scale(.94);
	background: var(--sticky);
}
/* 「‹」は CSS で描く（絵文字・画像を使わない） */
.float-back__ico {
	width: 9px;
	height: 9px;
	border-left: 2.5px solid currentColor;
	border-bottom: 2.5px solid currentColor;
	transform: rotate(45deg);
	margin-left: 3px;          /* 回転で右にずれる分を戻す */
	margin-bottom: 1px;
}
/* 下端の LINE バーがあるページでは、その上に逃がす。
   ※ body.has-float-cta は footer 側で登録していて <body> 出力に間に合っておらず
      当てにならないため、JS が付ける html.mk-has-bottombar を基準にする。 */
html.mk-standalone.mk-has-bottombar .float-back { bottom: 78px; }
/* トップページは戻り先が無いので出さない */
html.mk-standalone body.home .float-back { display: none; }

@media (min-width: 769px) {
	html.mk-standalone .float-back { left: 14px; width: 52px; height: 52px; font-size: 10px; }
	html.mk-standalone.mk-has-bottombar .float-back { bottom: 60px; }
}
@media (max-width: 480px) {
	html.mk-standalone .float-back { left: 6px; width: 44px; height: 44px; }
}

/* ============ ホーム画面に追加バー（LINE 誘導のすぐ上に載せる）============
 *   ・JS が html.mk-install-open を付けた時だけ表示
 *   ・下端の LINE バーがある時は、その真上に重ねて置く
 *   ・× で閉じたら二度と出さない（localStorage）
 */
.mk-install { display: none; }

html.mk-install-open .mk-install {
	display: flex;
	align-items: center;
	gap: 9px;
	position: fixed;
	left: 0; right: 0;
	bottom: 0;
	z-index: 101;              /* 下端バー(100)より前面 */
	padding: 8px 10px 8px 12px;
	background: var(--ink);
	color: var(--paper);
	font-family: var(--font-display);
	font-size: 12.5px;
	line-height: 1.35;
	box-shadow: 0 -2px 10px rgba(0,0,0,.16);
}
/* 下端バーがあるページでは、そのぶん持ち上げる */
html.mk-install-open.mk-has-bottombar .mk-install {
	bottom: calc(56px + env(safe-area-inset-bottom));
}
/* 下端バーが無いページでは自分がホームインジケーターを避ける */
html.mk-install-open:not(.mk-has-bottombar) .mk-install {
	padding-bottom: calc(8px + env(safe-area-inset-bottom));
}
.mk-install__txt { flex: 1; min-width: 0; }
.mk-install__txt strong { color: var(--sticky); font-weight: bold; }

/* スマホのホーム画面を模した小さいアイコン（画像を使わず CSS で描く） */
.mk-install__ico {
	position: relative;
	width: 22px; height: 30px;
	flex-shrink: 0;
	border: 2px solid var(--paper);
	border-radius: 5px;
}
.mk-install__ico::before {
	content: "";
	position: absolute;
	left: 50%; top: 50%;
	width: 10px; height: 10px;
	background: var(--sticky);
	border-radius: 2px;
	transform: translate(-50%, -50%);
}

.mk-install__btn {
	flex-shrink: 0;
	padding: 7px 15px;
	background: var(--sticky);
	color: var(--ink);
	border-radius: 999px;
	font-size: 12.5px;
	font-weight: bold;
	text-decoration: none;
	white-space: nowrap;
}
.mk-install__btn:hover { text-decoration: none; color: var(--ink); }
/* バーの高さぶん、ぶつかる右下ボタンを持ち上げる。
   バーは TOP ページ限定なので body.home に絞る。
   （body.home .float-search と同じ詳細度だと負けるので html 側のクラスも重ねる） */
@media (max-width: 768px) {
	html.mk-install-open body.home .float-search { bottom: 62px; }
	html.mk-install-open body.home .float-top    { bottom: 138px; }
	html.mk-install-open body.home .float-fav    { bottom: 200px; }
}
@media (max-width: 480px) {
	html.mk-install-open body.home .float-top { bottom: 134px; }
	html.mk-install-open body.home .float-fav { bottom: 190px; }
}

@media (min-width: 769px) {
	/* PC では追従バーを出さない。
	   ホーム画面に追加はスマホの機能で、PC では出しても行動につながらないうえ、
	   常時居座って邪魔になるため。PC はフッター直前のセクションだけで案内する。 */
	html.mk-install-open .mk-install { display: none; }
}
@media (max-width: 360px) {
	html.mk-install-open .mk-install { font-size: 11.5px; gap: 7px; padding-left: 10px; }
	.mk-install__btn { padding: 6px 12px; font-size: 11.5px; }
}

/* 求人アーカイブページ専用：絞り込み検索ボタン（少し目立つ）。
   色はベースと同じ黄色のまま、ゆっくり脈打つアニメで気付かせる */
.float-search--filter {
	animation: float-search-pulse 2.4s ease-in-out infinite;
}
@keyframes float-search-pulse {
	0%, 100% {
		transform: translate(0, 0);
	}
	50% {
		transform: translate(-1px, -1px);
	}
}

/* ============ TOP に戻るボタン ============
 *   求人詳細・ピックアップ詳細では「常時表示」して消さない。
 *   汎用ページ（求人一覧など）ではスマホでのみ表示する。
 *   配置は ☆お気に入り（上）/ TOP（中間）/ 対応ボタン（下）の縦並び。
 */
.float-top {
	display: none;  /* デフォルト非表示。下記メディアクエリで個別に表示 */
}
@media (max-width: 768px) {
	.float-top {
		display: flex;
		position: fixed;
		right: 8px;
		bottom: 152px;  /* .float-search (bottom 72, 60h → 72-132) の上に積む */
		width: 48px;
		height: 48px;
		border-radius: 50%;
		background: rgba(38, 36, 31, 0.55);
		border: 1.5px solid rgba(255, 255, 255, 0.28);
		color: #fff;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 1px;
		font-family: var(--font-display);
		font-size: 9px;
		font-weight: bold;
		line-height: 1;
		text-decoration: none;
		cursor: pointer;
		padding: 0;
		z-index: 94;
		opacity: 0;            /* お気に入りと同じく途中から現れる方式に */
		pointer-events: none;
		transform: translateY(8px);
		transition: opacity .2s ease, transform .2s ease;
		-webkit-backdrop-filter: blur(8px);
		backdrop-filter: blur(8px);
		-webkit-tap-highlight-color: transparent;
	}
	.float-top.is-visible {
		opacity: 1;
		pointer-events: auto;
		transform: translateY(0);
	}
	.float-top:active {
		background: rgba(38, 36, 31, 0.75);
	}
}
.float-top__icon {
	font-size: 11px;
	line-height: 1;
}
.float-top__label {
	letter-spacing: .04em;
}
/* 小さい画面：対応ボタンが少し小さくなるので位置も合わせて調整。 */
@media (max-width: 480px) {
	.float-top {
		right: 6px;
		bottom: 140px;     /* .float-search (bottom 64, 56h → 64-120) の上 */
		width: 44px;
		height: 44px;
	}
}

/* ============ HOME 専用：スマホでフローティングボタンを下げる ============
 *   HOME は縦に長く、ボタンが中央近くでコンテンツを覆ってしまうので、
 *   下端寄りに移動する。他のページの位置は変更しない。
 *   かつ TOP / 求人検索 が互いに重ならないよう間隔を確保。
 */
@media (max-width: 768px) {
	body.home .float-search {
		bottom: 16px;          /* 下端ギリギリ（バーありページではバーと重なるが HOME は下端バー無しを想定）*/
	}
	body.home .float-top {
		bottom: 92px;          /* float-search(top:16+60=76) の上に 16px 空けて積む */
	}
}
@media (max-width: 480px) {
	body.home .float-top {
		bottom: 88px;          /* float-search(top:16+60=76) の上に 12px */
	}
}

/* ============ 求人詳細・ピックアップ詳細：対応ボタン（float-search）を一番下に ============
 *   配置順（上から下）：☆ お気に入り → TOP → 対応ボタン
 *   ・対応ボタン（float-search）は通常 bottom 190px だが、TOP / お気に入りより下に置きたいので
 *     body.single-job / single-pickup の時だけ下端寄せに上書き
 *   ・スマホでは下端に LINE/電話 の固定バー（56px）があるので、その上に積む
 */
@media (max-width: 768px) {
	/* 詳細ページの .float-search は has-float-cta デフォルト(72) より少し上(78)に。
	   has-float-cta 系セレクタ と同じ特異性 (0,2,1) で source order でも勝てるよう、
	   class を合成して特異性を上げておく (0,3,1) */
	body.single-job.has-float-cta .float-search,
	body.single-pickup.has-float-cta .float-search,
	body.single-job .float-search,
	body.single-pickup .float-search {
		bottom: 78px;        /* 下端バー (56) + 余白 (22) の上 */
		width: 60px;
		height: 60px;
		font-size: 10px;
	}
}
@media (min-width: 769px) {
	body.single-job .float-search,
	body.single-pickup .float-search {
		bottom: 60px;        /* PC は下端バーがないが、ぴったり下端だと押しにくいので少し浮かす */
	}
	/* 769〜1279px の中間サイズで、LINE/電話 追従バー（PC 縦並び）がない
	   ページ（TOP / 一覧系）では .float-search が高い位置（190px）に
	   浮いて見えるので、下端寄りに下ろす（ただし押しやすい高さは確保） */
	body:not(.has-float-cta) .float-search {
		bottom: 60px;
	}
}

/* ============ PC でも TOP に戻るボタンを表示 ============
 *   ページが縦に長くなることが多いので、PC でもスクロール時に TOP に戻れた方が便利。
 *   ・バーなしページ（TOP / 一覧系）：.float-cta がそもそも無いので .float-top を表示可
 *   ・求人詳細・ピックアップ詳細：bar あり扱いだが .float-search が下端寄せに上書きされるので表示可
 *   ・1280px+：CSS で .float-cta を強制 display:none にしているので全ページ表示可
 *   逆に 769〜1279px で「バーありの一般ページ（FAQ/お問合せ等）」では .float-cta（PC 縦並び）が
 *   右下に居座るので .float-top を出すと重なる → そのケースのみ非表示のまま。
 */
@media (min-width: 769px) {
	body:not(.has-float-cta) .float-top,
	body.single-job .float-top,
	body.single-pickup .float-top {
		display: flex;
		position: fixed;
		right: 14px;
		bottom: 156px;        /* .float-search (bottom 60, 72h → 60-132) の上に 24px 空けて積む */
		width: 52px;
		height: 52px;
		border-radius: 50%;
		background: rgba(38, 36, 31, 0.55);
		border: 1.5px solid rgba(255, 255, 255, 0.28);
		color: #fff;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 1px;
		font-family: var(--font-display);
		font-size: 9px;
		font-weight: bold;
		line-height: 1;
		opacity: 0;          /* お気に入りと同様、スクロール時にフェードイン */
		pointer-events: none;
		transition: opacity .2s ease;
		-webkit-backdrop-filter: blur(8px);
		backdrop-filter: blur(8px);
		cursor: pointer;
		padding: 0;
		z-index: 94;
	}
	body:not(.has-float-cta) .float-top.is-visible,
	body.single-job .float-top.is-visible,
	body.single-pickup .float-top.is-visible {
		opacity: 1;
		pointer-events: auto;
	}
}
/* 1280px+ では .float-cta が強制非表示なので、バーありページでも TOP ボタン表示可 */
@media (min-width: 1280px) {
	body.has-float-cta .float-top {
		display: flex;
		position: fixed;
		right: 14px;
		bottom: 156px;
		width: 52px;
		height: 52px;
		border-radius: 50%;
		background: rgba(38, 36, 31, 0.55);
		border: 1.5px solid rgba(255, 255, 255, 0.28);
		color: #fff;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 1px;
		font-family: var(--font-display);
		font-size: 9px;
		font-weight: bold;
		line-height: 1;
		opacity: 0;
		pointer-events: none;
		transition: opacity .2s ease;
		-webkit-backdrop-filter: blur(8px);
		backdrop-filter: blur(8px);
		cursor: pointer;
		padding: 0;
		z-index: 94;
	}
	body.has-float-cta .float-top.is-visible {
		opacity: 1;
		pointer-events: auto;
	}
}

/* ============ お気に入り追従ボタン（求人詳細・ピックアップ詳細）============
 *   配置：縦並びの「一番上」（☆ → TOP → 対応ボタン）。
 *   円形・アイコンのみ・シャドウなしのフラットな見た目。
 *   ・初期は非表示。.is-visible（スクロール 320px 超で JS が付与）でフェードイン
 *   ・登録済みは白 → 黒に反転（求人へ戻るとは色被りしない）
 */
.float-fav {
	position: fixed;
	right: 8px;
	bottom: 214px;           /* SP：TOP (152) + 48 + 14 = 214 で TOP の上 */
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--paper);
	border: 1.8px solid var(--ink);
	color: var(--ink);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	padding: 0;
	z-index: 94;
	box-shadow: none;        /* シャドウなし（指定通り） */
	opacity: 0;
	pointer-events: none;
	transform: translateY(8px);
	transition: opacity .2s ease, transform .2s ease, background .15s;
	-webkit-tap-highlight-color: transparent;
}
.float-fav.is-visible {
	opacity: 1;
	pointer-events: auto;
	transform: translateY(0);
}
.float-fav:hover {
	transform: translate(-1px, -1px);
}
.float-fav__icon {
	font-size: 22px;
	color: var(--accent);
	line-height: 1;
}
/* 登録済み：白 → 黒 の明確な反転。★ はオレンジのまま目立たせる */
.float-fav.is-active {
	background: var(--ink);
	border-color: var(--ink);
}
.float-fav.is-active .float-fav__icon {
	color: var(--accent);
}
@media (min-width: 769px) {
	.float-fav {
		right: 14px;
		bottom: 232px;       /* PC：TOP (156, 52h → 156-208) の上に 24px 空けて積む */
		width: 52px;
		height: 52px;
	}
	.float-fav__icon { font-size: 22px; }
}
@media (max-width: 480px) {
	.float-fav {
		right: 6px;
		bottom: 200px;       /* SP（〜480px）：TOP の上、下端バー + α */
		width: 44px;
		height: 44px;
	}
	.float-fav__icon { font-size: 20px; }
}

/* ============ ページネーション ============ */

.pagination {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 8px;
	margin: 40px auto;
	font-family: var(--font-display);
}
.pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 12px;
	background: var(--paper);
	border: var(--bd-w-thick) solid var(--ink);
	border-radius: var(--radius);
	text-decoration: none;
	color: var(--ink);
	box-shadow: var(--shadow-sm);
	font-size: 14px;
}
.pagination .page-numbers.current {
	background: var(--accent);
	color: #fff;
}
.pagination a.page-numbers:hover {
	transform: translate(-1px, -1px);
	box-shadow: 3px 3px 0 var(--ink);
	text-decoration: none;
}
.pagination .page-numbers.dots {
	border: none;
	box-shadow: none;
	background: transparent;
}

/* ============ レスポンシブ ============ */

/* ============ PC（≥769px）：ヘッダーとgnavを同じ行に統合 + スクロール追尾 ============ */
/* topbar は site-header と gnav を包む div。PC では sticky で画面上端に追尾。
   gnav は topbar 内で absolute 配置することで、site-header と同じ行に重ねる */

@media (min-width: 1280px) {
	.topbar {
		position: sticky;
		top: 0;
		z-index: 100;
		background: var(--paper);
		/* gnav の absolute 参照点 */
	}
	/* PC（1280px以上）ではヘッダー内の h-actions に LINE/電話/お問い合わせがあるので、
	   右下のフローティング LINE/電話バーは不要 → 完全非表示 */
	.float-cta { display: none; }
	/* 求人検索ボタンは PC でも残す。LINE/電話 が消えたぶん下端寄りに配置
	   （ただし下端ピッタリだと押しにくいので 60px 浮かせて TOP との間隔も確保） */
	.float-search { bottom: 60px; }
	.site-header__inner {
		padding: 15px var(--gutter);  /* ロゴ46px + padding30px = ヘッダー高さ76px */
		position: relative;
		z-index: 2;
		pointer-events: none;  /* 中央の空白はクリックを下の gnav に通す */
	}
	.site-header__inner > * {
		pointer-events: auto;  /* ロゴとボタンは普通にクリックできる */
	}
	.gnav {
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		height: 76px;  /* site-header の高さに合わせる */
		z-index: 1;
		background: transparent;
		border: none;
		box-shadow: none;
		display: flex;
		align-items: center;
	}
	.gnav__inner {
		max-width: var(--container);
		margin: 0 auto;
		/* 左：ロゴ用 300px、右：LINE/お問合せ + 🔰初めて + ★お気に入り の 4 ボタン用 420px */
		padding: 0 420px 0 300px;
		height: auto;
		gap: 12px;
	}

	/* PC でも 「初めての方へ」 を 🔰 アイコン + 下にラベル の縦並びカード型で表示
	   （★ お気に入りの左隣に配置） */
	.header-firsttime {
		display: inline-flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 0;
		padding: 2px 4px;
		min-width: 40px;
		background: transparent;
		border: none;
		border-radius: 0;
		font-family: var(--font-display);
		font-weight: bold;
		color: var(--ink);
		margin-left: 4px;
		white-space: nowrap;
	}
	.header-firsttime__icon {
		font-size: 22px;
		line-height: 1;
		color: inherit;
	}
	.header-firsttime__label {
		font-size: 9px;
		font-weight: bold;
		margin-top: 2px;
		white-space: nowrap;
	}
	/* ナビ項目：適度な可読性を維持 */
	.gnav a {
		font-size: 15px;          /* 14 → 15 で読みやすく */
		padding: 7px 10px;
	}
	.gnav a.is-current::after,
	.gnav .current-menu-item > a::after,
	.gnav .current_page_item > a::after {
		bottom: -6px;
	}
}

/* ============================================================
 *  タブレット中間サイズ（769〜1279px）：ヘッダーをモバイル UI に切替
 *
 *   この幅では PC ヘッダー（ロゴ + gnav 7 項目 + 3 ボタン）が
 *   どうやっても収まらず重なって崩れるので、ハンバーガー UI に統一する。
 *   本文（コンテンツ）は PC レイアウトのままで OK。
 *
 *   ・「初めての方へ」は SP と同じく MENU の左隣にぴったり並べる
 *     （margin-left:auto + gap:8px で右端に集約）
 * ============================================================ */
@media (min-width: 769px) and (max-width: 1279px) {
	/* gnav と右ボタン群を非表示、代わりにハンバーガーと「初めての方へ」を表示 */
	.gnav         { display: none; }
	.h-actions    { display: none; }
	.hamburger    { display: inline-flex; }
	.header-firsttime { display: inline-flex; }

	/* sticky 追尾は維持 */
	.topbar {
		position: sticky;
		top: 0;
		z-index: 100;
		background: var(--paper);
	}
	/* SP と同じ詰まり方にして、「初めての方へ」をハンバーガーの隣にキープ */
	.site-header__inner {
		padding: 6px 14px;
		gap: 8px;
	}
	/* ハンバーガーは「初めての方へ」のすぐ右隣に。
	   デフォルト .hamburger { margin-left: auto } のまま放置すると
	   「初めての方へ」と「MENU」の間に大きな隙間ができてしまう */
	.hamburger {
		margin-left: 8px;
	}
}

@media (max-width: 768px) {
	.site-header__inner {
		padding: 6px 14px;
		gap: 8px;
	}
	.site-logo__img {
		width: 38px;
		height: 38px;
		font-size: 18px;
	}
	.site-logo__name {
		font-size: 14px;        /* 「工場求人ミツカルクン」がスマホ幅でも収まるよう更に縮小 */
		white-space: normal;    /* nowrap だと横スクロール発生 → スマホでは改行許可に戻す */
	}
	.site-logo__name small {
		font-size: 9px;
		white-space: normal;    /* 同上：スマホは折り返し OK */
	}
	/* スマホでは LINE/電話ボタンを隠して、代わりにハンバーガーを表示 */
	.h-actions { display: none; }
	.hamburger { display: inline-flex; }

	/* スマホでは gnav 完全非表示（タブメニューはモバイルメニュー内に集約）
	   代わりに「初めての方へ」だけ site-header に表示 */
	.gnav { display: none; }

	/* スマホでは "初めての方へ" を ★ お気に入りと同じ縦並びアイコン+ラベル形式に。
	   黄色背景タブは PC/タブレットだけ、SP はアイコンのみで省スペース */
	.header-firsttime {
		display: inline-flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 0;
		padding: 2px 4px;
		min-width: 40px;
		background: transparent;     /* 黄色背景 OFF */
		border: none;
		border-radius: 0;
		font-family: var(--font-display);
		font-weight: bold;
		color: var(--ink);
		margin-left: auto;
		white-space: nowrap;
	}
	.header-firsttime__icon {
		font-size: 22px;             /* ★ お気に入りアイコンと同サイズ */
		line-height: 1;
		color: inherit;              /* 🔰 絵文字なので color 無効・サイズだけ揃える */
	}
	.header-firsttime__label {
		font-size: 9px;
		font-weight: bold;
		margin-top: 2px;
		white-space: nowrap;
	}

	/* スマホでもヘッダーを常に上部追尾 */
	.topbar {
		position: sticky;
		top: 0;
		z-index: 100;
		background: var(--paper);
	}

	/* ハンバーガーをアイコンサイズくらいにコンパクト化（ロゴ径 38px と揃える） */
	.hamburger {
		padding: 3px 4px;
		gap: 1px;
		width: 44px;
		height: 38px;
		box-sizing: border-box;
		box-shadow: 1.5px 1.5px 0 var(--ink);
		margin-left: 8px;  /* 初めての方へボタンとの間隔 */
	}
	.hamburger__label {
		font-size: 8px;
		letter-spacing: .04em;
	}
	.hamburger__lines {
		width: 18px;
		gap: 2px;
	}
	.hamburger__lines span {
		height: 1.5px;
	}
	/* 開いた時の × 変身位置もコンパクト化に合わせて再計算 */
	.hamburger[aria-expanded="true"] .hamburger__lines span:nth-child(1) {
		transform: translateY(3.5px) rotate(45deg);
	}
	.hamburger[aria-expanded="true"] .hamburger__lines span:nth-child(3) {
		transform: translateY(-3.5px) rotate(-45deg);
	}

	/* FV 表示中はフローティングだけ隠す（ヘッダーは常時表示） */
	.float-cta,
	.float-search {
		opacity: 0;
		pointer-events: none;
		transition: opacity .25s ease, transform .25s ease;
	}
	body.is-scrolled .float-cta,
	body.is-scrolled .float-search {
		opacity: 1;
		pointer-events: auto;
	}
	/* float-cta はバー型なので少し下からスライドイン */
	.float-cta {
		transform: translateY(100%);
	}
	body.is-scrolled .float-cta {
		transform: translateY(0);
	}
	/* スマホ：フッターをコンパクトに */
	.site-footer { padding: 40px var(--gutter) 20px; }
	.site-footer__intro {
		margin-bottom: 32px;
		padding-bottom: 28px;
	}
	.site-footer .f-logo { font-size: 24px; }
	.site-footer .f-tagline { font-size: 12px; }
	.site-footer .f-desc { font-size: 12px; line-height: 1.8; }
	.site-footer .f-cta {
		flex-direction: column;
		gap: 10px;
	}
	.site-footer .f-cta .btn { width: 100%; min-width: 0; }
	.site-footer__inner {
		grid-template-columns: 1fr 1fr;
		gap: 24px;
		margin-bottom: 28px;
	}
	.site-footer__bottom {
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
	}
	.f-legal {
		flex-wrap: wrap;
		gap: 12px;
	}

	/* スマホ：画面下端固定の横並びバーに変更（PC の縦並び円形ボタンを完全置き換え）*/
	.float-cta {
		right: 0;
		bottom: 0;
		left: 0;
		flex-direction: row;
		gap: 0;
		padding: 0;
		padding-bottom: env(safe-area-inset-bottom);  /* iOS ホームインジケーター対応 */
		background: var(--paper);
		border-top: 2px solid var(--ink);
		z-index: 100;
	}
	.fbtn {
		flex: 1;
		width: auto;
		height: 56px;
		border-radius: 0;
		border: none;
		box-shadow: none;
		font-size: 15px;
		flex-direction: row;
		gap: 8px;
		opacity: 1;
		text-decoration: none;
	}
	.fbtn.line {
		border-right: 1.5px solid var(--ink);
	}
	.fbtn:hover {
		transform: none;       /* PC のホバー浮き効果を解除 */
		box-shadow: none;
	}
	.fbtn:active {
		opacity: 0.85;
	}
	.fbtn .ico { font-size: 20px; }
	.fbtn__label { line-height: 1.2; }
	/* スマホでは <br> を消して 1 行表示 */
	.fbtn__label br { display: none; }

	/* 追尾CTA 1ボタン版（スマホ）：緑の全幅バー */
	.fbtn.fbtn--solo {
		width: auto;
		height: 56px;
		border-radius: 0;
		padding: 0 16px;
		gap: 10px;
		font-size: 16px;
		background: var(--line-green);
		color: #fff;
		justify-content: center;
	}
	.fbtn--solo__icons svg { width: 21px; height: 21px; }
	.fbtn--solo__hand svg { width: 22px; height: 22px; }

	/* ページ下端のコンテンツがフローティングに隠れないよう余白を確保 */
	body {
		padding-bottom: 56px;
	}
	/* スマホ：バー有無に関わらず統一して bottom 72px に。
	   バーありページではバー(56)のすぐ上、バーなしページでもタップしやすい高さで浮く */
	.float-search {
		bottom: 72px;
		right: 8px;
		width: 60px;
		height: 60px;
		font-size: 10px;
	}
	.float-search__icon { font-size: 18px; }
	/* 絞り込み検索を開いていて、かつサイドバー自体が「画面内にある」時だけ、
	   フローティング検索ボタンを隠す（重なり回避）。
	   ユーザーが下にスクロールしてサイドバー（.ja-side）が視界外になったら、
	   .is-out-of-view クラスが JS で付与されるので float-search は再表示される。 */
	body:has(.ja-side.is-open:not(.is-out-of-view)) .float-search--filter {
		display: none;
	}
}

@media (max-width: 480px) {
	.site-footer__inner {
		grid-template-columns: 1fr;
	}
	.h-actions .btn { padding: 7px 10px; font-size: 11px; }
	/* 480px ではバーをほんの少しコンパクトに */
	.fbtn {
		height: 52px;
		font-size: 15px;
		gap: 6px;
	}
	.fbtn .ico { font-size: 18px; }
	body { padding-bottom: 52px; }
	.float-search {
		bottom: 64px;     /* バー有無に関わらず統一（バーありなら(52)の上、なくても押しやすい高さ） */
		right: 6px;
		width: 56px;
		height: 56px;
		font-size: 9.5px;
	}
	.float-search__icon { font-size: 16px; }
}

/* ============ WordPress 管理バーが表示中の sticky ヘッダー位置調整 ============
 *   WP の管理バーは position:fixed なので、sticky な .topbar が
 *   そのまま top:0 だと管理バーの後ろに被って見切れてしまう。
 *
 *   管理バーの高さは画面幅で変わる：
 *     ・≥ 783px : 32px（PC）
 *     ・601〜782px : 46px（タブレット系、fixed のまま）
 *     ・≤ 600px : 46px だが position:absolute に切替（スクロールで上に流れる）
 *
 *   600px 以下は管理バーが追従しないので、こちらは top:0 のままで OK。
 */
@media (min-width: 783px) {
	body.admin-bar .topbar {
		top: 32px;
	}
}
@media (min-width: 601px) and (max-width: 782px) {
	body.admin-bar .topbar {
		top: 46px;
	}
}

/* ============================================================
 *  お気に入りボタン（共通：求人カード / 特集の関連求人カードなど）
 *
 *   ・data-fav-slug 付きの button をクリックで localStorage トグル
 *   ・JS が is-active クラスを付与 → CSS が見た目を切替
 *   ・「☆ お気に入り」/「★ 登録済み」のテキスト 2 つを HTML に入れて、
 *     CSS の display で切り替える方式（状態切替がシンプル）
 *
 *   ※ かつて job-archive.css にあったが、特集ページ等にも適用されるよう
 *     共通の components.css へ移動。
 * ============================================================ */
.ja-card__fav-text     { display: inline; }
.ja-card__fav-text-on  { display: none; }
.ja-card__fav.is-active .ja-card__fav-text    { display: none; }
.ja-card__fav.is-active .ja-card__fav-text-on { display: inline; }
/* 登録済み：白 → 黒 の明確な反転で「押した感」を演出。
   ★ は accent（オレンジ）のままで状態がはっきり伝わる */
.ja-card__fav.is-active {
	background: var(--ink);
	border-color: var(--ink);
	color: #fff;
	font-weight: bold;
}
.ja-card__fav.is-active:hover {
	background: #1d1d1d;
	color: #fff;
}

/* ============================================================
 *  Skip to Content（アクセシビリティ）
 *
 *   キーボード操作（Tab）でフォーカスされた時だけ画面左上に表示。
 *   通常時は視覚的には見えないが、スクリーンリーダーは読み上げる。
 *   #main-content にジャンプすることで「ヘッダーを毎回スキップして読む」
 *   負担を減らす（特にスクリーンリーダー利用者）。
 * ============================================================ */
.skip-to-content {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 999;
	padding: 10px 16px;
	background: var(--ink);
	color: var(--paper);
	font-family: var(--font-display);
	font-size: 14px;
	font-weight: bold;
	text-decoration: none;
	border-radius: 0 0 6px 0;
}
.skip-to-content:focus {
	left: 0;
	outline: 3px solid var(--accent);
	outline-offset: 2px;
}

/* ============================================================
 *  iOS Safari 自動ズーム回避（サイト全体共通）
 *
 *   iOS Safari は input / textarea の font-size が 16px 未満の時、
 *   フォーカスするとページ全体を自動でズームしてしまう。
 *   一度ズームすると元の倍率に戻らない（pinch out が必要）ので UX が悪い。
 *
 *   ここで全てのテキスト系 input / textarea / select に 16px を強制し、
 *   ページ単位の CSS（column / faq など）で 12-14px が指定されていても
 *   スマホ表示時のみ 16px にして自動ズームを発火させない。
 *
 *   ※ 各ページ CSS の見た目を保つため、PC（≥ 769px）には適用しない。
 * ============================================================ */
@media (max-width: 768px) {
	input[type="search"],
	input[type="text"],
	input[type="email"],
	input[type="tel"],
	input[type="number"],
	input[type="password"],
	input[type="url"],
	input[type="date"],
	textarea,
	select {
		font-size: 16px;
	}
}

/* ============================================================
 *  公式LINE 友だち追加 誘導（フッター直前・全ページ共通）
 *    .line-cta : 設定 → サイト設定 → 📱LINE誘導 で文言/画像を編集
 * ============================================================ */
.line-cta {
	background: linear-gradient(180deg, #E9F7EE 0%, var(--paper, #FAF6EC) 100%);
	border-top: 2px solid var(--ink, #26241F);
	padding: 52px var(--gutter, 28px);
}
.line-cta__inner {
	max-width: 1000px;
	margin: 0 auto;
	background: #fff;
	border: 2.5px solid var(--ink, #26241F);
	border-radius: 18px;
	overflow: hidden;
	/* PC：横長2カラム。画像は比率を保ったまま少し小さめ・縦中央。文章に干渉しないよう本文側を広めに。 */
	display: grid;
	grid-template-columns: 1fr 1.05fr;
	align-items: center;
}
/* 画像エリア：枠の比率は PHP 側で「アップ画像の実寸比」に合わせる（既定は 16:10）。
   object-fit: contain で画像全体を表示＝切り抜き（見切れ）なし。比率一致時は余白も出ない。 */
.line-cta__media {
	aspect-ratio: 16 / 10;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(160deg, #06C755 0%, #04A347 100%);
}
/* 画像が設定されているとき：比率は画像のまま（高さ自動）。PC は少し内側に余白を取り、本文と干渉させない。 */
.line-cta__media--has-img {
	aspect-ratio: auto;           /* プレースホルダ用の 16:10 をリセット＝画像の自然な比率に */
	background: #fff;
	padding: 18px;                /* PC：画像を少し小さく＆余白で本文と分離 */
}
.line-cta__img {
	width: 100%;
	height: auto;                 /* 比率を保ったまま（縦伸びなし） */
	display: block;
	border-radius: 10px;
}
.line-cta__ph {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	color: #fff;
	text-align: center;
	font-family: var(--font-display);
}
.line-cta__ph-ico { font-size: 56px; line-height: 1; }
.line-cta__ph-txt { font-size: 16px; font-weight: bold; line-height: 1.5; }
.line-cta__body {
	padding: 20px 26px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 7px;
}
.line-cta__tag {
	align-self: flex-start;
	display: inline-flex;
	align-items: center;
	background: #06C755;
	color: #fff;
	font-family: var(--font-display);
	font-weight: bold;
	font-size: 12px;
	letter-spacing: .02em;
	padding: 5px 14px;
	border-radius: 999px;
}
.line-cta__title {
	font-family: var(--font-display);
	font-size: 20px;
	font-weight: bold;
	line-height: 1.3;
	color: var(--ink, #26241F);
	margin: 2px 0 0;
	letter-spacing: -.01em;
	overflow-wrap: anywhere;
	word-break: break-word;
}
.line-cta__lead {
	font-family: var(--font-display);
	font-size: 12.5px;
	color: var(--ink2, #5C5648);
	line-height: 1.55;
	margin: 0;
}
.line-cta__benefits {
	list-style: none;
	margin: 2px 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.line-cta__benefit {
	font-family: var(--font-display);
	font-size: 12.5px;
	font-weight: bold;
	color: var(--ink, #26241F);
	background: #F1FAF3;
	border-radius: 8px;
	padding: 6px 11px;
	line-height: 1.4;
	border-left: 4px solid #06C755;
}
.line-cta__btn {
	margin-top: 4px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	background: #06C755;
	color: #fff;
	font-family: var(--font-display);
	font-weight: bold;
	font-size: 16px;
	padding: 12px 26px;
	border-radius: 999px;
	text-decoration: none;
	box-shadow: 0 5px 0 #05933e;
	transition: transform .12s, box-shadow .12s, background .12s;
}
.line-cta__btn:hover {
	background: #05b54e;
	color: #fff;
	text-decoration: none;
	transform: translateY(3px);
	box-shadow: 0 2px 0 #05933e;
}
.line-cta__btn-ico { font-size: 20px; line-height: 1; }
.line-cta__btn-arrow { font-weight: bold; }
.line-cta__note {
	font-family: var(--font-display);
	font-size: 12px;
	color: var(--ink3, #9C927E);
	margin: 2px 0 0;
	text-align: center;
}
@media (max-width: 768px) {
	.line-cta { padding: 38px 16px; }
	/* スマホ：縦積み（画像16:10を上・本文を下） */
	.line-cta__inner { grid-template-columns: 1fr; }
	.line-cta__media { aspect-ratio: 16 / 10; }
	/* スマホは画像を全幅・余白なしのまま（現状維持） */
	.line-cta__media--has-img { aspect-ratio: auto; padding: 0; }
	.line-cta__img { border-radius: 0; }
	.line-cta__body { padding: 24px 20px 26px; gap: 11px; }
	.line-cta__title { font-size: 21px; line-height: 1.4; }
	.line-cta__lead { font-size: 13px; line-height: 1.75; }
	.line-cta__benefits { gap: 8px; }
	.line-cta__benefit { font-size: 13.5px; padding: 9px 13px; }
	.line-cta__btn { font-size: 17px; padding: 15px 26px; width: 100%; }
}

/* ============ ページネーション：モバイル簡素化 ============
   モバイル(≤600px)では：
     ・番号は現在ページ ±1（3個）だけ表示（PHP側で is-mobile-hide 付与）
     ・ボタンサイズを縮めて1列に収める
   デスクトップは10個グループ式のまま。
   UIは記号統一（« 最初 / ‹ 前 / 数字 / › 次 / » 最後）。 */
@media (max-width: 600px) {
	.ja-pager .is-mobile-hide,
	.pu-pager .is-mobile-hide,
	.cl-pager .is-mobile-hide {
		display: none !important;
	}
	/* ボタンを小さくして1列に収まりやすく */
	.ja-pager,
	.pu-pager,
	.cl-pager {
		gap: 4px !important;
		flex-wrap: nowrap !important;
		justify-content: center !important;
	}
	.ja-pager .page-numbers,
	.pu-pager .pu-pager__num,
	.pu-pager .pu-pager__nav,
	.cl-pager .cl-pager__btn {
		min-width: 34px !important;
		height: 34px !important;
		padding: 0 6px !important;
		font-size: 13px !important;
	}
}

/* =========================================================================
   HOME：ホーム画面に追加のすすめ（section-pwa.php）— 2026-07-09
   便利ツール・ゲームの記録が端末に残ることと合わせて短く訴求する。
   すでにホーム画面から起動している人には出さない。
   ========================================================================= */
.mk-pwa {
	padding: 48px 16px;
	background: linear-gradient(180deg, #FFF6E4 0%, var(--paper) 100%);
}
html.mk-standalone .mk-pwa { display: none; }

.mk-pwa__inner {
	max-width: 940px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: minmax(0, 440px) minmax(0, 1fr);
	gap: 30px;
	align-items: center;
}
.mk-pwa__visual { min-width: 0; }
.mk-pwa__visual-link { display: block; transition: transform .15s ease; }
.mk-pwa__visual-link:hover { transform: translateY(-2px); }
.mk-pwa__visual img {
	width: 100%;
	height: auto;
	display: block;
	border: 2.5px solid var(--ink);
	border-radius: 16px;
}
/* 画像が入るまでの仮置き枠（バナー比 2:1） */
.mk-pwa__ph {
	aspect-ratio: 2 / 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	background: var(--paper2);
	border: 2.5px dashed var(--ink2);
	border-radius: 16px;
	color: var(--ink3);
	text-align: center;
	font-family: var(--font-display);
}
.mk-pwa__ph-tag {
	padding: 3px 14px;
	background: var(--sticky);
	color: var(--ink);
	border: 1.5px solid var(--ink);
	border-radius: 999px;
	font-size: 11px;
	font-weight: bold;
}
.mk-pwa__ph-txt { font-size: 13px; line-height: 1.7; }
.mk-pwa__ph-txt small { font-size: 11px; }

.mk-pwa__body { min-width: 0; }
.mk-pwa__eyebrow {
	display: inline-block;
	padding: 3px 14px;
	background: var(--paper);
	border: 1.5px solid var(--accent);
	border-radius: 999px;
	color: var(--accent);
	font-family: var(--font-display);
	font-size: 12px;
	font-weight: bold;
	letter-spacing: .1em;
	margin-bottom: 12px;
}
.mk-pwa__title {
	font-family: var(--font-display);
	font-size: clamp(20px, 3.4vw, 27px);
	line-height: 1.45;
	color: var(--ink);
	margin: 0 0 18px;
}
.mk-pwa__title mark {
	background: linear-gradient(transparent 58%, var(--sticky) 58%);
	color: inherit;
	padding: 0 2px;
}

.mk-pwa__list { list-style: none; margin: 0 0 22px; padding: 0; display: grid; gap: 12px; }
.mk-pwa__item { min-width: 0; }
/* 1行分のレイアウト。リンクの場合も同じ形にそろえる */
.mk-pwa__row {
	display: grid;
	grid-template-columns: 34px 1fr;
	gap: 11px;
	align-items: start;
}
/* 押せる行だけ、下線と矢印で区別する */
a.mk-pwa__row--link {
	color: inherit;
	text-decoration: none;
	border-radius: 10px;
	padding: 4px 6px;
	margin: -4px -6px;
	transition: background .15s ease;
}
a.mk-pwa__row--link:hover { background: rgba(255, 139, 61, .10); color: inherit; text-decoration: none; }
a.mk-pwa__row--link strong { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1.5px; }
.mk-pwa__caret { color: var(--accent); margin-left: 5px; font-weight: bold; }
.mk-pwa__item-ico { font-size: 24px; line-height: 1.2; text-align: center; }
.mk-pwa__item-txt { font-size: 13.5px; line-height: 1.7; color: var(--ink2); }
.mk-pwa__item-txt strong { display: inline-block; color: var(--ink); font-family: var(--font-display); font-size: 15px; }

.mk-pwa__actions { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
/* 追加ボタン（.mk-install__btn の挙動を共有しつつ、見た目はこちらで上書き） */
.mk-pwa__btn.mk-install__btn {
	padding: 14px 30px;
	background: var(--accent);
	color: #fff;
	border: 2.5px solid var(--ink);
	border-radius: 999px;
	box-shadow: 4px 4px 0 var(--ink);
	font-family: var(--font-display);
	font-size: 15.5px;
	text-decoration: none;
	transition: transform .15s ease, box-shadow .15s ease;
}
.mk-pwa__btn.mk-install__btn:hover {
	color: #fff;
	transform: translate(-2px, -2px);
	box-shadow: 6px 6px 0 var(--ink);
}
.mk-pwa__link {
	font-family: var(--font-display);
	font-size: 13.5px;
	color: var(--ink2);
	text-decoration: underline;
	text-underline-offset: 3px;
}

@media (max-width: 768px) {
	.mk-pwa { padding: 34px 14px; }
	.mk-pwa__inner { grid-template-columns: 1fr; gap: 20px; }
	.mk-pwa__visual { width: 100%; max-width: 400px; margin: 0 auto; }
	.mk-pwa__title { margin-bottom: 14px; }
	.mk-pwa__list { gap: 10px; margin-bottom: 18px; }
	.mk-pwa__row { grid-template-columns: 30px 1fr; gap: 9px; }
	.mk-pwa__item-ico { font-size: 21px; }
	.mk-pwa__item-txt { font-size: 12.5px; }
	.mk-pwa__item-txt strong { font-size: 14px; }
	.mk-pwa__actions { justify-content: center; gap: 12px; }
	.mk-pwa__btn.mk-install__btn { width: 100%; text-align: center; padding: 14px 20px; }
	.mk-pwa__link { display: block; width: 100%; text-align: center; }
}

/* ── PC のみ：LINE 誘導セクションと同じ「白い箱で囲む」見せ方に合わせる（2026-07-29）──
   .line-cta__inner と同じ 2.5px 枠・角丸18px・白背景。
   箱が枠の役目を持つので、画像側の枠線は外す（二重線になるため）。
   ボタンも .line-cta__btn と同じ寸法・同じ下方向3D影にそろえる。
   スマホは箱で囲むと窮屈なので従来のまま。 */
@media (min-width: 769px) {
	.mk-pwa__inner {
		max-width: 1000px;
		background: #fff;
		border: 2.5px solid var(--ink);
		border-radius: 18px;
		overflow: hidden;
		grid-template-columns: 1fr 1.05fr;
		gap: 0;
		align-items: center;
	}
	.mk-pwa__visual { padding: 18px; }
	.mk-pwa__visual img {
		border: none;          /* 箱の枠と二重になるので消す */
		border-radius: 10px;
	}
	.mk-pwa__body { padding: 20px 26px; }

	/* ボタン：LINE 側と同じ寸法・同じ押し込み表現。
	   LINE 側は本文カラム幅いっぱいに伸びるので、こちらも幅をそろえる。 */
	.mk-pwa__actions { display: block; }
	.mk-pwa__btn.mk-install__btn {
		display: flex;
		width: 100%;
		padding: 12px 26px;
		font-size: 16px;
		border: none;
		box-shadow: 0 5px 0 #C2611A;
		transition: transform .12s, box-shadow .12s, background .12s;
	}
	.mk-pwa__btn.mk-install__btn:hover {
		background: var(--accent2);
		transform: translateY(3px);
		box-shadow: 0 2px 0 #C2611A;
	}
}
