body {
    margin: 0;
    background-color: #efefef;
}

h1,
h2 {
    margin: 0%;
    font-weight: 200;
}

/* header {
} */

.cslnk a {
    padding: 1% 1% 0% 1%;
    line-height: +2;
    font-size: 120%;
    display: inline-block;
    color: #008eec;
    text-decoration: none;
    position: relative;
    overflow: hidden;
    transition: color 0.3s ease;
}

.cslnk a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: #008eec;
    transform: scaleX(0);
    transform-origin: right;
    transition: transform 0.4s ease, transform-origin 0s;
}

.cslnk a:hover {
    /* color: #ddd; */
    font-weight: bold;
    /* text-shadow: 1px 3px 3px rgba(0, 2, 150, 0.712); */
}

.cslnk a:hover::after {
    transform: scaleX(1);
    transform-origin: left;
    transition: transform 0.4s ease, transform-origin 0s;
}


/*====================================================================
  ロゴ全体の余白リセット
====================================================================*/
.logo {
    margin: 0%;
    /* ロゴの外側余白を完全に0に */
    height: 54px;
    background-repeat: no-repeat;
    background-size: contain;
    background-color: white;
    background-image: url(../../img/卒業生サイト画像/2024/ヘッダーロゴ.png);
}

/*====================================================================
  リストのデフォルトスタイルを消す
====================================================================*/
ul {
    list-style-type: none;
    /* リストの先頭記号（●など）を非表示 */
    margin: 0;
    /* ブラウザデフォルトの外側余白を削除 */
    padding: 0
        /* ブラウザデフォルトの内側余白を削除 */
}

/*====================================================================
  通常の箇条書き（disc）が必要な箇所だけ有効化
====================================================================*/
ul.disc {
    list-style-type: disc;
    /* ●の箇条書きを表示 */
    padding-left: 16px
        /* 左側に少しインデントを入れる */
}

/*====================================================================
  ヘッダー全体（固定ヘッダー）
====================================================================*/
header {
    background-color: white;
    box-shadow: rgba(0, 0, 0, 0.439) 0px 6px 0px;
    backface-visibility: hidden;
    /* Webkit系でハードウェアアクセラレーション時のチラつき防止 */
    font-family: Orbitron;
    /* ロゴ・メニューに科幻風フォント「Orbitron」適用 */
    height: 54px;
    /* モバイル時のヘッダー高さ */
    z-index: 10;
    /* 他の要素より手前に表示 */
    position: fixed;
    /* 画面上部に固定 */
    width: 100%;
    /* 横幅100% */
    transition: 0.3s;
    /* transformなどの変化を0.3秒で滑らかに */
}

/* ヘッダー内の黒いバー */
header #hed-bar {
    display: flex;
    /* ロゴとナビを横並びに */
    width: 100%;
    height: 54px;
    /* background: rgb(0, 0, 0); */
    background-image: url(../img/bg_btn\ \(Copy\).png);
    background-size: cover;
    /* 背景を真っ黒に */
    position: absolute;
    top: 0;
    left: 0;
    z-index: 3
        /* ナビより少し下に */
}

header #hed-bar.fixed {
    position: fixed;
    /* スクロールしても上部に固定 */
    top: 0
}

/*====================================================================
  ロゴ部分
====================================================================*/
header .logo {
    display: block;
    width: 188px;
    /* モバイル時のロゴ幅 */
    height: 100%;
    text-indent: 102%;
    /* 文字を画面外に追いやって非表示（アクセシビリティ対策） */
    white-space: nowrap;
    overflow: hidden;
    /* はみ出した文字を隠す */
    position: relative
}

/* ロゴ画像を疑似要素で背景表示 */
header .logo:after {
    content: '';
    display: block;
    position: absolute;
    margin: auto;
    width: 176px;
    height: 16px;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    /* 縦横中央揃え */
    background: url(../img/ict-pg.png) center center/100% auto no-repeat
        /* 実際のロゴ画像 */
}

/*====================================================================
  メインメニュー全体（PC時は表示、モバイル時は非表示）
====================================================================*/
header nav#fskjh {
    height: 100%;
    /* background: rgb(0, 0, 0); */
    background-image: url(../img/bg_btn\ \(Copy\).png);
    background-size: cover;
    /* 黒背景 */
}

/*====================================================================
  メインメニュー1階層のリンク
====================================================================*/
header nav#fskjh>ul>li>a {
    display: flex;
    justify-content: center;
    /* 文字を横中央揃え */
    align-items: center;
    /* 文字を縦中央揃え */
    text-decoration: none;
    width: 100%;
    height: 100%;
    color: #000000;
    /* background: rgb(0, 0, 0); */
    /* background-image: url(../img/bg_btn\ \(Copy\).png);
    background-size: cover; */
    transition: 0.3s;
    position: relative
}

header nav#fskjh>ul>li>a::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    /* ホバー時の背景色 */
    background: #000000;
    /* background: linear-gradient(-110deg, transparent 10%, #000000 10%, #000000 90%, transparent 90%); */
    transform: scaleX(0);
    /* 初期状態：幅0 */
    transform-origin: right;
    /* ← 最初は右側を基準（左から伸びる準備） */
    transition: transform 0.45s ease;
    z-index: -1;
}

header nav#fskjh>ul>li:hover a {
    /* background: linear-gradient(-110deg, transparent 10%, #0099ff 10%, #0099ff 90%, transparent 90%); */
    /* 斜め方向に透明→青→透明のストライプで動きを表現 */
    color: rgb(255, 255, 255);
    background: #000000;
}

/* ホバー時：左から右に背景が伸びる */
header nav#fskjh>ul>li:hover a:hover::before {
    transform: scaleX(1);
    transform-origin: left;
    /* ← 縮むときは左側を基準にする */
}

/* ホバー解除時：右から左に背景が縮む（超自然！） */
header nav#fskjh>ul>li:hover a::before {
    transition: transform 0.45s ease;
    /* 戻るときも同じ時間 */
}

header nav#fskjh>ul>li:hover a:hover::before {
    transition: transform 0.45s ease;
}


/*====================================================================
  ドロップダウンメニュー（2階層目）全体
====================================================================*/
header nav#fskjh>ul>li .down-menu {
    position: absolute;
    height: 0;
    /* 初期状態は高さ0で非表示 */
    background: #0099ff;
    /* 青背景 */
    z-index: 5;
    visibility: hidden;
    /* 表示も完全に隠す */
    opacity: 0;
    left: 0;
    top: 72px;
    /* PC時のヘッダーバー下に配置 */
    display: flex;
    width: 100%;
    transition: 0.2s;
    /* 高さ・透明度の変化を0.7秒で */
}

/*====================================================================
  ドロップダウン左側の大きなタイトル画像エリア
====================================================================*/
header nav#fskjh>ul>li .down-menu .title {
    display: flex;
    background: url("../img/部室1.jpg") center center/cover no-repeat;
    /* デフォルト背景画像 */
    margin-right: 2.5%;
    /* 初期非表示 */
    align-items: center;
    width: 30%;
    position: relative;
    overflow: hidden;
}

/* タイトルエリアの斜めライン装飾（青い帯） */
header nav#fskjh>ul>li .down-menu .title::before,
header nav#fskjh>ul>li .down-menu .title::after {
    content: '';
    display: block;
    position: absolute;
}

/* 青い斜め帯 */
/* -20度回転で斜めライン作成 */
/* header nav#fskjh>ul>li .down-menu .title::after {
    top: -32px;
    right: -80px;
    width: 90px;
    height: 180%;
    transform-origin: top right;
    background: #0099ff;
    transform: rotate(20deg);
} */

/* タイトル文字 */
header nav#fskjh>ul>li .down-menu .title span {
    font-size: 24px;
    color: #fff;
    position: relative;
    z-index: 2;
    padding-left: 10%;
    /* 左に少し余白 */
}

/*====================================================================
  ドロップダウン右側のメニュー一覧
====================================================================*/
header nav#fskjh>ul>li .down-menu ul.menu {
    display: flex;
    flex-wrap: wrap;
    /* 折り返し可能 */
    padding: 24px 2.5% 24px 0;
    box-sizing: border-box;
    align-self: flex-start;
    align-items: flex-end;
    width: 67.5%;
}

header nav#fskjh>ul>li .down-menu ul.menu li {
    width: 30%;
    /* 3列レイアウト */
    margin-right: 5%;
    /* 右側に5%の余白 */
}

header nav#fskjh>ul>li .down-menu ul.menu li a {
    text-decoration: none;
    border-bottom: 1px solid #fff;
    /* 下線（白） */
    display: flex;
    align-items: flex-end;
    min-height: 30px;
    color: #fff;
    padding: 10px 12px;
    background: transparent;
}

/* メニューの項目のホバーしたときの色 */
/* header nav#fskjh>ul>li .down-menu ul.menu li a:hover {
    background: #0071ba;
} */
/* 対象のメニュー（ここでは例として .menu0 a を使用） */
header nav#fskjh>ul>li .down-menu ul.menu li a {
    display: block;
    padding: 12px 20px;
    /* 好みの余白 */
    color: #fff;
    text-decoration: none;
    text-align: center;
    position: relative;
    overflow: hidden;
    transition: color 0.3s ease;
    z-index: 1;
}

header nav#fskjh>ul>li .down-menu ul.menu li a:hover {
    color: #000;
}

/* 背景を::beforeで作る（下線と同じ原理） */
header nav#fskjh>ul>li .down-menu ul.menu li a::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    /* ホバー時の背景色 */
    /* background: #0071ba; */
    background: linear-gradient(-110deg, transparent 10%, #ffffff 10%, #ffffff 90%, transparent 90%);
    transform: scaleX(0);
    /* 初期状態：幅0 */
    transform-origin: right;
    /* ← 最初は右側を基準（左から伸びる準備） */
    transition: transform 0.45s ease;
    z-index: -1;
}

/* ホバー時：左から右に背景が伸びる */
header nav#fskjh>ul>li .down-menu ul.menu li a:hover::before {
    transform: scaleX(1);
    transform-origin: left;
    /* ← 縮むときは左側を基準にする */
}

/* ホバー解除時：右から左に背景が縮む（超自然！） */
header nav#fskjh>ul>li .down-menu ul.menu li a::before {
    transition: transform 0.45s ease;
    /* 戻るときも同じ時間 */
}

header nav#fskjh>ul>li .down-menu ul.menu li a:hover::before {
    transition: transform 0.45s ease;
}


/* header nav#fskjh>ul>li .down-menu ul.menu li a .small {
    font-size: 11px;
    line-height: 16px
} */

/* 3列目の余白をなくす（3n番目） */
header nav#fskjh>ul>li .down-menu ul.menu li:nth-child(3n) {
    margin-right: 0
}

/*====================================================================
  各メニューごとのタイトル背景画像上書き
====================================================================*/
header nav#fskjh>ul>li .down-menu.daido .title {
    background: url("../img/ヘッダー.png");
    background-size: cover;
}

header nav#fskjh>ul>li .down-menu.shinro .title {
    background: url("../img/bt2-white.png") center center/cover no-repeat
}

header nav#fskjh>ul>li .down-menu.nyuushi .title {
    background: url("../img/bt2-white.png") center center/cover no-repeat
}

/*====================================================================
  現在は5メニューなので幅を20%に上書き
====================================================================*/
header nav#fskjh>ul>li {
    width: 20%;
    /* 5メニュー均等割り */
}

/*====================================================================
  ホバー時のエフェクト
====================================================================*/

header nav#fskjh>ul>li:hover .down-menu {
    visibility: visible;
    min-height: 240px;
    /* 最低でも240pxの高さを確保 */
    height: auto;
    opacity: 1.0
}

/*====================================================================
  スクロール時に固定表示用のクラス
====================================================================*/
header nav#fskjh.fixed {
    position: fixed;
    top: 0
}

header nav#fskjh.fixed .down-menu {
    top: 72px
        /* 固定時もドロップダウンの位置を調整 */
}

/*====================================================================
  ドロップダウンメニュー（2階層目）全体
====================================================================*/
header nav#fskjh>ul>li .down-menu {
    position: absolute;
    height: 0;
    overflow: hidden;
    /* アニメーション中の内容ちらつき防止 */
    background: #000000;
    /* 青背景 */
    z-index: 5;
    visibility: hidden;
    /* 表示も完全に隠す */
    opacity: 0;
    left: 0;
    top: 72px;
    /* PC時のヘッダーバー下に配置 */
    display: flex;
    width: 100%;
    transition: transform 0.4s ease, opacity 0.4s ease, height 0.4s ease, overflow 0s 0.4s;
    /* 滑らかなスライド + 透明度 + 高さ */
    transform: translateY(-50px);
    /* 初期位置：上から隠れた状態 */
}

/*====================================================================
  ホバー時のエフェクト（上から降りてくるアニメーション）
====================================================================*/
header nav#fskjh>ul>li:hover .down-menu {
    visibility: visible;
    min-height: 240px;
    /* 最低でも240pxの高さを確保 */
    height: auto;
    opacity: 1.0;
    overflow: visible;
    /* 表示後は内容が見えるように */
    transform: translateY(0);
    /* 元の位置に戻る（降りてくる） */
    transition: transform 0.4s ease, opacity 0.4s ease, height 0.4s ease, overflow 0s 0s;
    /* 戻るときも滑らか */
}

/*====================================================================
  タブレットサイズ（768px〜1024px）
====================================================================*/
@media screen and (max-width: 1024px) and (min-width: 768px) {
    header .logo {
        width: 320px
            /* ロゴを少し大きく */
    }

    header .logo::after {
        width: 302px
            /* ロゴ画像も調整 */
    }
}

/*====================================================================
  PCサイズ（768px以上）
====================================================================*/
@media screen and (min-width: 768px) {

    header nav#fskjh>ul {
        width: 96%;
        height: 100%;
        display: flex;
        /* PCではメニュー横並び表示 */
        margin: 0 0 0 auto
            /* 右寄せ */
    }

    header nav#fskjh {
        width: calc(100% - 378px)
            /* ロゴ幅を引いた残りをナビ幅に */
    }

    header {
        height: 72px
            /* PC時のヘッダー高さ */
    }

    header #hed-bar {
        height: 72px;
        /* メニューバーの高さ */
        top: 48px;
        /* 上部に48pxの余白（ロゴの高さ分） */
    }

    header .logo {
        width: 378px
            /* PC時のロゴ幅 */
    }

    header .logo:after {
        width: 360px;
        height: 100%
            /* ロゴ画像を縦いっぱいに */
    }
}

.header {
    display: none;
}

.top-txt {
    padding: 14% 0% 10% 5%;
    background-image: url(../../img/部室1.jpg);
    background-position: 10%;
    background-size: cover;
    color: #fff;
    /* background-color: #414141; */
}

.manager img {
    z-index: 4;
    border-radius: 10px;
    position: absolute;
    border-right: solid 5px #0000002a;
    width: 30%;
    margin: 5% 0% 0% 5%;
    box-shadow: #00000079 -10px -10px 10px;
}

.manager-text {
    z-index: 3;
    position: relative;
    margin: 5% 0% 0% 30%;
    box-shadow: #00000079 -10px -10px 10px;
    border-radius: 30px 0px 0px 30px;
    /* border: #000 solid 1px; */
    padding: 2%;
    background-color: white;
    background-image: url(../../img/卒業生サイト画像/2024/Googleスライド0.png);
    background-position: right;
    background-size: contain;
    background-repeat: no-repeat;
}

.manager-text h1,
h2,
p {
    padding-left: 7%;
}

.manager-text p>span {
    display: inline-block;
    padding: 0.5% 0%;
}

@media screen and (max-width: 980px) {

    header {
        display: none;
    }

    /* ヘッダー（トップバー） */
    .header {
        top: 0%;
        display: block;
        position: fixed;
        width: 100%;
        z-index: 99;
        display: flex;
        justify-content: space-between;
        font-family: Orbitron, arial;
        align-items: center;
        background-color: #ffffff;
        font-size: 20px;
        /* 緑色 ＃00666 */
        color: white;
        padding: 10px 15px;
        height: 55px;
        box-sizing: border-box;
        background-image: url(../../img/卒業生サイト画像/2024/ヘッダーロゴ.png);
        background-size: contain;
        background-repeat: no-repeat;
    }

    .logo-icons {
        display: flex;
        align-items: center;
        /* gap: 10px; */
    }

    .icon {
        width: 80px;
        height: 80px;
        background-color: white;
        border-radius: 4px;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 12px;
        color: #000;
    }

    .hamburger {
        width: 40px;
        height: 40px;
        background-color: transparent;
        border: none;
        cursor: pointer;
        position: relative;
    }

    .hamburger span {
        display: block;
        height: 3px;
        width: 100%;
        background-color: rgb(102, 102, 102);
        margin: 5px 0;
        transition: 0.3s;
    }

    /* オーバーレイ */
    .overlay {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: rgba(0, 0, 0, 0.5);
        z-index: 98;
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.3s, visibility 0.3s;
    }

    .overlay.active {
        opacity: 1;
        visibility: visible;
    }

    /* メニューコンテナ */
    .menu-container {
        font-family: Orbitron, arial;
        position: fixed;
        top: 0;
        left: -100%;
        width: 82%;
        /* max-width: 300px; */
        height: 100vh;
        background-color: #414141;
        z-index: 99;
        transition: left 0.3s ease-in-out;
        overflow-y: auto;
        padding: 10px 0 0 0;
        box-sizing: border-box;
    }

    .menu-container h2 {
        font-weight: 200;
        color: white;
        text-align: center;
    }

    .menu-container.active {
        left: 0;
    }

    /* メニュー項目 */
    .menu-item {
        border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    }

    .menu-link {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 15px;
        color: white;
        text-decoration: none;
        font-size: 15px;
        transition: background-color 0.2s;
    }

    .menu-link:hover {
        background-color: rgba(255, 255, 255, 0.1);
    }

    .expand-icon {
        width: 27px;
        height: 27px;
        background-color: transparent;
        font-family: arial;
        border: 1px solid white;
        /* border-radius: 50%; */
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 25px;
        padding: 2px;
        cursor: pointer;
        user-select: none;
    }

    .submenu {
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.3s ease-out;
        background-color: rgba(0, 0, 0, 0.2);
    }

    .submenu.active {
        max-height: 100vh;
        /* 十分な高さ */
    }

    .submenu .menu-item {
        border-bottom: 1px solid rgba(255, 255, 255, 0.05);
    }

    .submenu .menu-link {
        padding-left: 15px;
        /* font-size: 30px; */
    }

    /* 特殊項目のビデオアイコン例 */
    .video-icon {
        width: 16px;
        height: 16px;
        background-color: white;
        border-radius: 2px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font-size: 10px;
        color: #0099ff;
        margin-left: 5px;
    }

    /* MOREセクション */
    .more-section {
        padding: 15px;
        color: white;
        background-color: #0071ba;
    }

    .top-txt {
        padding: 25% 0% 0% 4%;
        height: 100px;
    }

    .manager img {
        z-index: 4;
        border-radius: 10px;
        position: static;
        border-right: solid 5px #0000002a;
        width: 90%;
        margin: 10% 0% 0% 5%;
        box-shadow: #00000079 -10px -10px 10px;
    }

    .manager-text {
        z-index: 3;
        position: static;
        margin: 10% 0% 0% 2%;
        box-shadow: #00000079 -10px -10px 10px;
        border-radius: 30px 0px 0px 30px;
        /* border: #000 solid 1px; */
        padding: 1%;
        background-color: white;
        background-image: url(../../img/卒業生サイト画像/2024/);
        background-position: right;
        background-size: contain;
        background-repeat: no-repeat;
    }

    .manager-text h1,
    h2,
    p {
        padding-left: 7%;
    }

    .manager-text p>span {
        display: inline-block;
        padding: 0.5% 0%;
    }
}