@charset "UTF-8";

/* ==========================================================================
   Foundation
   --------------------------------------------------------------------------
   基本設定、変数、リセット、ベーススタイル
   
   【更新履歴】
   - フェーズ7-A: Design Tokens完全化、ハードコード値をCSS変数に移行
   ========================================================================== */

/* 1. Normalize & Reset (normalize.css v8.0.1) */
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
html { line-height: 1.15; -webkit-text-size-adjust: 100%; }
body { margin: 0; }
main { display: block; }
h1 { font-size: 2em; margin: 0.67em 0; }
hr { box-sizing: content-box; height: 0; overflow: visible; }
pre { font-family: monospace, monospace; font-size: 1em; }
a { background-color: transparent; }
abbr[title] { border-bottom: none; text-decoration: underline; text-decoration: underline dotted; }
b, strong { font-weight: bolder; }
code, kbd, samp { font-family: monospace, monospace; font-size: 1em; }
small { font-size: 80%; }
sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
sub { bottom: -0.25em; }
sup { top: -0.5em; }
img { border-style: none; }
button, input, optgroup, select, textarea { font-family: inherit; font-size: 100%; line-height: 1.15; margin: 0; }
button, input { overflow: visible; }
button, select { text-transform: none; }
button, [type="button"], [type="reset"], [type="submit"] { -webkit-appearance: button; }
button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner { border-style: none; padding: 0; }
button:-moz-focusring, [type="button"]:-moz-focusring, [type="reset"]:-moz-focusring, [type="submit"]:-moz-focusring { outline: 1px dotted ButtonText; }
fieldset { padding: 0.35em 0.75em 0.625em; }
legend { box-sizing: border-box; color: inherit; display: table; max-width: 100%; padding: 0; white-space: normal; }
progress { vertical-align: baseline; }
textarea { overflow: auto; }
[type="checkbox"], [type="radio"] { box-sizing: border-box; padding: 0; }
[type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button { height: auto; }
[type="search"] { -webkit-appearance: textfield; outline-offset: -2px; }
[type="search"]::-webkit-search-decoration { -webkit-appearance: none; }
::-webkit-file-upload-button { -webkit-appearance: button; font: inherit; }
details { display: block; }
summary { display: list-item; }
template { display: none; }
[hidden] { display: none; }


/* ==========================================================================
   2. Design Tokens（デザイントークン）
   --------------------------------------------------------------------------
   【管理方針】
   - すべてのCSS変数はこのファイルで一元管理
   - content.css、nav.css等では定義せず、使用のみ
   ========================================================================== */

:root {

  /* ==========================================================================
     Colors（カラー）
     ========================================================================== */

  /* --- ブランドカラー --- */
  --color-main:          #12C19E;  /* メインカラー */
  --color-sub:         #EEF6FD;  /* サブカラー*/
  --color-primary:       #004098;  /* プライマリ（紺） */
  --color-primary-light: #5EA4E1;  /* プライマリ薄（水色） */

  /* --- アクセント --- */
  --color-accent:   #f25a5c;  /* アクセント1（コーラル） */
  --color-accent02: #00cc99;  /* アクセント2（グリーン） */
  --color-accent03: #f47ca2;  /* アクセント3（ピンク） */

  /* --- 学科カラー --- */
  --color-hygiene: #5EA4E1; /* 歯科衛生学科 */
  --color-nursing: #f47ca2;  /* 看護学科 */

/* --- 学科別アクセントカラーの継承 --- */
.hyg, .p-page-hygiene { --color-main: var(--color-hygiene); }
.nrs, .p-page-nursing  { --color-main: var(--color-nursing); }

/* --- 学科別テーブルヘッダーカラー（--color-mainから独立して管理） --- */
.hyg, .p-page-hygiene { --table-head-bg: var(--color-hygiene); }
.nrs, .p-page-nursing  { --table-head-bg: var(--color-nursing); }

/* --- 学科別サブカラー --- */ 
.hyg, .p-page-hygiene { --color-sub: #EEF6FD; }  /* 歯科衛生：水色系 */
.nrs, .p-page-nursing  { --color-sub: #FDE8F3; }  /* 看護：ピンク系 */

  /* --- グレースケール --- */
  --color-gray-25:  #fafafa;
  --color-gray-50:  #f5f7f6;
  --color-gray-100: #f4f7f9;
  --color-gray-200: #f0f0f0;
  --color-gray-300: #dddddd;
  --color-gray-400: #aaaaaa;
  --color-gray-500: #d5dfe5;
  --color-gray-600: #666666;
  --color-gray-700: #555555;
  --color-gray-900: #222222;

  /* --- セマンティックカラー（用途別エイリアス）--- */
  --color-text:        var(--color-gray-900);   /* 本文テキスト */
  --color-heading:     var(--color-gray-900);   /* 見出し：黒（意図的にprimaryと分離） */
  --color-border:      var(--color-gray-300);   /* 汎用ボーダー */
  --color-border-light: var(--color-gray-500);  /* テーブル等の薄いボーダー */
  --color-bg-light:    var(--color-gray-50);    /* 薄い背景 */
  --color-link:        #0066cc;                 /* リンク */
  --color-link-hover:  #0052a3;                 /* リンクホバー */
  --color-pdf-badge:   #cc0000;                 /* PDFバッジ */


  /* ==========================================================================
     Font Sizes（フォントサイズ）
     --------------------------------------------------------------------------
     Base: 16px (1rem)
     ========================================================================== */

  /* --- 基本スケール --- */
  --fs-xs:   0.75rem;    /* 12px - 注釈、キャプション */
  --fs-sm:   0.875rem;   /* 14px - 小さめテキスト、テーブル */
  --fs-base: 1rem;       /* 16px - 本文（デフォルト） */
  --fs-md:   1.125rem;   /* 18px - リード文、h4 */
  --fs-lg:   1.25rem;    /* 20px - h3相当 */
  --fs-xl:   1.375rem;   /* 22px - h3相当 */
  --fs-2xl:  1.5625rem;  /* 25px - h2相当 */
  --fs-3xl:  1.875rem;   /* 30px - h1相当 */

  /* --- レスポンシブ見出し（トップページ等）--- */
  --fs-heading-md:  clamp(1.75rem,  1.5rem + 1vw,   2rem);
  --fs-heading-lg:  clamp(1.875rem, 1.5rem + 1.5vw, 2.1875rem);
  --fs-heading-xl:  clamp(2rem,     1.5rem + 2vw,   2.5rem);
  --fs-heading-2xl: clamp(2.5rem,   2rem   + 2.5vw, 3.125rem);

  /* --- コンテンツページ用見出し --- */
  --fs-heading-h2: 1.625rem;  /* 26px */
  --fs-heading-h3: 1.5rem; /* 24px */
  --fs-heading-h4: 1.25rem; /* 17px相当 */

@media (max-width: 768px) {
  :root {
    --fs-heading-h2: 1.375rem; /* 22px相当 */
    --fs-heading-h3: 1.25rem; /* 20px */
  }
}


  /* ==========================================================================
     Font Weights（フォントウェイト）
     ========================================================================== */
  --fw-normal: 400;
  --fw-medium: 500;
  --fw-bold:   700;


  /* ==========================================================================
     Line Heights（行送り）
     ========================================================================== */
  --lh-tight:   1.25;
  --lh-normal:  1.6;
  --lh-relaxed: 1.8;


  /* ==========================================================================
     Spacing（スペーシング）
     ========================================================================== */
  --spacing-xs:  0.25rem;  /*  4px */
  --spacing-sm:  0.5rem;   /*  8px */
  --spacing-md:  1rem;     /* 16px */
  --spacing-lg:  1.5rem;   /* 24px */
  --spacing-xl:  2rem;     /* 32px */
  --spacing-2xl: 3rem;     /* 48px */


  /* ==========================================================================
     Border Radius（ボーダー半径）
     ========================================================================== */
  --radius-sm:   5px;
  --radius-md:   10px;
  --radius-lg:   15px;
  --radius-pill: 999px;


  /* ==========================================================================
     Shadows（シャドウ）
     ========================================================================== */
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
  --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
  --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1);


  /* ==========================================================================
     Transitions（トランジション）
     ========================================================================== */
  --transition-fast: 150ms ease-in-out;
  --transition-base: 250ms ease-in-out;
  --transition-slow: 350ms ease-in-out;

}


/* ==========================================================================
   3. Base Styles
   ========================================================================== */

html {
  box-sizing: border-box;
  font-size: 100%;
  line-height: 1.7;
  letter-spacing: 0.03em;
  scroll-padding-top: 220px;
}

@media (max-width: 1023px) {
  html {
    scroll-padding-top: 210px;
  }
}

*, *::before, *::after {
  box-sizing: inherit;
}

body {
  font-family: 'Zen Kaku Gothic New', sans-serif;
  font-size: var(--fs-base);
  color: var(--color-text);
  margin: 0;
  padding-top: 220px; /* ヘッダー固定分の余白 */
}

@media (max-width: 1023px) {
  body {
    padding-top: 165px;
  }
}

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

a {
  text-decoration: underline;
  color: var(--color-link);
  transition: opacity var(--transition-base), color var(--transition-base);
}

a:hover {
  color: var(--color-link-hover);
  text-decoration: none;
}


/* ==========================================================================
   4. Layout
   ========================================================================== */

.l-container {
  max-width: 1200px;
  padding-inline: 16px;
  margin-inline: auto;
}

.m-container {
  max-width: 1000px;
  padding-inline: 16px;
  margin-inline: auto;
}

.l-main {
  /* フッターとの間に余白を確保 */
  margin-bottom: 80px; 
}


/* ==========================================================================
   5. Component
   --------------------------------------------------------------------------
   再利用可能なUIパーツ（ボタン、見出し等）
   ========================================================================== */

/* --- Buttons --- */
/* common.css */

/* --- ボタン基本（ゴーストボタンを標準化） --- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: space-between; /* テキストと矢印を両端に */
  background-color: #ffffff;
  border: 3px solid var(--color-border);
  color: var(--color-text);
  border-radius: var(--radius-md); /* 8px */
  padding: 14px 24px;
  min-width: 300px;
  font-weight: var(--fw-bold);      /* 700 */
  text-decoration: none;
  transition: all var(--transition-base); /* 250ms */
  cursor: pointer;
  box-sizing: border-box;
  position: relative;
}

/* 右側の矢印アイコン（自動付与） */
.btn::after {
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  content: "\f054"; /* chevron-right */
  font-size: 0.8em;
  transition: transform var(--transition-base);
}

/* ホバー時の共通挙動 */
.btn:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}

.btn:hover::after {
  transform: translateX(4px);
}

/* --- カラーバリエーション --- */

/* メイン（グリーン） */
.btn--main {
  border-color: var(--color-main);
  color: var(--color-main);
}
.btn--main:hover {
  background-color: var(--color-main);
  color: #ffffff;
}

/* グレー */
.btn--gray {
  border-color: var(--color-gray-400);
  color: var(--color-gray-600);       
}
.btn--gray:hover {
  background-color: var(--color-gray-400);
  color: #ffffff;
}

/* 歯科衛生（水色） */
.btn--hygiene {
  border-color: var(--color-hygiene);
  color: var(--color-hygiene);
}
.btn--hygiene:hover {
  background-color: var(--color-hygiene);
  color: #ffffff;
}

/* 看護（ピンク） */
.btn--nursing {
  border-color: var(--color-nursing);
  color: var(--color-nursing);
}
.btn--nursing:hover {
  background-color: var(--color-nursing);
  color: #ffffff;
}

/* --- Solid Buttons（単色塗りつぶし・白文字）を追加 --- */

.btn-solid {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  border: none;                   /* 枠線なし */
  color: #ffffff !important;      /* 文字色は白に固定 */
  border-radius: var(--radius-md); /* 10px */
  padding: 14px 24px;
  min-width: 300px;
  font-weight: var(--fw-bold);     /* 700 */
  text-decoration: none;
  transition: all var(--transition-base); /* 250ms */
  cursor: pointer;
  box-sizing: border-box;
  position: relative;
}

/* 右側の矢印アイコン */
.btn-solid::after {
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  content: "\f054";
  font-size: 0.8em;
  color: #ffffff;
  transition: transform var(--transition-base);
}

/* ホバー時の挙動（塗りつぶしボタン用：不透明度で変化） */
.btn-solid:hover {
  opacity: 0.8;
  transform: translateY(-2px);
  box-shadow: var(--shadow-md); /* */
  color: #ffffff !important;
}

.btn-solid:hover::after {
  transform: translateX(4px);
}

/* カラーバリエーション（塗りつぶし） */

/* メイン（グリーン） */
.btn-solid--main {
  background-color: var(--color-main); /* */
}

/* 歯科衛生（水色） */
.btn-solid--hygiene {
  background-color: var(--color-hygiene); /* */
}

/* 看護（ピンク） */
.btn-solid--nursing {
  background-color: var(--color-nursing); /* */
}

/* --- Headings（トップページ等で使用中）--- */
.c-heading {
  padding-top: 2rem;
  font-size: var(--fs-heading-md);
  font-weight: var(--fw-bold);
  position: relative;
  text-align: center;
}

/* --- ストライプ下線付き見出し --- */
.c-heading-striped {
  position: relative;
  text-align: center;
  margin-bottom: var(--spacing-md);
  padding-bottom: 1.2rem;
  /* 共通設定：メインカラーのテキストと斜めストライプ */
  color: var(--color-main);
  font-weight: var(--fw-bold);
  font-size: var(--fs-heading-h3); /* 他のH3とサイズを統一（PC:24px / SP:20px） */
  line-height: var(--lh-tight);
  background-image: repeating-linear-gradient(
    -45deg,
    transparent,
    transparent 3px,
    var(--color-main) 3px, 
    var(--color-main) 6px
  );
  background-repeat: no-repeat;
  background-position: bottom center;
}

/* PC：下線は50%幅 */
@media (min-width: 769px) {
  .c-heading-striped {
    background-size: 80% 8px;
  }
}

/* スマホ：下線は100%幅 */
@media (max-width: 768px) {
  .c-heading-striped {
    background-size: 100% 8px;
  }
}



/* --- Buttons (p-portal-bannerで使用) --- */
.btn2 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 32px;
  font-weight: var(--fw-bold);
  text-decoration: none;
  border-radius: var(--radius-sm);
  transition: background-color var(--transition-base), opacity var(--transition-base);
  cursor: pointer;
  border: none;
}

.btn--black {
  background-color: var(--color-gray-900);
  color: #ffffff;
}

.btn--black:hover {
  opacity: 0.8;
  color: #ffffff;
}



/* --- テキスト装飾：下線ユーティリティ --- */

/* 標準の下線（文字色と同じ色） */
.u-text-underline {
  text-decoration: underline !important;
  text-underline-offset: 0.3em; /* 文字との間に適度な空間を確保 */
  text-decoration-thickness: 1px;
}






.c-heading::before {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: -0.2em;
  font-size: 2em;
  color: var(--color-bg-light);
  letter-spacing: 0.05em;
  line-height: 1;
  z-index: -1;
}

.c-heading__sub {
  display: block;
  font-size: var(--fs-sm);
  color: var(--color-main);
  font-weight: var(--fw-bold);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 0.5em;
}

.c-heading__icon {
  font-size: 0.8em;
  margin-left: 0.3em;
  vertical-align: middle;
}

@media (max-width: 768px) {
  .c-heading {
    padding-top: 1.5rem;
  }
  .c-heading::before {
    left: 30%;
    font-size: 0.8em;
  }
}

/* --- Card --- */
.c-card {
  background-color: #ffffff;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  height: 100%;
}

.c-card__media {
  margin: 0;
  width: 100%;
}

.c-card__media img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}

.c-card__body {
  padding: 10px 0; /* 左右を0にして画像と端を揃える（理想画像準拠） */
}

.p-page-header__lead {
  font-size: var(--fs-heading-h2); /* H2と同じサイズ（26px相当）を確実に適用 */
  font-weight: var(--fw-bold);
  color: var(--color-gray-700) ;
}

/* ==========================================================================
   6. Utility
   --------------------------------------------------------------------------
   調整用クラス、ヘルパー
   ========================================================================== */

/* --- レスポンシブ表示切り替え --- */
.u-none_pc { display: none; }
.u-none_sp { display: block; }

@media (max-width: 768px) {
  .u-none_pc { display: block; }
  .u-none_sp { display: none; }
}

/* --- テキスト配置 --- */
.u-ta_center { text-align: center !important; }
.u-ta_left   { text-align: left   !important; }
.u-ta_right  { text-align: right  !important; }

/* --- マージン調整 --- */
.u-mt-20 { margin-top: 20px !important; }
.u-mt-30 { margin-top: 30px !important; }
.u-mt-40 { margin-top: 40px !important; }
.u-mt-50 { margin-top: 50px !important; }
.u-mt-60 { margin-top: 60px !important; }

/* --- マージン調整（Margin Bottom: 0-60px） --- */
.u-mb-0  { margin-bottom:  0px !important; }
.u-mb-10 { margin-bottom: 10px !important; }
.u-mb-20 { margin-bottom: 20px !important; }
.u-mb-30 { margin-bottom: 30px !important; }
.u-mb-40 { margin-bottom: 40px !important; }
.u-mb-50 { margin-bottom: 50px !important; }
.u-mb-60 { margin-bottom: 60px !important; }
.u-mb-80 { margin-bottom: 80px !important; }
.u-mb-100 { margin-bottom: 100px !important; }
.u-mb-150 { margin-bottom: 150px !important; }

/* 画像：レスポンシブサイズ制御 */
.u-img-sm { max-width: 300px; width: 100%; height: auto; display: block; margin: 40px auto !important; }
.u-img-md { max-width: 500px; width: 100%; height: auto; display: block; margin: 40px auto !important; }
.u-img-lg { max-width: 700px; width: 100%; height: auto; display: block; margin: 40px auto !important; }

/* --- 学科カラー --- */
.u-color_hygiene { color: var(--color-hygiene); }
.u-color_nursing { color: var(--color-nursing); }
.u-bg_hygiene    { background-color: var(--color-hygiene); color: #fff; }
.u-bg_nursing    { background-color: var(--color-nursing); color: #fff; }

/* 学科ごとに連動するメインカラーをテキストに適用するユーティリティ */
.u-color-main {
  color: var(--color-main) !important;
}

/* 汎用背景クラス（背景色と白文字をセット） */
.u-bg-main {
  background-color: var(--color-main) !important;
  color: #ffffff !important;
}

.u-bg-hygiene {
  background-color: var(--color-hygiene) !important;
  color: #ffffff !important;
}

.u-bg-nursing {
  background-color: var(--color-nursing) !important;
  color: #ffffff !important;
}

/* --- アクセントカラー --- */
.u-text-accent02 { color: var(--color-accent02); }
.u-text-accent03 { color: var(--color-accent03); }

 .u-text-red { color: red; }

/* --- イメージに角丸追加 --- */
.u-radius-lg {
  border-radius: var(--radius-lg) !important;
}

/* --- フォントウェイト --- */
.u-fw-bold {
  font-weight: var(--fw-bold) !important; /* 700 を適用 */
}

/* --- テーブル関連ユーティリティ --- */

/* パーセント指定：比率で調整したいとき用 */
.u-w_p1  { width: 1%   !important; }
.u-w_p10 { width: 10%  !important; }
.u-w_p15 { width: 15%  !important; }
.u-w_p20 { width: 20%  !important; }
.u-w_p25 { width: 25%  !important; }
.u-w_p30 { width: 30%  !important; }

/* ピクセル指定：日付などの文字数固定用 */
.u-w_180 { width: 180px !important; }
.u-w_200 { width: 200px !important; }
.u-w_220 { width: 220px !important; }
.u-w_240 { width: 240px !important; } 
.u-w_260 { width: 260px !important; }
.u-w_280 { width: 280px !important; }

.u-fill_main  { background-color: var(--color-primary); color: #fff; }
.u-fill_main2 { background-color: var(--color-gray-200); }
.u-bg_gray1   { background-color: var(--color-gray-50); }

.b-r_none { border-right: none !important; }
.b-l_none { border-left:  none !important; }

.sticky_c {
  position: sticky;
  left: 0;
  background: var(--color-gray-50);
  z-index: 1;
}

/* 外部リンクアイコンを非表示にするユーティリティクラス */
.u-no-ext-icon::after {
  content: none !important; /* 既存のアイコン設定を上書きして削除 */
}

/* フェーズ7-B で具体的なスタイルを定義予定 */
.u-w-sp_full23 {}
.table-col {}

/* --- アクセシビリティ --- */
.u-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* --- FontAwesome Global Fixes --- */
.site-header__sns-link i.fa-brands {
  font-weight: 400;
  font-family: "Font Awesome 6 Brands";
  display: inline-block;
}

.site-header__sns-link i.fa-solid,
.site-header__search-icon i.fa-solid,
.btn-header-action i.fa-solid {
  font-weight: 900;
  font-family: "Font Awesome 6 Free";
}

/* --- リスト：汎用ユーティリティ --- */

/* 1. 完全に余白と記号を消す（メニューやボタン風の並びに） */
.u-list-none {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* --- 注意書きリスト（※マーク自動付与） --- */
.c-list-caution {
  list-style: none;
  padding-left: 0;
  margin: var(--spacing-md) 0;
}

.c-list-caution li {
  position: relative;
  padding-left: 1.5em;
  line-height: var(--lh-relaxed);
  margin-bottom: var(--spacing-sm);
  font-size: var(--fs-base);
  color: var(--color-gray-700);
}

.c-list-caution li:last-child {
  margin-bottom: 0;
}

.c-list-caution li::before {
  content: "※";
  position: absolute;
  left: 0;
  top: 0;
  font-size: var(--fs-base);
  color: var(--color-gray-700);
  line-height: var(--lh-relaxed);
}

/* --- 番号付きリスト --- */
.c-list-numbered {
  list-style: decimal;
  padding-left: 1.5em;
  margin: var(--spacing-md) 0;
}

.c-list-numbered li {
  line-height: var(--lh-relaxed); /* 1.8 */
  margin-bottom: var(--spacing-sm); /* 8px */
  font-size: var(--fs-base);
  color: var(--color-gray-700);
  padding-left: 0.25em; /* 数字とテキストの間隔 */
}

.c-list-numbered li:last-child {
  margin-bottom: 0;
}

/* ネストされたulリストの調整 */
.c-list-numbered .c-list {
  margin-top: var(--spacing-sm);
  margin-bottom: 0;
}

/* カッコ数字リスト */

/* カッコ数字リスト（短縮版） */
.c-list-paren {
  list-style: none; 
  counter-reset: p-item; /* カウンター名も短縮 */
  padding-left: 0;
  margin-top: 10px;
}

.c-list-paren > li {
  counter-increment: p-item;
  position: relative;
  padding-left: 2.2em; /* 余白を微調整 */
  margin-bottom: 8px;
}

.c-list-paren > li::before {
  content: "(" counter(p-item) ")"; /* カッコ数字を生成 */
  position: absolute;
  left: 0.2em;
  color: var(--color-gray-700); 
  font-weight: normal;
}

/* content.css への追加 */

/* --- 箇条書き：極小版（テーブル内や狭いエリア用） --- */
.c-list-tight {
  list-style: none;
  padding-left: 0 !important;
  margin: 0 !important; /* 外側の余白をゼロに */
}

.c-list-tight li {
  position: relative;
  padding-left: 1.1em !important; /* インデントを少し詰める */
  line-height: 1.3 !important;   /* 行間を凝縮 */
  margin-bottom: 2px !important;  /* 項目間の隙間を最小に */
  font-size: 0.9em;               /* 親要素の文字サイズより一回り小さく */
}

.c-list-tight li::before {
  content: "";
  position: absolute;
  left: 0.2em;
  top: 0.55em; /* 行間に合わせてドットの位置を微調整 */
  width: 4px;  /* ドットを少し小さく */
  height: 4px;
  background-color: currentColor;
  border-radius: 50%;
  opacity: 0.6;
}


/* ==========================================================================
   7. Subpage Common Styles（下層ページ共通スタイル）
   --------------------------------------------------------------------------
   - パンくずリスト（.c-breadcrumbs）
   - ページヘッダー（.p-page-header）
   - コンテンツ領域（.p-page-content）
   ========================================================================== */


.page-header__breadcrumb-bar {
  width: 100%;
  border-bottom: 1px solid var(--color-border);
  padding-top: 4px;
}

.c-breadcrumbs {
  padding-block: 15px;
}

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

.c-breadcrumbs__item {
  font-size: var(--fs-xs);
  color: var(--color-gray-700);
}

.c-breadcrumbs__item a {
  text-decoration: none;
  color: inherit;
}

.c-breadcrumbs__item a:hover {
  text-decoration: underline;
}

.c-breadcrumbs__item:not(:last-child)::after {
  content: ">";
  margin-left: 8px;
  color: var(--color-gray-400);
  display: inline-block;
}

.p-page-header {
  background-color: #fff;
  padding-top: 60px;
  padding-bottom: 40px;
}

.p-page-header__category {
  color: var(--color-main);
  font-size: var(--fs-base);
  font-weight: var(--fw-bold);
  margin-bottom: 8px;
  display: block;
}

.p-page-header__title {
  font-size: clamp(1.75rem, 2rem + 1vw, 2.5rem);
  font-weight: var(--fw-bold);
  line-height: var(--lh-tight);
  margin: 0;
  color: var(--color-gray-700);
}

.p-page-content {
  min-height: 300px;
  padding-block: 60px;
}


/* ==========================================================================
   Print Styles (ナビゲーション完全除外・コンテンツ重視版)
   ========================================================================== */

@media print {
  /* 1. ページ全体の基本設定 */
  html, body {
    width: 100%;
    min-width: auto;
    background-color: #fff;
    color: #000;
  }

  body {
    padding-top: 0; /* ヘッダー固定用の余白を削除 */
    transform: none;
  }

  /* 2. ナビゲーション・トピックナビを非表示 */
  html body .site-header__nav-wrapper, /* ヘッダー内PCナビ */
  html body .global-nav,               /* メインナビ全体 */
  html body .global-nav__secondary,     /* トピックナビ（PICKUP）★追加 */
  html body .site-header__toggle,      /* SPメニューボタン */
  html body .floating-cta,             /* 追従バナー */
  html body .page-header__breadcrumb-bar, /* パンくずリスト */
  html body .site-footer__upper,       /* フッターサイトマップ */
  html body .site-footer__sns,         /* フッターSNS */
  html body .site-footer__pagetop {    /* トップへ戻るボタン */
    display: none;
  }

  /* 3. ヘッダー・フッターの最小構成 */
  html body .site-header {
    position: static;
    display: block;
    border-bottom: 1px solid var(--color-border-light);
  }

  html body .site-header__brand {
    padding-left: 0;
    padding-block: 10px;
  }

  html body .site-header__logo img {
    width: 200px;
  }

  html body .site-footer {
    position: static;
    display: block;
    background-color: #fff;
    color: #000;
    border-top: 1px solid var(--color-border-light);
  }

  html body .site-footer__lower-main {
    border-top: none;
  }

  /* 4. アコーディオンの全展開（維持） */
  html body .c-accordion-content {
    display: block;
    max-height: none;
    opacity: 1;
    visibility: visible;
    border-top: 1px solid var(--color-border-light);
  }

  html body .c-accordion-trigger {
    cursor: default;
    pointer-events: none;
  }

  html body .c-accordion-trigger::after,
  html body .c-accordion__arrow {
    display: none;
  }

  /* 5. カラー出力許可 */
  * {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
}

/* ==========================================================================
   Project: Page Header (.p-page-header)
   -------------------------------------------------------------------------- */

/* --- 1. Base: 共通構造 --- */
.p-page-header {
  position: relative;
  background-color: var(--color-gray-100);
  background-size: cover;
  background-position: center;
  padding-top: 80px;
  padding-bottom: 100px;
  overflow: hidden;
  color: #ffffff !important;

  /* 透過度を制御する変数（デフォルトは1 = ベタ塗り） */
  --header-overlay-opacity: 1;
}

/* 学科カラー連動オーバーレイ */
.p-page-header::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: var(--color-main);
  /* 変数を使用して透過度を適用 */
  opacity: var(--header-overlay-opacity);
  z-index: 1;
  transition: opacity var(--transition-base); /* 変更時の滑らかさ用 */
}

.p-page-header__inner {
  position: relative;
  z-index: 2;
}

/* テキストの視認性確保 */
.p-page-header__category,
.p-page-header__title {
  color: #ffffff !important;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
}

/* --- 2. Modifiers: 画像がある場合は透過度を変更 --- */

/* 背景画像を持つModifierに共通のルール（[class*="--"] または個別指定） */
.p-page-header[class*="--"] {
  --header-overlay-opacity: 0.1; /* 画像がある時は透過させる */
}

/* 歯科衛生学科：学びの魅力 */
.p-page-header--hygiene-feature {
  background-image: url('/assets/img/hygiene/title/hygiene_feature_header_bg.jpg');
}

.p-page-header--hygiene-job{
  background-image: url('/assets/img/hygiene/title/hygiene_job_header_bg.jpg');
}

.p-page-header--hygiene-voice{
  background-image: url('/assets/img/hygiene/title/hygiene_voice_header_bg.jpg');
}

.p-page-header--hygiene-nationalexam{
  background-image: url('/assets/img/hygiene/title/hygiene_nationalexam_header_bg.jpg');
}

.p-page-header--hygiene-career{
  background-image: url('/assets/img/hygiene/title/hygiene_career_header_bg.jpg');
}

.p-page-header--hygiene-facility{
  background-image: url('/assets/img/hygiene/title/hygiene_facility_header_bg.jpg');
}



/* 看護学科：学びの魅力 */

.p-page-header--nursing-feature {
  background-image: url('/assets/img/nursing/title/nursing_feature_header_bg.jpg');
}

.p-page-header--nursing-job{
  background-image: url('/assets/img/nursing/title/nursing_job_header_bg.jpg');
}

.p-page-header--nursing-voice{
  background-image: url('/assets/img/nursing/title/nursing_voice_header_bg.jpg');
}

.p-page-header--nursing-nationalexam{
  background-image: url('/assets/img/nursing/title/nursing_nationalexam_header_bg.jpg');
}

.p-page-header--nursing-career{
  background-image: url('/assets/img/nursing/title/nursing_career_header_bg.jpg');
}

.p-page-header--nursing-facility{
  background-image: url('/assets/img/nursing/title/nursing_facility_header_bg.jpg');
}

/* --- 3. Responsive --- */
@media (max-width: 768px) {
  .p-page-header {
    padding-top: 60px;
    padding-bottom: 40px;
  }
}


/* ==========================================================================
   Project: Sub Visual Slider (Compact Carousel Style)
   --------------------------------------------------------------------------
   中央のスライドを強調し、左右をチラ見せさせるコンパクトなスライダー。
   ========================================================================== */

.p-page-visual {
  position: relative;
  background-color: #ffffff; /* グリッド背景を削除 */
padding-top: 40px;    /* 上の空きは維持 */
  padding-bottom: 0;    /* ★ 下の内部余白を削除 */
  margin-bottom: 0;  /* ★ 下の外部余白を最小限に */
  overflow: hidden;
  margin-bottom: var(--spacing-xl);
}

.p-page-visual .swiper {
  overflow: visible; /* 左右のスライドはみ出しを許可 */
  max-width: 1200px; 
  margin: 0 auto;
}

.p-page-visual .swiper-slide {
  /* PC版：タイトルより一回り小さい幅に設定 */
  width: 480px; 
  transition: transform 0.5s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.5s ease;
  opacity: 0.2; /* 非アクティブは薄く */
  transform: scale(0.8); /* 非アクティブは小さく */
}

/* 中央のアクティブスライドを強調 */
.p-page-visual .swiper-slide-active {
  opacity: 1;
  transform: scale(1);
  z-index: 2;
}

.p-page-visual img {
  width: 100%;
  aspect-ratio: 3 / 2; /* 3:2比率でコンパクトに */
  object-fit: cover;
  border-radius: 10px; /* 軽い角丸 */
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

/* スライダーのスマホ対応 */
@media (max-width: 768px) {
  .p-page-visual {
    padding-block: 30px;
    background-size: 20px 20px;
  }
  .p-page-visual .swiper-slide {
    width: 280px; /* スマホ画面に収まるサイズ */
    opacity: 0.3;
    transform: scale(0.85);
  }
  .p-page-visual .swiper-slide-active {
    opacity: 1;
    transform: scale(1);
    z-index: 2;
  }
}