/* =========================================================
   お仕事相談センター こんぱす テーマ スタイル
   方針: 暖色系・高コントラスト・大きめの文字・スマホ最優先
   ========================================================= */

:root {
	--c-bg: #F5F1EB;
	--c-surface: #FFFFFF;
	--c-sand: #EBE4D9;
	--c-sand-2: #DDD3C4;
	--c-line: #D6CCBE;
	--c-text: #221C18;
	--c-text-2: #4E4239;
	--c-muted: #6F645B;
	--c-primary: #05495E;
	--c-primary-2: #073544;
	--c-primary-soft: #DCEAEE;
	--c-cta: #B45F08;
	--c-cta-2: #944D05;
	--c-accent: #F28A17;
	--c-accent-text: #8A4B06;
	--c-accent-soft: #FDEBD3;
	--c-green: #38664E;
	--c-green-soft: #E1EBE4;
	--c-line-brand: #06C755;
	--c-focus: #1D4ED8;
	--radius: 6px;
	--radius-sm: 4px;
	--shadow: 0 1px 2px rgba(40, 25, 15, .06), 0 2px 8px rgba(40, 25, 15, .05);
	--shadow-lg: 0 6px 20px rgba(40, 25, 15, .10);
	--font: "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, system-ui, sans-serif;
	--font-head: "Zen Kaku Gothic New", "Noto Sans JP", "Hiragino Sans", sans-serif;
	--w: 1140px;
	--gutter: 20px;
}

html { font-size: 17px; scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
html[data-fs="large"] { font-size: 20px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; animation: none !important; } }

*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; font-family: var(--font); color: var(--c-text); background: var(--c-bg); line-height: 1.8; word-break: break-word; overflow-wrap: anywhere; }
.hct-site { overflow-x: clip; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--c-primary); text-decoration: underline; text-underline-offset: .18em; }
a:hover { color: var(--c-primary-2); }
h1, h2, h3, h4 { font-family: var(--font-head); line-height: 1.35; margin: 0; letter-spacing: 0; font-feature-settings: "palt"; }
p { margin: 0 0 1em; }
ul, ol { margin: 0; padding-left: 1.4em; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 3px solid var(--c-focus); outline-offset: 3px; border-radius: 4px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.hct-container { max-width: var(--w); margin: 0 auto; padding-inline: var(--gutter); }
.hct-skip { position: absolute; left: -999px; top: 8px; z-index: 1000; background: var(--c-primary); color: #fff; padding: 10px 16px; border-radius: 8px; }
.hct-skip:focus { left: 8px; }
.hct-icon { vertical-align: -.2em; flex: none; }

/* ---------- ボタン・チップ ---------- */
.hct-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 10px 22px; border-radius: var(--radius); font-weight: 700; text-decoration: none; border: 2px solid transparent; transition: background .15s, color .15s, transform .1s, box-shadow .15s; line-height: 1.3; text-align: center; white-space: nowrap; letter-spacing: .02em; }
.hct-btn--primary { background: var(--c-cta); color: #fff; border-color: var(--c-cta); }
.hct-btn--primary:hover { background: var(--c-cta-2); border-color: var(--c-cta-2); color: #fff; }
.hct-btn--ghost { background: #fff; color: var(--c-primary); border-color: var(--c-primary); }
.hct-btn--ghost:hover { background: var(--c-primary-soft); }
.hct-btn--sand { background: var(--c-sand); color: var(--c-text); }
.hct-btn--sand:hover { background: var(--c-sand-2); }
.hct-btn--line { background: var(--c-line-brand); color: #fff; border-color: var(--c-line-brand); }
.hct-btn--line:hover { background: #05a848; border-color: #05a848; color: #fff; }
.hct-btn--lg { min-height: 58px; padding: 14px 28px; font-size: 1.1rem; }
.hct-btn--block { width: 100%; }
.hct-btn:active { transform: translateY(1px); }
.hct-chip { display: inline-block; padding: 2px 10px; border-radius: 3px; background: var(--c-sand); color: var(--c-text-2); font-size: .8rem; font-weight: 700; line-height: 1.6; }
.hct-chip--quota { background: var(--c-primary-soft); color: var(--c-primary-2); }
.hct-label { display: inline-block; padding: 3px 10px; border-radius: 3px; font-size: .78rem; font-weight: 700; line-height: 1.5; color: #fff; letter-spacing: .04em; }
.hct-label--new { background: var(--c-cta); }
.hct-label--featured { background: var(--c-accent); color: #3A2600; }
.hct-label--closed { background: var(--c-muted); }
.hct-check-chip { display: inline-flex; align-items: center; cursor: pointer; }
.hct-check-chip input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.hct-check-chip span { display: inline-block; padding: 8px 14px; border-radius: var(--radius); border: 1.5px solid var(--c-line); background: #fff; font-size: .92rem; font-weight: 500; line-height: 1.4; transition: all .15s; }
.hct-check-chip input:checked + span { background: var(--c-primary); border-color: var(--c-primary); color: #fff; }
.hct-check-chip input:focus-visible + span { outline: 3px solid var(--c-focus); outline-offset: 2px; }
.hct-check-chip span::before { content: "＋ "; opacity: .6; }
.hct-check-chip input:checked + span::before { content: "✓ "; opacity: 1; }

/* ---------- 上部バー・ヘッダー ---------- */
.hct-a11y-bar { background: var(--c-primary-2); color: #fff; font-size: .85rem; }
.hct-a11y-bar__inner { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 40px; }
.hct-a11y-bar__note { margin: 0; }
.hct-a11y-bar__tools { display: flex; align-items: center; gap: 18px; }
.hct-a11y-bar__tel { color: #fff; text-decoration: none; display: inline-flex; align-items: center; gap: 4px; font-weight: 700; }
.hct-fontsize { display: inline-flex; align-items: center; gap: 4px; }
.hct-fontsize__label { display: inline-flex; align-items: center; gap: 4px; margin-right: 4px; }
.hct-fontsize__btn { min-height: 30px; padding: 2px 10px; border-radius: 3px; border: 1px solid rgba(255,255,255,.5); background: transparent; color: #fff; font-size: .85rem; }
.hct-fontsize__btn[aria-pressed="true"] { background: #fff; color: var(--c-primary-2); border-color: #fff; }
@media (max-width: 767px) { .hct-a11y-bar__note { display: none; } .hct-a11y-bar__inner { justify-content: center; } .hct-fontsize__label span, .hct-fontsize__label { font-size: 0; } .hct-fontsize__label .hct-icon { width: 20px; height: 20px; } .hct-fontsize__btn { white-space: nowrap; font-size: .85rem; } .hct-a11y-bar__tel { white-space: nowrap; } }

.hct-header { position: sticky; top: 0; z-index: 100; background: rgba(245,241,235,.96); backdrop-filter: blur(8px); border-bottom: 1px solid var(--c-line); }
.hct-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 76px; }
.hct-logo { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; color: var(--c-text); }
.hct-logo__mark { display: inline-flex; width: 44px; height: 44px; border-radius: 6px; background: var(--c-primary); color: #fff; align-items: center; justify-content: center; }
.hct-logo__text { display: flex; flex-direction: column; line-height: 1.2; }
.hct-logo__name { font-family: var(--font-head); font-weight: 900; font-size: 1.35rem; letter-spacing: .02em; }
.hct-logo__sub { font-size: .7rem; color: var(--c-muted); font-weight: 500; white-space: nowrap; }
.hct-logo__img { height: 58px; width: auto; max-width: 260px; display: block; }
.hct-footer .hct-logo__img { height: 52px; }
@media (max-width: 899px) { .hct-logo__img { height: 46px; max-width: 200px; } }
.hct-nav { display: flex; align-items: center; gap: 20px; }
.hct-nav__list { list-style: none; display: flex; gap: 4px; margin: 0; padding: 0; }
.hct-nav__list a { display: inline-block; padding: 10px 12px; text-decoration: none; color: var(--c-text); font-weight: 700; font-size: .95rem; border-radius: 4px; white-space: nowrap; }
.hct-nav__list a:hover, .hct-nav__list .current-menu-item > a { background: transparent; color: var(--c-primary); box-shadow: inset 0 -2px 0 var(--c-primary); border-radius: 0; }
.hct-nav__cta { display: flex; gap: 8px; }
.hct-nav-toggle { display: none; }
@media (max-width: 1023px) {
	.hct-nav__list a { padding: 10px 8px; font-size: .95rem; }
	.hct-nav__cta .hct-btn { padding: 8px 14px; min-height: 44px; font-size: .95rem; white-space: nowrap; }
	.hct-logo__sub { display: none; }
}
@media (max-width: 899px) {
	.hct-nav-toggle { display: inline-flex; flex-direction: column; align-items: center; gap: 2px; min-width: 60px; min-height: 56px; padding: 4px 8px; border: 0; background: transparent; color: var(--c-text); font-size: .7rem; font-weight: 700; }
	.hct-nav-toggle__close { display: none; }
	.hct-nav-toggle[aria-expanded="true"] .hct-nav-toggle__open { display: none; }
	.hct-nav-toggle[aria-expanded="true"] .hct-nav-toggle__close { display: inline; }
	.hct-nav { position: fixed; inset: 0; top: var(--header-h, 116px); background: var(--c-bg); flex-direction: column; align-items: stretch; padding: 20px var(--gutter) 120px; overflow-y: auto; transform: translateX(100%); transition: transform .25s; z-index: 99; }
	.hct-nav.is-open { transform: none; }
	.hct-nav__list { flex-direction: column; gap: 0; border-top: 1px solid var(--c-line); }
	.hct-nav__list li { border-bottom: 1px solid var(--c-line); }
	.hct-nav__list a { display: block; padding: 16px 8px; font-size: 1.05rem; border-radius: 0; }
	.hct-nav__cta { flex-direction: column; margin-top: 20px; }
	.hct-nav__cta .hct-btn { min-height: 54px; font-size: 1.05rem; }
	.hct-logo__sub { display: none; }
	.hct-logo__name { font-size: 1.2rem; }
}

/* ---------- 共通セクション ---------- */
.hct-section { padding-block: 56px; }
.hct-section--sand { background: var(--c-sand); }
.hct-section--white { background: var(--c-surface); }
.hct-section__head { max-width: 760px; margin: 0 auto 32px; text-align: center; }
.hct-section__title { font-size: clamp(1.5rem, 1.2rem + 1.4vw, 2rem); font-weight: 900; }
.hct-section__head::after { content: ""; display: block; width: 48px; height: 3px; background: var(--c-primary); margin: 16px auto 0; }
.hct-section__lead { color: var(--c-text-2); margin: 12px 0 0; }
.hct-eyebrow { display: inline-block; margin: 0 0 8px; color: var(--c-primary); font-weight: 700; font-size: .78rem; letter-spacing: .16em; text-transform: uppercase; font-family: var(--font-head); }
.hct-eyebrow::before { content: ""; display: inline-block; width: 22px; height: 2px; background: var(--c-primary); vertical-align: middle; margin-right: 8px; }
.hct-section__more { text-align: center; margin-top: 32px; }
@media (max-width: 767px) { .hct-section { padding-block: 40px; } }

/* ---------- パンくず ---------- */
.hct-breadcrumbs { font-size: .85rem; color: var(--c-muted); padding: 12px 0 0; }
.hct-breadcrumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: 4px 8px; margin: 0; padding: 0; }
.hct-breadcrumbs li + li::before { content: "›"; margin-right: 8px; color: var(--c-line); }
.hct-breadcrumbs a { color: var(--c-text-2); }
.hct-breadcrumbs li:last-child span { display: inline-block; max-width: min(60vw, 32em); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: bottom; }

/* ---------- ヒーロー ---------- */
.hct-hero { position: relative; background: var(--c-bg); overflow: hidden; border-bottom: 1px solid var(--c-line); }
.hct-hero::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(var(--c-line) 1px, transparent 1px), linear-gradient(90deg, var(--c-line) 1px, transparent 1px); background-size: 64px 64px; opacity: .35; pointer-events: none; mask-image: linear-gradient(180deg, rgba(0,0,0,.9), transparent 85%); -webkit-mask-image: linear-gradient(180deg, rgba(0,0,0,.9), transparent 85%); }
.hct-hero::after { content: ""; position: absolute; left: 0; top: 0; width: 6px; height: 100%; background: var(--c-primary); }
.hct-hero__inner { position: relative; display: grid; grid-template-columns: 1.1fr .9fr; gap: 40px; align-items: center; padding-block: 56px 32px; }
.hct-hero__kicker { display: inline-flex; align-items: center; gap: 8px; background: #fff; border: 1px solid var(--c-line); border-left: 4px solid var(--c-primary); border-radius: 3px; padding: 6px 12px; font-size: .82rem; font-weight: 700; color: var(--c-text-2); margin-bottom: 20px; letter-spacing: .02em; }
.hct-hero__title { font-size: clamp(2rem, 1.4rem + 2.6vw, 2.9rem); font-weight: 900; line-height: 1.32; letter-spacing: 0; }
.hct-hero__title em { font-style: normal; color: var(--c-primary); }
.hct-hero__sub { font-size: 1.05rem; color: var(--c-text-2); margin: 18px 0 24px; max-width: 34em; }
.hct-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.hct-hero__trust { list-style: none; display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 22px 0 0; padding: 0; font-size: .9rem; color: var(--c-text-2); }
.hct-hero__trust li { display: inline-flex; align-items: center; gap: 6px; }
.hct-hero__trust .hct-icon { color: var(--c-green); }
.hct-hero__visual { position: relative; }
.hct-hero__card { background: #fff; border: 1px solid var(--c-line); border-top: 4px solid var(--c-primary); border-radius: var(--radius); box-shadow: var(--shadow); padding: 24px; }
.hct-hero__card-title { font-size: 1.05rem; margin-bottom: 14px; display: flex; align-items: center; gap: 8px; }
.hct-hero__stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 24px; }
.hct-stat { background: var(--c-bg); border: 1px solid var(--c-line); border-radius: var(--radius-sm); padding: 12px; text-align: center; }
.hct-stat__num { display: block; font-family: var(--font-head); font-size: 1.5rem; font-weight: 900; color: var(--c-primary); line-height: 1.2; }
.hct-stat__label { font-size: .8rem; color: var(--c-muted); }
@media (max-width: 899px) {
	.hct-hero__inner { grid-template-columns: 1fr; gap: 28px; padding-block: 36px 24px; }
	.hct-hero__stats { grid-template-columns: repeat(3, 1fr); gap: 8px; }
	.hct-stat__num { font-size: 1.2rem; }
}

/* ---------- 検索フォーム ---------- */
.hct-search { background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); box-shadow: var(--shadow-lg); padding: 22px; }
.hct-search__row { display: grid; grid-template-columns: 1.1fr 1fr .9fr 1.2fr auto; gap: 12px; align-items: end; }
.hct-search__field { display: flex; flex-direction: column; gap: 6px; }
.hct-search__label { display: inline-flex; align-items: center; gap: 6px; font-size: .85rem; font-weight: 700; color: var(--c-text-2); }
.hct-search select, .hct-search input[type="search"] { width: 100%; min-height: 50px; padding: 10px 12px; border: 1.5px solid var(--c-line); border-radius: var(--radius-sm); background: #fff; }
.hct-search select { appearance: none; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%237A6F66' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>"); background-repeat: no-repeat; background-position: right 12px center; padding-right: 36px; }
.hct-search select:focus, .hct-search input:focus { border-color: var(--c-primary); outline: none; box-shadow: 0 0 0 3px var(--c-primary-soft); }
.hct-search__submit { min-height: 50px; white-space: nowrap; }
.hct-search__quick { border: 0; margin: 18px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.hct-search__quick legend { float: left; width: 100%; margin-bottom: 6px; font-size: .85rem; font-weight: 700; color: var(--c-text-2); }
.hct-search--compact { padding: 16px; box-shadow: var(--shadow); }
@media (max-width: 1023px) { .hct-search__row { grid-template-columns: 1fr 1fr; } .hct-search__submit { grid-column: 1 / -1; } .hct-search__field--kw { grid-column: 1 / -1; } }
@media (max-width: 599px) { .hct-search__row { grid-template-columns: 1fr; } .hct-search { padding: 16px; } }

/* ---------- 求人カード ---------- */
.hct-jobs-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; list-style: none; margin: 0; padding: 0; }
@media (max-width: 1023px) { .hct-jobs-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 639px) { .hct-jobs-grid { grid-template-columns: 1fr; } }
.hct-job-card { background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); overflow: hidden; border: 1px solid var(--c-line); transition: transform .15s, box-shadow .15s, border-color .15s; height: 100%; }
.hct-job-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-lg); border-color: var(--c-primary); }
.hct-job-card.is-closed { opacity: .7; }
.hct-job-card__link { display: flex; flex-direction: column; height: 100%; color: inherit; text-decoration: none; }
.hct-job-card__media { position: relative; aspect-ratio: 16 / 9; background: var(--c-sand); overflow: hidden; }
.hct-job-card__media img { width: 100%; height: 100%; object-fit: cover; }
.hct-job-card__placeholder { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; color: var(--c-sand-2); background: linear-gradient(135deg, var(--c-sand), #F9F1E6); }
.hct-job-card__placeholder .hct-icon { color: #CDB99C; }
.hct-job-card__labels { position: absolute; top: 10px; left: 10px; display: flex; gap: 6px; }
.hct-job-card__body { padding: 16px 18px 8px; flex: 1; }
.hct-job-card__meta { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.hct-job-card__title { font-size: 1.08rem; font-weight: 700; color: var(--c-text); line-height: 1.5; }
.hct-job-card__link:hover .hct-job-card__title { color: var(--c-primary); }
.hct-job-card__catch { font-size: .9rem; color: var(--c-text-2); margin: 6px 0 10px; }
.hct-job-card__facts { margin: 0; display: grid; gap: 4px; font-size: .92rem; }
.hct-job-card__facts > div { display: flex; gap: 8px; align-items: flex-start; }
.hct-job-card__facts dt { color: var(--c-primary); display: inline-flex; padding-top: 5px; }
.hct-job-card__facts dd { margin: 0; }
.hct-job-card__revise { display: inline-block; margin-left: 6px; font-size: .75rem; color: var(--c-accent-text); font-weight: 700; }
.hct-job-card__tags { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0 0; padding: 0; }
.hct-job-card__tags li { font-size: .78rem; padding: 3px 9px; border-radius: 3px; background: var(--c-accent-soft); color: var(--c-accent-text); font-weight: 500; }
.hct-job-card__tags li.is-more { background: var(--c-sand); color: var(--c-muted); }
.hct-job-card__foot { display: flex; justify-content: space-between; align-items: center; padding: 10px 18px 14px; font-size: .85rem; color: var(--c-muted); border-top: 1px dashed var(--c-line); margin-top: 8px; }
.hct-job-card__more { color: var(--c-primary); font-weight: 700; display: inline-flex; align-items: center; gap: 2px; }

/* ---------- 求人一覧 ---------- */
.hct-archive__head { padding: 8px 0 20px; }
.hct-archive__title { font-size: clamp(1.4rem, 1.1rem + 1.2vw, 1.9rem); font-weight: 700; }
.hct-archive__count { color: var(--c-text-2); margin: 6px 0 0; }
.hct-archive__count strong { color: var(--c-primary); font-size: 1.3em; font-family: var(--font-head); }
.hct-archive__layout { display: grid; grid-template-columns: 280px 1fr; gap: 28px; align-items: start; padding-bottom: 56px; }
.hct-archive__main { min-width: 0; }
.hct-filter { background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); box-shadow: var(--shadow); padding: 18px; position: sticky; top: 92px; }
.hct-filter__title { font-size: 1.05rem; margin-bottom: 8px; display: flex; align-items: center; gap: 6px; }
.hct-filter details { border-top: 1px solid var(--c-line); }
.hct-filter summary { cursor: pointer; padding: 12px 0; font-weight: 700; list-style: none; display: flex; justify-content: space-between; align-items: center; }
.hct-filter summary::-webkit-details-marker { display: none; }
.hct-filter summary::after { content: "＋"; color: var(--c-muted); }
.hct-filter details[open] summary::after { content: "－"; }
.hct-filter__list { list-style: none; margin: 0 0 12px; padding: 0; display: grid; gap: 2px; max-height: 320px; overflow: auto; }
.hct-filter__list label { display: flex; align-items: center; gap: 8px; padding: 6px 4px; border-radius: 6px; cursor: pointer; font-size: .95rem; }
.hct-filter__list label:hover { background: var(--c-sand); }
.hct-filter__list input { width: 20px; height: 20px; accent-color: var(--c-primary); flex: none; }
.hct-filter__list .is-child { padding-left: 22px; }
.hct-filter__actions { display: grid; gap: 8px; margin-top: 14px; }
.hct-filter__toggle { display: none; }
.hct-archive__toolbar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 16px; }
.hct-active-filters { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0; padding: 0; }
.hct-active-filters a { display: inline-flex; align-items: center; gap: 4px; padding: 4px 10px; border-radius: 3px; background: var(--c-primary-soft); color: var(--c-primary-2); text-decoration: none; font-size: .85rem; font-weight: 700; }
.hct-sort { display: inline-flex; gap: 4px; align-items: center; font-size: .9rem; }
.hct-sort a { padding: 6px 10px; border-radius: 6px; text-decoration: none; color: var(--c-text-2); }
.hct-sort a[aria-current="true"] { background: var(--c-primary); color: #fff; border-radius: 3px; }
.hct-empty { background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); padding: 32px; text-align: center; box-shadow: var(--shadow); }
.hct-empty h2 { font-size: 1.2rem; margin-bottom: 8px; }
@media (max-width: 899px) {
	.hct-archive__layout { grid-template-columns: 1fr; }
	.hct-filter { position: static; padding: 0; box-shadow: none; background: transparent; }
	.hct-filter__toggle { display: inline-flex; width: 100%; margin-bottom: 12px; }
	.hct-filter__panel { display: none; background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); padding: 18px; }
	.hct-filter__panel.is-open { display: block; }
	.hct-filter__title { display: none; }
}

/* ---------- ページネーション ---------- */
.hct-pagination, .navigation.pagination { margin-top: 32px; }
.navigation.pagination .nav-links { display: flex; justify-content: center; gap: 6px; flex-wrap: wrap; }
.navigation.pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 46px; min-height: 46px; padding: 0 12px; border-radius: 4px; background: #fff; border: 1px solid var(--c-line); text-decoration: none; color: var(--c-text); font-weight: 700; }
.navigation.pagination .page-numbers.current { background: var(--c-primary); color: #fff; border-color: var(--c-primary); }
.navigation.pagination .page-numbers.dots { border: 0; background: transparent; }
.navigation.pagination .prev .hct-icon { transform: rotate(180deg); }
.navigation.pagination .screen-reader-text { position: absolute; }

/* ---------- 求人詳細 ---------- */
.hct-single { padding-bottom: 64px; }
.hct-single__layout { display: grid; grid-template-columns: 1fr 340px; gap: 32px; align-items: start; margin-top: 16px; }
.hct-single__main { min-width: 0; }
.hct-single__head { background: #fff; border: 1px solid var(--c-line); border-top: 5px solid var(--c-primary); border-radius: var(--radius); box-shadow: var(--shadow); padding: 26px 28px; }
.hct-single__labels { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.hct-single__title { font-size: clamp(1.4rem, 1.1rem + 1.4vw, 2rem); font-weight: 700; line-height: 1.45; }
.hct-single__catch { font-size: 1.05rem; color: var(--c-text-2); margin: 12px 0 0; }
.hct-single__company { margin: 16px 0 0; display: flex; align-items: center; gap: 8px; font-weight: 700; }
.hct-single__company .hct-icon { color: var(--c-primary); }
.hct-single__dates { font-size: .82rem; color: var(--c-muted); margin: 12px 0 0; }
.hct-keyfacts { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin: 22px 0 0; }
.hct-keyfact { display: flex; gap: 10px; align-items: flex-start; background: var(--c-bg); border-radius: var(--radius-sm); padding: 12px 14px; }
.hct-keyfact .hct-icon { color: var(--c-primary); margin-top: 4px; }
.hct-keyfact__label { display: block; font-size: .78rem; color: var(--c-muted); font-weight: 700; }
.hct-keyfact__value { font-weight: 700; }
.hct-keyfact__value strong { font-size: 1.15em; color: var(--c-cta-2); }
.hct-keyfact__revise { display: block; margin-top: 4px; font-size: .85rem; color: var(--c-accent-text); background: var(--c-accent-soft); border-radius: 4px; padding: 4px 8px; font-weight: 700; }
.hct-single__tags { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; margin: 18px 0 0; padding: 0; }
.hct-single__tags li a { display: inline-block; font-size: .85rem; padding: 5px 11px; border-radius: 4px; background: var(--c-accent-soft); color: var(--c-accent-text); text-decoration: none; font-weight: 500; }
.hct-single__tags li a:hover { background: #F8DDB4; }
.hct-single__gallery { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin: 20px 0 0; }
.hct-single__gallery img { border-radius: var(--radius-sm); aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.hct-single__gallery .is-main { grid-column: 1 / -1; }
.hct-single__gallery .is-main img { aspect-ratio: 16 / 9; }
.hct-closed-notice { background: var(--c-sand); border-left: 6px solid var(--c-muted); padding: 16px 20px; border-radius: var(--radius-sm); margin-top: 16px; }
.hct-block { background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); box-shadow: var(--shadow); padding: 26px 28px; margin-top: 20px; }
.hct-block__title { font-size: 1.25rem; font-weight: 700; padding-bottom: 12px; margin-bottom: 16px; border-bottom: 2px solid var(--c-sand-2); display: flex; align-items: center; gap: 8px; }
.hct-block__title .hct-icon { color: var(--c-primary); }
.hct-block--support { border-left: 5px solid var(--c-primary); background: #FFFDFB; }
.hct-block--support .hct-block__title { border-color: var(--c-primary-soft); }
.hct-content { line-height: 1.9; }
.hct-content h3 { font-size: 1.05rem; margin: 20px 0 6px; color: var(--c-primary-2); }
.hct-content p:last-child { margin-bottom: 0; }
.hct-spec { margin: 0; }
.hct-spec__row { display: grid; grid-template-columns: 190px 1fr; gap: 8px 16px; padding: 12px 0; border-bottom: 1px solid var(--c-sand); }
.hct-spec__row:last-child { border-bottom: 0; }
.hct-spec__row dt { font-weight: 700; color: var(--c-text-2); }
.hct-spec__row dd { margin: 0; }
@media (max-width: 599px) { .hct-spec__row { grid-template-columns: 1fr; gap: 2px; } .hct-spec__row dt { font-size: .85rem; color: var(--c-muted); } }
.hct-facility-list { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; }
.hct-facility-list li { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; background: var(--c-green-soft); color: #23553B; font-weight: 700; font-size: .9rem; }
.hct-note { font-size: .88rem; color: var(--c-muted); margin: 12px 0 0; }
.hct-consultant { display: grid; grid-template-columns: 64px 1fr; gap: 16px; align-items: start; background: var(--c-sand); border-radius: var(--radius); padding: 20px; margin-top: 20px; border: 1px solid var(--c-sand-2); }
.hct-consultant__avatar { width: 64px; height: 64px; border-radius: 6px; background: var(--c-primary); color: #fff; display: flex; align-items: center; justify-content: center; }
.hct-consultant__label { font-size: .85rem; font-weight: 700; color: var(--c-primary-2); margin-bottom: 4px; }
.hct-consultant p:last-child { margin: 0; }

.hct-single__side { position: sticky; top: 92px; display: grid; gap: 16px; }
.hct-apply-card { background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); box-shadow: var(--shadow-lg); padding: 22px; border-top: 5px solid var(--c-primary); }
.hct-apply-card__title { font-size: 1.1rem; margin-bottom: 6px; }
.hct-apply-card__lead { font-size: .92rem; color: var(--c-text-2); margin-bottom: 14px; }
.hct-apply-card .hct-btn { width: 100%; margin-bottom: 8px; }
.hct-apply-card__tel { text-align: center; font-size: .9rem; color: var(--c-text-2); margin: 10px 0 0; }
.hct-apply-card__tel a { font-family: var(--font-head); font-size: 1.3rem; font-weight: 900; color: var(--c-text); text-decoration: none; display: inline-flex; align-items: center; gap: 4px; }
.hct-side-note { background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); box-shadow: var(--shadow); padding: 18px 20px; font-size: .9rem; }
.hct-side-note h3 { font-size: 1rem; margin-bottom: 8px; display: flex; align-items: center; gap: 6px; }
.hct-side-note h3 .hct-icon { color: var(--c-green); }
.hct-side-note ul { padding-left: 1.2em; margin: 0; }
.hct-side-note li + li { margin-top: 4px; }
@media (max-width: 899px) {
	.hct-single__layout { grid-template-columns: 1fr; }
	.hct-single__side { position: static; }
	.hct-single__head, .hct-block { padding: 20px; }
	.hct-keyfacts { grid-template-columns: 1fr; }
	.hct-single__gallery { grid-template-columns: repeat(2, 1fr); }
}
.hct-related { margin-top: 40px; }
.hct-related__title { font-size: 1.3rem; margin-bottom: 16px; }

/* ---------- トップページ各セクション ---------- */
.hct-reasons { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.hct-reason { background: #fff; border: 1px solid var(--c-line); border-top: 4px solid var(--c-primary); border-radius: var(--radius); box-shadow: var(--shadow); padding: 26px 24px; }
.hct-reason__icon { width: 56px; height: 56px; border-radius: 6px; background: var(--c-primary-soft); color: var(--c-primary); display: flex; align-items: center; justify-content: center; margin-bottom: 14px; }
.hct-reason__title { font-size: 1.15rem; margin-bottom: 8px; }
.hct-reason p { margin: 0; color: var(--c-text-2); }
@media (max-width: 899px) { .hct-reasons { grid-template-columns: 1fr; } }
.hct-tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; list-style: none; margin: 0; padding: 0; }
.hct-tiles a { display: flex; align-items: center; justify-content: space-between; gap: 8px; background: #fff; border: 1px solid var(--c-line); border-left: 3px solid var(--c-primary); border-radius: var(--radius-sm); padding: 14px 16px; text-decoration: none; color: var(--c-text); font-weight: 700; min-height: 56px; }
.hct-tiles a:hover { border-color: var(--c-primary); color: var(--c-primary); }
.hct-tiles .hct-tiles__count { font-size: .85rem; color: var(--c-muted); font-weight: 500; white-space: nowrap; }
@media (max-width: 899px) { .hct-tiles { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 479px) { .hct-tiles { grid-template-columns: 1fr; } }
.hct-steps { list-style: none; counter-reset: step; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 0; padding: 0; }
.hct-step { position: relative; background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); box-shadow: var(--shadow); padding: 24px 22px 22px; counter-increment: step; }
.hct-step::before { content: "0" counter(step); position: absolute; top: -14px; left: 18px; min-width: 44px; height: 30px; padding: 0 10px; border-radius: 3px; background: var(--c-primary); color: #fff; font-family: var(--font-head); font-weight: 900; font-size: .95rem; letter-spacing: .06em; display: flex; align-items: center; justify-content: center; }
.hct-step__title { font-size: 1.05rem; margin: 6px 0 6px; }
.hct-step p { margin: 0; font-size: .95rem; color: var(--c-text-2); }
@media (max-width: 899px) { .hct-steps { grid-template-columns: 1fr; gap: 24px; } }
.hct-split { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; align-items: center; }
.hct-split__title { font-size: clamp(1.4rem, 1.1rem + 1.2vw, 1.9rem); margin-bottom: 12px; }
.hct-split__visual { background: #fff; border: 1px solid var(--c-line); border-left: 4px solid var(--c-primary); border-radius: var(--radius); box-shadow: var(--shadow); padding: 24px; }
@media (max-width: 899px) { .hct-split { grid-template-columns: 1fr; } }
.hct-checklist { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.hct-checklist li { display: flex; gap: 10px; align-items: flex-start; }
.hct-checklist .hct-icon { color: var(--c-green); margin-top: 6px; }
.hct-faq { display: grid; gap: 10px; }
.hct-faq details { background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius-sm); box-shadow: var(--shadow); padding: 0 20px; }
.hct-faq summary { cursor: pointer; padding: 16px 0; font-weight: 700; list-style: none; display: flex; gap: 10px; align-items: flex-start; }
.hct-faq summary::-webkit-details-marker { display: none; }
.hct-faq summary::before { content: "Q"; flex: none; width: 28px; height: 28px; border-radius: 3px; background: var(--c-primary); color: #fff; font-family: var(--font-head); display: inline-flex; align-items: center; justify-content: center; font-size: .9rem; }
.hct-faq__a { padding: 0 0 18px 38px; color: var(--c-text-2); }
.hct-faq__a p:last-child { margin: 0; }
.hct-posts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; list-style: none; margin: 0; padding: 0; }
.hct-post-card { background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); box-shadow: var(--shadow); overflow: hidden; }
.hct-post-card a { display: block; color: inherit; text-decoration: none; height: 100%; }
.hct-post-card__media { aspect-ratio: 16 / 9; background: var(--c-sand); }
.hct-post-card__media img { width: 100%; height: 100%; object-fit: cover; }
.hct-post-card__body { padding: 16px 18px 18px; }
.hct-post-card__cat { font-size: .78rem; color: var(--c-primary); font-weight: 700; }
.hct-post-card__title { font-size: 1.02rem; margin: 6px 0 6px; }
.hct-post-card__date { font-size: .8rem; color: var(--c-muted); }
@media (max-width: 899px) { .hct-posts { grid-template-columns: 1fr; } }
.hct-support-orgs { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; list-style: none; margin: 0; padding: 0; }
.hct-support-orgs li { background: #fff; border-radius: var(--radius-sm); padding: 16px 18px; border: 1px solid var(--c-line); border-left: 3px solid var(--c-accent); }
.hct-support-orgs strong { display: block; margin-bottom: 4px; }
.hct-support-orgs p { margin: 0; font-size: .92rem; color: var(--c-text-2); }
@media (max-width: 767px) { .hct-support-orgs { grid-template-columns: 1fr; } }

/* ---------- CTAバンド ---------- */
.hct-cta-band { background: var(--c-primary-2); color: #fff; padding-block: 52px; border-top: 6px solid var(--c-accent); }
.hct-cta-band__inner { display: grid; grid-template-columns: 1.2fr 1fr; gap: 32px; align-items: center; }
.hct-cta-band__title { font-size: clamp(1.4rem, 1.1rem + 1.4vw, 2rem); margin-bottom: 10px; }
.hct-cta-band__text p { margin: 0; opacity: .95; }
.hct-cta-band__actions { display: grid; gap: 10px; }
.hct-cta-band .hct-btn--primary { background: var(--c-cta); color: #fff; border-color: var(--c-cta); }
.hct-cta-band .hct-btn--primary:hover { background: var(--c-cta-2); border-color: var(--c-cta-2); }
.hct-cta-band__tel { text-align: center; margin-top: 6px; }
.hct-cta-band__tel-link { color: #fff; text-decoration: none; font-family: var(--font-head); font-size: 1.5rem; font-weight: 900; display: inline-flex; align-items: center; gap: 6px; }
.hct-cta-band__hours { display: block; font-size: .85rem; opacity: .9; }
@media (max-width: 899px) { .hct-cta-band__inner { grid-template-columns: 1fr; } }

/* ---------- フッター ---------- */
.hct-footer { background: #12303B; color: #DCE6E9; padding-top: 48px; padding-bottom: 96px; }
.hct-footer a { color: #fff; }
.hct-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 32px; }
.hct-footer .hct-logo { color: #fff; }
.hct-footer .hct-logo__sub { color: #9FB9C2; }
.hct-footer__desc { font-size: .9rem; margin: 14px 0; color: #C9D7DC; }
.hct-footer__tel-link { color: #fff; text-decoration: none; font-family: var(--font-head); font-size: 1.3rem; font-weight: 900; display: inline-flex; align-items: center; gap: 4px; }
.hct-footer__heading { font-size: .95rem; color: #F5A54A; margin-bottom: 12px; font-family: var(--font); font-weight: 700; }
.hct-footer__col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.hct-footer__col a { text-decoration: none; }
.hct-footer__col a:hover { text-decoration: underline; }
.hct-footer__legal { font-size: .88rem; }
.hct-footer__legal p { margin: 0 0 10px; }
.hct-footer__license { font-size: 1.1rem; color: #fff; }
.hct-footer__bottom { border-top: 1px solid rgba(255,255,255,.12); margin-top: 36px; padding-top: 20px; font-size: .82rem; color: #9FB9C2; }
.hct-footer__bottom .hct-container { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; }
.hct-footer__menu { list-style: none; display: flex; flex-wrap: wrap; gap: 16px; margin: 0; padding: 0; }
.hct-footer__copy { margin: 0; }
@media (max-width: 899px) { .hct-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 599px) { .hct-footer__grid { grid-template-columns: 1fr; gap: 24px; } }

/* ---------- スマホ固定CTA ---------- */
.hct-sticky-cta { display: none; }
@media (max-width: 899px) {
	.hct-sticky-cta { display: grid; grid-template-columns: 1.4fr 1fr; gap: 8px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); background: rgba(255,255,255,.96); border-top: 1px solid var(--c-line); box-shadow: 0 -4px 16px rgba(0,0,0,.08); }
	.hct-sticky-cta .hct-btn { min-height: 50px; font-size: .95rem; padding-inline: 10px; }
	.hct-sticky-cta .hct-btn span { white-space: nowrap; }
	.hct-nav.is-open ~ .hct-sticky-cta, body.hct-nav-open .hct-sticky-cta { display: none; }
}

/* ---------- 固定ページ・コラム ---------- */
.hct-page { padding-bottom: 64px; }
.hct-page__head { padding: 20px 0 24px; }
.hct-page__title { font-size: clamp(1.6rem, 1.2rem + 1.8vw, 2.3rem); font-weight: 700; }
.hct-page__lead { color: var(--c-text-2); margin: 10px 0 0; max-width: 40em; }
.hct-page__body { max-width: 820px; }
.hct-prose { background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); box-shadow: var(--shadow); padding: 32px; line-height: 1.9; }
.hct-prose > :first-child { margin-top: 0; }
.hct-prose h2 { font-size: 1.35rem; margin: 36px 0 12px; padding-bottom: 8px; border-bottom: 2px solid var(--c-sand-2); }
.hct-prose h3 { font-size: 1.1rem; margin: 24px 0 8px; color: var(--c-primary-2); }
.hct-prose table { width: 100%; border-collapse: collapse; margin: 16px 0; font-size: .95rem; }
.hct-prose th, .hct-prose td { border: 1px solid var(--c-line); padding: 10px 12px; text-align: left; vertical-align: top; }
.hct-prose th { background: var(--c-sand); width: 30%; font-weight: 700; }
.hct-prose thead th { width: auto; }
.hct-prose figure { margin: 0; overflow-x: auto; }
.hct-prose ul, .hct-prose ol { margin-bottom: 1em; }
.hct-prose li + li { margin-top: 4px; }
.hct-prose img { border-radius: var(--radius-sm); }
.hct-prose blockquote { margin: 16px 0; padding: 12px 20px; border-left: 4px solid var(--c-accent); background: var(--c-accent-soft); }
@media (max-width: 599px) { .hct-prose { padding: 20px; } .hct-prose th { width: 38%; } }
.hct-post-meta { font-size: .85rem; color: var(--c-muted); margin: 8px 0 0; display: flex; gap: 12px; flex-wrap: wrap; }
.hct-post-meta a { color: var(--c-primary); }
.hct-post-hero img { border-radius: var(--radius); margin-bottom: 20px; }

/* ---------- フォーム（プラグイン出力 .hc-*） ---------- */
.hc-form-wrap { max-width: 820px; }
.hc-form { background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); box-shadow: var(--shadow); padding: 28px; }
.hc-form__lead { background: var(--c-accent-soft); border-left: 4px solid var(--c-accent); border-radius: var(--radius-sm); padding: 14px 16px; font-weight: 500; }
.hc-form__job { background: var(--c-primary-soft); border-radius: var(--radius-sm); padding: 12px 16px; margin-bottom: 16px; display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: baseline; }
.hc-form__job-label { font-size: .82rem; color: var(--c-primary-2); font-weight: 700; }
.hc-form__job-no { font-size: .8rem; color: var(--c-muted); }
.hc-form__section { padding: 24px 0 8px; border-top: 1px solid var(--c-line); margin-top: 8px; }
.hc-form__section:first-of-type { border-top: 0; }
.hc-form__heading { font-size: 1.15rem; margin-bottom: 14px; display: flex; align-items: center; gap: 10px; }
.hc-form__heading small { font-size: .85rem; color: var(--c-muted); font-weight: 500; }
.hc-form__step { width: 32px; height: 32px; border-radius: 4px; background: var(--c-primary); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-family: var(--font-head); font-weight: 900; flex: none; }
.hc-form__note { font-size: .9rem; color: var(--c-text-2); background: var(--c-bg); border-radius: var(--radius-sm); padding: 10px 14px; }
.hc-field { margin-bottom: 18px; }
.hc-field fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.hc-field__label { display: block; font-weight: 700; margin-bottom: 6px; }
.hc-field__help { font-size: .85rem; color: var(--c-muted); margin: -2px 0 6px; }
.hc-req, .hc-opt { display: inline-block; font-size: .72rem; padding: 2px 8px; border-radius: 4px; margin-left: 6px; vertical-align: middle; font-weight: 700; }
.hc-req { background: var(--c-cta); color: #fff; }
.hc-opt { background: var(--c-sand); color: var(--c-muted); }
.hc-field input[type="text"], .hc-field input[type="tel"], .hc-field input[type="email"], .hc-field input[type="date"], .hc-field select, .hc-field textarea { width: 100%; min-height: 50px; padding: 10px 14px; border: 2px solid var(--c-line); border-radius: var(--radius-sm); background: #fff; }
.hc-field textarea { min-height: 110px; }
.hc-field input:focus, .hc-field select:focus, .hc-field textarea:focus { border-color: var(--c-primary); outline: none; box-shadow: 0 0 0 3px var(--c-primary-soft); }
.hc-field--error input, .hc-field--error select, .hc-field--error textarea, .hc-field--error .hc-choices { border-color: #B91C1C; }
.hc-field--error .hc-field__label { color: #B91C1C; }
.hc-choices { display: flex; flex-wrap: wrap; gap: 8px; border: 2px solid transparent; border-radius: var(--radius-sm); }
.hc-choice { display: inline-flex; align-items: center; gap: 8px; padding: 10px 14px; border: 1.5px solid var(--c-line); border-radius: 4px; cursor: pointer; background: #fff; min-height: 48px; }
.hc-choice:has(input:checked) { border-color: var(--c-primary); background: var(--c-primary-soft); }
.hc-choice input { width: 20px; height: 20px; accent-color: var(--c-primary); margin: 0; flex: none; }
.hc-form__section--consent .hc-choice { width: 100%; align-items: flex-start; }
.hc-form__section--consent .hc-choice input { margin-top: 4px; }
.hc-consent { font-size: .92rem; background: var(--c-bg); border-radius: var(--radius-sm); padding: 14px 16px; margin-bottom: 14px; }
.hc-consent p:last-child { margin: 0; }
.hc-form__submit { text-align: center; padding-top: 12px; }
.hc-form__submit .hc-btn { width: 100%; max-width: 480px; }
.hc-form__submit-note { font-size: .88rem; color: var(--c-muted); margin: 12px 0 0; }
.hc-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 10px 22px; border-radius: 6px; font-weight: 700; text-decoration: none; border: 2px solid transparent; cursor: pointer; letter-spacing: .02em; }
.hc-btn--primary { background: var(--c-cta); color: #fff; border-color: var(--c-cta); }
.hc-btn--primary:hover { background: var(--c-cta-2); }
.hc-btn--ghost { background: #fff; color: var(--c-primary); border-color: var(--c-primary); }
.hc-btn--lg { min-height: 60px; font-size: 1.1rem; }
.hc-hp { position: absolute; left: -9999px; top: -9999px; }
.hc-form-errors { background: #FEE2E2; border: 2px solid #B91C1C; color: #7F1D1D; border-radius: var(--radius-sm); padding: 14px 18px; margin-bottom: 18px; }
.hc-form-errors ul { margin: 6px 0 0; }
.hc-form-thanks { background: #fff; border: 1px solid var(--c-line); border-top: 5px solid var(--c-green); border-radius: var(--radius); box-shadow: var(--shadow); padding: 36px 28px; text-align: center; }
.hc-form-thanks__title { font-size: 1.5rem; color: var(--c-primary-2); margin-bottom: 12px; }
.hc-form-thanks__tel a { font-family: var(--font-head); font-size: 1.5rem; font-weight: 900; color: var(--c-text); text-decoration: none; }
@media (max-width: 599px) { .hc-form { padding: 18px; } .hc-choice { width: 100%; } }

/* ---------- 企業向けページ ---------- */
.hct-fee-table { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid var(--c-line); box-shadow: var(--shadow); }
.hct-fee-table th, .hct-fee-table td { padding: 14px 16px; border-bottom: 1px solid var(--c-line); text-align: left; vertical-align: top; }
.hct-fee-table thead th { background: var(--c-primary); color: #fff; }
.hct-fee-table tbody th { background: var(--c-sand); width: 34%; font-weight: 700; }
.hct-fee-table strong { color: var(--c-primary-2); }
.hct-fee-note { font-size: .9rem; color: var(--c-text-2); margin-top: 12px; }
.hct-stats-band { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.hct-stats-band .hct-stat { padding: 20px; }
.hct-stats-band .hct-stat__num { font-size: 2rem; }
@media (max-width: 767px) { .hct-stats-band { grid-template-columns: 1fr; } }
.hct-two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
@media (max-width: 767px) { .hct-two-col { grid-template-columns: 1fr; } }
.hct-form-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 24px; align-items: start; }
@media (max-width: 899px) { .hct-form-layout { grid-template-columns: 1fr; } .hct-form-layout .hct-single__side { position: static; } }
.hct-card { background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); box-shadow: var(--shadow); padding: 24px; }
.hct-card__title { font-size: 1.1rem; margin-bottom: 10px; display: flex; align-items: center; gap: 8px; }
.hct-card__title .hct-icon { color: var(--c-primary); }
.hct-card p:last-child { margin: 0; }

/* ---------- 404・検索 ---------- */
.hct-404 { text-align: center; padding: 64px 0; }
.hct-404 h1 { font-size: 2rem; margin-bottom: 12px; }

/* =========================================================
   リッチ化: アニメーション・装飾・補助UI
   （prefers-reduced-motion のときは動きを止め、内容は必ず表示する）
   ========================================================= */

/* ---------- ページ表示・入場アニメーション ---------- */
@keyframes hct-fade-up { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes hct-fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes hct-pop { 0% { transform: scale(.94); opacity: 0; } 60% { transform: scale(1.02); opacity: 1; } 100% { transform: scale(1); } }
html.js .hct-hero__text > * { animation: hct-fade-up .7s cubic-bezier(.2,.7,.2,1) both; }
html.js .hct-hero__text > :nth-child(1) { animation-delay: .05s; }
html.js .hct-hero__text > :nth-child(2) { animation-delay: .15s; }
html.js .hct-hero__text > :nth-child(3) { animation-delay: .25s; }
html.js .hct-hero__text > :nth-child(4) { animation-delay: .35s; }
html.js .hct-hero__text > :nth-child(5) { animation-delay: .45s; }
html.js .hct-hero__visual { animation: hct-pop .8s cubic-bezier(.2,.7,.2,1) .3s both; }
html.js .hct-hero .hct-search { animation: hct-fade-up .7s cubic-bezier(.2,.7,.2,1) .5s both; }

/* スクロールで現れる要素 */
html.js .hct-reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1); }
html.js .hct-reveal.is-visible { opacity: 1; transform: none; }
html.js .hct-reveal[data-delay="1"] { transition-delay: .1s; }
html.js .hct-reveal[data-delay="2"] { transition-delay: .2s; }
html.js .hct-reveal[data-delay="3"] { transition-delay: .3s; }
html.js .hct-reveal[data-delay="4"] { transition-delay: .4s; }
html.js .hct-reveal[data-delay="5"] { transition-delay: .5s; }
@media (prefers-reduced-motion: reduce) {
	html.js .hct-reveal, html.js .hct-hero__text > *, html.js .hct-hero__visual, html.js .hct-hero .hct-search { opacity: 1 !important; transform: none !important; animation: none !important; transition: none !important; }
}

/* ---------- ヒーローのコンパス（装飾） ---------- */
.hct-hero__visual { position: relative; }
.hct-hero__compass { position: absolute; width: 440px; height: 440px; right: -150px; top: -130px; color: var(--c-primary); opacity: .12; pointer-events: none; z-index: 0; }
.hct-hero__card { position: relative; z-index: 1; }
@keyframes hct-spin { to { transform: rotate(360deg); } }
@keyframes hct-needle { 0% { transform: rotate(-50deg); } 55% { transform: rotate(14deg); } 78% { transform: rotate(-6deg); } 100% { transform: rotate(0deg); } }
@keyframes hct-sway { 0%, 100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }
.hct-compass__ring { transform-origin: 100px 100px; animation: hct-spin 160s linear infinite; }
.hct-compass__needle { transform-origin: 100px 100px; animation: hct-needle 2.6s cubic-bezier(.2,.7,.2,1) .4s both, hct-sway 9s ease-in-out 3s infinite; }
.hct-compass__north { fill: var(--c-accent); }
@media (max-width: 899px) { .hct-hero__compass { width: 300px; height: 300px; right: -90px; top: -90px; } }
@media (prefers-reduced-motion: reduce) { .hct-compass__ring, .hct-compass__needle { animation: none; } }

/* 数値カウントアップ */
.hct-stat__num.is-counting { font-variant-numeric: tabular-nums; }

/* ---------- ヘッダー（スクロール時に引き締める） ---------- */
.hct-header { transition: box-shadow .25s, background .25s; }
.hct-header__inner { transition: min-height .25s; }
.hct-header.is-scrolled { box-shadow: 0 4px 16px rgba(40, 25, 15, .08); background: rgba(245,241,235,.98); }
.hct-header.is-scrolled .hct-header__inner { min-height: 64px; }
/* モバイルメニューの項目を順に出す */
@keyframes hct-slide-in { from { opacity: 0; transform: translateX(16px); } to { opacity: 1; transform: none; } }
@media (max-width: 899px) {
	.hct-nav.is-open .hct-nav__list li { animation: hct-slide-in .35s cubic-bezier(.2,.7,.2,1) both; }
	.hct-nav.is-open .hct-nav__list li:nth-child(2) { animation-delay: .05s; }
	.hct-nav.is-open .hct-nav__list li:nth-child(3) { animation-delay: .1s; }
	.hct-nav.is-open .hct-nav__list li:nth-child(4) { animation-delay: .15s; }
	.hct-nav.is-open .hct-nav__list li:nth-child(5) { animation-delay: .2s; }
	.hct-nav.is-open .hct-nav__cta { animation: hct-slide-in .35s cubic-bezier(.2,.7,.2,1) .25s both; }
}

/* ---------- トップへ戻る ---------- */
.hct-totop { position: fixed; right: 16px; bottom: 16px; z-index: 89; width: 48px; height: 48px; border-radius: 6px; border: 0; background: var(--c-primary); color: #fff; box-shadow: var(--shadow-lg); display: inline-flex; align-items: center; justify-content: center; opacity: 0; transform: translateY(12px); pointer-events: none; transition: opacity .25s, transform .25s; }
.hct-totop.is-visible { opacity: 1; transform: none; pointer-events: auto; }
.hct-totop .hct-icon { transform: rotate(-90deg); }
@media (max-width: 899px) { .hct-totop { bottom: 84px; right: 12px; width: 44px; height: 44px; } }

/* ---------- 求人カードのリッチ化 ---------- */
.hct-job-card { position: relative; }
.hct-job-card::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 4px; background: var(--c-primary); z-index: 2; }
.hct-job-card__media img { transition: transform .5s cubic-bezier(.2,.7,.2,1); }
.hct-job-card:hover .hct-job-card__media img { transform: scale(1.04); }
.hct-job-card__placeholder { position: relative; overflow: hidden; }
.hct-job-card__placeholder::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,.12) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.12) 1px, transparent 1px); background-size: 28px 28px; }
.hct-job-card__placeholder .hct-icon { position: relative; color: #fff; width: 56px; height: 56px; filter: drop-shadow(0 4px 10px rgba(0,0,0,.12)); transition: transform .5s cubic-bezier(.2,.7,.2,1); }
.hct-job-card:hover .hct-job-card__placeholder .hct-icon { transform: scale(1.06); }
.hct-job-card__placeholder--0 { background: linear-gradient(135deg, #05495E, #073544); }
.hct-job-card__placeholder--1 { background: linear-gradient(135deg, #D08A2A, #A85F0E); }
.hct-job-card__placeholder--2 { background: linear-gradient(135deg, #5E8A70, #37604A); }
.hct-job-card__placeholder--3 { background: linear-gradient(135deg, #6E5B4E, #4A3A30); }
.hct-job-card__placeholder--4 { background: linear-gradient(135deg, #4F7C8A, #2F5966); }
.hct-job-card__placeholder--5 { background: linear-gradient(135deg, #9A5E5A, #6E3E3B); }
.hct-job-card__cat { position: absolute; left: 14px; bottom: 12px; color: #fff; font-size: .8rem; font-weight: 700; letter-spacing: .04em; text-shadow: 0 1px 6px rgba(0,0,0,.25); }
.hct-job-card__more .hct-icon { transition: transform .2s; }
.hct-job-card:hover .hct-job-card__more .hct-icon { transform: translateX(4px); }

/* コラムカードのプレースホルダー */
.hct-post-card__media { position: relative; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, #E6EEF0, #CFDEE3); color: var(--c-primary); overflow: hidden; }
.hct-post-card__media img { transition: transform .5s cubic-bezier(.2,.7,.2,1); }
.hct-post-card:hover .hct-post-card__media img { transform: scale(1.04); }
.hct-post-card { transition: transform .2s, box-shadow .2s; }
.hct-post-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-lg); }

/* ---------- タイル・理由・ステップ・FAQ ---------- */
.hct-tiles a { transition: transform .2s, border-color .2s, box-shadow .2s, color .2s; }
.hct-tiles a:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
.hct-tiles .hct-tiles__count { display: inline-flex; align-items: center; gap: 2px; }
.hct-reason { position: relative; overflow: hidden; transition: transform .25s, box-shadow .25s; }
.hct-reason:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.hct-reason__num { position: absolute; right: 18px; top: 14px; font-family: var(--font-head); font-weight: 900; font-size: 2.4rem; line-height: 1; color: var(--c-sand-2); pointer-events: none; letter-spacing: .02em; }
.hct-reason__icon { background: var(--c-primary-soft); width: 60px; height: 60px; border-radius: 6px; }
.hct-step { transition: transform .25s, box-shadow .25s; }
.hct-step:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg); }
@media (min-width: 900px) {
	.hct-steps { position: relative; }
	.hct-steps::before { content: ""; position: absolute; left: 12%; right: 12%; top: 4px; border-top: 3px dashed var(--c-sand-2); z-index: 0; }
	.hct-step { z-index: 1; }
}
.hct-faq details { transition: box-shadow .2s; }
.hct-faq details[open] { box-shadow: var(--shadow-lg); }
.hct-faq summary { position: relative; padding-right: 40px; }
.hct-faq summary::after { content: ""; position: absolute; right: 4px; top: 50%; width: 12px; height: 12px; margin-top: -8px; border-right: 2px solid var(--c-primary); border-bottom: 2px solid var(--c-primary); transform: rotate(45deg); transition: transform .25s; }
.hct-faq details[open] summary::after { transform: rotate(-135deg); margin-top: -2px; }
@keyframes hct-faq-open { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
.hct-faq details[open] .hct-faq__a { animation: hct-faq-open .3s ease both; }
.hct-support-orgs li { transition: transform .2s, box-shadow .2s; }
.hct-support-orgs li:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
.hct-checklist .hct-icon { background: var(--c-green-soft); border-radius: 4px; padding: 3px; width: 24px; height: 24px; margin-top: 3px; }

/* CTAバンドの背景に動く光 */
.hct-cta-band { position: relative; overflow: hidden; }
.hct-cta-band::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px); background-size: 48px 48px; pointer-events: none; }
.hct-cta-band__inner { position: relative; }

/* ボタンの光沢 */
.hct-btn--primary:hover, .hc-btn--primary:hover { box-shadow: 0 4px 14px rgba(148, 77, 5, .28); }

/* ---------- 求人詳細: ページ内ナビ・共有・印刷 ---------- */
.hct-single__head { position: relative; overflow: hidden; }
.hct-single__head::after { content: none; }
.hct-single__head > * { position: relative; }
.hct-trust { display: inline-flex; align-items: center; gap: 6px; background: var(--c-green-soft); color: #23553B; font-size: .8rem; font-weight: 700; padding: 4px 10px; border-radius: 3px; }
.hct-subnav { position: sticky; top: 76px; z-index: 50; margin: 16px 0 0; background: rgba(251,247,241,.96); backdrop-filter: blur(6px); border-bottom: 1px solid var(--c-line); }
.hct-subnav ul { list-style: none; display: flex; gap: 4px; margin: 0; padding: 6px 0; overflow-x: auto; scrollbar-width: none; }
.hct-subnav ul::-webkit-scrollbar { display: none; }
.hct-subnav a { display: inline-block; padding: 8px 14px; border-radius: 3px; text-decoration: none; color: var(--c-text-2); font-weight: 700; font-size: .92rem; white-space: nowrap; transition: background .2s, color .2s; }
.hct-subnav a:hover { background: var(--c-sand); color: var(--c-text); }
.hct-subnav a[aria-current="true"] { background: var(--c-primary); color: #fff; }
.hct-single .hct-block { scroll-margin-top: 140px; }
@media (max-width: 899px) { .hct-subnav { top: 60px; } }
.hct-share { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.hct-share__btn { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 6px 14px; border-radius: 4px; border: 1.5px solid var(--c-line); background: #fff; color: var(--c-text-2); font-size: .88rem; font-weight: 700; text-decoration: none; cursor: pointer; transition: border-color .2s, color .2s, transform .15s; }
.hct-share__btn:hover { border-color: var(--c-primary); color: var(--c-primary); transform: translateY(-1px); }
.hct-share__btn--line { border-color: var(--c-line-brand); color: #058a3b; }
.hct-toast { position: fixed; left: 50%; bottom: 96px; transform: translate(-50%, 20px); background: var(--c-text); color: #fff; padding: 10px 18px; border-radius: 4px; font-weight: 700; font-size: .92rem; opacity: 0; pointer-events: none; transition: opacity .25s, transform .25s; z-index: 200; box-shadow: var(--shadow-lg); }
.hct-toast.is-visible { opacity: 1; transform: translate(-50%, 0); }
.hct-acc-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.hct-acc-list li { display: flex; gap: 10px; align-items: flex-start; background: #fff; border: 1px solid var(--c-line); border-left: 3px solid var(--c-primary); border-radius: 4px; padding: 10px 14px; }
.hct-acc-list .hct-icon { color: var(--c-primary); background: var(--c-primary-soft); border-radius: 4px; padding: 3px; width: 24px; height: 24px; flex: none; margin-top: 2px; }
.hct-keyfact { transition: transform .2s, background .2s; }
.hct-keyfact:hover { background: var(--c-sand); transform: translateY(-2px); }

/* ---------- 登録フォーム: 進捗と入力チェック ---------- */
.hc-progress { position: sticky; top: 76px; z-index: 40; display: flex; align-items: center; gap: 14px; background: #fff; border: 1px solid var(--c-line); border-radius: 6px; padding: 10px 16px; margin-bottom: 16px; box-shadow: var(--shadow); }
.hc-progress__bar { flex: 1; height: 8px; border-radius: 2px; background: var(--c-sand); overflow: hidden; }
.hc-progress__fill { height: 100%; width: 0; border-radius: 2px; background: var(--c-cta); transition: width .4s cubic-bezier(.2,.7,.2,1); }
.hc-progress__text { font-size: .9rem; font-weight: 700; white-space: nowrap; color: var(--c-text-2); }
.hc-progress.is-complete .hc-progress__text { color: #23553B; }
.hc-progress.is-complete .hc-progress__fill { background: linear-gradient(90deg, #6E9E86, var(--c-green)); }
@media (max-width: 899px) { .hc-progress { top: 60px; padding: 8px 12px; } .hc-progress__text { font-size: .82rem; } }
.hc-field__msg { display: none; margin: 6px 0 0; font-size: .85rem; font-weight: 700; color: #B91C1C; }
.hc-field.is-invalid .hc-field__msg { display: block; }
.hc-field.is-invalid input, .hc-field.is-invalid select, .hc-field.is-invalid textarea { border-color: #B91C1C; }
.hc-field.is-valid input:not([type="checkbox"]):not([type="radio"]), .hc-field.is-valid select, .hc-field.is-valid textarea { border-color: var(--c-green); }
.hc-field__label .hc-ok { display: none; color: var(--c-green); vertical-align: middle; margin-left: 4px; }
.hc-field.is-valid .hc-field__label .hc-ok { display: inline; }
.hc-form__section { transition: opacity .3s; }
.hc-choice { transition: border-color .15s, background .15s, transform .1s; }
.hc-choice:active { transform: scale(.98); }
.hc-form-thanks { animation: hct-pop .6s cubic-bezier(.2,.7,.2,1) both; }
.hc-form-thanks__check { width: 72px; height: 72px; border-radius: 8px; background: var(--c-green-soft); color: var(--c-green); display: inline-flex; align-items: center; justify-content: center; margin-bottom: 12px; }
@keyframes hct-draw { to { stroke-dashoffset: 0; } }
.hc-form-thanks__check .hct-icon { width: 40px; height: 40px; stroke-dasharray: 40; stroke-dashoffset: 40; animation: hct-draw .6s ease .3s forwards; }
body.hct-no-sticky .hct-sticky-cta { display: none; }

/* ---------- 印刷（求人票として渡せる） ---------- */
@media print {
	.hct-a11y-bar, .hct-header, .hct-footer, .hct-sticky-cta, .hct-cta-band, .hct-subnav, .hct-share, .hct-single__side, .hct-related, .hct-totop, .hct-breadcrumbs, .hct-toast { display: none !important; }
	body { background: #fff; font-size: 11pt; color: #000; }
	.hct-container { max-width: none; padding: 0; }
	.hct-single__layout { grid-template-columns: 1fr; }
	.hct-block, .hct-single__head { box-shadow: none; border: 1px solid #ccc; break-inside: avoid; padding: 14px 16px; margin-top: 12px; }
	.hct-keyfacts { grid-template-columns: repeat(2, 1fr); }
	.hct-spec__row { grid-template-columns: 160px 1fr; padding: 6px 0; }
	.hct-print-only { display: block !important; }
	a { color: #000; text-decoration: none; }
}
.hct-print-only { display: none; font-size: .85rem; color: var(--c-muted); margin-top: 12px; }
/* 固定CTAのないページではトップへ戻るボタンを下に寄せる */
@media (max-width: 899px) { body.hct-no-sticky .hct-totop { bottom: 16px; } }

/* ---------- 求人カード: 1カラム・横長レイアウト ---------- */
.hct-jobs-grid { grid-template-columns: 1fr; gap: 16px; }
.hct-job-card__link { display: grid; grid-template-columns: 300px minmax(0, 1fr); grid-template-rows: 1fr auto; }
.hct-job-card__media { grid-row: 1 / 3; aspect-ratio: auto; min-height: 100%; }
.hct-job-card__media img { position: absolute; inset: 0; width: 100%; height: 100%; }
.hct-job-card__placeholder { position: absolute; inset: 0; height: 100%; }
.hct-job-card__placeholder .hct-icon { width: 64px; height: 64px; }
.hct-job-card__body { padding: 18px 22px 8px; }
.hct-job-card__title { font-size: 1.15rem; }
.hct-job-card__facts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 16px; }
.hct-job-card__foot { grid-column: 2; margin-top: 0; padding: 10px 22px 14px; }
.hct-single .hct-related .hct-jobs-grid { grid-template-columns: 1fr; }
@media (max-width: 1023px) { .hct-jobs-grid { grid-template-columns: 1fr; } .hct-job-card__link { grid-template-columns: 240px minmax(0, 1fr); } }
@media (max-width: 639px) {
	.hct-job-card__link { display: flex; flex-direction: column; }
	.hct-job-card__media { aspect-ratio: 16 / 9; min-height: 0; grid-row: auto; }
	.hct-job-card__media img, .hct-job-card__placeholder { position: static; }
	.hct-job-card__placeholder { height: 100%; }
	.hct-job-card__facts { grid-template-columns: 1fr; }
	.hct-job-card__foot { grid-column: auto; margin-top: 8px; }
}
