/* ============================================================
   株式会社ケーテック｜A-E型：D（モダン）／m-sharp
   配色は SPEC.md §3 の業種パレット。全セクションはブロッククラス配下にスコープ。
   ============================================================ */
:root{
  --main:#0B4F9E; --sub:#1E88E5; --pale:#EAF2FB; --accent:#FF7A3D;
  --ink:#14202E; --muted:#5B6B7D; --line:#DCE6F2; --bg:#FFFFFF; --bg2:#F5F8FC;
  --dark:#08243F;
  --maxw:1120px; --herow:1340px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
html{overflow-x:clip;}
body{margin:0;background:var(--bg);color:var(--ink);
  font-family:'Zen Kaku Gothic New','Hiragino Sans','Noto Sans JP',sans-serif;
  line-height:1.85;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
img{max-width:100%;}
/* optimize_images.py が付ける <picture> はインライン。器に合わせてブロック化する */
picture{display:block;}
h1,h2,h3,.lead,.btn,summary{word-break:auto-phrase;text-wrap:balance;}
/* 本文も語句の切れ目で折り返す（「工事写真台帳／として」のような語中改行を止める） */
p,li,dd,figcaption,.c-band__txt,.pg__txt,.c-detail__close,.c-flow__step p,.c-faq__a p{
  word-break:auto-phrase;}
.mono{font-family:'Space Grotesk','Zen Kaku Gothic New',sans-serif;letter-spacing:.04em;}
/* 意味の切れ目でだけ折り返す（語中改行の防止） */
.nw{white-space:nowrap;}

/* --- アクセシビリティ --- */
.skip-link{position:absolute;left:-9999px;top:0;background:var(--main);color:#fff;padding:10px 16px;z-index:999;}
.skip-link:focus{left:8px;top:8px;}
a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{
  outline:3px solid var(--accent);outline-offset:2px;border-radius:3px;}
@media (hover:none){ .btn,.c-hd__nav a,.c-hd__toggle{min-height:44px;} }

/* --- シグネチャーモチーフ：まっすぐな1本の線 --- */
.motif{display:block;height:2px;width:96px;background:var(--main);border-radius:2px;}
.motif--accent{background:var(--accent);}

/* --- 共通ボタン --- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-weight:700;font-size:15px;padding:16px 28px;border-radius:8px;text-decoration:none;
  transition:transform .2s,box-shadow .2s,filter .2s;}
.btn--primary{background:var(--accent);color:#14202E;box-shadow:0 12px 24px -14px rgba(255,122,61,.85);}
.btn--primary:hover{transform:translateY(-2px);}
.btn--navy{background:var(--main);color:#fff;}
.btn--navy:hover{filter:brightness(1.08);}
.btn--ghost{border:1.5px solid rgba(255,255,255,.6);color:#fff;}
.btn--ghost:hover{background:rgba(255,255,255,.12);}

/* --- セクション共通 --- */
.sec{padding:104px 0;position:relative;}
.sec__inner{width:min(var(--maxw),calc(100% - 48px));margin:0 auto;}
.eyebrow{font-family:'Space Grotesk',sans-serif;font-size:11.5px;letter-spacing:.3em;
  text-transform:uppercase;color:var(--sub);font-weight:700;display:block;}
.h2{font-size:clamp(27px,4vw,42px);font-weight:900;line-height:1.32;margin:14px 0 0;letter-spacing:.01em;}
.h2 .mk{color:var(--main);}
.note{color:var(--muted);font-size:13.5px;margin:14px 0 0;}
@media(max-width:768px){ .sec{padding:64px 0;} }

/* ============ ヘッダー（parts: header-06 を移植） ============ */
.c-hd{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);
  box-shadow:0 2px 18px -14px rgba(11,79,158,.6);}
.c-hd__in{max-width:1280px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;
  gap:20px;padding:12px 24px;}
.c-hd__logo{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink);}
.c-hd__logo img{width:40px;height:40px;object-fit:contain;display:block;}
.c-hd__nm{font-weight:900;font-size:19px;letter-spacing:.06em;line-height:1.15;}
.c-hd__nm small{display:block;font-family:'Space Grotesk',sans-serif;font-size:9px;
  letter-spacing:.22em;color:var(--muted);font-weight:700;margin-top:2px;}
.c-hd__right{display:flex;align-items:center;gap:22px;}
.c-hd__nav{display:flex;gap:22px;}
.c-hd__nav a{color:var(--ink);text-decoration:none;font-size:14px;font-weight:700;position:relative;white-space:nowrap;}
.c-hd__nav a::after{content:"";position:absolute;left:0;bottom:-6px;height:2px;width:0;background:var(--main);transition:width .25s;}
.c-hd__nav a:hover{color:var(--main);} .c-hd__nav a:hover::after{width:100%;}
.c-hd__conv{display:flex;align-items:center;gap:14px;}
.c-hd__tel{text-align:right;line-height:1.15;text-decoration:none;}
.c-hd__tel .num{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:20px;color:var(--main);}
.c-hd__tel .h{font-size:10px;color:var(--muted);display:block;}
.c-hd__cta{background:var(--accent);color:#14202E;font-weight:700;font-size:13.5px;
  padding:13px 20px;border-radius:8px;text-decoration:none;white-space:nowrap;}
.c-hd__rule{height:3px;background:linear-gradient(90deg,var(--main) 0%,var(--sub) 55%,var(--accent) 100%);}
.c-hd__toggle{display:none;width:46px;height:44px;border:1px solid var(--line);background:#fff;
  border-radius:8px;cursor:pointer;padding:0;position:relative;}
.c-hd__toggle span{position:absolute;left:13px;width:20px;height:2px;background:var(--main);transition:.25s;}
.c-hd__toggle span:nth-child(1){top:15px;} .c-hd__toggle span:nth-child(2){top:21px;} .c-hd__toggle span:nth-child(3){top:27px;}
.c-hd.is-open .c-hd__toggle span:nth-child(1){top:21px;transform:rotate(45deg);}
.c-hd.is-open .c-hd__toggle span:nth-child(2){opacity:0;}
.c-hd.is-open .c-hd__toggle span:nth-child(3){top:21px;transform:rotate(-45deg);}
.c-hd__drawer{display:none;border-top:1px solid var(--line);background:#fff;padding:8px 24px 22px;}
.c-hd.is-open .c-hd__drawer{display:block;}
.c-hd__drawer a{display:block;padding:14px 4px;border-bottom:1px solid var(--line);
  text-decoration:none;color:var(--ink);font-weight:700;font-size:15px;}
.c-hd__drawer .c-hd__cta{display:block;text-align:center;margin-top:18px;border-bottom:0;}
@media(max-width:1060px){ .c-hd__nav{display:none;} .c-hd__toggle{display:block;} }
@media(max-width:620px){ .c-hd__tel{display:none;} .c-hd__cta{display:none;} .c-hd__nm{font-size:16px;} }

/* ============ ヒーロー（FV: fv-36 WaterRipple を移植） ============ */
.hero,.c-hero{width: 100%;max-width:none;}
.c-hero{position:relative;min-height:760px;display:flex;align-items:center;overflow:hidden;
  background:var(--dark) url('https://k-tech.works/wp-content/uploads/2026/09/fv.jpg') center/cover no-repeat;}
.c-hero__canvas{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:0;}
.c-hero__veil{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(100deg,rgba(6,26,48,.90) 0%,rgba(6,26,48,.72) 46%,rgba(6,26,48,.34) 100%);}
.c-hero__inner{position:relative;z-index:2;width:min(var(--herow),calc(100% - 48px));margin:0 auto;padding:120px 0 96px;}
.c-hero__box{max-width:66%;}
.c-hero__eyebrow{font-family:'Space Grotesk',sans-serif;font-size:11.5px;letter-spacing:.28em;
  color:#8FC6F5;font-weight:700;display:inline-flex;align-items:center;gap:12px;}
.c-hero__eyebrow::before{content:"";width:34px;height:2px;background:#8FC6F5;}
.c-hero h1{font-size:clamp(30px,4.4vw,54px);font-weight:900;line-height:1.32;color:#fff;
  margin:22px 0 0;letter-spacing:.005em;text-shadow:0 4px 30px rgba(0,0,0,.45);}
/* 直下の span だけを1行に固定する（.mk まで block 化すると行が割れ句点が孤立する） */
.c-hero h1 > span{display:block;white-space:nowrap;}
.c-hero h1 .mk{display:inline;white-space:inherit;color:#FFB483;}
.c-hero h1 .ln{font-weight:inherit;white-space:nowrap;}
.c-hero__sub{color:rgba(255,255,255,.92);font-size:clamp(14.5px,1.7vw,17px);margin:24px 0 0;max-width:27em;
  word-break:auto-phrase;text-wrap:pretty;
  text-shadow:0 2px 16px rgba(0,0,0,.5);}
.c-hero__chips{display:flex;flex-wrap:wrap;gap:10px;margin:28px 0 0;}
.c-hero__chips span{font-size:12px;font-weight:700;color:#fff;border:1px solid rgba(255,255,255,.42);
  border-radius:999px;padding:7px 15px;backdrop-filter:blur(6px);background:rgba(6,26,48,.28);}
.c-hero__acts{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin:34px 0 0;}
.c-hero__tel{color:#fff;text-decoration:none;line-height:1.2;}
.c-hero__tel b{font-family:'Space Grotesk',sans-serif;font-size:26px;letter-spacing:.02em;display:block;}
.c-hero__tel small{font-size:11px;opacity:.8;}
.c-hero__scroll{position:absolute;right:5vw;bottom:34px;z-index:2;writing-mode:vertical-rl;
  font-family:'Space Grotesk',sans-serif;font-size:10px;letter-spacing:.36em;color:rgba(255,255,255,.6);}
@media(max-width:900px){
  .c-hero{min-height:620px;}
  .c-hero__box{max-width:100%;}
  .c-hero__inner{padding:88px 0 72px;}
  .c-hero h1 > span{white-space:normal;}
  .c-hero h1{font-size:clamp(26px,8.2vw,40px);}
  .c-hero__scroll{display:none;}
}

/* ============ リード／共感（sec-intro-17 を移植） ============ */
.c-lead{position:relative;background:var(--dark);color:#EAF2FB;padding:120px 0 128px;overflow:hidden;}
.c-lead::before{content:"";position:absolute;inset:0;background:url('https://k-tech.works/wp-content/uploads/2026/09/section-bg-2.jpg') center/cover;
  opacity:.30;filter:saturate(.7);}
.c-lead::after{content:"";position:absolute;inset:0;pointer-events:none;background:
  linear-gradient(90deg,rgba(8,36,63,.94),rgba(8,36,63,.74) 50%,rgba(8,36,63,.94)),
  linear-gradient(rgba(234,242,251,.07) 1px,transparent 1px),
  linear-gradient(90deg,rgba(234,242,251,.07) 1px,transparent 1px);
  background-size:auto,44px 44px,44px 44px;}
.c-lead__wrap{width:min(1120px,calc(100% - 48px));margin:0 auto;position:relative;z-index:1;min-height:520px;}
.c-lead__sig{position:absolute;display:flex;align-items:center;gap:9px;border:1px solid rgba(234,242,251,.22);
  background:rgba(8,36,63,.5);backdrop-filter:blur(8px);border-radius:999px;padding:8px 14px;
  font-size:11.5px;letter-spacing:.02em;color:#C3D6EA;white-space:nowrap;font-weight:700;}
.c-lead__sig i{width:7px;height:7px;border-radius:50%;background:var(--sub);box-shadow:0 0 16px var(--sub);flex:none;}
.c-lead__sig.is-warn i{background:var(--accent);box-shadow:0 0 16px var(--accent);}
.c-lead__s1{left:1%;top:6%;} .c-lead__s2{right:2%;top:13%;} .c-lead__s3{left:0;bottom:20%;}
.c-lead__s4{right:0;bottom:24%;} .c-lead__s5{left:31%;top:0;} .c-lead__s6{left:38%;bottom:3%;}
.c-lead__center{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);
  width:min(760px,100%);text-align:center;}
.c-lead__center .eyebrow{color:#8FC6F5;}
.c-lead h2{font-size:clamp(28px,5.4vw,58px);line-height:1.26;margin:20px 0 0;font-weight:900;color:#fff;}
.c-lead h2 .thin{font-weight:500;color:rgba(234,242,251,.66);}
.c-lead__body{width:min(560px,100%);margin:26px auto 0;color:#C3D6EA;font-size:15px;line-height:2;}
.c-lead__body p{margin:0 0 1em;}
.c-lead__punch{margin:30px auto 0;font-size:clamp(17px,2.4vw,24px);font-weight:900;color:#fff;
  display:inline-block;border-bottom:3px solid var(--accent);padding-bottom:6px;}
.c-lead__orbit{position:absolute;left:50%;top:50%;width:min(60vw,600px);aspect-ratio:1;
  border:1px solid rgba(30,136,229,.28);border-radius:50%;transform:translate(-50%,-50%);}
.c-lead__orbit::before{content:"";position:absolute;inset:16%;border:1px dashed rgba(234,242,251,.16);border-radius:50%;}
@media(max-width:820px){
  .c-lead{padding:76px 0 84px;}
  .c-lead__wrap{min-height:640px;}
  .c-lead__sig{font-size:10px;padding:6px 11px;}
  .c-lead__s1{left:-4%;top:2%;} .c-lead__s2{right:-6%;top:14%;} .c-lead__s3{left:-4%;bottom:14%;}
  .c-lead__s4{right:-6%;bottom:8%;} .c-lead__s5{left:24%;top:-2%;} .c-lead__s6{left:16%;bottom:0;}
}

/* ============ 選ばれる理由（sec-reasons-08 を移植） ============ */
.c-vows{background:var(--bg);}
.c-vows__list{margin-top:26px;}
.c-vow{padding:44px 0 40px;border-bottom:1px solid var(--line);}
.c-vow__word{position:relative;display:inline-block;font-weight:900;
  font-size:clamp(24px,4.4vw,50px);line-height:1.34;letter-spacing:.02em;
  color:transparent;-webkit-text-stroke:1.2px rgba(20,32,46,.42);}
.c-vow__word i{position:absolute;inset:0;font-style:normal;-webkit-text-stroke:0;
  clip-path:inset(0 100% 0 0);will-change:clip-path;}
.c-vow--1 .c-vow__word i{color:var(--main);}
.c-vow--2 .c-vow__word i{color:var(--sub);}
.c-vow--3 .c-vow__word i{color:var(--accent);}
.c-vow__ex{display:flex;gap:20px;align-items:baseline;margin-top:16px;}
.c-vow__no{font-family:'Space Grotesk',sans-serif;font-size:11px;letter-spacing:.24em;color:var(--muted);flex:none;font-weight:700;}
.c-vow__ex p{margin:0;font-size:15px;color:#3C4B5C;max-width:40em;}
@media(max-width:680px){ .c-vow{padding:32px 0 28px;} .c-vow__ex{flex-direction:column;gap:6px;} }

/* ============ サービス内容（sec-features-01 を移植） ============ */
.c-svc{background:var(--bg2);overflow-x:clip;}
.c-svc__head{display:flex;justify-content:space-between;align-items:flex-end;
  border-bottom:2px solid var(--ink);padding-bottom:18px;margin-bottom:8px;gap:20px;}
.c-svc__cnt{font-family:'Space Grotesk',sans-serif;font-size:12px;color:var(--muted);letter-spacing:.1em;flex:none;}
.c-svc__row{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;
  padding:56px 0;border-bottom:1px solid var(--line);}
.c-svc__row:nth-of-type(even) .c-svc__imgwrap{order:2;}
.c-svc__imgwrap{position:relative;}
.c-svc__img{position:relative;aspect-ratio:16/11;background:#E3EAF2;border-radius:6px;overflow:hidden;}
.c-svc__img img{width:100%;height:100%;object-fit:cover;display:block;}
.c-svc__deco{position:absolute;width:118px;height:118px;z-index:-1;
  background-image:linear-gradient(var(--main) 1px,transparent 1px),linear-gradient(90deg,var(--main) 1px,transparent 1px);
  background-size:18px 18px;opacity:.18;}
.c-svc__row:nth-of-type(odd) .c-svc__deco{right:-16px;bottom:-16px;}
.c-svc__row:nth-of-type(even) .c-svc__deco{left:-16px;top:-16px;}
.c-svc__n{font-family:'Space Grotesk',sans-serif;font-size:clamp(40px,5vw,68px);font-weight:700;
  color:transparent;-webkit-text-stroke:1.4px var(--main);line-height:.9;display:block;}
.c-svc__txt h3{font-size:clamp(20px,2.6vw,28px);font-weight:900;margin:12px 0 12px;}
.c-svc__txt p{color:var(--muted);font-size:15.5px;margin:0;max-width:28em;}
@media(max-width:860px){
  /* grid のまま1カラムにすると暗黙カラムが生まれて右にはみ出すため、flex に倒す */
  .c-svc__row{display:flex;flex-direction:column;gap:22px;padding:38px 0;}
  .c-svc__row:nth-of-type(even) .c-svc__imgwrap{order:0;}
  .c-svc__txt p{max-width:none;}
}

/* ============ 特化の宣言（全幅バンド・単文） ============ */
.c-band{background:var(--main);color:#fff;padding:88px 0;position:relative;overflow:hidden;}
.c-band::before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:rgba(255,255,255,.18);}
.c-band__inner{width:min(980px,calc(100% - 48px));margin:0 auto;position:relative;}
.c-band__decl{font-size:clamp(24px,4.6vw,50px);font-weight:900;line-height:1.4;margin:0;}
.c-band__decl .mk{color:#FFB483;}
.c-band__txt{margin:22px 0 0;font-size:16px;color:rgba(255,255,255,.9);max-width:36em;}
@media(max-width:768px){ .c-band{padding:60px 0;} }

/* ============ 提携先の紹介（ロープ工事＝明誠様） ============ */
.c-partner{background:var(--bg2);padding:72px 0;}
.c-partner__inner{width:min(var(--maxw),calc(100% - 48px));margin:0 auto;}
.c-partner__card{background:#fff;border:1px solid var(--line);border-radius:14px;
  padding:34px 38px;display:grid;grid-template-columns:280px 1fr;gap:0 40px;align-items:center;
  box-shadow:0 24px 48px -40px rgba(11,79,158,.55);}
.c-partner__logo{display:flex;align-items:center;justify-content:center;padding:10px 0;}
.c-partner__logo img{width:100%;max-width:260px;height:auto;display:block;}
.c-partner__lbl{display:inline-flex;align-items:center;gap:10px;font-family:'Space Grotesk',sans-serif;
  font-size:10.5px;letter-spacing:.22em;color:var(--accent);font-weight:700;text-transform:uppercase;}
.c-partner__lbl::before{content:"";width:26px;height:2px;background:var(--accent);}
.c-partner h2{font-size:clamp(20px,2.8vw,28px);font-weight:900;line-height:1.5;margin:12px 0 12px;}
.c-partner p{font-size:15px;color:var(--muted);line-height:1.95;margin:0 0 8px;max-width:38em;}
.c-partner__meta{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 20px;}
.c-partner__meta span{font-size:11.5px;font-weight:700;color:var(--main);
  border:1px solid rgba(11,79,158,.3);border-radius:999px;padding:5px 12px;}
.c-partner__link{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:15px;
  color:#fff;background:var(--main);border-radius:8px;padding:14px 24px;text-decoration:none;}
.c-partner__link::after{content:"↗";}
.c-partner__link:hover{filter:brightness(1.08);}
.c-partner__note{font-size:12px;color:var(--muted);margin:12px 0 0;}
@media(max-width:820px){
  .c-partner{padding:52px 0;}
  .c-partner__card{grid-template-columns:1fr;gap:22px;padding:26px 22px;}
  .c-partner__logo{justify-content:flex-start;}
  .c-partner__logo img{max-width:220px;}
}

/* ============ 仕上がりの基準（sec-craft-07 を移植） ============ */
.c-detail{background:#071B2E;color:#EAF2FB;}
.c-detail__head{width:min(var(--maxw),calc(100% - 48px));margin:0 auto;padding:96px 0 30px;}
.c-detail__head .eyebrow{color:#7FB9EF;}
.c-detail__head .h2{color:#fff;}
.c-detail__head .note{color:#9FB4C9;}
.c-detail__pin{position:relative;height:100vh;min-height:600px;overflow:hidden;}
.c-detail__photo{position:absolute;inset:5vh 5vw;background:url('https://k-tech.works/wp-content/uploads/2026/09/case-2.jpg') center/cover;
  filter:brightness(.36) saturate(.8);border-radius:4px;}
.c-detail__loupe{position:absolute;inset:5vh 5vw;background:url('https://k-tech.works/wp-content/uploads/2026/09/case-2.jpg') center/190%;
  clip-path:circle(14% at 26% 34%);filter:brightness(1.06) contrast(1.05);border-radius:4px;}
.c-detail__cap{position:absolute;left:9vw;bottom:10vh;width:min(440px,78vw);z-index:4;}
.c-detail__item{position:absolute;left:0;bottom:0;width:100%;opacity:0;visibility:hidden;transition:opacity .4s;}
.c-detail__item.is-on{opacity:1;visibility:visible;position:relative;}
.c-detail__no{font-family:'Space Grotesk',sans-serif;font-size:11px;letter-spacing:.28em;color:var(--accent);font-weight:700;}
.c-detail__item h3{font-size:clamp(20px,2.6vw,30px);font-weight:900;margin:10px 0 8px;line-height:1.5;color:#fff;}
.c-detail__item p{font-size:14px;color:#9FB4C9;margin:0;}
.c-detail__hint{position:absolute;right:7vw;bottom:9vh;writing-mode:vertical-rl;font-size:10px;
  letter-spacing:.38em;color:rgba(234,242,251,.5);z-index:4;font-family:'Space Grotesk',sans-serif;}
.c-detail__close{width:min(var(--maxw),calc(100% - 48px));margin:0 auto;padding:44px 0 96px;
  font-size:clamp(16px,2.1vw,21px);font-weight:700;color:#fff;max-width:34em;}
.c-detail__link{display:inline-flex;align-items:center;gap:10px;margin-top:22px;color:#FFB483;
  font-size:15px;font-weight:700;text-decoration:none;border-bottom:2px solid rgba(255,180,131,.5);
  padding-bottom:4px;}
.c-detail__link::after{content:"→";}
.c-detail__link:hover{border-bottom-color:#FFB483;}
@media(max-width:680px){
  .c-detail__photo,.c-detail__loupe{inset:3vh 4vw;}
  .c-detail__cap{left:7vw;bottom:8vh;max-width:80vw;}
  .c-detail__hint{display:none;}
  .c-detail__head{padding:64px 0 24px;}
  .c-detail__close{padding:32px 0 64px;}
}

/* ============ 数字と体制（sec-numbers-02 を移植・ページ唯一の抜き） ============ */
.c-num{background:var(--pale);}
.c-num__field{position:relative;margin-top:34px;min-height:540px;}
.c-num__stat{position:absolute;}
.c-num__v{font-family:'Space Grotesk',sans-serif;font-weight:700;line-height:.84;letter-spacing:-.02em;
  display:flex;align-items:flex-start;color:var(--main);}
.c-num__v .u{font-size:.24em;color:var(--accent);font-weight:700;margin-top:.6em;margin-left:.14em;
  font-family:'Zen Kaku Gothic New',sans-serif;letter-spacing:0;}
.c-num__plus{font-size:.46em;color:var(--sub);margin:0 .04em;vertical-align:.18em;}
.c-num__l{font-size:13px;color:var(--muted);letter-spacing:.04em;margin-top:8px;max-width:20em;font-weight:700;}
.c-num__l::before{content:"— ";color:var(--accent);}
.c-num__s1{left:-1%;top:0;}                     .c-num__s1 .c-num__v{font-size:clamp(104px,20vw,258px);}
.c-num__s2{right:1%;top:104px;text-align:right;} .c-num__s2 .c-num__v{font-size:clamp(64px,11vw,140px);justify-content:flex-end;color:var(--accent);}
.c-num__s2 .c-num__l::before{content:"";}
.c-num__s3{left:17%;top:312px;}                  .c-num__s3 .c-num__v{font-size:clamp(66px,12vw,150px);}
.c-num__s4{right:6%;top:382px;}                  .c-num__s4 .c-num__v{font-size:clamp(48px,7.4vw,96px);color:transparent;-webkit-text-stroke:1.5px var(--main);}
.c-num__rule{position:absolute;left:0;right:0;top:286px;height:1px;background:rgba(11,79,158,.24);transform-origin:left;}
.c-num__tag{position:absolute;right:0;top:-8px;writing-mode:vertical-rl;font-family:'Space Grotesk',sans-serif;
  font-size:11px;letter-spacing:.28em;color:var(--muted);text-transform:uppercase;font-weight:700;}
.c-num__facts{margin-top:34px;border-top:1px solid rgba(11,79,158,.24);display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));gap:0 40px;}
.c-num__facts div{padding:18px 0;border-bottom:1px solid rgba(11,79,158,.18);display:flex;gap:18px;align-items:baseline;}
.c-num__facts dt,.c-num__facts .k{font-family:'Space Grotesk',sans-serif;font-size:10.5px;letter-spacing:.2em;
  color:var(--main);font-weight:700;flex:none;width:9em;}
.c-num__facts .v{font-size:15px;font-weight:700;margin:0;}
@media(max-width:860px){
  .c-num__field{min-height:0;display:grid;gap:34px;}
  .c-num__stat{position:static!important;text-align:left!important;}
  .c-num__s2 .c-num__v{justify-content:flex-start;}
  .c-num__rule,.c-num__tag{display:none;}
  .c-num__s1 .c-num__v{font-size:92px;} .c-num__s2 .c-num__v{font-size:70px;}
  .c-num__s3 .c-num__v{font-size:72px;} .c-num__s4 .c-num__v{font-size:56px;}
  .c-num__facts{grid-template-columns:1fr;}
  .c-num__facts .k{width:7em;}
}

/* ============ 代表メッセージ（sec-message-03 を移植） ============ */
.c-msg{background:var(--bg);}
.c-msg__spread{display:grid;grid-template-columns:292px 1fr;gap:0 60px;align-items:start;}
.c-msg__left{position:relative;}
.c-msg__vlabel{position:absolute;left:-12px;top:0;writing-mode:vertical-rl;font-family:'Space Grotesk',sans-serif;
  font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:var(--main);font-weight:700;}
.c-msg__portrait{position:relative;margin-left:34px;aspect-ratio:4/5;overflow:hidden;border-radius:4px;}
.c-msg__portrait picture{position:absolute;inset:0;}
.c-msg__portrait img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top;display:block;}
.c-msg__meta{margin:20px 0 0 34px;}
.c-msg__role{font-family:'Space Grotesk',sans-serif;font-size:10.5px;letter-spacing:.14em;color:var(--muted);
  text-transform:uppercase;font-weight:700;}
.c-msg__nm{font-size:22px;font-weight:900;margin-top:4px;letter-spacing:.06em;}
.c-msg__right{padding-top:4px;}
.c-msg__kicker{font-family:'Space Grotesk',sans-serif;font-size:11px;letter-spacing:.28em;color:var(--main);
  text-transform:uppercase;border-bottom:1px solid var(--ink);padding-bottom:13px;font-weight:700;}
.c-msg__body{font-size:clamp(15.5px,1.5vw,17.5px);line-height:2.1;margin-top:28px;max-width:32em;}
.c-msg__body p{margin:0 0 1.5em;}
.c-msg__drop{float:left;font-weight:900;font-size:clamp(66px,8vw,104px);line-height:.78;
  margin:8px 16px -4px 0;color:var(--main);}
.c-msg__leadline{font-size:clamp(19px,2.3vw,26px);font-weight:900;line-height:1.6;}
.c-msg__quote{margin:34px 0;padding:20px 0 20px 24px;border-left:4px solid var(--accent);
  font-size:clamp(19px,2.5vw,27px);font-weight:900;line-height:1.65;color:var(--main);}
.c-msg__sign{margin-top:38px;display:flex;align-items:center;gap:20px;flex-wrap:wrap;}
.c-msg__signline{height:3px;width:0;background:var(--main);border-radius:2px;}
.c-msg__signtx{font-size:14px;font-weight:700;color:var(--muted);}
@media(max-width:860px){
  .c-msg__spread{grid-template-columns:1fr;gap:30px;}
  .c-msg__vlabel{position:static;writing-mode:horizontal-tb;margin-bottom:10px;display:block;}
  .c-msg__portrait{margin-left:0;max-width:236px;}
  .c-msg__meta{margin-left:0;}
}

/* ============ 施工の流れ（sec-process-07 を移植） ============ */
.c-flow{background:var(--bg2);}
.c-flow__head{text-align:center;margin-bottom:38px;}
.c-flow__head .note{max-width:34em;margin-left:auto;margin-right:auto;}
.c-flow__track{background:#fff;border:1px solid var(--line);border-radius:14px;
  box-shadow:0 28px 56px -38px rgba(11,79,158,.5);overflow:hidden;max-width:960px;margin:0 auto;}
.c-flow__th{display:flex;justify-content:space-between;align-items:center;gap:14px;
  padding:16px 24px;border-bottom:1px solid var(--line);background:#FAFCFE;flex-wrap:wrap;}
.c-flow__th .k{font-family:'Space Grotesk',sans-serif;font-size:11.5px;letter-spacing:.18em;color:var(--main);font-weight:700;}
.c-flow__th .s{font-size:12.5px;color:var(--muted);}
.c-flow__body{display:grid;grid-template-columns:1fr 236px;}
.c-flow__steps{position:relative;padding:26px 24px 30px 60px;}
.c-flow__rail{position:absolute;left:34px;top:44px;bottom:44px;width:3px;background:var(--line);border-radius:2px;}
.c-flow__fill{position:absolute;left:0;top:0;width:100%;height:100%;background:var(--main);border-radius:2px;transform-origin:top;}
.c-flow__step{position:relative;padding:13px 0 13px 12px;}
.c-flow__dot{position:absolute;left:-32px;top:19px;width:18px;height:18px;border-radius:50%;
  background:#fff;border:3px solid var(--main);}
.c-flow__step--now .c-flow__dot{border-color:var(--accent);}
.c-flow__step--now .c-flow__dot::after{content:'';position:absolute;inset:3px;border-radius:50%;background:var(--accent);}
.c-flow__pulse{position:absolute;left:-32px;top:19px;width:18px;height:18px;border-radius:50%;
  border:2px solid var(--accent);animation:ktPulse 2.2s ease-out infinite;}
@keyframes ktPulse{0%{transform:scale(1);opacity:.85;}100%{transform:scale(2.5);opacity:0;}}
@media (prefers-reduced-motion:reduce){ .c-flow__pulse{animation:none;opacity:.4;} }
.c-flow__tt{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.c-flow__step h3{font-size:clamp(15px,1.9vw,18px);font-weight:900;margin:0;letter-spacing:.04em;}
.c-flow__chip{font-size:10.5px;letter-spacing:.1em;background:var(--accent);color:#14202E;
  padding:3px 11px;border-radius:999px;font-weight:700;}
.c-flow__step p{font-size:13px;color:var(--muted);margin:4px 0 0;max-width:36em;}
.c-flow__side{border-left:1px solid var(--line);padding:26px 22px;background:#FAFCFE;
  display:flex;flex-direction:column;gap:18px;}
.c-flow__bx .k{font-family:'Space Grotesk',sans-serif;font-size:9.5px;letter-spacing:.24em;color:var(--main);
  text-transform:uppercase;display:block;margin-bottom:4px;font-weight:700;}
.c-flow__bx .v{font-size:15.5px;font-weight:900;}
.c-flow__bx .s{font-size:11.5px;color:var(--muted);display:block;margin-top:2px;line-height:1.7;}
.c-flow__memo{margin-top:auto;border:1px dashed var(--line);border-radius:10px;padding:12px 14px;
  font-size:11.5px;color:var(--muted);line-height:1.8;}
.c-flow__memo b{color:var(--ink);}
@media(max-width:760px){ .c-flow__body{grid-template-columns:1fr;} .c-flow__side{border-left:none;border-top:1px solid var(--line);} }

/* ============ FAQ（sec-faq-03 を移植） ============ */
.c-faq{background:var(--bg);}
.c-faq__layout{display:grid;grid-template-columns:.78fr 1.22fr;gap:48px;align-items:start;}
.c-faq__side{position:sticky;top:96px;}
.c-faq__acc{border-top:1px solid var(--line);}
.c-faq__item{border-bottom:1px solid var(--line);}
.c-faq__q{display:grid;grid-template-columns:46px 1fr 28px;align-items:center;gap:14px;
  padding:22px 6px;cursor:pointer;width:100%;background:none;border:0;text-align:left;
  font-family:inherit;color:inherit;}
.c-faq__no{font-family:'Space Grotesk',sans-serif;font-size:13px;color:var(--main);font-weight:700;}
.c-faq__tx{font-weight:700;font-size:16px;line-height:1.7;}
.c-faq__ic{position:relative;width:18px;height:18px;justify-self:end;}
.c-faq__ic::before,.c-faq__ic::after{content:"";position:absolute;background:var(--main);transition:.3s;}
.c-faq__ic::before{top:8px;left:0;width:18px;height:2px;}
.c-faq__ic::after{top:0;left:8px;width:2px;height:18px;}
.c-faq__item.is-open .c-faq__ic::after{transform:rotate(90deg);opacity:0;}
.c-faq__a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s ease;}
.c-faq__item.is-open .c-faq__a{grid-template-rows:1fr;}
.c-faq__a > div{overflow:hidden;}
.c-faq__a p{margin:0;padding:0 6px 24px 60px;color:var(--muted);font-size:14.5px;line-height:1.95;}
@media(max-width:760px){
  .c-faq__layout{grid-template-columns:1fr;gap:26px;}
  .c-faq__side{position:static;}
  .c-faq__a p{padding-left:6px;}
}

/* ============ お知らせ（全幅バンド＋点線リスト） ============ */
.c-news{background:var(--pale);}
.c-news__top{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;}
.c-news__lbl{display:flex;align-items:center;gap:14px;font-family:'Space Grotesk',sans-serif;
  font-size:11.5px;letter-spacing:.28em;text-transform:uppercase;color:var(--main);font-weight:700;
  padding-bottom:14px;border-bottom:1px solid rgba(11,79,158,.3);margin-bottom:18px;}
.c-news__lbl::after{content:"";flex:1;height:1px;background:rgba(11,79,158,.3);}
.c-news__hd{font-size:clamp(24px,3.4vw,36px);font-weight:900;line-height:1.35;margin:0;}
.c-news__hd .mk{color:var(--main);}
.c-news__all{display:inline-flex;align-items:center;gap:12px;color:var(--ink);font-weight:700;
  text-decoration:none;font-size:14px;}
.c-news__all .circ{width:44px;height:44px;border:1px dashed var(--main);border-radius:50%;
  display:flex;align-items:center;justify-content:center;color:var(--main);}
.c-news__list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 44px;margin-top:26px;}
.c-news__row{display:grid;grid-template-columns:120px 1fr;gap:18px;padding:20px 0;
  border-bottom:1px dashed rgba(11,79,158,.3);text-decoration:none;color:inherit;align-items:center;}
.c-news__row img{width:120px;height:82px;object-fit:cover;border-radius:8px;display:block;}
.c-news__cat{font-size:10.5px;border:1px solid rgba(11,79,158,.34);border-radius:20px;
  padding:3px 12px;color:var(--main);font-weight:700;display:inline-block;margin-bottom:7px;}
.c-news__row h3{font-weight:700;font-size:15.5px;margin:0;line-height:1.65;}
@media(max-width:820px){ .c-news__list{grid-template-columns:1fr;} }

/* ============ 最終CTA（sec-cta-01 を移植） ============ */
.c-cta{position:relative;min-height:88vh;display:flex;align-items:center;justify-content:center;
  overflow:hidden;text-align:center;background:var(--dark);}
.c-cta__bg{position:absolute;inset:0;}
.c-cta__bg img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.86);}
.c-cta__ov{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,36,63,.80) 0%,rgba(8,36,63,.60) 44%,rgba(8,36,63,.90) 100%);}
.c-cta__glow{position:absolute;width:58vw;height:58vw;border-radius:50%;filter:blur(92px);
  mix-blend-mode:screen;opacity:.4;background:radial-gradient(circle,var(--sub),transparent 65%);left:8%;top:8%;}
.c-cta__glow2{background:radial-gradient(circle,var(--accent),transparent 65%);right:6%;bottom:4%;left:auto;top:auto;opacity:.3;}
.c-cta__inner{position:relative;z-index:3;width:min(820px,calc(100% - 44px));color:#fff;padding:96px 0;}
.c-cta__inner .eyebrow{color:#8FC6F5;display:inline-flex;align-items:center;gap:12px;justify-content:center;}
.c-cta__inner .eyebrow::before,.c-cta__inner .eyebrow::after{content:"";width:28px;height:2px;background:#8FC6F5;}
.c-cta h2{font-weight:900;font-size:clamp(27px,5vw,56px);line-height:1.42;margin:22px 0 0;
  text-shadow:0 3px 18px rgba(0,0,0,.75),0 6px 40px rgba(0,0,0,.5);}
.c-cta h2 .mk{color:#FFB483;}
.c-cta__lead{color:#fff;font-size:16.5px;margin:24px auto 0;max-width:32em;line-height:2;
  text-shadow:0 2px 12px rgba(0,0,0,.7);}
.c-cta__btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:38px;}
.c-cta__sub{margin-top:24px;font-size:12.5px;letter-spacing:.06em;color:rgba(255,255,255,.82);
  text-shadow:0 2px 10px rgba(0,0,0,.7);}
@media(max-width:768px){ .c-cta{min-height:0;} .c-cta__inner{padding:70px 0;} }

/* ============ フッター（parts: footer-08 を移植・地図一体＋NAP） ============ */
.c-ft{background:var(--bg2);border-top:1px solid var(--line);}
.c-ft__grid{display:grid;grid-template-columns:1.05fr 1fr;min-height:430px;}
.c-ft__map{position:relative;background:#E3EAF2;min-height:430px;}
.c-ft__map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;}
.c-ft__nap{padding:48px 52px 42px;display:flex;flex-direction:column;}
.c-ft__lb{font-family:'Space Grotesk',sans-serif;font-size:10px;letter-spacing:.3em;color:var(--accent);font-weight:700;}
.c-ft__nap h2{font-size:26px;font-weight:900;letter-spacing:.08em;margin:10px 0 4px;}
.c-ft__yomi{font-family:'Space Grotesk',sans-serif;font-size:9.5px;letter-spacing:.24em;color:var(--muted);font-weight:700;}
.c-ft__dl{margin:24px 0 0;display:grid;grid-template-columns:auto 1fr;gap:0 20px;}
.c-ft__dl dt{font-family:'Space Grotesk',sans-serif;font-size:9.5px;letter-spacing:.18em;color:var(--main);
  padding:12px 0;border-bottom:1px solid var(--line);font-weight:700;align-content:center;}
.c-ft__dl dd{margin:0;font-size:14px;padding:12px 0;border-bottom:1px solid var(--line);line-height:1.8;}
.c-ft__dl dd a.tel{font-family:'Space Grotesk',sans-serif;font-size:21px;font-weight:700;color:var(--ink);
  text-decoration:none;letter-spacing:.02em;}
.c-ft__dl dd small{color:var(--muted);font-size:11.5px;display:block;}
.c-ft__acts{display:flex;gap:12px;margin-top:26px;flex-wrap:wrap;}
.c-ft__acts a{flex:1 1 160px;display:flex;align-items:center;justify-content:center;gap:8px;
  padding:15px 10px;border-radius:10px;text-decoration:none;font-weight:900;font-size:14px;letter-spacing:.04em;}
.c-ft__acts .go{background:var(--main);color:#fff;}
.c-ft__acts .ln{border:1.5px solid var(--ink);color:var(--ink);}
.c-ft__low{border-top:1px solid var(--line);}
.c-ft__lowin{max-width:1280px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;
  gap:16px;padding:18px 24px;flex-wrap:wrap;}
.c-ft__low nav{display:flex;gap:20px;flex-wrap:wrap;}
.c-ft__low a{color:var(--muted);text-decoration:none;font-size:12.5px;}
.c-ft__low a:hover{color:var(--ink);}
.c-ft__cp{font-family:'Space Grotesk',sans-serif;font-size:10px;letter-spacing:.14em;color:var(--muted);}
@media(max-width:980px){
  .c-ft__grid{grid-template-columns:1fr;}
  .c-ft__map{min-height:280px;}
  .c-ft__nap{padding:36px 24px;}
}

/* ============================================================
   固定ページ共通（page-hero・本文ブロック）
   トップの設計システム（_shared.css 冒頭）を継承する。ここでは色・書体を新造しない。
   ============================================================ */
.wrap{width:min(1120px,calc(100% - 48px));margin:0 auto;}

/* --- ページヒーロー（タイトル帯。FVはトップ専用） --- */
.page-hero{position:relative;overflow:hidden;background:var(--main);color:#fff;padding:96px 0 72px;}
.page-hero::before{content:"";position:absolute;inset:0;
  background:linear-gradient(105deg,rgba(8,36,63,.92) 0%,rgba(11,79,158,.80) 52%,rgba(8,36,63,.92) 100%);}
.page-hero h1{font-size:clamp(26px,4.4vw,44px);font-weight:900;line-height:1.34;margin:0;letter-spacing:.02em;}
.page-hero .sub{margin:16px 0 0;font-size:15.5px;color:rgba(255,255,255,.9);max-width:34em;}
.page-hero .crumb{font-family:'Space Grotesk',sans-serif;font-size:10.5px;letter-spacing:.18em;
  color:rgba(255,255,255,.62);margin:0 0 20px;}
.page-hero .crumb a{color:rgba(255,255,255,.85);text-decoration:none;}
.page-hero .crumb a:hover{text-decoration:underline;}
@media(max-width:768px){ .page-hero{padding:64px 0 52px;} }

/* --- 固定ページの本文セクション --- */
.pg{padding:88px 0;}
.pg--pale{background:var(--pale);}
.pg--soft{background:var(--bg2);}
.pg__lede{font-size:clamp(17px,2.2vw,22px);font-weight:700;line-height:1.9;max-width:32em;margin:0 0 8px;}
.pg__txt{font-size:16px;line-height:2;color:#33445A;max-width:38em;}
.pg__txt p{margin:0 0 1.4em;}
@media(max-width:768px){ .pg{padding:56px 0;} }

/* --- 罫線インデックス（会社情報・仕様の表） --- */
.tbl{width:100%;border-collapse:collapse;margin-top:8px;}
.tbl th,.tbl td{text-align:left;padding:16px 4px;border-bottom:1px solid var(--line);
  font-size:15px;vertical-align:top;line-height:1.9;}
.tbl th{width:11em;font-weight:700;color:var(--main);white-space:nowrap;}
.tbl td small{display:block;color:var(--muted);font-size:12.5px;margin-top:4px;}
@media(max-width:620px){
  .tbl th,.tbl td{display:block;width:auto;border-bottom:0;padding:10px 4px 0;}
  .tbl td{padding:0 4px 14px;border-bottom:1px solid var(--line);}
}

/* --- 定義リスト型の本文ブロック（サービス詳細） --- */
.deflist{margin:26px 0 0;border-top:1px solid var(--line);}
.deflist__item{padding:30px 0;border-bottom:1px solid var(--line);
  display:grid;grid-template-columns:120px 1fr;gap:0 28px;align-items:start;}
.deflist__no{font-family:'Space Grotesk',sans-serif;font-size:clamp(30px,4vw,50px);font-weight:700;
  color:transparent;-webkit-text-stroke:1.3px var(--main);line-height:.9;}
.deflist__item h3{font-size:clamp(18px,2.3vw,24px);font-weight:900;margin:0 0 10px;}
.deflist__item p{margin:0;color:var(--muted);font-size:15.5px;line-height:1.95;max-width:38em;}
.deflist__item p + p{margin-top:.9em;}
@media(max-width:680px){ .deflist__item{grid-template-columns:1fr;gap:10px;} }

/* --- フォーム枠（contact） --- */
.formbox{border:1px solid var(--line);border-radius:14px;background:#fff;padding:28px;
  box-shadow:0 24px 48px -40px rgba(11,79,158,.6);}
.formbox iframe{width:100%;min-height:760px;border:0;display:block;}
.formbox__note{font-size:13px;color:var(--muted);margin:0 0 18px;line-height:1.9;}
.contact-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:44px;align-items:start;}
@media(max-width:860px){ .contact-grid{grid-template-columns:1fr;gap:28px;} .formbox{padding:20px;} }

/* --- 固定ページ用の小さなCTA帯 --- */
.pgcta{background:var(--main);color:#fff;padding:64px 0;text-align:center;}
.pgcta h2{font-size:clamp(21px,3.2vw,32px);font-weight:900;margin:0 0 10px;line-height:1.5;}
.pgcta p{margin:0 0 26px;color:rgba(255,255,255,.88);font-size:15px;}
.pgcta .btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
.pgcta .tel{color:#fff;text-decoration:none;font-family:'Space Grotesk',sans-serif;
  font-size:24px;font-weight:700;display:inline-flex;align-items:center;padding:14px 22px;
  border:1.5px solid rgba(255,255,255,.55);border-radius:8px;}

/* --- プライバシー等の長文 --- */
.legal h2{font-size:clamp(18px,2.3vw,22px);font-weight:900;margin:36px 0 10px;
  padding-left:14px;border-left:4px solid var(--main);}
.legal p,.legal li{font-size:15px;line-height:2;color:#33445A;}
.legal ul,.legal ol{padding-left:1.4em;margin:0 0 1.2em;}
.legal li{margin-bottom:.4em;}

/* --- 施工実績（before / during / after の3点記録） --- */
.works{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;margin-top:34px;}
.works__item{margin:0;}
.works__item img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:6px;display:block;
  border:1px solid var(--line);}
.works__item figcaption{margin-top:14px;}
.works__step{display:block;font-family:'Space Grotesk',sans-serif;font-size:10.5px;
  letter-spacing:.2em;color:var(--accent);font-weight:700;}
.works__item figcaption b{display:block;font-size:17px;font-weight:900;margin:6px 0 6px;}
.works__item figcaption span:last-child{display:block;font-size:13.5px;color:var(--muted);line-height:1.9;}
@media(max-width:860px){ .works{grid-template-columns:1fr;gap:30px;} }

/* --- 実績ページの全幅写真（フルブリード寄りの1枚） --- */
.works__wide{margin:52px 0 0;}
.works__wide img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:6px;display:block;
  border:1px solid var(--line);}
.works__wide figcaption{margin-top:12px;font-size:13.5px;color:var(--muted);line-height:1.9;max-width:44em;}

/* --- お問い合わせフォーム（Fluent Forms）をサイトのデザインに合わせる --- */
.frm-fluent-form .ff-el-input--label label{font-weight:700;font-size:14.5px;color:var(--ink);margin-bottom:6px;}
.frm-fluent-form .ff-el-input--label .ff-el-is-required span{color:var(--accent);}
.frm-fluent-form .ff-el-group{margin-bottom:20px;}
.frm-fluent-form .ff-el-form-control{
  width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;
  padding:13px 14px;font-size:15.5px;font-family:inherit;color:var(--ink);line-height:1.7;}
.frm-fluent-form .ff-el-form-control::placeholder{color:#9AAABB;}
.frm-fluent-form .ff-el-form-control:focus{
  border-color:var(--sub);outline:3px solid rgba(30,136,229,.2);outline-offset:0;box-shadow:none;}
.frm-fluent-form textarea.ff-el-form-control{min-height:170px;}
.frm-fluent-form .ff-el-form-check-label{font-size:15px;}
/* 送信ボタン：押せることが一目で分かる色にする */
.frm-fluent-form .ff-btn-submit,
.frm-fluent-form button[type="submit"]{
  background:var(--accent) !important;color:#14202E !important;border:0 !important;
  border-radius:8px !important;font-weight:700 !important;font-size:16px !important;
  padding:17px 36px !important;min-width:220px;cursor:pointer;
  box-shadow:0 12px 24px -14px rgba(255,122,61,.9);transition:transform .2s,filter .2s;}
.frm-fluent-form .ff-btn-submit:hover,
.frm-fluent-form button[type="submit"]:hover{filter:brightness(1.05);transform:translateY(-2px);}
.frm-fluent-form .ff-btn-submit:focus-visible,
.frm-fluent-form button[type="submit"]:focus-visible{outline:3px solid var(--main);outline-offset:3px;}
.frm-fluent-form .ff-btn-submit:disabled{opacity:.45;cursor:not-allowed;transform:none;}
.frm-fluent-form .ff-el-is-error .ff-el-form-control{border-color:#D64545;}
.frm-fluent-form .error-text,.frm-fluent-form .text-danger{color:#D64545;font-size:13px;margin-top:6px;}
@media(max-width:620px){
  .frm-fluent-form .ff-btn-submit,
  .frm-fluent-form button[type="submit"]{width:100%;min-width:0;}
}


/* ============================================================
   ブログCSS互換：blog-shared.css が前提とするトークン名を本サイトのパレットへ写像
   ============================================================ */
:root{
  --ai:#0B4F9E; --ai2:#1E88E5; --shu:#FF7A3D; --yama:#0B4F9E; --yama2:#1E88E5;
  --kami:#FFFFFF; --kami2:#F5F8FC; --body:#33445A;
}

/* ===== blog-shared.css（skill同梱・SPEC §4 blog.enabled:true） ===== */
/* blog-shared.css — ブログ（個別/一覧）・サイドバー・page-hero(marquee) の共通CSS断片。
   STEP 7 で各サイトの assets/css/_shared.css の末尾に追記して使う。
   前提トークン: --ai --ai2 --shu --yama --yama2 --kami --kami2 --ink --body --muted --line。
   ベースの .page-hero{...} は _shared.css に既にある前提（ここは marquee 追加と post/sidebar/archive）。 */

/* ============ 固定ページ見出しヘッダー：右→左ギャラリー＋カラーオーバーレイ ============ */
.page-hero .wrap{ position:relative; z-index:3; }
.page-hero::before{ z-index:2; }
.page-hero__bg{ position:absolute; inset:0; z-index:0; overflow:hidden; display:flex; align-items:center; }
.page-hero__bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(105deg, rgba(20,59,107,.90) 0%, rgba(31,95,166,.78) 50%, rgba(20,59,107,.90) 100%); }
.page-hero__mq{ display:flex; width:max-content; height:100%; will-change:transform; animation:page-hero-mq 64s linear infinite; }
.page-hero__mq img{ height:100%; width:auto; aspect-ratio:4/3; object-fit:cover; display:block; flex:0 0 auto; }
@keyframes page-hero-mq{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion: reduce){ .page-hero__mq{ animation:none; } }

/* ============ 投稿（single）ページ ============ */
.post-hero{ position:relative; overflow:hidden; background:#143b6b; color:#F1F4EF; padding:104px 0 70px; }
.post-hero__bg{ position:absolute; inset:0; z-index:0; }
.post-hero__bg img{ width:100%; height:100%; object-fit:cover; display:block; }
.post-hero__bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(160deg, rgba(20,59,107,.74) 0%, rgba(15,40,80,.92) 100%); }
.post-hero::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:5px; background:linear-gradient(90deg,var(--shu),var(--yama)); z-index:2; }
.post-hero .wrap{ position:relative; z-index:1; max-width:860px; }
.post-hero__meta{ display:flex; align-items:center; gap:12px; margin-bottom:18px; }
.post-hero__date{ font-family:'Space Grotesk',monospace; font-size:13px; letter-spacing:.06em; color:rgba(241,244,239,.82); }
.post-hero__cat{ font-size:11px; font-weight:700; letter-spacing:.08em; padding:4px 12px; border-radius:999px; color:#fff; background:var(--ai); }  /* 既定色（WPでis-*が付かない時用）。is-*が上書き */
.post-hero h1{ font-family:'Shippori Mincho',serif; font-weight:800; font-size:clamp(25px,3.8vw,40px); line-height:1.55; letter-spacing:.04em; margin:0; color:#F6F8F4; }
.post-hero .crumb{ font-family:'Space Grotesk',monospace; font-size:10.5px; letter-spacing:.18em; color:rgba(241,244,239,.6); margin:24px 0 0; }
.post-hero .crumb a{ color:rgba(241,244,239,.82); text-decoration:none; }

/* 投稿レイアウト：本文 + サイドバー */
.post-wrap{ display:grid; grid-template-columns:minmax(0,1fr) 312px; gap:52px; max-width:1140px; margin:0 auto; padding:56px 24px 96px; align-items:start; }
.post-main{ min-width:0; }
.post-figure{ margin:0 0 36px; }
.post-figure img{ width:100%; border-radius:14px; box-shadow:0 24px 50px -28px rgba(20,30,46,.5); display:block; }
.post-body p{ font-size:15.5px; line-height:2.05; color:var(--body); margin:0 0 1.7em; }
.post-body h2{ font-family:'Shippori Mincho',serif; font-size:clamp(19px,2.6vw,26px); font-weight:700; color:var(--ink); line-height:1.6; margin:2.4em 0 .9em; padding-left:16px; border-left:4px solid var(--yama); }
.post-body h3{ font-family:'Shippori Mincho',serif; font-size:clamp(16px,2vw,20px); font-weight:700; color:var(--ink); margin:2em 0 .7em; }
.post-body a{ color:var(--shu); font-weight:700; }
.post-body .post-lead{ font-size:16.5px; color:var(--ink); line-height:2; margin-bottom:1.9em; }
.post-foot{ margin:44px 0 0; }
.post-foot__bar{ border-top:1px solid var(--line); padding-top:28px; display:flex; gap:16px; align-items:center; justify-content:space-between; flex-wrap:wrap; }
.post-foot__back{ display:inline-flex; align-items:center; gap:8px; text-decoration:none; font-weight:700; font-size:14px; color:var(--ink); }
.post-foot__back:hover{ color:var(--shu); }
.post-foot__cta{ display:inline-block; background:var(--ai); color:var(--kami); font-weight:700; font-size:13.5px; padding:12px 26px; border-radius:999px; text-decoration:none; transition:background .25s; }
.post-foot__cta:hover{ background:var(--shu); }

/* ============ サイドバー・ウィジェット ============ */
.post-side{ position:sticky; top:88px; display:flex; flex-direction:column; gap:26px; }
.widget{ background:#fff; border:1px solid var(--line); border-radius:14px; padding:22px 22px 24px; }
.widget__ttl{ font-family:'Shippori Mincho',serif; font-size:16px; font-weight:700; color:var(--ink); margin:0 0 16px; padding-left:12px; border-left:4px solid var(--yama); letter-spacing:.04em; }
.w-search{ display:flex; gap:8px; }
.w-search input{ flex:1; min-width:0; border:1px solid var(--line); border-radius:8px; padding:10px 12px; font-size:13.5px; font-family:inherit; background:var(--kami2); }
.w-search button{ border:none; background:var(--ai); color:#fff; border-radius:8px; padding:0 16px; font-weight:700; cursor:pointer; }
.w-recent{ display:flex; flex-direction:column; gap:14px; }
.w-recent a{ display:grid; grid-template-columns:70px 1fr; gap:12px; align-items:center; text-decoration:none; color:inherit; }
.w-recent img{ width:70px; height:48px; object-fit:cover; border-radius:7px; display:block; }
.w-recent div{ min-width:0; }
.w-recent b{ font-family:'Shippori Mincho',serif; font-weight:700; font-size:13px; line-height:1.5; color:var(--ink); display:block; }
.w-recent span{ font-family:'Space Grotesk',monospace; font-size:10.5px; color:var(--muted); letter-spacing:.06em; }
.w-recent a:hover b{ color:var(--shu); }
.w-list{ list-style:none; margin:0; padding:0; }
.w-list li{ border-bottom:1px dashed var(--line); }
.w-list li:last-child{ border-bottom:none; }
.w-list a{ display:flex; justify-content:space-between; align-items:center; gap:10px; padding:10px 2px; text-decoration:none; color:var(--ink); font-size:13.5px; font-weight:500; }
.w-list a:hover{ color:var(--shu); }
.w-list .n{ font-family:'Space Grotesk',monospace; font-size:11px; color:var(--muted); background:var(--kami2); border-radius:999px; padding:2px 9px; }
.w-cta{ background:linear-gradient(160deg,#2A6FB5,var(--ai2)); border:none; color:#F1F4EF; }
.w-cta .widget__ttl{ color:#fff; border-color:var(--yama2); }
.w-cta p{ font-size:13px; line-height:1.85; color:rgba(241,244,239,.82); margin:0 0 16px; }
.w-cta a{ display:inline-block; background:var(--yama2); color:var(--ai2); font-weight:700; font-size:13.5px; padding:12px 28px; border-radius:999px; text-decoration:none; }
.w-cta a:hover{ background:#fff; }

/* ============ ブログ/お知らせ 一覧（archive）カード ============ */
.p-news{ max-width:940px; }
.p-newsgrid{ display:grid; gap:28px; }
.p-card{ display:grid; grid-template-columns:320px 1fr; text-decoration:none; color:inherit; border:1px solid var(--line); border-radius:14px; overflow:hidden; background:#fff; transition:box-shadow .25s, transform .25s; }
.p-card:hover{ box-shadow:0 24px 46px -26px rgba(34,48,74,.5); transform:translateY(-3px); }
.p-card__ph{ overflow:hidden; background:var(--ai2); }
.p-card__ph img{ width:100%; height:100%; min-height:188px; object-fit:cover; display:block; transition:transform .5s; }
.p-card:hover .p-card__ph img{ transform:scale(1.05); }
.p-card__bd{ padding:26px 30px; display:flex; flex-direction:column; gap:10px; }
.p-card__meta{ display:flex; align-items:center; gap:12px; }
.p-card__date{ font-family:'Space Grotesk',monospace; font-size:13px; letter-spacing:.06em; color:var(--muted); }
.p-card__cat{ font-size:11px; font-weight:700; letter-spacing:.08em; padding:4px 12px; border-radius:999px; color:#fff; background:var(--ai); }  /* 既定色。is-*が上書き */
.p-card__ttl{ font-family:'Shippori Mincho',serif; font-size:clamp(18px,2.3vw,22px); font-weight:700; line-height:1.55; color:var(--ink); margin:0; }
.p-card__ex{ font-size:13.5px; line-height:1.9; color:var(--body); margin:0; }
.p-card__more{ margin-top:4px; font-family:'Space Grotesk',monospace; font-size:11px; letter-spacing:.14em; color:var(--shu); font-weight:700; }
.p-newsnote{ font-size:12.5px; color:var(--muted); margin:30px 0 0; }

/* ============ カテゴリ色（post-hero/p-card 共通の .is-*）============ */
.post-hero__cat.is-event,.p-card__cat.is-event{ background:var(--shu); }
.post-hero__cat.is-guide,.p-card__cat.is-guide{ background:var(--ai); }
.post-hero__cat.is-trail,.p-card__cat.is-trail{ background:#5f8a5a; }
.post-hero__cat.is-map,.p-card__cat.is-map{ background:var(--yama); color:var(--ai2); }
.post-hero__cat.is-info,.p-card__cat.is-info{ background:#7c7464; }

/* ============ レスポンシブ（モバイルは1列）============ */
@media(max-width:900px){ .post-wrap{ grid-template-columns:1fr; gap:40px; padding:44px 22px 72px; } .post-side{ position:static; } }
@media(max-width:680px){
  .post-hero{ padding:84px 0 52px; }
  .p-card{ grid-template-columns:1fr; }
  .p-card__ph img{ min-height:0; aspect-ratio:1200/630; }
  .p-card__bd{ padding:22px; }
}


/* ============================================================
   A-E型 D（モダン）に合わせた上書き：明朝を使わない
   ============================================================ */
.post-hero h1,.post-body h2,.post-body h3,.post-body .post-lead,
.p-card__ttl,.widget__ttl,.page-hero h1{
  font-family:'Zen Kaku Gothic New','Hiragino Sans','Noto Sans JP',sans-serif !important;
  font-weight:900;
}
.post-body p,.p-card__ex{color:var(--body);}

/* RITA 立川店 */
.c-hd__rita-row{border-top:1px solid var(--line);padding:5px 24px;display:flex;justify-content:flex-end;max-width:1280px;margin:auto;}
.c-hd__rita{display:inline-flex;align-items:center;gap:12px;color:var(--main);text-decoration:none;font-weight:700;min-height:44px;}
.c-hd__rita img{width:140px;height:62px;object-fit:contain;display:block;}
.c-hd__rita:hover{text-decoration:underline;}
.c-partner__logo{flex-direction:column;gap:10px;}
.c-partner__branch{font-size:20px;font-weight:800;color:var(--main);}
.c-partner__link{max-width:100%;text-align:center;justify-content:center;}
@media(max-width:600px){.c-hd__rita-row{padding:2px 16px;}.c-hd__rita{font-size:13px;gap:8px;}.c-hd__rita img{width:112px;height:48px;}.c-partner__link{font-size:14px;padding:14px 16px;}}

/* RITA and K-TECH paired header */
.c-hd__brands{display:flex;align-items:center;gap:20px;flex-shrink:0;}
.c-hd__brands .c-hd__rita{flex-direction:column;gap:0;line-height:1.2;font-size:12px;}
.c-hd__brands .c-hd__rita img{width:150px;height:52px;object-fit:cover;}
@media(max-width:1200px){.c-hd__brands{gap:14px;}.c-hd__nav{display:none;}}
@media(max-width:800px){.c-hd__brands .c-hd__nm{font-size:15px;}.c-hd__brands .c-hd__logo{gap:6px;}.c-hd__brands .c-hd__logo img{width:30px;height:30px;}.c-hd__conv{display:none;}}
@media(max-width:480px){.c-hd__in{padding:8px 12px;gap:8px;}.c-hd__brands{gap:10px;}.c-hd__brands .c-hd__rita img{width:112px;height:40px;}.c-hd__brands .c-hd__nm{font-size:12px;letter-spacing:0;}.c-hd__brands .c-hd__nm small{font-size:7px;}.c-hd__brands .c-hd__logo img{width:24px;height:30px;}.c-hd__toggle{width:40px;min-width:40px;}.c-hd__right{gap:0;}}

/* KTECH readable article tables 20261017 */
.post-body table{width:100%;border-collapse:collapse;table-layout:fixed;margin:28px 0 32px;border:1px solid #9aafc5;font-size:15px;line-height:1.8;color:#24364b;background:#fff;}
.post-body table th,.post-body table td{border:1px solid #9aafc5;padding:14px 16px;text-align:left;vertical-align:top;overflow-wrap:anywhere;}
.post-body table thead th{background:#e8f0f8;color:#143b6b;font-weight:700;}
.post-body table tbody tr:nth-child(even){background:#f5f8fc;}
@media(max-width:600px){.post-body table{font-size:13px;line-height:1.7;}.post-body table th,.post-body table td{padding:10px 8px;}}

/* KTECH archive without thumbnail 20261017 */
.p-card__bd{min-width:0;}
.p-card__bd:only-child{grid-column:1 / -1;}
.p-card__ttl,.p-card__ex{overflow-wrap:anywhere;}
@media(max-width:480px){.p-card__meta{flex-wrap:wrap;gap:8px;}}
