/*
 * ======================================
 * 追加クラス一覧（共通SCSS取り込み検討用）
 * ======================================
 *
 * .ld-btn 系          - デザイン固有のpill型ボタン（primary/yellow/line/ghost/lg/block）
 * .ld-header 系       - 2段組ヘッダー（上部インフォバー＋スティッキーメインバー）
 * .ld-gnav            - PCグローバルナビ（黄色アンダーラインのcurrent表示）
 * .ld-nav-toggle/.ld-drawer - SPハンバーガー＋右スライドドロワー
 * .ld-sp-bar          - SP下部固定バー（電話/LINE/問い合わせ）
 * .ld-cta 系          - フッター上CTA帯（イラスト＋電話カード）
 * .ld-footer 系       - 紺背景フッター（3カラムグリッド＋地図）
 * .ld-hero 系         - メインビュー（背景写真＋veil＋コピー）
 * .ld-eyebrow/.ld-s-title/.ld-mark/.ld-lead-q/.ld-h-bar - バイリンガル見出し群
 * .ld-page-hero/.ld-breadcrumb - 下層ページ共通ヘッダー
 * .ld-kpi/.ld-intro/.ld-feat/.ld-svc/.ld-works/.ld-recruit - TOP各セクション
 * .ld-svc-block/.ld-svc-nav - 事業内容ページ
 * .ld-area-card/.ld-icard/.ld-strength/.ld-area-map - 防音工事ページ
 * .ld-merit/.ld-duty/.ld-job-head - 採用ページ
 * .ld-info-table/.ld-check-list/.ld-note-box/.ld-info-box/.ld-steps - 下層共通パーツ
 * .ld-form-card/.ld-field/.ld-radio-grid/.ld-tel-card/.ld-contact-cols - お問い合わせ
 * .ld-wk/.ld-filter/.ld-entry 系 - 施工実績一覧・詳細
 * .ld-ph              - 画像プレースホルダ
 * .reveal             - スクロール表示アニメーション
 *
 * ======================================
 * 共通SCSSに不足していたもの（5分類）
 * ======================================
 *
 * 構造不足：2段組ヘッダー（インフォバー＋メインバー）、写真overlay型サービスカード（svc）、
 *           番号バッジ付き特徴カード（feat__no）、CTA帯のイラスト＋電話カード2カラム
 * 装飾パターン不足：ヒーロー左グラデveil、KPIストリップ（区切り罫線grid）、
 *           黄色マーカー下線（mark 58%）、補助金エリアカードの日付ボックス
 * 値の粒度不足：セクション余白96px/64px、角丸14px、ボタンpill 999px（共通btnは10px固定）
 * 状態不足：ヘッダーmainのスクロール時シャドウ（is-stuck）、svcカードhover画像ズーム
 * 指定方向不足：footerグリッド 1.5/0.7/1.6fr の非均等3カラム
 */

:root{
  --blue:#006BB9;
  --blue-d:#004E89;
  --blue-dd:#022f54;
  --blue-l:#3D97D4;
  --sky:#82C7F0;
  --tint:#F1F7FC;
  --tint2:#E6F1FA;
  --yellow:#FFE800;
  --yellow-d:#F4C400;
  --red:#FF3100;
  --ink:#1A2730;
  --ink-soft:#54636E;
  --line:#DCE6EE;
  --radius:14px;
  --radius-s:8px;
  --shadow:0 10px 30px -12px rgba(0,73,137,.22);
  --shadow-s:0 4px 14px -6px rgba(0,73,137,.20);
  --ff-head:"Zen Kaku Gothic New",sans-serif;
  --ff-body:"Noto Sans JP",sans-serif;
}

/* ---------- base 調整（共通main.cssの上に被せる） ---------- */
body{font-family:var(--ff-body);color:var(--ink);background:#fff;line-height:1.85;font-size:16px;letter-spacing:normal}
@media(max-width:768px){body{font-size:13.5px}}
/* スマホ：フッターのナビ列を非表示 */
@media(max-width:768px){.ld-footer__col--nav{display:none}}
a{color:inherit}
a:hover{opacity:1}
h1,h2,h3,h4{font-family:var(--ff-head);font-weight:700;line-height:1.4;margin:0}
img{display:block}

/* ---------- レイアウト primitive ---------- */
.wrap{max-width:1200px;margin:0 auto;padding:0 28px}
.ld-section{padding:96px 0}
.ld-section--tint{background:var(--tint)}
.ld-section--blue{background:var(--blue);color:#fff}
.ld-center{text-align:center}
/* スマホ専用改行（PCでは改行しない） */
.ld-br-sp{display:none}
@media(max-width:768px){.ld-br-sp{display:inline}}
/* PC専用改行（スマホでは改行しない） */
.ld-br-pc{display:inline}
@media(max-width:768px){.ld-br-pc{display:none}}
/* スマホ専用：左揃え（PCは元の揃えのまま） */
@media(max-width:768px){.ld-sp-text-left{text-align:left}}
/* スマホ：チェックリストの行間を詰め、項目間の余白を調整 */
@media(max-width:768px){
  .ld-check-list{gap:14px}
  .ld-check-list b{line-height:1.35;margin-bottom:3px}
  .ld-check-list .d{line-height:1.45}
}

/* ---------- バイリンガル見出し ---------- */
.ld-eyebrow{font-family:var(--ff-head);font-weight:700;letter-spacing:.18em;color:var(--blue-l);font-size:14px;text-transform:uppercase;display:flex;align-items:center;gap:12px}
.ld-eyebrow::before{content:"";width:30px;height:2px;background:var(--blue-l)}
.ld-eyebrow.is-center{justify-content:center}
.ld-eyebrow.on-blue{color:var(--yellow)}
.ld-eyebrow.on-blue::before{background:var(--yellow)}
.ld-s-title{font-family:var(--ff-head);font-weight:700;font-size:clamp(25px,3.4vw,40px);letter-spacing:0em;margin-top:14px;color:var(--ink);line-height:1.4}
.ld-section--blue .ld-s-title{color:#fff}
.ld-lead{margin-top:22px;color:var(--ink-soft);font-size:16.5px;max-width:760px}
@media(max-width:768px){.ld-lead{font-size:14px}}
.ld-center .ld-lead{margin-left:auto;margin-right:auto}
.ld-mark{background:linear-gradient(transparent 58%,var(--yellow) 58%);padding:0 .08em;font-weight:700}
.ld-lead-q{font-family:var(--ff-head);font-weight:700;font-size:clamp(20px,2.4vw,26px);line-height:1.6;color:var(--blue-d)}

/* リード見出し（左に縦バー） */
.ld-h-bar{font-family:var(--ff-head);font-weight:700;font-size:clamp(22px,2.6vw,30px);line-height:1.5;padding-left:18px;position:relative;color:var(--ink);margin-bottom:24px}
.ld-h-bar::before{content:"";position:absolute;left:0;top:.18em;bottom:.18em;width:6px;border-radius:6px;background:linear-gradient(var(--blue),var(--blue-l))}
.ld-h-bar .en{display:block;font-size:12px;letter-spacing:.16em;color:var(--blue-l);font-weight:700}

/* ---------- ボタン ---------- */
.ld-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:var(--ff-head);font-weight:700;padding:16px 34px;border-radius:999px;font-size:16px;transition:transform .18s ease,box-shadow .18s ease,background .18s ease;cursor:pointer;border:0;line-height:1.2;text-decoration:none}
.ld-btn svg{width:20px;height:20px}
.ld-btn--primary{background:var(--blue);color:#fff;box-shadow:var(--shadow-s)}
.ld-btn--primary:hover{background:var(--blue-d);transform:translateY(-2px)}
.ld-btn--yellow{background:var(--yellow);color:var(--blue-dd)}
.ld-btn--yellow:hover{background:var(--yellow-d);transform:translateY(-2px)}
.ld-btn--line{background:#06C755;color:#fff}
.ld-btn--line:hover{background:#05a948;transform:translateY(-2px)}
.ld-btn--ghost{background:#fff;color:var(--blue);border:1.5px solid var(--blue)}
.ld-btn--ghost:hover{background:var(--blue);color:#fff}
.ld-btn--lg{padding:20px 44px;font-size:17px}
.ld-btn--block{display:flex;width:100%}

/* ---------- ヘッダー ---------- */
.ld-header{position:sticky;top:-36px;z-index:200;background:#fff}
.ld-header .wrap{max-width:1320px}
.ld-header__top{background:var(--blue-d);color:#fff;font-size:13px}
.ld-header__top .wrap{display:flex;justify-content:space-between;align-items:center;height:36px}
.ld-header__top a{color:#fff;opacity:.92}
.ld-header__top svg{width:14px;height:14px;flex:none;position:relative;top:2px}
.ld-header__top-left{display:flex;gap:18px;align-items:center}
.ld-header__top-left span{display:inline-flex;align-items:center}
.ld-header__top-right{display:flex;gap:18px;align-items:center}
.ld-header__main{background:#fff;box-shadow:0 1px 0 var(--line);transition:box-shadow .2s}
.ld-header__main.is-stuck{box-shadow:var(--shadow-s)}
.ld-header__main .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;height:72px}
.ld-brand{display:flex;align-items:center;gap:13px}
.ld-brand__img{height:34px;width:auto;display:block}
.ld-brand--footer .ld-brand__img{filter:brightness(0) invert(1)}

.ld-gnav{display:flex;gap:4px;align-items:center}
.ld-gnav a{font-family:var(--ff-head);font-weight:700;font-size:15px;padding:10px 14px;border-radius:8px;color:var(--ink);position:relative}
.ld-gnav a:hover{color:var(--blue)}
.ld-gnav a.is-active{color:var(--blue)}
.ld-gnav a.is-active::after{content:"";position:absolute;left:14px;right:14px;bottom:2px;height:2px;background:var(--yellow)}
.ld-header__cta{display:flex;align-items:center;gap:12px}
.ld-header__tel{text-align:right;line-height:1.15}
.ld-header__tel .num{font-family:var(--ff-head);font-weight:700;font-size:22px;color:var(--blue-d);display:flex;align-items:center;gap:7px}
.ld-header__tel .num svg{width:18px;height:18px;color:var(--blue)}
.ld-header__tel small{font-size:11px;color:var(--ink-soft)}
.ld-nav-toggle{display:none;width:46px;height:46px;border-radius:10px;border:0;background:var(--blue);color:#fff;place-items:center;cursor:pointer}
.ld-nav-toggle svg{width:24px;height:24px}

/* ---------- フッター上CTA帯 ---------- */
.ld-cta{background:linear-gradient(120deg,var(--blue),#1f8fce 70%,#3D97D4);padding:76px 0;color:#fff}
.ld-cta__inner{display:grid;grid-template-columns:1.05fr 1fr;gap:56px;align-items:center}
.ld-cta__lead{text-align:center;display:flex;flex-direction:column;align-items:center}
.ld-cta__lead h2{font-size:clamp(22px,3vw,30px);line-height:1.4;text-wrap:balance}
.ld-cta__lead p{margin-top:14px;color:rgba(255,255,255,.88);font-size:14px}
.ld-cta__illust{margin-top:28px;display:flex;justify-content:center}
.ld-cta__illust img{max-width:350px;width:100%;height:auto}
@media(max-width:768px){.ld-cta__illust img{max-width:250px}}
.ld-cta__box{background:#fff;border-radius:18px;padding:30px;color:var(--ink);box-shadow:var(--shadow);text-align:center}
.ld-cta__box-lbl{font-size:14px;color:var(--blue-d);font-weight:700;letter-spacing:.06em;display:inline-flex;flex-direction:column;align-items:center;gap:9px;padding-bottom:2px}
.ld-cta__box-lbl::after{content:"";width:46px;height:3px;border-radius:3px;background:var(--yellow)}
.ld-cta__tel{font-family:var(--ff-head);font-weight:700;font-size:38px;color:var(--blue-d);display:flex;align-items:center;justify-content:center;gap:10px;margin:6px 0 2px}
.ld-cta__tel svg{width:30px;height:30px;color:var(--blue)}
.ld-cta__hours{font-size:15.5px;color:var(--ink-soft);display:flex;align-items:baseline;justify-content:center;gap:8px;margin-top:4px}
.ld-cta__hours .hl{font-family:var(--ff-head);font-weight:700;color:var(--blue-d);font-size:15px;flex:none}
.ld-cta__btns{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}
.ld-cta__btns .ld-btn{padding:15px 12px;white-space:nowrap}

/* ---------- フッター本体 ---------- */
.ld-footer{background:var(--blue-dd);color:rgba(255,255,255,.82);font-size:14.5px}
.ld-footer__main{padding:64px 0 30px}
.ld-footer__grid{display:grid;grid-template-columns:1.5fr 0.7fr 1.6fr;gap:48px}
.ld-footer__contact{margin-top:20px;display:grid;gap:10px}
.ld-footer__contact div{display:flex;align-items:baseline;gap:12px;font-size:14px;color:rgba(255,255,255,.82)}
.ld-footer__contact span{flex:none;min-width:62px;font-family:var(--ff-head);font-weight:700;font-size:12px;letter-spacing:.06em;color:var(--yellow)}
.ld-footer__contact a{color:#fff;font-family:var(--ff-head);font-weight:700;font-size:17px;white-space:nowrap}
.ld-footer__col h4{color:#fff;font-size:15px;letter-spacing:.04em;margin-bottom:16px}
.ld-footer__col li{margin-bottom:11px}
.ld-footer__col a{color:rgba(255,255,255,.78);font-size:14px}
.ld-footer__col a:hover{color:var(--yellow)}
.ld-footer__map{border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,.15);height:200px}
.ld-footer__map iframe{width:100%;height:100%;border:0;filter:grayscale(.1)}
.ld-footer__bottom{border-top:1px solid rgba(255,255,255,.12);padding:20px 0;font-size:12.5px;color:rgba(255,255,255,.6)}
.ld-footer__bottom .wrap{display:flex;justify-content:center;align-items:center;gap:16px;flex-wrap:wrap}

/* ---------- SP固定バー ---------- */
.ld-sp-bar{display:none}

/* ---------- ドロワー ---------- */
.ld-drawer{position:fixed;inset:0;z-index:400;visibility:hidden}
.ld-drawer__ov{position:absolute;inset:0;background:rgba(2,47,84,.5);opacity:0;transition:opacity .3s}
.ld-drawer__panel{position:absolute;top:0;right:0;height:100%;width:min(82%,340px);background:#fff;transform:translateX(100%);transition:transform .3s ease;display:flex;flex-direction:column;padding:24px}
.ld-drawer.open{visibility:visible}
.ld-drawer.open .ld-drawer__ov{opacity:1}
.ld-drawer.open .ld-drawer__panel{transform:none}
.ld-drawer__close{align-self:flex-end;background:none;border:0;width:42px;height:42px;cursor:pointer;color:var(--blue-d)}
.ld-drawer__close svg{width:28px;height:28px}
.ld-drawer__nav{display:flex;flex-direction:column;margin-top:10px}
.ld-drawer__nav a{font-family:var(--ff-head);font-weight:700;font-size:17px;padding:15px 6px;border-bottom:1px solid var(--line)}
.ld-drawer__nav a.is-active{color:var(--blue)}
.ld-drawer__tel{margin-top:22px;text-align:center;background:var(--tint);border-radius:12px;padding:18px}
.ld-drawer__tel .num{font-family:var(--ff-head);font-weight:700;font-size:26px;color:var(--blue-d)}
.ld-drawer__tel small{display:block;color:var(--ink-soft);font-size:12px}
.ld-drawer__btns{display:grid;gap:10px;margin-top:22px}

/* ---------- 下層ページ共通ヘッダー ---------- */
.ld-page-hero{position:relative;color:#fff;padding:84px 0;background:linear-gradient(120deg,var(--blue-d),var(--blue) 60%,var(--blue-l));overflow:hidden}
.ld-page-hero::after{content:"";position:absolute;right:-80px;bottom:-120px;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.16),transparent 70%)}
.ld-page-hero .ld-eyebrow{color:var(--yellow)}
.ld-page-hero .ld-eyebrow::before{display:none}
.ld-page-hero h1{font-size:clamp(30px,4vw,46px);margin-top:12px;letter-spacing:.03em}
.ld-page-hero--recruit{background:linear-gradient(120deg,var(--blue-dd),var(--blue-d) 55%,var(--blue))}
.ld-breadcrumb{font-size:12.5px;color:var(--ink-soft);padding:16px 0;border-bottom:1px solid var(--line)}
.ld-breadcrumb a:hover{color:var(--blue)}
.ld-breadcrumb .wrap{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.ld-breadcrumb .cur{color:var(--blue)}

/* ---------- 画像プレースホルダ ---------- */
.ld-ph{background:linear-gradient(135deg,var(--tint2),var(--sky) 130%);position:relative;display:grid;place-items:center;color:var(--blue);font-size:12px;letter-spacing:.1em;overflow:hidden}
.ld-ph::after{content:attr(data-label);position:absolute;font-family:var(--ff-head);font-weight:700;color:rgba(0,107,185,.5)}

/* reveal */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}

/* =========================================================
   TOPページ
   ========================================================= */
/* HERO（メインビュー：CMSスライダー #main_slider を表示）
   ※ スライダーの構造・画像・高さは CMS 側CSSが制御するため、こちらでは上書きしない。
      高さだけ CMS の変数 --swiper-wrapper-height を上書きしてデザインに合わせる。 */
.ld-hero{position:relative;overflow:hidden;background:var(--blue-d)}
#slideshow{position:relative;width:100%}
/* コピーはスライダーのスワイプ/矢印操作を妨げないよう pointer-events を無効化（ボタンのみ有効） */
.ld-hero__inner{position:absolute;inset:0;z-index:4;display:flex;align-items:center;pointer-events:none}
.ld-hero__btns a{pointer-events:auto}
.ld-hero__inner .wrap{width:100%}
.ld-hero__copy{max-width:680px;color:#fff}
.ld-hero__badge{display:inline-flex;align-items:center;gap:9px;background:var(--red);color:#fff;font-family:var(--ff-head);font-weight:700;padding:9px 18px;font-size:15px;letter-spacing:.02em;box-shadow:0 8px 22px -8px rgba(0,0,0,.4)}
.ld-hero__badge b{font-size:18px;color:#fff}
.ld-hero h1{font-size:clamp(30px,5vw,58px);line-height:1.34;margin:20px 0 0;text-shadow:0 2px 8px rgba(0,30,58,.55),0 4px 30px rgba(0,30,58,.45);letter-spacing:.01em;color:#fff}
.ld-hero h1 .y{color:var(--yellow)}
.ld-hero__sub{margin-top:18px;font-size:clamp(16px,2vw,20px);font-weight:500;text-shadow:0 2px 7px rgba(0,30,58,.6),0 2px 20px rgba(0,30,58,.4)}
.ld-hero__btns{display:flex;gap:14px;margin-top:30px;flex-wrap:wrap}
.ld-hero__ghost{background:var(--blue-d);color:#fff;border:1.5px solid rgba(255,255,255,.6)}
.ld-hero__ghost:hover{background:var(--blue-d);color:#fff;transform:translateY(-2px);box-shadow:0 10px 24px -10px rgba(0,0,0,.5)}
.ld-hero__tag{position:absolute;z-index:4;right:24px;top:24px;writing-mode:vertical-rl;font-family:var(--ff-head);font-weight:700;color:rgba(255,255,255,.7);letter-spacing:.3em;font-size:12px;pointer-events:none}

/* KEY POINTS strip */
.ld-kpi{background:var(--blue-dd);color:#fff}
.ld-kpi__inner{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,.14)}
.ld-kpi__item{background:var(--blue-dd);padding:26px 22px;text-align:center}
.ld-kpi__item .n{font-family:var(--ff-head);font-weight:700;font-size:clamp(26px,3vw,38px);color:var(--yellow);line-height:1.1}
.ld-kpi__item .n small{font-size:16px;color:#fff}
.ld-kpi__item p{margin-top:6px;font-size:13.5px;color:rgba(255,255,255,.82)}

/* INTRO */
.ld-intro__inner{display:grid;grid-template-columns:1.12fr 0.88fr;gap:60px;align-items:center}
.ld-intro__img{border-radius:var(--radius);aspect-ratio:4/3;object-fit:cover;box-shadow:var(--shadow);width:100%}
.ld-area-tags{display:flex;flex-wrap:wrap;gap:9px;margin-top:24px}
.ld-area-tags span{background:var(--tint2);color:var(--blue-d);font-weight:700;font-size:13px;padding:7px 14px;border-radius:999px;font-family:var(--ff-head)}
.ld-area-tags .full{background:var(--blue);color:#fff}
.ld-area-tags__note{display:flex;flex-wrap:wrap;gap:18px;margin-top:12px;font-size:12px;color:var(--ink-soft)}
.ld-area-tags__item{display:inline-flex;align-items:center;gap:6px;font-family:var(--ff-head);font-weight:700}
.ld-area-tags__sw{display:inline-block;width:14px;height:14px;border-radius:4px}
.ld-area-tags__sw--full{background:var(--blue)}
.ld-area-tags__sw--part{background:var(--tint2);border:1px solid var(--line)}

/* FEATURES */
.ld-feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:52px}
.ld-feat{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow-s);overflow:hidden;border:1px solid var(--line);display:flex;flex-direction:column}
.ld-feat__img{aspect-ratio:16/10;object-fit:cover;width:100%;display:block}
.ld-feat__body{padding:26px 24px 30px;position:relative}
.ld-feat__no{position:absolute;top:-30px;right:20px;font-family:var(--ff-head);font-weight:700;z-index:2}
.ld-feat__no b{display:grid;place-items:center;width:60px;height:60px;border-radius:50%;background:var(--blue);color:#fff;font-size:26px;line-height:1;box-shadow:0 8px 18px -6px rgba(0,73,137,.5);border:3px solid #fff}
.ld-feat h3{font-size:20px;margin:6px 0 12px;color:var(--ink);line-height:1.5}
.ld-feat p{font-size:14.5px;color:var(--ink-soft)}

/* SERVICES */
.ld-svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:52px}
.ld-svc{position:relative;border-radius:var(--radius);overflow:hidden;min-height:200px;display:flex;align-items:stretch;color:#fff;box-shadow:var(--shadow-s)}
.ld-svc__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s ease}
.ld-svc::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,40,75,.90) 0%,rgba(0,40,75,.55) 45%,rgba(0,40,75,.45) 100%)}
.ld-svc__body{position:relative;z-index:2;padding:28px;width:100%;display:flex;flex-direction:column;justify-content:space-between}
.ld-svc__body .en{font-family:var(--ff-head);font-weight:700;color:var(--yellow);letter-spacing:.14em;font-size:12px;margin-bottom:4px}
.ld-svc__body h3{font-size:24px;margin:6px 0 0;color:#fff}
.ld-svc__body .more{display:inline-flex;align-items:center;gap:6px;font-family:var(--ff-head);font-weight:700;font-size:14px;color:#fff}
.ld-svc:hover .ld-svc__img{transform:scale(1.05)}

/* WORKS（TOP） */
.ld-works-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:48px}
.ld-works-grid .ld-wk{display:block}

/* RECRUIT */
.ld-recruit{background:linear-gradient(100deg,rgba(2,47,84,.94) 0%,rgba(0,78,137,.78) 42%,rgba(0,78,137,.30) 70%,rgba(0,78,137,.12) 100%),url("https://ros-cdn.s3.ap-northeast-1.amazonaws.com/hp/img/ros_keiyaku/28221/recruit-bg.png");background-size:cover;background-position:85% center;color:#fff;position:relative;overflow:hidden}
.ld-recruit::after{content:"";position:absolute;right:-100px;top:-100px;width:380px;height:380px;border-radius:50%;background:radial-gradient(circle,rgba(130,199,240,.25),transparent 70%)}
.ld-recruit .wrap{position:relative;z-index:2}
.ld-recruit__copy{max-width:680px}
.ld-recruit h2{font-family:var(--ff-head);font-size:clamp(26px,3vw,38px);line-height:1.4;color:#fff}
.ld-recruit p{margin-top:18px;color:rgba(255,255,255,.86)}
.ld-recruit__btn{margin-top:28px}

/* =========================================================
   下層共通パーツ
   ========================================================= */
.ld-prose{font-size:16px;line-height:2;color:var(--ink)}
.ld-prose p{margin-bottom:1.4em}
.ld-prose--tight p{margin-bottom:.4em}
.ld-prose b{color:var(--blue-d)}

.ld-info-table{width:100%;border-collapse:collapse;font-size:14.5px;background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-s)}
.ld-info-table th,.ld-info-table td{text-align:left;padding:18px 22px;border-bottom:1px solid var(--line);vertical-align:top}
.ld-info-table th{width:26%;background:var(--tint);font-family:var(--ff-head);font-weight:700;color:var(--blue-d);white-space:nowrap}
.ld-info-table tr:last-child th,.ld-info-table tr:last-child td{border-bottom:0}
.ld-info-table td .note{display:block;font-size:13px;color:var(--ink-soft);margin-top:4px}
.ld-info-table--req th{width:24%;background:var(--blue);color:#fff;white-space:normal}

.ld-check-list{display:grid;gap:11px;margin:8px 0}
.ld-check-list li{display:flex;gap:13px;align-items:flex-start}
.ld-check-list li::before{content:"";flex:none;width:20px;height:20px;border-radius:50%;margin-top:3px;background:var(--blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/12px no-repeat}
.ld-check-list b{display:block;color:var(--blue-d);font-size:16px;margin-bottom:1px;font-family:var(--ff-head);line-height:1.4}
.ld-check-list .d{color:var(--ink-soft);font-size:14px;line-height:1.6}

.ld-note-box{border:1px solid var(--line);border-left:5px solid var(--red);background:#fff;border-radius:10px;padding:18px 22px;font-size:14px;color:var(--ink-soft)}
.ld-note-box b{color:var(--red)}
.ld-info-box{background:var(--tint);border-radius:12px;padding:22px 24px;font-size:14.5px;color:var(--ink-soft)}

.ld-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;counter-reset:s}
.ld-step{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px 22px;position:relative}
.ld-step::before{counter-increment:s;content:"0" counter(s);font-family:var(--ff-head);font-weight:700;font-size:30px;color:var(--yellow-d);line-height:1}
.ld-step h4{font-size:17px;margin:8px 0 8px}
.ld-step p{font-size:13.5px;color:var(--ink-soft)}

.ld-strength{background:linear-gradient(120deg,var(--blue),#1f8fce 70%,#3D97D4);color:#fff;border-radius:18px;padding:46px;position:relative;overflow:hidden}
.ld-strength::after{content:"";position:absolute;right:-60px;bottom:-80px;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(255,232,0,.18),transparent 70%)}
.ld-strength h3{font-size:clamp(19px,2.6vw,28px);position:relative;z-index:2;color:#fff}
.ld-strength p{margin-top:14px;color:rgba(255,255,255,.9);position:relative;z-index:2}
.ld-strength--media{display:grid;grid-template-columns:1.5fr 1fr;gap:44px;align-items:center}
.ld-strength--media .ld-strength__txt,.ld-strength--media .ld-strength__media{position:relative;z-index:2}
.ld-strength--media .ld-strength__media img{display:block;width:100%;height:auto}

/* 番号付きサービスブロック（事業内容） */
.ld-svc-nav{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:44px}
.ld-svc-nav a{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px;text-align:center;font-family:var(--ff-head);font-weight:700;color:var(--blue-d);box-shadow:var(--shadow-s);transition:.18s}
.ld-svc-nav a:hover{transform:translateY(-3px);border-color:var(--blue);color:var(--blue)}
.ld-svc-nav a span{display:block;font-size:12px;color:var(--blue-l);letter-spacing:.1em;margin-bottom:4px}
.ld-svc-block{position:relative;padding:56px 0}
.ld-svc-block:first-of-type{padding-top:20px}
.ld-svc-block:last-of-type{padding-bottom:0}
.ld-svc-block__head{margin-bottom:30px;padding-bottom:20px;border-bottom:1px solid var(--line)}
.ld-svc-block__no{display:flex;align-items:baseline;gap:10px;white-space:nowrap;font-family:var(--ff-head);font-weight:700;color:var(--blue-l);letter-spacing:.1em;font-size:13px;margin-bottom:10px}
.ld-svc-block__no b{font-size:40px;color:var(--blue);line-height:.9}
.ld-svc-block__row{display:grid;grid-template-columns:2fr 3fr;gap:44px;align-items:center}
.ld-svc-block__img{border-radius:var(--radius);aspect-ratio:4/3;object-fit:cover;width:100%;box-shadow:var(--shadow)}
.ld-svc-block h3{font-size:clamp(22px,2.6vw,28px);margin:0;display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.ld-svc-badge{font-family:var(--ff-head);font-weight:700;font-size:12px;color:#fff;background:var(--blue);padding:4px 12px;border-radius:999px;letter-spacing:.02em}
.ld-svc-block .tagline{color:var(--ink);font-weight:700;font-size:18px;letter-spacing:0;margin-bottom:16px;padding-left:14px;position:relative;font-family:var(--ff-head)}
.ld-svc-block .tagline::before{content:"";position:absolute;left:0;top:.35em;bottom:.35em;width:3px;border-radius:3px;background:var(--yellow)}
.ld-svc-block p{color:var(--ink-soft);font-size:15px}

/* 防音工事ページ */
.ld-card-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.ld-icard{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:30px;box-shadow:var(--shadow-s)}
.ld-icard h3{font-size:19px;color:var(--blue-d);margin-bottom:10px;display:flex;align-items:center;gap:10px}
.ld-icard h3 .dot{width:34px;height:34px;border-radius:9px;background:var(--tint2);display:grid;place-items:center;color:var(--blue);flex:none}
.ld-icard h3 .dot svg{width:18px;height:18px}
.ld-icard p{font-size:14.5px;color:var(--ink-soft)}
.ld-area-map{width:100%;height:auto;display:block;border-radius:var(--radius)}
.ld-two-col{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.ld-area-cols{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:8px}
.ld-area-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-s)}
.ld-area-card__h{padding:18px 24px;color:#fff;font-family:var(--ff-head);font-weight:700;font-size:18px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.ld-area-card--kadena .ld-area-card__h{background:var(--blue)}
.ld-area-card--futenma .ld-area-card__h{background:var(--blue-l)}
.ld-area-card__h .tag{background:rgba(255,255,255,.22);font-size:12px;padding:3px 10px;border-radius:6px;white-space:nowrap}
.ld-area-card__b{padding:22px 24px;font-size:14.5px;color:var(--ink-soft)}
.ld-date-box{background:var(--tint);border:1px solid var(--tint2);border-radius:10px;padding:14px 18px;display:flex;flex-direction:column;gap:6px}
.ld-date-box .lbl{font-family:var(--ff-head);font-weight:700;font-size:12px;letter-spacing:.04em;color:var(--blue-l)}
.ld-date-box .date{font-family:var(--ff-head);font-weight:700;color:var(--blue-d);font-size:17px;line-height:1.5}
.ld-date-box .date em{font-style:normal;color:var(--blue-l);margin:0 6px}
.ld-area-card__note{font-size:12.5px;color:var(--ink-soft);margin-top:10px}

/* 採用ページ */
.ld-job-head{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:center}
.ld-job-head__img{aspect-ratio:5/4;width:100%;object-fit:cover;border-radius:var(--radius);box-shadow:var(--shadow);display:block}
.ld-job-badge{display:inline-block;background:var(--yellow);color:var(--blue-dd);font-family:var(--ff-head);font-weight:700;padding:7px 18px;border-radius:999px;font-size:14px;margin-bottom:16px}
.ld-duties{display:grid;gap:18px;margin-top:8px}
.ld-duty{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px 26px;display:flex;gap:18px;box-shadow:var(--shadow-s)}
.ld-duty .ic{flex:none;width:50px;height:50px;border-radius:12px;background:var(--tint2);color:var(--blue);display:grid;place-items:center}
.ld-duty .ic svg{width:24px;height:24px}
.ld-duty h4{font-size:17px;color:var(--blue-d);margin-bottom:6px}
.ld-duty p{font-size:14px;color:var(--ink-soft)}
.ld-merit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.ld-merit{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:30px 26px;box-shadow:var(--shadow-s)}
.ld-merit__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.ld-merit__ic{width:58px;height:58px;border-radius:15px;background:var(--tint2);color:var(--blue);display:grid;place-items:center}
.ld-merit__ic svg{width:30px;height:30px}
.ld-merit__no{font-family:var(--ff-head);font-weight:700;font-size:34px;color:var(--tint2);line-height:1}
.ld-merit h4{font-size:17px;margin-bottom:8px;color:var(--ink)}
.ld-merit p{font-size:13.5px;color:var(--ink-soft)}

/* お問い合わせ */
.ld-contact-cols{display:grid;grid-template-columns:0.78fr 1.32fr;gap:46px;align-items:start}
.ld-tel-card{background:linear-gradient(120deg,var(--blue),#1f8fce 70%,#3D97D4);color:#fff;border-radius:18px;padding:32px;box-shadow:var(--shadow);text-align:center}
.ld-tel-card .lbl{font-size:13px;color:rgba(255,255,255,.85);font-weight:700;letter-spacing:.04em}
.ld-tel-card .num{font-family:var(--ff-head);font-weight:700;font-size:40px;display:flex;align-items:center;justify-content:center;gap:12px;margin:6px 0;color:#fff}
.ld-tel-card .num svg{width:32px;height:32px;color:var(--yellow)}
.ld-tel-card .hours{font-size:13px;color:rgba(255,255,255,.85);margin-top:4px}
.ld-tel-card .line-row{margin-top:20px;padding-top:20px;border-top:1px solid rgba(255,255,255,.2)}
.ld-company-map{border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);height:340px;box-shadow:var(--shadow-s)}
.ld-company-map iframe{width:100%;height:100%;border:0}
.ld-form-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:0;box-shadow:var(--shadow)}
.ld-field{margin-bottom:22px}
.ld-field label{display:block;font-family:var(--ff-head);font-weight:700;font-size:14.5px;margin-bottom:8px;color:var(--blue-d)}
.ld-field .req{color:var(--red);font-size:12px;margin-left:6px}
.ld-field input,.ld-field textarea,.ld-field select{width:100%;padding:13px 16px;border:1.5px solid var(--line);border-radius:10px;font-family:inherit;font-size:15px;color:var(--ink);background:#fcfdfe;transition:border .15s}
.ld-field input:focus,.ld-field textarea:focus,.ld-field select:focus{outline:0;border-color:var(--blue)}
.ld-field textarea{min-height:140px;resize:vertical}
.ld-radio-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ld-radio-grid label{display:flex;align-items:center;gap:10px;border:1.5px solid var(--line);border-radius:10px;padding:14px 16px;cursor:pointer;font-weight:500;margin:0;color:var(--ink);font-family:var(--ff-body)}
.ld-radio-grid label:has(input:checked){border-color:var(--blue);background:var(--tint)}
.ld-radio-grid input{width:auto}
/* CMSフォーム出力の調整：ラジオ/チェックの選択肢を縦1列に */
.ld-form-card dl dd label{display:block!important;float:none!important;clear:both!important;margin-bottom:8px}
.ld-form-card dl dd label input{margin-right:8px}

/* 施工実績一覧（CMSブログ一覧：横3並び） */
.ld-wk-cms span[id^="cms-blog-entry-list-"]{
  display:grid;grid-template-columns:repeat(4,1fr);gap:24px;
}
.ld-wk-cms span[id^="cms-blog-entry-list-"] img{width:100%;height:auto;display:block}
.ld-wk-cms span[id^="cms-blog-entry-list-"]>a,
.ld-wk-cms span[id^="cms-blog-entry-list-"]>div,
.ld-wk-cms span[id^="cms-blog-entry-list-"]>li{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-s)
}
/* TOPの施工実績は3列。見出しとの間に余白 */
.ld-wk-cms--3{margin-top:48px}
.ld-wk-cms--3 span[id^="cms-blog-entry-list-"]{grid-template-columns:repeat(3,1fr)}
@media(max-width:980px){.ld-wk-cms span[id^="cms-blog-entry-list-"]{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.ld-wk-cms span[id^="cms-blog-entry-list-"]{grid-template-columns:repeat(2,1fr);gap:16px}}
@media(max-width:460px){.ld-wk-cms span[id^="cms-blog-entry-list-"]{grid-template-columns:1fr}}

.ld-filter{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:48px;justify-content:center}
.ld-filter button{font-family:var(--ff-head);font-weight:700;font-size:15px;padding:11px 24px;border-radius:999px;border:1.5px solid var(--line);background:#fff;color:var(--ink-soft);cursor:pointer;transition:.15s}
.ld-filter button.on,.ld-filter button:hover{background:var(--blue);border-color:var(--blue);color:#fff}
.ld-wk-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:8px}
.ld-wk{display:flex;flex-direction:column;border-radius:var(--radius);overflow:hidden;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-s);transition:transform .2s,box-shadow .2s}
.ld-wk:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.ld-wk .ld-ph{aspect-ratio:5/3}
.ld-wk__body{padding:18px 18px 22px}
.ld-wk__meta{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.ld-wk__cat{display:inline-block;background:var(--blue);color:#fff;font-size:11.5px;font-weight:700;padding:3px 11px;border-radius:6px;font-family:var(--ff-head)}
.ld-wk__meta time{font-size:12.5px;color:var(--ink-soft)}
.ld-wk__body h3{font-size:15.5px;line-height:1.6;color:var(--ink)}
.ld-wk-empty{margin-top:30px;text-align:center;color:var(--ink-soft);font-size:15px}
/* TOP施工実績カードはタイトル大きめ */
.ld-works-grid .ld-wk__body h3{font-size:16.5px;margin:10px 0 4px}
.ld-works-grid .ld-wk__cat{background:var(--tint2);color:var(--blue-d)}
.ld-works-grid .ld-wk time{font-size:12.5px;color:var(--ink-soft)}

/* 施工実績詳細 */
.ld-entry-hero .ld-ph{aspect-ratio:16/8;border-radius:var(--radius);box-shadow:var(--shadow)}
.ld-entry-meta{display:flex;align-items:center;gap:12px;margin:24px 0 10px}
.ld-tag-cat{display:inline-block;background:var(--blue);color:#fff;font-size:12px;font-weight:700;padding:4px 13px;border-radius:6px;font-family:var(--ff-head)}
.ld-entry-meta time{color:var(--ink-soft);font-size:13px}
.ld-entry-title{font-size:clamp(24px,3vw,34px);line-height:1.5;margin-bottom:8px}
.ld-entry-gallery{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:28px 0}
.ld-entry-gallery .ld-ph{aspect-ratio:4/3;border-radius:10px}
.ld-spec-table{width:100%;border-collapse:collapse;font-size:14.5px;margin:24px 0}
.ld-spec-table th,.ld-spec-table td{padding:13px 18px;border:1px solid var(--line);text-align:left}
.ld-spec-table th{background:var(--tint);width:32%;font-family:var(--ff-head);color:var(--blue-d);font-weight:700}

/* ユーティリティ的余白 */
.ld-mt-10{margin-top:10px}
.ld-mt-18{margin-top:18px}
.ld-mt-24{margin-top:24px}
.ld-mt-38{margin-top:38px}
.ld-mt-42{margin-top:42px}
.ld-mb-14{margin-bottom:14px}
.ld-mb-40{margin-bottom:40px}
.ld-mb-44{margin-bottom:44px}
.ld-narrow-960{max-width:960px}
.ld-narrow-980{max-width:980px}
.ld-narrow-1100{max-width:1100px}
.ld-narrow-920{max-width:920px}
.ld-narrow-900{max-width:900px}
.ld-narrow-840{max-width:840px}
.ld-narrow-760{max-width:760px}

/* テキスト色・サイズ補助（インラインstyle置換用） */
.ld-tx-blue{color:var(--blue)}
.ld-tx-blue-d{color:var(--blue-d)}
.ld-tx-ink{color:var(--ink)}
.ld-tx-soft{color:var(--ink-soft)}
.ld-fs-13{font-size:13px}
.ld-mt-6{margin-top:6px}
.ld-mt-20{margin-top:20px}
.ld-mt-22{margin-top:22px}
.ld-mt-28{margin-top:28px}
.ld-mt-30{margin-top:30px}
.ld-mt-50{margin-top:50px}
.ld-mb-16{margin-bottom:16px}
.ld-mb-20{margin-bottom:20px}
.ld-mb-32{margin-bottom:32px}
.ld-mb-36{margin-bottom:36px}
.ld-lead--full{max-width:100%}
/* 事業内容ページ：導入セクション余白 */
.ld-svc-intro{padding-bottom:56px;background:var(--tint)}
.ld-section--pt20{padding-top:20px}
.ld-section--pt48{padding-top:48px}
/* 記事詳細：一覧に戻る区切り */
.ld-entry-back{margin-top:50px;padding-top:40px;border-top:1px solid var(--line)}

/* =========================================================
   レスポンシブ
   ========================================================= */
/* 中間幅（〜1320px）：電話番号を隠し、ナビ間隔を詰めて折返し崩れを防ぐ */
@media(max-width:1320px){
  .ld-header__tel{display:none}
  .ld-gnav a{padding:10px 11px;font-size:14.5px}
  .ld-header__main .wrap{gap:16px}
}
@media(max-width:1080px){
  .ld-gnav{display:none}
  .ld-header__tel{display:none}
  .ld-nav-toggle{display:inline-grid}
}
/* タブレット域：3カラムを2カラムに（窮屈さ回避） */
@media(max-width:1000px){
  .ld-feat-grid,.ld-works-grid,.ld-merit-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:980px){
  .ld-wk-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:920px){
  .ld-cta__inner{grid-template-columns:1fr;gap:28px}
  .ld-footer__grid{grid-template-columns:1fr;gap:34px}
}
@media(max-width:768px){
  .ld-section{padding:64px 0}
  .wrap{padding:0 20px}
  .ld-header__top{display:none}
  .ld-header{top:0}
  .ld-header__main .wrap{height:62px}
  body{padding-bottom:64px}
  .ld-page-hero{padding:56px 0}
  .ld-page-hero::after{width:280px;height:280px;right:-100px;bottom:-140px}
  .ld-cta{padding:56px 0}
  .ld-hero__tag{display:none}
  .ld-hero__btns{gap:10px}
  .ld-hero__btns .ld-btn{padding:13px 22px;font-size:14px}
  .ld-hero__btns .ld-btn svg{width:17px;height:17px}
  .ld-kpi__inner{grid-template-columns:1fr 1fr}
  .ld-intro__inner{grid-template-columns:1fr;gap:34px}
  .ld-feat-grid,.ld-works-grid{grid-template-columns:1fr}
  .ld-svc-grid{grid-template-columns:1fr}
  .ld-svc-nav{grid-template-columns:1fr 1fr}
  .ld-svc-block__no b{font-size:34px}
  .ld-svc-block__row{grid-template-columns:1fr;gap:22px}
  .ld-svc-block{padding:40px 0}
  .ld-card-grid,.ld-merit-grid,.ld-radio-grid{grid-template-columns:1fr}
  .ld-steps{grid-template-columns:1fr 1fr}
  .ld-two-col{grid-template-columns:1fr;gap:34px}
  .ld-area-cols{grid-template-columns:1fr}
  .ld-area-card__h{font-size:16px}
  .ld-area-card__h .tag{font-size:10px}
  .ld-date-box .date{font-size:14px}
  .ld-strength--media{grid-template-columns:1fr;gap:24px}
  .ld-strength{padding:30px 24px}
  .ld-job-head{grid-template-columns:1fr}
  .ld-contact-cols{grid-template-columns:1fr;gap:30px}
  .ld-form-card{padding:0}
  .ld-info-table{font-size:13.5px}
  .ld-info-table th,.ld-info-table td{padding:15px 15px;font-size:13.5px}
  .ld-info-table td .note{font-size:12px}
  .ld-info-table th{width:30%;white-space:normal}
  .ld-info-table--req th{width:30%}
  .ld-cta__btns{grid-template-columns:1fr}
  .ld-cta__tel{font-size:30px}
  .ld-btn--lg{font-size:16px}
  .ld-sp-bar{display:grid;grid-template-columns:1fr 1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:300;background:#fff;box-shadow:0 -4px 18px -6px rgba(0,0,0,.25)}
  .ld-sp-bar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:9px 4px;font-family:var(--ff-head);font-weight:700;font-size:11px;color:#fff}
  .ld-sp-bar a svg{width:21px;height:21px}
  .ld-sp-bar__tel{background:var(--blue)}
  .ld-sp-bar__line{background:#06C755}
  .ld-sp-bar__contact{background:#f5ce00;color:var(--blue-dd)}
}
@media(max-width:760px){
  .ld-wk-grid{grid-template-columns:repeat(2,1fr);gap:16px}
}
/* スマホ：ヘッダーCTAは下部固定バーと重複するため非表示（ハンバーガーは残す） */
@media(max-width:600px){
  .ld-header__cta .ld-btn{display:none}
  .ld-svc-nav{grid-template-columns:1fr}
}
/* 小型スマホ：ヒーローボタンを縦積み・全幅でタップしやすく */
@media(max-width:540px){
  .ld-hero__btns{flex-direction:column;align-items:stretch;width:100%}
  .ld-hero__btns .ld-btn{width:100%}
  .ld-entry-gallery{grid-template-columns:1fr}
  .ld-tel-card{padding:26px 22px}
  .ld-tel-card .num{font-size:32px}
}
@media(max-width:460px){
  .ld-wk-grid{grid-template-columns:1fr}
}
