@charset "UTF-8";

/* ============================================================
   奥 / OKU — サクセススタッフ 非公式リニューアル試作 v14
   「現場と、人のあいだに。」
   目玉: Three.js フォトトンネル。スクロールでカメラが工場の
        奥へ進み続け、9つの工程写真の間を通り抜ける。
   検証フック: window.__ok
   ============================================================ */
:root{
  --w:#ffffff;
  --ink:#0e1012;
  --ink2:#3c4247;
  --org:#e8590c;
  --org-d:#c94e09;
  --gy:#868c91;
  --hair:#e2e4e6;
  --jp:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic UI","Yu Gothic",Meiryo,sans-serif;
  --dp:'Wix Madefor Display',sans-serif;
  --mono:'Cousine',monospace;
}
*{margin:0;padding:0;box-sizing:border-box;}
html.lenis,html.lenis body{height:auto;}
.lenis.lenis-smooth{scroll-behavior:auto!important;}
body{background:var(--w);color:var(--ink);font-family:var(--jp);font-size:14px;line-height:2;
  overflow-x:hidden;-webkit-font-smoothing:antialiased;font-feature-settings:"palt";}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
::selection{background:var(--ink);color:#fff;}
/* ---------- カーソル ---------- */
#cur{position:fixed;left:0;top:0;z-index:2000;pointer-events:none;width:28px;height:28px;margin:-14px 0 0 -14px;
  border:1px solid var(--ink);border-radius:50%;transition:transform .25s cubic-bezier(.2,.8,.2,1),opacity .3s;}
#cur::after{content:"";position:absolute;left:50%;top:50%;width:3px;height:3px;margin:-1.5px;border-radius:50%;background:var(--ink);}
#cur.lk{transform:scale(1.6);}
#cur.dn{transform:scale(.66);}
@media(max-width:880px){#cur{display:none;}}
/* ---------- ローダー ---------- */
#loader{position:fixed;inset:0;z-index:3000;background:var(--w);display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:16px;transition:opacity .55s ease,visibility .55s;}
#loader.done{opacity:0;visibility:hidden;pointer-events:none;}
#loader .lg{width:min(190px,44vw);height:auto;display:block;animation:lgin .8s ease both;}
@keyframes lgin{from{opacity:0;transform:scale(.94);}to{opacity:1;transform:scale(1);}}
#loader .lb{width:180px;height:1px;background:var(--hair);position:relative;overflow:hidden;}
#loader .lb i{position:absolute;left:0;top:0;height:100%;width:0;background:var(--ink);}
#loader .lt{font-family:var(--mono);font-size:9.5px;letter-spacing:.28em;color:var(--gy);}
/* ---------- ヘッダー ---------- */
header{position:fixed;top:0;left:0;right:0;z-index:900;height:78px;display:flex;align-items:center;
  justify-content:space-between;padding:0 32px;mix-blend-mode:normal;}
@media(max-width:880px){header{height:62px;padding:0 20px;}}
header::before{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(to bottom,rgba(255,255,255,.94),rgba(255,255,255,0));}
.h-logo{display:flex;align-items:center;gap:9px;}
.h-logo .mark{width:35px;height:35px;object-fit:contain;display:block;}
.h-logo .en{font-family:var(--dp);font-weight:800;font-size:17px;letter-spacing:-.02em;white-space:nowrap;}
.h-logo .jp2{font-size:9.5px;color:var(--gy);letter-spacing:.1em;white-space:nowrap;}
nav{display:flex;gap:23px;align-items:center;}
nav a{font-size:14px;font-weight:600;letter-spacing:.04em;color:var(--ink);position:relative;padding:6px 0;
  transition:color .2s;}
nav a::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background:var(--ink);
  transform:scaleX(0);transform-origin:right;transition:transform .32s cubic-bezier(.2,.8,.2,1);}
nav a:hover::after{transform:scaleX(1);transform-origin:left;}
/* グループ外部リンク: 内部ナビと区別する */
nav a.nav-ext{color:var(--gy);font-weight:500;margin-left:5px;padding-left:22px;}
nav a.nav-ext::before{content:"";position:absolute;left:0;top:50%;width:1px;height:13px;margin-top:-6px;
  background:var(--hair);}
nav a.nav-ext i{font-style:normal;font-size:10px;margin-left:3px;vertical-align:1px;}
nav a.nav-ext:hover{color:var(--ink);}
.mm-ext{color:var(--gy)!important;}
@media(max-width:1300px){nav{gap:18px;}nav a{font-size:13px;}}
@media(max-width:1140px){nav{gap:14px;}nav a{font-size:12px;letter-spacing:.02em;}
  nav a.nav-ext{padding-left:14px;margin-left:2px;}}
.h-tel{display:flex;flex-direction:column;align-items:flex-start;gap:2px;
  background:var(--org);color:#fff;padding:10px 24px 11px;position:relative;overflow:hidden;
  transition:background .25s,transform .25s,box-shadow .25s;}
.h-tel::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(115deg,transparent 34%,rgba(255,255,255,.30) 50%,transparent 66%);
  transform:translateX(-115%);transition:transform .62s cubic-bezier(.2,.8,.2,1);}
.h-tel:hover{background:var(--org-d);transform:translateY(-1px);box-shadow:0 7px 20px rgba(232,89,12,.34);}
.h-tel:hover::after{transform:translateX(115%);}
.ht-k{display:flex;align-items:center;gap:6px;font-size:11px;letter-spacing:.12em;line-height:1;}
.ht-k b{font-weight:700;}
.ht-dot{width:7px;height:7px;border-radius:50%;background:#fff;flex:none;
  animation:htp 2s ease-in-out infinite;}
.h-tel.closed .ht-dot{animation:none;opacity:.5;}
@keyframes htp{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.32;transform:scale(.7);}}
.ht-num{font-family:var(--mono);font-weight:700;font-size:20px;letter-spacing:.01em;line-height:1.15;}
#burger{display:none;width:44px;height:44px;background:var(--w);border:1px solid var(--hair);cursor:pointer;position:relative;z-index:1002;}
#burger i{position:absolute;left:12px;right:12px;top:50%;height:1px;background:var(--ink);transition:.3s;}
#burger i:first-child{transform:translateY(-4px);}
#burger i:last-child{transform:translateY(4px);}
body.menu-open #burger i:first-child{transform:rotate(45deg);}
body.menu-open #burger i:last-child{transform:rotate(-45deg);}
#mmenu{position:fixed;inset:0;z-index:1001;background:var(--w);display:flex;flex-direction:column;
  justify-content:center;padding:0 28px;opacity:0;visibility:hidden;transition:.3s ease;}
body.menu-open #mmenu{opacity:1;visibility:visible;}
#mmenu a{font-weight:700;font-size:20px;padding:14px 0;border-bottom:1px solid var(--hair);display:flex;align-items:baseline;gap:12px;}
#mmenu a small{font-family:var(--mono);font-size:9px;letter-spacing:.2em;color:var(--gy);font-weight:400;}
@media(max-width:880px){
  header{padding:0 15px;height:56px;}
  nav,.h-tel{display:none;}
  #burger{display:block;}
  body.menu-open header{z-index:1003;}
}
/* ---------- 共通 ---------- */
.wrap{max-width:1180px;width:100%;margin:0 auto;padding:0 34px;position:relative;}
.sec{padding:130px 0;position:relative;}
.kick{display:flex;align-items:center;gap:11px;font-family:var(--mono);font-size:10px;letter-spacing:.24em;
  color:var(--gy);margin-bottom:18px;}
.kick::before{content:"";width:22px;height:1px;background:var(--ink);transform:scaleX(var(--kx,1));transform-origin:left;}
h2.ttl{font-weight:700;font-size:clamp(23px,3.4vw,40px);line-height:1.6;letter-spacing:.01em;}
.lead{max-width:640px;margin-top:20px;color:var(--ink2);font-size:13.5px;line-height:2.1;}
.rise{opacity:0;}
.note{font-family:var(--mono);font-size:9px;letter-spacing:.1em;color:var(--gy);}
.btn{display:inline-flex;align-items:center;gap:11px;font-weight:700;font-size:13.5px;letter-spacing:.04em;
  background:var(--org);color:#fff;padding:17px 30px;transition:.28s;}
.btn:hover{opacity:.78;}
.btn.ghost{background:none;color:var(--ink);border:1px solid var(--ink);}
.btn.ghost:hover{background:var(--ink);color:#fff;opacity:1;}
@media(max-width:880px){.wrap{padding:0 20px;}.sec{padding:88px 0;}}
@media(prefers-reduced-motion:reduce){.rise{opacity:1;}}
/* ---------- トンネル ---------- */
#tunnel{position:relative;}
.tn-stage{height:100svh;position:relative;overflow:hidden;}
#gl{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:pan-y;}
#vid{position:fixed;left:0;top:0;width:2px;height:2px;opacity:.01;z-index:-2;pointer-events:none;}
#fbVid{width:100%;height:auto;margin-bottom:26px;}
.tn-ui{position:absolute;inset:0;z-index:3;pointer-events:none;}
.tn-ui .wrap{height:100%;}
/* FVコピー */
.fv-copy{position:absolute;left:34px;top:0;bottom:0;height:max-content;margin-block:auto;max-width:min(560px,46vw);z-index:4;}
h1{font-weight:700;font-size:clamp(24px,3.2vw,40px);line-height:1.62;letter-spacing:.01em;}
h1 .big{display:block;font-family:var(--dp);font-weight:800;font-size:clamp(30px,4.6vw,60px);
  line-height:1.06;letter-spacing:-.03em;margin-bottom:16px;}
.fv-sub{margin-top:18px;color:var(--ink2);font-size:12.5px;line-height:2.05;max-width:440px;}
.fv-cta{display:flex;gap:11px;margin-top:26px;flex-wrap:wrap;pointer-events:auto;}
.fv-scroll{position:absolute;left:34px;bottom:26px;display:flex;align-items:center;gap:10px;
  font-family:var(--mono);font-size:9px;letter-spacing:.2em;color:var(--gy);}
.fv-scroll b{display:block;width:30px;height:1px;background:var(--ink);animation:sc 2.2s ease-in-out infinite;}
@keyframes sc{0%,100%{transform:scaleX(.25);opacity:.4;}50%{transform:scaleX(1);opacity:1;}}
/* 工程キャプション */
.cap{position:absolute;right:34px;bottom:56px;width:min(400px,42vw);text-align:right;z-index:4;}
.cap .no{font-family:var(--mono);font-size:10px;letter-spacing:.3em;color:var(--gy);
  text-shadow:0 0 10px rgba(255,255,255,.95);}
.cap h2{font-weight:700;font-size:clamp(22px,3vw,34px);line-height:1.5;margin-top:8px;letter-spacing:.02em;}
.cap p{margin-top:12px;font-size:12.5px;color:var(--ink2);line-height:2.05;}
.cap .cl{opacity:0;}
/* 進行HUD */
.hud{position:absolute;right:34px;top:50%;transform:translateY(-50%);z-index:4;display:flex;
  flex-direction:column;gap:9px;align-items:flex-end;}
.hud i{display:block;width:16px;height:1px;background:#c3c7ca;transition:.35s;box-shadow:0 0 6px rgba(255,255,255,.9);}
.hud i.on{width:34px;background:var(--ink);}
.hud .pct{font-family:var(--mono);font-size:9px;letter-spacing:.2em;color:var(--gy);margin-bottom:6px;
  text-shadow:0 0 10px rgba(255,255,255,.95),0 0 4px rgba(255,255,255,.9);}
@media(max-width:1023px){
  .fv-copy{left:0;right:0;max-width:none;top:auto;bottom:auto;transform:none;height:auto;margin-block:0;
    position:relative;padding:92px 20px 30px;
    background:linear-gradient(to bottom,rgba(255,255,255,.98) 74%,rgba(255,255,255,.9) 88%,rgba(255,255,255,0));}
  .tn-stage{height:auto;min-height:100svh;display:flex;flex-direction:column;}
  #gl{position:absolute;inset:0;}
  .cap{right:20px;left:20px;width:auto;text-align:left;bottom:26px;}
  .hud{right:16px;top:64%;transform:none;}
  .hud i{width:12px;}
  .hud i.on{width:24px;}
  .fv-scroll{display:none;}
}
/* WebGL不可時のフォールバック */
#fbGrid{display:none;padding:100px 0 40px;}
.fv-copy.fb{position:relative;left:auto;top:auto;bottom:auto;height:auto;margin-block:0;transform:none;padding:20px 0 26px;max-width:840px;background:none;}
#fbGrid.on{display:block;}
.fb-item{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:center;padding:34px 0;border-bottom:1px solid var(--hair);}
.fb-item img{width:100%;height:auto;}
.fb-item .no{font-family:var(--mono);font-size:10px;letter-spacing:.26em;color:var(--gy);}
.fb-item h3{font-weight:700;font-size:20px;margin-top:8px;}
.fb-item p{margin-top:10px;font-size:12.5px;color:var(--ink2);}
@media(max-width:880px){.fb-item{grid-template-columns:1fr;gap:14px;}}
/* ---------- 写真カード/マルキー/流れ ---------- */
.ph{position:relative;overflow:hidden;background:#eef0f1;}
.ph img{width:100%;height:100%;object-fit:cover;display:block;}
.ph .tag{position:absolute;left:10px;bottom:8px;font-family:var(--mono);font-size:8px;letter-spacing:.14em;color:#fff;
  text-shadow:0 1px 8px rgba(0,0,0,.5);pointer-events:none;}
.rs-ph{height:224px;}
.sv-in{padding:22px 24px 26px;display:flex;flex-direction:column;flex:1;}
.sc-ph img,.cmp-ph img,.ct-media img{height:116%;position:relative;top:-8%;}
.flow::before{content:"";position:absolute;left:14px;top:10px;bottom:10px;width:1px;background:var(--hair);}
#flowLine{position:absolute;left:14px;top:10px;height:calc(100% - 20px);width:1px;background:var(--ink);
  transform:scaleY(0);transform-origin:top;display:block;z-index:1;}
.fl .dot{position:absolute;left:-21px;top:27px;width:7px;height:7px;border:1px solid var(--ink);border-radius:50%;
  background:var(--w);transition:background .3s .05s;z-index:2;}
.fl.on .dot{background:var(--ink);}
.ct-media{height:430px;}
@media(max-width:880px){
  .rs-ph{height:206px;}
  .ct-media{height:250px;}
}
/* ---------- スクロール演出(帯・進行バー・電話数字) ---------- */
#pgbar{position:fixed;left:0;top:0;height:2px;width:100%;background:var(--ink);transform:scaleX(0);
  transform-origin:left;z-index:2100;pointer-events:none;}
.band{overflow:hidden;padding:30px 0 26px;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);}
.band .bd{white-space:nowrap;font-family:var(--dp);font-weight:800;font-size:clamp(40px,6.4vw,88px);line-height:1;
  letter-spacing:-.03em;color:transparent;-webkit-text-stroke:1px #c6cacd;will-change:transform;}
.band .bd b{color:var(--ink);-webkit-text-stroke:0;}
.tel .num .dg{display:inline-block;overflow:hidden;vertical-align:bottom;}
.tel .num .dg i{display:inline-block;font-style:normal;will-change:transform;}
/* ---------- 大仕掛け(横スクロール/スタック/ワイドバンド/ゴースト数字) ---------- */
#stats{position:relative;overflow:hidden;}
#stats .wrap{position:relative;z-index:1;}
.gnum{position:absolute;right:-4vw;bottom:-2vw;font-family:var(--dp);font-weight:800;font-size:17vw;line-height:1;
  letter-spacing:-.04em;color:transparent;-webkit-text-stroke:1px #e2e4e6;pointer-events:none;white-space:nowrap;}
.wideband{position:relative;height:64vh;min-height:420px;overflow:hidden;}
.wideband img{position:absolute;left:0;top:-12%;width:100%;height:124%;object-fit:cover;max-width:none;}
.wideband .wb-q{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;}
.wb-line{font-weight:800;font-size:clamp(24px,3.8vw,50px);letter-spacing:.08em;color:var(--ink);
  background:rgba(255,255,255,.88);padding:12px 28px;}
.wb-sub{font-family:var(--mono);font-size:10px;letter-spacing:.28em;color:var(--ink2);
  background:rgba(255,255,255,.82);padding:6px 14px;}
.wideband .tag{left:auto;right:12px;bottom:10px;}
.hsec{position:relative;}
.hpin{height:100svh;display:flex;flex-direction:column;justify-content:center;overflow:hidden;padding:70px 0 34px;}
.hhead{margin-bottom:32px;}
.htrack{display:flex;gap:clamp(20px,3vw,44px);padding:0 max(34px,calc((100vw - 1160px)/2 + 34px));will-change:transform;}
.hcard{flex:0 0 auto;width:min(74vw,860px);display:grid;grid-template-columns:1.05fr 1fr;background:var(--w);
  border:1px solid var(--hair);}
.hph{height:min(46svh,430px);}
.hph img{width:114%;height:100%;max-width:none;position:relative;left:-7%;object-fit:cover;display:block;}
.hbody{padding:28px 30px 26px;display:flex;flex-direction:column;gap:13px;justify-content:center;}
.hbody .no{font-family:var(--mono);font-size:10px;letter-spacing:.2em;color:var(--gy);}
.hbody h3{font-weight:700;font-size:clamp(18px,1.9vw,24px);line-height:1.75;}
.hbody p{font-size:12.5px;color:var(--ink2);line-height:2.05;}
.hcard.hlast{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:22px;
  width:min(56vw,560px);padding:42px;background:var(--ink);color:#fff;border:none;}
.hcard.hlast .hbig{font-weight:800;font-size:clamp(23px,2.5vw,33px);line-height:1.7;}
.hprog{width:min(320px,50vw);height:1px;background:var(--hair);margin:30px auto 0;position:relative;}
.hprog i{position:absolute;left:0;top:-1px;height:3px;width:100%;background:var(--ink);transform:scaleX(0);transform-origin:left;}
.rm .hpin{height:auto;padding:90px 0 60px;}
.rm .htrack{overflow-x:auto;}
.stack{margin-top:48px;display:flex;flex-direction:column;gap:26px;}
.scard{position:sticky;display:grid;grid-template-columns:1fr 1.15fr;border:1px solid var(--hair);background:var(--w);
  transform-origin:top center;box-shadow:0 26px 60px -48px rgba(22,25,26,.45);}
.scard:nth-child(1){top:96px;}
.scard:nth-child(2){top:118px;}
.scard:nth-child(3){top:140px;}
.sc-ph{height:340px;}
.sc-in{padding:28px 30px 26px;display:flex;flex-direction:column;justify-content:center;}
.cmp-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:44px;align-items:start;margin-top:44px;}
.cmp-grid .cmp{margin-top:0;}
.cmp-ph{height:470px;position:sticky;top:96px;}
@media(max-width:880px){
  .gnum{font-size:27vw;bottom:0;right:-6vw;}
  .wideband{height:46vh;min-height:300px;}
  .hpin{padding-top:56px;}
  .hhead{margin-bottom:22px;}
  .hcard{width:86vw;grid-template-columns:1fr;}
  .hph{height:32svh;}
  .hcard.hlast{width:80vw;padding:30px;}
  .scard{grid-template-columns:1fr;}
  .sc-ph{height:210px;}
  .scard:nth-child(1){top:68px;}
  .scard:nth-child(2){top:84px;}
  .scard:nth-child(3){top:100px;}
  .cmp-grid{grid-template-columns:1fr;gap:22px;}
  .cmp-ph{height:250px;position:static;}
}
/* ---------- 数字 ---------- */
.figs{display:grid;grid-template-columns:repeat(5,1fr);margin-top:50px;border-top:1px solid var(--ink);}
.fig{padding:26px 18px 22px 0;border-right:1px solid var(--hair);}
.fig:last-child{border-right:0;}
.fig .n{font-family:var(--dp);font-weight:800;font-size:clamp(28px,3.6vw,46px);line-height:1;letter-spacing:-.04em;
  display:flex;align-items:baseline;gap:2px;}
.fig .n small{font-size:.36em;font-weight:700;letter-spacing:0;font-family:var(--jp);}
.fig .lb{margin-top:10px;font-size:11px;color:var(--ink2);}
.fig .en{font-family:var(--mono);font-size:8.5px;letter-spacing:.2em;color:var(--gy);}
@media(max-width:880px){.figs{grid-template-columns:repeat(2,1fr);}.fig{border-bottom:1px solid var(--hair);}
  .fig:nth-child(2n){border-right:0;}.fig:last-child{grid-column:1/-1;border-right:0;}}
/* ---------- 理由 ---------- */
.reasons{margin-top:48px;border-top:1px solid var(--hair);}
.rs{display:grid;grid-template-columns:92px 300px 1fr;gap:30px;padding:30px 0;border-bottom:1px solid var(--hair);align-items:start;}
.rs .no{font-family:var(--mono);font-size:10px;letter-spacing:.18em;color:var(--gy);padding-top:6px;}
.rs h3{font-weight:700;font-size:clamp(16px,1.8vw,21px);line-height:1.7;}
.rs p{font-size:12.5px;color:var(--ink2);line-height:2.1;margin-top:10px;}
@media(max-width:880px){.rs{grid-template-columns:1fr;gap:9px;padding:24px 0;}.rs .no{padding-top:0;}}
/* ---------- サービス ---------- */
.svs{margin-top:48px;display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--hair);}
.sv{padding:0;border-right:1px solid var(--hair);transition:background .3s;display:flex;flex-direction:column;}
.sv:last-child{border-right:0;}
.sv:hover{background:#fafafa;}
.sv .ix{font-family:var(--mono);font-size:9px;letter-spacing:.2em;color:var(--gy);}
.sv h3{font-weight:700;font-size:17px;margin-top:14px;line-height:1.7;}
.sv p{margin-top:12px;font-size:12.5px;color:var(--ink2);line-height:2.05;}
.sv .badge,.sc-in .badge{margin-top:18px;border-top:1px solid var(--hair);padding-top:11px;font-family:var(--mono);font-size:9px;letter-spacing:.06em;}
@media(max-width:880px){.svs{grid-template-columns:1fr;}.sv{border-right:0;border-bottom:1px solid var(--hair);}.sv:last-child{border-bottom:0;}}
/* ---------- 流れ ---------- */
.flow{margin-top:48px;position:relative;padding-left:32px;}
.fl{display:grid;grid-template-columns:76px 1fr 1.3fr;gap:24px;padding:18px 0;border-bottom:1px solid var(--hair);align-items:baseline;position:relative;}
.fl .st{font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;color:var(--gy);}
.fl h3{font-weight:700;font-size:15.5px;}
.fl p{font-size:12.5px;color:var(--ink2);}
@media(max-width:880px){.fl{grid-template-columns:1fr;gap:5px;padding:15px 0;}}
/* ---------- 出身国 ---------- */
.org{margin-top:48px;border-top:1px solid var(--ink);}
.og{display:grid;grid-template-columns:1fr 200px 110px;gap:20px;align-items:center;padding:24px 0;border-bottom:1px solid var(--hair);}
.og .jp3{font-weight:700;font-size:clamp(16px,1.9vw,21px);}
.og .en{font-family:var(--mono);font-size:9px;letter-spacing:.2em;color:var(--gy);margin-top:2px;}
.og .track{height:2px;background:var(--hair);position:relative;}
.og .track i{position:absolute;left:0;top:0;height:100%;background:var(--ink);width:0;}
.og .pc{font-family:var(--dp);font-weight:800;font-size:clamp(22px,2.8vw,34px);text-align:right;line-height:1;letter-spacing:-.03em;}
.og .pc small{font-size:.4em;font-weight:700;margin-left:2px;font-family:var(--jp);}
@media(max-width:880px){.og{grid-template-columns:1fr 90px;gap:10px;padding:17px 0;}.og .track{grid-column:1/-1;}}
/* ---------- 出身国(多国籍グリッド) ---------- */
.ogrid{margin-top:46px;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--hair);border-left:1px solid var(--hair);}
.oc{position:relative;padding:26px 24px 22px;border-right:1px solid var(--hair);border-bottom:1px solid var(--hair);
  transition:background .35s;}
.oc:hover{background:var(--paper);}
.oc-tag{position:absolute;right:14px;top:14px;font-family:var(--mono);font-size:8.5px;letter-spacing:.24em;color:var(--w);
  background:var(--ink);padding:3px 8px;}
.oc-jp{font-weight:800;font-size:clamp(19px,2.1vw,26px);letter-spacing:.05em;}
.oc-en{font-family:var(--mono);font-size:9px;letter-spacing:.22em;color:var(--gy);margin-top:4px;}
.oc-wd{margin-top:14px;font-size:clamp(15px,1.7vw,20px);color:var(--ink2);
  font-family:var(--jp),"Myanmar Text","Nirmala UI",sans-serif;}
.oc.core .oc-wd{color:var(--ink);}
.oc-wd small{display:block;font-family:var(--mono);font-size:8.5px;letter-spacing:.16em;color:var(--gy);margin-top:4px;}
.oc.fill{grid-column:span 2;display:flex;flex-direction:column;justify-content:center;gap:10px;
  background:var(--ink);color:#fff;border-color:var(--ink);}
.oc.fill:hover{background:#2a2e31;}
.oc.fill .oc-en{color:rgba(255,255,255,.6);}
@media(max-width:880px){
  .ogrid{grid-template-columns:repeat(2,1fr);}
  .oc{padding:18px 16px 16px;}
  .oc.fill{grid-column:span 2;}
}
/* ---------- Zoom相談モーダル ---------- */
#zmBack{position:fixed;inset:0;z-index:2500;background:rgba(16,18,20,.5);display:none;align-items:center;justify-content:center;padding:20px;}
#zmBack.on{display:flex;}
.zm-card{background:var(--w);max-width:480px;width:100%;padding:38px 36px 32px;position:relative;}
.zm-x{position:absolute;right:14px;top:14px;width:36px;height:36px;background:none;border:1px solid var(--hair);cursor:pointer;font-size:15px;line-height:1;color:var(--ink);}
.zm-x:hover{border-color:var(--ink);}
.zm-k{font-family:var(--mono);font-size:9.5px;letter-spacing:.26em;color:var(--org);}
.zm-t{font-weight:800;font-size:21px;letter-spacing:.04em;margin-top:10px;}
.zm-st{display:flex;align-items:center;gap:10px;margin-top:18px;padding:13px 16px;background:var(--paper);}
.zm-st i{width:9px;height:9px;border-radius:50%;background:#b6bcc0;flex:none;}
.zm-st.open i{background:#27a463;animation:zmp 1.6s ease-in-out infinite;}
@keyframes zmp{0%,100%{box-shadow:0 0 0 0 rgba(39,164,99,.35);}50%{box-shadow:0 0 0 6px rgba(39,164,99,0);}}
.zm-st b{font-size:13px;font-weight:700;}
.zm-st small{display:block;font-size:10.5px;color:var(--gy);margin-top:2px;}
.zm-note{margin-top:16px;font-size:12px;color:var(--ink2);line-height:2.05;}
.zm-note li{list-style:none;padding-left:16px;position:relative;}
.zm-note li::before{content:"";position:absolute;left:2px;top:.95em;width:6px;height:1.5px;background:var(--org);}
.zm-go{margin-top:22px;width:100%;justify-content:center;}
.zm-go[aria-disabled="true"]{background:#c9cdd0;pointer-events:none;}
.zm-alt{margin-top:12px;text-align:center;font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:var(--gy);}
.zm-alt a{border-bottom:1px solid var(--hair);}
@media(max-width:880px){.zm-card{padding:30px 22px 26px;}}
/* ---------- マニュアル体制 ---------- */
.mn-grid{margin-top:50px;display:grid;grid-template-columns:1.05fr .95fr;gap:46px;align-items:center;}
.mn-steps{border-top:1px solid var(--hair);}
.mn-step{display:grid;grid-template-columns:64px 1fr;gap:16px;padding:22px 0;border-bottom:1px solid var(--hair);}
.mn-step i{font-family:var(--mono);font-style:normal;font-size:10px;letter-spacing:.18em;color:var(--org);padding-top:5px;}
.mn-step h3{font-weight:700;font-size:16.5px;letter-spacing:.04em;}
.mn-step p{font-size:12.5px;color:var(--ink2);line-height:2.05;margin-top:6px;}
@media(max-width:880px){.mn-grid{grid-template-columns:1fr;gap:24px;}}
/* ---------- FAQ ---------- */
.faqs{margin-top:44px;border-top:1px solid var(--hair);}
details{border-bottom:1px solid var(--hair);}
summary{list-style:none;cursor:pointer;padding:24px 44px 24px 0;position:relative;font-weight:700;font-size:clamp(14px,1.6vw,17px);line-height:1.75;}
summary::-webkit-details-marker{display:none;}
summary::after{content:"";position:absolute;right:8px;top:50%;width:11px;height:1px;background:var(--ink);}
summary::before{content:"";position:absolute;right:13px;top:50%;width:1px;height:11px;margin-top:-5px;background:var(--ink);transition:transform .3s;}
details[open] summary::before{transform:scaleY(0);}
details p{padding:0 40px 26px 0;font-size:12.5px;color:var(--ink2);line-height:2.15;}
/* ---------- 会社概要 ---------- */
.cmp{margin-top:44px;border-top:1px solid var(--hair);}
.cr{display:grid;grid-template-columns:196px 1fr;gap:22px;padding:18px 0;border-bottom:1px solid var(--hair);}
.cr dt{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;color:var(--gy);padding-top:4px;}
.cr dd{font-size:13px;line-height:2.05;}
@media(max-width:880px){.cr{grid-template-columns:1fr;gap:3px;padding:14px 0;}}
/* ---------- 相談 ---------- */
#contact{padding:132px 0;border-top:1px solid var(--ink);}
.ct-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:44px;align-items:center;}
.tel .num{font-family:var(--dp);font-weight:800;font-size:clamp(32px,4.6vw,58px);letter-spacing:-.04em;line-height:1.05;}
.tel .sub{font-family:var(--mono);font-size:9px;letter-spacing:.14em;color:var(--gy);margin-top:8px;display:block;}
@media(max-width:880px){.ct-grid{grid-template-columns:1fr;gap:26px;}#contact{padding:88px 0;}}
/* ---------- フッター ---------- */
footer{background:var(--ink);color:#fff;padding:58px 0 40px;}
footer .wrap{display:flex;justify-content:space-between;gap:28px;flex-wrap:wrap;}
footer .fw{font-family:var(--dp);font-weight:800;font-size:19px;letter-spacing:-.02em;}
footer .fs{font-size:11px;color:rgba(255,255,255,.62);line-height:2;margin-top:10px;max-width:540px;}
footer .fs a{border-bottom:1px solid rgba(255,255,255,.32);}
footer .proto{font-family:var(--mono);font-size:8.5px;letter-spacing:.2em;color:rgba(255,255,255,.86);margin-top:24px;}

/* ============ マルチページ追加 ============ */
nav a.act{color:var(--ink);font-weight:700;}
nav a.act::after{transform:scaleX(1);background:var(--org);}
.page-hero{padding:172px 0 64px;}
.page-hero h1{font-weight:800;font-size:clamp(26px,3.6vw,44px);line-height:1.6;letter-spacing:.02em;}
.page-hero .lead{margin-top:16px;}
@media(max-width:880px){.page-hero{padding:118px 0 44px;}}
.cta-mini{background:var(--ink);color:#fff;padding:74px 0;}
.cta-mini .wrap{display:flex;align-items:center;justify-content:space-between;gap:26px;flex-wrap:wrap;}
.cta-mini h2{font-weight:800;font-size:clamp(20px,2.4vw,30px);line-height:1.7;}
.cta-mini .row{display:flex;gap:12px;flex-wrap:wrap;}
.cta-mini .btn{background:#fff;color:var(--ink);}
.cta-mini .btn:hover{background:var(--paper);}
.cta-mini .btn.ghost{background:none;color:#fff;border:1px solid rgba(255,255,255,.5);}
.cta-mini .btn.ghost:hover{border-color:#fff;background:rgba(255,255,255,.08);}
.kfsec{padding-top:0;}
.kfsec .cmp{margin-top:26px;}
.kfsec dt{color:var(--org);}
.hint3{margin-top:46px;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--hair);border-left:1px solid var(--hair);}
.hint3 div{padding:26px 24px;border-right:1px solid var(--hair);border-bottom:1px solid var(--hair);}
.hint3 .hx{font-family:var(--mono);font-size:9px;letter-spacing:.22em;color:var(--gy);}
.hint3 h3{font-weight:700;font-size:17px;margin-top:12px;letter-spacing:.04em;}
.hint3 p{margin-top:10px;font-size:12.5px;color:var(--ink2);line-height:2.05;}
@media(max-width:880px){.hint3{grid-template-columns:1fr;}}

/* ============ サブページ用パーツ ============ */
.feat{display:grid;grid-template-columns:150px 1fr 1.2fr;gap:30px;padding:34px 0;border-bottom:1px solid var(--hair);align-items:start;}
.feat:first-of-type{border-top:1px solid var(--hair);}
.feat .fno{font-family:var(--dp);font-weight:800;font-size:clamp(38px,4.6vw,64px);line-height:1;letter-spacing:-.04em;color:transparent;-webkit-text-stroke:1.2px var(--ink);}
.feat h3{font-weight:800;font-size:clamp(17px,1.9vw,23px);line-height:1.75;letter-spacing:.03em;}
.feat p{font-size:12.5px;color:var(--ink2);line-height:2.1;}
@media(max-width:880px){.feat{grid-template-columns:1fr;gap:10px;padding:24px 0;}.feat .fno{font-size:34px;}}
.g3{margin-top:46px;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--hair);border-left:1px solid var(--hair);}
.g3>div,.g3>a{padding:26px 24px;border-right:1px solid var(--hair);border-bottom:1px solid var(--hair);}
.g3>a{transition:background .3s;}
.g3>a:hover{background:var(--w);}
.g3 .gx{font-family:var(--mono);font-size:9px;letter-spacing:.22em;color:var(--gy);}
.g3 h3{font-weight:700;font-size:16.5px;margin-top:12px;letter-spacing:.04em;line-height:1.7;}
.g3 p{margin-top:10px;font-size:12.5px;color:var(--ink2);line-height:2.05;}
.g3.g4{grid-template-columns:repeat(4,1fr);}
@media(max-width:880px){.g3,.g3.g4{grid-template-columns:1fr 1fr;}}
.cmpr{margin-top:46px;width:100%;border-collapse:collapse;font-size:12.5px;}
.cmpr th,.cmpr td{border:1px solid var(--hair);padding:14px 16px;text-align:left;line-height:1.9;vertical-align:top;}
.cmpr thead th{background:var(--ink);color:#fff;font-weight:700;font-size:13px;}
.cmpr tbody th{background:var(--paper);font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:var(--ink2);white-space:nowrap;}
.cmpr-scroll{overflow-x:auto;}
.cmpr-scroll .cmpr{min-width:640px;}
.vlist{margin-top:46px;display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--hair);border:1px solid var(--hair);}
.vcard{background:var(--w);padding:28px 26px;display:flex;flex-direction:column;gap:10px;transition:background .3s;}
.vcard:hover{background:var(--paper);}
.vcard .vt{font-weight:800;font-size:clamp(15px,1.7vw,19px);line-height:1.7;letter-spacing:.03em;}
.vcard .vm{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;color:var(--gy);}
.vcard p{font-size:12.5px;color:var(--ink2);line-height:2.05;}
@media(max-width:880px){.vlist{grid-template-columns:1fr;}}
.philosophy{padding:110px 0;background:var(--paper);text-align:center;}
.philosophy .ph-k{font-family:var(--mono);font-size:10px;letter-spacing:.3em;color:var(--gy);}
.philosophy .ph-s{margin-top:22px;font-weight:800;font-size:clamp(20px,3vw,36px);line-height:2;letter-spacing:.06em;}
.tagcloud{margin-top:38px;display:flex;flex-wrap:wrap;gap:8px;}
.tagcloud li{list-style:none;font-size:12.5px;font-weight:700;letter-spacing:.04em;border:1px solid var(--hair);padding:10px 16px;background:var(--w);}
.tagcloud li small{font-family:var(--mono);font-size:8.5px;color:var(--gy);letter-spacing:.12em;margin-left:8px;font-weight:400;}
.note-big{margin-top:34px;border:1px solid var(--ink);padding:24px 26px;display:flex;gap:18px;align-items:baseline;flex-wrap:wrap;}
.note-big b{font-family:var(--dp);font-weight:800;font-size:clamp(22px,2.6vw,34px);letter-spacing:-.02em;}
.note-big span{font-size:12.5px;color:var(--ink2);line-height:2;}
.subsec{margin-top:72px;}
.subsec .st2{font-family:var(--mono);font-size:10px;letter-spacing:.26em;color:var(--gy);margin-bottom:14px;}
.subsec h2{font-weight:800;font-size:clamp(19px,2.3vw,28px);line-height:1.7;letter-spacing:.03em;}
.sp-ph img{height:116%;position:relative;top:-8%;}
.hp-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:46px;align-items:center;}
.hp-grid .sp-ph{height:min(46vh,420px);}
.feat.wph{grid-template-columns:110px 1fr 1.1fr 300px;}
.feat .sp-ph{height:190px;}
.duo{margin-top:36px;display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.duo .sp-ph{height:290px;}
.g-ph{height:180px;margin:-26px -24px 18px;}
.wide-ph{margin-top:38px;height:min(52vh,460px);}
@media(max-width:880px){
  .hp-grid{grid-template-columns:1fr;gap:22px;}
  .hp-grid .sp-ph{height:230px;}
  .feat.wph{grid-template-columns:1fr;}
  .feat .sp-ph{height:210px;}
  .duo{grid-template-columns:1fr;}
  .duo .sp-ph{height:220px;}
  .wide-ph{height:260px;}
}

/* 記事一覧 */
.blist{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--hair);
  margin-top:44px;border:1px solid var(--hair);}
.bcard{background:var(--w);padding:0 0 30px;display:flex;flex-direction:column;gap:11px;
  transition:background .35s ease;}
.bcard:hover{background:#fafafa;}
.bthumb{aspect-ratio:16/10;overflow:hidden;background:#f2f3f3;}
.bthumb img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.8,.2,1);}
.bcard:hover .bthumb img{transform:scale(1.045);}
.bc-in{padding:0 24px;display:flex;flex-direction:column;gap:10px;flex:1;}
.bc-cat{font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--org);margin-top:22px;}
.bc-ttl{font-size:16px;line-height:1.75;}
.bc-sum{font-size:12.5px;line-height:1.95;color:var(--ink2);}
.bc-date{font-family:var(--mono);font-size:10px;letter-spacing:.06em;color:var(--gy);margin-top:auto;padding-top:14px;}

@media(max-width:880px){ .blist{grid-template-columns:1fr;} }

/* ============ お役立ち情報(TOPの新着) ============ */
#news{padding:120px 0;border-top:1px solid var(--hair);}
.nw-head{display:flex;align-items:flex-end;justify-content:space-between;gap:26px;
  margin-bottom:46px;flex-wrap:wrap;}
.nw-head .ttl{font-size:clamp(21px,2.8vw,33px);line-height:1.5;}
@media(max-width:880px){
  #news{padding:86px 0;}
  .nw-head{margin-bottom:32px;}
  .nw-head .btn{width:100%;text-align:center;}
}

/* ============================================================
   記事詳細まわり。一覧のカード(.blist/.bcard)は oku/base.css 側にある
   （TOPの「お役立ち情報」でも使うため）
   ============================================================ */
.bmeta{display:flex;gap:20px;align-items:center;margin-top:20px;
  font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--gy);}
.bback{margin-top:56px;}

@media(max-width:880px){
  .bmeta{gap:14px;}
}

/* ============================================================
   WordPress用の追加スタイル
   汎用固定ページ / ブログ一覧 / 記事詳細 / WP標準ブロック
   ============================================================ */

/* 下層ページ共通の見出し帯 */
.wp-hero{padding:150px 0 46px;border-bottom:1px solid var(--hair);}
.wp-hero .kick{margin-bottom:14px;}
.wp-hero .ttl{font-size:clamp(24px,3.4vw,40px);line-height:1.5;}
.wp-hero .lead{margin-top:18px;max-width:760px;}
@media(max-width:880px){.wp-hero{padding:112px 0 34px;}}

/* 汎用固定ページ本文(WPエディタの中身) */
.wp-body{padding:64px 0 96px;}
.wp-body .rtx{max-width:820px;margin:0 auto;}

/* ブログ一覧 */
.bl-head{padding:150px 0 30px;}
@media(max-width:880px){.bl-head{padding:112px 0 24px;}}
.bl-cat{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px;}
.bl-cat a{font-size:11.5px;letter-spacing:.04em;border:1px solid var(--hair);
  padding:7px 14px;background:var(--w);transition:.25s;}
.bl-cat a:hover,.bl-cat a.on{border-color:var(--ink);}

/* ページネーション */
.pager{display:flex;justify-content:center;gap:6px;margin:56px 0 0;flex-wrap:wrap;}
.pager .page-numbers{min-width:38px;height:38px;display:flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:12px;border:1px solid var(--hair);background:var(--w);padding:0 10px;}
.pager .page-numbers.current{background:var(--ink);color:#fff;border-color:var(--ink);}
.pager a.page-numbers:hover{border-color:var(--ink);}

/* 記事詳細 */
.post-head{padding:150px 0 0;}
@media(max-width:880px){.post-head{padding:112px 0 0;}}
.post-head .ttl{font-size:clamp(21px,2.9vw,33px);line-height:1.55;margin-top:16px;}
.post-thumb{margin-top:34px;overflow:hidden;}
.post-thumb img{width:100%;height:auto;}
.post-nav{display:flex;justify-content:space-between;gap:16px;margin-top:64px;
  border-top:1px solid var(--hair);padding-top:22px;}
.post-nav a{font-size:12.5px;color:var(--ink2);max-width:46%;}
.post-nav a:hover{color:var(--ink);}

/* 旧記事はArkheのブロックで組まれているため、最低限の体裁を保つ */
.rtx .wp-block-image{margin:26px 0;}
.rtx .wp-block-image img{height:auto;}
.rtx figure{margin:26px 0;}
.rtx figcaption{font-size:11.5px;color:var(--gy);margin-top:8px;}
.rtx .wp-block-buttons{display:flex;gap:10px;flex-wrap:wrap;margin:26px 0;}
.rtx .wp-block-button__link{display:inline-block;background:var(--ink);color:#fff;
  padding:13px 24px;font-size:13px;font-weight:700;}
.rtx .wp-block-table{overflow-x:auto;}
.rtx .wp-block-columns{display:flex;gap:22px;flex-wrap:wrap;margin:26px 0;}
.rtx .wp-block-column{flex:1;min-width:240px;}
.rtx .wp-block-quote{margin:26px 0;padding:14px 20px;border-left:2px solid var(--org);}
.rtx iframe{max-width:100%;}

/* 検索・404 */
.nores{padding:80px 0 110px;text-align:center;color:var(--gy);}

/* ============================================================
   Contact Form 7（お問い合わせ / 資料請求）
   既存フォームはCF7 5.9.8。旧テーマのCSSが無くなるので、ここで組み直す。
   ============================================================ */
.rtx .wpcf7,.rtx .wpcf7-form{margin-top:8px;}
.rtx .wpcf7-form p{margin:0 0 20px;}
.rtx .wpcf7-form label{display:block;font-size:13px;font-weight:700;letter-spacing:.02em;
  color:var(--ink);margin-bottom:8px;}

.rtx .wpcf7-form-control-wrap{display:block;}
.rtx input[type=text],.rtx input[type=email],.rtx input[type=tel],
.rtx input[type=url],.rtx input[type=number],.rtx input[type=date],
.rtx select,.rtx textarea{
  width:100%;max-width:100%;font-family:var(--jp);font-size:15px;line-height:1.7;
  color:var(--ink);background:var(--w);border:1px solid var(--hair);border-radius:0;
  padding:13px 15px;transition:border-color .2s;-webkit-appearance:none;appearance:none;}
.rtx textarea{min-height:180px;resize:vertical;}
.rtx select{background-image:linear-gradient(45deg,transparent 50%,var(--ink2) 50%),
  linear-gradient(135deg,var(--ink2) 50%,transparent 50%);
  background-position:calc(100% - 19px) 50%,calc(100% - 14px) 50%;
  background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:40px;}
.rtx input:focus,.rtx select:focus,.rtx textarea:focus{outline:none;border-color:var(--ink);}
.rtx input::placeholder,.rtx textarea::placeholder{color:var(--gy);}

/* 必須マーク */
.rtx .wpcf7-form .required,.rtx .wpcf7-form .req{display:inline-block;margin-left:7px;padding:2px 7px;
  font-size:10.5px;font-weight:700;letter-spacing:.06em;color:var(--w);background:var(--org);}

/* チェックボックス・ラジオ */
.rtx .wpcf7-checkbox,.rtx .wpcf7-radio,.rtx .wpcf7-acceptance{display:flex;flex-wrap:wrap;gap:10px 22px;}
.rtx .wpcf7-list-item{margin:0;}
.rtx .wpcf7-list-item label{display:flex;align-items:center;gap:9px;font-weight:400;
  font-size:14px;margin:0;cursor:pointer;}
.rtx input[type=checkbox],.rtx input[type=radio]{width:17px;height:17px;accent-color:var(--org);flex:none;}

/* 送信ボタン */
.rtx input[type=submit],.rtx .wpcf7-submit{
  width:auto;min-width:260px;display:inline-block;cursor:pointer;
  font-family:var(--jp);font-size:15px;font-weight:700;letter-spacing:.04em;
  color:var(--w);background:var(--org);border:none;padding:19px 44px;
  transition:background .2s,transform .2s;}
.rtx input[type=submit]:hover,.rtx .wpcf7-submit:hover{background:var(--org-d);transform:translateY(-2px);}
.rtx .wpcf7-spinner{margin-left:14px;}

/* バリデーション表示 */
.rtx .wpcf7-not-valid{border-color:var(--org)!important;}
.rtx .wpcf7-not-valid-tip{display:block;margin-top:7px;font-size:12.5px;color:var(--org);}
.rtx .wpcf7-response-output{margin:24px 0 0!important;padding:15px 18px!important;
  border:1px solid var(--hair)!important;border-left:3px solid var(--org)!important;
  font-size:13.5px;line-height:1.9;background:#fbfbfc;}
.rtx form.sent .wpcf7-response-output{border-left-color:#2f9e44!important;}

/* 実際のフォームは dl/dt/dd 組み。ラベルは dt>p、必須マークは dt>p>span。 */
.rtx .isv-contactform{margin-top:10px;}
.rtx .isv-contactform h3{margin:0 0 30px;padding:0;border:none;
  font-size:clamp(17px,2.2vw,21px);color:var(--ink);}
.rtx .wpcf7-form dl{display:grid;grid-template-columns:31% 1fr;gap:0 26px;align-items:start;
  margin:0;padding:18px 0;border-bottom:1px solid var(--hair);}
.rtx .wpcf7-form dl:first-of-type{border-top:1px solid var(--hair);}
.rtx .wpcf7-form dt,.rtx .wpcf7-form dd{margin:0;}
.rtx .wpcf7-form dt{padding-top:13px;}
.rtx .wpcf7-form dt p{margin:0;font-size:13.5px;font-weight:700;color:var(--ink);line-height:1.7;}
/* CF7側は "*" を出力している。文字を潰して「必須」に差し替える。 */
.rtx .wpcf7-form dt p span{display:inline-block;margin-left:8px;padding:2px 7px;font-size:0;
  letter-spacing:.06em;color:var(--w);background:var(--org);vertical-align:1px;}
.rtx .wpcf7-form dt p span::before{content:"必須";font-size:10.5px;font-weight:700;}
.rtx .wpcf7-form dd p{margin:0;}
.rtx .wpcf7-form .wpcf7-form-control-wrap{display:block;}

/* 送信ボタンの行 */
.rtx .isv-contactform > p:last-child{margin:34px 0 0;text-align:center;}

@media(max-width:700px){
  .rtx .wpcf7-form dl{grid-template-columns:1fr;gap:9px;padding:16px 0;}
  .rtx .wpcf7-form dt{padding-top:0;}
  .rtx input[type=submit],.rtx .wpcf7-submit{width:100%;min-width:0;}
}

/* 表組みで作られたフォームにも一応耐える */
.rtx .wpcf7-form table{width:100%;border-collapse:collapse;}
.rtx .wpcf7-form table th,.rtx .wpcf7-form table td{padding:16px 0;vertical-align:top;
  border-bottom:1px solid var(--hair);text-align:left;}
.rtx .wpcf7-form table th{width:31%;font-size:13px;font-weight:700;}

/* 一般の表（会社概要など、固定ページ本文内） */
.rtx table{width:100%;border-collapse:collapse;margin:26px 0;font-size:13.5px;}
.rtx table th,.rtx table td{border:1px solid var(--hair);padding:13px 15px;text-align:left;}
.rtx table th{background:#f7f8f9;font-weight:700;}

/* 本文の基本組み（汎用固定ページ・記事詳細で使う） */
.rtx{font-size:15px;line-height:2.05;color:var(--ink2);}
.rtx h2{font-size:clamp(18px,2.4vw,25px);line-height:1.6;color:var(--ink);
  margin:52px 0 20px;padding-left:15px;border-left:3px solid var(--org);}
.rtx h3{font-size:clamp(16px,2vw,19px);line-height:1.65;color:var(--ink);margin:38px 0 14px;}
.rtx h2:first-child,.rtx h3:first-child{margin-top:0;}
.rtx p{margin:0 0 20px;}
.rtx ul,.rtx ol{margin:0 0 22px;padding-left:1.4em;}
.rtx li{margin-bottom:8px;}
.rtx a{color:var(--org);text-decoration:underline;text-underline-offset:3px;}
.rtx a:hover{text-decoration:none;}
.rtx strong{color:var(--ink);font-weight:700;}
.rtx img{max-width:100%;height:auto;}

/* 旧記事(Gutenberg)の配置クラス。テーマ側でwide/fullは持たないので幅を抑える。 */
.rtx .alignfull,.rtx .alignwide{max-width:100%;margin-left:0;margin-right:0;}
.rtx .aligncenter{margin-left:auto;margin-right:auto;text-align:center;}
.rtx .alignleft{float:left;margin:4px 24px 18px 0;max-width:48%;}
.rtx .alignright{float:right;margin:4px 0 18px 24px;max-width:48%;}
.rtx::after{content:"";display:block;clear:both;}
.rtx .wp-block-video video,.rtx video{max-width:100%;height:auto;}
.rtx .wp-block-embed__wrapper iframe{max-width:100%;}
.rtx .wp-block-heading{scroll-margin-top:90px;}
@media(max-width:600px){
  .rtx .alignleft,.rtx .alignright{float:none;margin:18px 0;max-width:100%;}
}
