/* --- トップモジュール読み込み --- */
.top-page{
    padding-bottom: 90px;
}

/* 外枠：ここを基準にする */
.main-visual {
  position: relative;
  width: 100%;
  height: calc(100vh - 142px);
  overflow: hidden;
}

/* 画像：背面に敷く */
.mv-image {
  width: 100%;
  height: 100%;
}

.mv-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.mv-copy-area {
    position: absolute;
    top: 35%;
    left: 10%; /* 少し左に寄せるのが今風のレイアウトです */
    transform: translateY(-50%);
    z-index: 5; /* 画像(1)より上で、ボタン(10)より下の層 */
    color: #fff;
    font-weight: 400;
    text-shadow: 0 0 20px rgba(0,0,0,0.5); /* 文字に影をつけて読みやすくする */
}

.mv-copy-area h2 {
    font-family: "Yu Mincho", "YuMincho", serif;
}

.mv-image::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.2);
    z-index: 2;
}

/* メインのキャッチコピー */
.mv-copy-area h2 {
    font-size: 36px; /* ドカンと大きく */
    font-weight: bold;
    line-height: 1.3;
    letter-spacing: 0.15em;
    margin: 0;
}

/* ボタン：画像の上に重なるように右端へ固定 */
.side-tile-menu {
  position: absolute;
    bottom: 0;
  right: 0; /* 右端にピタッとつける（少し浮かせたいなら20pxなどに変更） */
  display: flex;
  flex-direction: column;
  z-index: 10; /* 画像より上に表示 */
}

/* 四角いボタン（サイズを少し調整して「タイル」らしく） */
.tile-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: clamp(100px, 11vw, 130px);
 height: clamp(100px, 11vw, 130px);
  color: #fff;
  text-decoration: none;
  /* 右端を少し削るか、透明度を上げると画像が活きます */
  background-color: rgba(0, 75, 147, 0.85); 
  transition: all 0.3s ease;
}

/* ホバー時の演出：左に少しだけ飛び出すと「押せる感」が出ます */
.tile-item:hover {
  transform: translateX(-10px); 
  background-color: rgba(0, 75, 147, 1);
}

/* アイコン：もし表示されない場合は、ここにwebフォント設定が必要です */
.tile-item i {
  font-size: 32px;
  margin-bottom: 8px;
}

.tile-item span {
  font-size: 11px;
  font-weight: bold;
  text-align: center;
  padding: 0 5px;
}

/* 色分け */
.tile-item.exam   { background-color: rgba(0, 159, 212); }
.tile-item.campus { background-color: rgba(0, 159, 212); }
.tile-item.access { background-color: rgba(0, 159, 212); }

.news-title-h{
    font-size: 36px;
    padding-top: 90px;
    color: #000;
    letter-spacing: 0.1em;
    font-weight: bold;
}

.news-title-h span{
    font-size: 18px;
    padding: 5px;
    color: #009FD4;
    letter-spacing: 0.1em;
}

/* --- 1. お知らせ全体のコンテナ --- */
.news-section {
    padding: 60px 0; /* 上下にたっぷり余白を取る */
}

/* --- 2. フィルターボタンのエリア --- */
.news-filter {
    display: flex;
    gap: 12px;
    margin-bottom: 30px;
    flex-wrap: wrap; /* スマホで折り返せるように */
}

.filter-btn {
    padding: 8px 24px;
    border: 1px solid #009FD4; /* ロゴに合わせた濃い青 */
    background-color: #fff;
    color: #009FD4;
    cursor: pointer;
    font-size: 14px;
    font-weight: bold;
    border-radius: 4px;
    transition: all 0.3s ease;
}

/* ボタン：ホバー時と選択時（active） */
.filter-btn:hover,
.filter-btn.active {
    background-color: #009FD4;
    color: #fff;
}

/* --- 3. お知らせリスト --- */
.news-list {
    list-style: none;
    padding: 0;
    margin: 0;
    border-top: 2px solid #333; /* リストの始まりを強調 */
}

.news-item {
    display: flex;
    align-items: center;
    padding: 20px 0;
    border-bottom: 1px solid #ddd;
    transition: background-color 0.2s;
}

.news-item:hover {
    background-color: #fafafa; /* マウスを乗せるとわずかに色が変わる */
}

/* --- 1. お知らせ全体のコンテナ --- */
.news-section {
    padding: 60px 0; /* 上下にたっぷり余白を取る */
}

/* --- 2. フィルターボタンのエリア --- */
.news-filter {
    display: flex;
    gap: 12px;
    margin-bottom: 30px;
    flex-wrap: wrap; /* スマホで折り返せるように */
}

.filter-btn {
    padding: 8px 24px;
    border: 1px solid #009FD4; /* ロゴに合わせた濃い青 */
    background-color: #fff;
    color: #009FD4;
    cursor: pointer;
    font-size: 14px;
    font-weight: bold;
    border-radius: 4px;
    transition: all 0.3s ease;
}

/* ボタン：ホバー時と選択時（active） */
.filter-btn:hover,
.filter-btn.active {
    background-color: #009FD4;
    color: #fff;
}

/* --- 3. お知らせリスト --- */
.news-list {
    list-style: none;
    padding: 0;
    margin: 0;
    border-top: 2px solid #333; /* リストの始まりを強調 */
}

.news-item {
    display: flex;
    align-items: center;
    padding: 20px 0;
    border-bottom: 1px solid #ddd;
    transition: background-color 0.2s;
}

.news-item:hover {
    background-color: #fafafa; /* マウスを乗せるとわずかに色が変わる */
}

/* 日付とラベルを囲むボックス（ここを固定幅にするのがプロの技） */
.news-meta {
    display: flex;
    align-items: center;
    flex-shrink: 0; /* 幅を固定して縮ませない */
    width: 280px;  /* ここを調整してタイトルの位置を揃える */
}

.date {
    font-family: 'Helvetica', 'Arial', sans-serif;
    font-size: 15px;
    color: #666;
    margin-right: 25px;
}

.label {
    font-size: 11px;
    font-weight: bold;
    padding: 3px 12px;
    background-color: #eee;
    border-radius: 2px;
    color: #333;
    text-align: center;
    min-width: 80px;
}

/* --- 4. 記事タイトル --- */
.news-title {
    flex-grow: 1;
    font-size: 16px;
    color: #333;
    text-decoration: none;
    line-height: 1.5;
    /* 長すぎるタイトルを「...」にする設定（お好みで） */
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.news-title:hover {
    color: #009FD4;
    text-decoration: underline;
}

.news-btn{
    display: flex;
    justify-content: flex-end;
}

.news-btn a{
    padding: 16px 64px;
    border: 1px solid #009FD4; /* ロゴに合わせた濃い青 */
    background-color: #fff;
    color: #009FD4;
    cursor: pointer;
    font-size: 16px;
    font-weight: bold;
    border-radius: 50px;
    transition: all 0.3s ease;
    text-decoration: none;
}

.news-btn a:hover{
    color: #fff;
    background-color: #009FD4;
}

.top-course-title{
    display: flex;
    gap: 50px;
    font-weight: bold;
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 20px 90px 20px;
}

.top-course-title h2{
    font-size: 36px;
    line-height: 1.5;
    letter-spacing: 0.15em;
}

.top-course-title span{
    color: #009FD4;
    font-size: 24px;
}

.course-containar{
    max-width: 1280px;
    margin: 0 auto;
}

.course-head{
    width: 100%;
    background-color: #2355A3;
    padding: 29px 0;
}

.course-head h3{
    max-width: 1280px;
    margin: 0 auto;
    font-size: 28px;
    letter-spacing: 0.15em;
    color: #fff;
    padding: 0 20px;
    font-weight: bold;
    display: flex;
    flex-direction: column; /* 縦に並べる */
    align-items: flex-start;
}

.course-head span{
    font-size: 16px;
    color:#fff;
    align-self: flex-end;
}

/* 全体コンテナ */
.top-course-container {
  width: 100%;
}

/* 共通セクション設定 */
.course-split {
  display: flex;
  width: 100%;
  height: 500px; /* PCでの高さ */
  overflow: hidden;
}

/* 左側：写真エリア */
.split-visual {
  width: 50%;
}
.split-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover; /* 写真を歪ませずにフィットさせる */
}

/* 右側：テキストエリア */
.split-info {
  width: 50%;
  display: flex;
  align-items: center;
  padding: 60px;
  color: #ffffff; /* 文字は白 */
}

.info-inner {
  max-width: 500px;
}

/* 各学科の背景色 */
.blue .split-info { background-color: #2355A3; }
.orange .split-info { background-color: #ff6f00; }
.green .split-info { background-color: #239500; }

/* テキスト装飾 */
.category-label {
  display: block;
  font-size: 14px;
  letter-spacing: 0.2em;
  margin-bottom: 10px;
  opacity: 0.8;
}
.course-name {
  font-size: 32px;
  font-weight: bold;
  margin-bottom: 20px;
}
.course-desc {
  font-size: 16px;
  line-height: 1.8;
  margin-bottom: 30px;
}

/* ボタン */
.btn-view {
  display: inline-block;
  padding: 12px 40px;
  border: 1px solid #ffffff;
  color: #ffffff;
  text-decoration: none;
  transition: all 0.3s;
}
.btn-view:hover {
  background-color: #ffffff;
  color: #333333;
}

/* 写真エリアの修正 */
.split-visual {
    width: 50%;
    overflow: hidden; /* 枠からはみ出さないように */
    position: relative;
}

.split-visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1.2s ease; /* ゆっくり動かすのがコツ */
}

/* ホバーした時に少し拡大しながら右へ動かす */
.course-split:hover .split-visual img {
    transform: scale(1.1) translateX(10px);
}

/* スマホ対応（768px以下で縦並び） */
@media (max-width: 768px) {
  .course-split {
    flex-direction: column;
    height: auto;
  }
  .split-visual, .split-info {
    width: 100%;
  }
  .split-visual {
    height: 250px;
  }
}

.contact{
    background-color: #009FD4;
}

.contact-containar {
    max-width: 1280px;
    margin: 0 auto;
    display: flex;
    padding: 90px 20px;
    gap: 150px; /* あなたが指定した元のgapを維持 */
    position: relative; /* 線の基準にする */
}

/* 左右のブロックを均等にする */
.contact-item {
    flex: 1; 
}

.contact-item:first-child::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%); /* コンテナの真ん中に配置 */
    
    width: 1px;         /* 線の太さ */
    height: 164px;      /* 線の長さ（お好みで調整） */
    background-color: rgba(255, 255, 255);
}

.contact-title {
    font-size: 30px;
    font-weight: bold;
    color: #fff;
    line-height: 1.4;
    margin-bottom: 20px; /* 下との間隔 */
}

.contact-under {
    display: flex;
    align-items: flex-end; /* テキストとボタンを下揃えに */
    gap: 30px;
    justify-content: space-between;
}

.contact-text {
    font-size: 16px;
    color: #fff;
    margin: 0;
    flex: 1; /* テキストがボタンを押し出す */
}

.contact-btn a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 60px;  /* サイズを固定 */
    height: 60px;
    border-radius: 50%;
    background-color: #009FD4;
    border: 1px solid #fff;
    color: #fff;
    text-decoration: none;
    font-size: 24px;
    transition: 0.3s;
}

.contact-btn a:hover {
    background-color: #fff;
    color: #009FD4;
}

.link-title{
    font-size: 36px;
    color: #000;
    font-weight: bold;
}

.link-title span{
    font-size: 18px;
    color: #009FD4;
}

.link-containar{
    display: flex;
    gap: 20px;
    padding: 90px 0;
    flex-wrap: wrap;

}

.link-item{
    width: calc((100% - 40px) / 3); 
    
    display: flex;
    align-items: center;
    justify-content: center;
    height: 80px; 
    
    background-color: #f4f4f4;
    color: #333;
    text-decoration: none;
    font-weight: bold;
    border: 1px solid #ddd;
    transition: 0.3s;
    box-sizing: border-box; /* 枠線を含めて幅を計算する */
}

.link-item i {
    margin-right: 8px; /* アイコンと文字の間の隙間だけ設定 */
    /* 色を指定しないことで、親要素（aタグ）と同じ色になります */
}

.link-item:hover {
    background-color: #009FD4;
    color: #fff;
    border-color: #009FD4;
}

.link-item:nth-child(n+4)::before {
    content: "";
    /* 1. 小さすぎるのを解消：20px → 28px〜32px */
    width: 28px; 
    height: 28px;
    
    /* 2. 文字との間隔を適切に */
    margin-right: 12px;
    
    background-image: url("https://www.cab.mlit.go.jp/asc//yotubelogo.svg");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center; /* 枠の中央に配置 */

    /* 3. 重要：アイコンが上に浮かないようにする魔法 */
    display: inline-block; /* 必須 */
    flex-shrink: 0;        /* ボタンが狭くなってもアイコンが潰れない */
    position: relative;
    top: 2px;              /* ★これで物理的に数ピクセル下げて文字の高さに合わせる */
}

.link-btn {
  margin-left: auto;
  width: 100%; /* 単独で1行占有 */
  display: flex;
  justify-content: flex-end;
}

.link-btn a{
  color: #337ab7;
}

/* =================================
   ▼ レスポンシブ最適化（768px以下）
================================= */
@media (max-width: 768px) {

  /* =============================
     メインビジュアル
  ============================= */
  .main-visual {
    height: 70vh;
  }

  .mv-copy-area {
    top: 45%;
    left: 20px;
    right: 20px;
  }

  .mv-copy-area h2 {
    font-size: 22px;
    letter-spacing: 0.1em;
  }


  .tile-item {
    width: 33.33%;
    height: 90px;
    font-size: 12px;
  }

  .tile-item i {
    font-size: 20px;
  }

  /* =============================
     ニュース
  ============================= */
    .news-list {
    padding: 0;
    margin: 0;
    list-style: none;
  }

  .news-item {
    display: flex;
    flex-direction: column; /* 縦並びにする */
    margin-bottom: 20px;
    border-bottom: 1px solid #eee;
    padding-bottom: 12px;
  }

  .news-meta {
    font-size: 0.8rem;
    margin-bottom: 6px;
  }

  .news-title {
    display: block;      /* 消えないように */
    font-size: 1rem;     /* 小さめに調整 */
    line-height: 1.4;    /* 読みやすく */
    color: #333;
    text-decoration: none;
    word-break: break-word; /* 長いタイトルも折り返す */
  }

  .news-title:hover {
    text-decoration: underline;
  }

  .news-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 12px;
  }

  .filter-btn {
    flex: 1 1 auto; /* ボタンを横並びで縮小可能に */
    text-align: center;
    font-size: 12px;
    padding: 6px 8px;
  }

  .news-btn a {
    padding: 10px 30px;
    font-size: 14px;
  }

  /* =============================
     コースセクション
  ============================= */
  .top-course-title {
        display: flex;
        flex-direction: row;          /* ← 縦並びを解除 */
        align-items: center;
        justify-content: space-between;
        gap: 15px;
        padding: 30px 20px 50px 20px;
    }

    .top-course-title h2 {
        font-size: 22px;
        line-height: 1.4;
    }

    .top-course-title img {
        width: 80px;   /* ← 画像を小さく */
        height: auto;
        flex-shrink: 0;
    }


  .course-head h3 {
    font-size: 20px;
  }

  .split-info {
    padding: 30px 20px;
  }

  .course-name {
    font-size: 22px;
  }

  .course-desc {
    font-size: 14px;
  }

  /* =============================
     コンタクト
  ============================= */
  .contact-containar {
    flex-direction: column;
    gap: 50px;
    padding: 60px 20px;
  }

  .contact-item:first-child::after {
    display: none; /* 真ん中の縦線を消す */
  }

  .contact-title {
    font-size: 22px;
  }

  .contact-under {
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
  }

 .link-containar {
        flex-direction: column;
        gap: 15px;
        padding: 60px 20px;
    }

    .link-item {
        width: 100%;
        height: 60px;
    }

}

/* =============================
   スマホでもMVボタンを表示
============================= */
@media (max-width: 768px) {

    .side-tile-menu {
        position: absolute;   /* staticにしていたら戻す */
        bottom: 0;
        right: 0;
        flex-direction: column;
        z-index: 10;
    }

    .tile-item {
        width: 80px;   /* 小さく */
        height: 80px;
    }

    .tile-item i {
        font-size: 18px;
    }

    .tile-item span {
        font-size: 10px;
    }

}



/* --- 共通モジュール読み込み --- */


/* --- ヘッダー用モジュール読み込み --- */
body{
 width: auto;
 margin: 0 auto;
}

header {
    width: 100%;
    background-color: #fff;
}

/* ★共通の「中身を中央に寄せる」ための箱 */
.containar{
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 20px;
}

.header-top{
    display: flex;
    height: 110px;           /* ヘッダーの高さ */
    align-items: center;    /* 縦中央 */
}

/* ロゴ全体のリンクエリア */
.header-logo a {
    text-decoration: none;
    display: inline-block; /* 領域を中身に合わせる */
}

/* 画像とテキストエリアを横に並べる箱 */
.header-logo-containar {
    display: flex;        /* 画像とテキストを横に並べる */
    align-items: center;  /* 上下中央揃え */
    flex-wrap: nowrap;    /* 絶対に折り返さない */
    width: max-content;   /* 中身のサイズに合わせる */
}

.header-logo-containar img{
  padding: 5px;
  flex-shrink: 0;       /* 画面が狭くなっても画像を潰さない */
    height: 110px;        /* 高さを固定 */
    width: auto;
}

/* テキストエリアの設定 */
.header-logo-text-area {
    display: flex;
    flex-direction: column; /* 上から下に並べる */
    justify-content: center;
    line-height: 1.2;  
    margin-left: 15px;    /* 画像との余白 */
    flex-shrink: 0;       /* テキストエリアも潰さない */
    white-space: nowrap;  /* 文字の途中で改行させない */
    text-align: left;    /* 行間を詰め気味にして引き締める */
}

/* 各テキストのスタイル */
.header-logo-text-1 {
    font-size: 18px;
    font-weight: bold;
    margin: 0;
}

.header-logo-text {
    font-size: 32px;
    font-weight: bold;
    margin: 2px 0;  /* 上下に少しだけ隙間 */
}

.header-logo-text-2 {
    font-size: 16px;
    letter-spacing: 0.05em; /* 英語は少し字間を広げるとプロっぽい */
    margin: 0;
}


.header-logo,
.header-serch,
.header-button {
  flex: 1;
}

.header-serch{
    display: flex;
  justify-content: center;
}

.header-serch form {
  display: flex;
  align-items: center;
}

.header-serch input,
.header-serch button {
  padding: 10px;
  box-sizing: border-box;
  border: 1px solid #f0f0f0;
}

.header-button{
  display: flex;
  gap: 10px;           /* ボタン同士の間隔 */
  flex-wrap: nowrap;   /* 絶対に縦に並べない */
  align-items: center;
 justify-content: flex-end;
}

.btn {
  white-space: nowrap; /* 文字を一行に強制する */
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 15px;  /* 適切な余白 */
  text-decoration: none;
  flex-shrink: 0;      /* 親が狭くなってもボタン自身は縮まない */
  background-color: #009FD4;
  color: #fff;
}

/* 右向き三角形 */
.btn::after {
  content: "";
  display: inline-block;
  margin-left: 8px;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 5px 0 5px 6px;
  border-color: transparent transparent transparent #fff;
  border-radius: 2px;
  transition: transform 0.3s ease;
}

/* hover */
.btn:hover {
  background-color: #009FD4;
}

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

/* ========== ナビ全体 ========== */
.header-nav {
  width: 100%;
    background-color: #f0f0f0; /* 背景色をここに移す */
    border-top: 1px solid #ddd;
    border-bottom: 1px solid #ddd;
}

/* ========== メインメニュー ========== */
.dropdown-menu {
  max-width: 1280px;
  display: flex;
  padding: 0;
  margin: 0 auto;
  list-style: none;

}

/* 各メニュー（均等幅） */
.dropdown-menu > li {
  flex: 1;
  position: relative;
}

/* 区切り線（左右のみ） */
.dropdown-menu > li + li {
  border-left: 1px solid #ddd;
}

/* メインリンク */
.dropdown-menu > li > a {
  display: flex;
  align-items: center;
  justify-content: center;

  width: 100%;
  padding: 16px 8px;

  box-sizing: border-box;
  color: #000;
  text-decoration: none;
  font-size: 18px;
  background-color: transparent;
}

/* hover（li基準） */
.dropdown-menu > li:hover > a {
  background-color: #e6e6e6;
}

/* ========== ▼ 三角形 ========== */
/* 1つ目以外のliにあるaタグの疑似要素に適用 */
.dropdown-menu > li:not(:first-child) > a::after {
  content: "";
  margin-left: 6px;
  width: 0;
  height: 0;
  display: inline-block; /* 念のため追加 */
  vertical-align: middle; /* 矢印の位置を微調整 */
  border-style: solid;
  border-width: 5px 4px 0 4px;
  border-color: #666 transparent transparent transparent;
  transition: transform 0.2s ease;
}

/* hoverで回転（こちらも1つ目以外に限定） */
.dropdown-menu > li:not(:first-child):hover > a::after {
  transform: rotate(180deg);
}

/* サブメニューを持たない項目用 */
.dropdown-menu > li.no-sub > a::after {
  display: none;
}

/* ========== サブメニュー ========== */
.sub-menu {
  position: absolute;
  top: 100%;
  left: 0;

  width: 100%;
  margin: 0;
  padding: 8px 0;
  list-style: none;

  background-color: #fff;
  border: 1px solid #ccc;

  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease;

  z-index: 1000;
}

.sp-contact-item {
    display: none;
}

/* 表示 */
.dropdown-menu > li:hover .sub-menu {
  opacity: 1;
  visibility: visible;
}

/* サブメニューリンク */
.sub-menu li a {
  display: block;
  padding: 8px 16px;

  color: #000;
  text-decoration: none;
  font-size: 16px;
}

/* サブ hover */
.sub-menu li a:hover {
  background-color: #e6f3fa;
}

.header-logo {
  font-size: 24px;
  font-weight: bold;
}

.header-nav-link {
  font-size: 16px;
  padding: 10px 20px;
}

/* ==========================================
   スマホ・タブレット向け (768px以下)
   ========================================== */
@media (max-width: 768px) {

  /* 1. ロゴ周りの調整：画像と文字を小さく */
  .header-top {
    height: auto; /* 高さを固定せず中身に合わせる */
    padding: 10px 0;
  }

  .header-logo-containar img {
    height: 60px; /* 元の110pxから大幅ダウン */
  }

  .header-logo-text-1 { font-size: 12px; }
  .header-logo-text   { font-size: 20px; } /* 航空保安大学校の文字 */
  .header-logo-text-2 { font-size: 10px; }

/* PCとスマホ共通の基本設定 */
.header-nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

/* --- スマホ用の設定（768px以下） --- */
@media screen and (max-width: 768px) {
    /* メニューを縦並びにする */
    .dropdown-menu {
        display: block;
        width: 100%;
    }


    /* 各リスト項目を100%幅に */
    .dropdown-menu > li {
        width: 100%;
        border-bottom: 1px solid #eee;
    }

    .dropdown-menu > li > a {
        display: block;
        padding: 15px;
        background: #fdfdfd;
        color: #333;
        text-decoration: none;
        position: relative;
        z-index: 10; /* ホームをクリック可能にするために重要 */
    }

    /* サブメニュー（スマホでは最初から表示、またはタップで見せる） */
    .sub-menu {
        display: none; /* デフォルトは隠す */
        background: #f0f0f0;
    }

    /* 親要素をホバー（またはタップ）したらサブメニューを表示 */
    .dropdown-menu > li:hover .sub-menu {
        display: block;
    }

    .sub-menu li a {
        padding: 12px 30px; /* 少し右にずらす */
        font-size: 0.9em;
        display: block;
        border-top: 1px solid #ddd;
    }
}

/* --- PC用の設定（769px以上） --- */
@media screen and (min-width: 769px) {
    .dropdown-menu {
        display: flex; /* 横並び */
        justify-content: center;
    }
    .sub-menu {
        position: absolute;
        display: none;
        /* ここにPC用ドロップダウンのスタイルを書く */
    }
    .dropdown-menu > li:hover .sub-menu {
        display: block;
    }

     .header-serch form {
        display: flex;
        gap: 8px;
        width: 100%;
    }

    .header-serch input[type="text"] {
        flex: 1;
        min-width: 0;          /* ← これ重要（はみ出し防止） */
        padding: 8px;
        box-sizing: border-box;
    }

    .header-serch button {
        padding: 8px 12px;
        white-space: nowrap;
    }

     .header-button {
        display: none;
    }

    /* ハンバーガーメニュー内に表示 */
    .sp-contact-item {
        display: block;
        margin-top: 20px;
        padding-top: 15px;
        border-top: 1px solid #ddd;
    }

    .sp-contact-item a {
        display: block;
        padding: 12px 0;
        font-weight: bold;
    }
}
}

/* ===== 印刷用スタイル ===== */
@media print {

  /* 不要な要素を非表示 */
  header,
  .header-top,
  .header-nav,
  .header-serch,
  .header-button,
  .dropdown-menu,
  .sub-menu,
  .footer,
  .entry-footer,
  .entry-navigation,
  .sidebar {
    display: none !important;
  }

  /* 用紙設定 */
  @page {
    size: A4 portrait;
    margin: 20mm 15mm;
  }

  /* 本文レイアウト */
  body {
    font-size: 12pt;
    color: #000;
    background: #fff;
    width: 100%;
    margin: 0;
  }

  .containar {
    max-width: 100% !important;
    padding: 0 !important;
  }

  /* コンテンツを全幅に */
  .entry-detail {
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* タイトル */
  .entry-title {
    font-size: 18pt;
    page-break-after: avoid;
    break-after: avoid;
  }

  /* 本文 */
  .entry-content {
    font-size: 11pt;
    line-height: 1.8;
  }

  /* 画像 */
  .entry-content img {
    max-width: 100% !important;
    page-break-inside: avoid;
  }

  /* リンクのURL非表示 */
  a[href]::after {
    content: none !important;
  }

  /* ボタンの装飾を消す */
  .btn::after {
    display: none !important;
  }

}










/* --- フッター用モジュール読み込み --- */
/* =====================
   フッター基本
===================== */
.footer {
  background-color: #f4f4f4;
  padding: 40px 0 0;
}

.footer-wrapper {
  width: 92%;
  max-width: 1280px;
  margin: 0 auto;
}

/* タイトル */
.footer-title {
  font-size: 28px;
  font-weight: bold;
  color: #333;
  margin-bottom: 20px;
}

.footer-title span {
  font-size: 14px;
  display: block;
}

/* 住所 */
.footer-address {
  color: #333;
  line-height: 1.8;
  margin-bottom: 20px;
}

.footer-address a {
  text-decoration: none;
  color: #333;
}

/* ナビ */
.footer-nav ul {
  display: flex;
  justify-content: flex-end;
  gap: 20px;
  list-style: none;
  padding: 0;
  margin: 20px 0;
}

.footer-nav a {
  text-decoration: none;
  color: #333;
  font-weight: bold;
  transition: opacity 0.3s;
}

.footer-nav a:hover {
  opacity: 0.6;
}

/* コピーライト */
.footer-copy {
  border-top: 1px solid #ccc;
  font-size: 14px;
  padding: 15px 0;
  text-align: right;
  display: block;
}

/* =====================
   スマホ対応
===================== */
@media (max-width: 768px) {

  .footer-title {
    font-size: 20px;
  }

  .footer-nav ul {
    flex-direction: column;
    align-items: center;
    gap: 12px;
  }

  .footer-copy {
    text-align: center;
  }

  .footer-address {
    font-size: 14px;
  }
}

/* ===== 印刷用スタイル ===== */
@media print {

  /* 不要な要素を非表示 */
  header, nav,
  .footer,
  .entry-footer,
  .entry-navigation,
  .sidebar {
    display: none !important;
  }

  /* 用紙設定 */
  @page {
    size: A4 portrait;
    margin: 20mm 15mm;
  }

  /* 本文レイアウト */
  body {
    font-size: 12pt;
    color: #000;
    background: #fff;
  }

  /* コンテンツを全幅に */
  .entry-detail {
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* タイトル */
  .entry-title {
    font-size: 18pt;
    page-break-after: avoid;
    break-after: avoid;
  }

  /* 本文 */
  .entry-content {
    font-size: 11pt;
    line-height: 1.8;
  }

  /* 画像 */
  .entry-content img {
    max-width: 100% !important;
    page-break-inside: avoid;
  }

  /* リンクのURL非表示 */
  a[href]::after {
    content: none;
  }

}

/* --- 下層用モジュール読み込み --- */
html {
  scroll-behavior: smooth;
}

main {
    width: 92%;           /* 画面の92%を使う（左右に少しだけ余白） */
    max-width: 1280px;    /* 1200pxより少し広めの1400pxを上限にする */
    margin: 0 auto;
}



.pankuzu-list{
    max-width: 1280px;
    margin:  0 auto;
    padding-top: 21px;
    display: flex;
    align-items: center;
    font-size: 14px; /* パンくずは少し小さめが一般的 */
    gap: 10px;      /* 項目間の隙間 */
}

.pankuzu-list a{
    text-decoration: none;
    color: #969696;
}

.pankuzu-list a::after {
  content: "";
  display: inline-block;
  margin-left: 10px;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 5px 0 5px 6px; /* 三角形の大きさ */
  border-color: transparent transparent transparent #666; /* 三角形の色 */
  vertical-align: middle;
}

.pankuzu-list-span{
    color: #969696;
}

.course{
    margin-bottom: 80px;
}

.course-nav ul{
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start; 
    gap: 15px;
    list-style: none;
    padding: 0;
    margin: 40px auto;
    max-width: 1200px;

}

.course-nav li{
    list-style: none;
}

.course-nav ul li {
  width: calc((100% - (15px * 2)) / 3);
  box-sizing: border-box;
}


.course-nav ul li a {
    display: flex;
  align-items: center;
  /* 文字をボタン内の中央にする（これできれいに見えます） */
  justify-content: center; 
  height: 60px;
  padding: 0 10px;       /* 念のため左右に最小限の余白を確保 */
  color: #fff;
  text-decoration: none;
  font-size: 18px;
  font-weight: bold;
  border-radius: 4px;
  text-align: center;    /* 複数行になった時のため */
  transition: all 0.3s ease;
}

.course-nav ul li a:hover {
  background-color: #009FD4;
  color: #fff;
}

.航空管制科.course-nav ul li a{
  background-color: #2355A3;
}

.航空情報科.course-nav ul li a{
  background-color: #FF6F00;
}

.航空電子科.course-nav ul li a{
  background-color: #239500;
}

.course-box {
    display: flex;
    justify-content: space-between; /* 左右に振り分ける */
    align-items: flex-start;        /* 上揃え */
    max-width: 1280px;              /* ヘッダーと合わせる */
    margin: 0 auto;                 /* 中央寄せ */
    padding: 80px 40px;             /* 上下の余白と、左右の最低限の遊び */
}

.course-left-box {
    flex: 1;                        /* 伸び縮みするように設定 */
    /* margin-left: 90px; は削除して、親のpaddingで管理するのが楽です */
}

.course-right-box {
    width: 400px;                   /* 画像の幅を固定するか、flexで調整 */
    margin-left: 80px;              /* 左（テキスト）との間隔 */
}

.course-main-title {
    font-size: 44px;
    font-weight: 900;
    color: #333;
    margin-bottom: 8px;             /* 英語タイトルとの距離を少し縮めると親子感が出ます */
    line-height: 1.2;
}

.course-english-title {             /* スペル修正済み */
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 48px;            /* 本文との距離 */
    display: block;                 /* spanなどの場合はblockにする */
}

.course.航空管制科 .course-english-title{
    color: #2355A3;
}

.course.航空情報科 .course-english-title{
    color: #FF6F00;
}

.course.航空電子科 .course-english-title{
    color: #239500;
}

.course-main-text {
    font-size: 18px;                /* 先ほどの希望に合わせて18pxに */
    line-height: 1.8;
    text-align: justify;
    text-justify: inter-ideographic;
    color: #444;                    /* 真っ黒より少しグレーにすると読みやすいです */
}

.course-image{
    width: 100%;
    height: auto;
    border-radius: 8px; /* 角を少し丸めると今風になります */
    box-shadow: 0 10px 30px rgba(0,0,0,0.1); /* 軽い影をつけると「箱」感が出ます */
}

.course-content{
    background-color: #f0f0f0;
}

.content{
    font-size: 26px;
    padding: 25px 40px;
    font-weight: bold;
    color: #fff;
    background-color: #2355A3;
    border-radius: 5px;
}

.course.航空管制科 .content{
    background-color: #2355A3;
}

.course.航空情報科 .content{
    background-color: #FF6F00;
}

.course.航空電子科 .content{
    background-color: #239500;
}

.content-category{
    padding: 40px;
    border-bottom: 1px solid #D9D9D9;
}

.content-sub-title{
    font-size: 22px;
    font-weight: bold;
}

.content-sub-title::before{
    content: "";          /* 必須：中身は空でOK */
    display: inline-block;
    width: 10px;           /* 長方形の太さ */
    height: 1.0em;        /* 長方形の高さ（文字の高さに合わせる） */
    margin-right: 10px;   /* 文字との間の隙間 */
    border-radius: 2px;   /* 少し角を丸くすると柔らかい印象に */
}

.course.航空管制科 .content-sub-title::before{
    background-color: #2355A3;
}

.course.航空情報科 .content-sub-title::before{
    background-color: #FF6F00;
}

.course.航空電子科 .content-sub-title::before{
    background-color: #239500;
}

.course.system .content-sub-title::before{
	background-color: #239500;
}

.course.touka .content-sub-title::before{
	background-color: #8f81c7;
}

.content-gakka{
    padding-left: 40px;
    margin-bottom: 40px;
}

.content-gakka ul{
    column-count: 3;          /* 3列に分ける */
    column-gap: 50px;         /* 列と列の間の広さ */
    
    list-style-type: disc !important; /* 強制的に黒丸を指定 */
    list-style-position: inside;      /* 列の内側に点を入れる */
    padding: 0;
    margin: 20px 0;
}

.content-gakka li {
    font-size: 18px;
    line-height: 1.8;
    margin-bottom: 10px;
    
    /* 重要：display: list-item にすることで点を復活させる */
    display: list-item; 
    
    /* 途中で泣き別れしない設定 */
    break-inside: avoid;
}

.content-text{
    padding-top: 32px;
    padding-left: 40px;
     font-size: 16px;
    line-height: 28.8px;
    text-align: justify;
    letter-spacing: 0.12em; 
}

.content-text li {
    display: flex;
    align-items: baseline;
    gap: 0.5em;
}

.content-text li::before {
    content: "•";
    flex-shrink: 0;
}

.content-text {
    list-style: none;
}
.content-btn{
    display: flex;
    justify-content: flex-end;
}

.content-category a{
    text-decoration: none;
    padding: 16px 56px;
    font-weight: 700;
    color: #fff;
    border-radius: 30px;
     transition: background-color 0.3s ease;
}

.course.航空管制科 .content-category a{
    background-color: #2355A3;
}

.course.航空情報科 .content-category a{
    background-color: #FF6F00;
}

.course.航空電子科 .content-category a{
    background-color: #239500;
}

.course.system .content-category a{
    text-decoration: none;
    padding: 0px 5px;
    font-weight: normal;
    color: #0000EE;
    border-radius: 0;
     transition: background-color 0.3s ease;
}

/* 右向き三角形 */
.course-btn::after {
  content: "";
  display: inline-block;
  margin-left: 8px;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 5px 0 5px 6px;
  border-color: transparent transparent transparent #fff;
  border-radius: 2px;
  transition: transform 0.3s ease;
  transform: translateY(-20%);
}

.course-btn:hover {
  background-color: #0086B3;
  border-radius: 30px;
}

.course-btn:hover::after {
    transition: transform 0.3s ease;
  transform: translateX(4px);
  transform: translateY(-20%);
}

.content-category-under {
    padding: 40px;
}

.course-image-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
}
.image-item {
    width: calc(33.333% - 10px); /* 3段組み */
}
.image-item img {
    width: 100%;
    height: auto;
    display: block;
}

.room-category {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 60px;              /* 2枚だと間隔が広い方がゆったり見えます */
    max-width: 1100px;
    margin: 0 auto;
    padding: 40px 0;
}

.room-card {
    /* 100%から隙間1つ分(40px)を引いて2等分 */
    flex: 0 1 450px; 
    background: #fff;
    border-radius: 5px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.room-image img {
    width: 100%;
    height: 350px;          /* 2枚並びなら高さは少し高め(300-400px)が映えます */
    object-fit: cover;
}

.room-title{
    padding: 20px 0;
    font-size: 18px;
    font-weight: bold;
}

.room-text{
     font-size: 16px;
    line-height: 28.8px;
    text-align: justify;
    letter-spacing: 0.12em; 
}

.work-card{
    display: flex;
    justify-content: space-between; /* 左右に振り分ける */
    align-items: flex-start;        /* 上揃え */
    max-width: 1280px;              /* ヘッダーと合わせる */
    margin: 0 auto;                 /* 中央寄せ */
    padding: 40px 40px;  
    border-bottom: 1px solid #D9D9D9;  
}


.work-card-left {
    flex: 1;  
}

.work-text{
    font-weight: 700;
    padding-top: 32px;
    padding-left: 40px;
}

.work-card-right {
    width: 400px;                   /* 画像の幅を固定するか、flexで調整 */
    margin-left: 80px;              /* 左（テキスト）との間隔 */
}

.work-card-right img{
    width: 100%;
    height: auto;
    border-radius: 8px; /* 角を少し丸めると今風になります */
    box-shadow: 0 10px 30px rgba(0,0,0,0.1); /* 軽い影をつけると「箱」感が出ます */
}

/* ==========================================
   1. 表示前のカード（interview-card）
   ========================================== */
.interview-card-container {
  display: flex;
  flex-wrap: wrap;
  gap: 40px 2%;
  margin-top: 60px;     
  margin-bottom: 60px;

  /* 左右に40pxずつの余白 */
  padding: 0 40px;      
  
  max-width: 1200px;    /* サイト全体の幅に合わせて調整してください */
  margin-left: auto;    /* 左右中央寄せ */
  margin-right: auto;
  
  box-sizing: border-box;
}

.interview-item {
  width: calc((100% - 4%) / 3); 
  margin-bottom: 20px;
}

.interview-card {
  cursor: pointer;
  background: #fff;
  border: 1px solid #eee;
  overflow: hidden;
  transition: transform 0.3s ease;
}

.interview-card:hover {
  transform: translateY(-5px);
}

/* 背景画像：高さを指定することで表示させます */
.interview-card-bg {
  width: 100%;
  height: 350px; /* 画像の高さ */
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-color: #f5f5f5; /* 画像がない時の予備色 */
}

.interview-card-info {
  padding: 15px;
}

.interview-class { font-size: 0.8rem; color: #888; }
.interview-job { font-size: 0.85rem; color: #444; }
.interview-name { font-size: 1.2rem; margin-top: 5px; font-weight: bold; }

/* ==========================================
   2. モーダル本体（modal-container）
   ========================================== */
.modal-container {
  position: fixed;
  top: 0; left: 0;
  width: 100%; height: 100%;
  background: rgba(0, 0, 0, 0.8);
  z-index: 9999;
  display: none; /* JSで.is-activeがつくと表示 */
  align-items: center;
  justify-content: center;
}

/* 表示切り替え用 */
.modal-container.is-active {
  display: flex !important;
}

/* 白い箱：サイトの中央に横長の長方形を作る */
.modal-body {
  background: #fff;
  width: 90%;
  max-width: 1000px; /* 理想的な横長幅 */
  padding: 50px;
  position: relative;
  box-sizing: border-box;
  border-radius: 2px; /* 鋭角な長方形デザイン */
}

/* 内部レイアウト */
.modal-content {
  display: flex;
  gap: 50px;
  align-items: flex-start;
}

/* 左側：プロフィール */
.modal-left {
  flex: 0 0 220px; /* 幅を固定して潰さない */
}

.modal-top-img img {
  width: 220px;
  height: 220px;
  object-fit: cover;
  display: block;
}

.modal-profile .job {
  font-size: 0.85rem;
  margin-top: 15px;
  color: #666;
}

.modal-name {
  font-size: 1.6rem;
  font-weight: bold;
  margin-top: 5px;
}

/* 右側：インタビュー本文（横に広がる） */
.modal-right {
  flex: 1;
  min-width: 0;
}

.modal-text p {
  line-height: 2;
  font-size: 1rem;
  color: #333;
  white-space: pre-wrap;
}

/* 閉じるボタン */
.modal-close {
  position: absolute;
  top: 20px; right: 25px;
  font-size: 35px;
  cursor: pointer;
  color: #ccc;
}

.qa-container {
    max-width: 850px;
    margin: 60px auto;
    padding: 0 20px;          /* スマホ等で画面端にピッタリくっつかないための左右余白 */
}

.qa-item {
    background-color: #f8f8f8; /* 非常に薄いグレー */
    margin-bottom: 24px;       /* 項目同士のゆとり */
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid #eee;
}

.qa-item a{
  color: #337ab7;
}

.qa-item a:hover{
  border-bottom: 1px solid #337ab7;
}

.qa-question {
    padding: 24px 60px 24px 30px; /* 右側に十字用の余白を広く確保 */
    cursor: pointer;
    font-weight: bold;
    display: flex;
    align-items: flex-start;      /* 上揃え：2行になってもQと位置が合う */
    position: relative;
    transition: background-color 0.3s;
}

.qa-question:hover {
    background-color: #f0f0f0;
}

.qa-question .icon {
    margin-right: 24px;           /* おすすめの黄金比余白 */
    color: #2355A3;               /* アクセントカラー */
    font-size: 1.25rem;
    font-family: 'Arial', sans-serif;
    line-height: 1;               /* 質問文の1行目と高さを合わせる */
}

.qa-answer {
    display: none;                /* JSで制御 */
    background-color: #fff;       /* 回答は白背景で清潔感を */
    margin: 0;
    border-top: 1px solid #eee;
}

.answer-inner {
   padding: 24px 30px;
    display: flex;
    align-items: flex-start;  /* Aのアイコンを1行目に固定 */
    
    /* 文章のスタイル調整 */
    line-height: 1.9;         /* 行間を少し広めに（1.8〜2.0がおすすめ） */
    color: #444;
    text-align: justify;      /* 両端揃え */
    text-justify: inter-ideographic; /* 日本語の文字間隔を調整 */
}

.qa-answer .icon {
    margin-right: 24px;       /* Qと同じ余白で縦ラインを揃える */
    flex-shrink: 0;           /* アイコンが潰れないように固定 */
    color: #C30000;           /* Aの色（お好みで調整してください） */
    font-size: 1.25rem;
    font-weight: bold;
    line-height: 1.2;         /* テキストの1行目と高さを合わせる */
}

.qa-answer .answer-text {
    flex: 1;                  /* テキストを横幅いっぱいに広げて両端揃えを有効化 */
}

/* 十字アイコン */
.plus-icon {
position: absolute;
    right: 25px;                  /* 右端からのゆとり */
    top: 28px;                    /* 上からの位置（paddingと合わせる） */
    width: 16px;
    height: 16px;
}

.plus-icon::before, .plus-icon::after {
    content: "";
    position: absolute;
    background-color: #999;       /* アイコンは少し薄めのグレーに */
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    transition: 0.3s;
}

.plus-icon::before { width: 100%; height: 2px; }
.plus-icon::after  { width: 2px; height: 100%; }

/* 開いた時のアイコン状態（JSでクラスを付与） */
/* JSで付与するクラス：十字を「×」または「マイナス」に回転 */
.qa-question.is-active .plus-icon {
    transform: rotate(135deg);
}

/* 1. コンテナ：3枚並べて中央に寄せる */
.blog-card-container {
  display: flex;
  flex-wrap: wrap;      /* 3枚超えたら折り返す */
  gap: 40px;            /* 隙間を40pxに固定 */
  max-width: 1200px;    /* 全体の最大幅 */
  margin: 0 auto;       /* 画面中央に配置 */
  padding: 20px;
  justify-content: flex-start; /* カードが少ない時も中央に寄せる */
}

/* 2. カード本体：幅と高さを固定 */
.blog-item {
  flex: 0 0 calc((100% - 80px) / 3);
  min-width: 300px;
  height: 500px;
  display: flex;
  flex-direction: column;
  border: 1px solid #eee;
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
  text-decoration: none;
  color: inherit;
}


.blog-item:hover {
  transform: translateY(-5px); /* ホバー時に少し浮かす */
}


/* 3. 画像エリア：比率を保って固定 */
.blog-imag img {
  width: 100%;
  height: 200px;        /* 画像の高さを固定 */
  object-fit: cover;    /* 画像を歪ませずに枠いっぱいに表示 */
  display: block;
}

/* 4. テキストエリア：余白を統一 */
.blog-content {
  padding: 20px;
  display: flex;
  flex-direction: column;
  flex-grow: 1;         /* 下まで隙間を埋める */
}

/* 日付 */
.blog-day {
  font-size: 0.85em;
  color: #999;
  margin-bottom: 8px;
}

/* タイトル：2行で制限 */
.blog-title {
  font-weight: bold;
  font-size: 1.1em;
  line-height: 1.4;
  margin-bottom: 6px;
  height: 2.8em;        /* 2行分の高さを確保 */
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2; /* 2行で「...」にする */
}

/* 本文：3行で制限 */
.blog-text {
  font-size: 0.9em;
  color: #666;
  line-height: 1.6;
  height: 4.8em;        /* 3行分の高さを確保 */
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3; /* 3行で「...」にする */
}

.blog-btn{
    display: flex;
    justify-content: center;
    margin: 40px 0;
}

.blog-btn a{
    text-decoration: none;
    padding: 16px 56px;
    font-weight: 700;
    color: #fff;
    border-radius: 30px;
     transition: background-color 0.3s ease;
}

.course.航空管制科 .blog-btn a{
    background-color: #2355A3;
}

.course.航空情報科 .blog-btn a{
    background-color: #FF6F00;
}

.course.航空電子科 .blog-btn a{
    background-color: #239500;
}

/* 右向き三角形 */
.blog-btn a::after {
  content: "";
  display: inline-block;
  margin-left: 8px;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 5px 0 5px 6px;
  border-color: transparent transparent transparent #fff;
  border-radius: 2px;
  transition: transform 0.3s ease;
  transform: translateY(-20%);
}

.blog-btn a:hover {
  background-color: #0086B3;
  border-radius: 30px;
}

.blog-archive{
  padding: 60px;
}

.blog-archive-page .blog-card-link {
  flex: 0 0 calc((100% - 80px) / 3);
  min-width: 300px;
  display: block;
  text-decoration: none;
  color: inherit;
}


.blog-detail {
  max-width: 800px;
  margin: 0 auto;
  padding: 60px 20px;
}

.blog-detail-title {
  font-size: 28px;
  font-weight: bold;
  margin-bottom: 10px;
}

.blog-detail-date {
  color: #777;
  margin-bottom: 20px;
}

.blog-detail-image img {
  width: 100%;
  height: auto;
  margin-bottom: 30px;
}

.blog-detail-content {
  line-height: 1.9;
  font-size: 16px;
}

.blog-detail-back {
  margin-top: 50px;
  text-align: center;
}

.back-link {
  display: inline-block;
  padding: 10px 30px;
  border: 1px solid #333;
  text-decoration: none;
  color: #333;
  transition: 0.3s;
}

.back-link:hover {
  background: #333;
  color: #fff;
}

.course-btn:hover a::after {
    transition: transform 0.3s ease;
  transform: translateX(4px);
  transform: translateY(-20%);
}

/* ボタンの基本スタイル */
.pagetop {
  position: fixed;
  right: 50px;
  bottom: 24px;
  width: 50px;
  height: 50px;
  background-color: #009FD4; /* ボタンの色 */
  border: none;
  border-radius: 50%;     /* 丸くする */
  cursor: pointer;
  z-index: 999;
  opacity: 0;             /* 最初は隠しておく */
  visibility: hidden;
  transition: all 0.3s;   /* ふわっと出すためのアニメーション */
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #fff;
}

/* 表示された時のクラス（JSで制御） */
.pagetop.is-show {
  opacity: 1;
  visibility: visible;
}

/* 矢印（CSSだけで作成） */
.pagetop-arrow {
  width: 12px;
  height: 12px;
  border-top: 3px solid #fff;
  border-right: 3px solid #fff;
  transform: rotate(-45deg);
  margin-top: 4px;
}

/* ホバーした時 */
.pagetop:hover {
  background-color: #56c7ec;
  transform: translateY(-5px);
}

.about-mv{
  width: 100%;
  background-color: #009FD4;
  padding: 80px 20px;
}

.about-mv h3{
  max-width: 1280px;
  margin: 0 auto;
  color: #fff;
  font-size: 42px;
  letter-spacing: 0.2em;
  font-weight: bold;
}

/* 親コンテナの設定 */
.about-wrapper {
    width: calc(100% - 200px); 
    /* メインが縮みすぎないための最低幅（任意） */
    min-width: 700px;
  position: relative; /* ナビの基準点にする */
}

.schedule-list {
  list-style: none;
  padding: 0 !important;
  margin: 0;
}

.schedule-item {
  list-style: none;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start; /* 追加 */
  flex-wrap: nowrap;           /* 追加 */
  gap: 8px;
  padding: 14px 20px;
  box-sizing: border-box;      /* 追加 */
  width: 100%;                 /* 追加 */
  min-height: 52px;
}

.schedule-item:nth-child(odd) {
  background-color: #f5f5f5;
}

.schedule-item:nth-child(even) {
  background-color: #ffffff;
}

.schedule-year {
  display: inline-block;
  color: #1a5fa8;
  font-weight: bold;
  min-width: 100px;
  flex-shrink: 0;
  white-space: nowrap;
}

.season {
  color: #333333;
  font-size: 0.9em;
}

.schedule-month {
  display: inline-block;
  color: #1a5fa8;
  font-weight: bold;
  min-width: 36px;
  flex-shrink: 0;
  white-space: nowrap;
  text-align: right;
}

.schedule-text {
  display: inline-block;
  color: #333333;
  line-height: 1.6;
  flex: 1;
  min-width: 0;
}


/* サイドナビ（280pxの隙間に配置） */
.side-nav {
  position: absolute;
  top: 0;
  right: -240px; 
  width: 200px;
  height: 100%;
}

.side-nav ul {
  position: -webkit-sticky;
  position: sticky; /* ここで初めて sticky を使う */
  top: 100px;
}

.side-nav li {
  margin-bottom: 8px;
}

.side-nav a {
  display: block;
  text-decoration: none;
  font-size: 14px;
  color: #333;
  padding: 8px 12px;
  background-color: #fff; /* 背景を白にして浮かせると清潔感が出ます */
  border-left: 3px solid #eee; /* 左側に薄い線 */
  transition: 0.3s;
}

/* ホバーした時に学校のカラーが出るようにする */
.side-nav a:hover {
  border-left-color: #009FD4; /* テーマカラーに変更 */
  background-color: #f9f9f9;
  padding-left: 18px; /* 少し右に動くアニメーション */
}

.flex-containar{
  padding-bottom: 60px; 
}

.about{

}

.about-contant{
    font-size: 28px;
    color: #000;
    letter-spacing: 0.1em;
    font-weight: bold;
    padding: 20px 0;
    border-bottom: 1px solid #969696;
}

.about-contant::before{
    content: "";          /* 必須：中身は空でOK */
    display: inline-block;
    width: 10px;           /* 長方形の太さ */
    height: 1.0em;        /* 長方形の高さ（文字の高さに合わせる） */
    margin-right: 10px;   /* 文字との間の隙間 */
    border-radius: 2px;   /* 少し角を丸くすると柔らかい印象に */
    background-color: #009FD4;
    vertical-align: -4px;
}

.about-text{
  padding-top: 30px;
}

.about-text ol{
  list-style: decimal;
  padding:20px 2em;
  border: 1px solid #969696;
  background-color: #fff;

}

.about-text li{
  display: list-item;
  line-height: 28.8px;
  text-align: justify;
  color: #333;
  padding: 10px 0;
}

.about-text p{
  line-height: 28.8px;
  text-align: justify;
  color: #333;
  letter-spacing: 0.12em;
}

.about-text span{
  text-align: end;
}

.about-pdf{}

.facility{
  max-width: 1280px;
  margin: 0 auto;
  padding-top: 60px;
}

.facility-title h4{
  font-size: 24px;
  font-weight: bold;
  letter-spacing: 0.1em;
  padding: 10px 0;
  border-bottom: 1px solid #969696;
  margin-bottom: 10px;
}

.facility-title h4::before{
    content: "";          /* 必須：中身は空でOK */
    display: inline-block;
    width: 10px;           /* 長方形の太さ */
    height: 1.0em;        /* 長方形の高さ（文字の高さに合わせる） */
    margin-right: 10px;   /* 文字との間の隙間 */
    border-radius: 2px;   /* 少し角を丸くすると柔らかい印象に */
    background-color: #009FD4;
    vertical-align: -4px;
}

.facility-flex{
  padding-top: 10px;
  display: flex;
  flex-wrap: wrap; /* 2つ並んだら次の行へ */
  gap: 40px 20px;       /* カード同士の隙間（数値は調整してください） */
  justify-content: flex-start; /* 奇数個のときも左から並べる */
}

.facility-card {
    width: calc((100% - 20px) / 2); 
    display: flex;
    flex-direction: column; /* 中身を縦に並べる */
    background: #fff;       /* 背景を白にするなら */
    overflow: hidden;
    margin-bottom: 20px;
}

.facility-card img {
    width: 100%;
    height: 400px;       /* 高さを固定するとガタつきません */
    object-fit: cover;
}

.facility--three-col .facility-card {
    width: calc((100% - 40px) / 3);
}

.card-content {
    padding: 15px;       /* テキスト周りの余白 */
    flex-grow: 1;        /* 説明文が短くてもカードの高さを他と合わせる */
}

.card-title {
    font-size: 20px;
    font-weight: bold;
    margin-bottom: 10px;
    color: #333;
}

.card-text {
    font-size: 16px;
    line-height: 28.8px;
    text-align: justify;
    color: #333;
    letter-spacing: 0.12em;        /* 説明文は少し薄い色にすると読みやすい */
}

.exam{
  padding-top: 50px;
}

.exam a{
  color: #337ab7;
}

.exam a:hover{
  border-bottom: 1px solid #337ab7 ;
}

.exam ol{
  list-style: decimal;    /* 数字を復活させる */
  padding-left: 2em;      /* 数字が表示されるための余白 */
  margin-bottom: 20px;
}

.exam ul{
  list-style: disc;
  padding-left: 1.5em; 
}

.exam ol ul{
  list-style: disc;       /* 黒丸を復活させる */
  padding-left: 1.5em;    /* 点が表示されるための余白 */
  margin-top: 10px
}

.exam ul ul{
  list-style-type: circle;    /* ★ ここで「線だけの点（白抜き丸）」を指定 */
  padding-left: 1.5em;        /* さらに字下げするための余白 */
  margin-top: 5px;
}

.exam ul ul li{
  font-weight: normal;        /* 補足情報は少し細くしてもOK */
  display: list-item;
}

.exam li{
  line-height: 28.8px;       /* 行間を広げて読みやすく */
  margin-bottom: 8px;     /* 項目ごとの隙間 */
  display: list-item;
  color: #333;
  text-align: justify;
}

.exam table{
  width: 100%;
  border-collapse: collapse; /* 隣り合う枠線を1本にまとめる */
  margin: 20px 0;
  word-break: break-all;
  table-layout: fixed;
}

.vertical-table-wrapper table {
    width: 100%;
    table-layout: fixed; /* 列の幅を固定するために必須 */
    border-collapse: collapse;
}

/* 1列目と2列目を縦書きにして幅を詰める */
.vertical-table-wrapper table th:nth-child(1)
{
    text-orientation: upright;
    width: 3.5em;              /* 3〜4文字分くらいの幅に固定 */
    padding: 15px 5px;         /* 左右の余白を最小限に */
    white-space: nowrap;       /* 勝手に折り返さないように */
    text-align: center;
    vertical-align: middle;    /* 結合したセルの中央に配置 */
}

.vertical-table-wrapper table td:nth-child(2) {
    text-orientation: upright;
    width: 7em;              /* 3〜4文字分くらいの幅に固定 */
    padding: 15px 15px;         /* 左右の余白を最小限に */
}

/* 3列目と4列目（内容部分）を広くする */
.vertical-table-wrapper table th:nth-child(3),
.vertical-table-wrapper table td:nth-child(3),
.vertical-table-wrapper table th:nth-child(4),
.vertical-table-wrapper table td:nth-child(4) {
    width: auto;               /* 残りのスペースを分け合う */
    writing-mode: horizontal-tb; /* ここは必ず横書き */
    padding: 15px;
    text-align: left;
    vertical-align: top;
    line-height: 1.6;
}




.exam th{
  background-color: #f4f4f4; /* 落ち着いたグレー */
  border: 1px solid #ccc;
  padding: 12px 15px;
  font-weight: bold;
  text-align: center;
  width: 30%;
}

.exam td{
  border: 1px solid #ccc;
  padding: 12px 15px;
  vertical-align: middle;
  line-height: 1.6;
}

.pdf-download{
  padding: 10px 0;
}

.exam-mv{
  width: 100%;
  background-color: #009FD4;
  padding: 80px 0;
}

.exam-mv h3{
  max-width: 1280px;
  margin: 0 auto;
  color: #fff;
  font-size: 42px;
  font-weight: bold;
}

.exam p{
  font-size: 16px;
    line-height: 28.8px;
    text-align: justify;
    color: #333;
    letter-spacing: 0.12em;
}

.exam-back{
  background-color: #f0f0f0;
  font-size: 18px;
  font-weight: bold;
  padding: 15px 10px;
  margin: 20px 0;
}

.exam-title{
  font-size: 24px;
  font-weight: bold;
  letter-spacing: 0.1em;
  padding: 10px 0;
  border-bottom: 1px solid #969696;
  margin-bottom: 10px;
}

.exam-title::before{
    content: "";          /* 必須：中身は空でOK */
    display: inline-block;
    width: 10px;           /* 長方形の太さ */
    height: 1.0em;        /* 長方形の高さ（文字の高さに合わせる） */
    margin-right: 10px;   /* 文字との間の隙間 */
    border-radius: 2px;   /* 少し角を丸くすると柔らかい印象に */
    background-color: #009FD4;
    vertical-align: -4px;
}

.timeline {
  margin: 40px 0;
    list-style: none;
    position: relative;
}

/* 縦のライン */
.timeline::before {
    content: '';
    position: absolute;
    top: 0;
    left: 170px; /* 時間エリアの幅に合わせる */
    width: 2px;
    height: 100%;
    background: #0055aa; /* 航空らしい青色 */
}

.timeline li {
    display: flex;
    margin-bottom: 40px;
    position: relative;
}

/* 縦軸上の丸ポチ */
.timeline li::after {
    content: '';
    position: absolute;
    left: 167px; /* ラインの中心に合わせる */
    top: 5px;
    width: 8px;
    height: 8px;
    background: #fff;
    border: 2px solid #0055aa;
    border-radius: 50%;
}

/* 時間表示エリア */
.timeline-time {
    width: 150px;
    font-weight: bold;
    color: #666;
    line-height: 1.2;
    text-align: center;
}

/* 内容表示エリア */
.timeline-content {
    flex: 1;
    padding-left: 50px;
}

.timeline-content h3 {
    margin: 0 0 10px;
    font-size: 1.2em;
    font-weight: bold;
    color: #000000;
}

.timeline-content p {
    font-size: 16px;
    line-height: 28.8px;
    text-align: justify;
    color: #333;
    letter-spacing: 0.12em;
}

/* 写真エリア */
.timeline-img {
    margin-top: 15px;
}

.timeline-img img {
    max-width: 100%;
    height: auto;
    border-radius: 4px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

/* PDFアイコンを赤色にする */
.pdf-icon {
  font-size: 16px;
    line-height: 28.8px;
    text-align: justify;
    color: #333;
    margin: 30px 40px;
    
}

.pdf-icon a{
  color: #337ab7;
}

.pdf-icon a:hover{
  border-bottom: 1px solid #337ab7;
}

.pdf-icon i {
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900 !important; /* これがないと豆腐になります */
  font-style: normal;
  display: inline-block;
  margin-right: 5px;
  color: #e02424; /* ついでにPDFっぽく赤色に */
}

.qa-text{
   font-size: 16px;
    line-height: 28.8px;
    text-align: justify;
    color: #333;
    letter-spacing: 0.12em;
    padding:40px;
}

.qa-text a{
    color: #337ab7;
}

.qa-text a:hover{
    border-bottom: 1px solid #337ab7;
}

.qa-btn{
  padding: 80px 60px;
  display: flex;
  align-items: center;
  justify-content: space-between;

}

.qa-btn a{
  border-radius: 50px;
  padding: 20px 60px;
  color: #fff;
  font-weight: bold;
  font-size: 24px;
  transition: 0.3s;
}



.qa-btn a:nth-child(1){
  background-color: #2355A3;
  border: 2px solid #2355A3;
}

.qa-btn a:nth-child(2){
  background-color: #FF6F00;
  border: 2px solid #FF6F00;
}

.qa-btn  a:nth-child(3){
  background-color: #239500;
  border: 2px solid #239500;
}

.qa-btn a:hover:nth-child(1){
 border: 2px solid #2355A3;
 color: #2355A3;
 background-color: #fff;
}

.qa-btn a:hover:nth-child(2){
  border: 2px solid #FF6F00;
  color: #FF6F00;
  background-color: #fff;
}

.qa-btn  a:hover:nth-child(3){
  border: 2px solid #239500;
  color: #239500;
  background-color: #fff;
}

/* ボタン全体の固定位置 */
.fixed-apply-btn {
    position: fixed;
    right: 20px;
    bottom: 30px;
    z-index: 9999; /* 他の要素より上に表示 */
    transition: transform 0.3s ease;
}

/* ボタンのデザイン */
.fixed-apply-btn a {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 150px;
    height: 150px;
    background-color: #009FD4; /* 目立つ色 */
    color: #fff;
    text-decoration: none;
    border-radius: 50%; /* 円形にする */
    font-weight: bold;
    font-size: 13px;
    text-align: center;
    line-height: 1.3;
    box-shadow: 0 4px 15px rgba(0,0,0,0.3);
    border: 2px solid #fff;
}

/* アイコンのサイズ */
.fixed-apply-btn i {
    font-size: 24px;
    margin-bottom: 5px;
}

/* ホバー時の動き */
.fixed-apply-btn a:hover {
    transform: scale(1.1);
    background-color: #009FD4;
}

.wrapper{
  padding-bottom: 60px;
}

.inspection-grid {
    display: flex;
    flex-wrap: wrap;       /* 折り返しを許可 */
    justify-content: flex-start; /* 常に左寄せ */
    gap: 15px;             /* 写真の間の隙間 */
    width: 100%;
    padding: 20px 0;
}

.photo-item {
    /* 3枚並べる計算（(100% - 隙間分) / 3） */
    width: calc((100% - 30px) / 3); 
    box-sizing: border-box;
}

.photo-item img {
    width: 100%;           /* 親の横幅に合わせる */
    height: auto;          /* 比率を維持 */
    display: block;
    object-fit: cover;     /* 写真の比率がバラバラでも綺麗に切り抜く場合 */
    aspect-ratio: 4 / 3;   /* 任意：写真のサイズを統一したい場合 */
}

.lecture-grid {
    display: flex;
    flex-wrap: wrap;       /* 折り返しを許可 */
    justify-content: flex-start; /* 奇数枚でも左寄せにする */
    gap: 20px;             /* 写真同士の間隔 */
    width: 100%;
    padding: 20px 0;
}

.lecture-item {
    /* 2列にするための計算（100%から隙間20px分を引いて半分に） */
    width: calc(50% - 10px); 
    box-sizing: border-box;
}

.lecture-item img {
    width: 100%;           /* 枠いっぱいに広げる */
    height: auto;          /* 比率を維持 */
    display: block;
    object-fit: cover;     /* 写真の縦横比がバラバラでも高さを揃えたい場合 */
    aspect-ratio: 3 / 2;   /* 任意：すべての写真を同じ比率で切り抜き表示 */
}

.privacy-policy-container{
  max-width: 1080px;
  padding: 40px 0;
  margin: 0 auto;
}

.policy-list ul li{
  list-style: none;
}

.image-center-container {
    text-align: center;   /* 中の要素（画像）を中央に寄せる */
    padding: 20px 0;      /* 上下に少し余白を作る */
    width: 30%;          /* コンテンツ幅いっぱいに広げる */
}

/* 画像自体のレスポンシブ設定 */
.image-center-container img {
    max-width: 100%;      /* 親要素（コンテンツ幅）を超えないようにする */
    height: auto;         /* 横幅に合わせて高さを自動調整（縦横比を維持） */
    display: inline-block; /* text-align: center を効かせるため */
    text-align: center; 
}

.news-archive {
  max-width: 900px;
  margin: 0 auto;
  padding: 80px 20px;
}

.news-archive-title{
  font-size: 24px;
  font-weight: bold;
  letter-spacing: 0.1em;
  padding: 10px 0;
  margin-bottom: 10px;
}

.news-archive-title::before{
    content: "";          /* 必須：中身は空でOK */
    display: inline-block;
    width: 10px;           /* 長方形の太さ */
    height: 1.0em;        /* 長方形の高さ（文字の高さに合わせる） */
    margin-right: 10px;   /* 文字との間の隙間 */
    border-radius: 2px;   /* 少し角を丸くすると柔らかい印象に */
    background-color: #009FD4;
    vertical-align: -4px;
}

.news-item {
  padding: 20px 0;
  border-bottom: 1px solid #ddd;
}

.news-meta {
  font-size: 14px;
  margin-bottom: 8px;
}

.news-title:hover {
  opacity: 0.7;
}

.contact-table {
    width: 100%;
    max-width: 100%; /* お好みの幅に調整してください */
    margin: 20px auto;
    border-collapse: collapse; /* 隣り合う枠線を1本にする */
    font-size: 16px;
}

.contact-table th, 
.contact-table td {
    border: 1px solid #ddd; /* 枠線の色 */
    padding: 12px;          /* セル内の余白 */
    text-align: center;     /* 文字を中央寄せ */
}

.contact-table th {
    background-color: #0086B3; /* ヘッダーの背景色（大学校カラー） */
    color: #fff;               /* ヘッダーの文字色 */
    font-weight: bold;
}

/* 1行おきに背景色をつけて見やすくする（ゼブラ設定） */
.contact-table tbody tr:nth-child(even) {
    background-color: #f9f9f9;
}

.map-wrap{
width: 100%;
aspect-radio:16/9;
}



@media (max-width: 768px) {

  /* --- レイアウトの共通調整 (1枚並びにするもの) --- */
  .photo-item,
  .blog-item,
  .facility-card {
        flex: 0 0 100% !important;   /* ←これ重要 */
    width: 100% !important;
    height: auto !important;
    min-height: auto;
  }

  /* --- 見出しのサイズダウン --- */
  .course-main-title { font-size: 28px; margin-bottom: 15px; }
  .course-english-title { font-size: 14px; margin-bottom: 30px; }
  .content, .content-sub-title { font-size: 20px; padding: 15px 20px; }
  .card-title, .room-title { font-size: 18px; }

  /* --- テキストのサイズダウン --- */
  .course-main-text,
  .content-gakka li,
  .work-text,
  .exam p, .exam li,
  .about-text p,
  .card-text {
    font-size: 15px;
    line-height: 1.6;
  }

  .pankuzu-list { font-size: 12px; }
  .course-nav ul li a { font-size: 14px; }

  /* --- 追従ボタン --- */
  .fixed-apply-btn { right: 10px; bottom: 10px; }
  .fixed-apply-btn a { width: 100px; height: 100px; font-size: 11px; }

  .course-box {
  flex-direction: column;
  padding: 40px 20px;
}

.course-right-box {
  width: 100%;
  margin-left: 0;
  margin-top: 30px;
}

.work-card {
  flex-direction: column;
  padding: 30px 20px;
}

.work-card-right {
  width: 100%;
  margin-left: 0;
  margin-top: 20px;
}

.modal-body {
  padding: 30px 20px;
}

.modal-content {
  flex-direction: column;
  gap: 30px;
}

.modal-left {
  flex: none;
}

.modal-top-img img {
  width: 100%;
  height: auto;
}

.side-nav {
  position: static;
  width: 100%;
  margin-top: 20px;
}

.side-nav ul {
  position: static;
  display: flex;
  overflow-x: auto;
  gap: 10px;
}

.side-nav li {
  flex: 0 0 auto;
}

.timeline::before,
.timeline li::after {
  display: none;
}

.timeline li {
  flex-direction: column;
}

.timeline-time {
  width: auto;
  text-align: left;
  margin-bottom: 10px;
}

.timeline-content {
  padding-left: 0;
}

.qa-btn {
  flex-direction: column;
  gap: 20px;
  padding: 40px 20px;
}

.qa-btn a {
  width: 100%;
  text-align: center;
}

.photo-item {
  width: 100%;
}

/* ===== aboutページ 横スクロール防止 ===== */

.about-wrapper {
  width: 100%;
  min-width: 0;      /* autoではなく0が安全 */
  padding: 0 20px;   /* 画面端にくっつかないよう余白追加 */
  box-sizing: border-box;
}

  .side-nav {
    position: sticky;
    top: 60px; /* ヘッダー高さに合わせる */
    background: #fff;
    z-index: 100;
    padding: 10px 0;
    height: auto;
  }

  .side-nav ul {
     position: static;
    display: flex;
    overflow-x: auto;
    gap: 12px;
    padding: 0 15px;
  }

  .side-nav li {
    flex: 0 0 auto;
  }

  .side-nav a {
    white-space: nowrap;
    padding: 8px 14px;
    border-radius: 20px;
    border: 1px solid #ddd;
  }

.about-text p,
.card-text,
.exam p,
.timeline-content p,
.qa-text,
.content-text {
  text-align: left;        /* 両端揃えをやめる */
  letter-spacing: 0.05em;  /* 文字間を狭くする */
}

/* ===== スマホ用 見出しサイズ調整 ===== */

.about-mv h3,
.exam-mv h3 {
  font-size: 26px;
  letter-spacing: 0.1em;
}

.course-main-title {
  font-size: 26px;
}

.content {
  font-size: 20px;
}

.content-sub-title,
.exam-title,
.facility-title h4 {
  font-size: 18px;
}

.modal-name {
  font-size: 20px;
}

/* ===== スマホ用 見出しサイズ調整 ===== */

.about-mv h3,
.exam-mv h3 {
  font-size: 26px;
  letter-spacing: 0.1em;
}

.course-main-title {
  font-size: 26px;
}

.content {
  font-size: 20px;
}

.content-sub-title,
.exam-title,
.facility-title h4 {
  font-size: 18px;
}

.modal-name {
  font-size: 20px;
}

}

@media (max-width: 768px) {

  .about-contant {
    font-size: 20px;
    letter-spacing: 0.05em;
    padding: 12px 0;
  }

    .table-scroll {
    overflow-x: auto;
  }

  .table-scroll table {
    min-width: 600px; /* 崩れない最低幅 */
  }

  .exam th,
  .exam td {
    padding: 8px 8px;
    font-size: 14px;
  }

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

  .content-gakka ul {
    column-count: 1;   /* 3列 → 1列 */
    column-gap: 0;
  }

    .work-card {
    padding: 30px 0;
  }

  .content-category,
  .content-category-under {
    padding: 30px 0;
  }

  .interview-card-container {
    gap: 20px;
    padding: 0 20px;
  }

  .interview-item {
    width: 100%;
  }

    .modal-container {
    padding: 20px;              /* 端にくっつかないように */
  }

  .modal-body {
    max-height: 90vh;           /* ← これが最重要 */
    overflow-y: auto;           /* ← 中身をスクロール */
    padding: 30px 20px;         /* 少し軽くする */
  }

  .modal-content {
    flex-direction: column;     /* 横並び解除 */
    gap: 30px;
  }

  .modal-left {
    flex: none;
    width: 100%;
  }

  .modal-top-img img {
    width: 100%;
    height: auto;
  }

   .blog-card-container {
    justify-content: center;   /* 中央に戻す */
  }

  .schedule-text {
  word-break: break-all;
  overflow-wrap: break-word;
  white-space: normal;
}

.schedule-year,
.schedule-month,
.schedule-text {
  display: block;
}

 .schedule-item {
    flex-direction: column;
    gap: 4px;
    padding: 12px 16px;
  }

.schedule-month{
  margin: 0;
}

}

/* ===== 印刷用スタイル ===== */
@media print {

  /* ========================
     非表示にする要素
  ======================== */
  header,
  .header-top,
  .header-nav,
  .header-serch,
  .header-button,
  .dropdown-menu,
  .sub-menu,
  .footer,
  .entry-footer,
  .entry-navigation,
  .sidebar,
  .pagetop,
  .fixed-apply-btn,
  .modal-container,
  .blog-btn,
  .qa-btn,
  .back-link,
  .pankuzu-list,
  .course-nav {
    display: none !important;
  }

  /* ========================
     用紙設定
  ======================== */
  @page {
    size: A4 portrait;
    margin: 20mm 15mm;
  }

  /* ========================
     基本レイアウト
  ======================== */
  body {
    font-size: 12pt;
    color: #000;
    background: #fff;
    width: 100%;
    margin: 0;
  }

  main,
  .containar,
  .entry-detail,
  .blog-detail,
  .news-archive,
  .about-wrapper,
  .privacy-policy-container {
    max-width: 100% !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    min-width: 0 !important;
  }

  /* ========================
     記事・お知らせ
  ======================== */
  .entry-title,
  .blog-detail-title {
    font-size: 18pt;
    page-break-after: avoid;
    break-after: avoid;
  }

  .entry-content,
  .blog-detail-content {
    font-size: 11pt;
    line-height: 1.8;
  }

  .entry-content img,
  .blog-detail-image img {
    max-width: 100% !important;
    page-break-inside: avoid;
  }

  /* ========================
     見出し・テキスト
  ======================== */
  h1, h2, h3, h4 {
    page-break-after: avoid;
    break-after: avoid;
  }

  .about-contant,
  .exam-title,
  .facility-title h4 {
    font-size: 14pt;
  }

  /* ========================
     テーブル
  ======================== */
  .exam table,
  .contact-table {
    width: 100% !important;
    border-collapse: collapse;
    page-break-inside: avoid;
  }

  .exam th, .exam td,
  .contact-table th, .contact-table td {
    border: 1px solid #999 !important;
    padding: 6pt 8pt;
    font-size: 10pt;
  }

  /* ========================
     画像
  ======================== */
  img {
    max-width: 100% !important;
    page-break-inside: avoid;
  }

  .facility-card img,
  .room-image img {
    height: auto !important;
  }

  /* ========================
     装飾・疑似要素の除去
  ======================== */
  .btn::after,
  .course-btn::after,
  .blog-btn a::after,
  .pankuzu-list a::after {
    display: none !important;
  }

  a[href]::after {
    content: none !important;
  }

  /* ========================
     サイドナビ（aboutページ）
  ======================== */
  .side-nav {
    display: none !important;
  }

}




html{
font-size:16px;
}

body {
    font-family: "Noto Sans JP", sans-serif;
    -webkit-font-smoothing: antialiased; /* 文字の縁を滑らかにする（Mac/iOS向け） */
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

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

/* 数字をより美しく見せるなら */
.contact-title, .header-logo-text {
    font-feature-settings: "palt"; /* プロポーショナルメトリクス：文字の隙間を自動で詰める */
}

.entry-detail {
  max-width: 900px;
  margin: 0 auto;
  padding: 40px 20px;
  font-family: 'Noto Sans JP', sans-serif;
  color: #333;
}

/* ヘッダー */
.entry-header {
  margin-bottom: 30px;
}

.entry-category {
  margin-bottom: 10px;
}

.entry-category .label {
  display: inline-block;
  background: #eee;
  color: #333;
  padding: 3px 10px;
  border-radius: 3px;
  font-size: 0.85rem;
  margin-right: 5px;
}

.entry-title {
  font-size: 2rem;
  font-weight: bold;
  line-height: 1.3;
  margin-bottom: 10px;
}

.entry-meta {
  font-size: 0.9rem;
  color: #666;
}

/* 本文 */
.entry-content {
  line-height: 1.8;
  font-size: 1rem;
  margin-bottom: 40px;
}

.entry-content img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 20px 0;
}

.entry-more {
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid #ccc;
}

/* フッター・ナビ */
.entry-footer {
  border-top: 1px solid #ddd;
  padding-top: 30px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 10px;
}

.entry-navigation a {
  display: inline-block;
  text-decoration: none;
  color: #007acc;
  font-weight: 500;
  padding: 6px 12px;
  border-radius: 3px;
}

.entry-navigation a:hover {
  background: #f0f0f0;
}

.nav-arrow {
  font-weight: bold;
}

/* レスポンシブ */
@media screen and (max-width: 768px) {
  .entry-title {
    font-size: 1.6rem;
  }

  .entry-content {
    font-size: 0.95rem;
  }

  .entry-footer {
    flex-direction: column;
    align-items: stretch;
  }

  .entry-navigation a {
    width: 100%;
    text-align: center;
  }
}

/* ===== 印刷用スタイル ===== */
@media print {

  /* 不要な要素を非表示 */
  header, nav, footer,
  .entry-footer,
  .entry-navigation,
  .sidebar {
    display: none !important;
  }

  /* 用紙設定 */
  @page {
    size: A4 portrait;
    margin: 20mm 15mm;
  }

  /* 本文レイアウト */
  body {
    font-size: 12pt;
    color: #000;
    background: #fff;
  }

  /* コンテンツを全幅に */
  .entry-detail {
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* タイトル */
  .entry-title {
    font-size: 18pt;
    page-break-after: avoid;
    break-after: avoid;
  }

  /* 本文 */
  .entry-content {
    font-size: 11pt;
    line-height: 1.8;
  }

  /* 画像 */
  .entry-content img {
    max-width: 100% !important;
    page-break-inside: avoid;
  }

  /* リンクのURL非表示（学校サイトは不要なことが多い） */
  a[href]::after {
    content: none;
  }

}
