*{box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{margin:0;font-family:"Zen Maru Gothic",system-ui,sans-serif;color:#22301b;background:#ffffff;line-height:1.9;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
  img{max-width:100%;display:block}
  a{color:#2f5d1e;text-decoration:none}
  a:hover{color:#f39800}
  h1,h2,h3,h4,p,ul,figure{margin:0}
  ul{list-style:none;padding:0}
  @keyframes ms-kb{0%{transform:scale(1.06)}100%{transform:scale(1.14)}}
  @keyframes ms-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(9px)}}
  @keyframes ms-marquee{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
  @keyframes ms-ldspin{to{transform:rotate(360deg)}}
  @keyframes ms-ldpulse{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto}
    [data-hero-img]{animation:none!important}
    [data-marquee]{animation:none!important}
    [data-ld-ring]{animation:none!important}
    [data-ld-mark]{animation:none!important}
  }

/* ===== 受領ページCSS #2（11ページで共通）===== */
*{box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{margin:0;font-family:"Zen Maru Gothic",system-ui,sans-serif;color:#22301b;background:#ffffff;line-height:1.95;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
  img{max-width:100%;display:block}
  a{color:#2f5d1e;text-decoration:none}
  a:hover{color:#f39800}
  h1,h2,h3,h4,h5,p,ul,ol,dl,dd,dt,figure{margin:0}
  ul{list-style:none;padding:0}
  span.line-chunk{display:inline-block;overflow-wrap:anywhere;word-break:normal}
  @keyframes ms-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(9px)}}
  @media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto} }
  /* 縦長イラストのパネル：タブレット縦/スマホではカードの下へ回し、バストアップに切り抜く */
  @media (max-width:900px){
    [data-art-below]{order:9;flex:1 1 100% !important;width:100%;min-width:0 !important;min-height:0 !important;height:clamp(210px,56vw,290px) !important;overflow:hidden;align-items:flex-start !important;margin-top:clamp(10px,3vw,18px)}
    [data-art-below] img{height:auto !important;max-height:none !important;width:auto !important;max-width:min(300px,72%) !important;object-position:top}
  }


/* ===== 40_skin.css ===== */
/* ============================================================
   ★★★ このファイルは【全案件共通の資産】です。案件では編集しないでください ★★★
   ------------------------------------------------------------
   （Claude Code / Claude Design / 手作業、いずれの経路でも同じです）

   ■ 案件ごとの調整は、必ず `override.css` に書いてください。
     読み込み/結合順が  … → style.css → cuezilla-skin.css → 【override.css】  なので、
     override.css に書いた指定は本ファイルに打ち消されません。**案件の上書きが効く唯一の場所です。**
     （例: カード面を白にしたい → override.css に `:root{ --dyn-surface:#fff; }`）

   ■ なぜ編集してはいけないか
     本ファイルを案件で書き換えた瞬間、その案件の skin は共通資産から切り離されます。
     以後、共通側で直した修正（カード高さの不揃い／サイドバーの可読性／
     フォーム送信ボタンの崩れ 等）が **その案件には二度と届きません**。
     実際に S01189 で本ファイルの §0 が案件調整で書き換えられ、共通修正が届かなくなりました。
     「毎案件おなじ崩れを直している」の原因はこれです。

   ■ 共通で直すべき崩れを見つけたら
     案件で握り込まず、正本 `skin/cuezilla-skin.css` へ還流してください（全案件に効きます）。
     還流し忘れると、次の同期でその修正は消えます。

   詳細は R-30（70_運用ルール/運用ルール集.md）。
   ============================================================ */

/* ============================================================
   CueZilla 動的パーツ スキンキット v1.0
   ------------------------------------------------------------
   目的: ブログ/施工実績(blog-ex)/お問い合わせ/パンくず/ページヘッダー等の
         CueZilla 既定パーツを、サイトのトンマナ（ダーク/ライト・ブランド色・
         フォント・角丸）に "自動で寄せる" 汎用CSS。案件ごとの調整を最小化する。

   思想:
     (1) 色は CueZilla テーマ変数(--main-color 等)から自動連動
         → サイトのテーマ設定がそのまま skin にも効く（色は一元管理）
     (2) フォント/角丸/グリッド幅はトークンで指定（テーマ変数に無いため）
     (3) partsNNN は採番が可変だが接尾辞は共通(_post_wrap 等)
         → 属性セレクタ [class*="_xxx"] で番号非依存に当てる（単一属性セレクタまで。積んで詳細度を稼がない）

   ★適用範囲と安全契約（重要・memory: cuezilla-css-safety-contract）:
     ・本skinは「CueZilla既定の動的パーツ」だけを寄せる。サイトのフリーコーディング設計には当てない
       （生成サイトCSSは変数非依存＋具体値＋自作接頭辞クラスで組む＝構造的に非衝突・skinと干渉しない）。
     ・[class*=…]を積んで詳細度を同点/超過させる手法は禁止（脆い・過剰マッチ・アーマーレース）。
       単一の番号非依存セレクタ＋!important1個で当てる（theme_defaultは非importantなので確定勝ち）。
     ・!important可は「レイヤーで越えられない相手」＝theme_default／body内インライン／BSユーティリティ／
       .partsNNN_blog_<ID>(0,3,0) のみ。後者(0,3,0)+!importantには詳細度で負けるため、
       負けた時だけ §14 の手順で実採番(0,3,1)を【案件CSS】に足して勝つ（汎用skinには番号を書かない）。
     ・変数の注意：実機は body内コンポ<style>の:rootが7色(--main-color等)を撒きうる（490件中16件）。
       →§0の--dyn-*はその頁で乗っ取られ得る。動的パーツの色合わせには許容だが、サイト設計の主機構にしない。

   使い方:
     1. §0 のトークンを案件に合わせて調整（ダーク/ライトはプリセットをコピー）
     2. CueZilla テーマカラー(--main-color 等)をブランド値に設定
     3. 本ファイルをサイト全体CSS(AddCssInfo)へ貼る（サイト固有のフリーコーディングCSSの後ろ）
   ============================================================ */


/* ============================================================
   §0  トークン ─ ここだけ案件ごとに調整
   ============================================================ */
:root{
  /* --- 色: CueZilla テーマ変数から自動取得（無い場合のフォールバック付き） ---
     ※これらは【動的パーツの色合わせ用】。生成サイトCSSはこの変数に依存せず具体値で書く（安全契約）。
       実機では body内コンポ<style>の:rootが --main-color 等を頁単位で上書きしうる＝--dyn-*も追従する。 */
  --dyn-bg:        var(--background-color, #ffffff);   /* ページ/セクション背景 */
  --dyn-surface:   var(--temporary-color, #f4f4f2);    /* カード/パネル/入力欄の面 */
  --dyn-text:      var(--text-color, #222222);         /* 本文 */
  --dyn-heading:   var(--text-color, #111111);         /* 見出し */
  --dyn-muted:     var(--sub-color, #8a8a8a);          /* 補助/日付 */
  --dyn-border:    var(--sub-color, #dddddd);          /* 罫線/枠 */
  --dyn-accent:    var(--main-color, #1e3a5f);         /* アクセント（ボタン/チップ/見出しバー） */
  --dyn-accent-2:  var(--link-color, var(--main-color, #1e3a5f)); /* リンク/ホバー */
  --dyn-on-accent: #ffffff;                             /* アクセント面の上の文字 */

  /* --- フォント（site.css の :root に定義があればそれを使用） --- */
  --dyn-font-display: var(--font-display, "Noto Serif JP","Yu Mincho",serif);
  --dyn-font-body:    var(--font-body, "Noto Sans JP","Yu Gothic",sans-serif);
  --dyn-font-numeric: var(--font-numeric, "EB Garamond","Noto Serif JP",serif);

  /* --- 角丸（チップ/ボタン/カード）。角なしにするなら 0 --- */
  --dyn-radius: 6px;
  /* --- 一覧カードの最小幅 / 段組ギャップ --- */
  --dyn-card-min: 300px;
  --dyn-gap: 32px;
}

/* === テーマ プリセット（使う方を §0 の後にコピペして上書き） =========
   【ダーク】
   :root{
     --dyn-bg:#0A0A0A; --dyn-surface:#111110; --dyn-text:#F4F1EC; --dyn-heading:#FAF7F1;
     --dyn-muted:#8C857A; --dyn-border:#3A352D; --dyn-accent:#8E3A22; --dyn-accent-2:#B0533A;
     --dyn-on-accent:#FAF7F1; --dyn-radius:0;
   }
   【ライト】
   :root{
     --dyn-bg:#ffffff; --dyn-surface:#f7f7f5; --dyn-text:#222222; --dyn-heading:#111111;
     --dyn-muted:#8a8a8a; --dyn-border:#e3e3e3; --dyn-accent:#1e3a5f; --dyn-accent-2:#1e3a5f;
     --dyn-on-accent:#ffffff; --dyn-radius:6px;
   }
   ※ CueZilla テーマ変数(--main-color 等)を設定する場合は §0 が自動連動するのでプリセット不要。
   ============================================================ */


/* ============================================================
   §1  パンくず（CueZilla parts###_breadcrumb / p-breadcrumb）
   実markup: div.parts###_breadcrumb.p-breadcrumb.c-breadcrumb
             > ul.p-breadcrumb__inner(BreadcrumbList) > li.p-breadcrumb__item(ListItem)
   CueZilla共通CSSにパンくず装飾は無い → skin側で横並び・区切り・配色を付与
   ============================================================ */
[class*="_breadcrumb"], .p-breadcrumb{ background:var(--dyn-bg) !important; }
.p-breadcrumb__inner{
  list-style:none; margin:0 auto; padding:14px 24px;
  max-width:1200px; display:flex; flex-wrap:wrap; align-items:center;
}
.p-breadcrumb__item{
  display:inline-flex; align-items:center;
  color:var(--dyn-muted) !important; font-family:var(--dyn-font-body);
  font-size:.78rem; letter-spacing:.04em;
}
.p-breadcrumb__item a{ color:var(--dyn-muted) !important; text-decoration:none; }
.p-breadcrumb__item a:hover{ color:var(--dyn-accent-2) !important; text-decoration:underline; }
.p-breadcrumb__item:last-child{ color:var(--dyn-text) !important; }   /* 現在地 */
/* 区切り（2件目以降の前に "›"） */
.p-breadcrumb__item + .p-breadcrumb__item::before{
  content:"\203A"; margin:0 .6em; color:var(--dyn-border) !important; font-size:.95em;
}
.p-breadcrumb meta{ display:none; }   /* schema.org の <meta itemprop="position"> は非表示 */


/* ============================================================
   §2  ページヘッダー（[class*="_article_header"]）画像上のタイトル
   ============================================================ */
[class*="_article_header"] .ja, [class*="_article_header"] h1, [class*="_article_header"] h2{
  color:var(--dyn-heading) !important; font-family:var(--dyn-font-display) !important;
  text-shadow:0 2px 14px rgba(0,0,0,.5) !important;
}
[class*="_article_header"] .en{ color:var(--dyn-muted) !important; font-family:var(--dyn-font-numeric) !important; letter-spacing:.1em; text-shadow:0 1px 10px rgba(0,0,0,.5) !important; }


/* ============================================================
   §3  ページネーション（2系統。テーマCSSの持ち方が違うので扱いを分ける＝崩れ防止）
   ・.pagination_*（enjoyworks系）            … テーマが素 → 体裁＋色を一式付与
   ・[class*="_pagenation"]（parts222/225/228系）… テーマが体裁を持つ（flex/padding/border/白黒ハードコード）
        → レイアウト・サイズはテーマに任せ、ハードコードの白黒(#000/#fff)だけブランド色へ置換（最小限）。
          a/.current 以外（余白用の素の <span>）には触らない＝二重ボックス化を防ぐ。
          --dyn-accent は §0 で var(--main-color) にバインド済み＝サイトのCMS色に自動一致（案件側の手当て不要）。
   ============================================================ */
/* (A) pagination_* 系：テーマ装飾が無いので一式付与 */
.pagination_num, .pagination_prev, .pagination_next{
  font-family:var(--dyn-font-numeric); color:var(--dyn-text) !important;
  border:1px solid var(--dyn-border) !important; border-radius:var(--dyn-radius);
  min-width:40px; height:40px; display:inline-flex; align-items:center; justify-content:center; text-decoration:none;
}
.pagination_num.current{ background:var(--dyn-accent) !important; border-color:var(--dyn-accent) !important; color:var(--dyn-on-accent) !important; }
.pagination_num:hover, .pagination_prev:hover, .pagination_next:hover{ border-color:var(--dyn-accent-2) !important; color:var(--dyn-accent-2) !important; }

/* (B) _pagenation 系：色だけ寄せる（ジオメトリはテーマのまま＝箱を再定義しない） */
[class*="_pagenation"] a{ border-color:var(--dyn-accent) !important; color:var(--dyn-text) !important; }
[class*="_pagenation"] span.current, [class*="_pagenation"] .current, [class*="_pagenation"] .active{
  background:var(--dyn-accent) !important; border-color:var(--dyn-accent) !important; color:var(--dyn-on-accent) !important;
}
[class*="_pagenation"] a:hover{ border-color:var(--dyn-accent-2) !important; color:var(--dyn-accent-2) !important; }
.pe-none{ opacity:.3; pointer-events:none; }


/* ============================================================
   §4  ブログ / 施工実績(blog-ex) 一覧（番号非依存）
   ============================================================ */
/* 一覧セクションの地 */
[class*="_post_list"], [class*="_post_wrap"]{ } /* 下で個別指定 */
/* カード並び（最小幅を確保して細くなりすぎない） */
[class*="_post_list"]{ display:grid !important; grid-template-columns:repeat(auto-fill, minmax(var(--dyn-card-min), 1fr)) !important; gap:var(--dyn-gap) !important; }
/* カード */
[class*="_post_wrap"]{
  /* カード等寸化：中身を縦に積み、内側の <a>/本文枠を flex で伸長させて高さを揃える（S01189還流） */
  display:flex !important; flex-direction:column;
  margin:0 !important;   /* theme_default の margin-bottom(55px等)残存で最終行カードだけ高さ不揃いになるのを打ち消す */
  width:auto !important; max-width:none !important; text-decoration:none;
  background:var(--dyn-surface) !important; border:1px solid var(--dyn-border) !important;
  border-radius:var(--dyn-radius); overflow:hidden;
  transition:transform .3s ease, border-color .3s ease;
}
[class*="_post_wrap"]:hover{ transform:translateY(-4px); border-color:var(--dyn-accent-2) !important; }
[class*="_post_wrap"] > a{ display:flex; flex-direction:column; flex:1 1 auto; color:inherit; }  /* カード全体ラップ<a>を縦伸長（内容を上下に満たす） */
/* サムネ等寸化：グリッド列の幅から高さを算出（幅制約下＝§6.5の aspect-ratio×height 併用の罠には該当しない） */
[class*="_post_img"]{ width:100%; display:block; border-radius:0; aspect-ratio:16/10; overflow:hidden; }
[class*="_post_img"] img{ width:100%; height:100%; object-fit:cover; display:block; }
/* カード内のテキストに左右余白 */
[class*="_post_status"]{ border:none !important; background:transparent !important; margin:14px 16px 0 !important; padding:0 !important; display:flex !important; flex-wrap:wrap; justify-content:flex-start !important; gap:10px; align-items:center; }
[class*="_post_status"]:has([class*="_title-excerpt"]){ display:block !important; }   /* parts228系「日付｜タイトル」の横並びを解除（:has非対応環境ではflex-wrapで折返し） */
[class*="_post_title-excerpt"]{ padding:10px 16px 16px !important; flex:1 1 auto; }   /* 本文枠を伸長＝カード等寸化の要 */
[class*="_post_status"]:has([class*="_title-excerpt"]) [class*="_title-excerpt"]{ padding:10px 0 16px !important; }   /* 施工実績は左端揃え */
[class*="_post_title"]{ font-family:var(--dyn-font-display) !important; color:var(--dyn-heading) !important; font-weight:700 !important; line-height:1.5; }
[class*="_post_excerpt"]{ color:var(--dyn-muted) !important; }
[class*="_post_date"]{ font-family:var(--dyn-font-numeric) !important; color:var(--dyn-muted) !important; }
/* カテゴリ/ステータスは1チップに。
   テーマは既に _post_category に border:1px solid var(--main-color) を持つ＝枠を“足す”と2重になるので
   同一要素に !important で単一の枠を確定（色は --dyn-accent=var(--main-color) で一致）。幅は % 制約を解除し content 幅に。 */
[class*="_post_category"]:not([class*="_sidebar"]), [class*="_post_status"] > span:last-child{
  /* :not(_sidebar) ＝ この§4チップ装飾が §5 の _sidebar_post_category_count へ漏れ二重適用されるのを防ぐ（S01189還流） */
  width:auto; max-width:none !important;
  background:var(--dyn-bg) !important; border:1px solid var(--dyn-accent) !important;
  border-radius:var(--dyn-radius); padding:2px 8px; color:var(--dyn-accent) !important;
}
.parts-blog-ex-tag_wrap{ display:flex; flex-wrap:wrap; gap:6px; padding:0 16px 14px; }
.parts-blog-ex_tag{ font-size:.72rem; color:var(--dyn-muted) !important; background:var(--dyn-surface) !important; border:1px solid var(--dyn-border); border-radius:var(--dyn-radius); padding:2px 8px; }

/* --- 一覧パーツ固有の崩れ2点（実共有CSS=theme parts222/225/228 を突き合わせて確定）---
   (a) 自動セクション見出し（「ブログ」「施工実績」等）の撤去：
       テーマは `.parts222_section h2 / .parts228_section h2` に
       color:var(--main-color)/font-size:35px/text-align:center を付与し、
       一覧上部に大見出しを自動描画する。自前の下層ヘッダー(hero)と二重化＝崩れ。
       → 一覧パーツ(_post_list を含む _section)直下の素の h2 だけ隠す。
         残したいサイトは案件CSSで個別に復帰。`:has()` 非対応保険に f_meiryo 版も併記。 */
[class*="_section"]:has([class*="_post_list"]) > h2,
[class*="_section"] > h2.f_meiryo{ display:none !important; }
/* (b) flex前提の余白スペーサー ::after の無効化：
       テーマは `.parts228_post_list::after{content:"";width:32.465%}` で flex の最終行詰めをする。
       §4 で _post_list を grid 化すると、この ::after が「空のゴースト列」になり最終行が片寄る。
       → grid では不要なので除去（content:none で擬似要素自体を消す）。 */
[class*="_post_list"]::after{ content:none !important; display:none !important; }


/* ============================================================
   §5  サイドバー / 最近の投稿 / カテゴリ記事数
   ============================================================ */
[class*="_sidebar"], .recent_posts_wrap{ color:var(--dyn-text); }
/* サイドバー見出し（「最近の投稿」「カテゴリ」）の可読性を確保。
   theme_default は `.partsNNN_sidebar h3{ background-color:var(--main-color); color:#fff }` と
   色を直当てするが、§12 の見出しリセットが**背景だけ**を transparent にするため、
   ライト基調の案件では「白地に白文字」で消える（ダーク案件では地に映えるため露見しない）。
   背景は戻さず（skinのフラット化方針を維持）、文字色だけトークンへ寄せて両基調で可読にする。
   あわせて左右パディングも解除する：`padding:15px 20px` は**帯があった前提**の内側余白のため、
   帯を透明化したまま残すと「見出しだけ20px字下げ」になり、直下の日付／タイトルと文頭がズレる。
   （詳細ページ側の .recent_post_title には下で同じ手当てをしており、一覧側だけ取り残されていた） */
[class*="_sidebar"] h3{ color:var(--dyn-heading) !important; padding-left:0 !important; padding-right:0 !important; }
[class*="_sidebar_post_title"], .recent_post_title{ font-family:var(--dyn-font-display) !important; color:var(--dyn-heading) !important; }
/* 「最近の投稿」見出し（詳細ページ側）の帯を外して一覧側と体裁を揃える。
   theme_default は `.recent_posts_wrap .recent_post_title{ background-color:var(--main-color); color:#fff }` で帯を敷くが、
   §12 の見出しリセットは (a) 包み(parts166_single_article / parts-blog-ex-single-wrap)が `_section` を含まない
   (b) 要素が <div>（h2/h3でない）── の2点で**届かず**、帯だけが生き残る。
   一方すぐ上の §5 が文字色を --dyn-heading（＝ライトでは濃色）へ寄せるため「濃い帯に濃い文字」となり、
   案件ごとに帯との視認性を見て文字色を手当てする必要があった。帯を外せば一覧（§12で帯が外れる）と揃い、手当ても不要になる。
   ※帯を活かしたい案件は案件側で `background:var(--dyn-accent); color:var(--dyn-on-accent)` を再指定する。 */
.recent_post_title{ background:transparent !important; padding-left:0 !important; }
[class*="_sidebar_date"], .recent_post_date{ font-family:var(--dyn-font-numeric) !important; color:var(--dyn-muted) !important; }
/* 記事li の区切り罫線：theme_default が #666 をハードコードしており地に合わず過剰に見える → トークンへ */
[class*="_sidebar"] ul li, .recent_posts_wrap ul li{ border-bottom-color:var(--dyn-border) !important; }
/* カテゴリ右の記事数を視認できるチップに */
[class*="_sidebar_post_category_count"]{ background:var(--dyn-surface) !important; color:var(--dyn-text) !important; border:1px solid var(--dyn-border); border-radius:var(--dyn-radius); padding:0 8px !important; }
/* カテゴリ一覧 li：theme_default 由来の左右縦罫線(1px solid #666)を除去（下罫線は区切りとして意図的に残す）。S01189還流 */
[class*="category_post_count"] li{ border-left:0 !important; border-right:0 !important; }
/* カテゴリ名と件数チップが重ならないよう両端寄せ。
   あわせて左右パディングを解除：theme_default は `.category_post_count ul li a{ padding:15px 20px }` と
   **帯／箱があった前提**の字下げを持つため、帯を外した状態では
   カテゴリ名だけが 20px 右にずれ、見出し(h3)や「最近の投稿」リストと頭が揃わない。
   上下15pxはタップ領域として残す。 */
[class*="category_post_count"] li a{ display:flex; justify-content:space-between; align-items:center; gap:8px; padding-left:0 !important; padding-right:0 !important; }


/* ============================================================
   §6  詳細ページ（本文 / 署名 / SNS / 詳細内スライダー）
   ============================================================ */
.parts-blog-ex_text{ font-family:var(--dyn-font-body); color:var(--dyn-text) !important; line-height:1.9; }
.parts-blog-ex_text h2, .parts-blog-ex_text h3{ font-family:var(--dyn-font-display) !important; color:var(--dyn-heading) !important; }
.signature_wrap{ font-family:var(--dyn-font-display); color:var(--dyn-muted) !important; border-top:1px solid var(--dyn-border); padding-top:16px; }
.slick-prev, .slick-next{ color:var(--dyn-accent-2) !important; }
/* ※詳細本文の親ラッパーが固定class薄め。崩れる場合は実ページで本文コンテナを確認し追補 */


/* ============================================================
   §7  お問い合わせフォーム
   ============================================================ */
.contact_section, [class*="_section_form"], [class*="_section_content"], [class*="_content_wrap"], [class*="_content"]{ background:var(--dyn-bg) !important; color:var(--dyn-text) !important; }
[class*="_form_wrap"]{ max-width:720px; margin:0 auto; }
[class*="_form_wrap"] label, [class*="_form_wrap"] dt, [class*="_form_wrap"] .ja, [class*="_form_wrap"] .en{ color:var(--dyn-text) !important; }
/* 入力欄を十分な大きさに（チェック/ラジオは除外） */
[class*="_form_wrap"] dd input:not([type="checkbox"]):not([type="radio"]),
[class*="_form_wrap"] dd select{ width:100% !important; max-width:none !important; padding:14px 16px !important; font-size:16px !important; min-height:54px !important; background:var(--dyn-surface) !important; color:var(--dyn-text) !important; border:1px solid var(--dyn-border) !important; border-radius:var(--dyn-radius); }
[class*="_form_wrap"] textarea, .form_textarea textarea{ width:100% !important; padding:14px 16px !important; font-size:16px !important; min-height:220px !important; background:var(--dyn-surface) !important; color:var(--dyn-text) !important; border:1px solid var(--dyn-border) !important; border-radius:var(--dyn-radius); }
/* チェックボックス/ラジオはサイズ統一 */
[class*="_form_wrap"] input[type="checkbox"], [class*="_form_wrap"] input[type="radio"]{ width:18px !important; height:18px !important; min-height:0 !important; padding:0 !important; margin:0 8px 0 0 !important; vertical-align:-3px; accent-color:var(--dyn-accent); flex:none !important; }
/* 必須バッジ: 文字を中央・折り返さない・角丸はトークン */
.required{ display:inline-flex !important; align-items:center !important; justify-content:center !important; line-height:1 !important; white-space:nowrap !important; padding:6px 12px !important; border-radius:var(--dyn-radius) !important; background:var(--dyn-accent) !important; color:var(--dyn-on-accent) !important; }
.error{ color:var(--dyn-accent-2) !important; }
/* 「お問い合わせ内容」を囲む大きな箱(枠線)を撤去 */
.form_textarea, .form_text_dt{ border:none !important; background:transparent !important; }
/* 送信ボタン。★セレクタに包み(.contact_submit 自体)を含めないこと：
   包みは複数ボタンを載せるレイアウト用のdivで、ここを accent で塗ると
   (a) 完了ページ=藍の包みに藍のボタンが乗って同化し、ボタンが消えて見える
   (b) 確認ページ=すぐ下でアウトライン化する「戻る」が藍地に濃色文字となり判読不能（実測 1.01:1）
   になる。当てる先はボタン実体だけでよい（dynamic-form.md §1 の意図も「送信 .contact_submit input = accent地」）。 */
.contact_submit button, .contact_submit input{ background:var(--dyn-accent) !important; color:var(--dyn-on-accent) !important; border:none !important; border-radius:var(--dyn-radius) !important; }
/* 確認ページの「戻る」は副ボタン（送信＝アクセント／戻る＝アウトライン）＝誤導線防止 */
.contact_submit input[name="back"]{ background:transparent !important; color:var(--dyn-text) !important; border:1px solid var(--dyn-border) !important; }
/* 送信前 disabled（reCAPTCHA未完了）の見え方 */
.contact_submit input[disabled]{ opacity:.5; cursor:not-allowed; }

/* --- フォーム実コードで頻出するが §7本体に無かった部品（parts213等の実装を突き合わせ）--- */
/* ファイル添付の自作UI：受領インライン<style>が #eee 地・#999 文字・明るいグラデで固定し、
   ダーク地で白い箱・低コントラストになる。トークンで地・枠・文字を寄せる（label_file_upload に限定）。 */
.label_file_upload{ display:block; width:100%; padding:12px 14px; cursor:pointer;
  background:var(--dyn-surface) !important; color:var(--dyn-text) !important;
  border:1px solid var(--dyn-border) !important; border-radius:var(--dyn-radius); }
.label_file_upload button{ background:var(--dyn-bg) !important; color:var(--dyn-text) !important;
  border:1px solid var(--dyn-border) !important; border-radius:var(--dyn-radius) !important; pointer-events:none; }
.label_file_upload span, #file-chosen, [id$="filechosen"]{ color:var(--dyn-muted) !important; }
.des{ color:var(--dyn-muted) !important; }
/* 注意書き（文字数制限・ファイル名規則等の補助）：色未指定/未定義var(--red)で可読性がばらつくため muted で固定（AA確保色） */
.attention{ color:var(--dyn-muted) !important; }
/* 郵便番号は narrow に保つ：上の入力欄ルール `[class*="_form_wrap"] dd input:not([checkbox]):not([radio])`
   は (0,3,2)+!important で .zip も全幅化し〒[郵便番号][住所]を壊す。これに勝つよう :not() を重ねて
   詳細度を (0,4,2) に上げて .zip だけ幅を戻す（parts219等 form_address系・番号非依存）。 */
[class*="_form_wrap"] dd input.zip:not([type="checkbox"]):not([type="radio"]){ width:9em !important; max-width:9em !important; display:inline-block; margin-right:8px; }
/* プライバシー同意 */
.privacypolicy{ background:var(--dyn-surface) !important; border:1px solid var(--dyn-border); border-radius:var(--dyn-radius); padding:16px; color:var(--dyn-muted) !important; }
.privacypolicy-link{ color:var(--dyn-accent-2) !important; }
/* 電話/メール等の content バー（角丸はトークン） */
[class*="_content"] [class*="btn"], [class*="_content"] a[class*="round"]{ border-radius:var(--dyn-radius) !important; }


/* ============================================================
   §7b  お問い合わせフォーム ─ wpcf7 / .formBox 系（第2系統）
   ------------------------------------------------------------
   【重要】フォームには構造が2系統ある（dynamic-harvest.js の「フォーム系統」で判定）：
     ・§7  = parts_form/dl 系（[class*="_form_wrap"] / dt / dd / .required / .contact_submit）
     ・§7b = wpcf7/.formBox 系（.formWrap > .formBox > dt>label>span.req + dd>input,
              送信=input.wpcf7-submit。SEIKEN/協力会社フォーム等 Contact Form 7 由来）
   §7 の `[class*="_form_wrap"]` は §7b 構造に当たらないため、当該系統では本セクションが要る。
   いずれも番号非依存のセマンティッククラスで記述。
   ============================================================ */
.formWrapbg, .formWrap, .form, [class*="formSec"]{ background:var(--dyn-bg) !important; color:var(--dyn-text) !important; }
.formWrap{ max-width:720px; margin:0 auto; }
.formBox{ margin-bottom:20px; }
.formBox dt, .formBox label{ color:var(--dyn-text) !important; }
.formBox dd input:not([type="checkbox"]):not([type="radio"]),
.formBox dd select,
.formWrap input[type="text"], .formWrap input[type="email"], .formWrap input[type="tel"]{
  width:100% !important; max-width:none !important; padding:14px 16px !important; font-size:16px !important;
  min-height:54px !important; background:var(--dyn-surface) !important; color:var(--dyn-text) !important;
  border:1px solid var(--dyn-border) !important; border-radius:var(--dyn-radius);
}
.formBox dd textarea, .formWrap textarea{
  width:100% !important; padding:14px 16px !important; font-size:16px !important; min-height:220px !important;
  background:var(--dyn-surface) !important; color:var(--dyn-text) !important;
  border:1px solid var(--dyn-border) !important; border-radius:var(--dyn-radius);
}
.formWrap input[type="checkbox"], .formWrap input[type="radio"]{
  width:18px !important; height:18px !important; min-height:0 !important; padding:0 !important; margin:0 8px 0 0 !important;
  vertical-align:-3px; accent-color:var(--dyn-accent); flex:none !important;
}
/* 必須バッジ（wpcf7系は .req） */
.req, .formBox .req{
  display:inline-flex !important; align-items:center !important; justify-content:center !important; line-height:1 !important;
  white-space:nowrap !important; padding:6px 12px !important; border-radius:var(--dyn-radius) !important;
  background:var(--dyn-accent) !important; color:var(--dyn-on-accent) !important;
}
.wpcf7-not-valid-tip, .wpcf7-response-output{ color:var(--dyn-accent-2) !important; }
/* 送信（Contact Form 7） */
input.wpcf7-submit, .formWrap button[type="submit"]{
  background:var(--dyn-accent) !important; color:var(--dyn-on-accent) !important;
  border:none !important; border-radius:var(--dyn-radius) !important;
  min-height:54px !important; padding:14px 28px !important; font-size:16px !important; cursor:pointer;
}
/* プライバシー同意（両系統共通の .privacypolicy* は §7 で適用済） */


/* ============================================================
   §14  自動CSSに負けた時の手順（R-27）※汎用アーマーは持たない＝安全契約
   ------------------------------------------------------------
   CueZilla は body内コンポ<style>でパーツ単位に `.partsNNN_blog_<ID> .card .card-body{…!important}`
   等の高詳細度(0,3,0)+!important を吐く。§1〜§9 の単一属性セレクタ(0,1,0〜0,2,0)+!important は
   同プロパティで【負ける】（症状：当てているのに反映されない＝崩れの常連）。

   → 【禁止】[class*=…]を積んで(0,3,0)に並べる汎用アーマー（脆い・過剰マッチ・アーマーレース）。
        ＝以前ここにあった `[class*="parts"][class*="_blog"] .card` 等は本契約により撤去した。
        （theme_default 非importantへの色寄せは §8 の単一 `[class*="_blog"] .card`(0,2,0)+!important で足りる）
   → 【正】負けたパーツだけ、harvestで実採番を取り【案件CSS】末尾に (0,3,1) を1個足して確実に勝つ：
        section.parts131415_blog_xxxx .card .card-body{ … !important }   ← 実採番。構造変化に不感
     ※ skin は全案件共通なので案件固有の番号は書かない（負けた時だけ案件側で対処）。
     ※ 採番取得＝verify/dynamic-harvest.js。当て方＝50_CSS・動的ページ/動的ページCSS_実セレクタ参考.md §14。 */
/* 見出しのテーマ装飾(角丸/中央寄せ/背景/罫線)残りをパーツ内でリセット（R-21）。
   theme_default は非importantなので、単一 [class*="_section"] + !important で確定勝ち（[class*]を積まない）。 */
[class*="_section"] h2, [class*="_section"] h3{
  border-radius:0 !important; background:transparent !important; border:none !important; text-align:inherit !important;
}


/* ============================================================
   §8  トップ用 お知らせ/ブログ teaser（notice-news / blog teaser）
   ============================================================ */
.parts040506_notice-news{ background:var(--dyn-bg) !important; color:var(--dyn-text) !important; }
.parts040506_notice-news *{ color:var(--dyn-text) !important; }
.parts040506_notice-news .title, .parts040506_notice-news .title a{ color:var(--dyn-heading) !important; }
.parts040506_notice-news [class*="date"], .parts040506_notice-news .f_yugothic{ font-family:var(--dyn-font-numeric) !important; color:var(--dyn-muted) !important; }
.parts040506_notice-news .more{ white-space:nowrap !important; color:var(--dyn-accent-2) !important; }
.parts040506_notice-news a{ color:var(--dyn-accent-2) !important; }
/* サムネ型ブログ teaser */
[class*="_blog_title_wrap"]{ font-family:var(--dyn-font-display) !important; color:var(--dyn-heading) !important; }
[class*="_blog_thumbnail"]{ border-radius:var(--dyn-radius); }
/* teaser内が Bootstrap .card（既定で白）の場合のダーク/トーン化 */
[class*="_blog"] .card{ background:var(--dyn-surface) !important; border-color:var(--dyn-border) !important; border-radius:var(--dyn-radius) !important; }
[class*="_blog"] .card-title, [class*="_blog"] .card-text{ color:var(--dyn-text) !important; }
[class*="_blog"] .card-title{ font-family:var(--dyn-font-display) !important; }


/* ============================================================
   §9  Bootstrap汎用クラスの地ならし（パーツ内に限定）
       text-dark / bg-light 等がパーツ内でトーンを乱すのを抑える
   ============================================================ */
[class*="parts"] .text-dark{ color:var(--dyn-text) !important; }
[class*="parts"] .bg-light{ background:var(--dyn-surface) !important; }
.card-header.bg-light{ background:var(--dyn-accent) !important; color:var(--dyn-on-accent) !important; }


/* ============================================================
   §10  プライバシーポリシー（templates/privacy-policy.html のフリーコーディング設置版）
   ※CueZilla既定パーツ(item_title/item_description)へ転記する場合は §5 等で別途適用される
   ============================================================ */
.privacy{ max-width:880px; margin:0 auto; padding:64px 24px; color:var(--dyn-text); font-family:var(--dyn-font-body); line-height:1.9; }
.privacy__title{ font-family:var(--dyn-font-display); color:var(--dyn-heading); font-size:clamp(1.8rem,4vw,2.6rem); }
.privacy__subtitle{ font-family:var(--dyn-font-display); color:var(--dyn-heading); font-size:1.2rem; margin-top:8px; }
.privacy__lead{ color:var(--dyn-muted); margin:24px 0 40px; }
.privacy-item{ margin-bottom:32px; }
.privacy-item__title{ font-family:var(--dyn-font-display); color:var(--dyn-heading); border-left:3px solid var(--dyn-accent); padding-left:12px; margin-bottom:12px; }
.privacy-item__body{ color:var(--dyn-text); }
/* 原文の (1)(2)… 表記を維持（auto ol の "1." ではなく括弧付き番号で表示） */
.privacy-item__list{ list-style:none; counter-reset:pp; margin:8px 0; padding:0; }
.privacy-item__list li{ counter-increment:pp; padding-left:2.2em; text-indent:-2.2em; margin:4px 0; color:var(--dyn-text); }
.privacy-item__list li::before{ content:"(" counter(pp) ") "; }


/* ============================================================
   §11  下層ヘッダーパーツ（templates/subpage-header.html）
   サイトヘッダーとパンくずの間。フリーコーディングで別パーツ化
   ============================================================ */
/* padding-top に固定ヘッダー高さ(--fixed-header-h)を加算＝固定ヘッダーへのめり込み防止。
   固定ヘッダーが無いサイトは既定0で無影響。固定ヘッダー採用サイトは案件CSSで :root{ --fixed-header-h:88px } 等を設定（R-18）。 */
.subpage-header{ position:relative; padding:calc(72px + var(--fixed-header-h, 0px)) 24px 72px; background:var(--dyn-surface); text-align:center; overflow:hidden; }
.subpage-header__bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.45; z-index:0; }
.subpage-header__inner{ position:relative; z-index:1; }
.subpage-header__title{ font-family:var(--dyn-font-display); color:var(--dyn-heading); font-size:clamp(1.8rem,5vw,3rem); line-height:1.3; text-shadow:0 2px 14px rgba(0,0,0,.5); }
.subpage-header__en{ font-family:var(--dyn-font-numeric); color:var(--dyn-muted); letter-spacing:.12em; margin-top:8px; }


/* ============================================================
   §12  システム定型ページ：送信完了(thanks) / 404
   templates/thanks.html, templates/404.html 用。トークンスキン準拠
   ============================================================ */
.thanks, .notfound{ max-width:760px; margin:0 auto; padding:calc(80px + var(--fixed-header-h, 0px)) 24px 96px; text-align:center; }
/* CueZilla 既定404（section.not-found）はレイアウトを変えず、固定ヘッダー分の上余白だけ確保（R-18） */
.not-found{ padding-top: calc(var(--fixed-header-h, 0px) + 24px); }
.thanks__title, .notfound__title{ font-family:var(--dyn-font-display); color:var(--dyn-heading); font-size:clamp(1.8rem,5vw,2.6rem); line-height:1.3; margin-bottom:28px; }
.thanks__lead, .notfound__lead{ color:var(--dyn-text); line-height:2; margin-bottom:40px; }
.thanks__action, .notfound__action{ margin-top:8px; }


/* ============================================================
   §13  Bootstrap(テーマ)既定の恒久打ち消し（R-20）
   ------------------------------------------------------------
   CueZillaテーマが読み込む Bootstrap の "素のタグ/汎用クラス" が
   フリーHTMLに当たって崩す症状を、案件ごとの手当て無しで地ならしする。
   ここは確認済みの実害2件（test0605）に限定して打ち消す。
   ※「色/余白/タイポ」を意図して変える装飾は接頭辞クラス(.xw- 等)で
     付け直す＝下記より高詳細度になり、本セクションに勝つ（壊さない）。
   ============================================================ */
/* (a) <mark> / .mark の黄ハイライト背景：ロゴや見出しが黄色い箱になる症状 → 無効化。
       意図的なマーカー装飾は専用クラスで（Bootstrap名 .mark を流用しない＝R-20）。 */
mark, .mark{
  background-color:transparent !important; color:inherit !important;
  padding:0 !important; border-radius:0 !important;
}
/* (b) a:hover が Bootstrap青(#0a58ca)になる症状 → 既定は「ホバーで色を変えない」。
       !important は付けない＝個別のホバー装飾(接頭辞クラスや site.css の指定)が
       そのまま勝ち、未指定リンクだけが青化を免れる（フォールバック）。 */
a:hover{ color:inherit; }

/* (c) 電話番号リンク(tel:)の最低タップ確保（R-24／§5.5-3）。
       本文中インラインでも折り返さない。CTA/ボタン用途は接頭辞クラスで44px確保。 */
a[href^="tel:"]{ white-space:nowrap; }


/* ===== 50_override.css ===== */
/* ============================================================
   O01930 正時産業 — 案件別 追補CSS（override）
   結合順: 20_site.css → 40_skin.css → 【50_override.css】
   skin（全案件共通資産）は編集せず、案件調整はすべてここに書く（R-30）。
   ============================================================ */

/* ------------------------------------------------------------
   0. 固定ヘッダーの高さ（R-18）
   ヘッダーは position:fixed のため、CueZillaが描画するシステムページ
   （下層ヘッダーパーツ・送信完了・404）の先頭がヘッダーの下にめり込む。
   skin がこの変数を padding-top に加算して回避する。
   値は受領デザインのヘッダー実高さ height:clamp(70px,8.6vw,92px) より。
   ------------------------------------------------------------ */
:root { --fixed-header-h: 92px; }
@media (max-width: 767px) { :root { --fixed-header-h: 70px; } }

/* ------------------------------------------------------------
   1. CueZilla 自動パンくずの非表示（R-10a）
   受領デザインは下層ヒーロー帯の中に自前パンくず（nav[data-crumb]）を持つ。
   CueZilla が自動挿入する parts231 をそのままにすると二重表示になるため隠す。
   ※ 自前パンくずを撤去する場合は、この指定も併せて外すこと。
   ------------------------------------------------------------ */
.parts231_breadcrumb { display: none !important; }

/* ------------------------------------------------------------
   2. 動的パーツの面色・角丸をサイトのトンマナへ
   skin §0 がテーマ7値から自動導出するが、本サイトは
   「白地＋薄緑の面（#eef4e6）＋濃緑の文字」で統一されているため明示する。
   ------------------------------------------------------------ */
:root {
  --dyn-surface: #f4f8ee;      /* カード/サイドバー/入力欄の面 */
  --dyn-border: #e7efdc;       /* 罫線 */
  --dyn-text: #22301b;         /* 本文 */
  --dyn-muted: #5c6b4f;        /* 補助文字（日付・キャプション） */
  --dyn-radius: 14px;          /* 角丸（受領デザインの標準値） */
}

/* ------------------------------------------------------------
   3. 動的ページ（ブログ一覧 parts222 / 施工実績 parts228 / フォーム parts210・213・216）
   受領デザインの見出し・本文まわりの字面に寄せる最小限の指定。
   ※ 実機DOMは投入後に確認して調整する（R-28）。ここでは投機的な指定はしない。
   ------------------------------------------------------------ */
.parts222_section,
.parts228_section,
.parts210_section_content {
  background: #ffffff;
  padding: clamp(56px, 7vw, 90px) 0 clamp(64px, 8vw, 110px);
}

/* 一覧・フォームの本文フォントを受領デザインに合わせる（body 指定の継承漏れ対策） */
.parts222_section, .parts228_section,
.parts210_section_content, .contact_section {
  font-family: "Zen Maru Gothic", system-ui, sans-serif;
  color: #22301b;
  line-height: 1.9;
}

/* ------------------------------------------------------------
   4. TOP の CMS パーツ設置枠（NEWS帯 design-parts-52 / 一覧 parts131415_blog）
   受領デザインではこの3枠が「濃緑の帯」「写真背景の暗い帯」として組まれている。
   パーツが描画する中身の外側（帯の地色）だけをここで合わせる。
   ※ 背景写真・山型SVGはHTML側の意匠のためパーツには載らない。
      再現要否は投入後にデザイナー確認（申し送り参照）。
   ------------------------------------------------------------ */
.design-parts-52 { background: #2f5d1e; color: #eef4e6; }
.design-parts-52 a { color: #eef4e6; }
.design-parts-52 a:hover { color: #ffd48a; }
.parts131415_blog { background: #20401a; color: #ffffff; }
.parts131415_blog a { color: #ffffff; }

/* ------------------------------------------------------------
   5. 画像の共通挙動
   受領HTMLの <img> は親要素（overflow:hidden + border-radius）に敷く前提。
   ------------------------------------------------------------ */
img { max-width: 100%; }


/* ============================================================
   ▼ 以下は 2026-07-28 の実機（enjoyworks-seisaku.biz）確認で判明した
     崩れの修正。すべて実機に注入して効果を確認済み。
     ※ 上の「4.」の .design-parts-52 / .parts131415_blog は当たらないことが
        判明したため 7. で置き換えている（比較用に残置。削除は要相談）。
   ============================================================ */

/* ------------------------------------------------------------
   6. ページがスクロールできない（全ページ・最優先）
   CueZilla テーマ theme_default.css の `body{height:100%}` により
   html/body がビューポート高（実測911px）に固定され、FVから下へ
   スクロールできない。スクロール連動の reveal 演出・遅延画像も止まる。
   実機で height:auto を当てるとスクロール・演出とも即復帰することを確認。
   ------------------------------------------------------------ */
html, body { height: auto !important; }

/* ------------------------------------------------------------
   7. TOP の CMS パーツ枠（4. の指定が実機で当たっていなかった）
   (a) CueZilla が付ける `bg-color` に負けて地色が白のまま
       → セクションに部分一致セレクタ＋!important で指定
   (b) 施工実績枠には素の `parts131415_blog` クラスが付かない
       （`parts131415_blog_<ID>` のみ）→ [class*=] で拾う
   (c) 受領デザインは施工実績＝暗い帯／ブログ＝明るい地(#f4f8ee 実測)と別色。
       パーツ構成で判別する（施工実績=.content.d-flex ／ ブログ=.row）
   (d) TOP枠は Bootstrap の .card 出力で skin §4（_post_* 系）が効かないため
       カード意匠（白面・角丸18px・16:10サムネ）をここで当てる
   ------------------------------------------------------------ */
/* NEWS帯：濃緑の地＋オレンジの丸ピル＋白文字（受領デザイン準拠） */
section[class*="design-parts-52"] { background: #2f5d1e !important; color: #eef4e6 !important; }
section[class*="design-parts-52"] .banner-area {
  background: #f39800 !important; color: #ffffff !important;
  border-radius: 999px !important; padding: 6px 18px !important;
  font-size: 13px !important; font-weight: 800 !important; letter-spacing: .08em;
}
section[class*="design-parts-52"] li,
section[class*="design-parts-52"] a { color: #eef4e6 !important; }
section[class*="design-parts-52"] a:hover { color: #ffd48a !important; }

/* 施工実績枠（.content.d-flex 構成）＝暗い帯 */
section[class*="parts131415_blog"]:has(.content.d-flex) { background: #20401a !important; color: #ffffff !important; }
section[class*="parts131415_blog"]:has(.content.d-flex) .parts131415_blog_title_wrap h2 { color: #ffffff !important; }
section[class*="parts131415_blog"]:has(.content.d-flex) .parts131415_blog_title_wrap p { color: #e6efd9 !important; }
/* ブログ枠（.row 構成）＝明るい地 */
section[class*="parts131415_blog"]:has(.row) { background: #f4f8ee !important; color: #22301b !important; }
section[class*="parts131415_blog"]:has(.row) .parts131415_blog_title_wrap h2 { color: #2f5d1e !important; }
section[class*="parts131415_blog"]:has(.row) .parts131415_blog_title_wrap p { color: #5c6b4f !important; }

/* 施工実績枠は d-flex で左詰め1列になる → ブログ枠(row-cols-lg-3)と同じ3カラムへ */
section[class*="parts131415_blog"] .content.d-flex {
  display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px; align-items: start;
}
@media (max-width: 991px) { section[class*="parts131415_blog"] .content.d-flex { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575px) { section[class*="parts131415_blog"] .content.d-flex { grid-template-columns: 1fr; } }

/* TOP枠のカード意匠（受領デザイン：白カード・角丸18px・16:10サムネ） */
section[class*="parts131415_blog"] .card {
  background: #ffffff !important; border: 0 !important;
  border-radius: 18px !important; overflow: hidden;
  width: auto !important; max-width: none !important;
}
section[class*="parts131415_blog"] .card,
section[class*="parts131415_blog"] .card a,
section[class*="parts131415_blog"] .card p { color: #22301b !important; }
section[class*="parts131415_blog"] .card img {
  width: 100% !important; height: auto !important;
  aspect-ratio: 16 / 10; object-fit: cover; display: block;
}

/* サムネ未設定の投稿：CMSの No Image が cover で拡大され崩れて見える → 収める */
img[src*="no_image"] { object-fit: contain !important; background: #f4f8ee; }

/* ------------------------------------------------------------
   8. 一覧（parts222/228）の意匠を受領デザインへ
   skin §4/§5 は当たっているが、チップとサイドバー見出しの体裁が
   受領デザイン（ピル＝#fff3e0/#e07b00、見出し＝薄緑帯＋緑の左罫）と異なる。
   ------------------------------------------------------------ */
[class*="_post_category"]:not([class*="_sidebar"]),
[class*="_post_status"] > span:last-child {
  background: #fff3e0 !important; color: #e07b00 !important;
  border: 0 !important; border-radius: 999px !important;
  padding: 4px 11px !important; font-size: 12px !important; font-weight: 800 !important;
}
[class*="_sidebar"] h3 {
  background: #eef4e6 !important; color: #2f5d1e !important;
  font-size: 16px !important; font-weight: 900 !important;
  padding: 12px 16px !important; border-radius: 10px;
  border-left: 4px solid #4a8a2f; margin: 0 0 16px !important;
}
[class*="_post_wrap"] { border-radius: 18px !important; }

/* ------------------------------------------------------------
   9. お問い合わせフォーム（parts213）を受領デザインの1カラムへ
   parts213 既定は dl=flex の「ラベル左・入力右」2カラム。
   受領デザインは「ラベル上・入力フル幅」の1カラム、チェックは縦1列。
   ------------------------------------------------------------ */
[class*="_form_wrap"] dl { display: block !important; }
[class*="_form_wrap"] dt {
  width: auto !important; display: flex !important;
  align-items: center; flex-wrap: wrap; justify-content: flex-start !important;
  gap: 10px; margin: 0 0 8px !important;
}
[class*="_form_wrap"] dd { width: auto !important; margin: 0 0 26px !important; }
/* チェックボックス／ラジオは1行1項目 */
[class*="_form_wrap"] dd label { display: flex !important; align-items: center; gap: 8px; margin: 0 0 10px !important; }
/* ラベル内の注意書きは必須バッジの下へ落とす（バッジがラベルから離れるのを防ぐ） */
[class*="_form_wrap"] dt > span:not(.required) { display: contents; }
[class*="_form_wrap"] dt .attention { flex: 0 0 100%; order: 9; display: block; font-size: 13px; color: #5c6b4f; margin-top: 2px; }

/* ============================================================
   10. 動的パーツを受領デザインの意匠へ寄せる（2026-07-28 第2次・実機検証）
   前提: 追加CSS欄は ::before/::after の content と filter:url() を除去する（R-27）。
        → 文字を足す装飾（英字ラベル・一覧へリンク）は擬似要素では作れないため
          BODY内JS（body-inline.js §14）で実要素を注入し、その体裁をここで当てる。
   ------------------------------------------------------------ */

/* --- 10-0 動的パーツのフォントを受領デザインのWebフォントへ ---
   skin §0 の既定は EB Garamond / Noto Serif JP。本サイトは
   見出し・本文=Zen Maru Gothic、数字・英字=Bricolage Grotesque。 */
:root {
  --dyn-font-display: "Zen Maru Gothic", system-ui, sans-serif;
  --dyn-font-body:    "Zen Maru Gothic", system-ui, sans-serif;
  --dyn-font-numeric: "Bricolage Grotesque", sans-serif;
}

/* --- 10-1 NEWS帯（design-parts-52） ---
   テーマが section に height:60px を当てており、中身（min-height 64px）が
   帯からはみ出す。height:auto で解除してから受領デザインの寸法にする。 */
section[class*="design-parts-52"] { padding: 12px 0 !important; height: auto !important; min-height: 0 !important; }
section[class*="design-parts-52"] > .container {
  max-width: 1240px !important; margin: 0 auto !important; padding: 0 clamp(20px, 5vw, 60px) !important;
}
section[class*="design-parts-52"] .content {
  display: flex !important; align-items: center !important; flex-wrap: wrap;
  gap: clamp(16px, 3vw, 40px); min-height: 64px;
}
section[class*="design-parts-52"] .banner-area {
  flex: none; align-self: center; height: auto !important; line-height: 1.2 !important;
  background: #f39800 !important; color: #ffffff !important;
  font-family: "Bricolage Grotesque", sans-serif !important;
  font-size: 14px !important; font-weight: 800 !important; letter-spacing: .14em;
  padding: 9px 20px !important; border-radius: 999px !important; margin: 0 !important;
}
section[class*="design-parts-52"] ul {
  flex: 1 1 240px; margin: 0 !important; padding: 0 !important; list-style: none !important;
}
section[class*="design-parts-52"] li { margin: 0 !important; }
section[class*="design-parts-52"] .parts-52-textarea {
  display: flex; align-items: center; gap: 18px; flex-wrap: wrap; min-height: 40px;
}
section[class*="design-parts-52"] .date {
  flex: none; font-family: "Bricolage Grotesque", sans-serif !important;
  font-weight: 700 !important; font-size: 14px !important; letter-spacing: .05em;
  color: #a9c98c !important;
}
/* 記事タイトルは白（受領デザインは #eef4e6 だが、濃緑の帯で読みやすさを優先して白に変更） */
section[class*="design-parts-52"] .parts-52-textarea > span:last-child,
section[class*="design-parts-52"] li a > span:last-child {
  color: #ffffff !important;
  font-size: 16px !important; font-weight: 500; line-height: 1.6;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%;
}

/* --- 10-2 施工実績帯：背景写真＋暗いグラデ（受領デザイン C-1 の再現） ---
   ※ 受領デザインの blur(4px) と チェーンソー線画の白抜き透かしは
     追加CSSでは再現できない（filter が落ちる／擬似要素が作れない）ため未再現。 */
section[class*="parts131415_blog"]:has(.content.d-flex) {
  background-color: #20401a !important;
  background-image:
    linear-gradient(180deg, #20401a 0%, #20401a 8%, rgba(32,64,26,.72) 24%, rgba(32,64,26,.28) 44%, rgba(32,64,26,0) 62%),
    linear-gradient(rgba(24,45,14,.5), rgba(24,45,14,.5)),
    url(https://cdn.cuezilla-cms.com/enjoyworks-seisaku.biz/images/1468/fv-works-bg.webp) !important;
  background-size: auto, auto, cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  padding: clamp(86px, 10vw, 138px) 0 clamp(78px, 10vw, 130px) !important;
}

/* --- 10-3 ブログ帯：明るい地＋白のブロブ（受領デザインの有機的な白い面） --- */
section[class*="parts131415_blog"]:has(.row) {
  background-color: #f4f8ee !important;
  background-image:
    radial-gradient(closest-side, rgba(255,255,255,.50) 98%, rgba(255,255,255,0) 100%),
    radial-gradient(closest-side, rgba(255,255,255,.40) 98%, rgba(255,255,255,0) 100%),
    radial-gradient(closest-side, rgba(255,255,255,.36) 98%, rgba(255,255,255,0) 100%) !important;
  background-size:
    clamp(320px, 36vw, 600px) clamp(300px, 32vw, 540px),
    clamp(240px, 26vw, 440px) clamp(220px, 24vw, 400px),
    clamp(220px, 25vw, 420px) clamp(200px, 22vw, 380px) !important;
  background-position: right -9% top 4%, left -2% top -12%, right 30% bottom -16% !important;
  background-repeat: no-repeat !important;
  padding: clamp(78px, 10vw, 130px) 0 clamp(104px, 12vw, 156px) !important;
}

/* --- 10-4 見出しブロック：左寄せ＋英字ラベル＋右端に一覧リンク --- */
section[class*="parts131415_blog"] > .container-lg,
section[class*="parts131415_blog"] > .container {
  max-width: 1240px !important; margin: 0 auto !important; padding: 0 clamp(20px, 5vw, 60px) !important;
}
section[class*="parts131415_blog"] .parts131415_blog_title_wrap {
  display: flex !important; align-items: flex-end; justify-content: space-between;
  gap: 20px; flex-wrap: wrap; text-align: left !important;
  margin: 0 0 clamp(34px, 4vw, 52px) !important;
}
section[class*="parts131415_blog"] .parts131415_blog_title_wrap h2 {
  font-family: "Zen Maru Gothic", system-ui, sans-serif !important;
  font-weight: 900 !important; font-size: clamp(28px, 4.4vw, 52px) !important;
  line-height: 1.3 !important; margin: 0 !important; text-align: left !important;
}
section[class*="parts131415_blog"] .parts131415_blog_title_wrap p {
  font-size: 16px !important; line-height: 1.7 !important;
  margin: 12px 0 0 !important; text-align: left !important;
}
/* BODY内JS が注入する要素（英字ラベル / 一覧へリンク） */
.cz-tw-head { min-width: 0; }
.cz-eyebrow {
  display: block; font-family: "Bricolage Grotesque", sans-serif;
  font-weight: 700; font-size: 12.5px; letter-spacing: .24em; margin: 0 0 12px;
}
.cz-more {
  flex: none; display: inline-flex; align-items: center; gap: 9px;
  font-weight: 800; font-size: 16px; padding: 12px 24px; border-radius: 999px;
  text-decoration: none; transition: background .2s ease, border-color .2s ease;
}
section[class*="parts131415_blog"]:has(.content.d-flex) .cz-eyebrow { color: #ffd48a; }
section[class*="parts131415_blog"]:has(.content.d-flex) .cz-more {
  color: #ffffff !important; border: 1.6px solid rgba(255,255,255,.5);
}
section[class*="parts131415_blog"]:has(.content.d-flex) .cz-more:hover {
  background: rgba(255,255,255,.14); border-color: #ffffff;
}
section[class*="parts131415_blog"]:has(.row) .cz-eyebrow { color: #f39800; }
section[class*="parts131415_blog"]:has(.row) .cz-more {
  color: #2f5d1e !important; border: 1.6px solid #b9cfa2;
}
section[class*="parts131415_blog"]:has(.row) .cz-more:hover { background: #e3efd5; border-color: #4a8a2f; }

/* --- 10-5 TOPカードの並びと中身（施工実績枠・ブログ枠で完全に同一にする） ---
   パーツの出力が枠ごとに違う（施工実績＝素の `.content.d-flex` ／ ブログ＝Bootstrapの
   `.row > .col`）ため、そのままだとカード幅・サムネ寸法が数px単位でズレ、隣り合う2枠で
   「画像の大きさが微妙に違う」状態になる。**両方とも同じ CSS grid に置き換えて揃える。**
   ※ カテゴリのピルはブログ枠にしか出ない（施工実績パーツがカテゴリを出力しないため）。
     これだけは体裁ではなくデータの差＝申し送りのCMS確認事項。
   ★セレクタに `[class*=…]` を2つ重ねて詳細度(0,4,0)にしてあるのは、CueZillaの
     パーツ自動CSSが (0,3,0)+!important で `.card{padding:45px 30px 40px}`
     `.card{border:none}` `.card-body{padding:0}` 等を当てており、
     単一属性(0,2,0)では**枠ごとに勝ったり負けたりして寸法がズレる**ため（実機で確認・R-27/§14）。 */
section[class*="parts131415"][class*="_blog"] .content.d-flex[class*="content"],
section[class*="parts131415"][class*="_blog"] .row[class*="row"] {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: clamp(18px, 2.4vw, 28px) !important;
  margin: 0 !important; align-items: stretch;
  --bs-gutter-x: 0px; --bs-gutter-y: 0px;
}
@media (max-width: 991px) {
  section[class*="parts131415"][class*="_blog"] .content.d-flex[class*="content"],
  section[class*="parts131415"][class*="_blog"] .row[class*="row"] { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 575px) {
  section[class*="parts131415"][class*="_blog"] .content.d-flex[class*="content"],
  section[class*="parts131415"][class*="_blog"] .row[class*="row"] { grid-template-columns: 1fr !important; }
}
/* Bootstrap の .col が持つガター用 padding を無効化（gap は grid 側で持つ） */
section[class*="parts131415"][class*="_blog"] .row[class*="row"] > .col {
  padding: 0 !important; margin: 0 !important;
  width: auto !important; max-width: none !important; flex: none !important;
}
/* カード枠（両枠共通）。余白はカード自身が持ち、内側のラッパは全て0にして
   構造の違い（施工実績=card>a ／ ブログ=card>card-body>a）を吸収する */
section[class*="parts131415"][class*="_blog"] .card[class*="card"] {
  background: #ffffff !important; border: 1px solid #e6efd9 !important;
  border-radius: 18px !important; overflow: hidden;
  padding: 22px 22px 24px !important;
  height: 100%; display: flex !important; flex-direction: column;
  width: auto !important; max-width: none !important;
}
section[class*="parts131415"][class*="_blog"] .card[class*="card"] > a,
section[class*="parts131415"][class*="_blog"] .card-body[class*="card"],
section[class*="parts131415"][class*="_blog"] .card-body[class*="card"] > a {
  padding: 0 !important; margin: 0 !important;
  display: flex !important; flex-direction: column; flex: 1 1 auto;
}
section[class*="parts131415_blog"] .card-title {
  display: inline-block !important; background: #fff3e0 !important; color: #e07b00 !important;
  font-family: "Zen Maru Gothic", system-ui, sans-serif !important;
  font-weight: 800 !important; font-size: 12.5px !important; letter-spacing: .05em;
  padding: 6px 14px !important; border: 0 !important; border-radius: 999px !important;
  margin: 0 0 14px !important; text-align: left !important; width: auto !important;
}
section[class*="parts131415_blog"] .card-text {
  font-family: "Zen Maru Gothic", system-ui, sans-serif !important;
  font-weight: 800 !important; font-size: 17px !important; line-height: 1.6 !important;
  color: #22301b !important; margin: 0 0 16px !important; min-height: 3.2em;
}
/* サムネ：両枠とも同じ比率。カード下端に揃える（ピルの有無で画像の位置がズレない） */
section[class*="parts131415"][class*="_blog"] [class*="_thumbnail"] {
  aspect-ratio: 16 / 10; height: auto !important; margin-top: auto;
  border-radius: 12px; overflow: hidden; background: #eef4e6;
}
section[class*="parts131415_blog"] .parts131415_blog_thumbnail img {
  width: 100% !important; height: 100% !important; aspect-ratio: auto !important;
  object-fit: cover !important; display: block;
}

/* --- 10-6 サムネ未設定の投稿（CMSの No Image・600×400）も枠いっぱいに敷く ---
   `contain` にすると画像の左右に地色の帯が出て、写真がカバーで敷かれる他のカードと
   体裁が揃わない（ブログ一覧で「サムネの横に薄緑の背景」として見えていた）。
   No Image は 3:2、枠は 16:10 なので cover でも左右6%程度しか欠けない。
   ※ 上の「7.」の `img[src*="no_image"]{object-fit:contain}` を打ち消している。 */
img[src*="no_image"] { object-fit: cover !important; background: transparent !important; }

/* ============================================================
   11. ブログ一覧 /blog（parts222）— 受領デザイン準拠
   受領デザイン: 2カラム（本文＋280pxサイドバー・920px以上）。
   カード=白面/1px #e6efd9/角丸18・サムネ200px・日付Bricolage 13px。
   ------------------------------------------------------------ */
section[class*="parts222_section"] .parts222_wrap {
  display: grid !important; grid-template-columns: minmax(0, 1fr);
  gap: clamp(36px, 4vw, 56px);
  max-width: 1200px !important; margin: 0 auto !important;
  padding: 0 clamp(20px, 5vw, 60px) !important;
}
@media (min-width: 920px) {
  section[class*="parts222_section"] .parts222_wrap { grid-template-columns: minmax(0, 1fr) 280px !important; }
}
section[class*="parts222_section"] .parts222_main,
section[class*="parts222_section"] .parts222_sidebar { min-width: 0; max-width: none !important; width: auto !important; }
/* カード並び・サムネ比率は施工実績一覧（parts228）と共通化する（13. を参照）。
   受領デザインは auto-fit だが、記事が1件のときカードが列幅いっぱいに伸びて
   崩れて見えるため auto-fill にする（列幅を保ったまま左から詰む）。 */

/* ============================================================
   12. 施工実績一覧 /blog-ex/instance（parts228）— 受領デザイン準拠
   ------------------------------------------------------------ */
section[class*="parts228_section"] .parts228_wrap {
  max-width: 1160px !important; margin: 0 auto !important;
  padding: 0 clamp(20px, 5vw, 60px) !important;
}

/* ============================================================
   13. 一覧カード共通（parts222 / parts228）
   ブログ一覧と施工実績一覧でカードの体裁を完全に揃える。
   受領デザインは列幅・サムネ高さ・余白がページごとに違っていた
   （260/200/20-22-24 と 280/220/22-24-26）が、2ページを並べると
   同じ「記事カード」なのに寸法が違って見えるため、大きい方に統一する。
   ------------------------------------------------------------ */
section[class*="parts222_section"] [class*="_post_list"],
section[class*="parts228_section"] [class*="_post_list"] {
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) !important;
  gap: clamp(20px, 2.4vw, 28px) !important;
}
/* サムネはTOPカードと同じ 16:10（固定高さだと列幅により見え方が変わる） */
section[class*="parts222_section"] [class*="_post_img"],
section[class*="parts228_section"] [class*="_post_img"] {
  aspect-ratio: 16 / 10 !important; height: auto !important;
}
section[class*="parts222_section"] [class*="_post_img"] img,
section[class*="parts228_section"] [class*="_post_img"] img {
  width: 100% !important; height: 100% !important; object-fit: cover !important; display: block;
}
section[class*="parts222_section"] [class*="_post_wrap"],
section[class*="parts228_section"] [class*="_post_wrap"] {
  background: #ffffff !important; border: 1px solid #e6efd9 !important;
  border-radius: 18px !important; overflow: hidden;
}
section[class*="parts222_section"] [class*="_post_wrap"]:hover,
section[class*="parts228_section"] [class*="_post_wrap"]:hover { border-color: #b9cfa2 !important; }
/* カード内テキストの余白は両ページとも 22px / 24px / 26px に統一。
   parts228 は _post_title-excerpt が _post_status の内側に入る構造のため
   （実機DOMで確認済み）、外側の余白を _post_status 側だけで持たせる。 */
section[class*="parts222_section"] [class*="_post_status"] { margin: 22px 24px 10px !important; gap: 12px; }
section[class*="parts222_section"] [class*="_post_title-excerpt"] { padding: 0 24px 26px !important; }
section[class*="parts228_section"] [class*="_post_status"] { margin: 22px 24px 26px !important; }
section[class*="parts228_section"] [class*="_post_title-excerpt"] { padding: 12px 0 0 !important; }
/* 日付・カテゴリ・タイトル */
section[class*="parts222_section"] [class*="_post_date"],
section[class*="parts228_section"] [class*="_post_date"] {
  font-family: "Bricolage Grotesque", sans-serif !important;
  font-weight: 700 !important; font-size: 13px !important; letter-spacing: .05em;
  color: #8bb56a !important;
}
section[class*="parts222_section"] [class*="_post_category"]:not([class*="_sidebar"]),
section[class*="parts222_section"] [class*="_post_status"] > span:last-child {
  background: #fff3e0 !important; color: #e07b00 !important; border: 0 !important;
  border-radius: 999px !important; padding: 4px 11px !important;
  font-size: 12px !important; font-weight: 800 !important;
}
section[class*="parts222_section"] [class*="_post_title"],
section[class*="parts228_section"] [class*="_post_title"] {
  font-family: "Zen Maru Gothic", system-ui, sans-serif !important;
  font-weight: 800 !important; font-size: 17px !important; line-height: 1.65 !important;
  color: #22301b !important; margin: 0 !important;
}
/* 施工実績のタグ（受領デザイン: 薄緑ピル） */
section[class*="parts228_section"] .parts-blog-ex-tag_wrap { padding: 0 0 12px !important; gap: 8px; }
.parts-blog-ex_tag {
  background: #eef4e6 !important; color: #4a8a2f !important; border: 0 !important;
  border-radius: 999px !important; padding: 5px 12px !important;
  font-size: 12px !important; font-weight: 800 !important; letter-spacing: .04em;
}

/* ============================================================
   14. サイドバー・最近の投稿（一覧／詳細で共通）
   受領デザイン: 見出し=薄緑帯＋緑の左罫＋角丸10。項目は1px罫で区切る。
   ※ 既存の 8. で border-left / border-radius を !important 無しで書いていたため
     テーマに負けて当たっていなかった（実機で確認）。ここで確定させる。
   ------------------------------------------------------------ */
/* サイドバーは常に縦積み（「最近の投稿」「カテゴリ」を横に並べない）。
   テーマは `.parts222_sidebar{display:flex;flex-wrap:wrap}` を持っており、
   サイドバー幅が280pxでも中身が縮めば2ブロックが横に並んでしまう
   （実測: 幅982pxのとき 134px × 2 で横並び）。display:block で確定させる。
   `:not([class*="_sidebar_"])` は _sidebar_wrap / _sidebar_date 等の子孫を除外するため。 */
section[class*="parts222_section"] [class*="_sidebar"]:not([class*="_sidebar_"]) { display: block !important; }
section[class*="parts222_section"] [class*="_sidebar_wrap"] {
  width: auto !important; max-width: none !important; flex: none !important;
  margin: 0 0 clamp(30px, 3.4vw, 44px) !important;
}
section[class*="parts222_section"] [class*="_sidebar_wrap"]:last-child { margin-bottom: 0 !important; }

[class*="_sidebar_wrap"] h3,
.recent_posts_wrap .recent_post_title {
  background: #eef4e6 !important; color: #2f5d1e !important;
  font-family: "Zen Maru Gothic", system-ui, sans-serif !important;
  font-size: 16px !important; font-weight: 900 !important;
  padding: 12px 16px !important; border-radius: 10px !important;
  border-left: 4px solid #4a8a2f !important; margin: 0 0 16px !important;
  text-align: left !important;
}
[class*="_sidebar"] ul li,
.recent_posts_wrap ul li { border-bottom: 1px solid #e6efd9 !important; }
[class*="_sidebar"] ul li > a,
.recent_posts_wrap ul li > a { display: block; padding: 14px 4px !important; }
[class*="_sidebar_date"], .recent_post_date {
  display: block; font-family: "Bricolage Grotesque", sans-serif !important;
  font-weight: 700 !important; font-size: 12px !important; color: #8bb56a !important;
  margin-bottom: 4px;
}
[class*="_sidebar_post_title"], .recent_posts_wrap ul li a {
  font-family: "Zen Maru Gothic", system-ui, sans-serif !important;
  font-size: 16px !important; line-height: 1.6 !important; color: #2b3820 !important;
}
/* カテゴリ一覧は「カテゴリ名 …… 件数」の1行（受領デザイン） */
[class*="category_post_count"] li > a {
  display: flex !important; align-items: center; justify-content: space-between; gap: 10px;
}
[class*="category_post_count"] li > a p { margin: 0 !important; }
[class*="_sidebar_post_category_count"] {
  min-width: 26px; height: 26px; padding: 0 8px !important;
  border: 1px solid #d5e3c3 !important; border-radius: 8px !important;
  font-family: "Bricolage Grotesque", sans-serif !important;
  font-weight: 700 !important; font-size: 12px !important; color: #4a8a2f !important;
  background: transparent !important;
}

/* ============================================================
   15. ページネーション（受領デザイン: 42px角丸10・現在地=緑ベタ）
   ------------------------------------------------------------ */
[class*="_pagenation"] { display: flex !important; justify-content: center; align-items: center; gap: 8px; margin-top: clamp(40px, 5vw, 60px); }
[class*="_pagenation"] .pagination_num,
[class*="_pagenation"] .pagination_prev,
[class*="_pagenation"] .pagination_next,
[class*="_pagenation"] .page-item {
  display: inline-flex !important; align-items: center; justify-content: center;
  min-width: 42px; height: 42px; padding: 0 12px;
  border: 1.5px solid #d5e3c3 !important; border-radius: 10px !important;
  background: transparent !important; color: #2f5d1e !important;
  font-family: "Bricolage Grotesque", sans-serif !important; font-weight: 800 !important; font-size: 16px !important;
}
[class*="_pagenation"] .pagination_num.current {
  background: #4a8a2f !important; border-color: #4a8a2f !important; color: #ffffff !important;
}

/* ============================================================
   16. 記事詳細ページ（受領デザインに該当ページが無いため一覧の体裁に合わせる）
   ブログ詳細 = parts166_single_article ／ 施工実績詳細 = parts-blog-ex-single-wrap
   ------------------------------------------------------------ */
section[class*="single_article"] > .container,
section[class*="single-wrap"] > .container,
section[class*="single-wrap"] .content_wrap {
  max-width: 900px !important; margin: 0 auto !important; padding: 0 clamp(20px, 5vw, 60px) !important;
}
section[class*="single_article"], section[class*="single-wrap"] {
  background: #ffffff !important; padding: clamp(48px, 6vw, 78px) 0 clamp(64px, 8vw, 110px) !important;
}
/* タイトル */
section[class*="single_article"] article > h1,
section[class*="single-wrap"] .parts-blog-ex_text h2:first-child {
  font-family: "Zen Maru Gothic", system-ui, sans-serif !important;
  font-weight: 900 !important; font-size: clamp(24px, 3vw, 34px) !important;
  line-height: 1.45 !important; color: #22301b !important;
  text-align: left !important; margin: 0 0 14px !important;
}
/* 日付・カテゴリの行 */
section[class*="single_article"] .article_status {
  font-family: "Bricolage Grotesque", sans-serif !important;
  font-size: 13px !important; font-weight: 700 !important; color: #8bb56a !important;
  padding-bottom: 18px !important; border-bottom: 1px solid #e6efd9 !important;
  margin: 0 0 clamp(26px, 3vw, 38px) !important;
}
/* 本文 */
section[class*="single_article"] article p,
section[class*="single-wrap"] .parts-blog-ex_text {
  font-family: "Zen Maru Gothic", system-ui, sans-serif !important;
  font-size: 17px !important; line-height: 1.95 !important; color: #2b3820 !important;
}
section[class*="single_article"] article img,
section[class*="single-wrap"] img { max-width: 100%; height: auto; border-radius: 12px; }
/* カテゴリ帯（テーマ既定のグレー帯を一覧のピルへ寄せる） */
.article_category_wrap {
  background: transparent !important; border: 0 !important; padding: 0 !important;
  display: flex !important; align-items: center; gap: 8px;
  margin: clamp(26px, 3vw, 38px) 0 0 !important;
}
.article_category_wrap img { display: none !important; }
.article_category_wrap span {
  display: inline-block; background: #eef4e6 !important; color: #4a8a2f !important;
  border-radius: 999px !important; padding: 5px 14px !important;
  font-size: 12px !important; font-weight: 800 !important; letter-spacing: .04em;
}
/* 前後記事 */
.article_prevnext_wrap { display: flex !important; gap: 12px; flex-wrap: wrap; margin: clamp(30px, 3.4vw, 44px) 0 0 !important; }
.article_prevnext_wrap .article_prev,
.article_prevnext_wrap .article_next {
  border: 1.5px solid #d5e3c3 !important; border-radius: 12px !important;
  padding: 12px 18px !important; background: #ffffff !important; flex: 1 1 240px;
}
.article_prevnext_wrap a { color: #2f5d1e !important; font-weight: 700; }
.article_prevnext_wrap span { color: #2b3820 !important; }
/* SNSボタン列 */
.sns_button_wrap { display: flex !important; align-items: center; flex-wrap: wrap; gap: 8px; margin: clamp(26px, 3vw, 36px) 0 0 !important; }
/* 最近の投稿 */
.recent_posts_wrap { margin: clamp(40px, 5vw, 60px) 0 0 !important; }
.recent_posts_wrap ul { list-style: none !important; padding: 0 !important; margin: 0 !important; }
/* 施工実績詳細のギャラリースライダー */
section[class*="single-wrap"] .parts-blog-ex_gallery-slider .container { max-width: 900px !important; margin: 0 auto !important; }
section[class*="single-wrap"] .gallery-blog-ex,
section[class*="single-wrap"] .gallery-blog-ex .slick-list,
section[class*="single-wrap"] .gallery-blog-ex .slick-slide { background: #eef4e6; }
section[class*="single-wrap"] .gallery-blog-ex img { border-radius: 14px; object-fit: cover !important; }
section[class*="single-wrap"] .choice-btn-blog-ex img { border-radius: 8px; }