@charset "utf-8";
/* =========================================================
   B09991-01_愛知 注文住宅 ／ SD-1 デザインカスタマイズ
   デザインコンセプト：設計を連想させる、スタイリッシュでとっつきやすいサイト
     ・設計 → 細い線（グリッドデザイン）＋大きめの余白で表現
     ・とっつきやすさ → 落ち着いたカラフル（ポイントカラー3色）で表現
     ・簡易3選は「重視するタイプ」ごとに帯の色を変えて強みの違いを明確化

   ▼カラー（デザイン指示書のカラーチップより実測）
     ベース    #FFFFFF
     サブ      #F6F6F6
     メイン    #808D93
     ポイント  #A99C65（ベージュ）/ #198898（青）/ #C15639（赤）
     アクセント #000000

   ■読み込み位置
   header.php の custom.css の「後」に読み込んでください。
     <link rel="stylesheet" href="<?=get_theme_file_uri()?>/custom.css">
     <link rel="stylesheet" href="<?=get_theme_file_uri()?>/custom-add.css">  ← 追加
     <link rel="stylesheet" href="<?=get_theme_file_uri()?>/edit.css">
   ========================================================= */

:root {
    --c-base:     #FFFFFF; /* ベースカラー：白 */
    --c-sub:      #F6F6F6; /* サブカラー：薄い灰色 */
    --c-main:     #808D93; /* メインカラー：灰色 */
    --c-main-d:   #5C686D; /* メイン・濃（テキスト用） */
    --c-line:     #E4E7E8; /* 細い線（グリッド・罫線） */
    --c-line-l:   #EFF1F2; /* 細い線・淡 */
    --c-guide:    #C6CDD1; /* 見出しの製図ガイド線 */
    --c-beige:    #A99C65; /* ポイント：ベージュ */
    --c-blue:     #198898; /* ポイント：青 */
    --c-red:      #C15639; /* ポイント：赤 */
    --c-accent:   #000000; /* アクセント：黒 */
    --c-ink:      #1A1A1A; /* 本文 */
    --c-cap:      #97A1A6; /* キャプション */
    --c-marker:   #FAEFAF; /* マーカー（薄い黄色）2026-09-02 */
    --c-tel:      #808D93; /* 電話ボタン（外部リンクの黒と差別化）2026-09-03 */

    /* タイプ別カラー（1:住宅性能=赤 / 2:デザイン=ベージュ / 3:コスト=青） */
    --c-type1: var(--c-red);
    --c-type2: var(--c-beige);
    --c-type3: var(--c-blue);

    /* 既存変数の上書き */
    --site-color03: #1A1A1A;
    --site-color09: #E4E7E8;
    --site-color10: #F6F6F6;
    --site-color12: #000000;
    --site-color13: #E4E7E8;
    --site-color14: #808D93;
    --accent-color01: #198898;
}


/* =========================================================
   1. 設計を連想させる装飾：定規の目盛り（スケール）
   参考：東急リニューアル 設計部 https://www.tokyu-renewal.co.jp/design/

   画面の上端・左端に、製図用スケールのような目盛りを固定表示します。
   1rem 幅の帯に、SVGマスクで 0.5rem の短い目盛りを 1rem ごと、
   1rem の長い目盛りを 5rem ごとに描画（＝1428px以下では 10px / 50px）。
   マスク方式なので、色は background-color を変えるだけで調整できます。
   ========================================================= */
html { background: var(--c-base); }
body {
    background: transparent;
    color: var(--c-ink);
    position: relative;
    font-family: "Noto Sans JP", "Noto Sans CJK JP", "Hiragino Sans",
                 "Hiragino Kaku Gothic ProN", "Yu Gothic", YuGothic, Meiryo, sans-serif;
}

/* 画面左端の目盛り（固定） */
body::after {
    content: "";
    position: fixed;
    z-index: 60;
    top: 0;
    bottom: 0;
    left: 0;
    width: 1rem;
    pointer-events: none;
    background-color: var(--c-ink);
    opacity: .45;
    -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2010%2050%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M0%209h5v1H0zm0%2010h5v1H0zm0%2010h5v1H0zm0%2010h5v1H0zm0%2010h10v1H0z%22/%3E%3C/svg%3E");
            mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2010%2050%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M0%209h5v1H0zm0%2010h5v1H0zm0%2010h5v1H0zm0%2010h5v1H0zm0%2010h10v1H0z%22/%3E%3C/svg%3E");
    -webkit-mask-repeat: repeat-y;
            mask-repeat: repeat-y;
    -webkit-mask-size: 1rem 5rem;
            mask-size: 1rem 5rem;
}

/* フッターの目盛り：上の罫線から目盛りが下に伸びる形でくっつける */
.footer-area {
    position: relative;
    /* 目盛りと同じトーンの罫線。目盛りはこの線から下に伸びます */
    border-top: 1px solid rgba(26, 26, 26, .28);
}
/* フッターの目盛り線は 2026-08-31 に削除（上の罫線のみ残す） */
@media screen and (max-width: 767px) {
    body::after { width: .8rem; -webkit-mask-size: .8rem 4rem; mask-size: .8rem 4rem; }
}

/* セクション背景は白基調（透明）に統一 */
.contents-area,
.sec01, .sec02, .sec03, .sec03-2, .sec03-3, .sec04, .sec05, .sec06, .sec07 {
    background: transparent;
}

/* ---------------------------------------------------------
   方眼グリッド：メインビジュアル〜簡易3選（sec01）を「1枚の図面」として連続表示
   ・グリッドは .contents-area に1回だけ描画するので、
     MVとsec01でマス目の位置がぴったり揃います。
   ・sec02以降は各セクションに背景色を敷いて方眼を隠しています。
   ・TOPページ限定にするため :has(.main-visual) で絞っています。
   --------------------------------------------------------- */
.contents-area:has(.main-visual) {
    background-color: var(--c-base);
    background-image:
        linear-gradient(to right,  var(--mv-mesh) 0 1px, transparent 1px),
        linear-gradient(to bottom, var(--mv-mesh) 0 1px, transparent 1px);
    background-size: 2rem 2rem;
    /* 2026-09-02 ヘッダー（高さ7.2rem・position:fixed）の下端にマス目の境界を合わせる */
    background-position: 0 7.2rem;
}
/* sec02以降は方眼を見せない（白または各セクションの背景色で伏せる） */
.sec02, .sec04, .sec06 { background-color: var(--c-base); }
@media screen and (max-width: 767px) {
    .contents-area:has(.main-visual) { background-size: 2rem 2rem; }
}
/* 下層ページ末尾の簡易3選には、sec01 単体で方眼を敷く */
.contents-area:not(:has(.main-visual)) .sec01 {
    background-color: var(--c-base);
    background-image:
        linear-gradient(to right,  var(--mv-mesh) 0 1px, transparent 1px),
        linear-gradient(to bottom, var(--mv-mesh) 0 1px, transparent 1px);
    background-size: 3rem 3rem;
}
/* :has() 非対応ブラウザ向けフォールバック（マス目の位置は揃いませんが方眼は出ます） */
@supports not selector(:has(*)) {
    .main-visual,
    .sec01 {
        background-color: var(--c-base);
        background-image:
            linear-gradient(to right,  var(--mv-mesh) 0 1px, transparent 1px),
            linear-gradient(to bottom, var(--mv-mesh) 0 1px, transparent 1px);
        background-size: 3rem 3rem;
    }
}
/* セクションの境界は横1本の細線で */
.sec02, .sec03, .sec03-2, .sec03-3, .sec04, .sec05, .sec06, .sec07 {
    border-top: 1px solid var(--c-line);
}

/* 余白を大きめに（参考サイトのゆとりに合わせる） */
.sec07 { padding-right: 0; padding-left: 0; }
.sec07-l-center {
    max-width: 110rem;
    margin-right: auto;
    margin-left: auto;
}
.sec02-l-center, .sec03-l-center,
.sec04-l-center, .sec05-l-center, .sec06-l-center, .sec07-l-center {
    padding-top: 14rem;
    padding-bottom: 14rem;
}
/* 2026-09-09 sec02だけ上下の余白を約3/4に */
.sec02-l-center { padding-top: 10.5rem; padding-bottom: 4.5rem; }
@media screen and (max-width: 767px) {
    .sec02-l-center, .sec03-l-center,
    .sec04-l-center, .sec05-l-center, .sec06-l-center, .sec07-l-center {
        padding-top: 7rem;
        padding-bottom: 7rem;
    }
    .sec07 { padding-right: 1rem; padding-left: 1rem; }
    .sec02-l-center { padding-top: 5.25rem; padding-bottom: .1rem; }
}


/* =========================================================
   2. 共通パーツ
   ========================================================= */
.txt_bold { color: var(--c-ink); }
/* 3社セクションの強調文字はタイプ別カラー（1:赤 / 2:ベージュ / 3:青） */
.sec03   .txt_bold { color: var(--c-type1); }
.sec03-2 .txt_bold { color: var(--c-type2); }
.sec03-3 .txt_bold { color: var(--c-type3); }
.marker { background: linear-gradient(transparent 78%, #DCEAEC 78%); }
ul:not([class]) li::before {
    width: 1rem; height: 1rem; top: 1.1rem;
    border-radius: 0;
    background-color: var(--c-main);
}
.caption,
.onb-casebox-01-caption,
.onb-com-box01-l-imgcap,
.onb-com-box01-r-imgcap {
    color: var(--c-cap);
    /* 引用元は改行せず1行に。はみ出す分は横スクロール */
    word-break: break-all;
    overflow-x: auto;
    overflow-y: hidden;
    white-space: nowrap;
}
/* スクロールバーは細く目立たなく */
.caption::-webkit-scrollbar { height: 3px; }
/* 引用元URL以外の長い注記は折り返す（既定の .caption は nowrap のため）2026-09-01 */
.caption a { color: inherit; text-decoration: underline; text-underline-offset: .2em; }
.caption a:hover { opacity: .7; }
.caption--wrap {
    white-space: normal;
    overflow-x: visible;
    word-break: normal;
    overflow-wrap: anywhere;
}
.caption::-webkit-scrollbar-thumb { background: var(--c-line); }
/* 外部リンク（公式HPなど）は黒に統一
   ※引用元表記（.caption）内のURLはリンクにしていません */
td a,
p a[href^="http"],
li a[href^="http"] {
    color: var(--c-accent);
    text-decoration: underline;
    text-underline-offset: .2em;
}
td a:hover,
p a[href^="http"]:hover,
li a[href^="http"]:hover { text-decoration: none; }
.low-center-img img { border-color: var(--c-line); }
.low-center-img-catch,
.low-left-img-catch,
.low-right-img-catch { color: var(--c-ink); }

/* 英字装飾（太め・字間広め） */
.en-label {
    display: block;
    margin-bottom: 1.6rem;
    color: var(--c-main);
    font-size: 1.3rem;
    font-weight: 800;
    letter-spacing: .22em;
    line-height: 1;
    text-transform: uppercase;
}


/* =========================================================
   3. ヘッダー／ハンバーガーナビ
   ========================================================= */
/* サイト名（【PR】〜）がメインビジュアルに隠れないように前面へ */
.header-area-upper {
    z-index: 30;
    position: absolute;
    background: rgba(255, 255, 255, .86);
    padding: .6rem 1.2rem;
}
.header-title { position: relative; z-index: 1; }
.header-title::before { background-color: var(--c-accent); }
.gnavi-btn { background: var(--c-accent); }
/* 横線は6本。上下2本を長く、間の4本を短く右揃えにして緩急をつける
   ※ inc/header_home.php / header_lower.php の span を6つに増やしてください */
.gnavi-btn span:nth-of-type(1) { top: 1.15rem; }
.gnavi-btn span:nth-of-type(2) { top: 1.65rem; }
.gnavi-btn span:nth-of-type(3) { top: 2.15rem; }
.gnavi-btn span:nth-of-type(4) { top: 2.65rem; }
.gnavi-btn span:nth-of-type(5) { top: 3.15rem; }
.gnavi-btn span:nth-of-type(6) { top: 3.65rem; }
.gnavi-btn span:nth-of-type(n+2):nth-of-type(-n+5) {
    left: auto;
    right: 1.2rem;
    width: calc(var(--s4) * .5);
}
.gnavi-btn span { height: .15rem; }
/* ×に変形：上下の2本を交差させ、間の4本は消す */
.gnavi-btn.is-active span:nth-of-type(1) { transform: translateY(1.25rem) rotate(-45deg); }
.gnavi-btn.is-active span:nth-of-type(6) { transform: translateY(-1.25rem) rotate(45deg); }
.gnavi-btn.is-active span:nth-of-type(n+2):nth-of-type(-n+5) { opacity: 0; }
/* 2026-09-09（3回目）内部リンクボタン（.btn-internal）と合わせて赤・角丸に */
.gnavi-btn-close { background: var(--c-red); border-radius: 100rem; }
.gnavi-area { background: var(--c-base); border-left: 1px solid var(--c-line); }
.gnavi-list { border-bottom-color: var(--c-line); }
.gnavi-list__link { border-top-color: var(--c-line); color: var(--c-ink); }
.gnavi-list__sub { background: var(--c-sub); }
/* 2026-09-09（3回目）記事などの右向きアローだけ小さく。
   テーマは 1.4rem 四角＋background-size:100% auto ですが、右向きSVGは縦長
   （327.8×512）なので高さが 2.2rem 相当まで伸びて、カテゴリの下向きアロー
   （512×327.8＝高さ0.9rem相当）より大きく見えていました。
   高さ基準（auto 1rem）に変えて、下向きアローと同じ見え方に揃えます。 */
.gnavi-list__link:not(.gnavi-list__link--toggle)::after {
    background-size: auto 1rem;
}
.gnavi-title { color: var(--c-ink); }


/* ---------------------------------------------------------
   PC用ヘッダーナビ（SPは非表示。SPは従来どおりハンバーガーのみ）
   参考：三和産業 https://www.sanwa-kenma.com/
   ・画面上部に固定の白いバー（下に1px罫線）
   ・左：ロゴ＋サイト名／右：カテゴリ4つ＋CTAボタン＋ハンバーガー
   ・カテゴリはホバー（＋キーボードフォーカス）で下層ページのパネルが開きます
     → JSは不要。:hover / :focus-within だけで動きます
   --------------------------------------------------------- */
.pc-gnav,
.header-logo { display: none; }

@media screen and (min-width: 768px) {
    .header-area {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        z-index: 100;
        display: flex;
        align-items: center;
        height: 7.2rem;
        padding: 0 5.6rem 0 var(--s2);
        background: var(--c-base);
        border-bottom: 1px solid var(--c-line);
    }

    /* ---- 左：ロゴ ---- 2026-09-03 ナビの項目が増えたため非表示。
       ▼戻す場合は display を block にしてください（他の指定はそのまま使えます） */
    .header-logo {
        display: none;
        order: -1;
        flex: none;
        height: 5rem;
        margin-right: var(--s2);
    }
    .header-logo a,
    .header-logo span { display: block; height: 100%; }
    .header-logo img { width: auto; height: 100%; display: block; }

    /* ---- 左：サイト名（2行） ---- */
    .header-area-upper {
        position: static;
        flex: 0 1 auto;
        min-width: 0;
        padding: 0;
        background: none;
        text-align: left;
    }
    .header-title {
        display: block;
        /* 「PR」バッジ（::before / left:-2.4rem）の分だけ内側に寄せる */
        margin-left: 2.8rem;
        max-width: 22em;
        font-size: 1.2rem;
        font-weight: 700;
        line-height: 1.45;
    }
    #low-header .header-title,
    #low-header .header-title a { color: var(--c-ink); }

    /* ---- 右：ナビ ---- */
    .pc-gnav {
        display: flex;
        align-items: stretch;
        margin-left: auto;
        height: 100%;
        flex: none;
    }
    .pc-gnav__list {
        display: flex;
        align-items: stretch;
        gap: var(--s3);
        margin: 0;
        padding: 0;
        list-style: none;
    }
    .pc-gnav__item {
        display: flex;
        margin: 0;
        padding: 0;
        /* パネルを画面幅いっぱいに出すため、基準は .header-area 側 */
        position: static;
    }
    .pc-gnav__item::before { display: none; }
    .pc-gnav__link {
        display: flex;
        align-items: center;
        gap: .8rem;
        position: relative;
        color: var(--c-ink);
        font-size: 1.4rem;
        font-weight: 700;
        letter-spacing: .02em;
        text-decoration: none;
        white-space: nowrap;
    }
    /* 下向きの矢印（子ページがある印） */
    .pc-gnav__item--has-child > .pc-gnav__link::before {
        content: "";
        width: .7rem;
        height: .7rem;
        margin-top: -.4rem;
        border-right: 1px solid currentColor;
        border-bottom: 1px solid currentColor;
        transform: rotate(45deg);
        transition: transform .25s;
        order: 1;
    }
    /* ホバーで細い下線（製図の線に合わせて1px） */
    .pc-gnav__link::after {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        bottom: 1.8rem;
        height: 1px;
        background: var(--c-accent);
        transform: scaleX(0);
        transform-origin: left center;
        transition: transform .25s;
    }
    .pc-gnav__item:hover > .pc-gnav__link::after,
    .pc-gnav__item:focus-within > .pc-gnav__link::after { transform: scaleX(1); }
    .pc-gnav__item:hover > .pc-gnav__link::before,
    .pc-gnav__item:focus-within > .pc-gnav__link::before { transform: rotate(225deg); margin-top: .3rem; }

    /* ---- ドロップダウン（下層ページ一覧） ---- */
    .pc-gnav__panel {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        z-index: 99;
        background: var(--c-base);
        border-bottom: 1px solid var(--c-line);
        box-shadow: 0 1.2rem 2.4rem rgba(26, 26, 26, .07);
        opacity: 0;
        visibility: hidden;
        transform: translateY(-.6rem);
        transition: opacity .25s, visibility .25s, transform .25s;
    }
    .pc-gnav__item:hover > .pc-gnav__panel,
    .pc-gnav__item:focus-within > .pc-gnav__panel {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }
    .pc-gnav__panel-inner {
        max-width: 110rem;
        margin: 0 auto;
        padding: var(--s4) var(--s3) var(--s5);
    }
    .pc-gnav__panel-head {
        margin: 0 0 var(--s3);
        padding-bottom: var(--s2);
        border-bottom: 1px solid var(--c-line);
        font-size: 1.3rem;
        font-weight: 800;
        letter-spacing: .04em;
    }
    .pc-gnav__panel-head a {
        display: inline-flex;
        align-items: center;
        gap: .8rem;
        color: var(--c-main-d);
        text-decoration: none;
    }
    .pc-gnav__panel-head a::after {
        content: "";
        width: .7rem;
        height: .7rem;
        border-top: 1px solid currentColor;
        border-right: 1px solid currentColor;
        transform: rotate(45deg);
    }
    .pc-gnav__panel-head a:hover { color: var(--c-accent); }

    .pc-gnav__sub {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: 1.2rem var(--s4);
        margin: 0;
        padding: 0;
        list-style: none;
    }
    .pc-gnav__sub li { margin: 0; padding: 0; }
    .pc-gnav__sub li::before { display: none; }
    .pc-gnav__sub a {
        display: block;
        position: relative;
        padding-left: 1.4rem;
        color: var(--c-ink);
        font-size: 1.3rem;
        line-height: 1.6;
        text-decoration: none;
    }
    .pc-gnav__sub a::before {
        content: "";
        position: absolute;
        left: 0;
        top: .82em;
        width: .8rem;
        height: 1px;
        background: var(--c-main);
        transition: width .2s, background-color .2s;
    }
    .pc-gnav__sub a:hover { color: var(--c-accent); }
    .pc-gnav__sub a:hover::before { width: 1.2rem; background: var(--c-accent); }

    /* ---- CTAボタン ---- */
    .pc-gnav__cv {
        display: flex;
        align-items: center;
        gap: 1rem;
        margin-left: var(--s3);
        padding: 0 var(--s3);
        background: var(--c-red);
        color: var(--c-base);
        font-size: 1.3rem;
        font-weight: 800;
        letter-spacing: .02em;
        line-height: 1.4;
        text-align: center;
        text-decoration: none;
        white-space: nowrap;
        transition: opacity .25s;
    }
    .pc-gnav__cv::after {
        content: "";
        flex: none;
        width: .7rem;
        height: .7rem;
        border-right: 1px solid currentColor;
        border-bottom: 1px solid currentColor;
        transform: rotate(45deg);
    }
    .pc-gnav__cv:hover { opacity: .8; }

    /* ハンバーガーはバーの右端に収める（スクロール前から常時表示） */
    .gnavi-ctrl { opacity: 1; visibility: visible; }
    .gnavi-btn { top: 0; height: 7.2rem; }
    .gnavi-btn span:nth-of-type(1) { top: 2.55rem; }
    .gnavi-btn span:nth-of-type(2) { top: 3.05rem; }
    .gnavi-btn span:nth-of-type(3) { top: 3.55rem; }
    .gnavi-btn span:nth-of-type(4) { top: 4.05rem; }
    .gnavi-btn span:nth-of-type(5) { top: 4.55rem; }
    .gnavi-btn span:nth-of-type(6) { top: 5.05rem; }
    .gnavi-btn.is-active span:nth-of-type(1) { transform: translateY(1.25rem) rotate(-45deg); }
    .gnavi-btn.is-active span:nth-of-type(6) { transform: translateY(-1.25rem) rotate(45deg); }

    /* 固定ヘッダーの分だけコンテンツを下げる */
    .contents-area { padding-top: 7.2rem; }
}

/* 画面が狭いPCではナビを詰める */
@media screen and (min-width: 768px) and (max-width: 1439px) {
    .pc-gnav__list { gap: var(--s2); }
    .pc-gnav__link { font-size: 1.25rem; }
    .pc-gnav__cv { font-size: 1.2rem; margin-left: var(--s2); padding: 0 var(--s2); }
    .header-logo { height: 4.2rem; }
    .header-title { font-size: 1.05rem; max-width: 22em; }
    .pc-gnav__sub { grid-template-columns: repeat(3, 1fr); }
}


/* =========================================================
   4. メインビジュアル
   構成：白地＋細かい方眼グリッド／左からの2色の帯（ベージュ＋青グレー）／
         右に円形トリミングの写真／円の上に横書きキャッチ
   ※ inc/main_visual.php を差し替えて使用（READMEにマークアップ記載）

   ▼色・形状はご提供のデザイン案から実測
     ベージュ #D4CDB1（ポイントカラー #A99C65 の淡色）
     青グレー #BFC6C9（メインカラー #808D93 の淡色）
     方眼     #EEEEEE ／ 6rem 角
     円       中心 66% / 50%、直径 = MV高さの約120%
   ========================================================= */
:root {
    --mv-beige: #D4CDB1;
    --mv-blue:  #BFC6C9;
    --mv-mesh:  #EEEEEE;
}

.main-visual {
    display: block;
    position: relative;
    min-height: min(80rem, 90vh);
    padding: 0;
    /* 方眼は .contents-area 側で描画（sec01 と連続させるため） */
    /* ▼ custom.css が前案件の背景画像（img/za-nac-00000913.png）を敷いているため、
         background-color だけでなく background ごと打ち消す必要があります。
         ローカルのモックでは画像パスが解決されず気付けません（2026-08-31 修正） */
    background: transparent none;
    overflow: hidden;
}

.main-visual__stage {
    position: absolute;
    inset: 0;
    z-index: 0;
}

/* --- 左からの2色の帯（幾何学シェイプ） --- */
.main-visual__shapes { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.main-visual__shape { position: absolute; inset: 0; display: block; }
.main-visual__shape--beige {
    background: var(--mv-beige);
    /* 2026-09-03 傾斜を強めに（左端 11% → 16%）。数値を大きくするほど急になります */
    clip-path: polygon(0 16%, 46% 0, 46% 49.7%, 0 49.7%);
}
.main-visual__shape--blue {
    background: var(--mv-blue);
    clip-path: polygon(0 50.2%, 46% 50.2%, 46% 100%, 0 84%);
}

/* --- 円形トリミングの写真 --- */
.main-visual__circle {
    position: absolute;
    left: 60%;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
    /* 直径を1つの値で決めるので、画面幅が狭くても必ず真円になります */
    --mv-circle: min(96rem, 108vh, 66vw);
    width: var(--mv-circle);
    height: var(--mv-circle);
    max-width: none;
    border-radius: 50%;
    overflow: hidden;
}
.main-visual__circle img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
/* 写真を暗くしてキャッチの視認性を確保（画像加工は不要） */
.main-visual__circle::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(62, 36, 28, .33);
    pointer-events: none;
}

/* --- 円の上のキャッチ --- */
/* キャッチの上に置くサイトロゴ
   ▼キャッチの黒帯を「円の上下中央」に合わせるため、ロゴは
     .main-visual__inner の外側（上）に絶対配置しています。
     こうすると inner の高さ＝h2の高さになり、
     inner の中心（＝円の中心）＝h2の2行目＝黒帯の中心 になります。 */
.main-visual__logo {
    position: absolute;
    left: 50%;
    right: auto;
    top: auto;              /* テーマ既定の top:0 を打ち消す */
    bottom: 100%;
    transform: translateX(-50%);
    display: block;
    width: auto;
    max-width: 46%;
    margin: 0 0 0rem;
    padding: 0;
    background: transparent;
    border: 0;
}
.main-visual__logo img { width: auto; height: 7rem; max-width: 100%; display: block; margin-left: auto; margin-right: auto; background: transparent; }
@media screen and (max-width: 767px) {
    .main-visual__logo {
        position: static;
        transform: none;
        width: auto;
        margin: 0 auto 0rem;
        padding: 0;
    }
    .main-visual__logo img { height: 5.4rem; }
}

.main-visual__inner {
    position: absolute;
    left: 60%;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;
    width: 58%;
    max-width: 74rem;
    padding: 0 2rem;
    text-align: center;
}
.main-visual__heading-lg {
    writing-mode: horizontal-tb;
    -webkit-text-stroke: 0;
    margin: 0;
    font-size: clamp(2.9rem, 3.6vw, 6.6rem);
    font-weight: 900;
    font-style: normal;
    line-height: 1.35;
    letter-spacing: .06em;
    color: var(--c-base);
    text-shadow: 0 .1rem .8rem rgba(26, 26, 26, .18);
}
.main-visual__heading-lg .highlight {
    display: inline-block;
    /* 2026-09-09（4回目）帯の中を広げるのではなく、帯の外側（「その」「を」との間）に
       余白をとる形に。padding は元の .3em に戻し、左右に margin を付けています。
       ▼アキの量はこの margin の左右値（.18em）で調整できます */
    margin: .3rem .18em;
    padding: .1em .3em;
    background: var(--c-accent);
    color: var(--c-base);
    font-size: 1.12em;
    text-shadow: none;
    -webkit-text-stroke: 0;
}
/* リード文（円の下寄りに配置） */
.main-visual__text {
    position: absolute;
    z-index: 3;
    left: 60%;
    /* 2026-09-09 リード文が実文言（約150字＝5行）に戻り、77%だと下端が円の外に
       出てしまうため 72% に。円は下にいくほど幅が狭くなるので、上に寄せるほど収まります。
       ▼文字量を増やすときは、この値を小さくするか幅を見直してください */
    top: 72%;
    transform: translateX(-50%);
    width: 46%;
    max-width: 56rem;
    margin: 0;
    padding: 0;
    background: none;
    border: none;
    color: var(--c-base);
    font-size: clamp(1.14rem, .8vw, 1.5rem);
    font-weight: 700;
    line-height: 2;
    letter-spacing: .02em;
    text-align: center;
    text-shadow: 0 .1rem .8rem rgba(26, 26, 26, .25);
}
.main-visual__text .txt_bold { color: var(--c-base); }
.main-visual__en { display: none; }

/*------------------------------------------------------------
    SP settings
*/
@media screen and (max-width: 767px) {
    .main-visual {
        min-height: 0;
        background-size: 4rem 4rem;
        padding-bottom: 4rem;
    }
    .main-visual__stage {
        position: relative;
        inset: auto;
        /* 2026-09-03（2回目）円を大きくしたぶん、ステージも高く */
        height: 104vw;
    }
    .main-visual__shapes { inset: 0; }
    /* 2026-09-09 SPもPCと同じ「左から」に戻しました。
       ただしSPは円が画面中央（直径88vw）にあり、PCと同じ「左46%まで」だと帯が
       ほぼ円の裏に隠れてしまうため、帯だけ画面幅いっぱいまで伸ばしています。
       傾きの付き方（左端が下がって右へ上がる／下段は左端が上がる）はPCと同じです。
       ▼「上から」に戻す場合は次の2行のコメントを外してください
       .main-visual__shape--beige { clip-path: polygon(13% 0, 50% 0, 50% 66%, 0 66%); }
       .main-visual__shape--blue  { clip-path: polygon(50% 0, 87% 0, 100% 66%, 50% 66%); } */
    /* 2026-09-09 右半分は出さず、円の写真の中央（＝画面の50%）で止めます */
    .main-visual__shape--beige { clip-path: polygon(0 16%, 50% 0, 50% 49.7%, 0 49.7%); }
    .main-visual__shape--blue  { clip-path: polygon(0 50.2%, 50% 50.2%, 50% 100%, 0 84%); }
    .main-visual__circle {
        left: 50%;
        top: 50%;
        /* 2026-09-02 width:auto だと画像側の比率で縦長の楕円になっていたので、
           PCと同じく直径を1つの値で決めて正円にします（ステージ高さ92vwの約86%） */
        --mv-circle: min(88vw, 96%);
        width: var(--mv-circle);
        height: var(--mv-circle);
        max-width: none;
        top: 52%;
    }
    .main-visual__inner {
        left: 50%;
        width: 86%;
        padding: 0;
    }
    .main-visual__heading-lg {
        font-size: 8vw;
        line-height: 1.5;
        /* SPは写真の上に重なる面積が広いので影を強めに */
        text-shadow: 0 .1rem 1rem rgba(26, 26, 26, .35);
    }
    /* SPはリード文を円の下に出して読みやすく */
    .main-visual__text {
        position: static;
        transform: none;
        width: auto;
        max-width: none;
        margin: 2.4rem 1.6rem 0;
        color: var(--c-ink);
        text-shadow: none;
        font-size: 1.3rem;
        line-height: 1.9;
        text-align: left;
    }
    .main-visual__text .txt_bold { color: var(--c-ink); }
    .header-area-upper { background: var(--c-base); }
}
.mainvisual-low {
    background-color: var(--c-base);
    border-bottom: 1px solid var(--c-line);
}


/* =========================================================
   5. 見出し
   ========================================================= */
.section-title04 {
    color: var(--c-ink);
    font-weight: 900;
    letter-spacing: .04em;
    line-height: 2.1;              /* ガイド線どうしの間隔を確保 */
}
/* ガイド線を使う見出しでは従来の短い下線は非表示 */
.section-title04::after { display: none; }
.sec01 .section-title04 { color: var(--c-ink); margin-bottom: 4rem; }

/* ---------------------------------------------------------
   見出しの製図ガイド線（.ttl-line）
   1行ごとに「上下の細線＋左右の縦線」を引く。
   inline + box-decoration-break:clone なので、
   改行しても行ごとに文字幅ぴったりの線が付く。
   --------------------------------------------------------- */
.ttl-line {
    display: inline;
    -webkit-box-decoration-break: clone;
            box-decoration-break: clone;
    padding: .40em .55em;                     /* 文字と上下線のアキ＋縦線の伸び代 */
    border-left: 1px solid var(--c-guide);
    border-right: 1px solid var(--c-guide);
    /* 上下の線は縦線より内側（＝縦線が上下に少しはみ出す）に描画 */
    background-image:
        linear-gradient(var(--c-guide) 0 0),
        linear-gradient(var(--c-guide) 0 0);
    background-repeat: no-repeat;
    background-size: 100% 1px, 100% 1px;
    background-position: 0 .17em, 0 calc(100% - .17em);
    background-origin: border-box;
    background-clip: border-box;
}
.ttl-line a { color: inherit; }
/* 英字ラベル直下に来るのでラベル側の余白を少し詰める */
.section-title04 .en-label { margin-bottom: 2.2rem; }

/* 下層ページの大見出しにも同じガイド線 */
#low-page h1:not([class]) { line-height: 1.6; }
#low-page h1:not([class])::after { display: none; }

@media screen and (max-width: 767px) {
    .section-title04 { line-height: 2.0; }
    .ttl-line { padding: .34em .45em; }
}

/* 中見出し：ベタ塗り → 白地＋上下の細線＋左のカラーバー */
.section-title05 {
    background: var(--c-base);
    color: var(--c-ink);
    padding: var(--s3) var(--s6);
    border-top: 1px solid var(--c-line);
    border-bottom: 1px solid var(--c-accent);
    font-size: 2.6rem;
    text-align: left;
}
.section-title05::before {
    content: "";
    width: 3px;
    height: 2.4rem;
    top: 50%;
    left: 2rem;
    border-radius: 0;
    transform: translateY(-50%);
    background-color: var(--c-main);
}
.section-title05::after { display: none; }

.section-title06-frame::after { background-color: var(--c-accent); }

.title-catch {
    color: var(--c-ink);
    font-weight: 900;
    letter-spacing: .02em;
}
.title-catch span { color: var(--c-main-d); font-weight: 400; }
.sec03 .title-catch span { color: #fff; font-weight: bold; background:var(--c-type1);}
.sec03.sec03-2 .title-catch span { color: #fff; font-weight: bold; background:var(--c-type2);}
.sec03.sec03-3 .title-catch span { color: #fff; font-weight: bold; background:var(--c-type3);}

.title-catch2 { background: var(--c-accent); color: var(--c-base); }


/* =========================================================
   6-0. 簡易3選（sec01）を「図面シート」に見立てる
   ・薄い方眼グリッド（メインビジュアルと同じ 6rem 角・#EEEEEE）
   ・製図の枠線（二重枠＋四隅のコーナーマーク）
   ・SHEET / SCALE の注記
   ・カードごとの大きなタイプ番号 01 / 02 / 03（アウトライン文字）
   ▼サイトで一番目立たせたいセクションのため、ここだけ装飾を強めています
   ========================================================= */
.sec01 {
    position: relative;
    padding-top: 10rem;
    padding-bottom: 10rem;
    /* 方眼はメインビジュアルと連続させるため .contents-area 側で描画 */
    background-color: transparent;
    overflow: hidden;
}
/* TOPページ（MVあり）のみ sec01 の上余白を詰めて、MVとファーストビューを繋げる */
.contents-area:has(.main-visual) .sec01 { padding-top: 0; }

/* 図面の枠（外枠） */
.sec01-l-center {
    position: relative;
    max-width: 122rem;
    padding: 8rem 5rem 9rem;
    border: 1px solid var(--c-line);
    background: rgba(255, 255, 255, .78);
}
/* 内枠（細） */
.sec01-l-center::before {
    content: "";
    position: absolute;
    inset: 1.2rem;
    border: 1px solid var(--c-line-l);
    pointer-events: none;
}
/* 四隅のコーナーマーク */
.sec01-l-center::after {
    content: "";
    position: absolute;
    inset: -1px;
    pointer-events: none;
    background:
        linear-gradient(var(--c-accent) 0 0) left  0 top    0 / 2.6rem 2px no-repeat,
        linear-gradient(var(--c-accent) 0 0) left  0 top    0 / 2px 2.6rem no-repeat,
        linear-gradient(var(--c-accent) 0 0) right 0 top    0 / 2.6rem 2px no-repeat,
        linear-gradient(var(--c-accent) 0 0) right 0 top    0 / 2px 2.6rem no-repeat,
        linear-gradient(var(--c-accent) 0 0) left  0 bottom 0 / 2.6rem 2px no-repeat,
        linear-gradient(var(--c-accent) 0 0) left  0 bottom 0 / 2px 2.6rem no-repeat,
        linear-gradient(var(--c-accent) 0 0) right 0 bottom 0 / 2.6rem 2px no-repeat,
        linear-gradient(var(--c-accent) 0 0) right 0 bottom 0 / 2px 2.6rem no-repeat;
}
/* 図面注記（SHEET / SCALE など） */
.sheet-note {
    position: absolute;
    z-index: 2;
    padding: 0 1rem;
    background: var(--c-base);
    color: var(--c-main);
    font-size: 1.1rem;
    font-weight: 800;
    letter-spacing: .18em;
    line-height: 1;
}
/* 外枠ではなく内枠（inset .8rem）の線に重ねる。
   sec01 の padding-top が 0 になり、外枠に重ねると上2つが見切れるため */
.sheet-note--tl { top: calc(.8rem - .55em); left: 4rem; }
.sheet-note--tr { top: calc(.8rem - .55em); right: 4rem; }
.sheet-note--bl { bottom: calc(.8rem - .55em); left: 4rem; }
.sheet-note--br { bottom: calc(.8rem - .55em); right: 4rem; }

@media screen and (max-width: 767px) {
    .sec01 { padding-top: 5rem; padding-bottom: 5rem; }
    .sec01-l-center { padding: 5rem 1.6rem 6rem; }
    .sec01-l-center::before { inset: .8rem; }
    .sheet-note { font-size: 1rem; }
    .sheet-note--tl, .sheet-note--bl { left: 2rem; }
    .sheet-note--tr, .sheet-note--br { right: 2rem; }
}


/* =========================================================
   6. 簡易3選（sec01）
   ▼ヒアリング／指示書：タイプごとに帯の色を変えて強みの違いを明確化
   ========================================================= */
/* ※--minimum も併せて更新しないと auto-fit が3列に収まらない */
.sec01 .l-grid-three {
    --minimum: calc((100% - var(--s4) * 2) / 3);
    grid-gap: var(--s4);
}
/* 2026-09-09 SPは1列に積むので、カード間の3.2remは広すぎた。1.6remに詰める */
@media screen and (max-width: 767px) {
    .sec01 .l-grid-three { grid-gap: var(--s2); }
}
.column-small {
    background: var(--c-base);
    border: 1px solid var(--c-line);
    padding: var(--s3);
}
.sec01 .column-small { padding-top: 0; }
/* --- タイプ帯（pptxレイアウト：キャプチャ → 帯 → 社名 → 坪単価 → 説明） --- */
.type-band {
    /* 文言の長さで1行／2行が変わるため、高さを揃えて3枚のカードを合わせます */
    display: flex;
    align-items: center;
    /* 2026-09-02 中央配置 → 左揃え */
    justify-content: flex-start;
    min-height: 7.6rem;
    margin: 0 0 var(--s2);
    padding: 1rem var(--s2);
    background: var(--c-main);
    color: var(--c-base);
    font-size: 2.4rem;
    font-weight: 900;
    letter-spacing: .01em;
    line-height: 1.3;
    text-align: left;
}
.type-band--1 { background: var(--c-type1); }
.type-band--2 { background: var(--c-type2); }
.type-band--3 { background: var(--c-type3); }

/* --- 帯を2段組みに（大＝重視ポイント／小＝「〜にこだわるなら」）2026-09-01 ワイヤー反映 --- */
.type-band { flex-direction: row; align-items: center; justify-content: flex-start; gap: var(--s2); min-height: 9.6rem; }
.type-band__icon {
    flex: none;
    width: 4.8rem;
    height: 4.8rem;
    border-radius: 50%;
    background-color: var(--c-base);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: 2.6rem 2.6rem;
}
.type-band--1 .type-band__icon { background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23C15639%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4.5%2019.5l4-1L20%207l-3-3L5.5%2015.5z%22/%3E%3Cpath%20d%3D%22M15.5%205.5l3%203%22/%3E%3Cpath%20d%3D%22M3.5%2021.5h17%22/%3E%3C/svg%3E"); }
.type-band--2 .type-band__icon { background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23A99C65%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%202.8l7.2%202.8v5.9c0%204.6-3.1%207.7-7.2%209.2-4.1-1.5-7.2-4.6-7.2-9.2V5.6z%22/%3E%3Cpath%20d%3D%22M8.6%2011.9l2.6%202.6%204.4-4.6%22/%3E%3C/svg%3E"); }
.type-band--3 .type-band__icon { background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23198898%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%228.6%22/%3E%3Cpath%20d%3D%22M8.6%208.2l3.4%204%203.4-4%22/%3E%3Cpath%20d%3D%22M8.9%2013.2h6.2%22/%3E%3Cpath%20d%3D%22M8.9%2015.6h6.2%22/%3E%3Cpath%20d%3D%22M12%2012.2v5.4%22/%3E%3C/svg%3E"); }
.type-band__body { display: flex; flex-direction: column; gap: .4rem; }
.type-band__main { display: block; font-size: clamp(1.7rem, 1.5vw, 2.2rem); font-weight: 900; line-height: 1.2; }
.type-band__sub  { display: block; font-size: 1.5rem; font-weight: 700; line-height: 1.5; }

/* --- 会社タイプのラベル（設計事務所／ハウスメーカー／工務店） --- */
.type-label {
    display: block;
    width: -moz-fit-content;
    width: fit-content;
    margin: 0 auto var(--s1);
    padding: .4rem 1.6rem;
    background: var(--c-main);
    color: var(--c-base);
    font-size: 1.3rem;
    font-weight: 700;
    letter-spacing: .06em;
    line-height: 1.4;
}
.sec01 .l-grid-three > .column-small:nth-child(1) .type-label { background: var(--c-type1); }
.sec01 .l-grid-three > .column-small:nth-child(2) .type-label { background: var(--c-type2); }
.sec01 .l-grid-three > .column-small:nth-child(3) .type-label { background: var(--c-type3); }

/* --- 3選のリード文 --- */
.sec01-lead {
    max-width: 78rem;
    margin: -1rem auto var(--s4);
    font-size: 1.5rem;
    line-height: 1.9;
    text-align: center;
}
@media screen and (max-width: 767px) {
    .type-band { min-height: 8.4rem; gap: var(--s1); }
    .type-band__icon { width: 3.8rem; height: 3.8rem; background-size: 2.1rem 2.1rem; }
    .type-band__main { font-size: 2rem; }
    .type-band__sub { font-size: 1.35rem; }
    .sec01-lead { text-align: left; margin-bottom: var(--s3); }
}

/* =========================================================
   会社詳細（sec03系）2026-09-01 ワイヤー反映で追加したパーツ
   ========================================================= */
/* 帯：小見出し（重視ポイント）＋大見出し（〜にこだわるなら）の2段 */
.onb-icon-title-sub {
    display: block;
    margin-bottom: .6rem;
    font-size: 1.8rem;
    font-weight: 700;
    letter-spacing: .04em;
}
.onb-icon-title-main {
    display: block;
    font-size: 3.2rem;
    font-weight: 900;
    line-height: 1.35;
}

/* 会社名の直下に置く大きめのイメージ写真 */
.company-hero { max-width: 68rem; margin: 0 auto var(--s4); }
/* 2026-09-09 引用画像なのでトリミングしません（元は 21/9 に切り抜いていました）。
   2026-09-15 3社とも公式HPキャプチャ（gh-hero.jpg / th-hero.jpg / zs-hero.jpg）に統一し、
   いずれも約21:9で書き出しているため、3社の高さがそろいます。 */
.company-hero img { width: 100%; height: auto; display: block; }

/* 参考坪単価（1行のテーブル） */
.spec-table {
    /* 2026-09-02 幅を内容ぶんにして中央寄せ（左に寄って見えるため） */
    width: -moz-fit-content;
    width: fit-content;
    max-width: 100%;
    margin: 0 auto var(--s5);
}
/* ラベル幅は文字数ぶんだけにして、値とくっつけて見せる */
.spec-table th { width: auto; white-space: nowrap; }
.spec-table td { font-size: 1.8rem; text-align: left; }

/* おすすめの理由：見出し＋罫線＋本文（枠は付けない） */
.reason-block { margin-bottom: var(--s5); }
.reason-block__title {
    margin: 0 0 var(--s2);
    padding-bottom: var(--s2);
    border-bottom: 1px solid var(--c-line);
    font-size: 2rem;
    font-weight: 900;
    line-height: 1.6;
}

/* 施工事例：画像（左）＋テキスト（右） */
.case-box { display: flex; flex-wrap: wrap; gap: var(--s3); align-items: flex-start; }
.case-box__side { width: calc((100% - var(--s3)) * .5); }
/* 2026-09-09 引用画像はCSSでも切り抜かない（レギュレーション）。
   aspect-ratio / object-fit を外し、元画像の比率でそのまま出します。
   case-c*.jpg は3社ともほぼ3:2なので、並べても高さはそろいます。 */
.case-box__side img { width: 100%; height: auto; display: block; }
.case-box__main { width: calc((100% - var(--s3)) * .5); }
.case-box__title {
    margin: 0 0 var(--s2);
    padding-bottom: var(--s2);
    border-bottom: 1px solid var(--c-line);
    font-size: 2rem;
    font-weight: 900;
    line-height: 1.6;
}

/* 口コミ：3カラムのカード */
.voice-list { margin-bottom: var(--s4); align-items: stretch; }
.voice-card { padding: var(--s3); background: var(--c-sub); }
.voice-card__title {
    margin: 0 0 var(--s2);
    padding-bottom: var(--s2);
    border-bottom: 1px solid var(--c-ink);
    font-size: 1.7rem;
    font-weight: 900;
    line-height: 1.5;
}
.voice-card p { font-size: 1.5rem; line-height: 1.9; }

/* モデルハウス・スタジオ */
.studio-block { margin-bottom: var(--s4); }
.studio-block__name {
    margin: 0 0 var(--s2);
    font-size: 2rem;
    font-weight: 900;
    line-height: 1.5;
}
.studio-block__body { display: flex; flex-wrap: wrap; gap: var(--s3); align-items: flex-start; }
.studio-block__map {
    width: calc((100% - var(--s3)) * .45);
    aspect-ratio: 4 / 3;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--c-sub);
    border: 1px solid var(--c-line);
    color: var(--c-cap);
    font-size: 1.4rem;
    font-weight: 700;
    letter-spacing: .1em;
}
.studio-block__info { width: calc((100% - var(--s3)) * .55); }
.studio-block__info .thb-table { width: 100%; }

@media screen and (max-width: 767px) {
    .onb-icon-title-sub { font-size: 1.4rem; }
    .onb-icon-title-main { font-size: 2.2rem; }
    .company-hero { margin-bottom: var(--s3); }
    .spec-table th { width: auto; }
    .spec-table td { font-size: 1.6rem; }
    .reason-block__title,
    .case-box__title { font-size: 1.8rem; }
    .case-box__side, .case-box__main { width: 100%; }
    .case-box__main { margin-top: var(--s2); }
    .studio-block__map, .studio-block__info { width: 100%; }
}

/* --- MVのキャッチ上に置く小見出し（ロゴの下） --- */
.main-visual__eyebrow {
    margin: 1rem 0 0;
    color: var(--c-base);
    font-size: 1.6rem;
    font-weight: 700;
    letter-spacing: .08em;
    line-height: 1.4;
    text-align: center;
    text-shadow: 0 .1rem .6rem rgba(0, 0, 0, .35);
}
@media screen and (max-width: 767px) {
    .main-visual__eyebrow { margin-top: .8rem; font-size: 1.4rem; }
}

.sec01 .l-grid-three > .column-small:nth-child(1) .title-catch { border-bottom: 2px solid var(--c-type1); }
.sec01 .l-grid-three > .column-small:nth-child(2) .title-catch { border-bottom: 2px solid var(--c-type2); }
.sec01 .l-grid-three > .column-small:nth-child(3) .title-catch { border-bottom: 2px solid var(--c-type3); }
.sec01 .column-small { padding: var(--s3); }
/* キャプチャスライダーは社名の直下 */
.sec01 .slider-container--small { width: auto; margin: 0 0 0.5rem; }
/* 2026-09-09 引用画像なのでトリミングしません（元は 16/9 に切り抜いていました） */
.sec01 .slider .swiper-slide img { width: 100%; height: auto; display: block; }

/* 社名は左寄せ・大きめ（指示書の3選フォーマットに合わせる） */
.sec01 .title-catch {
    padding: 0 0 1.4rem;
    margin-top: 0;
    font-size: 2.1rem;
    text-align: center;
    line-height: 1.4;
}
.sec01 .title-catch span {
    display: block;
    margin-top: .6rem;
    font-size: 1.3rem;
    font-weight: 400;
    color: var(--c-main-d);
}

/* 参考坪単価 */
.spec-line {
    display: flex;
    align-items: baseline;
    gap: var(--s1);
    /* 2026-09-02 ラベルと値を必ず1行に収める */
    flex-wrap: nowrap;
    margin: 0 0 var(--s2);
    padding: var(--s1) 0 var(--s2);
    border-bottom: 1px solid var(--c-line);
}
.spec-line__label {
    flex: none;
    padding: .3rem .8rem;
    background: var(--c-sub);
    color: var(--c-main-d);
    font-size: 1.2rem;
    font-weight: 700;
    letter-spacing: .04em;
    line-height: 1.4;
}
.spec-line__value {
    margin: 0;
    font-size: 1.7rem;
    white-space: nowrap;
    /* あえて目立たせないため通常のウェイト */
    font-weight: 400;
    line-height: 1.4;
    color: var(--c-ink);
}
.spec-line__value span { font-size: 1.2rem; font-weight: 400; }
/* 説明文のみ。.type-band などクラス付きの p には効かせない */
.sec01 .column-small > p:not([class]) { font-size: 1.5rem; line-height: 1.9; }
.sec01 .l-grid-three > .column-small:nth-child(1) .thb-listbox-title { background-color: var(--c-type1); }
.sec01 .l-grid-three > .column-small:nth-child(2) .thb-listbox-title { background-color: var(--c-type2); }
.sec01 .l-grid-three > .column-small:nth-child(3) .thb-listbox-title { background-color: var(--c-type3); }
.sec01 .l-grid-three > .column-small:nth-child(1) .thb-listbox-subtitle { color: var(--c-type1); }
.sec01 .l-grid-three > .column-small:nth-child(2) .thb-listbox-subtitle { color: var(--c-type2); }
.sec01 .l-grid-three > .column-small:nth-child(3) .thb-listbox-subtitle { color: var(--c-type3); }
.sec01 .l-grid-three > .column-small:nth-child(1) .m-title01 { border-left-color: var(--c-type1); }
.sec01 .l-grid-three > .column-small:nth-child(2) .m-title01 { border-left-color: var(--c-type2); }
.sec01 .l-grid-three > .column-small:nth-child(3) .m-title01 { border-left-color: var(--c-type3); }

.thb-listbox-area {
    background-color: var(--c-base);
    border: 1px solid var(--c-line);
}
.thb-listbox-title {
    background-color: var(--c-main);
    color: var(--c-base);
    font-weight: 800;
    letter-spacing: .06em;
}
.thb-listbox-subtitle { color: var(--c-ink); font-weight: 900; }
.m-title01 {
    background: var(--c-sub);
    color: var(--c-ink);
    border-left: 3px solid var(--c-main);
    text-align: left;
    font-weight: 700;
}


/* =========================================================
   7. 会社詳細（sec03 / sec03-2 / sec03-3）
   ▼タイプ別カラーを踏襲
   ========================================================= */
/* --- セクションごとの背景色＋四角モチーフ ---------------------
   参考：福岡ECO動物海洋専門学校 トリマー専攻
         https://www.eco.ac.jp/trimmer/
   各社ブロックをタイプカラーの淡色で塗り分け、
   「塗りの四角」＋「線の四角」を余白に置いて設計図的な抜けをつくります。
   色はタイプカラーから color-mix で自動生成（非対応ブラウザは手前の値）。
   ------------------------------------------------------------ */
.sec03 {
    position: relative;
    overflow: hidden;
    --sec-c: var(--c-type1);
    /* フォールバック → color-mix */
    --sec-bg: #FBF4F2;
    --sec-bg: color-mix(in srgb, var(--sec-c) 6%, #FFFFFF);
    --sec-fill: rgba(193, 86, 57, .10);
    --sec-fill: color-mix(in srgb, var(--sec-c) 13%, transparent);
    --sec-line: rgba(193, 86, 57, .32);
    --sec-line: color-mix(in srgb, var(--sec-c) 34%, transparent);
    background-color: var(--sec-bg);
}
.sec03.sec03-2 {
    --sec-c: var(--c-type2);
    --sec-bg: #FAF8F0;
    --sec-bg: color-mix(in srgb, var(--sec-c) 8%, #FFFFFF);
    --sec-fill: rgba(169, 156, 101, .13);
    --sec-fill: color-mix(in srgb, var(--sec-c) 15%, transparent);
    --sec-line: rgba(169, 156, 101, .34);
    --sec-line: color-mix(in srgb, var(--sec-c) 36%, transparent);
}
.sec03.sec03-3 {
    --sec-c: var(--c-type3);
    --sec-bg: #F0F6F7;
    --sec-bg: color-mix(in srgb, var(--sec-c) 6%, #FFFFFF);
    --sec-fill: rgba(25, 136, 152, .10);
    --sec-fill: color-mix(in srgb, var(--sec-c) 12%, transparent);
    --sec-line: rgba(25, 136, 152, .30);
    --sec-line: color-mix(in srgb, var(--sec-c) 32%, transparent);
}

/* 塗りの四角（右上・画面外へはみ出す） */
.sec03::before {
    content: "";
    position: absolute;
    z-index: 0;
    pointer-events: none;
    top: -10rem;
    right: -12rem;
    width: 46rem;
    height: 46rem;
    background: var(--sec-fill);
}
/* 線の四角（左下） */
.sec03::after {
    content: "";
    position: absolute;
    z-index: 0;
    pointer-events: none;
    left: -14rem;
    bottom: 8rem;
    width: 36rem;
    height: 36rem;
    border: 1px solid var(--sec-line);
}
/* 偶数ブロックは左右を反転して単調さを避ける */
.sec03.sec03-2::before { right: auto; left: -12rem; }
.sec03.sec03-2::after  { left: auto;  right: -14rem; }

.sec03-l-center { position: relative; z-index: 1; }
/* 中盤にも四角モチーフ（コンテンツの背面に敷く） */
.sec03-l-center::before,
.sec03-l-center::after {
    content: "";
    position: absolute;
    z-index: -1;
    pointer-events: none;
}
.sec03-l-center::before {
}
.sec03-l-center::after {
    top: 63%;
    left: -20rem;
    width: 42rem;
    height: 42rem;
    background: var(--sec-fill);
}
.sec03.sec03-2 .sec03-l-center::before { right: auto; left: -18rem; }
.sec03.sec03-2 .sec03-l-center::after  { left: auto;  right: -20rem; }
@media screen and (max-width: 767px) {
    .sec03-l-center::before { right: -12rem; width: 20rem; height: 20rem; }
    .sec03-l-center::after  { left: -13rem;  width: 24rem; height: 24rem; }
    .sec03.sec03-2 .sec03-l-center::before { left: -12rem; }
    .sec03.sec03-2 .sec03-l-center::after  { right: -13rem; }
}
/* 会社名（本社）直下のHPキャプチャスライダー */
.sec03 .title-catch { margin-bottom: var(--s4); }
.sec03 .company-capture {
    width: 66%;
    max-width: 68rem;
    margin: 0 auto var(--s5);
}
/* 2026-09-09 引用画像なのでトリミングしません（元は 16/9 に切り抜いていました） */
.sec03 .company-capture .slider .swiper-slide img { width: 100%; height: auto; display: block; }

@media screen and (max-width: 767px) {
    .sec03::before { top: -5rem; right: -8rem; width: 24rem; height: 24rem; }
    .sec03::after  { left: -9rem; bottom: 4rem; width: 20rem; height: 20rem; }
    .sec03.sec03-2::before { left: -8rem; }
    .sec03.sec03-2::after  { right: -9rem; }
}

.column-medium { background: transparent; }
.onb-icon-title-frame { background-color: var(--c-main); }
.onb-icon-title { color: var(--c-base); font-weight: 900; }
.onb-icon-title-catch {
    background: var(--c-base);
    color: var(--c-ink);
    font-weight: 900;
}
/* 帯の左側の円アイコンは非表示 */
.onb-icon-title-icon,
.onb-icon-title-image { display: none; }

.sec03  .onb-icon-title-frame { background-color: var(--c-type1); }
.sec03-2 .onb-icon-title-frame { background-color: var(--c-type2); }
.sec03-3 .onb-icon-title-frame { background-color: var(--c-type3); }
.sec03  .onb-icon-title-catch { color: var(--c-type1); }
.sec03-2 .onb-icon-title-catch { color: var(--c-type2); }
.sec03-3 .onb-icon-title-catch { color: var(--c-type3); }
.sec03  .section-title05::before { background-color: var(--c-type1); }
.sec03-2 .section-title05::before { background-color: var(--c-type2); }
.sec03-3 .section-title05::before { background-color: var(--c-type3); }
.sec03  .onb-iconbox02-frame { border-left-color: var(--c-type1); }
.sec03-2 .onb-iconbox02-frame { border-left-color: var(--c-type2); }
.sec03-3 .onb-iconbox02-frame { border-left-color: var(--c-type3); }
.sec03  .onb-casebox-01-sub { background-color: var(--c-type1); }
.sec03-2 .onb-casebox-01-sub { background-color: var(--c-type2); }
.sec03-3 .onb-casebox-01-sub { background-color: var(--c-type3); }

.onb-iconbox02-frame {
    background-color: var(--c-base);
    border: 1px solid var(--c-line);
    border-left: 3px solid var(--c-main);
}
.onb-iconbox02-catch {
    color: var(--c-ink);
    font-weight: 900;
    border-bottom-color: var(--c-line);
    text-align: left;
}

.onb-casebox-01-frame {
    background-color: var(--c-base);
    border: 1px solid var(--c-line);
}
.onb-casebox-01-sub { background-color: var(--c-main); color: var(--c-base); }
.onb-casebox-01-table th { background-color: var(--c-sub); }

.onb-conclusion-box-frame {
    background: var(--c-base);
    border: 1px solid var(--c-line);
    padding: var(--s4);
}
.onb-conclusion-box-ttl__text {
    color: var(--c-ink);
    font-weight: 900;
    border-bottom-color: var(--c-line);
    text-align: left;
}
.onb-conclusion-box-ttl__icon { background-color: var(--c-accent); }
.onb-conclusion-box-ttl__icon::before { border-color: var(--c-accent); }

.onb-iconbox03-frame {
    background-color: var(--c-base);
    border: 1px solid var(--c-line);
}
.onb-iconbox03-catch {
    border-bottom-color: var(--c-line);
    color: var(--c-ink);
    font-weight: 800;
}

.conclusion-box-frame {
    background: var(--c-base);
    border: 1px solid var(--c-line);
}
.conclusion-box-ttl__icon { background-color: var(--c-accent); border-radius: 0; }
.conclusion-box-ttl__text { color: var(--c-ink); }


/* =========================================================
   8. 下層ナビゲーション（一覧・選び方・エリア）
   ========================================================= */
/* h3は上下中央に（1行でも上寄りに見えないように） */
.arrow-title,
.twb-arrow-title {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--c-base);
    color: var(--c-ink);
    /* h3を囲う細い線は無し。左のカラーバーのみ残す */
    border: none;
    border-left: 3px solid var(--c-main);
    font-weight: 800;
}
.arrow-title a,
.twb-arrow-title a {
    flex: 1 1 100%;
    color: var(--c-ink);
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2216%22%20height%3D%2212%22%20viewBox%3D%220%200%2016%2012%22%3E%3Cpath%20d%3D%22M0%206H15M10%201L15%206L10%2011%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.4%22/%3E%3C/svg%3E");
}
/* エリア別・選び方も少しずつ色を変えて「とっつきやすさ」を出す */
.sec04 .l-grid-three > .column-small:nth-child(3n+1) .arrow-title { border-left-color: var(--c-type1); }
.sec04 .l-grid-three > .column-small:nth-child(3n+2) .arrow-title { border-left-color: var(--c-type2); }
.sec04 .l-grid-three > .column-small:nth-child(3n+3) .arrow-title { border-left-color: var(--c-type3); }
/* h3は「愛知の」を控えめにして、そのあとの語を強調 */
.ttl-area {
    font-size: .74em;
    font-weight: 700;
    color: var(--c-ink);
    letter-spacing: 0;
}
.sec05 .twb-arrow-title { font-size: 2.5rem; }
.sec05 .l-grid-two > .column-medium:nth-child(2n+1) .twb-arrow-title { border-left-color: var(--c-type1); }
.sec05 .l-grid-two > .column-medium:nth-child(2n+2) .twb-arrow-title { border-left-color: var(--c-type3); }
/* 下層共通パーツ「簡易3選」もタイプ色を踏襲 */
.conclusion-box-frame .l-grid-three > .column-small:nth-child(1) .arrow-title { border-left-color: var(--c-type1); }
.conclusion-box-frame .l-grid-three > .column-small:nth-child(2) .arrow-title { border-left-color: var(--c-type2); }
.conclusion-box-frame .l-grid-three > .column-small:nth-child(3) .arrow-title { border-left-color: var(--c-type3); }

.sec04 .column-small { background: var(--c-base); border: 1px solid var(--c-line); }
.sec05 .column-medium {
    background: transparent;
    border: none;
    padding: var(--s3);
}
.sec05 .twb-box-full {
    width: calc(100% + var(--s6));
    margin-left: calc(var(--s3) * -1);
}
.onb-com-box01-l-frame,
.onb-com-box01-r-frame {
    background-color: transparent;
    border: none;
}
.onb-com-box01-l-frame:nth-of-type(4n+1) { border-left: 3px solid var(--c-type1); }
.onb-com-box01-l-frame:nth-of-type(4n+2) { border-left: 3px solid var(--c-type2); }
.onb-com-box01-l-frame:nth-of-type(4n+3) { border-left: 3px solid var(--c-type3); }
.onb-com-box01-l-frame:nth-of-type(4n+4) { border-left: 3px solid var(--c-main); }
.onb-com-box01-l-catch,
.onb-com-box01-r-catch {
    background: transparent;
    color: var(--c-ink);
    font-weight: 900;
    padding: 0;
}
.onb-com-box01-r-frame:nth-of-type(4n+1) { border-left: 3px solid var(--c-type1); }
.onb-com-box01-r-frame:nth-of-type(4n+2) { border-left: 3px solid var(--c-type2); }
.onb-com-box01-r-frame:nth-of-type(4n+3) { border-left: 3px solid var(--c-type3); }
.onb-com-box01-r-frame:nth-of-type(4n+4) { border-left: 3px solid var(--c-main); }
.onb-com-box01-r-catch span,
.onb-com-box01-l-catch span {
    background-color: transparent;
    color: var(--c-ink);
    border-bottom: 2px solid var(--c-main);
    padding: 0 .2rem;
}
.onb-com-box01-l-catch a,
.onb-com-box01-r-catch a { color: var(--c-ink); }

/* 一覧内のテーブルは罫線を「下線だけ」に。th は少し太く、td は細く */
.thb-table {
    border: none;
    border-color: var(--c-line);
}
.thb-table th,
.thb-table td {
    border: none;
    background-color: transparent;
}
.thb-table th {
    border-bottom: 2px solid var(--c-main);
    font-weight: 700;
}
.thb-table td { border-bottom: 1px solid var(--c-line); }
table th { background-color: var(--c-sub); }
table td { background-color: var(--c-base); }

.acc-more-btn {
    background: var(--c-base);
    border: 1px solid var(--c-accent);
    border-radius: 0;
    color: var(--c-ink);
    letter-spacing: .08em;
}
.acc-more-btn::before,
.acc-more-btn::after { background: var(--c-accent); }


/* =========================================================
   9. ボタン（角丸を外して直線的に）
   ========================================================= */
.btn-ancher a,
.btn-ancher::after { border-radius: 0; }

/* リンクボタン（外部／内部）は角丸。四角い要素が多いので、ボタンで差別化 */
.btn-web a,
.btn-web::after,
.btn-internal a,
.btn-internal::after { border-radius: 100rem; }

.btn-web a {
    /* 外部リンクボタンはサイト全体で黒に統一 */
    background-color: var(--c-accent);
    color: var(--c-base);
    letter-spacing: .04em;
}
.btn-web::after { background-color: var(--c-line); }

.btn-ancher a {
    background-color: var(--c-base);
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2216%22%20height%3D%2210%22%20viewBox%3D%220%200%2016%2010%22%3E%3Cpath%20d%3D%22M1%201L8%208L15%201%22%20fill%3D%22none%22%20stroke%3D%22%231A1A1A%22%20stroke-width%3D%221.4%22/%3E%3C/svg%3E");
    color: var(--c-ink);
    border: 1px solid var(--c-accent);
}
.btn-ancher::after { background-color: var(--c-line); }

.btn-internal a { background-color: var(--c-red); }
.btn-internal::after { background-color: var(--c-line); }
.btn-link a { color: var(--c-ink); }
.btn-link a {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2216%22%20height%3D%2212%22%20viewBox%3D%220%200%2016%2012%22%3E%3Cpath%20d%3D%22M0%206H15M10%201L15%206L10%2011%22%20fill%3D%22none%22%20stroke%3D%22%23808D93%22%20stroke-width%3D%221.4%22/%3E%3C/svg%3E");
}
.section-title04 a,
.onb-com-box01-l-catch a,
.onb-com-box01-r-catch a {
    display: inline-block;
    padding-right: 1.7em; /* アローとテキストの間隔。em指定で見出しサイズに追従させる */
    background-repeat: no-repeat;
    background-position: center right;
    background-size: auto .5em;
    text-decoration: none;
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2220%22%20height%3D%2212%22%20viewBox%3D%220%200%2020%2012%22%3E%3Cpath%20d%3D%22M0%206H19M14%201L19%206L14%2011%22%20fill%3D%22none%22%20stroke%3D%22%231A1A1A%22%20stroke-width%3D%221.4%22/%3E%3C/svg%3E");
}


/* =========================================================
   10. 追尾バナー（pc-fix-banner01）は使用しません
   ▼PCはヘッダー右上のCTAボタン（.pc-gnav__cv）が同じ役割を担うため削除しました。
     テーマ側は footer.php の inc/footer_banner.php の include を外してください。
     万一 HTML が残っていても表示されないよう、念のため非表示にしています。
   ========================================================= */
.pc-fix-banner01 { display: none !important; }


/* =========================================================
   11. SP：電話CVボタン
   ========================================================= */
@media screen and (max-width: 767px) {
    .btn-tel a {
        /* 2026-09-02 角丸・少し赤みがかった黒・電話アイコンは右側 */
        background-color: var(--c-tel);
        background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23FFFFFF%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6.2%203.4h3.1l1.6%203.9-2%201.2a12.4%2012.4%200%200%200%205.6%205.6l1.2-2%203.9%201.6v3.1a1.8%201.8%200%200%201-2%201.8A16.8%2016.8%200%200%201%204.4%205.4a1.8%201.8%200%200%201%201.8-2z%22/%3E%3C/svg%3E");
        background-repeat: no-repeat;
        background-position: center right 2.2rem;
        background-size: auto 1.5em;
        color: var(--c-base);
        border-radius: 100rem;
        padding: 1.8rem 5.6rem 1.8rem 3.2rem;
    }
    .btn-tel::after { background-color: var(--c-line); border-radius: 100rem; }
}


/* =========================================================
   12. 下層ページ
   ========================================================= */
#low-page h1:not([class]) { color: var(--c-ink); font-weight: 900; }
#low-page h1:not([class])::after { width: 4rem; height: 1px; background-color: var(--c-accent); }
#low-page h2:not([class]) {
    background-color: var(--c-base);
    color: var(--c-ink);
    border-top: 1px solid var(--c-line);
    border-bottom: 1px solid var(--c-accent);
    padding-left: var(--s3);
}
#low-page h2:not([class])::before {
    border: none;
    width: 3px;
    height: 60%;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    background: var(--c-blue);
}
#low-page h2:not([class]) a { color: var(--c-ink); }
#low-page h3:not([class]) { border-bottom-color: var(--c-line); color: var(--c-ink); }
#low-page h3:not([class])::before { background: var(--c-main); width: 3px; }
#low-page h4:not([class]) { border-bottom-color: var(--c-line); color: var(--c-ink); }
#low-page h5:not([class])::first-letter { background-color: var(--c-accent); }
#low-page p span { font-weight: 700; background: linear-gradient(transparent 78%, #DCEAEC 78%); }
#low-page table th { background-color: var(--c-sub); }


/* =========================================================
   13. フッター
   ========================================================= */
.footer-area {
    background: var(--c-base);
    border-top: 1px solid var(--c-line);
}
/* ロゴ（正方形のマーク）：各所で高さ基準にそろえる */
.footer-area-logo { width: auto; margin: 0 auto var(--s5); }
.footer-area-logo img { width: auto; height: 9rem; max-width: 100%; margin: 0 auto; display: block; }
.mainvisual-low-logo { max-width: none; width: auto; background: none; }
.mainvisual-low-logo img { width: auto; height: 8rem; max-width: 100%; display: block; }
.gnavi-title img { width: auto; height: 8rem; max-width: 100%; margin: 0 auto; display: block; }
@media screen and (max-width: 767px) {
    .footer-area-logo img { height: 7rem; }
    .mainvisual-low-logo img { height: 6.4rem; }
    .gnavi-title img { height: 6.4rem; }
}

.footer-menu-title { border-bottom-color: var(--c-accent); }
.footer-menu-title__link,
.footer-menu__link,
.footer-menu-sub__link { color: var(--c-ink); }
.footer-disclaimer { background: var(--c-sub); }
/* コピーライト帯は黒 → 薄い灰色に */
.footer-bottom {
    background: var(--c-sub);
    border-top: 1px solid var(--c-line);
    color: var(--c-ink);
}
.footer-copyright,
.footer-sitemap,
.footer-copyright__link,
.footer-sitemap__link { color: var(--c-ink); }
/* ページトップボタン：画像を使わずCSSで描画 */
.page-top {
    width: 5.6rem;
    height: auto;
    border-radius: 0;
    overflow: visible;
    bottom: 4rem !important;
}
.page-top__link img { display: none; }
.page-top__link {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    height: 5.6rem;
    background: var(--c-base);
    border: 1px solid var(--c-accent);
    color: var(--c-accent);
    font-size: 1rem;
    font-weight: 800;
    letter-spacing: .12em;
    line-height: 1;
    transition: background-color .25s, color .25s;
}
.page-top__link::before {
    content: "";
    width: 1.1rem;
    height: 1.1rem;
    margin-top: .4rem;
    border-top: 1px solid currentColor;
    border-right: 1px solid currentColor;
    transform: rotate(-45deg);
}
.page-top__link::after { content: "TOP"; }
.page-top__link:hover {
    background: var(--c-accent);
    color: var(--c-base);
    opacity: 1;
}
@media screen and (max-width: 767px) {
    .page-top { width: 4.4rem; bottom: var(--s3) !important; }
    .page-top__link { height: 4.4rem; font-size: .9rem; }
}


/* =========================================================
   14. 目次 index02（グラデーション式・h2のみ表示）
   ※SD-1標準には index01 のみのため新規追加
   ▼テーマ側の変更は不要です。
   toc.php / common.js が出力する onb-index01-* にも同じスタイルが当たるよう、
   セレクタを 01 / 02 の両方に効かせています（クラス名はどちらでもOK）。
   ========================================================= */
/* custom.css 側の番号装飾（index01 の h2/h3 マーカー）を無効化 */
.onb-index01-chapter-h-two::before,
.onb-index01-chapter-h-three::before {
    counter-increment: none;
    content: "";
}
.onb-index01-chapter-h-three { display: none; }

.onb-index02-frame,
.onb-index01-frame {
    width: 80%;
    margin: 0 auto 4rem;
}
.onb-index02-wrap,
.onb-index01-wrap {
    margin: 0 auto;
    padding: var(--s2) var(--s3) var(--s3);
    position: relative;
    border: 1px solid var(--c-line);
    background: linear-gradient(180deg, var(--c-sub) 0%, #FBFBFB 55%, var(--c-base) 100%);
}
.onb-index02-title,
.onb-index01-title {
    padding: var(--s2);
    color: var(--c-ink);
    font-size: 2.2rem;
    font-weight: 900;
    line-height: 1;
    text-align: center;
    position: relative;
    cursor: pointer;
}
.onb-index02-title span,
.onb-index01-title span {
    padding-bottom: var(--s1);
    border-bottom: 1px solid var(--c-accent);
    display: inline-block;
    letter-spacing: .1em;
}
.onb-index02-title::before,
.onb-index01-title::before {
    content: "";
    width: 1.6rem;
    height: 1px;
    background: var(--c-accent);
    position: absolute;
    top: 50%;
    right: 2rem;
    transform: translate(0, -50%);
}
.onb-index02-title::after,
.onb-index01-title::after {
    content: "";
    width: 1px;
    height: 1.6rem;
    background: var(--c-accent);
    position: absolute;
    top: 50%;
    right: 2.75rem;
    transform: translate(0, -50%);
    transition: transform .3s;
}
.onb-index02-title.is-open::after,
.onb-index01-title.is-open::after { transform: translate(0, -50%) rotate(270deg); }
.onb-index02-chapter,
.onb-index01-chapter { padding: var(--s2) var(--s2) var(--s2) var(--s4); font-weight: 700; }
.onb-index02-chapter-h,
.onb-index01-chapter-h {
    margin: 0 0 0 var(--s3);
    font-size: 100%;
    line-height: 1.7;
    position: relative;
    counter-increment: icon-counter;
}
.onb-index02-chapter-h::before,
.onb-index01-chapter-h::before {
    content: counter(icon-counter, decimal-leading-zero);
    color: var(--c-main);
    font-weight: 800;
    letter-spacing: .06em;
    position: absolute;
    top: .1em;
    left: -2.2em;
}
.onb-index02-chapter-h a,
.onb-index01-chapter-h a { display: block; text-decoration: none; color: var(--c-ink); }
.onb-index02-chapter-h a:hover,
.onb-index01-chapter-h a:hover { opacity: .6; }
.onb-index02-chapter-h-three,
.onb-index01-chapter-h-three { display: none; }

@media screen and (max-width: 767px) {
.onb-index02-frame,
.onb-index01-frame { width: 100%; }
.onb-index02-wrap,
.onb-index01-wrap { padding: var(--s1); }
.onb-index02-chapter,
.onb-index01-chapter { padding: var(--s2); }
.onb-index02-title,
.onb-index01-title { font-size: 2rem; }
}




/* =========================================================
   15. 画像スライダー（希望ギミック：画像の左右にアローアイコン）
   マークアップはテーマ標準（.slider-container > .swiper.slider）のまま。
   common.js の Swiper 初期化がそのまま効きます。
   ========================================================= */
.slider-container { position: relative; }
.slider .swiper-slide img { width: 100%; display: block; }

/* アロー：白地＋1px黒罫の正方形＋細いシェブロン */
.slider .swiper-button-next,
.slider .swiper-button-prev {
    width: 4.4rem;
    height: 4.4rem;
    margin-top: 0;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(255, 255, 255, .94);
    border: 1px solid var(--c-accent);
    border-radius: 0;
    transition: background .25s, opacity .25s;
}
.slider .swiper-button-prev { left: 0; right: auto; }
.slider .swiper-button-next { right: 0; left: auto; }
.slider .swiper-button-next:hover,
.slider .swiper-button-prev:hover { background: var(--c-accent); opacity: 1; }

.slider .swiper-button-next::after,
.slider .swiper-button-prev::after,
.slider .swiper-rtl .swiper-button-next::after,
.slider .swiper-rtl .swiper-button-prev::after {
    content: "";
    width: 1.1rem;
    height: 1.1rem;
    background: none;
    border-top: 1px solid var(--c-accent);
    border-right: 1px solid var(--c-accent);
    transition: border-color .25s;
}
.slider .swiper-button-next::after,
.slider .swiper-rtl .swiper-button-prev::after {
    transform: rotate(45deg);
    margin-left: -.4rem;
}
.slider .swiper-button-prev::after,
.slider .swiper-rtl .swiper-button-next::after {
    transform: rotate(-135deg);
    margin-right: -.4rem;
}
.slider .swiper-button-next:hover::after,
.slider .swiper-button-prev:hover::after { border-color: var(--c-base); }

/* 簡易3選（3カラム内）は一回り小さく */
.slider-container--small .swiper-button-next,
.slider-container--small .swiper-button-prev {
    width: 3.2rem;
    height: 3.2rem;
    top: 42%;
}
.slider-container--small .swiper-button-next::after,
.slider-container--small .swiper-button-prev::after {
    width: .9rem;
    height: .9rem;
}
/* 引用元は1行＋横スクロール（共通指定に統一） */

/* 下層ページ：画像スライダーは本文と同じ幅に収める */
.low-center-img-box .slider-container {
    max-width: 60%;
    margin: 0 auto;
}
.low-center-img-box .slider-container .low-center-img {
    max-width: 100%;
    padding-bottom: 0;
}

@media screen and (max-width: 767px) {
    .slider .swiper-button-next,
    .slider .swiper-button-prev { width: 3.4rem; height: 3.4rem; top: 44%; }
    .slider-container--small .swiper-button-next,
    .slider-container--small .swiper-button-prev { width: 3rem; height: 3rem; }
    .low-center-img-box .slider-container { max-width: 100%; }
}


/* =========================================================
   16. 愛知県の市町村ごとの注文住宅（sec07）
   ========================================================= */
.city-grid {
    --minimum: calc((100% - var(--s3) * 2) / 3);
    grid-gap: var(--s3);
}
.city-card {
    background: var(--c-base);
    border: 1px solid var(--c-line);
    transition: border-color .25s;
}
.city-card:hover { border-color: var(--c-main); }
/* 画像と見出しを横並びにして縦幅を抑える */
.city-card a {
    display: flex;
    align-items: center;
    text-decoration: none;
    color: var(--c-ink);
}
.city-card__img {
    flex: none;
    width: 13rem;
    overflow: hidden;
    background: var(--c-base);
}
.city-card__img img {
    width: 100%;
    display: block;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    transition: transform .4s ease;
}
.city-card:hover .city-card__img img { transform: scale(1.04); }
.city-card__title {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    padding: var(--s2) var(--s5) var(--s2) var(--s3);
    border-top: none;
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1.5;
    background: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2216%22%20height%3D%2212%22%20viewBox%3D%220%200%2016%2012%22%3E%3Cpath%20d%3D%22M0%206H15M10%201L15%206L10%2011%22%20fill%3D%22none%22%20stroke%3D%22%231A1A1A%22%20stroke-width%3D%221.4%22/%3E%3C/svg%3E") no-repeat right var(--s2) center / auto .8em;
}
/* 「〇〇市」だけ大きく見せる */
.city-card__name {
    display: block;
    margin-bottom: .2rem;
    font-size: 2.3rem;
    font-weight: 900;
    letter-spacing: .02em;
    line-height: 1.2;
}
.city-card__title::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 3px;
    height: 2rem;
    background: var(--c-main);
}
/* ポイントカラーを循環させて「落ち着いたカラフル」を出す */
.city-grid > .city-card:nth-child(3n+1) .city-card__title::before { background: var(--c-type1); }
.city-grid > .city-card:nth-child(3n+2) .city-card__title::before { background: var(--c-type2); }
.city-grid > .city-card:nth-child(3n+3) .city-card__title::before { background: var(--c-type3); }

@media screen and (max-width: 767px) {
    /* SPは2つ並び（テーマ既定の 1カラム指定を上書き） */
    .city-grid.l-grid-three {
        grid-template-columns: repeat(2, 1fr);
        grid-gap: var(--s2);
    }
    .city-card__img { width: 9rem; }
    .city-card__title {
        padding: var(--s1) var(--s4) var(--s1) var(--s2);
        font-size: 1.2rem;
    }
    .city-card__name { font-size: 1.7rem; }
    .city-card__title::before { height: 1.4rem; }
    .sec01 .title-catch { font-size: 2.0rem; }
    .spec-line__value { font-size: 1.5rem; }
}


/* ---------------------------------------------
   セクション背景：薄い灰色の帯（sec05 / sec07）
--------------------------------------------- */
.sec05,
.sec07 {
    background-color: var(--c-sub);
}

/* 基礎知識（sec05）にも四角モチーフ（色は白・グレー） */
.sec05 {
    position: relative;
    overflow: hidden;
}
.sec05::before,
.sec05::after,
.sec05-l-center::before,
.sec05-l-center::after {
    content: "";
    position: absolute;
    pointer-events: none;
}
/* 塗りの四角（白）：右上 */
.sec05::before {
    z-index: 0;
    top: -10rem;
    right: -12rem;
    width: 46rem;
    height: 46rem;
    background: var(--c-base);
    opacity: .7;
}
/* 線の四角（グレー）：左下 */
.sec05::after {
    z-index: 0;
    left: -14rem;
    bottom: 8rem;
    width: 36rem;
    height: 36rem;
    border: 1px solid var(--c-line);
}
.sec05-l-center { position: relative; z-index: 1; }
/* 中盤にも */
.sec05-l-center::before {
    z-index: -1;
    top: 30%;
    left: -18rem;
    width: 32rem;
    height: 32rem;
    border: 1px solid var(--c-line);
}
.sec05-l-center::after {
    z-index: -1;
    top: 62%;
    right: -20rem;
    width: 40rem;
    height: 40rem;
    background: var(--c-base);
    opacity: .7;
}
@media screen and (max-width: 767px) {
    .sec05::before { top: -5rem; right: -8rem; width: 24rem; height: 24rem; }
    .sec05::after  { left: -9rem; bottom: 4rem; width: 20rem; height: 20rem; }
    .sec05-l-center::before { left: -12rem; width: 20rem; height: 20rem; }
    .sec05-l-center::after  { right: -13rem; width: 24rem; height: 24rem; }
}


/* ---------------------------------------------
   施工事例（sec06）：イメージ画像を大きく
--------------------------------------------- */
.l-onb-com-box01-l__side,
.l-onb-com-box01-r__side { width: calc((100% - var(--s3)) * .5); }
.l-onb-com-box01-l__main,
.l-onb-com-box01-r__main { width: calc((100% - var(--s3)) * .5); }
/* 2026-09-09 r__side（右に写真がくる段）にも同じトリミングを効かせます
   （それまで l__side だけの指定で、右段だけ元画像の比率で出ていました） */
.l-onb-com-box01-l__side img,
.l-onb-com-box01-r__side img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    display: block;
}
/* 2026-09-09 テーマ側で l-frame=3rem / r-frame=var(--s4) とばらついていたので
   左右の段そろえて --s3（2.4rem）に統一します */
.onb-com-box01-l-frame,
.onb-com-box01-r-frame { padding: var(--s3); }
/* SPは写真をできるだけ大きく見せるため小さめに（▼この1行で調整できます） */
@media screen and (max-width: 767px) {
    .onb-com-box01-l-frame,
    .onb-com-box01-r-frame { padding: var(--s2); }
}
@media screen and (max-width: 767px) {
    .l-onb-com-box01-l__side { width: 100%; margin-left: 0; float: none; }
    .l-onb-com-box01-l__side img,
    .l-onb-com-box01-r__side img { aspect-ratio: 16 / 10; }
    .l-onb-com-box01-l__main { width: 100%; margin-top: var(--s2); }
}


/* =========================================================
   17. リキッドデザイン（大画面でもコンテンツを大きく見せる）
   参考：Vogaro株式会社 https://www.vogaro.co.jp/

   SD-1 は :root の font-size（既定 62.5% = 10px）を基準に、
   コンテナ幅・余白・文字サイズがすべて rem で組まれています。
   そのため **ルートの font-size を vw 連動にするだけで全体がリキッド化** します。

   ・1428px 以下：10px（＝現状と完全に同じ見え方）
   ・1428px 超  ：画面幅に比例して拡大（コンテナ 110rem も一緒に伸びる）
   ・2000px 以上：14px で頭打ち（文字が大きくなりすぎないように）

   ▼固定幅に戻す場合は、この 17 のブロックごと削除してください。
   ▼拡大の効き具合は 0.7vw の数値で調整できます（大きくすると早く広がる）。
   ▼上限を外して無限に広げたい場合は clamp の第3引数を大きくしてください。
   ========================================================= */
@media screen and (min-width: 1001px) {
    :root {
        font-size: clamp(10px, 0.7vw, 14px);
    }
}

/* --- リキッド化にあわせて px 固定だった箇所を rem に置き換え --- */
.onb-icon-title { font-size: 3.2rem; }
.onb-icon-title small { font-size: 1.6rem; }
.onb-casebox-01-sub { max-width: 35rem; }
.twb-arrow-title { min-height: 10.1rem; }
.sec04 p:not([class]) { min-height: 16rem; }
.conclusion-box-ttl__icon { font-size: 2.4rem; }
#low-page h2:not([class])::before { border-top-width: 3rem; border-right-width: 3rem; }
.relations-box__pic { flex: 0 0 15rem; }
.related-article01-more { bottom: -4rem; }
.related-article01-btn { border-radius: 10rem; }
.low-center-img img,
.low-left-img img,
.low-right-img img { max-width: 100%; }

/* メインビジュアルも画面比率で伸びるように */
.main-visual { min-height: min(78rem, 88vh); }
.main-visual__inner { max-width: 110rem; }

/* =========================================================
   18. 2026-09-02 デザイン調整
   ・sec03 の帯に、簡易3選と同じ丸アイコンを付ける
   ・口コミの見出し左に吹き出しアイコン
   ・モデルハウスのMAP枠を画像／Googleマップ埋め込みに対応
   ========================================================= */

/* --- 18-1 sec03 の帯（onb-icon-title）にアイコン --- */
.onb-icon-title {
    display: flex;
    align-items: center;
    gap: var(--s2);
}
.onb-icon-title-body { display: block; text-align: left; }
/* アイコンの見た目は .type-band__icon をそのまま流用（簡易3選と共通） */
.sec03 .onb-icon-title .type-band__icon { background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23C15639%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4.5%2019.5l4-1L20%207l-3-3L5.5%2015.5z%22/%3E%3Cpath%20d%3D%22M15.5%205.5l3%203%22/%3E%3Cpath%20d%3D%22M3.5%2021.5h17%22/%3E%3C/svg%3E"); }
.sec03-2 .onb-icon-title .type-band__icon { background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23A99C65%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%202.8l7.2%202.8v5.9c0%204.6-3.1%207.7-7.2%209.2-4.1-1.5-7.2-4.6-7.2-9.2V5.6z%22/%3E%3Cpath%20d%3D%22M8.6%2011.9l2.6%202.6%204.4-4.6%22/%3E%3C/svg%3E"); }
.sec03-3 .onb-icon-title .type-band__icon { background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23198898%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%228.6%22/%3E%3Cpath%20d%3D%22M8.6%208.2l3.4%204%203.4-4%22/%3E%3Cpath%20d%3D%22M8.9%2013.2h6.2%22/%3E%3Cpath%20d%3D%22M8.9%2015.6h6.2%22/%3E%3Cpath%20d%3D%22M12%2012.2v5.4%22/%3E%3C/svg%3E"); }

/* --- 18-2 口コミ見出しの吹き出しアイコン --- */
.voice-card__title { display: flex; align-items: flex-start; gap: 1rem; }
.voice-card__title::before {
    content: "";
    flex: none;
    width: 2.4rem;
    height: 2.4rem;
    margin-top: .2rem;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: contain;
}
.sec03 .voice-card__title::before { background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23C15639%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%226.6%22%20cy%3D%226.4%22%20r%3D%222.9%22/%3E%3Ccircle%20cx%3D%2217.4%22%20cy%3D%226.4%22%20r%3D%222.9%22/%3E%3Cpath%20d%3D%22M1.8%2020.6v-3.4c0-2.2%201.8-4%204-4h1.6c2.2%200%204%201.8%204%204v3.4%22/%3E%3Cpath%20d%3D%22M12.6%2020.6v-3.4c0-2.2%201.8-4%204-4h1.6c2.2%200%204%201.8%204%204v3.4%22/%3E%3C/svg%3E"); }
.sec03-2 .voice-card__title::before { background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23A99C65%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%226.6%22%20cy%3D%226.4%22%20r%3D%222.9%22/%3E%3Ccircle%20cx%3D%2217.4%22%20cy%3D%226.4%22%20r%3D%222.9%22/%3E%3Cpath%20d%3D%22M1.8%2020.6v-3.4c0-2.2%201.8-4%204-4h1.6c2.2%200%204%201.8%204%204v3.4%22/%3E%3Cpath%20d%3D%22M12.6%2020.6v-3.4c0-2.2%201.8-4%204-4h1.6c2.2%200%204%201.8%204%204v3.4%22/%3E%3C/svg%3E"); }
.sec03-3 .voice-card__title::before { background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23188291%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%226.6%22%20cy%3D%226.4%22%20r%3D%222.9%22/%3E%3Ccircle%20cx%3D%2217.4%22%20cy%3D%226.4%22%20r%3D%222.9%22/%3E%3Cpath%20d%3D%22M1.8%2020.6v-3.4c0-2.2%201.8-4%204-4h1.6c2.2%200%204%201.8%204%204v3.4%22/%3E%3Cpath%20d%3D%22M12.6%2020.6v-3.4c0-2.2%201.8-4%204-4h1.6c2.2%200%204%201.8%204%204v3.4%22/%3E%3C/svg%3E"); }

/* --- 18-3 モデルハウス：MAP枠に画像を入れる場合 --- */
.studio-block__map--img {
    display: block;
    aspect-ratio: auto;
    padding: 0;
    background: transparent;
    border: 0;
}
.studio-block__map--img img {
    width: 100%;
    display: block;
    border: 1px solid var(--c-line);
}
.studio-block__map--img .caption { margin-top: .6rem; }

/* --- 18-4 住所テーブル直上のGoogleマップ埋め込み --- */
.studio-block__gmap { margin: 0 0 var(--s3); }
.studio-block__gmap iframe {
    width: 100%;
    height: 34rem;
    display: block;
    border: 1px solid var(--c-line);
}
@media screen and (max-width: 767px) {
    .onb-icon-title { gap: var(--s1); }
    .studio-block__gmap iframe { height: 24rem; }
}

/* =========================================================
   19. 2026-09-02（2回目）デザイン調整
   ・タイプ色の縦線 → 横線（sec04 / sec06）
   ・3選の強調文をタイプ色に（白背景でも読める濃さに調整）
   ・市町村セクション（sec07）に sec05 と同じ四角モチーフ
   ========================================================= */

/* --- 19-1 文字色用のタイプ色 -------------------------------
   白背景の本文にそのままタイプ色を使うと、ベージュ（#A99C65）は
   コントラスト比 2.75:1 でWCAG AA（4.5:1）に届きません。
   青も 4.19:1 でわずかに不足するため、文字に使うぶんだけ
   同じ色相のまま暗くした「テキスト用」を用意しています。
   ・赤   #C15639 → そのまま（4.51:1）
   ・黄   #A99C65 → #817648（4.55:1）
   ・青   #198898 → #188291（4.53:1）
   ▼黒（既定）に戻す場合は 19-2 のブロックごと削除してください。
   --------------------------------------------------------- */
:root {
    --c-type1-t: #C15639;
    --c-type2-t: #817648;
    --c-type3-t: #188291;
}

/* --- 19-2 おすすめ3選：説明文の強調（.txt_bold）をタイプ色に --- */
.sec01 .l-grid-three > .column-small:nth-child(1) > p:not([class]) .txt_bold { color: var(--c-type1-t); }
.sec01 .l-grid-three > .column-small:nth-child(2) > p:not([class]) .txt_bold { color: var(--c-type2-t); }
.sec01 .l-grid-three > .column-small:nth-child(3) > p:not([class]) .txt_bold { color: var(--c-type3-t); }

/* --- 19-3 愛知の注文住宅会社（sec04）：縦線 → 横線 --- */
.sec04 .arrow-title {
    border-left: 0;
    border-top: 3px solid var(--c-main);
}
.sec04 .l-grid-three > .column-small:nth-child(3n+1) .arrow-title { border-top-color: var(--c-type1); }
.sec04 .l-grid-three > .column-small:nth-child(3n+2) .arrow-title { border-top-color: var(--c-type2); }
.sec04 .l-grid-three > .column-small:nth-child(3n+3) .arrow-title { border-top-color: var(--c-type3); }

/* --- 19-4 愛知の注文住宅の施工事例（sec06）：縦線 → 横線 --- */
.sec06 .onb-com-box01-l-frame,
.sec06 .onb-com-box01-r-frame {
    border-left: 0;
    border-top: 3px solid var(--c-main);
}
.sec06 .onb-com-box01-l-frame:nth-of-type(4n+1) { border-top-color: var(--c-type1); }
.sec06 .onb-com-box01-l-frame:nth-of-type(4n+2) { border-top-color: var(--c-type2); }
.sec06 .onb-com-box01-l-frame:nth-of-type(4n+3) { border-top-color: var(--c-type3); }
.sec06 .onb-com-box01-l-frame:nth-of-type(4n+4) { border-top-color: var(--c-main); }
.sec06 .onb-com-box01-r-frame:nth-of-type(4n+1) { border-top-color: var(--c-type1); }
.sec06 .onb-com-box01-r-frame:nth-of-type(4n+2) { border-top-color: var(--c-type2); }
.sec06 .onb-com-box01-r-frame:nth-of-type(4n+3) { border-top-color: var(--c-type3); }
.sec06 .onb-com-box01-r-frame:nth-of-type(4n+4) { border-top-color: var(--c-main); }

/* --- 19-5 市町村ごとの注文住宅（sec07）に四角モチーフ ---
   sec05 と同じ考え方（塗りの白い四角＋グレーの線の四角）。
   位置だけ変えて、並べたときに繰り返しに見えないようにしています。 */
.sec07 {
    position: relative;
    overflow: hidden;
}
.sec07::before,
.sec07::after,
.sec07-l-center::before,
.sec07-l-center::after {
    content: "";
    position: absolute;
    pointer-events: none;
}
/* 塗りの四角（白）：左上 */
.sec07::before {
    z-index: 0;
    top: -12rem;
    left: -14rem;
    width: 42rem;
    height: 42rem;
    background: var(--c-base);
    opacity: .7;
}
/* 線の四角（グレー）：右上 */
.sec07::after {
    z-index: 0;
    right: -12rem;
    top: 6rem;
    width: 34rem;
    height: 34rem;
    border: 1px solid var(--c-line);
}
.sec07-l-center { position: relative; z-index: 1; }
.sec07-l-center::before {
    z-index: -1;
    top: 46%;
    right: -16rem;
    width: 30rem;
    height: 30rem;
    border: 1px solid var(--c-line);
}
.sec07-l-center::after {
    z-index: -1;
    bottom: -10rem;
    left: -18rem;
    width: 38rem;
    height: 38rem;
    background: var(--c-base);
    opacity: .7;
}
@media screen and (max-width: 767px) {
    .sec07::before { top: -6rem; left: -9rem; width: 22rem; height: 22rem; }
    .sec07::after  { right: -8rem; top: 3rem; width: 18rem; height: 18rem; }
    .sec07-l-center::before { right: -11rem; width: 18rem; height: 18rem; }
    .sec07-l-center::after  { left: -12rem; width: 22rem; height: 22rem; }
}

/* =========================================================
   20. 2026-09-02（3回目）デザイン調整
   ========================================================= */

/* --- 20-1 MV：PC幅を狭めても円の写真とキャッチを縮めない ---
   円の直径は min(96rem, 108vh, 66vw) で、横幅が狭いほど 66vw が効いて小さくなっていました。
   66vw に下限（92rem）を入れて、1440px より狭くしても大きさが変わらないようにしています。
   （はみ出したぶんは .main-visual の overflow: hidden でトリミングされます）
   ▼元に戻す場合はこの @media ブロックごと削除してください。 */
/* 円の写真は SP（767px以下）に切り替わるまで縮めない。
   768〜1000px はテーマ側で :root の font-size が 1vw になり rem も縮むため、
   下限と上限には px を併記しています（1001px 以上は従来どおり rem で伸びます）。 */
@media screen and (min-width: 768px) {
    .main-visual__circle { --mv-circle: min(max(96rem, 960px), 108vh, max(66vw, 920px)); }
}
/* キャッチとリード文は SP以外では完全固定（画面幅で一切変えない）。
   rem は 768〜1000px で :root が 1vw になり縮むため、px で指定しています。
   ▼サイズを変えたいときはこの2つの px 値だけ触ってください。 */
@media screen and (min-width: 768px) {
    /* デザインカンプ（Web 1920 – 1.png）の実測に合わせています。
       カンプ：1行目「注文住宅選びは」の文字幅 596px → 80px相当、
               黒帯の中の文字は約1.25倍、リード文は行送り36px＝18px相当。
       リード文だけは本文量がカンプより多く、18pxだとMVからはみ出すため 16px にしています。 */
    .main-visual__heading-lg { font-size: 72px; }
    .main-visual__heading-lg .mv-small{ font-size: 36px; }
    /* 黒帯の中はカンプだと約1.28倍ですが、レイアウト最小幅（1100px）で
       帯が画面からはみ出すため抑えています。
       2026-09-08：キャッチが「叶えられるかどうか。」（10字）に増え、1.2倍だと
       帯が957px＝1100px幅で右に75pxはみ出したため 1.05 倍に変更（実測837px）。
       ▼キャッチの字数を変えたら、この倍率も見直してください（目安：帯は860px以下） */
    .main-visual__heading-lg .highlight { font-size: 1.05em; }
    .main-visual__text { font-size: 16px; }
    /* 文字を大きくしたぶん、入れ物も広げます（1100px幅でも黒帯とリード文が収まる幅） */
    .main-visual__inner { width: 84%; }
    /* リード文は背景の円からはみ出さない幅に（円の下のほうは幅が狭くなるため）
       2026-09-09 改行位置をご指定どおり <br> で固定したので、いちばん長い行
       （1行目36字＝約588px）が折り返さない幅にしています。
       ▼文言の行を長くするときは、この幅と top の値を見直してください */
    .main-visual__text  { width: 56%; max-width: 640px; }
}
/* ※タブレット幅の調整は不要でした。
   テーマの common.css が body { min-width: 1100px } を指定しているため、
   768〜1100px では横スクロールになるだけで、レイアウト自体は 1100px のままです。 */

/* --- 20-2 参考坪単価の注記を上付き（sup）に --- */
.spec-line__value sup,
.caption sup,
.spec-table td sup {
    font-size: .58em;
    font-weight: 400;
    line-height: 0;
    margin-left: .3em;
    color: var(--c-main-d);
    vertical-align: super;
}

/* --- 20-3 おすすめの理由の見出しにチェックボックスアイコン --- */
.reason-block__title { display: block;}
.reason-block__title::before {
    content: "";
    flex: none;
    width: 2.4rem;
    height: 2.4rem;
    margin-top: .2em;
	margin-right: 0.5rem;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: contain;
}
.sec03 .reason-block__title::before { background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23C15639%22%20stroke-width%3D%221.4%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223.2%22%20y%3D%223.2%22%20width%3D%2217.6%22%20height%3D%2217.6%22%20rx%3D%221.8%22/%3E%3Cpath%20d%3D%22M7.6%2012.3l3.1%203.1%205.7-6.5%22/%3E%3C/svg%3E"); }
.sec03-2 .reason-block__title::before { background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23A99C65%22%20stroke-width%3D%221.4%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223.2%22%20y%3D%223.2%22%20width%3D%2217.6%22%20height%3D%2217.6%22%20rx%3D%221.8%22/%3E%3Cpath%20d%3D%22M7.6%2012.3l3.1%203.1%205.7-6.5%22/%3E%3C/svg%3E"); }
.sec03-3 .reason-block__title::before { background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23198898%22%20stroke-width%3D%221.4%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223.2%22%20y%3D%223.2%22%20width%3D%2217.6%22%20height%3D%2217.6%22%20rx%3D%221.8%22/%3E%3Cpath%20d%3D%22M7.6%2012.3l3.1%203.1%205.7-6.5%22/%3E%3C/svg%3E"); }

/* --- 20-4 市町村カード（sec07）：枠線を外して上下のアキを広げる --- */
.city-card { border: 0; }
/* 枠線を外したぶん、ホバーは影で示します */
.city-card:hover { border-color: transparent; box-shadow: 0 .2rem 1.2rem rgba(26, 26, 26, .12); }
.city-card__title { padding-top: var(--s3); padding-bottom: var(--s3); }

/* =========================================================
   20-5 下層ページ
   ========================================================= */
/* 2026-09-03 ヘッダーのロゴを消したので、下層冒頭の中央ロゴは表示に戻しました */

/* 太字の強調は赤、マーカーは薄い黄色 */
#low-page .txt_bold { color: var(--c-red); }
.marker,
#low-page p span,
#low-page .marker { background: linear-gradient(transparent 78%, var(--c-marker) 78%); }

/* リストの■を黄色（サイトのタイプ色2） */
ul:not([class]) li::before { background-color: var(--c-beige); }

/* h2 と h3 の差をはっきりさせる（h3は線を無くして薄い灰色のベタ） */
#low-page h3:not([class]) {
    margin-block: 4rem 1.6rem;
    padding: var(--s2) var(--s3);
    border: none;
    background-color: var(--c-sub);
    font-size: 2.4rem;
    font-weight: 800;
}
#low-page h3:not([class])::before { display: none; }
@media screen and (max-width: 767px) {
    #low-page h3:not([class]) { border: none; font-size: 1.9rem; padding: var(--s2); }
}

/* =========================================================
   21. 2026-09-02（4回目）デザイン調整
   ========================================================= */

/* --- 21-0 キャプション内の sup は少し控えめに持ち上げる（行の上で見切れるため） --- */
.caption sup { vertical-align: .35em; }

/* --- 21-1 引用元（.caption--center）を中央寄せに ---
   これまで .caption--center は HTML にだけ書かれていて、CSS の定義がありませんでした。 */
.caption--center { text-align: center; }

/* --- 21-2 施工事例スライダー：隣のスライドが1pxだけ覗くのを止める ---
   Swiper はスライド幅をサブピクセルで計算するため、画面幅によっては
   端に次のスライドが数分の1pxだけ出ます。左右1pxをクリップして隠しています。 */
.slider-container .swiper.slider { clip-path: inset(0 1px); }

/* --- 21-3 モデルハウスの画像キャプション ---
   .studio-block__map の「MAP」プレースホルダ用の指定（太字＋字間）を引き継いで
   太く見えていたので、画像版では打ち消します。 */
.studio-block__map--img {
    font-weight: 400;
    letter-spacing: normal;
    font-size: inherit;
}

/* --- 21-4 会社一覧（sec04）：タイプ色の帯をカードの枠線と同じ幅に ---
   .thb-box-full はテーマ側で「幅+3.2rem／左-1.6rem」。
   .column-small の左右パディング（2.4rem）＋枠線1px ぶんに広げて、
   カードの上辺いっぱいに帯が乗るようにします。 */
.sec04 .thb-box-full {
    width: calc(100% + var(--s3) * 2 + 2px);
    margin-left: calc(var(--s3) * -1 - 1px);
    margin-right: calc(var(--s3) * -1 - 1px);
    /* カード自身の1px枠の上に帯を重ねて、線を1本に見せる */
    margin-top: -1px;
}

/* --- 21-5 下層ページ：h4 と h5 の見た目を入れ替え ---
   h5 の「先頭文字だけ黒地」のほうが h4 より目立っていたため、
   強い装飾を h4 に、控えめな破線を h5 に移しました。 */
#low-page h4:not([class]) {
    padding: var(--s1) var(--s1) var(--s1) 0;
    border-bottom: none;
    font-size: 2.4rem;
}
#low-page h4:not([class])::first-letter {
    background-color: var(--c-accent);
    color: var(--c-base);
    padding: 4px 8px;
    font-weight: bold;
    margin-right: .5rem;
}
#low-page h5:not([class]) {
    padding: var(--s2) var(--s2) var(--s2) 0;
    border-bottom: 1px dashed var(--c-line);
    font-size: 2.0rem;
}
#low-page h5:not([class])::first-letter {
    background-color: transparent;
    color: inherit;
    padding: 0;
    font-weight: inherit;
    margin-right: 0;
}
@media screen and (max-width: 767px) {
    #low-page h4:not([class]) { font-size: 1.8rem; }
    #low-page h5:not([class]) { font-size: 1.6rem; }
}

/* =========================================================
   22. 2026-09-02（5回目）SP中心の調整
   ========================================================= */

/* --- 22-1 スライダーの矢印が1px欠けて見えるのを解消 ---
   21-2 で .swiper に clip-path: inset(0 1px) を掛けたため、
   left:0 / right:0 に置いた矢印の枠線も1pxぶん削られていました。
   矢印を1px内側にずらして、クリップ範囲の内側に収めます。 */
.slider .swiper-button-prev { left: 1px; }
.slider .swiper-button-next { right: 1px; }

/* --- 22-2 会社詳細の中見出し（h5＝.section-title05） ---
   SPで h4（会社名 2.4rem）より大きい 2.6rem だったので、少し小さくします。 */
@media screen and (max-width: 767px) {
    .section-title05 {
        padding: var(--s2) var(--s2) var(--s2) var(--s4);
        font-size: 2.0rem;
    }
    .section-title05::before { left: 1.2rem; height: 1.8rem; }
}

/* --- 22-3 SP：おすすめ3選のカード左右の余白を詰める ---
   2026-09-09 写真をできるだけ大きく見せるため 1.6rem → 0 にしました。
   ▼余白を戻す場合はこの2行を var(--s2) などに変えてください */
@media screen and (max-width: 767px) {
    .sec01 .column-small {
        padding-right: 0;
        padding-left: 0;
    }
}

/* --- 22-4 SP：参考坪単価を1行に収める（iPhone SE 320px でも折り返さない） --- */
@media screen and (max-width: 767px) {
    .spec-table th {
        padding: var(--s1) var(--s2) var(--s1) 0;
        font-size: 1.2rem;
    }
    .spec-table td {
        padding-left: 0;
        font-size: 1.4rem;
        white-space: nowrap;
    }
}

/* --- 22-5 SP：外部リンクボタン直下の電話ボタンの間隔を詰める --- */
@media screen and (max-width: 767px) {
    .btn-web + .btn-tel { margin-top: calc(var(--s2) * -1); }
}

/* =========================================================
   23. 2026-09-03 テスト環境の確認を受けての調整
   ========================================================= */

/* --- 23-1 ヘッダー／ハンバーガー／フッターのリンクの下線を消す --- */
.header-area a,
.gnavi-area a,
.footer-area a { text-decoration: none; }
.header-area a:hover,
.gnavi-area a:hover,
.footer-area a:hover { text-decoration: underline; }

/* --- 23-2 サイト名のリンクは黒（テーマ既定は白） --- */
.header-title a,
.header-title a:visited { color: var(--c-ink); }

/* --- 23-3 SP：「PR」バッジが画面左に見切れる ---
   バッジは .header-title の ::before（left: -2.4rem）で外に出しているため、
   PCと同じぶんだけ内側に寄せます。 */
@media screen and (max-width: 767px) {
    .header-title { margin-left: 2.8rem; }
    /* 右のハンバーガーボタンにサイト名が潜り込まないように */
    .header-area-upper { padding-right: 5.6rem; }
}

/* --- 23-4 見出しのアローを ::after に置き換える ---
   これまでは a を inline-block にして背景画像でアローを出していましたが、
   その形だと a の中で改行したときに .ttl-line のガイド線が最終行にしか付かず、
   アローも2行の中央に浮いてしまいます（SPの「愛知の注文住宅の施工事例」など）。
   a を inline に戻して、アローは擬似要素で行末に1つだけ置きます。 */
.section-title04 a,
.onb-com-box01-l-catch a,
.onb-com-box01-r-catch a {
    display: inline;
    padding-right: 0;
    background-image: none;
}
.section-title04 a::after,
.onb-com-box01-l-catch a::after,
.onb-com-box01-r-catch a::after {
    content: "";
    display: inline-block;
    width: 1.15em;
    height: .5em;
    margin-left: .55em;
    vertical-align: .04em;
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2220%22%20height%3D%2212%22%20viewBox%3D%220%200%2020%2012%22%3E%3Cpath%20d%3D%22M0%206H19M14%201L19%206L14%2011%22%20fill%3D%22none%22%20stroke%3D%22%231A1A1A%22%20stroke-width%3D%221.4%22/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center right;
    background-size: contain;
}

/* --- 23-5 会社詳細の帯（onb-icon-title-frame）を h5 と同じ幅に ---
   テーマ既定の .onb-box-full は左右に 3.2rem はみ出す指定です。
   sec03系ではみ出しを止めて、他の見出しと同じ幅に揃えます。 */
.sec03 .onb-box-full {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
}

/* --- 23-6 SP：施工事例（sec06）の右並びブロックが半分の幅になる ---
   .case-box は SP で1カラムに戻していましたが、
   .l-onb-com-box01-* のほうが未対応で、画像も本文も 50% のままでした。 */
@media screen and (max-width: 767px) {
    .l-onb-com-box01-l__side,
    .l-onb-com-box01-r__side,
    .l-onb-com-box01-l__main,
    .l-onb-com-box01-r__main { width: 100%; }
    .l-onb-com-box01-l__main,
    .l-onb-com-box01-r__main { margin-top: var(--s2); }
}

/* =========================================================
   24. 2026-09-03（2回目）
   ========================================================= */

/* --- 24-1 PCナビ：ホバー時の下線を出さない ---
   23-1 でヘッダー全体にホバー下線を付けたため、
   カテゴリ名の下から伸びる横線（::after）と二重に見えていました。 */
.pc-gnav a:hover,
.pc-gnav a:focus { text-decoration: none; }

/* --- 24-2 スクロール方向でヘッダーを出し入れ ---
   2026-09-09 再開しました（下スクロールで隠す／上スクロールで出す）。
   動きの制御は js/custom-add.js、読み込みは header.php の最後（defer）です。
   ▼SPは対象外です。SPの .header-area は position:static（.header-area-upper だけ
     absolute）なので、そもそもスクロールで流れていきます。 */
@media screen and (min-width: 768px) {
    .header-area {
        transition: transform .35s cubic-bezier(.22, .61, .36, 1);
        will-change: transform;
    }
    .header-area.is-header-hidden { transform: translateY(-100%); }
    .header-area:focus-within { transform: none; }
}

/* --- 24-3 メインビジュアルのフェードイン ---
   ロゴ → 小見出し → キャッチ → リード文 の順に出します。
   ・translate を持つ要素（ロゴ・リード文・円）は位置がずれるので opacity だけ動かします。
   ・「視差を減らす」設定の端末では動かしません。 */
@keyframes mv-fade    { from { opacity: 0; } to { opacity: 1; } }
@keyframes mv-fade-up { from { opacity: 0; transform: translateY(1.8rem); } to { opacity: 1; transform: none; } }
@keyframes mv-zoom    { from { opacity: 0; transform: scale(1.07); } to { opacity: 1; transform: none; } }

@media (prefers-reduced-motion: no-preference) {
    /* 2026-09-09 円の写真はフェードインしません（文字だけ動かします）。
       ▼戻す場合は次の1行のコメントを外してください
       .main-visual__circle img { animation: mv-zoom 1.5s cubic-bezier(.22, .61, .36, 1) both; } */
    .main-visual__logo       { opacity: 0; animation: mv-fade .9s ease-out .25s forwards; }
    .main-visual__eyebrow    { opacity: 0; animation: mv-fade-up .9s cubic-bezier(.22, .61, .36, 1) .45s forwards; }
    .main-visual__heading-lg { opacity: 0; animation: mv-fade-up 1s cubic-bezier(.22, .61, .36, 1) .6s forwards; }
    .main-visual__text       { opacity: 0; animation: mv-fade 1s ease-out .95s forwards; }
}

/* --- 24-4 会社詳細：テーブルの見出しセルに背景を敷く ---
   背面の四角モチーフが th の文字に重なって読みにくかったため、
   セクションの地色（--sec-bg）と同じ色でフタをします。 */
.sec03 .thb-table th { background-color: var(--sec-bg); }

/* --- 24-5 施工事例（sec06）：h3の線 ---
   2026-09-09 h3の「上の横線」をやめ、下線（border-bottom）をタイプ色にしました。
   並び順どおり 1つ目=赤 / 2つ目=黄 / 3つ目=青 になります
   （nth-of-type は同じ親の中の div の並び順で数えています）。 */
.sec06 .onb-com-box01-l-frame,
.sec06 .onb-com-box01-r-frame { border-top: 0; }
.sec06 .onb-com-box01-l-catch,
.sec06 .onb-com-box01-r-catch {
    border-top: 0;
    padding-top: 0;
    border-bottom: 3px solid var(--c-main);
    padding-bottom: var(--s2);
}
/* 2026-09-09 h3の中の語（span）に付いていた下線は消します（h3自体の下線と二重に見えるため） */
.sec06 .onb-com-box01-l-catch span,
.sec06 .onb-com-box01-r-catch span { border-bottom: 0; padding: 0; }
.sec06 .onb-com-box01-l-frame:nth-of-type(4n+1) .onb-com-box01-l-catch { border-bottom-color: var(--c-type1); }
.sec06 .onb-com-box01-l-frame:nth-of-type(4n+2) .onb-com-box01-l-catch { border-bottom-color: var(--c-type2); }
.sec06 .onb-com-box01-l-frame:nth-of-type(4n+3) .onb-com-box01-l-catch { border-bottom-color: var(--c-type3); }
.sec06 .onb-com-box01-l-frame:nth-of-type(4n+4) .onb-com-box01-l-catch { border-bottom-color: var(--c-main); }
.sec06 .onb-com-box01-r-frame:nth-of-type(4n+1) .onb-com-box01-r-catch { border-bottom-color: var(--c-type1); }
.sec06 .onb-com-box01-r-frame:nth-of-type(4n+2) .onb-com-box01-r-catch { border-bottom-color: var(--c-type2); }
.sec06 .onb-com-box01-r-frame:nth-of-type(4n+3) .onb-com-box01-r-catch { border-bottom-color: var(--c-type3); }
.sec06 .onb-com-box01-r-frame:nth-of-type(4n+4) .onb-com-box01-r-catch { border-bottom-color: var(--c-main); }

/* =========================================================
   24-SP
   ========================================================= */
@media screen and (max-width: 767px) {
    /* 24-6 おすすめ3選：図面注記のうち上2つ（SHEET / SCALE）は出さない */
    .sheet-note--tl,
    .sheet-note--tr { display: none; }

    /* 24-7 施工事例スライダー：矢印を画像の高さの中央に置く
       （スライド全体の中央だと、キャッチや本文の上に重なるため）
       画像は .case-box__side img の 16:10。スライダー幅 ≒ 100vw - 6.4rem。 */
    .slider .swiper-button-prev,
    .slider .swiper-button-next {
        top: calc((100vw - 6.4rem) * 10 / 16 / 2);
        transform: translateY(-50%);
    }
    /* 3選の小さいスライダーは画像だけなので従来どおり */
    .slider-container--small .swiper-button-prev,
    .slider-container--small .swiper-button-next { top: 42%; }

    /* 24-8 市町村カード：地図と見出しを縦並びに */
    .city-card a { display: block; }
    .city-card__img { width: 100%; }
    .city-card__img img { aspect-ratio: 16 / 9; }
    .city-card__title { padding: var(--s2) var(--s4) var(--s2) var(--s2); }
    .city-card__title::before { left: 0; }
}


/* =========================================================
   25. 2026-09-09
   ========================================================= */

/* --- 25-1 MVの小見出し：キャッチの下に置いて大きくする ---
   HTML側でも .main-visual__eyebrow を .main-visual__logo の中から
   h2 の直後に移しています（inc/main_visual.php）。 */
.main-visual__eyebrow {
    margin: 1.6rem 0 0;
    font-size: 2.2rem;
    letter-spacing: .1em;
}
@media screen and (min-width: 768px) {
    /* キャッチと同じ理由で px 固定（768〜1000px で :root が 1vw になるため）
       2026-09-09 24px → 30px */
    .main-visual__eyebrow { margin-top: 1.8rem; font-size: 30px; }
}
@media screen and (max-width: 767px) {
    .main-visual__eyebrow { margin-top: 1.2rem; font-size: 2rem; }
}

/* --- 25-2 おすすめ3選：外部リンクボタンの位置を3枚で揃える ---
   本文の行数が3社で違うため、ボタンの上端がずれていました。
   カードをflexにして、ボタンを下端に寄せます（3枚とも同じ高さに揃います）。 */
.sec01 .l-grid-three > .column-small {
    display: flex;
    flex-direction: column;
}
/* 2026-09-09 修正：.btn-web に margin-top: auto を当てると、いちばん本文が長い
   カード（トヨタホーム愛知）でテーマ既定の margin-top（--s3＝2.4rem）が消えて
   ボタン直上が詰まっていました。かわりに本文の p に margin-bottom: auto を当て、
   余りの高さを本文の下で吸収させます（ボタン自身の余白はそのまま残ります）。 */
.sec01 .l-grid-three > .column-small > p:not([class]) {
    margin-bottom: auto;
    /* ボタン直上に最低これだけ空ける（.btn-web 側の --s3 と合わせて 4rem）
       2026-09-09（3回目）--s1 → --s2 に増やしました */
    padding-bottom: var(--s2);
}

/* --- 25-3 SP：赤いCTAボタンを画面左端に固定 ---
   PCはヘッダー右上の .pc-gnav__cv が同じ役割を担うため、これはSPだけ出します。
   マークアップは inc/pc_gnav.php の末尾（.pc-gnav の外）にあります。 */
.sp-fix-cv { display: none; }
@media screen and (max-width: 767px) {
    .sp-fix-cv {
        position: fixed;
        z-index: 90;
        left: 0;
        /* 2026-09-09（3回目）画面のいちばん下にぴったり付けます */
        top: auto;
        bottom: 0;
        transform: none;
        display: flex;
        align-items: center;
        gap: .8rem;
        /* 左端の目盛り（body::after／幅1rem）の上に出します */
        padding: 1.1rem 1.2rem 1.1rem 1.4rem;
        background: var(--c-red);
        color: var(--c-base);
        font-size: 1.35rem;
        font-weight: 800;
        letter-spacing: .04em;
        line-height: 1.4;
        text-align: left;
        text-decoration: none;
    }
    /* アローは右向き（rotate(45deg) だと下向きになります） */
    .sp-fix-cv::after {
        content: "";
        flex: none;
        width: .7rem;
        height: .7rem;
        border-right: 1px solid currentColor;
        border-bottom: 1px solid currentColor;
        transform: rotate(-45deg);
    }
    .sp-fix-cv:hover,
    .sp-fix-cv:focus { color: var(--c-base); text-decoration: none; }
}

/* --- 25-4 SP：市町村カードの地図イラストは出さない --- */
@media screen and (max-width: 767px) {
    .city-card__img { display: none; }
}


/* =========================================================
   26. 2026-09-09（2回目）
   ========================================================= */

/* --- 26-1 施工事例（sec06）の背景に四角モチーフ ---
   h3の上の横線をやめたぶん、あしらいが寂しくなったため。
   考え方は sec03 / sec05 / sec07 と同じ「塗りの四角＋線の四角」です。
   sec06は地色が白なので、塗りは白ではなく“ごく薄い灰色”にしています。
   位置は他セクションとずらして、並べたときに繰り返しに見えないようにしました。 */
.sec06 {
    position: relative;
    overflow: hidden;
    /* ▼濃さを変えるときはこの2つだけ触ってください */
    --sec06-fill: #F6F7F8;
    --sec06-line: var(--c-line);
}
.sec06::before,
.sec06::after,
.sec06-l-center::before,
.sec06-l-center::after {
    content: "";
    position: absolute;
    pointer-events: none;
}
/* 線の四角：左上
   2026-09-09（3回目）塗り → 線に変更。塗りだと直上のセクションと地続きに見え、
   境目が分かりにくかったためです。 */
.sec06::before {
    z-index: 0;
    top: -9rem;
    left: -13rem;
    width: 44rem;
    height: 44rem;
    border: 1px solid var(--sec06-line);
}
/* 線の四角：右上 */
.sec06::after {
    z-index: 0;
    right: -15rem;
    top: 11rem;
    width: 38rem;
    height: 38rem;
    border: 1px solid var(--sec06-line);
}
.sec06-l-center { position: relative; z-index: 1; }
/* 中盤にも（コンテンツの背面に敷く） */
.sec06-l-center::before {
    z-index: -1;
    top: 34%;
    right: -17rem;
    width: 33rem;
    height: 33rem;
    border: 1px solid var(--sec06-line);
}
.sec06-l-center::after {
    z-index: -1;
    top: 64%;
    left: -19rem;
    width: 41rem;
    height: 41rem;
    background: var(--sec06-fill);
}
@media screen and (max-width: 767px) {
    .sec06::before { top: -5rem; left: -8rem; width: 24rem; height: 24rem; }
    .sec06::after  { right: -9rem; top: 6rem; width: 20rem; height: 20rem; }
    .sec06-l-center::before { right: -11rem; width: 19rem; height: 19rem; }
    .sec06-l-center::after  { left: -12rem;  width: 23rem; height: 23rem; }
}


/* =========================================================
   27. 2026-09-09（3回目）
   ========================================================= */

/* --- 27-1 MVのリード文：一部を赤い下線で強調 ---
   文字色・文字サイズはそのままで、下線だけ赤にします。
   （border-bottom だと折り返したときに最終行にしか付かないので
     text-decoration を使っています） */
.main-visual__text .mv-underline {
    text-decoration: underline;
    text-decoration-color: var(--c-red);
    text-decoration-thickness: 2px;
    text-underline-offset: .35em;
    text-decoration-skip-ink: none;
	font-weight:bold;
}

/* --- 27-2 会社詳細（sec03）：口コミの見出しの高さを3枚でそろえる ---
   h6が2行のカードと3行のカードで本文の開始位置がずれていたため、
   3行ぶんの高さを確保します（1.5em × 3行）。
   SPは1列に積むので、余白が空くだけになるためPCのみ。 */
@media screen and (min-width: 768px) {
    /* border-box なので、3行ぶんの行送り（1.5em×3）に padding-bottom と
       border-bottom を足した値にします */
    .voice-card__title { min-height: calc(4.5em + var(--s2) + 1px); }
}

/* =========================================================
   27-SP
   ========================================================= */
@media screen and (max-width: 767px) {

    /* --- 27-3 MVの三角：円の写真の上下からはみ出さない ---
       ステージ（104vw）に対して円は上10%・下94%の位置にあるので、
       帯を敷く箱をその範囲に収めます。clip-path は箱に対する％なので、
       傾きの付き方は変わりません。 */
    .main-visual__shapes { inset: 10% 0 6% 0; }

    /* --- 27-4 おすすめ3選：カードの上下パディングも0に --- */
    .sec01 .column-small {
        padding-top: 0;
        padding-bottom: 0;
    }

    /* --- 27-5 会社詳細（sec03）：社名の行間を広く --- */
    .sec03 .title-catch { line-height: 1.6; }

    /* --- 27-6 愛知の注文住宅会社（sec04）／基礎知識（sec05）：h3を左揃えに --- */
    .sec04 .arrow-title,
    .sec05 .twb-arrow-title {
        justify-content: flex-start;
        text-align: left;
    }
    .sec05 .twb-arrow-title a { text-align: left; }

    /* --- 27-7 基礎知識（sec05）：2カラムの間隔をなくす --- */
    .sec05 .l-grid-two { grid-gap: 0; }

    /* --- 27-8 市町村（sec07）：カードの左右に少し余白 --- */
    .sec07 .city-grid.l-grid-three {
        margin-right: 1rem;
        margin-left: 1rem;
    }

    /* --- 27-10 ハンバーガーは常時表示 ---
       テーマは .gnavi-ctrl を opacity:0 で隠し、common.js が 620px スクロールした
       ところで .is-show を付ける仕様（＝上にスクロールしないと出ない）でした。
       SPでは最初から出しておきます（PCは既に min-width:768px 側で常時表示）。 */
    .gnavi-ctrl {
        opacity: 1;
        visibility: visible;
    }

    /* --- 27-9 フッターに入ったら固定ボタン類を隠す ---
       フッターメニューと重なるのを避けるため。
       .is-footer-visible は js/custom-add.js が body に付け外しします。 */
    body.is-footer-visible .sp-fix-cv,
    body.is-footer-visible .page-top {
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: opacity .25s, visibility .25s;
    }
    .sp-fix-cv,
    .page-top { transition: opacity .25s, visibility .25s; }
}


/* =========================================================
   28. 2026-09-10
   ========================================================= */

/* --- 28-1 メインビジュアル：小見出しを白地×黒文字に ---
   写真の上に白抜きで置いていたため埋もれていました。
   文字幅ぶんだけ白い地を敷いて、文字色を黒に変えます。 */
.main-visual__eyebrow {
    display: table;            /* 文字幅ぶんだけ白地にするため */
    margin-right: auto;
    margin-left: auto;
    padding: .45em 1.1em;
    background: var(--c-base);
    color: var(--c-ink);
    text-shadow: none;
}

/* --- 28-2 メインビジュアル：円の写真をもう少し暗く ---
   上に重なるリード文（白文字）の可読性を上げるためです。
   ▼濃さを変えるときはこの1行だけ触ってください（.33 → .48）。 */
.main-visual__circle::after { background: rgba(62, 36, 28, .48); }

/* --- 28-3 「高機能」のアイコンを差し替え ---
   これまでは円マーク（コスト訴求のときの名残）でした。
   性能・スペックを表す歯車のアイコンに変えます。
   2026-09-10（2回目）歯車の歯を三角関数で作図し直しました（手描き風のゆがみを解消）。
   簡易3選（.type-band--3）と会社詳細の3社目（.sec03-3）の両方に効きます。 */
.type-band--3 .type-band__icon,
.sec03-3 .onb-icon-title .type-band__icon {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23198898%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M9.69%205.29%20L10.27%202.66%20L13.73%202.66%20L14.31%205.29%20L15.11%205.62%20L17.38%204.17%20L19.83%206.62%20L18.38%208.89%20L18.71%209.69%20L21.34%2010.27%20L21.34%2013.73%20L18.71%2014.31%20L18.38%2015.11%20L19.83%2017.38%20L17.38%2019.83%20L15.11%2018.38%20L14.31%2018.71%20L13.73%2021.34%20L10.27%2021.34%20L9.69%2018.71%20L8.89%2018.38%20L6.62%2019.83%20L4.17%2017.38%20L5.62%2015.11%20L5.29%2014.31%20L2.66%2013.73%20L2.66%2010.27%20L5.29%209.69%20L5.62%208.89%20L4.17%206.62%20L6.62%204.17%20L8.89%205.62%20Z%22/%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%223.3%22/%3E%3C/svg%3E");
}

/* --- 28-4 簡易3選（sec01）：参考坪単価の金額を太字に --- */
.spec-line__value,
.spec-line__value span { font-weight: 700; }

/* --- 28-5 会社詳細（sec03）：参考坪単価を通常のテーブルらしく ---
   見出しセルに地色を敷き、値を太字にして目立たせます。
   （24-4 でセクションの地色にしていたのを --c-sub に戻しています） */
.sec03 .spec-table th {
    padding: var(--s2) var(--s3);
    background-color: var(--c-sub);
}
.sec03 .spec-table td {
    padding: var(--s2) var(--s3);
    background-color: var(--c-base);
    font-weight: 700;
}

/* --- 28-6 会社詳細（sec03）：施工事例スライダーのアローを外側へ ---
   ← → が画像・本文に重なって窮屈だったため、スライドの中身に左右の余白を作り、
   その余白の中にアローが入るようにしました（アローの位置指定は変えていません）。
   ▼アローと本文のアキはこの padding で調整できます（アローは 4.4rem 幅）。 */
@media screen and (min-width: 768px) {
    .sec03 .slider-container .case-box { padding-right: 6rem; padding-left: 6rem; }
}

/* --- 28-7 愛知の注文住宅会社（sec04）：h3直上の横線を赤で統一 --- */
.sec04 .arrow-title,
.sec04 .l-grid-three > .column-small:nth-child(3n+1) .arrow-title,
.sec04 .l-grid-three > .column-small:nth-child(3n+2) .arrow-title,
.sec04 .l-grid-three > .column-small:nth-child(3n+3) .arrow-title {
    border-top-color: var(--c-red);
}

/* --- 28-8 注文住宅の基礎知識（sec05）：h3直上の縦線を青で統一 --- */
.sec05 .twb-arrow-title,
.sec05 .l-grid-two > .column-medium:nth-child(2n+1) .twb-arrow-title,
.sec05 .l-grid-two > .column-medium:nth-child(2n+2) .twb-arrow-title {
    border-left-color: var(--c-blue);
}

/* --- 28-9 施工事例（sec06）：h3の線を黄（ベージュ）で統一 ---
   ※この線は 24-5（2026-09-09）で h3 の「下」に移してあります。
     位置はそのままで、色だけ揃えました。上に戻す場合はご指示ください。 */
.sec06 .onb-com-box01-l-frame:nth-of-type(n) .onb-com-box01-l-catch,
.sec06 .onb-com-box01-r-frame:nth-of-type(n) .onb-com-box01-r-catch {
    border-bottom-color: var(--c-beige);
}

/* --- 28-10 市町村ごとの注文住宅（sec07）：見出し左の縦線を赤で統一 --- */
.city-grid > .city-card:nth-child(3n+1) .city-card__title::before,
.city-grid > .city-card:nth-child(3n+2) .city-card__title::before,
.city-grid > .city-card:nth-child(3n+3) .city-card__title::before {
    background: var(--c-red);
}

/* --- 28-11 セクション冒頭のリード（画像＋テキスト＋内部リンクボタン） ---
   h2の直下に置く共通パーツ。画像が左、テキストとボタンが右です。
   sec06（施工事例）と sec08（住宅展示場）で使っています。
   ▼画像の幅を変えるときは .intro-media__side の width だけ触ってください。 */
.intro-media {
    display: flex;
    align-items: flex-start;
    gap: var(--s4);
    margin-bottom: var(--s6);
}
.intro-media__side { flex: none; width: 40%; }
.intro-media__side img { width: 100%; height: auto; display: block; }
.intro-media__main { flex: 1 1 auto; min-width: 0; }
.intro-media__main > p { margin-top: 0; }
.intro-media__main .btn-internal { margin-top: var(--s3); }

/* --- 28-12 愛知にある住宅展示場（sec08） ---
   sec07 の下に追加したセクション。地色と余白は sec06 に合わせています。 */
.sec08 {
    background-color: var(--c-base);
    border-top: 1px solid var(--c-line);
}
.sec08-l-center {
    max-width: 110rem;
    margin-right: auto;
    margin-left: auto;
    padding-top: 14rem;
    padding-bottom: 14rem;
}

/* --- 28-13 下層ページ：h4はシンプルな下線だけに ---
   21-5 で付けていた「冒頭1文字の黒背景」（::first-letter）をやめました。 */
#low-page h4:not([class]) {
    padding: 0 0 var(--s2);
    border-bottom: 2px solid var(--c-ink);
}
#low-page h4:not([class])::first-letter {
    padding: 0;
    margin-right: 0;
    background-color: transparent;
    color: inherit;
    font-weight: inherit;
}


/* =========================================================
   28-SP
   ========================================================= */
@media screen and (max-width: 767px) {

    /* --- 28-16 MVの小見出し：SPで白地が2行に折り返さないように ---
       390px幅だと 2rem + 字間 .1em では 1文字ぶんだけはみ出して折り返していました。 */
    .main-visual__eyebrow {
        padding: .35em .8em;
        font-size: 1.9rem;
    }

    /* --- 28-14 リード（画像＋テキスト）はSPで縦積みに --- */
    .intro-media {
        display: block;
        margin-bottom: var(--s5);
    }
    .intro-media__side { width: 100%; }
    .intro-media__main { margin-top: var(--s3); }

    /* --- 28-15 住宅展示場（sec08）の余白 --- */
    .sec08 { padding-right: 1rem; padding-left: 1rem; }
    .sec08-l-center { padding-top: 7rem; padding-bottom: 7rem; }
}


/* =========================================================
   29. 2026-09-10（2回目）
   ========================================================= */

/* --- 29-1 MV：キャッチの黒帯をやめて “こだわり” の表記に ---
   HTML側で <span class="highlight"> を <span class="mv-quote"> に変えています
   （inc/main_visual.php）。黒帯は使わないので装飾は付けません。 */
.main-visual__heading-lg .mv-quote {
    background: none;
    color: inherit;
    padding: 0;
    margin: 0;
}

/* --- 29-2 MV：小見出しを黒地×白文字に（28-1 の白地×黒文字を上書き） ---
   あわせて padding を .45em 1.1em → .28em .8em に詰めています。
   ▼白地に戻すときは background と color を入れ替えてください。 */
.main-visual__eyebrow {
    padding: .28em .8em;
    background: var(--c-accent);
    color: var(--c-base);
}
/* h2 の中に入れたので、見出しの文字サイズ・太さを引き継がないようにします
   （HTML側で <p> → <span> に変更。inc/main_visual.php） */
.main-visual__heading-lg .main-visual__eyebrow {
    display: table;
    margin-right: auto;
    margin-left: auto;
    font-size: 2.2rem;
    font-weight: 700;
    letter-spacing: .1em;
    line-height: 1.4;
    -webkit-text-stroke: 0;
}
@media screen and (min-width: 768px) {
    /* キャッチと同じ理由で px 固定（768〜1000px で :root が 1vw になるため） */
    .main-visual__heading-lg .main-visual__eyebrow { font-size: 30px; }
}

/* --- 29-3 会社詳細（sec03）：モデルハウス一覧をアコーディオンに ---
   ボタンはテーマ標準の .acc-more-btn（白地＋1px黒罫＋＋アイコン）をそのまま使い、
   sec04 の「もっと見る」と同じ挙動（js-more-btn ＋ .more-content）にしています。
   ▼開閉のテキストは HTML の data-close-text で変えられます。 */
.sec03 .acc-more-btn { max-width: 46rem; }
.sec03 .more-content { display: none; }
.sec03 .more-content > .studio-block:first-child { margin-top: var(--s3); }

/* --- 29-4 愛知の注文住宅会社（sec04）：ジャンルのタグ ---
   h3の直下に「設計事務所／ハウスメーカー／工務店」を並べ、該当するものだけ濃い色に。
   色は簡易3選の .type-label と同じ考え方（設計事務所=赤／ハウスメーカー=ベージュ／工務店=青）です。
   ▼該当ジャンルは HTML 側の is-active で切り替えます。 */
.genre-tags {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .6rem;
    margin: 0 0 var(--s2);
    padding: 0;
    list-style: none;
}
.genre-tags li {
    padding: .35rem 1rem;
    background: var(--c-sub);
    border: 1px solid var(--c-line);
    color: var(--c-cap);
    font-size: 1.2rem;
    font-weight: 700;
    letter-spacing: .04em;
    line-height: 1.4;
}
.genre-tags li::before { content: none; }
.genre-tags .genre-tag--office.is-active {
    background: var(--c-type1);
    border-color: var(--c-type1);
    color: var(--c-base);
}
.genre-tags .genre-tag--maker.is-active {
    background: var(--c-type2);
    border-color: var(--c-type2);
    color: var(--c-base);
}
.genre-tags .genre-tag--koumuten.is-active {
    background: var(--c-type3);
    border-color: var(--c-type3);
    color: var(--c-base);
}

/* --- 29-5 sec06 / sec08：h2直下のリード画像をもう少し大きく（40% → 50%） --- */
.intro-media__side { width: 50%; }

/* --- 29-6 住宅展示場（sec08）：画像を右に置く --- */
.sec08 .intro-media { flex-direction: row-reverse; }

/* --- 29-7 住宅展示場（sec08）：背景に薄い四角モチーフ（sec06と同じ考え方） ---
   位置は sec06 とずらして、並べたときに繰り返しに見えないようにしています。 */
.sec08 {
    position: relative;
    overflow: hidden;
    /* ▼濃さを変えるときはこの2つだけ触ってください */
    --sec08-fill: #F6F7F8;
    --sec08-line: var(--c-line);
}
.sec08::before,
.sec08::after,
.sec08-l-center::before,
.sec08-l-center::after {
    content: "";
    position: absolute;
    pointer-events: none;
}
/* 線の四角：右上 */
.sec08::before {
    z-index: 0;
    top: -11rem;
    right: -12rem;
    width: 42rem;
    height: 42rem;
    border: 1px solid var(--sec08-line);
}
/* 線の四角：左上 */
.sec08::after {
    z-index: 0;
    left: -14rem;
    top: 8rem;
    width: 36rem;
    height: 36rem;
    border: 1px solid var(--sec08-line);
}
.sec08-l-center { position: relative; z-index: 1; }
/* 塗りの四角：右下（コンテンツの背面） */
.sec08-l-center::before {
    z-index: -1;
    top: 46%;
    right: -18rem;
    width: 38rem;
    height: 38rem;
    background: var(--sec08-fill);
}
/* 線の四角：左下 */
.sec08-l-center::after {
    z-index: -1;
    top: 70%;
    left: -16rem;
    width: 30rem;
    height: 30rem;
    border: 1px solid var(--sec08-line);
}

/* --- 29-8 下層ページ：アイコン付き見出し（CHECK） ---
   クラス付きの見出しなので、#low-page h3:not([class]) などの既定装飾は当たりません。
   ▼アイコンの文言は HTML の <span class="check-title__icon"> を書き換えてください。 */
.check-title {
    display: flex;
    align-items: center;
    gap: var(--s2);
    width: 100%;
    margin-block: 3rem 2rem;
    padding: var(--s2) 0;
    border-top: 2px solid var(--c-red);
    border-bottom: 1px solid var(--c-line);
    font-size: 2.4rem;
    font-weight: 900;
    line-height: 1.5;
    color: var(--c-ink);
}
.check-title__icon {
    flex: none;
    padding: .5em 1em;
    background: var(--c-red);
    color: var(--c-base);
    font-size: 1.3rem;
    font-weight: 800;
    letter-spacing: .14em;
    line-height: 1;
}
.check-title a { color: var(--c-ink); }


/* =========================================================
   29-SP
   ========================================================= */
@media screen and (max-width: 767px) {

    /* --- 29-9 MVの小見出し：黒地にしたぶん padding を詰める --- */
    .main-visual__heading-lg .main-visual__eyebrow {
        padding: .28em .7em;
        font-size: 1.9rem;
    }

    /* --- 29-10 sec06 / sec08 のリード画像：SPは縦積みなので幅いっぱい --- */
    .intro-media__side { width: 100%; }

    /* --- 29-11 sec08 の四角モチーフはSPで小さく --- */
    .sec08::before { top: -6rem; right: -8rem; width: 23rem; height: 23rem; }
    .sec08::after  { left: -9rem; top: 5rem; width: 19rem; height: 19rem; }
    .sec08-l-center::before { right: -11rem; width: 21rem; height: 21rem; }
    .sec08-l-center::after  { left: -10rem; width: 17rem; height: 17rem; }

    /* --- 29-12 下層ページ：CHECK見出しはSPで小さく --- */
    .check-title { font-size: 1.8rem; gap: var(--s1); }
    .check-title__icon { padding: .5em .8em; font-size: 1.1rem; }
}


/* =========================================================
   30. 2026-09-10（3回目）
   ========================================================= */

/* --- 30-1 MV：ロゴ〜リード文を少し上へ ---
   小見出しを h2 の中に入れたぶん、ブロック全体が下がって見えていました。
   「叶えられるかどうか」（キャッチの2行目）が円の上下中央にくる位置まで持ち上げます。
   ▼上下位置はこの --mv-lift の1つだけで調整できます（大きくするほど上へ）。 */
/* 大画面でも量が変わらないよう px 固定です（:root が clamp で伸びるため） */
.main-visual { --mv-lift: 14px;}
.main-visual__inner { top: calc(45% - var(--mv-lift)); }
.main-visual__text  { top: calc(65vh - var(--mv-lift)); }

/* --- 30-2 会社詳細（sec03）：参考坪単価の見出しセルを灰色に ---
   下線（テーブルの罫線）は消して、ベタ塗りだけで見せます。 */
.sec03 .spec-table th {
    background-color: #999999;
    border-bottom: 0;
}
.sec03 .spec-table td { border-bottom: 0; }

/* --- 30-3 アコーディオンボタンを角丸に戻す ---
   9章で「角丸を廃止」して 0 にしていましたが、ご指示により
   sec03（モデルハウス一覧）と sec04（もっと見る）とも角丸にします。 */
.acc-more-btn { border-radius: 100rem; }

/* --- 30-4 会社一覧（sec04）：ジャンルタグの色を灰色で統一 ---
   赤・ベージュ・青の振り分けをやめ、該当するものだけ #666 で塗ります。 */
.genre-tags .genre-tag--office.is-active,
.genre-tags .genre-tag--maker.is-active,
.genre-tags .genre-tag--koumuten.is-active {
    background: #666666;
    border-color: #666666;
    color: var(--c-base);
}

/* --- 30-5 会社一覧（sec04）：h3の左右でカードの縦線が切れて見える ---
   原因は h3 の箱（.thb-box-full）と h3 自身が白で塗られていて、
   カードの左右の1px罫線に重なっていたためです。背景を透明にすると、
   カードの縦線が上から下まで1本につながります（上の赤い横線はそのまま）。 */
.sec04 .thb-box-full,
.sec04 .arrow-title { background-color: transparent; }

/* --- 30-6 アコーディオンの中のスライダーが出ない問題 ---
   Swiper は初期化時にスライドの幅を測りますが、`display: none` の中にあると
   0px になってしまい、開いても表示されませんでした。
   開いたタイミングで測り直すよう js/custom-add.js に処理を追加しています。
   （CSS側の対応は不要です。この行はメモです） */


/* =========================================================
   30-SP
   ========================================================= */
@media screen and (max-width: 767px) {

    /* --- 30-7 MV：ロゴ〜キャッチを上へ（PCと同じ考え方。SPは円が top:52%） --- */
    .main-visual { --mv-lift: 0rem; min-height:unset;}
    .main-visual__inner { top: calc(52% - 8.4vw); }

    /* --- 30-8 MV：小見出しが円からはみ出さないように ---
       rem（SPは :root が 1vw）だと端末幅で効きが変わるので、vw で指定します。
       ▼はみ出す・小さすぎるときはこの 4.2vw だけを調整してください。 */
    .main-visual__heading-lg .main-visual__eyebrow {
        max-width: 100%;
        padding: .3em .8em;
        font-size: 3.8vw;
        letter-spacing: .06em;
    }

    /* --- 30-9 会社詳細（sec03）：背景の細い四角モチーフはSPでは出さない ---
       本文に線が重なって読みにくかったためです。 */
    .sec03::before,
    .sec03::after,
    .sec03-l-center::before,
    .sec03-l-center::after { display: none; }

    /* --- 30-10 市町村（sec07）：地図のイラストをSPでも表示する ---
       25-4 で消していたのを戻します。カードは 24-8 の「縦並び」になり、
       画像はSVGの原寸比（3:2）でそのまま出します（切り抜きません）。 */
    .city-card__img { display: block; }
    .city-card__img img { aspect-ratio: 3 / 2; object-fit: contain; }
}


/* =========================================================
   31. 2026-09-10（4回目）
   ========================================================= */

/* --- 31-1 会社詳細（sec03）：参考坪単価の見出しセルを白文字に --- */
.sec03 .spec-table th { color: var(--c-base); }

/* --- 31-2 会社一覧（sec04）：h3直上の赤い横線を削除 ---
   19-3 / 28-7 で入れていた border-top をやめます。
   （21-4 の margin-top: -1px は線を枠に重ねるための指定だったので、あわせて戻します） */
.sec04 .arrow-title { border-top: 0; }
.sec04 .thb-box-full { margin-top: 0; }

/* --- 31-3 会社一覧（sec04）：ジャンルタグの該当箇所を赤に（#666 → 赤） --- */
.genre-tags .genre-tag--office.is-active,
.genre-tags .genre-tag--maker.is-active,
.genre-tags .genre-tag--koumuten.is-active {
    background: var(--c-red);
    border-color: var(--c-red);
    color: var(--c-base);
}

/* --- 31-4 市町村（sec07）：地図をご支給のイラスト1枚に差し替え ---
   これまでは市ごとに13点のSVG（自社作成の簡易版）を用意していましたが、
   **1枚の共通イラスト（/img/area-map.png）＋CSSで打つマーカー** に変えました。
   ・イラストは pixta_138480288 を、黒 → 灰色（#E4E7E8）に置き換えてタイトル部分を
     トリミングしたものです（元データは 追加画像/ に残しています）。
   ・マーカーの位置は、旧SVGの座標を新しいイラストの外形に合わせて換算した値です。
   ▼位置を直すときは下の --pin-x / --pin-y だけ変えてください
     （単位なしの数値＝イラスト左上からの％。余白ぶんは下の calc が差し引きます）。
   ▼イラストのまわりの余白は --map-pad の1か所で変えられます。 */
.city-card__img {
    position: relative;
    /* 2026-09-10（5回目）イラストが窮屈だったので余白を追加
       2026-09-10（7回目）左右と上下を分けられるようにしました。
       左右だけ広げるとイラストが小さくなり、カードの縦幅を抑えられます。 */
    --map-pad: 1rem;
    --map-pad-x: var(--map-pad);
    --map-pad-y: var(--map-pad);
    padding: var(--map-pad-y) var(--map-pad-x);
}
/* イラストは切り抜かず、そのままの比率で表示します（％指定の基準になるため） */
.city-card__img img {
    aspect-ratio: auto;
    height: auto;
    object-fit: fill;
}
/* マーカーとズレるので、ホバー時の拡大はしません */
.city-card:hover .city-card__img img { transform: none; }
.city-card__img::before,
.city-card__img::after {
    content: "";
    position: absolute;
    /* ％は「枠の内側（padding込み）」が基準になるため、余白ぶんを足し引きして
       イラストの実寸に対する位置に直しています */
    left: calc(var(--map-pad-x) + (100% - var(--map-pad-x) * 2) * var(--pin-x, 50) / 100);
    top:  calc(var(--map-pad-y) + (100% - var(--map-pad-y) * 2) * var(--pin-y, 50) / 100);
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: var(--c-red);
    pointer-events: none;
}
/* 外側のうすい円 */
.city-card__img::before {
    width: calc((100% - var(--map-pad-x) * 2) * .154);
    aspect-ratio: 1;
    opacity: .18;
}
/* 中心の点（白フチつき） */
.city-card__img::after {
    width: calc((100% - var(--map-pad-x) * 2) * .054);
    aspect-ratio: 1;
    box-shadow: 0 0 0 .15rem var(--c-base);
}
.city-card__img--nagoya      { --pin-x: 20.19; --pin-y: 28.73; }  /* 名古屋市 */
.city-card__img--tokoname    { --pin-x: 16.00; --pin-y: 63.57; }  /* 常滑市 */
.city-card__img--okazaki     { --pin-x: 43.09; --pin-y: 55.50; }  /* 岡崎市 */
.city-card__img--toyota      { --pin-x: 41.59; --pin-y: 40.37; }  /* 豊田市 */
.city-card__img--ichinomiya  { --pin-x: 11.25; --pin-y: 14.27; }  /* 一宮市 */
.city-card__img--anjo        { --pin-x: 35.06; --pin-y: 55.07; }  /* 安城市 */
.city-card__img--kariya      { --pin-x: 28.36; --pin-y: 51.43; }  /* 刈谷市 */
.city-card__img--kasugai     { --pin-x: 25.80; --pin-y: 20.93; }  /* 春日井市 */
.city-card__img--nagakute    { --pin-x: 31.88; --pin-y: 28.43; }  /* 長久手市 */
.city-card__img--miyoshi     { --pin-x: 34.36; --pin-y: 39.20; }  /* みよし市 */
.city-card__img--tokai       { --pin-x: 19.81; --pin-y: 47.47; }  /* 東海市 */
.city-card__img--handa       { --pin-x: 22.90; --pin-y: 62.93; }  /* 半田市 */
.city-card__img--toyohashi   { --pin-x: 61.72; --pin-y: 77.43; }  /* 豊橋市 */

/* --- 31-5 下層ページ：アイコン付き見出し（CHECK）を青い正円に --- */
.check-title { border-top-color: var(--c-blue); }
.check-title__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 5.6rem;
    height: 5.6rem;
    padding: 0;
    border-radius: 50%;
    background: var(--c-blue);
    font-size: 1.1rem;
    letter-spacing: .06em;
}


/* =========================================================
   31-SP
   ========================================================= */
@media screen and (max-width: 767px) {

    /* --- 31-6 MV：ロゴ〜キャッチを下げて「その“こだわり”を」を上下中央に ---
       30-7（calc(52% - 8.4vw)）は2行目基準でした。1行ぶん下げます。
       ▼位置はこの 1行だけで調整できます。 */
    .main-visual__inner { top: calc(52% + 2.8vw); }

    /* --- 31-7 MV：リード文の上のアキをなくす --- */
    .main-visual__text { margin-top: 0; }

    /* --- 31-8 市町村（sec07）：イラストは切り抜かず全体を出す --- */
    .city-card__img img { aspect-ratio: auto; height: auto; object-fit: fill; }

    /* --- 31-9 下層ページ：左端の目盛りと近いので、本文の幅を少し狭く --- */
    #low-page.l-center {
        padding-right: 2rem;
        padding-left: 2rem;
    }

    /* --- 31-10 CHECKアイコンはSPで一回り小さく --- */
    .check-title__icon { width: 4.6rem; height: 4.6rem; font-size: 1rem; }
}


/* =========================================================
   32. 2026-09-10（5回目）
   ========================================================= */

/* --- 32-1 MV：キャッチとリード文のシャドウを少し強く ---
   もともと薄くかけていました（h2: .18／リード文: .25）が、写真の明るい部分に
   重なると読みにくかったので、にじみを大きく・濃度を上げています。
   ▼濃さはこの2か所の rgba の最後の数字（不透明度）で調整できます。 */
.main-visual__heading-lg {
    text-shadow: 0 .1rem .2rem rgba(26, 26, 26, .40), 0 .2rem 1.4rem rgba(26, 26, 26, .34);
}
.main-visual__text {
    text-shadow: 0 .1rem .2rem rgba(26, 26, 26, .40), 0 .2rem 1.2rem rgba(26, 26, 26, .34);
	letter-spacing:1px;
}
/* 小見出しは黒地に白文字なので影は不要（28-1／29-2 のまま） */
.main-visual__heading-lg .main-visual__eyebrow { text-shadow: none; }

/* --- 32-2 会社一覧（sec04）：h3直上の赤い横線を復活 ---
   31-2 で消したものを戻します。カードの枠線と1本に見えるよう、
   21-4 の margin-top: -1px も戻しています（左右の縦線は 30-5 のまま出ます）。 */
.sec04 .arrow-title { border-top: 3px solid var(--c-red); }
.sec04 .thb-box-full { margin-top: -1px; }

/* --- 32-3 会社一覧（sec04）：ジャンルタグの該当箇所を #333 に --- */
.genre-tags .genre-tag--office.is-active,
.genre-tags .genre-tag--maker.is-active,
.genre-tags .genre-tag--koumuten.is-active {
    background: #333333;
    border-color: #333333;
    color: var(--c-base);
}


/* =========================================================
   32-SP
   ========================================================= */
@media screen and (max-width: 767px) {

    /* --- 32-4 市町村（sec07）：SPの余白 ---
       2026-09-10（7回目）左右と上下を分ける形にしたので、指定は 33-12 に移しました。 */
}


/* =========================================================
   33. 2026-09-10（7回目・テスト環境の確認を受けて）
   ========================================================= */

/* --- 33-0 【不具合】ヘッダーの出し入れでハンバーガーとSP固定CTAまで消えていた ---
   24-2 で付けていたクラス名 `is-hidden` が、テーマ（custom.css 528行）の
   **汎用クラス `.is-hidden { display: none }` と同名**でした。
   そのため下スクロールで .header-area ごと display:none になり、
   中にあるハンバーガー（.gnavi-ctrl）とSPの固定CTA（.sp-fix-cv）まで
   消えていました。**クラス名を `is-header-hidden` に変更**して解消しています
   （js/custom-add.js と 24-2 のセレクタ）。CSSの追記は不要です。 */

/* --- 33-1 大画面でのコンテンツ幅を 1400px前後 → 1300px に ---
   リキッドデザイン（:root の font-size が最大14px）で 1920px 時に
   セクションが 1478px・下層が 1409px まで広がっていたため、上限を足します。
   2026-09-10（8回目）1300pxだと文字サイズはそのままで幅だけ狭くなり、
   意図しない改行が出たため **1400px** に戻しました。
   1428px以下（root=10px）では従来と1pxも変わりません。
   ▼簡易3選（.sec01-l-center）は今までどおりの幅のままにしています。 */
.sec02-l-center,
.sec03-l-center,
.sec04-l-center,
.sec05-l-center,
.sec06-l-center,
.sec07-l-center,
.sec08-l-center,
.pc-gnav__panel-inner { max-width: min(110rem, 1400px); }
/* 下層本文は content-box（幅にpaddingを含まない）なので、border-box にしてから上限を足します */
#low-page.l-center {
    box-sizing: border-box;
    max-width: min(100rem, 1300px);
}

/* --- 33-2 PCヘッダーナビ：カテゴリを5つ・2行前提に ---
   文言が長くなる予定なので、折り返しを許可して**2行**で収まるようにします。
   ▼1行に戻したいときは white-space を nowrap に、
     折り返す位置は max-width（文字数の目安）で調整できます。 */
@media screen and (min-width: 768px) {
    .pc-gnav__list { gap: var(--s2); }
    .pc-gnav__link {
        max-width: 8.4em;
        white-space: normal;
        text-align: center;
        line-height: 1.5;
    }
    /* ホバーの下線は2行ぶんの文字の下に */
    .pc-gnav__link::after { bottom: calc(50% - 1.7em); }

    /* --- 33-3 サイト名の右側に余白 --- */
    .header-area-upper { padding-right: var(--s4); }
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
    .pc-gnav__list { gap: var(--s1); }
    .pc-gnav__link { max-width: 7.6em; }
}

/* --- 33-4 【不具合】ヘッダー・ハンバーガー・フッターのリンクに下線が付く ---
   23-1 で `.header-area a { text-decoration: none }` を当てていましたが、
   **2章の `li a[href^="http"]`（詳細度 0,1,2）のほうが強く**、
   本番のように絶対URLで出力されるナビでは下線が勝っていました。
   `li` を含めた形にして詳細度を上げます（0,2,2）。 */
.header-area a,
.header-area li a[href^="http"],
.gnavi-area a,
.gnavi-area li a[href^="http"],
.pc-gnav a,
.pc-gnav li a[href^="http"],
.footer-area a,
.footer-area li a[href^="http"] { text-decoration: none; }
.header-area a:hover,
.gnavi-area a:hover,
.pc-gnav a:hover,
.footer-area a:hover { text-decoration: underline; }

/* --- 33-5 会社一覧（sec04）：h3が1行の会社と2行の会社で画像の高さがずれる ---
   テーマの matchHeight は `.sec04 p` が対象で、h3は揃いません。
   2行ぶんの高さを常に確保して、下に続く画像の位置をそろえます。
   （font-size 2.4rem × line-height 1.5 × 2行 ＋ 上下padding 1.6rem） */
.sec04 .arrow-title { min-height: calc(3em + 3.2rem); }

/* --- 33-6 住宅展示場（sec08）：フッターまでのアキを詰める --- */
.sec08-l-center { padding-bottom: 9rem; }

/* --- 33-7 下層ページ：目次の 01〜08 が上にずれて見える ---
   ::before に top: .1em を指定していたため、行の高さ（1.7）の中で
   本文より上に浮いていました。同じ行送りに乗せます。 */
.onb-index02-chapter-h::before,
.onb-index01-chapter-h::before {
    top: 0;
    line-height: inherit;
}

/* --- 33-8 下層ページ：関連記事の●を黄色（サイトのタイプ色2）に --- */
.related-article01-list li::before { background-color: var(--c-beige); }

/* --- 33-9 下層ページ：h3の太さを 800 → 700 に（20-5の指定を上書き） --- */
#low-page h3:not([class]) { font-weight: 700; }


/* =========================================================
   33-SP
   ========================================================= */
@media screen and (max-width: 767px) {

    /* --- 33-10 MV：リード文のシャドウは出さない ---
       32-1 でPC向けに付けた影が、黒文字になるSPにも効いていました。 */
    .main-visual__text { text-shadow: none; font-size:1.5rem;font-weight:normal;}

    /* --- 33-11 会社詳細（sec03）：施工事例のアローを少し外側へ ---
       PCは 28-6 で 6.4rem の余白を作っています。SPも同じ考え方で、
       アロー（3.4rem）が画像に重ならない程度に余白をとります。
       ▼詰めたいときはこの値だけ変えてください。 */
    .sec03 .slider-container .case-box { padding-right: 3.8rem; padding-left: 3.8rem; }

    /* --- 33-12 市町村（sec07）：イラストを小さく（カードの縦幅を抑える） ---
       余白を「左右だけ広く／上下は小さく」に分けました。
       ▼イラストの大きさは --map-pad-x（左右の余白）で調整します。大きいほど小さくなります。 */
    .city-card__img {
        --map-pad-x: 2.6rem;
        --map-pad-y: 1rem;
    }
}


/* =========================================================
   34. 2026-09-10（8回目）
   ========================================================= */

/* --- 34-1 PCヘッダーナビ：文言を静的に短くしたので折り返し指定を見直す ---
   カテゴリ名をそのまま出すと4行になってしまうため、`inc/pc_gnav.php` の
   $pc_gnav_nav_labels でナビの文言だけ短いものに差し替えています（<br>で改行）。
   CSS側は、その <br> の位置で素直に2行になるようにします。
   ▼配列に無いカテゴリはカテゴリ名がそのまま出るので、
     そのときの保険として max-width（折り返す幅）は残しています。 */
@media screen and (min-width: 768px) {
    .pc-gnav__link { max-width: 11em; }
    .pc-gnav__label {
        display: block;
        white-space: normal;
    }
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
    .pc-gnav__link { max-width: 9.5em; }
}


/* =========================================================
   35. 2026-09-10（9回目・コーディングチェック対応）
   ========================================================= */

/* --- 35-1 見出しの英字装飾（.en-label）を h2 の外に出した ---
   コーディングチェック「Hタグ内に不要な要素が含まれていない（英字装飾はNG）」への対応です。
   HTML側を <h2><span class="en-label">…</span>…</h2> から
   <p class="en-label en-label--h2">…</p><h2>…</h2> に変えたので、
   h2 が持っていた中央寄せと下マージンを en-label 側にも持たせます。
   ▼見た目は変わりません（位置・余白とも従来どおり）。 */
.en-label--h2 {
    margin: 0 0 2.2rem;
    text-align: center;
}
@media screen and (max-width: 767px) {
    .en-label--h2 { margin-bottom: 1.6rem; }
}


/* =========================================================
   36. 2026-09-10（10回目）
   ========================================================= */

/* --- 36-1 アローアイコンを細く・大きさを揃える -------------------
   テーマ既定の `img/arrow-01-black-right.svg` は「塗りつぶしの三角」で、
   しかも縦長（327.8 × 512）です。1.4rem角の枠に「幅100%」で敷いていたため、
   ・右向き … 1.4rem × 2.19rem（枠からはみ出す）
   ・下向き … 1.4rem × 0.90rem
   と大きさがバラバラでした。
   線だけのシェブロン（正方形のSVG）に差し替えて、太さと大きさを揃えます。
   ▼太さは SVG の中の stroke-width（1.6）で調整できます。
   ▼色を変えたいときは %231A1A1A（＝#1A1A1A）の部分を書き換えてください。 */
:root {
    /* 正方形（ハンバーガーメニュー用：右向き／下向きで同じ大きさになります） */
    --arw-sq-right: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2016%2016%22%20fill=%22none%22%20stroke=%22%231A1A1A%22%20stroke-width=%221.6%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M6%203.2%2010.8%208%206%2012.8%22/%3E%3C/svg%3E");
    --arw-sq-down:  url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2016%2016%22%20fill=%22none%22%20stroke=%22%231A1A1A%22%20stroke-width=%221.6%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M3.2%206%208%2010.8%2012.8%206%22/%3E%3C/svg%3E");
    /* 縦長（見出しの行末に置く用。元の三角と同じくらいの縦横比） */
    --arw-right:    url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%209%2014%22%20fill=%22none%22%20stroke=%22%231A1A1A%22%20stroke-width=%221.5%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M2.2%201.6%207%207%202.2%2012.4%22/%3E%3C/svg%3E");
}

/* ハンバーガーメニュー（SPのナビ） */
.gnavi-list__link::after {
    width: 1.2rem;
    height: 1.2rem;
    background-image: var(--arw-sq-right);
    background-size: contain;      /* 正方形なので右向き・下向きが同じ大きさになります */
}
.gnavi-list__link--toggle::after { background-image: var(--arw-sq-down); }
/* 3章で右向きだけ小さくしていた指定（縦長SVG対策）は、正方形にしたので不要です */
.gnavi-list__link:not(.gnavi-list__link--toggle)::after { background-size: contain; }
/* 第2階層の「└」は文字なので、上の大きさ指定を打ち消します */
.gnavi-list__low .gnavi-list__link::after {
    width: auto;
    height: auto;
    background-image: none;
}

/* 下層ページ：見出しにリンクを置いたときの行末アロー（h2〜h5） */
#low-page h2:not([class]) a,
#low-page h3:not([class]) a,
#low-page h4:not([class]) a,
#low-page h5:not([class]) a {
    background-image: var(--arw-right);
    background-size: auto 1em;
}
/* SPフッターのメニュー（開閉式）も同じ三角を使っているので合わせます */
@media screen and (max-width: 767px) {
    .footer-menu-title__link--not-toggle::after,
    .footer-menu__link {
        background-image: var(--arw-right);
    }
    /* カテトップの開閉アイコン（▼／▲）も線のシェブロンに */
    .footer-menu-title__link::after {
        background-image: var(--arw-sq-down);
        background-size: auto 1em;
    }
}

/* --- 36-2 会社詳細（sec03）：アコーディオンを開くと背景の四角が動く -------
   背景モチーフのうち3つが「セクションの高さ基準」で置かれていたため、
   アコーディオンを開いて高さが変わると一緒に動いていました。
   ・.sec03::after            … bottom: 8rem（下端から）
   ・.sec03-l-center::before  … top: 32%
   ・.sec03-l-center::after   … top: 63%
   これを「上端からの固定距離（rem）」に置き換えます。
   ※閉じた状態の見た目は今までと同じ位置になる値を入れています。
   ▼位置を動かしたいときは、下の3つの数値だけを変えてください。
   ※.sec03::after だけ min() を挟んでいます。会社紹介が短いページでも
     セクションの外にはみ出さないようにするための保険です。 */
.sec03::after {
    top: min(351rem, calc(100% - 44rem));
    bottom: auto;
}
.sec03-l-center::before { top: 126rem; }
.sec03-l-center::after  { top: 249rem; }

/* --- 36-3 住宅展示場（sec08）：h2が文字落ちする ------------------------
   本文幅は 1400px で頭打ちなのに、文字サイズ（rem）は画面幅に応じて
   14px まで大きくなるため、1900px 前後から
   「愛知にある住宅展示場を一気にチェック！」が1行に収まらず、
   末尾の数文字だけが2行目に落ちていました。
   この見出しだけ少し小さく・字間を詰めて、1行に収めます。
   ▼文言を長くするときは、この font-size を下げてください。 */
@media screen and (min-width: 768px) {
    .sec08 .section-title04 {
        font-size: 3.8rem;
        letter-spacing: .02em;
    }
}

/* --- 36-4 【不具合】フッターの「カテトップ」に下線が付く -----------------
   33-4 で `li a[href^="http"]` 対策を入れましたが、カテトップのリンクは
   <p class="footer-menu-title"> の中にあるため、2章の `p a[href^="http"]`
   （詳細度 0,1,2）のほうが強いままでした。
   `.footer-area a[href^="http"]`（0,2,1）にして、li・p のどちらにも勝つようにします。 */
.header-area a[href^="http"],
.gnavi-area a[href^="http"],
.pc-gnav a[href^="http"],
.footer-area a[href^="http"] { text-decoration: none; }

/* --- 36-5 下層ページ：目次の 01〜08 がまだ上にずれる ---------------------
   33-7 では top だけを 0 にしていましたが、元の指定に
   `transform: translateY(-50%)` と `height: 2rem` が残っていたため、
   数字が 1rem ぶん上に引き上げられたままでした。両方とも打ち消します。 */
.onb-index01-chapter-h-two::before,
.onb-index01-chapter-h-three::before {
    top: 0;
    height: auto;
    line-height: inherit;
    transform: none;
}

/* --- 36-6 下層ページ 追加パーツ①：スライダーのアローの位置 ---------------
   ねらい：アローを「画像の上下中央」に置き、「画像の少し外側」に出す。
   ・外側に出す … スライダーの箱（.slider-container）を画像より左右に広げ、
     その余白（ガター）にアローを置きます。
     ※.swiper には overflow:hidden と clip-path が効いているので、
       アローをマイナス値で外に出すと切れてしまいます。箱ごと広げるのが確実です。
   ・上下中央 … スライドの高さには引用元キャプションぶんも含まれるため、
     50% だと画像の中心より下になります。画像の実寸を js/custom-add.js が
     --slider-img-h に入れているので、その半分の位置に置きます。
   ▼画像とアローのアキは 11.2rem（左右合計）で調整できます。 */
@media screen and (min-width: 768px) {
    .low-center-img-box .slider-container { max-width: 76%; }
    .low-center-img-box .slider-container .low-center-img {
        max-width: calc(100% - 11.2rem);
        margin-left: auto;
        margin-right: auto;
    }
}
.low-center-img-box .slider-container .swiper-button-prev,
.low-center-img-box .slider-container .swiper-button-next {
    top: calc(var(--slider-img-h, 100%) / 2);
    transform: translateY(-50%);
}

/* --- 36-7 下層ページ：関連記事のリンクに下線が付く ------------------------
   36-4 と同じ理由（2章の `li a[href^="http"]` が勝っていた）です。 */
.related-article01-list a[href^="http"],
.relations-box a[href^="http"] { text-decoration: none; }


/* =========================================================
   36-SP
   ========================================================= */
@media screen and (max-width: 767px) {

    /* --- 36-8 MV：サイトロゴ〜h2 を円の上下中央に ---
       31-6 で「その“こだわり”を」を中央に合わせるため 2.8vw ぶん下げていましたが、
       ブロック全体としては下寄りに見えるため、円の中心（52%）に戻します。
       ▼位置はこの1行だけで調整できます。 */
    .main-visual__inner { top: 50%; }

    /* --- 36-9 会社詳細（sec03）：施工事例の左右paddingをやめる ---
       33-11 で左右に 3.8rem の余白をとってアローを画像の外に出していましたが、
       画像を大きく見せたいので余白は0にし、アローは画像の上に重ねます
       （アロー自体は .slider-container の内側なので、はみ出しません）。 */
    .sec03 .slider-container .case-box {
        padding-right: 0;
        padding-left: 0;
    }
}


/* =========================================================
   37. 2026-09-11（11回目）
   ========================================================= */

/* --- 37-1 会社一覧（sec04）：h3直上の赤い横線を削除 ---
   32-2 で復活させた border-top を、あらためて外します。
   （31-2 と同じ状態。`.thb-box-full` の -1px も戻します） */
.sec04 .arrow-title { border-top: 0; }
.sec04 .thb-box-full { margin-top: 0; }

/* --- 37-2 会社一覧（sec04）：ジャンルタグの色を簡易3選に合わせる ---
   #666 → 赤 → #333 と変えてきましたが、簡易3選（.type-band--1〜3）と同じ
   タイプ別の3色に戻します。
   　設計事務所＝赤（--c-type1）／ハウスメーカー＝黄（--c-type2）／工務店＝青（--c-type3）
   ▼該当しないタグは従来どおり薄いグレーのままです。 */
.genre-tags .genre-tag--office.is-active {
    background: var(--c-type1);
    border-color: var(--c-type1);
    color: var(--c-base);
}
.genre-tags .genre-tag--maker.is-active {
    background: var(--c-type2);
    border-color: var(--c-type2);
    color: var(--c-base);
}
.genre-tags .genre-tag--koumuten.is-active {
    background: var(--c-type3);
    border-color: var(--c-type3);
    color: var(--c-base);
}


/* =========================================================
   37-SP
   ========================================================= */
@media screen and (max-width: 767px) {

    /* --- 37-3 簡易3選（sec01）：タイプ帯のサブ文言を1行に ---
       HTML側の <br> を <br class="pc_br"> に変えて、SPでは改行しないようにしました。
       そのうえで文字を 1.35rem → 1.6rem に。
       1行に収めるための実測：帯の内側は約252px、文言のいちばん長い
       「実績とブランド力にこだわるなら」が 1.6rem で約250px とギリギリだったため、
       ・字間を 0 に
       ・帯の左右パディングを 1.6rem → 1.2rem
       ・アイコンとの間隔を 0.8rem → 0.6rem
       の3つで余白を稼いでいます（実測で約12pxの余裕）。
       ▼文言を長くするときは、この font-size を下げてください。 */
    .type-band { padding-right: 1.2rem; padding-left: 1.2rem; gap: .6rem; }
    .type-band__sub {
        font-size: 1.6rem;
        letter-spacing: 0;
    }

    /* --- 37-4 会社詳細（sec03）：モデルハウス名（h6）を h5 より少し小さく ---
       h5（.section-title05）はSPで 2.0rem です。 */
    .studio-block__name { font-size: 1.8rem; }
}


/* =========================================================
   38. 2026-09-11（12回目）
   ========================================================= */

/* --- 38-1 【不具合】存在しない画像を読みに行ってコンソールエラーになる ---
   ・pagetop.png … ページトップボタンは 14章でCSS描画に変えたので、
     `footer.php` から <img> ごと外しました（CSS側は変更なし）。
   ・sec01-b.png … テーマ既定の背景画像です。`header.php` の preload を外し、
     ここで background-image も打ち消します（色は従来どおり）。 */
.sec01 { background-image: none; }
.mainvisual-low { background-image: none; }

/* --- 38-2 PCヘッダーナビ：カテトップどうしの間隔を広げる ---
   33-2 で var(--s2)（1.6rem）にしていたものを var(--s3)（2.4rem）へ。
   画面が狭いPC（〜1439px）は var(--s1) → var(--s2) に。
   ▼詰めたい・広げたいときはこの2か所の数値だけで調整できます。 */
@media screen and (min-width: 768px) {
    .pc-gnav__list { gap: var(--s3); }
}
@media screen and (min-width: 768px) and (max-width: 1439px) {
    .pc-gnav__list { gap: var(--s2); }
}

/* --- 38-3 PCヘッダーナビ：ホバーで開くパネルのカテトップ見出し ---
   font-weight: 800 で小さい字が潰れて見えたので 700 に。 */
@media screen and (min-width: 768px) {
    .pc-gnav__panel-head { font-weight: 700; }
}

/* --- 38-4 簡易3選（sec01）：見出し構造の変更にあわせた調整 ---
   HTML側を
     <p class="type-band">…</p> → <h3 class="type-band">…</h3>
     <p class="type-label">設計事務所</p> ＋ <h3 class="title-catch">社名</h3>
       → <h4 class="title-catch"><span class="type-label">設計事務所</span>社名</h4>
   に変えています。ラベルが .title-catch の中に入ったことで
   `.sec01 .title-catch span`（サブ行用の指定）が当たってしまうため、打ち消します。
   ※見た目は従来どおりです。 */
.sec01 .title-catch .type-label {
    display: block;
    width: -moz-fit-content;
    width: fit-content;
    margin: 0 auto var(--s1);
    padding: .4rem 1.6rem;
    color: var(--c-base);
    font-size: 1.3rem;
    font-weight: 700;
    letter-spacing: .06em;
    line-height: 1.4;
}

/* --- 38-5 テキストリンク（.btn-link）：アローと文字の間隔を少し広げる ---
   テーマ既定は padding-right: 2rem で、アロー（1em分＝約1.9rem）とほぼ同じ幅でした。
   em指定にして、文字サイズが変わっても同じ見え方になるようにしています。
   ▼アキを変えたいときはこの 2em だけを調整してください。 */
.btn-link a { padding-right: 2em; }

/* --- 38-6 フッター：サイトマップのアローが白くて見えない ---
   コピーライト帯を黒→薄いグレーに変えた（13章）ため、
   テーマ既定の白いアロー（arrow-01-right.svg）が見えなくなっていました。
   36-1 で用意した黒い線のシェブロンに差し替えます。 */
.footer-sitemap__link { background-image: var(--arw-right); }

/* --- 38-7 サイト名リンクにホバーアクション --- */
.header-title a { transition: opacity .25s; }
.header-title a:hover { opacity: .6; }


/* =========================================================
   38-SP
   ========================================================= */
@media screen and (max-width: 767px) {

    /* --- 38-8 外部リンクボタンと電話ボタンが近い ---
       22-5 で -1.6rem 詰めていましたが、近すぎたので通常の間隔に戻し、
       さらに少しだけアキをとります。
       ▼アキはこの1行で調整できます。 */
    .btn-web + .btn-tel { margin-top: var(--s2); }

    /* --- 38-9 会社詳細（sec03）：アコーディオンボタンの行間 --- */
    .sec03 .acc-more-btn { line-height: 1.7; margin-bottom:1rem;}

    /* --- 38-10 基礎知識（sec05）：h3の強調部分がh2より大きく見える ---
       SPのh2（.section-title04）は 2.4rem です。h3はそれより少し小さくします。
       ▼「愛知の」の部分は .ttl-area（.74em）で連動して小さくなります。 */
    .sec05 .twb-arrow-title { font-size: 2.2rem; }

    /* --- 38-11 基礎知識（sec05）：h2直下のアキを少し詰める ---
       テーマ既定のSPは margin-bottom: 6rem です。 */
    .sec05 .section-title04 { margin-bottom: 3.6rem; }

    /* --- 38-12 下層ページ：見出しの文字サイズ ---
       h2 2.2 / h3 2.0 / h4 1.8 / h5 1.7 / h6 1.6rem に統一します。 */
    #low-page h2:not([class]) { font-size: 2.2rem; }
    #low-page h3:not([class]) { font-size: 2.0rem; }
    #low-page h4:not([class]) { font-size: 1.8rem; }
    #low-page h5:not([class]) { font-size: 1.7rem; }
    #low-page h6:not([class]) { font-size: 1.6rem; }

    /* --- 38-13 下層ページ：回り込み画像のキャッチを 2.0rem → 1.8rem --- */
    #low-page .low-center-img-catch,
    #low-page .low-left-img-catch,
    #low-page .low-right-img-catch { font-size: 1.8rem; }

    /* --- 38-14 下層ページ：テーブルのはみ出し対策 ---
       【確認結果】SPではテーマ側でセルが縦並びになる作りのため、
       4列・5列になっても画面からはみ出しません（390 / 375 / 320px で実測ずみ）。
       残るリスクは「途中で改行できない長い文字列（URLなど）」がセルに入るケースなので、
       そこだけ折り返すようにしておきます。 */
    #low-page table th,
    #low-page table td { overflow-wrap: anywhere; }
}


/* =========================================================
   39. 2026-09-14（14回目）
   ========================================================= */

/* --- 39-1 会社詳細（sec03）：施工事例の縦位置の写真が間延びして見える ---
   スライダーの画像は幅100%で表示していたため、縦長の写真（gh-p12441.jpg など）だけ
   カードがとても縦長になっていました。高さの上限を決めて、中央に置きます。
   ▼大きさはこの max-height だけで調整できます。 */
.sec03 .case-box__side img {
    width: auto;
    max-width: 100%;
    max-height: 30rem;
    margin-left: auto;
    margin-right: auto;
}
@media screen and (max-width: 767px) {
    /* SPは1カラムなので、もう少し高さを許容します */
    .sec03 .case-box__side img { max-height: 24rem; }
}

/* --- 39-2 会社詳細（sec03）：口コミの見出しの高さ ---
   27-2 の min-height（3行ぶんを常に確保）をやめ、
   `js/common.js` の matchHeight（`.sec03 .voice-card__title`）で
   実際にいちばん高いカードに合わせるようにしました。
   → 見出しが2行だけの行では、余白が余らなくなります。 */
@media screen and (min-width: 768px) {
    .voice-card__title { min-height: 0; }
}

/* --- 39-3 会社詳細（sec03）：地図と次の見出しのアキを広げる ---
   拠点の区切りが分かりやすいように、地図の下の余白を 2.4rem → 4rem に。
   ▼アキはこの1行で調整できます。 */
.studio-block__gmap { margin-bottom: var(--s5); }

/* --- 39-4 会社詳細（sec03）：注釈（※参照元）と直後の見出しのアキ ---
   トヨタホーム愛知のモデルハウス欄で、注釈と最初の拠点名が近すぎたため。 */
.sec03 .caption + .studio-block { margin-top: var(--s5); }

/* --- 39-5 会社一覧（sec04）：h3の高さ ---
   33-5 の min-height（2行ぶんを常に確保）をやめ、
   `js/common.js` の matchHeight（`.sec04 .arrow-title`）でそろえます。
   ※アコーディオンの中の6社は、開いたときに `js/custom-add.js` が resize を
     発火させるので、そのタイミングで matchHeight が計算し直されます。 */
.sec04 .arrow-title { min-height: 0; }

/* --- 39-6 セクションのリード文（sec05 / sec07）---
   簡易3選（.sec01-lead）と同じ体裁です。 */
.section-lead {
    max-width: 80rem;
    margin: -1rem auto var(--s4);
    font-size: 1.5rem;
    line-height: 1.9;
    text-align: center;
}
@media screen and (max-width: 767px) {
    .section-lead { text-align: left; margin-bottom: var(--s3); }
}


/* =========================================================
   39-SP
   ========================================================= */
@media screen and (max-width: 767px) {

    /* --- 39-7 簡易3選（sec01）：電話ボタンの上のアキを詰める ---
       38-8 で全体を var(--s2)（1.6rem）にしましたが、
       3選のカードの中では広く見えるため、ここだけ半分にします。 */
    .sec01 .btn-web + .btn-tel { margin-top: 0; }
	.sec01 .slider-container--small { margin-bottom: 1.5rem; }
    .main-visual__heading-lg .mv-small { font-size: 4.5vw; }
}
