/* ==========================================
   人材育成計画 策定支援 会社別ページ ver2（プラン詳細 ver2/ver3 の pv2 デザインを流用 / 2026-09-25 作成）
   前半は /plan/ver3/style.css と同一。人材育成計画固有のスタイルは末尾の「hv2」ブロック
   ========================================== */
:root {
    --pv2-navy: #1b2d4f;
    --pv2-navy-deep: #13223d;
    --pv2-green: #1f7a4d;
    --pv2-green-deep: #186540;
    --pv2-gold: #b8894a;
    --pv2-gold-deep: #a07537;
    --pv2-text: #222b38;
    --pv2-muted: #6b7482;
    --pv2-line: #e3e7ee;
    --pv2-bg: #f5f7fa;
    --pv2-white: #ffffff;
    --pv2-radius: 6px;
    --pv2-font: 'Noto Sans JP', '游ゴシック体', YuGothic, '游ゴシック', "Yu Gothic", 'メイリオ', sans-serif;
}

.pv2 { font-family: var(--pv2-font); color: var(--pv2-text); background: var(--pv2-white); overflow-x: hidden; font-size: .9375rem; }
/* サイト共通 css/style.css の p { font-size: 14px }（991px以下は 12px）を打ち消し、親要素のサイズを継承させる。
   :where() で詳細度を .pv2 と同じ(0,1,0)に抑えているため、以降の各クラス指定（.pv2-note 等）が優先される */
.pv2 :where(p) { font-size: inherit; color: inherit; } /* 共通CSSの p { color: #7a7e8a / #333 } も打ち消す（濃紺背景で文字が沈むため） */
/* 濃紺セクション内のDB由来HTML（見出し・リンク）も背景に合わせる */
.pv2-dark :where(h1, h2, h3, h4, h5, h6, li, strong, b, span) { color: inherit; }
.pv2-dark :where(a) { color: #e6c89a; text-decoration: underline; }
.pv2-dark :where(a):hover { color: #fff; }
.pv2 [id] { scroll-margin-top: 90px; }
.pv2 img { max-width: 100%; }
.breadcrumb { background-color: var(--pv2-white); margin-bottom: 0; }
/* パンくず: 背景を全幅の帯にして、本文幅で色が途切れないようにする */
.pv2-breadcrumb { background: var(--pv2-white); border-bottom: 1px solid var(--pv2-line); }
.pv2-breadcrumb .breadcrumb { background: transparent; padding: 12px 0; font-size: .8rem; }

/* ===== Common ===== */
.pv2-section { padding: 72px 0; }
.pv2-title {
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--pv2-text);
    margin: 0 0 32px;
    letter-spacing: .04em;
}
.pv2-title small {
    display: block;
    font-size: .72rem;
    font-weight: 500;
    color: var(--pv2-muted);
    letter-spacing: .18em;
    margin-top: 6px;
}
.pv2-title-row { display: flex; justify-content: space-between; align-items: flex-end; flex-wrap: wrap; gap: 8px 16px; margin-bottom: 32px; }
.pv2-title-row .pv2-title { margin-bottom: 0; }
.pv2-title-note { font-size: .78rem; color: var(--pv2-muted); margin: 0; }
.pv2-center-title { font-size: 1.6rem; font-weight: 700; text-align: center; margin: 0 0 36px; letter-spacing: .04em; }
.pv2-center-title span { color: var(--pv2-green); }
.pv2-link { font-size: .85rem; font-weight: 700; color: var(--pv2-navy); }
.pv2-link:hover { color: var(--pv2-green); text-decoration: none; }
.pv2-link i { margin-left: 4px; font-size: .75em; }
.pv2-note { font-size: .78rem; color: var(--pv2-muted); margin: 12px 0 0; }

.pv2-dark { background: var(--pv2-navy); color: #fff; }
.pv2-dark .pv2-title { color: #fff; }
.pv2-dark .pv2-title small { color: rgba(255,255,255,.6); }

/* 番号丸 */
.pv2-num {
    flex: none;
    width: 48px; height: 48px;
    border-radius: 50%;
    background: var(--pv2-gold);
    color: #fff;
    font-weight: 700;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 1rem;
}
.pv2-num-sm { width: 30px; height: 30px; font-size: .78rem; }

/* 画像がない場合のダミー */
.pv2-dummy {
    background: linear-gradient(135deg, #dfe5ee 0%, #c9d2df 100%);
    position: relative;
}
.pv2-dummy::after {
    content: "\f03e";
    font-family: "Font Awesome 5 Free", "Font Awesome 6 Free";
    font-weight: 400;
    position: absolute; inset: 0;
    display: flex; align-items: center; justify-content: center;
    font-size: 2.4rem;
    color: rgba(27,45,79,.25);
}

/* リッチテキスト（DBのHTMLをそのまま出す領域） */
.pv2-rich { line-height: 1.95; font-size: .95rem; }
.pv2-rich h2, .pv2-rich h3 { font-size: 1.15rem; font-weight: 700; margin: 1.6em 0 .6em; padding-left: 12px; border-left: 4px solid var(--pv2-green); }
.pv2-rich p { margin-bottom: 1em; }

/* ===== Buttons ===== */
.pv2-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 10px;
    font-weight: 700;
    border-radius: var(--pv2-radius);
    padding: 12px 28px;
    border: 2px solid transparent;
    transition: background .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease;
    text-decoration: none !important;
    cursor: pointer;
    line-height: 1.4;
}
.pv2-btn i { font-size: .85em; }
.pv2-btn-lg { padding: 18px 36px; font-size: 1.05rem; }
.pv2-btn-sm { padding: 8px 20px; font-size: .85rem; }
.pv2-btn-block { display: flex; width: 100%; }
.pv2-btn-primary { background: var(--pv2-green); color: #fff; box-shadow: 0 6px 16px rgba(31,122,77,.28); }
.pv2-btn-primary:hover { background: var(--pv2-green-deep); color: #fff; transform: translateY(-2px); }
.pv2-btn-navy { background: var(--pv2-navy-deep); color: #fff; }
.pv2-btn-navy:hover { background: #0b1629; color: #fff; }
.pv2-btn-gold { background: var(--pv2-gold); color: #fff; }
.pv2-btn-gold:hover { background: var(--pv2-gold-deep); color: #fff; }
.pv2-btn-outline { background: #fff; color: var(--pv2-navy); border-color: var(--pv2-navy); }
.pv2-btn-outline:hover { background: var(--pv2-navy); color: #fff; }
.pv2-btn-ghost { background: transparent; color: #fff; border-color: rgba(255,255,255,.7); }
.pv2-btn-ghost:hover { background: #fff; color: var(--pv2-navy); }

/* ===== 1. Hero ===== */
.pv2-hero {
    background: linear-gradient(100deg, #f4f7fb 0%, #f4f7fb 55%, #eaf0f7 100%);
    padding: 48px 0 56px;
}
.pv2-hero-eyebrow { font-size: .85rem; font-weight: 700; color: var(--pv2-muted); margin-bottom: 14px; letter-spacing: .06em; }
.pv2-hero-title {
    /* 明朝体で上品に。Webフォントは読まず、OS標準の明朝（Mac: 游明朝/ヒラギノ明朝, Win: 游明朝）を使用 */
    font-family: "游明朝体", "YuMincho", "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "Noto Serif JP", serif;
    font-size: 2.4rem;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: .02em;
    color: var(--pv2-navy-deep);
    margin: 0 0 20px;
    /* PHP側で入れた <wbr> の位置でのみ改行（全ブラウザ共通）。収まらない場合のみ任意位置で折り返す */
    word-break: keep-all;
    overflow-wrap: anywhere;
    text-wrap: balance;
}
/* タイトル上のゴールドの短い罫線 */
.pv2-hero-title::before {
    content: ""; display: block;
    width: 44px; height: 2px;
    background: var(--pv2-gold);
    margin-bottom: 18px;
}
.pv2-hero-sub { font-size: .98rem; line-height: 1.9; color: #4a5361; margin-bottom: 26px; }
.pv2-facts { list-style: none; padding: 0; margin: 0 0 28px; display: flex; flex-wrap: wrap; gap: 10px; }
.pv2-facts li {
    display: flex; align-items: center; gap: 10px;
    background: #fff;
    border: 1px solid var(--pv2-line);
    border-radius: var(--pv2-radius);
    padding: 10px 16px;
    min-width: 140px;
}
.pv2-facts i { font-size: 1.15rem; color: var(--pv2-navy); }
.pv2-facts span { font-size: .98rem; font-weight: 700; line-height: 1.3; }
.pv2-facts em { display: block; font-style: normal; font-size: .68rem; font-weight: 500; color: var(--pv2-muted); }
.pv2-facts small { font-size: .65rem; font-weight: 500; color: var(--pv2-muted); margin-left: 2px; }
.pv2-hero-visual { position: relative; margin-top: 32px; }
.pv2-hero-img { border-radius: 10px; overflow: hidden; aspect-ratio: 4 / 3; box-shadow: 0 16px 40px rgba(27,45,79,.14); }
.pv2-hero-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pv2-hero-video {
    position: absolute; right: -8px; bottom: -28px;
    width: 300px;
    background: rgba(27,45,79,.92);
    border: 1px solid rgba(255,255,255,.3);
    border-radius: 10px;
    padding: 8px;
    color: #fff;
    text-align: left;
    box-shadow: 0 10px 30px rgba(0,0,0,.22);
    cursor: pointer;
    transition: transform .2s ease;
}
.pv2-hero-video:hover { transform: translateY(-3px); }
.pv2-hero-video-thumb { position: relative; display: block; border-radius: 6px; overflow: hidden; aspect-ratio: 16 / 9; }
.pv2-hero-video-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pv2-hero-video-play {
    position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
    width: 44px; height: 44px; border-radius: 50%;
    background: rgba(255,255,255,.92); color: var(--pv2-navy);
    display: flex; align-items: center; justify-content: center; padding-left: 3px;
}
.pv2-hero-video-text { display: block; font-size: .78rem; line-height: 1.5; padding: 10px 6px 4px; opacity: .9; }
.pv2-hero-video-text strong { display: block; font-size: .92rem; opacity: 1; }

/* ===== Hero 無料相談カード（動画がないプランで動画カードの代わりに表示・PCのみ） ===== */
.pv2-hero-cta-card {
    /* 右カラム画像レイアウト: 画像の下半分に重ねて配置 */
    position: relative; z-index: 3;
    width: 88%; margin: -90px 0 0 auto;
    background: rgba(255,255,255,.97);
    border-top: 4px solid var(--pv2-gold);
    border-radius: 10px;
    padding: 24px 26px 26px;
    box-shadow: 0 18px 44px rgba(19,34,61,.22);
}
.pv2-hero-cta-eyebrow { font-size: .68rem; font-weight: 700; letter-spacing: .18em; color: var(--pv2-gold); margin-bottom: 6px; }
.pv2-hero-cta-title { font-size: 1.3rem; font-weight: 700; line-height: 1.5; color: var(--pv2-navy-deep); margin-bottom: 14px; }
.pv2-hero-cta-points { list-style: none; margin: 0 0 16px; padding: 0; }
.pv2-hero-cta-points li { font-size: .9rem; font-weight: 700; padding: 5px 0; display: flex; align-items: center; gap: 10px; }
.pv2-hero-cta-points i { width: 20px; height: 20px; border-radius: 50%; background: var(--pv2-green); color: #fff; font-size: .6rem; display: inline-flex; align-items: center; justify-content: center; }
.pv2-hero-cta-author { display: flex; align-items: center; gap: 10px; padding: 12px 0; margin-bottom: 16px; border-top: 1px solid var(--pv2-line); border-bottom: 1px solid var(--pv2-line); }
.pv2-hero-cta-author img { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; object-position: center 20%; }
.pv2-hero-cta-author span { font-size: .9rem; font-weight: 700; line-height: 1.3; }
.pv2-hero-cta-author em { display: block; font-style: normal; font-size: .68rem; font-weight: 500; color: var(--pv2-muted); }
.pv2-hero-cta-card .pv2-btn-lg { padding: 16px 20px; font-size: 1rem; }

/* ===== 1'. Hero 全面画像（fv-hero-{plan_id}-pc がある場合） ===== */
.pv2-hero.pv2-hero-full { position: relative; padding: 0; background: #f7f5f1; overflow: hidden; } /* 汎用 .pv2-hero のSP用paddingを打ち消す */
.pv2-hero-bg img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 70% 30%; }
.pv2-hero-full .pv2-hero-container { position: relative; z-index: 2; }
.pv2-hero-full .pv2-facts li { background: rgba(255,255,255,.92); }
/* 768px以上（タブレット縦〜PC）はデスクトップと同じレイアウト */
@media (min-width: 768px) {
    .pv2-hero-full { min-height: 576px; display: flex; align-items: center; }
    .pv2-hero-bg { position: absolute; inset: 0; }
    /* 左側の文字を読みやすくする白グラデーション（人物側は透過） */
    .pv2-hero-full::before {
        content: ""; position: absolute; inset: 0; z-index: 1;
        background: linear-gradient(90deg, rgba(255,255,255,.94) 0%, rgba(255,255,255,.82) 36%, rgba(255,255,255,0) 58%);
    }
    .pv2-hero-full .pv2-hero-container { padding-top: 52px; padding-bottom: 60px; }
    .pv2-hero-full .pv2-hero-title { font-size: 2.45rem; }
    .pv2-hero-visual-full { position: static; margin: 0; }
    .pv2-hero-full .pv2-hero-video { right: 15px; bottom: 40px; width: 360px; padding: 10px; }
    .pv2-hero-full .pv2-hero-video-play { width: 64px; height: 64px; font-size: 1.3rem; padding-left: 5px; }
    /* 全面画像レイアウト: 人物の顔にかからないよう右下にコンパクトに配置 */
    .pv2-hero-full .pv2-hero-cta-card { position: absolute; right: 15px; bottom: 40px; width: 360px; margin: 0; padding: 20px 22px 22px; }
    .pv2-hero-full .pv2-hero-cta-title { font-size: 1.15rem; margin-bottom: 10px; }
    .pv2-hero-full .pv2-hero-cta-points { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-bottom: 12px; }
    .pv2-hero-full .pv2-hero-cta-points li { font-size: .8rem; padding: 2px 0; gap: 6px; }
    /* 全面画像時は人物の顔を隠さないよう、見出し英字・講師欄を省いて高さを抑える */
    .pv2-hero-full .pv2-hero-cta-card { bottom: 32px; }
    .pv2-hero-full .pv2-hero-cta-eyebrow,
    .pv2-hero-full .pv2-hero-cta-author,
    .pv2-hero-full .pv2-hero-cta-title br { display: none; }
    .pv2-hero-full .pv2-hero-cta-card .pv2-btn-lg { padding: 14px 18px; }
}
@media (min-width: 992px) and (max-width: 1199.98px) {
    .pv2-hero-full .pv2-hero-title { font-size: 2.1rem; }
    .pv2-hero-full .pv2-hero-video { width: 290px; }
}
/* タブレット縦（768〜991px）: レイアウトはPCのまま、文字・カードを一回り小さく */
@media (min-width: 768px) and (max-width: 991.98px) {
    .pv2-hero-full { min-height: 500px; }
    .pv2-hero-full .pv2-hero-container { padding-top: 40px; padding-bottom: 48px; }
    .pv2-hero-full::before {
        background: linear-gradient(90deg, rgba(255,255,255,.95) 0%, rgba(255,255,255,.86) 45%, rgba(255,255,255,0) 72%);
    }
    .pv2-hero-full .pv2-hero-title { font-size: 1.7rem; }
    .pv2-hero-full .pv2-hero-title::before { margin-bottom: 12px; }
    .pv2-hero-full .pv2-hero-video { width: 220px; bottom: 24px; padding: 6px; }
    .pv2-hero-full .pv2-hero-video-play { width: 44px; height: 44px; font-size: 1rem; }
    .pv2-hero-full .pv2-hero-cta-card { width: 270px; bottom: 24px; padding: 16px 16px 18px; }
    .pv2-hero-full .pv2-hero-cta-title { font-size: 1rem; }
    .pv2-hero-full .pv2-hero-cta-points li { font-size: .74rem; }
}

@media (max-width: 767.98px) {
    /* SP: 画像を上部に敷き、下へ白くフェードさせて文字を重ねる */
    .pv2-hero-full { background: #fff; }
    .pv2-hero-bg { position: absolute; top: 0; left: 0; right: 0; height: min(118vw, 680px); }
    .pv2-hero-bg img { object-position: 76% 0; }
    .pv2-hero-full::before {
        content: ""; position: absolute; left: 0; right: 0; top: 0; z-index: 1;
        height: min(118vw, 680px);
        /* 画像全体に薄い白を重ねて文字の視認性を確保（上部の人物は見える程度）→ 下へ白くフェード */
        background:
            linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0) 24%, rgba(255,255,255,.8) 42%, rgba(255,255,255,.95) 60%, #fff 100%),
            linear-gradient(90deg, rgba(255,255,255,.5) 0%, rgba(255,255,255,0) 55%),
            linear-gradient(rgba(255,255,255,.45), rgba(255,255,255,.45));
    }
    .pv2-hero-full .pv2-hero-container { padding-top: min(58vw, 330px); padding-bottom: 40px; }
    .pv2-hero-full .pv2-hero-eyebrow {
        display: inline-block; background: var(--pv2-navy); color: #fff;
        font-size: .72rem; padding: 4px 10px; border-radius: 3px; margin-bottom: 10px;
    }
    .pv2-hero-full .pv2-hero-title { text-shadow: 0 0 12px #fff, 0 0 4px #fff; }
    .pv2-hero-full .pv2-hero-sub { color: #3a4350; }
    .pv2-hero-visual-full { width: 100%; padding: 0 15px; margin-top: 8px; }
    .pv2-hero-full .pv2-hero-video { position: relative; right: auto; bottom: auto; display: flex; align-items: center; gap: 10px; width: 100%; margin: 0; }
    .pv2-hero-full .pv2-hero-video .pv2-hero-video-thumb { width: 160px; flex: none; }
    .pv2-hero-full .pv2-hero-video .pv2-hero-video-text { padding: 0; }
}

/* ===== 2. Logos ===== */
.pv2-logos { padding: 40px 0 36px; border-bottom: 1px solid var(--pv2-line); }
.pv2-logos-head { text-align: center; font-weight: 700; font-size: 1rem; letter-spacing: .06em; margin-bottom: 22px; }
.pv2-logos-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
    margin: 0 0 16px;
    padding: 6px 4px 12px; /* hover時の枠・影がスクロール枠で切れないよう余白を確保 */
    scrollbar-width: thin;
    scrollbar-color: #c9d2df transparent;
}
.pv2-logos-scroll::-webkit-scrollbar { height: 6px; }
.pv2-logos-scroll::-webkit-scrollbar-thumb { background: #c9d2df; border-radius: 3px; }
.pv2-logos-row { display: flex; flex-wrap: nowrap; align-items: center; gap: 16px; width: max-content; margin: 0 auto; }
.pv2-logo {
    flex: none;
    width: 170px; height: 96px;
    padding: 8px 12px;
    background: #fff;
    border: 1px solid var(--pv2-line);
    border-radius: var(--pv2-radius);
    scroll-snap-align: start;
    display: flex; align-items: center; justify-content: center;
    transition: border-color .2s ease, box-shadow .2s ease;
}
/* 浮かせる/拡大はスクロール枠で縁が切れるため行わず、枠色と影のみ変化 */
.pv2-logo:hover, .pv2-logo:focus-visible { border-color: var(--pv2-navy); box-shadow: 0 2px 8px rgba(27,45,79,.14); outline: none; }
.pv2-logo img { width: 100%; height: 100%; object-fit: contain; }

/* ===== 3. Issues ===== */
.pv2-issues { background: var(--pv2-bg); }
.pv2-ig { display: flex; align-items: stretch; gap: 20px; max-width: 920px; margin: 0 auto; }
.pv2-ig-card { flex: 1; background: #fff; border-radius: var(--pv2-radius); box-shadow: 0 4px 18px rgba(27,45,79,.07); overflow: hidden; }
.pv2-ig-head { margin: 0; padding: 14px; text-align: center; font-weight: 700; font-size: .95rem; }
.pv2-ig-issue .pv2-ig-head { background: #eef1f5; }
.pv2-ig-goal .pv2-ig-head { background: var(--pv2-green); color: #fff; }
.pv2-ig ul { list-style: none; margin: 0; padding: 12px 22px 18px; }
.pv2-ig li { display: flex; align-items: flex-start; gap: 12px; padding: 12px 0; border-bottom: 1px dashed var(--pv2-line); font-size: .92rem; line-height: 1.6; }
.pv2-ig li:last-child { border-bottom: 0; }
.pv2-ig li i { flex: none; width: 28px; height: 28px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: .8rem; margin-top: -2px; }
.pv2-ig-issue li i { background: #eef1f5; color: var(--pv2-muted); }
.pv2-ig-goal li i { background: var(--pv2-green); color: #fff; }
.pv2-ig-arrow { flex: none; display: flex; align-items: center; font-size: 2.6rem; color: #9aa4b2; }

/* ===== 4. Features ===== */
.pv2-features-img { border-radius: 8px; overflow: hidden; aspect-ratio: 4 / 5; height: 100%; max-height: 460px; }
.pv2-features-img img { width: 100%; height: 100%; object-fit: cover; object-position: center 25%; display: block; }
.pv2-features-lead { font-size: 1.35rem; font-weight: 700; line-height: 1.6; margin: 0 0 20px; }
.pv2-features-list { list-style: none; margin: 0; padding: 0; }
.pv2-features-list li { display: flex; gap: 20px; padding: 22px 0; border-bottom: 1px solid var(--pv2-line); }
.pv2-features-list li:first-child { padding-top: 6px; }
.pv2-features-list li:last-child { border-bottom: 0; }
.pv2-features-list h4 { font-size: 1.05rem; font-weight: 700; margin: 4px 0 8px; }
.pv2-features-list p { font-size: .9rem; line-height: 1.8; color: #4a5361; margin: 0; }
.pv2-overview { margin-top: 48px; padding: 32px 36px; background: var(--pv2-bg); border-radius: 8px; }
.pv2-overview-body { font-size: .9rem; line-height: 1.9; color: #4a5361; }
.pv2-overview-body h2, .pv2-overview-body h3 { font-size: 1.05rem; color: var(--pv2-text); margin: 1.4em 0 .5em; }
.pv2-overview-body p { margin-bottom: .8em; }
.pv2-overview-body > :first-child { margin-top: 0; }
.pv2-overview-body > :last-child { margin-bottom: 0; }
.pv2-target { margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--pv2-line); }
.pv2-target-head { font-weight: 700; margin-bottom: 8px; }
.pv2-target-head i { color: var(--pv2-green); margin-right: 6px; }
.pv2-target ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.pv2-target li { background: #fff; border: 1px solid var(--pv2-line); border-radius: 999px; padding: 4px 14px; font-size: .85rem; }

/* ===== 5. Curriculum ===== */
.pv2-curriculum { padding-top: 24px; }
.pv2-curr-tab {
    border: 2px solid var(--pv2-gold);
    color: var(--pv2-gold-deep);
    background: #fffaf2;
    border-radius: var(--pv2-radius);
    text-align: center;
    font-weight: 700;
    padding: 10px 16px;
    margin-bottom: 12px;
}
.pv2-curr-list { list-style: none; margin: 0; padding: 0; position: relative; }
.pv2-curr-list > li { display: flex; align-items: flex-start; gap: 18px; padding: 18px 4px; border-bottom: 1px solid var(--pv2-line); position: relative; }
.pv2-curr-list > li::before { content: ""; position: absolute; left: 18px; top: 48px; bottom: -18px; border-left: 1px dashed #d6c2a2; }
.pv2-curr-list > li:last-child::before { display: none; }
.pv2-curr-list .pv2-num { position: relative; z-index: 1; }
.pv2-curr-time { flex: none; width: 110px; font-size: .85rem; color: var(--pv2-muted); padding-top: 5px; }
.pv2-curr-body h4 { font-size: 1rem; font-weight: 700; margin: 4px 0 6px; }
.pv2-curr-body p { font-size: .85rem; color: var(--pv2-muted); line-height: 1.7; margin: 0; }
.v2-curriculum-table { background: #fff; }

/* ===== 6. Instructor ===== */
.pv2-instructor { background: linear-gradient(135deg, var(--pv2-navy) 0%, var(--pv2-navy-deep) 100%); }
.pv2-inst { display: flex; gap: 36px; align-items: flex-start; }
.pv2-inst-img { flex: none; width: 240px; aspect-ratio: 4 / 5; border-radius: 6px; overflow: hidden; }
.pv2-inst-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pv2-inst-name { font-size: 1.6rem; font-weight: 700; color: #fff; margin: 0 0 6px; }
.pv2-inst-tagline { font-size: .88rem; font-weight: 700; color: rgba(255,255,255,.85); margin-bottom: 14px; }
.pv2-inst-profile { font-size: .88rem; line-height: 1.9; color: rgba(255,255,255,.78); margin-bottom: 22px; }
.pv2-inst-stats { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 12px; }
.pv2-inst-stats li { background: #fff; color: var(--pv2-text); border-radius: 4px; padding: 12px 18px; min-width: 130px; text-align: center; }
.pv2-inst-stats strong { display: block; font-size: 1.6rem; font-weight: 700; line-height: 1.2; }
.pv2-inst-stats strong small { font-size: .78rem; margin-left: 2px; }
.pv2-inst-stats span { font-size: .72rem; color: var(--pv2-muted); }

/* ===== 6.5 講師からのメッセージ（動画） ===== */
.pv2-message { background: var(--pv2-bg); }
.pv2-message-inner { display: flex; align-items: center; gap: 48px; }
.pv2-message-text { flex: 0 0 36%; }
.pv2-message-eyebrow { font-size: .72rem; font-weight: 700; letter-spacing: .18em; color: var(--pv2-gold); margin-bottom: 8px; }
.pv2-message-title { font-size: 1.6rem; font-weight: 700; margin: 0 0 16px; }
.pv2-message-lead { font-size: .92rem; line-height: 1.9; color: #4a5361; margin-bottom: 18px; }
.pv2-message-who { font-weight: 700; margin: 0; padding-left: 12px; border-left: 3px solid var(--pv2-gold); }
.pv2-message-who span { display: block; font-size: .78rem; font-weight: 500; color: var(--pv2-muted); margin-top: 2px; }
.pv2-message-video {
    flex: 1; position: relative; display: block; padding: 0; border: 0;
    aspect-ratio: 16 / 9; border-radius: 10px; overflow: hidden; cursor: pointer;
    background: var(--pv2-navy);
    box-shadow: 0 16px 40px rgba(27,45,79,.18);
}
.pv2-message-video img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease, opacity .3s ease; }
.pv2-message-video:hover img { transform: scale(1.03); opacity: .9; }
.pv2-message-play {
    position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
    width: 76px; height: 76px; border-radius: 50%;
    background: rgba(255,255,255,.94); color: var(--pv2-navy); font-size: 1.5rem;
    display: flex; align-items: center; justify-content: center; padding-left: 5px;
    box-shadow: 0 0 0 10px rgba(255,255,255,.25);
    transition: transform .2s ease;
}
.pv2-message-video:hover .pv2-message-play { transform: translate(-50%, -50%) scale(1.08); }
.pv2-message-duration { position: absolute; right: 12px; bottom: 12px; background: rgba(19,34,61,.8); color: #fff; font-size: .75rem; padding: 3px 10px; border-radius: 3px; }

/* ===== 3カラムグリッド（事例・声） ===== */
.pv2-grid3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }

/* ===== 7. Cases ===== */
.pv2-case { background: #fff; border: 1px solid var(--pv2-line); border-radius: var(--pv2-radius); overflow: hidden; display: flex; flex-direction: column; transition: box-shadow .2s ease, transform .2s ease; }
.pv2-case:hover { box-shadow: 0 10px 26px rgba(27,45,79,.12); transform: translateY(-3px); }
.pv2-case-img { position: relative; aspect-ratio: 16 / 10; background: #f3f5f8; display: flex; align-items: center; justify-content: center; padding: 18px 28px 30px; }
.pv2-case-img img { max-height: 100%; object-fit: contain; }
.pv2-case-tag { position: absolute; left: 12px; bottom: 10px; z-index: 1; background: #fff; border: 1px solid var(--pv2-line); border-radius: 999px; font-size: .72rem; font-weight: 700; padding: 3px 12px; }
.pv2-case-body { padding: 16px 18px 18px; display: flex; flex-direction: column; flex: 1; }
.pv2-case-text { font-size: .9rem; font-weight: 700; line-height: 1.7; margin-bottom: 14px; flex: 1; }
.pv2-case-client { font-size: .78rem; color: var(--pv2-muted); margin: 0; }
.pv2-case-client span { margin-left: 8px; padding-left: 8px; border-left: 1px solid var(--pv2-line); }

/* ===== 8. Voices ===== */
.pv2-voices { padding-top: 24px; }
.pv2-voice { background: #fff; border: 1px solid var(--pv2-line); border-radius: var(--pv2-radius); padding: 22px 22px 18px; display: flex; flex-direction: column; }
.pv2-voice-avatar { width: 52px; height: 52px; border-radius: 50%; background: #e8edf4; color: #9aa7b8; display: flex; align-items: center; justify-content: center; font-size: 1.3rem; margin-bottom: 14px; }
.pv2-voice p { font-size: .88rem; line-height: 1.85; margin: 0; flex: 1; }
.pv2-voice .pv2-voice-who { flex: none; font-size: .75rem; color: var(--pv2-muted); margin-top: 14px; }
.pv2-voice-hidden { display: none; }
.pv2-voice-hidden.is-show { display: flex; }

/* ===== Seminar ===== */
.pv2-seminar { padding: 0 0 56px; }
.pv2-seminar-link { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 18px; border: 2px solid var(--pv2-gold); border-radius: 8px; padding: 18px 24px; background: #fffaf2; color: var(--pv2-text); text-decoration: none !important; }
.pv2-seminar-link:hover { color: var(--pv2-text); background: #fff4e3; }
.pv2-seminar-badge { background: var(--pv2-gold); color: #fff; font-size: .72rem; font-weight: 700; padding: 3px 10px; border-radius: 3px; }
.pv2-seminar-go { margin-left: auto; font-weight: 700; color: var(--pv2-gold-deep); font-size: .9rem; }

/* ===== 9. Price ===== */
.pv2-price-grid { display: grid; gap: 22px; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.pv2-price-n1 { max-width: 460px; }
.pv2-price-card { background: #fff; color: var(--pv2-text); border-radius: 8px; padding: 28px 28px 24px; border: 3px solid transparent; display: flex; flex-direction: column; }
.pv2-price-card.is-recommend { border-color: var(--pv2-gold); box-shadow: 0 10px 30px rgba(0,0,0,.25); }
.pv2-price-name { text-align: center; font-weight: 700; font-size: 1.05rem; margin-bottom: 10px; }
.pv2-badge { display: inline-block; background: var(--pv2-gold); color: #fff; font-size: .75rem; padding: 2px 10px; border-radius: 3px; margin-left: 10px; vertical-align: 2px; }
.pv2-price-amount { text-align: center; font-size: 2.3rem; font-weight: 700; line-height: 1.2; padding-bottom: 18px; margin-bottom: 18px; border-bottom: 1px solid var(--pv2-line); }
.pv2-price-amount small { font-size: .85rem; margin-left: 4px; }
.pv2-price-info { list-style: none; margin: 0 0 22px; padding: 0; flex: 1; }
.pv2-price-info li { font-size: .85rem; line-height: 1.6; padding: 5px 0 5px 24px; position: relative; }
.pv2-price-info i { position: absolute; left: 0; top: 9px; font-size: .75rem; color: var(--pv2-navy); }
.pv2-price-notes { list-style: none; margin: 22px 0 0; padding: 0; font-size: .8rem; color: rgba(255,255,255,.75); line-height: 1.8; }
.pv2-price-notes li::before { content: "※"; margin-right: 4px; }
.pv2-price-raw { line-height: 1.9; max-width: 720px; }

/* ===== 10. FAQ ===== */
.pv2-faq-list { display: flex; flex-direction: column; gap: 12px; }
.pv2-faq-item { border: 1px solid var(--pv2-line); border-radius: var(--pv2-radius); background: #fff; }
.pv2-faq-item summary {
    list-style: none;
    display: flex; align-items: center; gap: 14px;
    padding: 14px 52px 14px 16px;
    font-weight: 700; font-size: .95rem;
    cursor: pointer; position: relative;
}
.pv2-faq-item summary::-webkit-details-marker { display: none; }
.pv2-faq-item summary::after { content: "+"; position: absolute; right: 20px; top: 50%; transform: translateY(-50%); font-size: 1.5rem; font-weight: 400; color: var(--pv2-navy); }
.pv2-faq-item[open] summary::after { content: "−"; }
.pv2-faq-q { flex: none; width: 28px; height: 28px; border-radius: 4px; background: var(--pv2-navy); color: #fff; display: flex; align-items: center; justify-content: center; font-size: .85rem; }
.pv2-faq-a { padding: 0 20px 18px 58px; font-size: .9rem; line-height: 1.85; color: #4a5361; }
.pv2-faq-a p { margin-bottom: .6em; }
.pv2-faq-a p:last-child { margin-bottom: 0; }

/* ===== 11. Final CTA ===== */
.pv2-final { background: linear-gradient(100deg, #f1f4f8 0%, #e8edf4 100%); padding: 0; overflow: hidden; }
.pv2-final-inner { display: flex; align-items: stretch; min-height: 340px; }
.pv2-final-text { flex: 1; padding: 56px 0; }
.pv2-final-text h2 { font-size: 1.7rem; font-weight: 700; line-height: 1.55; margin-bottom: 18px; }
.pv2-final-text > p:not(.pv2-note) { font-size: .95rem; line-height: 1.9; color: #4a5361; margin-bottom: 26px; }
.pv2-final-img { flex: none; width: 38%; min-height: 280px; }

/* ===== 12. Form ===== */
.pv2-form { background: var(--pv2-bg); }
.pv2-form-box { max-width: 760px; margin: 0 auto; background: #fff; border-radius: 10px; padding: 44px 40px 24px; box-shadow: 0 6px 24px rgba(27,45,79,.08); }
.pv2-form-box .pv2-center-title { margin-bottom: 12px; }
.pv2-form-lead { text-align: center; font-size: .85rem; color: var(--pv2-muted); margin-bottom: 8px; }
.pv2-form-lead i { color: var(--pv2-green); margin-left: 6px; }

/* ===== PC 右端固定CTA（縦タブ / industryページ準拠） ===== */
.pv2-side-cta {
    position: fixed; right: 0; top: 50%; z-index: 1000;
    transform: translate(100%, -50%);
    display: flex; flex-direction: column; align-items: center; gap: 8px;
    writing-mode: vertical-rl; text-orientation: mixed;
    background: linear-gradient(135deg, var(--pv2-green) 0%, var(--pv2-green-deep) 100%);
    color: #fff !important; text-decoration: none !important;
    padding: 18px 12px; border-radius: 8px 0 0 8px;
    box-shadow: -2px 2px 12px rgba(0,0,0,.2);
    transition: transform .3s ease, padding .2s ease, box-shadow .2s ease;
}
.pv2-side-cta.is-show { transform: translate(0, -50%); }
.pv2-side-cta:hover { padding-right: 16px; box-shadow: -4px 2px 20px rgba(31,122,77,.4); }
.pv2-side-cta-label { font-size: .9rem; font-weight: 700; letter-spacing: .08em; }
.pv2-side-cta-sub { font-size: .7rem; opacity: .9; }
.pv2-side-cta-sub i { font-size: .6rem; }

/* ===== Mobile Float CTA ===== */
.pv2-float-cta {
    position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 1030;
    display: none; align-items: center; justify-content: center; gap: 10px;
    background: var(--pv2-green); color: #fff !important; font-weight: 700;
    padding: 15px 16px; border-radius: 8px;
    box-shadow: 0 8px 24px rgba(0,0,0,.25);
    text-decoration: none !important;
    transform: translateY(140%);
    transition: transform .3s ease;
}
.pv2-float-cta.is-show { transform: translateY(0); }

/* ===== Related (旧ver2から継承) ===== */
.v2-section { padding: 64px 0; }
.v2-section-title { font-size: 1.5rem; font-weight: 700; margin-bottom: 24px; }
.v2-section-subtitle { color: var(--pv2-muted); margin-top: -12px; margin-bottom: 24px; }
.v2-related-categories { background: var(--pv2-bg) !important; }
.v2-related-card { background: #fff; border: 1px solid var(--pv2-line); border-radius: var(--pv2-radius); overflow: hidden; height: 100%; transition: transform .2s ease; }
.v2-related-card:hover { transform: translateY(-4px); }
.v2-related-body { padding: 12px 14px; }
.v2-related-badge { display: inline-block; background: var(--pv2-navy); color: #fff; font-size: .7rem; padding: 2px 8px; border-radius: 4px; margin-bottom: 6px; }
.v2-related-name { font-size: .85rem; font-weight: 600; line-height: 1.4; margin-bottom: 4px; }
.v2-related-name a:hover { color: var(--pv2-green) !important; }
.v2-related-company, .v2-related-time { font-size: .75rem; color: #999; margin: 0 0 4px; }
.v2-related-hidden { display: none; }
.v2-category-subtitle { font-size: 1.15rem; font-weight: 700; margin-bottom: 16px; padding-left: 12px; border-left: 4px solid var(--pv2-green); }
.v2-toggle-btn { background: transparent; border: 2px solid var(--pv2-navy); color: var(--pv2-navy); padding: 6px 20px; border-radius: 20px; font-size: .85rem; font-weight: 600; cursor: pointer; }
.v2-toggle-btn:hover { background: var(--pv2-navy); color: #fff; }
.v2-compact-link-card { display: flex; align-items: center; gap: 12px; background: #fff; border: 1px solid var(--pv2-line); border-radius: 8px; padding: 12px 16px; color: var(--pv2-text); text-decoration: none; }
.v2-compact-link-card:hover { color: var(--pv2-text); text-decoration: none; border-color: var(--pv2-navy); }
.v2-compact-link-card img { width: 48px; height: 48px; object-fit: contain; border-radius: 6px; flex-shrink: 0; }
.v2-compact-link-card h5 { font-size: .9rem; font-weight: 600; margin: 0 0 4px; }
.v2-compact-link-card .fa-chevron-right { margin-left: auto; color: #ccc; }

/* ===== 導入実績 詳細モーダル（旧ver2から継承） ===== */
.phm-clickable { cursor: pointer; }
.phm-content { border: 0; border-radius: 8px; overflow: hidden; }
.phm-header { background: var(--pv2-navy); color: #fff; align-items: center; }
.phm-header .close { color: #fff; opacity: .8; text-shadow: none; }
.phm-header .modal-title { font-weight: 500; color: #fff; }
.phm-header-main { display: flex; align-items: center; gap: 14px; }
.phm-logo { width: 64px; height: 64px; background: #fff; border-radius: 4px; display: flex; align-items: center; justify-content: center; overflow: hidden; flex: none; }
.phm-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.phm-meta { margin-top: 6px; display: flex; flex-wrap: wrap; gap: 6px; }
.phm-meta-tag { background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.3); border-radius: 3px; padding: 2px 10px; font-size: .74rem; }
.phm-body { padding: 20px 24px; }
.phm-section { margin-bottom: 18px; }
.phm-section:last-child { margin-bottom: 0; }
.phm-section-label { font-size: .85rem; font-weight: 700; color: var(--pv2-navy); margin-bottom: 6px; }
.phm-section-label i { color: var(--pv2-green); margin-right: 4px; }
.phm-section-text { font-size: .92rem; line-height: 1.8; color: #333; }
.phm-plan-block { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--pv2-line); }
.phm-plan-link { display: flex; align-items: center; gap: 14px; background: var(--pv2-bg); border: 1px solid var(--pv2-line); border-radius: 8px; padding: 12px 16px; text-decoration: none; color: #333; }
.phm-plan-link:hover { color: #333; text-decoration: none; border-color: var(--pv2-navy); }
.phm-plan-img { flex: none; width: 88px; }
.phm-plan-img img { width: 100%; border-radius: 6px; display: block; }
.phm-plan-name { flex: 1; min-width: 0; font-size: .95rem; font-weight: 700; line-height: 1.5; }
.phm-plan-arrow { flex: none; color: var(--pv2-green); }
.phm-footer { border-top: 1px solid var(--pv2-line); justify-content: center; }
.phm-cta-btn { background: var(--pv2-green); color: #fff; font-weight: 700; border-radius: 6px; padding: 11px 32px; }
.phm-cta-btn:hover { color: #fff; background: var(--pv2-green-deep); }

/* ===== Responsive ===== */
@media (min-width: 768px) {
    .pv2-hero-visual { margin-top: 0; }
    .pv2-features-img { height: 100%; }
}
/* タブレット縦（768〜991px）: 2カラム構成を維持したまま詰める */
@media (min-width: 768px) and (max-width: 991.98px) {
    .pv2-section { padding: 60px 0; }
    .pv2-hero-title { font-size: 1.7rem; }
    .pv2-hero-sub { font-size: .88rem; line-height: 1.8; margin-bottom: 20px; }
    .pv2-facts { gap: 8px; margin-bottom: 22px; }
    .pv2-facts li { min-width: 0; padding: 8px 10px; gap: 8px; }
    .pv2-facts span { font-size: .85rem; }
    .pv2-btn-lg { padding: 15px 22px; font-size: .95rem; }
    .pv2-hero-video { width: 220px; }
    .pv2-hero-cta-card { width: 94%; margin-top: -70px; padding: 18px 18px 20px; }
    .pv2-hero-cta-title { font-size: 1.1rem; }
    .pv2-features-lead { font-size: 1.15rem; }
    .pv2-features-list li { gap: 14px; padding: 16px 0; }
    .pv2-num { width: 40px; height: 40px; font-size: .9rem; }
    .pv2-num-sm { width: 30px; height: 30px; font-size: .78rem; }
    .pv2-curr-time { width: 90px; }
    .pv2-grid3 { grid-template-columns: repeat(2, 1fr); }
    .hv2-deliv-grid { grid-template-columns: repeat(2, 1fr); }
    .pv2-inst { gap: 24px; }
    .pv2-inst-img { width: 190px; }
    .pv2-inst-name { font-size: 1.35rem; }
    .pv2-inst-stats li { min-width: 0; flex: 1 1 calc(33% - 12px); padding: 10px 8px; }
    .pv2-inst-stats strong { font-size: 1.3rem; }
    .pv2-message-inner { gap: 28px; }
    .pv2-message-title { font-size: 1.35rem; }
    .pv2-final-text h2 { font-size: 1.4rem; }
    .pv2-final-img { width: 32%; }
}
@media (max-width: 767.98px) {
    .pv2-features-img { aspect-ratio: 16 / 9; max-height: none; }
    .pv2-inst { flex-direction: column; align-items: center; text-align: left; }
    .pv2-final-img { display: none; }
    .pv2-message-inner { flex-direction: column; gap: 24px; align-items: stretch; }
    .pv2-message-text { flex: none; }
    .pv2-section { padding: 52px 0; }
    .pv2-title { font-size: 1.4rem; margin-bottom: 24px; }
    .pv2-center-title { font-size: 1.3rem; }
    .pv2-hero { padding: 32px 0 64px; }
    .pv2-hero-title { font-size: 1.5rem; }
    .pv2-hero-sub { font-size: .9rem; }
    .pv2-facts li { flex: 1 1 calc(50% - 10px); min-width: 0; padding: 8px 12px; }
    .pv2-btn-lg { display: flex; width: 100%; padding: 16px 18px; font-size: .98rem; }
    .pv2-hero-video { position: relative; right: auto; bottom: auto; width: 100%; display: flex; align-items: center; gap: 10px; margin-top: -40px; margin-left: 12px; width: calc(100% - 24px); }
    .pv2-hero-video-thumb { width: 150px; flex: none; }
    .pv2-hero-video-text { padding: 0; }
    .pv2-logos-row { gap: 10px; margin: 0; }
    .pv2-logo { width: 120px; height: 72px; padding: 6px 8px; }
    .pv2-ig { flex-direction: column; gap: 8px; }
    .pv2-ig-arrow { justify-content: center; transform: rotate(90deg); font-size: 2rem; }
    .pv2-overview { padding: 22px 18px; }
    .pv2-curr-time { width: auto; display: block; }
    .pv2-curr-list > li { flex-wrap: wrap; gap: 10px 14px; }
    .pv2-curr-body { flex: 1 1 100%; padding-left: 44px; margin-top: -6px; }
    .pv2-curr-list > li::before { display: none; }
    .pv2-inst-img { width: 180px; }
    .pv2-inst-name { font-size: 1.35rem; }
    .pv2-inst-stats li { flex: 1 1 calc(33% - 12px); min-width: 0; padding: 10px 6px; }
    .pv2-inst-stats strong { font-size: 1.25rem; }
    .pv2-grid3 { grid-template-columns: 1fr; }
    .pv2-price-amount { font-size: 1.9rem; }
    .pv2-faq-a { padding-left: 20px; }
    .pv2-final-text { padding: 44px 0; }
    .pv2-final-text h2 { font-size: 1.35rem; }
    .pv2-form-box { padding: 32px 14px 16px; }
    .pv2-float-cta { display: flex; }
    .pv2-message-title { font-size: 1.35rem; }
    .pv2-message-play { width: 60px; height: 60px; font-size: 1.2rem; }
    .pv2-side-cta { display: none; }
    .pv2-seminar-go { margin-left: 0; }
}

/* ===== ver3: 画像が無い場合の調整（ダミーを出さない） ===== */
.pv2-case-tagline { padding: 16px 18px 0; }
.pv2-case-tagline .pv2-case-tag { position: static; }
.pv2-final-img { overflow: hidden; }
.pv2-final-img img { width: 100%; height: 100%; object-fit: cover; object-position: 70% 30%; display: block; }
.pv2-hero-visual > .pv2-hero-cta-card:first-child { margin-top: 0; } /* plan_image が無い場合は画像に重ねない */



/* ===== カリキュラム: 変則的な表（thead th / tbody th / td・rowspan/colspan）対応 ===== */
.v2-curriculum-table { margin: 0; border-radius: var(--pv2-radius); border: 1px solid var(--pv2-line); background: #fff; -webkit-overflow-scrolling: touch; }
.v2-curriculum-table .pv2-table { margin: 0; min-width: 720px; border: 0; font-size: .88rem; line-height: 1.7; color: var(--pv2-text); background: #fff; }
.v2-curriculum-table .pv2-table caption { caption-side: top; padding: 0 0 12px; font-size: .85rem; font-weight: 700; color: var(--pv2-muted); text-align: left; }
.v2-curriculum-table .pv2-table th,
.v2-curriculum-table .pv2-table td { padding: 12px 14px; border: 1px solid var(--pv2-line); vertical-align: top; }
/* 列見出し（thead th）: 濃紺・中央揃え */
.v2-curriculum-table .pv2-table thead th {
    background: var(--pv2-navy); color: #fff; font-weight: 700; font-size: .85rem;
    text-align: center; vertical-align: middle; border-color: rgba(255,255,255,.18); border-bottom-width: 1px;
}
/* 行見出し（tbody th）: 淡い濃紺・太字 */
.v2-curriculum-table .pv2-table tbody th {
    background: #eef2f7; color: var(--pv2-navy-deep); font-weight: 700; vertical-align: middle; white-space: normal; min-width: 120px;
}
.v2-curriculum-table .pv2-table td { background: #fff; }
/* rowspan で縦に結合されたセルは中央寄せで読みやすく */
.v2-curriculum-table .pv2-table td[rowspan] { background: #fbf8f2; vertical-align: middle; }
.v2-curriculum-table .pv2-table ul { margin: 0; padding-left: 1.2em; }
.v2-curriculum-table .pv2-table li { margin-bottom: 2px; }
@media (max-width: 767.98px) {
    .v2-curriculum-table { position: relative; }
    .v2-curriculum-table::after { content: "← 横にスクロールできます →"; display: block; position: sticky; left: 0; padding: 6px 0; font-size: .72rem; color: var(--pv2-muted); text-align: center; background: #fff; }
    .v2-curriculum-table .pv2-table { font-size: .82rem; }
    .v2-curriculum-table .pv2-table th, .v2-curriculum-table .pv2-table td { padding: 10px; }
}

/* ===== 研修費用（plan_fee 原文表示）: 文字サイズ調整 ===== */
.pv2-price-raw { max-width: 760px; margin: 0 auto; padding: 32px 36px 30px; border-top: 4px solid var(--pv2-gold); }
.pv2-price-raw-body { font-size: 1rem; line-height: 2; }
.pv2-price-raw-body p { margin-bottom: 1em; }
.pv2-price-raw-body p:last-child { margin-bottom: 0; }
/* 1〜2行の短い料金表記は大きく・中央に */
.pv2-price-raw.is-short .pv2-price-raw-body { font-size: 1.4rem; font-weight: 700; line-height: 1.7; text-align: center; color: var(--pv2-navy-deep); padding: 8px 0; }
@media (max-width: 767.98px) {
    .pv2-price-raw { padding: 24px 18px; }
    .pv2-price-raw.is-short .pv2-price-raw-body { font-size: 1.1rem; }
}

/* ===== 講師紹介: プロフィール全文 + 詳細アコーディオン ===== */
.pv2-inst-profile { font-size: .88rem; line-height: 1.9; color: rgba(255,255,255,.82); margin-bottom: 22px; }
.pv2-inst-profile p { margin-bottom: .8em; }
.pv2-inst-profile p:last-child { margin-bottom: 0; }
.pv2-inst-more { margin-top: 28px; border-top: 1px solid rgba(255,255,255,.18); }
.pv2-inst-more summary {
    list-style: none; cursor: pointer; text-align: center;
    padding-top: 24px;
}
.pv2-inst-more summary::-webkit-details-marker { display: none; }
.pv2-inst-more summary > span {
    display: inline-flex; align-items: center; gap: 8px;
    border: 2px solid rgba(255,255,255,.7); border-radius: var(--pv2-radius);
    padding: 10px 28px; font-weight: 700; color: #fff;
    transition: background .2s ease, color .2s ease;
}
.pv2-inst-more summary:hover > span { background: #fff; color: var(--pv2-navy); }
.pv2-inst-more .pv2-inst-more-close { display: none; }
.pv2-inst-more[open] .pv2-inst-more-open { display: none; }
.pv2-inst-more[open] .pv2-inst-more-close { display: inline-flex; }
.pv2-inst-detail {
    margin-top: 24px; padding: 28px 32px;
    background: rgba(255,255,255,.06); border-radius: 8px;
    font-size: .88rem; line-height: 1.95; color: rgba(255,255,255,.85);
}
.pv2-inst-detail p { margin-bottom: 1em; }
.pv2-inst-detail p:last-child { margin-bottom: 0; }
.pv2-inst-detail a { color: #e6c89a; text-decoration: underline; }
.pv2-inst-detail a:hover { color: #fff; }
/* 閉じるボタンを詳細の下に置くため、開いている間は summary を詳細の後ろへ */
.pv2-inst-more[open] { display: flex; flex-direction: column; }
.pv2-inst-more[open] summary { order: 2; }
.pv2-inst-more[open] .pv2-inst-detail { order: 1; }
@media (max-width: 767.98px) {
    .pv2-inst-detail { padding: 20px 16px; }
}


/* ==========================================================
   hv2: 人材育成計画 策定支援 固有のスタイル
   ========================================================== */
.hv2-lead { font-size: .92rem; line-height: 1.9; color: #4a5361; margin: -16px 0 28px; }
.hv2-lead a { color: var(--pv2-navy); text-decoration: underline; }

/* FV 見出し: 1段目 会社名（途中で改行しない）/ 2段目 本題 */
.hv2-h1 { text-wrap: wrap; }
.hv2-h1::before { margin-bottom: 16px; }
.hv2-h1-company { display: block; font-size: .5em; line-height: 1.5; letter-spacing: .04em; margin-bottom: 6px; word-break: keep-all; overflow-wrap: anywhere; }
.hv2-h1-main { display: block; word-break: keep-all; overflow-wrap: anywhere; }
/* 相談カードの見出し: 2つの句の間でのみ改行 */
.hv2-cta-title span { display: inline-block; }

/* サービス概要 */
.hv2-about .hv2-overview { margin-top: 0; }

/* こんな課題に対応（お悩みのみ・2列カード） */
.hv2-pains { list-style: none; margin: 0 auto; padding: 0; max-width: 960px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.hv2-pains li { display: flex; align-items: flex-start; gap: 12px; background: #fff; border-radius: var(--pv2-radius); box-shadow: 0 4px 18px rgba(27,45,79,.07); padding: 16px 18px; font-size: .92rem; line-height: 1.7; }
.hv2-pains i { flex: none; width: 30px; height: 30px; border-radius: 50%; background: #eef1f5; color: var(--pv2-muted); display: flex; align-items: center; justify-content: center; font-size: .85rem; }

/* ご提供する成果物 */
.hv2-deliverables { background: var(--pv2-bg); }
.hv2-deliv-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.hv2-deliv-grid li { position: relative; display: flex; flex-direction: column; gap: 10px; background: #fff; border: 1px solid var(--pv2-line); border-top: 3px solid var(--pv2-gold); border-radius: var(--pv2-radius); padding: 18px 18px 20px; }
.hv2-deliv-num { font-size: .72rem; font-weight: 700; letter-spacing: .12em; color: var(--pv2-gold); }
.hv2-deliv-grid i { position: absolute; right: 16px; top: 16px; font-size: 1.3rem; color: #c9d2df; }
.hv2-deliv-name { font-size: .95rem; font-weight: 700; line-height: 1.6; padding-right: 24px; }

/* 支援の流れ（カリキュラムのタイムラインを流用）
   ※ タイムラインの指定は .pv2-curr-list > li（直下のみ）に限定。入れ子の実施内容リストに罫線・点線が付かないように */
.hv2-steps .pv2-num { font-size: .85rem; }
.hv2-step-label { font-size: .7rem; font-weight: 700; letter-spacing: .14em; color: var(--pv2-gold); margin: 4px 0 2px; }
.hv2-steps .pv2-curr-body h4 { margin-top: 0; font-size: 1.05rem; }
.hv2-step-desc { font-size: .9rem; line-height: 1.85; color: #4a5361; margin: 0 0 10px; }
.hv2-step-tasks { list-style: none; margin: 0 0 10px; padding: 12px 16px; background: var(--pv2-bg); border-radius: 6px; }
.hv2-step-tasks li { position: relative; padding: 3px 0 3px 20px; font-size: .88rem; line-height: 1.7; }
.hv2-step-tasks li::before { content: "\f00c"; font-family: "Font Awesome 5 Free", "Font Awesome 6 Free"; font-weight: 900; position: absolute; left: 0; top: 5px; font-size: .7rem; color: var(--pv2-green); }
.hv2-step-meta { display: flex; flex-wrap: wrap; gap: 8px 20px; font-size: .82rem; color: #4a5361; }
.hv2-step-meta span { display: inline-flex; align-items: baseline; gap: 6px; }
.hv2-step-meta i { color: var(--pv2-gold); }
.hv2-step-meta strong { color: var(--pv2-text); margin-right: 4px; }
.hv2-flow .pv2-curr-time { width: 120px; }

/* 担当コンサルタント（複数名: カード横並び） */
.hv2-cons-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; align-items: start; }
.hv2-cons { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); border-radius: 10px; padding: 24px; }
.hv2-cons-head { display: flex; align-items: center; gap: 18px; margin-bottom: 16px; }
.hv2-cons-img { flex: none; width: 96px; height: 96px; border-radius: 50%; object-fit: cover; object-position: center 20%; border: 3px solid rgba(255,255,255,.2); }
.hv2-cons-name { font-size: 1.3rem; font-weight: 700; color: #fff; margin: 0 0 4px; }
.hv2-cons-tagline { font-size: .8rem; font-weight: 700; line-height: 1.6; color: rgba(255,255,255,.8); margin: 0; }
.hv2-cons-profile { font-size: .86rem; line-height: 1.9; color: rgba(255,255,255,.82); }
.hv2-cons-profile p { margin-bottom: .7em; }
.hv2-cons-profile p:last-child { margin-bottom: 0; }
.hv2-cons-more { margin-top: 16px; padding-top: 14px; border-top: 1px solid rgba(255,255,255,.14); }
.hv2-cons-more summary { list-style: none; cursor: pointer; display: inline-flex; }
.hv2-cons-more summary::-webkit-details-marker { display: none; }
.hv2-cons-more summary span { display: inline-flex; align-items: center; gap: 6px; font-size: .82rem; font-weight: 700; color: #e6c89a; }
.hv2-cons-more summary:hover span { color: #fff; }
.hv2-cons-more .hv2-cons-close { display: none; }
.hv2-cons-more[open] .hv2-cons-open { display: none; }
.hv2-cons-more[open] .hv2-cons-close { display: inline-flex; }
.hv2-cons-detail { margin-top: 12px; font-size: .84rem; line-height: 1.9; color: rgba(255,255,255,.82); }
.hv2-cons-detail p { margin-bottom: .8em; }
.hv2-cons-detail a { color: #e6c89a; text-decoration: underline; }

/* 支援実績 */
.hv2-case-list { display: flex; flex-direction: column; gap: 24px; }
.hv2-case { background: #fff; border: 1px solid var(--pv2-line); border-radius: 8px; overflow: hidden; }
.hv2-case-head { padding: 20px 24px 16px; border-bottom: 1px solid var(--pv2-line); background: var(--pv2-bg); }
.hv2-case-head h3 { font-size: 1.15rem; font-weight: 700; margin: 0 0 10px; }
.hv2-case-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
.hv2-case-tags span { background: #fff; border: 1px solid var(--pv2-line); border-radius: 999px; padding: 3px 12px; font-size: .75rem; font-weight: 700; color: #4a5361; }
.hv2-case-tags i { color: var(--pv2-navy); margin-right: 2px; }
.hv2-case-flow { display: flex; } /* BEFORE / SUPPORT / AFTER を件数に関係なく1行に均等割り（折り返しで1つだけ半端に残らないように） */
.hv2-case-block { flex: 1 1 0; min-width: 0; padding: 20px 24px; border-right: 1px solid var(--pv2-line); }
.hv2-case-block:last-child { border-right: 0; }
.hv2-case-label { font-size: .85rem; font-weight: 700; margin-bottom: 8px; }
.hv2-case-label em { display: block; font-style: normal; font-size: .68rem; letter-spacing: .16em; color: var(--pv2-muted); }
.hv2-case-block.is-after { background: #f3f9f5; }
.hv2-case-block.is-after .hv2-case-label em { color: var(--pv2-green); }
.hv2-case-text { font-size: .88rem; line-height: 1.85; color: #4a5361; margin: 0; }
.hv2-case-deliv { padding: 16px 24px 20px; border-top: 1px solid var(--pv2-line); }
.hv2-case-deliv p { font-size: .78rem; font-weight: 700; color: var(--pv2-muted); margin: 0 0 8px; }
.hv2-case-deliv ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.hv2-case-deliv li { background: #fffaf2; border: 1px solid #ecdcbf; color: var(--pv2-gold-deep); border-radius: 4px; padding: 3px 10px; font-size: .8rem; }

/* 料金 */
.hv2-price-note { font-size: .82rem; line-height: 1.8; color: var(--pv2-muted); margin: 16px 0 0; text-align: center; }

/* 研修プログラム体系 */
.hv2-program { background: var(--pv2-bg); }
.hv2-pg-group { margin-bottom: 28px; }
.hv2-pg-title { font-size: 1.05rem; font-weight: 700; margin: 0 0 12px; padding-left: 12px; border-left: 4px solid var(--pv2-green); }
.hv2-pg-title span { font-size: .75rem; font-weight: 500; color: var(--pv2-muted); margin-left: 8px; }
.hv2-pg-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.hv2-plan {
    display: flex; align-items: center; gap: 12px; width: 100%; text-align: left;
    background: #fff; border: 1px solid var(--pv2-line); border-radius: var(--pv2-radius);
    padding: 14px 16px; color: var(--pv2-text); cursor: pointer; transition: border-color .2s, box-shadow .2s;
}
.hv2-plan:hover { border-color: var(--pv2-navy); box-shadow: 0 4px 14px rgba(27,45,79,.1); }
.hv2-plan-name { flex: 1; font-size: .9rem; font-weight: 700; line-height: 1.5; }
.hv2-plan-icon { flex: none; color: var(--pv2-green); }
.hv2-seminars { margin-top: 40px; }
.hv2-seminars .hv2-lead { margin: 0 0 16px; }
.hv2-seminar { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--pv2-line); border-radius: var(--pv2-radius); overflow: hidden; color: var(--pv2-text); text-decoration: none !important; transition: box-shadow .2s; }
.hv2-seminar:hover { color: var(--pv2-text); box-shadow: 0 8px 22px rgba(27,45,79,.12); }
.hv2-seminar-thumb { display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--pv2-bg); }
.hv2-seminar-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hv2-seminar-body { display: flex; flex-direction: column; gap: 8px; padding: 14px 16px 16px; flex: 1; }
.hv2-seminar-tags { display: flex; flex-wrap: wrap; gap: 6px; font-size: .72rem; color: var(--pv2-muted); }
.hv2-seminar-tags span { background: var(--pv2-bg); border-radius: 3px; padding: 2px 8px; }
.hv2-seminar strong { font-size: .92rem; line-height: 1.55; flex: 1; }
.hv2-seminar-more { font-size: .8rem; font-weight: 700; color: var(--pv2-green); }

/* モーダル（プラン） */
.hv2-ipm-sub { font-size: .8rem; color: rgba(255,255,255,.8); }
.hv2-ipm-tag { background: var(--pv2-bg); border-radius: 3px; padding: 3px 10px; font-size: .78rem; color: var(--pv2-text); }
.hv2-ipm-list { margin: 0; padding-left: 1.2em; font-size: .9rem; line-height: 1.8; }
#itemPlanModal .phm-meta { margin: 0 0 14px; }
#itemPlanModal .ipm-curriculum table { font-size: .82rem; }

/* 提供会社 */
.hv2-company-box { display: flex; gap: 32px; align-items: flex-start; background: #fff; border: 1px solid var(--pv2-line); border-radius: 8px; padding: 28px 32px; }
.hv2-company-logo { flex: none; width: 140px; }
.hv2-company-logo img { width: 100%; height: auto; }
.hv2-company-dl { flex: 1; display: grid; grid-template-columns: 110px 1fr; margin: 0; }
.hv2-company-dl dt, .hv2-company-dl dd { padding: 10px 0; border-bottom: 1px solid var(--pv2-line); margin: 0; font-size: .9rem; line-height: 1.7; }
.hv2-company-dl dt { font-weight: 700; color: var(--pv2-navy-deep); }
.hv2-company-dl dt:last-of-type, .hv2-company-dl dd:last-of-type { border-bottom: 0; }

/* フォーム */
.hv2-form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin-top: 20px; }
.hv2-form-grid .is-full { grid-column: 1 / -1; }
.hv2-label { display: block; font-size: .85rem; font-weight: 700; margin-bottom: 6px; }
.hv2-req { display: inline-block; background: #c0392b; color: #fff; font-size: .65rem; padding: 1px 6px; border-radius: 3px; margin-left: 4px; vertical-align: 1px; }
.hv2-form-done { text-align: center; padding: 32px 0 16px; }
.hv2-form-done i { font-size: 2.6rem; color: var(--pv2-green); }
.hv2-form-done-title { font-size: 1.15rem; font-weight: 700; margin: 12px 0 6px; }
.pv2-form-lead strong { color: var(--pv2-text); }

@media (max-width: 767.98px) {
    .hv2-lead { margin-top: -10px; }
    .hv2-flow .pv2-curr-time { width: auto; }
    .hv2-case-head, .hv2-case-block, .hv2-case-deliv { padding-left: 16px; padding-right: 16px; }
    .hv2-case-flow { flex-direction: column; }
    .hv2-case-block { flex: none; width: 100%; border-right: 0; border-bottom: 1px solid var(--pv2-line); }
    .hv2-case-block:last-child { border-bottom: 0; }
    .hv2-pg-grid { grid-template-columns: 1fr; }
    .hv2-pains { grid-template-columns: 1fr; }
    .hv2-cons-grid { grid-template-columns: 1fr; }
    .hv2-cons { padding: 20px 16px; }
    .hv2-cons-img { width: 72px; height: 72px; }
    .hv2-deliv-grid { grid-template-columns: 1fr; }
    .hv2-company-box { flex-direction: column; padding: 20px 16px; }
    .hv2-company-dl { grid-template-columns: 90px 1fr; }
    .hv2-form-grid { grid-template-columns: 1fr; }
}
