
   /* 変数定義 */
:root {
    --pink: #e94d8b;
    --gold: #b29352;
    --purple: #a391c4;
    --yellow: #b4c400;
    --font-serif: "YuMincho", "Yu Mincho", serif;
    --font-sans: "YuGothic", "Yu Gothic", sans-serif;
    /* 元のCSSにあった変数。必要に応じて調整 */
    --right-width: 259px; 
    --left-width: 259px;
}

.pc{
	display: block;
}

.sp{
	display: none;
}

@media screen and (max-width:768px){
.pc{
	display:none;
}

.sp{
	display:block;
}
	main::after, main::before{
		display: none;
	}
}


/* スマホ表示 (768px以下) */
@media screen and (max-width: 768px) {
/* --- ヘッダーの基本設定 --- */
	.header {
        position: -webkit-sticky; /* Safari対応 */
        position: sticky;         /* 追従の肝 */
        top: 0;                   /* 画面の一番上で止まる */
        z-index: 1000;
        
        display: flex;
        align-items: center;
        justify-content: space-between;
        height: 70px;
        padding: 0 15px;
        background: #fff;
        /* コンテンツとの境目を出すために薄い影を推奨 */
        box-shadow: 0 2px 5px rgba(0,0,0,0.05); 
    }

    /* --- ハンバーガーアイコンのアニメーション --- */
    .menu-trigger {
        position: relative;
        width: 30px;
        height: 22px; /* 高さを微調整 */
        cursor: pointer;
        z-index: 1000; /* 一番上に */
    }
    .menu-trigger span {
        position: absolute;
        left: 0;
        width: 100%;
        height: 2px;
        background-color: #b2914c; /* 画像に合わせたゴールド系 */
        transition: all 0.4s;
    }
    /* 3本線の配置 */
    .menu-trigger span:nth-child(1) { top: 0; }
    .menu-trigger span:nth-child(2) { top: 10px; }
    .menu-trigger span:nth-child(3) { bottom: 0; }

    /* アクティブ時（バツ印）の状態 */
    .menu-trigger.active span:nth-child(1) {
        transform: translateY(10px) rotate(-45deg);
    }
    .menu-trigger.active span:nth-child(2) {
        opacity: 0; /* 真ん中を消す */
    }
    .menu-trigger.active span:nth-child(3) {
        transform: translateY(-10px) rotate(45deg);
    }

    /* --- 右から出るメニュー --- */
    .nav {
        display: block !important; /* display:noneを解除 */
        position: fixed;
        top: 0;
        right: -100%; /* 初期状態は画面の外 */
        width: 60%;    /* メニューの幅 */
        height: 100vh;
        background-color: #fff;
        padding: 80px 30px 40px;
        box-shadow: -5px 0 15px rgba(0,0,0,0.1);
        transition: right 0.5s ease; /* スライドのアニメーション */
        z-index: 999;
        overflow-y: auto; /* メニューが長い場合にスクロール可能に */
    }

    /* アクティブ時（スライド後）の状態 */
    .nav.active {
        right: 0;
    }

    /* --- リストのデザイン（横書き・縦並び） --- */
    .nav ul {
        list-style: none;
        padding: 0;
        margin: 0;
        display: flex;
        flex-direction: column; /* 縦に並べる */
    }

    .nav ul li {
        margin-bottom: 20px; /* 項目間の余白 */
        padding-left: 20px;  /* ドット用の余白 */
        position: relative;
    }

    /* 文頭のドット（画像再現） */
    .nav ul li::before {
        content: '';
        position: absolute;
        left: 0;
        top: 0.6em; /* 文字の中央付近に配置 */
        width: 3px;
        height: 3px;
        background-color: #b2914c;
        border-radius: 50%;
    }

    .nav ul li a {
        text-decoration: none;
        color: #b2914c;
        font-size: 16px;
        font-weight: 500;
        display: block;
        line-height: 1.4;
    }

    /* --- ヒーローエリア --- */
    .hero-main {
        height: auto;
        padding-bottom: 80px; /* ステータス円がはみ出す分 */
    }

    .main-visual-area {
        height: 500px;
        clip-path: ellipse(150% 100% at 50% 0%); /* スマホ用にカーブを調整 */
    }

    .foreground-staff {
        width: 100%;
        top: -30px;
        clip-path: inset(0 37px 0 0);
    }

    /* --- メインコピー --- */
    .hero-content {
        top: 380px;
        transform: translate(-50%, 0);
        padding: 0 20px;
    }

    .main-copy {
        font-size: 32px;
        margin-bottom: 10px;
    }

    .sub-copy {
        font-size: 24px;
    }

    .catch-phrase {
        font-size: 14px;
        line-height: 1.6;
    }

    .catch-phrase .en {
        font-size: 12px;
        margin-top: 10px;
        display: block;
    }

    /* JOIN US ボタン (スマホ版) */
    .btn-join-sp {
        display: block;
        background: var(--pink);
        color: #fff;
        width: 240px;
        margin: 20px auto;
        padding: 12px 0;
        text-align: center;
        text-decoration: none;
        border-radius: 4px;
        font-size: 18px;
        font-family: var(--font-en);
    }

    /* --- ステータス円 --- */
    .stats-container {
        gap: -10px;
        margin-top: 30px;
        transform: scale(0.85); /* 画面幅に合わせて微調整 */
    }

    .stat-circle {
        width: 125px;
        height: 125px;
        margin: 0 -8px;
    }

    .value-huge { font-size: 40px; }
    .value-large { font-size: 32px; }
    .label-top, .detail { font-size: 11px; }
    .unit-large { font-size: 16px; }

    /* --- 下部ギャラリー画像 --- */
    /* サブ画像の絶対配置を解除して横並びに（必要に応じて） */
    .hero-main [id*="sub"] {
        position: static;
        width: 45%;
        margin: 5px;
        border-radius: 10px;
        display: inline-block;
    }
    
    /* 背景テキスト */
    .bg-large-text {
        bottom: 150px;
        font-size: 50px;
        opacity: 0.5;
    }

    /* --- フッター固定ボタン --- */
    .sp-fixed-footer {
        position: fixed;
        bottom: 0;
        left: 0;
        width: 100%;
        display: flex;
        height: 60px;
        z-index: 1000;
    }

    .btn-footer-info, .btn-footer-entry {
        flex: 1;
        display: flex;
        align-items: center;
        justify-content: center;
        text-decoration: none;
        color: #fff;
        font-size: 14px;
        font-weight: normal;
    }

    .btn-footer-info {
        background-color: #f178a3; /* 少し薄めのピンク */
    }

    .btn-footer-entry {
        background-color: var(--pink);
    }
	/* --- キャリアセクション --- */
    .section-career {
        padding: 40px 0;
        margin-top: 30px;
    }
    .career-container {
        min-height: auto;
        padding: 0px;
    }
    .career-hero {
        flex-direction: column;
        gap: 20px;
    }
    .career-text-box {
        width: 100% !important;
        pointer-events: auto;
    }
    .career-heading {
        font-size: 24px;
        margin-bottom: 20px;
    }
    .num-pink {
        font-size: 60px;
    }
    .txt-main { font-size: 24px; }
    #career_main_placeholder {
        position: relative;
        top: 0; right: 0;
        width: 100%;
        height: 200px;
        margin-top: 20px;
    }


    .card-img-shifted { width: 100%; left: 0; }
    .card-content-box { width: 100%; padding: 30px 20px; margin-top: -30px; }
    .charm-badge { width: 70px; height: 70px; top: -35px; }

    /* --- ポイントセクション --- */
    .section-points { padding: 60px 0; }
    .bg-outline-points { font-size: 40px; top: 21px; -webkit-text-stroke: 2px var(--pink); }
    .points-card { padding: 40px 20px; border-radius: 20px; }
    .point-main-title { font-size: 22px; }
    
    .point-badge-row { gap: 10px; }
    .point-circle { width: 50px; height: 50px; font-size: 10px; }
    .point-item-title { font-size: 17px; }
    .point-text-block p { margin-left: 0; font-size: 13px; }
    .benefits-grid { 
        grid-template-columns: 1fr; /* 1列に変更 */
        margin-left: 0; 
        gap: 10px;
    }
    
    /* --- インタビュー --- */
    .interview-row {
        flex-direction: column !important; /* 左右交互を解除 */
        gap: 20px;
        margin-bottom: 60px;
    }
    .staff-profile-side { width: 100%; }
    .staff-img { width: 100%; height: auto; border-radius: 15px; }
    .qa-side { padding: 30px 20px; border-radius: 20px; }
    .q-header { font-size: 16px; }
    .a-text { padding-left: 0; margin-top: 10px; }

    /* --- 募集要項 --- */
    .recruit-visual-grid {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: 150px 150px;
    }
    .recruit-main-container { padding: 40px 0; }
    .recruit-tabs { flex-direction: column; padding: 0 20px; }
    .tab-btn { width: 100%; padding: 10px; font-size: 16px; }
    
    /* テーブルを縦並びに変換 */
    .recruit-table th, .recruit-table td {
        display: block;
        width: 100%;
        padding: 15px 20px;
    }
    .recruit-table th {
        background-color: #fdf2f6;
        border-bottom: none;
        padding-bottom: 5px;
    }

    /* --- フォーム --- */
    .form-item {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
        padding: 20px 0;
    }
    .form-item label { width: 100%; font-weight: normal; }
    .radio-group { flex-direction: column; gap: 10px; }
    .form-buttons { flex-direction: column; gap: 10px; }
    .btn-submit, .btn-clear { width: 100%; }
	
	
	.hero-main {
        height: auto; /* 高さをコンテンツに合わせる */
        display: flex;
        flex-direction: column;
        background: #fff;
    }

    /* メイン画像エリア */
    .main-visual-area {
        position: relative;
        width: 100%;
        height: 120vw; /* スマホで人物がしっかり見える高さ */
        clip-path: none; /* スマホではクリップしない */
        order: 1;
    }

    /* サブ画像（スマホ版のデザインにはないので非表示） */
    #sub1_placeholder, #sub2_placeholder, #sub3_placeholder, #sub4_placeholder {
        display: none;
    }

    /* 画像の下からのグラデーション（テキストの可読性アップ） */
    .main-visual-area::after {
        height: 70%;
        background: linear-gradient(to top, rgba(0, 0, 0, 0.7) 10%, rgba(0, 0, 0, 0.3) 50%, transparent 100%);
    }

    /* コンテンツエリア */
    .hero-content {
        position: relative;
        top: 0;
        left: 0;
        transform: none;
        width: 100%;
        padding: 0 20px;
        margin-top: -240px; /* 画像の上にテキストを被せる */
        z-index: 10;
        text-align: center;
        color: #fff;
        order: 2;
    }

    /* キャッチコピー */
    .main-copy {
        font-size: 28px; /* スマホサイズに調整 */
        letter-spacing: 0.1em;
        margin-bottom: 15px;
        font-weight: normal;
        text-shadow: 0 2px 4px rgba(0,0,0,0.3);
    }

    .sub-copy {
        font-size: 22px;
        display: block;
        margin-top: 5px;
    }

    .btn-join {
        display: inline-block;
        background: #d64d8a; /* ピンク色 */
        color: #fff;
        padding: 15px 60px;
        text-decoration: none;
        font-weight: normal;
        font-size: 18px;
        letter-spacing: 0.2em;
        margin-bottom: 40px;
        position: relative;
    }
    .btn-join::after {
        content: "→";
        position: absolute;
        right: 20px;
    }

    /* ステータス円コンテナ */
    .stats-container {
        margin-top: 20px;
        gap: 0;
        justify-content: center;
        transform: scale(0.85); /* 画面幅に合わせて少し縮小 */
        transform-origin: center;
        padding-bottom: 50px;
    }

    .stat-circle {
        width: 140px; /* 少し小さく */
        height: 140px;
        margin: 0 -8px; /* 円を重ねる */
    }

    .value-huge {
        font-size: 44px;
    }

    .value-large {
        font-size: 36px;
    }

    .unit-large {
        font-size: 16px;
    }

    .label-top, .prefix-v, .label-inline, .detail {
        font-size: 11px;
    }
	/* フォント定義（游明朝をベースに） */
    :root {
        --font-serif: "游明朝", "Yu Mincho", "Hiragino Mincho ProN", serif;
        --font-sans-serif: var(--font-en); /* 英語用フォント */
    }

    .hero-main {
        display: flex;
        flex-direction: column;
        align-items: center;
        height: auto;
        padding-bottom: 50px;
        background-color: #f7cbd8; /* 画像背景の薄いピンク */
        font-family: var(--font-serif);
    }

    /* 非表示にする要素 */
    .img-top-left, .img-bottom-left, .img-top-right, .img-bottom-right {
        display: none !important;
    }

    /* メイン画像エリア */
    .main-visual-area {
        position: relative;
        width: 100%;
        margin-bottom: 20px;
        clip-path: none; /* スマホではクリップしない */
        z-index: 1;
    }

    .main-visual-area img {
        width: 500px;
        height: auto;
        display: block;
        object-fit: contain;
    }

    /* 下からのグラデーション（テキスト可読性確保用） */
    .main-visual-area::after {
        content: "";
        position: absolute;
        bottom: 0;
        left: 0;
        width: 100%;
        height: 60%;
        background: linear-gradient(to top, rgba(0, 0, 0, 0.7) 10%, rgba(0, 0, 0, 0.3) 50%, transparent 100%);
        pointer-events: none;
    }

    /* コンテンツエリア */
    .hero-content {
        width: 100%;
        padding: 0 20px;
        z-index: 10;
        text-align: center;
        color: #fff;
        margin-top: -15px; /* 画像とわずかに近づける */
    }

    /* キャッチコピー */
    .main-copy {
        font-size: 28px;
        line-height: 1.2;
        margin-bottom: 15px;
        text-shadow: 0 2px 4px rgba(0,0,0,0.3);
    }

    .sub-copy {
        font-size: 22px;
        display: block;
        margin-top: 5px;
    }

    .catch-phrase {
        font-size: 14px;
        line-height: 1.5;
        margin-bottom: 25px;
    }
    
    .catch-phrase .en {
        font-size: 12px;
        display: block;
        margin-top: 5px;
        font-family: var(--font-en);
    }

    /* JOIN US ボタン */
    .btn-join {
        display: inline-block;
        background: linear-gradient(135deg, #e94d8b 0%, #d64d8a 100%); /* ピンクのグラデーション */
        color: #fff;
        padding: 15px 60px;
        text-decoration: none;
        font-size: 18px;
        font-weight: normal;
        letter-spacing: 0.2em;
        margin-bottom: 40px;
        position: relative;
        border-radius: 5px; /* わずかに角を丸く */
        box-shadow: 0 4px 10px rgba(0,0,0,0.2);
    }
    .btn-join::after {
        content: "→";
        position: absolute;
        right: 20px;
    }
	.btn-join.pc{
		display: none;
	}
    /* ステータス円コンテナ */
    .stats-container {
        display: flex;
        justify-content: center;
        gap: 0;
        transform: scale(0.9); /* 画面幅に合わせて少し縮小 */
        transform-origin: top center;
    }

    .stat-circle {
        width: 140px;
        height: 140px;
        margin: 0 -15px; /* 円を重ねる */
        border-radius: 50%;
        color: #fff;
        box-shadow: 0 5px 15px rgba(0,0,0,0.2);
        display: flex;
        align-items: center;
        justify-content: center;
        text-align: center;
    }

    /* 背景色 */
    .stat-circle.pink { background: #e94d8b; }
    .stat-circle.purple { background: #a391c4; }
    .stat-circle.yellow { background: #b4c400; }

    /* ピンク円の中身調整 */
    .pink .stat-inner {
        text-align: left; /* 数字を左揃えに近づける */
    }

    .label-inline {
        font-size: 12px;
        margin-right: 5px;
    }

    .value-large {
        font-size: 44px;
        font-weight: normal;
    }

    .unit, .unit-large {
        font-size: 16px;
		margin-left: 0;
    }

    .detail {
        font-size: 11px;
        margin-top: 0px;
        opacity: 0.8;
        text-align: center;
    }

    /* 紫・黄色円の中身調整 */
    .value-group {
        display: flex;
        align-items: baseline; /* 数字の下部と揃える */
        justify-content: center;
    }

    /* 縦書きの「平均」 */
    .prefix-v {
        writing-mode: vertical-rl;
        font-size: 12px;
        margin-right: 0px;
        align-self: center; /* 縦方向の中央に */
    }

    .label-top {
        font-size: 14px;
        margin-bottom: 2px;
        letter-spacing: 0.05em;
    }

    .value-huge {
        font-size: 56px;
        font-weight: normal;
		letter-spacing: 0.01rem;
    }
}
@media (max-width: 767px) {
    /* セクション全体の背景（外側の薄いピンク） */
    .hero-main {
        background-color: #fdf5f7;
        height: auto;
        overflow: hidden; /* カーブからはみ出る要素を制御 */
        display: flex;
        flex-direction: column;
        align-items: center;
		height: 450px;
    }

    /* --- メイン画像エリア：ここでカーブを実装 --- */
    .main-visual-area {
        position: relative;
        width: calc(100% - 30px); /* 左右に15pxずつの余白 */
        margin: 20px auto 0;
        aspect-ratio: 1 / 1.1; /* デザインに合わせた縦横比 */
        background-color: #fff;
        
        /* 白い太枠の再現 */
        border-top: 10px solid #fff;
        border-left: 10px solid #fff;
        border-right: 10px solid #fff;
        
        /* 下部のカーブトリミング：
           横120%・縦100%の楕円を、上端中央(50% 0%)を起点に描くことで、
           底辺が綺麗なアーチ状になります */
        clip-path: ellipse(120% 100% at 50% 0%);
        
        z-index: 1;
    }

    #main_staff_placeholder {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center top;
    }

    /* 画像の下からの黒グラデーション（文字の視認性） */
    .main-visual-area::after {
        content: "";
        position: absolute;
        bottom: 0;
        left: 0;
        width: 100%;
        height: 50%;
        background: linear-gradient(to top, rgba(0, 0, 0, 0.7) 0%, transparent 100%);
        pointer-events: none;
    }

    /* --- コンテンツエリア（画像の上に配置） --- */
    .hero-content {
        position: absolute;
        top: 110px; /* 白枠の上端に合わせる */
        left: 50%;
        transform: translateX(-50%);
        width: calc(100% - 50px);
        height: calc(100% - 20px); /* 画像エリアに高さを合わせる */
        display: flex;
        flex-direction: column;
        justify-content: flex-end; /* 下側に寄せる */
        align-items: center;
        z-index: 5;
        text-align: center;
        color: #fff;
    }

    .main-copy {
        font-family: var(--font-serif);
        font-size: 26px;
        line-height: 1.3;
        margin-bottom: 0px;
		font-weight: normal;
    }

    .catch-phrase {
        font-size: 12px;
        margin-bottom: 15px;
        line-height: 1.4;
    }

    /* JOIN US ボタン */
    .btn-join {
        display: block;
        background: #d64d8a;
        color: #fff;
        width: 260px;
		height: auto;
        padding: 12px 0;
        text-decoration: none;
        font-size: 18px;
        font-weight: normal;
        letter-spacing: 0.1em;
        margin-bottom: 0px; /* カーブの頂点付近に配置 */
        position: relative;
    }

    /* --- ステータス円（画像の下・カーブに被るように配置） --- */
    .stats-container {
        display: flex;
        justify-content: center;
        gap: 0;
        z-index: 10;
        position: relative;
        transform: scale(0.85); /* 画面幅に合わせて微調整 */
    }

    .stat-circle {
        width: 140px;
        height: 140px;
        margin: 0 -2px;
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    }
}
@media screen and (max-width: 768px) {
    .main-visual-area img {
        width: 500px;
        height: auto;
        display: block;
        object-fit: contain;
        z-index: 2;
    }
}
@media (max-width: 767px) {
    #main_staff_placeholder {
        width: 100%;
        height: 400px;
        object-fit: cover;
        object-position: center bottom;
    }
}
@media (max-width: 767px) {
    .main-visual-area {
        position: relative;
        width: calc(100% - 30px);
        margin: 20px auto 0;
        aspect-ratio: 1 / 1.1;
        /* background-color: #fff; */
        /* border-top: 10px solid #fff; */
        /* border-left: 10px solid #fff; */
        /* border-right: 10px solid #fff; */
        clip-path: ellipse(120% 100% at 50% 0%);
        z-index: 1;
        /* margin-bottom: 500px; */
        height: 350px;
    }
}
@media (max-width: 767px) {
    .hero-main {
        background-color: #fdf5f7;
        height: auto;
        overflow: visible;
        display: flex;
        flex-direction: column;
        align-items: center;
        height: 366px;
        margin-bottom: -30px;
    }
}
@media (max-width: 767px) {
    .main-visual-area::after {
		content: "";
        position: absolute;
        bottom: 0;
        left: 50%;
        width: 500px;
        height: 60%;
        background: linear-gradient(to top, rgba(0, 0, 0, 0.7) 0%, transparent 100%);
        pointer-events: none;
        transform: translateX(-50%);
        clip-path: inset(0 37px 0 0);
    }
}
@media (max-width: 767px) {
    .main-visual-area {
        position: relative;
        width: calc(100% - 30px);
        margin: 5px auto 0;
        aspect-ratio: 1 / 1.1;
        clip-path: ellipse(120% 100% at 50% 0%);
        z-index: 1;
        height: 380px;
        overflow: visible;
    }
}
@media (max-width: 767px) {
    .hero-content {
        position: absolute;
        top: 150px;
        left: 50%;
        transform: translateX(-50%);
        width: calc(100% - 50px);
        height: calc(100% - 20px);
        display: flex;
        flex-direction: column;
        justify-content: flex-end;
        align-items: center;
        z-index: 5;
        text-align: center;
        color: #fff;
    }
}

@media (max-width: 767px) {
    .section-career {
        padding: 40px 20px 0px;
        margin-top: 0;
        background: linear-gradient(to bottom, #ffffff 50%, #f7cbd8 100%);
        overflow: hidden;
    }

    .career-container {
        display: flex;
        flex-direction: column; /* 画像→テキストの順に並べる */
        min-height: auto;
		width: 100%;
    }

    /* キャリアテキストボックス */
    .career-text-box {
        width: 100%;
        pointer-events: auto;
        text-align: left;
    }

    /* 見出し：1年目から... のタイポグラフィ再現 */
    .career-heading {
        font-size: 0; /* 子要素のサイズ指定を優先し、隙間を防ぐ */
        line-height: 1.3;
        margin-bottom: 25px;
        display: block;
        letter-spacing: 0.02em;
		margin-top: -60px;
    }

    /* 巨大な「1」 */
    .num-pink {
        font-size: 84px; /* スマホに合わせたサイズ */
        display: inline-block;
        vertical-align: baseline;
        margin-right: 4px;
        font-family: var(--font-yumincho);
        font-weight: normal;
    }
    .txt-main {
        font-size: 26px;
        font-weight: normal;
        vertical-align: baseline;
    }
    .txt-small {
        font-size: 18px;
        font-weight: normal;
        vertical-align: baseline;
        margin: 0 1px;
    }

    /* 説明文の調整 */
    .career-description {
        font-size: 13px;
        line-height: 2;
        color: #333;
        margin-bottom: 10px;
    }

}


@media (max-width: 767px) {

    .hero-bg-layer {
        display: block !important;
        position: absolute;
        top: 350px;
        left: 0;
        width: 100%;
        height: 170px;
        z-index: 1;
        pointer-events: none;
		background: linear-gradient(to top, #ffffff 0%, #f2c7d4 50%, #f7cbd8 100%);
    }

    .bg-large-text {
        position: absolute;
        top: 100px; /* 画像の上端に少しかかる位置 */
        left: 50%;
        transform: translateX(-50%);
        font-size: 50px; /* スマホに適したサイズ */
        font-family: var(--font-en);
        font-weight: normal;
        color: #fff; /* デザイン案通りの非常に薄いグレー */
        white-space: nowrap;
        letter-spacing: 0.02em;
        text-align: center;
    }

    #career_main_placeholder {
        position: relative;
        display: block;
        width: 100%;
        aspect-ratio: 16 / 9; 
        object-fit: cover;
        object-position: center center;
        border-radius: 0px;
		margin-top: 100px;
        margin-bottom: 20px;
        z-index: 1; /* テキストより後ろに */
        order: -1;
    }

    /* --- キャリアテキスト部分（数字の「1」など） --- */
    .career-text-box {
        position: relative;
        z-index: 5;
    }

    .career-heading {
        display: flex;
        flex-wrap: wrap;
        align-items: baseline;
        line-height: 1.2;
        margin-bottom: 25px;
    }

    .num-pink {
        font-size: 80px; /* デザイン案に合わせた巨大な1 */
        color: #d64d8a;
        font-weight: normal;
        line-height: 1;
        margin-right: 5px;
    }

    .txt-main {
        font-size: 24px;
        font-weight: normal;
    }

    .txt-small {
        font-size: 16px;
        font-weight: normal;
        margin: 0 1px;
    }

    .career-description {
        font-size: 13px;
        line-height: 1.8;
        color: #333;
    }

	.intro-desc{
		font-size: 13px;
		margin-top: 0px;
		margin-bottom: 0px;
	}
	.intro-desc p{
		line-height: 2;
		margin-top: 0px;
		margin-bottom: 10px;
	}
	.points-container{
		padding: 0 20px;
	}
	.point-content-item{
		margin-bottom: 0;
	}
}

@media (max-width: 767px) {
	#bubble_image{
		width: 100px;
    	height: 100px;
		margin-left: 170px;
	}
    .horizontal-scroll-wrapper {
        height: 400vh !important; 
        position: relative;
        overflow: visible !important; 
    }

    .sticky-content {
        position: -webkit-sticky; /* iOS用 */
        position: sticky;
        top: 0;
        width: 100%;
        height: 100vh; /* 画面いっぱいに固定 */
        overflow: hidden;
        display: flex;
        align-items: center;
    }

    .section-charm {
        display: flex !important;
        flex-direction: row !important; /* 絶対に横並び */
        flex-wrap: nowrap !important;   /* 絶対に折り返さない */
        padding: 0 20px;
        height: 100%;
        align-items: center;
        will-change: transform;
    }

    /* イントロ（最初の説明文）の幅調整 */
    .charm-intro {
        width: 85vw !important;
        flex-shrink: 0;
        margin-right: 100px;
    }

    #charm_title_img {
        width: 100%;
        max-width: 300px;
    }

    /* カードの幅調整：スマホ画面の8割くらいにすると次のカードが見えて横スクロールだと分かりやすい */
    .charm-card {
        width: 85vw !important;
        flex-shrink: 0; /* 縮小を禁止 */
        margin-right: 30px;
    }

    .card-img-shifted {
        width: 100%;
        left: -40px; /* モバイルでは位置のズレを戻す */
    }
	.card-h3{
		font-size: 18px;
	}
    .card-content-box {
        width: 90%;
        margin: -40px auto 0;
        padding: 40px 20px;
    }
	.charm-badge{
		font-size:14px;
	}
    /* ジグザグ配置をスマホ用に微調整（やりすぎると画面外に消えるため） */
    .type-high { transform: translateY(-20px) !important; }
    .type-low { transform: translateY(20px) !important; }
	.charm-cards-area {
    display: flex;
    gap: 50px;
    padding-right: 0px;
	}
	.benefits-grid {
		column-count: 2;
        grid-template-columns: 1fr;
        margin-left: 0;
        gap: 10px;
        display: block;
    }
	.benefits-grid li {
    margin-bottom: 10px;
	}
}

@media (max-width: 767px) {
    /* --- セクション・コンテナ --- */
    .section-grow-career {
        padding: 40px 0 0px;
    }
	.section-grow-career .container {
        width: 90%;
        padding: 0;
        margin: 0 auto;
        max-width: 1200px;
    }

	.section-staff-interview .container {
        width: 100%;
        padding: 0;
        margin: 0 auto;
        max-width: 1200px;
    }
    .grow-career-white-card {
        padding: 40px 15px;
        border-radius: 20px;
        margin-bottom: 0;
        border-width: 1px;
    }

    /* --- ヒーローエリア（テキストと散布画像） --- */
    .career-hero {
        display: flex;
        flex-direction: column;
        align-items: center;
        margin-bottom: 0px!important;
    }

    /* PC版の絶対配置画像をリセットし、一部だけを装飾として表示 */
    .career-images-left, .career-images-right {
        position: relative;
        display: flex;
        gap: 10px;
        justify-content: center;
        width: 100%;
        margin-bottom: 20px;
    }

    .career-images-left img,
    .career-images-right img {
        position: absolute; 
        width: calc(33% - 10px);
        height: 100px;
        border-radius: 15px;
        box-shadow: 0 5px 15px rgba(0,0,0,0.1);
    }
	.img-s1 {
	        width: 150px !important;
        height: 150px !important;
        top: -120px;
        left: -20px;
	}
	.img-s2 {
	width: 100px !important;
        height: 100px !important;
        top: -15px;
        left: -45px;
	}
	.img-s3 {
		display: none;
	}
	.img-s4 {
	width: 150px !important;
        height: 150px !important;
        top: -650px;
        right: -20px;
	}
	.img-s5 {
	width: 100px !important;
        height: 100px !important;
		top: -540px;
        right: -50px;
	}
    .career-main-text {
        text-align: center;
        padding: 0;
    }

    .career-main-text h2 {
        font-size: 25px; /* スマホサイズ */
        line-height: 1.4;
        margin-bottom: 25px;
    }

    .career-main-text h2 .kana {
        font-size: 20px!important;
        font-weight: normal;
    }

    .career-desc {
        font-size: 13px;
        line-height: 2;
        text-align: left; /* 長文は左揃えが読みやすい */
    }
    .career-desc p { margin-bottom: 10px; }

    .career-title-area {
        flex-direction: row;
        gap: 10px;
		margin-top: 0;
		align-items: baseline;
    }

    .career-h3 {
        font-size: 17px;
        line-height: 1.4;
		margin-top: 0;
    }


    /* --- 1週間のスケジュール（スワイプエリア） --- */
    .schedule-horizontal-area {
        padding: 40px 0;
        margin: 0 -15px; /* 親のパディングを無視して端までスクロール */
        -webkit-overflow-scrolling: touch; /* iOSスワイプ滑らかに */
    }

    .schedule-list {
        padding: 0 15px;
        gap: 15px;
    }

    .schedule-card {
        width: 200px; /* 少し小さくして次のカードが見えるように */
        padding: 15px;
    }

    .day-label-bubble {
        width: 120px;
        font-size: 14px;
        margin-top: -35px;
    }

    .work-time {
        font-size: 18px;
    }

    .work-text {
        font-size: 12px;
    }

    .schedule-thumb {
        width: 70px;
        height: 70px;
    }

    .schedule-bg-line {
        top: 50%;
        left: 100px;
        width: 350vw;
    }

    .card-sep {
        margin: 40px 0;
    }
}
@media (max-width: 767px) {
    /* --- テーブル全体のスクロール設定 --- */
    .career-plan-table {
        width: 100%;
        overflow-x: auto; /* 横スクロールを許可 */
        -webkit-overflow-scrolling: touch; /* iOSでのスクロールを滑らかに */
        padding-bottom: 15px; /* スクロールバー用の余白 */
    }

    /* --- 中身が潰れないように最低幅を固定 --- */
    .plan-header, 
    .plan-body {
        min-width: 800px; /* ここでテーブルの「最低の横幅」を固定します */
        display: flex;
    }

    /* --- ヘッダー・セル幅の微調整 --- */
    .empty-cell, 
    .year-arrows {
        width: 100px; /* スマホでは左側の矢印列を少しスリムに */
        flex-shrink: 0;
    }

    .header-cell, 
    .cell {
        flex: 1;
        min-width: 200px; /* 各セルの幅がこれ以上小さくならないように固定 */
        box-sizing: border-box;
    }

    /* --- 行の高さ調整 --- */
    .plan-row {
        height: auto; /* テキスト量に応じて高さが変わるように */
        min-height: 120px;
        padding: 10px 0;
    }

    /* スクロールを促すヒント（任意：必要であればカードに影をつけてスクロール感を出す） */
    .career-plan-table::after {
        content: "← 横にスクロールできます";
        display: block;
        text-align: right;
        font-size: 11px;
        color: #9b87b5;
        margin-top: 5px;
    }
}

@media (max-width: 767px) {
    /* --- 親コンテナ：スクロールの器 --- */
    .career-plan-table {
        width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        position: relative;
    }

    /* --- テーブルの最小幅設定（スクロールを発生させる） --- */
    .plan-header, 
    .plan-body {
        display: flex;
        min-width: 850px; /* PC版のレイアウトを維持できる幅 */
    }

    /* --- 【重要】左列（ヘッダーの空セルと年数矢印）の固定 --- */
    .empty-cell,
    .year-arrows {
        position: -webkit-sticky; /* iOS用 */
        position: sticky;
        left: 0;          /* 左端に固定 */
        z-index: 10;      /* スクロールする中身より上に配置 */
        background-color: #fff; /* 背後の文字が透けないよう白に固定 */
        width: 110px;     /* 幅を固定 */
        flex-shrink: 0;
    }

    /* 年数矢印の重なり順をさらに微調整 */
    .year-arrows {
        background-color: #fff; /* 背景が透過している場合は指定 */
    }

    /* 固定列の境界にうっすら影をつけると、スクロールしているのが分かりやすくなります */
    .empty-cell::after,
    .year-arrows::after {
        content: "";
        position: absolute;
        top: 0;
        right: 0;
        width: 10px;
        height: 100%;
        background: linear-gradient(to right, rgba(0,0,0,0.05), transparent);
        pointer-events: none;
    }

    /* --- 右側のスクロールするセル --- */
    .header-cell, 
    .cell {
        flex: 1;
        min-width: 220px;
        box-sizing: border-box;
    }

    /* 高さとレイアウトのリセット（スマホでの文字溢れ対策） */
    .plan-row {
        height: auto;
        min-height: 123px;
        display: flex;
        align-items: center;
    }

    /* 矢印の高さ調整（行の高さに合わせる） */
    .arrow-item {
        height: 170px;
		width: 70px;
    }

}
@media (max-width: 767px) {
    .career-plan-table {
        width: 100%;
        overflow-x: auto;
        position: relative;
    }

    .empty-cell,
    .year-arrows {
        position: sticky;
        left: 0;
        z-index: 10;
        background-color: #fff;
        width: 80px;
        flex-shrink: 0;
    }

    .scroll-hint {
        z-index: 5; /* 固定列(10)より下に配置して、固定列の下に潜り込むようにする */
    }

    .plan-header, 
    .plan-body {
        display: flex;
        min-width: 850px; 
    }
	.career-block{
		margin-bottom: 0;
	}
	.scroll-hint-icon-wrap{
		z-index: 9;
	}
	.section-staff-interview{
		padding-bottom: 50px;
	}
	.section-title-area .main-title {
    font-size: 26px;
	line-height: 1.4;
	margin-bottom: 25px;
	font-weight: normal;
	}
	#interview_group_img {
    margin-top: 150px;
	}
	.section-title-area{
		margin-bottom: 0;
	}
	.recruit-table-wrapper ,.recruit-table-wrapper.active{
		padding: 0 20px;
	}
	main {
    position: relative;
    width: 100%;
    overflow-x: clip; 
    overflow-y: visible;
	}
}
/* --- スマートフォン向けスタイル (767px以下) --- */
@media (max-width: 767px) {
    
    .recruit-main-container {
        padding: 60px 0 100px;
        clip-path: polygon(0 0, 100% 0, 100% calc(100% - 20px), 50% 100%, 0 calc(100% - 20px));
    }

    .recruit-title {
        font-size: 32px;
        margin-bottom: 30px;
    }
    .recruit-tabs {
        gap: 10px;
        padding: 0 15px;
        width: 100%;
        max-width: 300px;
		margin: 0 auto 20px;
    }
    .tab-btn {
        padding: 10px 0;
        flex: 1; /* 均等に広げる */
        font-size: 14px;
    }

    .recruit-table-wrapper {
        padding: 0 15px;
    }

    .recruit-table, 
    .recruit-table tr, 
    .recruit-table th, 
    .recruit-table td {
        display: block; /* 縦並びにする */
        width: 100%;
    }

    .recruit-table th {
        border-bottom: none;
        padding: 15px 20px 5px; /* 下の余白を詰める */
        font-weight: bold;
    }

    .recruit-table td {
        padding: 5px 20px 15px; /* 上の余白を詰める */
    }

    /* 背景ピンクの行の調整 */
    .recruit-table tr.bg-pink th,
    .recruit-table tr.bg-pink td {
        background-color: #fdf2f6;
    }
	.section-recruit {
		padding: 0 0 40px;
	}
    /* --- フォームセクション --- */
    .section-form {
        padding: 20px 0px;
    }

    .form-title {
        font-size: 22px;
        margin-bottom: 20px;
    }

    /* バッジを折り返し可能にする */
    .form-badges {
        flex-wrap: wrap;
        gap: 8px;
        padding: 0 10px;
    }

    .badge {
        padding: 6px 15px;
        font-size: 12px;
        flex: 1 1 calc(50% - 10px); /* 2列並びにする */
        text-align: center;
    }

    /* フォームアイテムを縦並びに */
    .form-item {
        flex-direction: column;
        align-items: flex-start;
        padding: 20px 0;
    }

    .form-item label {
        width: 100%;
        margin-bottom: 10px;
        font-weight: bold;
    }

    .input-area {
        width: 100%;
    }

    /* ラジオボタンのグループを縦並びに（押しやすさ重視） */
    .radio-group {
        flex-direction: column;
        gap: 15px;
    }

    /* 個人情報保護方針 */
    .policy-scroll-box {
        height: 200px; /* スマホでは少し高さを出して読みやすく */
    }

    .form-disclaimer {
        font-size: 12px;
        text-align: left; /* スマホでは左揃えが読みやすい */
    }

    /* ボタンを縦に並べる、または大きくする */
    .form-buttons {
        flex-direction: column;
        gap: 15px;
    }

    .btn-submit {
        width: 100%;
        padding: 18px;
    }

    .btn-clear {
        width: 100%;
        padding: 12px;
        background-color: transparent;
        color: #999;
        text-decoration: underline;
    }
}

@media (max-width: 767px) {
    /* 1. サイト全体、またはこのエリアに box-sizing を適用 */
    .recruit-main-container *,
    .recruit-main-container *::before,
    .recruit-main-container *::after {
        box-sizing: border-box; /* パディングを横幅に含める設定 */
    }

    /* 2. テーブルのラッパー設定を強化 */
    .recruit-table-wrapper {
        width: 100%;
        padding: 0 20px; /* 左右の余白 */
        margin: 0 auto;
        overflow-x: hidden; /* 万が一のはみ出しを確実にカット */
    }

    /* 3. テーブル本体の修正 */
    .recruit-table {
        display: block;
        width: 100% !important; /* コンテナの幅(100%)を絶対守る */
        margin: 0;
        table-layout: fixed; /* 中身のテキストによる突き抜けを防止 */
        border-radius: 10px; /* 角丸を効かせる */
        overflow: hidden;
    }

    /* 4. 各パーツの横幅を100%に固定 */
    .recruit-table tbody,
    .recruit-table tr,
    .recruit-table th,
    .recruit-table td {
        display: block;
        width: 100% !important;
        max-width: 100%; /* これ以上大きくならないように */
    }

    /* 5. 余白の微調整（スクリーンショットのPadding設定を反映） */
    .recruit-table th {
        padding: 20px 20px 5px !important;
    }

    .recruit-table td {
        padding: 5px 20px 20px !important;
        word-break: break-all; /* 長いテキストが来た時に強制改行して突き抜けを防ぐ */
    }
	/* ヘッダーと追従ボタンにアニメーションの準備 */
	.header, 
	.sp-fixed-footer {
	  transition: opacity 0.5s ease, visibility 0.5s ease;
	  opacity: 1;
	  visibility: visible;
	}

	/* 非表示状態のスタイル */
	.header.is-hidden,
	.sp-fixed-footer.is-hidden {
	  opacity: 0;
	  visibility: hidden;
	  pointer-events: none; /* 非表示中はクリック不可にする */
	}
	.bg-large-text-scroll {
    animation: bg-infinite-scroll 20s linear infinite;
    margin-top: 100px;
	}
	.bg-large-text-scroll span {
    font-size: clamp(60px, 9.5vw, 220px);
	}
	
	
	.interview-top-visual {
		-webkit-mask-image: none;
		mask-image:none;
	}
}
