/*
Theme Name: ケアプランセンターあき 採用サイト
Theme URI: https://aki-recruit.jp
Author: Invision Inc.
Description: ケアプランセンターあき 採用サイト用WordPressテーマ
Version: 2.7.29
License: GNU General Public License v2 or later
Text Domain: aki-recruit
*/

/* ===================================
   Utility: レスポンシブ改行制御
   SP のみ改行: <br class="sp-br">
   PC のみ改行: <br class="pc-br">
=================================== */
br.sp-br { display: none; }  /* SP では inline で表示（768px ブロック内で上書き） */
br.pc-br { display: inline; } /* PC では改行あり */

/* ===================================
   Reset & Base
=================================== */
*, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    font-size: 16px;
    scroll-behavior: smooth;
}

body {
    font-family: 'Zen Maru Gothic', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif;
    font-size: 15px;
    line-height: 1.8;
    color: #5a4a3f;
    background-color: #fffae8;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

a {
    text-decoration: none;
    color: inherit;
    transition: opacity 0.3s ease;
}

a:hover {
    opacity: 0.8;
}

ul, ol {
    list-style: none;
}

/* ===================================
   CSS Variables
=================================== */
:root {
    --color-yellow: #fcca15;
    --color-yellow-light: #fffef0;
    --color-yellow-bg: #fffae8;
    --color-green: #a0bf3a;
    --color-green-dark: #a0bf3a;
    --color-green-btn: #a0bf3a;
    --color-dark: #5a4a3f;
    --color-gray: #888888;
    --color-gray-light: #f5f5f0;
    --color-white: #ffffff;
    --color-border: #ddd;
    --max-width: 1200px;
    --header-height: 100px;
    --font-main: 'Zen Maru Gothic', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif;
}

/* ===================================
   Layout
=================================== */
/* ===================================
   Header
=================================== */
#site-header {
    background-color: #fff;
    position: sticky;
    top: 0;
    z-index: 1000;
    width: 100%;
    height: 100px;
}

.header-inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 70px;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

/* ロゴ */
.header-logo a {
    display: block;
    text-decoration: none;
    color: #5a4a3f;
}

.header-tagline {
    display: block;
    font-size: 12px;
    font-weight: 500;
    color: #5a4a3f;
    padding-left: 54px; /* Figma: left:124 - left:70 = 54px */
    line-height: 1.4;
    margin-bottom: 2px;
}

.header-name-wrap {
    display: flex;
    align-items: flex-end;
    gap: 10px;
}

.header-site-name {
    font-size: 32px;
    font-weight: 500;
    color: #5a4a3f;
    line-height: 1.2;
}

.header-site-sub {
    font-size: 16px;
    font-weight: 500;
    color: #5a4a3f;
    margin-bottom: 3px;
}

/* 右側: 電話＋CTAボタン */
.header-right {
    display: flex;
    align-items: center;
    gap: 17px;
}

/* 電話ボックス: w:247 h:57 border 1px #a0bf3a */
.header-tel-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 247px;
    height: 57px;
    border: 1px solid #a0bf3a;
    border-radius: 5px;
    text-decoration: none;
    padding: 5px 10px;
    gap: 3px;
}

.header-tel-row {
    display: flex;
    align-items: center;
    gap: 6px;
}

.header-tel-icon {
    width: 18px;
    height: 19px;
    flex-shrink: 0;
}

.header-tel-num {
    font-size: 24px;
    font-weight: 500;
    color: #a0bf3a;
    line-height: 1;
}

.header-tel-hours {
    font-size: 12px;
    font-weight: 500;
    color: #a0bf3a;
    text-align: center;
    line-height: 1.3;
}

/* CTAボタン: w:247 h:57 bg #a0bf3a */
.header-cta-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 247px;
    height: 57px;
    background: #a0bf3a;
    border: 1px solid #fff;
    border-radius: 5px;
    gap: 9px;
    color: #fff;
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
    transition: opacity 0.2s;
    white-space: nowrap;
}

.header-cta-btn:hover {
    opacity: 0.85;
    color: #fff;
}

.header-mail-icon {
    width: 19px;
    height: 14px;
    flex-shrink: 0;
}

/* ===================================
   Navigation
=================================== */

/* Hamburger Menu */
.hamburger-btn {
    display: none;
    background: none;
    border: none;
    cursor: pointer;
    padding: 10px;
    flex-direction: column;
    gap: 5px;
}

.hamburger-btn span {
    display: block;
    width: 25px;
    height: 3px;
    background: var(--color-dark);
    transition: all 0.3s ease;
    border-radius: 2px;
}

.mobile-nav {
    display: none;
    background-color: var(--color-yellow);
    position: fixed;
    top: 0;
    right: -100%;
    width: 80%;
    max-width: 300px;
    height: 100vh;
    z-index: 2000;
    transition: right 0.3s ease;
    padding: 60px 0 20px;
    overflow-y: auto;
}

.mobile-nav.open {
    right: 0;
}

.mobile-nav ul li a {
    display: block;
    padding: 16px 24px;
    color: #fff;
    font-weight: 700;
    font-size: 15px;
    border-bottom: 1px solid rgba(255,255,255,0.3);
}

.mobile-nav-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.5);
    z-index: 1999;
}

.mobile-nav-overlay.open {
    display: block;
}

.mobile-nav-close {
    position: absolute;
    top: 16px;
    right: 16px;
    background: none;
    border: none;
    font-size: 28px;
    color: #fff;
    cursor: pointer;
    line-height: 1;
}

.mobile-nav-contact {
    padding: 20px 24px;
    border-top: 1px solid rgba(255,255,255,0.3);
    margin-top: 16px;
}

.mobile-tel {
    display: block;
    color: #fff;
    font-size: 22px;
    font-weight: 700;
    margin-bottom: 6px;
}

.mobile-tel-hours {
    color: rgba(255,255,255,0.8);
    font-size: 11px;
    margin-bottom: 16px;
}

.mobile-cta-btn {
    display: block;
    background: #fff;
    color: var(--color-green);
    padding: 12px;
    text-align: center;
    font-weight: 700;
    border-radius: 4px;
    font-size: 14px;
}

/* ===================================
   MV (Main Visual)
=================================== */

.mv-section {
    position: relative;
    background-color: #fff;
}

/* Blob エリア：Figma 比率に合わせたパディング（1440px 基準: left=124px, right=63px, top/bottom=59px） */
.mv-blob-container {
    max-width: 1440px;
    margin: 0 auto;
    padding: 59px 63px 59px 124px;
}

/* Blob 本体：画像がマスク済みのため clip-path 不要 */
.mv-blob {
    position: relative;
    width: 100%;
    aspect-ratio: 1253 / 819;
}

/* スライド共通 */
.mv-slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    animation: mv-crossfade 16s ease-in-out infinite;
}

.mv-slide-1 { animation-delay: -1s; }
.mv-slide-2 { animation-delay:  3s; }
.mv-slide-3 { animation-delay:  7s; }
.mv-slide-4 { animation-delay:  11s; }

.mv-slide img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

@keyframes mv-crossfade {
    0%      { opacity: 0; }
    6.25%   { opacity: 1; } /* 1秒でフェードイン */
    25%     { opacity: 1; } /* 3秒表示キープ */
    31.25%  { opacity: 0; } /* 1秒でフェードアウト */
    100%    { opacity: 0; }
}

/* 下部ナビバー */
.mv-nav-bar {
    background-color: #fcca15;
    height: 100px;
}

.mv-nav-inner {
    max-width: 1440px;
    height: 100%;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
}

.mv-nav-item {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 200px;
    height: 100%;
    font-family: 'Zen Maru Gothic', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif;
    font-size: 18px;
    font-weight: 500;
    color: #fff;
    text-decoration: none;
    border-right: 2px solid rgba(255, 255, 255, 0.7);
    transition: background-color 0.2s ease;
    flex-shrink: 0;
}

.mv-nav-item:first-child {
    border-left: 2px solid rgba(255, 255, 255, 0.7);
}

.mv-nav-item:hover,
.mv-nav-item.is-current {
    background-color: rgba(255, 255, 255, 0.2);
    opacity: 1;
}

/* ===================================
   Breadcrumb
=================================== */
.breadcrumb {
    background-color: var(--color-gray-light);
    padding: 12px 20px;
    font-size: 12px;
    color: #666;
}

.breadcrumb-list {
    max-width: var(--max-width);
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.breadcrumb-list li::after {
    content: ">";
    margin-left: 8px;
    color: #999;
}

.breadcrumb-list li:last-child::after {
    display: none;
}

.breadcrumb-list a {
    color: var(--color-green);
}

/* ===================================
   Representative Message
=================================== */
.rep-message {
    background-color: var(--color-yellow-bg);
}

.rep-message-inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 80px 120px 80px;
}

.rep-card {
    background: #fff;
    border-radius: 60px;
    padding: 57px 60px;
    display: flex;
    gap: 80px;
    align-items: flex-start;
}

.rep-card-photo {
    flex: 0 0 300px;
    height: 350px;
    border-radius: 20px;
    overflow: hidden;
    align-self: flex-start;
}

.rep-card-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rep-card-content {
    flex: 1;
    padding-top: 20px;
}

.rep-card-title {
    font-size: 32px;
    font-weight: 700;
    color: #a0bf3a;
    margin-bottom: 40px;
    line-height: 1.4;
}

.rep-card-text {
    font-size: 24px;
    line-height: 1.8;
    color: #5a4a3f;
    margin-bottom: 0;
}

.rep-card-btn-wrap {
    margin-top: 40px;
    text-align: right;
}

/* .rep-card-btn は .btn-more と共通スタイル。位置調整のみここで定義 */
.rep-card-btn {
    display: inline-block;
    width: auto;
    margin: 0;
}

.rep-card-name {
    font-size: 24px;
    font-weight: 500;
    color: #5a4a3f;
    text-align: right;
    margin-top: 40px;
}

.rep-banner {
    width: 100%;
    /* height: 288px; */
    overflow: hidden;
}

.rep-banner img {
    width: 100%;
    /* height: 100%; */
    object-fit: cover;
}

/* ===================================
   Information / News
=================================== */
.info-section {
    padding: 80px 0;
    background: var(--color-yellow-bg);
}

.info-inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 120px;
}

.info-title {
    font-size: 36px;
    font-weight: 700;
    color: #a0bf3a;
    margin-bottom: 30px;
}

.info-tabs {
    display: flex;
    gap: 10px;
    margin-bottom: 20px;
    flex-wrap: wrap;
}

.info-tab {
    padding: 8px 24px;
    border: 1px solid var(--color-dark);
    border-radius: 5px;
    font-size: 18px;
    font-weight: 500;
    color: var(--color-dark);
    cursor: pointer;
    transition: all 0.2s ease;
    background: #fff;
}

.info-tab.active,
.info-tab:hover {
    background-color: var(--color-green);
    border-color: var(--color-green);
    color: #fff;
    opacity: 1;
}

.info-list {
    border-top: 1px solid var(--color-border);
}

.info-item {
    display: flex;
    align-items: center;
    padding: 18px 16px;
    border-bottom: 1px solid var(--color-border);
    gap: 16px;
    transition: background-color 0.2s;
}

.info-item:hover {
    background-color: var(--color-yellow-bg);
}

.info-date {
    font-size: 14px;
    color: #666;
    white-space: nowrap;
    min-width: 100px;
}

.info-cat {
    display: inline-block;
    padding: 1px 12px;
    border: 1px solid #5a4a3f;
    border-radius: 3px;
    font-size: 12px;
    color: #5a4a3f;
    white-space: nowrap;
    min-width: 70px;
    text-align: center;
    background: #fff;
}

.info-item-title {
    font-size: 15px;
    color: #333;
    flex: 1;
}

.info-item-title a:hover {
    color: var(--color-green);
    opacity: 1;
}

.btn-more {
    display: block;
    width: 100%;
    max-width: 320px;
    margin: 30px auto 0;
    padding: 16px 24px;
    background-color: var(--color-yellow);
    border: 1px solid var(--color-yellow);
    border-radius: 5px;
    text-align: center;
    font-size: 18px;
    font-weight: 500;
    color: #fff;
    transition: all 0.2s ease;
}

.btn-more:hover {
    opacity: 0.85;
    color: #fff;
}

/* ===================================
   Numbers Section (数字で見る)
=================================== */
.numbers-section {
    background-color: var(--color-yellow-bg);
    padding: 80px 0;
}

.numbers-inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 120px;
}

.numbers-title {
    font-size: 40px;
    font-weight: 700;
    color: #a0bf3a;
    line-height: 1.4;
    margin-bottom: 76px;
}

.numbers-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 37px 100px;
}

/* ── カード共通 ── */
.number-card {
    container-type: inline-size; /* cqw の基準: カード幅 */
    position: relative;
    width: 100%;
    aspect-ratio: 11 / 6; /* 550/300 = 1440px 時の比率 */
    max-height: 300px;    /* 1-col 時に縦に伸びすぎ防止 */
    border-radius: 30px;
    overflow: hidden;
    background: #fff; /* 画像読み込み前のフォールバック */
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

/* ── カード別背景画像 ── */
.nc1 { background-image: url('assets/images/top/numbers-card1-bg.png'); }
.nc2 { background-image: url('assets/images/top/numbers-card2-bg.png'); }
.nc3 { background-image: url('assets/images/top/numbers-card3-bg.png'); }
.nc4 { background-image: url('assets/images/top/numbers-card4-bg.png'); }

/* 人物写真ラッパー: 1画像に1人なので object-fit: cover で素直に表示 */
.nc-photo {
    overflow: hidden;
    flex-shrink: 0;
}
.nc-photo img {
    /* width: 100%;*/
    height: 100%;
    object-fit: cover;
    object-position: center center;
    display: block;
    max-width: none;
}

/* ラベル・数値・バッジ・比率: flex フローの通常要素 */
.nc-label {
    font-size: 5.82cqw; /* 32px ÷ 550 */
    font-weight: 700;
    color: #5a4a3f;
    white-space: nowrap;
    margin: 0;
    line-height: 1;
}
.nc-value {
    font-size: 7.27cqw; /* 40px ÷ 550 */
    font-weight: 700;
    color: #a0bf3a;
    margin: 0;
    line-height: 1;
    white-space: nowrap; /* 「60万円」「440万円」が改行しないように */
}
.nc-big {
    font-size: 23.27cqw; /* 128px ÷ 550 */
    font-weight: 700;
    color: #a0bf3a;
    line-height: 1;
    vertical-align: baseline;
}
.nc-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 27.45cqw; /* 151px ÷ 550 */
    height: 5.09cqw; /* 28px ÷ 550 */
    background: #a0bf3a;
    color: #fff;
    font-size: 2.91cqw; /* 16px ÷ 550 */
    font-weight: 700;
    border-radius: 5px;
    flex-shrink: 0;
}
.nc-ratio {
    font-size: 14.55cqw; /* 80px ÷ 550 */
    font-weight: 700;
    color: #a0bf3a;
    line-height: 1;
    letter-spacing: 4.22cqw; /* 23.2px ÷ 550 */
    margin: 0;
}
.nc-gm, .nc-gf { font-size: 2.55cqw; font-weight: 700; } /* 14px ÷ 550 */
.nc-gm { color: #3aa9bf; }
.nc-gf { color: #da93e1; }

/* ── Card 1: 職員の平均年齢 ── */
.nc1-body {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: flex-start;
    height: 100%;
    padding: 8.36cqw 0 0 11.09cqw; /* 46÷550, 61÷550 */
}
.nc1 .nc-photo {
    width: 30cqw;   /* 165px ÷ 550 */
    height: 46.18cqw; /* 254px ÷ 550 */
}
.nc1 .nc-photo img { object-position: center bottom; transform: scale(1); transform-origin: bottom center; } // scale1.2から変更
.nc1-text {
    margin-left: 5.82cqw; /* 32px ÷ 550 */
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 3.64cqw; /* 20px ÷ 550 */
}
.nc1 .nc-label { margin-bottom: 0.36cqw; } /* 2px ÷ 550 */
.nc1 .nc-value { margin-left: 6.36cqw; } /* 35px ÷ 550 */

/* ── Card 2: 職員男女比 ── */
.nc2-body {
    position: relative;
    z-index: 1;
    display: flex;
    height: 100%;
    gap: 5.45cqw; /* 30px ÷ 550 */
}
/* 左カラム：正社員・パートの2グループ（カード縦中央配置） */
.nc2-left {
    display: flex;
    flex-direction: column;
    justify-content: center; /* 縦中央 */
    gap: 3.64cqw; /* 20px ÷ 550 */
    flex-shrink: 0;
    padding-left: 16.36cqw; /* 90px ÷ 550 */
}
.nc2-group {
    display: flex;
    flex-direction: column;
}
.nc2-group .nc-ratio { margin-top: -2.18cqw; } /* -12px ÷ 550 */
.nc2-gender {
    display: flex;
}
.nc2-gender .nc-gm {
    width: 19.64cqw; /* 108px ÷ 550 — 「女性」が「4」の下に来るよう幅を固定 */
}
/* 右カラム：タイトル + 写真 */
.nc2-right {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding-top: 4.55cqw; /* 25px ÷ 550 */
}
.nc2 .nc-label { margin-bottom: 3.82cqw; } /* 21px ÷ 550 */
.nc2 .nc-photo {
    width: 28.73cqw;  /* 158px ÷ 550 */
    height: 40.55cqw; /* 223px ÷ 550 */
}

/* ── Card 3: 平均賞与額 ── */
.nc3-body {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: flex-start;
    height: 100%;
    padding: 4.73cqw 6.36cqw 0 13.09cqw; /* 26÷550, 35÷550, 72÷550 */
}
.nc3-text {
    flex: 1;
    margin-top: 5.64cqw; /* 31px ÷ 550 */
    display: flex;
    flex-direction: column;
    gap: 3.64cqw; /* 20px ÷ 550 */
    position: relative;
    z-index: 1;
}
.nc3 .nc-label { margin-bottom: -1.09cqw; } /* -6px ÷ 550 */
.nc3 .nc-photo {
    position: absolute;
    right: 5cqw;      /* 左にオフセット */
    bottom: 0;
    width: 45.64cqw;  /* 251px ÷ 550 */
    height: 49.82cqw; /* 274px ÷ 550 */
    transform: scaleX(-1); /* 左右反転 */
    z-index: 2;
}
.nc3 .nc-photo img { object-fit: contain; object-position: center bottom; }

/* ── Card 4: 平均年収額 ── */
.nc4-body {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: flex-start;
    height: 100%;
    padding: 7.82cqw 0 0 7.45cqw; /* 43÷550, 41÷550 */
}
.nc4 .nc-photo {
    width: 33.09cqw;  /* 182px ÷ 550 */
    height: 46.91cqw; /* 258px ÷ 550 */
}
.nc4-text {
    margin-left: 4cqw;  /* 22px ÷ 550 */
    margin-top: 4.18cqw; /* 23px ÷ 550 */
    display: flex;
    flex-direction: column;
    gap: 3.64cqw; /* 20px ÷ 550 */
}
.nc4 .nc-label { margin-bottom: -1.09cqw; } /* -6px ÷ 550 */

/* ===================================
   Who Can Work Here (活躍できるのはこんな人)
=================================== */
.work-section {
    padding: 80px 0;
    background-color: var(--color-yellow-bg);
}

.work-inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 120px;
}

.work-title {
    font-size: 40px;
    font-weight: 700;
    color: #a0bf3a;
    margin-bottom: 70px;
}

/* 各行：イラスト＋テキストの2カラム（HTML順序で左右を制御） */
.work-row {
    display: flex;
    align-items: center;
    margin-bottom: -70px; /* Figmaの行間オーバーラップ再現 */
    position: relative;
}

.work-row:last-child {
    margin-bottom: 0;
}

/* イラストラッパー: 幅を比例化・アスペクト比で高さを自動計算 */
.work-illust-wrap {
    position: relative;
    flex: 0 0 35.92%; /* 431/1200 */
    aspect-ratio: 1 / 1;
    height: auto;
}

/* blob: wrap幅に対して比例化 */
.work-blob {
    position: absolute;
    width: 67.28%;       /* 290/431 */
    height: auto;
    aspect-ratio: 290 / 268;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    pointer-events: none;
}

.work-illust {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
}

/* テキストエリア */
.work-text {
    flex: 1;
    padding: 0 60px;
}


.work-item-title {
    font-size: 32px;
    font-weight: 700;
    color: #5a4a3f;
    margin-bottom: 40px;
}

.work-item-body {
    font-size: 24px;
    font-weight: 500;
    color: #5a4a3f;
    line-height: 1.8;
}

/* ===================================
   Facilities (施設)
=================================== */
.facilities-section {
    background-color: var(--color-yellow-bg);
    padding: 80px 0;
}

.facilities-inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 120px;
}

.facilities-title {
    font-size: 40px;
    font-weight: 700;
    color: #a0bf3a;
    margin-bottom: 58px;
}

/* 上段（2施設）・下段（3施設）共通 */
.facilities-row {
    display: grid;
    grid-template-columns: repeat(3, 320px);
    justify-content: center;
    gap: 87px;
}

.facilities-row--top {
    margin-bottom: 40px;
}

/* 各施設アイテム */
.facility-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 22px;
}

/* 円形画像 */
.facility-img {
    width: 237px;
    height: 237px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
}

.facility-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.facility-name {
    font-size: 24px;
    font-weight: 700;
    color: #5a4a3f;
    text-align: center;
    line-height: 1.4;
    margin: 0;
}

.facility-type {
    font-size: 24px;
    font-weight: 500;
    color: #5a4a3f;
    text-align: center;
    margin: -16px 0 0;
    line-height: 1.4;
}

/* ===================================
   Sincere Interview (まごころ面接)
=================================== */
.interview-section {
    background-color: var(--color-yellow-bg);
    padding: 80px 0;
}

.interview-inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 120px;
}

/* カード: flex横並び */
.interview-card {
    background: #fff;
    border-radius: 60px;
    position: relative;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 4.73%; /* 写真右端〜テキスト左端の間隔 */
    padding: 40px 6.75%;
}

/* 写真ラッパー */
.interview-illust-wrap {
    flex-shrink: 0;
    width: 41.67%; /* 500/1200 */
    aspect-ratio: 500 / 356;
    overflow: hidden;
    border-radius: 20px;
    z-index: 1;
}

/* 写真 */
.interview-illust {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* テキストエリア */
.interview-body {
    flex: 1;
    position: relative;
    z-index: 1;
}

/* タイトル */
.interview-title {
    font-size: 32px;
    font-weight: 700;
    color: #5a4a3f;
    line-height: 1.4;
    margin: 0 0 16px 0;
}

/* 本文 */
.interview-text {
    font-size: 24px;
    font-weight: 500;
    line-height: 1.8;
    color: #5a4a3f;
    margin: 0;
}

/* ===================================
   FAQ (よくある質問)
=================================== */
.faq-section {
    background-color: var(--color-yellow-bg);
    padding: 80px 0;
}

.faq-inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 120px;
}

/* タイトル: 左寄せ、緑、40px */
.faq-section-title {
    font-size: 40px;
    font-weight: 700;
    color: #a0bf3a;
    margin: 0 0 40px;
    line-height: 1.3;
}

.faq-list {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* カード: white, border-radius 30px, 影なし */
.faq-item {
    background: #fff;
    border-radius: 30px;
}

/* Q行 */
.faq-question {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 43px 60px 15px;
}

/* Qバッジ: 緑塗り 38×38px */
.faq-badge {
    flex-shrink: 0;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    font-weight: 500;
    line-height: 1;
}

.faq-badge-q {
    background-color: #a0bf3a;
    color: #fff;
}

/* Aバッジ: 白塗り+緑ボーダー */
.faq-badge-a {
    background-color: #fff;
    border: 1px solid #a0bf3a;
    color: #a0bf3a;
}

/* Q テキスト: 24px */
.faq-q-text {
    flex: 1;
    font-size: 24px;
    font-weight: 500;
    color: #5a4a3f;
    line-height: 1.5;
}

/* A行 */
.faq-answer {
    display: flex;
    align-items: flex-start;
    gap: 18px;
    padding: 0 60px 43px;
}

/* A テキスト: 20px */
.faq-a-text {
    flex: 1;
    font-size: 20px;
    font-weight: 500;
    color: #5a4a3f;
    line-height: 1.8;
    margin: 0;
    padding-top: 6px; /* バッジとベースライン合わせ */
}

/* ===================================
   CTA Section (採用募集・見学随時受付中)
=================================== */
.cta-section {
    background-color: var(--color-yellow-bg);
    padding: 80px 0;
}

.cta-inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 120px;
}

/* カード: white, border 1px #a0bf3a, border-radius 30px */
.cta-card {
    background: #fff;
    border: 1px solid #a0bf3a;
    border-radius: 30px;
    overflow: hidden;
}

/* 緑ヘッダーバー: h:86px, bg #a0bf3a */
.cta-card-header {
    height: 86px;
    background-color: #a0bf3a;
    display: flex;
    align-items: center;
    justify-content: center;
}

.cta-title {
    font-size: 32px;
    font-weight: 500;
    color: #fff;
    margin: 0;
}

/* 本体: 2カラム、高さ 435-86=349px */
.cta-card-body {
    display: flex;
    align-items: center;
    height: 349px;
    padding: 0 9.75% 0 11.67%; /* 117/1200 と 140/1200 */
}

/* 左カラム: w:361px */
.cta-col {
    display: flex;
    flex-direction: column;
    gap: 20px;
    min-width: 0;
}

.cta-col:first-child {
    flex: 0 1 361px; /* shrink 許可 */
    margin-right: 8.25%; /* 99/1200 */
}

.cta-col:last-child {
    flex: 0 1 402px; /* shrink 許可 */
}

/* 縦区切り線 */
.cta-divider {
    flex-shrink: 0;
    width: 1px;
    height: 252px;
    background-color: #a0bf3a;
    margin-right: 6.75%; /* 81/1200 */
}

/* カラムラベル */
.cta-col-label {
    font-size: 24px;
    font-weight: 500;
    color: #5a4a3f;
    margin: 0;
    line-height: 1.4;
}

/* 電話ボックス: border 1px #5a4a3f, border-radius 5px, h:61px */
.cta-tel-box {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    height: 61px;
    border: 1px solid #5a4a3f;
    border-radius: 5px;
    color: #5a4a3f;
    text-decoration: none;
    transition: opacity 0.2s;
}

.cta-tel-box:hover {
    opacity: 0.75;
    color: #5a4a3f;
}

.cta-tel-icon {
    width: 27px;
    height: 29px;
    flex-shrink: 0;
}

.cta-tel-num {
    font-size: 36px;
    font-weight: 500;
    letter-spacing: 3.6px;
    white-space: nowrap;
}

/* 受付時間バッジ行 */
.cta-hours {
    display: flex;
    align-items: center;
    gap: 23px;
}

.cta-hours-badge {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 90px;
    height: 28px;
    background-color: #a0bf3a;
    color: #fff;
    font-size: 16px;
    font-weight: 500;
    border-radius: 5px;
}

.cta-hours-main {
    font-size: 20px;
    font-weight: 500;
    color: #5a4a3f;
}

.cta-hours-sub {
    font-size: 16px;
    font-weight: 500;
    color: #5a4a3f;
}

/* 右カラム ボタン: bg #5a4a3f, border-radius 5px, h:61px */
.cta-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    height: 61px;
    background-color: #5a4a3f;
    color: #fff;
    font-size: 24px;
    font-weight: 500;
    border-radius: 5px;
    text-decoration: none;
    transition: opacity 0.2s;
}

.cta-btn:hover {
    opacity: 0.8;
    color: #fff;
}

.cta-mail-icon {
    width: 26px;
    height: 19px;
    flex-shrink: 0;
}

/* ===================================
   Footer
=================================== */
#site-footer {
    background-color: #fff;
    border-top: 10px solid #fcca15;
}

/* 3カラムレイアウト本体 */
.footer-body {
    max-width: 1440px;
    margin: 0 auto;
    padding: 40px 60px 50px;
    display: flex;
    align-items: flex-start;
    gap: 0;
}

/* 左：ロゴ・住所・Instagram・ナビ */
.footer-col-info {
    flex: 0 0 480px;
}

/* ロゴ */
.footer-logo-wrap {
    margin-bottom: 24px;
}

.footer-tagline {
    display: block;
    font-size: 12px;
    font-weight: 500;
    color: #5a4a3f;
    padding-left: 54px; /* Figma: left:114 - left:60 = 54px */
    margin-bottom: 4px;
    line-height: 1.4;
}

.footer-site-name {
    display: block;
    font-size: 32px;
    font-weight: 500;
    color: #5a4a3f;
    line-height: 1.2;
}

/* 住所 */
.footer-address {
    font-size: 18px;
    font-weight: 500;
    color: #5a4a3f;
    line-height: 1.8;
    font-style: normal;
    margin-bottom: 24px;
}

.footer-address a {
    color: #5a4a3f;
}

/* Instagram */
.footer-sns {
    margin-bottom: 32px;
}

.footer-sns-link {
    display: inline-flex;
    color: #5a4a3f;
    transition: opacity 0.2s;
}

.footer-sns-link:hover {
    opacity: 0.7;
}

/* ナビゲーション（2カラム） */
.footer-nav {
    display: flex;
    gap: 50px;
}

.footer-nav-col {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.footer-nav-col li a {
    font-size: 16px;
    font-weight: 500;
    color: #5a4a3f;
    text-decoration: none;
    transition: opacity 0.2s;
}

.footer-nav-col li a:hover {
    opacity: 0.7;
}

/* 中：バナー */
.footer-col-banners {
    flex: 0 0 300px;
    margin-left: 65px;
    padding-top: 72px;
    display: flex;
    flex-direction: column;
    gap: 22px;
}

.footer-banner-link {
    display: block;
    transition: opacity 0.2s;
}

.footer-banner-link:hover {
    opacity: 0.85;
}

.footer-banner-link img {
    width: 300px;
    height: 80px;
    display: block;
}

/* 右：地図 */
.footer-col-map {
    flex: 1;
    margin-left: 85px;
    padding-top: 65px;
}

.footer-col-map iframe {
    display: block;
    width: 100%;
    border: 0;
}

/* コピーライト */
.footer-bottom {
    padding: 20px;
    text-align: center;
}

.footer-bottom p {
    font-size: 16px;
    font-weight: 500;
    color: #5a4a3f;
}

/* ===================================
   Page: あきとは (About)
=================================== */
/* ===================================
   Page: あきとは (About)
   Figma node: 74:46
=================================== */
.about-section {
    background: #fffae8;
    padding: 80px 0 100px;
}

.about-inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 120px;
}

.about-page-title {
    font-size: 40px;
    font-weight: 700;
    color: #a0bf3a;
    margin-bottom: 58px;
    line-height: 1;
}

/* ── 各コンテンツブロック ── */
.about-block {
    display: flex;
    gap: 70px;
    align-items: center;
    margin-bottom: 100px;
}

.about-block:last-child {
    margin-bottom: 0;
}

/* ── 画像エリア（緑blobs＋マスク済み写真） ── */
.about-img-wrap {
    position: relative;
    width: 540px;
    height: 342px;
    flex-shrink: 0;
}

/* 緑blob：写真の後ろに 31px右・18px下にずれて表示 */
.about-blob-bg {
    position: absolute;
    left: 31px;
    top: 18px;
    width: 507px;
    height: 324px;
    pointer-events: none;
    user-select: none;
}

/* 写真コンテナ：blobマスクでクリップ（mask-image URL は PHP テンプレートのインラインスタイルで指定） */
.about-photo-box {
    position: absolute;
    left: 0;
    top: 0;
    width: 507px;
    height: 324px;
    overflow: hidden;
}

.about-photo-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* ── テキストエリア ── */
.about-block-text {
    width: 628px;
    flex-shrink: 0;
}

.about-block-title {
    font-size: 32px;
    font-weight: 700;
    color: #5a4a3f;
    margin-bottom: 40px;
    line-height: 1.3;
}

.about-block-body {
    font-size: 24px;
    font-weight: 500;
    color: #5a4a3f;
    line-height: 1.75;
}

.about-block-body p {
    margin-bottom: 0;
}

/* ===================================
   Page: 各施設紹介 (Facilities)
   Figma: node 74:378
=================================== */
.fac-section {
    background: #fffae8;
    padding: 80px 0 100px;
}

.fac-inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 120px;
}

.fac-page-title {
    font-size: 40px;
    font-weight: 700;
    color: #a0bf3a;
    margin-bottom: 58px;
    line-height: 1;
}

/* ---- block wrapper ---- */
.fac-block {
    position: relative;
    padding-top: 37px;   /* badge (≈44px) starts above card */
    margin-bottom: 50px;
}

.fac-block:last-child { margin-bottom: 0; }

/* ---- green badge (Figma: w:587px, left:154px page = 34px from card) ---- */
.fac-badge {
    position: absolute;
    top: 0;
    left: 34px;
    background: #a0bf3a;
    color: #fff;
    font-size: 24px;
    font-weight: 700;
    border-radius: 10px;
    padding: 10px 20px;
    z-index: 2;
    width: 587px;            /* fixed width — same on all cards */
    display: flex;
    align-items: center;
    justify-content: center;
}

/* ---- white card: flex横並び、右列を縦中央揃え ---- */
.fac-card {
    background: #fff;
    border-radius: 30px;
    border: 1px solid #a0bf3a;
    padding: 40px 56px 40px 34px;  /* top right bottom left */
    display: flex;
    align-items: flex-end; /* 左列・右列を下揃え */
    gap: 60px;
}

/* ---- left: detail rows (max-width 665px) ---- */
.fac-card-left {
    flex: 1;
    min-width: 0;
}

.fac-row {
    display: flex;
    gap: 40px;
    align-items: center;
    padding: 15px 20px;
    border-bottom: 1px dashed #000;
    font-size: 20px;
    color: #4d2d1b;
    max-width: 665px;
}

.fac-row-label {
    width: 164px;
    flex-shrink: 0;
    font-weight: 500;
    line-height: 1.4;
}

.fac-row-value {
    flex: 1;
    font-weight: 400;
    line-height: 1.6;
}

/* ---- right column: flex子要素として横並び、縦中央はカードのalign-itemsに委ねる ---- */
.fac-right {
    flex-shrink: 0;
    width: 369px;
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* ---- photo (w:369 h:247 rounded-[30px]) ---- */
.fac-photo {
    width: 369px;
    height: 247px;
    border-radius: 30px;
    overflow: hidden;
    flex-shrink: 0;
}

.fac-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border-radius: 30px;
}

/* ---- button (w:303 h:50 bg:#5a4a3f — centered under photo) ---- */
.fac-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 303px;
    height: 50px;
    margin-top: 20px;
    background: #5a4a3f;
    border-radius: 5px;
    color: #fff;
    font-size: 20px;
    font-weight: 700;
    text-decoration: none;
    flex-shrink: 0;
}

.fac-btn:hover { opacity: 0.85; color: #fff; }

/* ---- responsive: 1200px ---- */
@media (max-width: 1200px) {
    .fac-inner      { padding: 0 40px; }
    .fac-page-title { font-size: 32px; }
    .fac-badge      { font-size: 20px; width: 480px; }
    .fac-card       { gap: 40px; }
    .fac-row        { font-size: 17px; }
    .fac-right      { width: 280px; flex-shrink: 0; }
    .fac-photo      { width: 280px; height: 188px; }
    .fac-btn        { width: 240px; }
}

/* ---- responsive: 900px (縦積み) ---- */
@media (max-width: 900px) {
    .fac-inner          { padding: 0 20px; }
    .fac-page-title     { font-size: 26px; margin-bottom: 40px; }
    .fac-block          { padding-top: 30px; margin-bottom: 40px; }
    .fac-badge          { font-size: 16px; left: 16px; padding: 8px 16px; width: auto; }
    .fac-card           { flex-direction: column; align-items: stretch; gap: 24px; padding: 28px 20px; }
    .fac-right          { width: 100%; max-width: 400px; margin: 0 auto; }
    .fac-photo          { width: 100%; max-width: 400px; height: 220px; }
    .fac-btn            { width: 100%; max-width: 303px; }
    .fac-row            { font-size: 15px; gap: 16px; max-width: 100%; }
    .fac-row-label      { width: 130px; }
}

/* ===================================
   Page: 未経験者の方へ (beg-*)
   Figma: node 80:288
=================================== */

/* === アンカーナビ === */
.beg-anchor-nav {
    background: #fffae8;
    padding: 60px 120px;
}
.beg-anchor-nav-inner {
    max-width: 1440px;
    margin: 0 auto;
    display: flex;
    gap: 40px;
    align-items: center;
    justify-content: center;
}
.beg-anchor-btn {
    display: flex;
    gap: 5px;
    align-items: center;
    text-decoration: none;
    background: none;
    border: none;
    padding: 0;
    font-family: inherit;
    cursor: pointer;
}
.beg-anchor-btn-text {
    font-size: 16px;
    font-weight: 700;
    color: #5a4a3f;
    white-space: nowrap;
    line-height: 1;
}
.beg-anchor-circle {
    width: 17px;
    height: 17px;
    border-radius: 50%;
    border: 1px solid #a0bf3a;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.beg-anchor-circle--yellow { border-color: #fcca15; }
.beg-anchor-circle span {
    font-size: 8px;
    font-weight: 700;
    color: #a0bf3a;
    line-height: 1;
}
.beg-anchor-circle--yellow span { color: #fcca15; }

/* === 下層TOP（イントロ） === */
.beg-intro-section {
    background: #fffae8;
    padding-bottom: 100px;
}
.beg-intro-inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 120px;
}
.beg-intro-card {
    background: #fff;
    border-radius: 60px;
    display: flex;
    align-items: center;
    gap: 66px;
    padding: 60px 80px;
}
.beg-intro-photo {
    width: 348px;
    height: 405px;
    flex-shrink: 0;
    border-radius: 20px;
    overflow: hidden;
}
.beg-intro-photo picture {
    display: block;
    width: 100%;
    height: 100%;
}
.beg-intro-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.beg-intro-text {
    flex: 1;
    min-width: 0;
}
.beg-intro-title {
    font-size: 32px;
    font-weight: 700;
    color: #a0bf3a;
    line-height: 1.2;
    margin-bottom: 40px;
    white-space: nowrap;
}
.beg-intro-body {
    font-size: 24px;
    color: #5a4a3f;
    line-height: 1.8;
    font-weight: 500;
}
.beg-intro-buttons {
    display: flex;
    gap: 80px;
    margin-top: 80px;
    padding-left: 160px;
}
.beg-intro-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 400px;
    height: 80px;
    background: #a0bf3a;
    border: 1px solid #a0bf3a;
    border-radius: 5px;
    color: #fff;
    font-size: 20px;
    font-weight: 500;
    text-decoration: none;
    flex-shrink: 0;
}
.beg-intro-btn:hover { opacity: 0.85; color: #fff; }

/* === ケアプランセンターあきが選ばれる理由 === */
.beg-reasons-section {
    padding: 80px 0 100px;
    overflow: hidden;
}
.beg-reasons-inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 120px;
}
.beg-reasons-title {
    font-size: 40px;
    font-weight: 700;
    color: #a0bf3a;
    line-height: 1.2;
    margin-bottom: 97px;
    white-space: nowrap;
}
.beg-reasons-grid {
    display: grid;
    grid-template-columns: repeat(2, 550px);
    gap: 40px 100px;
}
.beg-reason-card {
    width: 550px;
    height: 352px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 32px 35px 28px;
    border-radius: 30px;
    overflow: hidden;
    position: relative;
    background: #fff;
    transform: translateZ(0); /* Safari overflow:hidden fix */
}
.beg-reason-bg {
    position: absolute;
    left: 10px;
    top: 0;
    width: 580px;
    height: 352px;
    max-width: none; /* override global img { max-width: 100% } */
    pointer-events: none;
    display: block;
}
.beg-reason-photo { position: absolute; pointer-events: none; z-index: 1; }
.beg-reason-photo img { display: block; width: auto; max-width: none; }
.beg-reason-photo--1 { right: 0; top: -5px; }
.beg-reason-photo--1 img { height: 260px; }
.beg-reason-photo--2 { right: 40px; top: 22px; }
.beg-reason-photo--2 img { height: 200px; }
.beg-reason-photo--3 { right: 25px; top: 20px; }
.beg-reason-photo--3 img { height: 250px; }
.beg-reason-photo--4 { right: 50px; }
.beg-reason-photo--4 img { height: 195px; }
.beg-reason-photo--5 { right: 25px; top: 15px; }
.beg-reason-photo--5 img { height: 245px; }
.beg-reason-photo--6 { right: 15px; top: 60px; }
.beg-reason-photo--6 img { height: 185px; }
.beg-reason-stat { position: relative; z-index: 2; color: #a0bf3a; font-weight: 700; }
.beg-reason-stat-sub { font-size: 40px; line-height: 1.1; white-space: nowrap; margin: 0; }
.beg-reason-num-line { font-size: 0; line-height: 0; white-space: nowrap; margin: 0; }
.beg-reason-num-line .pre,
.beg-reason-num-line .suf { font-size: 40px; line-height: 1; display: inline-block; vertical-align: bottom; }
.beg-reason-num-line .num { font-size: 128px; line-height: 0.8; display: inline-block; }
.beg-reason-card--5 .beg-reason-stat { margin-left: 36px; }
.beg-reason-card--5 .beg-reason-num-line { padding-left: 42px; }
.beg-reason-card--6 .beg-reason-num-line { padding-left: 38px; }
.beg-reason-bottom { position: relative; z-index: 2; }
.beg-reason-card-title { color: #5a4a3f; font-size: 32px; font-weight: 700; line-height: 1.2; white-space: nowrap; margin: 0 0 8px; }
.beg-reason-card--2 .beg-reason-card-title { white-space: normal; }
.beg-reason-card-desc { color: #5a4a3f; font-size: 16px; font-weight: 700; line-height: 1.6; margin: 0; }

/* === 充実の福利厚生 === */
.beg-benefits-section { padding: 80px 0 100px; }
.beg-benefits-inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 120px;
}
.beg-benefits-title {
    font-size: 40px;
    font-weight: 700;
    color: #a0bf3a;
    line-height: 1.2;
    margin-bottom: 78px;
    white-space: nowrap;
}
.beg-benefits-grid {
    display: flex;
    gap: 37px;
    justify-content: center;
}
.beg-benefit-card {
    background: #fff;
    border-radius: 30px;
    width: 231px;
    height: 278px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 23px;
    flex-shrink: 0;
}
/* アイコンラッパー: Figma viewBox の寸法に合わせた固有サイズで img を絶対配置 */
.beg-benefit-icon {
    position: relative;
    flex-shrink: 0;
}
.beg-benefit-icon img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none; /* override global img { max-width: 100% } */
    display: block;
}
/* 各アイコンのコンテナサイズ（Figma viewBox 準拠） */
.beg-benefit-icon--qualification { width: 108px; height: 128px; }
.beg-benefit-icon--independent  { width: 151px; height: 127px; }
.beg-benefit-icon--maternity    { width: 88px;  height: 128px; }
.beg-benefit-icon--salary       { width: 176px; height: 133px; }
.beg-benefit-text {
    font-size: 24px;
    font-weight: 500;
    color: #5a4a3f;
    text-align: center;
    line-height: 1.4;
}

/* === 先輩インタビュー === */
.beg-interview-section { padding: 80px 0 100px; }
.beg-interview-inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 120px;
}
.beg-interview-title {
    font-size: 40px;
    font-weight: 700;
    color: #a0bf3a;
    line-height: 1.2;
    margin-bottom: 78px;
    white-space: nowrap;
}
.beg-interview-card {
    background: #fff;
    border-radius: 60px;
    padding: 40px 120px 60px;
    margin-bottom: 60px;
}
.beg-interview-card:last-child { margin-bottom: 0; }
.beg-interview-header {
    text-align: center;
    margin-bottom: 60px;
}
.beg-interview-role {
    font-size: 24px;
    font-weight: 700;
    color: #5a4a3f;
    line-height: 1.3;
    margin: 0 0 4px;
}
.beg-interview-name {
    font-size: 32px;
    font-weight: 700;
    color: #5a4a3f;
    line-height: 1.3;
    margin: 0;
}

/* スライドラッパー */
.beg-iv-slides-wrap { /* ブロックの表示/非表示を管理する */ }

/* スライド: 非表示 / 表示 */
.beg-iv-slide { display: none; }
.beg-iv-slide.is-active { display: block; }

/* スライド内: 見出し（全幅・写真より上） */
.beg-interview-catchcopy {
    font-size: 32px;
    font-weight: 700;
    color: #a0bf3a;
    line-height: 1.3;
    margin-bottom: 40px;
}

.beg-interview-heading {
    font-size: 24px;
    font-weight: 700;
    line-height: 1.4;
    margin: 0 0 30px;
}

/* SP用写真: PCでは非表示 */
.beg-interview-photo-sp {
    display: none;
}

/* スライド内: 本文＋写真の横並び行 */
.beg-interview-content-row {
    display: flex;
    gap: 101px;
    align-items: flex-start;
}

/* 本文（左カラム） */
.beg-interview-body-text {
    width: 544px;
    flex-shrink: 0;
    font-size: 20px;
    color: #5a4a3f;
    line-height: 1.8;
    font-weight: 500;
}
.beg-interview-body-text p { margin: 0 0 1em; }
.beg-interview-body-text p:last-child { margin-bottom: 0; }

/* 写真（右カラム） */
.beg-interview-photo {
    width: 315px;
    height: 352px;
    border-radius: 30px;
    overflow: hidden;
    flex-shrink: 0;
}
.beg-interview-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border-radius: 30px;
}

/* ナビゲーション全体 */
.beg-iv-nav {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px;
    margin-top: 40px;
}

/* ブロック数インジケーター（短いバー × ブロック数） */
.beg-iv-indicators {
    display: flex;
    gap: 10px;
    align-items: center;
}
.beg-iv-dot {
    width: 23px;
    height: 3px;
    border-radius: 2px;
    background: #cde0a0;          /* 非アクティブ: 薄い黄緑 */
    transition: background 0.25s;
}
.beg-iv-dot.is-active {
    background: #a0bf3a;          /* アクティブ: 濃い黄緑 */
}

/* 矢印ボタン行 */
.beg-iv-nav-arrows {
    display: flex;
    gap: 24px;
    align-items: center;
}
.beg-iv-prev,
.beg-iv-next {
    width: 40px;
    height: 40px;
    padding: 0;
    background: none;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.2s;
}
.beg-iv-prev:disabled,
.beg-iv-next:disabled { opacity: 0.25; cursor: default; }
.beg-iv-prev img,
.beg-iv-next img { width: 40px; height: 40px; display: block; }

/* 左矢印：右矢印SVGを水平反転して「←」にする */
.beg-iv-prev img { transform: scaleX(-1); }

/* ブロック未登録 */
.beg-iv-empty {
    padding: 40px;
    text-align: center;
    color: #999;
    font-size: 16px;
}

/* === 安心の研修制度 === */
.beg-training-section { padding: 80px 0 100px; }
.beg-training-inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 73px;
}
.beg-training-title {
    font-size: 40px;
    font-weight: 700;
    color: #a0bf3a;
    line-height: 1.2;
    margin-bottom: 78px;
    white-space: nowrap;
    padding-left: 47px;
}
.beg-training-cards {
    display: flex;
    gap: 47px;
    align-items: flex-start;
}
.beg-training-card {
    width: 400px;
    height: 423px;
    flex-shrink: 0;
    position: relative;
    border-radius: 30px;
    background: #fff;
    overflow: hidden;
}
.beg-training-card-photo {
    position: absolute;
    top: 0;
    left: 0;
    width: 400px;
    height: 267px;
    border-radius: 30px 30px 0 0;
    overflow: hidden;
}
.beg-training-card-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.beg-training-card-content {
    position: absolute;
    left: 31px;
    top: 286px;
    width: 337px;
}
.beg-training-card-title {
    font-size: 20px;
    font-weight: 700;
    color: #a0bf3a;
    line-height: 1.4;
    margin-bottom: 20px;
}
.beg-training-card-desc {
    font-size: 16px;
    font-weight: 700;
    color: #5a4a3f;
    line-height: 1.7;
}

/* beg-* レスポンシブ (1200px) */
@media (max-width: 1200px) {
    .beg-reasons-grid { grid-template-columns: repeat(2, 1fr); gap: 20px; }
    .beg-reason-card { width: 100%; }
    .beg-training-cards { flex-wrap: wrap; }
    .beg-training-card { width: calc(50% - 24px); height: auto; }
    .beg-training-card-photo { position: static; width: 100%; border-radius: 30px 30px 0 0; }
    .beg-training-card-content { position: static; padding: 24px 31px; width: auto; }
    .beg-interview-content-row { gap: 40px; }
    .beg-interview-body-text { width: auto; flex: 1; }
}

/* beg-* レスポンシブ (900px) */
@media (max-width: 900px) {
    .beg-anchor-nav { padding: 40px 20px; }
    .beg-anchor-nav-inner { flex-wrap: wrap; gap: 20px; justify-content: flex-start; }
    .beg-intro-inner { padding: 0 20px; }
    .beg-intro-card { flex-direction: column; padding: 30px; border-radius: 30px; gap: 30px; }
    .beg-intro-photo { width: 100%; height: 240px; }
    .beg-intro-title { font-size: 24px; white-space: normal; }
    .beg-intro-body { font-size: 16px; }
    .beg-intro-buttons { flex-direction: column; gap: 20px; padding-left: 0; }
    .beg-intro-btn { width: 100%; }
    .beg-reasons-inner { padding: 0 20px; }
    .beg-reasons-title { font-size: 24px; white-space: normal; margin-bottom: 40px; }
    .beg-reasons-grid { grid-template-columns: 1fr; gap: 20px; }
    .beg-reason-card { width: 100%; }
    .beg-benefits-inner { padding: 0 20px; }
    .beg-benefits-title { font-size: 24px; white-space: normal; }
    .beg-benefits-grid { flex-wrap: wrap; justify-content: center; gap: 20px; }
    .beg-benefit-card { width: calc(50% - 10px); height: auto; min-height: 180px; }
    .beg-interview-inner { padding: 0 20px; }
    .beg-interview-title { font-size: 24px; white-space: normal; }
    .beg-interview-card { padding: 30px 20px; border-radius: 30px; }
    .beg-interview-catchcopy { font-size: 20px; white-space: normal; }
    .beg-interview-content-row { flex-direction: column; gap: 30px; }
    .beg-interview-body-text { width: 100%; font-size: 16px; }
    .beg-interview-photo { width: 100%; height: 280px; }
    .beg-training-inner { padding: 0 20px; }
    .beg-training-title { font-size: 24px; white-space: normal; padding-left: 0; }
    .beg-training-cards { flex-direction: column; gap: 20px; }
    .beg-training-card { width: 100%; }
}

/* ===================================
   Buttons
=================================== */
.btn-green {
    display: inline-block;
    padding: 14px 36px;
    background-color: var(--color-green);
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    border-radius: 30px;
    transition: opacity 0.2s ease;
}

.btn-green:hover {
    opacity: 0.85;
    color: #fff;
}

/* ===================================
   Responsive - work-row オーバーラップ解除 (1280px)
   ※ 負のmarginが実コンテンツにかかるため正の間隔に切り替え
=================================== */
@media (max-width: 1280px) {
    .work-row {
        margin-bottom: 20px;
    }
}

/* ===================================
   Responsive - CTA 縦並び切り替え (1200px)
   ※ カラムが狭くなりすぎてテキストが崩れるため
=================================== */
@media (max-width: 1200px) {
    .cta-card-body {
        flex-direction: column;
        height: auto;
        padding: 32px 40px;
        gap: 32px;
        align-items: stretch;
    }

    .cta-col:first-child {
        flex: none;
        margin-right: 0;
    }

    .cta-col:last-child {
        flex: none;
    }

    .cta-divider {
        width: 100%;
        height: 1px;
        margin-right: 0;
    }
}

/* ===================================
   Responsive - Tablet (768px)
=================================== */
@media (max-width: 1024px) {
    .numbers-inner {
        padding: 0 20px;
    }

    .numbers-grid {
        grid-template-columns: 1fr 1fr;
        gap: 16px;
    }

    .number-card {
        width: 100%;
    }

    .work-illust-wrap {
        flex: none;
        width: 280px;
        height: 280px;
        margin: 0 auto;
    }

    .work-blob {
        width: 210px;
        height: 193px;
    }

    .work-inner {
        padding: 0 20px;
    }

    .work-title {
        font-size: 26px;
        margin-bottom: 40px;
    }

    .work-row {
        flex-direction: column;
        margin-bottom: 40px;
    }

    .work-illust-wrap {
        flex: none;
        width: 280px;
        height: 280px;
        margin: 0 auto;
    }

    .work-text {
        padding: 0 !important;
        text-align: center;
    }

    .work-item-title {
        font-size: 22px;
        margin-bottom: 16px;
    }

    .work-item-body {
        font-size: 16px;
    }

    .facilities-inner {
        padding: 0 20px;
    }

    .facilities-title {
        font-size: 24px;
    }

    .facilities-row {
        grid-template-columns: repeat(3, 240px);
        gap: 30px;
    }

    .facility-img {
        width: 180px;
        height: 180px;
    }

    .facility-name,
    .facility-type {
        font-size: 18px;
    }

    /* About (1024px以下) */
    .about-inner { padding: 0 40px; }
    .about-page-title { font-size: 32px; }
    .about-block { gap: 40px; margin-bottom: 80px; }
    .about-img-wrap { width: 380px; height: 240px; }
    .about-blob-bg  { left: 20px; top: 13px; width: 356px; height: 227px; }
    .about-photo-box { width: 356px; height: 227px; }
    .about-block-text { width: auto; flex: 1; min-width: 0; }
    .about-block-title { font-size: 24px; margin-bottom: 24px; }
    .about-block-body  { font-size: 18px; }
}

@media (max-width: 768px) {
    /* SP のみ有効な改行を表示 */
    br.sp-br { display: inline; }
    br.pc-br { display: none; }

    :root {
        --header-height: 60px;
    }

    /* Header */
    #site-header {
        height: 60px;
    }

    .header-inner {
        padding: 0 16px;
    }

    .header-tagline {
        display: none;
    }

    .header-site-name {
        font-size: 18px;
    }

    .header-site-sub {
        font-size: 11px;
    }

    .header-right {
        display: none;
    }

    .hamburger-btn {
        display: flex;
    }

    .mobile-nav {
        display: block;
    }


    /* MV */
    .mv-blob-container {
        padding: 24px 16px 24px 16px;
    }

    .mv-nav-item {
        width: auto;
        flex: 1;
        font-size: 13px;
        padding: 0 4px;
    }

    .mv-nav-bar {
        height: 60px;
    }

    /* Sections */
    .section {
        padding: 50px 0;
    }

    .section-title {
        font-size: 22px;
    }

    .section-title-en {
        font-size: 26px;
    }

    /* Rep message */
    .rep-message-inner {
        padding: 32px 24px;
    }

    .rep-card {
        flex-direction: column;
        padding: 32px 24px;
        gap: 24px;
        border-radius: 30px;
    }

    .rep-card-photo {
        flex: none;
        width: 100%;
        height: 300px;
    }

    .rep-card-content {
        padding-top: 0;
    }

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

    .rep-card-text {
        font-size: 16px;
    }

    .rep-card-name {
        font-size: 16px;
        margin-top: 20px;
    }

    .rep-banner {
        height: 180px;
    }

    /* Numbers */
    .numbers-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    /* Work */
    .work-section { overflow: hidden; } /* work-blob(left:-50px,width:125%)がSP幅で右端からはみ出すのを防ぐ */
    .work-row {
        margin-bottom: 30px;
    }

    /* Facilities */
    .facilities-row {
        grid-template-columns: 1fr;
        justify-items: center;
        gap: 24px;
    }

    .facility-img {
        width: 237px;
        height: 237px;
    }

    .facility-name,
    .facility-type {
        font-size: 24px;
    }

    /* Interview */
    .interview-inner {
        padding: 0 20px;
    }

    .interview-card {
        flex-direction: column;
        padding: 24px;
        border-radius: 30px;
        gap: 20px;
    }

    .interview-illust-wrap {
        width: 100%;
        height: 220px;
        aspect-ratio: unset;
        border-radius: 16px;
    }

    .interview-blob {
        left: 50%;
        top: 10px;
        transform: translateX(-50%) scaleX(-1);
        width: 200px;
        height: 180px;
    }

    .interview-title {
        position: static;
        font-size: 22px;
        margin-bottom: 16px;
    }

    .interview-text {
        position: static;
        width: auto;
        font-size: 16px;
    }

    /* FAQ */
    .faq-inner {
        padding: 0 20px;
    }

    .faq-section-title {
        font-size: 26px;
    }

    .faq-question {
        padding: 28px 24px;
        gap: 14px;
    }

    .faq-badge {
        width: 32px;
        height: 32px;
        font-size: 18px;
    }

    .faq-q-text {
        font-size: 16px;
    }

    .faq-answer {
        padding: 0 24px 28px;
        gap: 14px;
    }

    .faq-a-text {
        font-size: 15px;
    }

    /* CTA */
    .cta-inner {
        padding: 0 20px;
    }

    .cta-card-body {
        flex-direction: column;
        height: auto;
        padding: 32px 24px;
        gap: 32px;
        align-items: stretch;
    }

    .cta-col:first-child {
        flex: none;
        margin-right: 0;
    }

    .cta-col:last-child {
        flex: none;
    }

    .cta-divider {
        width: 100%;
        height: 1px;
        margin-right: 0;
    }

    .cta-title {
        font-size: 20px;
    }

    .cta-col-label {
        font-size: 16px;
    }

    .cta-tel-num {
        font-size: 26px;
    }

    .cta-btn {
        font-size: 16px;
        height: 52px;
    }

    /* Footer */
    .footer-body {
        flex-direction: column;
        padding: 32px 20px 40px;
        gap: 40px;
    }

    .footer-col-info {
        flex: none;
        width: 100%;
    }

    .footer-site-name {
        font-size: 22px;
    }

    .footer-address {
        font-size: 14px;
    }

    .footer-nav-col li a {
        font-size: 14px;
    }

    .footer-col-banners {
        flex: none;
        margin-left: 0;
        padding-top: 0;
        width: 100%;
    }

    .footer-banner-link img {
        width: 100%;
        height: auto;
    }

    .footer-col-map {
        margin-left: 0;
        padding-top: 0;
        width: 100%;
    }

    .footer-col-map iframe {
        height: 240px;
    }

    .footer-bottom p {
        font-size: 12px;
    }

    /* About (768px以下) */
    .about-inner {
        padding: 0 20px;
    }
    .about-page-title {
        font-size: 24px;
        margin-bottom: 40px;
    }
    .about-block {
        flex-direction: column;
        gap: 30px;
        margin-bottom: 60px;
    }
    .about-img-wrap {
        width: 100%;
        max-width: 400px;
        height: auto;
        aspect-ratio: 507 / 342;
        margin: 0 auto;
    }
    .about-blob-bg {
        left: 6%;
        top: 5%;
        width: 94%;
        height: 94%;
    }
    .about-photo-box {
        width: 90%;
        height: 90%;
    }
    .about-block-text {
        width: 100%;
    }
    .about-block-title { font-size: 18px; margin-bottom: 20px; }
    .about-block-body  { font-size: 12px; }

    /* Page MV */

    /* ===================================
       Mobile Header
    =================================== */

    .header-inner {
        padding: 0 15px;
    }

    /* タグライン：モバイルで表示 */
    .header-tagline {
        display: block;
        font-size: 10px;
        padding-left: 15px;
        margin-bottom: 0;
        line-height: 1.4;
    }

    /* ロゴ：縦並び */
    .header-logo a {
        display: flex;
        flex-direction: column;
        gap: 1px;
    }

    .header-name-wrap {
        gap: 6px;
    }

    .header-site-name {
        font-size: 20px;
    }

    .header-site-sub {
        font-size: 10px;
        margin-bottom: 2px;
    }

    /* ハンバーガーボタン */
    .hamburger-btn {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 7px;
        padding: 0;
    }

    .hamburger-btn span {
        width: 25px;
        height: 2px;
        background: #5a4a3f;
        border-radius: 1px;
        transition: none;
    }

    /* MENU テキスト */
    .hamburger-btn .hamburger-menu-text {
        width: auto;
        height: auto;
        background: none;
        border-radius: 0;
        font-size: 8px;
        letter-spacing: 1.2px;
        color: #000;
        font-weight: 400;
        line-height: 1;
        margin-top: -3px;
    }

    /* ===================================
       Mobile Nav（フルスクリーン白）
    =================================== */

    .mobile-nav {
        display: block;
        background: #fff;
        width: 100%;
        max-width: 100%;
        padding: 126px 0;
        transition: right 0.25s ease;
    }

    /* 閉じるボタン */
    .mobile-nav-close {
        top: 16px;
        right: 15px;
        font-size: 32px;
        color: #000;
        display: flex;
        flex-direction: column;
        align-items: center;
        padding: 0;
    }

    .mobile-nav-close-x {
        display: block;
        font-size: 32px;
        line-height: 1;
        color: #000;
    }

    .mobile-nav-close-label {
        display: block;
        font-size: 8px;
        letter-spacing: 1.2px;
        text-transform: uppercase;
        color: #000;
        margin-top: 2px;
        line-height: 1;
    }

    /* ナビリンク */
    .mobile-nav ul {
        list-style: none;
        margin: 0 auto;
        padding: 0;
        display: flex;
        flex-direction: column;
        gap: 24px;
        width: fit-content;
    }

    .mobile-nav ul li a {
        font-size: 20px;
        color: #000;
        font-weight: 400;
        border: none;
        padding: 0;
        background: none;
        display: block;
    }

    /* コンタクトエリア */
    .mobile-nav-contact {
        margin: 60px auto 40px;
        padding: 0;
        border-top: none;
        display: flex;
        flex-direction: column;
        gap: 24px;
        width: 247px;
    }

    /* 電話ボタン */
    .mobile-tel-btn {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        width: 247px;
        height: 57px;
        border: 1px solid #a0bf3a;
        border-radius: 5px;
        text-decoration: none;
        padding: 5px 10px;
        gap: 3px;
    }

    .mobile-tel-row {
        display: flex;
        align-items: center;
        gap: 6px;
    }

    .mobile-tel-icon {
        width: 18px;
        height: 19px;
        flex-shrink: 0;
    }

    .mobile-tel-num {
        font-size: 24px;
        font-weight: 500;
        color: #a0bf3a;
        line-height: 1;
    }

    .mobile-tel-hours {
        font-size: 12px;
        font-weight: 500;
        color: #a0bf3a;
        text-align: center;
        line-height: 1.3;
        margin-bottom: 0;
    }

    /* 申し込みボタン */
    .mobile-cta-btn {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 247px;
        height: 57px;
        background: #a0bf3a;
        border-radius: 5px;
        gap: 9px;
        color: #fff;
        font-size: 14px;
        font-weight: 500;
        text-decoration: none;
        padding: 10px;
    }

    .mobile-mail-icon {
        width: 19px;
        height: 14px;
        flex-shrink: 0;
    }

    /* ===================================
       Mobile Footer（Figma: 96-2126）
    =================================== */

    #site-footer {
        background: #fff;
        border-top: 10px solid #fcca15;
    }

    .footer-body {
        flex-direction: column;
        align-items: center;
        padding: 22px 0 0 0;
        gap: 0;
        max-width: 100%;
    }

    .footer-col-info {
        flex: none;
        width: 100%;
        max-width: 300px;
        padding: 0;
    }

    .footer-logo-wrap {
        margin-bottom: 24px;
    }

    .footer-tagline {
        font-size: 12px;
        padding-left: 60px; /* Figma: tagline x=130, col centered at (440-300)/2=70 → 130-70=60 */
        margin-bottom: 4px;
    }

    .footer-site-name {
        font-size: 32px;
    }

    .footer-address {
        font-size: 18px;
        margin-bottom: 8px;
    }

    .footer-sns {
        margin-bottom: 40px;
    }

    .footer-nav {
        flex-direction: column;
        gap: 0;
        margin-bottom: 24px;
    }

    .footer-nav-col {
        gap: 10px;
    }

    .footer-nav-col:last-child {
        margin-top: 10px;
    }

    .footer-nav-col li a {
        font-size: 16px;
    }

    .footer-col-banners {
        flex: none;
        margin-left: 0;
        padding: 0 0 32px;
        width: 300px;
        gap: 10px;
    }

    .footer-banner-link img {
        width: 300px;
        height: 80px;
    }

    .footer-col-map {
        margin-left: 0;
        padding: 0 0 12px;
        width: 300px;
    }

    .footer-col-map iframe {
        width: 300px;
        height: 268px;
    }

    .footer-bottom {
        padding: 16px 20px;
    }

    .footer-bottom p {
        font-size: 12px;
    }

    /* ===================================
       TOP page mobile overrides
    =================================== */

    /* MV: ナビバーは非表示 */
    .mv-nav-bar {
        display: none;
    }

    /* Numbers section */
    .numbers-section {
        padding: 50px 0;
    }

    .numbers-inner {
        padding: 0 24px;
    }

    .numbers-title {
        font-size: 24px;
        text-align: center;
        margin-bottom: 30px;
    }

    /* Information section */
    .info-section {
        padding: 50px 0;
    }

    .info-title {
        font-size: 24px;
        margin-bottom: 16px;
    }

    .info-tab {
        font-size: 12px;
        padding: 5px 10px;
    }

    .btn-more {
        font-size: 12px;
        height: 35px;
        padding: 8px 16px;
    }

    /* Work section: illustration always on top */
    .work-illust-wrap {
        order: -1;
    }

    .work-title {
        font-size: 24px;
        text-align: center;
    }

    .work-item-title {
        font-size: 18px;
    }

    .work-item-body {
        font-size: 12px;
    }

    /* ── Facilities detail page (施設紹介) SP ── */
    /* バッジ中央揃え: position:absolute + translateY(-50%) → バッジ縦中央 = カード上端
       バッジ下端〜写真の間隔 (32px) は JS (initFacilityCardPadding) で padding-top を動的設定 */
    .fac-section    { padding: 32px 0 50px; }
    .fac-inner      { padding: 0 24px; }
    .fac-page-title { font-size: 24px; margin-bottom: 48px; text-align: center; }
    .fac-block      { padding-top: 0; margin-bottom: 40px; }
    .fac-badge      { position: absolute; left: 24px; top: 0; transform: translateY(-50%); width: calc(100% - 48px); font-size: 20px; padding: 10px 24px; border-radius: 10px; line-height: 1.4; }
    /* padding-top は JS で動的に設定（badge高さの半分 + 32px） */
    .fac-card       { flex-direction: column; align-items: center; padding: 0 24px 32px; gap: 0; border-radius: 20px; }
    /* fac-right を display:contents で解除し子要素を flex 直接の子にする */
    .fac-right      { display: contents; }
    /* 写真を先頭へ（order:-1）、ボタンを末尾へ（order:1） */
    .fac-photo      { order: -1; width: 344px; height: 231px; border-radius: 30px; flex-shrink: 0; margin-bottom: 32px; }
    .fac-card-left  { width: 100%; flex: none; }
    .fac-card-left .fac-row:first-child { border-top: 1px dashed #000; }
    .fac-row        { font-size: 12px; gap: 12px; padding: 15px 20px; max-width: 100%; }
    .fac-row-label  { font-size: 14px; width: 80px; }
    .fac-row-value  { font-size: 12px; }
    .fac-btn        { order: 1; width: 320px; height: 35px; font-size: 12px; margin-top: 16px; flex-shrink: 0; }

    /* Facilities: single column */
    .facilities-section {
        padding: 0;
    }

    .facilities-inner {
        padding: 0 24px;
    }

    .facilities-title {
        font-size: 24px;
        text-align: center;
        margin-bottom: 30px;
    }

    .facilities-row--top {
        margin-bottom: 24px;
    }

    /* ===================================
       代表メッセージ mobile（Figma: 91-1473）
    =================================== */
    .rep-message-inner {
        padding: 32px 24px;
    }

    .rep-card {
        border-radius: 40px;
        padding: 0;
        gap: 0;
    }

    .rep-card-photo {
        height: 400px;
        width: calc(100% - 48px);
        margin: 32px auto 0;
        flex: none;
        position: static;
    }

    .rep-card-content {
        padding: 24px;
    }

    .rep-card-title {
        font-size: 18px;
        color: #a0bf3a;
        margin-bottom: 12px;
    }

    .rep-card-text {
        font-size: 12px;
        line-height: 1.55;
        margin-bottom: 12px;
    }

    .rep-card-name {
        font-size: 12px;
        margin-top: 0;
    }

    .rep-card-btn-wrap {
        margin-top: 24px;
        text-align: center;
    }

    .rep-banner {
        height: 147px;
    }

    /* ===================================
       Information section mobile（Figma: 91-1490）
    =================================== */
    .info-section {
        padding: 32px 24px 50px;
    }

    .info-inner {
        padding: 0;
    }

    .info-title {
        padding-left: 0;
    }

    .info-tabs {
        padding: 0;
        gap: 8px 20px;
    }

    .info-tab {
        width: 83px;
        height: 25px;
        padding: 0;
    }

    .info-list {
        border-top-color: #5a4a3f;
    }

    .info-item {
        padding: 0;
        height: 49px;
        gap: 10px;
        border-bottom-color: #5a4a3f;
    }

    .info-date {
        font-size: 16px;
        color: #5a4a3f;
        min-width: 76px;
        width: 76px;
    }

    .info-cat {
        height: 23px;
        width: auto;
        min-width: 52px;
        font-size: 10px;
        border-color: #5a4a3f;
        color: #5a4a3f;
    }

    .info-item-title {
        font-size: 12px;
        color: #5a4a3f;
        letter-spacing: -0.04em;
        overflow: hidden;
        white-space: nowrap;
        text-overflow: ellipsis;
        min-width: 0;
    }

    .btn-more {
        width: 100%;
        max-width: 320px;
        padding: 0;
        margin-top: 16px;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    /* ===================================
       数字で見る mobile（Figma: 91-1589）
    =================================== */
    .numbers-grid {
        gap: 24px;
    }

    /* ===================================
       活躍できるのはこんな人 mobile（Figma: 91-1702）
    =================================== */
    .work-section {
        padding: 50px 0;
    }

    .work-inner {
        padding: 0 24px;
    }

    .work-row {
        gap: 10px;
    }

    .work-illust-wrap {
        width: 100%;       /* コンテンツ幅に追従 */
        max-width: 344px;  /* 広いSPでは最大344pxに抑える */
        height: 280px;
    }

    .work-text {
        text-align: left;
        padding: 0 !important;
    }

    .work-item-title {
        margin-bottom: 12px;
    }

    /* ===================================
       まごころ面接 mobile（Figma: 91-1822）
    =================================== */
    .interview-section {
        padding: 50px 0;
    }

    .interview-inner {
        padding: 0 24px;
    }

        .interview-card {
        flex-direction: column;
        border-radius: 40px;
        padding: 24px;
        gap: 20px;
    }

    .interview-illust-wrap {
        width: 100%;
        height: 244px;
        aspect-ratio: unset;
        border-radius: 16px;
    }
	
    .interview-blob {
        left: 50%;
        transform: translateX(-50%) scaleX(-1);
        top: 52px;
        width: 220px;
        height: 202px;
    }

    .interview-title {
        position: static;
        font-size: 18px;
        margin-bottom: 12px;
    }

    .interview-text {
        position: static;
        width: auto;
        font-size: 12px;
        line-height: 1.55;
    }

    /* ===================================
       よくある質問 mobile（Figma: 96-1843）
    =================================== */
    .faq-section {
        padding: 50px 0;
    }

    .faq-inner {
        padding: 0 24px;
    }

    .faq-section-title {
        font-size: 24px;
        text-align: center;
        margin-bottom: 32px;
    }

    .faq-list {
        gap: 25px;
    }

    .faq-item {
        border-radius: 20px;
    }

    .faq-question {
        padding: 24px 24px 10px;
        gap: 18px;
    }

    .faq-badge {
        width: 28px;
        height: 28px;
        font-size: 20px;
        flex-shrink: 0;
    }

    .faq-q-text {
        font-size: 16px;
    }

    .faq-answer {
        padding: 0 24px 16px;
        gap: 18px;
    }

    .faq-a-text {
        font-size: 12px;
        padding-top: 3px;
    }

    /* ===================================
       CTA section mobile（Figma: 96-1977）
    =================================== */
    .cta-section {
        padding: 50px 0;
    }

    .cta-inner {
        padding: 0 24px;
    }

    .cta-card-header {
        height: 63px;
    }

    .cta-title {
        font-size: 24px;
    }

    .cta-card-body {
        padding: 24px 14px;
        gap: 20px;
    }

    .cta-col:first-child {
        flex: none;
        margin-right: 0;
        width: 100%;
    }

    .cta-col:last-child {
        flex: none;
        width: 100%;
    }

    .cta-col-label {
        font-size: 20px;
        text-align: center;
        letter-spacing: -0.06em;
    }

    .cta-divider {
        height: 1px;
        width: 100%;
        margin: 0;
    }

    .cta-tel-num {
        font-size: 36px;
        letter-spacing: 3.6px;
    }

    .cta-btn {
        font-size: 20px;
        height: 61px;
    }

    /* ===================================
       未経験の方へ mobile（Figma: 96-3593）
    =================================== */
    /* アンカーナビ */
    .beg-anchor-nav {
        padding: 24px;
    }
    .beg-anchor-nav-inner {
        flex-wrap: wrap;
        gap: 12px 24px;
        justify-content: center;
    }
    /* 1番目（長いテキスト）→ 全幅・中央寄せ */
    .beg-anchor-nav-inner > .beg-anchor-btn:first-child {
        width: 100%;
        justify-content: center;
    }
    .beg-anchor-btn-text {
        font-size: 12px;
        white-space: normal;
    }

    /* イントロ */
    .beg-intro-section {
        padding-top: 32px;
        padding-bottom: 50px;
    }
    .beg-intro-inner {
        padding: 0 24px;
    }
    .beg-intro-card {
        flex-direction: column;
        padding: 32px 24px;
        border-radius: 40px;
        gap: 24px;
        align-items: stretch;
    }
    .beg-intro-photo {
        width: 100%;
        height: 400px;
        border-radius: 20px;
    }
    /* picture 要素を photo コンテナいっぱいに広げる */
    .beg-intro-photo picture {
        display: block;
        width: 100%;
        height: 100%;
    }
    .beg-intro-text {
        padding: 0;
    }
    .beg-intro-title {
        font-size: 18px;
        margin-bottom: 28px;
        white-space: normal;
    }
    .beg-intro-body {
        font-size: 12px;
        line-height: 1.8;
    }
    .beg-intro-buttons {
        flex-direction: column;
        gap: 24px;
        margin-top: 32px;
        padding-left: 0;
        align-items: center;
    }
    .beg-intro-btn {
        width: 320px;
        height: 35px;
        font-size: 12px;
    }

    /* 選ばれる理由 */
    .beg-reasons-section {
        padding: 50px 0;
    }
    .beg-reasons-inner {
        padding: 0 24px;
    }
    .beg-reasons-title {
        font-size: 24px;
        white-space: normal;
        margin-bottom: 40px;
        text-align: center;
    }
    .beg-reasons-grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }
    .beg-reason-card,
    .beg-reason-card--1,
    .beg-reason-card--2,
    .beg-reason-card--3,
    .beg-reason-card--4,
    .beg-reason-card--5,
    .beg-reason-card--6 {
        width: 100%;
        height: 286px;
        padding: 20px 20px 20px 19px;
    }
    .beg-reason-bg { width: 453px; height: 286px; }
    .beg-reason-photo { display: block; }
    .beg-reason-photo--1 { right: 0; top: 7px; }
    .beg-reason-photo--1 img { height: 185px; }
    .beg-reason-photo--2 { right: 20px; top: 30px; }
    .beg-reason-photo--2 img { height: 155px; }
    .beg-reason-photo--3 { right: 20px; top: 15px; }
    .beg-reason-photo--3 img { height: 195px; }
    .beg-reason-photo--4 { right: 15px; top: 55px; }
    .beg-reason-photo--4 img { height: 150px; }
    .beg-reason-photo--5 { right: 35px; top: 40px; }
    .beg-reason-photo--5 img { height: 175px; }
    .beg-reason-photo--6 { right: 15px; top: 65px; }
    .beg-reason-photo--6 img { height: 130px; }
    .beg-reason-num-line .num { font-size: 96px; }
    .beg-reason-num-line .pre,
    .beg-reason-num-line .suf { font-size: 32px; }
    .beg-reason-stat-sub { font-size: 32px; }
    .beg-reason-card-title { font-size: 20px; white-space: nowrap; }
    .beg-reason-card-desc { font-size: 12px; }
    .beg-reason-card--5 .beg-reason-stat { margin-left: 0; }
    .beg-reason-card--5 .beg-reason-num-line { padding-left: 39px; }
    .beg-reason-card--6 .beg-reason-num-line { padding-left: 40px; }

    /* 充実の福利厚生 */
    .beg-benefits-section {
        padding: 50px 0;
    }
    .beg-benefits-inner {
        padding: 0 24px;
    }
    .beg-benefits-title {
        font-size: 24px;
        white-space: normal;
        margin-bottom: 40px;
        text-align: center;
    }
    .beg-benefits-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 16px;
    }
    .beg-benefit-card {
        width: 100%;
        height: auto;
        min-height: 200px;
        padding: 20px 12px;
    }
    .beg-benefit-icon--qualification { width: 68px; height: 80px; }
    .beg-benefit-icon--independent  { width: 95px; height: 80px; }
    .beg-benefit-icon--maternity    { width: 55px; height: 80px; }
    .beg-benefit-icon--salary       { width: 110px; height: 84px; }
    .beg-benefit-text {
        font-size: 16px;
    }

    /* 先輩インタビュー */
    .beg-interview-section {
        padding: 50px 0;
    }
    .beg-interview-inner {
        padding: 0 24px;
    }
    .beg-interview-title {
        font-size: 24px;
        white-space: normal;
        margin-bottom: 40px;
        text-align: center;
    }
    .beg-interview-card {
        padding: 32px 24px 32px;
        border-radius: 40px;
        margin-bottom: 32px;
    }
    .beg-interview-header {
        margin-bottom: 22px;
    }
    .beg-interview-role {
        font-size: 16px;
    }
    .beg-interview-name {
        font-size: 24px;
    }
    /* SP用写真: ヘッダー直下に表示 */
    .beg-interview-photo-sp {
        display: block;
        width: 100%;
        height: 300px;
        border-radius: 20px;
        overflow: hidden;
        margin-bottom: 24px;
    }
    .beg-interview-photo-sp img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: top;
    }
    /* PC用写真: SP では非表示 */
    .beg-interview-photo {
        display: none;
    }
    /* content-row: SP では本文のみ縦並び */
    .beg-interview-content-row {
        display: block;
    }
    .beg-interview-body-text {
        width: 100%;
        font-size: 12px;
    }
    .beg-interview-catchcopy {
        font-size: 18px;
        white-space: normal;
        margin-bottom: 20px;
    }
    .beg-interview-heading {
        font-size: 16px;
        margin-bottom: 16px;
    }

    /* 安心の研修制度 */
    .beg-training-section {
        padding: 50px 0;
    }
    .beg-training-inner {
        padding: 0 24px;
    }
    .beg-training-title {
        font-size: 24px;
        white-space: normal;
        padding-left: 0;
        margin-bottom: 40px;
        text-align: center;
    }
    .beg-training-cards {
        flex-direction: column;
        gap: 24px;
    }
    .beg-training-card {
        width: 100%;
        height: auto;
    }
    .beg-training-card-photo {
        height: 262px;
    }
    .beg-training-card-content {
        padding: 20px 24px 24px;
    }
    .beg-training-card-desc {
        font-size: 14px;
    }
}

/* 選ばれる理由: 430px以下で比率を保ってスムーズに縮小 */
@media (max-width: 430px) {
    .beg-reason-card,
    .beg-reason-card--1,
    .beg-reason-card--2,
    .beg-reason-card--3,
    .beg-reason-card--4,
    .beg-reason-card--5,
    .beg-reason-card--6 {
        height: 66.5vw;
        padding: 4.65vw;
    }
    .beg-reason-bg { width: 105.3vw; height: 66.5vw; }

    .beg-reason-photo--1 { right: 0; top: 1.6vw; }
    .beg-reason-photo--1 img { height: 43vw; }
    .beg-reason-photo--2 { right: 4.7vw; top: 7vw; }
    .beg-reason-photo--2 img { height: 36vw; }
    .beg-reason-photo--3 { right: 4.7vw; top: 3.5vw; }
    .beg-reason-photo--3 img { height: 45vw; }
    .beg-reason-photo--4 { right: 3.5vw; top: 13vw; }
    .beg-reason-photo--4 img { height: 35vw; }
    .beg-reason-photo--5 { right: 8vw; top: 9.3vw; }
    .beg-reason-photo--5 img { height: 41vw; }
    .beg-reason-photo--6 { right: 3.5vw; top: 15vw; }
    .beg-reason-photo--6 img { height: 30vw; }

    .beg-reason-num-line .num { font-size: 22.3vw; }
    .beg-reason-num-line .pre,
    .beg-reason-num-line .suf { font-size: 7.4vw; }
    .beg-reason-stat-sub { font-size: 7.4vw; }
    .beg-reason-card-title { font-size: 4.7vw; }
    .beg-reason-card-desc { font-size: 2.8vw; }

    .beg-reason-card--5 .beg-reason-num-line { padding-left: 9vw; }
    .beg-reason-card--6 .beg-reason-num-line { padding-left: 9.3vw; }
}

@media (max-width: 480px) {
    .numbers-grid {
        grid-template-columns: 1fr;
    }

    .info-item {
        flex-wrap: wrap;
    }

}

/* ===================================
   インフォメーション一覧ページ MV
   Figma: MV container bg-white h:528px
     header(100px) + gap(40px) + hero(288px) + subnav(100px)
=================================== */

/* MV白コンテナ（ヘッダー100pxの下から始まる） */
.iap-mv {
    margin-top: 100px;
    background: #fff;
}

/* ヒーロー写真（ヘッダー下40pxの位置・高さ288px） */
.iap-mv-hero {
    width: 100%;
    height: 288px;
    overflow: hidden;
    margin-top: 40px; /* Figma: hero top=140px, header=100px → gap=40px */
}

.iap-mv-hero-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

/* 黄色サブナビ（高さ100px、5アイテム×200px=1000px、220pxマージンで左右均等） */
.iap-subnav {
    display: flex;
    align-items: stretch; /* 子要素を高さ100%に */
    justify-content: center; /* 1000px分を中央寄せ = 220px左右マージン */
    height: 100px;
    background: #fcca15;
    overflow: hidden;
}

.iap-subnav-item {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 200px;       /* Figma: 5アイテム×200px */
    height: 100px;
    font-size: 18px;
    font-weight: 500;
    color: #fff;
    text-decoration: none;
    border-right: 2px solid #fff;
    white-space: nowrap;
    transition: background 0.2s;
}

/* TOP だけ左ボーダーあり（Figma: border-l-2 border-r-2） */
.iap-subnav-item:first-child {
    border-left: 2px solid #fff;
}

.iap-subnav-item:hover {
    background: rgba(0, 0, 0, 0.1);
}

/* ===================================
   インフォメーション一覧セクション
   Figma node 384:1282
     bg: #fffae8, 全幅1440px
     タイトル  left:120, top:80
     タブ      left:120, top:178, gap:20, w:151, h:47
     リスト    left:130, top:265, w:1190, h:81/row, px:30, gap:49
     もっと見る left:560, top:669, w:320, h:60
=================================== */
.iap-section {
    background: #fffae8;
    width: 100%;
    padding-bottom: 80px; /* section bottom: 809px - 729px = 80px */
}

.iap-inner {
    max-width: 1440px;
    margin: 0 auto;
    /* left:120 → padding-left:120px
       右はリスト right=1440-130-1190=120px と同じ */
    padding: 0 120px;
}

/* タイトル "Information"
   Figma: left:120, top:80, 40px Bold #a0bf3a */
.iap-title {
    padding-top: 80px;  /* Figma top:80 from section */
    margin: 0 0 0;      /* margin-bottom はタブとの差で決める */
    font-size: 40px;
    font-weight: 700;
    color: #a0bf3a;
    line-height: 1;
    /* Figmaではtab top:178px → 178-80=98px のスペース */
    padding-bottom: 58px; /* 98px - tab高さ47px/2 ≒ 58px ≒ margin-bottomの分 */
}

/* カテゴリータブ
   Figma: top:178, gap:20, w:151, h:47, border-radius:5px */
.iap-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    margin-bottom: 40px; /* タブ bottom(178+47=225) → row top(265) = 40px */
}

.iap-tab {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 151px;
    height: 47px;
    font-size: 20px;
    font-weight: 500;
    border-radius: 5px;
    border: 1px solid #5a4a3f;
    background: #fff;
    color: #5a4a3f;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
}

/* アクティブ・ホバー: bg #a0bf3a, border #a0bf3a, text white */
.iap-tab.active,
.iap-tab:hover {
    background: #a0bf3a;
    border-color: #a0bf3a;
    color: #fff;
}

/* リストコンテナ（上部ボーダー）
   Figma: list rows left:130 → inner padding 120 → rows are 10px further right
   → .iap-list に margin-left:10px / margin-right:-10px で offset */
.iap-list {
    border-top: 1px solid #5a4a3f;
    margin-left: 10px;  /* left:130 = padding(120) + 10px */
    margin-right: -10px;
}

/* 各行: h:81px, border-bottom, px:30, gap:49, flex center
   Figma: h:81, border-b #5a4a3f, px:30, gap:49 */
.iap-row {
    display: flex;
    align-items: center;
    gap: 49px;
    min-height: 81px;
    padding: 0 30px;
    border-bottom: 1px solid #5a4a3f;
    transition: background 0.15s;
}

.iap-row:hover {
    background: rgba(160, 191, 58, 0.06);
}

/* 日付: w:114, 24px, #5a4a3f
   Figma: text-[24px] w-[114px] */
.iap-date {
    flex-shrink: 0;
    width: 114px;
    font-size: 24px;
    font-weight: 500;
    color: #5a4a3f;
    white-space: nowrap;
}

/* カテゴリーバッジ: h:25, w:84, border 1px #5a4a3f, rounded-[3px], 12px
   Figma: bg-white border border-[#5a4a3f] h-[25px] w-[84px] rounded-[3px] text-[12px] */
.iap-cat {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 84px;
    height: 25px;
    font-size: 12px;
    font-weight: 500;
    color: #5a4a3f;
    background: #fff;
    border: 1px solid #5a4a3f;
    border-radius: 3px;
    white-space: nowrap;
    overflow: hidden;
    padding: 0 4px;
}

/* タイトル: 24px, #5a4a3f, flex:1 */
.iap-row-title {
    flex: 1;
    min-width: 0;
    font-size: 24px;
    font-weight: 500;
    color: #5a4a3f;
}

.iap-row-title a {
    color: inherit;
    text-decoration: none;
}

.iap-row-title a:hover {
    color: #a0bf3a;
    text-decoration: underline;
}

/* 空投稿メッセージ */
.iap-empty {
    padding: 40px 30px;
    font-size: 18px;
    color: #888;
    text-align: center;
}

/* もっと見るボタン
   Figma: left:560, top:669, w:320, h:60, bg #fcca15, rounded-[5px], 20px white
   560px = (1440-320)/2 → centered in 1440px
   ただし inner は 1440-240(padding)=1200px なのでボタンは inner の中央 */
.iap-more-wrap {
    display: flex;
    justify-content: center;
    /* top:669 - (top:265 + 4行×81 = 589) = 80px gap after rows */
    margin-top: 80px;
    margin-left: -10px; /* iap-list のオフセットを戻す */
}

.iap-more-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 320px;
    height: 60px;
    background: #fcca15;
    border: 1px solid #fcca15;
    border-radius: 5px;
    font-size: 20px;
    font-weight: 500;
    color: #fff;
    cursor: pointer;
    transition: opacity 0.2s;
}

.iap-more-btn:hover { opacity: 0.85; }
.iap-more-btn:disabled { opacity: 0.4; cursor: not-allowed; }

/* ===================================
   投稿記事ページ（single.php）
   Figma node: 384:1134
=================================== */
.info-post-section {
    background: #fffae8;
    padding-bottom: 80px;
    min-height: 600px;
}

.info-post-inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 120px;
}

/* "Information" ラベル（32px Bold #a0bf3a 中央） */
.info-post-label {
    padding-top: 80px;
    margin: 0 0 4px;
    font-size: 32px;
    font-weight: 700;
    color: #a0bf3a;
    text-align: center;
    line-height: 1;
}

/* カテゴリー名（40px Bold #5a4a3f 中央） */
.info-post-category {
    margin: 0 0 38px;
    font-size: 40px;
    font-weight: 700;
    color: #5a4a3f;
    text-align: center;
    line-height: 1;
}

/* 白カード（border-radius:60px） */
.info-post-card {
    background: #fff;
    border-radius: 60px;
    padding: 80px 120px 100px;
    max-width: 1200px;
    margin: 0 auto;
}

/* タイトル */
.info-post-title {
    font-size: 32px;
    font-weight: 700;
    color: #a0bf3a;
    margin: 0 0 20px;
    line-height: 1.4;
}

/* 日付 */
.info-post-date {
    font-size: 20px;
    font-weight: 500;
    color: #5a4a3f;
    margin: 0 0 60px;
}

/* 本文 */
.info-post-content {
    font-size: 24px;
    font-weight: 500;
    color: #5a4a3f;
    line-height: 1.8;
}

.info-post-content p    { margin-bottom: 1.5em; }
.info-post-content img  { max-width: 100%; height: auto; border-radius: 8px; margin: 20px 0; }
.info-post-content h2   { font-size: 28px; font-weight: 700; color: #a0bf3a; margin: 40px 0 16px; }
.info-post-content h3   { font-size: 24px; font-weight: 700; color: #5a4a3f; margin: 30px 0 12px; }

/* 一覧に戻るボタン */
.info-post-back-wrap {
    display: flex;
    justify-content: center;
    margin-top: 60px;
}

.info-post-back-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 320px;
    height: 60px;
    background: #fcca15;
    border: 1px solid #fcca15;
    border-radius: 5px;
    font-size: 20px;
    font-weight: 500;
    color: #fff;
    text-decoration: none;
    transition: opacity 0.2s;
}

.info-post-back-btn:hover { opacity: 0.85; }

/* ===================================
   サブページ共通 MV（subpage-mv.php 用・他ページ向け）
=================================== */
.subpage-mv {
    background: #fff;
    padding-top: 40px;
}

.subpage-hero {
    width: 100%;
    /* height: 288px; */
    overflow: hidden;
}

.subpage-hero-img {
    width: 100%;
    /* height: 100%; */
    object-fit: cover;
    object-position: center;
    display: block;
}

.subpage-subnav {
    display: flex;
    align-items: stretch;
    justify-content: center;
    height: 100px;
    background: #fcca15;
    overflow: hidden;
}

.subpage-subnav-item {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 200px;
    height: 100px;
    font-size: 18px;
    font-weight: 500;
    color: #fff;
    text-decoration: none;
    border-right: 2px solid #fff;
    white-space: nowrap;
    transition: background 0.2s;
}

.subpage-subnav-item:first-child {
    border-left: 2px solid #fff;
}

.subpage-subnav-item:hover {
    background: rgba(0, 0, 0, 0.1);
}

.subpage-subnav-item.is-current {
    background: rgba(0, 0, 0, 0.12);
    font-weight: 700;
}

/* ===================================
   レスポンシブ (max-width: 1024px)
=================================== */
@media (max-width: 1024px) {
    .iap-mv-hero { height: 220px; }

    .iap-subnav-item { width: 160px; font-size: 15px; }

    .iap-inner { padding: 0 40px; }

    .iap-title  { font-size: 30px; }

    .iap-tab    { width: 130px; font-size: 16px; }

    .iap-date   { font-size: 18px; width: 90px; }

    .iap-row-title { font-size: 18px; }

    .info-post-inner { padding: 0 40px; }

    .info-post-card  { padding: 60px 60px 80px; border-radius: 40px; }

    .info-post-title { font-size: 26px; }

    .info-post-content { font-size: 18px; }

    .subpage-hero { height: 220px; }

    .subpage-subnav-item { width: 160px; font-size: 15px; }
}

/* ===================================
   レスポンシブ (max-width: 768px)
=================================== */
@media (max-width: 768px) {
    /* iap MV */
    .iap-mv { margin-top: 60px; }

    .iap-mv-hero { height: 147px; margin-top: 0; }

    /* SPではサブナビ非表示（Figmaに存在しない） */
    .iap-subnav { display: none; }

    /* iap Section */
    .iap-inner { padding: 0 24px; }

    .iap-title {
        font-size: 24px;
        padding-top: 32px;
        padding-bottom: 35px;
    }

    .iap-tabs {
        display: flex;
        flex-wrap: wrap;
        gap: 8px 20px;
        margin-bottom: 24px;
    }

    .iap-tab {
        width: 83px;
        height: 25px;
        font-size: 12px;
        padding: 0;
    }

    .iap-list { margin-left: 0; margin-right: 0; }

    .iap-row {
        gap: 10px;
        flex-wrap: nowrap;
        padding: 0;
        min-height: 49px;
        align-items: center;
    }

    .iap-date { font-size: 16px; width: 76px; }

    .iap-cat { width: 52px; height: 23px; font-size: 10px; }

    .iap-row-title {
        font-size: 12px;
        letter-spacing: -0.04em;
        flex: 1;
        width: auto;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .iap-more-wrap { margin-top: 32px; margin-left: 0; }

    .iap-more-btn { width: 320px; height: 35px; font-size: 12px; }

    /* single post */
    .info-post-inner    { padding: 0 24px; }

    .info-post-label {
        font-size: 14px;
        padding-top: 32px;
        margin-bottom: 2px;
    }

    .info-post-category {
        font-size: 24px;
        margin-bottom: 17px;
    }

    .info-post-card {
        padding: 32px 24px 48px;
        border-radius: 40px;
    }

    .info-post-title {
        font-size: 18px;
        margin-bottom: 12px;
    }

    .info-post-date {
        font-size: 16px;
        margin-bottom: 24px;
    }

    .info-post-content  { font-size: 12px; line-height: 1.8; }

    .info-post-content h2 { font-size: 16px; }
    .info-post-content h3 { font-size: 14px; }

    .info-post-back-wrap { margin-top: 32px; }
    .info-post-back-btn  { width: 320px; height: 35px; font-size: 12px; }

    /* subpage-mv */
    .subpage-hero { height: 140px; }

    .subpage-subnav {
        display: none;
        justify-content: flex-start;
    }

    .subpage-subnav-item {
        width: calc(100% / 3);
        height: 50px;
        font-size: 13px;
        border-left: none;
        border-right: 2px solid #fff;
        border-bottom: 2px solid #fff;
    }

    .subpage-subnav-item:first-child {
        border-left: none;
    }
}

/* ===================================
   代表メッセージ 下層ページ
=================================== */
.msg-section {
    background: var(--color-yellow-bg);
    padding: 80px 0 100px;
}

.msg-inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 120px;
}

.msg-section-label {
    text-align: center;
    font-size: 32px;
    font-weight: 700;
    color: #a0bf3a;
    margin-bottom: 8px;
}

.msg-section-title {
    text-align: center;
    font-size: 40px;
    font-weight: 700;
    color: #5a4a3f;
    margin-bottom: 60px;
}

.msg-card {
    background: #fff;
    border-radius: 60px;
    padding: 60px;
    display: flex;
    gap: 80px;
    align-items: flex-start;
}

.msg-photo {
    flex: 0 0 300px;
    height: 350px;
    border-radius: 20px;
    overflow: hidden;
    position: sticky;
    top: 160px;
    align-self: flex-start;
}

.msg-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top;
}

.msg-content {
    flex: 1;
    padding-top: 10px;
}

.msg-catchcopy {
    font-size: 32px;
    font-weight: 700;
    color: #a0bf3a;
    line-height: 1.4;
    margin-bottom: 40px;
}

.msg-text {
    font-size: 24px;
    line-height: 1.8;
    color: #5a4a3f;
    margin-bottom: 0;
}

.msg-name {
    font-size: 24px;
    font-weight: 500;
    color: #5a4a3f;
    text-align: right;
    margin-top: 40px;
}

/* --- 1200px --- */
@media (max-width: 1200px) {
    .msg-inner { padding: 0 40px; }
    .msg-card { gap: 40px; }
    .msg-text { font-size: 20px; }
    .msg-catchcopy { font-size: 28px; }
}

/* --- 768px (SP) --- */
@media (max-width: 768px) {
    .msg-section { padding: 50px 0 60px; }
    .msg-inner { padding: 0 20px; }
    .msg-section-label { font-size: 20px; margin-bottom: 6px; }
    .msg-section-title { font-size: 28px; margin-bottom: 32px; }
    .msg-card {
        flex-direction: column;
        gap: 24px;
        padding: 32px 24px;
        border-radius: 40px;
    }
    .msg-photo {
        width: 100%;
        flex: none;
        height: 280px;
        position: static;
    }
    .msg-catchcopy { font-size: 18px; margin-bottom: 24px; }
    .msg-text { font-size: 12px; line-height: 1.8; }
    .msg-name { font-size: 12px; margin-top: 24px; }
}

/* ===================================
   会社案内ページ
=================================== */
.company-section {
    background: var(--color-yellow-bg);
    padding: 80px 0 0;
}

.company-map-section {
    background: var(--color-yellow-bg);
    padding: 80px 0 100px;
}

.company-inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 120px;
}

.company-section-head {
    text-align: center;
    margin-bottom: 60px;
}

.company-section-label {
    font-size: 32px;
    font-weight: 700;
    color: #a0bf3a;
    margin-bottom: 4px;
}

.company-section-title {
    font-size: 40px;
    font-weight: 700;
    color: #5a4a3f;
    line-height: 1;
    margin: 0;
}

/* テーブル */
.company-table {
    border-radius: 20px;
    overflow: hidden;
    margin-bottom: 100px;
}

.company-row {
    display: flex;
    align-items: stretch;
    border-bottom: 1px solid #5a4a3f;
    min-height: 81px;
}

.company-row--last {
    border-bottom: none;
}

.company-th {
    flex: 0 0 250px;
    background: var(--color-yellow);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    font-weight: 500;
    color: #5a4a3f;
    padding: 16px 10px;
    text-align: center;
}

.company-td {
    flex: 1;
    background: #fff;
    display: flex;
    align-items: center;
    font-size: 24px;
    color: #5a4a3f;
    padding: 16px 40px;
    line-height: 1.6;
}

/* アクセスマップ */
.company-access-text {
    font-size: 24px;
    color: #5a4a3f;
    line-height: 1.6;
    margin-bottom: 32px;
}

.company-map-wrap {
    width: 100%;
    border-radius: 10px;
    overflow: hidden;
}

.company-map-wrap iframe {
    display: block;
    width: 100%;
}

/* --- 1200px --- */
@media (max-width: 1200px) {
    .company-inner { padding: 0 40px; }
    .company-th { font-size: 18px; flex: 0 0 200px; }
    .company-td { font-size: 18px; padding: 16px 24px; }
    .company-access-text { font-size: 18px; }
}

/* --- 768px (SP) --- */
@media (max-width: 768px) {
    .company-section { padding: 50px 0 0; }
    .company-map-section { padding: 50px 0 60px; }
    .company-inner { padding: 0 20px; }
    .company-section-label { font-size: 14px; }
    .company-section-title { font-size: 24px; }
    .company-section-head { margin-bottom: 32px; }
    .company-table { margin-bottom: 60px; }
    .company-row { min-height: 56px; }
    .company-th {
        flex: 0 0 100px;
        font-size: 12px;
        padding: 12px 8px;
    }
    .company-td {
        font-size: 12px;
        padding: 12px 16px;
    }
    .company-access-text { font-size: 12px; }
    .company-map-wrap iframe { height: 280px; }
}
