html{-webkit-text-size-adjust: 100%; scroll-behavior: smooth;}
body{margin: 0; background: #ffffff; color: #222222; font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif; line-height: 1.7; overflow-x: hidden;}
*{box-sizing: border-box;}
a{color: #0D0D0D;}
a:hover{color: #C49A00;}
a:focus-visible, button:focus-visible{outline: 3px solid #F5C200; outline-offset: 2px;}
@keyframes paneFade{from { opacity: 0; transform: translateY(10px) } to { opacity: 1; transform: translateY(0) }}
@keyframes topFade{from { opacity: 0; transform: translateY(20px) } to { opacity: 1; transform: translateY(0) }}
@keyframes pulseYel{0%,100% { box-shadow: 0 8px 28px rgba(245,194,0,.45) } 50% { box-shadow: 0 8px 44px rgba(245,194,0,.8) }}
@keyframes pinPulse{0%,100% { box-shadow: 0 0 0 3px rgba(255,255,255,.95), 0 0 0 3px rgba(13,13,13,.35), 0 3px 10px rgba(0,0,0,.5) } 50% { box-shadow: 0 0 0 3px rgba(255,255,255,.95), 0 0 0 10px rgba(245,194,0,.28), 0 3px 10px rgba(0,0,0,.5) }}
@media (min-width: 721px) and (max-width: 980px){
  [data-bento]{grid-template-columns: repeat(2, minmax(0, 1fr)) !important; grid-template-rows: auto !important;}
  [data-bento] > *{grid-row: auto !important; grid-column: auto !important; aspect-ratio: 4 / 3;}
}
@media (max-width: 720px){
  .ao-main [data-btn]:not([data-cta-row]){width: 100%; justify-content: center;}
  .ao-main [role="tablist"]{width: 100% !important; max-width: 340px; flex-direction: column; gap: 0; padding: 5px !important;}
  .ao-main [role="tablist"] > button{width: 100%; min-height: 58px !important; padding: 11px 14px !important; flex-direction: row !important; gap: 11px !important; justify-content: flex-start !important; font-size: 14px !important; border-left: 0 !important; border-bottom-width: 3px !important; border-bottom-style: solid !important; border-radius: 5px !important;}
  .ao-main [role="tablist"] > button + button{margin-top: 3px;}
  .ao-main [role="tablist"] > button svg{width: 21px; height: 21px;}
  [data-bento]{grid-template-columns: 1fr !important; grid-template-rows: auto !important;}
  [data-bento] > *{grid-row: auto !important; grid-column: auto !important; aspect-ratio: 4 / 3;}
  [data-hero-copy]{text-align: left !important;}
  [data-hero-copy] h1 > span{margin-left: 0 !important; justify-content: flex-start !important;}
  [data-hero-copy] > div:last-of-type{justify-content: flex-start !important;}
  [data-hero-copy] p{margin-left: 0 !important; margin-right: 0 !important;}
}
@media (prefers-reduced-motion: reduce){
  *{transition: none !important; animation: none !important;}
}
img{max-width: 100%; display: block;}
a:focus-visible{outline: 3px solid #F5C200; outline-offset: 2px;}
[data-bizcard]:hover [data-sweep]{transform: scaleX(1) !important; transform-origin: left center !important;}
[data-bizcard]:hover [data-arrow]{transform: translateX(8px) !important;}
@media (max-width: 720px){
  .ao-main [data-grid2]{grid-template-columns: 1fr !important;}
  .ao-main [data-flow]{grid-template-columns: 1fr !important;}
}
@media (max-width: 900px){
  [data-trades]{grid-template-columns: repeat(2, minmax(0, 1fr)) !important;}
}
@media (max-width: 560px){
  [data-trades]{grid-template-columns: 1fr !important;}
}
a:focus-visible, summary:focus-visible{outline: 3px solid #F5C200; outline-offset: 2px;}
summary{list-style: none; cursor: pointer;}
summary::-webkit-details-marker{display: none;}
details[open] .faq-plus{transform: rotate(45deg);}
@media (min-width: 721px) and (max-width: 1200px){
  .parts222_post_list{grid-template-columns: repeat(2, minmax(0, 1fr)) !important;}
}
footer [data-fgrid]{display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));}
footer [data-fgrid] > [data-fcompany]{grid-column: 1 / -1;}
@media (min-width: 981px){
  footer [data-fgrid]{grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1fr);}
  footer [data-fgrid] > [data-fcompany]{grid-column: auto;}
}
/* === 変換で必要になった土台（受領のdc構文・<main> を納品DOMへ置き換えた分） === */

/* KEEP: 受領は <main> にこの地（紙色＋アスファルト風テクスチャ）を敷いていた。納品では本文が
   ブロック単位に割れる／動的ページ（ブログ・施工実績・フォーム）はCMSが本文を描くため、
   body へ移して全ページで同じ地が出るようにしている。ここを消すと動的ページだけ白地になる。 */
body{
  background-color:#ffffff;
  background-image:linear-gradient(rgba(255,255,255,.86),rgba(255,255,255,.86)),url(https://cdn.cuezilla-cms.com/cuezilla-cms-test8.net/images/1506/texture-asphalt-light.webp);
  background-size:auto,900px auto;
  background-repeat:no-repeat,repeat;
  background-position:center,center;
  background-attachment:scroll,fixed;
}
/* /KEEP */

/* 本文ラッパー（受領の <main> の役割。受領CSSの "main …" セレクタはここへ振り替えてある） */
.ao-main{display:block}

/* KEEP: image-slot → img 変換の既定値の再現。image-slot.js の :host は aspect-ratio:3/2 を持っており、
   親の高さが不定の箱で画像が自然縦横比まで伸びるのを防いでいた。外すと一部ページだけ縦に伸びる
   （教訓 image-slot-to-img-loses-aspect-ratio-default）。 */
img.ao-slot{max-width:100%;display:block;aspect-ratio:3/2}
/* /KEEP */

/* FV動画（受領は dc-script が <source> を後から足していた。納品は素材確定のため焼き込み） */
/* KEEP: FV動画と poster のクロスフェード（消すと「一瞬 別の写真が出る」症状が戻る）。
   ・.ao-hero-poster … 動画の下に敷いた poster 画像の層。**動画が読めなかったときはこれが出たまま**＝
     ディレクター指示のフォールバック。ここを消すと動画不達時にFVが暗いグラデだけになる。
   ・.ao-hero-video … 既定 opacity:0。BODY内JSが「実際に再生できる状態（readyState>=2）」を確認して
     .is-ready を付け、0.9秒かけて poster の上へ重なる＝静止画→動画がディゾルブになる。
     JSが動かなかった場合は html:not(.ao-js) で最初から opacity:1（動画の poster 属性が読込中を埋める／R-4）。
   ・prefers-reduced-motion では動画を出さず poster のまま（静止画がそのままFVになる＝最も低刺激）。 */
.ao-hero-poster{background-color:#0D0D0D}
.ao-hero-video{
  background:radial-gradient(120% 90% at 70% 20%,#2A2A2A 0%,#141414 45%,#0D0D0D 100%);
  opacity:0; transition:opacity .9s ease;
}
.ao-hero-video.is-ready{opacity:1}
html:not(.ao-js) .ao-hero-video{opacity:1}
@media (prefers-reduced-motion: reduce){ .ao-hero-video{opacity:0 !important; transition:none !important} }
/* /KEEP */

/* tel: リンク（受領は素のテキスト。表示は変えずリンクだけ足す＝色は継承／R-24）。
   padding-block はインライン要素では行の高さを変えないので、**見た目を変えずにタップ領域だけ**広げられる
   （本文中の番号は 44px 角にできないため／R-19 軸②）。 */
a.ao-tel{color:inherit;padding-block:12px}

/* 自前パンくずのリンクも同じ理由でタップ領域だけ広げる（見た目は不変） */
.ao-main nav[aria-label="現在の位置"] a{padding-block:13px}

/* ============================================================
   ヘッダー（受領 SiteHeader.dc.html の renderVals をCSSへ）
   受領の切替点は window.innerWidth >= 1100（wide）。
   ============================================================ */
:root{ --ao-hdr-h:73px; --fixed-header-h:73px; }   /* R-18: システム描画ページの潜り込み防止 */
@media (max-width:1099px){ :root{ --ao-hdr-h:65px; --fixed-header-h:65px; } }
.ao-hdr-spacer{height:var(--ao-hdr-h,73px);flex:0 0 auto}

/* PCナビ / バーガー の出し分け（受領は sc-if wide / narrow） */
@media (max-width:1099px){ .ao-pcnav{display:none !important} }
.ao-burger{
  appearance:none;margin-left:auto;background:transparent;border:1px solid rgba(255,255,255,.28);
  border-radius:6px;width:46px;height:46px;min-width:46px;cursor:pointer;display:flex;
  flex-direction:column;align-items:center;justify-content:center;gap:5px;flex:0 0 auto;
  transition:border-color .3s ease;
}
@media (min-width:1100px){ .ao-burger{display:none !important} }
.ao-bar{display:block;width:22px;height:2px;background:#ffffff;transition:transform .3s cubic-bezier(.4,0,.2,1),opacity .2s}
.ao-burger.is-open .ao-bar:nth-of-type(1){transform:translateY(7px) rotate(45deg);background:#F5C200}
.ao-burger.is-open .ao-bar:nth-of-type(2){opacity:0}
.ao-burger.is-open .ao-bar:nth-of-type(3){transform:translateY(-7px) rotate(-45deg);background:#F5C200}

/* PCプルダウン（事業内容） */
.ao-ddbtn{
  appearance:none;background:transparent;border:0;color:rgba(255,255,255,.75);min-width:28px;min-height:44px;
  padding:0 6px 0 2px;font-size:10px;line-height:1;cursor:pointer;display:flex;align-items:center;
  justify-content:center;border-radius:0 5px 5px 0;
}
.ao-caret{display:block;transform:none;transition:transform .18s}
.ao-ddmenu{
  position:absolute;top:100%;left:0;margin:0;padding:0;list-style:none;min-width:220px;background:#1A1A1A;
  border:1px solid #2A2A2A;border-top:2px solid #F5C200;border-radius:0 0 8px 8px;
  box-shadow:0 12px 28px rgba(0,0,0,.45);overflow:hidden;z-index:10;
  opacity:0;visibility:hidden;transform:translateY(-6px);
  transition:opacity .22s cubic-bezier(.4,0,.2,1),transform .22s cubic-bezier(.4,0,.2,1),visibility .22s;
}
.ao-dd:hover > .ao-ddmenu,
.ao-dd:focus-within > .ao-ddmenu,
.ao-dd.is-open > .ao-ddmenu{opacity:1;visibility:visible;transform:translateY(0)}
.ao-dd:hover > .ao-ddbtn,
.ao-dd:focus-within > .ao-ddbtn,
.ao-dd.is-open > .ao-ddbtn{color:#F5C200}
.ao-dd:hover .ao-caret,
.ao-dd:focus-within .ao-caret,
.ao-dd.is-open .ao-caret{transform:rotate(180deg)}

/* SPドロワー（受領 panelStyle） */
.ao-panelnav{
  display:none;max-height:0;overflow:hidden;border-top:0 solid transparent;background:#0D0D0D;
  transition:max-height .42s cubic-bezier(.4,0,.2,1);
}
@media (max-width:1099px){
  .ao-panelnav{display:block}
  .ao-panelnav.is-open{max-height:calc(100svh - 74px);overflow-y:auto;border-top:1px solid rgba(255,255,255,.12)}
}

/* ============================================================
   TOP：立場タブ（受領 audience。props 既定 = client）
   ============================================================ */
.ao-tab{
  appearance:none;flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:7px;padding:14px 30px 13px;border-radius:8px;font-weight:700;font-size:15px;
  font-family:inherit;border:0;border-bottom:3px solid transparent;border-left-color:transparent;
  background:transparent;color:#6B6B66;box-shadow:none;min-height:86px;cursor:pointer;
  transition:all .25s cubic-bezier(.4,0,.2,1);
}
.ao-tab.is-on{
  border-bottom:3px solid #F5C200;border-left-color:#F5C200;background:#ffffff;color:#0D0D0D;
  box-shadow:0 2px 8px rgba(13,13,13,.12);
}
.ao-tabpanel{
  grid-area:1 / 1;align-self:start;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr));gap:16px;align-content:start;
  opacity:0;visibility:hidden;pointer-events:none;transform:translateY(10px);
  transition:opacity .38s cubic-bezier(.4,0,.2,1),transform .38s cubic-bezier(.4,0,.2,1);
}
.ao-tabpanel.is-on{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}
.ao-tabcta{
  grid-area:1 / 1;display:flex;justify-content:center;
  opacity:0;visibility:hidden;pointer-events:none;transition:opacity .38s cubic-bezier(.4,0,.2,1);
}
.ao-tabcta.is-on{opacity:1;visibility:visible;pointer-events:auto}
/* KEEP: BODY内JSが読まれなかった場合の保険。タブを切り替えられないので両方を縦に並べて全文を見せる（R-4）。
   .ao-js は BODY内JS が付ける。 */
html:not(.ao-js) .ao-tabpanel,
html:not(.ao-js) .ao-tabcta{grid-area:auto;opacity:1;visibility:visible;pointer-events:auto;transform:none}
/* /KEEP */

/* ============================================================
   TOP：SERVICES のイラスト内スポット（受領 service。既定 = 0）
   ============================================================ */
.ao-spot{background:transparent;box-shadow:inset 0 0 0 0 rgba(245,194,0,0);transition:background .3s ease,box-shadow .3s ease}
.ao-spot.is-on{background:rgba(245,194,0,.20);box-shadow:inset 0 0 0 2px #F5C200}
.ao-pin{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(1);width:38px;height:38px;
  border-radius:50%;background:#F5C200;color:#0D0D0D;border:2px solid #0D0D0D;
  font-family:'Oswald',sans-serif;font-weight:700;font-size:15px;line-height:1;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 0 0 3px rgba(255,255,255,.95),0 3px 10px rgba(0,0,0,.5);
  animation:pinPulse 2.6s ease-in-out 0s infinite;
  transition:transform .3s cubic-bezier(.4,0,.2,1),background .3s ease,color .3s ease,border-color .3s ease;
}
.ao-pin[data-ao-pin="0"]{left:26%}
.ao-pin[data-ao-pin="1"]{animation-delay:.22s}
.ao-pin[data-ao-pin="2"]{animation-delay:.44s}
.ao-pin[data-ao-pin="3"]{animation-delay:.66s}
.ao-pin[data-ao-pin="4"]{animation-delay:.88s}
.ao-pin[data-ao-pin="5"]{animation-delay:1.1s}
.ao-pin.is-on{
  transform:translate(-50%,-50%) scale(1.18);background:#0D0D0D;color:#F5C200;border-color:#F5C200;
  box-shadow:0 0 0 3px rgba(255,255,255,.95),0 0 0 12px rgba(245,194,0,.35),0 4px 14px rgba(0,0,0,.55);
  animation:none;
}
.ao-pane{
  grid-area:1 / 1;opacity:0;transform:translateY(8px);pointer-events:none;
  transition:opacity .35s ease,transform .45s cubic-bezier(.4,0,.2,1);
}
.ao-pane.is-on{opacity:1;transform:translateY(0);pointer-events:auto}

/* ============================================================
   TOP：SERVICES のイラスト図版（受領の切り取りを解除）
   受領は image-slot の既定比率 3/2 に合わせて cover 表示しており、1400x763 の図版の
   **左右 18.3% が切れていた**（受領版・納品版とも同じ。2026-08-27 実測）。その結果
   ①「06 塗装工事」のラベルが見切れる ②イラスト内のホットスポット（%指定）が図版とズレる
   （%座標は切り取り前の図版基準で作られている＝「03 樹木剪定・造園」ラベルの下端26%と
     03のホットスポット上端26%が接する等の一致から確認）。→ 本来の比率で全体を出す。
   ============================================================ */
.ao-illust > img.ao-slot{
  aspect-ratio:1400 / 763 !important;
  height:auto !important;
  object-fit:contain !important;
  border-radius:4px;
}
/* KEEP: 図版は下端 5px（表示上 約2.6px）までラベルが迫っている素材なので額縁ぶんの余白を足す。
   ★padding ではなく border を使うこと: ホットスポットは position:absolute の % 指定で、
     その基準は「パディングボックス」。padding だとホットスポットだけ外側に残って図版とズレる。
     border ならパディングボックスごと縮むので、図版とホットスポットの対応を保ったまま内側に入る。 */
.ao-illust{
  border:12px solid #1A1A1A !important;
  border-radius:14px !important;
  background:#1A1A1A;
  /* 枠が右カラムに合わせて縦に伸びると、図版だけ上に寄って（%指定の）ホットスポットが数px下へずれる。
     図版の高さで確定させる（右カラム側は従来どおり伸びて高さが揃う） */
  align-self:start;
}
@media (max-width:720px){ .ao-illust{ border-width:8px !important; } }
/* /KEEP */

/* TOP：BLOG見出し帯（05b末尾／パーツの直前）＝受領セクションから見出しだけを取り出したもの */
.ao-blog-head{background:transparent}
/* /blog の静的見出し帯（04b／パーツの直前） */
.ao-list-head{background:transparent}
/* /form/inquiry の導入文（受領は parts210 の実在クラスを借りていた＝R-20 で自前名へ改名） */
.ao-lead-wrap{max-width:760px;margin:0 auto}
/* === インライン animation/transition の退避（3重クラス＝インライン相当の詳細度） === */
.aoa1.aoa1.aoa1{transition:all .3s cubic-bezier(.4,0,.2,1);}
.aoa2.aoa2.aoa2{transition:background-size .45s cubic-bezier(.4,0,.2,1),color .3s cubic-bezier(.4,0,.2,1);}
.aoa3.aoa3.aoa3{transition:color .25s ease,border-color .25s ease,background .25s ease;}
.aoa4.aoa4.aoa4{transition:background-size .5s cubic-bezier(.4,0,.2,1),color .3s cubic-bezier(.4,0,.2,1);}
.aoa5.aoa5.aoa5{transition:color .3s;}
.aoa6.aoa6.aoa6{animation:topFade 1s .1s both;}
.aoa7.aoa7.aoa7{transition:background-size .5s cubic-bezier(.4,0,.2,1),color .3s cubic-bezier(.4,0,.2,1),border-color .3s cubic-bezier(.4,0,.2,1);}
.aoa8.aoa8.aoa8{transition:transform .7s cubic-bezier(.4,0,.2,1);}
.aoa9.aoa9.aoa9{transition:color .35s ease .25s;}
.aoa10.aoa10.aoa10{transition:background-size .5s cubic-bezier(.4,0,.2,1),color .3s cubic-bezier(.4,0,.2,1),padding-left .4s cubic-bezier(.4,0,.2,1);}
.aoa11.aoa11.aoa11{transition:color .3s ease;}
.aoa12.aoa12.aoa12{transition:box-shadow .4s cubic-bezier(.4,0,.2,1);}
.aoa13.aoa13.aoa13{transition:transform .55s cubic-bezier(.4,0,.2,1);}
.aoa14.aoa14.aoa14{transition:color .35s ease;}
.aoa15.aoa15.aoa15{transition:transform .4s cubic-bezier(.4,0,.2,1);}
.aoa16.aoa16.aoa16{transition:background-size .6s cubic-bezier(.4,0,.2,1),color .3s cubic-bezier(.4,0,.2,1),box-shadow .4s cubic-bezier(.4,0,.2,1);}
.aoa17.aoa17.aoa17{transition:color .25s ease,border-color .25s ease;}
.aoa18.aoa18.aoa18{transition:transform .2s;}
/* === style-hover / style-focus 由来の生成クラス === */
.aox1.aox1.aox1:hover{color:#ffffff !important;}
.aox2.aox2.aox2:hover{color:#F5C200 !important;background:rgba(245,194,0,.1) !important;}
.aox3.aox3.aox3:hover{background:#242424 !important;color:#F5C200 !important;}
.aox4.aox4.aox4:hover{background-position:left center !important;background-size:100% 100% !important;color:#0D0D0D !important;}
.aox5.aox5.aox5:hover{color:#F5C200 !important;border-color:rgba(245,194,0,.6) !important;background:rgba(245,194,0,.08) !important;}
.aox6.aox6.aox6:hover{background-position:left center !important;background-size:100% 100% !important;color:#ffffff !important;}
.aox7.aox7.aox7:hover{color:#F5C200 !important;}
.aox8.aox8.aox8:hover{background-position:left center !important;background-size:100% 100% !important;color:#0D0D0D !important;border-color:transparent !important;}
.aox9.aox9.aox9:hover{background-position:left center !important;background-size:100% 100% !important;color:#ffffff !important;border-color:rgba(255,255,255,.4) !important;}
.aox10.aox10.aox10:hover{background:#ffffff !important;color:#0D0D0D !important;}
.aox11.aox11.aox11:hover{background-position:left center !important;background-size:100% 100% !important;color:#ffffff !important;border-color:transparent !important;}
.aox12.aox12.aox12:hover{background-position:left center !important;background-size:100% 100% !important;color:#0D0D0D !important;padding-left:26px !important;}
.aox13.aox13.aox13:hover{background-position:left center !important;background-size:100% 100% !important;color:#0D0D0D !important;border-color:#F5C200 !important;}
.aox14.aox14.aox14:hover{box-shadow:0 22px 48px rgba(0,0,0,.28) !important;}
.aox15.aox15.aox15:hover{background-position:left center !important;background-size:100% 100% !important;color:#0D0D0D !important;box-shadow:0 22px 48px rgba(0,0,0,.28) !important;}
.aox16.aox16.aox16:hover{color:#ffffff !important;border-color:#ffffff !important;}
/* === tel: リンクのインラインstyle退避（R-7／convertの☎誤検知対策） === */
.aot1.aot1.aot1{position:relative;display:flex;align-items:center;gap:clamp(12px,2vw,20px);padding-top:clamp(20px,2.6vw,26px);padding-bottom:clamp(20px,2.6vw,26px);padding-left:6px;padding-right:6px;border-top:1px solid rgba(255,255,255,.22);color:#ffffff;text-decoration:none;font-family:'Noto Sans JP',sans-serif;font-size:clamp(19px,2.6vw,27px);font-weight:900;letter-spacing:.02em;line-height:1.4;background-image:linear-gradient(#F5C200,#F5C200);background-repeat:no-repeat;background-position:right center;background-size:0% 100%;}


/* ===== 21_cuezilla-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件目以降の左に縦罫線）※R-27対応（2026-08-26）
   旧実装は `::before` の content 宣言（文字リテラル "›"）で区切りを描いていたが、AddCssInfo は
   疑似要素の content 宣言をサニタイズで落とすため、実機では区切りが消えて
   「ホーム私たちの歴史」のように語が詰まっていた。
   ★実要素（<span>）へ昇格させず「content を使わない罫線」で代替した理由:
     パンくずの運用第一候補は「CueZilla がページ階層から自動描画するパンくずパーツ」で、
     その markup に区切り用の要素を挿す手段が無い。templates/breadcrumb.html（明示設置版）だけ
     直しても自動描画側は直らないので、両経路に1本のCSSで効く手段を採った。
     border / padding はサニタイズ後も残る（R-27「残る」側）。
   ★物理プロパティ（border-left）で書く理由: サニタイズのホワイトリストに論理プロパティが
     載っていない可能性を避ける。和文サイトは横書きLTR固定なので意味は同じ。 */
.p-breadcrumb__item + .p-breadcrumb__item{
  margin-left:.7em; padding-left:.7em;
  border-left:1px solid var(--dyn-border) !important;
}
.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)… 表記は【HTML側のテキスト】で持つ ※R-27対応（2026-08-26）
   旧実装は `li::before` の content 宣言（`counter(pp)` を括弧で挟む）で番号を描いていたが、AddCssInfo は
   content 宣言をサニタイズで落とす（counter() は content 専用なのでCSS単独の代替が無い）。実機では番号が消えたうえに
   下のぶら下げインデントだけが残り、本文が左へはみ出していた。
   ★番号を捨てず HTML テキストへ移した理由: 本文が「上記(1)から(6)に掲げるほか」と番号を参照しており、
     番号は装飾ではなく文書の一部（消すと文意が壊れる）。会社承認の定型文なので表記も変えられない。
     → templates/privacy-policy.html の各 <li> 先頭に "(1) " 等を直接書く形へ変更した。
   ★ぶら下げインデント（padding-left / text-indent）は残す: 番号が行頭テキストになった今も、
     折り返し行を本文位置に揃えるために必要（＝この2行が番号の受け皿）。
     番号を持たない古い privacy HTML に当たると字下げだけが見えるので、その場合はCSSではなく
     HTML側に番号を入れて直す。counter-reset / counter-increment は用が無くなったので外した。 */
.privacy-item__list{ list-style:none; margin:8px 0; padding:0; }
.privacy-item__list li{ padding-left:2.2em; text-indent:-2.2em; margin:4px 0; color:var(--dyn-text); }


/* ============================================================
   §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; }


/* ===== 29_override.css ===== */
/* S00121 有限会社アオト建設 — override（site.css → skin の後に結合。案件の上書きはここだけ／R-30）

   skin採用（cz-judgment §3）: 受領データは動的パーツ（ブログ/施工実績/フォーム/NEWS帯）の
   クラスCSSを1行も持たず、実在クラス＋インラインstyleで見た目を再現しているだけ（AHT型）。
   → skin をそのまま同梱し、ここには「skinの後で受領の意匠に寄せる分」だけを書く。 */

/* KEEP: CueZilla自動パンくずは全ページ非表示（受領デザインが自前のパンくず帯を持つため二重になる・R-10a） */
[class*="_breadcrumb"], .p-breadcrumb{ display:none !important; }
/* /KEEP */

/* KEEP: theme_default の body{overflow-x:hidden} と html,body{height:100%} の打ち消し（2行セット）。
   本案件のヘッダーは position:fixed なので sticky の問題は出ないが、height:100% はページ全体の
   高さ計算を狂わせるため揃えて当てる。
   教訓 cuezilla-sticky-header-fix / cuezilla-theme-html-body-height-100-kills-sticky */
html, body{ height:auto !important; }
body{ overflow-x:clip !important; min-height:100dvh; }
/* /KEEP */

/* KEEP: テーマ(Bootstrap)の a:hover 青化を受領の配色へ戻す（R-20） */
a:hover{ color:#C49A00; }
/* /KEEP */

/* ============================================================
   TOP：NEWS帯（design-parts-52）
   受領は実在クラス＋インラインstyleで再現していた＝パーツに置き換えると装飾が全部消えるので
   同じ意匠をクラスCSSで書き起こす（R-7・採番非依存／エアソリティーの(b)型）。
   ============================================================ */
section[class*="design-parts-52"]{ background:#0D0D0D !important; border-top:1px solid rgba(255,255,255,.12) !important; color:rgba(255,255,255,.85) !important; }
section[class*="design-parts-52"] .container{ max-width:1240px; margin:0 auto; padding:0 clamp(16px,4vw,44px); }
section[class*="design-parts-52"] .content{ display:flex; flex-wrap:wrap; align-items:center; gap:4px 24px; padding:18px 0; }
/* NEWSラベル。★「文字が下寄りになる」対策込み（2026-08-26 ディレクター指摘）:
   受領は padding だけで高さを作っていたが、それだと
     ①テーマ/Bootstrap の h4 行高（1.2）や、CueZillaがラベルに当てる余白がそのまま効いて箱の高さが変わる
     ②Oswald は大文字だけのとき ink がベースライン上に偏る（実測 12px で ascent 10px・descent 0px）ため、
       行ボックスの中央＝文字の中央にならない
   の2つで下へ寄る。→ **箱の高さを min-height で確定し、inline-flex + align-items:center で中身を中央へ、
   行高を 1 に固定**したうえで、②のぶんを padding-bottom:1px で相殺する（ローカル実測で上下ぴったり同値）。
   セレクタは (0,3,2) まで上げてある＝CueZillaが吐く採番付き自動CSS(0,3,0〜0,3,1)+!important に勝つため。 */
section[class*="design-parts-52"] h4.banner-area,
section[class*="design-parts-52"] .content h4.banner-area,
section[class*="design-parts-52"] .content [class*="banner-area"]{
  margin:0 !important; flex:0 0 auto;
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  min-height:28px !important; height:auto !important;
  padding:0 15px 1px !important; line-height:1 !important;
  background:transparent !important; color:#ffffff !important;
  border:1px solid rgba(255,255,255,.3) !important; border-radius:5px !important;
  font-family:'Oswald',sans-serif !important; font-size:12px !important; font-weight:700 !important;
  letter-spacing:.2em !important; text-align:center !important;
}
/* ラベルの中に span 等が入る実装でも、その子が余計な行高・余白を持ち込まないようにする */
section[class*="design-parts-52"] [class*="banner-area"] > *{
  margin:0 !important; padding:0 !important; line-height:1 !important; display:inline !important;
}
section[class*="design-parts-52"] ul{ margin:0 !important; padding:0 !important; list-style:none !important; flex:1 1 320px; min-width:0; }
section[class*="design-parts-52"] li a{ display:block; text-decoration:none; color:rgba(255,255,255,.85) !important; padding:8px 0; min-height:44px; }
section[class*="design-parts-52"] li a:hover{ color:#F5C200 !important; }
section[class*="design-parts-52"] .parts-52-textarea{ display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 20px; min-height:28px; }
section[class*="design-parts-52"] .date{
  flex:0 0 auto; font-family:'Oswald',sans-serif !important; font-size:13px !important;
  letter-spacing:.06em; color:rgba(255,255,255,.5) !important; font-variant-numeric:tabular-nums;
}

/* ============================================================
   TOP：ブログ記事カード（parts131415_blog）
   意匠見出しは 05b の末尾（.ao-blog-head）に残してあるので、パーツ側の見出し枠は隠す。
   カードの体裁は受領のインラインstyleを書き起こしたもの。
   ============================================================ */
section[class*="parts131415_blog"]{ background:transparent !important; padding:0 clamp(20px,4vw,48px) clamp(52px,7vw,76px) !important; }
section[class*="parts131415_blog"] [class*="_title_wrap"]{ display:none !important; }
section[class*="parts131415_blog"] > .container-lg{ max-width:1240px; margin:0 auto; padding-top:0 !important; }
/* 列数はパーツ自身が持つ Bootstrap クラス（row-cols-1 / row-cols-sm-2 / row-cols-lg-3）と同じ
   1→2→3 で固定する。受領は auto-fit だったが、CMSの記事が3件未満だと空トラックが潰れて
   カードが横いっぱいに伸びる（教訓 auto-fit-grid-blows-up-when-cms-returns-few-items）。
   minmax の 0 はグリッド子の min-width:auto による横はみ出し対策も兼ねる。 */
section[class*="parts131415_blog"] .row{
  display:grid !important; grid-auto-rows:1fr;
  grid-template-columns:minmax(0,1fr) !important; gap:22px !important;
  /* Bootstrap の溝（.g-4 / --bs-gutter-*）を0にする。グリッドの gap と二重にかかって
     カード間が 22px→46px に開き、.row の負マージンで container からもはみ出すため。 */
  --bs-gutter-x:0 !important; --bs-gutter-y:0 !important;
}
@media (min-width:576px){ section[class*="parts131415_blog"] .row{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; } }
@media (min-width:992px){ section[class*="parts131415_blog"] .row{ grid-template-columns:repeat(3,minmax(0,1fr)) !important; } }
/* KEEP: ★Bootstrap（テーマが読み込む）の .row-cols-* の子セレクタが flex:0 0 auto と width:33.3333% を当てる。
   .row をグリッド化すると、この % が「グリッドトラックの33%」として効いてカードが潰れる
   （実測 2026-08-27: 375px のトラックの中でカード 125px）。グリッド側で必ず打ち消すこと。
   ★この不具合は Bootstrap を読み込まないローカル再現では絶対に出ない。 */
section[class*="parts131415_blog"] .row > *{
  width:auto !important; max-width:none !important; flex:0 1 auto !important; min-width:0 !important;
}
/* /KEEP */
section[class*="parts131415_blog"] .card{
  background:#ffffff !important; border:1px solid rgba(0,0,0,.07) !important; border-radius:9px !important;
  overflow:hidden; height:100%;
}
section[class*="parts131415_blog"] .card-body{ padding:18px !important; }
section[class*="parts131415_blog"] .card-title{
  margin:0 0 10px !important; display:inline-block !important; background:#F0F0EC !important; color:#555555 !important;
  font-size:10px !important; font-weight:700 !important; letter-spacing:.1em !important;
  padding:4px 12px !important; border-radius:20px !important; text-align:center !important;
  font-family:'Noto Sans JP',sans-serif !important;
}
section[class*="parts131415_blog"] .card-text{
  margin:0 0 14px !important; font-size:15px !important; font-weight:700 !important; line-height:1.6 !important;
  color:#0D0D0D !important; font-family:'Noto Sans JP',sans-serif !important;
}
section[class*="parts131415_blog"] [class*="_thumbnail"]{ height:170px; border-radius:8px; overflow:hidden; background:#2A2A2A; }
section[class*="parts131415_blog"] a{ text-decoration:none; }
section[class*="parts131415_blog"] a:hover .card-text{ color:#C49A00 !important; }

/* ============================================================
   一覧・フォーム（/blog・/blog-ex/instance・/form/inquiry）
   基本装飾は skin（§3〜§7）が持つ。ここは受領デザインに寄せる差分だけ。
   ★実機投入後に harvestEW() で実DOMを採り、崩れがあればここを直す（R-28）。
   ============================================================ */
section[class*="parts222_section"], section[class*="parts228_section"]{
  padding:clamp(56px,8vw,96px) clamp(20px,4vw,48px) !important; background:transparent !important;
}
section[class*="parts213"], section.contact_section{ background:#ffffff !important; }

/* skin §0 のトークンを受領デザインの配色へ寄せる（override は skin の後＝ここでしか効かない／R-30）。
   カード面・入力欄・チップの地はこのサイトでは白、角は落とし、日付は薄墨。 */
:root{
  --dyn-bg:#ffffff; --dyn-surface:#ffffff; --dyn-text:#222222; --dyn-heading:#0D0D0D;
  --dyn-muted:#888888; --dyn-border:rgba(0,0,0,.12); --dyn-accent:#0D0D0D; --dyn-accent-2:#C49A00;
  --dyn-on-accent:#ffffff; --dyn-radius:0; --dyn-card-min:300px; --dyn-gap:28px;
  --dyn-font-display:'Noto Serif JP',serif; --dyn-font-body:'Noto Sans JP',sans-serif;
  --dyn-font-numeric:'Oswald',sans-serif;
}
/* グリッド子の min-width:auto でカードが横にはみ出すのを先に潰す（SP幅で必ず起きる） */
[class*="_post_list"], [class*="_post_list"] > *{ min-width:0 !important; }
/* 受領のカード意匠（白面・細枠・角丸10px）。カードの並び・等寸化・max-width解除は skin §4 が担当。
   ★ サイドバーの幅（テーマの max-width:28.179%）は**解除しない**＝受領デザインの
      「本文＋右サイドバー」の比率がそれで再現される（一律 max-width:none にすると50/50になって崩れる）。 */
[class*="_post_wrap"]{ border:1px solid rgba(0,0,0,.08) !important; border-radius:10px !important; }
/* ★詳細度に注意: skin §4 のチップ装飾は [class*="_post_status"] > span:last-child(0,2,1) にも当たるので、
   同じ (0,2,0) で書くと負ける。親を1段足して (0,3,1) にして受領の「白地・金茶文字・角なし」を確定させる。 */
[class*="_post_status"] > [class*="_post_category"]:not([class*="_sidebar"]){
  color:#C49A00 !important; border:1px solid rgba(0,0,0,.15) !important; background:#ffffff !important;
  padding:4px 10px !important; font-size:12px !important; letter-spacing:.06em !important;
  border-radius:0 !important;
}
/* ★日付をチップにしない保険。受領の parts228 マークアップは _post_status の中が日付だけで閉じており
   （実パーツは日付の後に _post_title-excerpt が続く＝受領のクラス当てが実DOMと少し違う）、
   その形だと skin §4 の [class*="_post_status"] > span:last-child チップ装飾が**日付を金茶の枠付き
   チップに変える**（ローカル再現で実測）。実DOMでは当たらないが、当たっても素のテキストに戻す。 */
[class*="_post_status"] > [class*="_post_date"]{
  background:transparent !important; border:0 !important; padding:0 !important;
  color:#888888 !important; font-family:'Oswald',sans-serif !important; letter-spacing:.08em !important;
}

/* ページ送り（parts222/228 のページャ）のタップ領域を 44px 確保する（R-19 軸②）。
   受領のダミーはインラインstyleで min-width/min-height:44px を持っていたが、実パーツには付かない。 */
[class*="pagenation"] a, [class*="pagination"] a{ min-width:44px !important; min-height:44px !important; display:inline-flex !important; align-items:center; justify-content:center; }
/* サイドバー見出し（受領は黒帯＋黄の左罫線）。skin §5 は帯を外して文字色だけ寄せるので当て直す。 */
[class*="_sidebar"] h3{
  background:#0D0D0D !important; color:#ffffff !important; font-size:13px !important; font-weight:700 !important;
  letter-spacing:.16em !important; padding:12px 16px !important; border-left:4px solid #F5C200 !important;
  border-radius:0 !important; text-align:left !important;
}

/* --- お問い合わせフォーム（parts213）: theme_default が dl を横並びにするのを受領の縦並びへ戻す ---
   theme は dl{display:flex;justify-content:center} ＋ dt{max-width:345px} ＋ dd{max-width:785px;margin-left:35px}
   を持つ。受領デザインは「項目名の下に全幅の入力欄」なので、そのままだと入力欄が約340pxに縮んで右寄りになる
   （R-28 の実測パターン。skin §7 の width:100% は dd の幅までしか効かない）。 */
[class*="_section_form"] dl{ display:block !important; }
[class*="_section_form"] dt{
  max-width:none !important; width:100% !important; justify-content:flex-start !important;
  gap:10px; margin-bottom:8px !important; font-size:15px !important; font-weight:700 !important;
}
[class*="_section_form"] dd{ max-width:none !important; width:100% !important; margin-left:0 !important; }
/* 入力欄は受領どおり「白地＋細枠＋角なし」 */
[class*="_form_wrap"] dd input:not([type="checkbox"]):not([type="radio"]),
[class*="_form_wrap"] dd select,
[class*="_form_wrap"] textarea{ background:#ffffff !important; border:1px solid rgba(0,0,0,.22) !important; }
/* 必須バッジ（受領は臙脂の角なし小バッジ） */
.attention{ color:#8a1a1a !important; }   /* skin §7 は muted(#888) にするが受領は臙脂＝AAを満たす方を採る */
.required{ background:#8a1a1a !important; color:#ffffff !important; font-size:11px !important;
  font-weight:700 !important; letter-spacing:.08em !important; padding:3px 10px !important;
  width:auto !important; height:auto !important; }
/* 送信ボタン（受領は黄地×墨文字。確認画面の「戻る」は skin のアウトラインのまま残す） */
.contact_submit input:not([name="back"]), .contact_submit button:not([name="back"]){
  background:#F5C200 !important; color:#0D0D0D !important; border:1px solid #F5C200 !important;
  border-radius:6px !important; min-height:54px; padding:15px 40px; font-weight:900; letter-spacing:.02em;
}

/* --- 一覧の自動見出し（「ブログ」「施工実績」）は skin §4 が既に隠している。
       もし実機で 04b の静的見出し「新着記事」と二重に出た場合だけ、下の1行のコメントを外す。
section[class*="parts222_section"] > h2{ display:none !important; }
    --- */