/*
Theme Name: Coat Seiden
Theme URI: https://coat-seiden.com/
Description: 株式会社コートせいでん 専用テーマ（2026年リニューアル版）。レイアウト・文字・余白・写真比率を黄金比（1:1.618）で設計。
Author: 株式会社コートせいでん
Version: 1.34.4
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: coat-seiden
*/

/* =========================================================
   基本設定
   ---------------------------------------------------------
   黄金比 φ = 1.618 を基準にしたデザインルール
   ・文字サイズ … 16px を基準に √φ（1.272）ずつ拡大
                  12.5 / 16 / 20 / 26 / 33 / 42 / 54 / 68
   ・余白       … 16px を基準に φ 倍ずつ
                  6 / 10 / 16 / 26 / 42 / 68 / 110 / 178
   ・行間       … 本文 φ（1.618）、見出し √φ（1.272）
   ・レイアウト … 2カラムは 1.618 : 1（61.8% : 38.2%）
   ・写真       … 横 1.618 : 縦 1 の黄金長方形
   ========================================================= */
:root {
	--phi: 1.618;
	--phi-inv: .618;

	/* 文字サイズ（16 × √φ^n） */
	--t-1: 12.5px;
	--t0: 16px;
	--t1: 20px;
	--t2: 26px;
	--t3: 33px;
	--t4: 42px;
	--t5: 54px;
	--t6: 68px;

	/* 余白（16 × φ^n） */
	--s1: 6px;
	--s2: 10px;
	--s3: 16px;
	--s4: 26px;
	--s5: 42px;
	--s6: 68px;
	--s7: 110px;
	--s8: 178px;

	/* 角丸 */
	--r1: 10px;
	--r2: 16px;
	--r3: 26px;

	/* 行間 */
	--lh-body: 1.618;
	--lh-head: 1.272;

	/* コーポレートカラー（ロゴの緑）を基調にした配色 */
	--brand: #408886;        /* ロゴの緑（公式） */
	--brand-strong: #347270; /* 白文字をのせる面・ボタン用（読みやすさ確保） */
	--brand-dark: #275754;
	--brand-text: #2F6866;   /* 小さな緑文字用 */
	--brand-soft: #9CCBC4;
	--deep: #1C3F3C;
	--ground: #F4F5F1;
	--ground-2: #E3ECE9;
	--ink: #172322;
	--ink-2: #3A4645;
	--muted: #5A6664;
	--line: rgba(23, 35, 34, .18);
	--accent: var(--brand-strong);
	--accent-dark: var(--brand-dark);
	--accent-soft: var(--brand-soft);
	--yellow: #CDB88E;
	--teal: #7FB5AD;
	--white: #FFFFFF;
	--font-serif: 'Shippori Mincho B1', 'Hiragino Mincho ProN', 'Yu Mincho', serif;
	--font-sans: 'Zen Kaku Gothic New', 'Hiragino Kaku Gothic ProN', 'Yu Gothic', sans-serif;
	--font-en: 'Syne', 'Zen Kaku Gothic New', sans-serif;
	--ease: cubic-bezier(.16, 1, .3, 1);

	/* 幅：本文エリア 1184px（= 1280 − 余白48×2）。読み物幅はその 61.8% */
	--wrap: 1280px;
	--gutter: 48px;
	--read: 732px;
	--golden: 1.618fr 1fr;
	--golden-r: 1fr 1.618fr;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	background: var(--ground);
	color: var(--ink);
	font-family: var(--font-sans);
	font-size: var(--t0);
	line-height: var(--lh-body);
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}
img, video { max-width: 100%; height: auto; display: block; }
a { color: var(--accent); text-decoration: none; transition: color .3s; }
a:hover { color: var(--accent-dark); }
h1, h2, h3, h4 { margin: 0; }
p { margin: 0; }
.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}
.wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gutter); }

/* =========================================================
   アニメーション（時間も 0.618 / 1 / 1.618 秒の黄金比）
   ========================================================= */
@keyframes cs-rise { from { opacity: 0; transform: translateY(42px); } to { opacity: 1; transform: none; } }
@keyframes cs-grow { from { transform: scaleY(0); } to { transform: scaleY(1); } }
@keyframes cs-drift { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@keyframes cs-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes cs-spin { to { transform: rotate(360deg); } }
@keyframes cs-line { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes cs-clip { from { clip-path: inset(100% 0 0 0 round 26px); } to { clip-path: inset(0 0 0 0 round 26px); } }
@keyframes cs-zoom { from { transform: scale(1.272); } to { transform: scale(1.06); } }

.rise { opacity: 0; animation: cs-rise 1s var(--ease) forwards; }
.d1 { animation-delay: .1s; } .d2 { animation-delay: .236s; } .d3 { animation-delay: .382s; }
.d4 { animation-delay: .5s; } .d5 { animation-delay: .618s; }

/* スクロールで現れる（JSで .is-in を付与） */
.reveal { opacity: 0; transform: translateY(var(--s6)); transition: opacity 1s var(--ease), transform 1.618s var(--ease); }
.reveal.is-in { opacity: 1; transform: none; }
.no-js .reveal { opacity: 1; transform: none; }

/* ---------------------------------------------------------
   トップページのスクロール演出（main.js が fx-* の印を付ける）
   時間は .382 / .618 / 1 / 1.618 秒の黄金比
   --------------------------------------------------------- */
/* 見出しのまとまり：箱ごとではなく、中身が順番に現れる */
.reveal.fx-head { opacity: 1; transform: none; }
.fx-head .eyebrow { opacity: 0; letter-spacing: .8em; transition: opacity 1s var(--ease), letter-spacing 1.618s var(--ease); }
.fx-head :is(.sec-title, .line-feature__title, .flow__title) {
	clip-path: inset(0 0 100% 0); transform: translateY(.4em);
	transition: clip-path 1s var(--ease) .15s, transform 1s var(--ease) .15s;
}
.fx-head .fx-sub { opacity: 0; transform: translateY(var(--s4)); transition: opacity 1s var(--ease) .382s, transform 1.618s var(--ease) .382s; }
.fx-head.is-in .eyebrow { opacity: 1; letter-spacing: .3em; }
.fx-head.is-in :is(.sec-title, .line-feature__title, .flow__title) { clip-path: inset(-10% 0 -20% 0); transform: none; }
.fx-head.is-in .fx-sub { opacity: 1; transform: none; }

/* 動画・写真：横からカーテンを開くように現れ、中の映像は拡大から引く */
.reveal.fx-media { opacity: 1; transform: none; clip-path: inset(0 0 0 100% round var(--r3)); transition: clip-path 1.2s var(--ease); }
.reveal.fx-media.fx-from-left { clip-path: inset(0 100% 0 0 round var(--r3)); }
.reveal.fx-media.is-in { clip-path: inset(0 0 0 0 round var(--r3)); }
.fx-media > :is(video, img), .fx-media .photo-slot > :is(video, img) { transform: scale(1.18); transition: transform 1.618s var(--ease); }
.fx-media.is-in > :is(video, img), .fx-media.is-in .photo-slot > :is(video, img) { transform: none; }
.line-feature__clip.fx-media.is-in:hover video { transform: scale(1.04); }

/* 事業紹介のカード：浮かび上がりながら写真が拡大から引く */
.card.reveal .card__photo > :is(img, video) { transform: scale(1.18); }
.card.reveal.is-in .card__photo > :is(img, video) { transform: none; }
.card.reveal.is-in:hover .card__photo > :is(img, video) { transform: scale(1.06); }

/* 横から寄ってくる（強みの一覧・会社概要の見出しと内容） */
.reveal.fx-left { transform: translateX(calc(var(--s6) * -1)); }
.reveal.fx-right { transform: translateX(var(--s6)); }
.reveal.fx-left.is-in, .reveal.fx-right.is-in { transform: none; }

/* 選考の流れ：各ステップの上の線が左から順に引かれる */
.fx-head .flow__steps li { border-top-color: transparent; background: linear-gradient(var(--accent), var(--accent)) left top / 0 2px no-repeat; transition: background-size 1s var(--ease); }
.fx-head.is-in .flow__steps li { background-size: 100% 2px; }
.fx-head .flow__steps li:nth-child(2) { transition-delay: .236s; }
.fx-head .flow__steps li:nth-child(3) { transition-delay: .472s; }
.fx-head .flow__steps li:nth-child(4) { transition-delay: .708s; }

/* 写真・動画の色味：落ち着いた上品な色（鮮やかさを抑え、明暗の差を少しやわらげ、ほんのり温かく） */
.hero__clip, .photo-slot > img, .photo-slot > video, [data-inview-play] {
	filter: saturate(.8) contrast(.94) brightness(1.03) sepia(.06);
}

/* カーソルの塗料のしぶき（main.js が画面全体に重ねた透明のキャンバスに描く。クリックや操作の邪魔はしない） */
.cursor-spray { position: fixed; inset: 0; width: 100%; height: 100%; z-index: 9999; pointer-events: none; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	/* 動画の入れ替わり（ふわっと重なる変化）は残し、拡大・縮小の動きだけ止める */
	.hero__clip { transition: opacity 1.618s ease-in-out !important; transform: none !important; }
	.hero__clip.is-prev { transition: none !important; }
	.page-hero__bg { animation: none; transform: none; }
	.hero__scroll span::after { animation: none; }
	.rise, .marquee__track { animation: none !important; opacity: 1 !important; transform: none !important; }
	/* スクロール演出：動き（移動・拡大・幕）は止め、ふわっと現れるだけにする */
	.reveal, .reveal.fx-left, .reveal.fx-right { transform: none !important; transition: opacity 1s ease !important; }
	.reveal.fx-media, .reveal.fx-media.fx-from-left { clip-path: none !important; opacity: 0; }
	.reveal.fx-media.is-in { opacity: 1; }
	.fx-head .eyebrow { letter-spacing: .3em !important; }
	.fx-head :is(.sec-title, .line-feature__title, .flow__title) { clip-path: none !important; transform: none !important; opacity: 0; transition: opacity 1s ease !important; }
	.fx-head.is-in :is(.sec-title, .line-feature__title, .flow__title) { opacity: 1; }
	.fx-head .fx-sub { transform: none !important; }
	.fx-media > :is(video, img), .fx-media .photo-slot > :is(video, img), .card.reveal .card__photo > :is(img, video) { transform: none !important; }
	.fx-head .flow__steps li { background-size: 100% 2px; transition: none; }
}

/* =========================================================
   ボタン・共通パーツ
   ========================================================= */
.btn {
	display: inline-flex; align-items: center; justify-content: center; gap: var(--s2);
	padding: var(--s3) var(--s5); border-radius: 999px; font-weight: 700; letter-spacing: .06em;
	transition: transform .618s var(--ease), translate .618s var(--ease), background-color .382s, color .382s, border-color .382s;
}
.btn:hover { transform: translateY(-3px); }
.btn svg { width: var(--s3); height: var(--s3); flex: none; }
.btn--fill { background: var(--accent); color: #fff; }
.btn--fill:hover { background: var(--ink); color: #fff; }
.btn--line { color: var(--ink); border: 1px solid var(--ink); }
.btn--line:hover { background: var(--ink); color: var(--ground); }
.btn--small { padding: var(--s2) var(--s4); font-size: var(--t-1); }

.eyebrow {
	font-family: var(--font-en); font-size: var(--t-1); letter-spacing: .3em;
	color: var(--brand-text); font-weight: 600; display: block;
}
.sec-title {
	font-family: var(--font-serif); font-weight: 800;
	font-size: clamp(var(--t3), 3.6vw, var(--t4)); line-height: var(--lh-head);
}
.sec-head { display: flex; flex-direction: column; gap: var(--s3); }
.more {
	display: inline-flex; align-items: center; gap: var(--s2); font-size: var(--t0); font-weight: 700;
}
.more svg { width: var(--s3); height: var(--s3); transition: transform .618s var(--ease); }
.more:hover svg { transform: translateX(var(--s1)); }

.photo-slot {
	background: var(--ground-2); color: #7D8C89; font-size: var(--t-1); letter-spacing: .1em;
	display: flex; align-items: center; justify-content: center; overflow: hidden;
}
.photo-slot img, .photo-slot video { width: 100%; height: 100%; object-fit: cover; }
.photo-graphic {
	width: 100%; height: 100%; position: relative; overflow: hidden;
	background: radial-gradient(circle at 61.8% 38.2%, var(--brand) 0%, var(--brand-strong) 38.2%, var(--deep) 100%);
	display: flex; align-items: center; justify-content: center; gap: var(--s4); color: #fff;
}
.photo-slot .photo-graphic img { width: 38.2%; height: auto; max-width: 110px; object-fit: contain; opacity: .9; transition: transform 1.618s var(--ease); }
.card:hover .photo-graphic img { transform: rotate(-12deg) scale(1.06); }
.photo-graphic span { font-family: var(--font-en); font-size: var(--t-1); font-weight: 600; letter-spacing: .2em; line-height: var(--lh-body); }

/* =========================================================
   ヘッダー（高さ 68 / ロゴ 42 = 黄金比）
   ========================================================= */
.site-header {
	position: sticky; top: 0; z-index: 50;
	background: rgba(244, 245, 241, .86);
	backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
	border-bottom: 1px solid rgba(23, 35, 34, .08);
	transition: box-shadow .382s;
}
.admin-bar .site-header { top: 32px; }
.site-header.is-scrolled { box-shadow: 0 10px 30px -20px rgba(23, 35, 34, .4); }
.site-header__inner { height: calc(var(--s6) + var(--s3)); display: flex; align-items: center; justify-content: space-between; gap: var(--s4); }

.logo { display: flex; align-items: center; color: var(--ink); flex: none; }
.logo img { height: var(--s5); width: auto; display: block; transition: opacity .382s; }
.logo:hover img { opacity: .8; }

.gnav ul { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: var(--s4); }
.gnav a {
	color: var(--ink); font-size: 14.5px; font-weight: 500; letter-spacing: .06em; position: relative;
}
.gnav a::after {
	content: ''; position: absolute; left: 0; bottom: calc(var(--s1) * -1); width: 100%; height: 2px;
	background: var(--accent); transform: scaleX(0); transform-origin: right;
	transition: transform .618s var(--ease);
}
.gnav a:hover { color: var(--accent); }
.gnav a:hover::after, .gnav .current-menu-item > a::after { transform: scaleX(1); transform-origin: left; }
.gnav .gnav__cta a { background: var(--accent); color: #fff; padding: var(--s2) var(--s4); border-radius: 999px; transition: background-color .382s, transform .618s var(--ease); display: inline-block; }
.gnav .gnav__cta a::after { display: none; }
.gnav .gnav__cta a:hover { background: var(--ink); color: #fff; transform: translateY(-2px); }

.menu-toggle {
	display: none; width: 48px; height: 48px; border: 0; background: transparent; cursor: pointer;
	position: relative; padding: 0; color: var(--ink);
}
.menu-toggle span { position: absolute; left: 12px; right: 12px; height: 2px; background: currentColor; transition: transform .618s var(--ease), opacity .382s; }
.menu-toggle span:nth-child(1) { top: 17px; }
.menu-toggle span:nth-child(2) { top: 23px; }
.menu-toggle span:nth-child(3) { top: 29px; }
.menu-open .menu-toggle span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.menu-open .menu-toggle span:nth-child(2) { opacity: 0; }
.menu-open .menu-toggle span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

/* =========================================================
   トップ：ヒーロー（塗装風景の動画を全面に）
   ・文字の列は画面幅の 61.8%
   ・高さは画面いっぱい（最小 610 / 最大 987 = フィボナッチ数）
   ========================================================= */
.hero {
	position: relative; overflow: hidden; color: #fff; background: var(--deep);
	min-height: clamp(610px, calc(100svh - 84px), 987px);
	display: flex; flex-direction: column;
}
/* 動画と影をひとまとめにして、文字（.hero__inner）より奥に置く */
.hero__media { position: absolute; inset: 0; z-index: 0; }
.hero__clip {
	position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
	opacity: 0; transform: scale(1.06);
	transition: opacity 1.618s ease-in-out, transform 6.18s linear;
	/* 上に文字が載るので、ほかの写真・動画より鮮やかさと明るさを控えめに */
	filter: saturate(.74) contrast(.93) brightness(.94) sepia(.06);
}
/* 切り替え：次の動画を上に重ねてゆっくり浮かび上がらせ、前の動画は下に残したまま消す（間に暗い背景が透けない） */
.hero__clip.is-active { opacity: 1; transform: scale(1); z-index: 2; }
.hero__clip.is-prev { opacity: 1; z-index: 1; transition: transform 6.18s linear; }
.hero__shade {
	/* 動画（.is-active は z-index 2）より必ず手前に置く */
	position: absolute; inset: 0; z-index: 3;
	/* 文字を読みやすくする影：左（文字側）を濃く、全体にも薄く一枚 */
	background:
		linear-gradient(90deg, rgba(16, 19, 19,.84) 0%, rgba(16, 19, 19,.64) 38.2%, rgba(16, 19, 19,.22) 61.8%, rgba(16, 19, 19,.06) 100%),
		linear-gradient(0deg, rgba(16, 19, 19,.55) 0%, rgba(16, 19, 19,0) 38.2%),
		rgba(16, 19, 19, .08);
}
.hero__inner {
	position: relative; z-index: 2; flex: 1; width: 100%;
	display: flex; flex-direction: column; justify-content: flex-end;
	padding-top: var(--s7); padding-bottom: var(--s6); gap: var(--s6);
}
.hero__text { width: 61.8%; display: flex; flex-direction: column; gap: var(--s4); }
.hero__kicker {
	display: flex; align-items: center; gap: var(--s3); font-family: var(--font-en);
	font-size: var(--t-1); letter-spacing: .3em; color: var(--brand-soft); font-weight: 600;
}
.hero__kicker::before { content: ''; width: var(--s5); height: 1px; background: var(--brand-soft); }
.hero__title {
	font-family: var(--font-serif); font-weight: 800; color: #fff;
	font-size: clamp(var(--t4), 6vw, 86px); line-height: var(--lh-head); letter-spacing: .02em;
	text-shadow: 0 2px 26px rgba(10, 25, 24, .35);
}
.hero__title > span { display: block; }
/* 見出しの 1 行目（地域と業種）：キャッチコピーより控えめに */
.hero__title > .hero__place {
	font-family: var(--font-sans); font-weight: 700; font-size: var(--t0); line-height: var(--lh-body);
	letter-spacing: .12em; color: rgba(255, 255, 255, .9); text-shadow: none; margin-bottom: var(--s3);
}
.hero__em { color: var(--brand-soft); }
.hero__sub { font-family: var(--font-serif); font-weight: 700; font-size: clamp(var(--t1), 2vw, var(--t2)); color: #fff; letter-spacing: .08em; }
.hero__btns { display: flex; flex-wrap: wrap; gap: var(--s3); margin-top: var(--s2); }
.btn--glass { color: #fff; border: 1px solid rgba(255, 255, 255, .7); background: rgba(255, 255, 255, .08); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.btn--glass:hover { background: #fff; color: var(--ink); }
.iso-row--dark span { background: rgba(255, 255, 255, .14); color: #fff; }

/* 再生位置の表示（今の場面 / 全体） */
.hero__meta { display: flex; align-items: center; gap: var(--s4); font-family: var(--font-en); font-size: var(--t-1); letter-spacing: .2em; color: rgba(255, 255, 255, .8); }
.hero__count b { color: #fff; font-weight: 700; }
.hero__bars { display: flex; gap: var(--s1); }
.hero__bar { width: var(--s6); height: 26px; padding: 0; border: 0; background: transparent; cursor: pointer; display: flex; align-items: center; }
.hero__bar i { display: block; width: 100%; height: 2px; background: rgba(255, 255, 255, .3); position: relative; overflow: hidden; }
.hero__bar i::after { content: ''; position: absolute; inset: 0; background: #fff; transform: scaleX(var(--p, 0)); transform-origin: left; }
.hero__bar.is-done i::after { transform: scaleX(1); }
/* 一時停止ボタン（‖ ⇔ ▶） */
.hero__pause {
	width: var(--s4); height: var(--s4); padding: 0; flex: none; cursor: pointer;
	border: 1px solid rgba(255, 255, 255, .5); border-radius: 50%; background: transparent;
	display: grid; place-items: center; transition: background-color .382s, border-color .382s;
}
.hero__pause:hover { background: rgba(255, 255, 255, .16); border-color: #fff; }
.hero__pause i { display: block; width: 8px; height: 10px; border-left: 2.5px solid #fff; border-right: 2.5px solid #fff; }
.hero__pause.is-paused i {
	width: 0; height: 0; margin-left: 2px; border-right: 0;
	border-left: 8px solid #fff; border-top: 5px solid transparent; border-bottom: 5px solid transparent;
}
.hero__cap { margin-left: auto; display: flex; align-items: center; gap: var(--s3); }
.hero__cap-en { color: var(--brand-soft); }
.hero__cap b {
	font-family: var(--font-sans); font-weight: 700; font-size: var(--t0); letter-spacing: .12em; color: #fff;
	padding: var(--s1) var(--s3); border: 1px solid rgba(255, 255, 255, .5); border-radius: 999px;
}
.hero__cap b.is-in { animation: cs-rise .618s var(--ease) both; }

.hero__scroll { position: absolute; z-index: 2; right: var(--gutter); top: 50%; width: 26px; height: var(--s7); display: block; }
.hero__scroll span { position: absolute; left: 50%; top: 0; bottom: 0; width: 1px; background: rgba(255, 255, 255, .3); overflow: hidden; }
.hero__scroll span::after { content: ''; position: absolute; left: 0; top: -38.2%; width: 1px; height: 38.2%; background: #fff; animation: cs-scroll 2.618s var(--ease) infinite; }
@keyframes cs-scroll { to { top: 100%; } }

/* =========================================================
   トップ：事業紹介の中の「ライン塗装」「ブース塗装」（3 種類のカードの下）
   ========================================================= */
.business__methods { margin-top: var(--s7); padding-top: var(--s7); border-top: 1px solid var(--line); display: flex; flex-direction: column; gap: var(--s7); }
.business__methods .line-feature { scroll-margin-top: var(--s7); }

/* 数字 */
.stats { padding-bottom: var(--s7); }
.stats__grid {
	display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
	border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
}
.stat { padding: var(--s5) var(--s4); display: flex; flex-direction: column; gap: var(--s2); border-right: 1px solid var(--line); }
.stat:last-child { border-right: 0; }
.stat__label { font-size: var(--t-1); color: var(--muted); letter-spacing: .08em; }
.stat__num { font-family: var(--font-en); font-weight: 700; font-size: clamp(var(--t3), 4vw, var(--t5)); line-height: 1; }
.stat__num small { font-family: var(--font-sans); font-size: var(--t0); font-weight: 500; margin-left: var(--s1); }

/* 流れる文字 */
.marquee { background: var(--deep); color: var(--ground); padding: var(--s4) 0; overflow: hidden; white-space: nowrap; }
.marquee__track {
	display: inline-flex; gap: var(--s6); font-family: var(--font-en); font-weight: 700;
	font-size: clamp(var(--t2), 3.2vw, var(--t4)); letter-spacing: .04em;
	animation: cs-marquee 42s linear infinite;
}
.marquee__track .dot-r { color: var(--brand); }
.marquee__track .dot-y { color: var(--yellow); }
.marquee__track .dot-t { color: var(--brand-soft); }


/* ライン塗装（説明 38.2% : 動画 61.8%／動画2本も 1.618 : 1） */
.line-feature {
	display: grid; grid-template-columns: var(--golden-r); gap: var(--s6); align-items: center;
}
/* ブース塗装：動画 61.8% を左、説明 38.2% を右に */
.line-feature--rev { grid-template-columns: var(--golden); }
.line-feature--rev .line-feature__media { order: -1; grid-template-columns: 1fr 1.618fr; }
.line-feature--rev .line-feature__clip:first-child { aspect-ratio: 1 / 1.272; }
.line-feature--rev .line-feature__clip:last-child { aspect-ratio: auto; }
.line-feature__text { display: flex; flex-direction: column; gap: var(--s3); }
.line-feature__title { font-family: var(--font-serif); font-weight: 800; font-size: var(--t3); line-height: var(--lh-head); }
.line-feature__text > p { font-size: var(--t0); line-height: 1.9; color: var(--ink-2); }
.line-feature__spec { margin: var(--s2) 0 0; }
.line-feature__spec div { display: grid; grid-template-columns: 1fr 1.618fr; gap: var(--s3); padding: var(--s2) 0; border-top: 1px solid var(--line); font-size: 14px; }
.line-feature__spec div:last-child { border-bottom: 1px solid var(--line); }
.line-feature__spec dt { color: var(--muted); }
.line-feature__spec dd { margin: 0; font-weight: 700; }
.line-feature__spec small { display: block; font-weight: 400; font-size: var(--t-1); color: var(--muted); }
.line-feature__media { display: grid; grid-template-columns: 1.618fr 1fr; gap: var(--s2); }
.line-feature__clip { position: relative; margin: 0; border-radius: var(--r3); overflow: hidden; background: var(--deep); aspect-ratio: 1 / 1.272; }
.line-feature__clip:first-child { aspect-ratio: auto; }
.line-feature__clip video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.618s var(--ease); }
.line-feature__clip:hover video { transform: scale(1.04); }
.line-feature__clip figcaption {
	position: absolute; left: var(--s2); bottom: var(--s2); z-index: 2; font-size: var(--t-1); font-weight: 700;
	padding: var(--s1) var(--s2); border-radius: 999px; background: rgba(244, 245, 241, .92); color: var(--ink); line-height: 1.4;
}

/* =========================================================
   トップ：事業紹介
   ========================================================= */
.business { padding: var(--s7) 0; }
.business__head { display: grid; grid-template-columns: var(--golden); align-items: end; gap: var(--s6); margin-bottom: var(--s6); }
.business__head p { font-size: var(--t0); line-height: 1.9; color: var(--ink-2); }
/* 溶剤塗装・粉体塗装の 2 枚（化成被膜はユーザー指示で削除） */
.cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s4); }
.card {
	background: #fff; border-radius: var(--r3); overflow: hidden; display: flex; flex-direction: column;
	transition: transform 1s var(--ease), box-shadow 1s;
}
.card:hover { transform: translateY(calc(var(--s2) * -1)); box-shadow: 0 42px 68px -42px rgba(23, 35, 34, .35); }
.card__sw { height: var(--s1); transition: height 1s var(--ease); }
.card:hover .card__sw { height: var(--s2); }
.card--1 .card__sw { background: var(--brand); }
.card--2 .card__sw { background: var(--yellow); }
.card__photo { aspect-ratio: 1.618 / 1; }
.card__photo img, .card__photo video { transition: transform 1.618s var(--ease); }
.card:hover .card__photo img, .card:hover .card__photo video { transform: scale(1.06); }
.card__body { padding: var(--s5) var(--s4) var(--s5); display: flex; flex-direction: column; gap: var(--s3); }
.card__no { font-family: var(--font-en); font-weight: 700; font-size: var(--t-1); letter-spacing: .2em; }
.card--1 .card__no { color: var(--accent); }
.card--2 .card__no { color: #7A6538; }
.card__title { font-family: var(--font-serif); font-size: var(--t2); font-weight: 800; line-height: var(--lh-head); }
.card__text { font-size: 15px; line-height: 1.9; color: var(--ink-2); }
.tags { display: flex; flex-wrap: wrap; gap: var(--s1); margin-top: var(--s1); }
.tags span { font-size: var(--t-1); padding: 4px var(--s2); border: 1px solid var(--line); border-radius: 999px; line-height: var(--lh-body); }
.business__more { margin-top: var(--s6); display: flex; justify-content: center; }

/* =========================================================
   トップ：強み（見出し 38.2% : 一覧 61.8%）
   ========================================================= */
.strengths { background: var(--ground-2); }
.strengths__grid { padding-top: var(--s7); padding-bottom: var(--s7); display: grid; grid-template-columns: var(--golden-r); gap: var(--s6); }
.strengths__head { align-self: start; position: sticky; top: var(--s7); display: flex; flex-direction: column; gap: var(--s3); }
.strengths__head p { font-size: var(--t0); line-height: 1.9; color: var(--ink-2); }
.strengths__list { list-style: none; margin: 0; padding: 0; }
.strengths__list li {
	display: flex; gap: var(--s4); padding: var(--s4) 0; border-top: 1px solid rgba(23, 35, 34, .2);
	font-size: var(--t1); font-weight: 700; line-height: var(--lh-body);
}
.strengths__list li:last-child { border-bottom: 1px solid rgba(23, 35, 34, .2); }
.strengths__list .no { font-family: var(--font-en); font-size: var(--t0); color: var(--brand-text); width: var(--s5); flex: none; padding-top: 3px; }

/* =========================================================
   トップ：品目・サイズ・設備
   ========================================================= */
.products { padding: var(--s7) 0; }
.products .sec-head { margin-bottom: var(--s6); }
.products__grid { display: grid; grid-template-columns: var(--golden); gap: var(--s6); margin-bottom: var(--s6); }
.sub-title { font-size: var(--t-1); letter-spacing: .15em; color: var(--muted); font-weight: 500; margin-bottom: var(--s3); }
.item-list { list-style: none; margin: 0; padding: 0; }
.item-list li { border-top: 1px solid rgba(23, 35, 34, .2); }
.item-list li:last-child { border-bottom: 1px solid rgba(23, 35, 34, .2); }
.item-list a {
	display: flex; justify-content: space-between; align-items: center; padding: var(--s4) var(--s3);
	color: var(--ink); font-size: var(--t1); font-weight: 700;
	transition: background-color .382s, color .382s, padding .618s var(--ease);
}
.item-list a:hover { background: var(--ink); color: var(--ground); padding-left: var(--s5); }
.item-list svg { width: var(--s4); height: var(--s4); transition: transform .618s var(--ease); }
.item-list a:hover svg { transform: translateX(var(--s2)); }

.size-box { background: var(--deep); color: var(--ground); border-radius: var(--r3); padding: var(--s5) var(--s4); display: flex; flex-direction: column; gap: var(--s4); }
.size-box__row { display: flex; flex-direction: column; gap: var(--s1); }
.size-box__row + .size-box__row { padding-top: var(--s4); border-top: 1px solid rgba(244, 245, 241, .15); }
.size-box__label { font-size: var(--t-1); color: #A9C2BD; letter-spacing: .1em; }
.size-box__big { font-family: var(--font-en); font-size: var(--t3); font-weight: 700; line-height: var(--lh-head); }
.size-box__mid { font-family: var(--font-en); font-size: var(--t1); font-weight: 600; }
.size-box__ja { font-size: var(--t1); font-weight: 700; }
.size-box__note { font-size: var(--t-1); color: #A9C2BD; }

/* 設備写真：黄金長方形を「正方形＋小さな黄金長方形」に分割した配置 */
.equip-photos {
	display: grid; grid-template-columns: 1.618fr 1fr; grid-template-rows: 1.618fr 1fr;
	aspect-ratio: 1.618 / 1; gap: var(--s2); margin: 0 0 var(--s2); list-style: none; padding: 0;
}
.equip-photos li { position: relative; border-radius: var(--r2); overflow: hidden; min-height: 0; }
.equip-photos li:first-child { grid-row: span 2; }
.equip-photos figure, .equip-photos .photo-slot { height: 100%; }
.equip-photos img { transition: transform 1.618s var(--ease); }
.equip-photos li:hover img { transform: scale(1.06); }
.equip-photos figcaption { position: absolute; left: var(--s2); bottom: var(--s2); font-size: var(--t-1); font-weight: 700; padding: var(--s1) var(--s2); border-radius: 999px; background: rgba(244, 245, 241, .92); color: var(--ink); line-height: 1.4; }

.equip { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--s2); list-style: none; margin: 0; padding: 0; }
.equip li { background: #fff; border-radius: var(--r2); padding: var(--s4) var(--s3); display: flex; flex-direction: column; justify-content: space-between; gap: var(--s3); }
.equip__name { font-size: 14px; font-weight: 700; line-height: var(--lh-body); }
.equip__num { font-family: var(--font-en); font-size: var(--t2); font-weight: 700; color: var(--brand-text); line-height: 1; }
.equip__num small { font-family: var(--font-sans); font-size: var(--t-1); color: var(--muted); margin-left: 4px; font-weight: 500; }

/* =========================================================
   トップ：採用（文章 61.8% : 写真 38.2%）
   ========================================================= */
.recruit { background: var(--deep); color: var(--ground); }
.recruit__inner { padding-top: var(--s7); padding-bottom: var(--s7); display: flex; flex-direction: column; gap: var(--s6); }
/* 写真は置かない（ユーザー指示）。見出しと説明文を 61.8% の幅で */
.recruit__top { max-width: 61.8%; }
.recruit__text { display: flex; flex-direction: column; gap: var(--s4); }
.recruit .eyebrow { color: var(--accent-soft); }
.recruit__title { font-family: var(--font-serif); font-weight: 800; font-size: clamp(var(--t4), 4.6vw, var(--t5)); line-height: var(--lh-head); }
.recruit__lead { font-size: var(--t0); line-height: 1.9; color: #C3D5D1; }
.jobs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s3); }
.job {
	display: flex; flex-direction: column; gap: var(--s3); padding: var(--s4); border-radius: var(--r2);
	border: 1px solid rgba(244, 245, 241, .2); color: var(--ground);
	transition: background-color .382s, border-color .382s;
}
a.job:hover { background: rgba(244, 245, 241, .06); border-color: rgba(244, 245, 241, .5); color: var(--ground); }
.job__status { align-self: flex-start; font-size: var(--t-1); font-weight: 700; padding: 4px var(--s2); border-radius: 999px; background: var(--accent); color: #fff; line-height: var(--lh-body); }
.job__name { font-size: var(--t2); font-weight: 700; line-height: var(--lh-head); }
.job__more { font-size: 14px; color: #C3D5D1; display: flex; align-items: center; gap: var(--s2); }
.job__more svg { width: var(--s3); height: var(--s3); }
.job--closed { border-style: dashed; border-color: rgba(244, 245, 241, .16); color: #8AA5A0; }
.job--closed .job__status { background: transparent; border: 1px solid rgba(244, 245, 241, .2); color: #8AA5A0; font-weight: 500; }
.job--closed .job__name { font-size: var(--t1); }
.flow { display: flex; flex-direction: column; gap: var(--s5); }
.flow__title { font-family: var(--font-serif); font-size: var(--t3); font-weight: 800; }
.flow__steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s4); list-style: none; margin: 0; padding: 0; }
.flow__steps li { display: flex; flex-direction: column; gap: var(--s2); padding-top: var(--s4); border-top: 2px solid var(--accent); }
.flow__no { font-family: var(--font-en); font-size: var(--t-1); letter-spacing: .25em; color: var(--accent-soft); }
.flow__name { font-size: var(--t1); font-weight: 700; }
.flow__text { font-size: 14px; line-height: 1.9; color: #C3D5D1; }
.recruit__more { display: flex; justify-content: center; }
.recruit__more .btn--line { color: var(--ground); border-color: var(--ground); }
.recruit__more .btn--line:hover { background: var(--ground); color: var(--ink); }

/* =========================================================
   トップ：会社概要・お知らせ（見出し 38.2% : 内容 61.8%）
   ========================================================= */
.company { padding: var(--s7) 0 var(--s5); }
.split { display: grid; grid-template-columns: var(--golden-r); gap: var(--s6); margin-bottom: var(--s7); }
.split__head { display: flex; flex-direction: column; gap: var(--s3); }

/* アクセス：工場ごとの Google マップ（地図は 1.618 : 1 の黄金長方形） */
/* 「アクセス・地図を見る」で飛んだとき、固定ヘッダーの下に見出しが隠れないよう余白を取る */
.access { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s5); margin-bottom: var(--s7); scroll-margin-top: calc(var(--s7) + var(--s4)); }
.admin-bar .access { scroll-margin-top: calc(var(--s7) + var(--s4) + 46px); }
.access__item { display: flex; flex-direction: column; gap: var(--s3); align-items: flex-start; }
.access__head { display: flex; flex-direction: column; gap: var(--s1); }
.access__name { font-family: var(--font-serif); font-weight: 800; font-size: var(--t2); line-height: var(--lh-head); }
.access__addr { font-size: 15px; color: var(--ink-2); }
.access__map { width: 100%; aspect-ratio: 1.618 / 1; border-radius: var(--r2); overflow: hidden; background: var(--ground-2); }
.access__map iframe { display: block; width: 100%; height: 100%; border: 0; }
.iso-row { display: flex; flex-wrap: wrap; gap: var(--s2); }
.iso-row span { font-size: var(--t-1); font-weight: 700; padding: var(--s1) var(--s3); border-radius: 999px; background: var(--ground-2); color: var(--brand-text); line-height: 1.4; }
.dl { margin: 0; }
.dl__row { display: grid; grid-template-columns: 1fr 2.618fr; gap: var(--s3); padding: var(--s4) 0; border-top: 1px solid rgba(23, 35, 34, .2); font-size: 15px; }
.dl__row:last-child { border-bottom: 1px solid rgba(23, 35, 34, .2); }
.dl dt { color: var(--muted); }
.dl dd { margin: 0; font-weight: 700; line-height: var(--lh-body); }
.dl dd small { display: block; font-weight: 400; font-size: 15px; }

.news-list { list-style: none; margin: 0; padding: 0; }
.news-list li { border-top: 1px solid rgba(23, 35, 34, .2); }
.news-list li:last-child { border-bottom: 1px solid rgba(23, 35, 34, .2); }
.news-list a { display: flex; gap: var(--s4); align-items: center; padding: var(--s4) 0; color: var(--ink); }
.news-list a:hover { color: var(--accent); }
.news-list time { font-family: var(--font-en); font-size: 14px; color: var(--muted); width: var(--s7); flex: none; }
.news-list .cat { font-size: var(--t-1); padding: 3px var(--s2); border: 1px solid rgba(23, 35, 34, .25); border-radius: 999px; flex: none; line-height: var(--lh-body); }
.news-list .ttl { font-size: var(--t0); font-weight: 700; }
.news-empty { color: var(--muted); padding: var(--s4) 0; border-top: 1px solid var(--line); }

/* =========================================================
   お問い合わせ帯（文章 61.8% : ボタン 38.2%）
   ========================================================= */
.cta { padding-bottom: var(--s7); }
.cta__box {
	position: relative; overflow: hidden; background: var(--accent); color: #fff; border-radius: var(--r3);
	padding: var(--s6); display: grid; grid-template-columns: var(--golden); gap: var(--s6); align-items: center;
}
.cta__deco { position: absolute; right: calc(var(--s6) * -1); top: calc(var(--s6) * -1); display: flex; gap: var(--s3); transform: rotate(18deg); opacity: .22; pointer-events: none; }
.cta__deco span { width: var(--s5); border-radius: var(--r1); }
.cta__deco span:nth-child(1) { height: 382px; background: var(--deep); }
.cta__deco span:nth-child(2) { height: 236px; background: #fff; }
.cta__deco span:nth-child(3) { height: 300px; background: var(--yellow); }
.cta__text { position: relative; display: flex; flex-direction: column; gap: var(--s3); }
.cta__text .eyebrow { color: #fff; }
.cta__title { font-family: var(--font-serif); font-weight: 800; font-size: clamp(var(--t3), 3.6vw, var(--t4)); line-height: var(--lh-head); }
.cta__btns { position: relative; display: flex; flex-direction: column; gap: var(--s3); }
.cta__btn {
	display: flex; justify-content: space-between; align-items: center; gap: var(--s2);
	padding: var(--s4); border-radius: var(--r2); background: var(--ground); color: var(--ink);
	transition: transform .618s var(--ease), background-color .382s, color .382s;
}
.cta__btn:hover { transform: translateY(-3px); background: var(--ink); color: #fff; }
.cta__btn-in { display: flex; flex-direction: column; gap: 4px; }
.cta__btn-small { font-size: var(--t-1); letter-spacing: .1em; }
.cta__btn-tel { font-family: var(--font-en); font-size: var(--t2); font-weight: 700; line-height: var(--lh-head); }
.cta__btn-mail { font-size: var(--t1); font-weight: 700; }
.cta__btn svg { width: var(--s4); height: var(--s4); flex: none; }

/* =========================================================
   フッター
   ========================================================= */
.site-footer { background: var(--ink); color: var(--ground); }
.site-footer__brand { display: flex; align-items: center; gap: var(--s3); }
.site-footer__brand img { height: var(--s5); width: auto; }
.site-footer a { color: var(--ground); }
.site-footer a:hover { color: var(--accent-soft); }
.site-footer__inner { padding-top: var(--s6); padding-bottom: var(--s5); display: flex; flex-direction: column; gap: var(--s6); }
.site-footer__top { display: grid; grid-template-columns: var(--golden-r); gap: var(--s6); }
.site-footer__cols { display: flex; justify-content: flex-end; gap: var(--s6); font-size: var(--t-1); line-height: 2; }
.site-footer__cols .lbl { color: #A9C2BD; display: block; }
.site-footer__nav ul { list-style: none; margin: 0; padding: 0; }
.site-footer__bottom {
	display: flex; justify-content: space-between; gap: var(--s3); padding-top: var(--s4);
	border-top: 1px solid rgba(244, 245, 241, .14); font-size: var(--t-1); color: #A9C2BD;
}
.site-footer__bottom a { font-family: var(--font-en); letter-spacing: .2em; }

/* =========================================================
   下層ページ
   ========================================================= */
/* ページ上部：写真を背景にした帯（高さは画面の 38.2%〜） */
.page-hero {
	position: relative; overflow: hidden; color: #fff; background: var(--deep);
	min-height: clamp(377px, 50svh, 520px); display: flex; align-items: flex-end;
}
.page-hero__bg {
	position: absolute; inset: 0; background-size: cover; background-position: center;
	filter: saturate(.8) contrast(.94) brightness(1.03) sepia(.06);
	transform: scale(1.06); animation: cs-zoom-out 6.18s var(--ease) forwards;
}
.page-hero__bg::after {
	content: ''; position: absolute; inset: 0;
	background:
		linear-gradient(90deg, rgba(16, 19, 19, .82) 0%, rgba(16, 19, 19, .5) 61.8%, rgba(16, 19, 19, .2) 100%),
		linear-gradient(0deg, rgba(16, 19, 19, .5) 0%, rgba(16, 19, 19, 0) 61.8%);
}
@keyframes cs-zoom-out { from { transform: scale(1.06); } to { transform: scale(1); } }
.page-hero__inner { position: relative; z-index: 1; width: 100%; padding-top: var(--s7); padding-bottom: var(--s6); display: flex; flex-direction: column; gap: var(--s3); }
.page-hero__en { font-family: var(--font-en); font-size: var(--t-1); font-weight: 700; letter-spacing: .3em; color: var(--brand-soft); display: flex; align-items: center; gap: var(--s2); }
.page-hero__en::before { content: ''; width: var(--s5); height: 1px; background: currentColor; }
.page-hero__title { font-family: var(--font-serif); font-weight: 800; font-size: clamp(var(--t4), 5vw, var(--t6)); line-height: var(--lh-head); letter-spacing: .04em; }
.page-hero__lead { font-size: var(--t1); color: rgba(255, 255, 255, .86); max-width: 32em; }
.page-hero__chips { position: absolute; z-index: 1; right: var(--gutter); bottom: 0; display: flex; gap: var(--s2); align-items: flex-end; height: 38.2%; opacity: .9; }
.page-hero__chips span { width: var(--s3); border-radius: var(--s1) var(--s1) 0 0; transform-origin: bottom; transform: scaleY(0); animation: cs-grow 1.618s var(--ease) forwards; }
.page-hero__chips span:nth-child(1) { height: 38.2%; background: var(--brand); animation-delay: .2s; }
.page-hero__chips span:nth-child(2) { height: 61.8%; background: var(--ground); animation-delay: .318s; }
.page-hero__chips span:nth-child(3) { height: 23.6%; background: var(--yellow); animation-delay: .436s; }
.page-hero__chips span:nth-child(4) { height: 50%; background: var(--teal); animation-delay: .554s; }
.breadcrumb { font-size: var(--t-1); color: rgba(255, 255, 255, .7); margin-top: var(--s2); display: flex; flex-wrap: wrap; gap: var(--s1) var(--s2); }
.breadcrumb a { color: rgba(255, 255, 255, .86); }
.breadcrumb a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }

.page-main { padding: var(--s7) 0; }
/* 本文の幅：読み物幅 732px × √φ（1.272）≒ 931px */
.entry { max-width: calc(var(--read) * 1.272); margin: 0 auto; min-width: 0; }

/* 目次：本文の上に横並び（見出しが2つ以上のとき） */
.page-toc { max-width: calc(var(--read) * 1.272); margin: 0 auto var(--s6); padding-bottom: var(--s5); border-bottom: 1px solid var(--line); display: flex; flex-direction: column; gap: var(--s3); }
.page-toc[hidden] { display: none; }
.page-toc__label { font-family: var(--font-en); font-size: var(--t-1); font-weight: 700; letter-spacing: .3em; color: var(--brand-text); }
.page-toc__list { list-style: none; margin: 0; padding: 0; counter-reset: toc; display: flex; flex-wrap: wrap; gap: var(--s2); }
.page-toc__list li { counter-increment: toc; }
.page-toc__list a {
	display: flex; align-items: center; gap: var(--s2); padding: var(--s2) var(--s4); border-radius: 999px;
	background: #fff; box-shadow: 0 0 0 1px var(--line); color: var(--ink); font-size: 15px; font-weight: 700; line-height: var(--lh-head);
	transition: background-color .382s, color .382s, box-shadow .382s;
}
.page-toc__list a::before { content: counter(toc, decimal-leading-zero); font-family: var(--font-en); font-size: var(--t-1); color: var(--brand-text); transition: color .382s; }
.page-toc__list a:hover { background: var(--brand-strong); color: #fff; box-shadow: 0 0 0 1px var(--brand-strong); }
.page-toc__list a:hover::before { color: var(--brand-soft); }

/* 本文（既存ページの中身をきれいに見せる） */
.entry-content { font-size: var(--t0); line-height: 1.9; counter-reset: sec; }
.entry-content > * + * { margin-top: 1.618em; }
.entry-content > :first-child { margin-top: 0; }
.entry-content h2 {
	counter-increment: sec; scroll-margin-top: var(--s7);
	font-family: var(--font-serif); font-size: clamp(var(--t2), 3vw, var(--t3)); font-weight: 800; line-height: var(--lh-head);
	margin-top: 2.618em; padding-bottom: var(--s3); border-bottom: 1px solid var(--line); position: relative;
	display: flex; flex-direction: column; gap: var(--s1);
}
.entry-content h2::before { content: counter(sec, decimal-leading-zero); font-family: var(--font-en); font-size: var(--t-1); letter-spacing: .3em; color: var(--brand-text); }
.entry-content h2::after { content: ''; position: absolute; left: 0; bottom: -1px; width: var(--s6); height: 3px; background: var(--brand); }
.entry-content > h2:first-child { margin-top: 0; }
.entry-content h3 { font-size: var(--t1); font-weight: 700; margin-top: 2.618em; padding-left: var(--s3); border-left: 4px solid var(--accent); line-height: var(--lh-head); scroll-margin-top: var(--s7); }
.entry-content h4 { font-size: var(--t0); font-weight: 700; margin-top: 1.618em; color: var(--brand-text); }
.entry-content a { text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(64, 136, 134, .4); transition: color .382s, text-decoration-color .382s; }
.entry-content a:hover { text-decoration-color: currentColor; }
.entry-content strong { background: linear-gradient(transparent 61.8%, rgba(156, 203, 196, .45) 61.8%); }

/* 箇条書き：緑の丸 */
.entry-content ul { list-style: none; padding-left: 0; }
.entry-content ul li { position: relative; padding-left: 1.618em; }
.entry-content ul li::before { content: ''; position: absolute; left: .4em; top: .78em; width: 7px; height: 7px; border-radius: 50%; background: var(--brand); }
.entry-content li + li { margin-top: .618em; }

/* 番号つきリスト：手順のように丸数字と縦線で */
.entry-content ol { list-style: none; padding-left: 0; counter-reset: step; }
.entry-content ol > li { counter-increment: step; position: relative; padding: 0 0 var(--s4) calc(var(--s5) + var(--s3)); min-height: var(--s5); }
.entry-content ol > li::before {
	content: counter(step); position: absolute; left: 0; top: 0; width: var(--s5); height: var(--s5); border-radius: 50%;
	display: grid; place-items: center; background: var(--brand-strong); color: #fff; font-family: var(--font-en); font-weight: 700; font-size: var(--t0);
}
.entry-content ol > li:not(:last-child)::after { content: ''; position: absolute; left: calc(var(--s5) / 2); top: var(--s5); bottom: 0; width: 1px; background: var(--line); }
.entry-content ol > li + li { margin-top: 0; }

/* 画像・動画・地図 */
.entry-content img, .entry-content video, .entry-content iframe { border-radius: var(--r2); max-width: 100%; height: auto; }
.entry-content img { box-shadow: 0 var(--s3) var(--s5) calc(var(--s3) * -1) rgba(23, 35, 34, .2); }
.entry-content iframe { width: 100%; aspect-ratio: 1.618 / 1; height: auto; min-height: 0; border: 0; }
.entry-content figure { margin-left: 0; margin-right: 0; }
.entry-content figcaption { font-size: var(--t-1); color: var(--muted); margin-top: var(--s2); }

/* 表：白いカードに。見出しセルは薄い緑 */
.entry-content table {
	width: 100%; border-collapse: separate; border-spacing: 0; font-size: 15px;
	background: #fff; border-radius: var(--r2); overflow: hidden; box-shadow: 0 0 0 1px var(--line);
}
.entry-content th, .entry-content td { padding: var(--s3) var(--s4); border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.entry-content tr:last-child th, .entry-content tr:last-child td { border-bottom: 0; }
.entry-content th { background: var(--ground-2); color: var(--ink-2); font-weight: 700; width: 38.2%; }
.entry-content thead th { background: var(--brand-strong); color: #fff; width: auto; }
.entry-content thead ~ tbody th { width: auto; }
.entry-content tbody tr:hover td { background: rgba(227, 236, 233, .4); }
.entry-content .wp-block-table { overflow-x: auto; }

.entry-content blockquote { margin: 1.618em 0; padding: var(--s4) var(--s5); background: var(--ground-2); border-left: 4px solid var(--brand); border-radius: 0 var(--r2) var(--r2) 0; font-family: var(--font-serif); font-size: var(--t1); font-weight: 700; }
.entry-content hr { border: 0; height: 1px; background: var(--line); margin: 2.618em 0; }

/* 空の見出し・空の段落は出さない（旧テーマで飾りとして置かれていたもの） */
.entry-content h2:empty, .entry-content h3:empty, .entry-content p:empty { display: none; }

/* =========================================================
   旧テーマ（SWELL）の部品を新デザインで表示
   本番の固定ページ本文は SWELL のブロックで作られているため、その見た目をここで用意する
   ========================================================= */

/* 文字サイズ：「大」「特大」などの指定を黄金比の段階にそろえる */
.entry-content {
	--wp--preset--font-size--small: 14px;
	--wp--preset--font-size--medium: var(--t0);
	--wp--preset--font-size--large: var(--t1);
	--wp--preset--font-size--x-large: var(--t2);
}
.entry-content .u-fz-xs { font-size: var(--t-1); }
.entry-content .u-fz-s { font-size: 14px; }
.entry-content .u-fz-l { font-size: var(--t1); }
.entry-content .u-fz-xl { font-size: var(--t2); }
/* 見出し役の部品の中では、個別の文字サイズ指定より見出しの大きさを優先 */
.entry-content :is(.cap_box_ttl, .swell-block-accordion__title, .swell-block-step__title, .wp-block-pullquote, .wp-block-media-text__content > p:first-child) :is(.swl-fz, strong) { font-size: inherit; }
/* 見出し役の部品の中の太字には、蛍光ペン風の線を引かない */
.entry-content :is(.cap_box_ttl, .swell-block-accordion__title, .wp-block-media-text__content > p:first-child) strong { background: none; }
.entry-content [class*="u-mb-"] { margin-bottom: 0; }
.entry-content .u-mb-10 { margin-bottom: .618em; }
.entry-content .u-mb-20 { margin-bottom: 1em; }
.entry-content .swl-bg-color { padding: 2px var(--s2); border-radius: 999px; font-weight: 700; font-size: 14px; }

/* 全幅ブロック：旧テーマの背景は使わず、中身だけを表示 */
.entry-content .swell-block-fullWide { background: none !important; color: inherit !important; padding: 0; }
.entry-content .swell-block-fullWide + .swell-block-fullWide { margin-top: 4.236em; }
/* 末尾のお問い合わせ欄はフッターのお問い合わせと重複するので出さない */
.entry-content .swell-block-fullWide[id="お問い合わせ"] { display: none; }
/* 画像つきカード（採用の職種・カレンダーの年度など）がある枠だけ 2 列に並べる */
.entry-content .swell-block-fullWide__inner > * + * { margin-top: var(--s5); }
.entry-content .swell-block-fullWide__inner:has(> .wp-block-media-text) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s5) var(--s4); }
.entry-content .swell-block-fullWide__inner:has(> .wp-block-media-text) > * { grid-column: 1 / -1; margin: 0; min-width: 0; }
.entry-content .swell-block-fullWide__inner > .wp-block-media-text { grid-column: auto; }
.entry-content .wp-block-group__inner-container > * + * { margin-top: 1em; }

/* キャッチコピー（採用の「未経験からものづくりのプロへ」など） */
.entry-content .wp-block-pullquote { margin: 0; padding: var(--s5) 0; text-align: center; border: 0; }
.entry-content .wp-block-pullquote blockquote { margin: 0; padding: 0; background: none; border: 0; border-radius: 0; }
.entry-content .wp-block-pullquote p { font-family: var(--font-serif); font-weight: 800; font-size: clamp(var(--t3), 4vw, var(--t4)); line-height: var(--lh-head); letter-spacing: .04em; }
.entry-content .wp-block-pullquote cite { display: block; margin-top: var(--s3); font-style: normal; font-family: var(--font-sans); font-size: var(--t1); font-weight: 500; color: var(--brand-text); }
.entry-content .wp-block-pullquote cite::before { content: ''; display: block; width: var(--s5); height: 2px; margin: 0 auto var(--s3); background: var(--brand); }

/* 画像つきカード（採用の職種など）：写真を上、職種名とボタンを下に */
.entry-content .wp-block-media-text {
	display: flex !important; flex-direction: column-reverse; justify-content: flex-end;
	background: #fff !important; border-radius: var(--r3); overflow: hidden; box-shadow: 0 0 0 1px var(--line);
	transition: transform .618s var(--ease), box-shadow .618s var(--ease);
}
.entry-content .wp-block-media-text:hover { transform: translateY(calc(var(--s1) * -1)); box-shadow: 0 0 0 1px var(--line), 0 var(--s4) var(--s5) calc(var(--s4) * -1) rgba(23, 35, 34, .3); }
/* 写真の欄はカードの形に関係なく横幅いっぱい（中身が絶対配置のため、幅が縮んで小さな四角にならないように） */
.entry-content .wp-block-media-text__media { margin: 0; width: 100%; align-self: stretch; aspect-ratio: 1.618 / 1; min-height: 0 !important; position: relative; background: var(--ground-2); }
.entry-content .wp-block-media-text__media img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: cover; border-radius: 0; box-shadow: none; filter: saturate(.8) contrast(.94) brightness(1.03) sepia(.06); }
.entry-content .wp-block-media-text__content { padding: var(--s4) !important; display: flex; flex-direction: column; gap: var(--s2); }
.entry-content .wp-block-media-text__content > * { margin: 0; }
.entry-content .wp-block-media-text__content > p:first-child { font-family: var(--font-serif); font-size: var(--t2) !important; font-weight: 800; line-height: var(--lh-head); }
.entry-content .wp-block-media-text__content > p:not(:first-child) { font-size: 14px; color: var(--muted); }

/* 写真なしのカード（採用情報の職種）：職種名とボタンを横に並べたシンプルな形 */
.entry-content .wp-block-media-text:not(:has(.wp-block-media-text__media)) { position: relative; }
.entry-content .wp-block-media-text:not(:has(.wp-block-media-text__media))::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--brand); }
.entry-content .wp-block-media-text:not(:has(.wp-block-media-text__media)) .wp-block-media-text__content {
	flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s2) var(--s3);
	padding: var(--s4) var(--s4) var(--s4) var(--s5) !important; text-align: left;
}
.entry-content .wp-block-media-text:not(:has(.wp-block-media-text__media)) .wp-block-media-text__content > p:first-child { font-size: var(--t1) !important; }
/* 募集中・募集停止中の札（main.js がカスタマイザーの設定に合わせて付ける） */
.entry-content .job-badge {
	display: inline-block; vertical-align: middle; margin-left: var(--s2); padding: 2px var(--s2); border-radius: 999px;
	font-family: var(--font-sans); font-size: 11px; font-weight: 700; letter-spacing: .08em; line-height: 1.6;
	background: rgba(23, 35, 34, .1); color: var(--muted);
}
.entry-content .job-badge.is-open { background: var(--brand-strong); color: #fff; }
/* 募集していない職種：グレーで控えめに（ボタンが無いカード） */
.entry-content .wp-block-media-text:not(:has(.wp-block-media-text__media)):not(:has(.swell-block-button, .wp-block-button)) { background: var(--ground-2) !important; box-shadow: none; }
.entry-content .wp-block-media-text:not(:has(.wp-block-media-text__media)):not(:has(.swell-block-button, .wp-block-button))::before { background: rgba(23, 35, 34, .18); }
.entry-content .wp-block-media-text:not(:has(.wp-block-media-text__media)):not(:has(.swell-block-button, .wp-block-button)):hover { transform: none; box-shadow: none; }
.entry-content .wp-block-media-text:not(:has(.wp-block-media-text__media)):not(:has(.swell-block-button, .wp-block-button)) .wp-block-media-text__content > p:first-child { color: var(--muted); }

/* ボタン */
.entry-content .swell-block-button__link {
	display: inline-flex; align-items: center; gap: var(--s2); padding: var(--s2) var(--s4); border-radius: 999px;
	border: 1px solid var(--ink); color: var(--ink); font-size: 14px; font-weight: 700; text-decoration: none;
	transition: background-color .382s, color .382s;
}
.entry-content .swell-block-button__link::after { content: '→'; transition: transform .618s var(--ease); }
.entry-content .swell-block-button__link:hover { background: var(--ink); color: var(--ground); }
.entry-content .swell-block-button__link:hover::after { transform: translateX(4px); }

/* アコーディオン：大きな区切り（事業内容・品目・サイズ・保有設備など）として表示 */
.entry-content .swell-block-accordion + .swell-block-accordion { margin-top: var(--s6); }
.entry-content .swell-block-accordion details { margin: 0; }
.entry-content .swell-block-accordion__title {
	list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: var(--s3);
	font-family: var(--font-serif); font-weight: 800; line-height: var(--lh-head);
}
.entry-content .swell-block-accordion__title::-webkit-details-marker { display: none; }
.entry-content .swell-block-accordion__icon { display: none; }
.entry-content .swell-block-accordion__title::after {
	content: '−'; flex: none; width: var(--s5); height: var(--s5); border-radius: 50%; display: grid; place-items: center;
	font-family: var(--font-sans); font-size: var(--t1); font-weight: 400; color: var(--brand-text); box-shadow: 0 0 0 1px var(--line);
	transition: background-color .382s, color .382s;
}
.entry-content details:not([open]) > .swell-block-accordion__title::after { content: '+'; }
.entry-content .swell-block-accordion__title:hover::after { background: var(--brand-strong); color: #fff; }
.entry-content .swell-block-accordion.is-style-default > details > .swell-block-accordion__title {
	font-size: clamp(var(--t2), 3vw, var(--t3)); padding-bottom: var(--s3); border-bottom: 1px solid var(--line); position: relative;
}
.entry-content .swell-block-accordion.is-style-default > details > .swell-block-accordion__title::before {
	content: ''; position: absolute; left: 0; bottom: -1px; width: var(--s6); height: 3px; background: var(--brand);
}
.entry-content .swell-block-accordion.is-style-simple > details > .swell-block-accordion__title { font-size: var(--t1); padding-left: var(--s3); border-left: 4px solid var(--accent); }
.entry-content .swell-block-accordion__body { padding-top: var(--s4); display: flex; flex-direction: column; gap: var(--s4); }
.entry-content .swell-block-accordion__body > * { margin: 0; }
.entry-content .swell-block-accordion.is-style-simple { margin-top: var(--s2); }

/* 囲みボックス（溶剤塗装・粉体塗装などのまとまり）：左に緑の線が入った白いカード */
.entry-content .cap_box {
	position: relative; background: #fff; border-radius: var(--r3); padding: var(--s5); box-shadow: 0 0 0 1px var(--line); overflow: hidden;
}
.entry-content .cap_box::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--brand); }
.entry-content .cap_box + .cap_box { margin-top: var(--s4); }
.entry-content .cap_box_ttl { font-family: var(--font-serif); font-weight: 800; font-size: var(--t2); line-height: var(--lh-head); margin-bottom: var(--s3); }
.entry-content .cap_box_content { color: var(--ink-2); }
.entry-content .cap_box_content p { margin: 0 0 .618em; }
.entry-content .cap_box_content > :last-child { margin-bottom: 0; }
.entry-content .cap_box_content p.u-mb-0 { margin-bottom: 0; }
/* 小さい見出しの囲み（採用の「選考の流れ」）は、囲まずに大きな見出しとして */
.entry-content .cap_box.is-style-small_ttl { background: none; box-shadow: none; padding: 0; overflow: visible; }
.entry-content .cap_box.is-style-small_ttl::before { display: none; }
.entry-content .cap_box.is-style-small_ttl > .cap_box_ttl {
	font-size: clamp(var(--t2), 3vw, var(--t3)); padding-bottom: var(--s3); margin-bottom: var(--s5); border-bottom: 1px solid var(--line); position: relative;
}
.entry-content .cap_box.is-style-small_ttl > .cap_box_ttl::after { content: ''; position: absolute; left: 0; bottom: -1px; width: var(--s6); height: 3px; background: var(--brand); }

/* ステップ（選考の流れ）：STEP 番号の丸を線でつないだ横並びの流れ */
.entry-content .swell-block-step { counter-reset: step; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: var(--s4); }
.entry-content .swell-block-step__item { counter-increment: step; position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: var(--s3); }
.entry-content .swell-block-step__item:not(:last-child)::after {
	content: ''; position: absolute; top: calc(var(--s6) / 2); left: calc(var(--s6) + var(--s2)); right: calc(var(--s2) - var(--s4));
	border-top: 2px dotted var(--brand-soft);
}
.entry-content .swell-block-step__number {
	width: var(--s6); height: var(--s6); border-radius: 50%; flex: none; background: var(--brand-strong) !important; color: #fff;
	display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1;
	box-shadow: 0 0 0 var(--s1) var(--ground), 0 0 0 calc(var(--s1) + 1px) var(--brand-soft);
}
.entry-content .swell-block-step__number .__label { font-family: var(--font-en); font-size: 10px; letter-spacing: .2em; opacity: .8; }
.entry-content .swell-block-step__number::after { content: counter(step, decimal-leading-zero); font-family: var(--font-en); font-weight: 700; font-size: var(--t2); margin-top: 3px; }
.entry-content .swell-block-step__title { font-family: var(--font-serif); font-weight: 800; font-size: var(--t2) !important; line-height: var(--lh-head); }
.entry-content .swell-block-step__body { font-size: 15px; line-height: 1.8; color: var(--ink-2); background: #fff; border-radius: var(--r2); padding: var(--s3); box-shadow: 0 0 0 1px var(--line); align-self: stretch; flex: 1; }
.entry-content .swell-block-step__body p { margin: 0; }
.entry-content .swell-block-step__body p + p { margin-top: .382em; }

/* ファイル（PDF）ブロック：営業日カレンダーなど。埋め込み表示の枠と、ファイル名・ダウンロードボタン */
.entry-content .wp-block-file { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2) var(--s3); }
.entry-content .wp-block-file__embed { display: block; width: 100%; height: min(80svh, 900px) !important; border-radius: var(--r2); background: #fff; box-shadow: 0 0 0 1px var(--line); margin-bottom: var(--s2); }
.entry-content .wp-block-file__embed[hidden] { display: none; }
/* 規約（プライバシーポリシーなど）：main.js が番号付きの小見出しごとにカードへまとめる */
.entry-content .policy-lead {
	padding: var(--s4) var(--s5); border-left: 4px solid var(--brand); border-radius: 0 var(--r2) var(--r2) 0;
	background: var(--ground-2); color: var(--ink-2); line-height: 1.9;
}
.entry-content.is-policy > .policy-item + .policy-item { margin-top: var(--s3); }
.entry-content .policy-item {
	display: grid; grid-template-columns: var(--s6) 1fr; gap: var(--s4); align-items: start;
	padding: var(--s5); border-radius: var(--r3); background: #fff; box-shadow: 0 0 0 1px var(--line);
}
.entry-content .policy-item__no {
	font-family: var(--font-en); font-weight: 700; font-size: var(--t4); line-height: 1; color: var(--brand);
	padding-bottom: var(--s2); border-bottom: 2px solid var(--brand-soft);
}
.entry-content .policy-item__body { min-width: 0; }
.entry-content .policy-item__body > * { margin: 0; }
.entry-content .policy-item__body > * + * { margin-top: .618em; }
.entry-content .policy-item h3 { margin: 0; padding: 0; border: 0; font-family: var(--font-serif); font-size: var(--t2); font-weight: 800; line-height: var(--lh-head); }
.entry-content .policy-item h3 + * { margin-top: var(--s3); }
.entry-content .policy-item p { color: var(--ink-2); line-height: 1.9; }
.entry-content .policy-list li + li { margin-top: .382em; }
.entry-content .policy-dl { margin: var(--s3) 0 0; border-radius: var(--r2); overflow: hidden; box-shadow: 0 0 0 1px var(--line); }
.entry-content .policy-dl div { display: grid; grid-template-columns: 6em 1fr; }
.entry-content .policy-dl div + div { border-top: 1px solid var(--line); }
.entry-content .policy-dl dt { padding: var(--s2) var(--s3); background: var(--ground-2); font-weight: 700; font-size: 14px; color: var(--ink-2); }
.entry-content .policy-dl dd { margin: 0; padding: var(--s2) var(--s3); font-size: 15px; }

/* PDF.js で描き出した PDF の各ページ（main.js） */
.entry-content .pdf-pages { width: 100%; display: flex; flex-direction: column; gap: var(--s3); margin-bottom: var(--s2); min-height: var(--s7); }
.entry-content .pdf-pages canvas { display: block; width: 100%; height: auto; border-radius: var(--r2); background: #fff; box-shadow: 0 0 0 1px var(--line); }
.entry-content .wp-block-file > a:not(.wp-block-file__button) { font-weight: 700; }
/* ダウンロードボタンは出さない（ユーザー指示）。PDF はページ内に表示し、ファイル名のリンクから開ける */
.entry-content .wp-block-file__button { display: none !important; }

/* 募集要項の一覧（SWELL の説明リスト）：項目名 1 : 内容 2.618 の表 */
.entry-content .swell-block-dl {
	display: grid; grid-template-columns: minmax(8em, 1fr) 2.618fr; margin: 0;
	background: #fff; border-radius: var(--r3); overflow: hidden; box-shadow: 0 0 0 1px var(--line);
}
.entry-content .swell-block-dl__dt, .entry-content .swell-block-dl__dd { margin: 0; padding: var(--s3) var(--s4); border-bottom: 1px solid var(--line); }
.entry-content .swell-block-dl__dt { background: var(--ground-2); color: var(--ink-2); font-size: 15px; font-weight: 700; display: flex; align-items: flex-start; gap: var(--s2); }
.entry-content .swell-block-dl__dt::before { content: ''; flex: none; width: 4px; height: 1.1em; margin-top: .3em; border-radius: 2px; background: var(--brand); }
.entry-content .swell-block-dl__dt .swl-fz { font-size: inherit; }
.entry-content .swell-block-dl__dd { font-size: 15px; line-height: 1.8; }
.entry-content .swell-block-dl__dd p { margin: 0; }
.entry-content .swell-block-dl__dd p + p { margin-top: .382em; }
.entry-content .swell-block-dl__dt:nth-last-of-type(1), .entry-content .swell-block-dl__dd:last-of-type { border-bottom: 0; }
.entry-content .swell-block-dl + * { margin-top: var(--s7); }

/* 見出しの中の文字サイズ指定は見出しの大きさに合わせる */
.entry-content h2 .swl-fz { font-size: inherit; }
.entry-content .swell-block-fullWide__inner > h2 { margin-top: var(--s5); }
.entry-content .swell-block-fullWide__inner > h2:first-child { margin-top: 0; }

/* 会社情報（SWELL の 2 列の段組み .shadow_on が縦に並んだもの）：一つながりの表に見せる */
.entry-content .wp-block-columns.shadow_on {
	display: grid !important; grid-template-columns: minmax(8em, 1fr) 2.618fr; gap: 0 !important; margin: 0 !important;
	background: #fff; box-shadow: 0 0 0 1px var(--line); border-radius: 0;
}
.entry-content .wp-block-columns.shadow_on + .wp-block-columns.shadow_on { margin-top: -1px !important; }
/* 見出しのすぐ下に来る 1 行目は、見出しとの間をあける */
.entry-content h2 + .wp-block-columns.shadow_on { margin-top: var(--s5) !important; }
.entry-content .wp-block-columns.shadow_on:not(.shadow_on + .shadow_on) { border-radius: var(--r3) var(--r3) 0 0; overflow: hidden; }
.entry-content .wp-block-columns.shadow_on:not(:has(+ .shadow_on)) { border-radius: 0 0 var(--r3) var(--r3); overflow: hidden; }
.entry-content .wp-block-columns.shadow_on > .wp-block-column { margin: 0; padding: var(--s3) var(--s4); min-width: 0; background: none !important; }
.entry-content .wp-block-columns.shadow_on > .wp-block-column:first-child { background: var(--ground-2) !important; color: var(--ink-2); font-weight: 700; font-size: 15px; }
.entry-content .wp-block-columns.shadow_on > .wp-block-column:last-child { font-size: 15px; line-height: 1.8; }
.entry-content .wp-block-columns.shadow_on p { margin: 0; }
.entry-content .wp-block-columns.shadow_on p + p { margin-top: .236em; }
/* 小見出し（「本社工場」「第二工場」など）：緑の印つき */
.entry-content p.is-style-border_left { display: flex; align-items: center; gap: var(--s2); font-weight: 700; }
.entry-content p.is-style-border_left::before { content: ''; flex: none; width: 4px; height: 1em; border-radius: 2px; background: var(--brand); }
.entry-content .wp-block-column:last-child p.is-style-border_left:not(:first-child) { margin-top: var(--s4); }
.entry-content .wp-block-column:last-child p.is-style-border_left + p { margin-top: var(--s1); }
/* アクセスの写真と地図：2 列に並べ、同じ高さの黄金長方形に */
.entry-content .wp-block-column .wp-block-columns { display: grid !important; grid-template-columns: 1fr 1fr; gap: var(--s2) !important; margin: var(--s2) 0 0 !important; }
.entry-content .wp-block-column .wp-block-columns > .wp-block-column { margin: 0; min-width: 0; }
/* 編集画面で大きさを変えた画像（.is-resized）は、WordPress 本体の指定で入れ物が縮むため、横いっぱいに戻す */
.entry-content .wp-block-column .wp-block-columns figure { margin: 0; display: block !important; width: 100% !important; max-width: none !important; }
.entry-content .wp-block-column .wp-block-columns :is(img, iframe) { display: block; width: 100% !important; height: auto !important; aspect-ratio: 1.618 / 1 !important; object-fit: cover; border-radius: var(--r2); box-shadow: none; }

/* 沿革の年表（main.js が「日付の行・出来事の行」が交互に並ぶ表に .history-timeline を付ける） */
.entry-content .history-timeline { margin-top: var(--s5); }
.entry-content .history-timeline table { display: block; background: none; box-shadow: none; border-radius: 0; overflow: visible; font-size: 15px; }
.entry-content .history-timeline tbody { display: block; position: relative; padding-left: var(--s5); }
.entry-content .history-timeline tbody::before { content: ''; position: absolute; left: calc(var(--s5) / 2 - 1px); top: var(--s2); bottom: var(--s2); width: 2px; background: var(--brand-soft); }
.entry-content .history-timeline tr { display: block; }
.entry-content .history-timeline td { display: block; width: auto; padding: 0; border: 0; background: none !important; }
.entry-content .history-timeline tbody tr:hover td { background: none; }
.entry-content .history-timeline tr.is-date td { position: relative; margin-top: var(--s4); font-weight: 700; color: var(--brand-text); letter-spacing: .04em; }
.entry-content .history-timeline tr.is-date:first-child td { margin-top: 0; }
.entry-content .history-timeline tr.is-date td::before {
	content: ''; position: absolute; left: calc(var(--s5) / -2 - 6px); top: .45em; width: 12px; height: 12px; border-radius: 50%;
	background: var(--brand-strong); box-shadow: 0 0 0 4px var(--ground);
}
.entry-content .history-timeline tr.is-event td { margin-top: var(--s1); padding: var(--s2) var(--s3); background: #fff !important; border-radius: var(--r1); box-shadow: 0 0 0 1px var(--line); color: var(--ink-2); line-height: 1.8; }

/* 大事な条件のまとめ（main.js が募集要項の一覧から作る） */
.job-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s2); }
.job-summary__item {
	position: relative; overflow: hidden; display: flex; flex-direction: column; gap: var(--s1);
	padding: var(--s4); border-radius: var(--r2); background: var(--brand-strong); color: #fff;
}
.job-summary__item::after { content: ''; position: absolute; right: calc(var(--s4) * -1); bottom: calc(var(--s4) * -1); width: var(--s6); height: var(--s6); border-radius: 50%; background: rgba(255, 255, 255, .08); }
.job-summary__label { font-size: var(--t-1); letter-spacing: .1em; color: var(--brand-soft); font-weight: 700; }
.job-summary__value { font-family: var(--font-serif); font-size: var(--t1); font-weight: 800; line-height: var(--lh-head); }
.entry-content .job-summary + * { margin-top: var(--s5); }

/* 応募ボタン（塗りつぶし）：大きく中央に */
.entry-content .swell-block-button.is-style-btn_solid { display: flex; justify-content: center; margin-top: var(--s6); }
.entry-content .is-style-btn_solid .swell-block-button__link {
	padding: var(--s3) var(--s6); font-size: var(--t0); background: var(--brand-strong); border-color: var(--brand-strong); color: #fff;
	box-shadow: 0 var(--s3) var(--s4) calc(var(--s3) * -1) rgba(52, 114, 112, .6);
}
.entry-content .is-style-btn_solid .swell-block-button__link:hover { background: var(--ink); border-color: var(--ink); color: #fff; }

/* ボックスメニュー（品目の一覧）：アイコンつきのタイル */
.entry-content .swell-block-box-menu__inner { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s2); }
.entry-content .swell-block-box-menu__link {
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--s2); height: 100%;
	padding: var(--s4) var(--s3); border-radius: var(--r2); background: #fff; box-shadow: 0 0 0 1px var(--line);
	color: var(--ink); font-weight: 700; text-decoration: none; text-align: center; transition: background-color .382s, color .382s, transform .618s var(--ease);
}
.entry-content .swell-block-box-menu__figure { font-size: var(--t4); line-height: 1; color: var(--brand); transition: color .382s; }
.entry-content .swell-block-box-menu__figure svg { display: block; fill: currentColor; }
.entry-content .swell-block-box-menu__link:hover { background: var(--brand-strong); color: #fff; transform: translateY(-3px); }
.entry-content .swell-block-box-menu__link:hover .swell-block-box-menu__figure { color: #fff; }

/* 表：旧テーマのセル背景用の飾りは消し、1 列目を項目名に */
.entry-content .swl-cell-bg { display: none; }
.entry-content td[data-has-cell-bg] { background: var(--ground-2); color: var(--ink-2); font-weight: 700; width: 61.8%; }
.entry-content td[data-has-cell-bg] + td { font-family: var(--font-en); font-weight: 700; }

/* ポイントの一覧（強みなど）：白いカードにチェック印 */
.entry-content .is-style-big_icon_point { background: #fff !important; border: 0; border-radius: var(--r3); padding: var(--s5); box-shadow: 0 0 0 1px var(--line); }
.entry-content .is-style-big_icon_point ul li { padding-left: 2em; }
.entry-content .is-style-big_icon_point ul li::before {
	content: '✓'; width: 1.382em; height: 1.382em; top: .25em; left: 0; display: grid; place-items: center;
	background: var(--brand-strong); color: #fff; font-size: 13px; font-weight: 700;
}

/* お知らせの記事 */
.post-head { display: flex; flex-direction: column; gap: var(--s3); padding-bottom: var(--s4); margin-bottom: var(--s5); border-bottom: 1px solid var(--line); }
.post-head__title { font-family: var(--font-serif); font-weight: 800; font-size: clamp(var(--t2), 3.4vw, var(--t4)); line-height: var(--lh-head); }
.entry-meta { font-family: var(--font-en); color: var(--muted); font-size: 14px; display: flex; gap: var(--s3); align-items: center; }
.entry-meta .cat { font-family: var(--font-sans); font-size: var(--t-1); font-weight: 700; padding: 2px var(--s2); border-radius: 999px; background: var(--ground-2); color: var(--brand-text); }
.post-thumb { margin-bottom: var(--s5); }
.post-thumb img { border-radius: var(--r3); width: 100%; aspect-ratio: 1.618 / 1; object-fit: cover; }

/* 404 */
.notfound { max-width: var(--read); margin: 0 auto; text-align: center; display: flex; flex-direction: column; align-items: center; gap: var(--s4); color: var(--ink-2); }
.notfound__num { font-family: var(--font-en); font-weight: 700; font-size: clamp(var(--s7), 18vw, var(--s8)); line-height: 1; color: var(--brand); letter-spacing: .04em; }

/* ページ下部：ほかのページへ（カード 3 枚、写真は黄金長方形） */
/* 下の余白は、続くお問い合わせの緑の囲みとの間をあけるため */
.page-links { padding: var(--s7) 0; border-top: 1px solid var(--line); }
.page-links .eyebrow { display: block; margin-bottom: var(--s4); }
.page-links__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s4); }
.page-link { display: flex; flex-direction: column; gap: var(--s2); color: var(--ink); }
.page-link__img { display: block; aspect-ratio: 1.618 / 1; border-radius: var(--r2); background-size: cover; background-position: center; filter: saturate(.8) contrast(.94) brightness(1.03) sepia(.06); transition: transform 1s var(--ease); }
.page-link:hover .page-link__img { transform: scale(1.03); }
.page-link__en { font-family: var(--font-en); font-size: var(--t-1); letter-spacing: .3em; color: var(--brand-text); margin-top: var(--s2); }
.page-link__ttl { display: flex; align-items: center; justify-content: space-between; font-family: var(--font-serif); font-weight: 800; font-size: var(--t2); line-height: var(--lh-head); }
.page-link__ttl svg { width: var(--s4); height: var(--s4); transition: transform .618s var(--ease); }
.page-link:hover { color: var(--ink); }
.page-link:hover .page-link__ttl svg { transform: translateX(var(--s1)); }
.entry-content .wp-block-button__link, .entry-content .wp-element-button {
	background: var(--accent); color: #fff; border-radius: 999px; padding: var(--s3) var(--s5); text-decoration: none; font-weight: 700;
	transition: background-color .382s, transform .618s var(--ease); display: inline-block;
}
.entry-content .wp-block-button__link:hover { background: var(--ink); color: #fff; transform: translateY(-2px); }

/* お問い合わせフォーム（主要プラグイン共通） */
.entry-content input[type="text"], .entry-content input[type="email"], .entry-content input[type="tel"],
.entry-content input[type="url"], .entry-content input[type="number"], .entry-content select, .entry-content textarea {
	width: 100%; padding: var(--s3); border: 1px solid rgba(23, 35, 34, .25); border-radius: var(--r1);
	background: #fff; font: inherit; color: var(--ink); transition: border-color .382s, box-shadow .382s;
}
.entry-content input:focus, .entry-content select:focus, .entry-content textarea:focus {
	outline: none; border-color: var(--accent); box-shadow: 0 0 0 4px rgba(64, 136, 134, .18);
}
.entry-content input[type="submit"], .entry-content button[type="submit"] {
	background: var(--accent); color: #fff; border: 0; border-radius: 999px; padding: var(--s3) var(--s6);
	font: inherit; font-weight: 700; letter-spacing: .1em; cursor: pointer;
	transition: background-color .382s, transform .618s var(--ease);
}
.entry-content input[type="submit"]:hover, .entry-content button[type="submit"]:hover { background: var(--ink); transform: translateY(-2px); }

/* =========================================================
   営業日カレンダー（page-calendar.php）
   最新年度をページ内に表示し、その下に年度別の一覧（年度ページから自動で作る）
   ========================================================= */
.cal-latest, .cal-list { max-width: calc(var(--read) * 1.272); margin: 0 auto; }
.cal-latest__head, .cal-list__head { display: flex; flex-direction: column; gap: var(--s2); margin-bottom: var(--s4); }
.cal-latest__title, .cal-list__title { font-family: var(--font-serif); font-weight: 800; font-size: clamp(var(--t2), 3vw, var(--t3)); line-height: var(--lh-head); }
.cal-latest__pdf .wp-block-file { margin: 0; }
.cal-list { margin-top: var(--s7); }
.cal-list__items { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s3); }
.cal-card {
	position: relative; display: flex; flex-direction: column; gap: var(--s1); padding: var(--s4) var(--s4) var(--s4) var(--s5);
	border-radius: var(--r2); background: #fff; box-shadow: 0 0 0 1px var(--line); color: var(--ink); overflow: hidden;
	transition: transform .618s var(--ease), box-shadow .618s var(--ease);
}
.cal-card::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--brand-soft); }
.cal-list__items li:first-child .cal-card::before { background: var(--brand); }
.cal-card:hover { color: var(--ink); transform: translateY(-3px); box-shadow: 0 0 0 1px var(--line), 0 var(--s3) var(--s4) calc(var(--s3) * -1) rgba(23, 35, 34, .3); }
.cal-card__year { font-family: var(--font-en); font-weight: 700; font-size: var(--t4); line-height: 1; color: var(--brand-text); }
.cal-card__label { font-size: 14px; font-weight: 700; color: var(--ink-2); }
.cal-card__badge { position: absolute; top: var(--s3); right: var(--s3); padding: 2px var(--s2); border-radius: 999px; background: var(--brand-strong); color: #fff; font-size: 11px; font-weight: 700; letter-spacing: .08em; }
.cal-card svg { position: absolute; right: var(--s3); bottom: var(--s3); width: var(--s3); height: var(--s3); color: var(--brand); transition: transform .618s var(--ease); }
.cal-card:hover svg { transform: translateX(var(--s1)); }

/* =========================================================
   お問い合わせページ（page-contact.php）
   フォーム 1.618 : お電話の案内 1 の黄金比
   ========================================================= */
.contact-layout { display: grid; grid-template-columns: var(--golden); gap: var(--s5); align-items: start; }
.contact-layout .entry { max-width: none; margin: 0; }
/* 本文の「お問い合わせ」の見出しはページ上部の題名と重なるので出さない */
.contact-form .entry-content > h2:first-child { display: none; }
.contact-form .entry-content > h2:first-child + * { margin-top: 0; }

.contact-form { background: #fff; border-radius: var(--r3); padding: var(--s6); box-shadow: 0 0 0 1px var(--line); }
.contact-form__head { display: flex; flex-direction: column; gap: var(--s2); padding-bottom: var(--s4); margin-bottom: var(--s5); border-bottom: 1px solid var(--line); }
.contact-form__title, .contact-info__title { font-family: var(--font-serif); font-weight: 800; font-size: var(--t2); line-height: var(--lh-head); }
.contact-form__note { font-size: 14px; color: var(--muted); }

/* Contact Form 7：項目名と「必須」「任意」の札、大きめの入力欄 */
.contact-form .wpcf7-form br { display: none; }
.contact-form .hidden-fields-container { display: none; } /* 送信用の隠し項目の入れ物 */
.contact-form .wpcf7-form > p { margin: 0; }
.contact-form .wpcf7-form > p + p { margin-top: var(--s4); }
.contact-form .wpcf7-form label { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s1) var(--s2); font-weight: 700; font-size: 15px; }
.contact-form .wpcf7-form-control-wrap { display: block; width: 100%; margin-top: var(--s1); }
.contact-form .badge { display: inline-block; padding: 2px var(--s2); border-radius: 999px; font-size: 11px; font-weight: 700; letter-spacing: .08em; line-height: 1.6; }
.contact-form .badge.required { background: var(--brand-strong); color: #fff; }
.contact-form .badge.optional { background: var(--ground-2); color: var(--muted); }
.contact-form :is(input[type="text"], input[type="email"], input[type="tel"], textarea) { background: var(--ground); border-color: transparent; padding: var(--s3) var(--s3); font-weight: 400; }
.contact-form :is(input[type="text"], input[type="email"], input[type="tel"], textarea):focus { background: #fff; }
.contact-form textarea { min-height: calc(var(--s7) * 2); resize: vertical; }
/* プライバシーポリシーへの同意：チェックしないと送信できないので、囲みで目立たせる。チェックすると緑に */
.contact-form .wpcf7-acceptance { display: block; }
.contact-form .wpcf7-acceptance .wpcf7-list-item { display: block; margin: 0; }
.contact-form .wpcf7-acceptance label {
	display: flex; align-items: center; gap: var(--s2); padding: var(--s3) var(--s4); border-radius: var(--r2);
	background: var(--ground); box-shadow: 0 0 0 2px var(--brand-soft); font-weight: 700; cursor: pointer;
	transition: background-color .382s, box-shadow .382s;
}
.contact-form .wpcf7-acceptance label:has(input:checked) { background: rgba(156, 203, 196, .25); box-shadow: 0 0 0 2px var(--brand-strong); }
.contact-form .wpcf7-acceptance input[type="checkbox"] { flex: none; width: 22px; height: 22px; margin: 0; accent-color: var(--brand-strong); cursor: pointer; }
/* チェック前は、送信ボタンの下に案内を出す（送信完了後は、フォームが空に戻ってもチェック前と同じ状態になるので出さない） */
.contact-form .wpcf7-form:not(.sent) > p:has(.wpcf7-submit:disabled)::after {
	content: '↑ プライバシーポリシーに同意（チェック）すると送信できます';
	display: block; margin-top: var(--s2); text-align: center; font-size: 13px; font-weight: 700; color: var(--brand-text);
}
/* 送信ボタン：横いっぱいの大きな緑のボタン */
.contact-form .wpcf7-submit { width: 100%; padding: var(--s3) var(--s5); font-size: var(--t1); background: var(--brand-strong); box-shadow: 0 var(--s3) var(--s4) calc(var(--s3) * -1) rgba(52, 114, 112, .6); }
.contact-form .wpcf7-submit:disabled { background: #B9C2C0; box-shadow: none; cursor: not-allowed; transform: none; }
.contact-form .wpcf7-spinner { display: block; margin: var(--s2) auto 0; }
/* 入力漏れ・送信結果のお知らせ */
.contact-form .wpcf7-not-valid { border-color: #C2554A !important; background: #FDF3F1 !important; }
.contact-form .wpcf7-not-valid-tip { display: block; margin-top: var(--s1); font-size: 13px; font-weight: 700; color: #B0463C; }
.contact-form .wpcf7-response-output { margin: var(--s4) 0 0 !important; padding: var(--s3) var(--s4) !important; border-radius: var(--r2); border: 0 !important; font-size: 14px; font-weight: 700; background: var(--ground-2); color: var(--ink-2); }
.contact-form .wpcf7-form.sent .wpcf7-response-output { background: var(--brand-strong); color: #fff; }
.contact-form .wpcf7-form:is(.invalid, .unaccepted, .failed, .spam) .wpcf7-response-output { background: #FDF3F1; color: #B0463C; }
.contact-form .wpcf7-response-output:empty { display: none; }

/* お電話の案内：緑のパネル（スクロールしても画面に残る） */
.contact-info {
	position: sticky; top: calc(var(--s6) + var(--s5)); display: flex; flex-direction: column; gap: var(--s3);
	padding: var(--s5); border-radius: var(--r3); background: var(--brand-strong); color: #fff; overflow: hidden;
}
.contact-info::after { content: ''; position: absolute; right: calc(var(--s6) * -1); top: calc(var(--s6) * -1); width: var(--s8); height: var(--s8); border-radius: 50%; background: rgba(255, 255, 255, .06); pointer-events: none; }
.contact-info .eyebrow { color: var(--brand-soft); }
.contact-info__tel { font-family: var(--font-en); font-weight: 700; font-size: clamp(var(--t3), 2.6vw, var(--t4)); line-height: 1.1; color: #fff; letter-spacing: .02em; }
.contact-info__tel:hover { color: var(--brand-soft); }
.contact-info__hours { font-size: 14px; color: rgba(255, 255, 255, .86); }
.contact-info__lead { font-size: 14px; line-height: 1.8; padding: var(--s3); border-radius: var(--r2); background: rgba(255, 255, 255, .1); }
.contact-info__sites { margin: 0; display: flex; flex-direction: column; gap: var(--s3); font-size: 13px; line-height: 1.8; }
.contact-info__sites dt { font-weight: 700; color: var(--brand-soft); }
.contact-info__sites dd { margin: 0; color: rgba(255, 255, 255, .86); }
.contact-info__sites a, .contact-info__cal { color: #fff; }
.contact-info__cal { display: inline-flex; align-items: center; gap: var(--s2); font-size: 14px; font-weight: 700; padding-top: var(--s3); border-top: 1px solid rgba(255, 255, 255, .2); }
.contact-info__cal svg { width: var(--s3); height: var(--s3); transition: transform .618s var(--ease); }
.contact-info__cal:hover { color: var(--brand-soft); }
.contact-info__cal:hover svg { transform: translateX(var(--s1)); }

/* お知らせ一覧・ページ送り */
.archive-list { max-width: var(--read); margin: 0 auto; }
.pagination { margin-top: var(--s6); display: flex; justify-content: center; }
.pagination .nav-links { display: flex; gap: var(--s2); flex-wrap: wrap; }
.pagination .page-numbers {
	min-width: var(--s5); height: var(--s5); padding: 0 var(--s3); display: flex; align-items: center; justify-content: center;
	border-radius: 999px; border: 1px solid var(--line); color: var(--ink); font-family: var(--font-en);
}
.pagination .page-numbers.current, .pagination a.page-numbers:hover { background: var(--ink); color: var(--ground); border-color: var(--ink); }
.post-nav { max-width: var(--read); margin: var(--s6) auto 0; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: var(--s4); padding-top: var(--s4); border-top: 1px solid var(--line); font-size: 14px; }
.post-nav__next { text-align: right; }
.post-nav a { color: var(--ink-2); }
.post-nav a:hover { color: var(--accent); }

/* =========================================================
   レスポンシブ（スマホでは余白・文字を φ 一段ずつ縮小）
   ========================================================= */
@media (max-width: 1100px) {
	.gnav ul { gap: var(--s3); }
	.equip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.cta__box { padding: var(--s5); }
}

@media (max-width: 960px) {
	:root {
		--gutter: 26px;
		--s5: 26px;
		--s6: 42px;
		--s7: 68px;
	}
	.admin-bar .site-header { top: 46px; }
	/* ぼかし（backdrop-filter）があると、中のメニュー一覧（position: fixed）が画面ではなく
	   ヘッダーの高さの中に閉じ込められて見えなくなる。スマホではぼかしを使わない */
	.site-header { backdrop-filter: none; -webkit-backdrop-filter: none; background: rgba(244, 245, 241, .97); }
	.site-header__inner { height: 68px; }
	.logo img { height: 34px; }
	.menu-toggle { display: block; z-index: 60; }
	.gnav {
		position: fixed; inset: 68px 0 0 0; background: var(--ground);
		padding: var(--s5) var(--gutter) var(--s6); overflow-y: auto;
		opacity: 0; visibility: hidden; transform: translateY(-12px);
		transition: opacity .618s var(--ease), transform .618s var(--ease), visibility .618s;
	}
	.admin-bar .gnav { top: 114px; }
	.menu-open .gnav { opacity: 1; visibility: visible; transform: none; }
	.gnav ul { flex-direction: column; align-items: stretch; gap: 0; }
	.gnav li { border-bottom: 1px solid var(--line); }
	.gnav a { display: block; padding: var(--s4) 4px; font-size: var(--t1); font-weight: 700; }
	.gnav a::after { display: none; }
	.gnav .gnav__cta { border: 0; margin-top: var(--s4); }
	.gnav .gnav__cta a { display: block; text-align: center; padding: var(--s3); }
	.menu-open { overflow: hidden; }

	.hero { min-height: clamp(610px, calc(100svh - 68px), 844px); }
	.hero__shade { background: linear-gradient(0deg, rgba(16, 19, 19,.88) 0%, rgba(16, 19, 19,.66) 38.2%, rgba(16, 19, 19,.26) 100%); }
	.hero__inner { padding-top: var(--s7); padding-bottom: var(--s5); gap: var(--s5); }
	.hero__text { width: 100%; }
	.hero__title { font-size: clamp(var(--t4), 12vw, var(--t5)); }
	.hero__title > .hero__place { font-size: 14px; letter-spacing: .08em; margin-bottom: var(--s2); }
	.hero__scroll, .hero__cap-en { display: none; }
	.hero__meta { flex-wrap: wrap; gap: var(--s3); }
	.hero__cap b { font-size: var(--t-1); padding: 3px var(--s2); }
	.hero__bar { width: var(--s5); }

	.line-feature { grid-template-columns: 1fr; gap: var(--s5); }
	.line-feature__media { grid-template-columns: 1fr 1fr; }
	.line-feature__clip, .line-feature__clip:first-child, .line-feature--rev .line-feature__clip:last-child { aspect-ratio: 1 / 1.272; }
	.line-feature--rev .line-feature__media { order: 0; grid-template-columns: 1fr 1fr; }

	.stats__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.stat:nth-child(2) { border-right: 0; }
	.stat:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
	.stat { padding: var(--s4) var(--s3); min-width: 0; }
	/* 2 列だと「6,000mm」が 1 マスに収まらないので、数字を少し小さくし単位は下の行に */
	.stat__num { font-size: clamp(var(--t2), 7.5vw, var(--t3)); }
	.stat__num small { display: block; margin: var(--s1) 0 0; font-size: 14px; }

	.business__head { grid-template-columns: 1fr; gap: var(--s3); margin-bottom: var(--s5); }
	.cards { grid-template-columns: 1fr; gap: var(--s3); }

	.strengths__grid { grid-template-columns: 1fr; gap: var(--s5); }
	.strengths__head { position: static; }
	.strengths__list li { font-size: 17px; gap: var(--s3); padding: var(--s3) 0; }

	.products .sec-head { margin-bottom: var(--s5); }
	.products__grid { grid-template-columns: 1fr; gap: var(--s5); margin-bottom: var(--s5); }
	.item-list a { font-size: 17px; padding: var(--s3) var(--s2); }
	.equip-photos { grid-template-columns: 1fr; grid-template-rows: none; aspect-ratio: auto; }
	.equip-photos li:first-child { grid-row: auto; }
	.equip-photos li { aspect-ratio: 1.618 / 1; }
	.equip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.size-box__mid { font-size: 17px; }

	.recruit__top { max-width: none; }
	.jobs { grid-template-columns: 1fr; }
	.flow__steps { grid-template-columns: 1fr; gap: var(--s4); }

	.split { grid-template-columns: 1fr; gap: var(--s5); }
	.access { grid-template-columns: 1fr; gap: var(--s5); }
	.dl__row { grid-template-columns: 1fr; gap: 4px; padding: var(--s3) 0; }
	.news-list a { flex-wrap: wrap; gap: var(--s2) var(--s3); padding: var(--s3) 0; }
	.news-list .ttl { width: 100%; }

	.cta__box { grid-template-columns: 1fr; gap: var(--s5); padding: var(--s5) var(--s4); }
	.cta__btn-tel { font-size: var(--t2); }

	.site-footer__top { grid-template-columns: 1fr; gap: var(--s5); }
	.site-footer__cols { flex-direction: column; justify-content: flex-start; gap: var(--s4); }
	.site-footer__bottom { flex-direction: column; }

	.page-hero__chips { opacity: .35; }
	.page-hero__lead { font-size: var(--t0); }
	/* 項目と内容の2列の表は、スマホでは縦に積む（カレンダーなど見出し行のある表はそのまま） */
	.entry-content table:not(:has(thead)) th, .entry-content table:not(:has(thead)) td { display: block; width: 100%; }
	.entry-content table:not(:has(thead)) th { padding: var(--s2) var(--s3); border-bottom: 0; }
	.entry-content table:not(:has(thead)) td { padding: var(--s2) var(--s3) var(--s3); }
	.entry-content table:not(:has(thead)) tr:last-child td { border-bottom: 0; }
}

/* 下層ページ：タブレット・スマホでは余白を詰め、案内カードは縦に並べる */
@media (max-width: 960px) {
	.page-main { padding: var(--s6) 0; }
	.page-toc__list a { padding: var(--s1) var(--s3); font-size: 14px; }
	/* 営業日カレンダー：年度別の一覧は 2 列 */
	.cal-list__items { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cal-card__year { font-size: var(--t3); }
	/* お問い合わせ：フォーム → お電話の案内の順に縦に */
	.contact-layout { grid-template-columns: 1fr; }
	.contact-form { padding: var(--s4); }
	.contact-info { position: static; padding: var(--s4); }
	.entry-content .cap_box, .entry-content .is-style-big_icon_point { padding: var(--s4); }
	/* 規約のカード：スマホでは番号を見出しの上に */
	.entry-content .policy-item { grid-template-columns: 1fr; gap: var(--s2); padding: var(--s4); }
	.entry-content .policy-item__no { font-size: var(--t2); justify-self: start; }
	.entry-content .policy-lead { padding: var(--s3) var(--s4); }
	.entry-content .policy-dl div { grid-template-columns: 1fr; }
	.entry-content .swell-block-fullWide__inner:has(> .wp-block-media-text) { grid-template-columns: 1fr; }
	/* 募集要項：スマホでは項目名の下に内容を並べる。まとめは 2 列 */
	.entry-content .swell-block-dl { grid-template-columns: 1fr; }
	.entry-content .swell-block-dl__dt { padding: var(--s2) var(--s3); border-bottom: 0; font-size: 14px; }
	.entry-content .swell-block-dl__dd { padding: var(--s2) var(--s3) var(--s3); }
	/* 会社情報：スマホでは項目名の下に内容。写真と地図は縦に */
	.entry-content .wp-block-columns.shadow_on { grid-template-columns: 1fr; }
	.entry-content .wp-block-columns.shadow_on > .wp-block-column { padding: var(--s2) var(--s3); }
	.entry-content .wp-block-columns.shadow_on > .wp-block-column:first-child { font-size: 14px; }
	.entry-content .wp-block-column .wp-block-columns { grid-template-columns: 1fr; }
	.job-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.job-summary__item { padding: var(--s3); }
	.job-summary__value { font-size: var(--t0); }
	/* 選考の流れ：スマホでは縦に。丸を左、説明を右に置き、丸どうしを縦線でつなぐ */
	.entry-content .swell-block-step { grid-auto-flow: row; gap: var(--s4); }
	.entry-content .swell-block-step__item { display: grid; grid-template-columns: var(--s6) 1fr; column-gap: var(--s3); row-gap: var(--s2); align-items: center; }
	.entry-content .swell-block-step__number { grid-row: 1 / span 2; align-self: start; }
	.entry-content .swell-block-step__number .__label { display: none; }
	.entry-content .swell-block-step__number::after { margin-top: 0; font-size: var(--t1); }
	.entry-content .swell-block-box-menu__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.entry-content .swell-block-step__body { grid-column: 2; }
	.entry-content .swell-block-step__item:not(:last-child)::after {
		top: calc(var(--s6) + var(--s2)); bottom: calc(var(--s2) - var(--s4)); left: calc(var(--s6) / 2); right: auto;
		border-top: 0; border-left: 2px dotted var(--brand-soft);
	}
	.page-links__list { grid-template-columns: 1fr; gap: var(--s5); }
}
