@charset "UTF-8";
/*!
Theme Name: kogakogyo07
Description: 古賀工業 オリジナルテーマ（テンプレ①ベース／白×黒・写真で色を差す）
Version: 2.0.0
*/
/* =========================================================
   古賀工業 ― テンプレ①ベース（白×黒／写真で色を差す）
   BP: pc 1441px / tab 1024px / sp 768px
   ※ SPメニュー切替のみ900px（ナビ6項目のため）
   ========================================================= */

/* ---------- トークン ---------- */
:root{
  --black:#000;
  --ink:#222;          /* 本文 */
  --steel:#7d8286;     /* 和文サブ見出し */
  --line:#cfcfcf;
  --mist:#f5f5f5;      /* 薄グレー面 */
  --white:#fff;
  --dark1:#4a4a4a;     /* ダークセクション グラデ上 */
  --dark2:#2e2e2e;     /* ダークセクション グラデ下 */
  --req:#c8161d;       /* フォーム：必須（赤） */
  --opt:#1f5fbf;       /* フォーム：任意（青） */
  --en:"Marcellus", "Times New Roman", serif;
  --jp:"Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  --wrap:1100px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--jp);color:var(--ink);background:var(--white);font-size:15px;line-height:1.95;letter-spacing:.04em;-webkit-font-smoothing:antialiased;overflow-x:clip}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #000;outline-offset:3px}
.wrap{width:min(var(--wrap),88%);margin:0 auto}
.en{font-family:var(--en);letter-spacing:.06em}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* ---------- 改行制御（段落ち・1文字だけの行を防ぐ） ---------- */
h1,h2,h3,.lead,.c-lead,.ttl .ja,.hero-copy .ja,.hero-copy .sub,.tile-lb,.welcome li,.w-cat{word-break:auto-phrase;text-wrap:balance}
p,li,td,small{text-wrap:pretty}
p,td,li,dd{overflow-wrap:anywhere;line-break:strict}
.ib{display:inline-block}
.br_sp{display:none}
@media (max-width:768px){
  .br_pc{display:none}
  .br_sp{display:inline}
}

/* ---------- 見出し：配管エルボー・ライン（本案件のシグネチャ／直線に戻さない） ---------- */
.ttl{position:relative;margin:0 0 44px;padding-bottom:12px;font-weight:500}
.ttl .en{display:block;font-size:clamp(28px,3.2vw,40px);line-height:1.15;color:var(--black)}
.ttl .ja{display:block;font-size:13px;font-weight:700;color:var(--steel);letter-spacing:.2em;margin-top:6px;padding-left:.2em;line-height:1.7}
.ttl::before{content:"";position:absolute;left:0;bottom:-3px;width:6px;height:8px;background:var(--black)} /* 管端のキャップ */
.ttl::after{content:"";position:absolute;left:0;right:0;bottom:-16px;height:16px;border-top:2px solid var(--black);border-right:2px solid var(--black);border-top-right-radius:14px} /* エルボーで下へ抜ける */
.ttl.is-white .en{color:#fff}
.ttl.is-white .ja{color:#c9cdd0}
.ttl.is-white::before{background:#fff}
.ttl.is-white::after{border-color:#fff}
.ttl.is-center{text-align:center;display:table;margin-left:auto;margin-right:auto;padding-right:28px}

/* ---------- ボタン ---------- */
.btn{display:inline-flex;align-items:center;gap:14px;background:var(--black);color:#fff;font:inherit;font-size:13px;font-weight:700;letter-spacing:.14em;padding:13px 30px 13px 34px;border:1px solid var(--black);border-radius:0;cursor:pointer;transition:background .25s,color .25s}
.btn::after{content:"";width:22px;height:8px;border-bottom:1px solid currentColor;border-right:1px solid currentColor;transform:skewX(45deg);margin-top:-6px}
.btn:hover{background:#fff;color:var(--black)}
.btn.is-line{background:transparent;color:var(--black)}
.btn.is-line:hover{background:var(--black);color:#fff}
.btn.is-white{background:#fff;color:var(--black);border-color:#fff}
.btn.is-white:hover{background:transparent;color:#fff}

/* ---------- ヘッダー ---------- */
.hd{position:absolute;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:22px 3.2%}
.hd.is-solid{position:sticky;top:0;background:rgba(255,255,255,.97);border-bottom:1px solid #e6e6e6;padding:14px 3.2%}
/* TOP：写真の上では透明、スクロールしたら白に切り替えて追従 */
.hd.is-top{position:fixed;border-bottom:1px solid transparent;transition:background .35s,padding .35s,border-color .35s}
.hd.is-top.is-solid{position:fixed;border-bottom-color:#e6e6e6}
.admin-bar .hd{top:32px}
.admin-bar .hd.is-solid{top:32px}
.logo{display:flex;align-items:center;gap:12px;color:#fff}
.hd.is-solid .logo{color:var(--black)}
.logo svg{width:52px;height:auto;flex:none}
.logo .logo-img{width:auto;height:44px}
.logo .l-ja{display:block;font-weight:900;font-size:21px;letter-spacing:.2em;line-height:1.1;white-space:nowrap}
.logo .l-en{display:block;font-family:var(--en);font-size:10px;letter-spacing:.34em;opacity:.85;margin-top:3px;white-space:nowrap}
.gnav ul{display:flex;gap:34px;list-style:none;margin:0;padding:0}
.gnav a{font-size:13px;font-weight:500;color:#fff;letter-spacing:.12em;position:relative;padding:6px 0;white-space:nowrap}
.hd.is-solid .gnav a{color:var(--ink)}
.gnav a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:currentColor;transition:right .3s}
.gnav a:hover::after,.gnav a.is-current::after{right:0}
.gnav .nav-contact a{border:1px solid currentColor;padding:8px 18px}
.gnav .nav-contact a::after{display:none}
.menu-btn{display:none;background:none;border:0;width:44px;height:44px;cursor:pointer;position:relative;color:#fff}
.hd.is-solid .menu-btn{color:#000}
.menu-btn span{position:absolute;left:10px;right:10px;height:2px;background:currentColor;transition:.3s}
.menu-btn span:nth-child(1){top:15px}
.menu-btn span:nth-child(2){top:21px}
.menu-btn span:nth-child(3){top:27px}
body.menu-open .menu-btn{color:#fff}
body.menu-open .menu-btn span:nth-child(1){top:21px;transform:rotate(45deg)}
body.menu-open .menu-btn span:nth-child(2){opacity:0}
body.menu-open .menu-btn span:nth-child(3){top:21px;transform:rotate(-45deg)}

/* ---------- CONTACT帯 ---------- */
.cta{position:relative;color:#fff;text-align:center;padding:90px 0 80px;background:var(--cta-bg) center/cover}
.cta::before{content:"";position:absolute;inset:0;background:rgba(0,0,0,.72)}
.cta .wrap{position:relative}
.cta-btns{display:grid;grid-template-columns:1fr 1fr;gap:12%;max-width:880px;margin:10px auto 34px}
.cta-btn{display:flex;align-items:center;justify-content:center;gap:12px;padding:14px 10px;font-size:17px;letter-spacing:.1em;transition:.25s}
.cta-btn svg{width:18px;height:18px}
.cta-btn.tel{background:#fff;color:#000;font-family:var(--en);font-size:20px}
.cta-btn.mail{border:1px solid #fff;color:#fff;font-family:var(--en)}
.cta-btn.mail:hover{background:#fff;color:#000}
.cta-info{font-size:13px;line-height:2.1;margin:0}
.cta-info .sep{margin:0 .8em}
a.tel-link{cursor:default}

/* ---------- フッター ---------- */
.ft{background:#000;color:#bbb;padding:64px 0 26px;font-size:12px}
.ft-top{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;padding-bottom:40px;border-bottom:1px solid #333}
.ft .logo{color:#fff}
.ft-addr{margin:18px 0 0;line-height:2}
.ft-nav ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,auto);gap:10px 44px}
.ft-nav a{color:#ddd}
.ft-nav a:hover{color:#fff;text-decoration:underline}
.copy{text-align:center;margin:24px 0 0;font-family:var(--en);letter-spacing:.12em;color:#888}
.pagetop{position:fixed;right:22px;bottom:calc(80px + env(safe-area-inset-bottom,0px));width:46px;height:46px;background:#000;border:1px solid #555;display:grid;place-items:center;z-index:40;opacity:0;pointer-events:none;transition:opacity .3s;cursor:pointer}
.pagetop.is-show{opacity:1;pointer-events:auto}
.pagetop::before{content:"";width:10px;height:10px;border-top:2px solid #fff;border-left:2px solid #fff;transform:rotate(45deg);margin-top:5px}

/* ---------- 下層ページ共通 ---------- */
.ph{position:relative;height:clamp(240px,26vw,360px);background:#000 var(--ph) center/cover;display:flex;align-items:center;justify-content:center;color:#fff;text-align:center;padding:0 6%}
.ph::before{content:"";position:absolute;inset:0;background:rgba(0,0,0,.5)}
.ph h1{position:relative;margin:0;font-weight:500}
.ph h1 .en{display:block;font-size:clamp(34px,4.4vw,56px);line-height:1.1}
.ph h1 .ja{display:block;font-size:14px;letter-spacing:.3em;margin-top:10px;padding-left:.3em}
.bread{font-size:12px;color:#777;padding:14px 0;border-bottom:1px solid #eee}
.bread a{text-decoration:underline}
.bread span{margin:0 8px}
.sec{padding:100px 0}
.sec.is-mist{background:var(--mist)}
.sec-lead{max-width:760px;margin:0 0 50px}
.sec-lead.is-wide{max-width:none}
.tbl{width:100%;border-collapse:collapse;border-top:2px solid #000}
.tbl th,.tbl td{border-bottom:1px solid var(--line);padding:22px 20px;text-align:left;vertical-align:top;font-size:14px}
.tbl th{width:24%;font-weight:700;color:#000;background:#fafafa}
.tbl td ul{margin:0;padding-left:1.2em}
.flow{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:0;counter-reset:f}
.flow li{position:relative;padding:28px 26px 30px;border-top:2px solid #000;counter-increment:f}
.flow li::before{content:counter(f,decimal-leading-zero);font-family:var(--en);font-size:34px;color:#000;display:block;line-height:1;margin-bottom:14px}
.flow li::after{content:"";position:absolute;top:-6px;left:0;width:10px;height:10px;background:#000;border-radius:50%}
.flow h3{margin:0 0 8px;font-size:16px;color:#000}
.flow p{margin:0;font-size:13px;line-height:1.85}

/* =========================================================
   tab 1024px
   ========================================================= */
@media (max-width:1024px){
  .gnav ul{gap:20px}
  .gnav a{font-size:12px}
  .flow{grid-template-columns:1fr 1fr;gap:10px 24px}
}
@media (max-width:900px){
  .menu-btn{display:block;z-index:60}
  .gnav{position:fixed;inset:0;background:#000;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s;z-index:55}
  body.menu-open{overflow:hidden}
  body.menu-open .gnav{opacity:1;visibility:visible}
  .gnav ul{flex-direction:column;align-items:center;gap:26px}
  .gnav a,.hd.is-solid .gnav a{color:#fff;font-size:16px}
}
@media (max-width:782px){
  .admin-bar .hd,.admin-bar .hd.is-solid{top:46px}
}
/* =========================================================
   sp 768px
   ========================================================= */
@media (max-width:768px){
  body{font-size:14px}
  .hd,.hd.is-solid{padding:12px 4%}
  .logo svg{width:42px}
  .logo .l-ja{font-size:17px}
  .ttl{margin-bottom:40px}
  .card .ttl,.svc-txt .ttl{margin-bottom:34px}
  .cta{padding:70px 0 64px}
  .cta-btns{grid-template-columns:1fr;gap:14px}
  .cta-info .sep{display:none}
  .cta-info .ib{display:block}
  .ft-top{flex-direction:column}
  .ft-nav ul{gap:10px 30px}
  .sec{padding:70px 0}
  .sec-lead{margin-bottom:40px}
  .tbl th,.tbl td{display:block;width:100%;padding:12px 14px}
  .tbl th{border-bottom:0;padding-bottom:6px}
  .flow{grid-template-columns:1fr}
  .flow li{padding:24px 4px 26px 0}
}

/* ---------- ヒーロー（3枚クロスフェード／左下にコピー） ---------- */
.hero{position:relative;height:100vh;min-height:620px;max-height:1000px;overflow:hidden;background:#000;color:#fff}
.hero .slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transform:scale(1.08);transition:opacity 1.8s ease,transform 8s linear}
.hero .slide.is-on{opacity:1;transform:scale(1)}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.62) 0%,rgba(0,0,0,.25) 55%,rgba(0,0,0,.1) 100%),linear-gradient(180deg,rgba(0,0,0,.4) 0%,rgba(0,0,0,0) 30%,rgba(0,0,0,.55) 100%)}
.hero-copy{position:absolute;z-index:2;left:6%;right:6%;bottom:15%}
.hero-label{display:flex;align-items:center;gap:16px;font-size:12px;letter-spacing:.24em;margin:0 0 22px;opacity:.9}
.hero-label::before{content:"";width:48px;height:1px;background:currentColor}
.hero-en{font-size:clamp(56px,9.4vw,150px);line-height:.95;margin:0;letter-spacing:.02em}
.hero-copy .ja{position:relative;display:inline-block;font-size:clamp(18px,2vw,26px);font-weight:500;letter-spacing:.3em;margin:34px 0 0;padding:14px 46px 0 0}
.hero-copy .ja::before{content:"";position:absolute;left:0;right:0;top:0;height:18px;border-top:2px solid #fff;border-right:2px solid #fff;border-top-right-radius:14px} /* エルボー */
.hero-copy .sub{font-size:12px;letter-spacing:.2em;margin:26px 0 0;opacity:.85}
.hero-pager{position:absolute;z-index:2;right:6%;bottom:15%;display:flex;flex-direction:column;align-items:flex-end;gap:14px}
.hero-num{font-size:13px;letter-spacing:.2em;opacity:.85}
.hero-num b{font-weight:400;font-size:22px;opacity:1}
.hero-bars{display:flex;gap:6px}
.hero-bars i{display:block;width:36px;height:2px;background:rgba(255,255,255,.3);transition:background .6s}
.hero-bars i.is-on{background:#fff}
.hero-scroll{position:absolute;z-index:2;left:50%;transform:translateX(-50%);bottom:0;font-size:11px;letter-spacing:.3em;writing-mode:vertical-rl;padding-bottom:96px;opacity:.85}
.hero-scroll::before{content:"";position:absolute;left:50%;bottom:0;width:1px;height:80px;background:rgba(255,255,255,.35)}
.hero-scroll::after{content:"";position:absolute;left:50%;bottom:40px;width:1px;height:40px;background:#fff;animation:drip 2.2s ease-in-out infinite}
@keyframes drip{from{bottom:80px;height:0}50%{height:40px}to{bottom:0;height:0}}

/* ---------- コンセプト ---------- */
.intro{position:relative;padding:150px 0 110px;overflow:hidden}
.intro-bg{position:absolute;top:44px;left:-1%;margin:0;font-size:clamp(80px,15vw,230px);line-height:1;white-space:nowrap;color:transparent;-webkit-text-stroke:1px #dcdcdc;pointer-events:none;user-select:none}
.intro-in{position:relative;display:grid;grid-template-columns:1fr 46%;gap:8%;align-items:start}
.intro-txt .lead{font-size:clamp(18px,1.7vw,22px);font-weight:700;letter-spacing:.1em;color:var(--black);margin:0 0 20px}
.intro-txt p{margin:0 0 1.2em}
.intro-txt .btn{margin-top:.6em}
.intro-img{position:relative;margin-top:70px}
.intro-img img{width:100%;aspect-ratio:4/5;object-fit:cover}
.intro-img::before{content:"";position:absolute;right:-26px;top:-26px;width:62%;height:55%;border-top:2px solid #000;border-right:2px solid #000;border-top-right-radius:26px;z-index:-1} /* 配管エルボーの枠 */
.points{list-style:none;padding:0;margin-top:100px;display:grid;grid-template-columns:repeat(3,1fr);gap:0 40px}
.points li{border-top:1px solid #000;padding:26px 0 0;position:relative}
.points li::before{content:"";position:absolute;left:0;top:-4px;width:7px;height:7px;background:#000;border-radius:50%}
.p-num{display:block;font-size:clamp(34px,3.8vw,52px);line-height:1.1;color:#000}
.p-txt{display:block;font-size:13px;font-weight:700;letter-spacing:.12em;color:var(--steel);margin-top:8px}

/* ---------- 全幅帯（画像自体をグレースケールで入稿） ---------- */
.band{position:relative;height:clamp(260px,36vw,500px);background:var(--band) center/cover fixed}
@supports (-webkit-touch-callout:none){.band{background-attachment:scroll}}
.band-cap{position:absolute;left:6%;bottom:28px;margin:0;color:#fff;font-size:clamp(16px,2.2vw,30px);letter-spacing:.06em;text-shadow:0 2px 18px rgba(0,0,0,.5)}

/* ---------- 事業内容（番号リスト） ---------- */
.svc-list{background:linear-gradient(180deg,#1c1c1c,#0d0d0d);color:#fff;padding:110px 0 120px}
.svc-list-head{display:grid;grid-template-columns:auto 1fr;gap:40px 8%;align-items:end;margin-bottom:60px}
.svc-list-head .ttl{margin-bottom:16px;min-width:260px}
.svc-list-lead{margin:0;color:#c9cdd0;font-size:14px}
.svc-rows{list-style:none;margin:0;padding:0;border-top:1px solid #444}
.svc-rows a{display:grid;grid-template-columns:90px 1fr 220px 60px;align-items:center;gap:0 30px;padding:24px 0;border-bottom:1px solid #444;transition:padding .35s,background .35s}
.sr-num{font-size:26px;color:#777;transition:color .35s}
.sr-ttl{font-size:clamp(18px,2vw,26px);font-weight:700;letter-spacing:.12em}
.sr-img{aspect-ratio:16/9;overflow:hidden}
.sr-img img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) brightness(.8);transition:filter .5s,transform .8s}
.sr-arrow{justify-self:end;width:44px;height:44px;border:1px solid #666;border-radius:50%;position:relative;transition:background .35s,border-color .35s}
.sr-arrow::before{content:"";position:absolute;left:50%;top:50%;width:8px;height:8px;border-top:1px solid #fff;border-right:1px solid #fff;transform:translate(-65%,-50%) rotate(45deg)}
.svc-rows a:hover{padding-left:16px;background:rgba(255,255,255,.04)}
.svc-rows a:hover .sr-num{color:#fff}
.svc-rows a:hover .sr-img img{filter:none;transform:scale(1.05)}
.svc-rows a:hover .sr-arrow{background:#fff;border-color:#fff}
.svc-rows a:hover .sr-arrow::before{border-color:#000}
.svc-list-more{margin:50px 0 0;text-align:right}

/* ---------- 強み（Welding） ---------- */
.feature{display:grid;grid-template-columns:56% 1fr;background:var(--mist);align-items:stretch}
.feature-img{position:relative;min-height:560px}
.feature-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.feature-txt{padding:90px 9% 90px 7%;align-self:center}
.f-no{display:flex;align-items:center;gap:14px;font-size:12px;letter-spacing:.24em;color:var(--steel);margin:0 0 18px}
.f-no::before{content:"";width:36px;height:1px;background:currentColor}
.feature-txt .lead{font-size:clamp(18px,1.7vw,22px);font-weight:700;letter-spacing:.1em;color:#000;margin:0 0 16px}
.feature-txt p{margin:0 0 1em}
.feature-txt .btn{margin-top:.6em}

/* ---------- 対応地域／協力会社募集 ---------- */
.duo{padding:120px 0 130px}
.duo-in{display:grid;grid-template-columns:1fr 1fr;gap:0 7%}
.duo-item:nth-child(2){margin-top:120px}
.duo-img{aspect-ratio:3/2;overflow:hidden;margin-bottom:44px}
.duo-img img{width:100%;height:100%;object-fit:cover}
.duo-item p{margin:0 0 24px}

/* ---------- 3連リンクバナー ---------- */
.tiles{display:grid;grid-template-columns:repeat(3,1fr);background:var(--dark2)}
.tile{position:relative;aspect-ratio:1.6/1;overflow:hidden;display:block}
.tile img{width:100%;height:100%;object-fit:cover;transition:transform .8s}
.tile:hover img{transform:scale(1.06)}
.tile::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.05) 40%,rgba(0,0,0,.45) 100%);z-index:1;transition:background .4s}
.tile::after{content:"";position:absolute;inset:14px;border:1px solid rgba(255,255,255,0);z-index:2;transition:border-color .4s,inset .4s;pointer-events:none}
.tile:hover::after{inset:18px;border-color:rgba(255,255,255,.8)}
.tile-no{position:absolute;z-index:2;left:28px;top:22px;color:#fff;font-size:15px;letter-spacing:.2em}
.tile-no::after{content:"";display:inline-block;vertical-align:middle;width:28px;height:1px;background:#fff;margin-left:10px}
.tile-lb{position:absolute;z-index:2;left:50%;bottom:16%;transform:translateX(-50%);width:min(240px,72%);text-align:center}
.tile-lb .en{display:block;background:#fff;color:#000;font-size:17px;padding:6px 0 4px}
.tile-lb .ja{display:block;background:#000;color:#fff;font-size:11px;letter-spacing:.2em;padding:4px 0}
@media (max-width:1024px){
  .intro-in{grid-template-columns:1fr;gap:50px}
  .intro-img{margin-top:0;width:86%;margin-left:auto}
  .intro-img img{aspect-ratio:4/3}
  .svc-rows a{grid-template-columns:60px 1fr 160px 50px;gap:0 20px}
  .feature{grid-template-columns:1fr}
  .feature-img{min-height:0;aspect-ratio:16/10}
  .feature-txt{padding:60px 6% 70px}
}
@media (max-width:768px){
  .hero{height:88svh;min-height:540px}
  .hero-copy{bottom:17%}
  .hero-label{font-size:10px;letter-spacing:.14em;gap:10px}
  .hero-label::before{width:24px}
  .hero-copy .ja{letter-spacing:.2em;padding-right:34px}
  .hero-copy .sub{font-size:11px;letter-spacing:.1em;line-height:1.8}
  .hero-pager{left:6%;right:auto;bottom:6%;flex-direction:row;align-items:center}
  .hero-num b{font-size:18px}
  .hero-bars i{width:24px}
  .intro{padding:110px 0 80px}
  .intro-bg{top:34px}
  .hero-scroll{display:none}
  .intro-img{width:100vw;margin-left:calc(50% - 50vw)}
  .intro-img::before{display:none}
  .points{grid-template-columns:1fr;gap:28px;margin-top:70px}
  .points li{display:flex;align-items:baseline;gap:18px;padding-top:18px}
  .p-num{flex:none;white-space:nowrap;font-size:32px}
  .p-txt{margin-top:0;flex:1;min-width:0}
  .band{background-attachment:scroll}
  .band-cap{bottom:18px}
  .svc-list{padding:80px 0 90px}
  .svc-list-head{grid-template-columns:1fr;margin-bottom:40px}
  .svc-rows a{grid-template-columns:40px 1fr 36px;gap:0 12px;padding:20px 0}
  .sr-num{font-size:18px}
  .sr-img{display:none}
  .sr-arrow{width:34px;height:34px}
  .svc-rows a:hover{padding-left:0}
  .svc-list-more{text-align:center;margin-top:40px}
  .duo{padding:80px 0 90px}
  .duo-in{grid-template-columns:1fr;gap:70px}
  .duo-item:nth-child(2){margin-top:0}
  .duo-img{margin-bottom:34px}
  .tiles{grid-template-columns:1fr}
  .tile{aspect-ratio:2.2/1}
  .tile-no{left:20px;top:16px;font-size:13px}
}

/* ---------- 会社概要 ---------- */
.msg{display:grid;grid-template-columns:1fr 38%;gap:7%;align-items:start}
.msg.is-noimg{grid-template-columns:1fr}
.msg.is-noimg .msg-sign{text-align:right}
.msg h3{font-size:clamp(20px,2vw,26px);line-height:1.7;margin:0 0 28px;color:#000;letter-spacing:.08em}
.msg p{margin:0 0 1.3em}
.msg-sign{text-align:right;margin-top:30px;font-size:13px}
.msg-sign strong{font-size:20px;letter-spacing:.2em;margin-left:14px;color:#000;white-space:nowrap}
.msg-img{aspect-ratio:3/4;overflow:hidden;box-shadow:12px 12px 0 #000}
.msg-img img{width:100%;height:100%;object-fit:cover}
.map{margin-top:50px;aspect-ratio:16/6;background:#e4e4e4}
.map iframe{width:100%;height:100%;border:0;display:block}

@media (max-width:768px){
  .msg{grid-template-columns:1fr;gap:40px}
  .msg-img{order:-1;aspect-ratio:4/3;box-shadow:8px 8px 0 #000}
  .map{aspect-ratio:4/3;margin-top:36px}
}

/* ---------- 事業内容 ---------- */
.svc{display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:center;margin-bottom:80px}
.svc:last-child{margin-bottom:0}
.svc-img{aspect-ratio:4/3;overflow:hidden}
.svc-img img{width:100%;height:100%;object-fit:cover}
.svc-txt{padding:40px 0 40px 60px;align-self:center}
.svc.is-rev .svc-img{order:2}
.svc.is-rev .svc-txt{padding:40px 60px 40px 0}
.svc-txt h3{font-size:clamp(19px,1.8vw,23px);margin:0 0 10px;color:#000;letter-spacing:.1em}
.svc-txt p{margin:0}
.svc-txt .tags{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:18px 0 0}
.svc-txt .tags li{font-size:12px;border:1px solid #000;padding:2px 12px}
.sub-svc{display:grid;grid-template-columns:1fr 1fr;gap:30px}
.sub-svc > div{background:#fff;border:1px solid #000;padding:34px 36px;position:relative}
.sub-svc > div::after{content:"";position:absolute;right:-1px;top:-1px;width:26px;height:26px;border-left:1px solid #000;border-bottom:1px solid #000;background:var(--mist)}
.sub-svc h3{margin:0 0 10px;font-size:18px;color:#000;letter-spacing:.1em}
.sub-svc p{margin:0;font-size:14px}

@media (max-width:1024px){
  .svc,.svc.is-rev{grid-template-columns:1fr}
  .svc.is-rev .svc-img{order:0}
  .svc-txt,.svc.is-rev .svc-txt{padding:30px 0 0}
  .svc-img{aspect-ratio:16/10}
}
@media (max-width:768px){
  .svc{margin-bottom:60px}
  .sub-svc{grid-template-columns:1fr;gap:20px}
  .sub-svc > div{padding:28px 24px}
}

/* ---------- 施工事例 ---------- */
.works{display:grid;grid-template-columns:repeat(3,1fr);gap:44px 30px}
.work figure{margin:0}
.work .w-img{aspect-ratio:4/3;overflow:hidden;background:#ddd}
.work .w-img img{width:100%;height:100%;object-fit:cover;transition:transform .7s}
.work:hover .w-img img{transform:scale(1.05)}
.work figcaption{padding-top:14px}
.work .w-cat{display:inline-block;font-size:11px;background:#000;color:#fff;padding:1px 10px;letter-spacing:.1em}
.work h3{font-size:15px;margin:8px 0 2px;color:#000;line-height:1.6}
.work .w-area{font-size:12px;color:#777;margin:0}
.empty{text-align:center;padding:40px 0}

@media (max-width:1024px){
  .works{grid-template-columns:1fr 1fr}
}
@media (max-width:768px){
  .works{grid-template-columns:1fr;gap:34px}
}

/* ---------- 協力会社募集 ---------- */
.pt-lead{display:grid;grid-template-columns:1fr 1fr;gap:7%;align-items:center}
.pt-lead h3{font-size:clamp(20px,2.1vw,27px);line-height:1.7;margin:0 0 20px;color:#000;letter-spacing:.08em}
.pt-lead p{margin:0}
.pt-types{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:10px}
.pt-types > div{background:#000;color:#fff;padding:40px 38px}
.pt-types .en{font-size:24px;display:block}
.pt-types h3{font-size:18px;margin:6px 0 14px;letter-spacing:.12em}
.pt-types p{margin:0;font-size:14px;color:#ddd}
.welcome{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.welcome li{background:#fff;border-left:4px solid #000;padding:22px 24px;font-weight:700;color:#000;font-size:15px}
.recruit-txt{max-width:860px}
.pt-cta{text-align:center;margin:60px 0 0}

@media (max-width:1024px){
  .welcome{grid-template-columns:1fr}
}
@media (max-width:768px){
  .pt-lead{grid-template-columns:1fr;gap:40px}
  .pt-types{grid-template-columns:1fr;gap:20px}
  .pt-types > div{padding:30px 24px}
  .welcome{gap:12px}
  .welcome li{padding:16px 18px}
  .pt-cta{margin-top:44px}
  .pt-cta .btn{padding:13px 22px 13px 24px;letter-spacing:.08em}
}

/* ---------- お問い合わせ ---------- */
.ct-tel{display:grid;grid-template-columns:1fr auto;gap:20px 40px;align-items:center;border:2px solid #000;padding:34px 40px;margin-bottom:70px}
.ct-tel-lb{margin:0 0 4px;font-weight:700;color:#000}
.ct-tel .num{font-family:var(--en);font-size:clamp(30px,3.6vw,42px);color:#000;line-height:1.1;display:block;white-space:nowrap}
.ct-tel small{display:block;font-size:13px;color:#555;margin-top:6px}

/* 手順表示（入力→確認→完了） */
.steps{list-style:none;margin:0 0 30px;padding:0;display:flex;counter-reset:st;border-bottom:1px solid var(--line)}
.steps li{flex:1;text-align:center;font-size:13px;letter-spacing:.14em;color:#999;padding:0 0 12px;position:relative;counter-increment:st}
.steps li::before{content:"0" counter(st);font-family:var(--en);font-size:12px;margin-right:.6em}
.steps li.is-on{color:#000;font-weight:700}
.steps li.is-on::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;background:#000}

/* フォーム（Contact Form 7） */
.form{border-top:2px solid #000}
.f-row{display:grid;grid-template-columns:28% 1fr;border-bottom:1px solid var(--line)}
.f-lb{padding:24px 20px;font-weight:700;color:#000;background:#fafafa;font-size:14px;display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;margin:0}
.f-in{padding:18px 20px;min-width:0;align-self:center}
/* 必須＝赤／任意＝青 */
.red,.blue{display:inline-block;font-size:11px;font-weight:700;line-height:1;letter-spacing:.1em;padding:4px 8px 3px;color:#fff;flex:none}
.red{background:var(--req)}
.blue{background:var(--opt)}
.form input[type=text],.form input[type=email],.form input[type=tel],.form select,.form textarea{width:100%;font:inherit;font-size:16px;padding:12px 14px;border:1px solid #bbb;border-radius:0;background:#fff;color:var(--ink);-webkit-appearance:none;appearance:none}
.form input:focus,.form textarea:focus{border-color:#000}
.form textarea{min-height:200px;resize:vertical;display:block}
.form ::placeholder{color:#aaa}
.wpcf7-form-control-wrap{display:block}
.wpcf7-radio{display:flex;flex-wrap:wrap;gap:10px 26px}
.wpcf7-radio .wpcf7-list-item{margin:0}
.wpcf7-radio label,.wpcf7-acceptance label{display:inline-flex;gap:8px;align-items:center;cursor:pointer;font-size:14px}
.wpcf7-radio input,.wpcf7-acceptance input{width:18px;height:18px;margin:0;accent-color:#000;flex:none}
.agree{text-align:center;margin:40px 0 30px;font-size:14px}
.agree .wpcf7-list-item{margin:0}
.agree a{text-decoration:underline}
.f-submit{text-align:center;display:flex;flex-wrap:wrap;justify-content:center;gap:16px}
.f-submit .btn,.f-submit input[type=submit],.f-submit input[type=button],.f-submit button{font:inherit;font-weight:700;font-size:15px;letter-spacing:.14em;padding:18px 70px;cursor:pointer;border-radius:0;-webkit-appearance:none;appearance:none}
.f-submit input[type=submit]{background:#000;color:#fff;border:1px solid #000}
.f-submit input[type=submit]:hover{background:#fff;color:#000}
.f-submit input[type=button],.f-submit .wpcf7-previous{background:#fff;color:#000;border:1px solid #000}
.f-submit input[type=button]:hover,.f-submit .wpcf7-previous:hover{background:#000;color:#fff}
.wpcf7-spinner{display:block;margin:10px auto 0}
.wpcf7-not-valid-tip{color:var(--req);font-size:13px;margin-top:6px;display:block}
.wpcf7 form .wpcf7-response-output{margin:30px 0 0;padding:14px 18px;border:1px solid #000;font-size:14px;text-align:center}
.wpcf7 form.invalid .wpcf7-response-output,.wpcf7 form.unaccepted .wpcf7-response-output{border-color:var(--req);color:var(--req)}
/* 確認画面 */
.form.is-confirm .f-in{padding:24px 20px;white-space:pre-wrap;word-break:break-all}
.f-done{text-align:center;border:1px solid #000;padding:50px 30px}
.f-done p{margin:0 0 .6em}
.f-done .f-done-btn{margin:30px 0 0}

@media (max-width:768px){
  .ct-tel{grid-template-columns:1fr;padding:26px 22px;text-align:center;margin-bottom:56px}
  .ct-tel-ic{display:none}
  .steps li{font-size:12px;letter-spacing:.06em}
  .f-row{grid-template-columns:1fr}
  .f-lb{padding:14px 14px 10px}
  .f-in{padding:12px 14px 18px}
  .form.is-confirm .f-in{padding:10px 14px 18px}
  .wpcf7-radio{flex-direction:column;gap:10px}
  .agree{text-align:left;margin:30px 0 24px}
  .f-submit{flex-direction:column-reverse;align-items:stretch}
  .f-submit .btn,.f-submit input[type=submit],.f-submit input[type=button],.f-submit button{width:100%;padding:16px 20px}
  .f-done{text-align:left;padding:30px 20px}
  .f-done .f-done-btn{text-align:center}
}

/* ---------- プライバシーポリシー ---------- */
.pp{max-width:860px}
.pp h2{font-size:18px;color:#000;margin:44px 0 12px;padding-left:14px;border-left:4px solid #000;line-height:1.6}
.pp p,.pp ul{font-size:14px;margin:0 0 1em}

@media (max-width:768px){
  .pp h2{font-size:16px;margin-top:36px}
}

