@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

/* =========================================
   HG Design Color Tokens（子テーマ追加CSS用）
   - SWELL全体の色は変えず、.hcase- / .company- / .hc- で利用する前提
========================================= */
:root {
    --hg-color-main: #1F2A44;
    /* メイン：ディープネイビー */
    --hg-color-cta: #1F2A44;
    /* CTA：ネイビー（濃） */
    --hg-color-sub: #6B7280;
    /* サブ：グレー */
    --hg-color-bg: #F9FAFB;
    /* 背景：オフホワイト */
    --hg-color-border: #E5E7EB;
    /* ボーダー：ライトグレー */
    --hg-color-accent: #3B82F6;
    /* アクセント：スカイブルー（控えめ） */
}

/* SWELL 親テーマ .l-content は margin 下 6em — サイト全体で 2em に調整 */
.l-content {
    margin: 0 auto 2em;
}

/* =========================================
   追加CSS（addCss.md より子テーマへ移行・サニタイズ回避）
========================================= */

/* 番号デザイン */
.number-05 {
    position: relative;
    font-family: 'Noto Serif JP', serif;
    font-size: 64px;
    color: #333;
    font-weight: 400;
    line-height: 1;
    display: block;
    box-sizing: border-box;
    text-align: center;
    margin-inline: auto;
    width: fit-content;
    padding: 12px;
}

.number-05::before,
.number-05::after {
    content: '';
    position: absolute;
    width: 30px;
    height: 30px;
}

.number-05::before {
    border-left: solid 1px #333;
    border-top: solid 1px #333;
    top: 0;
    left: 0;
}

.number-05::after {
    border-right: solid 1px #333;
    border-bottom: solid 1px #333;
    bottom: 0;
    right: 0;
}

.number-05 span::before,
.number-05 span::after {
    content: '';
    position: absolute;
    width: 46px;
    height: 46px;
    rotate: 45deg;
}

.number-05 span::before {
    border-left: solid 1px #333;
    top: 2px;
    left: 2px;
}

.number-05 span::after {
    border-right: solid 1px #333;
    bottom: 2px;
    right: 2px;
}

/* ヘッダーロゴ（テキスト）：PC 24px / SP 18px（clampでスムーズに変化） */
.-txt .c-headLogo__link {
    color: inherit;
    display: block;
    font-size: clamp(18px, 3vw, 24px);
    font-weight: 700;
}

/* ヘッダーロゴ（テキスト）：PC時は24pxで固定 */
@media screen and (min-width: 1023px) {
    .-txt .c-headLogo__link {
        font-size: 24px;
    }
}

/* メインビジュアルスライドタイトル：タブレット以下 */
@media screen and (max-width: 1023px) {
    .p-mainVisual__slideTitle {
        font-size: 5vw;
        line-height: 1.4;
    }
}

/* 各h（見出し）はネイビー */
.company-single h1,
.company-single h2,
.company-single h3,
.company-single h4,
.company-single h5,
.company-single h6,
.hc-single h1,
.hc-single h2,
.hc-single h3,
.hc-single h4,
.hc-single h5,
.hc-single h6,
.hcase-single h1,
.hcase-single h2,
.hcase-single h3,
.hcase-single h4,
.hcase-single h5,
.hcase-single h6,
.hc-cta h1,
.hc-cta h2,
.hc-cta h3,
.hc-cta h4,
.hc-cta h5,
.hc-cta h6 {
    color: #1F2A44;
}


/* company single: h2は帯（SWELL装飾）を維持し白文字 */
.company-single .post_content h2 {
    color: #fff;
}
/* company single: h3/h4はカード内タイトル用のためSWELL装飾をリセット */
.company-single .post_content h3,
.company-single .post_content h4 {
    background: none;
    border: none;
    padding: 0;
}
.company-single .post_content h3::before,
.company-single .post_content h3::after,
.company-single .post_content h4::before,
.company-single .post_content h4::after {
    content: none;
    display: none;
}

/* company 単一：検索向け補助テキスト（display:none ではなく visually-hidden 相当・重複読み上げ回避は aria-hidden） */
.company-single .hg-search-index-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}
.company-single .hg-search-index-hidden__piece {
    display: inline;
}

/* フッター前CTAのh2：.post_content内（トップ等）でもSWELLのh2デザインで上書きされないようにする */
.hc-cta .hc-cta__heading {
    margin: 0 0 16px;
    font-size: 18px;
    font-weight: 800;
    text-align: center;
    border: none;
    padding: 0;
    background: none;
    color: #1F2A44;
}
.hc-cta .hc-cta__heading::before,
.hc-cta .hc-cta__heading::after {
    content: none !important;
    display: none !important;
}

/* ネイビーカード内の見出しは白のまま */
.hc-ctaCard.is-primary h1,
.hc-ctaCard.is-primary h2,
.hc-ctaCard.is-primary h3,
.hc-ctaCard.is-primary h4,
.hc-ctaCard.is-primary h5,
.hc-ctaCard.is-primary h6 {
    color: #fff;
}

/* =========================================
   追加CSS（建築事例: housing-case）
   - まずは「それっぽく表示」優先。余白/フォント等は後で調整しやすい構造にしています。
   - ページスコープ: archive-housing-case.php → .hcase-archive
   - ページスコープ: single-housing-case.php  → .hcase-single
========================================= */

/* ---------- Archive: header ---------- */
.hcase-archive .hcase-archive__header {
    margin: 8px 0 28px;
}

.hcase-archive .hcase-archive__title {
    font-size: clamp(22px, 2.2vw, 32px);
    line-height: 1.25;
    margin: 0;
}

.hcase-archive .hcase-archive__lead {
    margin: 8px 0 0;
    color: inherit;
}

/* exterior_case / housing-case / company / events / 家づくりスクール アーカイブ: SWELL .c-pageTitle を本文 h2 帯風に（固定ページのカスタムCSSと揃える） */
.hcase-archive--exterior .hcase-archive__header .c-pageTitle,
.hcase-archive--housing-case .hcase-archive__header .c-pageTitle,
.company-archive .co-archive__header .c-pageTitle,
.ev-archive .ev-archive__header .c-pageTitle,
.hbs-archive .hbs-archive__header .c-pageTitle {
    position: relative;
    background: var(--color_htag);
    padding: 0.75em 1em;
    color: #fff;
    overflow: hidden;
    margin-left: var(--swl-h2-margin--x, 0);
    margin-right: var(--swl-h2-margin--x, 0);
    margin-top: 0;
    margin-bottom: 0;
    display: flex;
    align-items: center;
    font-size: clamp(22px, 2.2vw, 32px);
    line-height: 1.25;
}

.hcase-archive--exterior .hcase-archive__header .c-pageTitle__inner,
.hcase-archive--housing-case .hcase-archive__header .c-pageTitle__inner,
.company-archive .co-archive__header .c-pageTitle__inner,
.ev-archive .ev-archive__header .c-pageTitle__inner,
.hbs-archive .hbs-archive__header .c-pageTitle__inner {
    position: relative;
    z-index: 1;
    color: inherit;
    padding-left: 0;
    padding-right: 0;
}

.hcase-archive--exterior .hcase-archive__header .c-pageTitle::before,
.hcase-archive--housing-case .hcase-archive__header .c-pageTitle::before,
.company-archive .co-archive__header .c-pageTitle::before,
.ev-archive .ev-archive__header .c-pageTitle::before,
.hbs-archive .hbs-archive__header .c-pageTitle::before {
    position: absolute;
    display: block;
    pointer-events: none;
    content: "";
    top: -4px;
    left: 0;
    width: 100%;
    height: calc(100% + 4px);
    box-sizing: content-box;
    border-top: solid 2px var(--color_htag);
    border-bottom: solid 2px var(--color_htag);
}

/* housing-case / exterior_case / company アーカイブ: h1（.c-pageTitle）下の余白 */
.hcase-archive--exterior .hcase-archive__header .c-pageTitle,
.hcase-archive--housing-case .hcase-archive__header .c-pageTitle,
.company-archive .co-archive__header .c-pageTitle {
    margin-bottom: 32px;
}

@media (max-width: 767px) {

    .hcase-archive--exterior .hcase-archive__header .c-pageTitle,
    .hcase-archive--housing-case .hcase-archive__header .c-pageTitle,
    .company-archive .co-archive__header .c-pageTitle {
        margin-bottom: 24px;
    }
}

/* アーカイブ本文: SWELL .u-mt-40 は 4em!important のため上書き */
.p-archiveContent.u-mt-40 {
    margin-top: 32px !important;
}

@media (max-width: 767px) {
    .p-archiveContent.u-mt-40 {
        margin-top: 24px !important;
    }
}

/* ---------- Archive: イベント一覧（event / events） ---------- */
/* 共有の .c-pageTitle スタイルでは --swl-h2-margin--x が入るが、イベント一覧では左右インセット不要 */
.ev-archive .ev-archive__header .c-pageTitle {
    margin-left: 0;
    margin-right: 0;
}

.ev-archive .ev-archive__header {
    margin: 8px 0 28px;
}

.ev-archive .ev-archive__lead {
    margin: 32px 0 0;
    color: inherit;
}

@media (max-width: 767px) {
    .ev-archive .ev-archive__lead {
        margin-top: 24px;
    }
}

/* ---------- Archive: 家づくりスクール（home_building_school / home-building-school） ---------- */
/* アーカイブでは h2 帯の左右インセット（--swl-h2-margin--x）は不要。h1 下は 32px。 */
.hbs-archive .hbs-archive__header .c-pageTitle {
    margin-left: 0;
    margin-right: 0;
    margin-bottom: 32px;
}

@media (max-width: 767px) {
    .hbs-archive .hbs-archive__header .c-pageTitle {
        margin-bottom: 24px;
    }
}

.hbs-archive .hbs-archive__header {
    margin: 8px 0 28px;
}

.hbs-archive .hbs-archive__lead {
    margin: 8px 0 0;
    color: inherit;
}

/* ---------- Archive: filter ---------- */
.hcase-archive .hcase-filter {
    margin: 28px 0 32px;
    padding: 18px 0;
    border-top: 1px solid var(--hg-color-border);
    border-bottom: 1px solid var(--hg-color-border);
}

.hcase-archive .hcase-filter__row {
    display: flex;
    gap: 14px;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
}

.hcase-archive .hcase-filter__left,
.hcase-archive .hcase-filter__right {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
}

.hcase-archive .hcase-filter__item {
    position: relative;
}

.hcase-archive .hcase-filter__item select {
    appearance: none;
    -webkit-appearance: none;
    border: 1px solid rgba(0, 0, 0, .12);
    border-radius: 10px;
    padding: 10px 36px 10px 12px;
    background: #fff;
    font-weight: 600;
    color: rgba(0, 0, 0, .85);
    min-width: 150px;
    cursor: pointer;
    background-image:
        linear-gradient(45deg, transparent 50%, rgba(0, 0, 0, .55) 50%),
        linear-gradient(135deg, rgba(0, 0, 0, .55) 50%, transparent 50%);
    background-position:
        calc(100% - 18px) calc(1em + 2px),
        calc(100% - 13px) calc(1em + 2px);
    background-size: 5px 5px, 5px 5px;
    background-repeat: no-repeat;
}

.hcase-archive .hcase-filter__reset {
    margin-left: 10px;
}

.hcase-archive .hcase-filter__resetBtn {
    display: inline-block;
    padding: 10px 20px;
    border: 1px solid rgba(0, 0, 0, .12);
    border-radius: 10px;
    background: #fff;
    font-weight: 600;
    color: rgba(0, 0, 0, .85);
    text-decoration: none;
    cursor: pointer;
    transition: background-color 0.2s, border-color 0.2s;
}

.hcase-archive .hcase-filter__resetBtn:hover {
    background-color: rgba(0, 0, 0, .05);
    border-color: rgba(0, 0, 0, .2);
}

@media (max-width: 899px) {
    .hcase-archive .hcase-filter__reset {
        margin-left: 0;
        margin-top: 10px;
        width: 100%;
    }

    .hcase-archive .hcase-filter__resetBtn {
        width: 100%;
        text-align: center;
    }
}

/* ---------- Archive: grid/cards ---------- */
/* gap: 375pxで16px → 1440pxで20px の1本の式（メディアでは列数だけ切替） */
.hcase-archive .hcase-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: calc(16px + (100vw - 375px) * (20 - 16) / (1440 - 375));
}

@media (min-width: 600px) {
    .hcase-archive .hcase-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (min-width: 900px) {
    .hcase-archive .hcase-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

.hcase-archive .hcase-card {
    border-radius: 0;
    overflow: hidden;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, .08);
    box-shadow: 0 10px 22px rgba(0, 0, 0, .06);
    display: flex;
    flex-direction: column;
    max-height: none;
    height: auto;
}

.hcase-archive .hcase-card__link {
    display: flex;
    flex-direction: column;
    height: 100%;
    color: inherit;
    text-decoration: none;
}

.hcase-archive .hcase-card__img {
    flex: 1 1 auto;
    aspect-ratio: 1 / 1;
    background: #f3f4f6;
    overflow: hidden;
}

.hcase-archive .hcase-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.hcase-archive .hcase-card__imgPh {
    width: 100%;
    height: 100%;
}

.hcase-archive .hcase-card__body {
    padding: 12px 16px 14px;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    overflow: visible;
}

.hcase-archive .hcase-card__title {
    font-size: clamp(14px, 2vw, 15px);
    margin: 0 0 4px;
    line-height: 1.3;
    overflow: visible;
    display: block;
    word-break: break-word;
}

.hcase-archive .hcase-card__cta {
    margin-top: auto;
}

.hcase-archive .hcase-btn {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    padding: 8px 10px;
    border-radius: 10px;
    border: 1px solid rgba(0, 0, 0, .15);
    text-decoration: none;
    font-weight: 700;
    color: rgba(0, 0, 0, .85);
    background: #fff;
    font-size: clamp(12px, 1.8vw, 13px);
}

.hcase-archive .hcase-btn:hover {
    filter: brightness(0.98);
}

/* ---------- Archive: 外観一覧（タイトルは省略せず表示・SPは1列でカード大きく） ---------- */
.hcase-archive--exterior .hcase-card {
    max-height: none;
    height: auto;
}

.hcase-archive--exterior .hcase-card__link {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 260px;
}

.hcase-archive--exterior .hcase-card__img {
    flex: 0 0 auto;
    aspect-ratio: 1 / 1;
    width: 100%;
    overflow: hidden;
}

.hcase-archive--exterior .hcase-card__img img,
.hcase-archive--exterior .hcase-card__imgPh {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* SP: タイトルを読みやすく */
@media (max-width: 599px) {
    .hcase-archive .hcase-card__body {
        padding: 14px 14px 16px;
        min-height: 40px;
    }
    .hcase-archive .hcase-card__title {
        font-size: 12px;
        line-height: 1.4;
        min-height: 40px;
    }
}

.hcase-archive .hcase-empty {
    margin: 10px 0 0;
    color: rgba(0, 0, 0, .65);
}

/* ---------- Archive: 内観・外観一覧（SP：横1列・画像大きめ） ---------- */
@media (max-width: 599px) {
    .hcase-archive--interior .hcase-grid,
    .hcase-archive--exterior .hcase-grid {
        grid-template-columns: 1fr;
    }
    .hcase-archive--interior .hcase-card__img,
    .hcase-archive--exterior .hcase-card__img {
        aspect-ratio: 4 / 3;
    }
}

/* ---------- Archive: pagination ---------- */
.hcase-archive .hcase-pagination {
    margin-top: 36px;
}

.hcase-archive .hcase-pagination ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    gap: 8px;
    justify-content: center;
    flex-wrap: wrap;
}

.hcase-archive .hcase-pagination a,
.hcase-archive .hcase-pagination span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    border-radius: 10px;
    border: 1px solid rgba(0, 0, 0, .12);
    text-decoration: none;
    color: rgba(0, 0, 0, .8);
}

.hcase-archive .hcase-pagination .current {
    background: rgba(0, 0, 0, .06);
    font-weight: 800;
}

/* ---------- Archive: CTA section ---------- */
.hcase-archive .hcase-cta {
    margin-top: 60px;
    padding-top: 36px;
}

.hcase-archive .hcase-cta__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
    max-width: 560px;
    margin: 0 auto;
}

@media (min-width: 900px) {
    .hcase-archive .hcase-cta__grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }
}

.hcase-archive .hcase-ctaCard {
    border-radius: 14px;
    background: rgba(0, 0, 0, .02);
    border: 1px solid rgba(0, 0, 0, .08);
    padding: 20px 18px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    justify-content: space-between;
}

.hcase-archive .hcase-ctaCard__body {
    flex: 1;
}

.hcase-archive .hcase-ctaCard__title {
    margin: 0 0 8px;
    font-size: 16px;
    font-weight: 800;
    line-height: 1.5;
}

.hcase-archive .hcase-ctaCard__text {
    margin: 0;
    font-size: 14px;
    line-height: 1.7;
    color: rgba(0, 0, 0, .7);
}

.hcase-archive .hcase-ctaCard__cta {
    margin-top: auto;
}

.hcase-archive .hcase-ctaCard__btn {
    display: inline-block;
    padding: 12px 24px;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 700;
    font-size: 14px;
    text-align: center;
    transition: opacity 0.2s;
}

.hcase-archive .hcase-ctaCard__btn:hover {
    opacity: 0.8;
}

.hcase-archive .hcase-ctaCard__btn--primary {
    background: #1F2A44;
    color: #fff;
    border: 1px solid #1F2A44;
}

.hcase-archive .hcase-ctaCard__btn--ghost {
    background: #fff;
    color: rgba(0, 0, 0, .85);
    border: 1px solid rgba(0, 0, 0, .15);
}

/* CTA「気になるモデルハウスはございましたか？」：背景メインカラー・文字白 */
.hcase-archive .hcase-cta .hcase-ctaCard {
    background: var(--color_main);
    border-color: transparent;
}
.hcase-archive .hcase-cta .hcase-ctaCard__title,
.hcase-archive .hcase-cta .hcase-ctaCard__text {
    color: #fff;
}

/* housing-case / exterior_case アーカイブ: CTAカード内の見出し・本文を中央揃え */
.hcase-archive--housing-case .hcase-cta .hcase-ctaCard__body,
.hcase-archive--exterior .hcase-cta .hcase-ctaCard__body {
    text-align: center;
}

/* ---------- Single: FV ---------- */
.hcase-single .hcase-fv {
    margin: 10px 0 18px;
}

.hcase-single .hcase-fv__kicker {
    margin: 0 0 8px;
    font-weight: 700;
    color: rgba(0, 0, 0, .65);
}

.hcase-single .hcase-fv__title {
    margin: 0 0 10px;
    font-size: clamp(22px, 2.2vw, 34px);
    line-height: 1.25;
}

.hcase-single .hcase-fv__lead {
    margin: 0 0 10px;
    color: rgba(0, 0, 0, .7);
}

.hcase-single .hcase-fv__description {
    margin-top: 24px;
}

.hcase-single .hcase-fv__meta {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    gap: 10px 16px;
    flex-wrap: wrap;
    color: rgba(0, 0, 0, .7);
    font-size: 13px;
}

.hcase-single .hcase-fv__meta li {
    position: relative;
    padding-left: 10px;
}

.hcase-single .hcase-fv__meta li::before {
    content: "";
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: rgba(0, 0, 0, .4);
    position: absolute;
    left: 0;
    top: 0.65em;
}

/* ---------- Single: main image ---------- */
.hcase-single .hcase-heroImg {
    border-radius: 16px;
    overflow: hidden;
    background: #f3f4f6;
    aspect-ratio: 16/10;
}

.hcase-single .hcase-heroImg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* ---------- housing-case: hero video modal / gallery swiper ---------- */
.hcase-single .hcase-heroMedia {
    margin-top: 32px;
}

/* exterior_case でもアイキャッチ画像を角丸に（hcase-single 共通マークアップ） */
.hcase-single .hcase-heroMedia img {
    border-radius: 16px;
    display: block;
}

.hcase-single .hcase-heroVideoWrap {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.hcase-single .hcase-heroVideoWrap__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-top: 16px;
}

.hcase-single .hcase-heroVideoWrap__actions .hcase-center {
    margin-top: 0;
}

/* ラッパーを80pxに固定（line-height等で90pxにならないように） */
.hcase-single .hcase-heroVideoWrap__actions .hcase-center.hcase-roomGalleryCta {
    height: 80px;
    display: flex;
    align-items: center;
    line-height: 0;
    margin-top: 0;
}

.hcase-single .hcase-heroVideoWrap__actions .hcase-roomGalleryCta .hcase-vrBtn {
    margin-top: 0;
}

.hcase-single .hcase-heroVideoWrap__actions .hcase-videoPlayBtn {
    margin-top: 0;
}

.hcase-single .hcase-heroVideoWrap__actions .hcase-roomGalleryCta .hcase-vrBtn,
.hcase-single .hcase-heroVideoWrap__actions .hcase-videoPlayBtn {
    width: 300px;
    height: 80px;
    min-width: 300px;
    min-height: 80px;
    padding: 0;
    box-sizing: border-box;
}

.hcase-single .hcase-videoBtn__mediaLink {
    display: block;
    text-decoration: none;
    border-radius: 16px;
    overflow: hidden;
    position: relative;
}

.hcase-single .hcase-videoBtn__mediaLink:hover {
    opacity: 1;
}

.hcase-single .hcase-videoBtn__mediaLink:hover .hcase-videoBtn__overlay {
    background: rgba(0, 0, 0, .50);
}

.hcase-single .hcase-videoBtn__media {
    display: block;
    border-radius: 16px;
    overflow: hidden;
    background: #f3f4f6;
    aspect-ratio: 16/10;
    position: relative;
}

/* サムネイル上オーバーレイ（空間ギャラリーの roomCard__overlay と同様の見た目） */
.hcase-single .hcase-videoBtn__overlay {
    position: absolute;
    left: 16px;
    bottom: 16px;
    right: 16px;
    background: rgba(0, 0, 0, .40);
    backdrop-filter: blur(6px);
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 14px;
    padding: 12px 16px;
    color: #fff;
    font-weight: 700;
    font-size: 15px;
    text-align: center;
    user-select: none;
}

@media (min-width: 900px) {
    .hcase-single .hcase-videoBtn__overlay {
        left: 22px;
        bottom: 22px;
        right: auto;
        width: min(320px, calc(100% - 44px));
        padding: 14px 18px;
        font-size: 16px;
    }
}

.hcase-single .hcase-videoBtn__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.hcase-single .hcase-videoPlayBtn {
    margin-top: 12px;
    cursor: pointer;
    border: 1px solid var(--hg-color-main);
}

.hcase-single .hcase-videoModal[hidden] {
    display: none;
}

.hcase-single .hcase-videoModal {
    position: fixed;
    inset: 0;
    z-index: 9999;
}

.hcase-single .hcase-videoModal__overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .55);
}

.hcase-single .hcase-videoModal__panel {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: min(960px, calc(100% - 24px));
    background: #000;
    border-radius: 14px;
    overflow: hidden;
}

.hcase-single .hcase-videoModal__close {
    position: absolute;
    right: 10px;
    top: 8px;
    width: 36px;
    height: 36px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, .25);
    background: rgba(0, 0, 0, .35);
    color: #fff;
    cursor: pointer;
    z-index: 2;
}

.hcase-single .hcase-video {
    width: 100%;
    height: auto;
    display: block;
}


.is-hcaseVideoOpen {
    overflow: hidden;
}

.hcase-single .hcase-gallery--isSwiper .wp-block-gallery {
    margin: 0;
}

.hcase-single .hcase-gallerySwiper {
    position: relative;
}

.hcase-single .hcase-gallerySwiper .swiper-pagination {
    position: static;
    margin-top: 10px;
}

.hcase-single .hcase-gallerySwiper .swiper-button-prev,
.hcase-single .hcase-gallerySwiper .swiper-button-next {
    color: rgba(0, 0, 0, .65);
    cursor: pointer;
}

.hcase-single .hcase-gallerySwiper .swiper-button-disabled {
    opacity: 0.35;
    cursor: default;
    pointer-events: none;
}

.hcase-single .hcase-vrBtn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 14px;
    border-radius: 10px;
    border: 1px solid rgba(0, 0, 0, .15);
    background: #fff;
    color: rgba(0, 0, 0, .85);
    text-decoration: none;
    font-weight: 800;
    margin-top: 10px;
}

/* roomGallerySwiper 直前のCTAだけ：ネイビー背景＋白文字 */
.hcase-single .hcase-roomGalleryCta .hcase-vrBtn {
    background: #1F2A44;
    color: #fff;
    border-color: transparent;
}
.hcase-single .hcase-roomGalleryCta .hcase-vrBtn:hover {
    opacity: .92;
}

/* ---------- housing-case: room gallery (custom) ---------- */
.hcase-single .hcase-roomGallerySwiper {
    position: relative;
    cursor: auto;
    margin-top: 24px;
}

/* 空間ギャラリー（セクション）の上余白：SPは 40px */
@media (max-width: 599px) {
    .hcase-single .hcase-section.hcase-gallery {
        margin-top: 40px;
    }
}

@media (min-width: 600px) {
    .hcase-single .hcase-roomGallerySwiper {
        margin-top: 32px;
    }
}

@media (min-width: 900px) {
    .hcase-single .hcase-roomGallerySwiper {
        margin-top: 40px;
    }
}

.hcase-single .hcase-roomGallerySwiper.is-hgDragging {
    cursor: grabbing;
}

.hcase-single .hcase-roomGallerySwiper .swiper-pagination {
    position: static;
    margin-top: 10px;
}

.hcase-single .hcase-roomGallerySwiper .swiper-button-prev,
.hcase-single .hcase-roomGallerySwiper .swiper-button-next {
    color: #fff;
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: rgba(0, 0, 0, .28);
    backdrop-filter: blur(4px);
    cursor: pointer;
}

.hcase-single .hcase-roomGallerySwiper .swiper-button-prev::after,
.hcase-single .hcase-roomGallerySwiper .swiper-button-next::after {
    font-size: 16px;
    font-weight: 900;
}

.hcase-single .hcase-roomGallerySwiper .swiper-button-disabled {
    opacity: 0.35;
    cursor: default;
    pointer-events: none;
}

.hcase-single .hcase-roomGallerySwiper .swiper-pagination-bullet {
    background: rgba(0, 0, 0, .25);
    opacity: 1;
}

.hcase-single .hcase-roomGallerySwiper .swiper-pagination-bullet-active {
    background: #000;
}

.hcase-single .hcase-roomGallerySwiper .swiper-slide {
    height: auto;
    display: flex;
}

.hcase-single .hcase-roomCard {
    position: relative;
    border-radius: 18px;
    overflow: hidden;
    background: #f3f4f6;
    display: flex;
    flex-direction: column;
    width: 100%;
}

.hcase-single .hcase-roomCard__img>figure,
.hcase-single .hcase-roomCard__img>.wp-block-image {
    margin: 0;
    height: 100%;
}

/* 比率がバラバラの元画像でも表示サイズを統一（4:3で切り抜け） */
.hcase-single .hcase-roomCard__img {
    aspect-ratio: 4 / 3;
    width: 100%;
    overflow: hidden;
    flex: 0 0 auto;
}

.hcase-single .hcase-roomCard__img figure,
.hcase-single .hcase-roomCard__img .wp-block-image {
    margin: 0;
    height: 100%;
    display: block;
}

.hcase-single .hcase-roomCard__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.hcase-single .hcase-roomCard__imgPh {
    aspect-ratio: 4 / 3;
}

.hcase-single .hcase-roomCard__overlay {
    position: absolute;
    left: 16px;
    bottom: 16px;
    right: 16px;
    background: rgba(0, 0, 0, .40);
    backdrop-filter: blur(6px);
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 14px;
    padding: 14px;
    color: #fff;
    /* ドラッグ中のテキスト選択を防いで「シャー」感を出す */
    user-select: none;
}

@media (min-width: 900px) {
    .hcase-single .hcase-roomCard__overlay {
        left: 22px;
        bottom: 22px;
        right: auto;
        width: min(420px, calc(100% - 44px));
        padding: 18px;
    }
}

/* SPだけ改行を有効にする（PCでは非表示） */
.hg-br--sp {
    display: none;
}

/* 小さめ画面ではテキストエリアが大きくなりすぎないように圧縮 */
@media (max-width: 520px) {
    .hg-br--sp {
        display: inline;
    }

    .hcase-single .hcase-roomCard__overlay {
        /* SPでは左下ではなく「下に横いっぱい」 */
        left: 0;
        right: 0;
        bottom: 0;
        width: auto;
        padding: 12px 14px;
        border-radius: 0;
        /* 画面を覆い過ぎないように */
        overflow: hidden;
    }

    .hcase-single .hcase-roomCard__cta {
        margin-top: 8px;
    }

    .hcase-single .hcase-roomCard__btn,
    .hcase-single .hcase-roomCard__cta .wp-block-button__link {
        padding: 9px 12px;
        border-radius: 10px;
        font-size: 13px;
    }

    /* 説明文は小画面で行数制限して高さを抑える */
    .hcase-single .hcase-roomCard__desc {
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
        line-clamp: 2;
        overflow: hidden;
        margin-bottom: 8px;
    }
}

/* place と cta を横並びにする（768px以下で適用） */
@media (max-width: 768px) {
    .hcase-single .hcase-roomCard__overlay {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        gap: 8px 12px;
    }

    .hcase-single .hcase-roomCard__overlay .hcase-roomCard__place {
        order: 1;
        flex: 6 1 0%;
        margin: 0;
        min-width: 0;
        max-width: 100%;
        font-size: 14px;
    }

    .hcase-single .hcase-roomCard__overlay .hcase-roomCard__cta {
        order: 2;
        flex: 4 1 0%;
        margin: 0;
        min-width: 0;
    }

    .hcase-single .hcase-roomCard__overlay .hcase-roomCard__desc {
        order: 3;
        flex: 0 0 100%;
        width: 100%;
        margin: 0;
    }
}

/* -------------------------
  FAQ（QA）ブロック：Q/Aラベル不要
  - SWELLは .swell-block-faq .faq_q:before / .faq_a:before で "Q" "A" を出すため無効化
-------------------------- */
.swell-block-faq .faq_q::before,
.swell-block-faq .faq_a::before {
    content: none !important;
    display: none !important;
}

.swell-block-faq .faq_q,
.swell-block-faq .faq_a {
    padding-left: 1em !important;
}

/* interior_case: 画像グリッド */
.hg-iGallery {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
    margin-top: 14px;
}

@media (min-width: 900px) {
    .hg-iGallery {
        grid-template-columns: 1fr 1fr;
        gap: 18px;
    }
}

.hg-iGallery__item {
    margin: 0;
    border-radius: 16px;
    overflow: hidden;
    background: #f3f4f6;
}

.hg-iGallery__item img {
    width: 100%;
    height: auto;
    display: block;
}

.hg-iGallery__cap {
    padding: 10px 12px;
    font-size: 14px;
    line-height: 1.6;
    color: #333;
}

.hcase-single .hcase-roomCard__place {
    margin: 0 0 6px;
    font-size: clamp(16px, 2.2vw + 8px, 18px);
    font-weight: 800;
    color: #fff;
}

.hcase-single .hcase-roomCard__desc {
    margin: 0 0 12px;
    color: rgba(255, 255, 255, .85);
    font-size: clamp(12px, 0.8vw + 9px, 13px);
    line-height: 1.6;
}

.hcase-single .hcase-roomCard__cta {
    display: flex;
    gap: 10px;
    align-items: center;
}

.hcase-single .hcase-roomCard__btn,
.hcase-single .hcase-roomCard__cta .wp-block-button__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 14px;
    border-radius: 10px;
    border: 1px solid rgba(255, 255, 255, .35);
    background: #fff;
    color: rgba(0, 0, 0, .9);
    text-decoration: none;
    font-weight: 800;
}

.hcase-single .hcase-roomCard__cta {
    margin-top: 10px;
}

.hcase-single .hcase-roomCard__cta .wp-block-buttons {
    margin: 0;
}

/* ---------- Single: sections/buttons ---------- */
.hcase-single .hcase-section {
    margin: 72px 0 0;
}

.hcase-single .hcase-section__title {
    font-size: 18px;
    margin: 0 0 10px;
    font-weight: 800;
}

.hcase-single .hcase-section__desc {
    margin: 0 0 14px;
    color: rgba(0, 0, 0, .7);
}

/* CTA直前：この事例を手がけた会社（企業トップへ戻る）＝フッター前CTAと同じネイビー＋白ボタン */
.hcase-single .hcase-companyIntro,
.hcase-archive .hcase-companyIntro {
    margin-top: 56px;
    margin-left: auto;
    margin-right: auto;
    width: 420px;
    max-width: 100%;
    padding: 32px 20px 36px;
    border-top: none;
    border-radius: 14px;
    background: #1F2A44;
    color: #fff;
}

.hcase-single .hcase-companyIntro__inner,
.hcase-archive .hcase-companyIntro__inner {
    text-align: center;
}

.hcase-single .hcase-companyIntro__title,
.hcase-archive .hcase-companyIntro__title {
    margin: 0 0 8px;
    font-size: 18px;
    font-weight: 800;
    color: #fff;
}

.hcase-single .hcase-companyIntro__name,
.hcase-archive .hcase-companyIntro__name {
    margin: 0 0 16px;
    font-size: 16px;
    font-weight: 500;
    color: rgba(255, 255, 255, .92);
}

.hcase-single .hcase-companyIntro .hc-ctaCard__cta,
.hcase-archive .hcase-companyIntro .hc-ctaCard__cta {
    margin-top: 12px;
}

.hcase-single .hcase-center {
    margin-top: 14px;
    text-align: center;
}

.hcase-single .hcase-btn,
.hcase-archive .hcase-btn {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    padding: 12px 18px;
    border-radius: 10px;
    border: 1px solid rgba(0, 0, 0, .15);
    text-decoration: none;
    font-weight: 700;
    color: rgba(0, 0, 0, .85);
    background: #fff;
}

.hcase-single .hcase-btn--primary,
.hcase-archive .hcase-btn--primary {
    background: var(--hg-color-main);
    border-color: var(--hg-color-main);
    color: #fff;
}

.hcase-single .hcase-btn--ghost,
.hcase-archive .hcase-btn--ghost {
    background: #fff;
}

.hcase-single .hcase-btn:hover,
.hcase-archive .hcase-btn:hover {
    filter: brightness(0.98);
}

/* ---------- Single: content wrapper (block styling) ---------- */
.hcase-single .hcase-content {
    margin-top: 24px;
}

/* 空間ギャラリー見出し（本文ブロックの先頭 h2）をセクション見出しサイズに */
.hcase-single .hcase-gallery .hcase-content h2:first-of-type,
.hcase-single .hcase-gallery .hcase-content .wp-block-heading:first-of-type {
    font-size: 20px;
    font-weight: 800;
    margin: 0 0 10px;
}

.hcase-single .hcase-content .wp-block-image img,
.hcase-single .hcase-content figure img {
    border-radius: 16px;
}

.hcase-single .hcase-content figure {
    margin: 0 0 32px;
}

.hcase-single .hcase-content .wp-block-group,
.hcase-single .hcase-content .wp-block-columns,
.hcase-single .hcase-content .wp-block-cover {
    border-radius: 16px;
    overflow: hidden;
}

/* ---------- Single: VR section ---------- */
.hcase-single .hcase-vr {
    padding: 56px 0 32px;
    border-top: 1px solid var(--hg-color-border);
    text-align: center;
}

/* VRセクションの上余白：SPでは控えめに、画面幅に応じて増やす */
.hcase-single .hcase-section.hcase-vr {
    margin-top: 40px;
    padding-top: 32px;
    background: #1F2A44;
    color: #fff;
}

.hcase-single .hcase-section.hcase-vr .hcase-section__title {
    color: #fff;
}

/* VRセクションのボタン：白背景 */
.hcase-single .hcase-section.hcase-vr .hcase-btn--primary {
    background: #fff;
    color: #1F2A44;
    border: 1px solid rgba(255, 255, 255, .25);
}
.hcase-single .hcase-section.hcase-vr .hcase-btn--primary:hover {
    opacity: .92;
}

@media (min-width: 600px) {
    .hcase-single .hcase-section.hcase-vr {
        margin-top: 52px;
        padding-top: 44px;
    }
}

@media (min-width: 900px) {
    .hcase-single .hcase-section.hcase-vr {
        margin-top: 72px;
        padding-top: 56px;
    }
}

/* .hcase-vr__icon は不要になったが、既存HTML互換のためスタイルは残してもOK */

/* ---------- Single: company section ---------- */
.hcase-single .hcase-company {
    margin-top: 72px;
    padding-top: 56px;
    border-top: 1px solid var(--hg-color-border);
    text-align: center;
}

.hcase-single .hcase-company__name {
    margin: 0;
    font-weight: 700;
    color: rgba(0, 0, 0, .85);
}

.hcase-single .hcase-companyCta,
.company-single .hcase-companyCta {
    margin-top: 48px;
    /* デザインに合わせて上の余白を増やす */
    padding-top: 32px;
    border-top: 1px solid var(--hg-color-border);
}

.hcase-single .hcase-companyCta__title,
.company-single .hcase-companyCta__title {
    margin: 0 0 8px;
    font-size: clamp(18px, 1.6vw + 12px, 28px);
    font-weight: 900;
    letter-spacing: .02em;
    text-align: center;
}

/* SPサイズで「この会社について、」で改行 */
@media (max-width: 599px) {
    .company-single .hcase-companyCta__title br {
        display: block;
    }
}

@media (min-width: 600px) {
    .company-single .hcase-companyCta__title br {
        display: none;
    }
}

.hcase-single .hcase-companyCta__lead,
.company-single .hcase-companyCta__lead {
    margin: 0 0 18px;
    text-align: center;
    font-size: clamp(12px, 0.6vw + 10px, 15px);
    color: rgba(0, 0, 0, .7);
}

.hcase-single .hcase-companyCtaCard,
.company-single .hcase-companyCtaCard {
    position: relative;
    padding-top: 18px;
}

.hcase-single .hcase-companyCtaCard__icon,
.company-single .hcase-companyCtaCard__icon {
    width: 56px;
    height: 56px;
    border-radius: 999px;
    overflow: hidden;
    margin: 0 auto 12px;
    flex: 0 0 auto;
}

.hcase-single .hcase-companyCtaCard__icon img,
.company-single .hcase-companyCtaCard__icon img {
    width: 56px;
    height: 56px;
    display: block;
}

.hcase-single .hcase-companyCtaCard .hc-ctaCard__body,
.company-single .hcase-companyCtaCard .hc-ctaCard__body {
    text-align: left;
}

.hcase-single .hcase-companyCtaCard .hc-ctaCard__cta,
.company-single .hcase-companyCtaCard .hc-ctaCard__cta {
    margin-top: 16px;
    width: 100%;
}

/* CTA: ボタン幅をカードいっぱいに */
.hcase-single .hcase-companyCta .hc-ctaCard__cta .hc-btn,
.company-single .hcase-companyCta .hc-ctaCard__cta .hc-btn {
    width: 100%;
}

.hcase-single .hcase-companyCta .hc-ctaCard__cta,
.company-single .hcase-companyCta .hc-ctaCard__cta {
    width: 100%;
}

/* company CTA: button colors (design) */
.hcase-single .hcase-companyCta .hc-btn--ghost,
.company-single .hcase-companyCta .hc-btn--ghost {
    background: #fff;
    color: var(--hg-color-main);
    border-color: var(--hg-color-main);
}

.hcase-single .hcase-companyCta .hc-btn--primary.hcase-companyCta__primaryBtn,
.company-single .hcase-companyCta .hc-btn--primary.hcase-companyCta__primaryBtn {
    background: var(--hg-color-cta);
    border-color: var(--hg-color-cta);
    color: #fff;
}

/* ---------- CTA（既存パーツを .hcase-single / .hcase-archive でも整える）⑩構成・中央寄せ ---------- */
.hcase-single .hc-cta,
.hcase-archive .hc-cta {
    margin: 44px 0 0;
    padding: 26px 0 10px;
    border-top: 1px solid rgba(0, 0, 0, .08);
}
.hcase-single .hc-cta__block,
.hcase-archive .hc-cta__block {
    margin-bottom: 32px;
}
.hcase-single .hc-cta__block:last-child,
.hcase-archive .hc-cta__block:last-child {
    margin-bottom: 0;
}
.hcase-single .hc-cta__heading,
.hcase-archive .hc-cta__heading {
    margin: 0 0 16px;
    font-size: 18px;
    font-weight: 800;
    text-align: center;
}

.hcase-single .hc-cta__title,
.hcase-archive .hc-cta__title {
    margin: 0 0 14px;
    font-size: 16px;
    font-weight: 800;
}

.hcase-single .hc-cta__grid,
.hcase-archive .hc-cta__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
    justify-items: center;
}

@media (min-width: 900px) {
    .hcase-single .hc-cta__grid,
    .hcase-archive .hc-cta__grid {
        grid-template-columns: 1fr 1fr;
        gap: 16px;
    }
}

.hcase-single .hc-ctaCard,
.hcase-archive .hc-ctaCard {
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 14px;
    background: #1F2A44;
    color: #fff;
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    justify-content: space-between;
    width: 100%;
    text-align: center;
}
.hcase-single .hc-ctaCard__title,
.hcase-archive .hc-ctaCard__title {
    text-align: center;
    color: #fff;
}
.hcase-single .hc-ctaCard__body,
.hcase-archive .hc-ctaCard__body {
    text-align: left;
}
.hcase-single .hc-ctaCard__cta,
.hcase-archive .hc-ctaCard__cta {
    text-align: center;
    display: flex;
    justify-content: center;
}

.hcase-single .hc-ctaCard.is-primary,
.hcase-archive .hc-ctaCard.is-primary {
    border-color: rgba(255, 255, 255, .28);
}

.hcase-single .hc-ctaCard__title,
.hcase-archive .hc-ctaCard__title {
    margin: 0 0 6px;
    font-size: 15px;
    font-weight: 800;
}

.hcase-single .hc-ctaCard__text,
.hcase-archive .hc-ctaCard__text {
    margin: 0;
    color: rgba(255, 255, 255, .85);
    text-align: center;
}

.hcase-single .hc-ctaCard:not(.is-primary) .hc-ctaCard__text,
.hcase-archive .hc-ctaCard:not(.is-primary) .hc-ctaCard__text {
    color: rgba(255, 255, 255, .85);
}

.hcase-single .hc-btn,
.hcase-archive .hc-btn {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    padding: 12px 18px;
    border-radius: 10px;
    border: 1px solid rgba(0, 0, 0, .15);
    text-decoration: none;
    font-weight: 700;
}

.hcase-single .hc-btn--primary,
.hcase-archive .hc-btn--primary {
    background: #fff;
    color: #1F2A44;
    border-color: rgba(255, 255, 255, .35);
}

.hcase-single .hc-btn--ghost,
.hcase-archive .hc-btn--ghost {
    background: #fff;
    color: #1F2A44;
    border-color: rgba(255, 255, 255, .35);
}

/* SP時：CTA内の文字サイズを 13px に統一 */
@media (max-width: 599px) {
    .hcase-single .hc-cta__heading,
    .hcase-archive .hc-cta__heading,
    .hcase-single .hc-ctaCard__title,
    .hcase-archive .hc-ctaCard__title,
    .hcase-single .hc-ctaCard__text,
    .hcase-archive .hc-ctaCard__text,
    .hcase-single .hc-btn,
    .hcase-archive .hc-btn {
        font-size: 13px;
    }
}

/* PC時：hc-ctaCard__title を 20px に */
@media (min-width: 600px) {
    .hcase-single .hc-ctaCard__title,
    .hcase-archive .hc-ctaCard__title {
        font-size: 20px;
    }
}

/* =========================================
   追加CSS（出展企業: company）
   - スコープ: archive-company.php → .company-archive
   - スコープ: single-company.php  → .company-single
========================================= */

/* ---------- Archive: header ---------- */
.company-archive .co-archive__header {
    margin: 8px 0 28px;
}

.company-archive .co-archive__lead {
    margin: 8px 0 0;
    color: inherit;
}

/* ---------- Archive: tabs ---------- */
.company-archive .co-tabs {
    border-top: 1px solid rgba(0, 0, 0, .08);
    border-bottom: 1px solid rgba(0, 0, 0, .08);
    margin: 28px 0 32px;
    padding: 4px 0;
}

.company-archive .co-tabs__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    gap: 18px;
    overflow-x: auto;
}

.company-archive .co-tabs__link {
    display: inline-block;
    padding: 14px 4px;
    color: rgba(0, 0, 0, .7);
    text-decoration: none;
    border-bottom: 2px solid transparent;
    white-space: nowrap;
    font-weight: 700;
}

.company-archive .co-tabs__link.is-active {
    color: rgba(0, 0, 0, .92);
    border-bottom-color: rgba(0, 0, 0, .65);
}

/* ---------- Archive: grid/cards ---------- */
/* gap: 375pxで16px → 1440pxで20px の1本の式（メディアでは列数だけ切替） */
.company-archive .co-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: calc(16px + (100vw - 375px) * (20 - 16) / (1440 - 375));
}

@media (min-width: 600px) {
    .company-archive .co-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (min-width: 900px) {
    .company-archive .co-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

.company-archive .co-card {
    background: #fff;
    border: 1px solid rgba(0, 0, 0, .08);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 10px 22px rgba(0, 0, 0, .06);
    display: flex;
    flex-direction: column;
    max-height: 800px;
}

.company-archive .co-card__link {
    display: flex;
    flex-direction: column;
    height: 100%;
    color: inherit;
    text-decoration: none;
}
.company-archive .co-card__link:hover {
    color: inherit;
}

/* 画像は flex で伸縮させない（ボディの項目数で高さが変わらないようにする） */
.company-archive .co-card__img {
    flex: 0 0 auto;
    width: 100%;
    aspect-ratio: 1 / 1;
    background: #f3f4f6;
    overflow: hidden;
}

.company-archive .co-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.company-archive .co-card__imgPh {
    width: 100%;
    height: 100%;
}

.company-archive .co-card__link .co-card__body {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-height: 0;
}
.company-archive .co-card__body {
    padding: 12px 16px 14px;
    flex: 0 0 auto;
}

.company-archive .co-card__title {
    font-size: clamp(14px, 2vw, 16px);
    margin: 0 0 4px;
    line-height: 1.3;
}

.company-archive .co-card__area {
    margin: 0 0 6px;
    color: rgba(0, 0, 0, .65);
    font-size: clamp(11px, 1.5vw, 12px);
    line-height: 1.4;
}

.company-archive .co-chips {
    list-style: none;
    padding: 0;
    margin: 0 0 8px;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.company-archive .co-chip {
    display: inline-flex;
    align-items: center;
    padding: 5px 9px;
    border-radius: 999px;
    border: 1px solid rgba(0, 0, 0, .12);
    background: #fff;
    font-size: clamp(10px, 1.3vw, 11px);
    line-height: 1;
    color: rgba(0, 0, 0, .72);
}

.company-archive .co-card__cta {
    margin-top: auto;
    padding-top: 4px;
}

.company-archive .co-btn {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    padding: 8px 10px;
    border-radius: 10px;
    border: 1px solid rgba(0, 0, 0, .15);
    text-decoration: none;
    font-weight: 700;
    color: rgba(0, 0, 0, .85);
    background: #fff;
    font-size: clamp(12px, 1.8vw, 13px);
}

.company-archive .co-btn:hover {
    filter: brightness(0.98);
}

.company-archive .co-empty {
    margin: 10px 0 0;
    color: rgba(0, 0, 0, .65);
}

/* ---------- Archive: pagination ---------- */
.company-archive .co-pagination {
    margin-top: 26px;
}

.company-archive .co-pagination ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    gap: 8px;
    justify-content: center;
    flex-wrap: wrap;
}

.company-archive .co-pagination a,
.company-archive .co-pagination span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    border-radius: 10px;
    border: 1px solid rgba(0, 0, 0, .12);
    text-decoration: none;
    color: rgba(0, 0, 0, .8);
}

.company-archive .co-pagination .current {
    background: rgba(0, 0, 0, .06);
    font-weight: 800;
}

/* ---------- Single: hero ---------- */
.company-single .co-section {
    margin: 56px 0 0;
}

/* 見出し階層（h2=特大 → 段階的に小さく） */
.company-single .co-section__btnRow {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-top: 16px;
}

.company-single .co-section__btnRow .co-btn {
    width: 300px;
    height: 80px;
    min-width: 300px;
    min-height: 80px;
    padding: 0;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    font-weight: 800;
}

.company-single .co-btn {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    padding: 12px 24px;
    border-radius: 8px;
    border: 1px solid rgba(0, 0, 0, .15);
    text-decoration: none;
    font-weight: 700;
    color: rgba(0, 0, 0, .85);
    background: #fff;
    transition: background-color 0.2s;
}

/* VRモデルハウス：遷移先サムネイル（外観パース） */
.company-single .co-vrThumbWrap {
    margin-bottom: 20px;
    max-width: 560px;
    margin-left: auto;
    margin-right: auto;
}

.company-single .co-vrThumbWrap__link {
    display: block;
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid rgba(0, 0, 0, .08);
    box-shadow: 0 4px 14px rgba(0, 0, 0, .06);
}

.company-single .co-vrThumbWrap__link:hover {
    opacity: .92;
}

.company-single .co-vrThumbWrap__img {
    width: 100%;
    height: auto;
    display: block;
    vertical-align: top;
}

/* ネイビーボタン：詳細度を上げて確実に上書き */
.company-single .co-btn.co-btn--navy,
.company-single a.co-btn.co-btn--navy {
    background: #1F2A44 !important;
    color: #fff !important;
    border-color: #1F2A44 !important;
}

.company-single .co-btn.co-btn--navy:hover,
.company-single a.co-btn.co-btn--navy:hover {
    background: #2a3858 !important;
    filter: brightness(1.08);
}

.company-single h3 {
    font-size: 1.25em; /* 大 */
    font-weight: 800;
}
.company-single h4 {
    font-size: 1.1em; /* 中 */
    font-weight: 700;
}
.company-single h5 {
    font-size: 1em;
    font-weight: 700;
}
.company-single h6 {
    font-size: 0.9em; /* 小 */
    font-weight: 700;
}

.company-single .co-hero {
    margin: 10px 0 32px;
}

.company-single .co-hero__inner {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
    align-items: center;
}

@media (min-width: 900px) {
    .company-single .co-hero__inner {
        grid-template-columns: 1.05fr 0.95fr;
        gap: 32px;
        align-items: stretch;
    }
}

.company-single .co-hero__txt {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.company-single .co-hero__lead {
    margin: 0 0 24px;
    font-weight: 700;
    color: rgba(0, 0, 0, .7);
}

.company-single .co-hero__title {
    margin: 0 0 24px;
    font-size: clamp(22px, 2.2vw, 32px);
    line-height: 1.4;
}

.company-single .co-hero__text {
    margin: 0;
    color: rgba(0, 0, 0, .7);
    line-height: 1.7;
}

.company-single .co-hero__img {
    border-radius: 16px;
    overflow: hidden;
    background: #f3f4f6;
    aspect-ratio: 16/9;
}

@media (min-width: 900px) {
    .company-single .co-hero__img {
        aspect-ratio: 1/1;
    }
}

.company-single .co-hero__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.company-single .co-hero__imgPh {
    width: 100%;
    height: 100%;
}

/* ---------- Single: info grid ---------- */
.company-single .co-infoGrid {
    border: 1px solid rgba(0, 0, 0, .10);
    border-radius: 14px;
    background: #fff;
    overflow: hidden;
}

/* デザイン寄せ：会社情報を2カラムに（SPは1カラム） */
.company-single .co-infoCols {
    /* 下線だけのシンプル表（外枠なし） */
    border: none;
    border-radius: 0;
    background: transparent;
    overflow: visible;
    display: grid;
    grid-template-columns: 1fr;
    row-gap: 8px;
}

@media (min-width: 900px) {
    .company-single .co-infoCols {
        grid-template-columns: 1fr 1fr;
        column-gap: 44px;
    }

    .company-single .co-infoCol+.co-infoCol {
        border-left: none;
    }
}

/* 会社情報：各項目を1行で表示（ラベル＋値） */
.company-single .co-infoRow {
    display: grid;
    grid-template-columns: 100px 1fr;
    column-gap: 12px;
    align-items: start;
    border-top: none;
    border-bottom: 1px solid rgba(0, 0, 0, .12);
    padding: 10px 0;
}

.company-single .co-infoCol .co-infoRow:first-child {
    border-top: none;
}

.company-single .co-infoRow:first-child {
    border-top: none;
}

@media (min-width: 900px) {
    .company-single .co-infoRow {
        grid-template-columns: 140px 1fr;
        column-gap: 18px;
        padding: 12px 0;
    }
}

.company-single .co-infoRow__label {
    padding: 0;
    background: transparent;
    font-weight: 700;
    color: rgba(0, 0, 0, .55);
    flex-shrink: 0;
    white-space: nowrap;
}

.company-single .co-infoRow__value {
    padding: 0;
    color: rgba(0, 0, 0, .88);
    word-break: break-word;
    min-width: 0;
}

/* ---------- Single: feature cards ---------- */
.company-single .co-features {
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
}

@media (min-width: 900px) {
    .company-single .co-features {
        grid-template-columns: 1fr 1fr;
        gap: 24px;
    }
}

.company-single .co-fcard {
    border: 1px solid rgba(0, 0, 0, .10);
    border-radius: 14px;
    background: #fff;
    padding: 22px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: stretch;
    text-align: left;
}

.company-single .co-fcard__icon {
    width: 56px;
    height: 56px;
    border-radius: 999px;
    background: rgba(0, 0, 0, .04);
    display: grid;
    place-items: center;
    align-self: center;
}

.company-single .co-fcard__icon img {
    width: 26px;
    height: 26px;
    object-fit: contain;
}

.company-single .co-fcard__body {
    display: grid;
    gap: 8px;
}

.company-single .co-fcard__title {
    margin: 0;
    font-size: 18px;
    font-weight: 800;
    color: var(--color_text, #333);
}

.company-single .co-fcard__text {
    margin: 0;
    color: rgba(0, 0, 0, .7);
}

/* ---------- Single: case cards / swiper ---------- */
.company-single .co-caseGrid {
    display: grid;
    grid-template-columns: 1fr;
    gap: calc(16px + (100vw - 375px) * (20 - 16) / (1440 - 375));
}

@media (min-width: 900px) {
    .company-single .co-caseGrid {
        grid-template-columns: repeat(3, 1fr);
    }
}

.company-single .co-ccard {
    border-radius: 16px;
    overflow: hidden;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, .08);
    box-shadow: 0 10px 22px rgba(0, 0, 0, .06);
}

.company-single .co-ccard__link {
    display: block;
    color: inherit;
    text-decoration: none;
}

.company-single .co-ccard__img {
    aspect-ratio: 1/1;
    background: #f3f4f6;
    overflow: hidden;
}

.company-single .co-ccard__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.company-single .co-ccard__imgPh {
    width: 100%;
    height: 100%;
}

.company-single .co-ccard__body {
    padding: 18px 18px 20px;
}

.company-single .co-ccard__title {
    margin: 0 0 8px;
    font-size: 15px;
    font-weight: 800;
    color: var(--color_text, #333);
}

.company-single .co-ccard__meta {
    margin: 0;
    color: rgba(0, 0, 0, .7);
    font-size: 13px;
}

.company-single .co-empty {
    margin: 10px 0 0;
    color: rgba(0, 0, 0, .65);
}

.company-single .co-caseSwiper {
    position: relative;
}

.company-single .co-caseSwiper .swiper-pagination {
    margin-top: 10px;
    position: static;
}

.company-single .co-caseSwiper .swiper-button-prev,
.company-single .co-caseSwiper .swiper-button-next {
    color: rgba(0, 0, 0, .65);
    cursor: pointer;
}

.company-single .co-caseSwiper .swiper-button-disabled {
    opacity: 0.35;
    cursor: default;
    pointer-events: none;
}

/* ---------- Single: content wrapper ---------- */
.company-single .co-content .wp-block-image img,
.company-single .co-content figure img {
    border-radius: 16px;
}

.company-single .co-content figure {
    margin: 0 0 16px;
}

/* ---------- CTA（.company-single / .hc-single で整える）⑩構成・中央寄せ ---------- */
.company-single .hc-cta,
.hc-single .hc-cta {
    margin: 60px 0 0;
    padding: 36px 0 20px;
    border-top: 1px solid rgba(0, 0, 0, .08);
}

.company-single .hc-cta__block,
.hc-single .hc-cta__block {
    margin-bottom: 32px;
}
.company-single .hc-cta__block:last-child,
.hc-single .hc-cta__block:last-child {
    margin-bottom: 0;
}

.company-single .hc-cta__heading,
.hc-single .hc-cta__heading {
    margin: 0 0 16px;
    font-size: 18px;
    font-weight: 800;
    text-align: center;
}

/* CTA見出しのSP用改行（br.hc-br-sp）：PCでは非表示 */
.company-single .hc-cta__heading .hc-br-sp,
.hc-single .hc-cta__heading .hc-br-sp,
.hc-cta__heading .hc-br-sp {
    display: none;
}
@media (max-width: 768px) {
    .company-single .hc-cta__heading .hc-br-sp,
    .hc-single .hc-cta__heading .hc-br-sp,
    .hc-cta__heading .hc-br-sp {
        display: block;
    }
}

.company-single .hc-cta__title,
.hc-single .hc-cta__title {
    margin: 0 0 14px;
    font-size: 16px;
    font-weight: 800;
}

.company-single .hc-cta__grid,
.hc-single .hc-cta__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
    justify-items: center;
}

@media (min-width: 900px) {
    .company-single .hc-cta__grid,
    .hc-single .hc-cta__grid {
        grid-template-columns: 1fr 1fr;
        gap: 16px;
    }
}

.company-single .hc-ctaCard,
.hc-single .hc-ctaCard {
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 14px;
    background: #1F2A44;
    color: #fff;
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    justify-content: space-between;
    width: 100%;
    text-align: center;
}
.company-single .hc-ctaCard__title,
.hc-single .hc-ctaCard__title {
    text-align: center;
    color: #fff;
}
.company-single .hc-ctaCard__body,
.hc-single .hc-ctaCard__body {
    text-align: left;
}
.company-single .hc-ctaCard__cta,
.hc-single .hc-ctaCard__cta {
    text-align: center;
    display: flex;
    justify-content: center;
}

.company-single .hc-ctaCard.is-primary,
.hc-single .hc-ctaCard.is-primary {
    border-color: rgba(255, 255, 255, .28);
}

.company-single .hc-ctaCard__title,
.hc-single .hc-ctaCard__title {
    margin: 0 0 6px;
    font-size: 15px;
    font-weight: 800;
}

.company-single .hc-ctaCard__text,
.hc-single .hc-ctaCard__text {
    margin: 0;
    color: rgba(255, 255, 255, .85);
    text-align: center;
}

.company-single .hc-ctaCard:not(.is-primary) .hc-ctaCard__text,
.hc-single .hc-ctaCard:not(.is-primary) .hc-ctaCard__text {
    color: rgba(255, 255, 255, .85);
}

.company-single .hc-btn,
.hc-single .hc-btn {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    padding: 12px 18px;
    border-radius: 10px;
    border: 1px solid rgba(0, 0, 0, .15);
    text-decoration: none;
    font-weight: 700;
}

.company-single .hc-btn--primary,
.hc-single .hc-btn--primary {
    background: #fff;
    color: #1F2A44;
    border-color: rgba(255, 255, 255, .35);
}

.company-single .hc-btn--ghost,
.hc-single .hc-btn--ghost {
    background: #fff;
    color: #1F2A44;
    border-color: rgba(255, 255, 255, .35);
}

/* SP時：CTA内の文字サイズを 13px に統一 */
@media (max-width: 599px) {
    .company-single .hc-cta__heading,
    .hc-single .hc-cta__heading,
    .company-single .hc-ctaCard__title,
    .hc-single .hc-ctaCard__title,
    .company-single .hc-ctaCard__text,
    .hc-single .hc-ctaCard__text,
    .company-single .hc-btn,
    .hc-single .hc-btn {
        font-size: 13px;
    }
}

/* PC時：hc-ctaCard__title を 20px に */
@media (min-width: 600px) {
    .company-single .hc-ctaCard__title,
    .hc-single .hc-ctaCard__title {
        font-size: 20px;
    }
}

.company-single .hc-btn--navy,
.hc-single .hc-btn--navy {
    background: var(--hg-color-main);
    color: #fff;
    border-color: var(--hg-color-main);
}

.company-single .hc-btn--navy:hover,
.hc-single .hc-btn--navy:hover {
    filter: brightness(1.08);
}

/* 投稿リストスライダーバージョン：追加メタ（タグ） */
.swell-child-postListSlider .p-postList__meta .p-postList__tag {
    display: inline-flex;
    align-items: center;
    gap: .35em;
    margin-left: .6em;
    color: inherit;
}

/* SWELLの post-slider 側の `color: inherit;` 指定を無効化（子テーマで上書き） */
.swell-child-postListSlider.p-postSlider .p-postList__body {
    color: unset;
}

/* 投稿リストスライダー：NEWバッジ（左上・ネイビー背景＋白文字） */
.swell-child-postListSlider .p-postList__thumb {
    position: relative;
}
.swell-child-postListSlider .hg-postList__newBadge {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 5;
    padding: 6px 10px;
    border-radius: 10px;
    background: #1F2A44;
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .02em;
    line-height: 1;
}

/* 投稿リストスライダーバージョン：-type-thumb は本文をサムネに被せる（希望の見た目を優先） */
.swell-child-postListSlider.p-postSlider .p-postList.-type-thumb .p-postList__link {
    position: relative; /* 念のため（absolute の基準） */
}
.swell-child-postListSlider.p-postSlider .p-postList.-type-thumb .p-postList__body {
    bottom: 0;
    left: 0;
    width: 100%;
    position: absolute;
    background: rgba(0, 0, 0, 0.5);
    padding: 0.75em;
    color: #fff;
    margin-top: 0; /* post-slider.css の margin-top を打ち消す */
}

/* 投稿スライダー（トップ）：company の施工事例スライダー風の矢印 */
#post_slider.p-postSlider .swiper-button-prev,
#post_slider.p-postSlider .swiper-button-next,
.swell-child-postListSlider.p-postSlider .swiper-button-prev,
.swell-child-postListSlider.p-postSlider .swiper-button-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    margin-top: 0;
    z-index: 12;
    color: #fff;
    cursor: pointer;
    background: rgba(0, 0, 0, .28);
    backdrop-filter: blur(4px);
    border-radius: 10px;
    transition: all .2s;
    display: flex !important;
    align-items: center;
    justify-content: center;
}

/* Swiper初期化に失敗しても中身が消えないように（SWELLは未初期化時に visibility:hidden） */
.swell-child-postListSlider.p-postSlider .p-postSlider__swiper {
    visibility: visible !important;
}

/* 投稿スライダー（トップ）：施工事例スライダーと同じ「カード間隔」へ（spaceBetween:18px 相当）
   SWELLの post-slider は各スライドに左右 padding(var(--ps_space)) を持たせるため、9pxで18px相当になる */
#post_slider.p-postSlider,
.swell-child-postListSlider.p-postSlider { /* 子テーマスライダーは JS の spaceBetween を使うので下で上書き */
    --ps_space: 9px;
}

/* 子テーマの投稿リストスライダーは gap をJS(spaceBetween)で作るため、slideの左右paddingはゼロにする */
.swell-child-postListSlider.p-postSlider {
    --ps_space: 0px;
}

/* 投稿リストスライダーバージョン：Swiper前提で横並び固定（一覧化/折返しを防ぐ） */
.swell-child-postListSlider .p-postSlider__postList {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
}
.swell-child-postListSlider .p-postSlider__postList > .p-postList__item {
    flex-shrink: 0;
}

/* 投稿スライダー（トップ）：カードはフル幅で、矢印は外側へ逃がす */
#post_slider.p-postSlider,
.swell-child-postListSlider.p-postSlider {
    overflow: visible; /* 矢印を外に出す */
}

#post_slider.p-postSlider .swiper-button-prev,
.swell-child-postListSlider.p-postSlider .swiper-button-prev {
    left: -54px; /* 44px(矢印) + 10px(オフセット) */
}

#post_slider.p-postSlider .swiper-button-next,
.swell-child-postListSlider.p-postSlider .swiper-button-next {
    right: -54px;
}

#post_slider.p-postSlider .swiper-button-prev::after,
#post_slider.p-postSlider .swiper-button-next::after,
.swell-child-postListSlider.p-postSlider .swiper-button-prev::after,
.swell-child-postListSlider.p-postSlider .swiper-button-next::after {
    box-sizing: border-box;
    content: "";
    display: block;
    height: 14px;
    position: relative;
    transform: rotate(45deg) skew(10deg, 10deg);
    width: 14px;
}

#post_slider.p-postSlider .swiper-button-prev::after,
.swell-child-postListSlider.p-postSlider .swiper-button-prev::after {
    border-left: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
}

#post_slider.p-postSlider .swiper-button-next::after,
.swell-child-postListSlider.p-postSlider .swiper-button-next::after {
    border-right: 2px solid currentColor;
    border-top: 2px solid currentColor;
}

#post_slider.p-postSlider .swiper-button-disabled,
.swell-child-postListSlider.p-postSlider .swiper-button-disabled {
    opacity: 0.35;
    cursor: auto;
    pointer-events: none;
}

@media (max-width: 480px) {
    #post_slider.p-postSlider .swiper-button-prev,
    #post_slider.p-postSlider .swiper-button-next,
    .swell-child-postListSlider.p-postSlider .swiper-button-prev,
    .swell-child-postListSlider.p-postSlider .swiper-button-next {
        width: 36px;
        height: 36px;
    }
    #post_slider.p-postSlider .swiper-button-prev,
    .swell-child-postListSlider.p-postSlider .swiper-button-prev {
        left: -41px; /* 36px + 5px */
    }
    #post_slider.p-postSlider .swiper-button-next,
    .swell-child-postListSlider.p-postSlider .swiper-button-next {
        right: -41px;
    }
}

/* パンくず（詳細ページでも末尾＝現在ページを表示） */
.single .p-breadcrumb__item:last-child > span.p-breadcrumb__text {
    display: inline-flex;
}
@media (max-width: 768px) {
    .single .p-breadcrumb__list {
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
    }
}

/* =========================================
   メニュー内の「見出し」用（.menu-label を付けたカスタムリンク項目）
   - 直下の a はクリック無効・ポインターなし・擬似要素なし
========================================= */
.p-spMenu .menu-item.menu-label > a,
.l-footer .menu-item.menu-label > a {
    font-weight: 700;
    color: inherit;
    cursor: default;
    pointer-events: none;
    text-decoration: none;
}
.p-spMenu .menu-item.menu-label > a::before,
.p-spMenu .menu-item.menu-label > a::after,
.l-footer .menu-item.menu-label > a::before,
.l-footer .menu-item.menu-label > a::after {
    content: none !important;
    display: none !important;
}
.p-spMenu .menu-item.menu-label {
    margin-top: 1em;
    padding-top: 0.5em;
}
.p-spMenu .menu-item.menu-label:first-child {
    margin-top: 0;
    padding-top: 0;
    border-top: none;
}

/* フッターナビ：区切り線（ボーダー）をすべてなしにする */
.l-footer__nav a {
    border: none !important;
}

/* フッター：SPで1列・左揃え・文字サイズ14px以上 */
@media (max-width: 767px) {
    .l-footer .w-footer {
        display: flex;
        flex-direction: column;
    }
    .l-footer .w-footer__box {
        width: 100%;
    }
    .l-footer__nav {
        flex-direction: column;
        align-items: flex-start;
    }
    .l-footer__nav > li {
        width: 100%;
        text-align: left;
    }
    .l-footer__nav a {
        font-size: 14px;
    }
    /* 最初の親項目以外に上マージン（クラス不要） */
    .l-footer__nav > li:not(:first-child) {
        margin-top: 0.75em;
    }
    .l-footer .copyright {
        text-align: left;
        font-size: 14px;
    }
}

/* =========================================
   Header: PCでもハンバーガーメニューを使う
   - SWELL標準ではSPのみ表示される .sp_ 系UIをPC幅でも有効化
   - PC用グロナビは非表示にして、SP用ドロワーを共通で利用
   - SWELL本体は変更せず、子テーマCSSだけで切り替える
========================================= */
@media (min-width: 960px) {
    /* PC標準のグローバルナビは隠す */
    .l-header__gnav,
    .l-fixHeader__gnav {
        display: none !important;
    }

    /* SP用ボタンをPCでも表示 */
    .l-header__menuBtn.sp_,
    .l-header__customBtn.sp_ {
        display: flex !important;
        align-items: center;
    }

    /* 右端に寄せやすくする */
    .l-header__menuBtn.sp_ {
        margin-left: 12px;
    }

    /* メニューラベルをPCでは見せない */
    .l-header__menuBtn.sp_ .c-iconBtn__label,
    .l-header__customBtn.sp_ .c-iconBtn__label {
        display: none;
    }

    /* ボタンサイズをPCヘッダーになじませる */
    .l-header__menuBtn.sp_ .c-iconBtn,
    .l-header__customBtn.sp_ .c-iconBtn {
        width: 48px;
        height: 48px;
        min-height: 48px;
    }

    /* SWELL標準ではSP専用のためPC幅で非表示になることがある */
    .p-spMenu {
        display: block !important;
    }

    /* ドロワー幅をPC向けに少し広げる */
    .p-spMenu .p-spMenu__inner {
        width: min(420px, 92vw);
        max-width: 420px;
    }

    /* 念のためPC幅でも十分前面に出す */
    .p-spMenu,
    .p-spMenu__overlay,
    .p-spMenu__inner {
        pointer-events: auto;
    }
}

/* 固定ページ: .post_content 上余白（SWELL既定の 4em 相当より詰める）PC 32px / SP 24px */
.page .l-mainContent__inner > .post_content {
    margin-top: 32px;
}

@media (max-width: 767px) {
    .page .l-mainContent__inner > .post_content {
        margin-top: 24px;
    }
}

/* 会社概要（/about/）: タイトル直下の本文エリア上余白なし（functions.php の hg-about-page / SP の @media も上書き） */
.page.hg-about-page .l-mainContent__inner > .post_content {
    margin-top: 0;
}

/* ミラージュについて（/about-miraju/）: 同上（hg-about-miraju-page は functions.php で付与） */
.page.hg-about-miraju-page .l-mainContent__inner > .post_content {
    margin-top: 0;
}

/* プライバシーポリシー（/privacy-policy/）: 同上（hg-privacy-policy-page は functions.php で付与済み） */
.page.hg-privacy-policy-page .l-mainContent__inner > .post_content {
    margin-top: 0;
}

/* Q&A（/qa/）: 同上（hg-qa-page は functions.php で付与） */
.page.hg-qa-page .l-mainContent__inner > .post_content {
    margin-top: 0;
}

/*
 * benefit / home-building-school（body.hg-benefit-page）
 * 各固定ページの「カスタムCSS」に書いていた内容と同一。swell_meta_css はページごとにしか出ないため子テーマに集約。
 * post_content の上マージンは .page 共通（32px / SP 24px）に任せ、ここでは padding のみ指定する。
 */
.hg-benefit-page .l-mainContent__inner > .post_content {
    padding: 0;
}

.hg-benefit-page .l-mainContent__inner > .c-pageTitle {
    font-size: clamp(22px, 2.2vw, 32px);
    line-height: 1.25;
    margin: 0;
    position: relative;
    display: flex;
    align-items: center;
    background: var(--color_htag);
    color: #fff;
    padding: 0.75em 1em;
    margin-left: var(--swl-h2-margin--x, 0);
    margin-right: var(--swl-h2-margin--x, 0);
    overflow: hidden;
    min-height: 3.2em;
    box-sizing: border-box;
}

.hg-benefit-page .l-mainContent__inner > .c-pageTitle .c-pageTitle__inner {
    position: relative;
    z-index: 1;
    color: inherit;
    display: block;
    line-height: 1.4;
    padding: 0;
}

.hg-benefit-page .l-mainContent__inner > .c-pageTitle::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    border-top: 2px solid var(--color_htag);
    border-bottom: 2px solid var(--color_htag);
    box-sizing: border-box;
}

.hg-benefit-page .p-postSlider .p-postList__item {
    padding: 0 0.5em !important;
}

/*
 * 資料請求 /request/ : テーマ公式の .c-pageTitle は DOM に残しつつ画面には出さない（margin:-1px + clip の visually-hidden 系）
 * 同ページの「カスタムCSS」に .c-pageTitle の見た目指定が残っている場合は削除または上書きされないよう整理すること
 */
.hg-request-page .l-mainContent__inner > .c-pageTitle {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

.hg-request-page .l-mainContent__inner > .c-pageTitle::before {
    content: none;
    display: none;
}

/*
 * 固定ページ本文内の「ページタイトル帯」風 h2（見出しブロックの「追加CSSクラス」に hg-pageTitleBand を付与）
 * .c-pageTitle と同等の見た目を、任意の h2 だけに適用する
 */
.post_content h2.hg-pageTitleBand {
    isolation: isolate;
    position: relative;
    display: flex;
    align-items: center;
    box-sizing: border-box;
    margin-left: var(--swl-h2-margin--x, 0);
    margin-right: var(--swl-h2-margin--x, 0);
    margin-top: 0;
    margin-bottom: 0;
    padding: 0.75em 1em;
    min-height: 3.2em;
    overflow: hidden;
    font-size: clamp(22px, 2.2vw, 32px);
    line-height: 1.25;
    font-weight: 700;
    background: var(--color_htag);
    color: #fff;
    border: none;
    box-shadow: none;
}

.post_content h2.hg-pageTitleBand strong {
    color: inherit;
    font-weight: inherit;
}

.post_content h2.hg-pageTitleBand::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    border-top: 2px solid var(--color_htag);
    border-bottom: 2px solid var(--color_htag);
    box-sizing: border-box;
}

/* SWELL 標準の h2 装飾が付く場合は無効化（優先して帯スタイルを使う） */
.post_content h2.hg-pageTitleBand::after {
    content: none !important;
    display: none !important;
}

/* 無料相談・デザイン固定ページ: 本文の padding（上マージンは .page 共通 32px/24px） */
.hg-consultation-page .l-mainContent__inner > .post_content,
.hg-design-page .l-mainContent__inner > .post_content {
    padding: 0;
}

/* プライバシーポリシー固定ページ: コンテンツ下マージン調整 */
.hg-privacy-policy-page .l-content {
    margin: 0 auto 2rem;
}
