/* ==========================================================================
   FTS Corporate - main.css
   構成: 1.変数 2.ベース 3.レイアウト 4.部品 5.ヘッダー/フッター 6.トップ 7.下層 8.仮文言
   ブレークポイント: 768px（タブレット） / 1024px（PC）  モバイルファーストで記述
   ========================================================================== */

/* 1. 変数 ----------------------------------------------------------------- */
:root {
	--c-navy: #00883f;        /* メイン：ロゴの濃い緑（信頼感） ※変数名は旧配色のなごり */
	--c-navy-2: #00732f;
	--c-blue: #28c84f;        /* アクセント：ロゴの明るい緑（線・大きな数字など） */
	--c-blue-dark: #12883a;   /* 明るい緑の小さい文字用（白背景で読みやすい濃さ） */
	--c-blue-soft: #e2f9e8;
	--c-accent: #ff7a3d;      /* CTA（応募・面談） */
	--c-accent-dark: #e8622a;
	--c-text: #1b2533;
	--c-text-sub: #5b6777;
	--c-line: #e3e8ef;
	--c-bg: #ffffff;
	--c-bg-tint: #f3f7f4;

	--ff-ja: "Noto Sans JP", system-ui, -apple-system, "Hiragino Sans", sans-serif;
	--ff-en: "Montserrat", var(--ff-ja);

	--radius: 12px;
	--radius-lg: 20px;
	--shadow: 0 10px 30px rgba(0, 136, 63, .08);
	--container: 1160px;
	--gutter: 20px;
	--header-h: 64px;
	--section-y: 80px;
}
@media (min-width: 1024px) {
	:root { --gutter: 40px; --header-h: 80px; --section-y: 120px; }
}

/* 2. ベース --------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: var(--header-h); -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	font-family: var(--ff-ja);
	font-size: 15px;
	line-height: 1.9;
	letter-spacing: .04em;
	color: var(--c-text);
	background: var(--c-bg);
	-webkit-font-smoothing: antialiased;
}
@media (min-width: 768px) { body { font-size: 16px; } }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, h4, p, ul, ol, dl, dd, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
button { font: inherit; }
:focus-visible { outline: 2px solid var(--c-blue); outline-offset: 3px; }
.nowrap { white-space: nowrap; }
.phrase-wrap { word-break: keep-all; overflow-wrap: anywhere; } /* <wbr> の位置でだけ改行する */
.text-flow { word-break: auto-phrase; line-break: strict; text-wrap: pretty; } /* 文節で改行し、「、」「。」を行頭に置かない */
@media (min-width: 768px) { .sp-only { display: none; } }
.screen-reader-text {
	position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}
.skip-link { position: absolute; left: -9999px; top: 0; z-index: 1000; background: #fff; padding: 8px 16px; }
.skip-link:focus { left: 8px; top: 8px; }
.site-main { padding-top: var(--header-h); }
.home .site-main { padding-top: 0; }

/* 3. レイアウト ------------------------------------------------------------- */
.container { width: 100%; max-width: calc(var(--container) + var(--gutter) * 2); margin: 0 auto; padding: 0 var(--gutter); }
.container--narrow { max-width: calc(820px + var(--gutter) * 2); }
.section { padding: var(--section-y) 0; }
.section--tint { background: var(--c-bg-tint); }
.section__lead { color: var(--c-text-sub); margin-top: 24px; }
.section__more { margin-top: 48px; text-align: center; }
.section__head-row { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 40px; }
.section__head-row .section-heading { margin-bottom: 0; }
.split { display: grid; gap: 24px; }
@media (min-width: 1024px) { .split { grid-template-columns: 320px 1fr; gap: 64px; } }
.card-grid { display: grid; gap: 24px; margin-top: 40px; }
@media (min-width: 768px) { .card-grid--3 { grid-template-columns: repeat(3, 1fr); } }
.catch { font-size: clamp(20px, 3vw, 28px); font-weight: 700; line-height: 1.6; margin-bottom: 20px; color: var(--c-navy); }
.empty { color: var(--c-text-sub); }
.coming-soon { padding: 56px 24px; border-radius: var(--radius-lg); background: var(--c-bg-tint); text-align: center; font-size: 16px; font-weight: 700; line-height: 1.9; color: var(--c-navy); }
.section--tint .coming-soon { background: #fff; }

/* 4. 部品 ----------------------------------------------------------------- */
.section-heading { margin-bottom: 40px; }
.section-heading--center { text-align: center; }
.section-heading__en {
	font-family: var(--ff-en); font-weight: 800; font-size: clamp(36px, 6vw, 64px);
	line-height: 1.1; letter-spacing: .02em; color: var(--c-navy);
}
.section-heading__ja { font-size: 14px; font-weight: 700; color: var(--c-blue-dark); margin-top: 12px; display: flex; align-items: center; gap: 10px; }
.section-heading__ja::before { content: ""; width: 24px; height: 2px; background: currentColor; }
.section-heading--center .section-heading__ja { justify-content: center; }

.btn {
	display: inline-flex; align-items: center; justify-content: space-between; gap: 16px;
	min-width: 200px; padding: 14px 24px; border-radius: 999px; font-weight: 700; font-size: 15px;
	border: 2px solid transparent; transition: background .25s, color .25s, transform .25s, box-shadow .25s; cursor: pointer;
}
.btn:hover { transform: translateY(-2px); }
.btn__arrow { width: 18px; height: 2px; background: currentColor; position: relative; flex: none; }
.btn__arrow::after {
	content: ""; position: absolute; right: 0; top: -3px; width: 8px; height: 8px;
	border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: rotate(45deg);
}
.btn--primary { background: var(--c-navy); color: #fff; }
.btn--primary:hover { background: var(--c-navy-2); box-shadow: var(--shadow); }
.btn--accent { background: var(--c-accent); color: #fff; }
.btn--accent:hover { background: var(--c-accent-dark); box-shadow: 0 10px 24px rgba(255, 122, 61, .35); }
.btn--ghost { border-color: rgba(255, 255, 255, .7); color: #fff; }
.btn--ghost:hover { background: #fff; color: var(--c-navy); }
.btn--ghost-dark { border-color: var(--c-navy); color: var(--c-navy); }
.btn--ghost-dark:hover { background: var(--c-navy); color: #fff; }
.btn--text { min-width: 0; padding: 8px 0; border-radius: 0; color: var(--c-navy); border-bottom: 2px solid var(--c-navy); }
.btn[disabled] { opacity: .5; cursor: not-allowed; transform: none; }

.tags { display: flex; flex-wrap: wrap; gap: 8px; }
.tags li { font-size: 12px; font-weight: 700; line-height: 1; padding: 7px 12px; border-radius: 999px; background: var(--c-blue-soft); color: var(--c-blue-dark); }
.tags--lg li { font-size: 14px; padding: 10px 18px; }

.card { background: #fff; border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow); }
.card--plain { box-shadow: none; border: 1px solid var(--c-line); }
.section--tint .card--plain { border-color: transparent; }
.card__img img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.card__body { padding: 24px; }
.card__title { font-size: 18px; line-height: 1.6; margin-bottom: 8px; color: var(--c-navy); }
.card__body p { font-size: 14px; color: var(--c-text-sub); }

.data-table { border-top: 1px solid var(--c-line); background: #fff; border-radius: var(--radius); }
.data-table > div { display: grid; gap: 4px; padding: 20px 24px; border-bottom: 1px solid var(--c-line); }
.data-table dt { font-weight: 700; color: var(--c-navy); }
@media (min-width: 768px) { .data-table > div { grid-template-columns: 200px 1fr; gap: 24px; } }
.data-table--compact > div { padding: 14px 0; }
@media (min-width: 768px) { .data-table--compact > div { grid-template-columns: 120px 1fr; } }

.page-toc { margin-top: 32px; }
.page-toc ul { display: flex; flex-wrap: wrap; gap: 8px 12px; }
.page-toc a { display: block; font-size: 14px; font-weight: 700; padding: 8px 16px; border: 1px solid var(--c-line); border-radius: 999px; transition: .2s; }
.page-toc a:hover { border-color: var(--c-blue); color: var(--c-blue-dark); }

.pagination { margin-top: 48px; }
.pagination .nav-links { display: flex; justify-content: center; gap: 8px; }
.pagination .page-numbers { min-width: 40px; height: 40px; display: grid; place-items: center; border-radius: 999px; border: 1px solid var(--c-line); font-family: var(--ff-en); }
.pagination .current { background: var(--c-navy); color: #fff; border-color: var(--c-navy); }

.entry-content > * + * { margin-top: 1.4em; }
.entry-content h2 { font-size: 22px; line-height: 1.6; padding-left: 16px; border-left: 4px solid var(--c-blue); margin-top: 2.4em; color: var(--c-navy); }
.entry-content h3 { font-size: 18px; margin-top: 2em; }
.entry-content ol, .entry-content ul { padding-left: 1.6em; }
.entry-content ol { list-style: decimal; }
.entry-content ul { list-style: disc; }
.entry-content li + li { margin-top: .8em; }
.entry-content a { color: var(--c-blue-dark); text-decoration: underline; }
.entry-content img { border-radius: var(--radius); }
.entry-content .wp-block-button__link { display: inline-block; padding: 16px 36px; border-radius: 999px; background: var(--c-accent); color: #fff; font-weight: 700; text-decoration: none; transition: background .25s; }
.entry-content .wp-block-button__link:hover { background: var(--c-accent-dark); }

/* 5. ヘッダー / フッター ------------------------------------------------------ */
.site-header {
	position: fixed; inset: 0 0 auto; z-index: 100; height: var(--header-h);
	background: rgba(255, 255, 255, .92); backdrop-filter: blur(12px); border-bottom: 1px solid transparent; transition: .3s;
}
.site-header.is-scrolled { border-color: var(--c-line); }
/* ログイン中に表示される WordPress の管理バーの下にヘッダーを置く */
.admin-bar .site-header { top: 46px; }
.admin-bar .global-nav { height: calc(100vh - var(--header-h) - 46px); }
@media (min-width: 783px) { .admin-bar .site-header { top: 32px; } .admin-bar .global-nav { height: calc(100vh - var(--header-h) - 32px); } }
@media (max-width: 600px) { .admin-bar .site-header { top: 0; } .admin-bar .global-nav { height: calc(100vh - var(--header-h)); } }
@media (min-width: 1280px) { .admin-bar .global-nav { height: auto; } }
.site-header__inner { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 0 var(--gutter); max-width: 1440px; margin: 0 auto; }
.site-logo { display: flex; align-items: center; gap: 10px; font-weight: 900; color: var(--c-navy); flex: none; }
.site-logo img { height: 40px; width: auto; }
@media (min-width: 1024px) { .site-logo img { height: 46px; } }
.site-logo__mark { width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; background: var(--c-blue); color: #fff; font-family: var(--ff-en); font-size: 20px; }
.site-logo__text { font-size: 16px; letter-spacing: .06em; }

.menu-toggle { width: 44px; height: 44px; border: 0; background: none; position: relative; color: var(--c-navy); cursor: pointer; }
.menu-toggle__bar, .menu-toggle__bar::before, .menu-toggle__bar::after {
	position: absolute; left: 10px; width: 24px; height: 2px; background: currentColor; transition: .3s; content: "";
}
.menu-toggle__bar { top: 21px; }
.menu-toggle__bar::before { left: 0; top: -7px; }
.menu-toggle__bar::after { left: 0; top: 7px; }
.menu-toggle[aria-expanded="true"] .menu-toggle__bar { background: transparent; }
.menu-toggle[aria-expanded="true"] .menu-toggle__bar::before { top: 0; transform: rotate(45deg); background: var(--c-navy); }
.menu-toggle[aria-expanded="true"] .menu-toggle__bar::after { top: 0; transform: rotate(-45deg); background: var(--c-navy); }

.global-nav {
	/* ヘッダーの backdrop-filter により、fixed の基準がヘッダーになるため高さを明示する */
	position: fixed; top: var(--header-h); left: 0; right: 0; height: calc(100vh - var(--header-h)); height: calc(100dvh - var(--header-h)); background: #fff; padding: 24px var(--gutter) 40px; overflow-y: auto;
	opacity: 0; visibility: hidden; transition: .3s;
}
.global-nav.is-open { opacity: 1; visibility: visible; }
.nav-list li { border-bottom: 1px solid var(--c-line); }
.nav-list a { display: flex; align-items: baseline; gap: 16px; padding: 16px 0; }
.nav-list__en { font-family: var(--ff-en); font-weight: 700; font-size: 22px; color: var(--c-navy); min-width: 130px; }
.nav-list__ja { font-size: 13px; color: var(--c-text-sub); }
.global-nav__cta { margin-top: 32px; display: flex; flex-direction: column; gap: 16px; align-items: center; }
.global-nav__cta .btn { width: 100%; }
.menu-open { overflow: hidden; }

/* メニュー項目が多いため、PC 表示のナビは 1280px 以上。それ未満はハンバーガーメニュー */
@media (min-width: 1280px) {
	.menu-toggle { display: none; }
	.global-nav { position: static; height: auto; opacity: 1; visibility: visible; background: none; padding: 0; display: flex; align-items: center; gap: 32px; overflow: visible; }
	.global-nav .nav-list { display: flex; gap: 28px; }
	.global-nav .nav-list li { border: 0; }
	.global-nav .nav-list a { display: block; padding: 8px 0; font-size: 14px; font-weight: 700; position: relative; white-space: nowrap; }
	.global-nav .nav-list__en { display: none; }
	.global-nav .nav-list__ja { font-size: 14px; color: inherit; }
	.global-nav .nav-list a::after { content: ""; position: absolute; left: 0; bottom: 0; width: 100%; height: 2px; background: var(--c-blue); transform: scaleX(0); transform-origin: left; transition: .25s; }
	.global-nav .nav-list a:hover::after, .global-nav .is-current a::after { transform: scaleX(1); }
	.global-nav__cta { margin: 0; flex-direction: row-reverse; gap: 20px; }
	.global-nav__cta .btn { width: auto; min-width: 0; padding: 10px 22px; font-size: 14px; }
	.global-nav__cta .btn__arrow { display: none; }
}

.cta { background: linear-gradient(135deg, #eef7f0 0%, #fff 60%); color: var(--c-navy); padding: var(--section-y) 0; position: relative; overflow: hidden; border-top: 1px solid var(--c-line); }
.cta::before { content: ""; position: absolute; right: -10%; top: -40%; width: 60%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(40, 200, 79, .28), transparent 70%); }
.cta .container { position: relative; }
.cta__en { font-family: var(--ff-en); font-weight: 800; font-size: clamp(40px, 8vw, 88px); line-height: 1; color: var(--c-blue); opacity: .18; }
.cta__title { font-size: clamp(24px, 4vw, 36px); margin-top: -12px; }
.cta__lead { margin-top: 16px; color: var(--c-text); max-width: 680px; word-break: keep-all; overflow-wrap: anywhere; } /* <wbr> の位置でだけ改行する */
.cta__cards { display: grid; gap: 16px; margin-top: 40px; }
@media (min-width: 768px) { .cta__cards { grid-template-columns: 1fr 1fr; gap: 24px; } }
.cta-card { position: relative; display: flex; flex-direction: column; gap: 4px; padding: 32px 72px 32px 32px; border-radius: var(--radius-lg); transition: transform .25s, box-shadow .25s; }
.cta-card:hover { transform: translateY(-4px); box-shadow: 0 20px 40px rgba(0, 136, 63, .15); }
.cta-card--casual { background: var(--c-accent); color: #fff; }
.cta-card--recruit { background: #fff; color: var(--c-navy); border: 1px solid var(--c-line); box-shadow: var(--shadow); }
.cta-card__en { font-family: var(--ff-en); font-weight: 700; font-size: 13px; opacity: .8; }
.cta-card__title { font-size: 22px; font-weight: 700; }
.cta-card__text { font-size: 14px; opacity: .85; }
.cta-card__arrow { position: absolute; right: 28px; top: 50%; width: 40px; height: 40px; margin-top: -20px; border-radius: 50%; border: 2px solid currentColor; }
.cta-card__arrow::after { content: ""; position: absolute; left: 12px; top: 14px; width: 8px; height: 8px; border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: rotate(45deg); }

.breadcrumb { padding: 16px 0; font-size: 12px; color: var(--c-text-sub); border-bottom: 1px solid var(--c-line); }
.breadcrumb ol { display: flex; flex-wrap: wrap; gap: 4px; }
.breadcrumb li + li::before { content: "/"; margin-right: 4px; color: var(--c-line); }
.breadcrumb a:hover { color: var(--c-blue-dark); }

.site-footer { font-size: 14px; }
.site-footer__sitemap-wrap { background: #fff; border-top: 1px solid var(--c-line); padding: 56px 0; }
.site-footer__sitemap { display: grid; grid-template-columns: repeat(2, 1fr); gap: 32px 24px; }
@media (min-width: 768px) { .site-footer__sitemap { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1024px) { .site-footer__sitemap { grid-template-columns: repeat(5, 1fr); } }
.site-footer__group + .site-footer__group { margin-top: 16px; }
.site-footer__heading { font-size: 14px; font-weight: 700; color: var(--c-navy); }
.site-footer__links { margin-top: 16px; }
.site-footer__links li { position: relative; padding-left: 16px; }
.site-footer__links li + li { margin-top: 12px; }
.site-footer__links li::before { content: ""; position: absolute; left: 2px; top: .55em; border-left: 6px solid var(--c-blue); border-top: 4px solid transparent; border-bottom: 4px solid transparent; }
.site-footer__links a { font-size: 13px; color: var(--c-text); line-height: 1.6; }
.site-footer__heading a:hover, .site-footer__links a:hover { color: var(--c-blue-dark); }
.site-footer__band { background: var(--c-navy); color: rgba(255, 255, 255, .85); padding: 40px 0 24px; }
.site-footer__band-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; }
.site-footer__band .site-logo { display: inline-flex; padding: 10px 16px; background: #fff; border-radius: var(--radius); } /* 濃い帯の上ではロゴを白い枠に載せる */
.site-footer__band .site-logo img { height: 40px; }
.site-footer__tagline { margin-top: 16px; font-size: 16px; font-weight: 700; color: #fff; }
.site-footer__info { margin-top: 12px; font-size: 12px; line-height: 1.9; }
.site-footer__copy { margin-top: 32px; text-align: center; font-size: 12px; color: rgba(255, 255, 255, .7); }

/* 6. トップ --------------------------------------------------------------- */
.hero { position: relative; min-height: 100svh; display: flex; align-items: center; overflow: hidden; background: #fff; color: var(--c-navy); }
/* 写真を使わない、白ベースのやわらかな光の背景 */
.hero__bg { position: absolute; inset: 0; background: linear-gradient(180deg, #fff 0%, #f5faf6 100%); }
.hero__glow { position: absolute; border-radius: 50%; filter: blur(50px); opacity: .6; animation: hero-float 16s ease-in-out infinite alternate; }
.hero__glow--1 { width: 52vw; height: 52vw; max-width: 760px; max-height: 760px; right: -8vw; top: -10vw; background: radial-gradient(circle, rgba(40, 200, 79, .55), transparent 65%); }
.hero__glow--2 { width: 38vw; height: 38vw; max-width: 560px; max-height: 560px; right: 18vw; bottom: -14vw; background: radial-gradient(circle, rgba(130, 225, 150, .6), transparent 65%); animation-duration: 20s; }
.hero__glow--3 { width: 26vw; height: 26vw; max-width: 380px; max-height: 380px; right: 4vw; top: 42%; background: radial-gradient(circle, rgba(40, 200, 79, .35), transparent 65%); animation-duration: 24s; }
/* ロゴのマークを大きな線画にして右側に配置 */
.hero__mark { position: absolute; right: -3vw; bottom: -7vw; width: min(32vw, 520px); color: var(--c-blue); opacity: .5; animation: hero-mark-in 1.6s ease-out both; }
.hero__mark svg { display: block; width: 100%; height: auto; }
@keyframes hero-mark-in { from { opacity: 0; transform: translateY(24px); } to { opacity: .5; transform: none; } }
@media (max-width: 767px) { .hero__mark { width: 72vw; right: -22vw; bottom: -14vw; opacity: .3; animation: none; } }
@keyframes hero-float { from { transform: translate(0, 0) scale(1); } to { transform: translate(-3vw, 2vw) scale(1.08); } }
@media (max-width: 767px) { .hero__glow--1 { width: 110vw; height: 110vw; right: -40vw; top: -30vw; } .hero__glow--2 { width: 80vw; height: 80vw; right: -20vw; bottom: -30vw; } .hero__glow--3 { display: none; } }
.hero__inner { position: relative; padding-top: var(--header-h); padding-bottom: 80px; }
.hero__label { font-family: var(--ff-en); font-weight: 700; letter-spacing: .4em; font-size: clamp(16px, 1.6vw, 22px); color: var(--c-accent); }
.hero__title { font-size: clamp(30px, 5.6vw, 60px); line-height: 1.45; margin-top: 16px; letter-spacing: .06em; color: var(--c-navy); }
@media (min-width: 768px) { .hero__title { font-size: clamp(30px, 3.9vw, 56px); white-space: nowrap; } .hero__title .text-flow { white-space: nowrap; } } /* PC・タブレットは1行 */
.hero__en { font-family: var(--ff-en); font-size: clamp(15px, 1.7vw, 22px); margin-top: 16px; color: var(--c-blue-dark); }
.hero__lead { margin-top: 24px; max-width: 960px; font-size: clamp(16px, 1.4vw, 19px); color: var(--c-text); word-break: keep-all; overflow-wrap: anywhere; } /* <wbr> の位置でだけ改行する */
.hero__actions { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 40px; }
.hero__scroll { position: absolute; left: 50%; bottom: 24px; transform: translateX(-50%); font-family: var(--ff-en); font-size: 11px; letter-spacing: .3em; padding-bottom: 48px; color: var(--c-navy); }
.hero__scroll::after { content: ""; position: absolute; left: 50%; bottom: 0; width: 1px; height: 40px; background: var(--c-navy); animation: scroll-line 2s infinite; transform-origin: top; }
@keyframes scroll-line { 0% { transform: scaleY(0); } 50% { transform: scaleY(1); transform-origin: top; } 51% { transform-origin: bottom; } 100% { transform: scaleY(0); transform-origin: bottom; } }

/* トップの各セクション下部の「Scroll」 */
.section:has(> .section-scroll) { position: relative; padding-bottom: calc(var(--section-y) + 40px); }
.section-scroll { position: absolute; left: 50%; bottom: 16px; transform: translateX(-50%); font-family: var(--ff-en); font-size: 11px; letter-spacing: .3em; padding-bottom: 44px; color: var(--c-navy); }
.section-scroll::after { content: ""; position: absolute; left: 50%; bottom: 0; width: 1px; height: 36px; background: var(--c-navy); animation: scroll-line 2s infinite; transform-origin: top; }

.mission__inner { display: grid; gap: 24px; }
@media (min-width: 1024px) { .mission__inner { grid-template-columns: 320px 1fr; gap: 64px; } }
.mission__catch { font-size: clamp(32px, 5vw, 56px); font-weight: 900; line-height: 1.4; color: var(--c-navy); margin-bottom: 16px; }
.mission__sub { font-size: clamp(17px, 1.8vw, 22px); font-weight: 700; line-height: 1.7; color: var(--c-blue-dark); margin-bottom: 28px; }
.mission__text p + p { margin-top: 1em; }
.mission__text { max-width: 800px; }
.mission__body .btn { margin-top: 32px; }

.free-employee { background: linear-gradient(180deg, #fff 0%, #eef7f0 100%); }
.free-employee__lead { max-width: 820px; margin: -8px auto 48px; text-align: center; font-size: clamp(17px, 1.8vw, 22px); font-weight: 700; line-height: 1.8; color: var(--c-navy); }
.venn { position: relative; display: grid; justify-content: center; gap: 0; }
.venn__circle { width: min(84vw, 380px); aspect-ratio: 1; border-radius: 50%; display: flex; flex-direction: column; justify-content: center; padding: 0 12%; }
.venn__circle--stable { background: rgba(0, 136, 63, .08); border: 2px solid rgba(0, 136, 63, .35); margin: 0 auto; }
.venn__circle--free { background: rgba(40, 200, 79, .1); border: 2px solid rgba(40, 200, 79, .5); margin: -14% auto 0; }
.venn__title { font-size: 18px; font-weight: 700; color: var(--c-navy); text-align: center; margin-bottom: 12px; }
.venn__title strong { font-size: 1.5em; margin-left: 2px; }
.venn__circle--free .venn__title strong { color: var(--c-blue-dark); }
.venn__list { font-size: 14px; color: var(--c-text); text-align: center; }
.venn__list li + li { margin-top: 6px; }
.venn__list li::before { content: "✓"; margin-right: 6px; color: var(--c-blue); font-weight: 700; }
.venn__circle--stable { justify-content: flex-start; padding-top: 13%; }
.venn__circle--free { justify-content: flex-end; padding-bottom: 15%; }
.venn__center { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); display: flex; flex-direction: column; align-items: center; justify-content: center; width: 112px; height: 112px; border-radius: 50%; background: var(--c-navy); color: #fff; box-shadow: 0 16px 40px rgba(0, 136, 63, .3); text-align: center; }
.venn__center-en { font-family: var(--ff-en); font-size: 11px; font-weight: 700; letter-spacing: .08em; opacity: .8; }
.venn__center-ja { font-size: 17px; font-weight: 900; margin-top: 2px; }
.venn__center-ja sup { font-size: .5em; }
@media (min-width: 900px) {
	.venn { grid-template-columns: auto auto; }
	.venn__circle { width: 440px; }
	.venn__circle--stable { margin: 0 -48px 0 0; padding: 0 22% 0 12%; }
	.venn__circle--free { margin: 0 0 0 -48px; padding: 0 12% 0 22%; }
	.venn__circle--stable, .venn__circle--free { justify-content: center; padding-top: 0; padding-bottom: 0; }
	.venn__center { width: 170px; height: 170px; }
	.venn__center-ja { font-size: 22px; }
}
.free-employee__note { margin-top: 32px; text-align: center; font-size: 12px; color: var(--c-text-sub); }

.service { background: var(--c-bg-tint); }
.service__intro { max-width: 900px; margin-bottom: 48px; }
.service__catch { font-size: clamp(22px, 3vw, 32px); font-weight: 900; line-height: 1.5; color: var(--c-navy); margin-bottom: 16px; word-break: auto-phrase; text-wrap: balance; }
.service__lead { color: var(--c-text-sub); }
.service__list { display: grid; gap: 24px; }
@media (min-width: 768px) { .service__list { grid-template-columns: 1fr 1fr; gap: 32px; } }
.service-card { display: block; background: #fff; border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow); transition: transform .3s; }
.service-card:hover { transform: translateY(-4px); }
.service-card__img img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; transition: transform .6s; }
.service-card:hover .service-card__img img { transform: scale(1.04); }
.service-card__img { overflow: hidden; }
.service-card__body { padding: 28px; }
.service-card__num { font-family: var(--ff-en); font-size: 13px; font-weight: 700; color: var(--c-blue-dark); }
.service-card__title { font-size: 22px; color: var(--c-navy); margin: 4px 0 12px; }
.service-card__body > p:last-child { margin-top: 16px; font-size: 14px; color: var(--c-text-sub); word-break: auto-phrase; text-wrap: pretty; }
.service-card--sub .service-card__body { padding: 24px 28px; }
.service-card--sub .service-card__title { font-size: 19px; }

.numbers__list { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (min-width: 1024px) { .numbers__list { grid-template-columns: repeat(3, 1fr); gap: 24px; } }
.number-card { background: var(--c-bg-tint); border-radius: var(--radius-lg); padding: 24px 16px; text-align: center; }
@media (min-width: 768px) { .number-card { padding: 40px 24px; } }
.number-card__icon { width: 56px; height: 56px; margin: 0 auto 12px; padding: 11px; border-radius: 50%; background: #fff; color: var(--c-blue); }
@media (min-width: 768px) { .number-card__icon { width: 72px; height: 72px; margin-bottom: 14px; padding: 14px; } }
.number-card__icon svg { display: block; width: 100%; height: 100%; }
.number-card__label { font-size: 13px; font-weight: 700; color: var(--c-text-sub); }
.number-card__label, .number-card__note { word-break: keep-all; overflow-wrap: anywhere; } /* <wbr> の位置でだけ改行する */
.number-card__value { color: var(--c-navy); line-height: 1.2; margin-top: 8px; }
.number-card__num { font-family: var(--ff-en); font-weight: 800; font-size: clamp(40px, 7vw, 72px); color: var(--c-blue); }
.number-card__unit { font-weight: 700; font-size: 14px; margin-left: 4px; }
.number-card__note { font-size: 12px; color: var(--c-text-sub); margin-top: 4px; }
.numbers__note { margin-top: 16px; font-size: 12px; text-align: center; }

/* 年収アップの実例（採用情報。数字の続きとして上の余白を詰める） */
.salary-cases { padding-top: 0; }
.salary-cases__title { font-size: clamp(20px, 2.2vw, 26px); color: var(--c-navy); text-align: center; }
.salary-cases__lead { margin-top: 12px; text-align: center; font-size: 14px; color: var(--c-text-sub); }
.salary-cases__list { display: grid; gap: 16px; margin-top: 32px; }
@media (min-width: 768px) { .salary-cases__list { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 24px; } }
.salary-case { background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius-lg); padding: 28px 24px; display: flex; flex-direction: column; }
.salary-case__who { font-size: 14px; font-weight: 700; color: var(--c-navy); }
.salary-case__who span { margin-left: 8px; font-weight: 400; color: var(--c-text-sub); }
.salary-case__nums { display: flex; align-items: flex-end; justify-content: space-between; gap: 8px; margin-top: 16px; font-size: 12px; color: var(--c-text-sub); }
.salary-case__label { display: block; font-size: 11px; margin-bottom: 2px; }
.salary-case__num { font-family: var(--ff-en); font-weight: 800; font-size: 28px; line-height: 1.1; margin-right: 2px; color: var(--c-text-sub); }
.salary-case__after .salary-case__num { font-size: 40px; color: var(--c-blue); }
.salary-case__arrow { flex: none; width: 28px; height: 1px; margin-bottom: 14px; background: var(--c-line); position: relative; }
.salary-case__arrow::after { content: ""; position: absolute; right: 0; top: -4px; width: 8px; height: 8px; border-top: 1px solid var(--c-text-sub); border-right: 1px solid var(--c-text-sub); transform: rotate(45deg); }
.salary-case__diff { align-self: flex-start; margin-top: 14px; font-size: 13px; font-weight: 700; line-height: 1; padding: 7px 14px; border-radius: 999px; background: var(--c-blue-soft); color: var(--c-blue-dark); }
.salary-case__comment { margin-top: 16px; padding-top: 16px; border-top: 1px dashed var(--c-line); font-size: 13px; line-height: 1.8; color: var(--c-text-sub); }
.salary-cases__note { margin-top: 16px; font-size: 12px; color: var(--c-text-sub); text-align: center; }

.reasons { background: var(--c-bg-tint); }
.reasons__lead { margin: -8px 0 40px; font-size: clamp(17px, 1.8vw, 22px); font-weight: 700; line-height: 1.8; color: var(--c-navy); word-break: keep-all; overflow-wrap: anywhere; } /* <wbr> の位置でだけ改行する */
.reasons__list { display: grid; gap: 16px; counter-reset: none; }
@media (min-width: 768px) { .reasons__list { grid-template-columns: repeat(2, 1fr); gap: 24px; } }
@media (min-width: 1024px) { .reasons__list { grid-template-columns: repeat(3, 1fr); } }
.reason-card { background: #fff; border-radius: var(--radius-lg); padding: 32px 28px; position: relative; display: flex; flex-direction: column; }
.reason-card__num { font-family: var(--ff-en); font-weight: 800; font-size: 40px; line-height: 1; color: var(--c-blue-soft); position: absolute; right: 24px; top: 20px; }
.reason-card__icon { width: 60px; height: 60px; padding: 12px; margin-bottom: 18px; border-radius: 16px; background: var(--c-blue-soft); color: var(--c-blue); }
.reason-card__icon svg { display: block; width: 100%; height: 100%; }
.reason-card__title { font-size: 20px; color: var(--c-navy); margin-bottom: 12px; }
.reason-card__title sup { font-size: .6em; }
.reason-card p { font-size: 14px; color: var(--c-text-sub); }
.reason-card__more { margin-top: auto; padding-top: 20px; }

.interview__list { display: grid; gap: 32px; }
@media (min-width: 768px) { .interview__list { grid-template-columns: repeat(3, 1fr); gap: 24px; } }
.interview__lead { margin: -16px 0 40px; font-size: clamp(17px, 1.8vw, 22px); font-weight: 700; line-height: 1.8; color: var(--c-navy); word-break: keep-all; overflow-wrap: anywhere; }
.interview__nav { display: flex; align-items: center; gap: 12px; }
.slider-btn { width: 48px; height: 48px; flex: none; display: grid; place-items: center; border-radius: 50%; border: 0; background: var(--c-navy); color: #fff; cursor: pointer; transition: background .25s, opacity .25s; }
.slider-btn:hover { background: var(--c-blue); }
.slider-btn:disabled { background: #c9d3cc; cursor: default; }
.slider-btn__arrow { width: 16px; height: 2px; background: currentColor; position: relative; }
.slider-btn__arrow::after { content: ""; position: absolute; right: 0; top: -4px; width: 8px; height: 8px; border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: rotate(45deg); }
.slider-btn__arrow--prev { transform: scaleX(-1); }
.btn--outline { min-width: 0; padding: 11px 26px; border-color: var(--c-blue); color: var(--c-blue-dark); font-family: var(--ff-en); }
.btn--outline:hover { background: var(--c-blue); color: #fff; }
@media (max-width: 767px) { .interview__nav .slider-btn { display: none; } }

/* 横スクロールのスライダー（右端はコンテナの外まではみ出させる） */
.interview__slider { display: flex; gap: 32px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; margin-right: calc(50% - 50vw); padding: 4px calc(50vw - 50%) 16px 0; scrollbar-width: none; }
.interview__slider::-webkit-scrollbar { display: none; }
.interview__slider > .interview-card { flex: 0 0 min(460px, 82%); scroll-snap-align: start; }
@media (prefers-reduced-motion: reduce) { .interview__slider { scroll-behavior: auto; } }

.interview-card a { display: flex; flex-direction: column; height: 100%; }
.interview-card__img { border-radius: var(--radius-lg); overflow: hidden; border: 1px solid var(--c-line); }
.interview-card__img img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .6s; }
.interview-card a:hover img { transform: scale(1.04); }
.interview-card__body { flex: 1; display: flex; flex-direction: column; padding: 20px 4px 0; }
.interview-card__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.interview-card__who { display: flex; align-items: baseline; gap: 6px; }
.interview-card__name { font-family: var(--ff-en); font-size: 18px; font-weight: 700; color: var(--c-text); letter-spacing: .04em; }
.interview-card__san { font-size: 13px; color: var(--c-text-sub); }
.interview-card__tag { flex: none; font-size: 11px; font-weight: 700; line-height: 1; padding: 6px 12px; border-radius: 999px; background: var(--c-blue); color: #fff; }
.interview-card__role { margin-top: 2px; font-size: 12px; color: var(--c-text-sub); }
.skill-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.skill-tags li { font-size: 11px; line-height: 1; padding: 5px 10px; border-radius: 999px; border: 1px solid var(--c-line); background: #fff; color: var(--c-text-sub); }
.interview-hero .skill-tags { margin-top: 16px; }
.interview-card__title { margin-top: 12px; font-size: 18px; line-height: 1.7; color: var(--c-navy); transition: color .25s; }
.interview-card a:hover .interview-card__title { color: var(--c-blue-dark); }
.interview-card__more { margin-top: auto; padding-top: 16px; display: inline-flex; align-items: center; gap: 12px; font-family: var(--ff-en); font-size: 13px; font-weight: 700; color: var(--c-text-sub); }

.news__inner { display: grid; gap: 24px; }
@media (min-width: 1024px) { .news__inner { grid-template-columns: 320px 1fr; gap: 64px; } }
.news-list { border-top: 1px solid var(--c-line); }
.news-list__item { border-bottom: 1px solid var(--c-line); }
.news-list__item a { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; padding: 24px 8px; transition: background .2s; }
.news-list__item a:hover { background: var(--c-bg-tint); }
.news-list__item time { font-family: var(--ff-en); font-size: 13px; color: var(--c-text-sub); }
.news-list__cat { font-size: 11px; font-weight: 700; padding: 2px 10px; border-radius: 999px; background: var(--c-blue-soft); color: var(--c-blue-dark); }
.news-list__title { flex: 1 1 100%; }
@media (min-width: 768px) {
	.news-list__item a { flex-wrap: nowrap; gap: 24px; }
	.news-list__item time { flex: none; width: 90px; }
	.news-list__title { flex: 1 1 auto; }
}

/* 7. 下層ページ ------------------------------------------------------------ */
.page-hero { padding: 72px 0 56px; background: linear-gradient(135deg, var(--c-bg-tint), #fff 70%); }
@media (min-width: 1024px) { .page-hero { padding: 120px 0 80px; } }
.page-hero__en { font-family: var(--ff-en); font-weight: 800; font-size: clamp(40px, 8vw, 88px); line-height: 1.05; color: var(--c-navy); }
.page-hero__title { font-size: 15px; color: var(--c-blue-dark); margin-top: 16px; display: flex; align-items: center; gap: 10px; }
.page-hero__title::before { content: ""; width: 24px; height: 2px; background: currentColor; }
.page-hero__lead { margin-top: 24px; font-size: clamp(16px, 2vw, 20px); font-weight: 700; color: var(--c-navy); }
.page-hero--photo .page-hero__inner { display: grid; gap: 32px; align-items: center; }
@media (min-width: 1024px) { .page-hero--photo .page-hero__inner { grid-template-columns: 1fr 1fr; gap: 64px; } }
.page-hero__photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius-lg); }

.message { display: grid; gap: 32px; }
@media (min-width: 1024px) { .message { grid-template-columns: 360px 1fr; gap: 64px; align-items: start; } }
@media (min-width: 1024px) { .message--text-only { grid-template-columns: 1fr; max-width: 860px; } }
.message__img img { border-radius: var(--radius-lg); width: 100%; aspect-ratio: 3 / 4; object-fit: cover; }
.message__body p + p { margin-top: 1.6em; }
.message__sign { text-align: right; margin-top: 32px !important; font-size: 14px; }
.message__sign span { font-size: 22px; font-weight: 700; margin-left: 16px; }

.map-placeholder { margin-top: 32px; aspect-ratio: 16 / 5; background: var(--c-blue-soft); border-radius: var(--radius); display: grid; place-items: center; }
.biz-list { display: grid; gap: 16px; }
.biz-list__name { display: block; font-weight: 700; color: var(--c-navy); margin-bottom: 8px; }
.map { margin-top: 40px; }
.map__frame { display: block; width: 100%; aspect-ratio: 4 / 3; border: 0; border-radius: var(--radius); background: var(--c-blue-soft); }
@media (min-width: 768px) { .map__frame { aspect-ratio: 16 / 7; } }
.map__caption { margin-top: 12px; font-size: 14px; }
.map__caption strong { display: inline-block; margin-right: 12px; color: var(--c-navy); }

.timeline { border-left: 2px solid var(--c-line); margin-left: 8px; }
.timeline li { position: relative; padding: 0 0 32px 32px; display: grid; gap: 4px; }
@media (min-width: 768px) { .timeline li { grid-template-columns: 140px 1fr; gap: 24px; } }
.timeline li::before { content: ""; position: absolute; left: -9px; top: 8px; width: 16px; height: 16px; border-radius: 50%; background: #fff; border: 3px solid var(--c-blue); }
.timeline__year { font-family: var(--ff-en); font-weight: 800; font-size: 20px; color: var(--c-navy); line-height: 1.5; }

.sponsor { display: grid; gap: 32px; align-items: center; background: #fff; border-radius: var(--radius-lg); padding: 24px; }
@media (min-width: 768px) { .sponsor { grid-template-columns: 2fr 3fr; gap: 48px; padding: 40px; } }
.sponsor__img img { border-radius: var(--radius); width: 100%; aspect-ratio: 3 / 4; object-fit: cover; }
.sponsor__label { font-size: 13px; font-weight: 700; color: var(--c-blue-dark); }
.sponsor__name { font-size: 26px; color: var(--c-navy); margin: 4px 0 16px; }
.sponsor__name span { display: block; font-size: 13px; color: var(--c-text-sub); font-weight: 500; }
.sponsor__body p + p { margin-top: 12px; }

.sponsor-banner__card { display: grid; gap: 24px; align-items: center; background: #fff; border-radius: var(--radius-lg); padding: 20px; box-shadow: var(--shadow); transition: transform .3s; }
.sponsor-banner__card:hover { transform: translateY(-4px); }
@media (min-width: 768px) { .sponsor-banner__card { grid-template-columns: 280px 1fr; gap: 40px; padding: 28px; } }
.sponsor-banner__img { border-radius: var(--radius); overflow: hidden; }
.sponsor-banner__img img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.sponsor-banner__body .btn { margin-top: 16px; }

.service-page__intro { max-width: 960px; font-size: clamp(16px, 1.4vw, 18px); line-height: 2; }

.project-main { position: relative; overflow: hidden; display: grid; gap: 28px; padding: 32px 24px; border-radius: var(--radius-lg); background: linear-gradient(135deg, var(--c-navy) 0%, #1ca64b 100%); color: #fff; box-shadow: 0 20px 48px rgba(0, 136, 63, .25); }
@media (min-width: 1024px) { .project-main { padding: 48px 56px; } }
.project-main__body { position: relative; z-index: 1; max-width: 960px; }
.project-main::after { content: ""; position: absolute; right: -60px; bottom: -80px; width: 280px; height: 280px; border-radius: 50%; background: radial-gradient(circle, rgba(255, 255, 255, .14), transparent 70%); pointer-events: none; }
.project-main__label { font-family: var(--ff-en); font-size: 12px; font-weight: 800; letter-spacing: .24em; color: var(--c-accent); }
.project-main__title { margin-top: 10px; font-size: clamp(20px, 2.4vw, 28px); line-height: 1.6; }
.project-main__text { margin-top: 16px; font-size: 14px; line-height: 2; color: rgba(255, 255, 255, .88); }
.project-list { display: grid; gap: 16px; margin-top: 32px; }
@media (min-width: 768px) { .project-list { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .project-list { grid-template-columns: repeat(3, 1fr); } }
.project-card { padding: 20px 22px; border-radius: var(--radius); background: #fff; border-left: 4px solid var(--c-blue); box-shadow: 0 6px 18px rgba(0, 136, 63, .06); }
.project-card__head { display: flex; align-items: center; gap: 10px; }
.project-card__cat { font-size: 11px; font-weight: 700; line-height: 1; padding: 6px 10px; border-radius: 999px; background: var(--c-blue-soft); color: var(--c-blue-dark); }
.project-card__industry { font-size: 12px; color: var(--c-text-sub); }
.project-card__title { margin-top: 10px; font-size: 15px; font-weight: 700; line-height: 1.6; color: var(--c-navy); }
.project-note { margin-top: 20px; font-size: 12px; color: var(--c-text-sub); }

.service-detail { display: grid; gap: 32px; align-items: center; }
@media (min-width: 1024px) { .service-detail { grid-template-columns: 1fr 1fr; gap: 64px; } }
.service-detail__title { font-size: clamp(28px, 4vw, 44px); font-weight: 900; line-height: 1.4; color: var(--c-navy); }
.service-detail__num { font-family: var(--ff-en); font-weight: 800; font-size: .6em; color: var(--c-blue-dark); margin-right: 16px; vertical-align: .15em; }
.service-detail__en { font-family: var(--ff-en); letter-spacing: .04em; }
.service-detail__img img { border-radius: var(--radius-lg); width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }

.feature { display: grid; gap: 32px; align-items: center; }
@media (min-width: 1024px) {
	.feature { grid-template-columns: 1fr 1fr; gap: 64px; }
	.feature--reverse .feature__img { order: 2; }
}
.feature__img img { border-radius: var(--radius-lg); width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.feature__num { font-family: var(--ff-en); font-weight: 700; font-size: 13px; color: var(--c-blue-dark); }
.feature__title { font-size: clamp(26px, 4vw, 40px); color: var(--c-navy); margin: 8px 0 20px; }
.feature__title sup { font-size: .5em; }

/* 採用情報：メインビジュアル */
.recruit-hero { position: relative; overflow: hidden; min-height: calc(100svh - var(--header-h)); display: flex; align-items: center; background: linear-gradient(180deg, #fff 0%, #f3f9f5 100%); color: var(--c-navy); }
.recruit-hero__bg { position: absolute; inset: 0; pointer-events: none; }
.recruit-hero__glow { position: absolute; border-radius: 50%; filter: blur(60px); opacity: .55; animation: hero-float 18s ease-in-out infinite alternate; }
.recruit-hero__glow--1 { width: 56vw; height: 56vw; max-width: 780px; max-height: 780px; right: -12vw; top: -18vw; background: radial-gradient(circle, rgba(40, 200, 79, .35), transparent 65%); }
.recruit-hero__glow--2 { width: 40vw; height: 40vw; max-width: 560px; max-height: 560px; left: -12vw; bottom: -16vw; background: radial-gradient(circle, rgba(130, 225, 150, .35), transparent 65%); animation-duration: 22s; }
.recruit-hero__mark { position: absolute; right: -4vw; bottom: -8vw; width: min(40vw, 560px); color: var(--c-blue); opacity: .25; }
.recruit-hero__mark svg { display: block; width: 100%; height: auto; }
.recruit-hero__inner { position: relative; padding-top: 64px; padding-bottom: 64px; }
.recruit-hero__label { display: flex; align-items: center; gap: 14px; font-size: 13px; font-weight: 700; color: var(--c-text-sub); }
.recruit-hero__label span { font-family: var(--ff-en); font-size: clamp(15px, 1.5vw, 20px); letter-spacing: .4em; color: var(--c-accent); }
.recruit-hero__title { margin-top: 20px; font-size: clamp(28px, 5vw, 56px); line-height: 1.5; letter-spacing: .04em; word-break: keep-all; overflow-wrap: anywhere; }
.recruit-hero__lead { margin-top: 24px; font-size: clamp(16px, 1.6vw, 20px); font-weight: 700; color: var(--c-text); word-break: keep-all; overflow-wrap: anywhere; }
.recruit-hero__actions { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 40px; }

/* 採用情報：メッセージ */
.recruit-message__body { max-width: 860px; }
@media (min-width: 1024px) {
	.recruit-message .container { display: grid; grid-template-columns: 380px 1fr; gap: 48px; }
	.recruit-message .section-heading { margin-bottom: 0; }
}
.recruit-message__catch { font-size: clamp(22px, 3.2vw, 34px); font-weight: 900; line-height: 1.6; color: var(--c-navy); margin-bottom: 28px; }
.recruit-message__text { line-height: 2.1; }
/* 背景に写真を設定したとき（外観 > カスタマイズ > サイトの写真） */
.recruit-message--photo { position: relative; overflow: hidden; background: var(--message-bg) var(--message-bg-pos, center) / cover no-repeat; color: #fff; }
.recruit-message--photo::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10, 30, 20, .88) 0%, rgba(10, 30, 20, .72) 100%); }
.recruit-message--photo .container { position: relative; }
.recruit-message--photo :is(.section-heading__en, .section-heading__ja, .recruit-message__catch) { color: #fff; }
.recruit-message--photo .recruit-message__text { color: rgba(255, 255, 255, .9); }

/* 採用情報：募集要項（職種別タブ） */
.job-tabs__list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
@media (max-width: 767px) { .job-tabs__list:has(> :nth-child(4)) { grid-template-columns: repeat(2, 1fr); } } /* スマホで4職種以上は2列 */
@media (min-width: 768px) { .job-tabs__list { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 1fr; } } /* PC・タブレットは職種数に合わせて1列に並べる */
.job-tabs__tab { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: 64px; padding: 12px 8px; border: 1px solid var(--c-line); border-radius: var(--radius) var(--radius) 0 0; background: #fff; color: var(--c-text-sub); font: inherit; font-weight: 700; font-size: 13px; line-height: 1.4; cursor: pointer; transition: background .2s, color .2s; }
.job-tabs__tab:hover { color: var(--c-navy); }
.job-tabs__tab[aria-selected="true"] { background: var(--c-navy); border-color: var(--c-navy); color: #fff; }
.job-tabs__name, .job-tabs__sub { word-break: keep-all; text-align: center; }
.job-tabs__sub { font-size: 11px; font-weight: 500; opacity: .85; }
@media (min-width: 768px) { .job-tabs__tab { font-size: 17px; min-height: 80px; } .job-tabs__sub { font-size: 12px; } }
.job-panel { background: #fff; border-radius: 0 0 var(--radius-lg) var(--radius-lg); border-top: 4px solid var(--c-navy); padding: 32px 24px; }
.job-panel[hidden] { display: none; }
@media (min-width: 1024px) { .job-panel { padding: 48px; } }
.job-panel__en { font-family: var(--ff-en); font-weight: 700; font-size: 13px; letter-spacing: .1em; color: var(--c-blue-dark); }
.job-panel__title { font-size: clamp(22px, 3vw, 30px); color: var(--c-navy); margin-top: 4px; }
.job-panel__title small { display: block; font-size: .6em; margin-top: 2px; }
.job-panel__text { margin-top: 16px; color: var(--c-text-sub); }
.job-panel__reqs { display: grid; gap: 16px; margin-top: 32px; }
@media (min-width: 1024px) { .job-panel__reqs { grid-template-columns: repeat(3, 1fr); gap: 20px; } }
.job-req { background: var(--c-bg-tint); border-radius: var(--radius); padding: 20px; }
.job-req__label { display: inline-block; font-size: 13px; font-weight: 700; line-height: 1; padding: 7px 14px; border-radius: 999px; background: var(--c-navy); color: #fff; }
.job-req:nth-child(2) .job-req__label { background: var(--c-blue-dark); }
.job-req:nth-child(3) .job-req__label { background: #fff; color: var(--c-navy); border: 1px solid var(--c-navy); }
.job-req__text { margin-top: 12px; font-size: 15px; }
.job-panel__actions { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 32px; }
.job-conditions { margin-top: 48px; }
.job-conditions__title { font-size: 18px; color: var(--c-navy); margin-bottom: 8px; }
.job-conditions .data-table { padding: 0 24px; }
@media (min-width: 768px) { .job-conditions .data-table > div { grid-template-columns: 120px 1fr; gap: 24px; } }

/* 採用情報：選考の流れ */
.flow-points { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 32px; }
.flow-points li { font-weight: 700; color: var(--c-navy); padding: 10px 20px; border-radius: 999px; border: 2px solid var(--c-blue); }
.flow-points li::before { content: "✓"; margin-right: 8px; color: var(--c-blue); }
.section:not(.section--tint) .flow__item { background: var(--c-bg-tint); }

.flow { display: grid; gap: 16px; }
@media (min-width: 1024px) { .flow { grid-template-columns: repeat(4, 1fr); } }
.flow__item { background: #fff; border-radius: var(--radius-lg); padding: 28px 24px; position: relative; }
.flow__step { font-family: var(--ff-en); font-weight: 800; font-size: 13px; color: var(--c-blue-dark); }
.flow__title { font-size: 18px; color: var(--c-navy); margin: 4px 0 8px; }
.flow__item p { font-size: 14px; color: var(--c-text-sub); }

.faq { display: grid; gap: 12px; }
.faq__item { border-bottom: 1px solid var(--c-line); }
.faq__item summary { list-style: none; cursor: pointer; position: relative; padding: 20px 56px 20px 0; font-weight: 700; display: flex; gap: 16px; }
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary::after { content: "+"; position: absolute; right: 0; top: 50%; transform: translateY(-50%); font-family: var(--ff-en); font-size: 28px; color: var(--c-blue); font-weight: 400; }
.faq__item[open] summary::after { content: "−"; }
.faq__q, .faq__a > span { font-family: var(--ff-en); font-weight: 800; font-size: 20px; line-height: 1.4; color: var(--c-blue); flex: none; }
.faq__a { display: flex; gap: 16px; padding: 0 0 24px; }
.faq__a > span { color: var(--c-accent); }
.section--tint .faq { gap: 12px; }
.section--tint .faq__item { background: #fff; border: 0; border-radius: var(--radius); padding: 0 24px; }

.casual-points { display: grid; gap: 16px; }
@media (min-width: 768px) { .casual-points { grid-template-columns: repeat(3, 1fr); gap: 24px; } }
.casual-point { border-top: 3px solid var(--c-accent); padding-top: 20px; }
.casual-point__title { font-size: 20px; color: var(--c-navy); margin-bottom: 8px; }
.casual-point p { color: var(--c-text-sub); font-size: 14px; }


.form { background: #fff; border-radius: var(--radius-lg); padding: 32px 24px; }
@media (min-width: 768px) { .form { padding: 48px; } }
.section--tint .form { box-shadow: var(--shadow); }
.form__row { margin-bottom: 24px; }
.form__label { display: flex; align-items: center; gap: 8px; font-weight: 700; margin-bottom: 8px; }
.form__req { font-size: 11px; line-height: 1; padding: 4px 8px; border-radius: 4px; background: var(--c-accent); color: #fff; }
.form__input { width: 100%; font: inherit; padding: 14px 16px; border: 1px solid var(--c-line); border-radius: 8px; background: var(--c-bg-tint); }
.form__input:focus { outline: none; border-color: var(--c-blue); background: #fff; }
.form__radios { display: flex; flex-wrap: wrap; gap: 8px 24px; }
.form__row--agree { text-align: center; }
.form__row--agree a { color: var(--c-blue-dark); text-decoration: underline; }
.form__submit { text-align: center; }
.form-notice { display: block; margin-bottom: 16px; text-align: center; }

.post-header { margin-bottom: 40px; padding-bottom: 24px; border-bottom: 1px solid var(--c-line); }
.post-header time { font-family: var(--ff-en); color: var(--c-text-sub); font-size: 14px; }
.post-header__title { font-size: clamp(22px, 3vw, 30px); line-height: 1.6; color: var(--c-navy); margin-top: 8px; }

.interview-hero { padding: 56px 0; background: var(--c-bg-tint); }
.interview-hero__inner { display: grid; gap: 32px; align-items: center; }
@media (min-width: 1024px) { .interview-hero { padding: 96px 0; } .interview-hero__inner { grid-template-columns: 1fr 1fr; gap: 64px; } }
.interview-hero__title { font-size: clamp(24px, 3.4vw, 36px); line-height: 1.6; color: var(--c-navy); margin-top: 16px; }
.interview-hero__profile { margin-top: 24px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 16px; color: var(--c-text-sub); font-size: 14px; }
.interview-hero__profile strong { font-family: var(--ff-en); font-size: 22px; color: var(--c-text); }
.interview-hero__img img { border-radius: var(--radius-lg); width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }

/* スクロール表示アニメーション（main.js が .is-inview を付与） */
.js-fade { opacity: 0; transform: translateY(24px); transition: opacity .8s, transform .8s; }
.js-fade.is-inview { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	.js-fade { opacity: 1; transform: none; transition: none; }
	.hero__glow, .hero__mark, .recruit-hero__glow, .section-scroll::after { animation: none; }
	html { scroll-behavior: auto; }
}

/* 8. 仮文言の目印（FTS_SHOW_TENTATIVE=true のときのみ付与される） ------------------ */
.is-tentative { background: repeating-linear-gradient(45deg, rgba(255, 196, 0, .16) 0 6px, rgba(255, 196, 0, .08) 6px 12px); outline: 1px dashed #e0a800; outline-offset: 2px; border-radius: 2px; }
.is-tentative-block { outline: 2px dashed #e0a800; outline-offset: -2px; }

/* 応募フォーム */
.entry-note { margin-bottom: 40px; color: var(--c-text-sub); }
.entry-note a { color: var(--c-blue-dark); text-decoration: underline; }

/* お問い合わせ：用件の選択 */
.contact-types { display: grid; gap: 16px; }
@media (min-width: 1024px) { .contact-types { grid-template-columns: repeat(3, 1fr); gap: 24px; } }
.contact-type a { display: flex; flex-direction: column; height: 100%; padding: 32px 28px; border: 1px solid var(--c-line); border-radius: var(--radius-lg); background: #fff; transition: border-color .25s, box-shadow .25s, transform .25s; }
.contact-type a:hover { border-color: var(--c-blue); box-shadow: var(--shadow); transform: translateY(-4px); }
.contact-type__icon { width: 60px; height: 60px; padding: 12px; margin-bottom: 20px; border-radius: 16px; background: var(--c-blue-soft); color: var(--c-blue); }
.contact-type__icon svg { display: block; width: 100%; height: 100%; }
.contact-type__en { font-family: var(--ff-en); font-weight: 700; font-size: 13px; letter-spacing: .1em; color: var(--c-blue-dark); }
.contact-type__title { font-size: 22px; font-weight: 700; color: var(--c-navy); margin-top: 4px; }
.contact-type__text { margin-top: 12px; font-size: 14px; color: var(--c-text-sub); }
.contact-type__more { display: inline-flex; align-items: center; gap: 12px; margin-top: auto; padding-top: 24px; font-size: 14px; font-weight: 700; color: var(--c-navy); }
.contact-type a:hover .contact-type__more { color: var(--c-blue-dark); }
.contact-recruit { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px 32px; margin-top: 40px; padding: 24px 28px; border-radius: var(--radius-lg); background: var(--c-bg-tint); }
.contact-recruit__text strong { display: block; color: var(--c-navy); margin-bottom: 2px; }
.contact-recruit__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.contact-back { margin-top: 40px; text-align: center; font-size: 14px; }
.contact-back a { color: var(--c-blue-dark); text-decoration: underline; }

/* ==========================================================================
   Snow Monkey Forms（管理画面で作ったフォーム）をサイトのデザインに合わせる
   サイト内のすべてのフォーム（カジュアル面談・応募・お問い合わせ各種）に共通で効く
   ========================================================================== */
.site-main .smf-progress-tracker { margin-bottom: 40px; }
.site-main .smf-progress-tracker__item::before,
.site-main .smf-progress-tracker__item::after { background-color: var(--c-line); }
.site-main .smf-progress-tracker__item__number { background-color: #c9d3cc; font-family: var(--ff-en); font-weight: 700; }
.site-main .smf-progress-tracker__item__text { font-size: 13px; font-weight: 700; color: #9aa6a0; }
.site-main .smf-progress-tracker__item[aria-current="true"] .smf-progress-tracker__item__number { background-color: var(--c-navy); }
.site-main .smf-progress-tracker__item[aria-current="true"] .smf-progress-tracker__item__text { color: var(--c-navy); }

.site-main .smf-form .smf-item { display: block; margin: 0 0 24px; padding: 0; border: 0; background: none; }
.site-main .smf-form .smf-item__col { display: block; max-width: none; padding: 0; border: 0; background: none; }
.site-main .smf-form .smf-item__col--label { margin-bottom: 8px; }
.site-main .smf-form .smf-item__label { display: flex; align-items: center; gap: 8px; font-weight: 700; color: var(--c-text); }
.site-main .smf-form .smf-item:has([data-validations~="required"]) .smf-item__label__text::after { content: "必須"; display: inline-block; margin-left: 8px; font-size: 11px; line-height: 1; padding: 4px 8px; border-radius: 4px; background: var(--c-accent); color: #fff; vertical-align: 2px; }

.site-main .smf-form :is(.smf-text-control__control, .smf-textarea-control__control, .smf-select-control__control) { width: 100%; max-width: none; font: inherit; line-height: 1.6; padding: 14px 16px; border: 1px solid var(--c-line); border-radius: 8px; background-color: #fff; box-shadow: none; color: var(--c-text); }
.site-main .smf-form :is(.smf-text-control__control, .smf-textarea-control__control, .smf-select-control__control):focus { outline: none; border-color: var(--c-blue); }
.site-main .smf-form .smf-select-control { display: block; }
.site-main .smf-form .smf-select-control__control { padding-right: 40px; }
.site-main .smf-form .smf-select-control__toggle::before { right: 18px; }
.site-main .smf-form .smf-placeholder { display: block; }
.site-main .smf-form :is(.smf-checkbox-control__control, .smf-radio-button-control__control) { width: 18px; height: 18px; border: 1px solid #b8c4bc; background-color: #fff; box-shadow: none; }
.site-main .smf-form .smf-checkbox-control { align-items: center; gap: 8px; }
.site-main .smf-form .smf-checkbox-control__control:checked,
.site-main .smf-form .smf-radio-button-control__control:checked { background-color: var(--c-blue); border-color: var(--c-blue); }
.site-main .smf-form .smf-file-control__label { padding: 10px 20px; border: 1px solid var(--c-navy); border-radius: 999px; background: #fff; color: var(--c-navy); font-size: 14px; font-weight: 700; }
.site-main .smf-form .smf-file-control__filename { font-size: 14px; color: var(--c-text-sub); }
.site-main .smf-form .smf-radio-button-control__control { border-radius: 50%; }
.site-main .smf-form .smf-control-description { font-size: 13px; color: var(--c-text-sub); }
/* 個人情報の同意（name が agree の項目）：薄い緑の枠で囲んで目立たせる。説明文が直前の段落にある場合は、段落と項目をつなげて1つの枠に見せる */
.site-main .smf-form .smf-item:has([name^="agree"]) { padding: 20px 24px; border: 1px solid #c6ecd0; border-radius: var(--radius); background: var(--c-blue-soft); font-size: 14px; }
.site-main .smf-form :is(p, .wp-block-paragraph):has(+ .smf-item [name^="agree"]) { margin: 0; padding: 20px 24px 4px; border: 1px solid #c6ecd0; border-bottom: 0; border-radius: var(--radius) var(--radius) 0 0; background: var(--c-blue-soft); font-size: 14px; }
.site-main .smf-form :is(p, .wp-block-paragraph) + .smf-item:has([name^="agree"]) { padding-top: 12px; border-top: 0; border-radius: 0 0 var(--radius) var(--radius); }
.site-main .smf-form .smf-item:has([name^="agree"]) .smf-checkbox-control__control { width: 22px; height: 22px; border-color: var(--c-blue-dark); }
.site-main .smf-form .smf-item:has([name^="agree"]) .smf-checkbox-control__label { font-size: 16px; font-weight: 700; color: var(--c-navy); }
.site-main .smf-form :is(.smf-item:has([name^="agree"]), :is(p, .wp-block-paragraph):has(+ .smf-item [name^="agree"])) { word-break: auto-phrase; line-break: strict; }
.site-main .smf-form .fts-privacy-link { color: var(--c-blue-dark); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.site-main .smf-form [data-invalid="1"] { border-color: #d98585; }
.site-main .smf-error-messages { font-size: 13px; }

.site-main .smf-action { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; margin-top: 40px; }
.site-main .smf-action .smf-button-control { margin: 0; }
.site-main .smf-action .smf-button-control__control { min-width: 240px; padding: 18px 40px; border: 2px solid var(--c-accent); border-radius: 999px; background: var(--c-accent); color: #fff; font: inherit; font-weight: 700; letter-spacing: .04em; transition: background .25s, box-shadow .25s, transform .25s; }
.site-main .smf-action .smf-button-control__control:hover { background: var(--c-accent-dark); border-color: var(--c-accent-dark); box-shadow: 0 10px 24px rgba(255, 122, 61, .35); transform: translateY(-2px); }
.site-main .smf-action .smf-button-control__control[data-action="back"] { background: #fff; border-color: var(--c-navy); color: var(--c-navy); }
.site-main .smf-action .smf-button-control__control[data-action="back"]:hover { background: var(--c-navy); color: #fff; box-shadow: none; }
/* Cloudflare Turnstile：送信ボタンの上に中央寄せで表示（Turnstile の表示位置は「後」のまま、並び順だけ入れ替える） */
.site-main .snow-monkey-form { display: flex; flex-direction: column; }
.site-main .snow-monkey-form > :is(.smf-action, .smf-system-error-content-ready) { order: 1; }
.site-main .snow-monkey-forms-turnstile { display: flex; justify-content: center; margin-top: 40px; }
.site-main .snow-monkey-form:has(> .snow-monkey-forms-turnstile) > .smf-action { margin-top: 24px; }

/* マージン率等の情報提供 */
.margin-status { padding: 28px; border-radius: var(--radius-lg); border-left: 4px solid var(--c-blue); background: var(--c-bg-tint); }
.margin-status__label { font-size: 13px; font-weight: 700; color: var(--c-blue-dark); }
.margin-status__text { margin-top: 8px; }
.margin-figures { display: grid; gap: 12px; margin-top: 32px; }
@media (min-width: 768px) { .margin-figures { grid-template-columns: repeat(3, 1fr); gap: 24px; } }
.margin-figure { padding: 28px 20px; border: 1px solid var(--c-line); border-radius: var(--radius-lg); text-align: center; }
.margin-figure__label { font-size: 14px; font-weight: 700; color: var(--c-text-sub); }
.margin-figure__value { margin-top: 8px; color: var(--c-navy); font-weight: 700; }
.margin-figure__value span { font-family: var(--ff-en); font-size: 48px; font-weight: 800; color: var(--c-blue); margin-right: 4px; }
.margin-figure__value--empty { font-size: 20px; color: #9aa6a0; }
.margin-heading { font-size: 20px; color: var(--c-navy); margin: 48px 0 16px; padding-left: 14px; border-left: 4px solid var(--c-blue); line-height: 1.5; }
.margin-heading:first-child { margin-top: 0; }
.margin-table { padding: 0 24px; }
@media (min-width: 768px) { .margin-table > div { grid-template-columns: 340px 1fr; gap: 24px; } }
.margin-lists { display: grid; gap: 0 32px; margin-top: 48px; }
@media (min-width: 768px) { .margin-lists { grid-template-columns: 1fr 1fr; } }
.check-list li { position: relative; padding-left: 28px; }
.check-list li + li { margin-top: 10px; }
.check-list li::before { content: "✓"; position: absolute; left: 4px; top: 0; color: var(--c-blue); font-weight: 700; }
.margin-list__note { margin-top: 16px; font-size: 14px; color: var(--c-text-sub); }
@media (max-width: 767px) { .margin-list + .margin-list { margin-top: 40px; } }
.margin-contact__action { margin-top: 20px; }

/* ページの先頭へ／最後へボタン（右下に固定） */
.page-jump { position: fixed; right: 16px; bottom: 16px; z-index: 90; display: flex; flex-direction: column; gap: 8px; opacity: 0; visibility: hidden; transition: opacity .3s, visibility .3s; }
.page-jump.is-visible { opacity: 1; visibility: visible; }
.page-jump__btn { width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid var(--c-blue); border-radius: 12px; background: #fff; color: var(--c-navy); cursor: pointer; box-shadow: 0 6px 16px rgba(0, 0, 0, .08); transition: background .25s, color .25s; }
.page-jump__btn:hover { background: var(--c-blue); color: #fff; }
.page-jump__btn[hidden] { display: none; }
.page-jump__arrow { width: 12px; height: 12px; border-top: 2px solid currentColor; border-left: 2px solid currentColor; transform: translateY(3px) rotate(45deg); }
.page-jump__btn--down .page-jump__arrow { transform: translateY(-3px) rotate(-135deg); }
@media (min-width: 1024px) { .page-jump { right: 24px; bottom: 24px; } }
