/*
Theme Name: Oshiro Recruit Theme
Author: Gemini
Description: 株式会社大城組 採用サイト用テーマ（スカイブルー＆ダイナミック斜めver）
Version: 1.2
*/
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap');

html {
    font-size: 62.5%;
    /* 1rem = 10px */
}

/* ===================================
   1. 基本設定・変数
   =================================== */
:root {
    --c-black: #111111;
    --c-dark-gray: #333333;
    --c-white: #ffffff;
    /* --- 青色3色の定義 --- */
    --c-sky-blue: #00BFFF;
    /* メイン：鮮やかな空色 */
    --c-light-blue: #E0FFFF;
    /* 背景用：明るい水色 */
    --c-deep-blue: #006AD5;
    /* 強調用：濃い青 */
    /* アクセント（青の補色で映える黄色/金色系） */
    --c-accent-gold: #FFD700;

    --font-jp: 'Noto Sans JP', sans-serif;
    --font-en: 'Oswald', sans-serif;
}

* {
    box-sizing: border-box;
}

/* html {
    scroll-behavior: smooth;
} */

body {
    margin: 0;
    padding: 0;
    font-family: var(--font-jp);
    color: var(--c-black);
    line-height: 1.8;


    /* 背景を固定してパララックス効果 */
    -webkit-font-smoothing: antialiased;
}

a {
    text-decoration: none;
    color: inherit;
    transition: all 0.3s ease;
}

img {
    width: 100%;
    height: auto;
    vertical-align: bottom;
}

ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

/* ===================================
   2. 共通コンポーネント
   =================================== */
.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px;
    position: relative;
    z-index: 2;
}

.section {
    padding: 100px 0;
    position: relative;
    overflow: hidden;
}

/* 余白を広めに */

/* タイトルデザイン */
.sec-header {
    text-align: center;
    margin-bottom: 80px;
    position: relative;
    z-index: 2;
}

.sec-sub {
    font-family: var(--font-en);
    color: var(--c-deep-blue);
    letter-spacing: 0.2em;
    font-size: 2.0rem;
    display: block;
    margin-bottom: 15px;
    font-weight: 700;
    text-transform: uppercase;
}

.sec-title {
    font-size: 5rem;
    font-weight: 900;
    margin: 0;
    line-height: 1.2;
    background: linear-gradient(45deg, var(--c-deep-blue), var(--c-sky-blue));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    /* タイトル文字も青グラデに */
}

.sec-header p {
    margin-top: 20px;
    color: var(--c-dark-gray);
    font-weight: 500;
    font-size: 1.6rem;
}

/* ボタンデザイン（青ベースの斜めエフェクト） */
.btn-primary {
    display: inline-block;
    background: var(--c-deep-blue);
    /* 濃い青 */
    color: var(--c-white);
    padding: 20px 80px;
    /* 横幅を広めに */
    font-family: var(--font-en);
    font-weight: 700;
    letter-spacing: 0.1em;
    border: none;
    position: relative;
    overflow: hidden;
    z-index: 1;
    border-radius: 50px;
    /* 丸みをつける */
    box-shadow: 0 10px 20px rgba(0, 106, 213, 0.3);
    /* 青い影 */
    transition: 0.3s;
    text-align: center;
    text-decoration: none;
    /* 下線を消す */
}

/* ホバー時の光るエフェクト */
.btn-primary::before {
    content: '';
    position: absolute;
    top: 0;
    left: -120%;
    width: 120%;
    height: 100%;
    background: linear-gradient(45deg, var(--c-sky-blue), var(--c-accent-gold));
    transform: skewX(-30deg);
    transition: 0.5s;
    z-index: -1;
}

.btn-primary:hover {
    color: #fff;
    box-shadow: 0 15px 30px rgba(0, 106, 213, 0.5);
    transform: translateY(-3px);
}

.btn-primary:hover::before {
    left: 0;
}

.pc_on {
    display: block;
}

.sp_on {
    display: none;
}

/* アニメーション用 */
.fade-up {
    opacity: 0;
    transform: translateY(40px);
    transition: all 0.8s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.fade-up.visible {
    opacity: 1;
    transform: translateY(0);
}

/* ===================================
   ★高品質化：背景・装飾用クラス（青Ver）
   =================================== */

/* セクションの上下を鋭角に切り取る */
.skew-section {
    position: relative;
    z-index: 1;
}

.skew-section::before {
    content: '';
    position: absolute;
    top: -80px;
    left: 0;
    width: 100%;
    height: 160px;
    background: inherit;
    transform: skewY(-4deg);
    z-index: -1;
    /* 角度を急に(-4deg) */
}

.skew-section::after {
    content: '';
    position: absolute;
    bottom: -80px;
    left: 0;
    width: 100%;
    height: 160px;
    background: inherit;
    transform: skewY(-4deg);
    z-index: -1;
}

/* 白背景セクションにも斜めのアクセントを追加 */
/* .section.bg-white::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 300px;
    height: 100%;
    background: linear-gradient(to left, rgba(224, 255, 255, 0.5), transparent);
    transform: skewX(-30deg);
    pointer-events: none;
} */

/* ===================================
   3. ヘッダー
   =================================== */
.header {
    /* position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    padding: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    z-index: 100;
    position: absolute; /* fixed から absolute に変更（追尾を解除） */
    position: absolute !important;
    /* 確実に動画の上に浮かせる */
    top: 0;
    left: 0;
    width: 100%;
    padding: 0;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    /* 上端で揃える */
    z-index: 100;
    background-color: transparent !important;
    /* 余計な白い背景（帯）を消す */
    pointer-events: none;
    /* ヘッダーの透明な隙間で、下の動画をクリック等できるようにする */
}

.logo {
    display: block;
    height: 40px;
    /* 画像の高さに合わせて調整してください */
    width: auto;
}

.logo img {
    width: 100%;
    max-width: 450px;
    vertical-align: text-top;
    margin-left: 5px;
    margin-top: 5px;
}

/* ロゴ部分だけはクリック（タップ）できるように戻す */
.header .logo a {
    pointer-events: auto;
    display: inline-block;
}

.hbg_color {
    background-color: #fff;
    padding: 25px;

    position: fixed !important;
    /* 画面右上にずっと付いてくるようにする */
    top: 0;
    right: 0;
    z-index: 99999;
    pointer-events: auto;
    /* ボタンはちゃんとクリックできるようにする */
}

*/ .nav-list {
    display: flex;
    gap: 30px;
    align-items: center;
}

/* =========================================
   ENTRYボタンの上限が切れる問題の修正
   ========================================= */

/* ENTRYボタンの親li要素だけ、overflow: hidden（はみ出し隠し）を解除する */
.nav-list li:has(.header-entry) {
    overflow: visible !important;
}

/* =========================================
   ENTRYボタン（元のデザインを復活・最優先）
   ========================================= */

/* 他のメニューリンクの上書き設定 */
.nav-list li a.header-entry {
    display: inline-block !important;
    /* ボタンとして表示 */
    background-color: var(--c-deep-blue) !important;
    /* 元の濃い青背景 */
    color: #fff !important;
    /* 文字は絶対に白 */
    padding: 10px 40px !important;
    /* 元の余白 */
    font-weight: 700 !important;
    /* 太字 */
    font-size: 1.6rem !important;
    /* 元のサイズ */
    border-radius: 50px !important;
    /* 元の丸角 */
    text-align: center;
    text-decoration: none;
    box-shadow: 0 5px 0 #01579b !important;
    /* 元の青い影 */
    transition: all 0.3s ease !important;
    position: relative;
    top: 0;

    /* 前回の変更で適用された「右に動く」動きを無効化 */
    transform: translateX(0) !important;
}

/* 他のメニュー項目で追加されたゴールドのライン「-」をENTRYボタンでは出さない */
.nav-list li a.header-entry::before {
    content: none !important;
}

/* --- ホバー時（マウスを乗せた時）の動きを元に戻す --- */
.nav-list li a.header-entry:hover {
    background-color: #0d47a1 !important;
    /* ホバー時に少し濃く */
    color: #fff !important;
    /* 文字色は白を維持 */
    transform: translateY(3px) !important;
    /* 少し沈み込む動き */
    box-shadow: 0 2px 0 #01579b !important;
    /* 影を薄くして沈んだ感じを出す */

    /* 前回の変更で適用された「右に動く」動きをホバー時も無効化 */
    transform: translateX(0) !important;
}

/* --- ② ハンバーガーメニューの共通設定（アップデート版） --- */

/* チェックボックスを隠す */
.nav-unshown {
    display: none;
}

/* 三本線アイコンの土台 */
.nav-open {
    display: inline-block;
    position: relative;
    width: 36px;
    /* 少し大きくして押しやすく */
    height: 30px;
    cursor: pointer;
    z-index: 110;
}

/* 三本線の実線部分 */
.nav-open span,
.nav-open span::before,
.nav-open span::after {
    position: absolute;
    width: 100%;
    height: 3px;
    /* 少し太くして存在感を出す */
    background: var(--c-deep-blue);
    border-radius: 3px;
    display: block;
    content: '';
    transition: all 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);
    /* 少しバウンドするようなリッチな動き */
}

/* 真ん中の線 */
.nav-open span {
    top: 50%;
    transform: translateY(-50%);
    width: 80%;
    /* 真ん中だけ少し短くしてデザイン性を出す */
    right: 0;
}

/* 上の線 */
.nav-open span::before {
    top: -12px;
    width: 100%;
    right: 0;
}

/* 下の線 */
.nav-open span::after {
    bottom: -12px;
    width: 60%;
    /* 下はさらに短く */
    right: 0;
}

/* ホバー時の遊び心（線が伸び縮みする） */
.nav-open:hover span {
    width: 100%;
}

.nav-open:hover span::before {
    width: 60%;
}

.nav-open:hover span::after {
    width: 100%;
}


/* --- スライドメニューのスタイル（グラスモーフィズム風） --- */
.nav-content {
    position: fixed;
    top: 0;
    right: -100%;
    width: 320px;
    height: 100vh;
    /* 背景をうっすら青いすりガラス風に */
    background: rgba(240, 248, 255, 0.95);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    box-shadow: -15px 0 40px rgba(0, 106, 213, 0.1);
    transition: 0.6s cubic-bezier(0.19, 1, 0.22, 1);
    /* 滑らかにスライドイン */
    padding: 120px 40px 50px;
    z-index: 105;
    pointer-events: auto;
    border-left: 1px solid rgba(255, 255, 255, 0.5);
}

/* メニュー内のリスト */
.nav-list {
    display: flex;
    flex-direction: column;
    gap: 25px;
    align-items: flex-start;
}

/* メニューリンクのスタイリッシュなデザイン */
.nav-list li {
    width: 100%;
    overflow: hidden;
}

.nav-list li a {
    display: inline-block;
    font-size: 1.8rem;
    font-weight: 900;
    color: var(--c-deep-blue);
    padding: 5px 0;
    position: relative;
    transition: transform 0.3s ease, color 0.3s ease;
    transform: translateX(0);
}

/* リンクホバー時のサイバーなエフェクト */
.nav-list li a::before {
    content: '';
    position: absolute;
    top: 50%;
    left: -20px;
    width: 10px;
    height: 2px;
    background: var(--c-accent-gold);
    transform: translateY(-50%);
    opacity: 0;
    transition: 0.3s ease;
}

.nav-list li a:hover {
    color: var(--c-sky-blue);
    transform: translateX(20px);
    /* 右にスッと動く */
}

.nav-list li a:hover::before {
    opacity: 1;
}

/* 既存の下線エフェクトを上書きして消す（新しいエフェクトと被るため） */
.nav-list li a::after {
    display: none !important;
}


/* --- ③ クリック時の動き（展開時） --- */

/* メニューを引き出す */
#nav-input:checked~.nav-content {
    right: 0;
}

/* アイコンを「×」に変える（スタイリッシュなクロス） */
#nav-input:checked~.hbg_color .nav-open span {
    background: transparent;
    /* 真ん中の線を消す */
}

#nav-input:checked~.hbg_color .nav-open span::before {
    transform: rotate(45deg) translate(8px, 9px);
    width: 100%;
    /* 長さを揃える */
}

#nav-input:checked~.hbg_color .nav-open span::after {
    transform: rotate(-45deg) translate(8px, -9px);
    width: 100%;
    /* 長さを揃える */
}

/* メニュー展開時に背景の黒幕（オーバーレイ）を出す */
.header::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(0, 10, 30, 0.4);
    /* ほんのり濃い青のオーバーレイ */
    backdrop-filter: blur(3px);
    z-index: 104;
    opacity: 0;
    visibility: hidden;
    transition: all 0.5s ease;
}

#nav-input:checked~.header::before {
    opacity: 1;
    visibility: visible;
}

.header-entry {
    background: linear-gradient(45deg, var(--c-deep-blue), var(--c-sky-blue));
    color: #fff !important;
    padding: 12px 35px;
    border-radius: 50px;
    box-shadow: 0 5px 15px rgba(0, 106, 213, 0.3);
}

.header-entry:hover {
    background: linear-gradient(45deg, var(--c-sky-blue), var(--c-accent-gold));
    transform: translateY(-3px);
    box-shadow: 0 10px 25px rgba(0, 191, 255, 0.5);
}

.header-entry::after {
    display: none;
}

.main_contents {
    position: relative;
    /* 子要素の基点にする */
    overflow: hidden;
    /* はみ出した背景を隠す */
}

/* 擬似要素を使って青い背景エリアを作る */
.main_contents::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #0063A7;
    /* コーポレートカラー */

    /* clip-path のポイント (画像のような slash / 形状にする)
       ポイント解説：
       1. (0 0): 左上
       2. (60vw 0): 上端の、斜めの開始位置 (60%の位置)
       3. (0 100%): 左下
       この3点を結ぶ三角形が、画面に表示される青いエリアです。

       ※ レスポンシブで斜めの角度を調整する場合は、
          2の数値を vw で調整すると画面幅に追従します。
       ※ clip-path は「どの範囲を残すか」を指定します。
    */
    clip-path: polygon(0 0, 80vw 0, 0 80%);

    z-index: 0;
    /* 背景として一番下に配置 */
}

/* 各セクションのコンテンツが背景に埋もれないように調整 */
.main_contents section {
    position: relative;
    z-index: 1;
}


/* ===================================
   4. ヒーローエリア（青のフィルター追加）
   =================================== */
.hero {
    height: auto;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    /* background-color: #000; */
    color: #fff;
}

.hero-video-wrap {
    position: relative;
    width: 100%;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
}

.hero-video {
    width: 100%;
    height: auto;
    display: block;
    object-fit: contain;
    /* background-color: #000; */
    margin-bottom: -1px;
}

.hero-watermark {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-family: var(--font-en);
    font-size: clamp(3rem, 18vw, 20rem);
    background: linear-gradient(45deg, rgba(255, 255, 255, 0.1), rgba(0, 191, 255, 0.2));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    white-space: nowrap;
    pointer-events: none;
    z-index: 1;
    line-height: 1;
}

*/ .scroll-down {
    position: absolute;
    bottom: 60px;
    left: 50%;
    transform: translateX(-50%);
    color: #fff;
    font-family: var(--font-en);
    font-size: 0.8rem;
    letter-spacing: 0.2em;
    animation: bob 2s infinite;
    z-index: 2;
}

@keyframes bob {

    0%,
    100% {
        transform: translate(-50%, 0);
    }

    50% {
        transform: translate(-50%, 15px);
    }
}

/* ===================================
   5. ABOUT
   =================================== */

/* MISSION / PHILOSOPHY Section */
.mission-section {
    position: relative;
    padding: 100px 0;
    overflow: hidden;
}

.mission-container {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
}

.mission-text-content {
    color: #fff;
    margin-bottom: 60px;
    max-width: 800px;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.6);
    /* 右に2px、下に2px、ぼかし4px、黒（不透明度60%） */
}

.mission-header {
    font-size: 5rem;
    font-weight: bold;
    font-family: 'Oswald', sans-serif;
    /* 英語フォント指定があれば */
    margin-bottom: 30px;
    letter-spacing: 0.05em;
}

.mission-body p {
    font-size: 1.6rem;
    line-height: 2;
    margin-bottom: 10px;
    font-weight: 500;
}

/* 画像レイアウト */
.mission-images {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 20px;
    margin-top: -40px;
    /* テキストに少し被せる演出 */
    /* 右側のコンテナ余白を打ち消して画面右端まで広げる */
    margin-right: calc(50% - 50vw);
    width: auto;
}


.image-building {
    /* width: 90%;
    max-width: 925px; */
    width: 95vw;
    max-width: 1400px;
    /* height: 250px; */
}

.mission-images img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
    /* border-radius: 5px; */
}

.mission-bg-shape {
    /* position: absolute;
    top: 0px;
    left: 0px;
    right: 0;
    bottom: 50px;
    background: #0063A7; */

    /* 平行四辺形にする（右へ傾ける） */
    /* clip-path: polygon(5% 0, 80vw 0, 50vw 100%, -30vw 100%);
    z-index: 1; */
}

.image-pair {
    width: 85vw;
    max-width: 1200px;
    overflow: hidden;
    clip-path: polygon(20% 0, 100% 0, 100% 100%, 2% 100%);
    padding-left: 10px;
}

/* ===================================
   7. DATA 数字で見る大城組
   =================================== */


/* レイアウトの骨組み */
.data-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    background-color: #f8f8f8;
    /* 背景グレー */
    padding: 20px;

    /* エリアの名前を定義（1行目と3行目は2列分つなげる） */
    grid-template-areas:
        "history    history"
        "simple achieve"
        "retention  retention";
}



/* 各カードにエリア名を割り当て */
.history-card {
    grid-area: history;
}

.simple-card {
    grid-area: simple;
}

.achievement-card {
    grid-area: achieve;
}

.retention-card {
    grid-area: retention;
}

.data-card {
    background: #eceff1;
    border-radius: 10px;
    padding: 15px;
    /* 30pxから15pxに減らしてグラフのスペースを確保 */
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 320px;
    /* 必要に応じて高さを調整 */
}

/* 円グラフのコンテナ：横幅をカード一杯にする */
.chart-container {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}

/* 特徴的な数字のスタイル */
.stats-number {
    font-weight: bold;
    color: #0066cc;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.6);
}

.unit {
    font-size: 1.8rem;
    font-weight: bold;
    color: #333;
}

.num_size_b {
    font-size: 14.0rem;
}

.num_size_m {
    font-size: 13rem;
}

/* 数字の青い光彩エフェクト（画像のような表現） */
.blue-glow .num {
    text-shadow: 0 0 15px rgba(0, 102, 204, 0.3);
}

/* 個別調整：創業カード（横並び） */
.history-card {
    flex-direction: row;
    text-align: center;
    padding: 3rem 2rem;
    background-color: #f4f6f9;
    /* カードの背景色（お好みで調整してください） */
    border-radius: 12px;
}

/* 数字と単位を横並びにして下端を揃える */
.history-card .main-number {
    display: flex;
    justify-content: center;
    align-items: baseline;
    margin: 1.5rem 0;
}

/* --- 105（数字）の3Dネオンライトスタイル --- */
.history-card .main-number .num {
    /* 画面サイズに合わせてフォントサイズを可変にする（最小4rem〜最大7rem） */
    font-size: clamp(4rem, 8vw, 7rem);
    font-weight: 900;
    font-family: 'Arial Black', 'Impact', sans-serif;
    /* 太くてインパクトのあるフォントを指定 */

    /* ベースとなる鮮やかな青色
    color: #007bff; */


    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    /* 文字自体を透明にして、背面のグラデーションを表示させる */

    color: #e6e6e6 0%,
        /* やや明るい銀 */
        #ffffff 25%,
        /* 強い光の反射（白） - ツヤ感のポイント */
        #999999 45%,
        /* 影になる部分（濃い銀） - 立体感のポイント */
        #cccccc 50%,
        /* 反射の境界 */
        #ffffff 80%,
        /* 再び光の反射（白） */
        #e6e6e6 100%
        /* やや明るい銀 */
    ;

    /* text-shadowを使って「3Dの厚み」と「発光（ネオン）」を同時に表現 */
    text-shadow:
        /* 1〜4行目：右下にずらした濃い青色で3Dの厚みを作る */
        1px 1px 0px #0056b3,
        2px 2px 0px #0056b3,
        3px 3px 0px #004494,
        4px 4px 0px #004494,
        /* ネオンの発光（ぼかし・明るい青） */
        0 0 10px rgba(0, 123, 255, 0.6),
        0 0 20px rgba(0, 123, 255, 0.4),
        0 0 40px rgba(0, 123, 255, 0.2);
}



/* --- 年（単位）のスタイル --- */
.history-card .main-number .unit {
    font-size: 1.5rem;
    font-weight: bold;
    color: #333;
    /* 単位は光らせずダークグレーにすることで、数字の青さを際立たせる */
    margin-left: 0.5rem;
}


/* 個別調整：男女比（縦に長く） */
.gender-card {
    grid-row: span 2;
}

/* 個別調整：定着率（2列並び） */
.retention-flex {
    display: flex;
    width: 100%;
    justify-content: space-around;
}

.retention-flex {
    text-align: center;
}

/* =========================================
   育児休暇取得者：男女ラベルのかっこいい装飾
   ========================================= */

/* テキストを丸みのあるスタイリッシュなバッジ風に変更 */
.retention-flex .stat-item p {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 15px !important;
    padding: 8px 35px !important;
    background: #ffffff;
    color: #1a365d !important;
    /* 濃いネイビー */
    font-size: 1.6rem !important;
    font-weight: 900;
    letter-spacing: 0.15em;
    text-indent: 0.15em;
    /* letter-spacingのズレを中央に補正 */
    border-radius: 50px;
    /* ピル型（カプセル型） */
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.06);
    border: 1px solid #eef2f6;
    transition: all 0.3s ease;
}

/* 共通設定（縦ラインのベース） */
.retention-flex .stat-item p::before {
    content: '';
    display: inline-block;
    width: 4px;
    height: 16px;
    margin-right: 10px;
    border-radius: 2px;
}

/* 女性：ピンクの縦ライン */
.retention-flex .stat-item:nth-child(1) p::before {
    background-color: #ff768b;
}

/* 男性：ブルーの縦ライン */
.retention-flex .stat-item:nth-child(2) p::before {
    background-color: #00BFFF;
}


/* アイコンサイズ */
.card-icon,
.stat-item img {
    width: 60px;
    margin-bottom: 10px;
    margin: 30px;
}


/* 中の文字 */
.chart-label {
    position: relative;
    z-index: 1;
    text-align: center;
    font-family: sans-serif;
    font-size: 2.5rem;
}

/* 「男女比率」の小文字 */
.chart-label .label-text {
    display: block;
    font-size: 1rem;
    font-weight: bold;
    color: #1a365d;
    margin-bottom: 5px;
}


/* 数値をアニメーション対象として登録 */
@property --percent {
    syntax: '<number>';
    initial-value: 0;
    inherits: false;
}

/* 円グラフの本体 */
.pie-chart {
    width: 95%;
    /* カードの幅に対して95%まで拡大 */
    max-width: 400px;
    /* 大きくなりすぎないためのストッパー */
    aspect-ratio: 1 / 1;
    /* 正方形を維持 */
    border-radius: 50%;
    /* 15%の位置で色を分ける */
    background: conic-gradient(#4da3ff 0% 15%, #dce1e8 15% 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

/* 真ん中を白く抜いてドーナツ型にする場合 */
.pie-chart::after {
    content: "";
    position: absolute;
    width: 82%;
    /* 穴の大きさを調整（太さの変更） */
    height: 82%;
    background: #ffffff;
    /* 画像に合わせて白に */
    border-radius: 50%;
}

.comfort-card img {
    max-width: 300px;
    width: 100%;
}



@keyframes grow-chart {
    from {
        --percent: 0;
    }

    to {
        --percent: 15;
    }

    /* ここを目標の数値に設定 */
}

/* ===================================
   8. WORKS
   =================================== */
.works-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 30px;
}

.work-item {
    position: relative;
    overflow: hidden;
    aspect-ratio: 4/3;
    display: block;
    border-radius: 16px;
    box-shadow: 0 15px 40px rgba(0, 106, 213, 0.15);
}

.work-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.8s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.work-item:hover img {
    transform: scale(1.15);
}

.work-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    padding: 40px 30px;
    /* 青系のグラデーションオーバーレイ */
    background: linear-gradient(to top, rgba(0, 64, 128, 0.9), rgba(0, 106, 213, 0.5), transparent);
    color: #fff;
    transform: translateY(30px);
    opacity: 0;
    transition: all 0.5s ease;
}

.work-item:hover .work-overlay {
    transform: translateY(0);
    opacity: 1;
}

.work-cat {
    font-family: var(--font-en);
    color: var(--c-sky-blue);
    font-size: 0.9rem;
    display: block;
    margin-bottom: 8px;
    font-weight: 700;
}

.work-name {
    font-size: 1.5rem;
    font-weight: 900;
    line-height: 1.3;
}

/* ===================================
   9. INTERVIEW
   =================================== */
.interview-list {
    display: flex;
    flex-direction: column;
    gap: 120px;
}

.interview-card {
    display: flex;
    align-items: center;
    gap: 80px;
}

.interview-card:nth-child(even) {
    flex-direction: row-reverse;
}

.int-img {
    flex: 1;
    position: relative;
}

.int-img img {
    border-radius: 8px;
    position: relative;
    z-index: 1;
    box-shadow: 20px 20px 40px rgba(0, 106, 213, 0.2);
}

/* 写真の裏に青い斜め背景を敷く */
.int-img::before {
    content: '';
    position: absolute;
    top: -30px;
    left: -30px;
    width: 100%;
    height: 100%;
    background: linear-gradient(45deg, var(--c-sky-blue), var(--c-deep-blue));
    transform: skewX(-10deg);
    border-radius: 8px;
    opacity: 0.2;
    z-index: 0;
}

.interview-card:nth-child(even) .int-img::before {
    left: auto;
    right: -30px;
    transform: skewX(10deg);
}

.int-content {
    flex: 1;
}

.int-role {
    font-family: var(--font-en);
    color: #000;
    letter-spacing: 0.1em;
    display: block;
    margin-bottom: 15px;
    font-weight: 700;
    font-size: 2.0rem;
}

.int-name {
    font-size: 4rem;
    font-weight: 900;
    margin-bottom: 25px;
    line-height: 1.3;
    color: #000;
}

.int-desc {
    font-size: 1.4rem;
}

.link-text {
    display: inline-block;
    font-weight: 900;
    font-size: 2rem;
    color: #000;
    position: relative;
    padding-bottom: 5px;
}

.link-text::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 3px;
    background: linear-gradient(45deg, var(--c-sky-blue), var(--c-accent-gold));
    transform: skewX(-30deg);
    transition: 0.3s;
}

.link-text:hover::after {
    width: 120%;
}

/* ==========================================
   INTERVIEWS セクション (#people) の装飾
========================================== */
#people {
    position: relative;
    z-index: 0;
    /* 背景要素が前面に出ないようにするための調整 */
    overflow: hidden;
    /* もし図形がセクション外にはみ出すのを防ぎたい場合は有効化してください */
}

/* =========================================
   背景装飾 共通設定
========================================= */
.bg-shape {
    position: absolute;
    z-index: -1;
}

/* 左側の三角形（濃い青）の共通形 */
.bg-left {
    left: 0;
    /* background-color: #0063A7; */
    clip-path: polygon(0 0, 100% 50%, 0 100%);
}

/* 右側の三角形（水色）の共通形 */
.bg-right {
    right: 0;
    background-color: #DDEEFF;
    clip-path: polygon(100% 0, 0 50%, 100% 100%);
}

/* =========================================
   背景装飾 個別設定（位置とサイズ）
   ※ top, width, height の数値はプレビューを見ながら適宜調整してください。
========================================= */

/* --- 左側 --- */
.bg-l1 {
    top: 100px;
    width: 300px;
    height: 600px;
    background-color: #0063A7;
}

.bg-l2 {
    width: 300px;
    height: 600px;
    opacity: 0.8;
    /* お好みで透過や色変更なども可能です */
    background-color: rgb(221, 238, 255);
}

.bg-l3 {
    top: 800px;
    /* 2つ目の下になるように調整 */
    width: 300px;
    height: 600px;
    background-color: #0063A7;
}

/* --- 右側 --- */
.bg-r1 {
    top: 400px;
    width: 200px;
    height: 400px;
    background-color: rgb(221, 238, 255);

}

.bg-r2 {
    width: 300px;
    height: 600px;
    background-color: #0063A7;

}

.bg-r3 {
    top: 800px;
    /* 2つ目の下になるように調整 */
    width: 300px;
    height: 600px;
    background-color: rgb(221, 238, 255);

}



/* #people.section {
    position: relative;
    overflow: hidden;
    background-color: #fff;
    z-index: 0;
    padding: 100px 0;
} */

/* #people::before,
#people::after {
    content: "";
    position: absolute;
    display: block;
    pointer-events: none;
    height: 100%;
   
    top: 0;
} */

/* #people::before {
    content: "";
    position: absolute;
    top: 100px;
    left: 0;
    width: 300px;
    height: 600px;
    background-color: #0063A7;
    clip-path: polygon(0 0, 100% 50%, 0 100%);
    z-index: -1;
    transform: none;
} */

/* #people::after {
    content: "";
    position: absolute;
    top: 400px;
    right: 0;
    width: 200px;
    height: 400px;
    background-color: #DDEEFF;
    clip-path: polygon(100% 0, 0 50%, 100% 100%);
    z-index: -1;
} */

/* #people .container {
    position: relative;
    z-index: 1;
} */

/* ===================================
   10. SCHEDULE (Timeline)
   =================================== */
.timeline-wrap {
    max-width: 900px;
    margin: 0 auto;
    position: relative;
    padding: 40px 0;
}

/* タイムラインの中央線も青グラデに */
.timeline-wrap::before {
    content: '';
    position: absolute;
    top: 0;
    left: 120px;
    width: 4px;
    height: 100%;
    background: linear-gradient(to bottom, var(--c-sky-blue), var(--c-deep-blue));
    border-radius: 2px;
}

.timeline-item {
    display: flex;
    margin-bottom: 40px;
    position: relative;
    z-index: 1;
}

.time-col {
    width: 120px;
    text-align: right;
    padding-right: 30px;
    padding-top: 20px;
    flex-shrink: 0;
}

.time-text {
    font-family: var(--font-en);
    font-weight: 900;
    font-size: 1.6rem;
    color: var(--c-deep-blue);
}

.marker-col {
    width: 0;
    position: relative;
    display: flex;
    justify-content: center;
}

.marker-dot {
    width: 24px;
    height: 24px;
    background-color: var(--c-sky-blue);
    border: 4px solid #fff;
    border-radius: 50%;
    box-shadow: 0 0 0 4px var(--c-sky-blue), 0 5px 15px rgba(0, 106, 213, 0.4);
    position: absolute;
    top: 25px;
    left: -12px;
}

.content-col {
    flex-grow: 1;
    padding-left: 30px;
}

.schedule-card {
    background: #fff;
    padding: 35px;
    border-radius: 16px;
    box-shadow: 0 15px 40px rgba(0, 106, 213, 0.1);
    display: flex;
    align-items: flex-start;
    gap: 25px;
    transition: 0.4s;
    border-left: 5px solid var(--c-sky-blue);
    /* 左に青線 */
}

.schedule-card:hover {
    transform: translateY(-5px) translateX(10px);
    box-shadow: 0 20px 50px rgba(0, 191, 255, 0.2);
}

.sch-icon-box {
    font-size: 2.2rem;
    flex-shrink: 0;
    background: linear-gradient(135deg, var(--c-light-blue), var(--c-sky-blue));
    color: var(--c-deep-blue);
    width: 80px;
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    box-shadow: 0 10px 20px rgba(0, 106, 213, 0.2);
}

.sch-text h4 {
    margin: 0 0 10px 0;
    font-size: 1.3rem;
    font-weight: 900;
    color: var(--c-deep-blue);
}

/* ===================================
   11. WELFARE (Card Grid)
   =================================== */
.welfare-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
    margin: 0 auto;
}

.welfare-card {
    background: rgba(255, 255, 255, 0.95);
    padding: 45px 35px;
    border-radius: 20px;
    width: 100%;
    box-sizing: border-box;
    text-align: center;
    box-shadow: 0 15px 40px rgba(0, 106, 213, 0.1);
    transition: 0.4s;
    border: 2px solid transparent;
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.welfare-card:hover {
    transform: translateY(-15px);
    box-shadow: 0 25px 60px rgba(0, 191, 255, 0.25);
    border-color: var(--c-sky-blue);
}

/* カード上部の斜めライン */
.welfare-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 8px;
    background: linear-gradient(45deg, var(--c-sky-blue), var(--c-accent-gold));
    transform: skewX(-30deg) translateX(-100%);
    transition: 0.5s;
}

.welfare-card:hover::before {
    transform: skewX(-30deg) translateX(0);
}

.wel-icon-circle {
    width: 100px;
    height: 100px;
    background: linear-gradient(135deg, var(--c-light-blue), var(--c-sky-blue));
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 30px auto;
    transition: 0.4s;
    box-shadow: 0 10px 25px rgba(0, 106, 213, 0.2);
}

.welfare-card:hover .wel-icon-circle {
    background: linear-gradient(135deg, var(--c-sky-blue), var(--c-deep-blue));
    transform: rotate(10deg);
}

.wel-emoji {
    font-size: 3rem;
}

.wel-content {
    font-size: 1.6rem;
}

.wel-content h4 {
    font-size: 2rem;
    font-weight: 900;
    margin-bottom: 15px;
    color: var(--c-deep-blue);
}



/* ===================================
   12. NEWS (High Quality)
   =================================== */
.news-list {
    max-width: 900px;
    margin: 0 auto;
}

.news-item {
    display: flex;
    align-items: center;
    padding: 30px;
    border-radius: 16px;
    background: #fff;
    margin-bottom: 20px;
    box-shadow: 0 10px 30px rgba(0, 106, 213, 0.05);
    transition: 0.4s;
    border: 1px solid transparent;
}

.news-item:hover {
    transform: translateX(15px);
    box-shadow: 0 15px 40px rgba(0, 191, 255, 0.15);
    border-color: var(--c-sky-blue);
}

.news-date {
    font-family: var(--font-en);
    font-weight: 700;
    color: var(--c-sky-blue);
    margin-right: 25px;
    font-size: 1.1rem;
}

.news-cat {
    background: linear-gradient(45deg, var(--c-deep-blue), var(--c-sky-blue));
    color: #fff;
    font-size: 0.75rem;
    padding: 6px 18px;
    border-radius: 50px;
    font-weight: 700;
}

.news-title {
    font-size: 1.2rem;
    font-weight: 700;
    flex: 1;
    margin: 0;
    padding: 0 30px;
    color: var(--c-dark-gray);
}

.news-arrow {
    font-family: var(--font-en);
    font-weight: 900;
    color: var(--c-sky-blue);
    font-size: 1.5rem;
    opacity: 0;
    transition: 0.4s;
    transform: translateX(-20px);
}

.news-item:hover .news-arrow {
    opacity: 1;
    transform: translateX(0);
}

/* ===================================
   13. SELECTION FLOW
   =================================== */
.flow-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 60px 80px;
    margin-top: 60px;
}

.flow-card {
    position: relative;
    /* 3色の青グラデーション */
    background: linear-gradient(135deg, var(--c-sky-blue), var(--c-deep-blue));
    color: #fff;
    padding: 60px 30px 40px;
    text-align: center;
    border-radius: 20px;
    box-shadow: 0 20px 50px rgba(0, 106, 213, 0.3);
    transition: 0.4s;
    border-bottom: 5px solid var(--c-accent-gold);
    /* 下にゴールドのアクセント */
}

/* フローが進むにつれて色が濃くなる */
.flow-card.item-1 {
    background: linear-gradient(135deg, var(--c-light-blue), var(--c-sky-blue));
    color: var(--c-deep-blue);
}

.flow-card.item-2 {
    /* background: linear-gradient(135deg, #80dfff, var(--c-sky-blue)); */
    background: linear-gradient(135deg, var(--c-sky-blue), #0099ff);
}

.flow-card.item-3 {
    /* background: linear-gradient(135deg, var(--c-sky-blue), #0099ff); */
    background: linear-gradient(135deg, #0099ff, var(--c-deep-blue));
}

/* .flow-card.item-4 {
    background: linear-gradient(135deg, #0099ff, var(--c-deep-blue));
}

.flow-card.item-5 {
    background: linear-gradient(135deg, var(--c-deep-blue), #004ea8);
}

.flow-card.item-6 {
    background: linear-gradient(135deg, #004ea8, #003377);
    border-bottom-color: var(--c-sky-blue);
} */

.flow-card:hover {
    transform: translateY(-15px) scale(1.03);
}

.flow-num {
    position: absolute;
    top: -35px;
    left: 50%;
    transform: translateX(-50%);
    width: 70px;
    height: 70px;
    background: #fff;
    color: var(--c-deep-blue);
    font-family: var(--font-en);
    font-weight: 900;
    font-size: 2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    box-shadow: 0 10px 25px rgba(0, 106, 213, 0.3);
    border: 4px solid var(--c-sky-blue);
}

.flow-title {
    font-size: 2.4rem;
    font-weight: 900;
    margin-bottom: 15px;
    padding-top: 15px;
}

.flow-desc {
    font-size: 1.6rem;
}

/* 矢印を斜めのシェブロンに変更 */
.flow-card::after {
    content: '';
    position: absolute;
    top: 50%;
    right: -60px;
    width: 30px;
    height: 30px;
    border-top: 5px solid var(--c-sky-blue);
    border-right: 5px solid var(--c-sky-blue);
    transform: translateY(-50%) rotate(45deg) skewX(-10deg);
    opacity: 0.6;
}

.flow-card.item-3::after,
.flow-card.item-6::after {
    display: none;
}

/* ===================================
   14. その他（FAQ, 募集要項, Footer）
   =================================== */

/* FAQ */

/* コンテナ全体のスタイル */
.faq-container {
    /* max-width: 800px; */
    margin: 40px auto;
    padding: 20px;
    background-color: rgba(255, 255, 255, 0.5);
}

/* タイトル部分 */
.faq-title {
    text-align: center;
    font-size: 1.25rem;
    font-weight: bold;
    margin-bottom: 40px;
    color: #333;
    position: relative;
}

/* タイトル下の緑の線 */
.faq-title::after {
    content: "";
    display: block;
    width: 30px;
    height: 4px;
    background-color: #b8d4bb;
    /* 画像の淡い緑 */
    margin: 8px auto 0;
    border-radius: 2px;
}

/* アコーディオンの各アイテム */
.faq-item {
    margin-bottom: 15px;
    border-radius: 50px;
    /* 画像のような強い丸み */
    overflow: hidden;
    background: linear-gradient(90deg, #e3f2fd 0%, #f1f8e9 100%);
    /* 水色から緑のグラデ */
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
    font-size: 1.6rem;
}


.faq-item:hover {
    border-color: var(--c-sky-blue);
    box-shadow: 0 15px 40px rgba(0, 191, 255, 0.15);
}

/* 質問部分（クリック領域） */
.faq-question {
    padding: 15px 30px;
    cursor: pointer;
    list-style: none;
    /* デフォルトの矢印を消す */
    display: flex;
    align-items: center;
    font-weight: bold;
    color: #333;
    position: relative;
}

/* カスタム矢印 */
.faq-question::after {
    content: "∨";
    position: absolute;
    right: 25px;
    font-size: 0.8rem;
    color: #666;
    transition: transform 0.3s;
}

/* 開いている時の矢印回転 */
.faq-item[open] .faq-question::after {
    transform: rotate(180deg);
}

/* 回答部分 */
.faq-answer {
    padding: 0 30px 20px 30px;
    display: flex;
    align-items: flex-start;
    color: #555;
    line-height: 1.6;
}

/* QとAの文字装飾 */
.prefix {
    font-size: 1.4rem;
    font-weight: bold;
    margin-right: 15px;
    flex-shrink: 0;
}

.q {
    color: #1e4d8c;
}

/* 濃い青 */
.a {
    color: #4a7c59;
}

/* 濃い緑 */

.faq-answer p {
    margin: 0;
    padding-top: 4px;
}

/* Safariのデフォルト矢印消し */
.faq-question::-webkit-details-marker {
    display: none;
}

/* 募集要項テーブル */
.recruit-table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 50px;
    background: rgba(255, 255, 255, 0.95);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 15px 40px rgba(0, 106, 213, 0.1);
}

.recruit-table th,
.recruit-table td {
    padding: 30px;
    border-bottom: 1px solid #eee;
    text-align: left;
}

.recruit-table th {
    width: 30%;
    background: rgba(0, 191, 255, 0.05);
    font-weight: 700;
    color: var(--c-deep-blue);
}

.recruit-table td {
    font-size: 0.95rem;
}

/* CTA セクション（お問い合わせ） */
.cta-section {
    /* 青の斜めグラデーション背景 */
    background: linear-gradient(135deg, var(--c-deep-blue), var(--c-sky-blue));
    color: #fff;
    text-align: center;
    padding: 100px 0;
    position: relative;
    overflow: hidden;
}

/* CTA背景に大きな斜め線を入れる */
.cta-section::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: repeating-linear-gradient(45deg, transparent, transparent 50px, rgba(255, 255, 255, 0.1) 50px, rgba(255, 255, 255, 0.1) 100px);
    transform: rotate(-20deg);
    pointer-events: none;
}

.cta-title {
    font-size: 5.5rem;
    font-weight: 900;
    margin-bottom: 20px;
    position: relative;
    z-index: 1;
    font-size: 5rem;
}

.cta-text {
    color: rgba(255, 255, 255, 0.9);
    margin-bottom: 40px;
    position: relative;
    z-index: 1;
    font-size: 2.0rem;
}

/* =========================================
   応募フォームへの超目立つCTAボタン（超スムーズ・カラー変更版）
   ========================================= */

.btn-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #ffea00;
    color: var(--c-deep-blue, #222);
    padding: 20px 25%;
    font-weight: 900;
    font-size: 2.3rem;
    border-radius: 50px;
    box-shadow: 0 10px 30px rgba(255, 193, 7, 0.4);
    position: relative;
    z-index: 1;
    text-decoration: none;
    transition: background 0.5s ease, color 0.5s ease, scale 0.5s ease, box-shadow 0.5s ease;
    scale: 1;
    translate: 0 0;
    animation: floating-btn-smooth 2.5s ease-in-out infinite;
}

/* 矢印アイコン */
.btn-cta::after {
    content: '\25B6\FE0E';
    font-size: 0.8em;
    margin-left: 20px;
    transition: translate 0.5s ease, scale 0.5s ease;
    translate: 0 0;
}

/* --- ホバー（マウスを乗せた時）の滑らかな変化 --- */
.btn-cta:hover {
    /* 配色：ホバーで「進め！」の緑色にじわっと変化 */
    background: #4caf50;
    color: #fff;
    /* 背景が緑になるので、文字は白にして視認性をアップ */

    /* じんわりとボタン全体が大きくなる（ふわふわは止まらない！） */
    scale: 1.08;

    /* 影も緑色に合わせてじんわり変化 */
    box-shadow: 0 25px 50px rgba(76, 175, 80, 0.4);
}

/* 矢印がスムーズに右へスッと動く */
.btn-cta:hover::after {
    translate: 8px 0;
    scale: 1.2;
}

/* ふわふわアニメーション（translateのみを動かすことでホバーのscaleと喧嘩しない） */
@keyframes floating-btn-smooth {

    0%,
    100% {
        translate: 0 0;
    }

    50% {
        translate: 0 -18px;
        /* 大きく上に浮かぶ */
    }
}

/* フッター */
.footer {
    background: #1a1a1a;
    /* 濃いグレー（ほぼ黒） */
    color: #888;
    /* padding: 60px 0; */
    text-align: center;
    font-size: 0.8rem;
    position: relative;
    z-index: 2;
    /* 最前面に配置 */
}

.footer .container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 30px 40px;
    color: #fff;
    font-size: 1.2rem;
    line-height: 1.1;
}

.footer .footer_logoname {
    font-size: 3.0rem;
}


.footer-logo {
    font-weight: 900;
    font-size: 1.8rem;
    color: #fff;
    margin-bottom: 20px;
    font-family: var(--font-en);
    letter-spacing: 0.05em;
}

/* ===================================
   17. エントリーポップアップ（モーダル）
   =================================== */
.entry-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
}

/* モーダル表示時のクラス */
.entry-modal.is-active {
    opacity: 1;
    pointer-events: auto;
}

/* 背景の黒幕 */
.modal-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.7);
    backdrop-filter: blur(5px);
    /* 背景をぼかす */
}

/* ポップアップ本体 */
.modal-content {
    position: relative;
    width: 90% !important;
    max-width: 800px;
    background: #fff;
    padding: 60px 40px;
    border-radius: 20px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    text-align: center;
    transform: translateY(20px);
    transition: transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.entry-modal.is-active .modal-content {
    transform: translateY(0);
}

/* 閉じるボタン */
.modal-close {
    position: absolute;
    top: 20px;
    right: 20px;
    width: 40px;
    height: 40px;
    background: #f4f5f7;
    border: none;
    border-radius: 50%;
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
    transition: 0.3s;
    color: #333;
    display: flex;
    align-items: center;
    justify-content: center;
}

.modal-close:hover {
    background: #333;
    color: #fff;
    transform: rotate(90deg);
}

/* タイトル周り */
.modal-title {
    font-family: var(--font-en);
    font-size: 5rem;
    font-weight: 900;
    color: var(--c-deep-blue);
    margin-bottom: 10px;
    letter-spacing: 0.1em;
}

.modal-desc {
    color: #666;
    margin-bottom: 40px;
    font-weight: 700;
    font-size: 1.6rem;
}

/* グリッドレイアウト */
.modal-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
}

/* 選択カード */
.modal-card {
    background: #f9fbff;
    border-radius: 16px;
    padding: 40px 30px;
    border: 2px solid #eef2f6;
    transition: 0.3s;
}

.modal-card:hover {
    border-color: var(--c-sky-blue);
    box-shadow: 0 10px 30px rgba(0, 191, 255, 0.15);
    transform: translateY(-5px);
}

/* ラベル（新卒・中途） */
.modal-label {
    display: inline-block;
    background: linear-gradient(45deg, var(--c-deep-blue), var(--c-sky-blue));
    color: #fff;
    padding: 8px 30px;
    border-radius: 50px;
    font-weight: 700;
    margin-bottom: 30px;
    font-size: 2rem;
    box-shadow: 0 5px 15px rgba(0, 106, 213, 0.3);
}

.modal-card.career .modal-label {
    background: linear-gradient(45deg, var(--c-sky-blue), var(--c-accent-gold));
}

/* ボタンリスト */
.modal-links {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.modal-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #fff;
    padding: 15px 25px;
    border-radius: 8px;
    border: 1px solid #ddd;
    color: #333;
    font-weight: 700;
    text-decoration: none;
    transition: 0.3s;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
    font-size: 1.6rem;
}

.modal-btn:hover {
    background: var(--c-deep-blue);
    color: #fff;
    border-color: var(--c-deep-blue);
    transform: translateX(5px);
}

/* マイナビ・ジョブアンテナごとの色分け（任意） */
.modal-btn.mynavi {
    border-left: 5px solid #00BFFF;
}

.modal-btn.jobantenna {
    border-left: 5px solid #FFD700;
}

.btn-arrow {
    font-family: var(--font-en);
    font-weight: 900;
}

/* ===================================
   18. ページトップボタン
   =================================== */
.page-top-btn {
    position: fixed;
    bottom: 30px;
    right: 30px;
    width: 60px;
    height: 60px;
    /* 青のグラデーション */
    background: linear-gradient(135deg, var(--c-sky-blue), var(--c-deep-blue));
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 900;
    /* フッターやモーダルよりは下、コンテンツよりは上 */
    box-shadow: 0 5px 15px rgba(0, 106, 213, 0.3);
    text-decoration: none;
    /* 初期状態は隠す */
    opacity: 0;
    visibility: hidden;
    transform: translateY(20px);
    transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
}

/* 表示時のクラス */
.page-top-btn.is-active {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

/* ホバー時の動き */
.page-top-btn:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 25px rgba(0, 191, 255, 0.5);
    background: linear-gradient(135deg, var(--c-light-blue), var(--c-sky-blue));
}

/* 矢印アイコン（CSSで描画） */
.page-top-arrow {
    width: 12px;
    height: 12px;
    border-top: 3px solid #fff;
    border-right: 3px solid #fff;
    transform: rotate(-45deg);
    margin-top: 6px;
    /* 位置微調整 */
    transition: 0.3s;
}

/* ホバー時に矢印の色を変える場合 */
.page-top-btn:hover .page-top-arrow {
    border-color: var(--c-deep-blue);
}

/* --- ボタン中央寄せ用のスタイル追加 --- */
.btn-center-wrapper {
    display: flex;
    /* Flexboxを有効化 */
    justify-content: center;
    /* 左右中央揃え */
    align-items: center;
    /* 上下中央揃え */
    width: 100%;
    /* 横幅いっぱいに広げる */
    margin-top: 60px;
    /* 上に余白 */
}

/* --- パララックス PC・タブレット向けの動き（Sticky） --- */
/* --- 基本設定 --- */
:root {
    --scroll-depth: 300vh;
    /* ここでスクロールの「重さ」を調整（300vh＝画面3枚分） */
}

.issue-scroll-container {
    font-family: "Yu Gothic", "YuGothic", sans-serif;
    position: relative;
    background-color: #000;
    /* 背景色 */
}

/* --- 各セクションの枠組み（スクロールのレール） --- */
.scroll-section {
    height: var(--scroll-depth);
    /* ここで縦の長さを確保 */
    position: relative;
}

/* --- 実際に表示される中身（画面に張り付く部分） --- */
.sticky-content {
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    width: 100%;
    height: 100vh;
    overflow: hidden;
    display: flex;
    justify-content: center;
    align-items: center;
    /* 次の要素が重なってくるようにz-indexを整理 */
    z-index: 1;
    box-shadow: 0 -10px 30px rgba(0, 0, 0, 0.5);
    /* 重なり感の影 */
}

/* セクションごとの重なり順（下に行くほど上に重なる） */
#section-01 .sticky-content {
    z-index: 1;
}

#section-02 .sticky-content {
    z-index: 2;
}

#section-03 .sticky-content {
    z-index: 3;
}

/* --- 背景画像とオーバーレイ --- */
.bg-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    filter: brightness(0.7);
    /* 画像を少し暗くして文字を見やすく */
}

/* --- テキストエリア --- */
.text-content {
    position: relative;
    color: #fff;
    text-align: center;
    max-width: 800px;
    z-index: 10;
    padding: 20px;
    opacity: 0;
    /* 最初は隠す */
    transform: translateY(20px);
    transition: all 1s ease;
}

/* アクティブになったら文字を表示 */
.scroll-section.active .text-content {
    opacity: 1;
    transform: translateY(0);
}

.service-title {
    font-size: 3rem;
    font-weight: bold;
    margin-bottom: 1.5rem;
    letter-spacing: 0.1em;
}

.service-desc {
    font-size: 1.1rem;
    line-height: 2;
}

/* --- 右側の番号ナビゲーション（画像のイメージを再現） --- */
/* 右側の固定ナビゲーションの初期設定を非表示にする */
/* --- 基本設定 --- */
:root {
    --scroll-depth: 300vh;
    /* スクロールの「重さ」（画面3枚分） */
}

.issue-scroll-container {
    font-family: "Yu Gothic", "YuGothic", sans-serif;
    position: relative;
    background-color: #000;
}

/* --- 各セクションの枠組み --- */
.scroll-section {
    height: var(--scroll-depth);
    position: relative;
}

/* --- 実際に表示される中身（画面に張り付く部分） --- */
.sticky-content {
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    width: 100%;
    height: 100vh;
    overflow: hidden;
    display: flex;
    justify-content: center;
    align-items: center;

    /* ▼▼▼ ここを変更（フェード挙動の追加） ▼▼▼ */
    z-index: 1;
    /* box-shadow は境界線が見えてしまうので削除します */
    /* box-shadow: 0 -10px 30px rgba(0,0,0,0.5); */

    /* 基本は透明にして、移動中の姿を見せない */
    opacity: 0;
    /* ふわっと表示させるためのトランジション */
    transition: opacity 1.0s ease-in-out;
    /* ▲▲▲ 変更ここまで ▲▲▲ */
}

/* ▼▼▼ ここを追加（フェード制御） ▼▼▼ */

/* 1枚目はベースなので最初から表示しておく */
#section-01 .sticky-content {
    opacity: 1;
}

/* アクティブになったセクションをふわっと表示 */
/* z-indexが高い順に上に重なってフェードインします */
.scroll-section.active .sticky-content {
    opacity: 1;
}

/* ▲▲▲ 追加ここまで ▲▲▲ */


/* セクションごとの重なり順（下に行くほど上に重なる） */
#section-01 .sticky-content {
    z-index: 1;
}

#section-02 .sticky-content {
    z-index: 2;
}

#section-03 .sticky-content {
    z-index: 3;
}

/* --- 背景画像とオーバーレイ --- */
.bg-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    filter: brightness(0.7);
}

/* --- テキストエリア --- */
.text-content {
    position: relative;
    color: #fff;
    text-align: center;
    max-width: 800px;
    z-index: 10;
    padding: 20px;
    /* テキスト自体のふわっとアニメーション */
    opacity: 0;
    transform: translateY(20px);
    transition: all 1s ease 0.3s;
    /* 背景より少し遅れて表示 */
}

/* アクティブになったら文字を表示 */
.scroll-section.active .text-content {
    opacity: 1;
    transform: translateY(0);
}

.service-title {
    font-size: 3rem;
    font-weight: bold;
    margin-bottom: 1.5rem;
    letter-spacing: 0.1em;
}

.service-desc {
    font-size: 1.1rem;
    line-height: 2;
}

/* --- 右側の番号ナビゲーション --- */
.scroll-nav {
    position: fixed;
    top: 50%;
    right: 30px;
    transform: translateY(-50%);
    z-index: 999;
    display: flex;
    flex-direction: column;
    gap: 20px;
    /* 初期状態は非表示 */
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.5s ease;
}

/* エリアに入ったら表示 */
.scroll-nav.is-visible {
    opacity: 1;
    pointer-events: auto;
}

.nav-item {
    color: rgba(255, 255, 255, 0.5);
    font-size: 18px;
    font-weight: bold;
    text-decoration: none;
    width: 50px;
    height: 50px;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 50%;
    transition: all 0.3s ease;
    cursor: pointer;
}

.nav-item.active {
    background-color: #fff;
    color: #000;
    box-shadow: 0 0 15px rgba(255, 255, 255, 0.3);
    font-size: 20px;
}

.job-attractions {
    max-width: 1000px;
    margin: 40px auto;
    padding: 20px;
    background: linear-gradient(135deg, #e0f7fa 0%, #ffffff 50%, #e0f7fa 100%);
    /* 背景のウェーブなどを再現したい場合はここに背景画像を指定 */
}

/* タイトルエリア */
.section-header {
    text-align: center;
    margin-bottom: 50px;
}

.main-title {
    font-size: 28px;
    font-weight: bold;
    margin-bottom: 10px;
    letter-spacing: 0.1em;
}

.title-underline {
    display: block;
    width: 60px;
    height: 4px;
    background-color: #5d9e95;
    margin: 0 auto;
    border-radius: 2px;
}

/* --- 上段（大きなカード2枚） --- */
.top-row {
    display: flex;
    justify-content: space-between;
    gap: 30px;
    margin-bottom: 60px;
}

.large-card {
    background: #fff;
    border-radius: 20px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
    flex: 1;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding-bottom: 20px;
}

.content-block {
    text-align: center;
    padding: 60px 20px 20px;
    position: relative;
}

.content-block h3 {
    font-size: 20px;
    margin: 10px 0;
    color: #000;
}

.content-block p {
    font-size: 1.4rem;
    color: #666;
    line-height: 1.6;
    margin: 0;
    text-align: left;
}

/* アイコンバッジ（共通） */
.icon-badge,
.icon-circle {
    background-color: #5d9e95;
    /* ミントグリーン系の色 */
    color: white;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    margin: 0 auto;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
}

/* 上段カード内のアイコン位置調整 */
.content-block.top-block .icon-badge {
    top: 15px;
    /* カードの上にはみ出させる */
}

.content-block.bottom-block .icon-badge {
    top: -55px;
}

.content-block.bottom-block {
    padding-top: 40px;
    /* アイコン分の余白 */
}

.card-image-container {
    width: 100%;
    height: 200px;
    overflow: hidden;
    margin: 10px 0 30px;
    /* 下のマージンで下のアイコンとの隙間を作る */
}

.card-image-container img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* --- 下段（グリッド） --- */
.bottom-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
}

.small-card {
    background: #fff;
    border-radius: 15px;
    padding: 40px 15px 15px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
    text-align: center;
    position: relative;
    display: flex;
    flex-direction: column;
}

.icon-circle {
    top: -25px;
    background-color: #6fbdb3;
    /* 少し明るめの色 */
}

.small-card h3 {
    font-size: 16px;
    margin-bottom: 10px;
}

.small-card p {
    font-size: 1.4rem;
    color: #666;
    margin-bottom: 15px;
    line-height: 1.5;
    flex-grow: 1;
    text-align: left;
    /* 画像を下揃えにするための調整 */
}

.small-card-image {
    width: 100%;
    height: 120px;
    border-radius: 10px;
    overflow: hidden;
    margin-top: auto;
}

.small-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.history-section {
    background-color: var(--color-white);
    padding: 120px 0;
    /* 上下の余白 */
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    overflow: hidden;
    /* アクセントがはみ出さないように */
    min-height: 100vh;
    /* テスト用。コンテンツに応じて調整 */
}

/* 左右のアクセント画像 */
.accent {
    position: absolute;
    height: 100%;
    width: 25%;
    /* 画像の幅に応じて調整 */
    background-size: contain;
    background-repeat: no-repeat;
    z-index: 0;
    /* コンテンツの下 */
}

/* 中央のコンテンツブロック */
.history-content {
    background-color: var(--color-white);
    padding: 60px 40px;
    text-align: center;
    max-width: 600px;
    /* カードの最大幅 */
    width: 100%;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.05);
    /* 影 */
    border-radius: 8px;
    /* 角丸 */
    z-index: 1;
    /* アクセントの上 */
}

/* 上部：エンブレムとラベル */
.history-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 40px;
}

.founding-label {
    color: var(--color-navy);
    font-size: 16px;
    margin-bottom: 5px;
}

.emblem-container {
    border: 2px solid var(--color-gold);
    border-radius: 50%;
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-gold);
    font-weight: bold;
    font-size: 20px;
}

/* 中央：メイン数字 */
.history-main {
    margin-bottom: 30px;
    display: flex;
    justify-content: center;
    align-items: baseline;
    line-height: 1;
}

.main-number {
    color: var(--color-navy);
    font-size: 140px;
    /* 巨大な数字 */
    font-weight: bold;
}

.main-year {
    color: var(--color-navy);
    font-size: 32px;
    margin-left: 5px;
    position: relative;
    top: -20px;
    /* 数字に寄せる */
}

/* エンジ色の帯 */
.history-band {
    background-color: var(--color-maroon);
    color: var(--color-white);
    padding: 15px 30px;
    margin: 0 -40px;
    /* 親のパディングを相殺 */
    margin-bottom: 40px;
}

.band-title {
    margin: 0;
    font-size: 24px;
    font-weight: bold;
    letter-spacing: 0.1em;
    /* 文字間隔 */
}

/* 最下部：詳細とグラフ */
.history-detail {
    color: var(--color-gray-light);
    font-size: 14px;
}

.detail-description {
    margin-bottom: 10px;
}

.detail-range {
    margin-bottom: 25px;
}

.graph-box {
    margin-top: 10px;
}

.graph-image {
    max-width: 120px;
    /* グラフのサイズ調整 */
}

/* @import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap'); */

/* ベースの変数定義 */
:root {
    --color-navy: #1a365d;
    --color-maroon: #a61c3b;
    --color-accent-blue: #8eb0ce;
    /* 画像に合わせた少しくすんだ水色 */
    --color-accent-light: #e4f1f6;
    /* 極めて薄い水色 */
    --color-white: #ffffff;
    --color-text: #333333;
}

body {
    margin: 0;
    font-family: 'Noto Sans JP', sans-serif;
    background-color: #f7f9fc;
    /* 全体の背景色 */
}

/* セクション全体 */
.history-section {
    position: relative;
    padding: 100px 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    /* 図形のはみ出しを防ぐ */
    background-color: var(--color-white);
}

/* ----------------------------------
   clip-pathによる背景アクセント図形
----------------------------------- */
.bg-shape {
    position: absolute;
    width: 15vw;
    /* 画面幅に応じたサイズ */
    max-width: 150px;
    /* 最大サイズ制限 */
    height: 25vw;
    max-height: 250px;
    z-index: 0;
}

/* 左上（水色・右向き三角形） */
.shape-tl {
    top: 5%;
    left: 0;
    background-color: var(--color-accent-blue);
    clip-path: polygon(0 0, 100% 50%, 0 100%);
}

/* 左下（薄い水色・右向き三角形） */
.shape-bl {
    bottom: 5%;
    left: 0;
    background-color: var(--color-accent-light);
    clip-path: polygon(0 0, 100% 50%, 0 100%);
}

/* 右上（薄い水色・左向き三角形） */
.shape-tr {
    top: 5%;
    right: 0;
    background-color: var(--color-accent-light);
    clip-path: polygon(100% 0, 0 50%, 100% 100%);
}

/* 右下（水色・左向き三角形） */
.shape-br {
    bottom: 5%;
    right: 0;
    background-color: var(--color-accent-blue);
    clip-path: polygon(100% 0, 0 50%, 100% 100%);
}

/* ----------------------------------
   中央のコンテンツブロック
----------------------------------- */
.history-content {
    position: relative;
    z-index: 1;
    /* 図形より上に表示 */
    background-color: var(--color-white);
    padding: 50px 30px;
    text-align: center;
    width: 100%;
    max-width: 500px;
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.08);
    /* 浮き出し効果の影 */
    border-radius: 12px;
}

.history-header {
    margin-bottom: 20px;
}

.founding-label {
    color: var(--color-navy);
    font-size: 18px;
    font-weight: bold;
    letter-spacing: 0.05em;
}

/* メイン数字 */
.history-main {
    margin-bottom: 20px;
    display: flex;
    justify-content: center;
    align-items: baseline;
    line-height: 1;
}

.main-number {
    color: var(--color-navy);
    font-size: 130px;
    font-weight: bold;
    font-family: Arial, Helvetica, sans-serif;
    /* 数字が綺麗に見えるフォント */
}

.main-year {
    color: var(--color-navy);
    font-size: 32px;
    font-weight: bold;
    margin-left: 5px;
}

/* エンジ色の帯 */
.history-band {
    background-color: var(--color-maroon);
    color: var(--color-white);
    padding: 15px 20px;
    margin: 0 -30px 30px -30px;
    /* 親のパディングを無視して左右いっぱいに */
}

.band-title {
    margin: 0;
    font-size: 26px;
    font-weight: bold;
    letter-spacing: 0.1em;
}

/* 詳細テキストとグラフ */
.history-detail {
    color: var(--color-text);
}

.detail-description {
    font-size: 16px;
    font-weight: bold;
    line-height: 1.6;
    margin-bottom: 5px;
}

.detail-range {
    font-size: 14px;
    color: #666;
    margin-bottom: 15px;
}

.graph-box {
    margin-top: 10px;
    display: flex;
    justify-content: center;
}

/* @import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap'); */

:root {
    --oshiro-color-navy: #1a365d;
    --oshiro-color-maroon: #a61c3b;
    --oshiro-color-accent-blue: #8eb0ce;
    --oshiro-color-accent-light: #e4f1f6;
    --oshiro-color-white: #ffffff;
    --oshiro-color-text: #333333;
}

/* セクション全体（余白をなくして横幅いっぱいに） */
.oshiro-history-section {
    position: relative;
    /* 1. 背景色のコメントアウトを解除、または薄いグレーに調整 */
    background-color: var(--oshiro-color-white);
    /* ユーザー指定 */
    /* background-color: transparent; */
    /* 背景画像が見えるように、完全な白ではなく、薄いグレーにするのも良いでしょう */

    width: 100%;
    /* height: 400px; */
    /* 元のCSSにはありませんが、機能させるために追加しました */
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);

    /* 2. 背景画像を中央配置 (既存を維持) */
    background-position: center;

    overflow: hidden;
    display: flex;
    justify-content: center;
    align-items: center;

    /* --- ここから追加：新しい背景の設定 --- */
    /* 3. 背景画像を指定 */

    /* ユーザー指定の画像 */

    /* 4. 繰り返しなし */
    background-repeat: no-repeat;

    /* 5. ちょうどよい大きさに調整
       contain は画像を完全にコンテナ内に収めます。
       cover はコンテナ全体をカバーしますが、画像の端が切り取られる可能性があります。
       今回は「ちょうどよい大きさ」を目指すため、containを推奨します。 */
    background-size: contain;
    /* background-size: cover; */
    /* よりプレミアムなルックにする場合は、こちらも選択肢です */
    box-shadow: 6px 6px #668AD8;
    border-radius: 5px;
}

.bk_num_image1 {
    background-image: url(../recruite_images/100th.png);
}

.bk_num_image2 {
    background-image: url(../recruite_images/bk_age.png);
}

.bk_num_image3 {
    background-image: url(../recruite_images/bk_vacation.png);
}

.bk_num_image4 {
    background-image: url(../recruite_images/bk_childcare.png);
}


/* 中央のコンテンツブロック（高さ400px・フルワイド） */
.oshiro-history-content {
    position: relative;
    /* background-color: var(--oshiro-color-white); */
    width: 100%;
    height: 400px;
    /* 高さを400pxに固定 */
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
    overflow: hidden;
    display: flex;
    justify-content: center;
    align-items: center;
}

/* コンテンツの配置（PC版は横並び） */
.oshiro-history-inner {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: row;
    /* 横並び */
    align-items: center;
    justify-content: space-between;
    width: 100%;
    /* max-width: 1000px; */
    /* コンテンツが横に広がりすぎないように制限 */
    padding: 0 40px;
    gap: 30px;
}

/* 各ブロックの調整 */
.oshiro-block-left {
    text-align: center;
    width: 200px;
}

.oshiro-block-center {
    display: flex;
    justify-content: center;
}

.oshiro-block-right {
    text-align: left;
    /* 右側は左揃えの方が見栄えが良いです */
}

/* clip-pathによる背景アクセント図形 */
.oshiro-bg-shape {
    position: absolute;
    width: 15vw;
    max-width: 160px;
    height: 15vw;
    max-height: 160px;
    z-index: 1;
}

.oshiro-shape-tl {
    top: 0;
    left: 0;
    background-color: var(--oshiro-color-accent-blue);
    clip-path: polygon(0 0, 100% 0, 0 100%);
}

.oshiro-shape-bl {
    bottom: 0;
    left: 0;
    background-color: var(--oshiro-color-accent-light);
    clip-path: polygon(0 0, 100% 100%, 0 100%);
}

.oshiro-shape-tr {
    top: 0;
    right: 0;
    background-color: var(--oshiro-color-accent-light);
    clip-path: polygon(100% 0, 0 0, 100% 100%);
}

.oshiro-shape-br {
    bottom: 0;
    right: 0;
    background-color: var(--oshiro-color-accent-blue);
    clip-path: polygon(100% 0, 0 100%, 100% 100%);
}

.logo_100th {}

.logo_100th img {
    width: 100%;
    height: auto;
    max-width: 500px;
}

/* ----------------------------------
   テキスト・レイアウト周り
----------------------------------- */
.oshiro-history-header {
    margin-bottom: 5px;
}

.oshiro-founding-label {
    color: var(--oshiro-color-navy);
    font-size: 18px;
    font-weight: bold;
    letter-spacing: 0.05em;
}

.oshiro-history-main {
    display: flex;
    justify-content: center;
    align-items: baseline;
    line-height: 1;
}

.oshiro-main-number {
    color: var(--oshiro-color-navy);
    font-size: 120px;
    /* 高さに合わせて少し調整 */
    font-weight: bold;
    font-family: Arial, Helvetica, sans-serif;
}

.oshiro-main-year {
    color: var(--oshiro-color-navy);
    font-size: 28px;
    font-weight: bold;
    margin-left: 5px;
}

/* エンジ色の帯（ピル型バッジに変更） */
.oshiro-history-band {
    background-color: #81c784;
    color: var(--oshiro-color-white);
    padding: 5px 30px;
    border-radius: 40px;
    /* 丸みを持たせる */
    box-shadow: 0 4px 10px rgba(166, 28, 59, 0.2);
}

.oshiro-band-title {
    margin: 0;
    font-size: 22px;
    font-weight: bold;
    letter-spacing: 0.1em;
}

.oshiro-history-detail {
    color: var(--oshiro-color-text);
}

.oshiro-detail-description {
    font-size: 16px;
    font-weight: bold;
    line-height: 1.6;
    margin-bottom: 5px;
}

.oshiro-detail-range {
    font-size: 14px;
    color: #666;
    margin-bottom: 10px;
}

.oshiro-graph-box {
    margin-top: 5px;
}

/* 全体のコンテナ（ここでFlexboxを使って横並びにします） */
.oshiro-stats-container {
    display: flex;
    justify-content: center;
    gap: 30px;
    width: 100%;
    /* max-width: 900px; */
    margin: 0 auto;
    font-family: 'Noto Sans JP', sans-serif;
    padding: 10px 0;
    box-sizing: border-box;
}

/* 各カードのスタイル */
.oshiro-stat-card {
    flex: 1;
    /* 左右のカードを同じ幅（1:1）にする */
    position: relative;
    background-color: #ffffff;
    padding: 60px 20px;
    /* カード内の上下左右の余白 */
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
    /* 軽い影 */
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    background-repeat: no-repeat;
    /* background-size: contain; */
    background-position: center;
    box-shadow: 6px 6px #668AD8;
    border-radius: 5px;
    /* 四隅の図形がはみ出さないようにする */
    /* border-radius: 4px; 角を少し丸くしたい場合はコメントアウトを外してください */
}

/* 各カードのスタイル */
.oshiro-stat-card2 {
    flex: 1;
    /* 左右のカードを同じ幅（1:1）にする */
    position: relative;
    background-color: #ffffff;
    padding: 60px 20px;
    /* カード内の上下左右の余白 */
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
    /* 軽い影 */
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    background-repeat: no-repeat;
    /* background-size: contain; */
    /* 四隅の図形がはみ出さないようにする */
    /* border-radius: 4px; 角を少し丸くしたい場合はコメントアウトを外してください */
}

/* ----------------------------------
   四隅の図形（clip-path）
----------------------------------- */
.oshiro-stat-shape {
    position: absolute;
    width: 80px;
    /* 図形の大きさ */
    height: 80px;
    /* 図形の大きさ */
    z-index: 1;
}

/* 左上（濃いネイビー） */
.oshiro-shape-tl-dark {
    top: 0;
    left: 0;
    background-color: #0b2b5a;
    clip-path: polygon(0 0, 100% 0, 0 100%);
}

/* 左下（薄い水色） */
.oshiro-shape-bl-light {
    bottom: 0;
    left: 0;
    background-color: #d4e5f2;
    clip-path: polygon(0 0, 100% 100%, 0 100%);
}

/* 右上（薄い水色） */
.oshiro-shape-tr-light {
    top: 0;
    right: 0;
    background-color: #d4e5f2;
    clip-path: polygon(100% 0, 0 0, 100% 100%);
}

/* 右下（少し明るいブルー） */
.oshiro-shape-br-mid {
    bottom: 0;
    right: 0;
    background-color: #1664a7;
    clip-path: polygon(100% 0, 0 100%, 100% 100%);
}

/* ----------------------------------
   テキストコンテンツ
----------------------------------- */
.oshiro-stat-content {
    position: relative;
    z-index: 2;
    /* 図形より上に表示 */
    text-align: center;
}

/* タイトル（平均年齢 など） */
.oshiro-stat-title {
    font-size: 18px;
    font-weight: bold;
    color: #333333;
    margin: 0 0 10px 0;
    letter-spacing: 0.05em;
}

/* 数値と単位を横並びにして下揃えにする */
.oshiro-stat-value-box {
    display: flex;
    align-items: baseline;
    justify-content: center;
    line-height: 1;
}

/* 大きな青い数字 */
.oshiro-stat-number {
    font-size: 64px;
    font-weight: bold;
    color: #006ddb;
    /* スッキリした青 */
    font-family: Arial, Helvetica, sans-serif;
    /* 数字が綺麗に見えるフォント */
}

/* 単位（歳、日など） */
.oshiro-stat-unit {
    font-size: 18px;
    font-weight: bold;
    color: #333333;
    margin-left: 8px;
    /* 数字と単位の隙間 */
}

.sp_on1220 {
    display: none;
}

.sp_on480 {
    display: none;
}

.recruit_logo img {
    width: 100%;
    max-width: 450px;
    vertical-align: text-top;
    margin-left: 5px;
    margin-top: 5px;
}

.bk_white_recruit {
    background-color: #fff;
}


/* ゲーム用のCSS */
/* =========================================
   1. 全体のレイアウトと共通スタイル
   ========================================= */

/* --- ゲーム全体を横並びにするレイアウト --- */
.games-flex-container {
    display: flex;
    justify-content: center;
    gap: 40px;
    /* ゲーム間の余白（遊び心アレンジ） */
    max-width: 1200px;
    /* 3つ並ぶように幅を広げました */
    margin: 0 auto;
    padding: 20px;
    flex-wrap: wrap;
    /* 画面が狭くなった時に折り返す */
}

/* --- ゲームコンテナの共通スタイル --- */
.game-container {
    flex: 1;
    /* 均等な幅に */
    max-width: 350px;
    /* 3つ並べた時の最大幅 */
    min-width: 280px;
    padding: 30px 20px;
    text-align: center;
    background-color: #f9f9f9;
    border-radius: 10px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    /* 中身を上下に広げる */

    /* ホバー時の動きのための設定 */
    border: 2px solid transparent;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

/* カードにマウスを乗せた時に「ふわっ」と浮き上がる動き */
.game-container:hover {
    transform: translateY(-8px);
    /* 上に8px移動 */
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.15);
    /* 影を濃くして浮遊感を出す */
    border-color: #ff9800;
    /* マウスを乗せると大城組カラーの枠線が光る */
}

/* --- テキスト周りのスタイル --- */
.presents-en {
    font-size: 14px;
    color: #ff9800;
    font-weight: bold;
    margin: 0 0 5px 0;
}

.game-title {
    font-size: 20px;
    margin: 0 0 10px 0;
    color: #333;
}

.game-desc {
    font-size: 14px;
    color: #666;
    margin: 0 0 20px 0;
    line-height: 1.5;
}

/* --- 共通ボタンのスタイル --- */
.draw-button {
    background-color: #ff9800;
    color: white;
    border: none;
    padding: 15px 30px;
    font-size: 18px;
    font-weight: bold;
    border-radius: 30px;
    cursor: pointer;
    box-shadow: 0 5px 0 #e65100;
    transition: all 0.1s;
    width: 100%;
    max-width: 250px;
    margin: 0 auto;
}

.draw-button:active {
    transform: translateY(5px);
    box-shadow: none;
}


/* =========================================
   2. ゲーム1：おみくじ専用スタイル
   ========================================= */

.omikuji-result-box {
    min-height: 120px;
    margin-bottom: 20px;
    padding: 30px 10px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    border-radius: 8px;
    /* 結果ボックスを「工事現場のトラ柄（黄と白）」風に */
    border: 3px dashed #ff9800;
    background-image: repeating-linear-gradient(-45deg,
            #fffde7,
            #fffde7 10px,
            #ffffff 10px,
            #ffffff 20px);
}

.result-title {
    font-size: 24px;
    font-weight: bold;
    color: #e65100;
    margin-bottom: 10px;
}

.result-desc {
    font-size: 16px;
    color: #333;
    margin: 0;
    line-height: 1.5;
}


/* =========================================
   3. ゲーム2：ストップウォッチ専用スタイル
   ========================================= */

/* タイマー画面を「現場のデジタル計器」っぽく黒背景＋緑文字に */
.stopwatch-display {
    font-size: 48px;
    font-weight: bold;
    margin: 20px 0;
    padding: 20px;
    background-color: #222;
    /* 黒背景 */
    color: #00ff00;
    /* デジタルな緑文字 */
    border: 4px solid #555;
    /* 頑丈なフレーム風 */
    border-radius: 8px;
    font-family: 'Courier New', monospace;
    /* デジタルっぽいフォント */
    letter-spacing: 2px;
    box-shadow: inset 0 4px 8px rgba(0, 0, 0, 0.6);
    /* 画面が少し凹んで見える影 */
    transition: opacity 0.5s ease;
}

.hidden-timer {
    opacity: 0;
}

.stopwatch-controls {
    display: flex;
    justify-content: center;
    gap: 10px;
}

/* ボタンのカラーバリエーション */
.start-btn {
    background-color: #4caf50;
    box-shadow: 0 5px 0 #2e7d32;
}

.stop-btn {
    background-color: #f44336;
    box-shadow: 0 5px 0 #d32f2f;
}

.reset-btn {
    background-color: #9e9e9e;
    box-shadow: 0 5px 0 #757575;
}

.stopwatch-result-box {
    margin-top: 20px;
    padding: 15px;
    background: #fff;
    border: 2px dashed #ff9800;
    border-radius: 8px;
}

.stopwatch-result-text {
    font-size: 16px;
    font-weight: bold;
    margin: 0;
}

.result-success {
    color: #4caf50;
}

.result-fail {
    color: #f44336;
}

/* ロゴをクリック可能にし、最前面に持ってくる */
.header .recruit_logo {
    pointer-events: auto !important;
    /* 透明なヘッダーの中でもここだけは反応させる */
    position: relative;
    z-index: 120;
    /* 三本線(110)よりも上の数値にする */
}

.header .recruit_logo a {
    display: inline-block;
    cursor: pointer;
}


/* =========================================
   4. ゲーム3：パッション連打メーター専用スタイル
   ========================================= */

/* メーターコンテナ */
.meter-container {
    position: relative;
    width: 100px;
    height: 180px;
    background-color: #eee;
    border-radius: 10px;
    margin: 0 auto 20px auto;
    overflow: hidden;
    border: 2px solid #ccc;
    box-shadow: inset 0 2px 5px rgba(0, 0, 0, 0.2);
}

/* メーターの塗りつぶし部分（炎風グラデーション） */
.meter-fill {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 0%;
    background: linear-gradient(to top, #ff9800, #f44336);
    border-radius: 10px;
    transition: height 0.1s ease-out;
    box-shadow: 0 0 10px rgba(244, 67, 54, 0.7);
}

/* ビルのイラスト部分 */
.building-outline {
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 100%;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    z-index: 2;
}

.building-css {
    width: 100%;
    height: 0%;
    background-color: #555;
    border-radius: 5px 5px 0 0;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 5px;
    padding: 10px 5px;
    transition: height 0.1s ease-out;
    box-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
}

.window {
    background-color: #fafafa;
    height: 15px;
    border-radius: 2px;
}

/* カウントダウン表示 */
.countdown-display {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 60px;
    font-weight: bold;
    color: #fff;
    text-shadow: 0 0 15px rgba(0, 0, 0, 0.8);
    z-index: 10;
}

/* 連打ゲーム専用ボタン */
.click-controls {
    display: flex;
    justify-content: center;
}

.click-btn {
    background-color: #f44336;
    /* 情熱の赤 */
    box-shadow: 0 5px 0 #d32f2f;
}

/* 結果ボックス */
.click-result-box {
    margin-top: 20px;
    padding: 15px;
    background-color: #fffde7;
    border: 2px dashed #ff9800;
    border-radius: 8px;
}

.click-result-text {
    font-size: 15px;
    font-weight: bold;
    margin: 0;
    color: #333;
    line-height: 1.6;
}

.result-rank {
    font-size: 20px;
    color: #e65100;
    font-weight: 900;
    display: block;
    margin: 5px 0;
}

/* --- 3つ目のゲーム（連打メーター）のスタートボタンを青に変更 --- */
#click-start-btn {
    background-color: #0288d1;
    /* 爽やかな青色 */
    box-shadow: 0 5px 0 #01579b;
    /* 影の色（濃い青） */
}

/* クリックして沈み込んだ時の設定 */
#click-start-btn:active {
    transform: translateY(5px);
    box-shadow: none;
}

/* ゲーム用のCSS */

/* ----------------------------------
   レスポンシブ対応（タブレット表示時）
----------------------------------- */
@media screen and (max-width: 1220px) {

    .sp_on1220 {
        display: block;
    }

    .pc_on {
        display: none;
    }

    /* .mission-header {
        font-size: 3rem;
    } */

    .mission-bg-blue {
        clip-path: polygon(0 0, 100% 0, 75% 35%, 25% 100%, 0 100%);
    }

    /* .mission-body p {
        font-size: 1rem;
    } */
    .flow-card::after {
        display: none;
    }
}

/* レスポンシブ：スマホでは1列に */
@media (max-width: 1024px) {
    .welfare-grid {
        grid-template-columns: repeat(2, 1fr);
        padding: 0 20px;
    }
}

@media (max-width: 992px) {


    .stats-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .flow-list {
        grid-template-columns: repeat(2, 1fr);
        gap: 60px 40px;
    }

    .flow-card:nth-child(even)::after {
        display: none;
    }

    .games-flex-container {
        flex-direction: column;
        align-items: center;
    }
}

/* ----------------------------------
   レスポンシブ対応（スマホ表示時）
----------------------------------- */
@media screen and (max-width: 768px) {
    .oshiro-stats-container {
        flex-direction: column;
        /* 縦並びに変更 */
        gap: 20px;
        /* 縦に並んだ時の隙間 */
    }

    .oshiro-stat-card,
    .oshiro-stat-card2 {
        width: 100%;
        /* スマホでは横幅いっぱいにする */
    }

    /* スマホの時は図形を少し小さくする */
    .oshiro-stat-shape {
        width: 60px;
        height: 60px;
    }

    /* .num_size_b {
        font-size: 7.0rem;
    } */

    /* .num_size_m {
        font-size: 5.0rem;
    } */

    .oshiro-history-content {
        height: auto;
        /* スマホでは400px固定を解除して内容に合わせる */
        padding: 30px 0;
    }

    .oshiro-history-inner {
        flex-direction: column;
        /* 縦積みに変更 */
        gap: 30px;
    }

    .oshiro-block-right {
        text-align: center;
        /* スマホ時は中央揃え */
    }

    .oshiro-graph-box {
        display: flex;
        justify-content: center;
    }

    .oshiro-bg-shape {
        width: 30vw;
        /* スマホでは図形を少し大きく */
        height: 30vw;
    }

    .top-row {
        flex-direction: column;
    }

    .bottom-grid {
        grid-template-columns: 1fr;
        /* 1列にする */
    }

    .large-card,
    .small-card {
        margin-bottom: 20px;
    }

    .scroll-section {
        height: auto;
    }

    .sticky-content {
        position: relative;
        height: 60vh;
        opacity: 1;
    }

    /* スマホでは常に表示 */
    .scroll-nav {
        display: none;
    }

    .text-content {
        opacity: 1;
        transform: translateY(0);
    }

    .hbg_color {
        padding: 13px;
    }

    .logo img {
        max-width: 300px;
    }

    /* .mission-header {
        font-size: 2rem;
        margin: 0px;
    } */

    /* .mission-body p {
        font-size: 0.6rem;
    } */

    .data-grid {
        grid-template-columns: 1fr;
        padding: 10px;
        gap: 15px;
    }

    .num {
        font-size: clamp(3.5rem, 12vw, 5rem);
    }

    .history-card {
        flex-direction: column;
        text-align: center;
    }

    .retention-flex {
        /* flex-direction: column; */
        gap: 20px;
    }

    .gender-card {
        grid-row: span 1;
    }

    .page-top-btn {
        width: 50px;
        height: 50px;
        bottom: 20px;
        right: 20px;
    }

    .page-top-arrow {
        width: 10px;
        height: 10px;
    }

    .modal-content {
        padding: 10px 20px;
        width: 95% !important;
        max-height: 90vh;
        overflow-y: auto;
        right: unset !important;
        left: unset !important;
        bottom: unset !important;
        position: unset !important;
        margin: unset !important;
        z-index: 9999;
    }

    .sec-title {
        font-size: 3rem;
    }

    .modal-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .modal-card {
        padding: 30px 20px;
    }

    .recruit-table th,
    .recruit-table td {
        display: block;
        width: 100%;
    }

    .recruit-table th {
        background: rgba(0, 191, 255, 0.1);
        padding: 15px 20px;
    }

    .cta-title {
        font-size: 3rem;
    }

    .cta-text {
        font-size: 1.6rem;
    }

    .header {
        padding: 3px 4px;
    }

    /* スマホは角度を緩めに */
    .hero-title {
        font-size: 3rem;
    }

    .sec-header::after {
        width: 80px;
        height: 4px;
    }

    /* .sec-title {
        font-size: 2.2rem;
    } */

    .message-wrap {
        gap: 40px;
    }

    .msg-img-box::before {
        top: 10px;
        left: 10px;
    }

    .stats-grid {
        grid-template-columns: 1fr;
    }

    /* .stats-number {
        font-size: 4rem;
    } */

    .interview-card,
    .interview-card:nth-child(even) {
        flex-direction: column;
        gap: 40px;
    }

    .int-img::before {
        display: none;
    }

    /* スマホでは背景装飾をシンプルに */

    .timeline-wrap::before {
        left: 30px;
    }

    .timeline-item {
        flex-direction: column;
    }

    .time-col {
        width: 100%;
        text-align: left;
        padding: 0 0 10px 60px;
    }

    .marker-dot {
        left: 18px;
        top: 0;
    }

    .content-col {
        padding-left: 60px;
    }

    .schedule-card {
        padding: 25px;
        flex-direction: column;
    }

    .news-item {
        display: block;
        padding: 25px;
    }

    .news-title {
        padding: 15px 0 0 0;
    }

    .news-arrow {
        display: none;
    }

    .flow-list {
        grid-template-columns: 1fr;
        gap: 60px 0;
    }

    .flow-card::after {
        top: auto;
        bottom: -50px;
        left: 50%;
        right: auto;
        transform: translateX(-50%) rotate(135deg) skewX(-10deg);
        /* 下向き矢印 */
    }

    .flow-card.item-6::after {
        display: none;
    }

    .welfare-grid {
        grid-template-columns: 1fr;
        /* 1列 */
        gap: 20px;
        padding: 0 15px;
    }

    .welfare-card {
        padding: 35px 20px;
        /* スマホでは少しスリムに */
    }

    .nav-list {
        gap: 6px;
    }

    .int-name {
        font-size: 3rem;
    }
}

/* ----------------------------------
   レスポンシブ対応（スマホ表示時）
----------------------------------- */
@media screen and (max-width: 480px) {
    .sp_on1220 {
        display: none;
    }

    .sp_on480 {
        display: block;
    }

    .btn-cta {
        font-size: 1.2rem;
    }

    .main_contents::before {
        clip-path: polygon(0 0, 95vw 0, 0 15%);
    }

    .section {
        padding: 30px 0;
    }

    .mission-header {
        font-size: 3rem;
    }

    .mission-bg-shape {
        /* 左側の開始位置を5%から0%に、右側の削れ方を少し緩やかに変更 */
        clip-path: polygon(0 0, 100% 0, 85% 100%, 0 100%);
    }

    .mission-text-content {
        /* コンテナ内で文字が詰まりすぎないよう調整 */
        padding: 0 20px;
        width: 100%;
    }

    .mission-body p {
        /* 0.6remは小さすぎて読めない（アクセシビリティ低下）ため、最低でも14px程度を推奨 */
        /* font-size: 0.85rem; */
        line-height: 1.6;
        white-space: normal;
        /* 折り返しを許可 */
        word-break: break-all;
    }

    .recruit_logo img {
        width: 80%;
    }
}