@charset "UTF-8";
/*! normalize.css v3.0.2 | MIT License | git.io/normalize*/
html {
  font-family: sans-serif;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block;
}

audio,
canvas,
progress,
video {
  display: inline-block;
  vertical-align: baseline;
}

audio:not([controls]) {
  display: none;
  height: 0;
}

[hidden],
template {
  display: none;
}

a {
  background-color: transparent;
}

a:active,
a:hover {
  outline: 0;
}

abbr[title] {
  border-bottom: 1px dotted;
}

b,
strong {
  font-weight: bold;
}

dfn {
  font-style: italic;
}

mark {
  background: #ff0;
  color: #000;
}

small {
  font-size: 80%;
}

sub,
sup {
  vertical-align: baseline;
  line-height: 0;
  position: relative;
  font-size: 75%;
}

sup {
  top: -0.5em;
}

sub {
  bottom: -0.25em;
}

img {
  border: 0;
}

svg:not(:root) {
  overflow: hidden;
}

figure {
  margin: 1em 40px;
}

hr {
  height: 0;
  -moz-box-sizing: content-box;
  box-sizing: content-box;
}

pre {
  overflow: auto;
}

code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}

button,
input,
optgroup,
select,
textarea {
  margin: 0;
  color: inherit;
  font: inherit;
}

button {
  overflow: visible;
}

button,
select {
  text-transform: none;
}

button,
html input[type=button],
input[type=reset],
input[type=submit] {
  cursor: pointer;
  -webkit-appearance: button;
}

button[disabled],
html input[disabled] {
  cursor: default;
}

button::-moz-focus-inner,
input::-moz-focus-inner {
  padding: 0;
  border: 0;
}

input {
  line-height: normal;
}

input[type=checkbox],
input[type=radio] {
  padding: 0;
  box-sizing: border-box;
}

input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
  height: auto;
}

input[type=search] {
  -moz-box-sizing: content-box;
  -webkit-box-sizing: content-box;
  box-sizing: content-box;
  -webkit-appearance: textfield;
}

input[type=search]::-webkit-search-cancel-button,
input[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

fieldset {
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
  border: 1px solid #c0c0c0;
}

legend {
  padding: 0;
  border: 0;
}

textarea {
  overflow: auto;
}

optgroup {
  font-weight: bold;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

td,
th {
  padding: 0;
}

/*------------------------------------------------------------
基本設定
-------------------------------------------------------------*/
html {
  overflow-y: scroll;
  font-size: 16px;
}

body {
  font-size: 1rem;
  line-height: 1.8;
  color: #222;
}

@media only screen and (max-width: 800px) {
  html {
    font-size: 15px;
  }
}
a {
  -webkit-transition: 0.3s;
  -o-transition: 0.3s;
  transition: 0.3s;
  color: #03c;
}

address,
caption,
cite,
code,
dfn,
var,
h1,
h2,
h3,
h4,
h5,
h6 {
  font-style: normal;
  font-weight: normal;
}

q {
  quotes: none;
}

q:before, q:after {
  content: "";
  content: none;
}

img {
  vertical-align: bottom;
  -ms-interpolation-mode: bicubic;
}

div {
  word-wrap: break-word;
}

pre {
  overflow: auto;
  white-space: pre-wrap;
  word-wrap: break-word;
}

form {
  margin: 0;
}

button,
input,
select,
textarea,
optgroup,
option {
  vertical-align: baseline;
}

textarea {
  min-height: 100px;
  vertical-align: top;
}

button::-moz-focus-inner,
input::-moz-focus-inner {
  margin: 0;
}

table {
  width: 100%;
  word-break: break-all;
  word-wrap: break-word;
  border-spacing: 0;
}

img {
  height: auto;
  max-width: 100%;
}

img {
  max-width: none\9 ; /*IE8への対応*/
}

p {
  margin: 0 0 1em;
}

ul,
ol {
  margin-left: 40px;
  padding-left: 0;
}

li {
  margin-bottom: 0;
}

html {
  /* ページ内リンクのスクロールを滑らかに */
  scroll-behavior: smooth;
}

/*基本レイアウト*/
.sec_in {
  margin: auto;
}

.w01_in {
  width: 1100px;
  margin: 0 auto;
}

.w02_in {
  width: 900px;
  margin: 0 auto;
}

.w03_in {
  width: 1224px;
  margin: 0 auto;
}

.w04_in {
  width: 1140px;
  margin: 0 auto;
}

.w05_in {
  width: 1040px;
  margin: 0 auto;
}

.w06_in {
  width: 1060px;
  margin: 0 auto;
}

@media only screen and (max-width: 1224px) {
  .w01_in {
    width: 90%;
  }
  .w02_in {
    width: 90%;
  }
  .w03_in {
    width: 90%;
  }
  .w04_in {
    width: 90%;
  }
}
@media only screen and (max-width: 1000px) {
  .w01_in {
    width: 90%;
  }
  .w05_in {
    width: 90%;
  }
  .w06_in {
    width: 90%;
  }
}
/*--------------------------------------------------------
背景色・文字色の設定（行政風）
--------------------------------------------------------*/
body {
  font-size: 100%;
  line-height: 1.8;
  font-family: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic UI", "Meiryo", sans-serif;
  color: #1A1A1A;
  background-color: #FFFFFF;
  /* 固定フッターポップアップ(border含めて約104px / SPは内側padding+ボタンで約160px)とフッターのかぶり防止。余裕を持たせる。 */
  padding-bottom: 140px;
}
@media only screen and (max-width: 768px) {
  body {
    padding-bottom: 200px;
  }
}

/* 文字サイズ変更クラス */
body.font-size-small {
  font-size: 14px !important;
}

body.font-size-medium {
  font-size: 16px !important;
}

body.font-size-large {
  font-size: 18px !important;
}

/* 見出しタグを相対サイズに調整（文字サイズ変更に連動） */
h1 {
  font-size: 1.75em; /* 28px / 16px = 1.75 */
}

h2 {
  font-size: 1.375em; /* 22px / 16px = 1.375 */
}

h3 {
  font-size: 1.125em; /* 18px / 16px = 1.125 */
}

h4 {
  font-size: 1em;
}

h5 {
  font-size: 0.875em;
}

h6 {
  font-size: 0.75em;
}

/*全体の追加設定*/
a {
  text-decoration: none;
  color: #003379;
  transition: color 0.3s ease;
}

a:hover {
  color: #0066CC;
  text-decoration: underline;
}

.dis-mb {
  display: none;
}

@media only screen and (max-width: 750px) {
  .dis-pc {
    display: none;
  }
  .dis-mb {
    display: block;
  }
}
/*--------------------------------------------------------
Font Awesome アイコンの差し色（赤）
連絡先系のアイコンは基本的に赤を当てる
--------------------------------------------------------*/
.fa-accent,
.icon-accent {
  color: #003379 !important;
}

a[href^="tel:"] i.fa-phone,
a[href^="tel:"] i.fa-phone-alt,
a[href^="mailto:"] i.fa-envelope,
.footer_tel + i,
.contact_info i.fa-phone,
.contact_info i.fa-envelope,
.contact_info i.fa-map-marker-alt,
.contact_info i.fa-location-dot,
.contact_info i.fa-clock {
  color: #003379;
}

/*--------------------------------------------------------
 header（2段ナビゲーション）
--------------------------------------------------------*/
.header_sec {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 10001;
  height: auto !important;
  background: #FFFFFF;
  border-bottom: 1px solid #E5E5E5;
  transition: border-color 0.3s ease;
}
.header_sec .sec_in {
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  align-items: stretch;
  box-sizing: border-box;
  padding: 0 24px 0 12px;
  width: 100%;
  max-width: 1600px;
  margin: auto;
  height: auto;
}
.header_sec .col_l {
  flex: 0 0 auto;
  width: auto;
  padding: 14px 0;
  display: flex;
  align-items: center;
  margin-right: 12px;
}
.header_sec .col_l a {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  transition: opacity 0.3s ease;
}
.header_sec .col_l a:hover {
  opacity: 0.8;
}
.header_sec .col_l a .logo_mark {
  height: 44px;
  width: 44px;
  object-fit: contain;
  flex-shrink: 0;
}
.header_sec .col_l a .logo_text {
  font-size: 1.5rem;
  font-weight: 700;
  color: #003379;
  letter-spacing: 0.02em;
  white-space: nowrap;
  line-height: 1.2;
}
.header_sec .col_r {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  justify-content: flex-end;
  align-content: center;
  overflow: visible;
}

/* サブナビゲーション（上段）*/
.header_sec .sub_nav {
  width: 100%;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 0;
  padding: 4px 0 0;
  line-height: 1;
  max-height: 100px;
  opacity: 1;
  overflow: hidden;
  transition: opacity 0.3s ease, max-height 0.3s ease, padding 0.3s ease;
}
.header_sec .sub_nav .sub_nav_link {
  font-size: 0.8125rem;
  font-weight: 600;
  color: #4D4D4D;
  padding: 8px 12px;
  text-decoration: none;
  transition: all 0.2s ease;
}
.header_sec .sub_nav .sub_nav_link:hover {
  color: #003379;
  text-decoration: none;
}
.header_sec .sub_nav .sub_nav_link i {
  margin-right: 3px;
}
.header_sec .sub_nav .sub_nav_link.global_btn {
  font-weight: 600;
  color: #003379;
}
.header_sec .sub_nav .sub_nav_link.global_btn:hover {
  color: #0066CC;
}
.header_sec .sub_nav .sub_nav_link.phone_link {
  font-size: 1.125rem;
  font-weight: 700;
  color: #1A1A1A;
  padding: 4px 0 4px 14px;
}
.header_sec .sub_nav .sub_nav_link.phone_link i {
  font-size: 0.875rem;
  margin-right: 5px;
  color: #003379;
}
.header_sec .sub_nav .sub_nav_link.phone_link:hover {
  color: #003379;
}

/* スクロール時もsub_navは表示維持（電話番号を周辺視野に常時置く） */
/* 旧: .header_sec.shadow .sub_nav { max-height: 0; opacity: 0; padding: 0; } */
/* メインナビゲーション（下段・ドロップダウン付き） */
.header_sec .main_nav {
  position: relative;
  width: 100%;
  display: flex;
  gap: 0;
  justify-content: flex-end;
  align-items: stretch;
  padding: 0;
}
.header_sec .main_nav .nav_link {
  flex: 0 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-size: 0.875rem;
  font-weight: 700;
  color: #1A1A1A;
  padding: 12px 12px;
  text-decoration: none;
  transition: all 0.3s ease;
  white-space: nowrap;
}
.header_sec .main_nav .nav_link:hover {
  color: #003379;
  text-decoration: none;
}
.header_sec .main_nav .nav_link i.fa-chevron-down {
  font-size: 0.625rem;
  margin-right: 6px;
  transition: transform 0.3s ease;
  color: #003379;
}
.header_sec .main_nav .nav_link.search_icon {
  flex: 0 0 60px;
  font-size: 1.125rem;
}
.header_sec .main_nav .nav_link.search_icon:hover {
  color: #003379;
}

/* ドロップダウンメニュー */
.header_sec .main_nav .nav_dropdown {
  position: static;
  flex: 0 1 auto;
  display: flex;
}
.header_sec .main_nav .nav_dropdown .nav_dropdown_trigger {
  flex: 0 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-size: 0.875rem;
  font-weight: 700;
  padding: 12px 12px;
  color: #1A1A1A;
  text-decoration: none;
  transition: all 0.3s ease;
  cursor: pointer;
  white-space: nowrap;
}
.header_sec .main_nav .nav_dropdown .nav_dropdown_trigger:hover {
  color: #003379;
  text-decoration: none;
}
.header_sec .main_nav .nav_dropdown .nav_dropdown_trigger i.fa-chevron-down {
  font-size: 0.625rem;
  margin-right: 6px;
  transition: transform 0.3s ease;
  color: #003379;
}
.header_sec .main_nav .nav_dropdown .nav_dropdown_menu {
  display: none;
  position: fixed;
  top: auto;
  left: 50%;
  transform: translateX(-50%);
  margin-left: 0;
  max-width: 1600px;
  width: 95%;
  z-index: 10002;
  list-style: none;
  padding: 30px 0;
  margin-top: 0;
  text-align: left;
  font-size: 0;
}
.header_sec .main_nav .nav_dropdown .nav_dropdown_menu::after {
  content: "";
  display: table;
  clear: both;
}
.header_sec .main_nav .nav_dropdown .nav_dropdown_menu::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  height: 100%;
  background: #FFFFFF;
  border-top: 3px solid #003379;
  border-bottom: 1px solid #E5E5E5;
  z-index: -1;
}
@media (max-width: 1200px) {
  .header_sec .main_nav .nav_dropdown .nav_dropdown_menu {
    width: calc(100% - 40px);
  }
}
.header_sec .main_nav .nav_dropdown .nav_dropdown_menu li {
  list-style: none;
  margin: 4px 8px;
  padding: 0;
  display: inline-block;
  width: calc(20% - 16px);
  vertical-align: top;
  box-sizing: border-box;
  border-bottom: 1px solid #E5E5E5;
}
@media (max-width: 1280px) {
  .header_sec .main_nav .nav_dropdown .nav_dropdown_menu li {
    width: calc(25% - 16px);
  }
}
@media (max-width: 960px) {
  .header_sec .main_nav .nav_dropdown .nav_dropdown_menu li {
    width: calc(33.333% - 16px);
  }
}
@media (max-width: 700px) {
  .header_sec .main_nav .nav_dropdown .nav_dropdown_menu li {
    width: calc(50% - 16px);
  }
}
.header_sec .main_nav .nav_dropdown .nav_dropdown_menu li a {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  padding: 14px 16px;
  color: #1A1A1A;
  text-decoration: none;
  font-size: 0.875rem;
  font-weight: 500;
  transition: all 0.3s ease;
  white-space: normal;
  text-align: left;
}
.header_sec .main_nav .nav_dropdown .nav_dropdown_menu li a i.fa-file-alt,
.header_sec .main_nav .nav_dropdown .nav_dropdown_menu li a i.fa-folder,
.header_sec .main_nav .nav_dropdown .nav_dropdown_menu li a i.fa-question-circle,
.header_sec .main_nav .nav_dropdown .nav_dropdown_menu li a i.fa-wrench,
.header_sec .main_nav .nav_dropdown .nav_dropdown_menu li a i.fa-envelope,
.header_sec .main_nav .nav_dropdown .nav_dropdown_menu li a i.fa-route,
.header_sec .main_nav .nav_dropdown .nav_dropdown_menu li a i.fa-star,
.header_sec .main_nav .nav_dropdown .nav_dropdown_menu li a i.fa-trophy,
.header_sec .main_nav .nav_dropdown .nav_dropdown_menu li a i.fa-comments,
.header_sec .main_nav .nav_dropdown .nav_dropdown_menu li a i.fa-handshake,
.header_sec .main_nav .nav_dropdown .nav_dropdown_menu li a i.fa-microphone {
  font-size: 1rem;
  color: #888888;
  flex-shrink: 0;
  width: 20px;
  transition: color 0.3s ease;
}
.header_sec .main_nav .nav_dropdown .nav_dropdown_menu li a span {
  flex: 1;
  font-size: 0.875rem;
  font-weight: 500;
}
.header_sec .main_nav .nav_dropdown .nav_dropdown_menu li a i.fa-chevron-right {
  display: block;
  font-size: 0.6875rem;
  color: #CCCCCC;
  flex-shrink: 0;
  transition: all 0.3s ease;
}
.header_sec .main_nav .nav_dropdown .nav_dropdown_menu li a:hover {
  background-color: #FFFFFF;
  color: #003379;
}
.header_sec .main_nav .nav_dropdown .nav_dropdown_menu li a:hover i.fa-file-alt,
.header_sec .main_nav .nav_dropdown .nav_dropdown_menu li a:hover i.fa-folder,
.header_sec .main_nav .nav_dropdown .nav_dropdown_menu li a:hover i.fa-question-circle,
.header_sec .main_nav .nav_dropdown .nav_dropdown_menu li a:hover i.fa-wrench,
.header_sec .main_nav .nav_dropdown .nav_dropdown_menu li a:hover i.fa-envelope,
.header_sec .main_nav .nav_dropdown .nav_dropdown_menu li a:hover i.fa-route,
.header_sec .main_nav .nav_dropdown .nav_dropdown_menu li a:hover i.fa-star,
.header_sec .main_nav .nav_dropdown .nav_dropdown_menu li a:hover i.fa-trophy,
.header_sec .main_nav .nav_dropdown .nav_dropdown_menu li a:hover i.fa-comments,
.header_sec .main_nav .nav_dropdown .nav_dropdown_menu li a:hover i.fa-handshake,
.header_sec .main_nav .nav_dropdown .nav_dropdown_menu li a:hover i.fa-microphone {
  color: #1A1A1A;
}
.header_sec .main_nav .nav_dropdown .nav_dropdown_menu li a:hover i.fa-chevron-right {
  color: #003379;
  transform: translateX(4px);
}
.header_sec .main_nav .nav_dropdown:hover .nav_dropdown_menu, .header_sec .main_nav .nav_dropdown.active .nav_dropdown_menu, .header_sec .main_nav .nav_dropdown.is-open .nav_dropdown_menu {
  display: block !important;
}
.header_sec .main_nav .nav_dropdown:hover .nav_dropdown_trigger i.fa-chevron-down, .header_sec .main_nav .nav_dropdown.is-open .nav_dropdown_trigger i.fa-chevron-down {
  transform: rotate(180deg);
}

/* スクロール時はボーダーを濃くする（シャドウは使わない） */
.header_sec.shadow {
  border-bottom-color: #CCCCCC;
}

/* ============================================
   ドロップダウン展開時の背景オーバーレイ
   Keyence準拠：ドロップダウン表示中はページ全体を暗くする
   ============================================ */
.nav_overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(0, 0, 0, 0);
  pointer-events: none;
  transition: background-color 0.25s ease;
  z-index: 10000;
}

body.has-nav-overlay .nav_overlay {
  background: rgba(0, 0, 0, 0.5);
  pointer-events: auto;
}

/* 中画面: ナビゲーションのパディングとフォントサイズを縮小 */
@media only screen and (max-width: 1400px) {
  .header_sec .sec_in {
    width: 95%;
  }
  .header_sec .sub_nav .sub_nav_link {
    font-size: 0.8125rem;
    padding: 7px 10px;
  }
  .header_sec .main_nav .nav_link {
    padding: 16px 10px;
    font-size: 0.9375rem;
  }
  .header_sec .main_nav .nav_dropdown .nav_dropdown_trigger {
    padding: 16px 10px;
    font-size: 0.9375rem;
  }
}
/* 小画面: さらにコンパクトに */
@media only screen and (max-width: 1200px) {
  .header_sec .sec_in {
    width: 95%;
  }
  .header_sec .col_l {
    min-width: 0;
  }
  .header_sec .col_l a .logo_text {
    font-size: 1rem;
  }
  .header_sec .sub_nav .sub_nav_link {
    font-size: 0.75rem;
    padding: 6px 8px;
  }
  .header_sec .main_nav .nav_link {
    padding: 14px 8px;
    font-size: 0.875rem;
  }
  .header_sec .main_nav .nav_link.search_icon {
    flex: 0 0 50px;
  }
  .header_sec .main_nav .nav_dropdown .nav_dropdown_trigger {
    padding: 14px 8px;
    font-size: 0.875rem;
  }
}
/* タブレット: サブナビを簡略化 */
@media only screen and (max-width: 1000px) {
  .header_sec .sec_in {
    width: 95%;
  }
  .header_sec .sub_nav .sub_nav_link {
    font-size: 0.6875rem;
    padding: 5px 6px;
  }
  .header_sec .sub_nav .sub_nav_link:nth-child(n+4) {
    display: none;
  }
  .header_sec .main_nav .nav_link {
    padding: 12px 6px;
    font-size: 0.8125rem;
  }
  .header_sec .main_nav .nav_dropdown .nav_dropdown_trigger {
    padding: 12px 6px;
    font-size: 0.8125rem;
  }
}
/* スマホ: ハンバーガーメニュー用（ナビゲーション非表示） */
@media only screen and (max-width: 750px) {
  .header_sec {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 20;
    height: 70px !important;
  }
  .header_sec .sec_in {
    display: flex;
    flex-wrap: nowrap;
    justify-content: space-between;
    padding: 10px 0;
    width: 90%;
    margin: auto;
    height: 70px;
    align-items: center;
  }
  .header_sec .col_l {
    width: auto;
    min-width: 0;
    padding: 10px 0;
  }
  .header_sec .col_l a {
    gap: 8px;
  }
  .header_sec .col_l a .logo_mark {
    height: 36px;
    width: 36px;
  }
  .header_sec .col_l a .logo_text {
    font-size: 1.125rem;
  }
  .header_sec .col_r {
    display: none;
  }
  .header_sec.shadow {
    background: #FFFFFF;
    border-bottom-color: #CCCCCC;
  }
}
/*--------------------------------------------------------
breadcrumbs（パンくずリスト・NavXT 出力対応）
--------------------------------------------------------*/
#breadcrumbs {
  font-size: 0.8125rem;
  color: #4D4D4D;
  padding: 12px 0;
  background: #FFFFFF;
  border-bottom: 1px solid #E5E5E5;
}
#breadcrumbs a {
  font-size: 0.8125rem;
  color: #003379;
  text-decoration: none;
}
#breadcrumbs a:hover {
  color: #1B1464;
  text-decoration: underline;
}
#breadcrumbs > div > span + span::before,
#breadcrumbs #breadcrumbs-in > span + span::before {
  content: ">";
  margin: 0 0.5em;
  color: #CCCCCC;
}
#breadcrumbs ol {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0;
}
#breadcrumbs ol li + li::before {
  content: ">";
  margin: 0 0.5em;
  color: #CCCCCC;
}

/*--------------------------------------------------------
フッター
--------------------------------------------------------*/
.footer_sec {
  background: #FFFFFF;
  color: #FFFFFF;
  padding: 60px 0 0 0;
}
.footer_sec .footer_in {
  width: 1100px;
  margin: auto;
}
.footer_sec .footer_content {
  display: flex;
  justify-content: space-between;
  gap: 80px;
  padding-bottom: 50px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.15);
}
.footer_sec .footer_left {
  flex: 0 0 300px;
}
.footer_sec .footer_right {
  flex: 1;
  display: flex;
  gap: 28px;
}
.footer_sec .footer_logo {
  margin-bottom: 30px;
}
.footer_sec .footer_logo .footer_logo_img {
  width: 200px;
  height: auto;
}
.footer_sec .footer_company .footer_company_name {
  font-size: 1.1875rem;
  font-weight: 700;
  color: #FFFFFF;
  margin: 0 0 20px 0;
  line-height: 1.6;
}
.footer_sec .footer_info .footer_address {
  font-size: 0.9375rem;
  color: rgba(255, 255, 255, 0.85);
  margin-bottom: 15px;
  line-height: 1.8;
}
.footer_sec .footer_info .footer_contact {
  margin-bottom: 15px;
}
.footer_sec .footer_info .footer_contact .footer_label {
  display: inline-block;
  font-size: 0.8125rem;
  color: rgba(255, 255, 255, 0.6);
  margin-right: 8px;
  font-weight: 600;
}
.footer_sec .footer_info .footer_contact .footer_tel {
  font-size: 1.25rem;
  font-weight: 700;
  color: #FFFFFF;
  text-decoration: none;
  transition: color 0.3s ease;
}
.footer_sec .footer_info .footer_contact .footer_tel:hover {
  color: #0066CC;
}
.footer_sec .footer_info .footer_details {
  margin-top: 15px;
  padding-top: 15px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}
.footer_sec .footer_info .footer_details p {
  font-size: 0.875rem;
  color: rgba(255, 255, 255, 0.7);
  margin: 5px 0;
  line-height: 1.6;
}
.footer_sec .footer_nav_section {
  flex: 1;
}
.footer_sec .footer_nav_section .footer_nav_title {
  font-size: 0.9375rem;
  font-weight: 700;
  color: #FFFFFF;
  margin: 0 0 20px 0;
  padding-bottom: 10px;
  border-bottom: 2px solid rgba(255, 255, 255, 0.25);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.footer_sec .footer_nav_section .footer_subnav_title {
  font-size: 0.8125rem;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.9);
  margin: 18px 0 10px 0;
  padding-bottom: 6px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  letter-spacing: 0.04em;
}
.footer_sec .footer_nav_section .footer_subnav_title:first-of-type {
  margin-top: 0;
}
.footer_sec .footer_nav_section .footer_nav_list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.footer_sec .footer_nav_section .footer_nav_list li {
  margin-bottom: 12px;
}
.footer_sec .footer_nav_section .footer_nav_list li a {
  color: rgba(255, 255, 255, 0.8);
  text-decoration: none;
  font-size: 0.9375rem;
  display: block;
  transition: all 0.3s ease;
  line-height: 1.6;
  position: relative;
  padding-left: 12px;
}
.footer_sec .footer_nav_section .footer_nav_list li a::before {
  content: "›";
  position: absolute;
  left: 0;
  color: #003379;
  font-weight: 700;
  transition: left 0.3s ease;
}
.footer_sec .footer_nav_section .footer_nav_list li a:hover {
  color: #FFFFFF;
  padding-left: 16px;
}
.footer_sec .footer_nav_section .footer_nav_list li a:hover::before {
  left: 4px;
}
.footer_sec .footer_copyright {
  padding: 25px 0;
  text-align: center;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.footer_sec .footer_copyright p {
  font-size: 0.8125rem;
  color: rgba(255, 255, 255, 0.5);
  margin: 0;
  letter-spacing: 0.03em;
}

/* SP用 */
@media only screen and (max-width: 850px) {
  .footer_sec {
    padding: 40px 0 0 0;
  }
  .footer_sec .footer_in {
    width: 90%;
  }
  .footer_sec .footer_content {
    display: block;
    padding-bottom: 30px;
    gap: 0;
  }
  .footer_sec .footer_left {
    width: 100%;
    margin-bottom: 40px;
    flex: none;
  }
  .footer_sec .footer_logo {
    margin-bottom: 25px;
  }
  .footer_sec .footer_logo .footer_logo_img {
    width: 150px;
  }
  .footer_sec .footer_company .footer_company_name {
    font-size: 1rem;
  }
  .footer_sec .footer_info .footer_address {
    font-size: 0.8125rem;
  }
  .footer_sec .footer_info .footer_contact .footer_label {
    font-size: 0.6875rem;
  }
  .footer_sec .footer_info .footer_contact .footer_tel {
    font-size: 1rem;
  }
  .footer_sec .footer_info .footer_details p {
    font-size: 0.75rem;
  }
  .footer_sec .footer_right {
    width: 100%;
    flex: none;
    display: block;
    gap: 0;
  }
  .footer_sec .footer_nav_section {
    margin-bottom: 30px;
  }
  .footer_sec .footer_nav_section:last-child {
    margin-bottom: 0;
  }
  .footer_sec .footer_nav_section .footer_nav_title {
    font-size: 0.8125rem;
    margin-bottom: 15px;
    padding-bottom: 8px;
  }
  .footer_sec .footer_nav_section .footer_nav_list li {
    margin-bottom: 10px;
  }
  .footer_sec .footer_nav_section .footer_nav_list li a {
    font-size: 0.8125rem;
    padding-left: 10px;
  }
  .footer_sec .footer_nav_section .footer_nav_list li a:hover {
    padding-left: 14px;
  }
  .footer_sec .footer_nav_section .footer_nav_list li a:hover::before {
    left: 3px;
  }
  .footer_sec .footer_copyright {
    padding: 20px 0;
  }
  .footer_sec .footer_copyright p {
    font-size: 0.6875rem;
  }
}
/* ============================================================
   2026-05-11 デザイントーン改修オーバーライド
   - デジタル庁寄せ：装飾ミニマム・角丸拡大・赤アクセント廃止
   - 見出しの左ボーダー / 下線を撤廃し、余白で階層表現
   - カードホバーの青枠は浮き上がりエフェクトに置換
   ============================================================ */
/* 見出し装飾の撤廃（H2 は線も色帯もすべて剥がす） */
.singleContents_sec h2,
.entry-content h2,
.page_wrap h2,
.programs_main h2,
main h2 {
  border-left: none !important;
  border-bottom: none !important;
  padding-left: 0 !important;
  padding-bottom: 0 !important;
}

/* H3 は左ボーダーだけ廃止。下線は薄グレーで残す（後段で設定） */
.singleContents_sec h3,
.entry-content h3,
.page_wrap h3,
.programs_main h3,
main h3 {
  border-left: none !important;
  padding-left: 0 !important;
}

/* 余白とフォントサイズで階層を表現する */
.singleContents_sec h2,
.entry-content h2,
.page_wrap h2,
.programs_main h2,
main h2 {
  margin-top: 96px;
  margin-bottom: 28px;
  font-weight: 700;
  line-height: 1.35;
  font-size: 2.125rem;
  letter-spacing: 0.01em;
}
.singleContents_sec h2:first-child,
.entry-content h2:first-child,
.page_wrap h2:first-child,
.programs_main h2:first-child,
main h2:first-child {
  margin-top: 0;
}
.singleContents_sec h3,
.entry-content h3,
.page_wrap h3,
.programs_main h3,
main h3 {
  margin-top: 56px;
  margin-bottom: 20px;
  font-weight: 700;
  line-height: 1.5;
  font-size: 1.25rem;
  padding-bottom: 12px !important;
  border-bottom: 1px solid #E5E5E5 !important;
}

@media (max-width: 768px) {
  .singleContents_sec h2,
  .entry-content h2,
  .page_wrap h2,
  .programs_main h2,
  main h2 {
    margin-top: 64px;
    margin-bottom: 22px;
    font-size: 1.625rem;
  }
  .singleContents_sec h3,
  .entry-content h3,
  .page_wrap h3,
  .programs_main h3,
  main h3 {
    margin-top: 40px;
    margin-bottom: 16px;
    font-size: 1.125rem;
    padding-bottom: 10px !important;
  }
}
/* 画像系（中サイズ角丸）
   ※ ヒーローセクションの画像（FV/.case_hero_photo 等）は角丸を当てない（2026-05-17 ユーザー指示） */
.partner_logo,
.banner,
img.attachment-thumbnail,
.thumbnail img,
.event_card img,
.bz_logo img {
  border-radius: 16px;
  overflow: hidden;
}

/* ヒーロー画像は角丸を明示的に0に（既存定義の上書き） */
.fv_sec,
.fv_slide,
.fv_slide img,
.fv_content img,
.page_single_case .case_hero_photo,
.page_single_case .case_hero_photo img {
  border-radius: 0 !important;
}

/* カード型コンテナ統一（デジタル庁風 大きな角丸） */
.card,
.cta_archive_card_link,
.programs_card,
.program_card,
.download_card,
.event_card,
.case_card,
.news_card {
  border-radius: 20px !important;
  overflow: hidden;
}

/* ボタン全体を角丸化 */
.btn,
.button,
button:not(.news_tab_btn),
input[type=button],
input[type=submit],
a.btn,
.programs_card a.more_btn,
.cta_btn,
.more_btn,
.submit_btn {
  border-radius: 8px !important;
  transition: all 0.25s ease;
}

/* セクション間マージンの拡大 */
.news_sec,
.programs_sec,
.download_sec,
.mailmag_sec,
.partners_sec {
  padding-top: 120px;
  padding-bottom: 120px;
}

@media (max-width: 768px) {
  .news_sec,
  .programs_sec,
  .download_sec,
  .mailmag_sec,
  .partners_sec {
    padding-top: 72px;
    padding-bottom: 72px;
  }
}
/* カードホバー：青枠 → 浮き上がり
   ※ .download_card は情報一覧(.program_card)と同じ「border色だけ」のホバーに揃えるため除外 */
.card,
.programs_card,
.news_line,
.event_card,
.case_card {
  border: 1px solid #E5E5E5;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
.card:hover,
.programs_card:hover,
.news_line:hover,
.event_card:hover,
.case_card:hover {
  border-color: #E5E5E5;
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}

/* ホバー時に青ボーダーが付くパターンを上書き（.download_card は除外＝青枠ホバーを活かす） */
*:hover.card, *:hover.programs_card, *:hover.news_line, *:hover.event_card, *:hover.case_card {
  border-color: #E5E5E5 !important;
}

/* 赤アクセント類は紺で統一済み（variables側で対応） */
/* リンク・テキストのトーン微調整（完全黒を避ける） */
body,
p,
li,
dd,
dt,
td,
th {
  color: #1A1A1A;
}

/* フッターを白基調にリブランド（2026-05-17 ユーザー指示）
   既存定義は rgba(255,255,255,...) で白前提に書かれているため、ここで全面上書き */
.footer_sec {
  background: #FFFFFF !important;
  color: #1A1A1A !important;
  border-top: 1px solid #E5E5E5;
}
.footer_sec .footer_content {
  border-bottom: 1px solid #E5E5E5 !important;
}
.footer_sec .footer_logo .footer_logo_img {
  max-width: 260px;
  height: auto;
}
.footer_sec .footer_company .footer_company_name {
  color: #1A1A1A !important;
}
.footer_sec .footer_info .footer_address,
.footer_sec .footer_info .footer_contact .footer_label,
.footer_sec .footer_info .footer_details p {
  color: #4D4D4D !important;
}
.footer_sec .footer_info .footer_contact .footer_tel {
  color: #1A1A1A !important;
}
.footer_sec .footer_info .footer_contact .footer_tel:hover {
  color: #003379 !important;
}
.footer_sec .footer_info .footer_details {
  border-top-color: #E5E5E5 !important;
}
.footer_sec .footer_nav_section .footer_nav_title {
  color: #1A1A1A !important;
  border-bottom: 1px solid #E5E5E5 !important;
}
.footer_sec .footer_nav_section .footer_subnav_title {
  color: #4D4D4D !important;
  border-bottom-color: #E5E5E5 !important;
}
.footer_sec .footer_nav_section .footer_nav_list li a {
  color: #4D4D4D !important;
}
.footer_sec .footer_nav_section .footer_nav_list li a::before {
  color: #003379 !important;
}
.footer_sec .footer_nav_section .footer_nav_list li a:hover {
  color: #003379 !important;
}
.footer_sec .footer_copyright {
  border-top: 1px solid #E5E5E5 !important;
}
.footer_sec .footer_copyright p {
  color: #6B7280 !important;
}

/* ============================================================
   CTA系（support / contact / download / seminar）の追加調整
   2026-05-17：アイキャッチ画像の存在感UP / フォーム追尾
   ============================================================ */
/* アーカイブカード：アイキャッチを画像主役のサイズに */
.page_cta_archive .cta_archive_card_link {
  border-radius: 20px;
  background: #FFFFFF;
}
.page_cta_archive .cta_archive_card_link:hover {
  background: #FFFFFF !important;
  border-color: #003379 !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  transform: translateY(-3px);
}

.page_cta_archive .cta_archive_thumb {
  flex: 0 0 280px !important;
  border-radius: 0 !important;
}

@media (max-width: 800px) {
  .page_cta_archive .cta_archive_thumb {
    flex: 0 0 auto !important;
    height: 200px !important;
  }
}
/* 個別ページのアイキャッチを角丸 + 大きく見せる */
.page_cta .cta_eyecatch {
  margin-bottom: 32px;
  border-radius: 16px;
  overflow: hidden;
}
.page_cta .cta_eyecatch img {
  display: block;
  width: 100%;
  height: auto;
}

/* 個別ページ：右カラム（フォーム）の sticky 追尾は _page.scss 本体で実装。
   ここではフォームの見た目と、右側追従CTA(.c-sideNav)との被り対策を行う */
.page_cta .cta_right .cta_form_wrap {
  border-radius: 20px;
  border: 1px solid #E5E5E5;
}

/* CF7フォーム未登録/未選択時の案内（旧ダミーフォームの代わり） */
.cta_form_unregistered {
  border: 1px dashed #E5E5E5;
  background: #F8F9FB;
  border-radius: 8px;
  padding: 22px 20px;
}

.cta_form_unregistered_title {
  margin: 0 0 8px;
  font-size: 0.95rem;
  font-weight: 700;
  color: #1A1A1A;
}

.cta_form_unregistered_title i {
  color: #E0A800;
  margin-right: 6px;
}

.cta_form_unregistered_desc {
  margin: 0;
  font-size: 0.85rem;
  line-height: 1.7;
  color: #4D4D4D;
}

/* CTA系個別ページ（page_cta）では .sec_in_in の width:90% を打ち消して
   ページタイトル（.pageTitle_sec .w01_in 直下）と左端を揃える */
.page_cta .singleContents_sec .sec_in_in {
  width: 100% !important;
}

/* ============================================================
   CF7 フォーム入力欄スタイル
   通常：薄グレー / フォーカス中・入力済み：薄い水色
   ============================================================ */
.cta_form_wrap .wpcf7 input[type=text],
.cta_form_wrap .wpcf7 input[type=email],
.cta_form_wrap .wpcf7 input[type=tel],
.cta_form_wrap .wpcf7 input[type=url],
.cta_form_wrap .wpcf7 input[type=number],
.cta_form_wrap .wpcf7 input[type=date],
.cta_form_wrap .wpcf7 textarea,
.cta_form_wrap .wpcf7 select {
  background-color: #F5F5F5 !important;
  border: 1px solid #CDD3DB !important;
  border-radius: 4px;
  padding: 10px 14px;
  width: 100%;
  box-sizing: border-box;
  font-size: 0.9375rem;
  color: #1A1A1A;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}
.cta_form_wrap .wpcf7 input[type=text]::placeholder,
.cta_form_wrap .wpcf7 input[type=email]::placeholder,
.cta_form_wrap .wpcf7 input[type=tel]::placeholder,
.cta_form_wrap .wpcf7 input[type=url]::placeholder,
.cta_form_wrap .wpcf7 input[type=number]::placeholder,
.cta_form_wrap .wpcf7 input[type=date]::placeholder,
.cta_form_wrap .wpcf7 textarea::placeholder,
.cta_form_wrap .wpcf7 select::placeholder {
  color: #9AA0A6 !important;
  opacity: 1 !important;
}
.cta_form_wrap .wpcf7 input[type=text]:focus,
.cta_form_wrap .wpcf7 input[type=email]:focus,
.cta_form_wrap .wpcf7 input[type=tel]:focus,
.cta_form_wrap .wpcf7 input[type=url]:focus,
.cta_form_wrap .wpcf7 input[type=number]:focus,
.cta_form_wrap .wpcf7 input[type=date]:focus,
.cta_form_wrap .wpcf7 textarea:focus,
.cta_form_wrap .wpcf7 select:focus {
  background-color: #E8F0F9 !important;
  border-color: #003379 !important;
  outline: none;
}
.cta_form_wrap .wpcf7 input[type=text].has-value,
.cta_form_wrap .wpcf7 input[type=email].has-value,
.cta_form_wrap .wpcf7 input[type=tel].has-value,
.cta_form_wrap .wpcf7 input[type=url].has-value,
.cta_form_wrap .wpcf7 input[type=number].has-value,
.cta_form_wrap .wpcf7 input[type=date].has-value,
.cta_form_wrap .wpcf7 textarea.has-value,
.cta_form_wrap .wpcf7 select.has-value {
  background-color: #E8F0F9 !important;
}
.cta_form_wrap .wpcf7 textarea {
  min-height: 110px;
  line-height: 1.7;
}

/* JSで入力後に .has-value クラスを付与（入力済みの水色維持用） */
/* ============================================================
   採択実績 一覧ページ（archive-case.php、決め打ちサマリー）
   2026-05-18 改修：動的投稿リスト/フィルタを廃止 → 補助金別企業名リスト
   ============================================================ */
.page_case_archive .case_partner_sec {
  padding: 60px 0 120px;
}
.page_case_archive .case_partner_section_title {
  font-size: 1.75rem;
  font-weight: 700;
  color: #1A1A1A;
  margin: 0 0 32px;
  padding-bottom: 12px;
  border-bottom: 2px solid #003379;
}
.page_case_archive .case_partner_inline {
  margin: 0;
  padding: 32px 36px;
  font-size: 0.9375rem;
  line-height: 2.1;
  color: #1A1A1A;
  background: #FFFFFF;
  border: 1px solid #E5E5E5;
  border-radius: 8px;
  word-break: keep-all;
  overflow-wrap: anywhere;
}
@media (max-width: 600px) {
  .page_case_archive .case_partner_inline {
    padding: 20px 18px;
    font-size: 0.875rem;
    line-height: 2;
  }
}
.page_case_archive .case_partner_empty {
  text-align: center;
  color: #888888;
  padding: 40px 0;
}

/* 個別ページの耳タブ override は撤去（2026-05-17）。
   サイドナビ自体に閉じるボタンが付いたので、フォームと被る場合はユーザーが
   自分でトグルして閉じる方式に統一。 */
/* ============================================================
   2026-05-18 ホバー挙動の整理
   - リンク先のない要素にはホバー反応させない（テーブル行など）
   - 動きアニメーション（transform/padding変化）は廃止、色変化のみ許容
   ============================================================ */
/* 1. テーブルのホバー反応を完全禁止（プロジェクト全体）
      - transition を全テーブルで無効化（hoverアニメ自体を消す）
      - 既存CSSが `tr:hover td { background: ... }` を当てている箇所だけを個別に打ち消す
      - 「background: inherit !important」のような書き方は td の元背景まで消すので使わない
      ※ リンク <a> 自身のホバーは別レイヤーなので影響なし */
table tr,
table tr td,
table tr th {
  transition: none !important;
}

/* 既存テーマCSS内の tr:hover による色変化を打ち消す */
.page_aboutus .company-info-table tr:hover td {
  background: #FFFFFF !important;
}

/* 他のテーブル（program_info_table / case_meta_table / program_table）は
   そもそも :hover で色を変えるルールを持っていないので、追加対応は不要。
   将来テーブルクラスを増やすときに :hover を追加しないことで一貫運用する。 */
/* 2. カード／リストアイテム類の transform アニメを廃止 */
.case_item:hover,
.case_item_link:hover,
.cta_archive_card_link:hover,
.programs_card:hover,
.program_card:hover,
.news_line:hover,
.news_card:hover,
.event_card:hover,
.case_card:hover {
  transform: none !important;
  box-shadow: none !important;
}

/* カードホバーは「色だけ薄く変える」程度に統一
   ※ seminar_item は opacity フェード＋「詳細を見る」下線で個別対応（除外） */
.case_item:hover {
  background: #FFFFFF !important;
}

/* 3. フッターリンクの padding-left アニメを廃止 → 色変化のみ */
.footer_sec .footer_nav_section .footer_nav_list li a {
  transition: color 0.2s ease !important;
}

.footer_sec .footer_nav_section .footer_nav_list li a::before {
  transition: none !important;
}

.footer_sec .footer_nav_section .footer_nav_list li a:hover {
  padding-left: 12px !important;
}

.footer_sec .footer_nav_section .footer_nav_list li a:hover::before {
  left: 0 !important;
}

@media only screen and (max-width: 850px) {
  .footer_sec .footer_nav_section .footer_nav_list li a:hover {
    padding-left: 10px !important;
  }
  .footer_sec .footer_nav_section .footer_nav_list li a:hover::before {
    left: 0 !important;
  }
}
/* 4. メインナビ ドロップダウンの矢印 translateX も静止 */
.header_sec .main_nav .nav_dropdown_menu li a:hover i.fa-chevron-right {
  transform: none !important;
}

/* ============================================================
   2026-05-18 本文内テーブル（.program_table）専用スタイル
   md→HTML 変換で生成される本文中のテーブル限定。
   既存の .company-info-table / .case_meta_table / .program_info_table 等
   独立デザインのテーブルには影響させない。
   ============================================================ */
.program_table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  margin: 16px 0 32px;
  background: #FFFFFF;
  border: 1px solid #E5E5E5;
  border-radius: 8px;
  overflow: hidden;
  font-size: 0.9375rem;
  line-height: 1.7;
}
.program_table thead th {
  background: #F5F5F5;
  color: #1A1A1A;
  font-weight: 700;
  text-align: left;
  padding: 12px 16px;
  border-bottom: 2px solid #003379;
  font-size: 0.875rem;
  letter-spacing: 0.02em;
}
.program_table tbody th {
  background: #FFFFFF;
  color: #1A1A1A;
  font-weight: 700;
  text-align: left;
  padding: 12px 16px;
  vertical-align: top;
  width: 30%;
  border-right: 1px solid #E5E5E5;
}
.program_table tbody td {
  padding: 12px 16px;
  vertical-align: top;
  color: #1A1A1A;
}
.program_table {
  /* 横罫線（細） */
}
.program_table tbody tr + tr th,
.program_table tbody tr + tr td {
  border-top: 1px solid #E5E5E5;
}
.program_table {
  /* 偶数行ゼブラ */
}
.program_table tbody tr:nth-child(even) td,
.program_table tbody tr:nth-child(even) th {
  background: rgb(250.1, 250.1, 250.1);
}

/* 見出し・段落・リストとの連続感を整える */
h2 + .program_table,
h3 + .program_table,
h4 + .program_table,
h2 + p + .program_table,
h3 + p + .program_table,
h4 + p + .program_table {
  margin-top: 8px;
}

ul + .program_table,
ol + .program_table {
  margin-top: 12px;
}

.program_table + h3,
.program_table + h4 {
  margin-top: 56px;
}

/* レスポンシブ：.program_table のみ横スクロール可能に */
@media (max-width: 700px) {
  .program_table {
    display: block;
    overflow-x: auto;
    white-space: nowrap;
  }
  .program_table tbody th {
    width: auto;
  }
}
/* ============================================================
   .program_faq — Q&A形式（テーブル→QAに置換した結果）
   2026-05-18 新規。md由来のFAQ表を <h3>カテゴリ + <dl>のQ/A連続で表示
   ============================================================ */
.program_faq {
  margin: 16px 0 40px;
  padding: 0;
  background: #FFFFFF;
  border: 1px solid #E5E5E5;
  border-radius: 8px;
  overflow: hidden;
}

.program_faq_q {
  position: relative;
  padding: 18px 22px 18px 56px;
  background: #FFFFFF;
  border-top: 1px solid #E5E5E5;
  font-weight: 700;
  color: #1A1A1A;
  font-size: 1rem;
  line-height: 1.6;
}
.program_faq_q::before {
  content: "Q";
  position: absolute;
  top: 16px;
  left: 18px;
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #003379;
  color: #FFFFFF;
  border-radius: 50%;
  font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
  font-size: 0.875rem;
  font-weight: 700;
}
.program_faq_q:first-of-type {
  border-top: none;
}

.program_faq_a {
  position: relative;
  margin: 0;
  padding: 18px 22px 22px 56px;
  background: #FFFFFF;
  color: #1A1A1A;
  font-size: 0.9375rem;
  line-height: 1.85;
}
.program_faq_a::before {
  content: "A";
  position: absolute;
  top: 16px;
  left: 18px;
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #FFFFFF;
  color: #003379;
  border: 1.5px solid #003379;
  border-radius: 50%;
  font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
  font-size: 0.875rem;
  font-weight: 700;
}

@media (max-width: 600px) {
  .program_faq_q,
  .program_faq_a {
    padding-left: 48px;
    padding-right: 16px;
  }
  .program_faq_q::before,
  .program_faq_a::before {
    width: 24px;
    height: 24px;
    font-size: 0.75rem;
    left: 14px;
  }
}
/* よくある質問配下の H3（カテゴリ見出し）は装飾を寄せる */
h2 + h3.faq_cat,
.program_faq + h3 {
  margin-top: 48px;
}

/* ============================================================
   .implementation-note — 実務メモ吹き出し
   2026-05-18 新規。5/11 MTG松尾さん要望：
   「川村さん／狩野さんの顔写真＋吹き出しで実務メモを置きたい」
   写真は後から設置可能。今はアイコンプレースホルダで運用開始可。
   使い方：管理画面の「テキスト」タブで以下を貼る
   <div class="implementation-note">
     <div class="implementation-note__avatar">
       <img src="..." alt="">  ※または <i class="fas fa-user"></i>
     </div>
     <div class="implementation-note__balloon">
       <p class="implementation-note__title">ここが重要</p>
       <p>本文。複数段落OK。</p>
     </div>
   </div>
   ============================================================ */
.implementation-note {
  display: flex;
  align-items: flex-start;
  gap: 18px;
  margin: 32px 0;
  background: transparent;
  border: none;
  padding: 0;
}

.implementation-note__avatar {
  flex-shrink: 0;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  overflow: hidden;
  background: #E8F0F9;
  border: 2px solid #003379;
  display: flex;
  align-items: center;
  justify-content: center;
}
.implementation-note__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.implementation-note__avatar i, .implementation-note__avatar .fas, .implementation-note__avatar .far, .implementation-note__avatar .fab {
  color: #003379;
  font-size: 1.5rem;
}

.implementation-note__balloon {
  position: relative;
  flex: 1;
  min-width: 0;
  background: #FFFFFF;
  border: 1.5px solid #003379;
  border-radius: 12px;
  padding: 16px 20px;
  color: #1A1A1A;
  font-size: 0.9375rem;
  line-height: 1.85;
}
.implementation-note__balloon::before {
  content: "";
  position: absolute;
  left: -10px;
  top: 22px;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 8px 10px 8px 0;
  border-color: transparent #003379 transparent transparent;
}
.implementation-note__balloon::after {
  content: "";
  position: absolute;
  left: -7px;
  top: 24px;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 6px 8px 6px 0;
  border-color: transparent #FFFFFF transparent transparent;
}
.implementation-note__balloon p {
  margin: 0 0 8px;
  line-height: 1.85;
}
.implementation-note__balloon p:last-child {
  margin-bottom: 0;
}
.implementation-note__balloon ul, .implementation-note__balloon ol {
  margin: 4px 0 8px 1.5em;
}
.implementation-note__balloon ul:last-child, .implementation-note__balloon ol:last-child {
  margin-bottom: 0;
}

.implementation-note__title {
  display: inline-block;
  font-weight: 700;
  color: #003379;
  font-size: 0.9375rem;
  margin: 0 0 6px !important;
}
.implementation-note__title::before {
  content: "\f0eb";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  margin-right: 6px;
}

@media (max-width: 600px) {
  .implementation-note {
    gap: 12px;
  }
  .implementation-note__avatar {
    width: 48px;
    height: 48px;
  }
  .implementation-note__avatar i {
    font-size: 1.125rem;
  }
  .implementation-note__balloon {
    padding: 14px 16px;
    font-size: 0.875rem;
  }
  .implementation-note__balloon::before {
    top: 18px;
  }
  .implementation-note__balloon::after {
    top: 20px;
  }
}
/* ============================================================
   補助金の種類 アーカイブ（archive-programs.php 専用スタイル）
   2026-05-18 新規
   ============================================================ */
.page_programs_archive .programs_archive_sec {
  padding: 60px 0 120px;
}
.page_programs_archive .programs_archive_intro {
  margin: 0 0 40px;
  color: #4D4D4D;
  font-size: 1rem;
  line-height: 1.9;
  max-width: 880px;
}
.page_programs_archive .programs_grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}
@media (max-width: 1000px) {
  .page_programs_archive .programs_grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 640px) {
  .page_programs_archive .programs_grid {
    grid-template-columns: 1fr;
  }
}
.page_programs_archive .program_card {
  background: #FFFFFF;
  border: 1px solid #E5E5E5;
  border-radius: 20px;
  overflow: hidden;
  transition: border-color 0.25s ease;
}
.page_programs_archive .program_card:hover {
  border-color: #003379;
}
.page_programs_archive .program_card a {
  display: block;
  color: inherit;
  text-decoration: none;
}
.page_programs_archive .program_card .card_image {
  aspect-ratio: 16/9;
  background: #F5F5F5;
  overflow: hidden;
}
.page_programs_archive .program_card .card_image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.page_programs_archive .program_card .card_body {
  padding: 20px 22px 22px;
}
.page_programs_archive .program_card .card_title {
  font-size: 1.0625rem;
  font-weight: 700;
  color: #1A1A1A;
  margin: 0 0 10px;
  line-height: 1.5;
}
.page_programs_archive .program_card .card_purpose {
  font-size: 0.875rem;
  color: #4D4D4D;
  line-height: 1.7;
  margin: 0 0 14px;
  min-height: 3em;
}
.page_programs_archive .program_card .card_meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  margin-bottom: 14px;
  font-size: 0.75rem;
  color: #4D4D4D;
}
.page_programs_archive .program_card .card_meta i {
  margin-right: 4px;
  color: #003379;
}
.page_programs_archive .program_card .card_more {
  display: inline-block;
  font-size: 0.8125rem;
  font-weight: 700;
  color: #003379;
}
.page_programs_archive .program_card .card_more i {
  margin-left: 4px;
  font-size: 0.6875rem;
}
.page_programs_archive .programs_empty {
  text-align: center;
  color: #888888;
  padding: 60px 0;
}

/* ============================================================
   セミナーアーカイブ：1行=1セミナー（採択実績と同じ構造）
   2026-05-17 追加
   ============================================================ */
.page_seminar_archive .seminar_archive_sec {
  padding: 60px 0 120px;
}
.page_seminar_archive .seminar_archive_intro {
  margin: 0 0 40px;
  color: #4D4D4D;
  font-size: 1rem;
  line-height: 1.9;
}
.page_seminar_archive .seminar_section_label {
  font-size: 1.125rem;
  font-weight: 700;
  color: #1A1A1A;
  margin: 56px 0 20px;
  padding-bottom: 12px;
  border-bottom: 2px solid #003379;
}
.page_seminar_archive .seminar_section_label:first-of-type {
  margin-top: 0;
}
.page_seminar_archive .seminar_section_label--past {
  border-bottom-color: #E5E5E5;
  color: #4D4D4D;
}
.page_seminar_archive .seminar_list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.page_seminar_archive .seminar_item {
  border-bottom: 1px solid #E5E5E5;
  transition: opacity 0.2s ease;
}
.page_seminar_archive .seminar_item:hover {
  opacity: 0.7;
}
.page_seminar_archive .seminar_item:hover .seminar_item_more {
  text-decoration: underline;
  text-underline-offset: 4px;
}
.page_seminar_archive .seminar_item.is-past {
  opacity: 0.55;
  filter: grayscale(0.4);
}
.page_seminar_archive .seminar_item.is-past:hover {
  opacity: 0.55;
  cursor: not-allowed;
}
.page_seminar_archive .seminar_item.is-past:hover .seminar_item_more {
  text-decoration: none;
}
.page_seminar_archive .seminar_item.is-past .seminar_item_more {
  color: #888888;
}
.page_seminar_archive .seminar_item_link {
  display: grid;
  grid-template-columns: 440px 1fr;
  gap: 36px;
  padding: 28px 8px;
  color: #1A1A1A;
  text-decoration: none;
  align-items: center;
}
@media (max-width: 800px) {
  .page_seminar_archive .seminar_item_link {
    grid-template-columns: 1fr;
    gap: 16px;
    padding: 20px 0;
  }
}
.page_seminar_archive .seminar_item_thumb {
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  background: #F5F5F5;
  aspect-ratio: 16/9;
}
.page_seminar_archive .seminar_item_thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.page_seminar_archive .seminar_item_thumb .seminar_item_thumb_placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #CCCCCC;
  font-size: 3rem;
}
.page_seminar_archive .seminar_item_thumb .seminar_past_badge {
  position: absolute;
  top: 12px;
  left: 12px;
  background: rgba(0, 0, 0, 0.7);
  color: #fff;
  font-size: 0.75rem;
  font-weight: 700;
  padding: 4px 12px;
  border-radius: 999px;
  letter-spacing: 0.06em;
}
.page_seminar_archive .seminar_item_body {
  min-width: 0;
}
.page_seminar_archive .seminar_item_meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  margin-bottom: 12px;
  font-size: 0.8125rem;
  color: #4D4D4D;
}
.page_seminar_archive .seminar_item_meta i {
  margin-right: 5px;
}
.page_seminar_archive .seminar_item_meta .seminar_meta_date {
  font-weight: 700;
  color: #1A1A1A;
}
.page_seminar_archive .seminar_item_meta .seminar_meta_time {
  font-weight: 400;
  color: #4D4D4D;
  margin-left: 4px;
}
.page_seminar_archive .seminar_item_meta .seminar_meta_format {
  display: inline-flex;
  align-items: center;
  padding: 3px 12px;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 700;
  background: #F5F5F5;
  color: #1A1A1A;
}
.page_seminar_archive .seminar_item_meta .seminar_meta_format.is-online {
  background: #E8F0F9;
  color: #003379;
}
.page_seminar_archive .seminar_item_meta .seminar_meta_format.is-onsite {
  background: #FFF4E1;
  color: #8B6F00;
}
.page_seminar_archive .seminar_item_meta .seminar_meta_format.is-hybrid {
  background: #EDE7F6;
  color: #4A148C;
}
.page_seminar_archive .seminar_item_title {
  font-size: 1.25rem;
  font-weight: 700;
  margin: 0 0 10px;
  line-height: 1.5;
  color: #1A1A1A;
}
.page_seminar_archive .seminar_item_venue {
  font-size: 0.875rem;
  color: #4D4D4D;
  margin: 0 0 8px;
}
.page_seminar_archive .seminar_item_lead {
  color: #1A1A1A;
  font-size: 0.9375rem;
  line-height: 1.7;
  margin: 0 0 14px;
}
.page_seminar_archive .seminar_item_more {
  display: inline-block;
  color: #003379;
  font-weight: 700;
  font-size: 0.875rem;
}
.page_seminar_archive .seminar_item_more i {
  margin-left: 4px;
  font-size: 0.6875rem;
}
.page_seminar_archive .seminar_empty {
  text-align: center;
  color: #888888;
  padding: 40px 0;
}

/* ============================================================
   セミナー個別ページ：開催情報メタブロック
   ============================================================ */
.seminar_single_meta {
  margin: 0 0 32px;
  padding: 24px 28px;
  background: #FFFFFF;
  border: 1px solid #E5E5E5;
  border-radius: 16px;
}
.seminar_single_meta.is-past {
  background: rgb(247.55, 247.55, 247.55);
  opacity: 0.85;
}
.seminar_single_meta .seminar_single_past_notice {
  margin: 0 0 16px;
  padding: 10px 14px;
  background: #FFFFFF;
  border-left: 4px solid #888888;
  color: #4D4D4D;
  font-size: 0.875rem;
  font-weight: 600;
}
.seminar_single_meta .seminar_single_past_notice i {
  margin-right: 6px;
  color: #888888;
}
.seminar_single_meta .seminar_single_meta_list {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 8px 16px;
  margin: 0;
}
.seminar_single_meta .seminar_single_meta_list dt {
  font-size: 0.8125rem;
  font-weight: 700;
  color: #4D4D4D;
  padding: 4px 0;
}
.seminar_single_meta .seminar_single_meta_list dd {
  margin: 0;
  padding: 4px 0;
  font-size: 0.9375rem;
  color: #1A1A1A;
}
.seminar_single_meta .seminar_single_meta_list {
  /* 日程フリーテキスト（複数日程・順次開催等）の dd は強調 */
}
.seminar_single_meta .seminar_single_meta_list dd.seminar_single_meta_schedule {
  font-weight: 700;
  line-height: 1.9;
  color: #003379;
  background: #E8F0F9;
  padding: 10px 14px;
  border-radius: 8px;
  grid-column: 2;
  align-self: start;
}
@media (max-width: 600px) {
  .seminar_single_meta {
    padding: 18px 18px;
  }
  .seminar_single_meta .seminar_single_meta_list {
    grid-template-columns: 80px 1fr;
    gap: 6px 12px;
  }
}

/* ヘッダーのロゴSVGサイズ（2026-05-18 さらに縮小） */
.header_sec .logo_link .site_logo {
  height: 22px;
  width: auto;
  display: block;
}

@media (max-width: 1100px) {
  .header_sec .logo_link .site_logo {
    height: 20px;
  }
}
@media (max-width: 768px) {
  .header_sec .logo_link .site_logo {
    height: 18px;
  }
}
/* 見出し以外で「左ボーダー＋背景塗り」を当てる典型AI装飾を抑制
   feedback_no_left_border_block.md のルール準拠 */
p[class*=lead],
p.intro,
p.note,
.callout p {
  border-left: none !important;
  background: transparent !important;
}

/* ============================================================
   採択実績アーカイブ・詳細スタイル（2026-05-11 新規）
   2カラム横並び（左：集合写真、右：タイトル・会社名・サマリー）
   ============================================================ */
.case_stats_sec {
  padding: 80px 0;
  background: #F5F5F5;
}
.case_stats_sec .case_stats {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  text-align: center;
}
@media (max-width: 768px) {
  .case_stats_sec .case_stats {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}
.case_stats_sec .case_stats_item {
  background: #FFFFFF;
  padding: 48px 20px 52px;
  border-radius: 20px;
  border: 1px solid #E5E5E5;
  text-align: center;
}
.case_stats_sec .case_stats_item .case_stats_label {
  display: block;
  font-size: 1.0625rem;
  font-weight: 700;
  color: #4D4D4D;
  letter-spacing: 0.06em;
  margin: 0 0 18px;
}
.case_stats_sec .case_stats_item .case_stats_value {
  font-family: "Noto Sans JP", -apple-system, sans-serif;
  font-weight: 900;
  font-size: clamp(3rem, 6vw, 5rem);
  color: #003379;
  line-height: 1;
  letter-spacing: -0.02em;
  font-feature-settings: "palt";
  display: inline;
}
.case_stats_sec .case_stats_item .case_stats_unit {
  display: inline;
  font-size: 1.125rem;
  font-weight: 700;
  color: #1A1A1A;
  margin-left: 6px;
  letter-spacing: 0;
  vertical-align: baseline;
}
@media (max-width: 768px) {
  .case_stats_sec {
    padding: 56px 0;
  }
  .case_stats_sec .case_stats_item {
    padding: 36px 16px 40px;
    gap: 10px;
  }
}

.case_archive_sec {
  padding: 80px 0 120px;
}
.case_archive_sec .case_filters {
  margin-bottom: 40px;
  padding-bottom: 32px;
  border-bottom: 1px solid #E5E5E5;
}
.case_archive_sec .case_filter_group {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 16px;
}
.case_archive_sec .case_filter_group:last-child {
  margin-bottom: 0;
}
.case_archive_sec .case_filter_group .case_filter_label {
  flex-shrink: 0;
  font-weight: 700;
  color: #1A1A1A;
  font-size: 0.9375rem;
}
.case_archive_sec .case_filter_group .case_filter_list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.case_archive_sec .case_filter_group .case_filter_btn {
  background: #FFFFFF;
  border: 1px solid #E5E5E5;
  color: #1A1A1A;
  padding: 6px 16px;
  border-radius: 999px;
  font-size: 0.875rem;
  cursor: pointer;
  transition: all 0.2s ease;
}
.case_archive_sec .case_filter_group .case_filter_btn:hover {
  border-color: #003379;
  color: #003379;
}
.case_archive_sec .case_filter_group .case_filter_btn.is-active {
  background: #003379;
  color: #FFFFFF;
  border-color: #003379;
}

.case_list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.case_item {
  border-bottom: 1px solid #E5E5E5;
  transition: background 0.2s ease;
}
.case_item:hover {
  background: #F5F5F5;
}

.case_item_link {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 32px;
  padding: 32px 16px;
  color: #1A1A1A;
  text-decoration: none;
  align-items: center;
}
@media (max-width: 768px) {
  .case_item_link {
    grid-template-columns: 1fr;
    gap: 16px;
    padding: 24px 8px;
  }
}

.case_item_photo {
  border-radius: 8px;
  overflow: hidden;
  background: #F5F5F5;
  aspect-ratio: 4/3;
}
.case_item_photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.case_item_body .case_item_title {
  font-size: 1.25rem;
  font-weight: 700;
  margin: 0 0 8px;
  line-height: 1.4;
}
.case_item_body .case_item_client {
  color: #4D4D4D;
  font-size: 0.9375rem;
  margin: 0 0 12px;
}
.case_item_body .case_item_tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 12px;
}
.case_item_body .case_tag {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 600;
  background: #F5F5F5;
  color: #1A1A1A;
}
.case_item_body .case_tag--subsidy {
  background: #E8F0F9;
  color: #003379;
}
.case_item_body .case_item_summary {
  color: #1A1A1A;
  font-size: 0.9375rem;
  margin: 0 0 12px;
  line-height: 1.7;
}
.case_item_body .case_item_more {
  display: inline-block;
  color: #003379;
  font-weight: 700;
  font-size: 0.875rem;
}

/* 詳細ページ（既存ykfc.tokyo の構成を踏襲） */
.page_single_case .case_single {
  max-width: 880px;
  margin: 0 auto;
}
.page_single_case .case_hero_photo {
  margin-bottom: 40px;
  border-radius: 16px;
  overflow: hidden;
}
.page_single_case .case_hero_photo img {
  width: 100%;
  height: auto;
  display: block;
}
.page_single_case .case_meta {
  background: #F5F5F5;
  padding: 24px 32px;
  border-radius: 16px;
  margin-bottom: 48px;
}
.page_single_case .case_meta .case_meta_table {
  width: 100%;
  border-collapse: collapse;
}
.page_single_case .case_meta .case_meta_table th, .page_single_case .case_meta .case_meta_table td {
  padding: 12px 12px;
  text-align: left;
  font-size: 0.9375rem;
  vertical-align: top;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}
.page_single_case .case_meta .case_meta_table tr:last-child th,
.page_single_case .case_meta .case_meta_table tr:last-child td {
  border-bottom: none;
}
.page_single_case .case_meta .case_meta_table th {
  width: 30%;
  color: #4D4D4D;
  font-weight: 700;
}
.page_single_case .case_meta .case_meta_table td a {
  color: #003379;
  word-break: break-all;
}
.page_single_case .case_body h2 {
  margin: 64px 0 20px;
  font-size: 1.5rem;
  font-weight: 700;
  color: #1A1A1A;
}
.page_single_case .case_body h2:first-child {
  margin-top: 0;
}
.page_single_case .case_body p {
  margin: 0 0 1.4em;
  line-height: 1.9;
}
.page_single_case .case_body ul, .page_single_case .case_body ol {
  margin: 0 0 1.6em 1.5em;
}
.page_single_case .case_body ul li, .page_single_case .case_body ol li {
  margin-bottom: 0.4em;
  line-height: 1.9;
}
.page_single_case .case_representative {
  display: flex;
  align-items: center;
  gap: 24px;
  margin: 48px 0;
  padding: 24px;
  background: #FFFFFF;
  border: 1px solid #E5E5E5;
  border-radius: 16px;
}
.page_single_case .case_representative .case_rep_photo {
  flex: 0 0 120px;
}
.page_single_case .case_representative .case_rep_photo img {
  width: 120px;
  height: 120px;
  border-radius: 50%;
  object-fit: cover;
  display: block;
  background: #F5F5F5;
}
.page_single_case .case_representative .case_rep_name {
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
  color: #1A1A1A;
}
@media (max-width: 600px) {
  .page_single_case .case_representative {
    flex-direction: column;
    text-align: center;
  }
  .page_single_case .case_representative .case_rep_photo {
    flex: 0 0 auto;
  }
}
.page_single_case .case_pager {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 16px;
  margin-top: 64px;
  padding-top: 32px;
  border-top: 1px solid #E5E5E5;
  align-items: center;
}
.page_single_case .case_pager a {
  color: #1A1A1A;
  text-decoration: none;
  font-size: 0.875rem;
  transition: color 0.2s ease;
}
.page_single_case .case_pager a:hover {
  color: #003379;
}
.page_single_case .case_pager .case_pager_prev {
  text-align: left;
}
.page_single_case .case_pager .case_pager_prev .case_pager_label {
  display: block;
  font-size: 0.75rem;
  color: #4D4D4D;
  margin-bottom: 4px;
}
.page_single_case .case_pager .case_pager_prev .case_pager_title {
  font-weight: 700;
}
.page_single_case .case_pager .case_pager_next {
  text-align: right;
}
.page_single_case .case_pager .case_pager_next .case_pager_label {
  display: block;
  font-size: 0.75rem;
  color: #4D4D4D;
  margin-bottom: 4px;
}
.page_single_case .case_pager .case_pager_next .case_pager_title {
  font-weight: 700;
}
.page_single_case .case_pager .case_pager_index {
  padding: 8px 20px;
  border: 1px solid #E5E5E5;
  border-radius: 999px;
  font-weight: 600;
  white-space: nowrap;
}
.page_single_case .case_pager .case_pager_index:hover {
  border-color: #003379;
  background: #E8F0F9;
}
@media (max-width: 600px) {
  .page_single_case .case_pager {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .page_single_case .case_pager .case_pager_prev, .page_single_case .case_pager .case_pager_next {
    text-align: center;
  }
}

/*---------------------------------------------
CTA系CPT アーカイブ（一覧）
----------------------------------------------*/
.page_cta_archive .cta_archive_intro {
  margin: 0 0 40px 0;
  color: #4D4D4D;
  font-size: 1rem;
  line-height: 1.9;
}
.page_cta_archive .cta_archive_list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.page_cta_archive .cta_archive_card {
  margin: 0;
  padding: 0;
}
.page_cta_archive .cta_archive_card_link {
  display: flex;
  align-items: stretch;
  background: #FFFFFF;
  border: 1px solid #E5E5E5;
  text-decoration: none;
  color: #1A1A1A;
  transition: border-color 0.2s ease, background 0.2s ease;
  min-height: 140px;
}
.page_cta_archive .cta_archive_card_link:hover {
  border-color: #003379;
  background: #E8F0F9;
  text-decoration: none;
}
.page_cta_archive .cta_archive_card_link:hover .cta_archive_more {
  color: #003379;
}
.page_cta_archive .cta_archive_thumb {
  flex: 0 0 160px;
  overflow: hidden;
  background: #FFFFFF;
}
.page_cta_archive .cta_archive_thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.page_cta_archive .cta_archive_thumb.cta_archive_thumb_placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #CCCCCC;
  font-size: 2.5rem;
}
.page_cta_archive .cta_archive_body {
  flex: 1;
  padding: 20px 22px;
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.page_cta_archive .cta_archive_title {
  font-size: 1.0625rem;
  font-weight: 700;
  color: #1A1A1A;
  margin: 0 0 8px 0;
  line-height: 1.5;
  letter-spacing: 0.01em;
}
.page_cta_archive .cta_archive_lead {
  font-size: 0.875rem;
  color: #4D4D4D;
  line-height: 1.7;
  margin: 0 0 12px 0;
  flex: 1;
}
.page_cta_archive .cta_archive_more {
  margin-top: auto;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #4D4D4D;
  letter-spacing: 0.04em;
}
.page_cta_archive .cta_archive_more i {
  font-size: 0.6875rem;
  margin-left: 4px;
}
.page_cta_archive .cta_archive_empty {
  text-align: center;
  color: #888888;
  padding: 40px 0;
}

@media only screen and (max-width: 800px) {
  .page_cta_archive .cta_archive_list {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .page_cta_archive .cta_archive_card_link {
    flex-direction: column;
    min-height: 0;
  }
  .page_cta_archive .cta_archive_thumb {
    flex: 0 0 auto;
    height: 160px;
  }
}
/*---------------------------------------------
CTA共通レイアウト（テンプレート06）
2カラム: 左=テキスト/画像 / 右=フォーム
----------------------------------------------*/
.page_cta .cta_layout {
  display: flex;
  gap: 48px;
  align-items: flex-start;
  min-height: calc(100vh + 240px);
}
.page_cta .cta_left {
  flex: 1;
  min-width: 0;
}
.page_cta .cta_right {
  flex: 0 0 460px;
  position: sticky;
  top: 100px;
  align-self: flex-start;
}
.page_cta .cta_eyecatch {
  margin-bottom: 24px;
}
.page_cta .cta_eyecatch img {
  display: block;
  width: 100%;
  height: auto;
}
.page_cta .cta_eyecatch {
  /* セミナー専用：16:9角丸で大きく見せる
     2026-05-29 追加 */
}
.page_cta .cta_eyecatch.cta_eyecatch--16x9 {
  border-radius: 20px;
  overflow: hidden;
  background: #F5F5F5;
  aspect-ratio: 16/9;
}
.page_cta .cta_eyecatch.cta_eyecatch--16x9 img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.page_cta .cta_lead {
  margin: 0 0 20px 0;
  color: #4D4D4D;
  font-size: 1rem;
  line-height: 1.9;
}
.page_cta .cta_lead_title {
  font-size: 1.5rem;
  font-weight: 700;
  color: #1A1A1A;
  margin: 0 0 20px 0;
  padding-bottom: 12px;
  border-bottom: 2px solid #003379;
  letter-spacing: 0.02em;
  line-height: 1.5;
}
.page_cta .cta_body {
  font-size: 0.9375rem;
  line-height: 1.9;
  color: #1A1A1A;
}
.page_cta .cta_body p {
  margin: 0 0 16px 0;
}
.page_cta .cta_body ul, .page_cta .cta_body ol {
  margin: 0 0 16px 1.5em;
  padding: 0;
}
.page_cta .cta_body ul li, .page_cta .cta_body ol li {
  margin-bottom: 6px;
  line-height: 1.8;
}
.page_cta .cta_body strong {
  color: #003379;
  font-weight: 700;
}
.page_cta {
  /* 右カラム: フォーム */
}
.page_cta .cta_form_wrap {
  background: #FFFFFF;
  border: 1px solid #E5E5E5;
  padding: 28px 28px 32px;
  position: sticky;
  top: 130px;
}
.page_cta .cta_form_title {
  font-size: 1.125rem;
  font-weight: 700;
  color: #1A1A1A;
  margin: 0 0 18px 0;
  padding-bottom: 10px;
  border-bottom: 2px solid #003379;
  letter-spacing: 0.02em;
}
.page_cta .cta_form_note {
  font-size: 0.75rem;
  color: #888888;
  margin: 0 0 16px 0;
  line-height: 1.7;
}
.page_cta .cta_form_note code {
  background: #FFFFFF;
  padding: 1px 6px;
  border: 1px solid #E5E5E5;
  font-family: monospace;
  font-size: 0.6875rem;
}
.page_cta {
  /* ダミーフォーム */
}
.page_cta .cta_dummy_form .cta_field {
  margin: 0 0 14px 0;
}
.page_cta .cta_dummy_form .cta_field label {
  display: block;
  font-size: 0.875rem;
  font-weight: 600;
  color: #1A1A1A;
  margin-bottom: 6px;
}
.page_cta .cta_dummy_form .cta_field input, .page_cta .cta_dummy_form .cta_field textarea {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid #CCCCCC;
  background: #FFFFFF;
  font-size: 0.9375rem;
  font-family: inherit;
  color: #888888;
  box-sizing: border-box;
  border-radius: 0;
}
.page_cta .cta_dummy_form .cta_field textarea {
  resize: vertical;
  line-height: 1.6;
}
.page_cta .cta_dummy_form .cta_required {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 6px;
  background: #003379;
  color: #FFFFFF;
  font-size: 0.6875rem;
  font-weight: 700;
  vertical-align: middle;
  letter-spacing: 0.05em;
}
.page_cta .cta_dummy_form .cta_submit_wrap {
  margin: 22px 0 0 0;
  text-align: center;
}
.page_cta .cta_dummy_form .cta_submit {
  display: inline-block;
  min-width: 240px;
  padding: 14px 28px;
  background: #CCCCCC;
  color: #FFFFFF;
  font-size: 0.9375rem;
  font-weight: 700;
  border: none;
  cursor: not-allowed;
  letter-spacing: 0.05em;
  border-radius: 0;
}
.page_cta {
  /* 本番のCF7埋め込み時のスタイル調整 */
}
.page_cta .wpcf7 p {
  margin: 0 0 14px 0;
}
.page_cta .wpcf7 label {
  display: block;
  font-size: 0.875rem;
  font-weight: 600;
  color: #1A1A1A;
  margin-bottom: 6px;
}
.page_cta .wpcf7 input[type=text],
.page_cta .wpcf7 input[type=email],
.page_cta .wpcf7 input[type=tel],
.page_cta .wpcf7 input[type=url],
.page_cta .wpcf7 textarea {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid #CCCCCC;
  background: #FFFFFF;
  font-size: 0.9375rem;
  font-family: inherit;
  color: #1A1A1A;
  box-sizing: border-box;
  border-radius: 0;
}
.page_cta .wpcf7 input[type=submit] {
  display: inline-block;
  min-width: 240px;
  padding: 14px 28px;
  background: #003379;
  color: #FFFFFF;
  font-size: 0.9375rem;
  font-weight: 700;
  border: none;
  cursor: pointer;
  letter-spacing: 0.05em;
  border-radius: 0;
  transition: background 0.2s ease;
}
.page_cta .wpcf7 input[type=submit]:hover {
  background: #1B1464;
}

@media only screen and (max-width: 900px) {
  .page_cta .cta_layout {
    flex-direction: column;
    gap: 32px;
  }
  .page_cta .cta_right {
    flex: 1;
    width: 100%;
    position: static;
    top: auto;
    max-height: none;
    overflow: visible;
  }
  .page_cta .cta_form_wrap {
    position: static;
    padding: 20px 18px 24px;
  }
}
/*---------------------------------------------
特徴ページ
----------------------------------------------*/
.page_feature .feature_intro {
  margin-bottom: 48px;
  padding: 0;
  color: #4D4D4D;
  font-size: 1.0625rem;
  line-height: 1.9;
}
.page_feature .feature_intro p {
  margin: 0;
}
.page_feature .feature_item {
  display: flex;
  gap: 32px;
  align-items: flex-start;
  padding: 32px 0;
  border-bottom: 1px solid #E5E5E5;
}
.page_feature .feature_item:last-of-type {
  border-bottom: none;
}
.page_feature .feature_item:first-of-type {
  padding-top: 0;
}
.page_feature .feature_num {
  flex-shrink: 0;
  width: 96px;
  font-family: "Roboto", sans-serif;
  font-weight: 700;
  font-size: 3rem;
  line-height: 1;
  color: #003379;
  letter-spacing: 0.02em;
  padding-top: 4px;
}
.page_feature .feature_num::after {
  content: "";
  display: block;
  width: 40px;
  height: 3px;
  background: #003379;
  margin-top: 14px;
}
.page_feature .feature_body {
  flex: 1;
  min-width: 0;
}
.page_feature .feature_title {
  font-size: 1.375rem;
  font-weight: 700;
  color: #1A1A1A;
  margin: 0 0 16px 0;
  line-height: 1.5;
  letter-spacing: 0.02em;
}
.page_feature .feature_body p {
  font-size: 0.9375rem;
  line-height: 1.9;
  color: #1A1A1A;
  margin: 0 0 12px 0;
}
.page_feature .feature_body p:last-child {
  margin-bottom: 0;
}
.page_feature .feature_body p strong {
  color: #003379;
  font-weight: 700;
}
.page_feature .feature_body p small {
  font-size: 0.8125rem;
  color: #888888;
}

@media only screen and (max-width: 800px) {
  .page_feature .feature_intro {
    padding: 0;
    font-size: 0.9375rem;
    margin-bottom: 32px;
  }
  .page_feature .feature_item {
    flex-direction: column;
    gap: 14px;
    padding: 24px 0;
  }
  .page_feature .feature_num {
    width: auto;
    font-size: 2.25rem;
  }
  .page_feature .feature_num::after {
    margin-top: 8px;
  }
  .page_feature .feature_title {
    font-size: 1.125rem;
    margin-bottom: 12px;
  }
  .page_feature .feature_body p {
    font-size: 0.9375rem;
  }
}
/*---------------------------------------------
ご支援の流れページ
----------------------------------------------*/
.page_flow .flow_intro {
  margin-bottom: 48px;
  padding: 0;
  color: #4D4D4D;
  font-size: 1.0625rem;
  line-height: 1.9;
}
.page_flow .flow_intro p {
  margin: 0;
}
.page_flow .flow_steps {
  list-style: none;
  padding: 0;
  margin: 0;
  position: relative;
}
.page_flow .flow_step {
  display: flex;
  gap: 28px;
  align-items: flex-start;
  padding: 0 0 36px 0;
  position: relative;
  /* 縦の連結線 */
}
.page_flow .flow_step::before {
  content: "";
  position: absolute;
  left: 39px;
  top: 80px;
  bottom: 0;
  width: 2px;
  background: #E5E5E5;
  z-index: 0;
}
.page_flow .flow_step:last-child::before {
  display: none;
}
.page_flow .flow_step_num {
  flex-shrink: 0;
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: #003379;
  color: #FFFFFF;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  line-height: 1;
  box-shadow: 0 2px 6px rgba(0, 51, 121, 0.2);
  position: relative;
  z-index: 1;
}
.page_flow .flow_step_num .flow_step_num_label {
  font-family: "Roboto", sans-serif;
  font-size: 0.625rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  opacity: 0.9;
  margin-bottom: 4px;
}
.page_flow .flow_step_num .flow_step_num_value {
  font-family: "Roboto", sans-serif;
  font-size: 1.625rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}
.page_flow .flow_step_body {
  flex: 1;
  min-width: 0;
  padding: 6px 0 0 0;
}
.page_flow .flow_step_title {
  font-size: 1.375rem;
  font-weight: 700;
  color: #1A1A1A;
  margin: 0 0 14px 0;
  line-height: 1.5;
  letter-spacing: 0.02em;
}
.page_flow .flow_step_body p {
  font-size: 0.9375rem;
  line-height: 1.9;
  color: #1A1A1A;
  margin: 0 0 10px 0;
}
.page_flow .flow_step_body p:last-child {
  margin-bottom: 0;
}
.page_flow .flow_step_body p strong {
  color: #003379;
  font-weight: 700;
}
.page_flow .flow_step_note {
  font-size: 0.8125rem !important;
  color: #888888 !important;
  padding: 8px 12px;
  background: #FFFFFF;
  border-left: 3px solid #E5E5E5;
  margin: 8px 0 !important;
  line-height: 1.7 !important;
}

@media only screen and (max-width: 800px) {
  .page_flow .flow_intro {
    padding: 0;
    font-size: 0.9375rem;
    margin-bottom: 32px;
  }
  .page_flow .flow_step {
    gap: 16px;
    padding-bottom: 28px;
  }
  .page_flow .flow_step::before {
    left: 29px;
    top: 60px;
  }
  .page_flow .flow_step_num {
    width: 60px;
    height: 60px;
  }
  .page_flow .flow_step_num .flow_step_num_label {
    font-size: 0.5625rem;
    margin-bottom: 2px;
  }
  .page_flow .flow_step_num .flow_step_num_value {
    font-size: 1.25rem;
  }
  .page_flow .flow_step_title {
    font-size: 1.0625rem;
    margin-bottom: 10px;
  }
  .page_flow .flow_step_body p {
    font-size: 0.9375rem;
  }
}
/*---------------------------------------------
ページ共通スタイル（行政風シンプルデザイン）
----------------------------------------------*/
.page {
  padding-top: 80px;
  position: relative;
  background: #FFFFFF;
  min-height: 60vh;
}

@media only screen and (max-width: 800px) {
  .page {
    padding-top: 70px;
  }
}
/*---------------------------------------------
ページタイトルセクション
----------------------------------------------*/
.pageTitle_sec {
  padding: 28px 0 64px;
  background: #FFFFFF;
  margin-bottom: 0;
}
.pageTitle_sec #breadcrumbs {
  background: transparent;
  border-bottom: none;
  padding: 0;
  margin: 0 0 28px 0;
}
.pageTitle_sec #breadcrumbs a, .pageTitle_sec #breadcrumbs span {
  font-size: 0.8125rem;
}
.pageTitle_sec .pageTitle_text {
  font-size: 2.75rem;
  font-weight: 700;
  color: #1A1A1A;
  text-align: left;
  display: block;
  margin: 0;
  letter-spacing: 0.02em;
  line-height: 1.4;
}
.pageTitle_sec .pageTitle_text::after {
  display: none;
}
.pageTitle_sec .pageTitle_sub {
  display: block;
  text-align: left;
  font-size: 1rem;
  color: #4D4D4D;
  margin-top: 16px;
}

@media only screen and (max-width: 800px) {
  .pageTitle_sec {
    padding: 20px 0 40px;
  }
  .pageTitle_sec #breadcrumbs {
    margin-bottom: 18px;
  }
  .pageTitle_sec .pageTitle_text {
    font-size: 1.75rem;
  }
  .pageTitle_sec .pageTitle_sub {
    font-size: 0.9375rem;
  }
}
/*---------------------------------------------
コンテンツセクション
----------------------------------------------*/
.singleContents_sec {
  padding: 0 0 80px;
  background: #FFFFFF;
}
.singleContents_sec .sec_in {
  background: transparent;
  border-radius: 0;
  border: none;
}
.singleContents_sec .sec_in_in {
  width: 90%;
  margin: auto;
  padding: 0;
  z-index: 9;
  position: relative;
}

@media only screen and (max-width: 800px) {
  .singleContents_sec {
    padding: 0 0 40px;
  }
  .singleContents_sec .sec_in_in {
    padding: 0;
  }
}
/*---------------------------------------------
h1セクション（各ページヘッダー）
----------------------------------------------*/
.h1_sec .h1_textBox {
  text-align: center;
  color: #FFFFFF;
  position: relative;
  z-index: 3;
}
.h1_sec .eng {
  font-weight: 700;
  line-height: 1.2;
  font-size: 3rem;
  font-family: "Roboto", sans-serif;
  margin-bottom: 10px;
  letter-spacing: 0.05em;
}
.h1_sec h1 {
  font-weight: 500;
  font-size: 1rem;
  letter-spacing: 0.1em;
}
.h1_sec .h1_sec_in {
  width: 1360px;
  height: 300px;
  margin: auto;
  position: relative;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  overflow: hidden;
  background: #003379;
}

@media only screen and (max-width: 820px) {
  .h1_sec .eng {
    font-size: 2rem;
  }
  .h1_sec h1 {
    font-size: 0.875rem;
  }
  .h1_sec .h1_sec_in {
    width: 100%;
    height: 200px;
  }
}
/*---------------------------------------------
各ページ固有のh1背景
----------------------------------------------*/
.page_contact .h1_sec_in {
  background: linear-gradient(135deg, rgba(0, 32, 96, 0.9), rgba(0, 61, 165, 0.9)), url("../images/page/contact/h1_bg.jpg");
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}

.page_company .h1_sec_in {
  background: linear-gradient(135deg, rgba(0, 32, 96, 0.9), rgba(0, 61, 165, 0.9)), url("../images/page/company/h1_bg.jpg");
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}

.page_policy .h1_sec_in {
  background: linear-gradient(135deg, rgba(0, 32, 96, 0.9), rgba(0, 61, 165, 0.9)), url("../images/page/policy/h1_bg.jpg");
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}

/*---------------------------------------------
アーカイブページ
----------------------------------------------*/
.archive_sec {
  padding: 60px 0;
}
.archive_sec .subhead {
  text-align: center;
  font-weight: 700;
  font-size: 1.5rem;
  margin-bottom: 40px;
  color: #1A1A1A;
  padding-bottom: 15px;
  border-bottom: 3px solid #003379;
  display: inline-block;
  width: 100%;
}

.archive_flBox {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 20px;
}
.archive_flBox .blog_card {
  width: calc(25% - 15px);
  background-color: #FFFFFF;
  border: 2px solid #CCCCCC;
  font-weight: 500;
  margin-bottom: 30px;
  position: relative;
  overflow: hidden;
  border-radius: 0;
  transition: border-color 0.3s ease;
}
.archive_flBox .blog_card img {
  display: block;
  width: 100%;
  margin-bottom: 10px;
  height: 200px;
  object-fit: cover;
}
.archive_flBox .blog_card:hover {
  border-color: #003379;
}
.archive_flBox .blog_card .day {
  margin-bottom: 5px;
  padding: 0 10px;
  font-size: 0.8125rem;
  color: #4D4D4D;
}
.archive_flBox .blog_card .title {
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: 15px;
  display: block;
  width: 90%;
  padding: 0 10px;
  color: #1A1A1A;
  line-height: 1.6;
}
.archive_flBox .blog_card .cat a {
  color: #FFFFFF;
  font-weight: 700;
  background: #003379;
  padding: 4px 10px;
  font-size: 0.75rem;
  text-decoration: none;
}
.archive_flBox .blog_card .cat a:hover {
  background: #0066CC;
}
.archive_flBox .blog_card .textArea {
  padding: 0 10px;
  width: 97%;
  margin: 0 auto;
}

@media only screen and (max-width: 1024px) {
  .archive_flBox .blog_card {
    width: calc(50% - 10px);
  }
}
@media only screen and (max-width: 800px) {
  .archive_sec {
    padding: 40px 0;
  }
  .archive_sec .subhead {
    font-size: 1.25rem;
    margin-bottom: 30px;
  }
  .archive_flBox {
    gap: 15px;
  }
  .archive_flBox .blog_card {
    width: 100%;
    margin-bottom: 20px;
  }
  .archive_flBox .blog_card img {
    height: 180px;
  }
  .archive_flBox .blog_card .day {
    font-size: 0.75rem;
  }
  .archive_flBox .blog_card .title {
    font-size: 0.9375rem;
  }
  .archive_flBox .blog_card .cat a {
    font-size: 0.6875rem;
  }
}
/*---------------------------------------------
個別記事ページ
----------------------------------------------*/
.single_blog .single_sec {
  padding: 0 0 90px 0;
}
.single_blog .eyecatch img {
  height: 400px;
  width: 100%;
  object-fit: cover;
  display: block;
  border-radius: 0;
  margin-bottom: 30px;
}
.single_blog .single_tags {
  border-bottom: 2px solid #CCCCCC;
  margin-bottom: 40px;
  padding-bottom: 15px;
}
.single_blog h1 {
  font-weight: 700;
  font-size: 1.75rem;
  color: #1A1A1A;
  margin-bottom: 20px;
  line-height: 1.6;
}
.single_blog h2 {
  font-weight: 700;
  font-size: 1.375rem;
  color: #1A1A1A;
  margin: 40px 0 20px;
  padding-left: 15px;
  border-left: 4px solid #003379;
}
.single_blog h3 {
  font-weight: 700;
  font-size: 1.125rem;
  color: #1A1A1A;
  margin: 30px 0 15px;
  padding-bottom: 8px;
  border-bottom: 2px solid #CCCCCC;
}
.single_blog p {
  line-height: 1.8;
  margin-bottom: 20px;
}

@media only screen and (max-width: 800px) {
  .single_blog .eyecatch img {
    height: 250px;
  }
  .single_blog h1 {
    font-size: 1.375rem;
  }
  .single_blog h2 {
    font-size: 1.1875rem;
  }
  .single_blog h3 {
    font-size: 1.0625rem;
  }
}
/*---------------------------------------------
会社情報
----------------------------------------------*/
.page_aboutus .company-info-table {
  width: 100%;
  border-collapse: collapse;
  margin: 20px 0;
  background: #FFFFFF;
  border: 2px solid #003379;
}
.page_aboutus .company-info-table th, .page_aboutus .company-info-table td {
  padding: 18px 24px;
  text-align: left;
  border: 1px solid #CCCCCC;
  line-height: 1.8;
}
.page_aboutus .company-info-table th {
  background: #003379;
  color: #FFFFFF;
  font-weight: 700;
  width: 25%;
  vertical-align: top;
  font-size: 0.9375rem;
}
.page_aboutus .company-info-table td {
  background: #FFFFFF;
  color: #1A1A1A;
  width: 75%;
  font-size: 0.9375rem;
}
.page_aboutus .company-info-table td ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.page_aboutus .company-info-table td ul li {
  padding: 8px 0;
  padding-left: 1.2em;
  position: relative;
}
.page_aboutus .company-info-table td ul li::before {
  content: "・";
  position: absolute;
  left: 0;
  color: #003379;
  font-weight: 700;
}
.page_aboutus .company-info-table tr {
  transition: background-color 0.2s ease;
}
.page_aboutus .company-info-table tr:hover td {
  background: #E8F0F9;
}

@media only screen and (max-width: 800px) {
  .page_aboutus .company-info-table {
    border: 1px solid #003379;
  }
  .page_aboutus .company-info-table th, .page_aboutus .company-info-table td {
    display: block;
    width: 100%;
    padding: 12px 16px;
  }
  .page_aboutus .company-info-table th {
    border-bottom: none;
    padding-bottom: 8px;
    font-size: 0.875rem;
  }
  .page_aboutus .company-info-table td {
    border-top: none;
    padding-top: 0;
    padding-bottom: 16px;
    font-size: 0.875rem;
  }
  .page_aboutus .company-info-table td ul li {
    padding: 6px 0;
    font-size: 0.875rem;
  }
  .page_aboutus .company-info-table tr {
    border-bottom: 2px solid #CCCCCC;
  }
  .page_aboutus .company-info-table tr:last-child {
    border-bottom: none;
  }
}
/*---------------------------------------------
よくあるご質問（FAQ）
----------------------------------------------*/
.page_faq .faq_intro {
  margin-bottom: 40px;
  padding: 0;
  color: #4D4D4D;
  font-size: 1rem;
  line-height: 1.9;
}
.page_faq .faq_intro p {
  margin: 0;
}
.page_faq .faq_category {
  margin-bottom: 50px;
}
.page_faq .faq_category:last-child {
  margin-bottom: 0;
}
.page_faq .faq_category_title {
  font-size: 1.375rem;
  font-weight: 700;
  color: #003379;
  border-bottom: 2px solid #003379;
  padding: 0 0 12px 0;
  margin: 0 0 20px 0;
  letter-spacing: 0.04em;
}
.page_faq .faq_category_title .faq_category_num {
  display: inline-block;
  margin-right: 8px;
  color: #0066CC;
  font-weight: 700;
}
.page_faq .faq_list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.page_faq .faq_item {
  border: 1px solid #E5E5E5;
  background: #FFFFFF;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.page_faq .faq_item[open] {
  border-color: #003379;
  box-shadow: 0 1px 4px rgba(0, 51, 121, 0.08);
}
.page_faq .faq_item summary {
  list-style: none;
}
.page_faq .faq_item summary::-webkit-details-marker {
  display: none;
}
.page_faq .faq_q {
  cursor: pointer;
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 16px 48px 16px 20px;
  font-weight: 600;
  color: #1A1A1A;
  line-height: 1.6;
  position: relative;
  font-size: 1rem;
}
.page_faq .faq_q:hover {
  background: #E8F0F9;
}
.page_faq .faq_q::after {
  content: "";
  position: absolute;
  right: 22px;
  top: 50%;
  width: 10px;
  height: 10px;
  border-right: 2px solid #003379;
  border-bottom: 2px solid #003379;
  transform: translateY(-75%) rotate(45deg);
  transition: transform 0.2s ease;
}
.page_faq .faq_item[open] .faq_q::after {
  transform: translateY(-25%) rotate(-135deg);
}
.page_faq .faq_q_label {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  background: #003379;
  color: #FFFFFF;
  font-family: "Roboto", sans-serif;
  font-weight: 700;
  font-size: 0.875rem;
  border-radius: 2px;
  line-height: 1;
}
.page_faq .faq_a {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 18px 20px 22px 20px;
  border-top: 1px dashed #E5E5E5;
  background: #FFFFFF;
  color: #1A1A1A;
  line-height: 1.9;
  font-size: 0.9375rem;
}
.page_faq .faq_a p {
  margin: 0;
  flex: 1;
}
.page_faq .faq_a_label {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  background: #003379;
  color: #FFFFFF;
  font-family: "Roboto", sans-serif;
  font-weight: 700;
  font-size: 0.875rem;
  border-radius: 2px;
  line-height: 1;
}

@media only screen and (max-width: 800px) {
  .page_faq .faq_intro {
    padding: 0;
    font-size: 0.9375rem;
    margin-bottom: 30px;
  }
  .page_faq .faq_category {
    margin-bottom: 36px;
  }
  .page_faq .faq_category_title {
    font-size: 1.125rem;
    padding-bottom: 10px;
    margin-bottom: 16px;
  }
  .page_faq .faq_q {
    padding: 14px 38px 14px 14px;
    font-size: 0.9375rem;
    gap: 10px;
  }
  .page_faq .faq_q::after {
    right: 16px;
    width: 8px;
    height: 8px;
  }
  .page_faq .faq_q_label, .page_faq .faq_a_label {
    width: 24px;
    height: 24px;
    font-size: 0.75rem;
  }
  .page_faq .faq_a {
    padding: 14px 14px 18px 14px;
    font-size: 0.875rem;
    gap: 10px;
    line-height: 1.8;
  }
}
/*---------------------------------------------
補助金プログラム個別ページ
----------------------------------------------*/
.page_single_program {
  font-size: 1.0625rem;
  font-weight: 400;
  line-height: 1.9;
}
.page_single_program .program_basic_info {
  margin-bottom: 50px;
}
.page_single_program .program_info_table {
  width: 100%;
  border-collapse: collapse;
  background: #FFFFFF;
  border: 2px solid #003379;
  box-shadow: none;
}
.page_single_program .program_info_table th, .page_single_program .program_info_table td {
  padding: 20px 24px;
  text-align: left;
  border: 1px solid #CCCCCC;
  line-height: 1.8;
}
.page_single_program .program_info_table th {
  background: #003379;
  color: #FFFFFF;
  font-weight: 700;
  width: 28%;
  vertical-align: top;
  font-size: 0.9375rem;
}
.page_single_program .program_info_table td {
  background: #FFFFFF;
  color: #1A1A1A;
  width: 72%;
  font-size: 0.9375rem;
}
.page_single_program .program_info_table td a {
  color: #003379;
  text-decoration: none;
  word-break: break-all;
}
.page_single_program .program_info_table td a:hover {
  text-decoration: underline;
}
.page_single_program .program_info_table .highlight_amount {
  color: #003379;
  font-size: 1.125rem;
  font-weight: 700;
}
.page_single_program .program_description {
  margin-bottom: 50px;
}
.page_single_program .program_description h2 {
  font-weight: 700;
  font-size: 1.875rem;
  color: #1A1A1A;
  margin-bottom: 25px;
  padding-left: 15px;
  border-left: 5px solid #003379;
}
.page_single_program .program_description h3 {
  font-weight: 700;
  font-size: 1.5rem;
  color: #1A1A1A;
  margin: 30px 0 20px;
  padding-bottom: 10px;
  border-bottom: 2px solid #CCCCCC;
}
.page_single_program .program_description p {
  line-height: 1.9;
  margin-bottom: 20px;
  color: #1A1A1A;
}
.page_single_program .program_description p strong {
  color: #003379;
  font-weight: 700;
}
.page_single_program .program_expense_list {
  list-style: none;
  padding: 0;
  margin: 20px 0;
}
.page_single_program .program_expense_list li {
  padding: 4px 0 4px 22px;
  margin: 0;
  background: transparent;
  border: none;
  line-height: 1.9;
  position: relative;
}
.page_single_program .program_expense_list li::before {
  content: "・";
  position: absolute;
  left: 0;
  color: #003379;
  font-weight: 700;
}
.page_single_program .program_expense_list li .label {
  font-weight: 700;
  color: #1A1A1A;
}
.page_single_program .program_bonus {
  margin-bottom: 50px;
}
.page_single_program .program_bonus h2 {
  font-weight: 700;
  font-size: 1.875rem;
  color: #1A1A1A;
  margin-bottom: 25px;
  padding-left: 15px;
  border-left: 5px solid #003379;
}
.page_single_program .program_bonus_table {
  width: 100%;
  border-collapse: collapse;
  background: #FFFFFF;
  border: 2px solid #003379;
  box-shadow: none;
}
.page_single_program .program_bonus_table thead {
  background: #003379;
}
.page_single_program .program_bonus_table thead th {
  color: #FFFFFF;
  font-weight: 700;
  padding: 18px 20px;
  text-align: center;
  border: 1px solid rgba(255, 255, 255, 0.2);
  font-size: 0.9375rem;
}
.page_single_program .program_bonus_table tbody td {
  padding: 18px 20px;
  border: 1px solid #CCCCCC;
  font-size: 0.9375rem;
}
.page_single_program .program_bonus_table tbody td:nth-child(1) {
  font-weight: 700;
  color: #1A1A1A;
}
.page_single_program .program_bonus_table tbody td:nth-child(2) {
  text-align: center;
  width: 120px;
}
.page_single_program .program_bonus_table .difficulty_easy {
  color: #003379;
  font-size: 1.5rem;
  font-weight: 700;
}
.page_single_program .program_bonus_table .difficulty_medium {
  color: #4D4D4D;
  font-size: 1.5rem;
  font-weight: 700;
}
.page_single_program .program_bonus_table .difficulty_hard {
  color: #003379;
  font-size: 1.5rem;
  font-weight: 700;
}
.page_single_program .program_note {
  background: transparent;
  padding: 0;
  margin: 16px 0;
  border: none;
  line-height: 1.9;
  color: #4D4D4D;
}
.page_single_program .program_note strong {
  color: #1A1A1A;
  font-weight: 700;
}
.page_single_program .program_simple_list {
  list-style: none;
  padding: 0;
  margin: 20px 0;
}
.page_single_program .program_simple_list li {
  padding: 10px 0 10px 25px;
  position: relative;
  line-height: 1.8;
}
.page_single_program .program_simple_list li::before {
  content: "・";
  position: absolute;
  left: 0;
  color: #003379;
  font-weight: 700;
}
.page_single_program .program_requirement_list {
  counter-reset: requirement-counter;
  list-style: none;
  padding: 0;
  margin: 20px 0;
}
.page_single_program .program_requirement_list li {
  counter-increment: requirement-counter;
  padding: 6px 0 6px 36px;
  margin: 0;
  background: transparent;
  border: none;
  position: relative;
  line-height: 1.9;
}
.page_single_program .program_requirement_list li::before {
  content: counter(requirement-counter);
  position: absolute;
  left: 0;
  top: 0.45em;
  background: #003379;
  color: #FFFFFF;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 0.8125rem;
  border-radius: 50%;
}
.page_single_program .program_requirements,
.page_single_program .program_philosophy,
.page_single_program .program_preparation,
.page_single_program .program_decision,
.page_single_program .program_selection,
.page_single_program .program_support,
.page_single_program .program_reasons {
  margin-bottom: 50px;
}
.page_single_program .program_requirements h2,
.page_single_program .program_philosophy h2,
.page_single_program .program_preparation h2,
.page_single_program .program_decision h2,
.page_single_program .program_selection h2,
.page_single_program .program_support h2,
.page_single_program .program_reasons h2 {
  font-weight: 700;
  font-size: 1.875rem;
  color: #1A1A1A;
  margin-bottom: 25px;
  padding-left: 15px;
  border-left: 5px solid #003379;
}
.page_single_program .program_requirements h3,
.page_single_program .program_philosophy h3,
.page_single_program .program_preparation h3,
.page_single_program .program_decision h3,
.page_single_program .program_selection h3,
.page_single_program .program_support h3,
.page_single_program .program_reasons h3 {
  font-weight: 700;
  font-size: 1.5rem;
  color: #1A1A1A;
  margin: 30px 0 20px;
  padding-bottom: 10px;
  border-bottom: 2px solid #CCCCCC;
}
.page_single_program .program_requirements p,
.page_single_program .program_philosophy p,
.page_single_program .program_preparation p,
.page_single_program .program_decision p,
.page_single_program .program_selection p,
.page_single_program .program_support p,
.page_single_program .program_reasons p {
  line-height: 1.9;
  margin-bottom: 20px;
  color: #1A1A1A;
}
.page_single_program .program_philosophy_list {
  list-style: none;
  padding: 0;
  margin: 20px 0;
}
.page_single_program .program_philosophy_list li {
  padding: 6px 0 6px 28px;
  margin: 0;
  background: transparent;
  border: none;
  line-height: 1.9;
  position: relative;
}
.page_single_program .program_philosophy_list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0.05em;
  color: #003379;
  font-weight: 700;
  font-size: 1.125rem;
}
.page_single_program .program_support_list {
  counter-reset: support-counter;
  list-style: none;
  padding: 0;
  margin: 20px 0;
}
.page_single_program .program_support_list li {
  counter-increment: support-counter;
  padding: 6px 0 6px 36px;
  margin: 0;
  background: transparent;
  border: none;
  position: relative;
  line-height: 1.9;
}
.page_single_program .program_support_list li::before {
  content: counter(support-counter);
  position: absolute;
  left: 0;
  top: 0.45em;
  background: #003379;
  color: #FFFFFF;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 0.8125rem;
  border-radius: 50%;
}
.page_single_program .program_support_list li:last-child {
  font-weight: 700;
}
.page_single_program .program_support_list li:last-child::before {
  background: #003379;
}
.page_single_program .program_pricing {
  margin-bottom: 50px;
}
.page_single_program .program_pricing h2 {
  font-weight: 700;
  font-size: 1.875rem;
  color: #1A1A1A;
  margin-bottom: 30px;
  padding-left: 15px;
  border-left: 5px solid #003379;
}
.page_single_program .pricing_cards {
  display: flex;
  gap: 30px;
  justify-content: center;
}
.page_single_program .pricing_card {
  flex: 1;
  max-width: 400px;
  background: #FFFFFF;
  border: 2px solid #CCCCCC;
  padding: 30px;
  border-radius: 0;
  box-shadow: none;
}
.page_single_program .pricing_card.featured {
  border-color: #003379;
  border-width: 3px;
  position: relative;
}
.page_single_program .pricing_card.featured::before {
  content: "おすすめ";
  position: absolute;
  top: -15px;
  left: 50%;
  transform: translateX(-50%);
  background: #003379;
  color: #FFFFFF;
  padding: 5px 20px;
  font-size: 0.875rem;
  font-weight: 700;
}
.page_single_program .pricing_card .plan_name {
  text-align: center;
  font-size: 1.375rem;
  font-weight: 700;
  color: #1A1A1A;
  margin-bottom: 25px;
  padding-bottom: 15px;
  border-bottom: 2px solid #CCCCCC;
}
.page_single_program .pricing_card .plan_details .price_item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 15px 0;
  border-bottom: 1px solid #CCCCCC;
}
.page_single_program .pricing_card .plan_details .price_item:last-child {
  border-bottom: none;
}
.page_single_program .pricing_card .plan_details .price_item .label {
  font-weight: 500;
  color: #4D4D4D;
  font-size: 0.9375rem;
}
.page_single_program .pricing_card .plan_details .price_item .amount {
  font-weight: 700;
  color: #003379;
  font-size: 1.125rem;
}
.page_single_program .pricing_card .plan_details .price_item .amount small {
  display: block;
  font-size: 0.75rem;
  color: #4D4D4D;
  font-weight: 500;
  margin-top: 5px;
}
.page_single_program .program_faq {
  margin-bottom: 50px;
}
.page_single_program .program_faq h2 {
  font-weight: 700;
  font-size: 1.875rem;
  color: #1A1A1A;
  margin-bottom: 25px;
  padding-left: 15px;
  border-left: 5px solid #003379;
}
.page_single_program .program_faq_table {
  width: 100%;
  border-collapse: collapse;
  background: #FFFFFF;
  border: 2px solid #003379;
  box-shadow: none;
}
.page_single_program .program_faq_table th, .page_single_program .program_faq_table td {
  padding: 20px 24px;
  border: 1px solid #CCCCCC;
  line-height: 1.8;
  vertical-align: top;
}
.page_single_program .program_faq_table th {
  background: #E8F0F9;
  color: #1A1A1A;
  font-weight: 700;
  width: 35%;
  font-size: 0.9375rem;
  position: relative;
  padding: 20px 24px 20px 56px;
  text-align: left;
  vertical-align: top;
}
.page_single_program .program_faq_table th::before {
  content: "Q";
  position: absolute;
  left: 18px;
  top: 22px;
  background: #003379;
  color: #FFFFFF;
  width: 26px;
  height: 26px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 0.875rem;
  border-radius: 50%;
}
.page_single_program .program_faq_table td {
  background: #FFFFFF;
  color: #1A1A1A;
  width: 65%;
  font-size: 0.9375rem;
  padding: 20px 24px 20px 56px;
  position: relative;
}
.page_single_program .program_faq_table td::before {
  content: "A";
  position: absolute;
  left: 18px;
  top: 22px;
  background: #003379;
  color: #FFFFFF;
  width: 26px;
  height: 26px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 0.875rem;
  border-radius: 50%;
}

@media only screen and (max-width: 800px) {
  .page_single_program {
    font-size: 1rem;
  }
  .page_single_program .program_info_table {
    border: 1px solid #003379;
  }
  .page_single_program .program_info_table th, .page_single_program .program_info_table td {
    display: block;
    width: 100%;
    padding: 15px 20px;
  }
  .page_single_program .program_info_table th {
    border-bottom: none;
    padding-bottom: 10px;
    font-size: 0.875rem;
  }
  .page_single_program .program_info_table td {
    border-top: none;
    padding-top: 0;
    padding-bottom: 20px;
    font-size: 0.875rem;
  }
  .page_single_program .program_info_table td a {
    font-size: 0.8125rem;
  }
  .page_single_program .program_info_table tr {
    border-bottom: 2px solid #CCCCCC;
  }
  .page_single_program .program_info_table tr:last-child {
    border-bottom: none;
  }
  .page_single_program .program_info_table .highlight_amount {
    font-size: 1rem;
  }
  .page_single_program .program_description h2 {
    font-size: 1.5rem;
    padding-left: 12px;
    border-left-width: 4px;
  }
  .page_single_program .program_description h3 {
    font-size: 1.25rem;
  }
  .page_single_program .program_expense_list li {
    padding: 4px 0 4px 20px;
  }
  .page_single_program .program_simple_list li {
    padding: 6px 0 6px 22px;
  }
  .page_single_program .program_requirement_list li {
    padding: 4px 0 4px 32px;
  }
  .page_single_program .program_requirement_list li::before {
    width: 22px;
    height: 22px;
    font-size: 0.75rem;
  }
  .page_single_program .program_philosophy_list li {
    padding: 4px 0 4px 26px;
  }
  .page_single_program .program_philosophy_list li::before {
    font-size: 1rem;
  }
  .page_single_program .program_support_list li {
    padding: 4px 0 4px 32px;
  }
  .page_single_program .program_support_list li::before {
    width: 22px;
    height: 22px;
    font-size: 0.75rem;
  }
  .page_single_program .program_requirements h2,
  .page_single_program .program_philosophy h2,
  .page_single_program .program_preparation h2,
  .page_single_program .program_decision h2,
  .page_single_program .program_selection h2,
  .page_single_program .program_support h2,
  .page_single_program .program_reasons h2 {
    font-size: 1.5rem;
    padding-left: 12px;
    border-left-width: 4px;
  }
  .page_single_program .program_requirements h3,
  .page_single_program .program_philosophy h3,
  .page_single_program .program_preparation h3,
  .page_single_program .program_decision h3,
  .page_single_program .program_selection h3,
  .page_single_program .program_support h3,
  .page_single_program .program_reasons h3 {
    font-size: 1.25rem;
  }
  .page_single_program .program_bonus h2 {
    font-size: 1.5rem;
    padding-left: 12px;
    border-left-width: 4px;
  }
  .page_single_program .program_bonus_table {
    font-size: 0.8125rem;
  }
  .page_single_program .program_bonus_table thead th {
    padding: 12px 10px;
    font-size: 0.8125rem;
  }
  .page_single_program .program_bonus_table tbody td {
    padding: 12px 10px;
    font-size: 0.8125rem;
  }
  .page_single_program .program_bonus_table tbody td:nth-child(2) {
    width: 80px;
  }
  .page_single_program .program_bonus_table .difficulty_easy,
  .page_single_program .program_bonus_table .difficulty_medium {
    font-size: 1.25rem;
  }
  .page_single_program .program_pricing h2 {
    font-size: 1.5rem;
    padding-left: 12px;
    border-left-width: 4px;
  }
  .page_single_program .pricing_cards {
    flex-direction: column;
    gap: 30px;
  }
  .page_single_program .pricing_card {
    max-width: 100%;
  }
  .page_single_program .pricing_card .plan_name {
    font-size: 1.1875rem;
  }
  .page_single_program .pricing_card .plan_details .price_item .label {
    font-size: 0.875rem;
  }
  .page_single_program .pricing_card .plan_details .price_item .amount {
    font-size: 1rem;
  }
  .page_single_program .program_faq h2 {
    font-size: 1.5rem;
    padding-left: 12px;
    border-left-width: 4px;
  }
  .page_single_program .program_faq_table th, .page_single_program .program_faq_table td {
    display: block;
    width: 100%;
    padding: 15px 20px 15px 45px;
    font-size: 0.875rem;
  }
  .page_single_program .program_faq_table th {
    padding-top: 20px;
    padding-bottom: 10px;
    border-bottom: none;
  }
  .page_single_program .program_faq_table th::before {
    left: 15px;
    top: 20px;
    width: 22px;
    height: 22px;
    font-size: 0.8125rem;
  }
  .page_single_program .program_faq_table td {
    padding-top: 5px;
    padding-bottom: 20px;
    border-top: none;
  }
  .page_single_program .program_faq_table td::before {
    left: 15px;
    top: 5px;
    width: 22px;
    height: 22px;
    font-size: 0.8125rem;
  }
  .page_single_program .program_faq_table tr {
    border-bottom: 2px solid #CCCCCC;
  }
  .page_single_program .program_faq_table tr:last-child {
    border-bottom: none;
  }
}
/*---------------------------------------------
アーカイブページ（ニュース一覧）
----------------------------------------------*/
.page_archive .h1_sec_in {
  background: linear-gradient(rgba(0, 51, 121, 0.85), rgba(0, 51, 121, 0.85)), url("../images/page/news/h1_bg.jpg");
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}
.page_archive .news_box {
  width: 100%;
  margin: auto;
  margin-bottom: 90px;
  position: relative;
  overflow: hidden;
  z-index: 1;
  background: #FFFFFF;
  border: 2px solid #CCCCCC;
  border-radius: 0;
  padding: 60px 0;
  box-shadow: none;
}
.page_archive .news_box .news_en {
  font-weight: 700;
  text-align: center;
  font-size: 2rem;
  font-family: "Roboto", sans-serif;
  color: #1A1A1A;
  margin-bottom: 40px;
  letter-spacing: 0.05em;
}
.page_archive .news_line {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 20px 0;
  border-bottom: 1px solid #CCCCCC;
  width: 85%;
  margin: auto;
  transition: background-color 0.3s ease;
}
.page_archive .news_line:hover {
  background-color: #E8F0F9;
}
.page_archive .news_line .day {
  display: inline-block;
  color: #4D4D4D;
  width: 120px;
  font-size: 0.875rem;
  font-weight: 500;
}
.page_archive .news_line .cat {
  display: inline-block;
  width: 100px;
}
.page_archive .news_line .cat a {
  background-color: #003379;
  color: #FFFFFF;
  padding: 6px 12px;
  border-radius: 0;
  font-size: 0.8125rem;
  font-weight: 700;
  text-decoration: none;
}
.page_archive .news_line .cat a:hover {
  background-color: #0066CC;
}
.page_archive .news_line .title {
  text-decoration: none;
  flex: 1;
  padding: 0 10px;
  color: #1A1A1A;
  font-weight: 500;
  position: relative;
  padding-right: 30px;
}
.page_archive .news_line .title::after {
  content: "→";
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  color: #003379;
  font-weight: 700;
}
.page_archive .news_line .title:hover {
  color: #003379;
  text-decoration: underline;
}
.page_archive .news_line .title:hover::after {
  right: 5px;
}

@media only screen and (max-width: 800px) {
  .page_archive .news_box {
    width: 100%;
    padding: 40px 0;
  }
  .page_archive .news_box .news_en {
    font-size: 1.5rem;
    margin-bottom: 30px;
  }
  .page_archive .news_line {
    display: block;
    padding: 15px 10px;
    width: 90%;
  }
  .page_archive .news_line .day {
    display: block;
    width: 100%;
    font-size: 0.75rem;
    margin-bottom: 5px;
  }
  .page_archive .news_line .cat {
    display: inline-block;
    width: auto;
    margin-bottom: 10px;
  }
  .page_archive .news_line .cat a {
    font-size: 0.6875rem;
    padding: 4px 8px;
  }
  .page_archive .news_line .title {
    width: 100%;
    padding: 0;
    font-size: 0.875rem;
  }
}
/*---------------------------------------------
ページャー（ページネーション）
----------------------------------------------*/
.pager {
  padding: 40px 0 0 0;
  text-align: center;
}
.pager .current {
  background: #003379;
  color: #FFFFFF;
  font-weight: 700;
}
.pager .page-numbers {
  display: inline-flex;
  width: 50px;
  height: 50px;
  align-items: center;
  justify-content: center;
  margin: 0 5px;
  border: 2px solid #CCCCCC;
  color: #1A1A1A;
  font-weight: 500;
  transition: all 0.3s ease;
}
.pager .page-numbers:hover {
  background: #003379;
  color: #FFFFFF;
  border-color: #003379;
}
.pager a {
  margin: 0;
  text-decoration: none;
}

@media only screen and (max-width: 800px) {
  .pager {
    padding: 30px 0 0 0;
  }
  .pager .page-numbers {
    width: 40px;
    height: 40px;
    margin: 0 3px;
    font-size: 0.875rem;
  }
}
/*---------------------------------------------
認定資格・加盟団体ページ (page-certifications.php)
- feature/flow ページと同系統のトーン
- 見出し以外に「左ボーダー＋背景塗り」は当てない方針
----------------------------------------------*/
.page_certifications .cert_intro {
  margin-bottom: 48px;
  color: #4D4D4D;
  font-size: 1.0625rem;
  line-height: 1.9;
}
.page_certifications .cert_intro p {
  margin: 0;
}
.page_certifications .cert_heading {
  font-size: 1.5rem;
  font-weight: 700;
  color: #1A1A1A;
  margin: 0 0 24px;
  padding-bottom: 12px;
  border-bottom: 1px solid #E5E5E5;
  letter-spacing: 0.04em;
}
.page_certifications .cert_list {
  margin: 0 0 64px;
}
.page_certifications .cert_list .cert_name {
  font-size: 1.1875rem;
  font-weight: 700;
  color: #003379;
  margin: 0 0 8px;
  letter-spacing: 0.02em;
}
.page_certifications .cert_list .cert_name:not(:first-of-type) {
  margin-top: 28px;
  padding-top: 28px;
  border-top: 1px solid #E5E5E5;
}
.page_certifications .cert_list .cert_desc {
  margin: 0;
  padding: 0 0 0 20px;
  font-size: 0.9375rem;
  line-height: 1.9;
  color: #1A1A1A;
}
.page_certifications .cert_orgs {
  margin: 0;
  padding: 0;
  list-style: none;
}
.page_certifications .cert_orgs li {
  position: relative;
  padding: 14px 0 14px 28px;
  border-bottom: 1px solid #E5E5E5;
  font-size: 1rem;
  line-height: 1.6;
  color: #1A1A1A;
}
.page_certifications .cert_orgs li::before {
  content: "";
  position: absolute;
  left: 4px;
  top: 50%;
  transform: translateY(-50%);
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #003379;
}
.page_certifications .cert_orgs li:last-child {
  border-bottom: none;
}

@media only screen and (max-width: 800px) {
  .page_certifications .cert_intro {
    margin-bottom: 32px;
    font-size: 0.9375rem;
  }
  .page_certifications .cert_heading {
    font-size: 1.25rem;
  }
  .page_certifications .cert_list {
    margin-bottom: 48px;
  }
}
/*---------------------------------------------
専門家のご紹介ページ (page-professional.php)
- 弁護士事務所風レイアウト（信頼性重視）
- 写真比率 3:2 角丸
- 縦並びカード、写真左 / 本文右の 5:7 構成
- 控えめなトーン、余白広め、シリフ寄りの見出し
----------------------------------------------*/
.page_professional .professional_intro {
  margin: 0 auto 56px;
  max-width: 760px;
  padding: 0 16px;
  text-align: center;
}
.page_professional .professional_intro p {
  margin: 0;
  color: #4D4D4D;
  font-size: 1rem;
  line-height: 2;
  letter-spacing: 0.04em;
}
.page_professional .professional_list {
  margin: 0 auto;
  padding: 0;
  list-style: none;
  counter-reset: none;
}
.page_professional .professional_item {
  display: flex;
  gap: 48px;
  align-items: flex-start;
  padding: 56px 0;
  border-top: 1px solid #E5E5E5;
}
.page_professional .professional_item:first-child {
  border-top: none;
  padding-top: 0;
}
.page_professional .professional_item:last-child {
  padding-bottom: 0;
}
@media (max-width: 768px) {
  .page_professional .professional_item {
    flex-direction: column;
    gap: 24px;
    padding: 40px 0;
  }
}
.page_professional .professional_photo {
  flex: 0 0 220px;
  margin: 0;
}
.page_professional .professional_photo img {
  display: block;
  width: 100%;
  aspect-ratio: 3/4;
  object-fit: cover;
  object-position: center top;
  border-radius: 16px;
  background-color: #F5F5F5;
}
@media (max-width: 768px) {
  .page_professional .professional_photo {
    flex: none;
    width: 100%;
    max-width: 240px;
    margin: 0 auto;
  }
}
.page_professional .professional_body {
  flex: 1;
  min-width: 0;
}
.page_professional .professional_role {
  display: inline-block;
  margin: 0 0 12px;
  padding: 4px 12px;
  background-color: #E8F0F9;
  color: #003379;
  border-radius: 4px;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.08em;
}
.page_professional .professional_name {
  margin: 0 0 20px;
  padding: 0;
  border: none;
  color: #1A1A1A;
  font-weight: 600;
  line-height: 1.4;
}
.page_professional .professional_name .professional_name_ja {
  display: inline-block;
  margin-right: 16px;
  font-size: 1.625rem;
  letter-spacing: 0.06em;
}
.page_professional .professional_name .professional_name_en {
  display: inline-block;
  color: #888888;
  font-size: 0.9375rem;
  font-weight: 400;
  letter-spacing: 0.08em;
  vertical-align: 0.1em;
}
@media (max-width: 768px) {
  .page_professional .professional_name .professional_name_ja {
    display: block;
    margin-right: 0;
    margin-bottom: 4px;
    font-size: 1.375rem;
  }
  .page_professional .professional_name .professional_name_en {
    display: block;
    font-size: 0.875rem;
  }
}
.page_professional .professional_quals {
  margin: 0 0 20px;
  padding: 0 0 0 1.25em;
  list-style: none;
}
.page_professional .professional_quals li {
  position: relative;
  padding: 2px 0;
  color: #4D4D4D;
  font-size: 0.875rem;
  line-height: 1.7;
  letter-spacing: 0.02em;
}
.page_professional .professional_quals li::before {
  content: "";
  position: absolute;
  left: -1.25em;
  top: 0.85em;
  width: 6px;
  height: 1px;
  background-color: #003379;
}
.page_professional .professional_profile {
  margin: 0;
  color: #1A1A1A;
  font-size: 0.9375rem;
  line-height: 2;
  letter-spacing: 0.03em;
}
.page_professional .professional_note {
  margin: 56px 0 0;
  padding-top: 24px;
  border-top: 1px solid #E5E5E5;
  color: #888888;
  font-size: 0.8125rem;
  line-height: 1.8;
  text-align: center;
  letter-spacing: 0.04em;
}

/*---------------------------------------------
パートナーコンサルタント カルーセル (page-professional.php)
- 縦長 2:3 角丸の写真を Slick で横スライド
- 名前非公開（Partner Consultant 01〜06）
- Slick初期化は footer.php の .partner_consultants_slider ブロックで実行
----------------------------------------------*/
.partner_consultants_sec {
  padding: 80px 0 100px;
  background-color: #FFFFFF;
}
.partner_consultants_sec .partner_consultants_header {
  margin-bottom: 48px;
  text-align: center;
}
.partner_consultants_sec .partner_consultants_title {
  margin: 0 0 16px;
  padding: 0;
  border: none;
  color: #1A1A1A;
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: 0.08em;
}
.partner_consultants_sec .partner_consultants_lead {
  margin: 0 auto;
  max-width: 680px;
  color: #4D4D4D;
  font-size: 0.9375rem;
  line-height: 1.9;
  letter-spacing: 0.03em;
  text-wrap: balance;
}
.partner_consultants_sec .partner_consultants_slider {
  margin: 0 -12px;
  padding: 0 32px;
}
.partner_consultants_sec .partner_consultants_slider:not(.slick-initialized) .partner_consultant_slide ~ .partner_consultant_slide {
  display: none;
}
.partner_consultants_sec .partner_consultants_slider:not(.slick-initialized) .partner_consultant_slide:first-child {
  width: 220px;
  margin: 0 auto;
}
.partner_consultants_sec .partner_consultants_slider .slick-prev, .partner_consultants_sec .partner_consultants_slider .slick-next {
  width: 36px;
  height: 36px;
  z-index: 2;
}
.partner_consultants_sec .partner_consultants_slider .slick-prev::before, .partner_consultants_sec .partner_consultants_slider .slick-next::before {
  display: none;
}
.partner_consultants_sec .partner_consultants_slider .slick-prev i, .partner_consultants_sec .partner_consultants_slider .slick-next i {
  color: #003379;
  font-size: 22px;
}
.partner_consultants_sec .partner_consultants_slider .slick-prev {
  left: -8px;
}
.partner_consultants_sec .partner_consultants_slider .slick-next {
  right: -8px;
}
.partner_consultants_sec .partner_consultant_slide {
  padding: 0 12px;
  text-align: center;
}
.partner_consultants_sec .partner_consultant_photo {
  margin: 0 auto 12px;
  max-width: 220px;
}
.partner_consultants_sec .partner_consultant_photo img {
  display: block;
  width: 100%;
  aspect-ratio: 3/4;
  object-fit: cover;
  object-position: center top;
  border-radius: 16px;
  background-color: #F5F5F5;
}
.partner_consultants_sec .partner_consultant_name {
  margin: 0 0 6px;
  color: #1A1A1A;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}
.partner_consultants_sec .partner_consultant_desc {
  max-width: 220px;
  margin: 0 auto;
  color: #4D4D4D;
  font-size: 0.8125rem;
  line-height: 1.7;
  text-align: left;
}
@media (max-width: 768px) {
  .partner_consultants_sec {
    padding: 56px 0 72px;
  }
  .partner_consultants_sec .partner_consultants_slider {
    padding: 0 24px;
  }
}

/*---------------------------------------------
FV（ファーストビュー）- Slickスライダー
----------------------------------------------*/
/* Slick未初期化時のFOUC防止
   init前は全 .fv_slide が原寸divでベタ縦並びになる問題への対策 */
.fv_slider:not(.slick-initialized) .fv_slide ~ .fv_slide {
  display: none !important;
}
.fv_slider:not(.slick-initialized) .fv_slide:first-child {
  width: 70%;
  margin: 0 auto;
}

.fv_sec {
  padding-top: 70px; /* JS(updateFvOffset)で動的上書き */
  position: relative;
  background: #F5F5F5;
  margin-bottom: 0; /* slick-themeデフォルトの .slick-dotted.slick-slider{margin-bottom:30px} を打ち消す */
}
.fv_sec::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: #F5F5F5;
  z-index: 3;
}

/* slick-themeデフォルト( .slick-dotted.slick-slider { margin-bottom: 30px } )を完全に打ち消す */
.fv_sec.slick-dotted.slick-slider {
  margin-bottom: 0;
}

.fv_slide {
  height: auto;
  display: block !important;
  position: relative;
  font-size: 0;
  line-height: 0;
}
.fv_slide .fv_content {
  text-align: center;
  color: #FFFFFF;
  z-index: 2;
  font-size: 1rem;
  line-height: 1;
}
.fv_slide .fv_content img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0;
  padding: 0;
}
.fv_slide .fv_content .fv_title {
  font-size: 2.25rem;
  font-weight: 700;
  margin-bottom: 20px;
  line-height: 1.4;
}
.fv_slide .fv_content .fv_subtitle {
  font-size: 1.125rem;
  line-height: 1.6;
  opacity: 0.95;
  margin-bottom: 15px;
}
.fv_slide .fv_content .fv_text {
  font-size: 0.9375rem;
  line-height: 1.8;
  opacity: 0.9;
  max-width: 600px;
  margin: 0 auto;
}

/* Slickスライダーのカスタムスタイル */
.fv_slider {
  font-size: 0;
  line-height: 0;
}
.fv_slider .slick-list,
.fv_slider .slick-track {
  font-size: 0;
  line-height: 0;
}
.fv_slider .slick-slide {
  opacity: 0.5;
  transition: opacity 0.3s ease;
  margin: 0 10px;
  font-size: 0;
  line-height: 0;
}
.fv_slider .slick-slide > div {
  font-size: 0;
  line-height: 0;
}
.fv_slider .slick-slide.slick-center {
  opacity: 1;
}
.fv_slider .slick-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  background: rgba(255, 255, 255, 0.85);
  border: 2px solid #003379;
  color: #003379;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  cursor: pointer;
  transition: all 0.3s ease;
  font-size: 1.25rem;
  display: flex !important;
  align-items: center;
  justify-content: center;
  line-height: 1;
  /* slick-themeデフォルトの矢印「←」「→」を非表示 */
}
.fv_slider .slick-arrow::before {
  content: none !important;
  display: none !important;
}
.fv_slider .slick-arrow:hover {
  background: #003379;
  color: #FFFFFF;
}
.fv_slider .slick-arrow.slick-prev {
  left: 30px;
}
.fv_slider .slick-arrow.slick-next {
  right: 30px;
}
.fv_slider .slick-dots {
  position: absolute;
  bottom: 30px;
  left: 0;
  width: 100%;
  display: flex !important;
  justify-content: center;
  align-items: center;
  gap: 12px;
  z-index: 10;
  list-style: none;
  padding: 0;
  margin: 0;
}
.fv_slider .slick-dots li {
  margin: 0;
  padding: 0;
}
.fv_slider .slick-dots li button {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #FFFFFF;
  border: 2px solid #003379;
  cursor: pointer;
  transition: all 0.3s ease;
  font-size: 0;
  padding: 0;
  line-height: 0;
  color: transparent;
  /* slick-themeデフォルトの「•」黒ドットを非表示 */
}
.fv_slider .slick-dots li button::before {
  content: none !important;
  display: none !important;
}
.fv_slider .slick-dots li button:hover {
  background: #E8F0F9;
}
.fv_slider .slick-dots li.slick-active button {
  background: #003379;
  border-color: #003379;
}

@media only screen and (max-width: 800px) {
  .fv_sec {
    margin-top: 0; /* JS制御に統一 */
  }
  .fv_slide {
    height: auto; /* 画像は16:9。固定高(300px)だと下に余白ができドットが画像下にずれるため画像に追従 */
  }
  .fv_slide .fv_content .fv_title {
    font-size: 1.625rem;
    margin-bottom: 12px;
  }
  .fv_slide .fv_content .fv_subtitle {
    font-size: 0.9375rem;
    margin-bottom: 10px;
  }
  .fv_slide .fv_content .fv_text {
    font-size: 0.8125rem;
    max-width: 90%;
  }
  .fv_slider .slick-arrow {
    width: 40px;
    height: 40px;
    font-size: 1rem;
  }
  .fv_slider .slick-arrow.slick-prev {
    left: 10px;
  }
  .fv_slider .slick-arrow.slick-next {
    right: 10px;
  }
  .fv_slider .slick-dots {
    bottom: 20px;
    gap: 8px;
  }
  .fv_slider .slick-dots li button {
    width: 10px;
    height: 10px;
  }
}
/*---------------------------------------------
セミナー紹介セクション - 行政風シンプルデザイン
（2026-05-27会議で「お知らせ」→「セミナー紹介」に役割変更）
----------------------------------------------*/
/* セミナー紹介セクション（旧リスト型） */
.seminar_sec {
  padding: 60px 0;
  background: #FFFFFF;
}

.seminar_box {
  width: 100%;
  margin: auto;
  text-align: center;
}
.seminar_box .seminar_en {
  font-weight: 700;
  font-size: 1.75rem;
  color: #1A1A1A;
  margin-bottom: 10px;
  border-bottom: 4px solid #003379;
  display: inline-block;
  padding-bottom: 10px;
  letter-spacing: 0.05em;
}
.seminar_box .seminar_ja {
  display: block;
  font-size: 0.875rem;
  color: #4D4D4D;
  margin-top: 8px;
  margin-bottom: 32px;
}

/* トップのセミナー紹介：お知らせ風コンパクト一覧（角丸ボックス枠／日程・形式・タイトルのみ） */
.seminar_sec .seminar_list {
  list-style: none;
  padding: 0;
  margin: 0 auto 28px;
  max-width: 760px;
  text-align: left;
}
.seminar_sec .seminar_item {
  border-bottom: 1px solid #E5E5E5;
  transition: opacity 0.2s ease;
}
.seminar_sec .seminar_item:last-child {
  border-bottom: none;
}
.seminar_sec .seminar_item:hover {
  opacity: 0.7;
}
.seminar_sec .seminar_item:hover .seminar_item_title {
  text-decoration: underline;
  text-underline-offset: 3px;
}
.seminar_sec .seminar_item.is-past {
  opacity: 0.55;
  filter: grayscale(0.4);
}
.seminar_sec .seminar_item.is-past:hover {
  opacity: 0.55;
}
.seminar_sec .seminar_item.is-past:hover .seminar_item_title {
  text-decoration: none;
}
.seminar_sec .seminar_item_link {
  display: block;
  padding: 26px 8px;
  text-decoration: none;
  color: #1A1A1A;
}
.seminar_sec .seminar_item_meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 12px;
  margin-bottom: 5px;
  font-size: 0.75rem;
  color: #4D4D4D;
}
.seminar_sec .seminar_item_meta i {
  margin-right: 4px;
}
.seminar_sec .seminar_item_meta .seminar_meta_date {
  font-weight: 700;
  color: #1A1A1A;
}
.seminar_sec .seminar_item_meta .seminar_meta_format {
  display: inline-flex;
  align-items: center;
  padding: 2px 10px;
  border-radius: 999px;
  font-size: 0.6875rem;
  font-weight: 700;
  background: #F5F5F5;
  color: #1A1A1A;
}
.seminar_sec .seminar_item_meta .seminar_meta_format.is-online {
  background: #E8F0F9;
  color: #003379;
}
.seminar_sec .seminar_item_meta .seminar_meta_format.is-onsite {
  background: #FFF4E1;
  color: #8B6F00;
}
.seminar_sec .seminar_item_meta .seminar_meta_format.is-hybrid {
  background: #EDE7F6;
  color: #4A148C;
}
.seminar_sec .seminar_item_title {
  font-size: 1rem;
  font-weight: 700;
  color: #1A1A1A;
  line-height: 1.5;
  margin: 0;
}
.seminar_sec .seminar_more {
  max-width: 760px;
  margin: 0 auto;
  text-align: right;
}
.seminar_sec .seminar_more a {
  font-size: 0.875rem;
  color: #003379;
  text-decoration: none;
  font-weight: 600;
}
.seminar_sec .seminar_more a:hover {
  text-decoration: underline;
}
.seminar_sec .seminar_empty {
  text-align: center;
  padding: 40px 0;
  color: #4D4D4D;
}

@media only screen and (max-width: 800px) {
  .seminar_sec {
    padding: 40px 0;
  }
  .seminar_sec .seminar_box .seminar_en {
    font-size: 1.375rem;
  }
  .seminar_sec .seminar_item_link {
    padding: 20px 6px;
  }
}
.news_sec {
  padding: 60px 0;
  background: #F5F5F5;
  border-top: 1px solid #CCCCCC;
}

.news_box {
  width: 100%;
  margin: auto;
  background: transparent;
  border: none;
  padding: 0;
  box-shadow: none;
}

.news_box_in {
  background: #FFFFFF;
  border-radius: 0;
  padding: 8px 32px 24px;
}

.news_line {
  display: flex;
  align-items: center;
  padding: 20px 0;
  border-bottom: 1px solid #CCCCCC;
  transition: background-color 0.3s ease;
  gap: 20px;
}
.news_line:hover {
  background-color: #E8F0F9;
}
.news_line:last-child {
  border-bottom: none;
}
.news_line .day {
  font-size: 0.875rem;
  color: #4D4D4D;
  font-weight: 700;
  min-width: 100px;
  flex-shrink: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  letter-spacing: 0.05em;
}
.news_line .cat {
  flex-shrink: 0;
}
.news_line .cat a {
  display: inline-block;
  font-size: 0.75rem;
  padding: 6px 14px;
  background: #003379;
  color: #FFFFFF;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-decoration: none;
  transition: background-color 0.3s ease;
  border-radius: 2px;
}
.news_line .cat a:hover {
  background: #0066CC;
  text-decoration: none;
}
.news_line .title {
  flex: 1;
  font-size: 1rem;
  font-weight: 700;
  color: #1A1A1A;
  text-decoration: none;
  line-height: 1.6;
  transition: color 0.3s ease;
}
.news_line .title:hover {
  color: #003379;
  text-decoration: none;
}

/* お知らせタブ */
.news_tabs {
  display: flex;
  list-style: none;
  padding: 0;
  margin: 0;
  gap: 4px;
  border-bottom: 2px solid #003379;
}
.news_tabs li {
  margin: 0;
  padding: 0;
}
.news_tabs .news_tab_btn {
  appearance: none;
  border: 1px solid #CCCCCC;
  border-bottom: none;
  background: #F5F5F5;
  color: #1A1A1A;
  font-size: 0.9375rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  padding: 12px 24px;
  cursor: pointer;
  transition: all 0.2s ease;
  border-radius: 4px 4px 0 0;
  line-height: 1.4;
}
.news_tabs .news_tab_btn:hover {
  background: #E8F0F9;
  color: #003379;
}
.news_tabs .news_tab_btn.is-active {
  background: #003379;
  color: #FFFFFF;
  border-color: #003379;
  cursor: default;
}
.news_tabs .news_tab_btn:focus-visible {
  outline: 2px solid #0066CC;
  outline-offset: 2px;
}

.news_tab_panel {
  display: none;
}
.news_tab_panel.is-active {
  display: block;
}

.news_empty {
  text-align: center;
  padding: 40px 0;
  color: #4D4D4D;
  font-size: 0.9375rem;
}

.news_more {
  text-align: right;
  margin: 16px 0 0;
}
.news_more a {
  font-size: 0.875rem;
  color: #0066CC;
  text-decoration: underline;
  font-weight: 700;
  letter-spacing: 0.03em;
}
.news_more a:hover {
  color: #003379;
}

/* レスポンシブ対応 */
@media only screen and (max-width: 800px) {
  .news_sec {
    padding: 40px 0;
  }
  .news_box {
    padding: 0;
  }
  .news_box_in {
    padding: 4px 16px 20px;
  }
  .news_tabs {
    gap: 2px;
    overflow-x: auto;
    flex-wrap: nowrap;
    -webkit-overflow-scrolling: touch;
  }
  .news_tabs .news_tab_btn {
    flex-shrink: 0;
    font-size: 0.8125rem;
    padding: 10px 14px;
  }
  .news_line {
    flex-direction: column;
    align-items: flex-start;
    padding: 15px 0;
    gap: 10px;
  }
  .news_line .day {
    min-width: auto;
    font-size: 0.8125rem;
  }
  .news_line .cat a {
    font-size: 0.6875rem;
    padding: 5px 12px;
  }
  .news_line .title {
    font-size: 0.9375rem;
  }
}
/*---------------------------------------------
programs_sec - 3列カードレイアウト（行政風シンプルデザイン）
----------------------------------------------*/
.programs_sec {
  padding: 60px 0;
  margin-bottom: 0;
  background: #FFFFFF;
}

.programs_box {
  width: 100%;
  margin: auto;
  background: #FFFFFF;
  border-radius: 0;
  padding: 0;
}
.programs_box .programs_en {
  font-weight: 700;
  text-align: center;
  font-size: 1.75rem;
  color: #1A1A1A;
  margin-bottom: 10px;
  border-bottom: 4px solid #003379;
  display: inline-block;
  padding-bottom: 10px;
  letter-spacing: 0.05em;
}
.programs_box .programs_ja {
  display: block;
  text-align: center;
  font-size: 0.875rem;
  color: #4D4D4D;
  margin-top: 8px;
  margin-bottom: 40px;
}

.programs_grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  width: 100%;
  margin: 30px auto 0;
}

.program_card {
  background: #FFFFFF;
  border: 1px solid #CCCCCC;
  border-radius: 0;
  overflow: hidden;
  transition: border-color 0.3s ease;
  cursor: pointer;
}
.program_card:hover {
  border-color: #003379;
}
.program_card a {
  display: block;
  text-decoration: none;
  color: #1A1A1A;
}
.program_card a:hover {
  text-decoration: none;
}
.program_card .card_image {
  width: 100%;
  aspect-ratio: 2240/1260;
  overflow: hidden;
  background: #F5F5F5;
  position: relative;
}
.program_card .card_image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.program_card .card_date {
  font-size: 0.75rem;
  color: #4D4D4D;
  padding: 10px 14px;
  border-top: 3px solid #003379;
  background: #FFFFFF;
}

/* レスポンシブ対応 */
@media only screen and (max-width: 1024px) {
  .programs_grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }
}
@media only screen and (max-width: 800px) {
  .programs_sec {
    padding: 40px 0 40px 0;
    margin-bottom: 40px;
  }
  .programs_box {
    width: 100%;
    margin: auto;
  }
  .programs_box .programs_en {
    font-size: 1.375rem;
    padding-bottom: 8px;
  }
  .programs_grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .program_card .card_date {
    font-size: 0.6875rem;
    padding: 8px 12px;
  }
}
/*---------------------------------------------
資料ダウンロードセクション
----------------------------------------------*/
.download_sec {
  padding: 60px 0;
  background: #FFFFFF;
  border-top: 1px solid #CCCCCC;
}

.download_box {
  width: 100%;
  margin: auto;
  text-align: center;
}
.download_box .download_en {
  font-weight: 700;
  font-size: 1.75rem;
  color: #1A1A1A;
  margin-bottom: 10px;
  border-bottom: 4px solid #003379;
  display: inline-block;
  padding-bottom: 10px;
  letter-spacing: 0.05em;
}
.download_box .download_ja {
  display: block;
  font-size: 0.875rem;
  color: #4D4D4D;
  margin-top: 8px;
  margin-bottom: 40px;
}

.download_grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  width: 100%;
  margin: 30px auto 0;
}

.download_card {
  background: #FFFFFF;
  border: 1px solid #CCCCCC;
  transition: border-color 0.3s ease;
}
.download_card:hover {
  border-color: #003379;
}
.download_card a {
  display: block;
  text-decoration: none;
  color: #1A1A1A;
}
.download_card .download_card_image {
  width: 100%;
  aspect-ratio: 16/9;
  overflow: hidden;
  background: #F5F5F5;
  display: flex;
  align-items: center;
  justify-content: center;
}
.download_card .download_card_image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.download_card .download_card_image .download_card_placeholder {
  font-size: 0.8125rem;
  color: #4D4D4D;
  letter-spacing: 0.1em;
}
.download_card .download_card_title {
  font-size: 0.8125rem;
  line-height: 1.5;
  color: #1A1A1A;
  padding: 10px 12px;
  border-top: 3px solid #003379;
  background: #FFFFFF;
  text-align: left;
}

.download_empty {
  text-align: center;
  padding: 40px 0;
  color: #4D4D4D;
}

@media only screen and (max-width: 1024px) {
  .download_grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }
}
@media only screen and (max-width: 800px) {
  .download_sec {
    padding: 40px 0;
  }
  .download_box .download_en {
    font-size: 1.375rem;
    padding-bottom: 8px;
  }
  .download_box .download_ja {
    font-size: 0.8125rem;
    margin-bottom: 28px;
  }
  .download_grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
  }
  .download_card .download_card_title {
    font-size: 0.75rem;
    padding: 8px 10px;
  }
}
/*---------------------------------------------
メールマガジン登録セクション
----------------------------------------------*/
.mailmag_sec {
  padding: 60px 0;
  background: #FFFFFF;
  border-top: 1px solid #E5E5E5;
}

.mailmag_box {
  width: 100%;
  max-width: 1040px;
  margin: 0 auto;
  box-sizing: border-box; /* width:100%+padding+borderが親(90%)を超えてSPで横はみ出すのを防ぐ */
  background: #FFFFFF;
  border: 2px solid #003379;
  padding: 40px;
  text-align: center;
}
.mailmag_box .mailmag_en {
  font-weight: 700;
  font-size: 1.5rem;
  color: #1A1A1A;
  margin-bottom: 8px;
  border-bottom: 4px solid #003379;
  display: inline-block;
  padding-bottom: 10px;
  letter-spacing: 0.05em;
}
.mailmag_box .mailmag_ja {
  display: block;
  font-size: 0.875rem;
  color: #4D4D4D;
  margin-top: 8px;
  margin-bottom: 28px;
}

.mailmag_layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 36px;
  align-items: center;
  margin-top: 28px;
  text-align: left;
}

.mailmag_visual img {
  display: block;
  width: 100%;
  height: auto;
  border: 1px solid #E5E5E5;
}

.mailmag_formcol {
  align-self: center;
}

.mailmag_policy {
  margin: 10px 0 0;
  font-size: 0.8125rem;
}
.mailmag_policy a {
  color: #0066CC;
  text-decoration: underline;
}
.mailmag_policy a:hover {
  color: #003379;
}

.mailmag_more {
  margin: 6px 0 0;
}
.mailmag_more a {
  font-size: 0.875rem;
  color: #0066CC;
  text-decoration: underline;
}
.mailmag_more a:hover {
  color: #003379;
}

@media only screen and (max-width: 800px) {
  .mailmag_layout {
    grid-template-columns: 1fr;
    gap: 24px;
  }
}
/* 登録フォームは Contact Form 7（132）本体を置いている（2026-09-19）。
   4項目を2列に組んで、左の画像と釣り合う高さに収める。 */
.mailmag_cf7 {
  text-align: left;
}
.mailmag_cf7 .wpcf7-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 16px;
}
.mailmag_cf7 .wpcf7-form > p {
  margin: 0 0 14px 0;
  min-width: 0; /* 送信ボタンの文字幅で列を押し広げない */
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.6;
  color: #1A1A1A;
}
/* Zoom希望・同意・送信ボタン・送信結果は横幅いっぱいに置く */
.mailmag_cf7 .wpcf7-form > p:nth-of-type(n+5),
.mailmag_cf7 .wpcf7-response-output {
  grid-column: 1 / -1;
}
.mailmag_cf7 .wpcf7-form input[type=text],
.mailmag_cf7 .wpcf7-form input[type=email],
.mailmag_cf7 .wpcf7-form input[type=tel],
.mailmag_cf7 .wpcf7-form select {
  box-sizing: border-box;
  width: 100%;
  margin-top: 6px;
  padding: 10px 12px;
  border: 1px solid #CCCCCC;
  border-radius: 0;
  background: #FFFFFF;
  font-size: 0.9375rem;
  font-weight: 400;
  font-family: inherit;
  line-height: 1.6;
  color: #1A1A1A;
}
.mailmag_cf7 .wpcf7-form input[type=text]:focus,
.mailmag_cf7 .wpcf7-form input[type=email]:focus,
.mailmag_cf7 .wpcf7-form input[type=tel]:focus,
.mailmag_cf7 .wpcf7-form select:focus {
  outline: 2px solid #003379;
  outline-offset: -2px;
}
.mailmag_cf7 .wpcf7-form p.cf7-acceptance {
  font-size: 0.8125rem;
  font-weight: 400;
  color: #4D4D4D;
}
.mailmag_cf7 .wpcf7-form .wpcf7-acceptance label {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 0;
  font-weight: 400;
}
.mailmag_cf7 .wpcf7-form .wpcf7-acceptance input[type=checkbox] {
  margin-top: 3px;
}
.mailmag_cf7 .wpcf7-form p.cf7-acceptance a {
  color: #0066CC;
  text-decoration: underline;
}
.mailmag_cf7 .wpcf7-form p.cf7-acceptance a:hover {
  color: #003379;
}
/* 送信ボタンの行。インラインの行ボックス分の余白が下に残るので殺す */
.mailmag_cf7 .wpcf7-form > p:last-of-type {
  margin-bottom: 4px;
  line-height: 0;
}
.mailmag_cf7 .wpcf7-form input[type=submit] {
  box-sizing: border-box;
  width: 100%;
  padding: 14px 28px;
  background: #003379;
  color: #FFFFFF;
  border: 1px solid #003379;
  border-radius: 0;
  font-size: 0.9375rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  cursor: pointer;
  transition: background-color 0.3s ease;
}
.mailmag_cf7 .wpcf7-form input[type=submit]:hover {
  background: #0066CC;
  border-color: #0066CC;
}
.mailmag_cf7 .wpcf7-not-valid-tip {
  display: block;
  margin-top: 4px;
  font-size: 0.8125rem;
  font-weight: 400;
  color: #C0392B;
}
.mailmag_cf7 .wpcf7-response-output {
  margin: 4px 0 0;
  padding: 10px 12px;
  font-size: 0.8125rem;
  font-weight: 400;
  line-height: 1.7;
}
.mailmag_cf7 .wpcf7-spinner {
  margin: 0 0 0 8px;
}

@media only screen and (max-width: 800px) {
  .mailmag_sec {
    padding: 40px 0;
  }
  .mailmag_box {
    padding: 28px 20px;
  }
  .mailmag_box .mailmag_en {
    font-size: 1.25rem;
  }
  .mailmag_cf7 .wpcf7-form {
    grid-template-columns: 1fr;
  }
}
/* 送信ボタンの文言が長い。420px以下は余白を削らず文字サイズのほうで収める */
@media only screen and (max-width: 420px) {
  .mailmag_cf7 .wpcf7-form input[type=submit] {
    padding: 14px 16px;
    font-size: 0.8125rem;
    letter-spacing: 0;
  }
}

/*---------------------------------------------
関連事業・省庁リンクセクション
----------------------------------------------*/
.partners_sec {
  padding: 60px 0;
  background: #FFFFFF;
  border-top: 1px solid #CCCCCC;
}

.partners_box {
  width: 100%;
  margin: auto;
  text-align: center;
}
.partners_box .partners_en {
  font-weight: 700;
  font-size: 1.75rem;
  color: #1A1A1A;
  margin-bottom: 10px;
  border-bottom: 4px solid #003379;
  display: inline-block;
  padding-bottom: 10px;
  letter-spacing: 0.05em;
}
.partners_box .partners_ja {
  display: block;
  font-size: 0.875rem;
  color: #4D4D4D;
  margin-top: 8px;
  margin-bottom: 40px;
}

.partners_grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 16px;
  list-style: none;
  padding: 0;
  margin: 0 0 16px;
}

.partner_item {
  width: calc((100% - 48px) / 4);
}
.partner_item a {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 12px 8px;
  background: transparent;
  border: none;
  text-decoration: none;
  color: #1A1A1A;
  transition: color 0.2s ease;
  text-align: center;
}
.partner_item a:hover {
  color: #0066CC;
  text-decoration: none;
}
.partner_item a:hover .partner_logo_img {
  opacity: 0.75;
}
.partner_item a:hover .partner_name {
  text-decoration: underline;
}
.partner_item a:hover .partner_desc {
  color: #0066CC;
}
.partner_item .partner_logo_wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 44px;
  margin-bottom: 0;
}
.partner_item .partner_logo_img {
  max-height: 100%;
  max-width: 150px;
  width: auto;
  height: auto;
  object-fit: contain;
  transition: opacity 0.2s ease;
}
.partner_item .partner_name {
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.4;
}
.partner_item .partner_desc {
  font-size: 0.8125rem;
  color: #4D4D4D;
  line-height: 1.55;
  transition: color 0.2s ease;
}

.partners_caption {
  font-size: 0.75rem;
  color: #4D4D4D;
  text-align: center;
  margin: 0;
}

@media only screen and (max-width: 1024px) {
  .partner_item {
    width: calc((100% - 16px) / 2);
  }
}
@media only screen and (max-width: 800px) {
  .partners_sec {
    padding: 40px 0;
  }
  .partners_box .partners_en {
    font-size: 1.375rem;
    padding-bottom: 8px;
  }
  .partners_grid {
    gap: 12px;
  }
  .partner_item {
    width: calc((100% - 12px) / 2);
  }
  .partner_item a {
    padding: 4px 4px;
  }
  .partner_item .partner_name {
    font-size: 0.9375rem;
  }
  .partner_item .partner_desc {
    font-size: 0.75rem;
  }
}
/*---------------------------------------------
 セミナー紹介セクション（バナー大型カード／2026-05-27会議反映）
----------------------------------------------*/
.seminar_sec .seminar_cards {
  list-style: none;
  padding: 0;
  margin: 0 0 24px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.seminar_sec .seminar_card {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 0;
  background: #FFFFFF;
  border: 1px solid #D6D9E0;
  border-radius: 6px;
  overflow: hidden;
  text-align: left;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.seminar_sec .seminar_card:hover {
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  transform: translateY(-2px);
}
.seminar_sec .seminar_card.is-past {
  opacity: 0.85;
}
.seminar_sec .seminar_card_banner {
  display: block;
  width: 100%;
  aspect-ratio: 16/9;
  overflow: hidden;
  background: #F5F5F5;
}
.seminar_sec .seminar_card_banner img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.seminar_sec .seminar_card_banner:hover img {
  transform: scale(1.03);
}
.seminar_sec .seminar_card.is-past .seminar_card_banner img {
  filter: grayscale(40%);
}
.seminar_sec .seminar_card_body {
  padding: 24px 28px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  justify-content: center;
}
.seminar_sec .seminar_card_status {
  display: inline-block;
  align-self: flex-start;
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  padding: 5px 14px;
  border-radius: 2px;
  line-height: 1.4;
}
.seminar_sec .seminar_card_status.is-open {
  background: #003379;
  color: #FFFFFF;
}
.seminar_sec .seminar_card_status.is-past {
  background: #8a8a8a;
  color: #FFFFFF;
}
.seminar_sec .seminar_card_status.is-archive {
  background: #CC0000;
  color: #FFFFFF;
}
.seminar_sec .seminar_card_freespace {
  font-size: 0.875rem;
  color: #4D4D4D;
  margin: 0;
  line-height: 1.6;
  font-weight: 500;
}
.seminar_sec .seminar_card_title {
  font-size: 1.125rem;
  font-weight: 700;
  color: #1A1A1A;
  line-height: 1.5;
  margin: 0;
}
.seminar_sec .seminar_card_title a {
  color: inherit;
  text-decoration: none;
}
.seminar_sec .seminar_card_title a:hover {
  color: #003379;
}
.seminar_sec .seminar_card_cta {
  display: inline-block;
  align-self: flex-start;
  margin-top: 8px;
  font-size: 0.9375rem;
  font-weight: 700;
  padding: 12px 22px;
  border-radius: 3px;
  text-decoration: none;
  transition: background-color 0.2s ease, color 0.2s ease;
  line-height: 1.4;
}
.seminar_sec .seminar_card_cta.is-open {
  background: #CC0000;
  color: #FFFFFF;
  border: 1px solid #CC0000;
}
.seminar_sec .seminar_card_cta.is-open:hover {
  background: #A30000;
  border-color: #A30000;
  color: #FFFFFF;
  text-decoration: none;
}
.seminar_sec .seminar_card_cta.is-archive {
  background: #FFFFFF;
  color: #CC0000;
  border: 1px solid #CC0000;
}
.seminar_sec .seminar_card_cta.is-archive:hover {
  background: #FFF5F5;
  text-decoration: none;
}
.seminar_sec .seminar_card_cta.is-disabled {
  background: #E5E5E5;
  color: #8a8a8a;
  border: 1px solid #D6D9E0;
  cursor: not-allowed;
  pointer-events: none;
}

@media only screen and (max-width: 800px) {
  .seminar_sec .seminar_card {
    grid-template-columns: 1fr;
  }
  .seminar_sec .seminar_card_body {
    padding: 20px 18px;
  }
  .seminar_sec .seminar_card_title {
    font-size: 1.0625rem;
  }
  .seminar_sec .seminar_card_cta {
    align-self: stretch;
    text-align: center;
  }
}
/*---------------------------------------------
 コンサルタント紹介セクション（2026-05-27会議反映）
----------------------------------------------*/
.consultants_sec {
  padding: 80px 0;
  background: #FFFFFF;
}
.consultants_sec .sec_in {
  text-align: center;
}
.consultants_sec .consultants_en {
  font-weight: 700;
  font-size: 1.75rem;
  color: #1A1A1A;
  margin-bottom: 10px;
  border-bottom: 4px solid #003379;
  display: inline-block;
  padding-bottom: 10px;
  letter-spacing: 0.05em;
}
.consultants_sec .consultants_ja {
  display: block;
  font-size: 0.875rem;
  color: #4D4D4D;
  margin-top: 8px;
  margin-bottom: 48px;
}
.consultants_sec .consultant_list {
  list-style: none;
  padding: 0;
  margin: 0 0 56px;
  display: flex;
  flex-direction: column;
  gap: 48px;
  text-align: left;
}
.consultants_sec .consultant_item {
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: 40px;
  align-items: start;
}
.consultants_sec .consultant_body {
  order: 1;
}
.consultants_sec .consultant_photo {
  order: 2;
  width: 100%;
  aspect-ratio: 3/4;
  overflow: hidden;
  border-radius: 8px;
  background: #F5F5F5;
}
.consultants_sec .consultant_photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.consultants_sec .consultant_role {
  display: inline-block;
  font-size: 0.8125rem;
  font-weight: 700;
  color: #003379;
  letter-spacing: 0.05em;
  margin-bottom: 8px;
}
.consultants_sec .consultant_name {
  font-size: 1.5rem;
  font-weight: 700;
  color: #1A1A1A;
  line-height: 1.3;
  margin: 0 0 6px;
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 12px;
}
.consultants_sec .consultant_name_romaji {
  font-size: 0.9375rem;
  font-weight: 500;
  color: #057DBC;
  letter-spacing: 0.04em;
}
.consultants_sec .consultant_quals {
  list-style: none;
  padding: 0;
  margin: 14px 0 20px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.consultants_sec .consultant_quals li {
  background: #F2F8FC;
  color: #057DBC;
  border: 1px solid #CFE4F2;
  font-size: 0.8125rem;
  font-weight: 500;
  padding: 4px 10px;
  border-radius: 3px;
  line-height: 1.4;
}
.consultants_sec .consultant_profile {
  font-size: 0.9375rem;
  color: #1A1A1A;
  line-height: 1.85;
  margin: 0;
}
.consultants_sec .consultant_profile_label {
  display: block;
  font-size: 0.8125rem;
  color: #4D4D4D;
  font-weight: 700;
  margin-bottom: 6px;
  letter-spacing: 0.04em;
}
.consultants_sec .partner_consultants {
  margin-top: 56px;
  padding-top: 40px;
  border-top: 1px solid #E5E5E5;
}
.consultants_sec .partner_consultants_label {
  font-size: 1.125rem;
  font-weight: 700;
  color: #1A1A1A;
  margin: 0 0 24px;
  text-align: center;
  letter-spacing: 0.05em;
}
.consultants_sec .partner_consultants_slider .slick-slide {
  padding: 0 8px;
}
.consultants_sec .partner_consultant_img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 6px;
  background: #F5F5F5;
}

@media only screen and (max-width: 1024px) {
  .consultants_sec .consultant_item {
    grid-template-columns: 1fr 240px;
    gap: 32px;
  }
}
@media only screen and (max-width: 800px) {
  .consultants_sec {
    padding: 56px 0;
  }
  .consultants_sec .consultant_item {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .consultants_sec .consultant_photo {
    max-width: 260px;
    margin: 0 auto;
    order: 1;
  }
  .consultants_sec .consultant_body {
    order: 2;
  }
  .consultants_sec .consultant_name {
    font-size: 1.25rem;
  }
}
.grecaptcha-badge {
  visibility: hidden;
}

/*# sourceMappingURL=main.css.map */


/*---------------------------------------------
programs_sec 情報一覧 - テキスト＋アイコンの共有罫線グリッド
2026-08-18 改修：バナー画像カードから置き換え
  - 補助金名・補助率・上限額をHTMLテキストで持つ（画像依存ゼロ）
  - カードごとの色分けを廃止し #003379 の1色に統一
  - セル間は gap ではなく1本の共有罫線
旧 .program_card（画像カード）は .page_programs_archive で
引き続き使うため残置している
----------------------------------------------*/
.programs_grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  width: 100%;
  margin: 30px auto 0;
  border-top: 1px solid #E5E5E5;
  border-left: 1px solid #E5E5E5;
  background: #FFFFFF;
}

.program_cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 28px 16px 26px;
  border-right: 1px solid #E5E5E5;
  border-bottom: 1px solid #E5E5E5;
  color: #1A1A1A;
  text-decoration: none;
  transition: background-color 0.2s ease;
}
.program_cell:hover,
.program_cell:focus {
  background: #E8F0F9;
  color: #1A1A1A;
  text-decoration: none;
}
.program_cell:focus-visible {
  outline: 3px solid #003379;
  outline-offset: -3px;
}

.program_cell .cell_icon {
  display: block;
  margin-bottom: 14px;
  color: #003379;
  line-height: 1;
}
.program_cell .cell_svg {
  display: block;
  width: 44px;
  height: 44px;
}

.program_cell .cell_name {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 4.5em;
  margin-bottom: 8px;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.5;
  color: #1A1A1A;
}

.program_cell .cell_num {
  display: block;
  font-size: 0.8125rem;
  line-height: 1.6;
  color: #4D4D4D;
}
.program_cell .cell_sep {
  margin: 0 0.5em;
  color: #CCCCCC;
}
.program_cell .cell_num--none {
  color: #888888;
}

@media only screen and (max-width: 1024px) {
  .programs_grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media only screen and (max-width: 800px) {
  .programs_grid {
    grid-template-columns: 1fr;
  }
  .program_cell {
    padding: 22px 16px 20px;
  }
  .program_cell .cell_name {
    min-height: 0;
    margin-bottom: 6px;
  }
}

/* === programs 詳細ページ 追加分 2026-08-22 === */
/* 目次 */
.program_intro {
  margin: 0 0 64px;
}
.program_intro > * + * {
  margin-top: 24px;
}
.programs_main .program_intro + h2 {
  margin-top: 0;
}

.program_toc {
  box-sizing: border-box;
  padding: 26px 30px;
  background: #FFFFFF;
  border: 1px solid #E5E5E5;
}

.program_toc_title {
  margin: 0 0 18px;
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: #003379;
}

.program_toc ol {
  margin: 0;
  padding: 0;
  list-style: none;
  columns: 2;
  column-gap: 36px;
  counter-reset: program_toc;
}

.program_toc li {
  margin: 0 0 11px;
  padding: 0;
  font-size: 0.875rem;
  line-height: 1.6;
  break-inside: avoid;
  counter-increment: program_toc;
}

.program_toc li a {
  color: #1A1A1A;
  text-decoration: none;
}

.program_toc li a::before {
  content: counter(program_toc) ".";
  margin-right: 8px;
  color: #003379;
  font-weight: 700;
}

.program_toc li a:hover {
  color: #003379;
  text-decoration: underline;
}

@media (max-width: 800px) {
  .program_toc {
    padding: 20px 22px;
  }
  .program_toc ol {
    columns: 1;
  }
}

/* ウェビナーの導線。要素の並びは ykfc.tokyo の補助金ページと同じ
   （見出し → ダイジェスト動画 → アーカイブ視聴の申込ボタン → 補足）。
   本文に入る前の枠なので、動画を主役にせず左に小さく置き、右に申込導線を並べる。
   縦の占有を抑えて、本文へのスクロール距離を短くしている。
   枠の上下左右にアクセント線は入れない（松尾指示・2026-08-22）。 */
.program_webinar {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap: 30px;
  align-items: center;
  box-sizing: border-box;
  padding: 26px 30px;
  background: #FFFFFF;
  border: 1px solid #E5E5E5;
}

.program_webinar--novideo {
  display: block;
  text-align: center;
}

.program_webinar_media {
  min-width: 0;
}

.program_webinar_body {
  min-width: 0;
}

.program_webinar_label {
  margin: 0 0 8px;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: #003379;
}

.program_webinar_title {
  margin: 0 0 16px;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.6;
  color: #1A1A1A;
}

.program_webinar_lead {
  margin: 0 0 10px;
  font-size: 0.8125rem;
  color: #4D4D4D;
}

.program_webinar_cta {
  margin: 0 0 10px;
}

.btn-webinar {
  box-sizing: border-box;
  display: inline-block;
  padding: 14px 20px;
  background: #003379;
  color: #FFFFFF;
  font-size: 0.9375rem;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  text-decoration: none;
  transition: background-color 0.2s ease;
}

.btn-webinar:hover,
.btn-webinar:focus {
  background: #00265C;
  color: #FFFFFF;
  text-decoration: none;
}

.program_webinar_cta .btn-webinar {
  display: block;
  width: 100%;
}

.program_webinar .program_note {
  margin: 0;
  font-size: 0.75rem;
  line-height: 1.75;
}

.program_webinar--novideo .program_webinar_cta .btn-webinar {
  display: inline-block;
  width: auto;
  min-width: 360px;
  max-width: 100%;
}

@media only screen and (max-width: 900px) {
  .program_webinar {
    display: block;
    padding: 20px 22px;
  }
  .program_webinar_media {
    margin-bottom: 18px;
  }
  .program_webinar--novideo .program_webinar_cta .btn-webinar {
    display: block;
    width: 100%;
    min-width: 0;
  }
}

/* セミナー動画 */
.program_video {
  box-sizing: border-box;
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: #F5F5F5;
  border: 1px solid #E5E5E5;
}

.program_video iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

.program_video_block .program_note {
  margin-top: 12px;
}

/* 関連制度・サービス一覧（トップページ）
   セルは補助金情報一覧と同じ .programs_grid / .program_cell を使う。
   補助率・上限額のかわりに1行の説明を出す。 */
.services_sec {
  padding-top: 120px;
  padding-bottom: 120px;
  background: #FFFFFF;
  border-top: 1px solid #E5E5E5;
}

.program_cell .cell_num--lead {
  color: #4D4D4D;
}

@media only screen and (max-width: 800px) {
  .services_sec {
    padding-top: 72px;
    padding-bottom: 72px;
  }
}

/* 本文に埋め込むツール（節税シミュレーター）
   高さは埋め込み側から postMessage で受け取って調整する
   （include/cpt-services.php）。届かない場合の保険として最低高さを持たせる。 */
.program_embed {
  box-sizing: border-box;
  width: 100%;
  margin: 0;
  border: 1px solid #E5E5E5;
  background: #FFFFFF;
}

.program_embed iframe {
  display: block;
  width: 100%;
  height: 1400px;
  min-height: 480px;
  border: 0;
}

@media only screen and (max-width: 800px) {
  .program_embed iframe {
    height: 1800px;
  }
}

/* セクション見出しが左に寄っていた。
   .programs_box は text-align を持たず、見出しが inline-block のため、
   資料ダウンロード・アップデート便（親が中央寄せ）と揃っていなかった。
   下線を文字幅に合わせたままで中央に置く。 */
.programs_box .programs_en {
  display: table;
  margin-left: auto;
  margin-right: auto;
}

/* 一覧グリッド：長い英数字や URL が入っても列が広がらないようにする */
.programs_grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.program_cell {
  min-width: 0;
}

.program_cell .cell_name,
.program_cell .cell_num {
  overflow-wrap: anywhere;
}

@media only screen and (max-width: 1024px) {
  .programs_grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media only screen and (max-width: 800px) {
  .programs_grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* 目次から飛んだ見出しが固定ヘッダーの裏に隠れないようにする */
.program_body h2[id],
.program_body h3[id] {
  scroll-margin-top: 130px;
}

/* 実務メモの顔写真：枠線が外寸に足されて64pxが68pxになっていた */
.implementation-note__avatar {
  box-sizing: border-box;
}

/* 「公式情報を見る」ボタンに実体が無く、ただのテキストリンクになっていた */
.program_official_cta {
  margin: 40px 0 0;
}

.program_official_cta .btn-outline {
  box-sizing: border-box;
  display: inline-block;
  padding: 13px 28px;
  background: #FFFFFF;
  border: 1px solid #003379;
  color: #003379;
  font-size: 0.9375rem;
  font-weight: 700;
  line-height: 1.5;
  text-decoration: none;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.program_official_cta .btn-outline:hover,
.program_official_cta .btn-outline:focus {
  background: #003379;
  color: #FFFFFF;
  text-decoration: none;
}

/* 基本情報テーブルの横溢れを止める。
   共通CSSが狭い画面で th/td に display:block + width:100% + 左右padding 20px を当てており、
   box-sizing が content-box のままなので、セルがテーブルより42px広くなって
   ページ全体に横スクロールが出ていた（全補助金ページ・全サービスページで発生）。 */
.page_single_program .program_info_table th,
.page_single_program .program_info_table td {
  box-sizing: border-box;
}

/* 狭い画面で見出しが数px外にはみ出していた。
   原因は末尾の字間（letter-spacing 0.01em）が最後の1文字のうしろにも入るため。
   例「採択後の全体フロー（重要）」で4px。狭い画面では字間を切って、
   長い英数字が来たときのために折り返しも許可する。 */
@media only screen and (max-width: 800px) {
  .program_body h2,
  .program_body h3,
  .program_body h4 {
    letter-spacing: normal;
    overflow-wrap: anywhere;
  }
}

/* 本文の表：○・−などの記号を入れる列 */
.program_body .program_table .ctr {
  width: 100px;
  text-align: center;
}

.program_body .program_table .yes {
  color: #003379;
  font-weight: 700;
}

.program_body .program_table .no,
.program_body .program_table .na {
  color: #8A8A8A;
}

/* 狭い画面では表を1行のまま横スクロールさせず折り返す。
   共通CSSが .program_table に white-space: nowrap を当てているが、
   130字級のセルがあると横スクロールが極端に長くなるため本文内だけ戻す。 */
@media only screen and (max-width: 800px) {
  .program_body .program_table {
    white-space: normal;
  }
  .program_body .program_table th,
  .program_body .program_table td {
    min-width: 7em;
  }
  .program_body .program_table .ctr {
    width: auto;
    min-width: 0;
  }
}

/* 本文中のCTA（原稿の .sim-cta / .svc-cta 由来）と、末尾の連絡先ブロック。
   囲みは薄いグレーの面と1pxの枠だけで、アクセント線は使わない。 */
.program_body .program_cta,
.program_body .program_quote {
  box-sizing: border-box;
  margin: 32px 0;
  padding: 24px 28px;
  background: #F5F5F5;
  border: 1px solid #E5E5E5;
}

.program_cta_title {
  margin: 0 0 10px;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.6;
  color: #1A1A1A;
}

.program_body .program_cta p {
  margin: 0 0 12px;
  font-size: 0.9375rem;
  line-height: 1.85;
}

.program_body .program_cta_action {
  margin: 18px 0 0;
}

.program_cta_action .btn-webinar {
  min-width: 340px;
  max-width: 100%;
}

.program_body .program_quote {
  font-size: 0.9375rem;
}

.program_body .program_quote p {
  margin: 0 0 6px;
}

.program_body .program_quote p:last-child {
  margin-bottom: 0;
}

@media only screen and (max-width: 800px) {
  .program_body .program_cta,
  .program_body .program_quote {
    padding: 20px 22px;
  }
  .program_cta_action .btn-webinar {
    display: block;
    min-width: 0;
    width: 100%;
  }
}

/* 実務メモの顔写真。写真の指定は管理画面「補助金の種類 ＞ 実務メモの顔写真」から。
   そこで選んだ写真が --impl-note-avatar として wp_head に出る
   （include/impl-note-avatar.php）。未設定のあいだは下の既定画像が出る。
   本文の吹き出しに直接 img を書いた場合はそちらが優先される。 */
.implementation-note__avatar {
  background-image: var(--impl-note-avatar, url("../images/professional/kawamura-v2.jpg"));
  background-size: cover;
  background-position: center top;
}

.implementation-note__avatar:has(img),
.implementation-note__avatar:has(i) {
  background-image: none;
}

/* === パートナー募集ページ（/partner とその子ページ）2026-08-23 ===
   本文で使う部品は既にこのテーマに実在するが、
   .page_flow（STEP）と .page_single_program（注記）の中にだけ閉じ込められている。
   固定ページの本文でも同じ見た目になるよう、セレクタを .program_body で1本増やす。
   値は既存の定義をそのまま持ってきており、新しいトンマナは足していない。
   枠のアクセント線は入れない（松尾指示・2026-08-22）。 */
.page_partner .program_body .flow_steps {
  list-style: none;
  margin: 0;
  padding: 0;
}

.page_partner .program_body .flow_step {
  display: grid;
  grid-template-columns: 88px 1fr;
  gap: 24px;
  padding: 28px 0;
  border-bottom: 1px solid #E5E5E5;
}

.page_partner .program_body .flow_step:first-child {
  border-top: 1px solid #E5E5E5;
}

.page_partner .program_body .flow_step_num {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  color: #003379;
}

.page_partner .program_body .flow_step_num_label {
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.14em;
}

.page_partner .program_body .flow_step_num_value {
  font-size: 2rem;
  font-weight: 900;
  line-height: 1.1;
}

/* 共通CSSが .entry-content h3 に下線と余白を !important で当てているため、
   STEP の見出しだけは同じ強さで打ち消す（/flow のSTEPと同じ見た目に揃える）。 */
.page_partner .program_body .flow_step_title {
  margin: 0 0 10px !important;
  padding: 0 !important;
  border: 0 !important;
  font-size: 1.125rem;
  font-weight: 700;
}

.page_partner .program_body .flow_step_body p {
  margin: 0 0 8px;
}

.page_partner .program_body .flow_step_body p:last-child {
  margin-bottom: 0;
}

@media only screen and (max-width: 800px) {
  .page_partner .program_body .flow_step {
    grid-template-columns: 60px 1fr;
    gap: 16px;
    padding: 22px 0;
  }
  .page_partner .program_body .flow_step_num_value {
    font-size: 1.5rem;
  }
}

/* 支援実績の数字ブロック。/cases/ と同じ部品だが、
   本文の中では帯にせず、余白だけで前後と切る。 */
.page_partner .program_body .case_stats_sec {
  padding: 8px 0 0;
  margin: 0 0 32px;
  background: transparent;
}

.page_partner .program_body .case_stats_sec .case_stats_item {
  border-radius: 0;
  padding: 32px 18px 34px;
}

.page_partner .program_body .case_stats_sec .case_stats_value {
  font-size: clamp(2.25rem, 4.5vw, 3.25rem);
}

/* === お客様の声（case CPT）2026-08-24 ===
   ykfc.tokyo から37件を移した。向こうのカード画像は会社ロゴと現場写真が混在していて、
   ロゴをそのまま出すと、一覧では四隅が切れ、詳細ページでは画面いっぱいの大きさになる。
   データは原本どおりのまま、出し方だけ整える。 */

/* 一覧のサムネは normalize_thumbs.py で 4:3・同じ収まりに揃えてある。
   枠と同じ比率なので、そのまま敷けば全部同じ大きさで並ぶ。 */
.case_item_photo img {
  object-fit: cover;
  background: #FFFFFF;
}

/* === セミナー一覧の絞り込み（開催予定 / 過去開催）2026-08-24 ===
   部品は「お客様の声」と同じ .case_filter_* を使うが、既存のCSSは
   .case_archive_sec の中にしか無い。セミナー一覧（.seminar_archive_sec）でも
   同じ見た目になるようにセレクタを足す。値は既存の定義と同じ。
   .case_archive_sec を要素に付け足す手も取れるが、セクションの上余白が
   60px から 80px に変わってしまうため、こちらで揃える。 */
.seminar_archive_sec .case_filters {
  margin-bottom: 40px;
  padding-bottom: 32px;
  border-bottom: 1px solid #E5E5E5;
}

.seminar_archive_sec .case_filter_group {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
}

.seminar_archive_sec .case_filter_label {
  flex-shrink: 0;
  font-weight: 700;
  color: #1A1A1A;
  font-size: 0.9375rem;
}

.seminar_archive_sec .case_filter_list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.seminar_archive_sec .case_filter_list li {
  margin: 0;
  padding: 0;
  list-style: none;
}

.seminar_archive_sec .case_filter_btn {
  background: #FFFFFF;
  border: 1px solid #E5E5E5;
  color: #1A1A1A;
  padding: 6px 16px;
  border-radius: 999px;
  font-size: 0.875rem;
  cursor: pointer;
  transition: all 0.2s ease;
}

.seminar_archive_sec .case_filter_btn:hover {
  border-color: #003379;
  color: #003379;
}

.seminar_archive_sec .case_filter_btn.is-active {
  background: #003379;
  color: #FFFFFF;
  border-color: #003379;
}

/* 該当0件のものは押せないことを見た目でも示す */
.seminar_archive_sec .case_filter_btn:disabled {
  color: #AAAAAA;
  border-color: #EEEEEE;
  cursor: default;
}

.seminar_archive_sec .case_filter_btn:disabled:hover {
  border-color: #EEEEEE;
  color: #AAAAAA;
}

/* 切り替えで隠れた側は完全に消す（hidden 属性が display:flex 等に負けないように） */
.seminar_archive_sec .seminar_group[hidden] {
  display: none;
}

/* 本文に差し込む写真（ykfc.tokyo の記事と同じ位置に入れている） */
.case_body .case_body_figure {
  margin: 28px 0;
  text-align: center;
}

.case_body .case_body_figure img {
  max-width: 100%;
  height: auto;
  display: inline-block;
}

/* 写真の無い事例（アステリズム合同会社様・株式会社アクシス様）は、
   写真の枠ごと出さずに本文を全幅で使う。 */
.case_item--nophoto .case_item_link {
  grid-template-columns: 1fr;
}

/* 長い社名（interdisciplinary design lab.様 など）が幅800px前後で3pxはみ出す。
   英数字の切れ目が無いため折り返せていない。 */
.case_item_title,
.case_item_client,
.case_item_summary {
  overflow-wrap: anywhere;
}

/* 詳細：高さで頭打ちにして中央に置く。
   横長の写真はこれまでどおり幅いっぱいまで伸びる。 */
.page_single_case .case_hero_photo {
  display: flex;
  justify-content: center;
  background: #FFFFFF;
}

.page_single_case .case_hero_photo img {
  width: auto;
  max-width: 100%;
  max-height: 360px;
  height: auto;
}

@media only screen and (max-width: 800px) {
  .page_single_case .case_hero_photo img {
    max-height: 240px;
  }
}

/* ------------------------------------------------------------------
   /support/ ・/download/ 個別ページの本文（2026-08-26）
   本文は .cta_body。補助金詳細（.program_body）と同じ語彙を使えるよう、
   見出し・テーブル・注記の3つだけ、この幅に合わせて足す。
   ------------------------------------------------------------------ */
.page_cta .cta_body h2 {
  margin: 56px 0 20px;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.01em;
  color: #1A1A1A;
}

.page_cta .cta_body h2:first-child {
  margin-top: 0;
}

.page_cta .cta_body h3 {
  margin: 32px 0 12px;
  font-size: 1.0625rem;
  font-weight: 700;
  line-height: 1.5;
  color: #1A1A1A;
  padding-bottom: 0 !important;
  border-bottom: none !important;
}

.page_cta .cta_body .program_note {
  box-sizing: border-box;
  margin: 24px 0 0;
  padding: 16px 18px;
  background: #F7F8FA;
  border: 1px solid #E5E5E5;
  font-size: 0.875rem;
  line-height: 1.9;
  color: #4D4D4D;
}

.page_cta .cta_body .program_note p {
  margin: 0;
}

.page_cta .cta_body .program_note p + p {
  margin-top: 8px;
}

.page_cta .cta_body .program_quote {
  box-sizing: border-box;
  margin: 24px 0;
  padding: 18px 20px;
  background: #FFFFFF;
  border: 1px solid #E5E5E5;
}

.page_cta .cta_body .program_quote p {
  margin: 0;
}

.page_cta .cta_body .program_quote p + p {
  margin-top: 8px;
}

/* このテーマは th/td に box-sizing を持たない。本文テーブルは幅を持たせず、
   はみ出す場合だけ横スクロールさせる（既存の .program_table と同じ扱い）。 */
.page_cta .cta_body .program_table {
  margin: 20px 0 0;
}

/* 外部（HubSpot）の申込ページでアーカイブ配信を受けている回の導線。
   このテーマは a に box-sizing を持たないので、ここで明示する。 */
.page_cta .cta_form_archive_link {
  display: block;
  box-sizing: border-box;
  width: 100%;
  padding: 14px 18px;
  background: #2E7D32;
  color: #FFFFFF;
  font-size: 0.9375rem;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  text-decoration: none;
}

.page_cta .cta_form_archive_link:hover {
  background: #256428;
  color: #FFFFFF;
}

/* 900px以下で2カラムが縦積みになるとき、右カラムだけ width:100% が当たっていて
   左カラムは中身の最大幅まで広がる。中に横スクロールするテーブルを置くと
   ページ全体が横に伸びてしまうので、左カラムにも幅を与える。 */
@media only screen and (max-width: 900px) {
  .page_cta .cta_left {
    width: 100%;
    min-width: 0;
  }
}

/* ------------------------------------------------------------------
   補助金情報一覧の空セル（2026-08-26）
   セルが1本の罫線を共有する作りなので、件数が列数で割り切れないと
   最終行の右端で枠が途切れる。足りない分だけ空セルを置いて閉じる。
   列数は 1024px超=3列 / 1024px以下=2列 / 800px以下=1列。
   ------------------------------------------------------------------ */
.program_cell--filler {
  display: none;
  min-height: 0;
  padding: 0;
  pointer-events: none;
}

@media only screen and (min-width: 1025px) {
  .program_cell--filler3 {
    display: block;
  }
}

@media only screen and (min-width: 801px) and (max-width: 1024px) {
  .program_cell--filler2 {
    display: block;
  }
}

/* ------------------------------------------------------------------
   お問い合わせページの「対象の補助金」（2026-08-26）
   補助金詳細ページの追従CTAから来たときだけ、本文の先頭に出る。
   ------------------------------------------------------------------ */
.contact_program {
  box-sizing: border-box;
  margin: 0 0 28px;
  padding: 18px 22px;
  background: #F7F8FA;
  border: 1px solid #E5E5E5;
}

.contact_program_label {
  margin: 0 0 6px;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: #003379;
}

.contact_program_name {
  margin: 0;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.5;
  color: #1A1A1A;
}

.contact_program_back {
  margin: 10px 0 0;
  font-size: 0.8125rem;
}

.contact_program_back a {
  color: #003379;
  text-decoration: none;
}

.contact_program_back a:hover {
  text-decoration: underline;
}

@media only screen and (max-width: 768px) {
  .contact_program {
    padding: 14px 16px;
    margin-bottom: 22px;
  }
  .contact_program_name {
    font-size: 1rem;
  }
}

/* ------------------------------------------------------------------
   フッター下の空白をなくす（2026-08-26）
   共通CSSの body { padding-bottom: 140px } は、追従ポップアップが全幅の
   フッターバーだった頃にフッターと重ならないよう入れたもの。いまは隅に浮く
   形式なので、全ページのフッター下に140pxの空白だけが残っていた。
   実際に必要な余白は include/footer_popup.php が、出す形式に合わせて宣言する
   （そちらは footer で出力されるのでこの指定より後に効く）。
   ------------------------------------------------------------------ */
body {
  padding-bottom: 0;
}

/* ------------------------------------------------------------------
   トップページ「動画で学ぶ補助金」（2026-08-26）
   見出しは download_sec と同じ体裁。前後のセクションと地色を交互にする。
   ------------------------------------------------------------------ */
.videos_sec {
  padding-top: 120px;
  padding-bottom: 120px;
  background: #F7F8FA;
  border-top: 1px solid #E5E5E5;
}

.videos_box .videos_en {
  font-weight: 700;
  font-size: 1.75rem;
  color: #1A1A1A;
  margin-bottom: 10px;
  border-bottom: 4px solid #003379;
  display: inline-block;
  padding-bottom: 10px;
  letter-spacing: 0.05em;
}

.videos_box .videos_ja {
  display: block;
  font-size: 0.875rem;
  color: #4D4D4D;
  margin-top: 8px;
  margin-bottom: 40px;
}

.videos_grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.videos_item {
  margin: 0;
}

/* サムネイルはボタン。押されたときだけ iframe に差し替える */
.videos_thumb {
  display: block;
  position: relative;
  box-sizing: border-box;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 1px solid #E5E5E5;
  background: #1A1A1A;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  cursor: pointer;
}

.videos_thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.videos_thumb:hover img {
  transform: scale(1.03);
}

/* サムネイルはセミナーの実バナー。中央に大きな再生ボタンを置くとバナーの文字を
   隠してしまうので、左下の角に小さく置く。絵は殺さず、動画だとは分かる。 */
.videos_play {
  position: absolute;
  left: 14px;
  bottom: 14px;
  width: 46px;
  height: 46px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #003379;
  color: #FFFFFF;
  font-size: 0.9375rem;
  padding-left: 3px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.28);
  transition: background 0.2s ease;
}

.videos_thumb:hover .videos_play {
  background: #1B1464;
}

/* ホバーしたときだけ、動画として押せることを弱く示す */
.videos_thumb::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 51, 121, 0);
  transition: background 0.2s ease;
  pointer-events: none;
}

.videos_thumb:hover::after {
  background: rgba(0, 51, 121, 0.12);
}

.videos_thumb--playing::after {
  content: none;
}

.videos_cap {
  margin: 14px 2px 0;
  font-size: 0.9375rem;
  font-weight: 700;
  line-height: 1.6;
  color: #1A1A1A;
}

/* 本編（アーカイブ動画）の視聴申込。ykfc.tokyo の各ページと同じ導線。 */
.videos_archive {
  margin: 8px 2px 0;
  font-size: 0.875rem;
  line-height: 1.6;
}

.videos_archive a {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  color: #003379;
  font-weight: 700;
  text-decoration: none;
}

.videos_archive a:hover {
  text-decoration: underline;
}

.videos_archive a i {
  font-size: 0.6875rem;
}

@media only screen and (max-width: 900px) {
  .videos_grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }
}

@media only screen and (max-width: 768px) {
  .videos_sec {
    padding-top: 72px;
    padding-bottom: 72px;
  }
  .videos_box .videos_en {
    font-size: 1.375rem;
    padding-bottom: 8px;
  }
  .videos_box .videos_ja {
    font-size: 0.8125rem;
    margin-bottom: 28px;
  }
  .videos_grid {
    grid-template-columns: 1fr;
  }
  .videos_play {
    left: 10px;
    bottom: 10px;
    width: 40px;
    height: 40px;
    font-size: 0.875rem;
  }
}

/* ------------------------------------------------------------------
   補助金詳細ページ 本文中のお問い合わせCTA（2026-08-26）
   クラスは program_inqcta。program_cta は原稿由来の別ブロックが使っているので触らない。
   濃紺の面。角丸・影・枠上のアクセント線は使わない。
   余白は 8px 刻みで、
     見出し→補足 16 / 補足→ボタン 32 / ボタン→注記 16 / 注記→電話 24
   と「近いものほど近く」なるように積む。上下の内側余白は同じ 56px。
   ------------------------------------------------------------------ */
.program_body .program_inqcta {
  box-sizing: border-box;
  margin: 64px 0;
  padding: 56px 48px;
  background-color: #003379;
  /* ベタ一色だと平板なので、右上に光、左下に沈みを置いて奥行きを出す。
     画像は使わない（読み込みが増えず、幅が変わっても破綻しない）。 */
  background-image:
    radial-gradient(108% 145% at 86% -30%, rgba(255, 255, 255, 0.15) 0%, rgba(255, 255, 255, 0) 56%),
    radial-gradient(70% 110% at 108% 96%, rgba(255, 255, 255, 0.06) 0%, rgba(255, 255, 255, 0) 60%),
    radial-gradient(95% 130% at -10% 124%, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0) 62%);
  background-repeat: no-repeat;
  color: #FFFFFF;
  text-align: center;
}

.program_body .program_inqcta_lead {
  margin: 0;
  font-size: 1.625rem;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0.01em;
  color: #FFFFFF;
}

.program_body .program_inqcta_lead span {
  display: block;
}

.program_body .program_inqcta_sub {
  box-sizing: border-box;
  max-width: 640px;
  margin: 16px auto 0;
  font-size: 0.9375rem;
  line-height: 1.8;
  color: rgba(255, 255, 255, 0.82);
}

/* このテーマは a に box-sizing を持たない。幅と padding を両立させるので明示する。 */
.program_body .program_inqcta_btn {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  width: 100%;
  max-width: 520px;
  margin: 32px auto 0;
  padding: 20px 28px;
  background: #FFFFFF;
  color: #003379;
  font-size: 1.0625rem;
  font-weight: 700;
  line-height: 1.5;
  text-decoration: none;
  transition: background 0.2s ease;
}

.program_body .program_inqcta_btn:hover {
  background: #E8EEF6;
  color: #003379;
  text-decoration: none;
}

.program_body .program_inqcta_btn_icon {
  flex-shrink: 0;
  font-size: 0.75rem;
}

.program_body .program_inqcta_note {
  box-sizing: border-box;
  max-width: 560px;
  margin: 16px auto 0;
  font-size: 0.8125rem;
  line-height: 1.8;
  color: rgba(255, 255, 255, 0.72);
}

.program_body .program_inqcta_tel {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin: 24px 0 0;
  padding-top: 24px;
  border-top: 1px solid rgba(255, 255, 255, 0.18);
  font-size: 0.875rem;
  color: rgba(255, 255, 255, 0.82);
}

.program_body .program_inqcta_tel a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #FFFFFF;
  font-size: 1.375rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  font-feature-settings: "tnum";
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
}

.program_body .program_inqcta_tel a i {
  font-size: 1rem;
  /* 共通CSSが .fas に #003379 を直接当てているので、濃紺の上では消える。明示的に白にする。 */
  color: #FFFFFF;
}

@media only screen and (max-width: 768px) {
  .program_body .program_inqcta {
    margin: 48px 0;
    padding: 32px 20px;
  }
  .program_body .program_inqcta_lead {
    font-size: 1.1875rem;
    line-height: 1.55;
  }
  .program_body .program_inqcta_sub {
    margin-top: 14px;
    font-size: 0.875rem;
  }
  .program_body .program_inqcta_btn {
    margin-top: 24px;
    padding: 16px 18px;
    font-size: 0.9375rem;
  }
  .program_body .program_inqcta_note {
    margin-top: 14px;
  }
  .program_body .program_inqcta_tel {
    flex-direction: column;
    gap: 8px;
    margin-top: 20px;
    padding-top: 20px;
  }
  .program_body .program_inqcta_tel a {
    font-size: 1.25rem;
  }
}

/* ------------------------------------------------------------------
   補助金詳細ページ下部のお問い合わせフォーム（2026-08-26）
   ------------------------------------------------------------------ */
.program_contact_sec {
  padding-top: 96px;
  padding-bottom: 120px;
  background: #F7F8FA;
  border-top: 1px solid #E5E5E5;
  scroll-margin-top: 130px;
}

.program_contact_box {
  box-sizing: border-box;
  max-width: 720px;
  margin: 0 auto;
  padding: 40px 44px 44px;
  background: #FFFFFF;
  border: 1px solid #E5E5E5;
}

.program_contact_title {
  margin: 0 0 10px !important;
  font-size: 1.25rem !important;
  font-weight: 700;
  line-height: 1.6;
  color: #1A1A1A;
  border: none !important;
  padding: 0 !important;
}

.program_contact_note {
  margin: 0 0 24px;
  font-size: 0.8125rem;
  color: #888888;
}

/* CF7の見た目。既存の .page_cta .wpcf7 と同じ体裁を、この節にも当てる
   （あちらのセレクタは .page_cta 配下限定で、補助金詳細ページには効かない）。 */
.program_contact_form .wpcf7 p {
  margin: 0 0 14px;
}

.program_contact_form .wpcf7 label {
  display: block;
  font-size: 0.875rem;
  font-weight: 600;
  color: #1A1A1A;
  margin-bottom: 6px;
}

.program_contact_form .wpcf7 .req {
  color: #C0392B;
  margin-left: 2px;
}

.program_contact_form .wpcf7 input[type=text],
.program_contact_form .wpcf7 input[type=email],
.program_contact_form .wpcf7 input[type=tel],
.program_contact_form .wpcf7 input[type=url],
.program_contact_form .wpcf7 select,
.program_contact_form .wpcf7 textarea {
  box-sizing: border-box;
  width: 100%;
  padding: 10px 12px;
  border: 1px solid #CCCCCC;
  border-radius: 0;
  background: #FFFFFF;
  font-size: 0.9375rem;
  font-family: inherit;
  line-height: 1.6;
  color: #1A1A1A;
}

.program_contact_form .wpcf7 textarea {
  min-height: 140px;
  resize: vertical;
}

.program_contact_form .wpcf7 .wpcf7-acceptance label {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-weight: 400;
  margin: 0;
}

.program_contact_form .wpcf7 .wpcf7-acceptance input[type=checkbox] {
  margin-top: 4px;
}

.program_contact_form .wpcf7 input[type=submit] {
  display: inline-block;
  min-width: 240px;
  margin-top: 8px;
  padding: 14px 28px;
  background: #003379;
  color: #FFFFFF;
  font-size: 0.9375rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  border: none;
  border-radius: 0;
  cursor: pointer;
  transition: background 0.2s ease;
}

.program_contact_form .wpcf7 input[type=submit]:hover {
  background: #1B1464;
}

@media only screen and (max-width: 768px) {
  .program_contact_sec {
    padding-top: 60px;
    padding-bottom: 72px;
  }
  .program_contact_box {
    padding: 26px 20px 30px;
  }
  .program_contact_title {
    font-size: 1.0625rem !important;
  }
  .program_contact_form .wpcf7 input[type=submit] {
    width: 100%;
    min-width: 0;
  }
}

/* サポート・ダウンロード一覧の2カラム
   2026-08-26: repeat(2, 1fr) は列がセルの min-content より小さくならないため、
   タイトルの長い /support/ で 800〜880px のときにページが横に伸びていた。
   minmax(0, 1fr) にして列を縮められるようにする。 */
.page_cta_archive .cta_archive_list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media only screen and (max-width: 800px) {
  .page_cta_archive .cta_archive_list {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* パートナーコンサルタントのスライダー矢印
   left/right が -8px なので、狭い画面では枠の外に出て 1〜2px の横スクロールになる。 */
@media only screen and (max-width: 768px) {
  .partner_consultants_sec .partner_consultants_slider .slick-prev { left: 0; }
  .partner_consultants_sec .partner_consultants_slider .slick-next { right: 0; }
}

/* === トップページの調整 2026-08-26 =========================================== */

/* --- セクションの余白をひとつのリズムに揃える ---------------------------------
   これまで 60px の節と 120px の節が混在し、動画で学ぶ(下120) → 資料ダウンロード(上84)の
   ように節と節のあいだが 200px 超になる箇所があった。
   上下とも 72px にそろえ、見出しの既定の上マージン（24px）は節の余白と二重に効くので消す。
   これで「節の下 72 ＋ 次の節の上 72 ＝ 144px」がページ全体で一定になる。 */
.seminar_sec,
.programs_sec,
.services_sec,
.videos_sec,
.download_sec,
.mailmag_sec,
.partners_sec {
  padding-top: 72px;
  padding-bottom: 72px;
}
.seminar_box .seminar_en,
.programs_box .programs_en,
.videos_box .videos_en,
.download_box .download_en,
.mailmag_box .mailmag_en,
.partners_box .partners_en {
  margin-top: 0;
}

@media only screen and (max-width: 800px) {
  .seminar_sec,
  .programs_sec,
  .services_sec,
  .videos_sec,
  .download_sec,
  .mailmag_sec,
  .partners_sec {
    padding-top: 48px;
    padding-bottom: 48px;
  }
  /* 節の余白に加えて下マージンが乗ると、ここだけ間延びする */
  .programs_sec { margin-bottom: 0; }
}

/* セミナー紹介と補助金情報一覧が白地どうしで、切れ目が分からなかった。
   ほかのセクションと同じ 1px の細罫に加えて、補助金情報一覧だけ薄い面にして分ける
   （動画で学ぶ補助金と同じ #F7F8FA）。 */
.programs_sec {
  background: #F7F8FA;
  border-top: 1px solid #E5E5E5;
}
/* 🔴 .programs_box は白地。白い節では見えなかったが、薄い面の上に置くと
   「見出しのすぐ上から始まる白い箱」に見えてしまう（内側の余白が0のため）。
   この節では面を透かして、節全体を1枚のグレーとして見せる。 */
.programs_sec .programs_box {
  background: transparent;
}

/* 動画で学ぶ補助金だけ見出しが左寄せだった（.videos_box に text-align が無い）。
   ほかの節はすべて中央寄せなのでそろえる。カードの中の文章は左寄せのまま。 */
.videos_box {
  text-align: center;
}
.videos_grid {
  text-align: left;
}

/* 補助金UPDATE便の枠。見出しの上だけ余白が大きかった（枠の padding 40px に
   h2 の上マージン 20px が乗っていた）ので、上下を揃える。 */
.mailmag_box .mailmag_en {
  margin-top: 0;
}

/* セミナー紹介にサムネイルを添える。1件ずつが文字だけで、何のセミナーか掴みにくかった。 */
.seminar_sec .seminar_item_link.has-thumb {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 22px;
  align-items: center;
}
.seminar_sec .seminar_item_thumb {
  margin: 0;
  width: 180px;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #F5F5F5;
  border: 1px solid #E5E5E5;
}
.seminar_sec .seminar_item_thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.seminar_sec .seminar_item_body {
  min-width: 0;
}
@media only screen and (max-width: 600px) {
  .seminar_sec .seminar_item_link.has-thumb {
    grid-template-columns: 104px 1fr;
    gap: 14px;
    align-items: start;
  }
  .seminar_sec .seminar_item_thumb {
    width: 104px;
  }
}

/* === 2026-09 レビュー対応 === */
/* --- 一覧セルの対象地域（躍進など地域限定の制度） --- */
.program_cell .cell_area {
  /* .program_cell は flex-column + align-items:center なので直下に置けば中央に来る */
  margin-top: 10px;
  padding: 2px 10px;
  border: 1px solid #003379;
  color: #003379;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.5;
  white-space: nowrap;
}

/* --- フォームの必須マーク ---
   赤字の「＊」に統一（2026-09-03）。既存の赤字指定は補助金詳細ページの
   .program_contact_form 配下にしか無く、お問い合わせ等では黒のままだった。
   .cf7_required（「必須」の文字）は使わなくなったが、取りこぼしが出ても
   同じ見え方になるように残しておく。 */
.wpcf7 .req,
.wpcf7 .cf7_required {
  margin-left: 2px;
  color: #C0392B;
  font-weight: 700;
}

/* --- 資格・認定ページの注記 --- */
.cert_intro .cert_note {
  margin-top: 12px;
  color: #4D4D4D;
  font-size: 0.875rem;
  line-height: 1.9;
}

/* --- FAQ の複数段落の回答 ---
   .faq_a は display:flex / nowrap のため、ラベルの隣は必ず1要素にまとめる。 */
.faq_a .faq_a_body {
  flex: 1;
  min-width: 0;
}
.faq_a .faq_a_body > p {
  margin: 0 0 14px;
}
.faq_a .faq_a_body > p:last-child {
  margin-bottom: 0;
}

/* --- FAQ の引用（公募要領などの原文） --- */
.faq_a .faq_quote {
  box-sizing: border-box;
  margin: 16px 0;
  padding: 14px 20px;
  border-left: 3px solid #003379;
  background: #F7F8FA;
}
.faq_a .faq_quote p {
  margin: 0;
  color: #333333;
  font-size: 0.9375rem;
  line-height: 1.9;
}

/* --- 過去開催セミナーのタイル --- */
.page_seminar_archive .seminar_past_lead {
  margin: 0 0 28px;
  color: #4D4D4D;
  font-size: 0.9375rem;
  line-height: 1.9;
}
.page_seminar_archive .seminar_tiles {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 32px 28px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.page_seminar_archive .seminar_tile_link {
  display: block;
  color: #1A1A1A;
  text-decoration: none;
}
.page_seminar_archive .seminar_tile_thumb {
  position: relative;
  overflow: hidden;
  border-radius: 12px;
  background: #F5F5F5;
  aspect-ratio: 16/9;
}
.page_seminar_archive .seminar_tile_thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}
.page_seminar_archive .seminar_tile_link:hover .seminar_tile_thumb img {
  transform: scale(1.04);
}
.page_seminar_archive .seminar_tile_badge {
  position: absolute;
  left: 10px;
  bottom: 10px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 12px;
  border-radius: 999px;
  background: #003379;
  color: #FFFFFF;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}
.page_seminar_archive .seminar_tile_badge i {
  font-size: 0.625rem;
}
.page_seminar_archive .seminar_tile_body {
  padding-top: 14px;
}
.page_seminar_archive .seminar_tile_date {
  display: block;
  margin-bottom: 6px;
  color: #767676;
  font-size: 0.8125rem;
  letter-spacing: 0.03em;
}
.page_seminar_archive .seminar_tile_title {
  margin: 0 0 10px;
  font-size: 0.9375rem;
  font-weight: 700;
  line-height: 1.7;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.page_seminar_archive .seminar_tile_more {
  color: #003379;
  font-size: 0.8125rem;
  font-weight: 700;
}
.page_seminar_archive .seminar_tile_link:hover .seminar_tile_more {
  text-decoration: underline;
  text-underline-offset: 4px;
}
@media only screen and (max-width: 1024px) {
  .page_seminar_archive .seminar_tiles {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px 20px;
  }
}
@media only screen and (max-width: 560px) {
  /* 1カラムにすると23件で1万px超の縦長になるため、狭い幅でも2カラムを保つ */
  .page_seminar_archive .seminar_tiles {
    gap: 22px 12px;
  }
  .page_seminar_archive .seminar_tile_title {
    font-size: 0.8125rem;
    -webkit-line-clamp: 4;
  }
  .page_seminar_archive .seminar_tile_date {
    font-size: 0.75rem;
  }
  .page_seminar_archive .seminar_tile_badge {
    left: 6px;
    bottom: 6px;
    padding: 4px 8px;
    font-size: 0.6875rem;
  }
  .page_seminar_archive .seminar_tile_more {
    font-size: 0.75rem;
  }
}

/* --- 選ばれる理由：本文中の図版 --- */
.feature_body .feature_figure {
  margin: 28px 0;
}
.feature_body .feature_figure img {
  display: block;
  width: 100%;
  height: auto;
  border: 1px solid #E5E5E5;
}
.feature_body .feature_figure figcaption {
  margin-top: 10px;
  color: #4D4D4D;
  font-size: 0.8125rem;
  line-height: 1.7;
}

/* --- トップの掲載記事（ミラサポ／セカマチ） --- */
.media_sec {
  padding: 0 0 90px;
  background: #FFFFFF;
}
.media_box .media_en {
  display: block;
  margin: 0 0 32px;
  padding-bottom: 10px;
  border-bottom: 2px solid #003379;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-align: center;
}
.media_layout {
  display: grid;
  grid-template-columns: minmax(0, 420px) minmax(0, 1fr);
  gap: 32px;
  align-items: center;
}
.media_visual {
  display: block;
  overflow: hidden;
  border: 1px solid #E5E5E5;
}
.media_visual img {
  display: block;
  width: 100%;
  height: auto;
  transition: transform 0.3s ease;
}
.media_visual:hover img {
  transform: scale(1.03);
}
.media_source {
  margin: 0 0 10px;
  color: #003379;
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}
.media_title {
  margin: 0 0 14px;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.7;
}
.media_lead {
  margin: 0 0 18px;
  color: #4D4D4D;
  font-size: 0.9375rem;
  line-height: 1.9;
}
.media_more {
  margin: 0;
}
.media_more a {
  color: #003379;
  font-size: 0.875rem;
  font-weight: 700;
  text-decoration: none;
}
.media_more a:hover {
  text-decoration: underline;
  text-underline-offset: 4px;
}
@media only screen and (max-width: 800px) {
  .media_sec {
    padding: 0 0 60px;
  }
  .media_layout {
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
  }
  .media_box .media_en {
    font-size: 1.25rem;
  }
}

/* --- トップのパートナー募集 ---
   事業者向けの白い面の中で、パートナー向けだけ濃紺の面にして役割の違いを見せる。 */
.toppartner_sec {
  padding: 90px 0;
  background: #FFFFFF;
}
.toppartner_list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.toppartner_card {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 36px 38px 34px;
  background: #003379;
  color: #FFFFFF;
  text-decoration: none;
  transition: background 0.2s ease;
}
.toppartner_card:hover,
.toppartner_card:focus {
  background: #04266A;
  color: #FFFFFF;
  text-decoration: none;
}
.toppartner_label {
  display: block;
  margin-bottom: 16px;
  color: #A9C7F0;
  font-size: 0.8125rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.04em;
}
.toppartner_title {
  display: block;
  margin-bottom: 14px;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.5;
}
.toppartner_lead {
  display: block;
  margin-bottom: 26px;
  color: #DCE7F7;
  font-size: 0.9375rem;
  line-height: 1.9;
}
.toppartner_facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin-bottom: 28px;
  background: rgba(255, 255, 255, 0.28);
}
.toppartner_fact {
  box-sizing: border-box;
  display: block;
  padding: 16px 12px 14px;
  background: #003379;
  color: #DCE7F7;
  font-size: 0.75rem;
  line-height: 1.6;
  text-align: center;
}
.toppartner_card:hover .toppartner_fact {
  background: #04266A;
}
.toppartner_num {
  display: block;
  margin-bottom: 6px;
  color: #FFFFFF;
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: 0.01em;
}
.toppartner_fact:last-child .toppartner_num {
  font-size: 1.375rem;
}
@media only screen and (max-width: 1100px) {
  /* 2カラムのまま幅が縮む帯。文字で入る値（実績報告など）が枠を割るので落とす */
  .toppartner_fact:last-child .toppartner_num {
    font-size: 1.0625rem;
  }
}
.toppartner_num small {
  font-size: 0.8125rem;
  font-weight: 700;
  margin-left: 2px;
}
.toppartner_btn {
  box-sizing: border-box;
  display: block;
  margin-top: auto;
  padding: 14px 18px;
  background: #FFFFFF;
  color: #003379;
  font-size: 0.9375rem;
  font-weight: 700;
  text-align: center;
}
.toppartner_btn i {
  margin-left: 6px;
  font-size: 0.75rem;
}
@media only screen and (max-width: 900px) {
  .toppartner_list {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }
}
@media only screen and (max-width: 800px) {
  .toppartner_sec {
    padding: 60px 0;
  }
  .toppartner_card {
    padding: 28px 24px 26px;
  }
  .toppartner_title {
    font-size: 1.25rem;
  }
  .toppartner_num {
    font-size: 1.5rem;
  }
}
@media only screen and (max-width: 420px) {
  .toppartner_facts {
    grid-template-columns: minmax(0, 1fr);
  }
  .toppartner_fact {
    display: flex;
    align-items: baseline;
    justify-content: flex-start;
    gap: 10px;
    padding: 12px 14px;
    text-align: left;
  }
  .toppartner_num {
    margin-bottom: 0;
    font-size: 1.25rem;
  }
}

/* --- サンクスページ（CV計測） --- */
.page_cv_thanks .cvthanks {
  box-sizing: border-box;
  max-width: 760px;
  margin: 0 auto;
  padding: 60px 0 80px;
}
.page_cv_thanks .cvthanks_lead {
  margin: 0 0 20px;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.7;
}
.page_cv_thanks .cvthanks_item {
  box-sizing: border-box;
  margin: 0 0 20px;
  padding: 14px 18px;
  border-left: 3px solid #003379;
  background: #F7F8FA;
  font-size: 0.9375rem;
  line-height: 1.8;
}
.page_cv_thanks .cvthanks_note {
  margin: 0 0 40px;
  color: #4D4D4D;
  font-size: 0.9375rem;
  line-height: 1.9;
}
.page_cv_thanks .cvthanks_next {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 0 0 32px;
  padding: 0;
  list-style: none;
}
.page_cv_thanks .cvthanks_next a {
  box-sizing: border-box;
  display: block;
  padding: 16px 14px;
  border: 1px solid #E5E5E5;
  color: #003379;
  font-size: 0.875rem;
  font-weight: 700;
  text-align: center;
  text-decoration: none;
  transition: border-color 0.2s ease, background 0.2s ease;
}
.page_cv_thanks .cvthanks_next a:hover {
  border-color: #003379;
  background: #F7F8FA;
  text-decoration: none;
}
.page_cv_thanks .cvthanks_home {
  margin: 0;
  font-size: 0.875rem;
}
.page_cv_thanks .cvthanks_home a {
  color: #003379;
}
@media only screen and (max-width: 700px) {
  .page_cv_thanks .cvthanks {
    padding: 40px 0 60px;
  }
  .page_cv_thanks .cvthanks_lead {
    font-size: 1.0625rem;
  }
  .page_cv_thanks .cvthanks_next {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* --- 申込ページ：狭い幅ではフォームを説明より先に出す ---
   縦積みになると説明が長く、送信ボタンまでのスクロールが2,800pxを超えていた。 */
@media only screen and (max-width: 900px) {
  .page_cta .cta_right {
    order: -1;
  }
}

/* --- トップのパートナー2枚：セルが2つの帯 ---
   補助事業別の採択率（94%）を落としたため、ベンダー側だけ2セルになる。
   3列のままだと空きトラックに帯の下地（白28%）が抜けて見える。 */
.toppartner_facts--2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}


/* ============================================================
   ウェビナーアーカイブ視聴フォーム（.fv） 2026-09-30 追加・本番未反映
   案③2ステップ。既存お問い合わせフォームの実測値に合わせる:
   入力欄 白地・1px #ccc・角なし・高さ46px／ラベル14px 600／必須 #c0392b「＊」
   送信ボタン #003379・角丸8px・15px 700
   ============================================================ */
.fv{box-sizing:border-box;margin-top:4px;font-family:inherit;color:#1a1a1a}
.fv *{box-sizing:border-box}
.fv-field{margin:0 0 14px}
.fv-field label{display:block;font-size:14px;font-weight:600;margin:0 0 6px;color:#1a1a1a}
.fv-field .req{color:#c0392b;font-weight:700;margin-left:2px}
.fv-input{display:block;width:100%;height:46px;padding:10px 12px;border:1px solid #ccc;background:#fff;
  font:inherit;font-size:15px;color:#1a1a1a;border-radius:0}
.fv-input::placeholder{color:#9a9a9a}
.fv-input:focus{outline:none;border-color:#003379;box-shadow:0 0 0 2px rgba(0,51,121,.12)}
.fv-submit{display:block;width:100%;padding:15px 20px;border:0;border-radius:8px;background:#003379;color:#fff;
  font:inherit;font-size:15px;font-weight:700;letter-spacing:.05em;cursor:pointer}
.fv-submit:hover{background:#00285f}
.fv-micro{margin:10px 0 0;font-size:12px;line-height:1.7;color:#555}
.fv-privacy{margin:6px 0 0;font-size:12px;color:#555}
.fv-privacy a{color:#003379;text-decoration:underline}
.fv-steps{display:flex;margin:0 0 14px;font-size:12px;font-weight:700;padding:0}
.fv-steps li{flex:1;list-style:none;padding:8px 10px;background:#f2f4f7;color:#888;text-align:center;position:relative}
.fv-steps li.on{background:#003379;color:#fff}
.fv-row{display:flex;gap:8px}
.fv-row .fv-input{flex:1}
.fv-row .fv-submit{width:auto;white-space:nowrap;padding:0 18px;height:46px;border-radius:0 8px 8px 0}
/* JSが初期化できたときだけ2ステップ化する（.is-js はJS側で付与）。
   JS無効・読込失敗時は最初から全項目が見え、そのまま1ページのフォームとして送信できる。 */
.fv.is-js .fv-step2{display:none}
.fv.is-js.is-step2 .fv-step1{display:none}
.fv.is-js.is-step2 .fv-step2{display:block}
.fv-back{background:none;border:0;color:#003379;font:inherit;font-size:12px;text-decoration:underline;cursor:pointer;padding:0;margin:8px 0 0}
.fv:not(.is-js) .fv-steps{display:none}
.fv:not(.is-js) .fv-next,.fv:not(.is-js) .fv-back{display:none}
/* CF7標準のエラー表示をこのフォームでもサイト標準どおりに見せる */
.fv .wpcf7-not-valid-tip{display:block;margin-top:4px;font-size:12px;color:#c0392b}
.fv input.wpcf7-not-valid{border-color:#c0392b}
@media (max-width:800px){
  .fv-row{flex-direction:column}
  .fv-row .fv-submit{width:100%;border-radius:8px;height:auto;padding:15px}
  /* 390px でボタン末尾の1文字だけが落ちるのを防ぐ */
  .fv-submit{font-size:14px;letter-spacing:0;padding-left:10px;padding-right:10px}
}

/* 2026-10-01 ウェビナー申込フォーム: 本番で見えた崩れの手当て */
#fv-archive-154 .fv-steps li.on,
#fv-archive-154 .fv-steps li.on *{color:#fff}
#fv-archive-154 .fv-steps li *{margin:0}
#fv-archive-154 .fv-row{align-items:flex-start}
#fv-archive-154 .fv-row .wpcf7-form-control-wrap{flex:1;display:block;min-width:0}
#fv-archive-154 .fv-row .wpcf7-form-control-wrap .fv-input{width:100%}
#fv-archive-154 .fv-field p,#fv-archive-154 .fv-row p{margin:0}
