@charset "UTF-8";
/* =========================================================
   株式会社江川電機商会 ― テンプレ⑤ベース（深緑×黒／職人気質）
   BP: pc 1441px / tab 1024px / sp 768px
   ※各パーシャルは素のCSSとしても成立する書き方（ビルド環境がなくても
     style.css = 本ファイル＋パーシャルを連結したもの）
   ========================================================= */
:root{
  --moss:#1f3b2d;
  --moss-deep:#132a1f;
  --moss-mid:#2e5643;
  --moss-pale:#e9efeb;
  --accent:#8fbca2;
  --black:#000;
  --ink:#262826;
  --paper:#f2f3f1;
  --line:#cfd4d0;
  --white:#fff;
  --req:#c8102e;
  --opt:#1e5bb8;
  --en:"Oswald","Arial Narrow",sans-serif;
  --jp:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  --min:"Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
  --maru:"Zen Maru Gothic","Hiragino Maru Gothic ProN",sans-serif;
  --wrap:1120px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--jp);color:var(--ink);background:var(--white);font-size:15px;line-height:2;letter-spacing:.04em;-webkit-font-smoothing:antialiased;overflow-x:hidden}
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 var(--moss);outline-offset:3px}
.wrap{width:min(var(--wrap),88%);margin:0 auto}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* ---------- 改行・段落ち対策 ----------
   見出し：文節単位で折り返し＋行の長さを揃える
   本文：1文字だけの最終行（泣き別れ）を防ぐ */
h1,h2,h3,h4,.catch,.lead-min,.ttl .ja,.hero-copy .ja,.say,.peek-say{word-break:auto-phrase;text-wrap:balance}
p,li,td,th,dd,small,address,label{word-break:auto-phrase;text-wrap:pretty;line-break:strict;overflow-wrap:anywhere}
br.sp{display:none}

/* ---------- 稲妻ライン（ロゴの稲妻の段差を見出し線に） ---------- */
.bolt{display:block;width:132px;height:12px;background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 132 12'%3E%3Cpath d='M0 3.5H58L50 9.5H132' fill='none' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E") no-repeat center/100% 100%;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 132 12'%3E%3Cpath d='M0 3.5H58L50 9.5H132' fill='none' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E") no-repeat center/100% 100%}

/* ---------- 見出し（EN＋稲妻ライン＋JP） ---------- */
.ttl{margin:0 0 40px;color:var(--moss);font-weight:400}
.ttl .en{display:block;font-family:var(--en);font-weight:500;font-size:clamp(34px,4vw,52px);line-height:1;letter-spacing:.04em}
.ttl .bolt{margin:14px 0 10px}
.ttl .ja{display:block;font-size:14px;font-weight:700;letter-spacing:.2em;color:var(--ink);line-height:1.7}
.ttl.is-center{text-align:center}
.ttl.is-center .bolt{margin-left:auto;margin-right:auto}
.ttl.is-white,.ttl.is-white .ja{color:#fff}

/* ---------- ボタン ---------- */
.btn,.wpcf7-submit,.wpcf7-previous{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-width:230px;background:var(--moss);color:#fff;font-family:inherit;font-size:13px;font-weight:700;letter-spacing:.14em;line-height:1.6;padding:15px 34px;border:1px solid var(--moss);border-radius:0;cursor:pointer;transition:background .25s,color .25s}
.btn::after{content:"";flex:none;width:7px;height:7px;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor;transform:rotate(45deg)}
.btn:hover,.wpcf7-submit:hover{background:#fff;color:var(--moss)}
.btn.is-black{background:#000;border-color:#000}
.btn.is-black:hover{background:#fff;color:#000}
.btn.is-white{background:#fff;color:var(--moss);border-color:#fff}
.btn.is-white:hover{background:transparent;color:#fff}

/* ---------- 下層共通 ---------- */
.ph{position:relative;height:clamp(240px,26vw,360px);background:#000 var(--ph) center/cover;display:flex;align-items:center;color:#fff}
.ph::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(19,42,31,.9) 0%,rgba(19,42,31,.55) 60%,rgba(0,0,0,.25) 100%)}
.ph h1{position:relative;width:min(var(--wrap),88%);margin:0 auto;font-weight:400}
.ph h1 .en{display:block;font-family:var(--en);font-weight:500;font-size:clamp(40px,5.4vw,72px);line-height:1}
.ph h1 .bolt{color:var(--accent);margin:16px 0 10px}
.ph h1 .ja{display:block;font-size:15px;font-weight:700;letter-spacing:.24em;line-height:1.7}
.bread{font-size:12px;color:#6c746f;padding:14px 0;border-bottom:1px solid #e6e9e7;line-height:1.6}
.bread a{text-decoration:underline}
.bread span{margin:0 8px}
.sec{padding:100px 0}
.sec.pt0{padding-top:0}
.sec.is-paper{background:var(--paper)}
.sec.is-moss{background:var(--moss);color:#fff}
.lead-min{font-family:var(--min);font-weight:700;font-size:clamp(21px,2.2vw,28px);line-height:1.75;letter-spacing:.08em;color:#111;margin:0 0 24px}
.sec-lead{max-width:760px;margin:0 0 56px}
.sec-lead.is-wide{max-width:none}
.hl{background:linear-gradient(transparent 62%,#bcd9c6 62%)}

@media (max-width:1024px){
  .sec{padding:80px 0}
}
@media (max-width:768px){
  body{font-size:14px}
  br.pc{display:none}
  br.sp{display:inline}
  .sec{padding:64px 0}
  .ttl{margin-bottom:30px}
  .lead-min{font-size:18px;letter-spacing:.04em}
  .sec-lead{margin-bottom:40px}
  .btn{min-width:0;padding:14px 28px}
}

/* =========================================================
   ヘッダー（ロゴ左／TEL・メール・ハンバーガー右上）
   ロゴ部分とボタンの高さを --hd-h で揃える
   ========================================================= */
:root{--hd-h:72px}
/* TOP：画面上部に固定（ヒーロー上は透明、スクロール後に白背景） */
.hd{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:stretch;justify-content:space-between;height:var(--hd-h);pointer-events:none;transition:background .35s,box-shadow .35s}
.hd > *{pointer-events:auto}
.hd.is-scrolled{background:#fff;box-shadow:0 1px 0 #e3e6e3}
/* 下層ページ：最初から白背景で追従 */
.hd.is-solid{position:sticky;background:#fff;box-shadow:0 1px 0 #e3e6e3}
.logo .logo-img{transition:filter .35s}
.logo{display:flex;align-items:center;height:var(--hd-h);padding:0 0 0 3%}
.logo .logo-img{width:200px;height:auto;flex:none}
/* TOPのヒーロー上では白抜き */
.hd:not(.is-solid):not(.is-scrolled) .logo .logo-img{filter:brightness(0) invert(1)}
.hd-btns{display:flex;height:var(--hd-h)}
.hd-tel{display:flex;align-items:center;gap:10px;background:var(--moss);color:#fff;font-family:var(--en);font-size:18px;letter-spacing:.08em;line-height:1.2;padding:0 26px;height:var(--hd-h)}
.hd-tel small{font-family:var(--jp);font-size:10px;letter-spacing:.08em;opacity:.85;display:block;line-height:1.2;margin-top:3px}
.hd-tel svg,.hd-mail svg{width:17px;height:17px;flex:none}
.hd-mail{display:grid;place-items:center;width:var(--hd-h);height:var(--hd-h);background:#000;color:#fff}
.menu-btn{width:var(--hd-h);height:var(--hd-h);background:#1a1a1a;border:0;cursor:pointer;position:relative;color:#fff;padding:0}
/* 3本線はボタンの高さに関係なく中央 */
.menu-btn span{position:absolute;left:50%;width:22px;height:2px;margin-left:-11px;background:currentColor;transition:.3s}
.menu-btn span:nth-child(1){top:calc(50% - 8px)}
.menu-btn span:nth-child(2){top:calc(50% - 1px)}
.menu-btn span:nth-child(3){top:calc(50% + 6px)}
body.menu-open .menu-btn span:nth-child(1){top:calc(50% - 1px);transform:rotate(45deg)}
body.menu-open .menu-btn span:nth-child(2){opacity:0}
body.menu-open .menu-btn span:nth-child(3){top:calc(50% - 1px);transform:rotate(-45deg)}
body.menu-open{overflow:hidden}
.drawer{position:fixed;inset:0;z-index:45;background:var(--moss-deep);color:#fff;display:grid;place-items:center;opacity:0;visibility:hidden;transition:opacity .35s,visibility .35s}
body.menu-open .drawer{opacity:1;visibility:visible}
body.menu-open .hd{position:fixed}
.drawer ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.drawer a{display:flex;align-items:baseline;gap:22px;padding:10px 0;font-size:17px;font-weight:700;letter-spacing:.14em}
.drawer a .en{font-family:var(--en);font-weight:400;font-size:13px;letter-spacing:.14em;color:#9fb8aa;width:92px}
.drawer a:hover,.drawer a.is-current{color:#b9d6c5}

@media (max-width:1024px){
  .hd-tel small{display:none}
  .logo .logo-img{width:180px}
}
@media (max-width:768px){
  :root{--hd-h:56px}
  .logo{padding-left:4%}
  .logo .logo-img{width:140px}
  .hd-tel{width:var(--hd-h);padding:0;justify-content:center}
  .hd-tel .t-num{display:none}
}

/* =========================================================
   TOP
   ========================================================= */
/* ---------- メインビジュアル（3枚フェード） ---------- */
.hero{position:relative;height:100vh;min-height:620px;max-height:960px;overflow:hidden;background:#000;color:#fff}
.hero-slides{position:absolute;inset:0}
.hero-slide{position:absolute;inset:0;background-position:center;background-size:cover;opacity:0;transform:scale(1.08);transition:opacity 1.6s ease,transform 7.5s linear}
.hero-slide.is-active{opacity:1;transform:scale(1)}
.hero::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(19,42,31,.92) 0%,rgba(19,42,31,.62) 45%,rgba(0,0,0,.15) 100%)}
.hero-copy{position:absolute;z-index:2;left:8%;right:6%;top:52%;transform:translateY(-50%)}
.hero-copy .en{font-family:var(--en);font-weight:600;font-size:clamp(64px,10vw,150px);line-height:.9;letter-spacing:.01em;margin:0}
.hero-copy .en > span{display:block}
.hero-copy .en .dot{display:inline;color:var(--accent)}
.hero-copy .bolt{color:var(--accent);margin:30px 0 26px;width:180px;height:16px;animation:charge 1.4s .4s cubic-bezier(.6,0,.2,1) both}
.hero-copy .ja{font-family:var(--min);font-weight:700;font-size:clamp(22px,2.3vw,30px);line-height:1.7;letter-spacing:.12em;margin:0}
.hero-copy .sub{font-size:13px;letter-spacing:.16em;line-height:1.8;margin:20px 0 0;opacity:.85}
.hero-copy .sub span{display:inline-block}
.hero-dots{position:absolute;z-index:2;right:4%;bottom:6%;display:flex;gap:10px}
.hero-dots span{width:28px;height:2px;background:rgba(255,255,255,.35);transition:background .4s}
.hero-dots span.is-active{background:var(--accent)}
@keyframes charge{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}

/* ---------- 銘板プレート（配電盤のネームプレート風） ---------- */
.hero-plate{position:absolute;z-index:2;right:4%;bottom:12%;margin:0;padding:16px 22px 14px;min-width:250px;border:1px solid rgba(255,255,255,.4);background:rgba(10,24,17,.55);backdrop-filter:blur(3px);font-family:var(--en);letter-spacing:.14em;line-height:1.5;
  background-image:radial-gradient(circle at 7px 7px,rgba(255,255,255,.55) 2px,transparent 2.5px),radial-gradient(circle at calc(100% - 7px) 7px,rgba(255,255,255,.55) 2px,transparent 2.5px),radial-gradient(circle at 7px calc(100% - 7px),rgba(255,255,255,.55) 2px,transparent 2.5px),radial-gradient(circle at calc(100% - 7px) calc(100% - 7px),rgba(255,255,255,.55) 2px,transparent 2.5px)}
.hero-plate div{display:grid;grid-template-columns:62px 1fr;gap:10px;padding:4px 0}
.hero-plate div + div{border-top:1px solid rgba(255,255,255,.18)}
.hero-plate dt{font-size:10px;color:var(--accent)}
.hero-plate dd{margin:0;font-size:12px;color:#fff}

/* ---------- スクロール誘導 ---------- */
.hero-scroll{position:absolute;z-index:2;left:3%;bottom:0;writing-mode:vertical-rl;font-family:var(--en);font-size:11px;letter-spacing:.3em;color:rgba(255,255,255,.8);padding-bottom:96px}
.hero-scroll::after{content:"";position:absolute;left:50%;bottom:0;width:1px;height:80px;background:linear-gradient(var(--accent),var(--accent)) no-repeat top/100% 40%,rgba(255,255,255,.25);animation:scrollLine 2.2s cubic-bezier(.6,0,.2,1) infinite}
@keyframes scrollLine{0%{background-position:0 -40px}100%{background-position:0 90px}}

/* ---------- 数字で見る ---------- */
.nums{background:#fff;padding:64px 0;border-bottom:1px solid #e3e6e3}
.nums-in{display:grid;grid-template-columns:repeat(3,1fr)}
.num-item{position:relative;padding:6px 30px 6px 34px}
.num-item + .num-item{border-left:1px solid var(--line)}
.num-idx{position:absolute;left:34px;top:-14px;font-family:var(--en);font-size:11px;letter-spacing:.2em;color:#8a938e}
.num-val{margin:10px 0 6px;color:var(--moss);line-height:1;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.num-val b{font-family:var(--en);font-weight:500;font-size:clamp(46px,5vw,68px);letter-spacing:.02em}
.num-val span{font-size:15px;font-weight:700;letter-spacing:.12em;color:var(--ink)}
.num-lb{margin:0;font-size:13px;color:#555d58;line-height:1.7}

/* ---------- 流れるテキスト帯 ---------- */
.ticker{background:var(--black);color:#fff;overflow:hidden;padding:18px 0;border-top:3px solid var(--moss)}
.ticker-track{display:flex;width:max-content;animation:ticker 38s linear infinite}
.ticker-set{display:flex;align-items:center;margin:0;padding:0;white-space:nowrap;word-break:normal}
.ticker-set span{font-family:var(--en);font-weight:500;font-size:clamp(26px,3vw,40px);letter-spacing:.08em;line-height:1;padding:0 34px}
.ticker-set span:nth-child(4n+1){color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.85)}
.ticker-set i{display:block;width:18px;height:26px;background:var(--accent);clip-path:polygon(62% 0,8% 58%,46% 58%,32% 100%,92% 38%,54% 38%)}
@keyframes ticker{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------- ABOUT ---------- */
.about{position:relative;padding:0 0 150px}
.about-bg{display:grid;grid-template-columns:40% 1fr;min-height:640px}
.about-bg .grad{background:linear-gradient(180deg,var(--moss) 0%,#6f8a7c 55%,#fff 100%)}
.about-bg .img{background:var(--about) center/cover}
.about-card{position:absolute;top:60px;left:5%;width:min(640px,56%);background:rgba(255,255,255,.94);padding:64px 60px 58px;backdrop-filter:blur(2px)}
.about-card::before,.about-card::after{content:"";position:absolute;width:34px;height:34px;border-color:var(--moss);border-style:solid}
.about-card::before{top:14px;left:14px;border-width:1.5px 0 0 1.5px}
.about-card::after{bottom:14px;right:14px;border-width:0 1.5px 1.5px 0}
.about-card .catch{font-family:var(--min);font-weight:700;font-size:clamp(22px,2.3vw,30px);line-height:1.65;letter-spacing:.08em;margin:0 0 26px;color:#111}
.about-card .about-text p{margin:0 0 1.1em;font-size:14px}
.about-card .btn{margin-top:10px}

/* ---------- RECRUIT帯（キャラが帯の端から顔を出す） ---------- */
.rc-band{position:relative;color:#fff;text-align:center;padding:110px 0 120px;background:#000 var(--rc) center/cover;overflow:hidden}
.rc-band::before{content:"";position:absolute;inset:0;background:rgba(13,30,22,.74)}
.rc-band .wrap{position:relative;z-index:1}
.rc-band p{margin:0 0 34px;font-size:15px}
/* 代表のイラストは左下から顔を出し、吹き出しはその右側 */
.rc-band .peek{position:absolute;left:6%;bottom:-40px;width:150px;transform:rotate(6deg);filter:drop-shadow(0 8px 18px rgba(0,0,0,.35))}
.rc-band .peek-say{position:absolute;z-index:1;left:calc(6% + 128px);bottom:150px;background:#fff;color:var(--moss);font-family:var(--maru);font-weight:700;font-size:14px;line-height:1.5;padding:10px 16px;border-radius:18px;letter-spacing:.06em;margin:0}
.rc-band .peek-say::after{content:"";position:absolute;left:-8px;bottom:14px;border:8px solid transparent;border-right-color:#fff;border-left:0}

/* ---------- 3連カード（深緑＋稲妻の面） ---------- */
.trio{position:relative;background:var(--moss);padding:100px 0 170px;overflow:hidden;color:#fff}
.trio::before{content:"";position:absolute;inset:0;background:var(--moss-mid);clip-path:polygon(22% 0,46% 0,33% 46%,52% 46%,18% 100%,27% 58%,8% 58%)}
.trio::after{content:"";position:absolute;inset:0;background:rgba(255,255,255,.06);clip-path:polygon(70% 0,84% 0,76% 40%,90% 40%,64% 100%,70% 52%,58% 52%)}
.trio .wrap{position:relative;z-index:1}
.trio-head .ttl{margin-bottom:50px}
.trio-in{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;align-items:start}
/* 3枚を段違いに配置 */
.card3{position:relative;display:block;color:#fff}
.card3:nth-child(2){margin-top:70px}
.card3:nth-child(3){margin-top:140px}
/* 写真：右下の角を斜めに切り欠き */
.card3 .c-fig{position:relative;display:block;aspect-ratio:4/5;overflow:hidden;background:#000;clip-path:polygon(0 0,100% 0,100% calc(100% - 48px),calc(100% - 48px) 100%,0 100%)}
.card3 .c-fig img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.6,.2,1),filter .5s;filter:saturate(.85) brightness(.92)}
.card3 .c-fig::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(19,42,31,0) 45%,rgba(19,42,31,.55) 100%);transition:opacity .5s}
.card3:hover .c-fig img{transform:scale(1.06);filter:saturate(1) brightness(1)}
.card3:hover .c-fig::after{opacity:.4}
.card3 .c-idx{position:absolute;z-index:1;right:16px;top:6px;font-family:var(--en);font-weight:500;font-size:96px;line-height:1;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.9);letter-spacing:.02em}
/* 本文 */
.card3 .c-body{position:relative;display:block;padding:24px 62px 0 0}
.card3 .en{display:block;font-family:var(--en);font-weight:500;font-size:clamp(28px,2.8vw,38px);line-height:1;letter-spacing:.04em}
.card3 .ja{display:block;font-size:13px;font-weight:700;letter-spacing:.2em;color:#b9d6c5;margin-top:10px;line-height:1.6}
.card3 .bolt{color:var(--accent);width:56px;height:10px;margin:14px 0 12px;transition:width .5s cubic-bezier(.6,0,.2,1)}
.card3:hover .bolt{width:120px}
.card3 .c-txt{display:block;font-size:13px;line-height:1.9;color:#dde7e1;word-break:auto-phrase;text-wrap:pretty}
.card3 .c-arrow{position:absolute;right:0;top:26px;width:46px;height:46px;border:1px solid rgba(255,255,255,.55);border-radius:50%;display:grid;place-items:center;transition:background .3s,border-color .3s}
.card3 .c-arrow::before{content:"";width:8px;height:8px;border-top:1.5px solid #fff;border-right:1.5px solid #fff;transform:translateX(-2px) rotate(45deg);transition:border-color .3s}
/* 施工事例が準備中のとき：写真の代わりにロゴ＋COMING SOON */
.card3 .c-soon{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;background:var(--paper);transition:background .5s}
.card3 .c-soon .logo-img{width:72%;height:auto}
.card3 .c-soon-en{font-family:var(--en);font-weight:500;font-size:20px;letter-spacing:.24em;color:var(--moss);border-top:1px solid var(--moss);border-bottom:1px solid var(--moss);padding:4px 14px}
.card3.is-soon .c-fig::after{display:none}
.card3.is-soon .c-idx{-webkit-text-stroke-color:rgba(31,59,45,.55)}
.card3.is-soon:hover .c-soon{background:#fff}
.card3:hover .c-arrow{background:var(--accent);border-color:var(--accent)}
.card3:hover .c-arrow::before{border-color:var(--moss-deep)}

@media (max-width:1024px){
  .num-item{padding:6px 18px 6px 22px}
  .num-idx{left:22px}
  .trio{padding-bottom:130px}
  .trio-in{gap:22px}
  .card3:nth-child(2){margin-top:44px}
  .card3:nth-child(3){margin-top:88px}
  .card3 .c-idx{font-size:68px}
  .card3 .c-body{padding-right:0}
  .card3 .c-arrow{display:none}
  .hero-plate{display:none}
  .about{padding-bottom:80px}
  .about-bg{grid-template-columns:1fr;min-height:0}
  .about-bg .grad{display:none}
  .about-bg .img{aspect-ratio:16/9}
  .about-card{position:relative;top:auto;left:auto;width:90%;margin:-90px auto 0;padding:50px 40px}
}
@media (max-width:768px){
  .hero{height:88svh;min-height:540px}
  .hero::before{background:linear-gradient(180deg,rgba(19,42,31,.5) 0%,rgba(19,42,31,.85) 100%)}
  .hero-copy{left:6%;right:6%;top:auto;bottom:11%;transform:none}
  .hero-copy .bolt{width:130px;margin:22px 0 18px}
  .hero-copy .ja{font-size:22px;letter-spacing:.08em}
  .hero-copy .sub{font-size:12px;letter-spacing:.06em}
  .hero-copy .sub .sep{display:none}
  .hero-copy .sub span{display:block}
  .hero-dots{bottom:4%;right:6%}
  .hero-scroll{display:none}
  .nums{padding:44px 0 36px}
  .nums-in{grid-template-columns:1fr}
  .num-item{padding:18px 0 16px 0;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:4px 18px}
  .num-item + .num-item{border-left:0;border-top:1px solid var(--line)}
  .num-idx{position:static;grid-column:1/-1}
  .num-val{margin:0}
  .num-val b{font-size:44px}
  .num-lb{font-size:12px}
  .ticker{padding:14px 0}
  .ticker-set span{padding:0 22px}
  .ticker-set i{width:14px;height:20px}
  .about{padding-bottom:60px}
  .about-card{width:94%;padding:40px 22px 34px}
  .about-card .catch{font-size:21px;letter-spacing:.04em}
  /* ボタンの下にキャラ用の余白を確保し、吹き出し・キャラがボタンに重ならないように */
  .rc-band{padding:80px 0 210px}
  .rc-band p{font-size:14px}
  .rc-band .peek{width:78px;left:12%;bottom:-24px}
  .rc-band .peek-say{left:calc(12% + 70px);bottom:96px;font-size:12px;padding:8px 13px}
  .trio{padding:64px 0 80px}
  .trio-head .ttl{margin-bottom:34px}
  .trio-in{grid-template-columns:1fr;gap:48px}
  .card3:nth-child(2),.card3:nth-child(3){margin-top:0}
  .card3 .c-fig{aspect-ratio:16/10;clip-path:polygon(0 0,100% 0,100% calc(100% - 34px),calc(100% - 34px) 100%,0 100%)}
  .card3 .c-idx{font-size:64px;right:12px}
  .card3 .c-body{padding:18px 58px 0 0}
  .card3 .c-arrow{display:grid;top:20px}
  .card3 .c-soon{gap:14px}
  .card3 .c-soon .logo-img{width:56%}
  .card3 .c-soon-en{font-size:16px}
}

/* =========================================================
   事業内容
   ========================================================= */
.share-wrap{margin:0 0 70px}
.share-wrap.has-note{margin-bottom:14px}
.share{display:grid;grid-template-columns:70fr 20fr 10fr;height:64px;color:#fff;font-size:13px;font-weight:700;letter-spacing:.08em}
.share div{display:flex;align-items:center;justify-content:flex-end;padding:0 16px;gap:8px;white-space:nowrap;overflow:hidden}
.share div b{font-family:var(--en);font-weight:500;font-size:24px;letter-spacing:0}
.share .s-in{display:none}
.share .s1{background:var(--moss)}
.share .s2{background:#000}
.share .s3{background:#6f8a7c}
/* バーの下のラベル（各区間と同じ幅） */
.share-lb{display:grid;margin-top:10px;font-size:12px;font-weight:700;letter-spacing:.06em;line-height:1.5;color:var(--ink)}
.share-lb span{display:flex;align-items:center;gap:7px;padding-right:8px;min-width:0;white-space:nowrap}
/* 右端のラベルは区間が狭くても折り返さず、右揃えで左側へはみ出して表示 */
.share-lb span:last-child{justify-self:end;width:max-content;padding-right:0}
.share-lb span::before{content:"";flex:none;width:10px;height:10px}
.share-lb .l1::before{background:var(--moss)}
.share-lb .l2::before{background:#000}
.share-lb .l3::before{background:#6f8a7c}
.share-note{font-size:12px;color:#6c746f;margin:0 0 70px;line-height:1.8}
.svc{display:grid;grid-template-columns:1.05fr 1fr;align-items:center;margin-bottom:90px}
.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{background:#fff;padding:48px 50px;margin-left:-70px;position:relative;box-shadow:14px 14px 0 var(--moss)}
.svc.is-rev .svc-img{order:2}
.svc.is-rev .svc-txt{margin-left:0;margin-right:-70px;box-shadow:-14px 14px 0 #000}
.svc-txt .tag{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.12em;background:var(--moss-pale);color:var(--moss);padding:2px 12px;margin-bottom:12px;line-height:1.8}
.svc-txt h3{font-family:var(--min);font-size:clamp(21px,2vw,26px);margin:0 0 16px;color:#111;letter-spacing:.08em;line-height:1.5}
.svc-txt p{margin:0 0 16px;font-size:14px}
.svc-txt ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}
.svc-txt li{font-size:12px;border:1px solid var(--moss);color:var(--moss);padding:2px 12px;line-height:1.8}
.after{display:grid;grid-template-columns:1fr 1fr;gap:6%;align-items:center}
.after h3{font-family:var(--min);font-size:clamp(22px,2.2vw,28px);line-height:1.7;margin:0 0 20px;letter-spacing:.08em}
.after p{margin:0 0 1em;color:#dde7e1}
.after-img{aspect-ratio:4/3;overflow:hidden;box-shadow:14px 14px 0 #000}
.after-img img{width:100%;height:100%;object-fit:cover}
.area{display:grid;grid-template-columns:1fr 1.1fr;gap:6%;align-items:center}
.area p{margin:0}
.area-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:14px}
.area-list li{border:1px solid var(--moss);padding:18px 20px;font-weight:700;color:var(--moss);font-size:16px;letter-spacing:.12em;line-height:1.6;background:#fff}
.area-list li.is-main{background:var(--moss);color:#fff;grid-column:1/-1}
.area-list li small{display:block;font-size:12px;font-weight:500;letter-spacing:.04em;opacity:.85}
.flow{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);counter-reset:f}
.flow li{position:relative;padding:26px 26px 28px 0;border-top:2px solid var(--moss);counter-increment:f}
.flow li::before{content:counter(f,decimal-leading-zero);font-family:var(--en);font-size:36px;color:var(--moss);display:block;line-height:1;margin-bottom:12px}
.flow h3{margin:0 0 6px;font-size:16px;color:#111;line-height:1.6}
.flow p{margin:0;font-size:13px;line-height:1.85}

@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{margin:-50px 6% 0;padding:38px 34px}
  .after,.area{grid-template-columns:1fr;gap:40px}
  .flow{grid-template-columns:1fr 1fr;gap:10px 24px}
}
@media (max-width:768px){
  /* スマホ：縦積みのバーの中にラベルと%を表示 */
  .share{height:auto;grid-template-columns:1fr!important}
  .share div{padding:12px 16px;justify-content:space-between}
  .share .s-in{display:inline}
  .share-lb{display:none}
  .share-wrap{margin-bottom:50px}
  .share-wrap.has-note{margin-bottom:14px}
  .share-note{margin-bottom:50px}
  .svc{margin-bottom:64px}
  .svc-txt,.svc.is-rev .svc-txt{margin:-36px 4% 0;padding:30px 22px;box-shadow:8px 8px 0 var(--moss)}
  .svc.is-rev .svc-txt{box-shadow:-8px 8px 0 #000}
  .svc-txt h3{font-size:20px;letter-spacing:.04em}
  .after h3{font-size:19px;letter-spacing:.04em}
  .after-img{box-shadow:8px 8px 0 #000}
  .area-list{grid-template-columns:1fr}
  .flow{grid-template-columns:1fr}
  .flow li{padding-right:0}
}

/* =========================================================
   施工事例
   ========================================================= */
.works{display:grid;grid-template-columns:repeat(3,1fr);gap:46px 30px}
.work figure{margin:0}
.work .w-img{position:relative;display:block;width:100%;padding:0;border:0;aspect-ratio:4/3;overflow:hidden;background:#dfe3e0;cursor:zoom-in}
.work .w-img img{width:100%;height:100%;object-fit:cover;transition:transform .7s}
.work .w-img:hover img{transform:scale(1.05)}
/* 拡大アイコン */
.work .w-zoom{position:absolute;right:12px;bottom:12px;width:40px;height:40px;border-radius:50%;background:rgba(19,42,31,.82);opacity:.9;transition:opacity .3s,background .3s}
.work .w-zoom::before{content:"";position:absolute;left:11px;top:11px;width:13px;height:13px;border:1.5px solid #fff;border-radius:50%}
.work .w-zoom::after{content:"";position:absolute;left:24px;top:24px;width:7px;height:1.5px;background:#fff;transform:rotate(45deg);transform-origin:left center}
.work .w-img:hover .w-zoom{opacity:1;background:var(--moss)}
.work figcaption{padding-top:14px}
.work .w-cat{display:inline-block;font-size:11px;background:var(--moss);color:#fff;padding:1px 10px;letter-spacing:.1em;line-height:1.8}
.work h3{font-size:15px;margin:8px 0 2px;color:#111;line-height:1.6}
.work .w-area{font-size:12px;color:#6c746f;margin:0}

/* ---------- 準備中（COMING SOON） ---------- */
.soon{max-width:760px;margin:0 auto;padding:70px 30px 64px;text-align:center;border:1px solid var(--line);
  background:radial-gradient(circle at 12px 12px,var(--moss) 2.5px,transparent 3px),radial-gradient(circle at calc(100% - 12px) 12px,var(--moss) 2.5px,transparent 3px),radial-gradient(circle at 12px calc(100% - 12px),var(--moss) 2.5px,transparent 3px),radial-gradient(circle at calc(100% - 12px) calc(100% - 12px),var(--moss) 2.5px,transparent 3px),#fff}
.soon-logo .logo-img{width:min(340px,80%);margin:0 auto}
.soon .bolt{color:var(--moss);margin:34px auto 18px}
.soon-en{margin:0;font-family:var(--en);font-weight:500;font-size:clamp(40px,6vw,68px);line-height:1;letter-spacing:.12em;color:var(--moss)}
.soon-ja{margin:22px 0 34px;font-size:14px;line-height:1.9}

/* ---------- 拡大表示（ライトボックス） ---------- */
.lbx{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:60px 5%;background:rgba(10,20,15,.86);opacity:0;transition:opacity .35s ease}
.lbx[hidden]{display:none}
.lbx.is-show{opacity:1}
.lbx-inner{position:relative;max-width:min(1100px,100%);transform:scale(.94) translateY(10px);opacity:0;transition:transform .45s cubic-bezier(.2,.7,.2,1),opacity .45s ease}
.lbx.is-show .lbx-inner{transform:none;opacity:1}
.lbx-img{max-width:100%;max-height:calc(100vh - 170px);width:auto;height:auto;margin:0 auto;box-shadow:0 20px 50px rgba(0,0,0,.45)}
.lbx-cap{margin:14px 0 0;color:#fff;font-size:14px;letter-spacing:.08em;text-align:center;line-height:1.7}
.lbx-close{position:absolute;top:-50px;right:0;width:40px;height:40px;border:1px solid rgba(255,255,255,.7);border-radius:50%;background:transparent;cursor:pointer}
.lbx-close::before,.lbx-close::after{content:"";position:absolute;left:50%;top:50%;width:16px;height:1.5px;background:#fff;transform:translate(-50%,-50%) rotate(45deg)}
.lbx-close::after{transform:translate(-50%,-50%) rotate(-45deg)}
.lbx-close:hover{background:rgba(255,255,255,.12)}
body.lbx-open{overflow:hidden}

@media (max-width:1024px){
  .works{grid-template-columns:1fr 1fr}
}
@media (max-width:768px){
  .works{grid-template-columns:1fr;gap:34px}
  .soon{padding:50px 20px 44px}
  .soon-ja{font-size:13px}
  .lbx{padding:70px 4%}
  .lbx-img{max-height:calc(100vh - 190px)}
  .lbx-cap{font-size:13px}
}

/* =========================================================
   記事詳細（施工事例の詳細など）
   ========================================================= */
.news-single{max-width:860px}
.ns-body{font-size:15px}
.ns-body img{margin:20px 0}
.ns-thumb{margin-bottom:30px}

/* =========================================================
   会社概要
   ========================================================= */
.msg{display:grid;grid-template-columns:1fr 36%;gap:7%;align-items:start}
.msg p{margin:0 0 1.3em}
.msg .lead-min{margin-bottom:30px}
.msg-sign{text-align:right;margin-top:30px;font-size:13px}
.msg-sign strong{font-family:var(--min);font-size:24px;letter-spacing:.3em;margin-left:14px;color:#111;white-space:nowrap}
.msg-side{position:sticky;top:90px}
.history-ttl{font-family:var(--en);font-size:22px;letter-spacing:.06em;color:var(--moss);margin:0 0 10px;line-height:1.4}
.history{list-style:none;margin:0;padding:30px 30px 26px;background:var(--moss);color:#fff}
.history li{position:relative;padding:0 0 18px 26px;font-size:14px;line-height:1.7}
.history li::before{content:"";position:absolute;left:4px;top:8px;width:9px;height:9px;background:var(--accent)}
.history li::after{content:"";position:absolute;left:8px;top:20px;bottom:0;width:1px;background:rgba(255,255,255,.3)}
.history li:last-child{padding-bottom:0}
.history li:last-child::after{display:none}
.history b{display:block;font-size:12px;color:#b9d6c5;letter-spacing:.1em}
.tbl{width:100%;border-collapse:collapse;border-top:2px solid var(--moss);background:#fff}
.tbl th,.tbl td{border-bottom:1px solid var(--line);padding:22px;text-align:left;vertical-align:top;font-size:14px;line-height:1.9}
.tbl th{width:24%;font-weight:700;color:var(--moss);background:var(--moss-pale)}
.tbl td ul{margin:0;padding-left:1.2em}

@media (max-width:1024px){
  .msg{grid-template-columns:1fr;gap:40px}
  .msg-side{position:static}
}
@media (max-width:768px){
  .msg-sign strong{display:block;margin:6px 0 0;font-size:21px}
  .tbl th,.tbl td{display:block;width:100%;padding:12px 14px}
  .tbl th{padding-bottom:8px}
}

/* =========================================================
   採用情報だけ別トーン（丸ゴシック・淡い緑・角丸・キャラ）
   ========================================================= */
.rc{font-family:var(--maru);background:var(--moss-pale)}
.rc .ttl .ja{font-family:var(--maru)}
.rc-hero{padding:110px 0 40px;overflow:hidden}
.rc-hero-in{display:grid;grid-template-columns:1.25fr 1fr;gap:4%;align-items:end}
.rc-hero .eyebrow{font-family:var(--en);font-size:18px;letter-spacing:.14em;color:var(--moss);margin:0 0 10px;line-height:1.4}
.rc-hero h1{font-family:var(--maru);font-weight:900;font-size:clamp(34px,4.6vw,62px);line-height:1.35;letter-spacing:.04em;color:#111;margin:0 0 26px}
.rc-hero-text{font-size:16px;line-height:2;margin:0 0 30px;font-weight:500}
.rc-tags{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 20px;padding:0;list-style:none}
.rc-tags li{background:#fff;border-radius:999px;padding:6px 18px;font-size:14px;font-weight:700;color:var(--moss);line-height:1.6}
.rc-chara{position:relative;justify-self:center;width:min(160px,60%);margin-top:70px}
.rc-chara img{position:relative;z-index:1;width:100%}
.rc-chara::before{content:"";position:absolute;left:50%;bottom:6%;width:150%;aspect-ratio:1;transform:translateX(-50%);background:#fff;border-radius:50%}
.rc-chara .say{position:absolute;z-index:2;top:0;right:calc(100% - 10px);background:var(--moss);color:#fff;font-weight:700;font-size:15px;line-height:1.55;padding:16px 22px;border-radius:22px;letter-spacing:.04em;white-space:nowrap;margin:0}
.rc-chara .say::after{content:"";position:absolute;right:26px;bottom:-12px;border:12px solid transparent;border-top-color:var(--moss);border-bottom:0}
.rc .sec{padding:90px 0}
.rc .sec.pt0{padding-top:0}
.rc-msg{background:#fff;border-radius:28px;padding:64px 70px;display:grid;grid-template-columns:1fr 1fr;gap:7%;align-items:center}
.rc-msg.is-noimg{grid-template-columns:1fr;max-width:860px;margin:0 auto}
.rc-msg h2{font-weight:900;font-size:clamp(22px,2.4vw,30px);line-height:1.6;margin:0 0 20px;color:#111}
.rc-msg p{margin:0 0 1em;font-weight:500}
.rc-msg .rc-msg-sign{text-align:right;font-weight:700}
.rc-msg .ph-round{aspect-ratio:1;border-radius:50% 50% 50% 12px;overflow:hidden}
.rc-msg .ph-round img{width:100%;height:100%;object-fit:cover}
.points{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.point{background:#fff;border-radius:24px;padding:40px 32px 36px;text-align:center}
.point .ico{width:84px;height:84px;margin:0 auto 18px;border-radius:50%;background:var(--moss-pale);display:grid;place-items:center;color:var(--moss)}
.point .ico svg{width:42px;height:42px}
.point h3{font-weight:900;font-size:19px;margin:0 0 12px;color:#111;line-height:1.5}
.point p{margin:0;font-size:14px;text-align:left;font-weight:500}
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:18px;counter-reset:s}
.steps li{background:#fff;border-radius:20px;padding:30px 24px;position:relative;counter-increment:s}
.steps li::before{content:"STEP " counter(s);display:inline-block;font-family:var(--en);font-size:13px;letter-spacing:.1em;background:var(--moss);color:#fff;border-radius:999px;padding:2px 14px;margin-bottom:12px;line-height:1.6}
.steps li:not(:last-child)::after{content:"";position:absolute;right:-14px;top:50%;border:9px solid transparent;border-left-color:var(--moss);transform:translateY(-50%);z-index:1}
.steps h3{font-size:17px;font-weight:900;margin:0 0 8px;color:#111;line-height:1.5}
.steps p{margin:0;font-size:13px;font-weight:500;line-height:1.8}
.rc .tbl{border-radius:20px;overflow:hidden;border-top:0}
.rc .tbl th{background:var(--moss);color:#fff;border-bottom-color:rgba(255,255,255,.18)}
.rc .tbl td{font-weight:500}
.salary{list-style:none;margin:0;padding:0}
.salary li{display:flex;justify-content:space-between;flex-wrap:wrap;gap:0 20px;border-bottom:1px dashed var(--line);padding:4px 0}
.salary li:last-child{border-bottom:0}
.salary b{font-size:17px;color:var(--moss)}
.salary-note{margin:8px 0 0;font-size:13px}
.oyakata{margin-top:26px;background:#fff;border:2px solid var(--moss);border-radius:20px;padding:30px 36px;display:grid;grid-template-columns:auto 1fr;gap:26px;align-items:center}
.oyakata .badge{background:#000;color:#fff;border-radius:999px;padding:8px 20px;font-weight:900;font-size:15px;white-space:nowrap;line-height:1.6}
.oyakata p{margin:0;font-weight:500}
.rc-entry{text-align:center;background:var(--moss);color:#fff;border-radius:28px;padding:60px 30px;position:relative;overflow:hidden}
.rc-entry h2{font-weight:900;font-size:clamp(22px,2.6vw,32px);margin:0 0 14px;line-height:1.5}
.rc-entry p{margin:0 0 30px;font-weight:500}
.rc-entry .btn{font-family:var(--maru);border-radius:999px;background:#fff;color:var(--moss);border-color:#fff;font-size:16px;padding:18px 48px}
.rc-entry .btn:hover{background:transparent;color:#fff}
.rc-entry .mini{position:absolute;right:4%;bottom:-24px;width:110px}

@media (max-width:1024px){
  .rc-msg{grid-template-columns:1fr;padding:50px 40px}
  .rc-msg .ph-round{max-width:360px}
  .points{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr 1fr}
  .steps li:nth-child(2)::after{display:none}
}
@media (max-width:768px){
  .rc-hero{padding:60px 0 30px}
  .rc-hero-in{grid-template-columns:1fr}
  .rc-hero h1{font-size:32px}
  .rc-hero-text{font-size:15px}
  .rc-chara{width:120px;margin-top:30px;justify-self:center;transform:translateX(50px)}
  .rc-chara .say{top:4%;right:calc(100% - 4px);font-size:12px;padding:9px 13px}
  .rc .sec{padding:60px 0}
  .rc-msg{padding:36px 22px;border-radius:20px}
  .rc-msg h2{font-size:21px}
  .point{padding:32px 22px 28px}
  .steps{grid-template-columns:1fr}
  .steps li::after{display:none}
  .oyakata{grid-template-columns:1fr;padding:24px}
  .oyakata .badge{justify-self:start}
  .rc-entry{padding:46px 20px 150px}
  .rc-entry p{text-align:left}
  .rc-entry .btn{padding:16px 28px;font-size:15px}
  .rc-entry .mini{width:72px;right:50%;bottom:-44px;transform:translateX(50%)}
}

/* =========================================================
   お問い合わせ（CF7：必須＝赤 .red／任意＝青 .blue）
   ========================================================= */
.ct-tel{display:grid;grid-template-columns:auto 1fr;gap:30px;align-items:center;background:var(--moss);color:#fff;padding:36px 44px;margin-bottom:80px}
.ct-tel > svg{width:48px;height:48px}
.ct-tel .num{font-family:var(--en);font-size:clamp(32px,3.8vw,46px);line-height:1.1;display:block}
.ct-tel small{display:block;font-size:13px;opacity:.9;margin-top:4px}
.ct-tel p{margin:0 0 2px;font-weight:700}
.ct-tel .nw{white-space:nowrap}

.f-steps{list-style:none;display:flex;justify-content:center;gap:0;margin:0 0 40px;padding:0;counter-reset:none}
.f-steps li{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:#8a938e;letter-spacing:.1em;line-height:1.6}
.f-steps li + li::before{content:"";width:40px;height:1px;background:var(--line);margin:0 14px}
.f-steps li span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;border:1px solid currentColor;font-family:var(--en);font-size:13px}
.f-steps li.is-current{color:var(--moss)}
.f-steps li.is-current span{background:var(--moss);border-color:var(--moss);color:#fff}

.form-wrap{border-top:2px solid var(--moss)}
.f-row{display:grid;grid-template-columns:28% 1fr;border-bottom:1px solid var(--line)}
.f-lb{padding:24px 20px;font-weight:700;color:var(--moss);background:var(--moss-pale);font-size:14px;line-height:1.6;display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px}
.f-in{padding:18px 20px;min-width:0}
.red,.blue{display:inline-block;font-size:11px;font-weight:700;color:#fff;padding:1px 8px;letter-spacing:.1em;line-height:1.7;border-radius:2px}
.red{background:var(--req)}
.blue{background:var(--opt)}
.form-wrap input[type=text],.form-wrap input[type=email],.form-wrap input[type=tel],.form-wrap textarea{width:100%;font:inherit;font-size:16px;line-height:1.6;padding:12px 14px;border:1px solid #b9c2bd;border-radius:0;background:#fff;color:var(--ink)}
.form-wrap textarea{min-height:200px;resize:vertical}
.form-wrap ::placeholder{color:#a5ada8}
.form-wrap .wpcf7-radio{display:flex;flex-wrap:wrap;gap:10px 26px}
.form-wrap .wpcf7-list-item{margin:0}
.form-wrap .wpcf7-list-item label{display:flex;gap:6px;align-items:center;font-size:14px;cursor:pointer;line-height:1.6}
.form-wrap input[type=radio],.form-wrap input[type=checkbox]{width:18px;height:18px;accent-color:var(--moss);margin:0;flex:none}
.agree{text-align:center;margin:40px 0 30px;font-size:14px}
.agree a{text-decoration:underline;color:var(--moss)}
.agree .wpcf7-list-item label{justify-content:center}
.f-submit{text-align:center;display:flex;justify-content:center;flex-wrap:wrap;gap:16px}
.f-submit .wpcf7-submit,.f-submit .wpcf7-previous{font-size:15px;padding:18px 60px;min-width:260px}
.f-submit .wpcf7-previous{background:#fff;color:var(--moss)}
.f-submit .wpcf7-previous:hover{background:var(--moss-pale)}
.form-wrap .wpcf7-spinner{display:block;margin:12px auto 0}
.form-wrap .wpcf7-not-valid-tip{font-size:13px;color:var(--req);margin-top:6px}
.form-wrap .wpcf7-response-output{margin:30px 0 0!important;padding:14px 18px!important;font-size:14px;border-width:1px!important}
.is-confirm .f-in{font-size:15px;white-space:pre-wrap;word-break:break-word}
.f-done{text-align:center;border:1px solid var(--moss);padding:44px 30px;max-width:860px;margin:0 auto}
.f-done p{margin:0 0 1em}
.f-done .f-done-tel{font-weight:700;color:var(--moss)}
.f-done .btn{margin-top:14px}

@media (max-width:768px){
  .ct-tel{grid-template-columns:1fr;text-align:center;padding:28px 20px;margin-bottom:56px}
  .ct-tel > svg{margin:0 auto}
  .ct-tel .sep{display:none}
  .ct-tel .nw{display:block}
  .f-steps li + li::before{width:20px;margin:0 8px}
  .f-row{grid-template-columns:1fr}
  .f-lb{padding:14px 14px 10px}
  .f-in{padding:12px 14px 18px}
  .agree{text-align:left}
  .agree .wpcf7-list-item label{justify-content:flex-start;align-items:flex-start}
  .f-submit .wpcf7-submit,.f-submit .wpcf7-previous{width:100%;min-width:0;padding:16px 20px}
  .f-done{padding:30px 18px;text-align:left}
  .f-done .btn{display:flex}
}

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

/* =========================================================
   フッター上コンタクト（ロゴ＋住所＋2ボックス）／地図／フッター
   ========================================================= */
.ft-ct{position:relative;padding:80px 0 90px;background:var(--ctbg) center/cover;text-align:center}
.ft-ct::before{content:"";position:absolute;inset:0;background:rgba(255,255,255,.86)}
.ft-ct .wrap{position:relative}
.ft-ct .big-logo{display:inline-block}
.ft-ct .big-logo .logo-img{width:320px;height:auto}
.ft-ct address{font-style:normal;margin:22px 0 44px;font-size:14px;line-height:2}
.ct-boxes{display:grid;grid-template-columns:1fr 1fr;gap:9%;max-width:960px;margin:0 auto}
.ct-box{background:rgba(31,59,45,.92);color:#fff;padding:38px 30px 36px}
.ct-box .en{display:block;font-family:var(--en);font-size:34px;line-height:1;letter-spacing:.04em}
.ct-box .ja{display:block;font-size:14px;font-weight:700;letter-spacing:.14em;margin:10px 0 22px;line-height:1.6}
.ct-box .btn{width:100%}
.ct-box .num{display:inline-flex;align-items:center;gap:10px;font-family:var(--en);font-size:32px;letter-spacing:.04em;line-height:1.1}
.ct-box .num svg{width:24px;height:24px}
.ct-box small{display:block;font-size:12px;margin-top:6px;opacity:.9}
a.tel-link:not([href]){cursor:default}
.map{height:360px;background:#dfe3e0}
.map iframe{width:100%!important;height:100%!important;border:0;display:block;filter:grayscale(.35)}

.ft{background:var(--moss-deep);color:#d7e0da;text-align:center;padding:34px 0 24px;font-size:13px}
.ft-nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:6px 30px}
.ft-nav a:hover{color:#fff;text-decoration:underline}
.copy{margin:22px 0 0;font-size:12px;letter-spacing:.1em;color:#9fb3a7}
.pagetop{position:fixed;right:18px;bottom:calc(80px + env(safe-area-inset-bottom,0px));width:48px;height:48px;background:#000;border:0;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}

@media (max-width:768px){
  .ft-ct{padding:60px 0 64px}
  .ft-ct .big-logo .logo-img{width:230px}
  .ft-ct address{font-size:13px;margin:18px 0 32px}
  .ct-boxes{grid-template-columns:1fr;gap:18px}
  .ct-box{padding:30px 20px}
  .ct-box .num{font-size:28px}
  .map{height:280px}
  .ft-nav ul{gap:6px 20px}
}


