@charset "utf-8";
/* 2026-10-08: 本文の設定値 → 基本パーツ → 情報表と特長。 */
/* 2. 本文の基本パーツ。設定はmainへ限定する。 */
main.site-content {
  --content-section: clamp(36px, 4.4vw, 56px);
  --content-group: clamp(24px, 3vw, 36px);
  --content-border: rgba(31, 54, 78, .12);
  --radius: 10px;
  --shadow: 0 4px 12px rgba(29, 74, 109, .06), inset 0 1px 0 #fff;
  --radius-surface: 6px;
  --shadow-surface: none;
  --space-section: var(--content-section);
  --space-block: 24px;
  --space-grid: clamp(20px, 2vw, 24px);
}
main.site-content > section:not(.hero):not(.page-hero):not(.recruit-hero) { padding-block: var(--content-section); }
main.site-content .section-title { margin-top: 0; margin-bottom: 24px; }
main.site-content p { margin-bottom: 16px; }
main.site-content p:last-child { margin-bottom: 0; }
main.site-content .contact-intro { max-width: 720px; margin: 0 auto var(--content-group); text-align: center; text-wrap: balance; }
main.site-content .content-block { min-width: 0; position: relative; }
main.site-content .content-block > h3, main.site-content h3.icon-heading { font-size: 1.1rem; line-height: 1.6; }
main.site-content .content-block + .content-block, main.site-content .faq .content-block { padding-top: 24px; border-top: 1px solid var(--content-border); }
main.site-content .grid > .content-block { padding-top: 20px; border-top: 1px solid var(--content-border); }
main.site-content .grid > .content-block:has(.section-image), main.site-content .program-cards > .content-block { padding-top: 0; border-top: 0; }
main.site-content :is(.feature, .note-block, .story-body, .project-item, .action-block) { padding: 0; background: transparent; border: 0; border-radius: 0; box-shadow: none; }
main.site-content .feature { min-width: 0; }
main.site-content .feature-heading { grid-template-columns: minmax(0, 1fr); }
main.site-content .feature-heading a { white-space: normal; }
main.site-content .note-block { gap: 16px; }
main.site-content :is(.cta-columns, .content-columns) { gap: 32px clamp(32px, 3.2vw, 40px); }
main.site-content .action-block { display: grid; grid-template-rows: auto 1fr auto; min-width: 0; gap: 16px; justify-items: start; align-items: start; }
main.site-content .action-block > :is(h3, p) { margin: 0; }
main.site-content .action-block > h3 { display: flex; align-items: flex-end; width: 100%; padding-bottom: 8px; border-bottom: 1px solid var(--content-border); }
main.site-content .action-block > :is(.cta-row, .btn) { margin-top: 8px; }
main.site-content .action-block .btn { align-self: start; }
@media (min-width: 900px) {
  main.site-content .cta-columns.columns3 .action-block > h3 { min-height: calc(2.6em + 9px); }
}
main.site-content .content-columns > .content-block { display: flex; flex-direction: column; padding-top: 0; border-top: 0; }
main.site-content .content-columns > .content-block > h3 { margin: 0 0 16px; padding-bottom: 8px; border-bottom: 1px solid var(--content-border); }
main.site-content .content-columns > .content-block:has(.business-visual) > h3 { padding-bottom: 0; border-bottom: 0; }
main.site-content .content-columns .business-visual { margin: 0 0 16px; }
main.site-content .content-columns > .content-block > .eyebrow { margin-bottom: 4px; }
main.site-content .content-columns > .content-block > .col2line { margin: 0; }
main.site-content .content-columns > .content-block:has(.map) > p:not(.map-print-only) { flex: 1; margin-bottom: 24px; }
main.site-content .story-body { gap: 16px; }
main.site-content .project-item { gap: 12px; }
main.site-content :is(.section-image img, .info-figure img, .media-block__img, .album img, .president-message-visual img, .business-visual img, .inline-image, .wide-figure, .figure-stack img) { border-radius: 6px; box-shadow: none; }
main.site-content .stats { gap: 0; background: rgba(255, 255, 255, .8); border-block: 1px solid var(--content-border); }
main.site-content .stat { min-width: 0; padding: 20px; background: transparent; border: 0; border-bottom: 1px solid var(--content-border); border-radius: 0; }
main.site-content .stat.cta-row { padding-block: 20px; }
/* 項目名の下の罫線で、開催概要などの情報のまとまりを示す。 */
main.site-content .information-grid { grid-template-columns: minmax(0, 1fr); }
main.site-content .information-grid > :is(.item-wide, .item-tall) { grid-column: auto; grid-row: auto; }
/* 開催概要・条件は項目ごとに分割せず、ひとつの面でまとめる。 */
main.site-content .information-card {
  padding: clamp(20px, 2.5vw, 32px);
  background: linear-gradient(135deg, #fff 0%, #fafdff 48%, #edf6fd 100%);
  border: 1px solid rgba(143, 171, 195, .3);
  border-radius: 10px;
  box-shadow: 0 6px 18px rgba(29, 74, 109, .07), inset 0 1px 0 rgba(255, 255, 255, .95);
}
#internship main.site-content .container:has(> .information-card) + .container:has(> .information-card) {
  padding-top: clamp(32px, 4vw, 48px);
}
main.site-content .information-grid > div > h4 {
  margin: 0 0 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--content-border);
}
@media (min-width: 900px) {
  main.site-content .information-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  main.site-content .information-grid.cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  main.site-content .information-grid > .item-wide { grid-column: span 2; }
  main.site-content .information-grid > .item-tall { grid-row: span 2; }
}
main.site-content .job-list dt { padding: 0; background: none; border-radius: 0; font-weight: 700; }
/* コース名の長さに合わせ、フォーム内の幅を使う。 */
main.site-content .course-options .radio-pill { width: 100%; max-width: none; }
main.site-content > section:not(.hero):not(.page-hero):not(.recruit-hero) .btn {
  min-height: 44px; padding: 10px 16px; border-radius: 10px; font-size: .95rem; line-height: 1.6; text-align: center;
  transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}
main.site-content > section:not(.hero):not(.page-hero):not(.recruit-hero) .btn.primary { background: linear-gradient(160deg, #087bbd, #086ba9); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .45), 0 4px 12px rgba(10, 106, 165, .18); }
main.site-content > section:not(.hero):not(.page-hero):not(.recruit-hero) .btn.secondary { color: #086ba9; background: linear-gradient(140deg, rgba(255, 255, 255, .95), rgba(240, 248, 255, .9)); border: 1px solid var(--content-border); box-shadow: inset 0 1px 0 #fff, 0 2px 6px rgba(29, 74, 109, .06); }
main.site-content > section:not(.hero):not(.page-hero):not(.recruit-hero) .btn:hover { transform: none; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .55), 0 6px 16px rgba(10, 106, 165, .16); }
/* コース詳細ボタン内の受付状況を補助情報として見せる。 */
main.site-content .program-cards .btn-status { margin-inline-start: 4px; padding-inline-start: 9px; border-inline-start: 1px solid rgba(255, 255, 255, .42); font-size: .82em; font-weight: 500; line-height: 1.2; white-space: nowrap; }
main.site-content .program-cards .btn.secondary .btn-status { border-color: rgba(8, 107, 169, .25); }
/* 本文ボタンのhoverを共通化。無効なボタン・タッチ操作・動き抑制時は移動しない。 */
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  main.site-content > section:not(.hero):not(.page-hero):not(.recruit-hero) .btn:hover:not(:disabled):not(.is-disabled):not([aria-disabled="true"]) {
    transform: translateY(-2px);
  }
}
main.site-content > section:not(.hero):not(.page-hero):not(.recruit-hero) .btn:focus-visible { outline: 3px solid #086ba9; outline-offset: 3px; }
/* 一つの入力面、ロゴ枠、沿革は本文内で整える。 */
main.site-content .entry-form-shell { border: 1px solid var(--content-border); border-radius: 10px; box-shadow: var(--shadow); }
main.site-content .form-subsection { border-radius: 8px; }
main.site-content .client-item { border-radius: 6px; box-shadow: none; }
main.site-content .timeline .item { background: transparent; border: 0; border-radius: 0; box-shadow: none; }
@media (min-width: 768px) { main.site-content .grid > .content-block { margin-bottom: 0; } }
@media (prefers-reduced-motion: reduce) { main.site-content .btn { transition: none; } }

/* 本文の情報部品だけの独立試作。ヘッダー・フッターを対象にしない。
   見出し → 特長 → 情報行 → 応答幅。情報表は読みやすく、特長は一つの面の光と陰影で質感をつくる。 */
.information-section {
  padding-block: clamp(36px, 4.4vw, 56px);
}
#style .information-section { padding-block: clamp(36px, 4.4vw, 56px); }
.information-section .section-title,
section.information-section:not(:first-of-type) .section-title {
  margin-top: 0;
  margin-bottom: 24px;
}
.information-section .section-image img,
#style .information-section .section-image img {
  border-radius: 6px;
  box-shadow: none;
}
.information-section .information-heading {
  margin: 0 0 16px;
  font-size: 1.1rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: .02em;
}
.information-features {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  background: linear-gradient(125deg, #fff 0%, #f8fcff 42%, #e3f0fa 100%);
  border: 1px solid rgba(143, 171, 195, .3);
  border-radius: 6px;
  box-shadow: 0 8px 24px rgba(29, 74, 109, .08),
    0 1px 2px rgba(29, 74, 109, .04), inset 0 1px 0 rgba(255, 255, 255, .95);
  overflow: hidden;
}
.information-features > li {
  min-width: 0;
  padding: 20px;
}
.information-features > li + li { border-top: 1px solid #e2e9ef; }
.information-features h4 {
  margin: 0 0 10px;
  color: #1c3345;
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1.65;
}
.information-features p {
  margin: 0;
  color: #536576;
  font-size: .94rem;
  line-height: 1.85;
  overflow-wrap: anywhere;
}
/* dl と table は同じ視覚規則、HTMLの役割はそれぞれ保つ。 */
.information-facts, .information-table {
  width: 100%;
  margin: 0;
  background: rgba(255, 255, 255, .94);
  border: 0;
  border-top: 1px solid #adc7d7;
  border-bottom: 1px solid #dce6ed;
  border-radius: 4px;
  box-shadow: none;
  overflow: hidden;
}
.information-table { border-collapse: separate; border-spacing: 0; }
.information-facts > div + div { border-top: 1px solid #e2e9ef; }
.information-facts > div > dt, .information-table th {
  margin: 0;
  padding: 18px 20px 6px;
  background: transparent;
  color: #466276;
  font-size: .88rem;
  font-weight: 700;
  line-height: 1.7;
  text-align: left;
  vertical-align: top;
  white-space: normal;
}
.information-facts > div > dd, .information-table td {
  min-width: 0;
  margin: 0;
  padding: 0 20px 22px;
  color: var(--ink);
  line-height: 1.8;
  overflow-wrap: anywhere;
  vertical-align: top;
}
.information-table tr, .information-table tbody,
.information-table th, .information-table td { display: block; width: 100%; }
.information-table th, .information-table td { border-bottom: 0; }
.information-table tr + tr > th { border-top: 1px solid #e2e9ef; }
.information-table a { overflow-wrap: anywhere; }
@media (min-width: 768px) {
  .information-facts > div { display: grid; grid-template-columns: 168px minmax(0, 1fr); }
  .information-facts > div > dt, .information-table th { padding: 20px 24px; }
  .information-facts > div > dd, .information-table td { padding: 18px 24px; }
  .information-table { table-layout: fixed; }
  .information-table tbody { display: table-row-group; }
  .information-table tr { display: table-row; }
  .information-table th, .information-table td { display: table-cell; }
  .information-table th { width: 192px; }
  .information-table td { width: auto; }
  .information-table tr + tr > td { border-top: 1px solid #e2e9ef; }
}
@media (min-width: 960px) {
  .information-features { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .information-features > li { padding: 24px; }
  .information-features > li:nth-child(2) { border-top: 0; }
  .information-features > li:nth-child(even) { border-left: 1px solid #e2e9ef; }
}
@media print {
  .information-facts, .information-table, .information-features { background: white; }
  .information-facts > div, .information-table tr, .information-features > li { break-inside: avoid; }
}
