/* 全体的な読みやすさの向上 */
body {
    line-height: 1.8;
}

#content.page_1col,
.recruit_detail_data dd,
.table_recruit_detail_data td,
.page_text p,
.senpai_bubble_text,
.relative_entry_list li a,
.relative_entry_recommend_text p {
    font-size: 16px;
    /* 読みやすさのためにサイズアップ */
}

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

    #content.page_1col,
    .recruit_detail_data dd,
    .table_recruit_detail_data td,
    .page_text p,
    .senpai_bubble_text,
    .relative_entry_list li a,
    .relative_entry_recommend_text p,
    .recruit_detail_text p {
        font-size: 16px !important;
        /* スマホ表示時のフォントサイズを少し大きく（15pxから16pxへ） */
    }
}

/* 見出しのブラッシュアップ */
.page_head_modern {
    display: flex;
    align-items: center;
    padding: 10px 0;
    background: transparent;
    border-left: none;
    border-bottom: 2px solid #ff8da1;
    font-size: 1.25rem;
    font-weight: bold;
    color: #333;
    margin-bottom: 20px;
    box-shadow: none;
}

.page_head_modern i {
    margin-right: 12px;
    color: #ff8da1;
    font-size: 1.4rem;
}

/* ボタンのクリッピング修正 */
.box_btn_head,
.box_btn_colstyle,
.contact_link {
    padding-top: 10px;
    /* アニメーションでの飛び出しを防ぐ */
}

/* 固有のチャートセクション用（差し戻し：背景や枠をシンプルに） */
.chart-box {
    margin-bottom: 30px;
    padding: 10px 0;
}

.chart-box h4 {
    font-size: 18px;
    font-weight: bold;
    margin-bottom: 15px;
    color: #333;
    border-bottom: 2px solid #ff8da1;
    display: inline-block;
    padding-bottom: 3px;
}

.chart-box table {
    width: 100%;
}

/* 統計データセクションのリファイン */
.recruit_data-2 {
    display: flex !important;
    justify-content: space-between;
    gap: 20px;
    padding: 0 !important;
    flex-wrap: wrap;
}

.recruit_data-2 .chart-box {
    flex: 1;
    min-width: 280px;
    max-width: 31%;
    display: block !important;
    margin-bottom: 30px;
    background: #fff;
    border-radius: 12px;
    padding: 20px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
    border: 1px solid #eee;
}

.recruit_data-2 .chart-box h4 {
    display: block !important;
    width: 100%;
    font-size: 1.1rem;
    padding-bottom: 10px;
    margin-bottom: 20px;
    border-bottom: 2px solid #ff8da1;
    text-align: center;
}

.chart-flex-container {
    display: flex;
    flex-direction: column;
    /* PC/SP共通で項目内は縦並び（表が上、グラフが下） */
    gap: 20px;
    align-items: center;
    justify-content: center;
}

.chart-table-wrapper {
    width: 100%;
}

.chart-graph-wrapper {
    width: 100%;
    max-width: 200px;
    text-align: center;
}

.chart-graph-wrapper canvas {
    width: 100% !important;
    height: auto !important;
}

@media screen and (max-width: 768px) {
    .recruit_data-2 {
        display: block !important;
    }

    .recruit_data-2 .chart-box {
        max-width: none !important;
        margin-bottom: 40px;
    }

    .chart-graph-wrapper {
        max-width: 260px;
        /* スマホではグラフを少し大きめに表示 */
    }
}

/* 統計テーブルの色調整（グリーン系をピンク系へ） */
.chart-box table tr {
    color: #e74c3c !important;
    /* 文字色を赤系へ */
}

.chart-box table tr th {
    background: #fdf2f2 !important;
    /* 背景を淡いピンクへ */
    border-color: #ff8da1 !important;
    /* 境界線をピンクへ */
}

.chart-box table tr td {
    background: #fff !important;
    border-color: #ff8da1 !important;
}

.chart-box table tr:last-child th,
.chart-box table tr:last-child td {
    border-bottom: 1px solid #ff8da1 !important;
}

/* 定員内訳のラベル色調整 */
.table_recruit_detail_data .capacity li .old {
    background: #ff8da1 !important;
    /* 背景をピンクへ */
    border-radius: 4px;
}

/* テーブルスタイル（共通） */
.table_recruit_detail_data,
.table_search {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    margin-bottom: 30px;
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
    border: 1px solid #eee;
}

.table_recruit_detail_data th,
.table_search th {
    background: #fdf2f2;
    color: #e74c3c;
    font-weight: bold;
    padding: 15px 20px;
    width: 25%;
    border-bottom: 1px solid #fff;
    vertical-align: middle;
    text-align: left;
}

.table_recruit_detail_data td,
.table_search td {
    padding: 15px 20px;
    border-bottom: 1px solid #eee;
    vertical-align: middle;
}

.table_recruit_detail_data tr:last-child th,
.table_recruit_detail_data tr:last-child td,
.table_search tr:last-child th,
.table_search tr:last-child td {
    border-bottom: none;
}

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

    .table_recruit_detail_data th,
    .table_recruit_detail_data td,
    .table_search th,
    .table_search td {
        display: block;
        width: 100%;
    }

    .table_recruit_detail_data th,
    .table_search th,
    .chart-box table th {
        padding: 10px 20px;
        border-bottom: none;
        font-size: 16px !important;
    }
}

/* 電話番号リンク（PCでは無効化） */
@media screen and (min-width: 769px) {
    .call_tel {
        pointer-events: none;
        cursor: default;
        text-decoration: none !important;
        color: inherit !important;
    }
}

/* PRセクション（pr1, pr2）のデザイン刷新 - メッセージカード風 */
.recruit_detail_text.box_type02 {
    background: #fffafa;
    /* 非常に淡いピンク */
    border: 2px solid #ffdae0;
    /* 全周囲に細いピンクの線 */
    padding: 30px 40px;
    margin-bottom: 45px;
    border-radius: 24px;
    /* 大きな角丸 */
    box-shadow: 0 8px 30px rgba(255, 141, 161, 0.1);
    /* ピンク系の柔らかい影 */
    position: relative;
    overflow: hidden;
}

.recruit_detail_text.box_type02::before {
    content: "\f10d";
    /* quote icon */
    font-family: "FontAwesome";
    position: absolute;
    right: 30px;
    top: 20px;
    font-size: 50px;
    color: #ffeff2;
    /* 背景に馴染む超淡い色 */
    z-index: 0;
}

.recruit_detail_text .catch {
    color: #e74c3c;
    font-size: 24px;
    /* 少し大きく */
    font-weight: bold;
    margin-bottom: 20px;
    line-height: 1.5;
    position: relative;
    z-index: 1;
    display: block;
}

.recruit_detail_text p {
    position: relative;
    z-index: 1;
    color: #555;
    line-height: 1.8;
}

@media screen and (max-width: 768px) {
    .recruit_detail_text.box_type02 {
        padding: 25px 20px;
        margin-bottom: 35px;
        border-radius: 16px;
    }

    .recruit_detail_text .catch {
        font-size: 20px;
    }
}

/* 先輩社員の声（フキダシ） */
.senpai_bubble_container {
    display: flex;
    gap: 20px;
    margin-bottom: 40px;
    align-items: flex-start;
}

.senpai_photo_modern {
    flex: 0 0 100px;
    text-align: center;
}

.senpai_photo_modern img {
    width: 100px;
    height: 100px;
    object-fit: cover;
    border-radius: 50%;
    border: 3px solid #fff;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
    margin-bottom: 8px;
}

.senpai_name_modern {
    font-weight: bold;
    font-size: 14px;
    color: #e74c3c;
}

.senpai_bubble {
    flex: 1;
    background: #fff;
    padding: 20px;
    border-radius: 18px;
    position: relative;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
    border: 1px solid #fdf2f2;
}

.senpai_bubble::before {
    content: "";
    position: absolute;
    left: -15px;
    top: 30px;
    border-width: 8px 15px 8px 0;
    border-style: solid;
    border-color: transparent #fff transparent transparent;
}

@media screen and (max-width: 480px) {
    .senpai_bubble_container {
        flex-direction: column;
        align-items: center;
    }

    .senpai_bubble::before {
        display: none;
    }
}

/* 画像ズーム効果 */
.zoom-img {
    display: block;
    overflow: hidden;
    position: relative;
    border-radius: 8px 8px 0 0;
    cursor: pointer;
    /* 比率維持のためのコンテナ */
    width: 100%;
    aspect-ratio: 4 / 3;
}

.zoom-img img {
    transition: transform 0.6s cubic-bezier(0.165, 0.84, 0.44, 1);
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.zoom-img:hover img {
    transform: scale(1.1);
}

/* 関連求人用の画像枠固定 */
.relative_entry_recommend_image.zoom-img {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    cursor: default;
    /* ズームしないためカーソルもデフォルトへ */
}

.relative_entry_recommend_image.zoom-img:hover img {
    transform: none !important;
    /* ズームを無効化 */
}

/* カルーセルコンテナ（スマホ用） */
.relative_entry_recommend_list_container {
    position: relative;
    display: flex;
    align-items: center;
}

.relative_entry_recommend_list {
    flex: 1;
    overflow: hidden;
    /* PCでは溢れを隠す */
}

/* ナビゲーションボタン（PCではデフォルト非表示） */
.carousel-nav {
    display: none;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid #eee;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    z-index: 10;
    cursor: pointer;
    align-items: center;
    justify-content: center;
    color: #ff8da1;
    transition: all 0.3s ease;
}

.carousel-nav:hover {
    background: #ff8da1;
    color: #fff;
}

.carousel-nav.prev {
    left: -20px;
}

.carousel-nav.next {
    right: -20px;
}

@media screen and (max-width: 768px) {
    .relative_entry_recommend_list {
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
        /* Firefox */
        -ms-overflow-style: none;
        /* IE/Edge */
    }

    .relative_entry_recommend_list::-webkit-scrollbar {
        display: none;
        /* Chrome/Safari */
    }

    .relative_entry_recommend_list ul {
        display: flex;
        flex-wrap: nowrap !important;
        gap: 0 !important;
        padding-bottom: 10px;
    }

    .relative_entry_recommend_list ul li {
        flex: 0 0 100%;
        /* 1画面1求人 */
        scroll-snap-align: start;
        padding: 0 5px;
        box-sizing: border-box;
    }

    .carousel-nav {
        display: flex;
        /* スマホでボタン表示 */
    }

    /* スマホでのボタン位置微調整 */
    .carousel-nav.prev {
        left: 0px;
    }

    .carousel-nav.next {
        right: 0px;
    }
}

/* ボタンアニメーション */
.btn-animate {
    transition: all 0.3s ease;
    transform: translateY(0);
}

.btn-animate:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}

.btn-animate:active {
    transform: translateY(-1px);
}

/* 関連条件などのリンクボックス用アニメーション */
div.relative_entry_list ul li a,
a.btn-animate {
    display: block;
    transition: all 0.3s ease;
}

div.relative_entry_list ul li a:hover {
    transform: translateX(5px);
    color: #e74c3c;
    background: #fdf2f2;
}

/* 公式リンクアイコン */
.official_links a:hover {
    opacity: 0.8 !important;
}

/* 年間予定（垂直タイムライン版） */
.timeline_modern {
    position: relative;
    padding: 20px 0 20px 30px;
    margin-left: 10px;
}

.timeline_item_modern {
    position: relative;
    padding-bottom: 40px;
}

.timeline_item_modern:last-child {
    padding-bottom: 0;
}

/* タイムラインのドット */
.timeline_dot_modern {
    position: absolute;
    left: -38px;
    top: 5px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    z-index: 2;
    background: #fff;
    border: 3px solid #ffb7c5;
}

/* 春 */
.timeline_item_modern.spring-color h4 {
    color: #d04b65;
}

.timeline_dot_modern.spring-color {
    background: linear-gradient(135deg, #ffdae0 0%, #ffb7c5 100%);
    border-color: #ffb7c5;
}

/* 夏 */
.timeline_item_modern.summer-color h4 {
    color: #0277bd;
}

.timeline_dot_modern.summer-color {
    background: linear-gradient(135deg, #e0f7fa 0%, #81d4fa 100%);
    border-color: #81d4fa;
}

/* 秋 */
.timeline_item_modern.autumn-color h4 {
    color: #e65100;
}

.timeline_dot_modern.autumn-color {
    background: linear-gradient(135deg, #fff3e0 0%, #ffcc80 100%);
    border-color: #ffcc80;
}

/* 冬 */
.timeline_item_modern.winter-color h4 {
    color: #455a64;
}

.timeline_dot_modern.winter-color {
    background: linear-gradient(135deg, #f5f5f5 0%, #cfd8dc 100%);
    border-color: #cfd8dc;
}

/* タイムラインのライン（グラデーション） */
.timeline_line_modern {
    position: absolute;
    left: -31px;
    top: 21px;
    width: 2px;
    height: calc(100% - 10px);
    z-index: 1;
}

/* 接続ラインのグラデーション */
.timeline_item_modern.spring-color .timeline_line_modern {
    background: linear-gradient(to bottom, #ffb7c5, #81d4fa);
}

.timeline_item_modern.summer-color .timeline_line_modern {
    background: linear-gradient(to bottom, #81d4fa, #ffcc80);
}

.timeline_item_modern.autumn-color .timeline_line_modern {
    background: linear-gradient(to bottom, #ffcc80, #cfd8dc);
}

.timeline_item_modern h4 {
    font-size: 18px;
    font-weight: bold;
    margin-bottom: 10px;
}

/* 年間予定のコンテンツ囲み */
.timeline_item_modern p {
    color: #444;
    font-size: 15px;
    margin-top: 10px;
    white-space: pre-wrap;
    line-height: 1.6;
    padding: 15px;
    border-radius: 8px;
    border: 1px solid transparent;
}

/* 季節ごとのコンテンツ囲みカラー */
.timeline_item_modern.spring-color p {
    background-color: #fff5f7;
    border-color: #ffdae0;
}

.timeline_item_modern.summer-color p {
    background-color: #f0fbff;
    border-color: #e0f7fa;
}

.timeline_item_modern.autumn-color p {
    background-color: #fffaf2;
    border-color: #fff3e0;
}

.timeline_item_modern.winter-color p {
    background-color: #f9f9f9;
    border-color: #f5f5f5;
}

/* スマホでの項目名表示対応 */
@media screen and (max-width: 768px) {
    .movie_wrap {
        width: 90%;
        margin: 0 auto 30px auto;
    }
}

/* スマホでの項目名表示対応 */
@media screen and (max-width: 768px) {
    .recruit_detail_data dt span {
        display: inline-block !important;
        margin-left: 5px;
        color: #91cbea;
        font-size: 16px;
    }
}

/* 動画レスポンシブ対応 */
.movie_wrap {
    width: 80%;
    margin: 0 auto 30px auto;
}

.movie_tag {
    position: relative;
    width: 100%;
    padding-top: 56.25%;
    height: 0;
    overflow: hidden;
}

.movie_tag iframe,
.movie_tag object,
.movie_tag embed {
    position: absolute;
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100% !important;
}

@media screen and (max-width: 768px) {
    .movie_wrap {
        width: 90%;
        margin: 0 auto 30px auto;
    }
}

@media screen and (max-width:767px) {
    .recruit_detail_data dt {
        width: 100%;
        border-bottom: 1px solid #e0e0e0;
        padding: 5px 0;
    }
}

/* カスタムアイコン画像（ホーム2 SVG mask） */
.icon_svg_home_head {
    display: inline-block;
    width: 1.4rem;
    height: 1.4rem;
    background-color: #ff8da1;
    /* Header Color */
    -webkit-mask: url(/common/images/icon_home2.svg) no-repeat center / contain;
    mask: url(/common/images/icon_home2.svg) no-repeat center / contain;
    vertical-align: text-bottom;
    margin-right: 12px;
}

.icon_svg_home_table {
    display: inline-block;
    width: 1.25rem;
    height: 1.25rem;
    background-color: #e74c3c;
    /* Table Header Color */
    -webkit-mask: url(/common/images/icon_home2.svg) no-repeat center / contain;
    mask: url(/common/images/icon_home2.svg) no-repeat center / contain;
    vertical-align: text-bottom;
}


@media screen and (max-width:767px) {
    .recruit_detail_info {
        padding-left: 10px;
    }

    .recruit_detail_data {
        padding: 0 10px;
    }

    .recruit_detail_data dd {
        width: 100%;
    }

    #btnTop .box_btn_colstyle.pull-right {
        padding: 0;
        margin: 0;
    }

    #btnTop .box_btn_colstyle.pull-right ul li:first-child {
        padding-left: 0;
    }

}