@charset "UTF-8";
/* ============================================================
   column-premium.css  v5.0 — Full Site Redesign
   bulma / common / sub / article / hrt_cvarea の上に読み込む
   ============================================================ */

/* ===========================================
   1. 基盤
   =========================================== */
html { scroll-behavior: smooth; }
.p-column__section { margin-top: 0 !important; padding-top: 0 !important; margin-bottom: 48px; }
.p-column__heading { margin-top: 0 !important; padding-top: 0 !important; }
[id^="section"], [id^="heading"] { scroll-margin-top: 80px; }
@media (min-width:640px) { .p-column__section { margin-bottom: 64px; } }

/* SP本文の左右余白改善（最低16px確保） */
@media (max-width:768px) {
  .l-container__inner { width: 91%; padding: 0 4px; }
  .p-column__nav { padding: 16px 18px; }
  [id^="section"], [id^="heading"] { scroll-margin-top: 64px; }
  .c-article__label { font-size: 1.15rem; padding: 4px 10px 4px 8px; }
}

/* letter-spacing 全体調整 */
.p-contents__left--column { letter-spacing: .06em; }

/* ===========================================
   2. ヘッダー改善
   =========================================== */

/* パンくずのコントラスト改善 */
.p-panlist { background: #e8f5f3; }
.p-panlist__item a { color: #007a6e; font-weight: 600; transition: color .2s; }
.p-panlist__item a:hover { color: #005a50; }
.p-panlist__item span { color: var(--color-text-muted, #444); }

/* 「コラム」帯の最低高さ */
@media (max-width:768px) {
  .c-headingsub__inner { min-height: 72px; height: auto; padding: 16px 0; }
}
.c-headingsub { text-shadow: 0 1px 4px rgba(0,0,0,.3); }

/* SPハンバーガー タッチ領域拡大 */
@media (max-width:1199px) {
  .p-gnav__toggle { width: 60px; height: 60px; padding: 14px 14px 0 0; }
}

/* ===========================================
   3. H1
   =========================================== */
.c-heading__article {
  border-left: none; padding-left: 20px; margin-bottom: 20px;
  background: linear-gradient(180deg, #2AC0B6, #056EB4) left / 5px 100% no-repeat;
}
.c-heading__article::before { display: none; }
.c-heading__article h1 { font-family: var(--font-heading, "Zen Kaku Gothic New", "Noto Sans JP", sans-serif); font-size: 2rem; line-height: 1.4; color: #1B2A4A; padding: 4px 0; letter-spacing: 0.02em; }
@media (min-width:640px) { .c-heading__article h1 { font-size: 2.4rem; } }

/* ===========================================
   4. 日付・カテゴリ
   =========================================== */
.c-article__databox--column { margin: 0 0 20px; }
.c-article__time { font-family: var(--font-number, "Inter", "Noto Sans JP", sans-serif); font-size: 1.4rem; color: var(--color-text-muted, #444); font-weight: 600; font-feature-settings: "tnum" 1; letter-spacing: 0.04em; }

/* --- カテゴリラベル共通 --- */
.c-article__label {
  height: auto; min-height: 30px; padding: 5px 14px 5px 12px; border-radius: 20px;
  font-family: 'Noto Sans JP', sans-serif; font-size: 1.2rem; font-weight: 600; letter-spacing: .03em;
  background: #f0f4f8; border: 1.5px solid #d0d8e0;
  transition: all .28s cubic-bezier(.4,0,.2,1);
  box-shadow: 0 1px 3px rgba(0,0,0,.06);
}
.c-article__label a {
  display: inline-flex; align-items: center; gap: 6px;
  font-family: 'Noto Sans JP', sans-serif;
  text-decoration: none; color: var(--color-text-muted, #444); transition: color .28s;
}
.c-article__label a::before {
  font-family: "Font Awesome 6 Free"; font-weight: 900;
  font-size: 1.1rem; line-height: 1; flex-shrink: 0;
}
.c-article__label:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,.12); }

/* --- 01 Indeed --- */
.c-article__label a[href*="index_01"] { color: #2557a7; }
.c-article__label a[href*="index_01"]::before { content: "\f0b1"; color: #2557a7; }
.c-article__label:has(a[href*="index_01"]) { background: linear-gradient(135deg, #eef4fc, #dbe8f8); border-color: #b0c8e8; }
.c-article__label:has(a[href*="index_01"]):hover { background: linear-gradient(135deg, #2557a7, #1a4a96); border-color: #1a4a96; }
.c-article__label:has(a[href*="index_01"]):hover a,
.c-article__label:has(a[href*="index_01"]):hover a::before { color: #fff !important; }

/* --- 02 求人ボックス --- */
.c-article__label a[href*="index_02"] { color: #00875a; }
.c-article__label a[href*="index_02"]::before { content: "\f49e"; color: #00875a; }
.c-article__label:has(a[href*="index_02"]) { background: linear-gradient(135deg, #eef8f3, #d8f0e5); border-color: #a8d8bf; }
.c-article__label:has(a[href*="index_02"]):hover { background: linear-gradient(135deg, #00875a, #006e49); border-color: #006e49; }
.c-article__label:has(a[href*="index_02"]):hover a,
.c-article__label:has(a[href*="index_02"]):hover a::before { color: #fff !important; }

/* --- 03 スタンバイ --- */
.c-article__label a[href*="index_03"] { color: #d4380d; }
.c-article__label a[href*="index_03"]::before { content: "\f135"; color: #d4380d; }
.c-article__label:has(a[href*="index_03"]) { background: linear-gradient(135deg, #fef3ee, #fde4d6); border-color: #f0c4a8; }
.c-article__label:has(a[href*="index_03"]):hover { background: linear-gradient(135deg, #d4380d, #b8300a); border-color: #b8300a; }
.c-article__label:has(a[href*="index_03"]):hover a,
.c-article__label:has(a[href*="index_03"]):hover a::before { color: #fff !important; }

/* --- 04 データフィード --- */
.c-article__label a[href*="index_04"] { color: #7C3AED; }
.c-article__label a[href*="index_04"]::before { content: "\f1c0"; color: #7C3AED; }
.c-article__label:has(a[href*="index_04"]) { background: linear-gradient(135deg, #f5f0ff, #ebe0ff); border-color: #c8b0f0; }
.c-article__label:has(a[href*="index_04"]):hover { background: linear-gradient(135deg, #7C3AED, #6929d0); border-color: #6929d0; }
.c-article__label:has(a[href*="index_04"]):hover a,
.c-article__label:has(a[href*="index_04"]):hover a::before { color: #fff !important; }

/* --- 05 運用ノウハウ --- */
.c-article__label a[href*="index_05"] { color: #056EB4; }
.c-article__label a[href*="index_05"]::before { content: "\f0eb"; color: #056EB4; }
.c-article__label:has(a[href*="index_05"]) { background: linear-gradient(135deg, #eef5fc, #dceaf8); border-color: #a8c8e8; }
.c-article__label:has(a[href*="index_05"]):hover { background: linear-gradient(135deg, #056EB4, #045a96); border-color: #045a96; }
.c-article__label:has(a[href*="index_05"]):hover a,
.c-article__label:has(a[href*="index_05"]):hover a::before { color: #fff !important; }

/* --- 06 その他 --- */
.c-article__label a[href*="index_06"] { color: #64748B; }
.c-article__label a[href*="index_06"]::before { content: "\f02b"; color: #64748B; }
.c-article__label:has(a[href*="index_06"]) { background: linear-gradient(135deg, #f1f3f6, #e4e8ed); border-color: #c0c8d4; }
.c-article__label:has(a[href*="index_06"]):hover { background: linear-gradient(135deg, #64748B, #526074); border-color: #526074; }
.c-article__label:has(a[href*="index_06"]):hover a,
.c-article__label:has(a[href*="index_06"]):hover a::before { color: #fff !important; }

/* ===========================================
   5. H2
   =========================================== */
.c-heading__secondary--column {
  position: relative; font-family: var(--font-heading, "Zen Kaku Gothic New", "Noto Sans JP", sans-serif); font-size: 2.2rem; font-weight: 900; color: #056EB4;
  background: linear-gradient(90deg, #056EB4, #2AC0B6);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  padding-bottom: 12px; margin-bottom: 24px; border-bottom: none; letter-spacing: 0.02em;
}
@supports not (-webkit-text-fill-color: transparent) {
  .c-heading__secondary--column { background: none; color: #056EB4; }
}
.c-heading__secondary--column::after {
  content: ""; position: absolute; bottom: 0; left: 0;
  width: 100%; height: 3px; border-radius: 2px;
  background: linear-gradient(90deg, #056EB4, #2AC0B6 60%, transparent);
}
@media (min-width:640px) { .c-heading__secondary--column { font-size: 2.6rem; } }

/* h2の改行バランスを改善 */
.c-heading__secondary--column {
  text-wrap: balance;
  word-break: auto-phrase;
}

/* ===========================================
   6. H3
   =========================================== */
.p-column__section .c-heading__tertiary {
  position: relative; font-family: var(--font-heading, "Zen Kaku Gothic New", "Noto Sans JP", sans-serif); font-size: 1.8rem; font-weight: 700; color: #1B2A4A;
  border-bottom: none; padding: 0 0 10px 16px; margin-bottom: 20px; letter-spacing: 0.02em;
}
@media (max-width:639px) { .p-column__section .c-heading__tertiary { margin-bottom: 16px; } }
.p-column__section .c-heading__tertiary::before {
  content: ""; position: absolute; top: 2px; left: 0;
  width: 4px; height: calc(100% - 12px); border-radius: 2px;
  background: linear-gradient(180deg, #056EB4, #2AC0B6);
}
.p-column__section .c-heading__tertiary::after {
  content: ""; position: absolute; bottom: 0; left: 0;
  width: 100%; height: 1px; background: #e0e6ed;
}
@media (min-width:640px) { .p-column__section .c-heading__tertiary { font-size: 2rem; } }

/* ===========================================
   7. 目次
   =========================================== */
.p-column__nav {
  background: linear-gradient(135deg, #f0f4ff, #e8f0fe);
  border: 1px solid #d0daf0; border-left: 4px solid #056EB4;
  border-radius: 8px; padding: 24px 28px;
  box-shadow: 0 2px 8px rgba(0,0,0,.04);
}
.p-column__nav:hover { box-shadow: 0 4px 16px rgba(0,0,0,.08); }
.p-column__nav .c-heading__sixth { font-size: 1.6rem; color: #056EB4; }
.p-column__nav .c-heading__sixth::before { content: "\f03a"; font-family: "Font Awesome 6 Free"; font-weight: 900; margin-right: 6px; color: #056EB4; }
/* 目次トグル */
.p-column__nav-toggle { margin: 0; }
.p-column__nav-toggle-btn {
  display: flex; align-items: center; gap: 8px; cursor: pointer;
  font-size: 1.5rem; font-weight: 700; color: #056EB4;
  padding: 0; list-style: none; user-select: none;
}
.p-column__nav-toggle-btn::-webkit-details-marker { display: none; }
.p-column__nav-toggle-btn::after {
  content: "\f078"; font-family: "Font Awesome 6 Free"; font-weight: 900;
  font-size: 1.2rem; margin-left: auto; transition: transform .3s;
}
.p-column__nav-toggle[open] > .p-column__nav-toggle-btn::after {
  transform: rotate(180deg);
}
.p-column__nav-toggle-btn i { color: #056EB4; font-size: 1.3rem; }
.p-column__nav-toggle .p-column__nav-list { margin-top: 14px; }

.p-column__nav-item > a { color: #1a3a6b; font-weight: 600; transition: color .2s, padding-left .2s; }
.p-column__nav-item > a:hover { color: #056EB4; padding-left: 4px; text-decoration: none; }
.p-column__nav-link--small:hover { color: #056EB4 !important; }

/* ===========================================
   8. 本文タイポグラフィ
   =========================================== */
.p-contents__left--column p { font-size: 1.5rem; line-height: 1.85; letter-spacing: .05em; color: var(--color-text, #2a2d2d); }
@media (min-width:640px) { .p-contents__left--column p { font-size: 1.6rem; } }

/* strong色の統一 */
.p-contents__left--column strong { color: #1B2A4A; font-weight: 700; }

/* mark */
.p-column__section mark { background: linear-gradient(transparent 60%, #d4f0ed 60%); padding: 0 2px; border-radius: 2px; }

/* リンク */
.p-column__section > p a, .p-column__section > ul a { color: #056EB4; font-weight: 500; text-decoration: none; border-bottom: 1px solid transparent; transition: border-color .2s, color .2s; }
.p-column__section > p a:hover, .p-column__section > ul a:hover { color: #0352a0; border-bottom-color: #056EB4; }

/* code */
.p-column__section code { font-family: Consolas, Monaco, monospace; font-size: .9em; color: #c7254e; background: #f9f2f4; padding: 2px 6px; border-radius: 3px; }

/* リスト */
.p-column__section ul[style*="list-style: disc"], .p-column__section ul[style*="list-style:disc"] { list-style: none !important; }
.p-column__section ul[style*="list-style: disc"] li, .p-column__section ul[style*="list-style:disc"] li { position: relative; padding-left: 20px; margin-bottom: 10px; line-height: 1.7; }
.p-column__section ul[style*="list-style: disc"] li::before, .p-column__section ul[style*="list-style:disc"] li::before {
  content: ""; position: absolute; top: 10px; left: 0; width: 8px; height: 8px;
  background: linear-gradient(135deg, #056EB4, #2AC0B6); border-radius: 50%;
}

/* ===========================================
   9. テーブル
   =========================================== */
.p-column__section .table {
  width: 100%; font-size: 1.4rem; border-collapse: separate; border-spacing: 0;
  border: none; border-radius: 8px; overflow: hidden;
  box-shadow: 0 1px 6px rgba(0,0,0,.08);
}
.p-column__section .table.is-bordered { border: none; }
.p-column__section .table thead tr { background: linear-gradient(135deg, #1B2A4A, #2a4270); }
.p-column__section .table thead th {
  color: #fff; font-weight: 600; font-size: 1.35rem; padding: 12px 14px;
  border: none; border-right: 1px solid rgba(255,255,255,.15); white-space: nowrap;
}
.p-column__section .table.is-bordered thead th { border-color: rgba(255,255,255,.15); }
.p-column__section .table thead th:last-child { border-right: none; }
.p-column__section .table tbody td {
  padding: 11px 14px; border-bottom: 1px solid #e8ecf1; border-right: 1px solid #e8ecf1;
  color: var(--color-text, #2a2d2d); line-height: 1.5; vertical-align: middle;
}
.p-column__section .table.is-bordered td { border-color: #e8ecf1; }
.p-column__section .table tbody td:last-child { border-right: none; }
.p-column__section .table tbody tr:last-child td { border-bottom: none; }
.p-column__section .table.is-striped tbody tr:nth-child(even) { background: #f7f9fc; }
.p-column__section .table.is-striped tbody tr:hover { background: #eef3fa; transition: background .2s; }
.p-column__section .table strong { color: #056EB4; font-weight: 700; }

/* テーブルレスポンシブ */
.p-column__section .table-responsive { position: relative; overflow-x: auto; -webkit-overflow-scrolling: touch; margin-bottom: 8px; }
.p-column__section .table-responsive::after {
  content: ""; position: absolute; top: 0; right: 0; width: 32px; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.9));
  pointer-events: none; transition: opacity .3s;
}
.p-column__section .table-responsive.is-scrolled-end::after { opacity: 0; }
@media (max-width:768px) {
  .p-column__section .table { min-width: 480px; font-size: 1.3rem; }
  .p-column__section .table thead th { white-space: normal; font-size: 1.25rem; padding: 10px; }
  .p-column__section .table tbody td { padding: 9px 10px; }
  .p-column__section .table-responsive::before {
    content: "← スクロールできます →"; display: block; text-align: center;
    font-size: 1.1rem; color: #666; padding: 4px 0;
  }
}

/* ===========================================
   9b. 要点3つ（アイキャッチ直下）
   =========================================== */
.p-column__keypoints {
  background: #f8fbff; border: 1px solid #d8e4f0; border-radius: 8px;
  padding: 0; overflow: hidden;
}
.p-column__keypoints-title {
  display: flex; align-items: center; gap: 8px;
  background: linear-gradient(135deg, #056EB4, #2AC0B6);
  color: #fff !important; font-size: 1.5rem !important; font-weight: 700;
  padding: 12px 22px; margin: 0 !important;
  -webkit-text-fill-color: #fff;
}
.p-column__keypoints-title i { font-size: 1.4rem; color: #fff !important; }
.p-column__keypoints-body {
  padding: 16px 22px;
}
.p-column__keypoint {
  display: flex; align-items: flex-start; gap: 10px;
  padding: 10px 0; border-bottom: 1px solid #e8eef5;
}
.p-column__keypoint:last-child { border-bottom: none; padding-bottom: 0; }
.p-column__keypoint:first-child { padding-top: 0; }
.p-column__keypoint-num {
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
  width: 26px; height: 26px; font-size: 1.3rem; font-weight: 800;
  color: #fff; background: linear-gradient(135deg, #056EB4, #2AC0B6);
  border-radius: 50%;
}
.p-column__keypoint p {
  font-size: 1.4rem !important; line-height: 1.6; margin: 0 !important;
}

/* ===========================================
   9c. この記事のポイント（リード文の後）
   =========================================== */
.p-column__pointbox {
  background: #f0faf8; border: 1px solid #b2dfdb; border-radius: 8px;
  padding: 0; overflow: hidden;
}
.p-column__pointbox-title {
  display: flex; align-items: center; gap: 8px;
  background: linear-gradient(135deg, #00897b, #26a69a);
  color: #fff !important; font-size: 1.5rem !important; font-weight: 700;
  padding: 12px 22px; margin: 0 !important;
  -webkit-text-fill-color: #fff;
}
.p-column__pointbox-title i { font-size: 1.4rem; color: #fff !important; }
.p-column__pointbox-body { padding: 16px 22px; }
.p-column__pointbox-item {
  display: flex; align-items: flex-start; gap: 10px;
  padding: 9px 0; border-bottom: 1px solid #d4ece8;
}
.p-column__pointbox-item:last-child { border-bottom: none; padding-bottom: 0; }
.p-column__pointbox-item:first-child { padding-top: 0; }
.p-column__pointbox-icon {
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
  width: 22px; height: 22px; font-size: 1.1rem;
  color: #fff; background: #00897b; border-radius: 50%; margin-top: 2px;
}
.p-column__pointbox-item p {
  font-size: 1.4rem !important; line-height: 1.6; margin: 0 !important; color: var(--color-text, #2a2d2d);
}

/* ===========================================
   10. 画像
   =========================================== */
.p-contents__left--column > img.u-mb-6x { border-radius: 8px; box-shadow: 0 4px 20px rgba(0,0,0,.08); margin-bottom: 32px; }
@media (min-width:640px) { .p-contents__left--column > img.u-mb-6x { margin-bottom: 40px; } }
.p-column__section > img.u-mb-4x { border-radius: 6px; box-shadow: 0 2px 12px rgba(0,0,0,.06); transition: box-shadow .3s; }
.p-column__section > img.u-mb-4x:hover { box-shadow: 0 4px 20px rgba(0,0,0,.12); }

/* ===========================================
   11. サイドバー
   =========================================== */
@media (min-width:960px) {
  .p-contents__right--column { border-left: 1px solid #e8ecf1; padding-left: 20px !important; }
}
@media (max-width:959px) {
  .p-contents__right--column { border-top: 2px solid #e0e6ed; padding-top: 24px; margin-top: 32px; }
  .p-contents__right--column > section:first-child { display: none; }
  .p-column__sticky { position: static; }
}

/* カテゴリ */
.p-contents__right--column > section:first-child { padding-top: 20px; }
.p-contents__right--column > section:first-child .c-heading__sixth { margin-bottom: 16px; }
.p-column__link { padding: 10px 15px; border-radius: 6px; font-size: 1.4rem; transition: all .25s; }
.p-column__link:hover { background: #056EB4; color: #fff; transform: translateX(3px); }

/* おすすめ記事 */
.p-column__sticky { top: 72px; }
.p-column__sticky .c-heading__sixth { margin-bottom: 8px !important; }
.p-column__sticky .c-list__side { border-bottom-color: #e0e6ed; padding-bottom: 8px; margin-bottom: 8px; transition: transform .2s; }
.p-column__sticky .c-list__side:hover { transform: translateX(3px); }
.p-column__sticky .c-list__heading--side { font-size: 1.35rem; line-height: 1.45; transition: color .2s; }
.p-column__sticky .c-list__side:hover .c-list__heading--side { color: #056EB4; }
.p-column__sticky .c-list__imgbox--side { border-radius: 4px; overflow: hidden; }
.p-column__sticky .c-list__imgbox--side img { border-radius: 4px; transition: transform .3s; }
.p-column__sticky .c-list__side:hover .c-list__imgbox--side img { transform: scale(1.03); }

/* ===========================================
   12. SNS
   =========================================== */
.c-sns { border-top: 2px solid #e0e6ed; border-bottom: 2px solid #e0e6ed; padding: 24px 0; margin-top: 40px; }
.c-sns__item img { transition: transform .2s, opacity .2s; border-radius: 50%; }
.c-sns__item img:hover { transform: scale(1.1); opacity: .85; }

/* ===========================================
   13. まとめセクション
   =========================================== */
#section06 > ul[style] {
  background: linear-gradient(135deg, #f8fbff, #f0f7ff);
  border: 1px solid #d0daf0; border-left: 4px solid #056EB4;
  border-radius: 8px; padding: 20px 20px 20px 36px !important;
}

/* ===========================================
   14. フッターCV
   =========================================== */
.c-btn__cv--03 { padding: 40px 0; }
.c-btn__cv--03 .c-btn__cvbox { max-width: 640px; margin: 0 auto; justify-content: center; }
.c-btn__cv--03 .c-btn__cvbox > .column { flex: none; width: 100%; text-align: center; }
.c-btn__cv--03 .c-btn__subtext { font-size: 1.5rem; line-height: 1.6; text-align: center; }
@media (min-width:640px) { .c-btn__cv--03 .c-btn__subtext { font-size: 1.7rem; } }
.c-btn__cv--03 ul { list-style: none; padding: 0; margin: 0; display: flex; justify-content: center; }
.c-btn__cv--03 .c-btn__cvitem--sub { margin: 0; }
.c-btn__cvbtn { font-size: 1.8rem; border-radius: 999px; box-shadow: 0 4px 16px rgba(0,0,0,.2); transition: all .25s; display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.c-btn__cvbtn:hover { transform: translateY(-2px); box-shadow: 0 6px 24px rgba(0,0,0,.25); color: #fff; }

/* ===========================================
   15. フッター会社情報
   =========================================== */
.p-footer__info dt { font-weight: 700; color: #555; }
.p-footer__info a { word-break: break-word; overflow-wrap: anywhere; }
.p-footer__copy { font-size: 1.3rem; padding: 14px 0; letter-spacing: .08em; }

/* ===========================================
   16. 固定ドック
   =========================================== */
/* PC: 固定ドック非表示（ヘッダーに資料請求・お問い合わせがあるため） */
@media (min-width:768px) {
  .c-fixeddock { display: none !important; }
}

/* SP: 画面下部に固定バー */
@media (max-width:768px) {
  body .c-fixeddock {
    position: fixed !important;
    left: 0; right: 0; bottom: 0;
    display: flex !important;
    flex-direction: row !important;
    gap: 0 !important;
    padding: 0 !important;
    background: #fff;
    border-top: 1px solid #e0e0e0;
    box-shadow: 0 -2px 12px rgba(0,0,0,.08);
    z-index: 28000 !important;
    pointer-events: auto !important;
    border-radius: 0 !important;
  }
  .c-fixeddock__btn {
    flex: 1 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    padding: 14px 8px calc(14px + env(safe-area-inset-bottom)) !important;
    font-size: 1.4rem !important;
    font-weight: 700 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    text-decoration: none !important;
  }
  .c-fixeddock__btn .u-label--pc { display: none !important; }
  .c-fixeddock__btn .u-label--sp { display: inline !important; }
  /* 資料請求ボタン */
  .c-fixeddock__btn--jobole {
    background: #056EB4 !important;
    color: #fff !important;
    border-right: 1px solid rgba(255,255,255,.2);
  }
  /* お問い合わせボタン */
  .c-fixeddock__btn--contact {
    background: #ff6663 !important;
    color: #fff !important;
  }
  main { padding-bottom: max(72px, calc(56px + env(safe-area-inset-bottom))) !important; }
}

/* ==========================================================
   17. CTA — 3層カード（hrt_cvarea.css を完全リセット）
   ========================================================== */
.c-cta__hero.c-cta__hero--card_JOBOLE,
.c-cta__hero.c-cta__hero--card_HRads,
.c-cta__hero.c-cta__hero--card_aggregate {
  all: unset !important;
  display: block !important; border-radius: 16px !important;
  margin: 48px 0 !important; overflow: hidden !important;
  box-shadow: 0 2px 20px rgba(0,0,0,.06) !important;
  transition: box-shadow .3s !important; font-family: var(--font-sans, "Noto Sans JP", sans-serif) !important;
  box-sizing: border-box !important;
}
/* all:unset後のvisited/link色リセット */
.c-cta__hero.c-cta__hero--card_JOBOLE a,
.c-cta__hero.c-cta__hero--card_HRads a,
.c-cta__hero.c-cta__hero--card_aggregate a,
.c-cta__hero.c-cta__hero--card_JOBOLE a:link,
.c-cta__hero.c-cta__hero--card_HRads a:link,
.c-cta__hero.c-cta__hero--card_aggregate a:link,
.c-cta__hero.c-cta__hero--card_JOBOLE a:visited,
.c-cta__hero.c-cta__hero--card_HRads a:visited,
.c-cta__hero.c-cta__hero--card_aggregate a:visited {
  color: inherit !important; text-decoration: none !important;
}
@media (min-width:640px) {
  .c-cta__hero.c-cta__hero--card_JOBOLE,
  .c-cta__hero.c-cta__hero--card_HRads,
  .c-cta__hero.c-cta__hero--card_aggregate { margin: 56px 0 !important; }
}
.c-cta__hero.c-cta__hero--card_JOBOLE:hover,
.c-cta__hero.c-cta__hero--card_HRads:hover,
.c-cta__hero.c-cta__hero--card_aggregate:hover { box-shadow: 0 8px 32px rgba(0,0,0,.10) !important; }

/* ヘッダー帯 */
.c-cta__hero .cta-header { display: flex; align-items: center; gap: 16px; padding: 20px 28px; }
.c-cta__hero--card_JOBOLE .cta-header { background: linear-gradient(135deg, #0a63b4, #2196F3); }
.c-cta__hero--card_HRads .cta-header { background: linear-gradient(135deg, #c62828, #ef5350); }
.c-cta__hero--card_aggregate .cta-header { background: linear-gradient(135deg, #2e7d32, #66bb6a); }
.c-cta__hero .cta-header__logo { height: 32px; width: auto; flex-shrink: 0; filter: brightness(0) invert(1); }
.c-cta__hero .cta-header__logo--white { filter: none; height: 26px; }
.c-cta__hero .cta-header__title { font-family: var(--font-heading, "Zen Kaku Gothic New", "Noto Sans JP", sans-serif); color: #fff; font-size: 1.8rem; font-weight: 800; line-height: 1.35; letter-spacing: 0.03em; text-wrap: balance; word-break: keep-all; }
@media (max-width:768px) {
  .c-cta__hero .cta-header { flex-direction: column; text-align: center; padding: 16px 20px; }
  .c-cta__hero .cta-header__title { font-size: 1.6rem; }
}

/* ボディ */
.c-cta__hero .cta-body { padding: 24px 28px; background: #fff; }
@media (max-width:768px) { .c-cta__hero .cta-body { padding: 18px 20px; } }
.cta-badges { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.cta-badge { display: inline-flex; align-items: center; font-size: 1.25rem; font-weight: 700; padding: 5px 14px; border-radius: 20px; white-space: nowrap; }
.c-cta__hero--card_JOBOLE .cta-badge { background: #e3f2fd; color: #0a63b4; }
.c-cta__hero--card_HRads .cta-badge { background: #ffebee; color: #c62828; }
.c-cta__hero--card_aggregate .cta-badge { background: #e8f5e9; color: #2e7d32; }
.c-cta__hero .cta-body p { font-size: 1.4rem; color: var(--color-text-muted, #444); line-height: 1.75; margin: 0 0 12px; }
.c-cta__hero .cta-body img { display: block; border-radius: 8px; margin: 12px 0; max-width: 100%; height: auto; }
.c-cta__hero .cta-body .cta-note { font-size: 1.1rem; color: #666; line-height: 1.4; margin-top: 4px; }

/* 3カラム特徴（aggregate） */
.cta-features { display: grid; grid-template-columns: 1fr; gap: 14px; margin: 16px 0; }
@media (min-width:640px) { .cta-features { grid-template-columns: repeat(3, 1fr); } }
.cta-feat { background: #f9fdf8; border: 1px solid #e0eed8; border-radius: 12px; padding: 20px 16px; text-align: center; }
.cta-feat-num {
  display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 30px; font-size: 1.4rem; font-weight: 800;
  color: #fff; background: linear-gradient(135deg, #43a047, #2e7d32);
  border-radius: 50%; margin: 0 auto 8px;
}
.cta-feat-title { font-size: 1.35rem; font-weight: 700; color: #1B2A4A; line-height: 1.4; margin-bottom: 6px; }
.cta-feat-desc { font-size: 1.2rem; color: #666; line-height: 1.5; }

/* フッター（ボタン） */
.c-cta__hero .cta-footer { padding: 0 28px 28px; background: #fff; text-align: center; }
@media (max-width:768px) { .c-cta__hero .cta-footer { padding: 0 20px 24px; } }
.c-cta__hero .cta-footer .cta-btn {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 280px; padding: 15px 36px; font-size: 1.6rem; font-weight: 800;
  color: #fff !important; border: none; border-radius: 999px; text-decoration: none !important; cursor: pointer;
  transition: transform .18s, box-shadow .18s, filter .18s;
}
.c-cta__hero .cta-footer .cta-btn:link,
.c-cta__hero .cta-footer .cta-btn:visited { color: #fff !important; text-decoration: none !important; }
.c-cta__hero .cta-footer .cta-btn:hover { transform: translateY(-2px); filter: brightness(1.06); color: #fff !important; text-decoration: none !important; }
.c-cta__hero .cta-footer .cta-btn:active { transform: translateY(0); filter: brightness(.97); }
@media (max-width:768px) { .c-cta__hero .cta-footer .cta-btn { min-width: auto; width: 100%; font-size: 1.5rem; padding: 14px 24px; } }
.c-cta__hero--card_JOBOLE .cta-footer .cta-btn { background: linear-gradient(180deg, #2196F3, #0a63b4); box-shadow: 0 4px 16px rgba(10,99,180,.28); }
.c-cta__hero--card_HRads .cta-footer .cta-btn { background: linear-gradient(180deg, #ef5350, #c62828); box-shadow: 0 4px 16px rgba(198,40,40,.28); }
.c-cta__hero--card_aggregate .cta-footer .cta-btn { background: linear-gradient(180deg, #66bb6a, #2e7d32); box-shadow: 0 4px 16px rgba(46,125,50,.28); }
.c-cta__hero .cta-footer .cta-btn i { margin-right: 8px; }

/* ===========================================
   18. フェードイン
   =========================================== */
.p-column__section { opacity: 0; transform: translateY(20px); transition: opacity .6s, transform .6s; }
.p-column__section.is-visible { opacity: 1; transform: translateY(0); }
.no-js .p-column__section { opacity: 1; transform: none; transition: none; }

/* ===========================================
   20. 旧CTA（c-cta__title / c-cta__text / c-cta__btns）再スタイル
   all:unset 後に旧記事のCTA要素を再定義
   =========================================== */

/* 旧CTA: タイトル */
.c-cta__hero .c-cta__title {
  display: block !important;
  background: linear-gradient(135deg, #0a63b4, #2196F3) !important;
  color: #fff !important; font-size: 1.7rem !important; font-weight: 800 !important;
  line-height: 1.4 !important; padding: 18px 24px !important; margin: 0 !important;
  text-align: center !important; letter-spacing: .03em !important;
  border-radius: 16px 16px 0 0 !important;
}
.c-cta__hero--card_HRads .c-cta__title { background: linear-gradient(135deg, #c62828, #ef5350) !important; }
.c-cta__hero--card_aggregate .c-cta__title { background: linear-gradient(135deg, #2e7d32, #66bb6a) !important; }

/* 旧CTA: テキスト */
.c-cta__hero .c-cta__text {
  display: block !important;
  font-size: 1.4rem !important; color: #444 !important; line-height: 1.7 !important;
  margin: 0 0 8px !important; padding: 0 !important;
}
.c-cta__hero .c-cta__text strong {
  color: #1B2A4A !important; font-size: inherit !important;
  text-decoration: none !important;
}

/* 旧CTA: 画像 */
.c-cta__hero .c-cta__img {
  display: block !important; max-width: 100% !important; height: auto !important;
  border-radius: 8px !important; margin: 12px auto !important;
}

/* 旧CTA: テーブル画像 */
.c-cta__hero .c-cta__img_table_1,
.c-cta__hero .c-cta__img_table_2 {
  display: block !important; margin: 12px 0 !important;
}
.c-cta__hero .c-cta__img_table_1 img,
.c-cta__hero .c-cta__img_table_2 img {
  display: block !important; max-width: 100% !important; height: auto !important;
  border-radius: 6px !important; margin: 4px 0 !important;
}

/* 旧CTA: ボディ部（タイトル以外の直接子要素をラップ） */
.c-cta__hero > div:not(.cta-header):not(.cta-body):not(.cta-footer):not(.cta-badges):not(.cta-features) {
  display: block !important; padding: 0 !important;
}

/* 旧CTA: ボタンエリア */
.c-cta__hero .c-cta__btns {
  display: flex !important; justify-content: center !important; gap: 12px !important;
  flex-wrap: wrap !important; padding: 20px 24px !important; margin: 0 !important;
  background: #fff !important;
}

/* 旧CTA: ボタン */
.c-cta__hero .c-btn {
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  min-width: 200px !important; padding: 14px 28px !important;
  font-size: 1.5rem !important; font-weight: 800 !important;
  color: #fff !important; border: none !important; border-radius: 999px !important;
  text-decoration: none !important; cursor: pointer !important;
  transition: transform .18s, box-shadow .18s, filter .18s !important;
}
.c-cta__hero .c-btn:hover {
  transform: translateY(-2px) !important; filter: brightness(1.06) !important;
  color: #fff !important; text-decoration: none !important;
}
.c-cta__hero .c-btn--primary_JOBOLE { background: linear-gradient(180deg, #2196F3, #0a63b4) !important; box-shadow: 0 4px 16px rgba(10,99,180,.28) !important; }
.c-cta__hero .c-btn--primary_HRads { background: linear-gradient(180deg, #ef5350, #c62828) !important; box-shadow: 0 4px 16px rgba(198,40,40,.28) !important; }
.c-cta__hero .c-btn--primary_aggregate { background: linear-gradient(180deg, #66bb6a, #2e7d32) !important; box-shadow: 0 4px 16px rgba(46,125,50,.28) !important; }

/* 旧CTA: 全体をカード化 */
.c-cta__hero > *:not(.c-cta__title):not(.cta-header) {
  padding-left: 24px !important; padding-right: 24px !important;
}

/* 旧CTA: テキスト1（サブテキスト） */
.c-cta__hero .c-cta__text_1 {
  display: block !important;
  font-size: 1.35rem !important; color: #444 !important; line-height: 1.7 !important;
  margin: 0 0 6px !important;
}
.c-cta__hero .c-cta__text_1 strong {
  color: #1B2A4A !important; font-size: inherit !important;
}

/* 旧CTA: note（注釈） */
.c-cta__hero .c-cta__note,
.c-cta__hero .c-cta__text strong[style*="font-size: 10px"],
.c-cta__hero .c-cta__text strong[style*="font-size:10px"] {
  font-size: 1.1rem !important; color: #666 !important; line-height: 1.4 !important;
}

/* ===========================================
   21. 画像品質統一
   =========================================== */

/* メインビジュアル: すべて統一 */
.p-contents__left--column > img,
.p-contents__left--column > .u-mb-6x img,
article img.u-mb-6x {
  max-width: 100% !important; height: auto !important;
  border-radius: 8px; box-shadow: 0 4px 20px rgba(0,0,0,.08);
  display: block;
}

/* 記事内画像: サイズ統一 */
.p-column__section img:not([class*="cta"]):not([class*="logo"]):not(.p-features__img):not(.c-media__base) {
  max-width: 100%; height: auto;
  border-radius: 6px; box-shadow: 0 2px 12px rgba(0,0,0,.06);
  transition: box-shadow .3s;
}
.p-column__section img:not([class*="cta"]):not([class*="logo"]):not(.p-features__img):not(.c-media__base):hover {
  box-shadow: 0 4px 20px rgba(0,0,0,.12);
}

/* 画像のアスペクト比保持 */
.p-contents__left--column img {
  max-width: 100%;
  height: auto;
}

/* ===========================================
   22. 旧記事の目次統一（h4ヘッダーパターン）
   =========================================== */
.p-column__nav .c-heading__sixth {
  display: flex !important; align-items: center; gap: 8px;
  font-size: 1.6rem; color: #056EB4; font-weight: 700;
  margin-bottom: 14px;
}
.p-column__nav .c-heading__sixth::before {
  content: "\f03a"; font-family: "Font Awesome 6 Free"; font-weight: 900;
  font-size: 1.4rem; color: #056EB4;
}

/* ===========================================
   23. アクセシビリティ・コントラスト改善
   =========================================== */
/* フォーカスリング */
.p-contents__left--column a:focus-visible {
  outline: 3px solid var(--color-secondary, #00856f); outline-offset: 2px; border-radius: 2px;
}

/* スキップリンク的なフォーカスインジケーター */
.p-column__nav-link:focus-visible {
  outline: 3px solid var(--color-secondary, #00856f); outline-offset: 2px;
}

/* ===========================================
   24. 細部品質改善
   =========================================== */

/* 引用ブロック */
.p-contents__left--column blockquote,
.p-column__section blockquote {
  border-left: 4px solid #056EB4; background: #f8fbff;
  padding: 16px 20px; margin: 20px 0; border-radius: 0 8px 8px 0;
  font-style: normal; color: var(--color-text-muted, #444); line-height: 1.7;
}

/* 注釈 */
.c-note { background: #f9faf8; border-radius: 6px; padding: 12px 16px; }
.c-note__item { font-size: 1.2rem; color: #888; line-height: 1.5; }

/* リスト改善（p-column__section外のリスト） */
.p-contents__left--column > ul,
.p-contents__left--column > ol {
  padding-left: 24px; margin-bottom: 20px;
}
.p-contents__left--column > ul li,
.p-contents__left--column > ol li {
  line-height: 1.7; margin-bottom: 8px;
}

/* sup/sub */
.p-contents__left--column sup {
  font-size: 0.75em; vertical-align: super; line-height: 0;
}

/* 区切り線 */
.p-contents__left--column hr {
  border: none; height: 1px;
  background: linear-gradient(90deg, transparent, #e0e6ed 20%, #e0e6ed 80%, transparent);
  margin: 32px 0;
}

/* レスポンシブ微調整 */
@media (max-width: 768px) {
  /* 旧CTA SP対応 */
  .c-cta__hero .c-cta__title {
    font-size: 1.5rem !important; padding: 14px 18px !important;
  }
  .c-cta__hero > *:not(.c-cta__title):not(.cta-header) {
    padding-left: 16px !important; padding-right: 16px !important;
  }
  .c-cta__hero .c-cta__btns {
    padding: 16px !important;
  }
  .c-cta__hero .c-btn {
    min-width: auto !important; width: 100% !important;
    font-size: 1.4rem !important; padding: 13px 20px !important;
  }
}

/* ===========================================
   25. 印刷
   =========================================== */
@media print {
  .c-fixeddock, .c-cta__hero, .c-btn__cv, .c-btn__fixed, .p-header, .p-footer, .c-sns, .p-contents__right { display: none !important; }
  .p-contents__left--column { width: 100% !important; }
  .p-column__section { opacity: 1 !important; transform: none !important; break-inside: avoid; }
}
