/* ===== 20_site.css ===== */
/* ===== O01035 株式会社三原板金 site.css =====
   受領 `受領データ/assets/site.css` を機械変換したもの（宣言の中身は無改変）。変換は5点だけ:
     ・`[style*="…"]` セレクタ → `[data-sw-m~="mN"]`（下の一覧が対応表）
       dc-runtime は style をCSSOMで再直列化する（コロンの後に空白／`150px 0`→`150px 0px`）ため、
       受領プレビューでは当たるが納品HTMLの生テキストには当たらない。マーク属性で同じ結果を再現。
     ・`main` → `.mb-main`（CueZillaのフリーHTMLに <main> は無いので div のラッパーへ振り替え）
     ・`image-slot` → `img.mb-slot`（カスタム要素は納品しない）
     ・`.parts210_*` → `.mb-lead_*`（CueZillaパーツ名の流用を避ける／R-20）
     ・`::before/::after` の `content` 依存装飾 → 背景 or 実要素（R-27。追加CSS欄が content を落とすため）
   受領CSSの構文崩れ1件（parts131415 見出しの行で閉じ括弧の後に宣言が続いていた）も直してある。
 */
/* 株式会社三原板金｜サイト共通スタイル（インライン化できないものだけ）
   ─ リセット／改行制御／リビール／レスポンシブ挙動／CMS動的パーツ（add.css と同内容） */

*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{margin:0;background:#fff;color:#141414;font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;line-height:1.9;font-size:16px;overflow-x:hidden;padding-bottom:78px;}
img{max-width:100%;display:block;}
a{color:#141414;text-decoration:underline;text-underline-offset:.2em;}
a:hover{color:#8a6b00;}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #FDD116;outline-offset:3px;}
span.line-chunk{display:inline-block;overflow-wrap:anywhere;word-break:normal;}
/* グリッド/フレックス項目の自動最小サイズ（min-width:auto）によるはみ出し防止 */
.mb-main :where(div,section,article,ul,ol,li,dl,p,h1,h2,h3,h4,table){min-width:0;}

@keyframes mbFloat{0%{scale:1.08}100%{scale:1}}
html.mb-js [data-reveal]{opacity:0;transform:translateY(30px);transition:opacity .9s cubic-bezier(.2,.7,.2,1) var(--rd,0s),transform .9s cubic-bezier(.2,.7,.2,1) var(--rd,0s);}
html.mb-js [data-reveal="in"]{opacity:1;transform:none;}
@media (prefers-reduced-motion: reduce){
  html.mb-js [data-reveal]{opacity:1 !important;transform:none !important;transition:none !important;}
  html.mb-js [data-fv-copy] > *{opacity:1 !important;transform:none !important;transition:none !important;}
  html.mb-js [data-fv-bar]{scale:1 1 !important;}
  html.mb-js [data-hero-frame]{clip-path:none !important;}
  [data-hero-cue-line] > .mb-x-cue{animation:none !important;}
  [data-hero-media]{animation:none !important;}
  [data-hero-slide]{animation:none !important;}
  [data-hero-slide="1"]{opacity:1 !important;}
  [data-hero-slide="2"],[data-hero-slide="3"]{opacity:0 !important;}
}

/* --- 表示アニメーション（TOP）：一枚ずつ、静かに納まる ---
   共通イージング cubic-bezier(.16,1,.3,1)。装飾は「マスクの縁」だけに絞る。 */
html.mb-js [data-anim-line]{display:inline-block;overflow:hidden;
  padding:0 .05em .14em;margin:0 -.05em -.14em;vertical-align:bottom;
  clip-path:inset(0 102% 0 0);
  transition:clip-path 1.05s cubic-bezier(.22,.61,.24,1) calc(var(--d,0s) + var(--sd,0s));}
html.mb-js [data-anim="head"][data-anim-in] [data-anim-line]{clip-path:inset(0 -2% 0 0);}
/* 2行以上の見出しは、指定した位置で必ず改行する */
html.mb-js [data-anim="head"][data-anim-multi] > [data-anim-line]{display:block;width:fit-content;}
html.mb-js [data-vertical][data-anim-multi] > [data-anim-line]{width:auto;height:fit-content;}
html.mb-js [data-anim="head"][data-anim-multi][data-anim-align="center"] > [data-anim-line]{margin-left:auto;margin-right:auto;}
html.mb-js [data-anim="head"][data-anim-multi][data-anim-align="right"] > [data-anim-line]{margin-left:auto;}
html.mb-js [data-anim-inner]{display:inline-block;transform:translateY(104%);
  transition:transform 1.15s cubic-bezier(.22,.61,.24,1) calc(var(--d,0s) + var(--sd,0s));}
html.mb-js [data-anim="head"][data-anim-in] [data-anim-inner]{transform:none;}
/* 縦書き見出しは上から降りてくる */
html.mb-js [data-vertical] [data-anim-inner]{transform:translateY(-112%);}
html.mb-js [data-vertical] [data-anim-line]{clip-path:inset(0 0 102% 0);}
html.mb-js [data-vertical][data-anim-in] [data-anim-line]{clip-path:inset(0 0 -2% 0);}

/* 英字ラベル：字間が締まりながら現れる */
html.mb-js [data-anim="eyebrow"]{opacity:0;letter-spacing:calc(var(--ls,.24em) + .16em);
  transition:opacity .5s ease,letter-spacing .7s cubic-bezier(.22,1,.28,1);}
html.mb-js [data-anim="eyebrow"][data-anim-in]{opacity:1;letter-spacing:var(--ls,.24em);}

html.mb-js [data-anim="photo"]{clip-path:inset(0 0 100% 0);
  transition:clip-path 1.15s cubic-bezier(.76,0,.24,1);}
html.mb-js [data-anim="photo"][data-anim-in]{clip-path:inset(0 0 0 0);}
html.mb-js [data-anim="photo"] > img{transform:scale(1.09);transition:transform 2s cubic-bezier(.16,1,.3,1);}
html.mb-js [data-anim="photo"][data-anim-in] > img{transform:none;}

html.mb-js [data-anim="bar"]{transform:scaleX(0);transform-origin:0 50%;
  transition:transform .55s cubic-bezier(.22,1,.28,1) var(--d,.22s);}
html.mb-js [data-anim="bar"][data-anim-in]{transform:none;}

@media (prefers-reduced-motion: reduce){
  html.mb-js [data-anim]{clip-path:none !important;transform:none !important;transition:none !important;animation:none !important;opacity:1 !important;letter-spacing:var(--ls,.24em);}
  html.mb-js [data-anim-inner]{transform:none !important;transition:none !important;}
  html.mb-js [data-anim-line]{clip-path:none !important;transition:none !important;}
  html.mb-js [data-anim] > img{transform:none !important;transition:none !important;}
}

[data-pc-nav]{display:none;}
html{scroll-padding-top:96px;}
[data-burger]{display:inline-flex;}
[data-drawer]{position:absolute;top:100%;left:0;right:0;visibility:hidden;opacity:0;pointer-events:none;transform:translateY(-8px);transition:opacity .3s ease,transform .3s ease,visibility .3s;max-height:calc(100svh - 100%);overflow-y:auto;}
[data-drawer="open"]{visibility:visible;opacity:1;pointer-events:auto;transform:none;}
[data-floating-cta]{display:grid;}

/* PC ナビのサブメニュー */
[data-hasmenu]{position:relative;}
[data-submenu]{position:absolute;top:100%;left:0;min-width:240px;background:#fff;border-top:2px solid #FDD116;box-shadow:0 14px 30px rgba(20,20,20,.14);padding:6px 0;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .28s ease,transform .28s cubic-bezier(.2,.7,.2,1),visibility .28s;}
[data-hasmenu]:hover [data-submenu],[data-hasmenu]:focus-within [data-submenu]{opacity:1;visibility:visible;transform:none;}
[data-hasmenu]:hover [data-caret],[data-hasmenu]:focus-within [data-caret]{transform:rotate(225deg) translateY(-1px);}
[data-submenu] a{transition:background .25s ease,color .25s ease,padding-left .25s ease;}
[data-submenu] a:hover,[data-submenu] a:focus-visible{background:rgba(253,209,22,.22);color:#141414 !important;padding-left:24px;}

/* ページトップボタン */
[data-pagetop]{position:fixed;right:16px;bottom:calc(var(--ctabar-h, 76px) + env(safe-area-inset-bottom) + 16px);z-index:65;width:52px;height:52px;display:grid;place-items:center;background:#141414;color:#FDD116;border:1px solid rgba(253,209,22,.5);cursor:pointer;padding:0;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .35s ease,transform .35s cubic-bezier(.2,.7,.2,1),visibility .35s,background .25s ease,color .25s ease;}
[data-pagetop][data-show="1"]{opacity:1;visibility:visible;transform:none;}
[data-pagetop]:hover{background:#FDD116;color:#141414;border-color:#FDD116;}
[data-pagetop] span{display:block;width:11px;height:11px;border-top:2px solid currentColor;border-left:2px solid currentColor;transform:rotate(45deg) translate(2px,2px);transition:transform .3s ease;}
[data-pagetop]:hover span{transform:rotate(45deg) translate(4px,4px);}

/* ロゴ：可読性優先で端末ごとに最適化（ヘッダー高さもこれに追従） */
[data-site-logo]{height:42px;width:auto;display:block;}
@media (min-width:768px){[data-site-logo]{height:48px;}}
@media (min-width:1080px){[data-site-logo]{height:54px;}}

/* TOP FV：写真3枚のクロスフェード（各6秒／計18秒）＋ゆっくりズーム */
[data-hero-slide]{opacity:0;animation:mbHeroFade 18s linear infinite,mbHeroZoom 18s ease-out infinite;}
[data-fv-copy] > p:first-child{text-shadow:0 2px 12px rgba(0,0,0,.85);}
[data-hero-slide="1"]{animation-delay:-.9s,-.9s;}
[data-hero-slide="2"]{animation-delay:5.1s,5.1s;}
[data-hero-slide="3"]{animation-delay:11.1s,11.1s;}
@keyframes mbHeroFade{0%{opacity:0}5%{opacity:1}33.3%{opacity:1}38.3%{opacity:0}100%{opacity:0}}
@keyframes mbHeroZoom{0%{scale:1.10}38.3%{scale:1.015}100%{scale:1.015}}

/* TOP FV：ロゴを背景に大きく。黒フチ＋白いモヤで、写真の明暗どちらでも視認できるようにする */
[data-fv-logo],[data-fv-logo-haze]{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;
  padding-bottom:clamp(52px,7.5vw,120px);}
[data-fv-logo]{opacity:.92;}
[data-fv-logo] img{filter:drop-shadow(0 0 18px rgba(255,255,255,.55));}
[data-fv-logo-haze] > .mb-x-haze{width:min(80vw,750px);aspect-ratio:1/.94;
  background:radial-gradient(closest-side,rgba(255,255,255,.62),rgba(255,255,255,.34) 46%,rgba(255,255,255,.12) 70%,transparent 100%);}
[data-fv-logo] img{width:min(66vw,390px);height:auto;}
@media (min-width:768px){[data-fv-logo] img{width:min(47vw,500px);}}
@media (min-width:1080px){[data-fv-logo] img{width:min(40vw,620px);}}

/* FV：コピーは左端寄りに置き、中央のロゴに掛からないようにする */
@media (min-width:1080px){
  [data-fv-wrap]{max-width:none !important;padding-left:clamp(28px,3.6vw,60px) !important;padding-right:clamp(28px,3.6vw,60px) !important;}
  [data-fv-copy]{max-width:min(42vw,620px);}
}
/* タブレット・スマホ：横に逃げる余白がないため、ロゴを上、コピーを下に分けて重なりを避ける
   ＋FVの高さから下部固定CTAバー（72px）を差し引く。差し引かないとコピーがバーの裏に入る */
@media (max-width:1079px){
  .mb-main > section[data-deco="hero"]{min-height:min(calc(74svh - 72px),720px) !important;}
  [data-fv-logo],[data-fv-logo-haze]{place-items:start center;padding-top:clamp(28px,4.5svh,52px);padding-bottom:0;}
  [data-fv-logo] img{width:min(46vw,286px);}
  [data-fv-logo-haze] > .mb-x-haze{width:min(68vw,420px);}
  [data-fv-wrap]{align-content:end !important;}
}
@media (max-width:1079px) and (max-height:640px){
  [data-fv-logo] img{width:min(38vw,220px);}
  [data-fv-logo],[data-fv-logo-haze]{padding-top:clamp(20px,3.5svh,38px);}
}

/* FV：段差をつけた登場 ─ ロゴ → ラベル → 見出し → 黄バー → リード → ボタン */
html.mb-js [data-fv-logo],html.mb-js [data-fv-logo-haze]{opacity:0;transition:opacity 1.6s ease .15s;}
html.mb-js [data-deco="hero"].mb-hero-in [data-fv-logo]{opacity:.92;}
html.mb-js [data-deco="hero"].mb-hero-in [data-fv-logo-haze]{opacity:1;}
html.mb-js [data-fv-logo] img,html.mb-js [data-fv-logo-haze] > .mb-x-haze{transform:scale(1.06);transition:transform 2.2s cubic-bezier(.2,.7,.2,1) .15s;}
html.mb-js [data-deco="hero"].mb-hero-in [data-fv-logo] img,
html.mb-js [data-deco="hero"].mb-hero-in [data-fv-logo-haze] > .mb-x-haze{transform:none;}

html.mb-js [data-fv-copy]{opacity:1 !important;transform:none !important;transition:none !important;}
html.mb-js [data-fv-copy] > *{opacity:0;transform:translateY(20px);transition:opacity .95s cubic-bezier(.2,.7,.2,1),transform .95s cubic-bezier(.2,.7,.2,1);}
html.mb-js [data-deco="hero"].mb-hero-in [data-fv-copy] > *{opacity:1;transform:none;}
html.mb-js [data-fv-copy] > *:nth-child(1){transition-delay:.52s;}
html.mb-js [data-fv-copy] > *:nth-child(2){transition-delay:.66s;}
html.mb-js [data-fv-copy] > *:nth-child(3){transition-delay:.86s;}
html.mb-js [data-fv-copy] > *:nth-child(4){transition-delay:1.0s;}
html.mb-js [data-fv-copy] > *:nth-child(5){transition-delay:1.14s;}
/* FVキャッチコピー：黄色い四角が左から入り、抜けるのをなぞって文字が現れる */
html.mb-js [data-fv-copy] > h1{opacity:1 !important;transform:none !important;transition:none !important;}
html.mb-js [data-fvline]{display:block;width:fit-content;position:relative;}
html.mb-js [data-fvtxt]{display:block;clip-path:inset(-.14em 102% -.14em 0);}
html.mb-js [data-fvline] > .mb-x-fvblk{position:absolute;inset:.02em -.12em .06em -.04em;
  background:#FDD116;transform:scaleX(0);transform-origin:0 50%;pointer-events:none;z-index:2;}
html.mb-js [data-deco="hero"].mb-hero-in [data-fv-copy] [data-fvtxt]{animation:fvTxt 1.05s cubic-bezier(.5,0,.18,1) var(--fd) forwards;}
html.mb-js [data-deco="hero"].mb-hero-in [data-fv-copy] [data-fvline] > .mb-x-fvblk{animation:fvBlk 1.05s cubic-bezier(.5,0,.18,1) var(--fd) forwards;}
html.mb-js [data-fvline="1"]{--fd:.5s;}
html.mb-js [data-fvline="2"]{--fd:.66s;}
@keyframes fvBlk{
  0%{transform:scaleX(0);transform-origin:0 50%;}
  46%{transform:scaleX(1);transform-origin:0 50%;}
  46.01%{transform:scaleX(1);transform-origin:100% 50%;}
  100%{transform:scaleX(0);transform-origin:100% 50%;}}
@keyframes fvTxt{
  0%,46%{clip-path:inset(-.14em 102% -.14em 0);}
  100%{clip-path:inset(-.14em -2% -.14em 0);}}

/* 黄バーは左から引かれる */html.mb-js [data-fv-bar]{transform:none !important;transform-origin:0 50%;scale:0 1;transition:scale .9s cubic-bezier(.2,.7,.2,1) .86s,opacity .4s ease .86s;}
html.mb-js [data-deco="hero"].mb-hero-in [data-fv-copy] [data-fv-bar]{scale:1 1;}

/* FV：内側の細い枠（未使用） */
[data-hero-frame]{display:none;}
html.mb-js [data-hero-frame]{clip-path:inset(0 100% 0 0);transition:clip-path 1.4s cubic-bezier(.2,.7,.2,1) .3s;}
html.mb-js [data-deco="hero"].mb-hero-in [data-hero-frame]{clip-path:inset(0 0 0 0);}

/* FV：無言のスクロールインジケーター */
[data-hero-cue]{position:absolute;right:clamp(24px,2.6vw,44px);bottom:0;display:flex;flex-direction:column;align-items:center;gap:16px;pointer-events:none;}
[data-hero-cue-label]{font-family:"Oswald","Noto Sans JP",sans-serif;font-size:11px;font-weight:600;letter-spacing:.34em;color:rgba(255,255,255,.55);writing-mode:vertical-rl;text-orientation:mixed;}
[data-hero-cue-line]{position:relative;width:2px;height:clamp(108px,13.5vw,176px);background:rgba(255,255,255,.22);overflow:hidden;}
[data-hero-cue-line] > .mb-x-cue{position:absolute;left:0;top:-100%;width:100%;height:100%;background:linear-gradient(180deg,transparent,#FDD116);animation:mbCue 2.4s cubic-bezier(.6,0,.4,1) infinite;}
@keyframes mbCue{0%{transform:translateY(0)}70%,100%{transform:translateY(200%)}}
@media (max-width:599px){[data-hero-cue]{display:none;}}

/* FV→NEWS をまたぐ 2入口カード */
[data-fv-entry]{position:relative;z-index:4;width:100%;max-width:1400px;margin:calc(-1 * clamp(34px,6vw,78px)) auto 0;padding:0 clamp(20px,5vw,72px);display:grid;gap:clamp(12px,1.6vw,20px);grid-template-columns:1fr;}
@media (min-width:680px){[data-fv-entry]{grid-template-columns:1fr 1fr;}}
[data-fv-entry] a{position:relative;overflow:hidden;display:grid;gap:5px;align-content:start;min-height:clamp(104px,11.5vw,146px);padding:clamp(18px,2.3vw,28px) clamp(20px,2.6vw,32px);text-decoration:none;box-shadow:0 18px 40px rgba(20,20,20,.2);transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s ease;}
[data-fv-entry-photo]{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;
  mix-blend-mode:luminosity;opacity:.42;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,transparent 32%,rgba(0,0,0,.5) 64%,#000 100%);
  mask-image:linear-gradient(90deg,transparent 0,transparent 32%,rgba(0,0,0,.5) 64%,#000 100%);}
[data-fv-entry-card="dark"] [data-fv-entry-photo]{opacity:.34;}
[data-fv-entry-card="light"] [data-fv-entry-photo]{object-position:50% 32%;}
[data-fv-entry] a:hover [data-fv-entry-photo]{transform:scale(1.05);}
[data-fv-entry-photo]{transition:transform .7s cubic-bezier(.2,.7,.2,1);}
[data-fv-entry-label],[data-fv-entry-title],[data-fv-entry-sub]{position:relative;}
[data-fv-entry] a:hover,[data-fv-entry] a:focus-visible{transform:translateY(-4px);box-shadow:0 26px 54px rgba(20,20,20,.28);}
[data-fv-entry-card="light"]{background:#FDD116;color:#141414;}
[data-fv-entry-card="dark"]{background:#E6E3DC;color:#141414;}
[data-fv-entry-label]{font-family:"Oswald","Noto Sans JP",sans-serif;font-size:11px;font-weight:600;letter-spacing:.22em;}
[data-fv-entry-card="light"] [data-fv-entry-label]{color:rgba(20,20,20,.6);}
[data-fv-entry-card="dark"] [data-fv-entry-label]{color:#8a6b00;}
[data-fv-entry-title]{font-size:clamp(20px,2.3vw,27px);font-weight:900;line-height:1.4;letter-spacing:.03em;}
[data-fv-entry-sub]{font-size:clamp(13px,1.35vw,15px);font-weight:500;letter-spacing:.02em;}
[data-fv-entry-card="light"] [data-fv-entry-sub]{color:rgba(20,20,20,.7);}
[data-fv-entry-card="dark"] [data-fv-entry-sub]{color:rgba(20,20,20,.7);}
[data-fv-entry-arrow]{position:absolute;z-index:1;right:clamp(20px,2.6vw,32px);bottom:clamp(18px,2.3vw,26px);width:clamp(46px,4.6vw,62px);height:3px;background:currentColor;transition:width .35s cubic-bezier(.2,.7,.2,1);}
[data-fv-entry-arrow] > .mb-x-arw1{position:absolute;right:0;top:50%;width:15px;height:15px;border-top:3px solid currentColor;border-right:3px solid currentColor;transform:translateY(-50%) rotate(45deg);}
[data-fv-entry] a:hover [data-fv-entry-arrow]{width:clamp(60px,5.8vw,80px);}

/* 4カラム系グリッド：3+1の孤立を避け 1→2→4 で折る */
[data-grid-4]{display:grid;gap:20px;grid-template-columns:1fr;}
[data-grid-4-flush]{display:grid;gap:1px;background:#e6e3dc;grid-template-columns:1fr;}
@media (min-width:600px){
  [data-grid-4],[data-grid-4-flush]{grid-template-columns:repeat(2,1fr);}
}
@media (min-width:1180px){
  [data-grid-4],[data-grid-4-flush]{grid-template-columns:repeat(4,1fr);}
}

/* 縦書き見出し：本文の文字数が確保できる幅になるまでは横書きのまま */
[data-msg-grid]{display:grid;gap:clamp(32px,5vw,68px);grid-template-columns:1fr;align-items:stretch;}
[data-msg-photo]{aspect-ratio:16/10;min-height:300px;overflow:hidden;grid-template-rows:100%;}
[data-msg-body]{max-width:40em;}
[data-vertical-wrap]{display:grid;gap:clamp(18px,3vw,32px);}
[data-vertical]{writing-mode:horizontal-tb;margin:0;}
[data-vertical-rule]{width:56px;height:4px;background:#FDD116;flex:none;}
[data-vertical-col]{display:flex;flex-direction:column;align-items:flex-start;gap:16px;}
[data-msg-eyebrow]{white-space:nowrap;}
[data-msg-eyebrow]::before{display:none !important;}
@media (min-width:1150px){
  [data-msg-grid]{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);}
  [data-msg-photo]{aspect-ratio:auto;}
  [data-msg-body]{max-width:none;}
  [data-vertical-wrap]{grid-template-columns:auto minmax(360px,1fr);align-items:start;gap:clamp(36px,3.6vw,56px);}
  [data-vertical]{writing-mode:vertical-rl;line-height:1.62;letter-spacing:.06em;height:auto;}
  [data-vertical] > span{display:block;white-space:nowrap;}
  [data-vertical-rule]{width:4px;height:64px;}
  [data-vertical-col]{align-items:center;}
}

/* 縦組みの英字ラベル（参考②の見せ方）：狭い画面では横一列に戻す */
[data-vlabel-wrap]{display:grid;gap:clamp(20px,3.4vw,34px);}
[data-vlabel]{display:flex;flex-direction:row;align-items:center;gap:14px;}
[data-vlabel] > :first-child{width:40px;height:3px;background:#FDD116;flex:none;}
[data-vlabel] > :last-child{writing-mode:horizontal-tb;font-family:"Oswald","Noto Sans JP",sans-serif;font-size:13px;font-weight:500;letter-spacing:.28em;color:#FDD116;}
@media (min-width:1160px){
  [data-vlabel-wrap]{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:clamp(30px,4vw,64px);}
  [data-vlabel]{flex-direction:column;gap:20px;}
  [data-vlabel] > :first-child{width:3px;height:64px;}
  [data-vlabel] > :last-child{writing-mode:vertical-rl;font-size:15px;letter-spacing:.34em;}
}
@media (min-width:1080px){
  [data-pc-nav]{display:flex;}
  [data-burger]{display:none;}
  [data-drawer]{display:none;}
  [data-floating-cta]{display:none;}
  [data-pagetop]{right:28px;bottom:28px;width:58px;height:58px;}
  body{padding-bottom:0;}
}

/* =============================================
   下層ページ 装飾レイヤー
   モチーフは「立平葺きのシーム（板金の継ぎ目）」。
   インライン style の値をフックにして全ページへ一括で効かせる。
   ============================================= */

/* FV：写真の上に走る細いシーム */
.mb-main > section[data-deco="hero"] > .mb-x-seam{
  content:"";position:absolute;inset:0;pointer-events:none;
  box-shadow:inset 0 -3px 0 #FDD116;
}

/* ベージュ地のセクション：うっすらとした縦シーム
   ※WHY MIHARA は罫線リストのため、縦線が入ると表組みに見える。除外する */

/* 黒地のセクション：斜めの光と縦シーム */
.mb-main > section[data-deco="dark"]{
  background-image:linear-gradient(135deg,rgba(253,209,22,.16),transparent 40%) !important;
}
/* 黄地のセクション：ごく淡い斜めストライプ */
.mb-main > section[data-deco="yellow"]{
  background-image:repeating-linear-gradient(135deg,rgba(20,20,20,.045) 0 2px,transparent 2px 14px) !important;
}

/* 働く環境：板金職人の一日 ─ タイムスケジュール左、縦長写真を右に */
[data-day-grid]{display:grid;gap:clamp(28px,4vw,52px);}
@media (min-width:860px){
  [data-day-grid]{grid-template-columns:minmax(0,1fr) minmax(280px,34%);align-items:start;}
}
@media (max-width:859px){
  [data-day-photo]{aspect-ratio:16/9 !important;}
}


/* フッター：Instagram */
[data-footer-sns]{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:#141414;
  background:#FDD116;padding:11px 18px 11px 14px;font-size:14px;letter-spacing:.02em;min-height:44px;
  transition:transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s ease,filter .25s ease;}
[data-footer-sns] b{font-weight:700;}
[data-footer-sns]:hover,[data-footer-sns]:focus-visible{color:#141414 !important;transform:translateY(-3px);box-shadow:0 10px 22px rgba(253,209,22,.28);filter:brightness(1.05);}

/* 強み：選ばれる理由は上段3・下段3で組む */
[data-why-cards]{grid-template-columns:1fr;}
@media (min-width:620px){[data-why-cards]{grid-template-columns:repeat(2,1fr);}}
@media (min-width:960px){[data-why-cards]{grid-template-columns:repeat(3,1fr);}}

/* 写真プレースホルダー：ハッチと枠 */
.mb-main div[data-deco="photo"]{
  background-image:repeating-linear-gradient(45deg,rgba(20,20,20,.05) 0 8px,transparent 8px 16px) !important;
  outline:1px solid rgba(20,20,20,.1);outline-offset:-1px;
}

/* 見出し上のラベル：先頭に黄色のバー */
.mb-main p[data-deco="eyebrow"]{display:inline-flex;align-items:center;gap:12px;}
.mb-main p[data-deco="eyebrow"]{padding-left:40px;background:linear-gradient(#FDD116,#FDD116) no-repeat left center/28px 2px;}
/* 黄地セクションでは黄色のバーが沈むので黒に */
.mb-main > section[data-deco="yellow"] p[data-deco="eyebrow"]{background-image:linear-gradient(#141414,#141414);}

/* カード：リンクを含むカードだけホバーで浮かせる（装飾目的の無意味なホバーは作らない） */
.mb-main div[data-deco="card"]:has(a),.mb-main li[data-deco="card"]:has(a){transition:transform .35s ease,box-shadow .35s ease;}
.mb-main div[data-deco="card"]:has(a):hover,.mb-main li[data-deco="card"]:has(a):hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(20,20,20,.12);}

/* 表：行ホバーはつけない（クリックできないため） */

/* パンくず */
nav[aria-label="パンくず"] a{text-decoration:none;}

@media (prefers-reduced-motion: reduce){
  .mb-main div[data-deco="card"],.mb-main li[data-deco="card"]{transition:none !important;transform:none !important;}
}


/* --- WHY MIHARA：罫線リスト --- */
[data-why-list]{border-top:1px solid rgba(20,20,20,.16);}
[data-why-row]{display:grid;gap:12px 0;padding:clamp(20px,2.6vw,30px) clamp(2px,1vw,14px);border-bottom:1px solid rgba(20,20,20,.16);}
[data-why-num]{margin:0;display:flex;align-items:baseline;gap:12px;font-family:"Oswald","Noto Sans JP",sans-serif;}
[data-why-num] span{font-size:clamp(22px,3vw,30px);font-weight:600;letter-spacing:.06em;line-height:1;color:#141414;}
[data-why-num]{padding-left:34px;background:linear-gradient(#FDD116,#FDD116) no-repeat left center/22px 3px;}
[data-why-num] em{font-style:normal;font-size:11px;font-weight:500;letter-spacing:.26em;opacity:.45;}
[data-why-title]{margin:0;font-size:clamp(20px,2.6vw,27px);font-weight:900;line-height:1.5;letter-spacing:.03em;}
[data-why-text]{margin:0;font-size:15px;line-height:1.9;}
[data-why-photo]{position:relative;overflow:hidden;background:#e6e3dc;aspect-ratio:16/10;}
[data-why-photo] img{width:100%;height:100%;object-fit:cover;display:block;}
[data-why-head]{display:grid;gap:clamp(8px,1.1vw,12px);align-content:start;}
@media (min-width:720px){
  [data-why-row]{grid-template-columns:minmax(180px,.8fr) minmax(0,1.15fr) clamp(170px,18vw,250px);gap:clamp(20px,3vw,40px);align-items:center;}
  /* 写真は行の高さいっぱいを使い、上下の罫線に接する */
  [data-why-photo]{aspect-ratio:auto;align-self:stretch;margin-block:calc(-1 * clamp(20px,2.6vw,30px));margin-right:calc(-1 * clamp(2px,1vw,14px));}
  [data-why-photo] img{position:absolute;inset:0;}
}
@media (min-width:1024px){
  [data-why-row]{grid-template-columns:minmax(230px,.82fr) minmax(0,1.2fr) clamp(200px,19vw,260px);}
}

/* --- セクション下部のリンク行（罫線＋和文＋ロングアロー） --- */
[data-linkrow]{position:relative!important;display:grid;grid-template-columns:minmax(0,1fr) auto!important;align-items:end!important;gap:20px!important;padding:clamp(22px,3vw,34px) clamp(14px,1.6vw,22px)!important;border-top:1px solid rgba(20,20,20,.16)!important;border-bottom:1px solid rgba(20,20,20,.16)!important;text-decoration:none!important;color:#141414 !important;overflow:hidden!important;min-height:44px;!important}
[data-linkrow]+[data-linkrow]{border-top:0;}
[data-linkrow]{justify-self:stretch;width:100%;}
[data-linkrow] > .mb-x-fill{position:absolute;inset:0;background:#FDD116;transform:scaleX(0);transform-origin:0 50%;transition:transform .62s cubic-bezier(.2,.7,.2,1);}
[data-linkrow]:hover::before,[data-linkrow]:focus-visible::before{transform:scaleX(1);}
[data-linkrow] > span:first-child{position:relative;display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 16px;font-size:clamp(21px,3vw,30px);font-weight:900;letter-spacing:.05em;line-height:1.4;transition:transform .55s cubic-bezier(.2,.7,.2,1);}
[data-linkrow] em{font-family:"Oswald","Noto Sans JP",sans-serif;font-style:normal;font-size:clamp(10px,1.05vw,13px);font-weight:500;letter-spacing:.26em;opacity:.5;margin-bottom:.6em;}
[data-linkrow] > span:last-child{position:relative;display:block;width:clamp(46px,6.5vw,86px);height:1px;background:currentColor;font-size:clamp(21px,3vw,30px);margin-bottom:.7em;transition:transform .55s cubic-bezier(.2,.7,.2,1);}
[data-linkrow] .mb-x-arw2{position:absolute;right:0;top:50%;width:9px;height:9px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:translateY(-50%) rotate(45deg);}
[data-linkrow]:hover > span:first-child,[data-linkrow]:focus-visible > span:first-child{transform:translateX(12px);}
[data-linkrow]:hover > span:last-child,[data-linkrow]:focus-visible > span:last-child{transform:translateX(10px);}
[data-linkrow="dark"]{border-top-color:rgba(255,255,255,.26);border-bottom-color:rgba(255,255,255,.26);color:#fff !important;}
[data-linkrow="dark"]:hover,[data-linkrow="dark"]:focus-visible{color:#141414 !important;}

/* 黄色地の上：黒罫線 → ホバーで黒が流れ、文字が白へ */
[data-linkrow="ink"]{border-top-color:rgba(20,20,20,.34);border-bottom-color:rgba(20,20,20,.34);}
[data-linkrow="ink"]::before{background:#141414;}
[data-linkrow="ink"]:hover,[data-linkrow="ink"]:focus-visible{color:#fff !important;}
[data-fi-line]{color:#06C755;opacity:1 !important;}
/* LINE行はどの地色でも緑が流れる */
[data-linkrow]:has([data-fi-line])::before{background:#06C755;}
[data-linkrow]:has([data-fi-line]):hover,
[data-linkrow]:has([data-fi-line]):focus-visible{color:#fff !important;}
[data-linkrow]:has([data-fi-line]):hover [data-fi-line],
[data-linkrow]:has([data-fi-line]):focus-visible [data-fi-line]{color:#fff;opacity:.75 !important;}
[data-fi-mark]{background:#141414;color:#fff;padding:.1em .3em;margin:0 .12em 0 -.06em;-webkit-box-decoration-break:clone;box-decoration-break:clone;overflow-wrap:normal;word-break:keep-all;}
/* 黒帯そのものは途中で改行しない */
[data-fi-mark]{white-space:nowrap;}
/* 見出しのマーカー：本文だけに引き、句読点までは伸ばさない。見出しが出そろってからワイプで入る */
[data-hl]{background:linear-gradient(180deg,transparent 62%,#FDD116 62%) no-repeat;background-size:100% 100%;}
html.mb-js [data-hl]{background-size:0% 100%;}
html.mb-js [data-anim="head"][data-anim-in] [data-hl]{animation:hlWipe .78s cubic-bezier(.5,0,.18,1) calc(.86s + var(--sd,0s)) forwards;}
@keyframes hlWipe{to{background-size:100% 100%;}}
@media (prefers-reduced-motion:reduce){html.mb-js [data-hl]{background-size:100% 100%;}}

/* 黒帯の強調：見出しが出そろってから左→右にワイプ、帯が通った跡に白文字が現れる */
html.mb-js [data-fi-mark][data-anim="mark"]{background:linear-gradient(#141414,#141414) no-repeat;background-size:0% 100%;}
html.mb-js [data-fi-mark][data-anim="mark"] [data-mark-inner]{display:inline-block;clip-path:inset(-.2em 102% -.2em 0);}
html.mb-js [data-reveal] [data-fi-mark][data-anim="mark"][data-anim-in]{animation:fiMarkBg 1.02s cubic-bezier(.5,0,.18,1) .72s forwards;}
html.mb-js [data-reveal] [data-fi-mark][data-anim="mark"][data-anim-in] [data-mark-inner]{animation:fiMarkTx 1.02s cubic-bezier(.5,0,.18,1) .72s forwards;}
@keyframes fiMarkBg{to{background-size:100% 100%;}}
@keyframes fiMarkTx{to{clip-path:inset(-.2em -2% -.2em 0);}}
@media (prefers-reduced-motion:reduce){
  html.mb-js [data-fi-mark][data-anim="mark"]{background:#141414;}
  html.mb-js [data-fi-mark][data-anim="mark"] [data-mark-inner]{clip-path:none;}
}
[data-fi-grid]{display:grid;gap:clamp(36px,5vw,64px);}
[data-fi-links]{gap:0;}
@media (min-width:1120px){
  [data-fi-grid]{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(40px,5vw,80px);align-items:center;}
}

/* ============================================================
   クリック可能要素の共通ホバー規則（全ページ共通）
   ── 反応の体系は3つだけ：
      A 塗りボタン  … 2px浮く＋影＋わずかに明るく
      B テキストリンク … 色変化＋下線
      C 面リンク（カード/画像/行） … 写真ズーム or 背景変化
   ============================================================ */

/* A 塗りボタン（インライン背景を持つ <a>）
   ※ style属性はブラウザがrgb()へ正規化するため、正規化後の値で指定する */
a[data-sw-m~="m1"],
a[data-sw-m~="m2"],
a[data-sw-m~="m3"],
a[data-sw-m~="m4"],
a[data-sw-m~="m5"],
a[data-sw-m~="m6"],
a[data-sw-m~="m7"],
a[data-sw-m~="m8"]{
  transition:transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s ease,filter .3s ease,background .3s ease;
}
a[data-sw-m~="m1"]:hover,
a[data-sw-m~="m2"]:hover,
a[data-sw-m~="m3"]:hover,
a[data-sw-m~="m4"]:hover,
a[data-sw-m~="m5"]:hover,
a[data-sw-m~="m6"]:hover,
a[data-sw-m~="m7"]:hover,
a[data-sw-m~="m8"]:hover,
a[data-sw-m~="m1"]:focus-visible,
a[data-sw-m~="m2"]:focus-visible,
a[data-sw-m~="m4"]:focus-visible,
a[data-sw-m~="m5"]:focus-visible{
  transform:translateY(-3px);
  box-shadow:0 12px 26px rgba(20,20,20,.28);
  filter:brightness(1.07);
}
a[data-sw-m~="m4"]:hover{background:rgba(20,20,20,.62) !important;}
a[data-sw-m~="m5"]:hover{background:rgba(255,255,255,.26) !important;}

/* B ヘッダーナビ／フッターナビ：下線が左から入り、外すと右へ抜ける */
footer nav a,footer > div a:not([data-linkrow]){width:fit-content;max-width:100%;}
header nav a:not([data-sw-m~="m9"]):not([data-sub]),
footer nav a,
footer > div a:not([data-linkrow]),
nav[aria-label="パンくず"] a{position:relative;text-decoration:none !important;transition:color .3s ease;}
/* R-27: ::after content はAddCssInfoで落ちるため背景で描き直す（左から入り、外すと右へ抜ける） */
header nav a:not([data-sw-m~="m9"]):not([data-sub]),
footer nav a,
footer > div a:not([data-linkrow]),
nav[aria-label="パンくず"] a{background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:right calc(100% - 8px);background-size:0 1.5px;transition:color .3s ease,background-size .42s cubic-bezier(.2,.7,.2,1);}
header nav a:not([data-sw-m~="m9"]):not([data-sub]):hover,
header nav a:not([data-sw-m~="m9"]):not([data-sub]):focus-visible,
footer nav a:hover,footer nav a:focus-visible,
footer > div a:not([data-linkrow]):hover,
footer > div a:not([data-linkrow]):focus-visible,
nav[aria-label="パンくず"] a:hover,
nav[aria-label="パンくず"] a:focus-visible{background-position:left calc(100% - 8px);background-size:100% 1.5px;}

/* A ヘッダーCTAボタン */
header nav a[data-sw-m~="m10"]{transition:transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s ease,filter .25s ease;}
header nav a[data-sw-m~="m10"]:hover,
header nav a[data-sw-m~="m10"]:focus-visible{transform:translateY(-3px);box-shadow:0 8px 18px rgba(253,209,22,.32);filter:brightness(1.06);}


header nav a{transition:color .25s ease;}
header nav a:not([data-sw-m~="m9"]):not([data-sub]):hover{color:#8a6b00 !important;}
header [data-burger]{transition:background .25s ease,border-color .25s ease;}
header [data-burger]:hover{background:rgba(253,209,22,.28);border-color:#141414;}
header a[data-sw-m~="m11"],header > div > a:first-child{transition:opacity .25s ease;}
header > div > a:first-child:hover{opacity:.72;}

/* B フッターナビ */
footer nav a:hover,footer > div a:not([data-linkrow]):hover{color:#FDD116 !important;}

/* A 固定CTAバー */
[data-floating-cta] a{transition:filter .25s ease,background .25s ease;}
[data-floating-cta] a:hover{filter:brightness(1.12);}
[data-floating-cta] a:first-child:hover{background:rgba(253,209,22,.18);}

/* C ページネーション */
.parts222_pagenation a,.parts228_pagenation a{transition:background .25s ease,color .25s ease,border-color .25s ease;}
.parts222_pagenation a:hover,.parts228_pagenation a:hover{background:#141414;color:#fff;border-color:#141414;}

/* C 記事カード・画像リンク：写真ズーム＋わずかに浮く */
.parts228_post_wrap a,.parts222_post_wrap{transition:transform .35s ease;}
.parts228_post_wrap a:hover,.parts222_post_wrap:hover{transform:translateY(-3px);}
[class*="parts131415_blog"] .card{transition:transform .35s ease,box-shadow .35s ease;}
[class*="parts131415_blog"] .card:has(a:hover){transform:translateY(-4px);box-shadow:0 14px 34px rgba(20,20,20,.12);}

/* C NEWS行 */
[class*="design-parts-52"] li a{transition:background .25s ease,padding-left .3s ease;}
[class*="design-parts-52"] li a:hover{background:#FAF7EC;}

/* C SERVICE サムネイル（タブUI） */
[data-svc-thumbs] button:hover > span:last-child{border-left-color:#141414;}
[data-svc-thumbs] button[data-active="1"]:hover > span:last-child{border-left-color:#FDD116;}

/* WORKS の全幅写真リンク */
section[data-screen-label="WORKS"] a[href]{overflow:hidden;}
section[data-screen-label="WORKS"] a[href] > img{transition:transform 1s cubic-bezier(.2,.7,.2,1);}
section[data-screen-label="WORKS"] a[href]:hover > img{transform:scale(1.05);}

/* ボタンサイズの統一：SPでは縦並びになるため幅を揃える */
@media (max-width:599px){
  [data-fv-copy] > div:last-child{display:grid !important;grid-template-columns:1fr;gap:12px;}
  .mb-main a[data-sw-m~="m6"],
  .mb-main a[data-sw-m~="m7"],
  .mb-main a[data-sw-m~="m8"],
  .mb-main a[data-sw-m~="m12"],
  .mb-main a[data-sw-m~="m13"],
  [data-fv-copy] a{
    width:100%;justify-content:center;text-align:center;
  }
}

/* --- SERVICE：縦書き帯＋主役写真＋カルーセル --- */
[data-svc-bands]{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px;}
[data-svc-bands] > span{background:#141414;color:#fff;font-weight:900;font-size:clamp(17px,4.4vw,22px);letter-spacing:.06em;line-height:1.5;padding:7px 13px;}
/* SERVICE の黒帯：1本ずつワイプで入り、帯が通った跡に白文字が現れる */
html.mb-js [data-svc-bands] > span[data-anim="band"]{background:linear-gradient(#141414,#141414) no-repeat;background-size:0% 100%;}
html.mb-js [data-svc-bands] > span[data-anim="band"] [data-band-inner]{display:inline-block;clip-path:inset(-.2em 102% -.2em 0);}
html.mb-js [data-svc-bands] > span[data-anim="band"][data-anim-in]{animation:svcBandBg .82s cubic-bezier(.5,0,.18,1) var(--d,0s) forwards;}
html.mb-js [data-svc-bands] > span[data-anim="band"][data-anim-in] [data-band-inner]{animation:svcBandTx .82s cubic-bezier(.5,0,.18,1) var(--d,0s) forwards;}
@keyframes svcBandBg{to{background-size:100% 100%;}}
@keyframes svcBandTx{to{clip-path:inset(-.2em -2% -.2em 0);}}
@keyframes svcBandBgV{to{background-size:100% 100%;}}
@keyframes svcBandTxV{to{clip-path:inset(0 -.2em -2% -.2em);}}
@media (prefers-reduced-motion:reduce){
  html.mb-js [data-svc-bands] > span[data-anim="band"]{background:#141414;}
  html.mb-js [data-svc-bands] > span[data-anim="band"] [data-band-inner]{clip-path:none;}
}
[data-svc-head]{margin:0 0 clamp(36px,5vw,60px);}
[data-svc-main]{display:grid;gap:24px;}
[data-svc-stage]{position:relative;aspect-ratio:4/3;overflow:hidden;background:#141414;}
[data-svc-stage] img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.05);transition:opacity .85s cubic-bezier(.2,.7,.2,1),transform 1.4s cubic-bezier(.2,.7,.2,1);}
[data-svc-stage] img[data-active="1"]{opacity:1;transform:scale(1);}
[data-svc-thumbs]{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(190px,1fr);gap:14px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px;}
[data-svc-thumbs]::-webkit-scrollbar{display:none;}
[data-svc-thumbs] button{appearance:none;border:0;background:none;padding:0;cursor:pointer;display:grid;gap:10px;text-align:left;font:inherit;color:#141414;}
[data-svc-thumbs] button > span:first-child{display:block;aspect-ratio:4/3;overflow:hidden;background:#e6e3dc;}
[data-svc-thumbs] button img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(.45) brightness(.86);transition:filter .5s,transform .8s cubic-bezier(.2,.7,.2,1);}
[data-svc-thumbs] button:hover img{transform:scale(1.05);}
[data-svc-thumbs] button[data-active="1"] img{filter:none;}
[data-svc-thumbs] button > span:last-child{font-size:14px;font-weight:700;line-height:1.5;border-left:3px solid #dcd9d1;padding-left:10px;transition:border-color .4s;}
[data-svc-thumbs] button[data-active="1"] > span:last-child{border-left-color:#FDD116;}
[data-svc-bar]{display:flex;align-items:center;gap:18px;margin-top:18px;}
[data-svc-track]{position:relative;flex:1;height:1px;background:#d6d3cb;}
[data-svc-knob]{position:absolute;top:-3px;width:25%;height:7px;background:#141414;transition:left .5s cubic-bezier(.2,.7,.2,1);}
[data-svc-bar] button{appearance:none;cursor:pointer;width:46px;height:46px;border:1.5px solid #141414;background:none;border-radius:50%;display:grid;place-items:center;font-size:17px;color:#141414;transition:background .3s,color .3s;}
[data-svc-bar] button:hover{background:#141414;color:#fff;}
[data-svc-cards]{position:relative;display:grid;margin-top:22px;}
[data-svc-cards] > div{grid-area:1/1;background:#fff;padding:clamp(22px,3vw,32px);display:grid;gap:12px;align-content:start;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .55s ease,transform .55s ease;box-shadow:0 18px 48px rgba(20,20,20,.10);}
[data-svc-cards] > div[data-active="1"]{opacity:1;visibility:visible;transform:none;}
@media (min-width:1024px){
  [data-svc-bands]{flex-direction:row-reverse;justify-content:flex-start;flex-wrap:nowrap;gap:14px;margin:0;align-items:flex-start;}
  [data-svc-bands] > span{writing-mode:vertical-rl;font-size:clamp(21px,2.05vw,30px);letter-spacing:.13em;line-height:1;padding:22px 12px;}
  /* 縦書き時は上から下へワイプ */
  html.mb-js [data-svc-bands] > span[data-anim="band"]{background-size:100% 0%;}
  html.mb-js [data-svc-bands] > span[data-anim="band"] [data-band-inner]{clip-path:inset(0 -.2em 102% -.2em);}
  html.mb-js [data-svc-bands] > span[data-anim="band"][data-anim-in]{animation-name:svcBandBgV;}
  html.mb-js [data-svc-bands] > span[data-anim="band"][data-anim-in] [data-band-inner]{animation-name:svcBandTxV;}
  [data-svc-bands] > span:nth-child(2){margin-top:0;}
  [data-svc-bands] > span:nth-child(3){margin-top:0;}
  [data-svc-head]{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(32px,4.5vw,72px);align-items:start;margin:0 0 clamp(-150px,-11vw,-90px);position:relative;z-index:2;}
  [data-svc-head] > p{order:2;}
  [data-svc-head] > div{order:1;padding-top:clamp(8px,1.5vw,22px);}
  [data-svc-main]{grid-template-columns:minmax(0,1fr) minmax(0,1.02fr);gap:0 clamp(24px,3vw,48px);align-items:stretch;}
  [data-svc-stage]{aspect-ratio:3/4;height:auto;order:2;margin-top:calc(-1 * clamp(48px,5.6vw,92px));}
  [data-svc-side]{order:1;}
  [data-svc-side]{grid-template-rows:auto auto 1fr auto;align-content:stretch !important;}
  [data-svc-side] [data-linkrow]{margin-bottom:clamp(28px,4.5vw,64px);}
  [data-svc-cards]{align-self:start;}
  [data-svc-cards]{margin-top:32px;margin-left:0;margin-right:0;z-index:2;}
}

/* --- フッター：情報カラムとナビ2列の3カラム --- */
[data-footer-nav]{grid-template-columns:1fr;}
@media (min-width:620px){[data-footer-nav]{grid-template-columns:1fr 1fr;}}
@media (min-width:900px){[data-footer-cols]{grid-template-columns:minmax(0,340px) minmax(0,1fr) !important;}}

/* --- NEWS帯 design-parts-52 系 --- */
section[class*="design-parts-52"]{background:#fff !important;padding:clamp(26px,3.2vw,40px) 0 0 !important;border-bottom:1px solid #e6e3dc;overflow-x:hidden;}
[class*="design-parts-52"] .container{max-width:1200px;margin:0 auto;padding:0 20px;}
[class*="design-parts-52"] .content{display:flex !important;flex-direction:column;align-items:stretch !important;gap:0;}
[class*="design-parts-52"] h4.banner-area{background:transparent !important;color:#141414 !important;font-family:"Oswald","Noto Sans JP",sans-serif;font-size:14px;font-weight:600;letter-spacing:.22em;margin:0 !important;display:flex;align-items:center;gap:12px;min-height:44px;padding:14px 0 0;}
/* R-27: この ::before はファイル末尾で背景として描き直している */
[class*="design-parts-52"] ul{list-style:none;margin:0 !important;padding:0;flex:1;}
[class*="design-parts-52"] li{border-bottom:1px solid #e6e3dc;}
[class*="design-parts-52"] li:last-child{border-bottom:0;}
[class*="design-parts-52"] li a{display:block;min-height:60px;padding:14px 50vw;margin:0 -50vw;color:#141414 !important;text-decoration:none;transition:background .25s ease;}
[class*="design-parts-52"] li a:hover{background:#FAF7EC;}
[class*="design-parts-52"] h4.banner-area{position:relative;z-index:1;}
[class*="design-parts-52"] li a:hover .d-inline-block{text-decoration:underline;}
[class*="design-parts-52"] .parts-52-textarea{display:flex;flex-direction:column;gap:2px;}
[class*="design-parts-52"] .parts-52-textarea .date{font-family:"Oswald","Noto Sans JP",sans-serif;color:#8a6b00 !important;font-size:14px;letter-spacing:.08em;}
[class*="design-parts-52"] .parts-52-textarea .d-inline-block{font-size:15px;line-height:1.7;}
@media (min-width:992px){
  [class*="design-parts-52"] .content{flex-direction:row !important;align-items:center !important;gap:32px;}
  [class*="design-parts-52"] h4.banner-area{min-height:60px;min-width:150px;padding:0;}
  [class*="design-parts-52"] li a{display:flex;align-items:center;gap:28px;min-height:60px;padding:0 50vw 0 calc(198px + 50vw);margin:0 -50vw 0 calc(-198px - 50vw);}
  [class*="design-parts-52"] .parts-52-textarea{flex-direction:row;align-items:center;gap:28px;}
  [class*="design-parts-52"] .parts-52-textarea .d-inline-block{font-size:16px;}
}

/* --- 下層ページ共通ヘッダー（HOMEのFVと同じ語彙：左寄せ／英字ラベル／黄バー／巨大ウォーターマーク） --- */
[data-page-hero]{position:relative;overflow:hidden;background:#0c0c0c;color:#fff;min-height:clamp(300px,38vw,480px);display:grid;align-content:end;padding:clamp(104px,13vw,164px) 20px clamp(40px,5vw,66px);}
[data-page-hero][data-page-hero-tall]{min-height:min(74svh,760px);}
[data-page-hero-media]{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:mbFloat 18s ease-out forwards;}
/* TOP FV：暗幕を薄くした分、文字側に影を持たせる */
[data-fv-copy] > p:first-child{text-shadow:0 1px 3px rgba(0,0,0,.75),0 3px 14px rgba(0,0,0,.6);}
[data-fv-copy] h1{text-shadow:0 2px 5px rgba(0,0,0,.62),0 8px 28px rgba(0,0,0,.55),0 1px 2px rgba(0,0,0,.5) !important;}
[data-fv-copy] > p:last-of-type{text-shadow:0 1px 3px rgba(0,0,0,.7),0 4px 18px rgba(0,0,0,.6);}

/* 先輩の声：文章量に対して写真が大きく見えるため、写真列を控えめに */
@media (min-width:860px){
  [data-voice="a"]{grid-template-columns:minmax(0,44%) minmax(0,1fr) !important;}
  [data-voice="b"]{grid-template-columns:minmax(0,1fr) minmax(0,44%) !important;}
  /* 写真は本文の高さいっぱい。竹川さん側は D.M さん側と同じ高さに合わせる（JS） */
  [data-voice] > [data-photo]{aspect-ratio:auto !important;align-self:stretch;}
  [data-voice] > [data-photo] img.mb-slot{height:100%;}
}

/* 暗幕なし。文字側に影を持たせて写真の明るさを保つ */
[data-page-hero-scrim]{display:none;}
[data-page-hero-mark]{position:absolute;z-index:1;right:-.02em;bottom:clamp(-12px,-.8vw,0px);font-family:"Oswald","Noto Sans JP",sans-serif;font-weight:600;font-size:clamp(52px,11vw,176px);line-height:.8;letter-spacing:.02em;color:rgba(255,255,255,.08);white-space:nowrap;pointer-events:none;}
[data-page-hero-body]{position:relative;z-index:2;width:100%;max-width:1200px;margin:0 auto;display:grid;justify-items:start;gap:clamp(12px,1.6vw,18px);}
[data-page-hero-label]{margin:0;font-family:"Oswald","Noto Sans JP",sans-serif;font-size:clamp(11px,1.3vw,14px);font-weight:600;letter-spacing:.32em;color:#FDD116;text-shadow:0 1px 3px rgba(0,0,0,.75),0 3px 14px rgba(0,0,0,.6);}
[data-page-hero] h1{margin:0;font-size:clamp(30px,5.4vw,58px);font-weight:900;line-height:1.32;letter-spacing:.05em;text-shadow:0 2px 5px rgba(0,0,0,.62),0 8px 28px rgba(0,0,0,.55),0 1px 2px rgba(0,0,0,.5);}
[data-page-hero-bar]{width:88px;height:5px;background:#FDD116;}
[data-page-hero-lead]{margin:0;color:#fff;font-size:clamp(14px,2vw,18px);line-height:1.9;letter-spacing:.04em;max-width:46em;text-shadow:0 1px 3px rgba(0,0,0,.7),0 4px 18px rgba(0,0,0,.6);}
/* 撮影指示メモは残したまま非表示 */
[data-page-hero] > div[data-sw-m~="m14"]{display:none !important;}

/* --- 狭いカード内のリンク（linkrowが成立しない幅で使う） --- */
[data-cardlink]{display:inline-flex;align-items:center;gap:14px;margin-top:4px;text-decoration:none;color:#141414;font-weight:700;font-size:15px;line-height:1.65;transition:color .25s ease;}
[data-cardlink] > span:last-child{position:relative;flex:none;width:30px;height:2px;background:currentColor;transition:width .35s cubic-bezier(.2,.7,.2,1);}
[data-cardlink] .mb-x-arw3{position:absolute;right:0;top:50%;width:9px;height:9px;border-top:2px solid currentColor;border-right:2px solid currentColor;transform:translateY(-50%) rotate(45deg);}
[data-cardlink]:hover,[data-cardlink]:focus-visible{color:#8a6b00;}
[data-cardlink]:hover > span:last-child{width:44px;}
[data-cardlink] > span:first-child{text-decoration:underline;text-decoration-color:transparent;text-underline-offset:.28em;transition:text-decoration-color .3s ease;}
[data-cardlink]:hover > span:first-child{text-decoration-color:currentColor;}

/* --- お問い合わせ：連絡手段の大きめボタン --- */
[data-contact-btn]{position:relative;display:grid;gap:6px;align-content:center;
  min-height:clamp(104px,12vw,132px);padding:22px clamp(70px,7vw,88px) 22px clamp(22px,2.6vw,30px);
  text-decoration:none;box-shadow:0 14px 32px rgba(20,20,20,.16);
  transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s ease,filter .25s ease;}
[data-contact-btn]:hover,[data-contact-btn]:focus-visible{transform:translateY(-4px);box-shadow:0 24px 48px rgba(20,20,20,.26);filter:brightness(1.06);}
[data-contact-btn="tel"]{background:#141414;color:#fff;}
[data-contact-btn="line"]{background:#06C755;color:#141414;}
[data-contact-label]{font-family:"Oswald","Noto Sans JP",sans-serif;font-size:12px;font-weight:600;letter-spacing:.22em;}
[data-contact-btn="tel"] [data-contact-label]{color:#FDD116;}
[data-contact-btn="line"] [data-contact-label]{color:rgba(20,20,20,.62);}
[data-contact-btn="tel"] [data-contact-value]{font-family:"Oswald","Noto Sans JP",sans-serif;
  font-size:clamp(28px,3.6vw,40px);font-weight:600;letter-spacing:.03em;line-height:1.15;}
[data-contact-btn="line"] [data-contact-value]{font-size:clamp(16px,1.9vw,20px);font-weight:900;line-height:1.5;}
[data-contact-arrow]{position:absolute;right:clamp(22px,2.6vw,30px);top:50%;transform:translateY(-50%);
  width:clamp(38px,4vw,52px);height:3px;background:currentColor;transition:width .35s cubic-bezier(.2,.7,.2,1);}
[data-contact-arrow] > .mb-x-arw4{position:absolute;right:0;top:50%;width:14px;height:14px;
  border-top:3px solid currentColor;border-right:3px solid currentColor;transform:translateY(-50%) rotate(45deg);}
[data-contact-btn]:hover [data-contact-arrow]{width:clamp(52px,5.4vw,70px);}

/* --- 下層ページ共通：大きめCTAバナー（HOMEの2入口カードと同じ語彙） --- */
[data-page-cta]{position:relative;overflow:hidden;background:#141414;color:#fff;padding:clamp(80px,10.5vw,140px) 20px;}
[data-page-cta="light"]{background:#F4F3EF;color:#141414;}
[data-page-cta="light"] [data-page-cta-mark]{color:rgba(20,20,20,.05);}
[data-page-cta="light"] [data-page-cta-head] p[data-deco="eyebrow"]{color:#8a6b00;}
[data-page-cta="light"] [data-page-cta-head] p:not([data-deco]){color:#4a4a4a;}
[data-page-cta-mark]{position:absolute;left:-.02em;bottom:clamp(-14px,-1vw,0px);font-family:"Oswald","Noto Sans JP",sans-serif;font-weight:600;font-size:clamp(52px,12vw,190px);line-height:.8;letter-spacing:.02em;color:rgba(255,255,255,.06);white-space:nowrap;pointer-events:none;}
[data-page-cta-inner]{position:relative;max-width:1200px;margin:0 auto;display:grid;gap:clamp(28px,4vw,52px);}
@media (min-width:900px){[data-page-cta-inner]{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;}}
[data-page-cta-head]{display:grid;gap:clamp(14px,2vw,20px);justify-items:start;align-content:start;}
[data-page-cta-head] p[data-deco="eyebrow"]{margin:0;font-family:"Oswald","Noto Sans JP",sans-serif;font-size:13px;font-weight:600;letter-spacing:.24em;color:#FDD116;}
[data-page-cta-head] h2{margin:0;font-size:clamp(24px,3.6vw,40px);font-weight:900;line-height:1.5;letter-spacing:.02em;text-wrap:pretty;}
[data-page-cta-head] p:not([data-deco]){margin:0;color:#e3e0d8;line-height:1.95;}
[data-page-cta-links]{display:grid;align-content:center;}
[data-page-cta-bar]{width:64px;height:4px;background:#FDD116;}
/* 本文中の写真（撮影指示はHTMLコメントとして保持） */
[data-check-list]{display:grid;gap:2px;}
@media (min-width:760px){[data-check-list]{grid-template-columns:1fr 1fr;gap:2px;}}

/* --- 下層ページ共通：見出しブロック --- */
[data-sec-head]{display:grid;gap:clamp(10px,1.4vw,16px);justify-items:start;margin:0 0 clamp(28px,4vw,48px);}
[data-sec-head] p[data-deco="eyebrow"]{margin:0;font-family:"Oswald","Noto Sans JP",sans-serif;font-size:13px;font-weight:600;letter-spacing:.24em;color:#8a6b00;}
[data-sec-head] h2{margin:0;font-size:clamp(26px,4.4vw,42px);font-weight:900;line-height:1.4;text-wrap:pretty;}
[data-sec-head] > div{width:64px;height:4px;background:#FDD116;}

/* ドロップ専用の写真枠 */
[data-photo] img.mb-slot,[data-why-photo] img.mb-slot{display:block;width:100%;height:100%;}
img.mb-slot[data-page-hero-media]{position:absolute;inset:0;width:100%;height:100%;}
[data-voice] > [data-photo] img.mb-slot{height:100%;}

/* --- 下層ページ共通：写真 --- */
[data-photo]{position:relative;overflow:hidden;background:#e6e3dc;}
[data-photo] img{width:100%;height:100%;object-fit:cover;display:block;}
[data-photo][data-ar="4x3"]{aspect-ratio:4/3;}
[data-photo][data-ar="16x10"]{aspect-ratio:16/10;}
[data-photo][data-ar="1x1"]{aspect-ratio:1/1;}

/* --- 記事カード parts131415_blog 系 --- */
section[class*="parts131415_blog"]{background-image:none !important;background:#F4F3EF !important;padding:clamp(80px,10.5vw,140px) 20px !important;padding-bottom: 1px !important;}
[class*="parts131415_blog"] .container-lg{max-width:1200px;margin:0 auto;}
[class*="parts131415_blog"] .parts131415_blog_title_wrap{margin-bottom:clamp(36px,5vw,60px);}
[class*="parts131415_blog"] .parts131415_blog_title_wrap h2{color:#141414 !important;font-family:"Oswald","Noto Sans JP",sans-serif;font-size:clamp(30px,5vw,48px);font-weight:600;letter-spacing:.12em;display:flex;align-items:center;gap:18px;}
/* R-27: この ::before はファイル末尾で背景として描き直している */
[class*="parts131415_blog"] .parts131415_blog_title_wrap p{margin:0;font-size:15px;color:#4a4a4a;}
[class*="parts131415_blog"] .row{display:grid !important;grid-template-columns:1fr;gap:24px;margin:0;padding:0;}
[class*="parts131415_blog"] .col{padding:0;}
[class*="parts131415_blog"] .card{background:#fff !important;border:0 !important;border-radius:0 !important;height:100%;}
[class*="parts131415_blog"] .card-body{padding:0 0 26px;display:flex;flex-direction:column;gap:0;position:relative;}
[class*="parts131415_blog"] h5.card-title{margin:0;position:absolute;top:14px;left:14px;z-index:2;background:#FDD116;color:#141414;font-family:"Oswald","Noto Sans JP",sans-serif;font-size:12px;font-weight:600;letter-spacing:.14em;padding:4px 12px;text-align:center;}
[class*="parts131415_blog"] .card-body a{display:flex;flex-direction:column-reverse;gap:16px;text-decoration:none;color:#141414;}
[class*="parts131415_blog"] .card-body a:hover .card-text{text-decoration:underline;}
[class*="parts131415_blog"] p.card-text{margin:0;padding:0 22px;font-size:17px;font-weight:700;line-height:1.6;}
[class*="parts131415_blog"] .parts131415_blog_thumbnail{overflow:hidden;background:#DCDAD4;}
[class*="parts131415_blog"] .parts131415_blog_thumbnail img{width:100%;height:205px;object-fit:cover;transition:transform .6s ease;}
[class*="parts131415_blog"] .card-body a:hover .parts131415_blog_thumbnail img{transform:scale(1.05);}
@media (min-width:576px){
  [class*="parts131415_blog"] .row{grid-template-columns:repeat(2,1fr);}
  [class*="parts131415_blog"] .parts131415_blog_thumbnail img{height:215px;}
}
@media (min-width:992px){
  [class*="parts131415_blog"] .row{grid-template-columns:repeat(3,1fr);}
  [class*="parts131415_blog"] .parts131415_blog_thumbnail img{height:240px;}
}

/* --- 施工実績一覧 parts228 系 --- */
.parts228_section{background:#fff;padding:clamp(80px,10.5vw,140px) 20px;}
.parts228_wrap{max-width:1200px;margin:0 auto;}
.parts228_post_list{display:grid;grid-template-columns:1fr;gap:32px 24px;list-style:none;margin:0;padding:0;}
.parts228_post_wrap{display:grid;gap:12px;align-content:start;}
.parts228_post_wrap a{text-decoration:none;color:#141414;display:block;}
.parts228_post_img{overflow:hidden;background:#DCDAD4;}
.parts228_post_img img{width:100%;height:230px;object-fit:cover;transition:transform .6s ease;}
.parts228_post_wrap a:hover .parts228_post_img img{transform:scale(1.05);}
.parts228_post_status{display:flex;align-items:center;gap:12px;}
.parts228_post_date{font-family:"Oswald","Noto Sans JP",sans-serif;font-size:13px;letter-spacing:.08em;color:#6d6a62;}
.parts-blog-ex-tag_wrap{display:flex;flex-wrap:wrap;gap:6px;}
.parts-blog-ex_tag{background:#FDD116;color:#141414;font-size:12px;font-weight:700;padding:3px 10px;}
.parts228_post_title{font-size:18px;font-weight:700;line-height:1.6;margin:0;}
.parts228_post_wrap a:hover .parts228_post_title{text-decoration:underline;}
.parts228_post_excerpt{font-size:14px;color:#4a4a4a;margin:0;}
.parts228_pagenation{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:clamp(40px,6vw,72px);}
.parts228_pagenation a,.parts228_pagenation span{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:0 12px;border:1px solid #d8d5cd;text-decoration:none;color:#141414;font-family:"Oswald","Noto Sans JP",sans-serif;font-size:14px;}
.parts228_pagenation .pagination_num.current{background:#141414;color:#fff;border-color:#141414;}
@media (min-width:600px){.parts228_post_list{grid-template-columns:repeat(2,1fr);}}
@media (min-width:992px){.parts228_post_list{grid-template-columns:repeat(3,1fr);}}

/* --- ブログ一覧 parts222 系 --- */
.parts222_section{background:#fff;padding:clamp(80px,10.5vw,140px) 20px;}
.parts222_section>h2{max-width:1200px;margin:0 auto clamp(28px,4vw,48px);font-family:"Oswald","Noto Sans JP",sans-serif;font-size:clamp(28px,5vw,44px);font-weight:600;letter-spacing:.12em;}
.parts222_wrap{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:clamp(40px,6vw,64px);}
.parts222_post_list{display:grid;grid-template-columns:1fr;gap:28px 24px;list-style:none;margin:0;padding:0;}
.parts222_post_wrap{display:block;text-decoration:none;color:#141414;}
.parts222_post_img{overflow:hidden;background:#DCDAD4;margin-bottom:12px;}
.parts222_post_img img{width:100%;height:220px;object-fit:cover;transition:transform .6s ease;}
.parts222_post_wrap:hover .parts222_post_img img{transform:scale(1.05);}
.parts222_post_status{display:flex;align-items:center;gap:12px;margin-bottom:6px;}
.parts222_post_date{font-family:"Oswald","Noto Sans JP",sans-serif;font-size:13px;letter-spacing:.08em;color:#6d6a62;}
.parts222_post_category{font-size:12px;font-weight:700;background:#FDD116;color:#141414;padding:3px 10px;}
.parts222_post_title{font-size:18px;font-weight:700;line-height:1.6;margin:0;}
.parts222_post_wrap:hover .parts222_post_title{text-decoration:underline;}
.parts222_pagenation{grid-column:1/-1;display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:clamp(32px,5vw,56px);}
.parts222_pagenation a,.parts222_pagenation span,.parts222_pagenation .page-item{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:0 12px;border:1px solid #d8d5cd;text-decoration:none;color:#141414;font-family:"Oswald","Noto Sans JP",sans-serif;font-size:14px;}
.parts222_pagenation .pagination_num.current{background:#141414;color:#fff;border-color:#141414;}
.parts222_pagenation .d-none{display:none;}
.parts222_sidebar_wrap{margin-bottom:36px;}
.parts222_sidebar_wrap h3{margin:0 0 12px;background:#141414;color:#fff;font-size:14px;letter-spacing:.12em;padding:12px 16px;font-weight:700;}
.parts222_sidebar_wrap ul{list-style:none;margin:0;padding:0;}
.parts222_sidebar_wrap li{border-bottom:1px solid #e6e3dc;}
.parts222_sidebar_wrap li a{display:block;padding:12px 4px;min-height:44px;text-decoration:none;color:#141414;}
.parts222_sidebar_wrap li a:hover{background:#F4F3EF;}
.parts222_sidebar_date{font-family:"Oswald","Noto Sans JP",sans-serif;font-size:12px;letter-spacing:.08em;color:#6d6a62;display:block;}
.parts222_sidebar_post_title{margin:2px 0 0;font-size:14px;line-height:1.6;}
.parts222_sidebar_wrap.category_post_count li a{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.parts222_sidebar_post_category{margin:0;font-size:14px;}
.parts222_sidebar_post_category_count{border:1px solid #d8d5cd;font-size:12px;min-width:28px;text-align:center;padding:2px 6px;font-family:"Oswald","Noto Sans JP",sans-serif;}
@media (min-width:600px){.parts222_post_list{grid-template-columns:repeat(2,1fr);}}
@media (min-width:992px){
  .parts222_wrap{grid-template-columns:minmax(0,1fr) 300px;align-items:start;}
  .parts222_pagenation .d-xl-block{display:inline-flex;}
}

/* --- フォーム contact_section / parts213 / parts219 系 ---
   共通指針：装飾枠なし・フラット・入力欄だけ */
.contact_section{background:#fff;padding:clamp(56px,8vw,96px) 20px clamp(80px,10.5vw,140px);}
.contact_section .parts213_form_wrap,.contact_section .parts219_form_wrap{max-width:760px;margin:0 auto;}
.contact_section form{display:block;}
.contact_section dl{display:grid;gap:8px;margin:0 0 28px;}
.contact_section dt{font-weight:700;font-size:15px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.contact_section dd{margin:0;}
.contact_section .required{background:#141414;color:#fff;font-size:11px;font-weight:700;letter-spacing:.06em;padding:3px 8px;}
.contact_section .attention{display:block;color:#b3261e;font-size:12px;font-weight:400;line-height:1.7;margin-top:2px;}
.contact_section .error{color:#b3261e;font-size:13px;margin:6px 0 0;}
.contact_section input[type="text"],.contact_section input[type="email"],.contact_section input[type="tel"],.contact_section textarea,.contact_section select{width:100%;min-height:48px;padding:12px;font-size:16px;font-family:inherit;color:#141414;background:#fff;border:1px solid #b9b6ae;border-radius:0;}
.contact_section textarea{min-height:180px;line-height:1.8;}
.contact_section input[type="file"]{font-size:14px;padding:10px 0;min-height:44px;}
.contact_section .form_address dd{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.contact_section .form_address .zip{max-width:180px;}
.contact_section label{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin-right:20px;font-size:15px;cursor:pointer;}
.contact_section input[type="checkbox"]{width:20px;height:20px;min-height:0;accent-color:#141414;}
.contact_section .contact_submit{margin-top:36px;display:flex;justify-content:center;}
.contact_section .contact_submit input[type="submit"]{min-height:52px;padding:0 40px;font-size:16px;font-weight:700;font-family:inherit;color:#141414;background:#fff;border:2px solid #141414;border-radius:0;cursor:pointer;}
.contact_section .contact_submit input[type="submit"]:hover{background:#141414;color:#fff;}

/* --- 導入文 parts210 系 --- */
.mb-lead_section_content{background:#fff;padding:clamp(80px,10.5vw,140px) 20px 0;}
.mb-lead_content_wrap{max-width:1200px;margin:0 auto;}
.mb-lead_content{margin:0;max-width:44em;font-size:16px;line-height:2;}

/* --- ドロワー：スマホ・タブレットで1画面に収める（スクロール不要） --- */
@media (max-width:1079px){
  [data-drawer]{max-height:calc(100svh - 74px) !important;}
  [data-drawer] nav{grid-template-columns:1fr 1fr !important;gap:0 !important;
    padding:14px 16px calc(18px + 76px) !important;}
  /* 平らなリンク列：罫線は下の1本だけ、列間にも縦罫線 */
  [data-drawer] nav > a{padding:13px 6px !important;min-height:48px;display:flex;align-items:center;
    font-size:15px;font-weight:700;letter-spacing:.02em;
    border-bottom:1px solid rgba(20,20,20,.1) !important;}
  [data-drawer] nav > a:nth-child(-n+6):nth-child(odd){border-right:1px solid rgba(20,20,20,.1);padding-right:14px !important;}
  [data-drawer] nav > a:nth-child(-n+6):nth-child(even){padding-left:14px !important;}
  /* ブログは全幅（右隣が空セルになるのを避ける） */
  [data-drawer] nav > a:nth-child(7){grid-column:1 / -1;}
  /* 採用情報とサブは全幅の縦並び（他の項目と同じ白背景） */
  [data-drawer] nav > a:nth-child(n+8):nth-child(-n+11){grid-column:1 / -1;}
  [data-drawer] nav > a:nth-child(n+9):nth-child(-n+11){padding-left:20px !important;}
  /* 問い合わせ：全幅の面ボタン */
  [data-drawer] nav > a:nth-child(12){grid-column:1 / -1;border:0 !important;
    margin-top:0 !important;padding:18px 16px !important;justify-content:center;font-size:16px;}
}
/* ドロワーを開いている間も下部固定CTAは残す（ナビの下に余白を確保して重ならないようにする） */

/* --- スマホ：縦積み前提の調整 --- */
@media (max-width:767px){
  /* 縦積み時は常に「写真 → テキスト」の順に揃える */
  .mb-main section > div:has(> [data-photo]):not([data-why-row]),
  .mb-main section article:has(> [data-photo]):not([data-why-row]){display:flex !important;flex-direction:column;}
  .mb-main section > div:has(> [data-photo]):not([data-why-row]) > [data-photo],
  .mb-main section article:has(> [data-photo]):not([data-why-row]) > [data-photo]{order:-1;}
  /* SERVICEのサムネイル列は横スクロールをやめて2列に折る */
  [data-svc-thumbs]{grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:1fr 1fr;overflow-x:visible;}
  /* 本文・見出しは左揃えに統一（PCで中央寄せしている箇所も含む） */
  .mb-main [data-sw-m~="m15"]{text-align:left !important;}
  .mb-main [data-sw-m~="m16"]{justify-items:start !important;}
  .mb-main [data-sw-m~="m17"]{justify-content:flex-start !important;}
  .mb-main [data-sw-m~="m18"]{place-items:start !important;}
  /* 中央揃えの見出しも、スマホでは行ごと左に寄せる */
  html.mb-js .mb-main [data-anim="head"][data-anim-multi][data-anim-align] > [data-anim-line]{margin-left:0 !important;margin-right:0 !important;}
}

/* --- ローディングオーバーレイ（TOP内・初回描画から全画面を覆う） ---
   演出は3層に分離：①待機中の演出 ②終了演出（data-loader-exit） ③ヒーローの登場（reveal.js） */
[data-loader]{position:fixed;inset:0;width:100%;height:100%;z-index:9999;background:#fff;
  display:grid;place-items:center;will-change:transform,opacity,clip-path;
  transition:transform .9s cubic-bezier(.76,0,.24,1),opacity .9s ease,filter .9s ease,clip-path .9s cubic-bezier(.76,0,.24,1);}
[data-loader][data-loader-phase="completed"]{display:none !important;}
[data-loader-inner]{display:grid;justify-items:center;gap:clamp(20px,3vw,30px);}
[data-loader-logo]{height:clamp(46px,7vw,74px);width:auto;display:block;}
[data-loader-track]{width:clamp(160px,26vw,240px);height:2px;background:rgba(20,20,20,.14);overflow:hidden;}
[data-loader-bar]{display:block;width:100%;height:100%;background:#FDD116;transform:scaleX(0);transform-origin:0 50%;}
@keyframes mbLoadPulse{0%,100%{opacity:1}50%{opacity:.5}}

/* ② 終了演出：属性を差し替えるだけで切り替えられる */
[data-loader][data-loader-exit="wipe"][data-loader-phase="transition"]{transform:translateY(-101%);}
[data-loader][data-loader-exit="fade"][data-loader-phase="transition"]{opacity:0;}
[data-loader][data-loader-exit="blur"][data-loader-phase="transition"]{opacity:0;filter:blur(16px);}
[data-loader][data-loader-exit="scale"][data-loader-phase="transition"]{opacity:0;transform:scale(1.06);}
[data-loader][data-loader-exit="mask"][data-loader-phase="transition"]{clip-path:inset(0 0 100% 0);}
[data-loader][data-loader-phase="transition"] [data-loader-inner]{opacity:0;transition:opacity .4s ease;}

@media (prefers-reduced-motion: reduce){
  [data-loader]{display:none !important;}
  [data-loader-logo]{animation:none !important;}
}

/* --- 黒背景セクションに写真を敷く（下層ヘッダーと同じ塩梅） --- */
[data-darksec]{position:relative;overflow:hidden;}
[data-darksec-media]{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;}
[data-darksec-scrim]{position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(12,12,12,.56) 0%,rgba(12,12,12,.72) 55%,rgba(12,12,12,.86) 100%);}
[data-darksec] > *:not([data-darksec-media]):not([data-darksec-scrim]){position:relative;z-index:1;}

/* 焼き込み済みの写真の見せ位置 */
#strength-st-01-inhouse{--os-y:28.7%;}
#recruit-career-cr-steps{--os-y:22.7%;}

/* 一時的に非表示にするセクション（属性を外せば復帰） */
[data-hidden="1"]{display:none !important;}
/* === 変換で必要になった土台（受領CSSに無い分だけ） === */

/* KEEP: R-27 で疑似要素から昇格させた実要素の共通土台。
   受領は ::before/::after の content で描いていたが、CueZillaの追加CSS欄は content 宣言を落とす。
   この6行を消すと矢印・黄色い箱・スクロールインジケータが全部消える。 */
.mb-x{display:block;}
.mb-x-fvblk,.mb-x-cue,.mb-x-arw1,.mb-x-arw2,.mb-x-arw3,.mb-x-arw4,.mb-x-fill,.mb-x-seam{position:absolute;}
/* /KEEP */

/* 変換後 img（受領 image-slot）の土台 */
img.mb-slot{max-width:100%;}
.mb-slot-empty{background:#e6e3dc;}

/* KEEP: ローディングはJS前提の全画面オーバーレイ（position:fixed;inset:0;z-index:9999）。
   受領は「JSが消す」前提だったので、BODY内JSが貼られない/失敗すると画面を永久に覆う。
   既定を非表示にし、BODY内JSが html に .mb-ld を付けた時だけ出す＝JSが無ければ最初から出ない。
   さらに 6秒で必ず視界から外れるアニメーションを保険で当てる（JSが途中で落ちた場合）。
   ★この3行を消すと「白い画面から進まない」事故に戻る。 */
[data-loader]{display:none !important;}
html.mb-ld [data-loader]{display:grid !important;animation:mbLdFailsafe 0s 6s forwards;}
@keyframes mbLdFailsafe{to{visibility:hidden;pointer-events:none;}}
/* /KEEP */

/* KEEP: 受領の <main> を .mb-main（div）へ置き換えたぶんの地。
   受領では main が既定でブロック要素だったので同じにしておく */
.mb-main{display:block;}
/* /KEEP */

/* KEEP: R-27（CMSパーツの見出しの黄色いバー）。
   受領は h4.banner-area::before / .parts131415_blog_title_wrap h2::before の content で描いていたが、
   追加CSS欄は content 宣言を落とす。パーツの実DOMには要素を足せないので背景で描き直す。
   ★ここに置くのは、同じ要素へ受領CSSが background:transparent!important と
     @media の padding:0 を当てているため（上流に書くと負ける）。消すと黄色いバーが消える。 */
[class*="design-parts-52"] h4.banner-area{
  background:transparent linear-gradient(#FDD116,#FDD116) no-repeat left center/26px 3px !important;
  padding-left:38px !important;
}
[class*="parts131415_blog"] .parts131415_blog_title_wrap h2{
  background:transparent linear-gradient(#FDD116,#FDD116) no-repeat left center/36px 4px !important;
  padding-left:54px !important;
}
/* /KEEP */
/* === インライン animation/transition の退避（CueZillaは style 属性から除去する） ===
   3重クラス＝インライン相当の詳細度を保つ。カードの表示ディレイもここで効く。 */
.mba1.mba1.mba1{transition:box-shadow .3s ease;}
.mba2.mba2.mba2{transition:transform .3s ease;}
.mba3.mba3.mba3{transition-delay:.1s;}
.mba4.mba4.mba4{transition-delay:.2s;}
.mba5.mba5.mba5{transition-delay:.3s;}
.mba6.mba6.mba6{transition-delay:.12s;}
.mba7.mba7.mba7{transition-delay:.06s;}
.mba8.mba8.mba8{transition-delay:.18s;}
.mba9.mba9.mba9{transition-delay:.24s;}
.mba10.mba10.mba10{transition-delay:.08s;}
.mba11.mba11.mba11{transition-delay:.16s;}
/* === tel: リンクのインラインstyle退避（R-7＋convertの☎誤検知対策） === */
.mbt1.mbt1.mbt1{color:inherit;}
.mbt2.mbt2.mbt2{display:grid;place-items:center;gap:2px;padding:10px 6px;min-height:60px;color:#fff;text-decoration:none;font-size:12px;font-weight:700;}
.mbt3.mbt3.mbt3{font-family:'Oswald',sans-serif;font-size:clamp(19px,2.2vw,24px);font-weight:600;letter-spacing:.04em;text-decoration:none;border-bottom:2px solid #FDD116;padding-bottom:2px;}


/* ===== 29_override.css ===== */
/* O01035 株式会社三原板金 — override（site.css の後に結合・案件の上書きはここだけ／R-30）

   ★skin不採用（cz-judgment §3）:
     受領 site.css が design-parts-52 / parts131415_blog / parts222 / parts228 /
     parts210 / parts213 / parts219 を自前でフルstyleしている（AI-STYLE・三和・五日市と同じ型）。
     convert のCSS結合順は site(1) → skin(2) → override(3) なので、skin を入れると
     skin の既定が受領の意匠を後勝ちで潰す。よって skin は同梱しない。
     動的パーツの装飾は 20_site.css（＝受領CSS）が担当する。 */

/* KEEP: CueZilla自動パンくずは全ページ非表示（受領デザインが自前のパンくず帯を持つため二重になる・R-10a） */
[class*="_breadcrumb"], .p-breadcrumb{ display:none !important; }
/* /KEEP */

/* KEEP: body の横スクロール止めを clip にする。
   受領は body{overflow-x:hidden} だが、hidden は body をスクロールコンテナ化して
   position:sticky / スクロール連動を壊す（教訓 body-overflowx-hidden-kills-sticky）。
   clip なら同じ見た目のままコンテナ化しない。 */
body{ overflow-x:clip !important; }
html, body{ height:auto !important; }
/* /KEEP */

/* KEEP: テーマ(Bootstrap)の a:hover 青化を受領の配色に戻す（R-20） */
a:hover{ color:#8a6b00; }
/* /KEEP */

/* KEEP: グリッド子要素の min-width:0。CSS Grid 既定の min-width:auto は、CMSが実データを
   入れた時にSP幅でカード/サイドバーを横にはみ出させる（R-28）。受領CSSは .mb-main 配下しか
   面倒を見ていないので、CMSパーツ側にも当てておく。 */
[class*="_post_list"], [class*="_post_list"] > *,
[class*="parts131415_blog"] .row > *,
[class*="parts222_wrap"] > *{ min-width:0 !important; }
/* /KEEP */

/* KEEP: CueZillaが一覧カード/サイドバー/カテゴリに既定で付ける max-width:28〜48% の解除（R-28）。
   ★実測（theme_default.css）: `.parts222_sidebar{max-width:28.179%}`。受領CSSはサイドバーの列を
     300px で取っているので、これが残ると **サイドバーが85pxに潰れてカテゴリ名が縦1文字ずつ**になる。
     `_sidebar_wrap` だけでは当たらない（潰しているのは1つ外の `_sidebar`）ので接尾辞を広く取る。 */
[class*="_post_wrap"], [class*="_sidebar"], [class*="_post_category"]{ max-width:none !important; }
/* /KEEP */

/* KEEP: フォーム（parts213 お問い合わせ／parts219 採用応募）のテーマ既定を落とす（R-21・R-28）。
   ★実測（theme_default.css 2328〜/2507〜）: テーマは
     `dl{display:flex;justify-content:center}` `dt{max-width:345px}` `dd{max-width:785px;margin-left:35px}`
   を当てる。受領CSSは dl を grid にするが **justify-content と max-width は書いていない**ので
   テーマの値が生き残り、**入力欄が幅241pxまで縮んで右寄りに固まる**（実測）。
   受領デザインは760px幅で dt/dd を縦積みにする設計なので、テーマ側の3つを打ち消す。 */
[class*="_section_form"] dl{ justify-content:normal !important; }
[class*="_section_form"] dt{ max-width:none !important; }
[class*="_section_form"] dd{ max-width:none !important; margin-left:0 !important; }
[class*="_section_form"] .required{ width:auto !important; height:auto !important; }
/* /KEEP */

/* KEEP: テーマがパーツ見出しに付ける角丸・中央寄せ・枠を落とす（R-21）。
   受領デザインは角丸ゼロ・左寄せで統一されている。 */
.parts222_section > h2,
[class*="parts131415_blog"] .parts131415_blog_title_wrap h2,
[class*="design-parts-52"] h4.banner-area{
  border-radius:0 !important; text-align:left !important; border:0 !important;
}
/* /KEEP */
[class*="_section_form"] dt{
    max-width:fit-content!important;
}
.contact_submit input:hover {
    opacity: 1!important;
}

.new-link a::before,
[data-linkrow]::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    background: #FDD116 !important;
    transform: scaleX(0) !important;
    transform-origin: 0 50% !important;
    transition: transform .62s cubic-bezier(.2, .7, .2, 1) !important;
}

.new-link a:hover::before,
[data-linkrow]:hover::before {
    transform: scaleX(1) !important;
}

[data-linkrow] > span:first-child {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 8px 16px;
    font-size: clamp(21px, 3vw, 30px);
    font-weight: 900;
    letter-spacing: .05em;
    line-height: 1.4;
    transition: transform .55s cubic-bezier(.2, .7, .2, 1);
}
[data-linkrow] > span:first-of-type {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 8px 16px;
    font-size: clamp(21px, 3vw, 30px);
    font-weight: 900;
    letter-spacing: .05em;
    line-height: 1.4;
    transition: transform .55s cubic-bezier(.2, .7, .2, 1);
}

[data-linkrow]:hover > span:first-of-type,
[data-linkrow]:focus-visible > span:first-of-type {
    transform: translateX(12px);
}
[data-linkrow="ink"] {
    border-top-color: rgba(20, 20, 20, .34) !important;
    border-bottom-color: rgba(20, 20, 20, .34) !important;
}
[data-linkrow="ink"]::before {
    background: #141414!important;
}
[data-linkrow]:has([data-fi-line])::before {
    background: #06C755!important;
}
a.insta-footer:hover {
    color: #000000 !important;
}
.category_post_count ul li{
        border-left: none!important;
    border-right: none!important;
}
.parts222_sidebar ul li{
    border-bottom: 1px solid #dedede!important;
}
.design-parts-11_eBuyeSMc1l.bg-color {
    padding-top: 1px!important;
}
.design-parts-11_eBuyeSMc1l .container .content ul li a{
        background-color: #ffffff!important;
    border-radius: 0!important;
    border: none!important;
}
footer > div a.insta-footer:hover{
        color: #000000 !important;
}
a.mbt1:hover {
  background-position-y: calc(100% - 2px)!important;
}
.parts222_post_wrap a{
    text-decoration: none!important;
}
.parts222_post_category{
    border: none!important;
}
.parts222_post_status{
        justify-content: left!important;
}