* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
body {
    font-family: Arial, sans-serif;
    line-height: 1.6;
    background: url(../images/bg-img.jpg);
}

/* --- ヘッダー・画像エリア --- */
.hero {
    width: 100%;
    max-width: 1920px; 
    margin: 0 auto;
    overflow: hidden;
    position: relative; /* タイトルを重ねる基準 */
}

.hero-img {
    width: 100%;
    height: auto; /* 画像の比率を維持して絶対に切り落とさない */
    display: block;
}

.hero-title {
    position: absolute;
    top: 20px;
    left: 50%;
    transform: translateX(-50%);
    width: 90%; /* スマホで文字がはみ出ないよう調整 */
    text-align: center;
}
.hero-title h1 {
    font-size: 1.5rem;
    color: white;
    font-weight: normal;
    text-shadow: 1px 1px 4px rgba(0,0,0,0.6); /* 文字を見やすく */
}

/* --- コンテンツエリア --- */
.message-section, .job-details {
    width: 85%; /* PCでは少し余裕を持たせる */
    max-width: 1000px;
    margin: 50px auto;
    text-align: center;
}

.message-section h2 {
    font-size: 2.5rem;
    margin-bottom: 20px;
}
.message-section p {
    font-size: 1.2rem;
}

/* 募集要項のテーブル */
.job-table {
    width: 100%;
    border-collapse: collapse;
}
.job-table th, .job-table td {
    border: 1px solid #ddd;
    padding: 15px;
    text-align: left;
}
.job-table th {
    background-color: #f4f4f4;
}

/* --- 待遇タグ --- */
.f-temp-treatment .tagList {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    list-style: none;
}
.f-temp-treatment .tagList .item {
    width: calc(100% / 4 - 6px);
    height: 48px;
    border: 1px solid #999;
    margin: 3px;
    text-align: center;
    background-color: #c3bb8f;
    line-height: 45px;
    font-size: 0.8em;
    color: #fff;
}

/* --- 店舗一覧（グリッド） --- */
/* --- 店舗一覧（グリッド） --- */
.page-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px;
}
.menu-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 30px;
}

.menu-item {
    background-color: white;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 5px 15px rgba(0,0,0,0.1);
    
    /* 1. 12pxのパディングを追加 */
    padding: 12px; 
    
    /* 2. アニメーションを滑らかにする設定 */
    transition: transform 0.3s ease, box-shadow 0.3s ease, background-color 0.2s ease;
    cursor: pointer;
}

.menu-item img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    /* パディングの内側で画像のカドも少し丸くすると綺麗に見えます */
    border-radius: 6px; 
}

/* 3. マウスホバー（PC）とタップ時（スマホ）の動き */
@media (hover: hover) {
    /* PCでのマウスホバー：上に浮き上がる */
    .menu-item:hover {
        transform: translateY(-8px);
        box-shadow: 0 12px 25px rgba(0,0,0,0.15);
    }
}

/* スマホ等で指が触れた瞬間（アクティブ状態）の動き */
.menu-item:active {
    transform: scale(0.97); /* わずかに沈む（ボタンを押したような感覚） */
    background-color: #f8f8f8; /* 軽く色を変えて反応を強調 */
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

/* --- スマホ・タブレット用設定（切り替わりを 768px に統一） --- */
@media (max-width: 768px) {
    /* 1. コンテンツの横の隙間をなくす */
    .message-section, .job-details {
        width: 94%; 
        margin: 30px auto;
    }

    /* 2. 文字サイズ調整 */
    .message-section h2 {
        font-size: 1.8rem;
    }
    .job-details h2 {
        font-size: 1.3rem;
    }

    /* 3. 待遇タグを2列にして見やすくする */
    .f-temp-treatment .tagList .item {
        width: calc(100% / 2 - 6px);
    }

    /* 4. テーブルの余白を詰める */
    .job-table th, .job-table td {
        padding: 10px 8px;
        font-size: 0.9rem;
    }

    /* 5. グリッドを1列に */
    .menu-grid {
        grid-template-columns: 1fr;
    }

    /* 6. スマホ専用改行 */
    .br-sp {
        display: block;
    }
}

.apply-section {
    width: 100%;
    text-align: center;
    margin: 50px 0;
}
.apply-button {
    display: inline-block;
    background-color: #06c755;
    color: white;
    font-size: 1.5rem;
    padding: 15px 30px;
    border-radius: 5px;
    text-decoration: none;
}
.footer {
    width: 100%;
    background-color: #d3d3d3;
    text-align: center;
    padding: 15px 0;
    margin-top: 50px;
}