@charset "UTF-8";

/*!
Theme Name: Cocoon Child
Description: Cocoon専用の子テーマ
Template: cocoon-master
Version: 1.1.5
*/

/************************************
** 1. アピールエリアの完全抹殺と上部引き上げ
************************************/

/* アピールエリアの存在を消す */
#appeal-area, .appeal-area, .appeal-area-in, #appeal-area-in {
    display: block !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    background: none !important;
    overflow: visible !important; /* バナーは見せる */
}

/* 前後の隙間を消す */
.appeal-area-before, .appeal-area-after, 
#appeal-area-before, #appeal-area-after {
    display: none !important;
    height: 0 !important;
    margin: 0 !important;
}

/* ★最重要：アピールエリアの余白をマイナスで相殺する */
#appeal-area, .appeal-area {
    margin-top: -300px !important;
    position: relative !important;
}

/* コンテンツ全体も上に引き上げる */
#content {
    margin-top: -300px !important;
}

.main, .header {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/************************************
** 2. ページ基本構成・アニメーション
************************************/

.page .sidebar { display: none; }
.page .main { 
    width: 100% !important; 
    float: none !important;
    animation: fadeUpLoad 1.0s ease-out forwards !important; 
}
.page .entry-title { display: none; }

/* 右下浮動バナー */
.recruit-floating-banner {
    position: fixed !important;
    bottom: 20px !important;
    right: 20px !important;
    width: 300px !important;
    z-index: 999999 !important;
}
.recruit-floating-banner img {
    width: 100% !important;
    box-shadow: 0 1px 25px rgba(0,0,0,0.3);
    border-radius: 0px;
}

@keyframes fadeUpLoad {
    0% { opacity: 0; transform: translateY(30px); }
    100% { opacity: 1; transform: translateY(0); }
}
@keyframes elegantFadeUp {
    0% { opacity: 0; transform: translateY(20px); filter: blur(5px); }
    100% { opacity: 1; transform: translateY(0); filter: blur(0); }
}
@keyframes lineExtend {
    0% { width: 0; }
    100% { width: 60px; }
}

/************************************
** 3. 各コンテンツデザイン（PC・共通）
************************************/

/* キャッチコピー */
.elegant-catchphrase { text-align: center; padding: 60px 20px; }
.fade-in-text {
    font-family: "Shippori Mincho", "Yu Mincho", serif;
    font-size: 1.8rem; letter-spacing: 0.15em; line-height: 1.8; opacity: 0;
    animation: elegantFadeUp 2.0s ease-out forwards; animation-delay: 0.5s;
}

/* 会社説明 */
.elegant-description { text-align: center; padding: 0 20px 60px; max-width: 800px; margin: 0 auto; }
.fade-in-desc {
    font-family: "Yu Mincho", serif; font-size: 1.0rem; line-height: 2.2; opacity: 0;
    animation: elegantFadeUp 2.5s ease-out forwards; animation-delay: 1.5s;
}

/* CONTENTS見出し */
.section-title-container { text-align: center; padding: 80px 0 40px; }
.universal-fade-up {
    font-family: "Shippori Mincho", serif; font-size: 2.2rem; letter-spacing: 0.2em;
    position: relative; display: inline-block; opacity: 0;
    animation: elegantFadeUp 1.5s ease-out forwards;
}
.universal-fade-up::after {
    content: ""; position: absolute; bottom: -10px; left: 50%; transform: translateX(-50%);
    width: 0; height: 1px; background: #999;
    animation: lineExtend 1.2s ease-out forwards; animation-delay: 0.8s;
}

/* カラム・画像・縦線 */
/* --- カラム・画像・縦線（PC版：短く洗練された印象に） --- */
.wp-block-columns { max-width: 1100px !important; margin: 0 auto !important; gap: 15px !important; }
.wp-block-column { display: flex; flex-direction: column; align-items: center; text-align: center; }
.wp-block-image { margin-bottom: 0 !important; position: relative; }
.wp-block-image img { width: 100% !important; display: block !important; }

.main-contents-area .wp-block-image::after {
    content: ""; position: absolute; 
    bottom: -15px;          /* 画像の下端から20pxはみ出す */
    left: 50%; transform: translateX(-50%);
    width: 1px; 
    height: 45px;           /* 70pxから45pxへ短縮 */
    background-color: #000; z-index: 10;
}

/* タイトル文字 */
.wp-block-column p {
    margin: 10px 0 0 !important; padding: 0 !important;
    font-family: "Shippori Mincho", serif; font-size: 0.95rem;
    min-height: 3em; display: flex; align-items: flex-start; justify-content: center;
    opacity: 0; animation: elegantFadeUp 1.5s ease-out forwards; animation-delay: 1.2s;
}

/* --- 店舗情報3カラム：比率の最適化 --- */
.shop-info-3col {
    display: flex !important;
    max-width: 1000px !important;
    margin: 50px auto !important;
    gap: 40px !important; /* カラム間のゆとり */
    align-items: flex-start;
}

/* 左：ロゴ（幅を小さく固定） */
.shop-info-3col .wp-block-column:nth-child(1) {
    flex: 0 0 100px !important; /* ロゴの幅を100pxに固定 */
    max-width: 100px !important;
}

/* 中央と右：テキスト（残りの幅を等分する） */
.shop-info-3col .wp-block-column:nth-child(2),
.shop-info-3col .wp-block-column:nth-child(3) {
    flex: 1 !important;
    text-align: left;
}

/* テキストの装飾 */
.shop-info-3col p {
    font-family: "Shippori Mincho", serif;
    font-size: 0.85rem;
    line-height: 1.8;
    color: #444;
    margin-bottom: 10px !important;
}

/* --- 店舗情報3カラム：比率の最適化 --- */
.shop-info-3col {
    display: flex !important;
    max-width: 1000px !important;
    margin: 50px auto !important;
    gap: 40px !important; /* カラム間のゆとり */
    align-items: flex-start;
}

/* 左：ロゴ（幅を小さく固定） */
.shop-info-3col .wp-block-column:nth-child(1) {
    flex: 0 0 100px !important; /* ロゴの幅を100pxに固定 */
    max-width: 100px !important;
}

/* 中央と右：テキスト（残りの幅を等分する） */
.shop-info-3col .wp-block-column:nth-child(2),
.shop-info-3col .wp-block-column:nth-child(3) {
    flex: 1 !important;
    text-align: left;
}

/* テキストの装飾 */
.shop-info-3col p {
    font-family: "Shippori Mincho", serif;
    font-size: 0.85rem;
    line-height: 1.8;
    color: #444;
    margin-bottom: 10px !important;
}
/* --- 住所エリア全体の装飾 --- */
.shop-address-container {
    padding-left: 20px;
    border-left: 1px solid #ddd; /* 左側に細い線を入れて区切る */
}

/* 「ADDRESS」というラベルを小さく上品に */
.shop-label {
    display: block;
    font-size: 0.65rem;
    letter-spacing: 0.2em;
    color: #999;
    margin-bottom: 10px;
    font-family: 'Helvetica Neue', sans-serif;
}

/* 住所テキスト本体 */
.shop-address-text {
    font-family: "Shippori Mincho", "Yu Mincho", serif !important;
    font-size: 0.9rem !important;
    line-height: 2 !important;
    color: #333 !important;
    margin: 0 0 15px 0 !important;
    letter-spacing: 0.05em;
}

/* Googleマップへのリンクを控えめに */
.map-link {
    font-size: 0.75rem;
    color: #666;
    text-decoration: none;
    border-bottom: 1px solid #ccc;
    padding-bottom: 2px;
    transition: all 0.3s;
}

.map-link:hover {
    color: #000;
    border-color: #000;
}

/* 募集要項テーブル：ストライプを無効化して白背景に固定 */
.recruit-table {
    border-collapse: collapse !important;
    border: none !important;
    width: 100% !important;
    margin: 40px auto !important;
    background-color: #fff !important; /* テーブル全体の背景を白に */
}

/* 全ての行の背景を白に固定（ストライプの上書き） */
.recruit-table tr, 
.recruit-table td,
.recruit-table th {
    background-color: #fff !important; /* これでしましまが消えます */
    border: none !important;
    border-top: 1px solid #eeeeee !important; 
    padding: 25px 20px !important;
    vertical-align: middle;
}

/* 一番下の線 */
.recruit-table tr:last-child td {
    border-bottom: 1px solid #eeeeee !important;
}

/* 左側の項目列（ラベル） */
.recruit-table td:first-child {
    width: 25%;
    font-weight: bold;
    color: #333;
    background-color: #fff !important; /* 左側も白に固定 */
}

/* スマホ用の調整 */
@media screen and (max-width: 600px) {
    /* 全体のフォントサイズを少し微調整 */
    .recruit-table td {
        padding: 15px 8px !important;
        font-size: 0.85rem;
    }

    /* 左側の項目列（ラベル）を8文字分に固定 */
    .recruit-table td:first-child {
        width: 9em !important;        /* ★正確に「9文字分」の幅に固定 */
        min-width: 9em !important;    /* 縮みすぎないように固定 */
        max-width: 9em !important;    /* 広がりすぎないように固定 */
        white-space: normal !important; /* 9文字を超えたら改行を許可 */
        padding-right: 10px !important;
        line-height: 1.3 !important;   /* 改行した時も美しく */
        font-weight: bold;
    }
}



/* -------------------------------------------
 * スタッフ紹介：横並び＆縦長動画設定
 * ------------------------------------------- */

/* 1. レイアウト全体：テキストと動画を横に並べる */
.staff-intro-row {
    max-width: 900px !important;
    margin: 60px auto !important;
    align-items: center; /* 上下中央揃え */
    gap: 40px !important;
    display: flex !important;
}

/* 左側：プロフィールテキスト */
.staff-intro-row .wp-block-column:nth-child(1) {
    flex: 1.2 !important;
}

/* 右側：動画を包むカラム */
.staff-intro-row .wp-block-column:nth-child(2) {
    flex: 0.8 !important;
    display: flex;
    justify-content: center;
}

/* 2. 縦長動画の強制固定（9:16比率） */
.vertical-video-frame,
.youtube-short-wrapper {
    position: relative !important;
    width: 100% !important;
    max-width: 300px !important; /* 動画の最大幅 */
    margin: 0 auto !important;
    padding-top: 177.77% !important; /* 縦長比率を強制 */
    height: 0 !important;
    overflow: hidden !important;
    background: #000;
}

/* 3. 中身の動画（iframe）を枠いっぱいに広げる */
.vertical-video-frame iframe,
.youtube-short-wrapper iframe {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    border: none !important;
}

/* 4. 余計な余白の打ち消し（Cocoon干渉対策） */
.vertical-video-frame .video-container,
.vertical-video-frame .wp-block-embed__wrapper,
.youtube-short-wrapper .video-container,
.youtube-short-wrapper .wp-block-embed__wrapper {
    padding-top: 0 !important;
    height: 100% !important;
}

/* 5. スマホ版の設定：縦並びにする */
@media screen and (max-width: 600px) {
    .staff-intro-row {
        flex-direction: column !important;
        text-align: center;
    }
    .staff-intro-row .wp-block-column:nth-child(2) {
        width: 80% !important;
    }
    .vertical-video-frame,
    .youtube-short-wrapper {
        max-width: 250px !important; /* スマホでは一回り小さく */
    }
}

/* ボタンの外側の枠 */
.contact-button-container {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin: 50px auto;
    padding: 0 20px;
}

/* ボタン共通の基本デザイン */
.btn-custom {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 280px;
    height: 65px;
    text-decoration: none !important;
    font-family: 'Helvetica Neue', Arial, sans-serif;
    font-size: 0.85rem;
    font-weight: bold;
    letter-spacing: 0.15em;
    color: #fff !important;
    border-radius: 4px; /* 少しだけ角を丸く */
    transition: all 0.3s ease;
    box-shadow: 0 4px 15px rgba(0,0,0,0.05);
}

/* ボタンの外側のレイアウト */
.luxury-contact-area {
    display: flex;
    justify-content: center;
    gap: 30px;
    margin: 60px auto;
    padding: 0 20px;
}

/* ボタンの共通デザイン */
.lux-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 320px;
    padding: 20px 0;
    text-decoration: none !important;
    position: relative;
    transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
    overflow: hidden;
    border-radius: 2px;
}

/* 内部テキストの配置 */
.lux-btn-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    z-index: 2;
}

/* 英語テキスト（メイン） */
.lux-en {
    font-family: 'Helvetica Neue', sans-serif;
    font-size: 0.9rem;
    font-weight: 300;
    letter-spacing: 0.25em;
    margin-bottom: 4px;
}

/* 日本語テキスト（サブ） */
.lux-jp {
    font-size: 0.65rem;
    letter-spacing: 0.1em;
    opacity: 0.8;
}

/* --- メールボタン：透き通るようなサックスブルー --- */
.lux-btn-mail {
    background-color: #f0f7f9; /* 極めて薄い水色 */
    color: #5d99ab !important;
    border: 1px solid #cde4ea;
}
.lux-btn-mail:hover {
    background-color: #89c3eb;
    color: #fff !important;
    border-color: #89c3eb;
}

/* --- LINEボタン：落ち着いたフォレストグリーン --- */
.lux-btn-line {
    background-color: #f2f9f5; /* 極めて薄い緑 */
    color: #2d8c55 !important;
    border: 1px solid #d0e8da;
}
.lux-btn-line:hover {
    background-color: #06C755;
    color: #fff !important;
    border-color: #06C755;
}

/* ボタンの外側のレイアウト */
.luxury-contact-area {
    display: flex;
    justify-content: center;
    gap: 30px;
    margin: 60px auto;
    padding: 0 20px;
}

/* ボタンの共通デザイン */
.lux-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 320px;
    padding: 20px 0;
    text-decoration: none !important;
    position: relative;
    transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
    overflow: hidden;
    border-radius: 2px;
}

/* 内部テキストの配置 */
.lux-btn-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    z-index: 2;
}

/* 英語テキスト（メイン） */
.lux-en {
    font-family: 'Helvetica Neue', sans-serif;
    font-size: 0.9rem;
    font-weight: 300;
    letter-spacing: 0.25em;
    margin-bottom: 4px;
}

/* 日本語テキスト（サブ） */
.lux-jp {
    font-size: 0.65rem;
    letter-spacing: 0.1em;
    opacity: 0.8;
}

/* --- メールボタン：透き通るようなサックスブルー --- */
.lux-btn-mail {
    background-color: #f0f7f9; /* 極めて薄い水色 */
    color: #5d99ab !important;
    border: 1px solid #cde4ea;
}
.lux-btn-mail:hover {
    background-color: #89c3eb;
    color: #fff !important;
    border-color: #89c3eb;
}

/* --- LINEボタン：落ち着いたフォレストグリーン --- */
.lux-btn-line {
    background-color: #f2f9f5; /* 極めて薄い緑 */
    color: #2d8c55 !important;
    border: 1px solid #d0e8da;
}
.lux-btn-line:hover {
    background-color: #06C755;
    color: #fff !important;
    border-color: #06C755;
}

/* スマホ用の調整（枠くっつき防止・改良版） */
@media screen and (max-width: 600px) {
    .luxury-contact-area {
        flex-direction: column;
        align-items: center;
        gap: 20px; 
        margin: 50px auto;
        padding: 0 30px;
    }

    .lux-btn {
        width: 100%;
        max-width: 300px;
        /* ★左右に15pxの余白を追加して、文字が端に寄るのを物理的に防ぐ */
        padding: 22px 15px !important; 
        box-sizing: border-box !important;
    }

    /* 英語テキスト：サイズと字間を絞って、中央に余裕を持たせる */
    .lux-en {
        font-size: 0.8rem !important;      /* ★0.85から0.8へ少し小さく */
        letter-spacing: 0.1em !important;  /* ★0.15から0.1へ。これで文字全体が縮まります */
        margin-bottom: 8px !important;
        line-height: 1.2 !important;
        display: block;
        width: 100%;
        text-align: center;
    }

    /* 日本語テキスト：さらに繊細に */
    .lux-jp {
        font-size: 0.55rem !important;
        letter-spacing: 0.05em !important; /* 日本語も少し字間を詰める */
        opacity: 0.6;
        font-weight: normal;
        display: block;
    }
}

/************************************
** 4. レスポンシブ（スマホ）
************************************/
@media screen and (max-width: 600px) {
    /* 1. スマホバナー */
    .recruit-floating-banner { width: 140px !important; bottom: 10px !important; right: 10px !important; }

    /* 2. 見出しとカラムの隙間詰め */
    .section-title-container { padding-bottom: 0 !important; margin-bottom: -20px !important; }
    .section-title-container + .wp-block-columns { margin-top: -30px !important; }

    /* 3. カラム横並び維持 */
    .wp-block-columns { 
        display: flex !important; 
        flex-wrap: nowrap !important; 
        gap: 8px !important; 
        padding: 0 10px !important; 
        margin-top: 0 !important;
    }
    .wp-block-column { flex-basis: 33.33% !important; min-width: 0 !important; }

　　/* キャッチコピー：画面幅を突き抜けないように自動調整 */
    .fade-in-text {
        /* 1. 文字サイズをさらに小さく（4vw = 画面幅の4%） */
        font-size: 4vw !important; 
        
        /* 2. 文字間隔をマイナスにして「ギュッ」と凝縮する（★これが効きます） */
        letter-spacing: -0.02em !important; 
        
        /* 3. 絶対に改行させない */
        white-space: nowrap !important;
        
        /* 4. 横幅を「画面内」に限定する */
        display: block !important;
        width: 100% !important;
        max-width: 100vw !important;
        margin: 0 auto !important;
        padding: 0 15px !important; /* 左右に少し余白を設ける */
        box-sizing: border-box !important;
        
        text-align: center !important;
        overflow: hidden; /* 万が一はみ出してもスクロールさせない */
    }

    /* 5. 会社説明：手動改行を優先 */
    .fade-in-desc {
        font-size: 0.85rem !important; 
        line-height: 1.8 !important;
        text-align: center;
        display: block;
        width: 100% !important;
        margin: 0 auto !important;
        word-break: normal; 
        overflow-wrap: normal;
    }
    
    /* 6. 黒線とタイトルのスマホサイズ */
    .universal-fade-up { font-size: 1.6rem !important; }
    .wp-block-column p { font-size: 0.75rem !important; margin-top: 5px !important; }
    .wp-block-column .wp-block-image::after { height: 30px !important; bottom: -15px !important; }
   /* 7. 会社住所 */
	.shop-info-3col {
        flex-direction: column !important; /* 縦に並べる */
        gap: 25px !important;
        padding: 0 20px !important;
    }
    
    .shop-info-3col .wp-block-column:nth-child(1) {
        margin: 0 auto !important; /* ロゴを中央に */
        flex: 0 0 80px !important;
    }
    
    .shop-info-3col .wp-block-column:nth-child(2),
    .shop-info-3col .wp-block-column:nth-child(3) {
        text-align: center; /* スマホでは中央揃えが綺麗 */
    }
	    .shop-address-container {
        padding-left: 0;
        border-left: none; /* スマホでは線を消して中央寄せ */
        text-align: center;
    }

/* モバイルメニュー全体（背景）のアクション */
#navi-menu-content {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    background: rgba(0, 0, 0, 0.95) !important;
    z-index: 999999 !important;
    display: block !important;
    visibility: hidden;
    opacity: 0;
    transition: all 0.4s ease !important; /* 背景は少し早めに */
    overflow-y: auto;
}

/* チェック時に表示 */
#navi-menu-input:checked ~ #navi-menu-content {
    visibility: visible !important;
    opacity: 1 !important;
}

/* メニューリスト（親要素）のアクション準備 */
#navi-menu-content ul {
    margin: 120px 20px 0 20px !important;
    padding: 0 !important;
    list-style: none !important;
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: space-between !important;
}

/* メニュー項目（li）のアクション：最初は透明＆下に下げておく */
#navi-menu-content li {
    width: 48% !important;
    margin-bottom: 10px !important;
    opacity: 0;
    transform: translateY(20px);
    transition: all 0.5s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

/* メニューが開いた時、項目をふわっと浮き上がらせる */
#navi-menu-input:checked ~ #navi-menu-content li {
    opacity: 1 !important;
    transform: translateY(0) !important;
}

/* --- 【重要】メニューが順番に開く時間差の設定（ディレイ） --- */
/* 左上の項目から順番に 0.1秒ずつ遅らせて表示 */
#navi-menu-input:checked ~ #navi-menu-content li:nth-child(1) { transition-delay: 0.1s !important; }
#navi-menu-input:checked ~ #navi-menu-content li:nth-child(2) { transition-delay: 0.2s !important; }
#navi-menu-input:checked ~ #navi-menu-input ~ #navi-menu-content li:nth-child(3) { transition-delay: 0.3s !important; }
#navi-menu-input:checked ~ #navi-menu-content li:nth-child(3) { transition-delay: 0.3s !important; }
#navi-menu-input:checked ~ #navi-menu-content li:nth-child(4) { transition-delay: 0.4s !important; }
#navi-menu-input:checked ~ #navi-menu-content li:nth-child(5) { transition-delay: 0.5s !important; }
#navi-menu-input:checked ~ #navi-menu-content li:nth-child(6) { transition-delay: 0.6s !important; }
#navi-menu-input:checked ~ #navi-menu-content li:nth-child(7) { transition-delay: 0.7s !important; }
#navi-menu-input:checked ~ #navi-menu-content li:nth-child(8) { transition-delay: 0.8s !important; }

/* メニュー項目（文字）の装飾 */
#navi-menu-content li a {
    color: #fff !important;
    font-size: 18px !important;
    font-family: "Shippori Mincho", serif;
    letter-spacing: 0.1em;
    padding: 20px 0 !important;
    display: block;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    text-align: left !important;
}

/* サブメニューの設定（前回と同じ） */
#navi-menu-content ul.sub-menu {
    display: none !important;
    margin: 10px 0 0 15px !important;
    width: 100% !important;
    background: transparent !important;
}
#navi-menu-content li:hover > ul.sub-menu,
#navi-menu-content li:focus-within > ul.sub-menu {
    display: block !important;
}

/* 閉じるボタン */
.menu-close-button {
    color: #fff !important;
    font-size: 35px !important;
    position: absolute !important;
    top: 30px !important;
    right: 30px !important;
    z-index: 1000000 !important;
}
