@charset "utf-8";
/* CSS Document */

      /* FV (中央配置 + 背景スライドショー) */
        .recruit-fv {
            position: relative; width: 100%; height: 100vh; min-height: 600px;
            display: flex; align-items: center; justify-content: center; background-color: #433f37;
            overflow: hidden;
        }
        .fv-slider-container {
            position: absolute; inset: 0; width: 100%; height: 100%;
        }
        .fv-slide {
            position: absolute; inset: 0; opacity: 0; z-index: 1;
            transition: opacity 1.5s ease-in-out, transform 6s ease-out;
            transform: scale(1.1);
        }
        /* pictureタグ内のimgにもスタイルを適用 */
        .fv-slide img, .fv-slide picture { width: 100%; height: 100%; display: block; }
        .fv-slide img { object-fit: cover; }
        
        .fv-slide.active { opacity: 1; z-index: 2; transform: scale(1.0); }
        
        .recruit-fv-overlay {
            position: absolute; inset: 0; background: rgba(0,0,0,0.4); z-index: 3;
        }
        
        .recruit-fv-content { 
            position: absolute; z-index: 10; text-align: center; color: white;  bottom: 25%;
        }
		@media (max-width: 768px) {
        .recruit-fv-content { 
            bottom: 20%; /* positionの記述ミスを修正 */
        }}
        .recruit-fv-en { font-size: 1rem; letter-spacing: 0.5em; margin:0 auto 1.5rem; font-weight: 700; color: #b19a38; width: 50%; max-width: 200px;}
        .recruit-fv-jp {  font-family: 游明朝, YuMincho, ヒラギノ明朝 Pro W3, Hiragino Mincho Pro, HG明朝E, MS P明朝, MS 明朝, serif;font-size: clamp(2.15rem, 6vw, 4rem); font-weight: 800; line-height: 1.2; letter-spacing: 0.05em; }
        .recruit-fv-sub { font-size: 1.1rem; margin-top: 1.5rem; opacity: 0.9; font-weight: 500; text-align: center; line-height: 1.5rem;}
		@media (max-width: 768px) {.recruit-fv-sub { font-size: 0.9rem;}}
		
        /* --- キャッチの新登場アニメーション --- */

        /* 共通: 初期状態は非表示 */
        .catch-line {
            opacity: 0;
        }

        /* ロゴ用: にじむように出現 (ぼかし) */
        @keyframes fadeInBlur {
            0% {
                opacity: 0;
                filter: blur(15px);
                transform: scale(0.9);
            }
            100% {
                opacity: 1;
                filter: blur(0);
                transform: scale(1);
            }
        }

        /* テキスト用: 下からふわっと出現 */
        @keyframes fadeInUpCustom {
            0% {
                opacity: 0;
                transform: translateY(30px);
            }
            100% {
                opacity: 1;
                transform: translateY(0);
            }
        }

        /* ロゴへの適用 */
        .catch-line:first-child {
            animation: fadeInBlur 1.8s cubic-bezier(0.19, 1, 0.22, 1) forwards;
            animation-delay: 0.4s;
        }

        /* テキストへの適用 */
        .catch-delay-1 {
            animation: fadeInUpCustom 1.4s cubic-bezier(0.22, 1, 0.36, 1) forwards;
            animation-delay: 1.2s;
        }
        .catch-delay-2 {
            animation: fadeInUpCustom 1.4s cubic-bezier(0.22, 1, 0.36, 1) forwards;
            animation-delay: 1.5s;
        }

        /* ABOUT US セクション (雑誌風) */
        .about-section { position: relative; padding: 120px 0; overflow: hidden;background-color: #f8f8f8;}
        .watermark-text {
            position: absolute; font-family: 'Inter', serif; font-size: 8rem; font-weight: 900;
            color: #f8f8f8; z-index: -1; top: 2rem; left: 5%; text-transform: uppercase;
        }
        .about-num { font-family: 'Inter', sans-serif; font-size: 6rem; font-weight: 800; color: #efefef; line-height: 0.8; margin-bottom: -1rem; }
        .about-label-en { font-size: 0.875rem; letter-spacing: 0.2em; color: #b19a38; font-weight: 700; margin-bottom: 0.5rem; }
        .about-label-sub { font-size: 0.75rem; color: #9ca3af; margin-bottom: 1rem; display: block; }
        @media (max-width: 768px) {.about-title-jp { font-size: 1.9rem!important;line-height: 3.4rem!important;}}
		.about-title-jp { font-size: 2.6rem; font-weight: 600; margin: 2rem 0;  line-height: 3.8rem; font-family: 游明朝, YuMincho, ヒラギノ明朝 Pro W3, Hiragino Mincho Pro, HG明朝E, MS P明朝, MS 明朝, serif;}
        .map-marker-list { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 2rem; }
		@media (max-width: 768px) {.map-marker-list {justify-content: center}}
        .map-marker { border: 1px solid #ddd; padding: 0.4rem 0.9rem; font-size: 0.9rem; font-weight: 700; border-radius: 2px; color: #666; background: #fff;text-align: center;}
		@media (max-width: 768px) {.map-marker { font-size: 0.8rem; width: calc(100% / 4.5); padding: 0.6rem 0.1rem 0.5rem;}}
			
		.about-wrap{z-index: 10;}
		.map-wrap{position: absolute; right: 0; top:5%; width:50%;}
		@media (max-width: 768px) {.about-btn{text-align: center;}}
        /* CAREERS (画像幅いっぱい・PC横並び) */
        .career-section { background: #fcfcfc; padding: 8rem 0 0; }
        .career-full-img-box {
            position: relative; width: 100%; aspect-ratio: 21 / 9; overflow: hidden; margin-top: 4rem;
        }
        @media (max-width: 768px) { .career-full-img-box { aspect-ratio: 8 / 10; } }
        .career-full-img-box img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.8s; }
        .career-full-img-box:hover img { transform: scale(1.05); }
        .career-overlay-content {
            position: absolute; inset: 0;  background: rgb(0 0 0 / 64%);
            display: flex; flex-direction: column; justify-content: center; align-items: center; color: white;
            text-align: center; padding: 2rem;
        }
		
		.career-overlay-content h3{font-weight: 600;}
		
		@media (max-width: 768px) {.career-overlay-content p{font-size: 0.95rem;}}
		
		.academy{border-left: solid 0.2rem #fff;}
		@media (max-width: 768px) {.academy{border-top: solid 0.2rem #fff;}}
		@media (max-width: 768px) {.academy{border-top: solid 0.2rem #fff;}}

		.academy-btn a{background: linear-gradient(45deg, #66cfe7 10%, #f75c94 63%, #f75c94 75%);}

        /* FRANCHISE (背景画像) */
        .franchise-bg-section {
            position: relative; width: 100%; padding: 150px 0;
            background-image: url("../images/franchise_bg.jpg");
            background-size: cover; background-position: center; background-attachment: fixed;
        }
		
		@media (max-width: 768px) { .franchise-bg-section {background-image: url("../images/franchise_bg_sp.jpg")!important;background-size:170%; background-position: top;}}
        .franchise-bg-section::before {
            content: ''; position: absolute; inset: 0; background: rgba(0,0,0,0.6);
        }
        .franchise-inner { position: relative; z-index: 1; color: white; max-width: 800px; margin: 0 auto; text-align: center; padding: 0 1.5rem; }

		.franchise-inner p{font-size: 0.95rem;margin: 0 auto 2.5rem;width: 90%;}
		@media (max-width: 768px) {.franchise-inner p{font-size: 0.95rem;}}
		
		.franchise-inner h2{ font-family: 游明朝, YuMincho, ヒラギノ明朝 Pro W3, Hiragino Mincho Pro, HG明朝E, MS P明朝, MS 明朝, serif; line-height: 1.5; margin-top: 2rem; font-size:1.8rem; }
        /* スタッフコラム */
		.staff_column{background: #f8f8f8;}
	
      /* コラムグリッド */
        .column-card {
            background: #fff;
            transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
        }
        .column-card.is-visible { display: block; }
        .column-card.animate { opacity: 1; transform: translateY(0); }
        .column-card:hover { transform: translateY(-8px); box-shadow: 0 20px 40px rgba(0,0,0,0.08); }

        .column-thumb {
			display: flex;
			flex-wrap: wrap;
			gap: 4px;
            width: 100%;
            aspect-ratio: 6 /4;
            overflow: hidden;
            position: relative;
        }
        .column-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s ease; }
        .column-card:hover .column-thumb img { transform: scale(1.08); }

        .column-tag {
            position: relative;
			display: inline-block;
			z-index: 20;
            top: 1rem;
            left: 1rem;
            background: #b19a38;
            color: #fff;
            padding: 0.3rem 0.8rem;
            font-size: 0.7rem;
            font-weight: 700;
            letter-spacing: 0.1em;
            border-radius: 2px;
        }
		
		.tag-wrap{
			position: absolute;
		}

        .column-info { padding: 1.5rem; display: flex; flex-direction: column;}
        .column-author {
            display: flex;
            align-items: center;
            gap: 0.75rem;
            margin-bottom: 1rem;
        }
        .author-img { width: 44px; height: 44px; border-radius: 50%; background: #f3f4f6; overflow: hidden; }
        .author-img img { width: 100%; height: 100%; object-fit: cover; }
        .author-name { font-size: 0.85rem; font-weight: 700; color: #333; }
        .author-pos { font-size: 0.7rem; color: #999; }

        .column-title {
            font-size: 1.2rem;
            font-weight: 600;
            line-height: 1.5;
            margin-bottom: 1rem;
            color: #433f37;
        }
        .column-excerpt {
            font-size: 0.9rem;
            color: #666;
            line-height: 1.7;
            display: -webkit-box;
            -webkit-line-clamp: 3;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }
		

		.column-date-bottom {
    		text-align: right;    
    		font-size: 0.8rem;     
    		color: #999;           
    		margin-top: 1rem;       
    		font-family: 'Inter', sans-serif;
    		font-weight: 500;
		}
		
		
        /* ボタン */
        .btn-gold {
            background-color: #b19a38; color: white; padding: 1.2rem 3.5rem; border-radius: 9999px;
            font-weight: 700; display: inline-flex; align-items: center; transition: all 0.3s;
        }
		@media (max-width: 768px) {.btn-gold {padding: 1.2rem 3rem;}}
		
        .btn-gold:hover { background-color: #433f37; transform: translateY(-2px); }
