/*
Theme Name: HIFIVE
Theme URI: https://hifive.work
Author: HIFIVE
Description: HI FIVE オリジナルテーマ
Version: 1.0
*/

/* ============================================================
   リセット・基本設定
============================================================ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
img { max-width: 100%; height: auto; display: block; }
a { text-decoration: none; color: inherit; }
ul { list-style: none; }

:root {
    --color-teal: #4BBFBF;
    --color-teal-dark: #3aabab;
    --color-gold: #C8A84B;
    --color-orie: #C87B6A;
    --color-text: #333;
    --color-light: #f7f7f7;
}

body {
    font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', sans-serif;
    font-size: 18px;
    color: var(--color-text);
    line-height: 1.8;
    background: #fff;
}

/* ============================================================
   共通
============================================================ */
.section-title {
    font-size: 1.6rem;
    font-weight: 400;
    text-align: center;
    margin-bottom: 3rem;
    letter-spacing: 0.2em;
}

.btn {
    display: inline-block;
    padding: 0.6rem 1.8rem;
    border: 1px solid var(--color-text);
    color: var(--color-text);
    font-size: 0.8rem;
    letter-spacing: 0.1em;
    transition: all 0.3s ease;
}
.btn:hover { background: var(--color-text); color: #fff; }

.btn--white { border-color: #fff; color: #fff; }
.btn--white:hover { background: #fff; color: var(--color-text); }

.btn--teal { border-color: var(--color-teal); color: var(--color-teal); }
.btn--teal:hover { background: var(--color-teal); color: #fff; }

.btn--orie { border-color: var(--color-orie); color: var(--color-orie); }
.btn--orie:hover { background: var(--color-orie); color: #fff; }

/* ============================================================
   ヘッダー
============================================================ */
.site-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 200;
    transition: background 0.3s, box-shadow 0.3s;
}

/* トップページ: FV上では透過 */
.home .site-header {
    background: transparent;
}
/* スクロール後 or トップページ以外: 白背景 */
.site-header.scrolled,
body:not(.home) .site-header {
    background: #fff;
    box-shadow: 0 1px 4px rgba(0,0,0,0.1);
}

/* tealキャッチフレーズバー */
.header-bar {
    background: var(--color-teal);
    padding: 0.35rem 2rem;
    transition: opacity 0.3s;
}
.header-bar__inner {
    max-width: 1200px;
    margin: 0 auto;
}
.header-bar__catch {
    font-size: 0.72rem;
    color: #fff;
    letter-spacing: 0.05em;
}

/* メインナビゲーションバー */
.header-main {
    padding: 0 2rem;
}
.header-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 1200px;
    width: 100%;
    margin: 0 auto;
    height: 70px;
}

.site-logo img {
    height: 44px;
    width: auto;
    /* FV上では白く見えるようフィルター（必要に応じて） */
}

/* ナビメニュー (wp_nav_menu が div > ul を生成する) */
#site-nav div { display: flex; }
#site-nav ul { display: flex; flex-wrap: nowrap; align-items: center; list-style: none; margin: 0; padding: 0; }
#site-nav li { white-space: nowrap; position: relative; }
#site-nav > div > ul > li > a {
    font-size: 0.88rem;
    letter-spacing: 0.05em;
    padding: 0.5rem 1rem;
    display: block;
    color: #fff;
    transition: color 0.2s;
}
/* スクロール後 or 通常ページ: 黒文字 */
.site-header.scrolled #site-nav > div > ul > li > a,
body:not(.home) #site-nav > div > ul > li > a {
    color: #333;
}
#site-nav a:hover { color: var(--color-teal) !important; }

/* サブメニュー */
#site-nav .sub-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    background: var(--color-teal);
    min-width: 160px;
    z-index: 300;
    padding: 0.5rem 0;
}
#site-nav li:hover .sub-menu { display: block; }
#site-nav .sub-menu li a {
    font-size: 0.85rem;
    padding: 0.6rem 1.2rem;
    color: #fff !important;
    display: block;
    white-space: nowrap;
}
#site-nav .sub-menu li a:hover { background: rgba(255,255,255,0.15); }

/* WP管理バー表示時のオフセット */
.admin-bar .site-header { top: 32px; }

/* ============================================================
   ファーストビュー
============================================================ */
.fv {
    height: 100vh;
    min-height: 600px;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}
.fv__bg {
    position: absolute;
    inset: 0;
    background: #e8e4df url('images/fv-bg.jpg') center center / cover no-repeat;
}
.fv__inner {
    position: relative;
    z-index: 1;
    text-align: left;
    padding: 2rem 4rem;
    max-width: 1200px;
    width: 100%;
}
.fv__catch {
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 300;
    line-height: 1.8;
    color: #222;
    letter-spacing: 0.05em;
}
.fv__scroll {
    position: absolute;
    bottom: 2.5rem;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.6rem;
    color: #888;
    font-size: 0.7rem;
    letter-spacing: 0.2em;
}
.fv__scroll::after {
    content: '';
    display: block;
    width: 1px;
    height: 50px;
    background: #aaa;
    animation: scrollDown 1.8s ease infinite;
}
@keyframes scrollDown {
    0% { transform: scaleY(0); transform-origin: top; opacity: 0; }
    30% { opacity: 1; }
    70% { transform: scaleY(1); transform-origin: top; opacity: 1; }
    100% { transform: scaleY(1); transform-origin: bottom; opacity: 0; }
}

/* ============================================================
   WHAT'S NEW
============================================================ */
.news {
    background: #fff;
    padding: 6rem 2rem;
    text-align: center;
}
.news__inner { max-width: 800px; margin: 0 auto; }
.news .section-title {
    color: var(--color-teal);
    font-weight: 700;
    margin-bottom: 1rem;
}
.news__divider {
    width: 40px;
    height: 2px;
    background: var(--color-gold);
    margin: 0 auto 3rem;
}
.news__list { margin-bottom: 3rem; }
.news__item {
    display: flex;
    gap: 2rem;
    align-items: center;
    padding: 1.1rem 0.5rem;
    border-bottom: 1px solid #e8e8e8;
    text-align: left;
    transition: background 0.2s;
}
.news__item:first-child { border-top: 1px solid #e8e8e8; }
.news__item:hover { background: #f5fafa; }
.news__date {
    color: var(--color-teal);
    font-size: 0.9rem;
    white-space: nowrap;
    letter-spacing: 0.05em;
    flex-shrink: 0;
    font-weight: 500;
}
.news__link {
    font-size: 1rem;
    color: #444;
    transition: color 0.2s;
    line-height: 1.6;
}
.news__link:hover { color: var(--color-teal); }

/* ============================================================
   プロフィールブロック（本番スタイル）
============================================================ */
.profile-block {
    background: #fff;
    padding: 5rem 2rem;
}
.profile-block--reverse { background: #fff; }

.profile-block__inner {
    max-width: 800px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 4rem;
}
.profile-block--reverse .profile-block__inner {
    flex-direction: row-reverse;
}

.profile-block__img {
    flex: 0 0 auto;
}
.profile-block__img img {
    width: 340px;
    height: auto;
    display: block;
}

.profile-block__text {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
}

.profile-block__name {
    font-size: 2rem;
    font-weight: 700;
    color: var(--color-teal);
    letter-spacing: 0.1em;
    margin-bottom: 0.2rem;
}
.profile-block__name--orie { color: var(--color-orie); }

.profile-block__name-en {
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: 0.2em;
    color: #C8960A;
    margin-bottom: 1.5rem;
}
.profile-block__name-en--orie { color: var(--color-orie); opacity: 0.7; }

.profile-block__activity {
    margin-top: 1.5rem;
    font-size: 0.95rem;
    color: #777;
    line-height: 1.9;
}

/* ============================================================
   キャッチコピーブロック
============================================================ */
.catch-block {
    position: relative;
    height: 320px;
    overflow: hidden;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    display: flex;
    align-items: center;
}
.catch-block__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, rgba(255,255,255,0.95) 40%, rgba(255,255,255,0) 75%);
}
.catch-block--reverse .catch-block__overlay {
    background: linear-gradient(to right, rgba(255,255,255,0.95) 40%, rgba(255,255,255,0) 75%);
}
.catch-block__text {
    position: absolute;
    z-index: 2;
    left: max(2rem, calc((100% - 1200px) / 2 + 2rem));
    top: 50%;
    transform: translateY(-50%);
    width: 40%;
}
.catch-block--reverse .catch-block__text {
    left: max(2rem, calc((100% - 1200px) / 2 + 2rem));
    right: auto;
    text-align: left;
}
.sp-br { display: none; }
.catch-block__text p {
    font-size: clamp(1.1rem, 2.5vw, 1.5rem);
    font-weight: 700;
    line-height: 1.9;
    color: #333 !important;
    letter-spacing: 0.05em;
    font-family: "游明朝", YuMincho, "Hiragino Mincho ProN", serif;
}

/* ============================================================
   事業案内
============================================================ */
.business { background: #fff; }

.business__header { padding: 6rem 2rem 4rem; background: #fff; }
.business__header-inner { max-width: 900px; margin: 0 auto; }
.business__title {
    font-size: 1.3rem;
    font-weight: 400;
    color: var(--color-teal);
    letter-spacing: 0.15em;
    margin-bottom: 1.5rem;
    display: flex;
    align-items: center;
    gap: 1.5rem;
}
.business__title::after {
    content: '';
    flex: 1;
    height: 1px;
    background: #e0e0e0;
}
.business__title-en {
    font-size: 0.72rem;
    color: #bbb;
    letter-spacing: 0.2em;
    font-weight: 400;
}
.business__lead {
    font-size: 1.5rem;
    font-weight: 700;
    font-family: "游明朝", YuMincho, "Hiragino Mincho ProN", serif;
    margin-bottom: 1.5rem;
    color: #333;
    letter-spacing: 0.05em;
}
.business__desc {
    font-size: 1rem;
    color: #666;
    line-height: 2;
}
.business__desc + .business__desc { margin-top: 0.4rem; }

/* 事業カード */
.biz-list {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 2rem 4rem;
}

.biz-card {
    display: flex;
    align-items: stretch;
    min-height: 280px;
    margin-bottom: 2.5rem;
    border: 1px solid #e0e0e0;
    background: #fff;
    overflow: hidden;
}
.biz-card--reverse { flex-direction: row-reverse; }

.biz-card__num-col {
    flex: 0 0 100px;
    background: #f0ede8;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding-top: 1.5rem;
}
.biz-card--reverse .biz-card__num-col {
    background: #e8ecf0;
}

.biz-card__num {
    font-size: 0.85rem;
    font-weight: 700;
    color: #fff;
    background: var(--color-teal);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.8rem;
    height: 2.8rem;
    letter-spacing: 0;
    flex-shrink: 0;
}

.biz-card__body {
    flex: 1;
    padding: 2.5rem 3rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    background: #fff;
}

.biz-card__category {
    font-size: 0.82rem;
    color: var(--color-teal);
    letter-spacing: 0.12em;
    margin-bottom: 0.5rem;
    text-transform: uppercase;
}
.biz-card__title {
    font-size: 1.25rem;
    font-weight: 700;
    margin-bottom: 1rem;
    line-height: 1.5;
    letter-spacing: 0.02em;
}
.biz-card__desc {
    font-size: 0.95rem;
    color: #666;
    line-height: 2;
    margin-bottom: 1.5rem;
    flex: 1;
}
.btn--read {
    background: var(--color-teal);
    color: #fff;
    border-color: var(--color-teal);
    align-self: flex-start;
    padding: 0.55rem 1.8rem;
    letter-spacing: 0.15em;
    font-size: 0.85rem;
}
.btn--read:hover { background: var(--color-teal-dark); border-color: var(--color-teal-dark); }

.biz-card__img {
    flex: 0 0 40%;
    overflow: hidden;
}
.biz-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* ============================================================
   YouTube
============================================================ */
.youtube-section {
    background: #fff;
    padding: 5rem 2rem;
}
.youtube-section__inner {
    max-width: 900px;
    margin: 0 auto;
}
.youtube-embed {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    overflow: hidden;
}
.youtube-embed iframe {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    border: 0;
}

/* ============================================================
   SDGs
============================================================ */
.sdgs {
    position: relative;
    padding: 6rem 2rem;
    text-align: center;
    color: #333;
    overflow: hidden;
}
.sdgs__bg {
    position: absolute;
    inset: 0;
    background: url('images/sdgs-bg.jpg') center center / cover no-repeat;
    filter: brightness(1);
}
.sdgs__inner {
    position: relative;
    max-width: 800px;
    margin: 0 auto;
}
.sdgs__title {
    font-size: 1.1rem;
    font-weight: 700;
    line-height: 1.8;
    letter-spacing: 0.05em;
    margin-bottom: 1.5rem;
    color: #333;
}
.sdgs__divider {
    width: 40px;
    height: 2px;
    background: var(--color-gold);
    margin: 0 auto 1.5rem;
}
.sdgs__sub {
    font-size: 0.95rem;
    line-height: 2;
    color: #555;
    margin-bottom: 3rem;
}
.sdgs__poster {
    max-width: 600px;
    margin: 0 auto;
}
.sdgs__poster img {
    width: 100%;
    height: auto;
    display: block;
}

/* ============================================================
   バナー（メディア・企業情報・感想）
============================================================ */
.banners {
    background: #f8f7f5;
    padding: 5rem 2rem;
}
.banners__inner {
    max-width: 1100px;
    margin: 0 auto;
    display: flex;
    gap: 1.5rem;
}
.banner-card {
    flex: 1;
    display: flex;
    flex-direction: column;
    color: inherit;
}
.banner-card__title { display: none; }
.banner-card__img {
    position: relative;
    overflow: hidden;
    aspect-ratio: 4/3;
}
.banner-card__img img {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s;
}
.banner-card:hover .banner-card__img img {
    transform: scale(1.04);
}
.banner-card__label {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    background: rgba(0,0,0,0.55);
    color: #fff;
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    padding: 0.8rem 1rem;
    text-align: center;
}
.banner-card__text {
    font-size: 0.92rem;
    color: #666;
    margin-top: 0.75rem;
    line-height: 1.6;
    text-align: center;
}

/* ============================================================
   CONTACT
============================================================ */
.contact {
    position: relative;
    text-align: center;
    color: #fff;
    padding: 6rem 2rem;
    overflow: hidden;
}
.contact__bg {
    position: absolute;
    inset: 0;
    background: url('images/contact-bg.jpg') center center / cover no-repeat;
    filter: brightness(0.35);
}
.contact__inner {
    position: relative;
    max-width: 800px;
    margin: 0 auto;
}
.contact__title {
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    margin-bottom: 1rem;
}
.contact__divider {
    width: 40px;
    height: 2px;
    background: var(--color-gold);
    margin: 0 auto 1rem;
}
.contact__sub {
    font-size: 0.85rem;
    letter-spacing: 0.1em;
    margin-bottom: 1rem;
    color: rgba(255,255,255,0.7);
}
.contact__desc {
    font-size: 0.85rem;
    color: rgba(255,255,255,0.7);
    margin-bottom: 2.5rem;
    line-height: 1.8;
}
.contact__btns {
    display: flex;
    justify-content: center;
    gap: 1.5rem;
    flex-wrap: wrap;
}
.btn--contact {
    display: inline-block;
    padding: 0.9rem 2.5rem;
    border: 1px solid rgba(255,255,255,0.6);
    color: #fff;
    font-size: 0.85rem;
    letter-spacing: 0.1em;
    transition: background 0.2s, border-color 0.2s;
    text-decoration: none;
}
.btn--contact:hover {
    background: rgba(255,255,255,0.15);
    border-color: #fff;
}

/* ============================================================
   フッター
============================================================ */
#site-footer {
    background: var(--color-teal);
}
.footer-inner {
    padding: 1.2rem 2rem;
    text-align: center;
}
.footer-copy {
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    color: rgba(255,255,255,0.75);
}

/* ============================================================
   固定ページ共通
============================================================ */
.page-main { padding-top: 70px; }

.page-header {
    background: var(--color-light);
    padding: 5rem 2rem 4rem;
    text-align: center;
}
.page-header__inner { max-width: 800px; margin: 0 auto; }
.page-header__en {
    font-size: 0.7rem;
    letter-spacing: 0.35em;
    text-transform: uppercase;
    color: #bbb;
    display: block;
    margin-bottom: 1rem;
}
/* 最新情報ページのみ：WHAT'S NEW を金色・大きく */
.page-template-page-news .page-header { background: #fff; padding: 4rem 2rem 3rem; }
.page-template-page-news .page-header__en {
    font-size: 1.8rem;
    letter-spacing: 0.25em;
    color: var(--color-gold);
    font-weight: 400;
    margin-bottom: 0.5rem;
}
.page-template-page-news .page-title { font-size: 1rem; color: #999; letter-spacing: 0.2em; font-weight: 400; }
.page-title {
    font-size: clamp(1.4rem, 3vw, 2rem);
    font-weight: 400;
    letter-spacing: 0.15em;
    color: #333;
}

/* HIFIVEについて */
.about-profile { padding: 6rem 2rem; background: #fff; }
.about-profile:nth-of-type(even) { background: var(--color-light); }
.about-profile__inner {
    max-width: 1000px;
    margin: 0 auto;
    display: flex;
    gap: 5rem;
    align-items: center;
}
.about-profile--reverse .about-profile__inner { flex-direction: row-reverse; }
.about-profile__img { flex: 0 0 300px; }
.about-profile__img img { width: 100%; aspect-ratio: 3/4; object-fit: cover; object-position: top; }
.about-profile__text { flex: 1; }
.about-profile__text h2 { font-size: 1.8rem; font-weight: 400; color: var(--color-teal); margin-bottom: 0.3rem; letter-spacing: 0.1em; }
.about-profile--reverse .about-profile__text h2 { color: var(--color-orie); }
.about-profile__role { font-size: 0.8rem; color: #aaa; margin-bottom: 1.5rem; display: block; letter-spacing: 0.05em; }
.about-profile__text p { font-size: 0.9rem; color: #555; line-height: 2; margin-bottom: 1.5rem; }
.about-profile__tags { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.about-profile__tags li { font-size: 0.72rem; border: 1px solid #ccc; padding: 0.2rem 0.8rem; color: #888; }

.about-results { padding: 6rem 2rem; background: #fff; }
.about-results__inner { max-width: 800px; margin: 0 auto; }
.about-results__block { padding: 1.5rem 0; border-bottom: 1px solid #eee; }
.about-results__block:first-of-type { border-top: 1px solid #eee; }
.about-results__block h3 { font-size: 0.9rem; font-weight: 700; margin-bottom: 0.4rem; color: #555; }
.about-results__block p { font-size: 0.88rem; color: #888; }

.about-company { padding: 6rem 2rem; background: var(--color-light); }
.about-company__inner { max-width: 800px; margin: 0 auto; }
.company-table { width: 100%; border-collapse: collapse; }
.company-table th, .company-table td { padding: 1rem 1.5rem; border-bottom: 1px solid #e0e0e0; font-size: 0.88rem; text-align: left; vertical-align: top; }
.company-table th { width: 120px; color: #aaa; font-weight: 400; white-space: nowrap; }

/* 事業案内ページ */
.business-list { padding: 6rem 2rem; background: #fff; }
.business-list__inner { max-width: 900px; margin: 0 auto; }
.business-card { display: flex; gap: 3rem; align-items: flex-start; padding: 3rem 0; border-bottom: 1px solid #eee; }
.business-card:first-child { border-top: 1px solid #eee; }
.business-card__num { font-size: 2.5rem; font-weight: 300; color: #ddd; line-height: 1; flex-shrink: 0; width: 60px; }
.business-card__title { font-size: 1.1rem; font-weight: 700; margin-bottom: 0.8rem; }
.business-card__desc { font-size: 0.88rem; color: #777; line-height: 1.9; margin-bottom: 1.2rem; }

/* 子ページ共通 */
.sub-page-content { padding: 6rem 2rem; background: #fff; }
.sub-page-content__inner { max-width: 900px; margin: 0 auto; }
.sub-page-lead { margin-bottom: 4rem; }
.sub-page-lead h2 { font-size: 1.4rem; font-weight: 400; margin-bottom: 1rem; color: var(--color-teal); }
.sub-page-lead p { font-size: 0.9rem; color: #555; line-height: 2; }
.sub-page-features { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1.5rem; margin-bottom: 4rem; }
.feature-item { padding: 2rem; background: var(--color-light); }
.feature-item h3 { font-size: 0.95rem; font-weight: 700; margin-bottom: 0.8rem; }
.feature-item p { font-size: 0.85rem; color: #777; line-height: 1.8; }
.sub-page-achievements { padding: 2rem; background: var(--color-light); margin-bottom: 3rem; }
.sub-page-achievements h3 { font-size: 0.9rem; font-weight: 700; margin-bottom: 0.5rem; color: #555; }
.sub-page-achievements p { font-size: 0.88rem; color: #777; }

/* 講演ページ */
.lecture-speakers { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; margin-bottom: 3rem; }
.lecture-speaker { padding: 2.5rem; border: 1px solid #e5e5e5; }
.lecture-speaker h3 { font-size: 1.2rem; font-weight: 400; color: var(--color-teal); margin-bottom: 0.3rem; }
.lecture-speaker__role { font-size: 0.78rem; color: #aaa; margin-bottom: 1rem; display: block; }
.lecture-speaker p { font-size: 0.88rem; color: #666; line-height: 1.9; margin-bottom: 1rem; }
.lecture-speaker ul { padding-left: 1rem; }
.lecture-speaker li { font-size: 0.83rem; color: #888; list-style: disc; margin-bottom: 0.3rem; }

/* お問い合わせ */
.contact-page { padding: 5rem 2rem; background: #fff; }
.contact-page__inner { max-width: 760px; margin: 0 auto; }
.contact-page__lead { font-size: 1rem; color: #555; margin-bottom: 2.5rem; line-height: 2; }

/* PDFダウンロードエリア */
.dl-area { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1.5rem; margin-bottom: 3.5rem; }
.dl-card { border: 1px solid #ddd; padding: 1.4rem 1.6rem; display: flex; align-items: center; gap: 1.2rem; }
.dl-card__icon { font-size: 2rem; color: #e74c3c; flex-shrink: 0; }
.dl-card__body { flex: 1; }
.dl-card__name { font-size: 0.9rem; color: #444; margin-bottom: 0.8rem; line-height: 1.5; font-weight: 600; }
.dl-card__size { font-size: 0.76rem; color: #aaa; }
.dl-card__btn { display: inline-block; background: var(--color-teal); color: #fff; font-size: 0.82rem; padding: 0.5rem 1.4rem; letter-spacing: 0.1em; transition: background 0.2s; }
.dl-card__btn:hover { background: var(--color-teal-dark); }

/* CF7フォーム — 本番サイト準拠レイアウト */

/* ラベル行p（.haveto/.any を持つ）→ 左列表示のためのflexラッパー行 */
.contact-form .wpcf7-form p.cf7-label-row {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    padding: 1rem 1.2rem 0.4rem;
    border-top: 1px solid #e5e5e5;
    font-size: 1rem;
    color: #333;
}
.contact-form .wpcf7-form p.cf7-label-row:first-of-type { border-top: none; }

/* 入力行p */
.contact-form .wpcf7-form p.cf7-input-row {
    padding: 0.4rem 1.2rem 1rem;
    border-bottom: 1px solid #e5e5e5;
}

/* 必須・任意バッジ */
.contact-form span.haveto,
.contact-form span.any {
    display: inline-block;
    font-size: 0.68rem;
    padding: 0.2rem 0.5rem;
    letter-spacing: 0.05em;
    line-height: 1.5;
    white-space: nowrap;
    flex-shrink: 0;
}
.contact-form span.haveto { background: var(--color-teal); color: #fff; }
.contact-form span.any    { background: #bbb; color: #fff; }

/* 入力フィールド */
.contact-form .wpcf7-text,
.contact-form .wpcf7-email,
.contact-form .wpcf7-tel,
.contact-form .wpcf7-select,
.contact-form .wpcf7-textarea {
    width: 100%;
    padding: 0.75rem 1rem;
    border: 1px solid #ddd;
    font-size: 1rem;
    font-family: inherit;
    background: #f7f7f7;
    color: #333;
    -webkit-appearance: none;
    appearance: none;
    border-radius: 0;
}
.contact-form .wpcf7-select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23999'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 1rem center;
    padding-right: 2.5rem;
    cursor: pointer;
}
.contact-form .wpcf7-textarea { min-height: 150px; resize: vertical; }
.contact-form .wpcf7-form-control-wrap { display: block; width: 100%; }

/* スパムチェック・送信行 */
.contact-form .wpcf7-form p.cf7-accept-row,
.contact-form .wpcf7-form p.cf7-submit-row {
    border: none;
    padding: 1rem 1.2rem 0;
}
.contact-form .wpcf7-acceptance label { font-size: 0.9rem; color: #666; }
.contact-form .wpcf7-submit {
    display: block;
    width: 100%;
    background: var(--color-teal);
    color: #fff;
    border: none;
    padding: 1rem;
    font-size: 1rem;
    font-family: inherit;
    cursor: pointer;
    letter-spacing: 0.15em;
    transition: background 0.2s;
    margin-top: 1.5rem;
}
.contact-form .wpcf7-submit:hover { background: var(--color-teal-dark); }
.contact-form .wpcf7-not-valid-tip { font-size: 0.78rem; color: #e74c3c; display: block; margin-top: 0.3rem; }
.contact-form .wpcf7-response-output { font-size: 0.85rem; padding: 0.8rem 1rem; margin-top: 1rem; border: 1px solid #ccc; }

/* スマホ：項目名（th）を上、入力欄（td）を下に積む */
@media (max-width: 768px) {
    .contact-form table.inquiry,
    .contact-form table.inquiry tbody,
    .contact-form table.inquiry tr,
    .contact-form table.inquiry th,
    .contact-form table.inquiry td {
        display: block;
        width: 100%;
        box-sizing: border-box;
    }
    .contact-form table.inquiry tr {
        padding: 1.2rem 0 1.3rem;
        border-bottom: 1px solid #e5e5e5;
    }
    .contact-form table.inquiry tr:first-child { padding-top: 0; }
    .contact-form table.inquiry th {
        display: flex;
        align-items: center;
        gap: 0.7rem;
        padding: 0 0 0.6rem;
        text-align: left;
        font-size: 1rem;
        font-weight: 700;
        line-height: 1.5;
        color: #333;
    }
    .contact-form table.inquiry th span:not(.haveto):not(.any) { white-space: normal; }
    .contact-form table.inquiry td { padding: 0; border: none; }
    .contact-form table.inquiry th { border: none; }
    .contact-form table.inquiry th p,
    .contact-form .wpcf7-form table.inquiry p.cf7-label-row { margin: 0; padding: 0; border: none; }
    .contact-form table.inquiry td p,
    .contact-form .wpcf7-form table.inquiry p.cf7-input-row { margin: 0; padding: 0; border: none; }
    .contact-form table.inquiry .wpcf7-form-control-wrap { display: block; width: 100%; }
    .contact-form table.inquiry .wpcf7-text,
    .contact-form table.inquiry .wpcf7-email,
    .contact-form table.inquiry .wpcf7-tel,
    .contact-form table.inquiry .wpcf7-select,
    .contact-form table.inquiry .wpcf7-textarea { width: 100%; max-width: 100%; }
}

/* ブログ・アーカイブ */
.archive-section { padding: 4rem 2rem 6rem; background: #fff; }
.archive-section__inner { max-width: 900px; margin: 0 auto; }
.archive-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 3rem 2.5rem; list-style: none; }

/* カード：角丸・影あり */
.archive-item { display: flex; flex-direction: column; background: #fff; border-radius: 8px; box-shadow: 0 2px 12px rgba(0,0,0,0.08); overflow: hidden; transition: box-shadow 0.2s, transform 0.2s; }
.archive-item:hover { box-shadow: 0 4px 20px rgba(0,0,0,0.13); transform: translateY(-2px); }

/* サムネイル：横長16:9 */
.archive-item__thumb { display: block; overflow: hidden; aspect-ratio: 16/9; }
.archive-item__thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.35s; display: block; background: var(--color-light); }
.archive-item:hover .archive-item__thumb img { transform: scale(1.03); }

/* サムネなし・読み込み失敗 */
.archive-item__thumb--none { aspect-ratio: 16/9; background: var(--color-light); display: flex; align-items: center; justify-content: center; }
.archive-item__thumb--none::after { content: 'HI FIVE'; font-size: 1rem; color: #ccc; letter-spacing: 0.3em; }
.archive-item__thumb img[src=""],
.archive-item__thumb img:not([src]) { visibility: hidden; }

/* テキストエリア */
.archive-item__body { padding: 1rem 1.2rem 1.2rem; display: flex; flex-direction: column; align-items: center; text-align: center; flex: 1; }
.archive-item__meta { display: flex; align-items: center; justify-content: center; gap: 0.6rem; margin-bottom: 0.5rem; }
.archive-item__date { color: #aaa; font-size: 0.78rem; white-space: nowrap; letter-spacing: 0.05em; }
.archive-item__cat { font-size: 0.66rem; background: var(--color-teal); color: #fff; padding: 0.15rem 0.7rem; letter-spacing: 0.08em; border-radius: 2px; }
.archive-item__link { font-size: 0.88rem; color: #333; line-height: 1.6; transition: color 0.2s; }
.archive-item__link:hover { color: var(--color-teal); }
.pagination { text-align: center; margin-top: 3rem; }
.pagination .nav-links { display: flex; justify-content: center; gap: 0.5rem; flex-wrap: wrap; }
.pagination .page-numbers { padding: 0.4rem 0.8rem; border: 1px solid #e0e0e0; font-size: 0.82rem; transition: all 0.2s; }
.pagination .page-numbers.current { background: var(--color-teal); color: #fff; border-color: var(--color-teal); }
.pagination .page-numbers:hover:not(.current) { border-color: var(--color-teal); }

/* 投稿詳細 */
.single-date {
    font-size: 0.8rem;
    color: var(--color-teal);
    margin-bottom: 0.5rem;
    letter-spacing: 0.05em;
    display: block;
    font-weight: 500;
}
.single-cats {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-top: 0.8rem;
}
.single-cat {
    font-size: 0.72rem;
    letter-spacing: 0.1em;
    color: #fff;
    background: var(--color-teal);
    padding: 0.2rem 0.8rem;
    transition: background 0.2s;
}
.single-cat:hover { background: var(--color-teal-dark); }

/* === 投稿詳細（最新情報ページのデザインに合わせる） ===================== */
.post-head { padding: 3.5rem 2rem 2rem; background: #fff; text-align: center; }
.post-head__inner { max-width: 750px; margin: 0 auto; }
.post-head__meta { display: flex; align-items: center; justify-content: center; gap: 0.7rem; flex-wrap: wrap; margin-bottom: 1rem; }
.post-head__date { color: #aaa; font-size: 0.85rem; letter-spacing: 0.05em; }
.post-head__cat { font-size: 0.7rem; background: var(--color-teal); color: #fff; padding: 0.15rem 0.8rem; letter-spacing: 0.08em; border-radius: 2px; transition: background 0.2s; }
.post-head__cat:hover { background: var(--color-teal-dark); }
.post-head__title { margin: 0; font-size: clamp(1.35rem, 3.6vw, 1.8rem); font-weight: 700; line-height: 1.6; letter-spacing: 0.04em; color: #333; }
.post-head__title::after { content: ""; display: block; width: 48px; height: 2px; margin: 1.5rem auto 0; background: var(--color-teal); }
.single-eyecatch { padding-top: 1rem; }
.single-article__inner h2 { color: var(--color-teal); letter-spacing: 0.08em; }
.single-article__inner h3 { border-left-color: var(--color-teal); }
.single-nav .single-nav__back {
    padding: 0.7rem 2.2rem;
    border: 1px solid var(--color-teal);
    color: var(--color-teal);
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 0.1em;
}
.single-nav .single-nav__back:hover { background: var(--color-teal); color: #fff; }
@media (max-width: 768px) {
    .post-head { padding: 2.5rem 1.5rem 1.5rem; }
    .post-head__title { font-size: 1.3rem; }
}

/* === イキプロ。事業ページ専用 ===================================== */

/* page-body リセット */
.page-template-page-ikiproject .page-body {
    padding: 0;
    margin: 0;
}

/* ── ヒーロー見出し: IKIPRO ── */
.page-template-page-ikiproject .page-body > h2:nth-child(1) {
    font-size: clamp(2rem, 5vw, 2.8rem);
    font-weight: 600;
    letter-spacing: 0.22em;
    color: #FAEE00;
    text-align: center;
    background: var(--color-light);
    margin: 0;
    padding: 5rem 2rem 0;
    text-transform: uppercase;
}

/* ── ヒーローサブタイトル: 生きる教科書プロジェクト ── */
.page-template-page-ikiproject .page-body > h2:nth-child(2) {
    font-size: 1.1rem;
    font-weight: 500;
    letter-spacing: 0;
    color: #54595f;
    text-align: center;
    background: var(--color-light);
    margin: 0;
    padding: 0.7rem 2rem 3.5rem;
}

/* ── ヒーロー画像段落 ── */
.page-template-page-ikiproject .page-body > p:nth-child(3) {
    background: var(--color-light);
    text-align: center;
    margin: 0;
    padding: 0 2rem;
    line-height: 0;
}
.page-template-page-ikiproject .page-body > p:nth-child(3) img {
    max-width: 55%;
    height: auto;
    display: inline-block;
    vertical-align: bottom;
}

/* ── 説明文 ── */
.page-template-page-ikiproject .page-body > p:nth-child(4) {
    max-width: 800px;
    margin: 4rem auto;
    padding: 0 2rem;
    font-size: 0.9rem;
    line-height: 2.1;
    color: #555;
}

/* ── Elementor重複見出し（br付き版）を非表示 ── */
.page-template-page-ikiproject .page-body > h2:nth-child(6) {
    display: none;
}

/* ── page-body内のCONTACTブロックを非表示（テンプレート側で描画） ── */
.page-template-page-ikiproject .page-body > h2:nth-child(40),
.page-template-page-ikiproject .page-body > p:nth-child(41),
.page-template-page-ikiproject .page-body > p:nth-child(42),
.page-template-page-ikiproject .page-body > p:nth-child(43) {
    display: none;
}

/* ── プログラム見出し（3番目以降のh2）── */
.page-template-page-ikiproject .page-body > h2:nth-child(n+5) {
    font-size: 1.25rem;
    font-weight: 400;
    color: var(--color-teal);
    letter-spacing: 0.12em;
    max-width: 900px;
    margin: 3.5rem auto 1.2rem;
    padding: 0 2rem;
    line-height: 1.6;
}

/* ── プログラム詳細段落（講師・料金・内容・目的と狙い）── */
.page-template-page-ikiproject .page-body > p:nth-child(n+6) {
    max-width: 900px;
    margin: 0 auto;
    padding: 0.3rem 2rem;
    font-size: 0.88rem;
    color: #555;
    line-height: 1.9;
}

/* ── 感想ブロック（article）：最新情報ページと同じ2列カード ── */
.page-template-page-ikiproject .page-body {
    display: grid;
    grid-template-columns: minmax(1rem, 1fr) minmax(0, 430px) 2.5rem minmax(0, 430px) minmax(1rem, 1fr);
}
.page-template-page-ikiproject .page-body > * {
    grid-column: 1 / -1;
}
.page-template-page-ikiproject .page-body > :nth-child(n+5):not(article) {
    width: 100%;
    box-sizing: border-box;
}
.page-template-page-ikiproject .page-body > article:nth-of-type(odd)  { grid-column: 2; }
.page-template-page-ikiproject .page-body > article:nth-of-type(even) { grid-column: 4; }
.page-template-page-ikiproject .page-body > article {
    margin: 0 0 3rem;
    padding: 0;
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.08);
    overflow: hidden;
    transition: box-shadow 0.2s, transform 0.2s;
}
.page-template-page-ikiproject .page-body > article:hover {
    box-shadow: 0 4px 20px rgba(0,0,0,0.13);
    transform: translateY(-2px);
}
.page-template-page-ikiproject .page-body > article > a,
.page-template-page-ikiproject .page-body > article > br,
.page-template-page-ikiproject .page-body > article > p {
    display: none;
}
.page-template-page-ikiproject .page-body > article > img {
    order: -1;
    width: 100%;
    height: auto;
    aspect-ratio: 16/9;
    object-fit: cover;
    display: block;
}
.page-template-page-ikiproject .page-body > article > header {
    padding: 1rem 1.2rem 1.2rem;
    text-align: center;
}
.page-template-page-ikiproject .page-body > article h2 {
    margin: 0;
    padding: 0;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0;
    color: #333;
}
.page-template-page-ikiproject .page-body > article h2 a { color: #333; }
.page-template-page-ikiproject .page-body > article h2 a:hover { color: var(--color-teal); }

/* ── プログラム詳細：項目名（講師・料金・内容・目的と狙い）と中身 ── */
.page-template-page-ikiproject .page-body > p:is(:nth-child(7), :nth-child(9), :nth-child(11), :nth-child(13), :nth-child(20), :nth-child(22), :nth-child(24)) {
    width: calc(100% - 4rem);
    max-width: calc(900px - 4rem);
    margin: 1.8rem auto 0.4rem;
    padding: 0.1rem 0 0.1rem 0.8rem;
    border-left: 3px solid var(--color-teal);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    color: var(--color-teal);
    line-height: 1.6;
}
.page-template-page-ikiproject .page-body > p:is(:nth-child(8), :nth-child(10), :nth-child(12), :nth-child(14), :nth-child(15), :nth-child(16), :nth-child(17), :nth-child(18), :nth-child(21), :nth-child(23), :nth-child(25)) {
    font-size: 0.95rem;
    color: #333;
    line-height: 2;
    padding-left: calc(2rem + 0.8rem);
}
/* 料金は強調 */
.page-template-page-ikiproject .page-body > p:nth-child(10) {
    font-size: 1.2rem;
    font-weight: 700;
}

/* 「もっと見る」ボタン（中央・タイトルと同サイズ） */
.page-template-page-ikiproject .page-body > p:nth-child(39) {
    text-align: center;
    padding: 1rem 0 0;
}
.page-template-page-ikiproject .page-body > p:nth-child(39) button {
    display: inline-block;
    padding: 0.8rem 3rem;
    border: 1px solid var(--color-teal);
    background: #fff;
    color: var(--color-teal);
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    cursor: pointer;
    transition: all 0.3s ease;
}
.page-template-page-ikiproject .page-body > p:nth-child(39) button:hover {
    background: var(--color-teal);
    color: #fff;
}
.page-template-page-ikiproject .page-body > p:nth-child(39) button br { display: none; }

@media (max-width: 700px) {
    .page-template-page-ikiproject .page-body {
        grid-template-columns: minmax(0, 1fr);
    }
    .page-template-page-ikiproject .page-body > article:nth-of-type(odd),
    .page-template-page-ikiproject .page-body > article:nth-of-type(even) {
        grid-column: 1;
        width: calc(100% - 2rem);
        max-width: 430px;
        justify-self: center;
        margin-bottom: 1.5rem;
    }
}

/* ── ikiproject-main 下マージン ── */
.ikiproject-main {
    margin-bottom: 0;
}
.ikiproject-main .page-body {
    padding-bottom: 5rem;
}

@media (max-width: 600px) {
    .page-template-page-ikiproject .page-body > p:nth-child(3) img {
        max-width: 90%;
    }
    .page-template-page-ikiproject .page-body > h2:nth-child(1) {
        font-size: 2rem;
        padding-top: 3rem;
    }
}

.single-eyecatch { background: #fff; padding: 0 2rem; }
.single-eyecatch__inner { max-width: 750px; margin: 0 auto; }
.single-eyecatch__inner img { width: 100%; height: auto; display: block; }

.single-article { padding: 3rem 2rem 4rem; background: #fff; }
.single-article__inner { max-width: 750px; margin: 0 auto; }
.single-article__inner p { margin-bottom: 1.5rem; line-height: 2; color: #555; font-size: 0.95rem; }
.single-article__inner h2 {
    font-size: 1.3rem;
    margin: 2.5rem 0 1rem;
    font-weight: 700;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid var(--color-teal);
}
.single-article__inner h3 {
    font-size: 1.05rem;
    margin: 2rem 0 0.8rem;
    font-weight: 700;
    padding-left: 0.8rem;
    border-left: 3px solid var(--color-gold);
}
.single-article__inner img { margin: 2rem auto; max-width: 100%; height: auto; }
.single-article__inner ul,
.single-article__inner ol { padding-left: 1.5rem; margin-bottom: 1.5rem; }
.single-article__inner li { font-size: 0.95rem; color: #555; line-height: 2; margin-bottom: 0.3rem; }
.single-article__inner a { color: var(--color-teal); text-decoration: underline; }
.single-article__inner blockquote {
    border-left: 3px solid #e0e0e0;
    padding: 1rem 1.5rem;
    margin: 1.5rem 0;
    color: #888;
    font-size: 0.9rem;
    background: #f8f8f8;
}

.single-nav { padding: 2.5rem 2rem; border-top: 1px solid #eee; background: #fff; }
.single-nav__inner {
    max-width: 750px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 1.5rem;
    align-items: center;
}
.single-nav__prev { text-align: left; }
.single-nav__next { text-align: right; }
.single-nav__prev, .single-nav__next {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    transition: color 0.2s;
}
.single-nav__prev:hover, .single-nav__next:hover { color: var(--color-teal); }
.single-nav__label { font-size: 0.72rem; color: #bbb; letter-spacing: 0.05em; }
.single-nav__title { font-size: 0.82rem; color: #555; line-height: 1.5; }
.single-nav__prev:hover .single-nav__title,
.single-nav__next:hover .single-nav__title { color: var(--color-teal); }
.single-nav__back {
    font-size: 0.78rem;
    color: #aaa;
    letter-spacing: 0.1em;
    border: 1px solid #ddd;
    padding: 0.5rem 1.2rem;
    text-align: center;
    white-space: nowrap;
    transition: all 0.2s;
}
.single-nav__back:hover { border-color: var(--color-teal); color: var(--color-teal); }
.single-nav__empty { display: block; }

/* page-content（汎用固定ページ） */
.page-content { padding: 6rem 2rem; background: #fff; }
.page-content__inner { max-width: 800px; margin: 0 auto; }

/* ============================================================
   ハンバーガーボタン（デスクトップでは非表示）
============================================================ */
.nav-toggle {
    display: none;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    width: 44px;
    height: 44px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    z-index: 300;
}
.nav-toggle span {
    display: block;
    width: 24px;
    height: 2px;
    background: #333;
    transition: all 0.3s ease;
    transform-origin: center;
}
.home .nav-toggle span { background: #fff; }
.site-header.scrolled .nav-toggle span,
body:not(.home) .nav-toggle span { background: #333; }

.nav-toggle.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-toggle.is-open span:nth-child(2) { opacity: 0; }
.nav-toggle.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ============================================================
   モバイルナビ
============================================================ */
.mobile-nav {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    height: 100dvh;
    background: linear-gradient(160deg, var(--color-teal) 0%, var(--color-teal-dark) 100%);
    z-index: 150;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
    overflow-y: auto;
}
.mobile-nav.is-open {
    opacity: 1;
    pointer-events: auto;
}
.mobile-nav__inner {
    padding: 92px 1.75rem 3rem;
}
.mobile-nav__list,
.mobile-nav .menu {
    list-style: none;
    padding: 0;
    margin: 0;
    text-align: left;
}
.mobile-nav__list > li { margin: 0; }
.mobile-nav__list > li > a {
    display: block;
    padding: 1.05rem 0.25rem;
    font-size: 1.3rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    line-height: 1.4;
    color: #fff;
    border-bottom: 1px solid rgba(255,255,255,0.35);
    transition: opacity 0.2s;
}
.mobile-nav__list li a:hover { opacity: 0.8; }
.mobile-nav .sub-menu {
    display: block !important;
    position: static !important;
    background: none;
    padding: 0.6rem 0 0.9rem 0.4rem;
    min-width: auto;
    margin: 0;
    list-style: none;
    border-bottom: 1px solid rgba(255,255,255,0.35);
}
.mobile-nav .sub-menu li { margin: 0; }
.mobile-nav .sub-menu li a {
    position: relative;
    display: block;
    padding: 0.7rem 0.5rem 0.7rem 1.6rem;
    font-size: 1.1rem;
    font-weight: 400;
    letter-spacing: 0.05em;
    line-height: 1.4;
    color: #fff !important;
    border-left: 2px solid rgba(255,255,255,0.55);
}
.mobile-nav .sub-menu li a::before {
    content: "";
    position: absolute;
    left: 0.7rem;
    top: 50%;
    width: 6px;
    height: 6px;
    margin-top: -3px;
    border-radius: 50%;
    background: #fff;
}
/* 事業案内のように子を持つ項目は、下の線を子の下に移す */
.mobile-nav__list > li.menu-item-has-children > a { border-bottom: none; padding-bottom: 0.4rem; }

/* メニューを開いている間は、ボタンを白くして、背面のスクロールを止める */
.site-header .nav-toggle.is-open span,
.home .nav-toggle.is-open span { background: #fff; }
body.nav-open { overflow: hidden; }

/* ============================================================
   レスポンシブ（タブレット）
============================================================ */
@media (max-width: 960px) {
    .about-profile__inner,
    .about-profile--reverse .about-profile__inner { flex-direction: column; gap: 2rem; }
    .about-profile__img { flex: none; width: 100%; max-width: 300px; margin: 0 auto; }

    .biz-card {
        flex-direction: column;
    }
    .biz-card--reverse {
        flex-direction: column;
    }
    .biz-card__num-col {
        flex: 0 0 60px;
        flex-direction: row;
        align-items: center;
        justify-content: flex-start;
        padding: 0 1.5rem;
    }
    .biz-card__img {
        flex: 0 0 240px;
        width: 100%;
    }
}

/* ============================================================
   レスポンシブ（モバイル）
============================================================ */
@media (max-width: 768px) {
    body { font-size: 16px; }

    /* ヘッダー */
    .header-bar { display: none; }
    .header-main { padding: 0 1rem; }
    .header-inner { height: 56px; }
    .site-logo img { height: 34px; }
    #site-nav { display: none; }
    .nav-toggle { display: flex; }
    .mobile-nav { display: block; }
    /* モバイルでは管理バーを非表示にしてヘッダーをトップに固定 */
    .admin-bar #wpadminbar { display: none !important; }
    .admin-bar .site-header { top: 0 !important; }
    .admin-bar .mobile-nav { padding-top: 0; }

    /* FV */
    .fv { height: 80vh; min-height: 480px; }
    .fv__bg {
        background-image: url('images/fv-bg-sp.jpg');
        background-position: center top;
    }
    .fv__inner { padding: 2rem 1.5rem; }
    .fv__catch { font-size: clamp(1.3rem, 6vw, 1.8rem); }

    /* WHAT'S NEW */
    .news { padding: 4rem 1.5rem; }
    .news__item { flex-direction: column; gap: 0.3rem; padding: 0.9rem 0.5rem; }
    .news__date { font-size: 0.85rem; }
    .news__link { font-size: 0.98rem; }

    /* キャッチブロック（文字は、写真の左側に2行で出す） */
    .catch-block {
        height: 200px;
        background-position: right center;
    }
    .catch-block__overlay,
    .catch-block--reverse .catch-block__overlay {
        background: linear-gradient(to right, rgba(255,255,255,0.95) 30%, rgba(255,255,255,0.5) 60%, rgba(255,255,255,0.1) 100%);
    }
    .catch-block__text,
    .catch-block--reverse .catch-block__text {
        left: 1.5rem !important;
        right: auto !important;
        width: 60%;
        top: auto;
        bottom: 1.1rem;
        transform: none;
    }
    .catch-block__text p { font-size: clamp(0.9rem, 3.8vw, 1.05rem); color: #666 !important; }
    .sp-br { display: inline; }

    /* プロフィールブロック */
    .profile-block { padding: 3rem 1.5rem; }
    .profile-block__inner {
        flex-direction: column;
        gap: 2rem;
        text-align: center;
    }
    .profile-block--reverse .profile-block__inner {
        flex-direction: column;
    }
    .profile-block__img img { width: 240px; margin: 0 auto; }
    .profile-block__text { align-items: center; }
    .profile-block__name { font-size: 1.6rem; }
    .profile-block__name-en { font-size: 0.85rem; }

    /* 事業案内 */
    .business__header { padding: 4rem 1.5rem 2.5rem; }
    .business__lead { font-size: 1.2rem; color: #666; }
    .biz-card__title { color: #666; }
    .biz-list { padding: 0 1.5rem 3rem; }
    .biz-card {
        flex-direction: column;
        min-height: auto;
        margin-bottom: 1.5rem;
    }
    .biz-card--reverse { flex-direction: column; }
    .biz-card__num-col {
        flex: 0 0 50px;
        flex-direction: row;
        padding: 0 1rem;
        background: #f0ede8;
    }
    .biz-card--reverse .biz-card__num-col { background: #e8ecf0; }
    .biz-card__body { padding: 1.5rem; }
    .biz-card__img { flex: 0 0 200px; width: 100%; }

    /* YouTube */
    .youtube-section { padding: 3rem 1.5rem; }

    /* SDGs */
    .sdgs { padding: 4rem 1.5rem; }
    .sdgs__title { font-size: 0.95rem; }
    .sdgs__sub { font-size: 0.9rem; }

    /* バナー */
    .banners { padding: 3rem 1rem; }
    .banners__inner { flex-direction: column; gap: 1rem; }
    /* 縦に積んで、左に画像、右にタイトルと説明文 */
    .banner-card {
        flex: none;
        flex-direction: row;
        align-items: center;
        gap: 1rem;
        min-width: 0;
        padding: 0.75rem;
        background: #fff;
        box-shadow: 0 2px 12px rgba(0,0,0,0.08);
    }
    .banner-card .banner-card__img { flex: 0 0 38%; }
    .banner-card__body { flex: 1; min-width: 0; }
    .banner-card__title {
        display: block;
        margin: 0 0 0.4rem;
        font-size: 1.1rem;
        font-weight: 700;
        line-height: 1.4;
        letter-spacing: 0.04em;
        color: var(--color-teal);
    }
    .banner-card__text { margin-top: 0; font-size: 0.85rem; line-height: 1.6; text-align: left; }

    /* コンタクト */
    .contact { padding: 4rem 1.5rem; }
    .contact__title { font-size: 1.5rem; }
    .contact__btns { flex-direction: column; align-items: center; gap: 1rem; }
    .btn--contact { width: 100%; max-width: 300px; text-align: center; }

    /* 固定ページ共通 */
    .page-main { padding-top: 56px; }
    .page-header { padding: 3rem 1.5rem; }

    /* アーカイブ */
    .archive-section { padding: 3rem 1rem; }
    .archive-list { grid-template-columns: 1fr; gap: 1.5rem; }

    /* 投稿詳細 */
    .single-eyecatch { padding: 0 1.5rem; }
    .single-article { padding: 2rem 1.5rem 3rem; }
    .single-article__inner p,
    .single-article__inner li { font-size: 0.9rem; }
    .single-nav { padding: 2rem 1.5rem; }
    .single-nav__inner {
        grid-template-columns: 1fr;
        grid-template-rows: auto auto auto;
    }
    .single-nav__prev { order: 1; }
    .single-nav__back { order: 2; text-align: center; }
    .single-nav__next { order: 3; text-align: left; }

    /* 事業・子ページ */
    .business-list { padding: 3rem 1.5rem; }
    .business-card { flex-direction: column; gap: 1rem; }
    .lecture-speakers { grid-template-columns: 1fr; }

    /* HIFIVEについて */
    .about-profile { padding: 3rem 1.5rem; }
    .about-company { padding: 3rem 1.5rem; }
    .company-table th { width: 80px; }
    .company-table th, .company-table td { padding: 0.8rem 1rem; font-size: 0.82rem; }
}


/* === 研修・講演・YouTube・GOKANページ共通（イキプロと同じデザイン） ======= */
:is(.page-template-page-training, .page-template-page-lecture, .page-template-page-youtube, .page-template-page-gokan) .page-body {
    display: grid;
    grid-template-columns: minmax(1rem, 1fr) minmax(0, 430px) 2.5rem minmax(0, 430px) minmax(1rem, 1fr);
    margin: 0;
    padding: 0 0 5rem;
}
:is(.page-template-page-training, .page-template-page-lecture, .page-template-page-youtube, .page-template-page-gokan) .page-body > * { grid-column: 1 / -1; }
:is(.page-template-page-training, .page-template-page-lecture, .page-template-page-youtube, .page-template-page-gokan) .page-body > :nth-child(n+4):not(article) {
    width: 100%;
    box-sizing: border-box;
}

/* ── ヒーロー（英字見出し・サブタイトル・画像） ── */
:is(.page-template-page-training, .page-template-page-lecture, .page-template-page-youtube, .page-template-page-gokan) .page-body > h2:nth-child(1) {
    font-size: clamp(2rem, 5vw, 2.8rem);
    font-weight: 600;
    letter-spacing: 0.22em;
    color: #FAEE00;
    text-align: center;
    background: var(--color-light);
    margin: 0;
    padding: 5rem 2rem 0;
    text-transform: uppercase;
}
:is(.page-template-page-training, .page-template-page-lecture, .page-template-page-youtube, .page-template-page-gokan) .page-body > h2:nth-child(2) {
    font-size: 1.1rem;
    font-weight: 500;
    letter-spacing: 0;
    color: #54595f;
    text-align: center;
    background: var(--color-light);
    margin: 0;
    padding: 0.7rem 2rem 3.5rem;
}
:is(.page-template-page-training, .page-template-page-lecture, .page-template-page-youtube, .page-template-page-gokan) .page-body > p:nth-child(3) {
    background: var(--color-light);
    text-align: center;
    margin: 0;
    padding: 0 2rem;
    line-height: 0;
}
:is(.page-template-page-training, .page-template-page-lecture, .page-template-page-youtube, .page-template-page-gokan) .page-body > p:nth-child(3) img {
    max-width: 55%;
    height: auto;
    display: inline-block;
    vertical-align: bottom;
}
:is(.page-template-page-training, .page-template-page-lecture, .page-template-page-youtube, .page-template-page-gokan) .page-body iframe {
    display: block;
    width: 100%;
    max-width: 900px;
    aspect-ratio: 16 / 9;
    height: auto;
    margin: 0 auto;
}

/* ── 説明文（冒頭のリード） ── */
body.page-template-page-training .page-body > p:nth-child(4),
body.page-template-page-youtube .page-body > p:nth-child(4),
body.page-template-page-gokan .page-body > p:nth-child(4),
body.page-template-page-lecture .page-body > p:nth-child(5) {
    max-width: 800px;
    margin: 4rem auto;
    padding: 0 2rem;
    font-size: 0.9rem;
    line-height: 2.1;
    color: #555;
}

/* ── セクション見出し ── */
:is(.page-template-page-training, .page-template-page-lecture, .page-template-page-youtube, .page-template-page-gokan) .page-body > h2:nth-child(n+3) {
    font-size: 1.25rem;
    font-weight: 400;
    color: var(--color-teal);
    letter-spacing: 0.12em;
    max-width: 900px;
    margin: 3.5rem auto 1.2rem;
    padding: 0 2rem;
    line-height: 1.6;
}

/* ── 本文の段落 ── */
:is(.page-template-page-training, .page-template-page-lecture, .page-template-page-youtube, .page-template-page-gokan) .page-body > p:nth-child(n+4),
:is(.page-template-page-training, .page-template-page-lecture, .page-template-page-youtube, .page-template-page-gokan) .page-body > section p {
    max-width: 900px;
    margin: 0 auto;
    padding: 0.3rem 2rem;
    font-size: 0.95rem;
    color: #333;
    line-height: 2;
}
:is(.page-template-page-training, .page-template-page-lecture, .page-template-page-youtube, .page-template-page-gokan) .page-body > section { max-width: 900px; margin: 0 auto; }
:is(.page-template-page-training, .page-template-page-lecture, .page-template-page-youtube, .page-template-page-gokan) .page-body > section p { margin: 0 0 1rem; }

/* ── 項目名（講師・料金・内容）と中身 ── */
.page-template-page-training .page-body > p:is(:nth-child(7), :nth-child(9), :nth-child(11)),
.page-template-page-lecture .page-body > p:is(:nth-child(7), :nth-child(9), :nth-child(20), :nth-child(22)) {
    width: calc(100% - 4rem);
    max-width: calc(900px - 4rem);
    margin: 1.8rem auto 0.4rem;
    padding: 0.1rem 0 0.1rem 0.8rem;
    border-left: 3px solid var(--color-teal);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    color: var(--color-teal);
    line-height: 1.6;
}
.page-template-page-training .page-body > p:is(:nth-child(8), :nth-child(10), :nth-child(12)),
.page-template-page-lecture .page-body > p:is(:nth-child(8), :nth-child(10), :nth-child(21), :nth-child(23)) {
    padding-left: calc(2rem + 0.8rem);
}
.page-template-page-lecture .page-body > p:nth-child(10) {
    font-size: 1.2rem;
    font-weight: 700;
}


/* ── 感想・報告ブロック（article）：最新情報ページと同じ2列カード ── */
:is(.page-template-page-training, .page-template-page-lecture, .page-template-page-youtube, .page-template-page-gokan) .page-body > article:nth-of-type(odd)  { grid-column: 2; }
:is(.page-template-page-training, .page-template-page-lecture, .page-template-page-youtube, .page-template-page-gokan) .page-body > article:nth-of-type(even) { grid-column: 4; }
:is(.page-template-page-training, .page-template-page-lecture, .page-template-page-youtube, .page-template-page-gokan) .page-body > article {
    margin: 0 0 3rem;
    padding: 0;
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.08);
    overflow: hidden;
    transition: box-shadow 0.2s, transform 0.2s;
}
:is(.page-template-page-training, .page-template-page-lecture, .page-template-page-youtube, .page-template-page-gokan) .page-body > article:hover {
    box-shadow: 0 4px 20px rgba(0,0,0,0.13);
    transform: translateY(-2px);
}
:is(.page-template-page-training, .page-template-page-lecture, .page-template-page-youtube, .page-template-page-gokan) .page-body > article > a,
:is(.page-template-page-training, .page-template-page-lecture, .page-template-page-youtube, .page-template-page-gokan) .page-body > article > br,
:is(.page-template-page-training, .page-template-page-lecture, .page-template-page-youtube, .page-template-page-gokan) .page-body > article > p {
    display: none;
}
:is(.page-template-page-training, .page-template-page-lecture, .page-template-page-youtube, .page-template-page-gokan) .page-body > article > img {
    order: -1;
    width: 100%;
    height: auto;
    aspect-ratio: 16/9;
    object-fit: cover;
    display: block;
}
:is(.page-template-page-training, .page-template-page-lecture, .page-template-page-youtube, .page-template-page-gokan) .page-body > article > header {
    padding: 1rem 1.2rem 1.2rem;
    text-align: center;
}
:is(.page-template-page-training, .page-template-page-lecture, .page-template-page-youtube, .page-template-page-gokan) .page-body > article h2 {
    margin: 0;
    padding: 0;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0;
    color: #333;
}
:is(.page-template-page-training, .page-template-page-lecture, .page-template-page-youtube, .page-template-page-gokan) .page-body > article h2 a { color: #333; }
:is(.page-template-page-training, .page-template-page-lecture, .page-template-page-youtube, .page-template-page-gokan) .page-body > article h2 a:hover { color: var(--color-teal); }

/* ── 「もっと見る」ボタン ── */
:is(.page-template-page-training, .page-template-page-lecture, .page-template-page-youtube, .page-template-page-gokan) .page-body > p:has(> button) {
    text-align: center;
    padding: 1rem 0 0;
    max-width: none;
}
:is(.page-template-page-training, .page-template-page-lecture, .page-template-page-youtube, .page-template-page-gokan) .page-body > p:has(> button) button {
    display: inline-block;
    padding: 0.8rem 3rem;
    border: 1px solid var(--color-teal);
    background: #fff;
    color: var(--color-teal);
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    cursor: pointer;
    transition: all 0.3s ease;
}
:is(.page-template-page-training, .page-template-page-lecture, .page-template-page-youtube, .page-template-page-gokan) .page-body > p:has(> button) button:hover {
    background: var(--color-teal);
    color: #fff;
}
:is(.page-template-page-training, .page-template-page-lecture, .page-template-page-youtube, .page-template-page-gokan) .page-body > p:has(> button) button br { display: none; }
/* 「もっと見る」リンク（ボタンと同じ見た目）。講演・イキプロ・GOKAN・研修・HIFIVEについて */
.page-body > p:has(> a.more-link) {
    text-align: center;
    padding: 1rem 0 0;
    max-width: none;
}
.ab-news > p:has(> a.more-link) {
    grid-column: 1 / -1;
    margin: 1rem 0 0;
    padding: 0;
    text-align: center;
}
.page-body a.more-link {
    display: inline-block;
    padding: 0.8rem 3rem;
    border: 1px solid var(--color-teal);
    background: #fff;
    color: var(--color-teal);
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    line-height: 1.6;
    transition: all 0.3s ease;
}
.page-body a.more-link:hover {
    background: var(--color-teal);
    color: #fff;
}

/* ── 本文末尾のCONTACTブロックを非表示（テンプレート側で描画） ── */
:is(.page-template-page-training, .page-template-page-lecture, .page-template-page-youtube, .page-template-page-gokan) .page-body > h2:nth-last-child(4),
:is(.page-template-page-training, .page-template-page-lecture, .page-template-page-youtube, .page-template-page-gokan) .page-body > p:nth-last-child(-n+3) {
    display: none;
}

@media (max-width: 700px) {
    :is(.page-template-page-training, .page-template-page-lecture, .page-template-page-youtube, .page-template-page-gokan) .page-body {
        grid-template-columns: minmax(0, 1fr);
    }
    /* 記事カードの一覧は、スマホでは6件まで（残りは「もっと見る」から） */
    body:is(.page-template-page-lecture, .page-template-page-training, .page-template-page-gokan, .page-template-page-ikiproject) .page-body > article:nth-of-type(n+7),
    .ab-news > article:nth-of-type(n+7) { display: none; }
    :is(.page-template-page-training, .page-template-page-lecture, .page-template-page-youtube, .page-template-page-gokan) .page-body > article:nth-of-type(odd),
    :is(.page-template-page-training, .page-template-page-lecture, .page-template-page-youtube, .page-template-page-gokan) .page-body > article:nth-of-type(even) {
        grid-column: 1;
        width: calc(100% - 2rem);
        max-width: 430px;
        justify-self: center;
        margin-bottom: 1.5rem;
    }
}

/* ── YouTubeページ：本文先頭にElementorのstyleタグが入るため位置を調整 ── */
body.page-template-page-youtube .page-body > h2:nth-child(3) {
    max-width: none;
    margin: 0;
    padding: 5rem 2rem 0;
    font-size: clamp(2rem, 5vw, 2.8rem);
    font-weight: 600;
    letter-spacing: 0.22em;
    color: #FAEE00;
    text-align: center;
    background: var(--color-light);
    text-transform: uppercase;
    line-height: 1.8;
}
body.page-template-page-youtube .page-body > h2:nth-child(4) {
    max-width: none;
    margin: 0;
    padding: 0.7rem 2rem 3.5rem;
    font-size: 1.1rem;
    font-weight: 500;
    letter-spacing: 0;
    color: #54595f;
    text-align: center;
    background: var(--color-light);
    line-height: 1.8;
}
body.page-template-page-youtube .page-body > p:nth-child(6) {
    max-width: none;
    margin: 0;
    padding: 0 2rem;
    background: var(--color-light);
    text-align: center;
    line-height: 0;
}
body.page-template-page-youtube .page-body > p:nth-child(6) img {
    max-width: 55%;
    height: auto;
    display: inline-block;
    vertical-align: bottom;
}
/* スマホでは、イキプロページと同じく、写真を幅の90%で表示する（GOKAN・YouTube） */
@media (max-width: 600px) {
    body.page-template-page-youtube .page-body > p:nth-child(6) img,
    body.page-template-page-gokan .page-body > p:nth-child(3) img {
        max-width: 90%;
    }
}
body.page-template-page-youtube .page-body > p:nth-child(7) {
    max-width: 800px;
    margin: 4rem auto;
    padding: 0 2rem;
    font-size: 0.9rem;
    line-height: 2.1;
    color: #555;
}

/* ── GOKANページ：ダウンロードセクション（元サイトのレイアウト） ── */
body.page-template-page-gokan .page-body > h2:nth-child(5) {
    max-width: 1100px;
    margin: 5rem auto 3rem;
    padding: 0 0 1rem;
    border-bottom: 2px solid var(--color-teal);
    text-align: center;
    font-size: 1.4rem;
    font-weight: 500;
    letter-spacing: 0.2em;
    color: var(--color-teal);
}
body.page-template-page-gokan .page-body > h2:nth-child(5) br { display: none; }
body.page-template-page-gokan .page-body > h2:nth-child(6) {
    margin: 0 auto 1rem;
    text-align: center;
    font-size: 1.15rem;
    font-weight: 700;
    letter-spacing: 0.15em;
    color: #54595f;
}
body.page-template-page-gokan .page-body > p:nth-child(8) {
    text-align: center;
    padding: 2rem 0 0;
    max-width: none;
}
body.page-template-page-gokan .page-body > p:nth-child(8) a {
    display: inline-block;
    padding: 1rem 3.5rem;
    border-radius: 999px;
    background: var(--color-teal);
    color: #fff;
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    line-height: 1.6;
    transition: opacity 0.3s ease;
}
body.page-template-page-gokan .page-body > p:nth-child(8) a:hover { opacity: 0.8; }
body.page-template-page-gokan .page-body > p:nth-child(8) a br { display: none; }

/* ── GOKANページ：「療育のご感想」見出し（元サイトのレイアウト） ── */
body.page-template-page-gokan .page-body > h2:nth-child(9) {
    max-width: 1100px;
    margin: 5rem auto 3rem;
    padding: 0 1.3rem 1rem;
    border-bottom: 2px solid var(--color-teal);
    text-align: left;
    font-size: 1.25rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    color: var(--color-teal);
}

/* ── 感想・報告の見出し（GOKANと同じ：左寄せ・太字・幅広の罫線） ── */
body.page-template-page-training .page-body > h2:is(:nth-child(5), :nth-child(16)),
body.page-template-page-lecture .page-body > h2:is(:nth-child(4), :nth-child(26), :nth-child(28), :nth-child(30)),
body.page-template-page-ikiproject .page-body > h2:nth-child(26) {
    max-width: 1100px;
    margin: 5rem auto 3rem;
    padding: 0 1.3rem 1rem;
    border-bottom: 2px solid var(--color-teal);
    text-align: left;
    font-size: 1.25rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    color: var(--color-teal);
}

/* ── YouTubeページ：セクション（01〜04）と動画 ── */
.page-template-page-youtube .yt-block {
    padding: 3.5rem 0 4.5rem;
    background: #fff;
}
.page-template-page-youtube .yt-block:nth-of-type(odd) {
    background: var(--color-light);
}
.page-template-page-youtube .yt-block h2 {
    box-sizing: border-box;
    width: calc(100% - 4rem);
    max-width: 900px;
    margin: 0 auto 2.5rem;
    padding: 0 0 1rem;
    border-bottom: 2px solid var(--color-teal);
    text-align: left;
    font-size: 1.4rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    line-height: 1.6;
    color: var(--color-teal);
}
.page-template-page-youtube .yt-block p {
    box-sizing: border-box;
    width: calc(100% - 4rem);
    max-width: 900px;
    margin: 0 auto 2rem;
    padding: 0;
    font-size: 0.95rem;
    line-height: 2;
    color: #54595f;
}
.page-template-page-youtube .yt-embed {
    width: calc(100% - 4rem);
    max-width: 840px;
    margin: 0 auto;
    aspect-ratio: 16 / 9;
}
.page-template-page-youtube .yt-embed iframe {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    margin: 0;
    border: 0;
}
.page-template-page-youtube .yt-more {
    margin: 3rem 0 0;
    text-align: center;
}
.page-template-page-youtube .yt-more a {
    display: inline-block;
    padding: 1rem 3.5rem;
    border-radius: 999px;
    background: var(--color-teal);
    color: #fff;
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    line-height: 1.6;
    transition: opacity 0.3s ease;
}
.page-template-page-youtube .yt-more a:hover { opacity: 0.8; }
.page-template-page-youtube .yt-more a br { display: none; }

/* ── 見出し内の改行を隠して1行にする ── */
:is(.page-template-page-training, .page-template-page-lecture, .page-template-page-ikiproject) .page-body > h2 br { display: none; }

/* ── 講演ページ：ダウンロード枠（WPDM）を本文の幅に揃える ── */
.page-template-page-lecture .page-body > div.w3eden {
    box-sizing: border-box;
    width: 100%;
    max-width: 900px;
    margin: 1.5rem auto;
    padding: 0 2rem;
}

/* ── 講演ページ：講演主催者インタビュー（動画を2列で表示） ── */
.page-template-page-lecture .yt-grid {
    box-sizing: border-box;
    width: 100%;
    max-width: 900px;
    margin: 0 auto 1rem;
    padding: 0 2rem;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
}
.page-template-page-lecture .yt-grid .yt-embed {
    aspect-ratio: 16 / 9;
}
.page-template-page-lecture .yt-grid .yt-embed:last-child:nth-child(odd) {
    grid-column: 1 / -1;
}
.page-template-page-lecture .yt-grid iframe {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    margin: 0;
    border: 0;
}
@media (max-width: 700px) {
    .page-template-page-lecture .yt-grid { grid-template-columns: minmax(0, 1fr); }
}

/* ── 研修プログラムページ：内容セクション（タグ・カード・表） ── */
body.page-template-page-training .page-body > .tr-detail {
    max-width: 900px;
    margin: 0 auto;
    padding: 0.3rem 2rem 0.3rem calc(2rem + 0.8rem);
}
:is(.page-template-page-training, .page-template-page-lecture) .tr-tag {
    display: inline-block;
    margin: 0 0 0.9rem;
    padding: 0.25rem 1rem;
    border-radius: 999px;
    background: #e6f6f6;
    color: var(--color-teal-dark);
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.08em;
}
:is(.page-template-page-training, .page-template-page-lecture) .tr-detail p {
    margin: 0 0 1rem;
    font-size: 0.95rem;
    line-height: 2.1;
    color: #333;
}
:is(.page-template-page-training, .page-template-page-lecture) .tr-detail .tr-callout {
    padding: 0.9rem 1.2rem;
    background: var(--color-light);
    border-left: 3px solid var(--color-gold);
    font-size: 0.92rem;
    line-height: 1.9;
}
body.page-template-page-training .page-body > .tr-card {
    box-sizing: border-box;
    width: calc(100% - 4rem);
    max-width: 836px;
    margin: 1.5rem auto;
    padding: 1.6rem 2rem;
    background: #fff;
    border: 1px solid #dcebeb;
    border-radius: 8px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.06);
}
:is(.page-template-page-training, .page-template-page-lecture) .tr-card__title {
    margin: 0 0 1rem;
    padding: 0 0 0.7rem;
    border-bottom: 1px solid #e3eeee;
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: var(--color-teal);
}
:is(.page-template-page-training, .page-template-page-lecture) .tr-list {
    margin: 0;
    padding: 0;
    list-style: none;
}
:is(.page-template-page-training, .page-template-page-lecture) .tr-list li {
    position: relative;
    padding: 0.35rem 0 0.35rem 1.6rem;
    font-size: 0.95rem;
    line-height: 1.8;
    color: #333;
}
:is(.page-template-page-training, .page-template-page-lecture) .tr-list li::before {
    content: '\2713';
    position: absolute;
    left: 0;
    color: var(--color-teal);
    font-weight: 700;
}
:is(.page-template-page-training, .page-template-page-lecture) .tr-note {
    margin: 0.8rem 0 0;
    padding: 0;
    font-size: 0.82rem;
    color: #888;
}
:is(.page-template-page-training, .page-template-page-lecture) .tr-time {
    width: 100%;
    border-collapse: collapse;
}
:is(.page-template-page-training, .page-template-page-lecture) .tr-time tr { border-bottom: 1px dotted #cfe3e3; }
:is(.page-template-page-training, .page-template-page-lecture) .tr-time tr:last-child { border-bottom: 0; }
:is(.page-template-page-training, .page-template-page-lecture) .tr-time th {
    width: 5.2rem;
    padding: 0.55rem 0.5rem;
    text-align: left;
    vertical-align: top;
    white-space: nowrap;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--color-teal);
}
:is(.page-template-page-training, .page-template-page-lecture) .tr-time td {
    padding: 0.55rem 0.5rem;
    font-size: 0.95rem;
    line-height: 1.7;
    color: #333;
}
:is(.page-template-page-training, .page-template-page-lecture) .tr-time tr.is-fb { background: #f6fbfb; }
:is(.page-template-page-training, .page-template-page-lecture) .tr-time tr.is-fb td,
:is(.page-template-page-training, .page-template-page-lecture) .tr-time tr.is-fb th { color: #777; font-weight: 400; }
:is(.page-template-page-training, .page-template-page-lecture) .tr-time tr.is-fb td { font-size: 0.9rem; }

/* ── 研修プログラムページ：「01）企業向け…」の見出しを非表示 ── */
.page-template-page-training .page-body > h2:nth-child(6) { display: none; }

/* ── 講演ページ：「02）企業向け講演」の強みカード ── */
body.page-template-page-lecture .page-body > .tr-cards {
    box-sizing: border-box;
    width: 100%;
    max-width: 900px;
    margin: 0 auto;
    padding: 0 2rem;
}
.page-template-page-lecture .tr-cards .tr-card {
    margin: 1.2rem 0;
    padding: 1.6rem 2rem;
    background: #fff;
    border: 1px solid #dcebeb;
    border-radius: 8px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.06);
}
.page-template-page-lecture .tr-card__text {
    margin: 0;
    font-size: 0.95rem;
    line-height: 2;
    color: #333;
}

/* ── チェックマーク付きの行（講演の料金の注記／イキプロの目的と狙い） ── */
body.page-template-page-lecture .page-body > p.chk-item,
body.page-template-page-ikiproject .page-body > p.chk-item,
body.page-template-page-about .page-body > p.chk-item {
    position: relative;
    padding: 0.35rem 2rem 0.35rem calc(2rem + 0.8rem + 1.6rem);
    font-size: 0.95rem;
    line-height: 1.8;
    color: #333;
}
body.page-template-page-lecture .page-body > p.chk-item::before,
body.page-template-page-ikiproject .page-body > p.chk-item::before,
body.page-template-page-about .page-body > p.chk-item::before {
    content: '\2713';
    position: absolute;
    left: calc(2rem + 0.8rem);
    color: var(--color-teal);
    font-weight: 700;
}
body.page-template-page-lecture .page-body > p.chk-note {
    padding: 0.5rem 2rem 0.5rem calc(2rem + 0.8rem);
    font-size: 0.82rem;
    line-height: 1.8;
    color: #888;
}

/* ── 講演ページ：講演会情報バナー（リンク） ── */
body.page-template-page-lecture .page-body > p:nth-child(3) {
    padding-bottom: 3rem;
}
.page-template-page-lecture .lec-banner {
    display: inline-block;
    width: min(900px, calc(100% - 4rem));
    line-height: 0;
    transition: opacity 0.3s ease;
}
.page-template-page-lecture .lec-banner:hover { opacity: 0.85; }
body.page-template-page-lecture .page-body > p:nth-child(3) .lec-banner img {
    display: block;
    width: 100%;
    max-width: none;
    height: auto;
}
@media (max-width: 768px) {
    /* スマホでは、バナーを画面の幅いっぱいに表示する */
    body.page-template-page-lecture .page-body > p:nth-child(3) { padding-left: 0; padding-right: 0; }
    .page-template-page-lecture .lec-banner { display: block; width: 100%; }
}

/* === 講演会スケジュール記事（single-schedule.php） ===================== */
.schedule-hero {
    padding: 5rem 2rem 3.5rem;
    background: var(--color-light);
    text-align: center;
}
.schedule-hero__en {
    margin: 0;
    padding: 0;
    font-size: clamp(2rem, 5vw, 2.8rem);
    font-weight: 600;
    letter-spacing: 0.22em;
    color: #FAEE00;
    text-transform: uppercase;
}
.schedule-hero__title {
    margin: 0.7rem 0 0;
    padding: 0;
    font-size: 1.1rem;
    font-weight: 500;
    letter-spacing: 0;
    color: #54595f;
}
.schedule-body { padding: 4rem 0 5rem; background: #fff; }
.schedule-body .page-body {
    box-sizing: border-box;
    max-width: 900px;
    margin: 0 auto;
    padding: 0 2rem;
}
.schedule-body .page-body > p {
    margin: 0 0 2rem;
    font-size: 0.95rem;
    line-height: 2;
    color: #333;
}
.schedule-body .page-body > h2 {
    margin: 3.5rem 0 2rem;
    padding: 0 1.3rem 1rem;
    border-bottom: 2px solid var(--color-teal);
    font-size: 1.25rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    line-height: 1.6;
    color: var(--color-teal);
}
.sch-event {
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr);
    gap: 2rem;
    margin: 0 0 2rem;
    padding: 1.6rem 2rem;
    background: #fff;
    border: 1px solid #dcebeb;
    border-radius: 8px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.06);
}
.sch-event__img img { display: block; width: 100%; height: auto; }
.schedule-body .sch-event__date {
    margin: 0 0 0.8rem;
    padding: 0 0 0.7rem;
    border-bottom: 1px solid #e3eeee;
    font-size: 1.25rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: var(--color-teal);
}
.schedule-body .sch-event__line {
    margin: 0 0 0.4rem;
    font-size: 0.95rem;
    line-height: 1.9;
    color: #333;
}
.sch-event__btns {
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
    margin-top: 1.4rem;
}
.sch-btn {
    display: inline-block;
    align-self: flex-start;
    padding: 0.8rem 2.2rem;
    border: 1px solid var(--color-teal);
    border-radius: 999px;
    background: #fff;
    color: var(--color-teal);
    font-size: 0.9rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1.6;
    transition: all 0.3s ease;
}
.sch-btn:hover { background: var(--color-teal); color: #fff; }
.sch-btn--main { background: var(--color-teal); color: #fff; }
.sch-btn--main:hover { opacity: 0.8; }
@media (max-width: 700px) {
    .sch-event { grid-template-columns: minmax(0, 1fr); padding: 1.2rem; }
    .sch-event__img { max-width: 280px; margin: 0 auto; }
}

/* === HIFIVEについてページ（page-about.php）：元サイトのレイアウト ====== */
.page-template-page-about .page-body {
    display: block;
    padding: 0;
}
.page-template-page-about .page-body > section,
.page-template-page-about .page-body > .ab-hero {
    width: 100%;
    box-sizing: border-box;
}

/* ヒーロー */
.ab-hero {
    padding: 5rem 2rem 3.5rem;
    background: var(--color-light);
    text-align: center;
}
.ab-hero h2 { margin: 0; padding: 0; }
.ab-hero h2:nth-child(1) {
    font-size: clamp(2rem, 5vw, 2.8rem);
    font-weight: 600;
    letter-spacing: 0.22em;
    color: #FAEE00;
    text-transform: uppercase;
}
.ab-hero h2:nth-child(2) {
    margin-top: 0.7rem;
    font-size: 1.1rem;
    font-weight: 500;
    color: #54595f;
}

/* プロフィール（2列） */
.ab-profile {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 4rem;
    max-width: 1000px;
    margin: 0 auto;
    padding: 6rem 2rem 4rem;
    align-items: start;
}
.ab-col p {
    margin: 0;
    padding: 0;
    font-size: 0.95rem;
    line-height: 1.7;
    letter-spacing: 0.12em;
    color: #54595f;
}
.ab-img { text-align: center; line-height: 0; }
.ab-img img { display: block; width: 100%; height: auto; }
.ab-col > p:has(> a[href="#"]) {
    margin-top: 2rem;
    text-align: center;
}
.ab-col > p > a[href="#"] {
    display: inline-block;
    padding: 0.6rem 1.9rem;
    border-bottom: 1px solid var(--color-teal);
    background: #fff;
    color: var(--color-teal);
    font-weight: 500;
    line-height: 1.6;
    pointer-events: none;
}
.ab-col p a br { display: none; }
.ab-col > p:has(> a[href="#"]) + p {
    margin-top: 1.5rem;
    padding: 0 0.5rem;
}
.ab-col > p + p:not(.ab-name):not(.ab-roman) { margin-top: 1em; }
.ab-col--main { padding-top: 7rem; }
.ab-role { margin: 0 0 0.3rem; }
.ab-col p.ab-name {
    font-size: 1.9rem;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: 0.17em;
    color: var(--color-teal);
}
.ab-col p.ab-roman {
    margin: 0.4rem 0 2.5rem;
    font-size: 1.05rem;
    font-weight: 500;
    letter-spacing: 0.12em;
    color: #FAEE00;
}
.ab-msg {
    padding: 1.8rem 2rem;
    background: var(--color-light);
}
.ab-msg p { margin: 0; font-weight: 500; line-height: 1.8; }
.ab-img--mob { display: none; }

/* WORK */
.ab-work {
    margin-top: 12rem;
    padding: 5rem 2rem 5rem;
    background: var(--color-light);
}
.ab-work .ab-title { margin-top: 0; }
.ab-media { padding: 5rem 2rem 4rem; background: #fff; }
.ab-media .ab-title { margin-top: 0; }
.ab-title { padding-bottom: 3rem; text-align: center; margin-top: -1.7rem; }
.ab-title h2 {
    margin: 0;
    padding: 0;
    font-size: clamp(1.8rem, 5vw, 2.8rem);
    font-weight: 600;
    letter-spacing: 0.22em;
    color: #FAEE00;
    text-transform: uppercase;
}
.ab-title__sub {
    margin: 0.4rem 0 0;
    font-size: 1.1rem;
    font-weight: 500;
    color: #54595f;
}
.ab-work__inner { max-width: 1000px; margin: 0 auto; }
.ab-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 4rem;
    margin-bottom: 3.5rem;
    align-items: start;
}
.ab-row h2 {
    margin: 0 0 1.2rem;
    padding: 0 0 0.7rem 1.8rem;
    border-bottom: 1px solid var(--color-teal);
    font-size: 1.45rem;
    font-weight: 600;
    letter-spacing: 0.17em;
    line-height: 1.6;
    text-align: left;
    color: var(--color-teal);
}
.ab-row .ab-col > h2:not(:first-child) { margin-top: 3rem; }
.ab-row .ab-col p { letter-spacing: 0.06em; line-height: 1.9; }
.ab-row .ab-col > p + p { margin-top: 0; }
.ab-row .yt-embed { width: 100%; max-width: none; margin: 1.2rem 0 0; aspect-ratio: 16 / 9; }
.ab-row .yt-embed iframe { display: block; width: 100%; height: 100%; max-width: none; margin: 0; border: 0; }

/* 実績のカード（研修ページと同じデザイン） */
.ab-sec {
    margin: 0 0 2rem;
    padding: 0 0 0.7rem 1.8rem;
    border-bottom: 1px solid var(--color-teal);
    font-size: 1.45rem;
    font-weight: 600;
    letter-spacing: 0.17em;
    line-height: 1.6;
    text-align: left;
    color: var(--color-teal);
}
.ab-cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
    margin-bottom: 3.5rem;
    align-items: start;
}
.ab-cards--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ab-stack { display: grid; gap: 1.5rem; }
.ab-card {
    padding: 1.6rem 1.8rem;
    background: #fff;
    border: 1px solid #dcebeb;
    border-radius: 8px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.06);
}
.ab-card__title {
    margin: 0 0 1rem;
    padding: 0 0 0.7rem;
    border-bottom: 1px solid #e3eeee;
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1.6;
    color: var(--color-teal);
}
.ab-card p {
    margin: 0 0 1rem;
    font-size: 0.95rem;
    line-height: 1.9;
    letter-spacing: 0.04em;
    color: #333;
}
.ab-card .ab-card__note { margin: 0 0 0.6rem; font-size: 0.85rem; color: var(--color-teal); }
.ab-list { margin: 0; padding: 0; list-style: none; }
.ab-list li {
    position: relative;
    padding: 0.35rem 0 0.35rem 1.6rem;
    font-size: 0.95rem;
    line-height: 1.8;
    color: #333;
}
.ab-list li::before {
    content: '\2713';
    position: absolute;
    left: 0;
    color: var(--color-teal);
    font-weight: 700;
}
.ab-card .yt-embed { width: 100%; max-width: none; margin: 0.5rem 0 0; aspect-ratio: 16 / 9; }
.ab-card .yt-embed iframe { display: block; width: 100%; height: 100%; max-width: none; margin: 0; border: 0; }

/* 掲載記事（ほかのページと同じ2列カード） */
.ab-news {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 3rem 2.5rem;
    max-width: 900px;
    margin: 4rem auto 0;
    align-items: start;
}
.ab-news > article {
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: 0;
    background: #fff;
    border: 0;
    border-radius: 8px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.08);
    overflow: hidden;
    transition: box-shadow 0.2s, transform 0.2s;
}
.ab-news > article:hover {
    box-shadow: 0 4px 20px rgba(0,0,0,0.13);
    transform: translateY(-2px);
}
.ab-news > article > a,
.ab-news > article > br,
.ab-news > article > p { display: none; }
.ab-news > article > img {
    order: -1;
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    border-radius: 0;
}
.ab-news > article > header { padding: 1rem 1.2rem 1.2rem; text-align: center; }
.ab-meta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
    margin-bottom: 0.5rem;
}
.ab-meta__date { color: #aaa; font-size: 0.78rem; white-space: nowrap; letter-spacing: 0.05em; }
.ab-meta__cat {
    padding: 0.15rem 0.7rem;
    border-radius: 2px;
    background: var(--color-teal);
    color: #fff;
    font-size: 0.66rem;
    letter-spacing: 0.08em;
}
.ab-news > article h2 {
    margin: 0;
    padding: 0;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0;
    color: #333;
}
.ab-news > article h2 a { color: #333; }
.ab-news > article h2 a:hover { color: var(--color-teal); }
.ab-news > p:has(> button) {
    grid-column: 1 / -1;
    margin: 1rem 0 0;
    padding: 0;
    text-align: center;
}
.ab-news > p:has(> button) button {
    display: inline-block;
    padding: 0.8rem 3rem;
    border: 1px solid var(--color-teal);
    border-radius: 0;
    background: #fff;
    color: var(--color-teal);
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    box-shadow: none;
    cursor: pointer;
    transition: all 0.3s ease;
}
.ab-news > p:has(> button) button:hover { background: var(--color-teal); color: #fff; }
.ab-news > p:has(> button) button br { display: none; }

/* MEDIA KIT */
.ab-media__intro { max-width: 900px; margin: 0 auto 3rem; text-align: center; }
.ab-media__intro p { margin: 0; font-size: 0.95rem; line-height: 1.9; letter-spacing: 0.1em; color: #54595f; }
.ab-media__cols {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 3rem;
    max-width: 800px;
    margin: 0 auto;
    align-items: start;
}
.ab-media__cols h2,
.ab-logo h2 {
    margin: 0 0 1.2rem;
    padding: 0 0 0.7rem;
    border-bottom: 1px solid var(--color-teal);
    font-size: 1.05rem;
    font-weight: 600;
    letter-spacing: 0.25em;
    text-align: center;
    color: var(--color-teal);
}
.ab-media__cols .ab-col > p:has(> img) { margin: 0 0 1.2rem; line-height: 0; }
.ab-media__cols .ab-col > p:has(> img) img { display: block; width: 100%; height: auto; }
.ab-logo { max-width: 800px; margin: 5rem auto 0; }
.ab-logo p:has(> img) {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.8rem 1rem;
    margin: 0;
    padding: 0;
}
.ab-logo p > img { flex: 0 0 100%; width: 100%; max-width: none; height: 200px; margin: 0 0 1.5rem; object-fit: contain; }
.ab-logo p > a {
    display: inline-block;
    padding: 0.6rem 2.6rem;
    border-radius: 25px;
    background: var(--color-teal);
    color: #fff;
    font-size: 0.9rem;
    font-weight: 700;
    line-height: 1.6;
    transition: opacity 0.3s ease;
}
.ab-logo p > a:hover { opacity: 0.8; }
.ab-logo p br, .ab-logo p a br { display: none; }

/* 会社概要 */
.ab-company {
    max-width: 480px;
    margin: 0 auto;
    padding: 2rem 2rem 6rem;
    background: #fff;
}
.ab-company h2 {
    margin: 0 0 1.2rem;
    padding: 0 0 0.7rem 1.8rem;
    border-bottom: 1px solid var(--color-teal);
    font-size: 1.45rem;
    font-weight: 600;
    letter-spacing: 0.17em;
    text-align: left;
    color: var(--color-teal);
}
.ab-company .co-row {
    display: flex;
    gap: 1rem;
    margin: 0;
    padding: 0.4rem 0;
    font-size: 1rem;
    letter-spacing: 0.12em;
    color: #54595f;
}
.ab-company .co-k { flex: 0 0 6.5rem; }

/* 本文末尾のCONTACTはテンプレート側で描画する */
.page-template-page-about .page-body > h2:nth-last-child(4),
.page-template-page-about .page-body > p:nth-last-child(-n+3) { display: none; }

@media (max-width: 700px) {
    .ab-profile,
    .ab-row,
    .ab-media__cols { grid-template-columns: minmax(0, 1fr); gap: 0; }
    .ab-profile { padding: 3rem 1.5rem 2rem; }
    .ab-col--main { padding-top: 2rem; }
    .ab-img--desk img { display: none; }
    .ab-img--mob { display: block; margin-bottom: 1.5rem; }
    /* プロフィールの並び順：写真 → 名前 → プロフィール → 担当事業 → コメント（.ab-profile の中だけ） */
    .ab-profile { display: flex; flex-direction: column; align-items: stretch; }
    .ab-profile .ab-col,
    .ab-profile .ab-col--main { display: contents; }
    .ab-profile .ab-img--mob { order: 1; }
    .ab-profile .ab-role { order: 2; }
    .ab-profile .ab-col p.ab-name { order: 3; }
    .ab-profile .ab-col p.ab-roman { order: 4; margin-bottom: 1.5rem; }
    .ab-profile .ab-col:not(.ab-col--main) > p { order: 5; }
    .ab-profile .ab-col:not(.ab-col--main) > p:not(.ab-img):has(> a[href="#"]),
    .ab-profile .ab-col:not(.ab-col--main) > p:not(.ab-img):has(> a[href="#"]) + p { order: 6; }
    .ab-profile .ab-msg { order: 7; margin-top: 2.5rem; }
    .ab-news { grid-template-columns: minmax(0, 1fr); }
    .ab-cards,
    .ab-cards--3 { grid-template-columns: minmax(0, 1fr); }
    .ab-work, .ab-media { padding-left: 1.2rem; padding-right: 1.2rem; }
    .ab-work,
    .ab-media { padding-top: 3.5rem; }
    .ab-row { margin-bottom: 2.5rem; }
    .ab-row .ab-col + .ab-col { margin-top: 2.5rem; }
    .ab-media__cols .ab-col + .ab-col { margin-top: 2.5rem; }
}

/* === 事業案内ページ（page-business.php）：元サイトのレイアウト ========= */
.page-template-page-business .page-body { display: block; padding: 0; }

/* ヒーロー */
.bz-hero {
    padding: 5rem 2rem 3.5rem;
    background: var(--color-light);
    text-align: center;
}
.bz-hero h2 {
    margin: 0;
    padding: 0;
    font-size: clamp(2rem, 5vw, 2.8rem);
    font-weight: 600;
    letter-spacing: 0.22em;
    color: #FAEE00;
    text-transform: uppercase;
}
.bz-hero__sub {
    margin: 0.7rem 0 0;
    font-size: 1.1rem;
    font-weight: 500;
    color: #54595f;
}

/* 導入 */
.bz-intro { max-width: 880px; margin: 0 auto; padding: 6rem 2rem 4rem; }
.bz-intro h2 {
    margin: 0 0 2.5rem;
    padding: 0;
    text-align: center;
    font-family: "Shippori Mincho", "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
    font-size: clamp(1.4rem, 3vw, 1.75rem);
    font-weight: 600;
    letter-spacing: 0.08em;
    color: #54595f;
}
.bz-intro p { margin: 0 0 0.3rem; font-size: 0.95rem; line-height: 2; color: #54595f; }

/* 01〜05のブロック */
.bz-rows { padding-bottom: 6rem; }
.bz-row {
    position: relative;
    max-width: 960px;
    margin: 0 auto 8rem;
    padding: 0 2rem;
}
.bz-box {
    position: relative;
    box-sizing: border-box;
    width: 90%;
    min-height: 14rem;
    padding: 2.2rem 38% 3.5rem 7rem;
    background: var(--color-light);
}
.bz-row--rev .bz-box {
    margin-left: auto;
    padding: 2.2rem 7rem 3.5rem 38%;
}
.bz-num {
    position: absolute;
    top: 0.5rem;
    left: 0;
    width: 3.2rem;
    padding: 0.4rem 0;
    background: var(--color-teal);
    color: #fff;
    font-size: 1.6rem;
    font-weight: 600;
    line-height: 1.4;
    text-align: center;
}
.bz-row--rev .bz-num { left: auto; right: 0; }
.bz-small { margin: 0 0 0.3rem; font-size: 1.05rem; font-weight: 600; letter-spacing: 0.04em; color: #54595f; line-height: 1.6; }
.bz-title {
    margin: 0 0 0.8rem;
    padding: 0;
    font-size: clamp(1.3rem, 2.3vw, 1.75rem);
    font-weight: 600;
    letter-spacing: 0.06em;
    line-height: 1.5;
    color: #54595f;
}
.bz-nb { display: inline-block; max-width: 100%; }
.bz-desc { margin: 0; font-size: 0.95rem; line-height: 1.9; letter-spacing: 0.04em; color: #54595f; }
.bz-btn {
    position: absolute;
    left: 33%;
    bottom: -1.6rem;
    transform: translateX(-50%);
    padding: 0.9rem 3.5rem;
    border: 1px solid var(--color-teal);
    border-radius: 50px;
    background: var(--color-teal);
    color: #fff;
    font-size: 0.9rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    line-height: 1.6;
    white-space: nowrap;
    transition: opacity 0.3s ease;
}
.bz-row--rev .bz-btn { left: 67%; }
.bz-btn:hover { opacity: 0.8; }
.bz-img {
    position: absolute;
    top: 3.5rem;
    right: 0;
    width: 40%;
    line-height: 0;
}
.bz-row--rev .bz-img { right: auto; left: 0; }
.bz-img img { display: block; width: 100%; height: auto; }

/* 本文末尾のCONTACTはテンプレート側で描画する */
.page-template-page-business .page-body > h2:nth-last-child(4),
.page-template-page-business .page-body > p:nth-last-child(-n+3) { display: none; }

@media (max-width: 800px) {
    .bz-row { margin-bottom: 5rem; padding: 0 1.2rem; }
    .bz-title { font-size: 1.2rem; }
    .bz-box,
    .bz-row--rev .bz-box {
        width: 100%;
        padding: 3.8rem 1.5rem 3.5rem;
    }
    .bz-num,
    .bz-row--rev .bz-num { left: 0; right: auto; top: 0; }
    .bz-btn,
    .bz-row--rev .bz-btn { left: 50%; }
    .bz-row { display: flex; flex-direction: column; }
    .bz-img,
    .bz-row--rev .bz-img { position: static; order: -1; width: 100%; margin: 0 0 1.5rem; }
}

/* === 共通ヘッダー（お問い合わせページ）：他のページと同じデザイン ========= */
.hf-hero {
    padding: 5rem 2rem 3.5rem;
    background: var(--color-light);
    text-align: center;
}
.hf-hero__en {
    margin: 0;
    padding: 0;
    font-size: clamp(2rem, 5vw, 2.8rem);
    font-weight: 600;
    letter-spacing: 0.22em;
    color: #FAEE00;
    text-transform: uppercase;
}
.hf-hero__sub {
    margin: 0.7rem 0 0;
    font-size: 1.1rem;
    font-weight: 500;
    color: #54595f;
}

/* ── 講演ページ：見出しの階層（h2＝大見出し／h3＝01）02）／h4＝小見出し） ── */
body.page-template-page-lecture .page-body > h3:nth-child(n) {
    box-sizing: border-box;
    width: calc(100% - 4rem);
    max-width: calc(900px - 4rem);
    margin: 4rem auto 1.5rem;
    padding: 0.2rem 0 0.2rem 0.9rem;
    border-left: 5px solid var(--color-teal);
    font-size: 1.15rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    line-height: 1.6;
    color: var(--color-teal);
}
body.page-template-page-lecture .page-body > h4:nth-child(n) {
    box-sizing: border-box;
    width: calc(100% - 4rem);
    max-width: calc(900px - 4rem);
    margin: 3rem auto 1.2rem;
    padding: 0 0 0.5rem;
    border-bottom: 1px solid #dcebeb;
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    line-height: 1.6;
    color: #54595f;
}

/* ── ヘッダーのナビゲーション：狭めのデスクトップ幅では項目の余白を詰め、ロゴとぶつからないようにする ── */
@media (min-width: 769px) and (max-width: 900px) {
    #site-nav > div > ul > li > a { font-size: 0.8rem; padding: 0.5rem 0.5rem; letter-spacing: 0.02em; }
    .site-logo { flex-shrink: 0; }
}
