/*
Theme Name: Rainetz
Theme URI: https://rainetz.jp/
Author: ライネッツ株式会社
Description: ライネッツ株式会社のコーポレートサイト用テーマ。有効化すると、固定ページ・お知らせ・施工事例の初期データを自動で作成します。
Version: 7.2.93
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: rainetz
*/

/* Layout: 黒紺の重厚な1カラム。全面写真のヒーロー→短い言葉→強み3つ→数字→施工事例→工種→元請様向け情報→相談。罫線と余白で格を出す */
:root{
  --bg:#0a0f17;        /* ほぼ黒の紺 */
  --bg-2:#0f1824;      /* 一段明るい面 */
  --panel:#131e2d;     /* 区切りの面 */
  --line:rgba(214,226,240,.14);
  --text:#e7edf4;
  --muted:#93a3b7;
  --accent:#4ea3ff;    /* ロゴの青を明るく */
  --f-ja:"Noto Sans JP","Hiragino Sans","Yu Gothic",system-ui,sans-serif;
  --f-en:"Plus Jakarta Sans","Noto Sans JP",system-ui,sans-serif;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{background:var(--bg);color:var(--text);font-family:var(--f-ja);font-size:16px;line-height:1.95;letter-spacing:.04em;-webkit-font-smoothing:antialiased;overflow-x:clip}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:40;background:var(--bg)}
img{display:block;max-width:100%}
a{color:inherit}
a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.wrap{max-width:1200px;margin:0 auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
h1,h2,h3,p{margin:0}
h1,h2,h3{text-wrap:balance}
.sec{padding-block:clamp(80px,11vw,150px)}
.label{display:flex;align-items:center;gap:14px;font-family:var(--f-en);font-weight:700;font-size:.74rem;letter-spacing:.28em;text-transform:uppercase;color:var(--accent)}
.label::before{content:"";width:32px;height:1px;background:currentColor}
.h2{word-break:auto-phrase;font-weight:900;font-size:clamp(1.7rem,3.8vw,2.7rem);line-height:1.45;letter-spacing:.04em;margin-top:18px}
.lead{color:var(--muted);max-width:40rem;margin-top:20px}

/* header */
.hd{position:fixed;top:env(safe-area-inset-top,0px);left:0;right:0;z-index:30;padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);background:linear-gradient(180deg,rgba(10,15,23,.85),rgba(10,15,23,0))}
.hd .wrap{display:flex;align-items:center;gap:28px;height:76px}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none;white-space:nowrap}
.brand img{height:34px;width:auto;background:#fff;border-radius:3px;padding:3px 6px;box-sizing:content-box}
.brand b{font-weight:700;font-size:.98rem;letter-spacing:.12em}
.nav{display:flex;gap:30px;margin-left:auto;font-size:.84rem}
.nav a{text-decoration:none;color:var(--text);opacity:.85;white-space:nowrap}
.nav a:hover{opacity:1;color:var(--accent)}
.hd-cta{border:1px solid rgba(231,237,244,.5);text-decoration:none;font-size:.82rem;font-weight:700;letter-spacing:.1em;padding:.6rem 1.2rem;white-space:nowrap}
.hd-cta:hover{background:var(--text);color:var(--bg)}
@media (max-width:980px){.nav{display:none}.hd-cta{margin-left:auto}}
@media (max-width:440px){.brand b{display:none}}

/* hero */
.hero{position:relative;min-height:clamp(600px,92vh,900px);display:flex;align-items:flex-end;overflow:hidden;isolation:isolate}
.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%;z-index:-2;animation:settle 2.4s cubic-bezier(.2,.7,.2,1) both}
@keyframes settle{from{transform:scale(1.06);filter:brightness(.7)}to{transform:scale(1);filter:brightness(1)}}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:
  linear-gradient(180deg,rgba(10,15,23,.55) 0%,rgba(10,15,23,.15) 30%,rgba(10,15,23,.55) 62%,rgba(10,15,23,.96) 100%),
  linear-gradient(90deg,rgba(10,15,23,.7) 0%,rgba(10,15,23,0) 60%)}
.hero .wrap{width:100%;padding-block:0 clamp(40px,6vw,72px)}
.hero h1{word-break:auto-phrase;font-weight:900;font-size:clamp(2.6rem,7.6vw,6rem);line-height:1.22;letter-spacing:.06em}
.hero h1 span{display:block}
.hero .sub{margin-top:28px;font-weight:500;font-size:clamp(.98rem,1.6vw,1.15rem);color:#cfd9e5;letter-spacing:.08em}
.facts{margin-top:clamp(40px,6vw,64px);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line)}
.facts div{padding:18px 18px 0 0;display:grid;gap:2px;min-width:0}
.facts div+div{padding-left:18px;border-left:1px solid var(--line)}
.facts b{font-family:var(--f-en);font-weight:700;font-size:clamp(1.3rem,2.6vw,1.9rem);line-height:1.2;letter-spacing:.01em;font-variant-numeric:tabular-nums}
.facts b small{font-family:var(--f-ja);font-size:.5em;font-weight:700;margin-left:.2em;letter-spacing:.04em}
.facts span{font-size:.78rem;color:var(--muted)}
@media (max-width:720px){.facts{grid-template-columns:repeat(2,minmax(0,1fr))}.facts div:nth-child(3){padding-left:0;border-left:0}.facts div:nth-child(n+3){padding-top:16px;margin-top:16px;border-top:1px solid var(--line)}}

/* intro */
.intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:clamp(36px,7vw,110px);align-items:start}
.intro .big{word-break:auto-phrase;font-weight:700;font-size:clamp(1.3rem,2.5vw,1.75rem);line-height:1.9}
.intro .body{display:grid;gap:1.3rem;color:#c3cfdc}
@media (max-width:860px){.intro{grid-template-columns:1fr}}

/* strengths */
.st-bg{background:var(--bg-2)}
.st{margin-top:clamp(44px,6vw,72px);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2.4vw,28px)}
.card{background:var(--panel);display:grid;grid-template-rows:auto 1fr;min-width:0}
.card .ph{aspect-ratio:4/3;overflow:hidden}
.card .ph img{width:100%;height:100%;object-fit:cover;filter:saturate(.8);transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.card:hover .ph img{transform:scale(1.04)}
.card .tx{padding:28px 26px 32px;display:grid;gap:12px;align-content:start}
.card .no{font-family:var(--f-en);font-weight:600;font-size:.72rem;letter-spacing:.24em;color:var(--accent)}
.card h3{font-weight:900;font-size:1.3rem;line-height:1.5}
.card p{font-size:.9rem;color:var(--muted);line-height:1.9}
@media (max-width:900px){.st{grid-template-columns:1fr}.card{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);grid-template-rows:auto}.card .ph{aspect-ratio:auto;height:100%}}
@media (max-width:560px){.card{grid-template-columns:1fr}.card .ph{aspect-ratio:16/10}}

/* numbers */
.nums{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:clamp(40px,6vw,64px)}
.num{padding:36px 26px 38px 0;display:grid;gap:8px;min-width:0}
.num+.num{padding-left:26px;border-left:1px solid var(--line)}
.num .fig{font-family:var(--f-en);font-weight:800;font-size:clamp(2.8rem,5.6vw,4.4rem);line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums;white-space:nowrap}
.num .fig small{font-family:var(--f-ja);font-weight:700;font-size:.3em;letter-spacing:.02em;margin-left:.25em}
.num .fig .pre{font-family:var(--f-ja);font-weight:700;font-size:.3em;margin-right:.3em}
.num h3{font-size:.92rem;font-weight:700}
.num p{font-size:.82rem;color:var(--muted);line-height:1.8}
@media (max-width:960px){.nums{grid-template-columns:repeat(2,minmax(0,1fr))}.num:nth-child(3){padding-left:0;border-left:0}.num:nth-child(n+3){border-top:1px solid var(--line)}}
@media (max-width:520px){.nums{grid-template-columns:1fr}.num,.num+.num{padding:26px 0;border-left:0}.num+.num{border-top:1px solid var(--line)}}

/* works */
.works-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:20px}
.more{display:inline-flex;align-items:center;gap:14px;text-decoration:none;font-weight:700;font-size:.86rem;letter-spacing:.12em}
.more::after{content:"";width:44px;height:1px;background:currentColor;transition:width .3s}
.more:hover::after{width:64px}
.works{margin-top:clamp(36px,5vw,56px);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(14px,2vw,24px)}
.work{margin:0;grid-column:span 4;display:grid;gap:14px;min-width:0}
.work.w-l{grid-column:span 7;grid-row:span 2}
.work.w-m{grid-column:span 5}
.work .ph{overflow:hidden;background:var(--panel)}
.work img{width:100%;aspect-ratio:4/3;object-fit:cover;filter:saturate(.85);transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.work.w-l .ph{height:100%}
.work.w-l img{aspect-ratio:auto;height:100%;min-height:420px}
.work:hover img{transform:scale(1.04)}
.work figcaption{display:grid;gap:2px}
.work .tag{font-family:var(--f-en);font-weight:600;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}
.work b{font-weight:700;font-size:1.02rem}
.work span{font-size:.82rem;color:var(--muted)}
.work.w-l{grid-template-rows:1fr auto}
@media (max-width:900px){.works{grid-template-columns:repeat(2,minmax(0,1fr))}.work,.work.w-l,.work.w-m{grid-column:span 1;grid-row:auto}.work.w-l{grid-column:1/-1}.work.w-l img{min-height:0;aspect-ratio:16/10}}
@media (max-width:520px){.works{grid-template-columns:1fr}}

/* services */
.sv-bg{background:var(--bg-2)}
.sv{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:clamp(36px,6vw,96px);align-items:start}
.sv-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:40px}
.sv-list li{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:20px 0;border-bottom:1px solid var(--line);min-width:0}
.sv-list b{font-weight:700;font-size:1.05rem}
.sv-list i{font-style:normal;font-family:var(--f-en);font-weight:600;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.sv-note{margin-top:22px;font-size:.9rem;color:var(--muted)}
@media (max-width:860px){.sv{grid-template-columns:1fr}}
@media (max-width:520px){.sv-list{grid-template-columns:1fr}}

/* for contractors */
.fc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:clamp(36px,6vw,96px);align-items:start}
.tbl{width:100%;border-collapse:collapse;font-size:.92rem}
.tbl th,.tbl td{text-align:left;vertical-align:top;padding:18px 0;border-bottom:1px solid var(--line)}
.tbl tr:first-child th,.tbl tr:first-child td{border-top:1px solid rgba(231,237,244,.5)}
.tbl th{width:9em;padding-right:20px;font-weight:700;white-space:nowrap}
.tbl td{color:#c3cfdc}
@media (max-width:860px){.fc{grid-template-columns:1fr}}
@media (max-width:480px){.tbl th{width:6.5em;white-space:normal}}

/* contact */
.ct{position:relative;isolation:isolate;overflow:hidden}
.ct>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;filter:saturate(.6)}
.ct::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(10,15,23,.86)}
.ct-in{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:40px 80px;align-items:end}
.ct h2{font-weight:900;font-size:clamp(1.8rem,4vw,2.9rem);line-height:1.45}
.ct p.lead{color:#c3cfdc}
.tel{display:grid;gap:4px;border-top:1px solid rgba(231,237,244,.5);padding-top:20px}
.tel small{font-size:.76rem;color:var(--muted);letter-spacing:.12em}
.tel .v{font-family:var(--f-en);font-weight:700;font-size:clamp(2rem,4.6vw,3rem);line-height:1.15;letter-spacing:.01em;user-select:all;font-variant-numeric:tabular-nums}
.tel .m{font-family:var(--f-en);font-weight:600;font-size:1.15rem;user-select:all}
.btn{display:inline-flex;align-items:center;gap:14px;margin-top:22px;background:var(--text);color:var(--bg);text-decoration:none;font-weight:700;font-size:.9rem;letter-spacing:.12em;padding:1rem 1.6rem;justify-self:start}
.btn::after{content:"";width:28px;height:1px;background:currentColor}
@media (max-width:860px){.ct-in{grid-template-columns:1fr}}

.ft{border-top:1px solid var(--line);font-size:.8rem;color:var(--muted)}
.ft .wrap{padding-block:40px calc(40px + env(safe-area-inset-bottom,0px));display:flex;flex-wrap:wrap;gap:16px 40px;justify-content:space-between}
.ft b{color:var(--text);font-size:.95rem;letter-spacing:.1em;display:block;margin-bottom:4px}
.ft nav{display:flex;flex-wrap:wrap;gap:6px 22px;align-items:end}
.ft a{text-decoration:none}
.ft a:hover{color:var(--text)}

.draft{position:fixed;right:max(16px,env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:50;background:var(--accent);color:#04111f;font-size:.74rem;font-weight:700;letter-spacing:.08em;padding:.45rem .9rem;border-radius:999px}

/* ===== 明るめ調整:白地+濃紺の帯。暗いのはヘッダー・お問い合わせ・フッターだけ ===== */
:root{--bg:#f4f6f9;--bg-2:#e8edf3;--panel:#ffffff;--line:rgba(11,31,58,.14);--text:#0b1f3a;--muted:#5a6a7f;--accent:#1d66c9;--navy:#0b1f3a;--on-navy:#eef3f9;color-scheme:light}
.hd{background:var(--navy);color:var(--on-navy)}
.hd .wrap{height:68px}
.nav a{color:var(--on-navy)}
.nav a:hover{color:#8cc4ff}
.hd-cta{border-color:rgba(238,243,249,.55);color:var(--on-navy)}
.hd-cta:hover{background:var(--on-navy);color:var(--navy)}
body::before{background:var(--navy)}
.hero{margin-top:68px;min-height:clamp(540px,80vh,820px);color:#fff}
.hero::before{background:linear-gradient(180deg,rgba(11,31,58,0) 35%,rgba(11,31,58,.6) 100%),linear-gradient(90deg,rgba(11,31,58,.55) 0%,rgba(11,31,58,0) 55%)}
.hero>img{filter:none;animation:none;object-position:center top}
.hero .sub{color:#fff}
.hero .label{color:#9fd0ff}
.facts{border-top-color:rgba(255,255,255,.35)}
.facts div+div{border-left-color:rgba(255,255,255,.35)}
.facts span{color:rgba(255,255,255,.85)}
.facts div:nth-child(n+3){border-top-color:rgba(255,255,255,.35)}
.intro .body{color:var(--text)}
.card{box-shadow:0 1px 0 var(--line)}
.card .ph img,.work img{filter:none}
.tbl td{color:var(--text)}
.tbl tr:first-child th,.tbl tr:first-child td{border-top-color:var(--navy)}
.ct{color:var(--on-navy)}
.ct::before{background:rgba(11,31,58,.88)}
.ct .label{color:#9fd0ff}
.ct p.lead{color:#cdd9e6}
.tel{border-top-color:rgba(238,243,249,.5)}
.tel small{color:#a9b9cc}
.btn{background:var(--on-navy);color:var(--navy)}
.ft{background:var(--navy);color:#a9b9cc;border-top:0}
.ft b{color:var(--on-navy)}
.ft a:hover{color:var(--on-navy)}
.draft{color:#fff}

/* ===== 参考サイトに寄せた調整:チャコール×オフホワイト、細めの見出し、ロゴのオレンジを差し色に ===== */
:root{--bg:#f5f5f3;--bg-2:#ecedea;--panel:#ffffff;--line:rgba(42,46,54,.13);--text:#2a2e36;--muted:#6b707a;--accent:#c96a2b;--navy:#2a2e36;--on-navy:#f1f1ee}
body{letter-spacing:.06em}
.hd{background:var(--navy)}
.nav a:hover{color:#f0a36f}
.label{font-family:var(--f-ja);font-weight:500;font-size:1rem;letter-spacing:.12em;text-transform:none;color:var(--accent)}
.label::before{display:none}
.h2{font-weight:500;font-size:clamp(1.5rem,3.2vw,2.2rem);line-height:1.7;letter-spacing:.08em}
.hero{min-height:clamp(480px,72vh,760px);align-items:center;justify-content:center;text-align:center}
.hero::before{background:rgba(30,33,40,.28)}
.hero .wrap{padding-block:0}
.hero h1{font-weight:500;font-size:clamp(1.9rem,4.6vw,3.4rem);line-height:1.6;letter-spacing:.14em;text-shadow:0 2px 16px rgba(0,0,0,.35)}
.hero .sub{margin-top:18px;font-weight:400;font-size:clamp(.9rem,1.4vw,1.05rem);letter-spacing:.14em;text-shadow:0 1px 10px rgba(0,0,0,.4)}
.topics{background:var(--bg-2);border-bottom:1px solid var(--line)}
.topics .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;padding-block:18px;font-size:.88rem}
.topics b{font-family:var(--f-en);font-weight:700;letter-spacing:.08em}
.topics .d{font-family:var(--f-en);font-weight:600;padding-left:18px;border-left:1px solid var(--line)}
.topics a{color:var(--accent);text-decoration:none;min-width:0}
.topics a:hover{text-decoration:underline}
.news{margin-top:36px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,3vw,36px)}
.nw{display:grid;gap:10px;align-content:start;min-width:0}
.nw .ph{border-radius:8px;overflow:hidden;aspect-ratio:4/3}
.nw .ph img{width:100%;height:100%;object-fit:cover}
.nw .meta{font-size:.8rem;color:var(--accent);display:flex;gap:14px}
.nw .meta span{color:var(--muted)}
.nw h3{font-weight:500;font-size:1.15rem;line-height:1.6}
.nw .ex{font-size:.88rem;color:var(--muted)}
.rd{font-size:.84rem;text-decoration:none;display:inline-flex;align-items:center;gap:8px}
.rd::before{content:"";width:14px;height:14px;border-radius:50%;background:var(--navy);mask:none}
@media (max-width:860px){.news{grid-template-columns:1fr}}
.more-c{display:flex;justify-content:center;margin-top:44px}
.btn-s{display:inline-block;background:var(--navy);color:var(--on-navy);text-decoration:none;font-size:.84rem;font-weight:500;letter-spacing:.1em;padding:.8rem 1.6rem;border-radius:3px}
.btn-s:hover{opacity:.85}
.intro{grid-template-columns:1fr;max-width:46rem;margin-inline:auto;text-align:center;gap:28px}
.intro .label{justify-content:center}
.intro .big{font-weight:500}
.intro .body{text-align:center}
.st-bg{background:var(--bg)}
#strength{background:var(--bg-2)}
.card{border-radius:8px;overflow:hidden}
.card h3{font-weight:500}
.card .no{font-family:var(--f-en);color:var(--accent)}
.num .fig{font-weight:600}
.work .ph,.work img{border-radius:8px}
.work .tag{color:var(--accent)}
.sv-bg{background:var(--bg-2)}
.sv-list b{font-weight:500}
.tbl th{font-weight:500}
.ct{background:var(--navy)}
.ct>img{display:none}
.ct::before{display:none}
.ct h2{font-weight:500;line-height:1.7}
.ct .label{color:#f0a36f}
.tel small{color:#f0a36f}
.btn{border-radius:3px;font-weight:500}
.ft{background:#22252c}
.draft{background:var(--accent)}

/* ===== 複数ページ用 ===== */
.hd{position:sticky;top:env(safe-area-inset-top,0px)}
.hero{margin-top:0}
.nav a[aria-current="page"]{color:#f0a36f;opacity:1}
.ig{display:inline-flex;width:36px;height:36px;align-items:center;justify-content:center;border:1px solid rgba(241,241,238,.35);border-radius:50%;color:var(--on-navy);flex:none}
.ig:hover{border-color:#f0a36f;color:#f0a36f}
.ig svg{width:17px;height:17px}
@media (max-width:980px){.hd .ig{margin-left:auto}.hd-cta{margin-left:0}}
.menu-btn{display:none}
@media (max-width:980px){
  .menu-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;background:none;border:1px solid rgba(241,241,238,.35);color:var(--on-navy);border-radius:3px;cursor:pointer;font:inherit}
  .nav.open{display:flex;position:absolute;left:0;right:0;top:100%;flex-direction:column;gap:0;background:var(--navy);padding:8px max(20px,env(safe-area-inset-left,0px)) 20px;border-top:1px solid rgba(241,241,238,.12)}
  .nav.open a{padding:14px 0;border-bottom:1px solid rgba(241,241,238,.1);font-size:.95rem}
  .hd .wrap{position:relative}
  .hd-cta{display:none}
}
.pg-head{position:relative;isolation:isolate;overflow:hidden;background:var(--navy);color:var(--on-navy)}
.pg-head>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 45%;opacity:.55;z-index:-1}
.pg-head .wrap{padding-block:clamp(64px,10vw,120px) clamp(36px,5vw,56px)}
.pg-head .en{font-family:var(--f-en);font-weight:600;font-size:.8rem;letter-spacing:.3em;text-transform:uppercase;color:#f0a36f}
.pg-head h1{font-weight:500;font-size:clamp(1.9rem,4.6vw,3rem);letter-spacing:.14em;margin-top:10px}
.crumb{list-style:none;margin:28px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px;font-size:.78rem;color:#a9adb5}
.crumb li+li::before{content:"/";margin-right:8px}
.crumb a{text-decoration:none}
.crumb a:hover{color:var(--on-navy)}
.subnav{background:var(--panel);border-bottom:1px solid var(--line)}
.subnav .wrap{display:flex;flex-wrap:wrap;gap:6px 28px;padding-block:16px;font-size:.86rem}
.subnav a{text-decoration:none;color:var(--muted)}
.subnav a:hover{color:var(--accent)}
.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:clamp(28px,6vw,96px);align-items:start}
@media (max-width:860px){.two{grid-template-columns:1fr}}
.center{max-width:46rem;margin-inline:auto;text-align:center}
.center .label{justify-content:center}
.msg-lead{font-weight:500;font-size:clamp(1.3rem,2.6vw,1.8rem);line-height:1.9;letter-spacing:.08em;margin-top:22px}
.plist{list-style:none;margin:36px 0 0;padding:0;display:grid;gap:0;text-align:left;border-top:1px solid var(--line)}
.plist li{display:grid;grid-template-columns:2.4em 1fr;gap:6px;padding:18px 0;border-bottom:1px solid var(--line);font-size:.95rem}
.plist li span{font-family:var(--f-en);font-weight:700;color:var(--accent)}
.timeline{list-style:none;margin:0;padding:0;border-left:1px solid var(--line)}
.timeline li{position:relative;padding:0 0 26px 26px;display:grid;gap:2px}
.timeline li::before{content:"";position:absolute;left:-5px;top:.65em;width:9px;height:9px;border-radius:50%;background:var(--accent)}
.timeline time{font-family:var(--f-en);font-weight:700;font-size:1.05rem;letter-spacing:.04em}
.timeline p{font-size:.94rem}
.timeline small{color:var(--muted);font-size:.82rem}
.chips{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.chips li{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:16px 18px;display:grid;gap:2px;min-width:0}
.chips b{font-weight:500}
.chips small{color:var(--muted);font-size:.8rem}
@media (max-width:560px){.chips{grid-template-columns:1fr}}
.subq{margin-top:28px;display:grid;gap:16px;font-size:.88rem;color:var(--muted)}
.subq b{display:block;color:var(--text);font-weight:500;font-size:.9rem;margin-bottom:2px}
.access{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px 48px}
.access dl{margin:0;display:grid;gap:18px}
.access dt{font-size:.8rem;color:var(--accent)}
.access dd{margin:2px 0 0}
@media (max-width:760px){.access{grid-template-columns:1fr}}
.svc-item{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:clamp(24px,4vw,56px);align-items:center;padding-block:clamp(36px,5vw,56px);border-top:1px solid var(--line)}
.svc-item:nth-child(even) .ph{order:2}
.svc-item .ph{border-radius:8px;overflow:hidden;aspect-ratio:4/3}
.svc-item .ph img{width:100%;height:100%;object-fit:cover}
.svc-item .tag{font-family:var(--f-en);font-weight:600;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}
.svc-item h3{font-weight:500;font-size:clamp(1.3rem,2.4vw,1.7rem);letter-spacing:.08em;margin:8px 0 14px}
.svc-item p{color:var(--muted);font-size:.94rem}
.svc-item ul{margin:16px 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:8px}
.svc-item ul li{font-size:.8rem;border:1px solid var(--line);border-radius:999px;padding:.2rem .8rem;background:var(--panel)}
@media (max-width:760px){.svc-item{grid-template-columns:1fr}.svc-item:nth-child(even) .ph{order:0}}
.works.grid3{grid-template-columns:repeat(3,minmax(0,1fr))}
.works.grid3 .work{grid-column:auto;grid-row:auto}
@media (max-width:900px){.works.grid3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.works.grid3{grid-template-columns:1fr}}
.steps{list-style:none;margin:36px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;counter-reset:s}
.steps li{background:var(--panel);border-radius:8px;padding:24px 22px;display:grid;gap:8px;align-content:start;counter-increment:s;min-width:0}
.steps li::before{content:"STEP " counter(s);font-family:var(--f-en);font-weight:700;font-size:.72rem;letter-spacing:.2em;color:var(--accent)}
.steps b{font-weight:500;font-size:1.05rem}
.steps p{font-size:.86rem;color:var(--muted)}
@media (max-width:860px){.steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.steps{grid-template-columns:1fr}}
.cond{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.cond li{padding:18px 0 18px 30px;border-bottom:1px solid var(--line);position:relative;font-size:.95rem}
.cond li::before{content:"";position:absolute;left:4px;top:1.55em;width:12px;height:6px;border-left:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:rotate(-45deg)}
.contact-box{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.cbox{background:var(--panel);border-radius:8px;padding:clamp(24px,4vw,40px);display:grid;gap:10px;align-content:start;min-width:0}
.cbox small{color:var(--accent);font-size:.8rem;letter-spacing:.1em}
.cbox .v{font-family:var(--f-en);font-weight:700;font-size:clamp(1.7rem,4vw,2.5rem);line-height:1.2;user-select:all;word-break:break-all}
.cbox .v.sm{font-size:clamp(1.2rem,2.6vw,1.6rem)}
.cbox p{color:var(--muted);font-size:.86rem}
.copy{justify-self:start;font:inherit;font-size:.78rem;background:none;border:1px solid var(--line);color:var(--muted);padding:.3rem .9rem;border-radius:999px;cursor:pointer}
.copy:hover{color:var(--accent);border-color:var(--accent)}
@media (max-width:760px){.contact-box{grid-template-columns:1fr}}
.pp{max-width:52rem;display:grid;gap:1rem;font-size:.94rem;line-height:2}
.pp h3{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem 1rem;font-weight:500;font-size:1.2rem;margin-top:2.2rem;padding-bottom:.6rem;border-bottom:1px solid var(--text)}
.pp h3 span{font-size:.82rem;color:var(--accent);letter-spacing:.12em}
.pp h4{font-weight:700;font-size:.96rem;margin:1rem 0 0}
.pp-list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.pp-list li{display:grid;grid-template-columns:2.6em 1fr;gap:.2rem;min-width:0}
.pp-list span{color:var(--muted)}
.pp-dot{padding-left:1em;text-indent:-1em}
.pp-dot::before{content:"・"}
.pp-tbl{max-width:36rem}
.pp-sign{margin-top:2rem;text-align:right}
.pp-todo{border:1px dashed var(--line);padding:1rem 1.2rem;color:var(--muted);font-size:.86rem}
.ft-ig{display:inline-flex;align-items:center;gap:8px;margin-top:10px;text-decoration:none}
.ft-ig svg{width:16px;height:16px}
.fixbar{position:fixed;left:0;right:0;bottom:0;z-index:25;display:none;grid-template-columns:1fr 1fr;background:var(--navy);padding-bottom:env(safe-area-inset-bottom,0px);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}
.fixbar a{display:grid;place-items:center;height:54px;color:var(--on-navy);text-decoration:none;font-size:.88rem;letter-spacing:.08em}
.fixbar a+a{background:var(--accent);color:#fff}
@media (max-width:760px){.fixbar{display:grid}.ft .wrap{padding-bottom:calc(40px + 54px + env(safe-area-inset-bottom,0px))}}
.draft{display:none}
.hero .sig{display:grid;gap:6px;justify-items:end}
.hero .sig span{font-family:var(--f-ja);font-weight:500;font-size:clamp(1.6rem,3.4vw,2.6rem);letter-spacing:.24em}
.hero .sig small{font-family:var(--f-en);font-size:clamp(.72rem,1vw,.85rem);letter-spacing:.14em;opacity:.85}
/* 高級感のある明るさ:差し色をブロンズに、お問い合わせ欄は白に細い金線 */
:root{--accent:#a8864f}
section.ct{background:#ffffff!important;border-top:1px solid rgba(168,134,79,.45)}
section.ct .tel{border-top:1px solid rgba(168,134,79,.55)!important}
.label,.eyebrow,.pg-head .en,.svc-item .tag,.work .tag,.nw .meta,.card .no,.num .k,.plist li span,.timeline li::before{color:#a8864f}
.timeline li::before{background:#a8864f}
.nav a[aria-current="page"]{color:#d9bf8c!important}
.pg-head .en{color:#d9bf8c!important}
/* 濃紺は1色だけに:お問い合わせ欄は明るく、フッターは1色+線で区切る */
section.ct{background:#e6edf6!important;color:var(--text)}
section.ct h2{color:var(--text)}
section.ct .label{color:var(--accent)}
section.ct p.lead{color:var(--muted)}
section.ct .tel{border-top-color:rgba(15,36,70,.25)}
section.ct .tel small{color:var(--accent)}
section.ct .tel .v,section.ct .tel .m{color:var(--text)}
section.ct .btn{background:var(--navy);color:#fff}
section.ct .ct-ig{color:var(--muted)}
section.ct .ct-ig:hover span{color:var(--text)}
.ft{background:var(--navy)!important}
.ft-sub{background:transparent!important;border-top:1px solid rgba(238,243,250,.16)}
.ct-ig{display:inline-flex;align-items:center;gap:12px;margin-top:28px;text-decoration:none;color:#c9d4e3;justify-self:start}
.ct-ig img{width:26px;height:26px}
.ct-ig img.t{width:auto;height:24px}
.ct-ig span{font-size:.82rem;letter-spacing:.04em}
.ct-ig:hover span{color:#fff}
/* フッター:会社情報と、少し濃いリンクのエリアを線で区切る */
.ft .wrap{padding-block:56px 44px}
.ft-sub{background:#071226;border-top:1px solid rgba(238,243,250,.12)}
.ft-sub .wrap{padding-block:22px 26px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 32px}
.ft-sub nav{display:flex;flex-wrap:wrap;gap:6px 22px;font-size:.8rem}
.ft-sub small{font-size:.72rem;color:#7f8ea6}
@media (max-width:760px){.ft-sub .wrap{padding-bottom:calc(26px + 54px + env(safe-area-inset-bottom,0px))}.ft>.wrap{padding-bottom:36px}}
.ig{border:0!important;width:auto;height:auto}
.ig img{width:24px;height:24px;display:block}
.ft-ig{gap:12px;margin-top:16px}
.ft-ig img{width:26px;height:26px}
.ft-ig .ft-ig-t{width:auto;height:24px}
.igband .h .ig-g{width:52px;height:52px;flex:none}
.igband .h .ig-t{height:30px;width:auto;display:block;margin-bottom:6px}
.fixbar a+a{background:#1d66c9!important;color:#fff}
.svc-item .ph.photo img{object-position:center 30%}
.svc-item .ph.photo img[src*="svc-main"]{object-position:center 10%}
.svc-item .ph.photo img[src*="injection-hq"]{object-position:center 35%}
.svc-item .ph.photo img[src*="svc-scaffold-photo"]{object-position:80% 45%}
.svc-ph{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.svc-ph img{width:100%;aspect-ratio:2/1;object-fit:cover;border-radius:6px}
.ct{position:relative;isolation:isolate;overflow:hidden}
.ct>img{display:block!important;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 55%;z-index:-2;filter:none}
.ct::before{display:none!important;content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(15,36,70,.55) 0%,rgba(15,36,70,.3) 55%,rgba(10,26,52,.75) 100%)}
.works .work img[src*="injection-hq"]{object-position:center 35%}
.svc-gal{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);grid-template-rows:auto auto;gap:16px;margin-bottom:clamp(28px,4vw,48px)}
.svc-gal figure{margin:0;position:relative;border-radius:8px;overflow:hidden;min-height:0}
.svc-gal img{width:100%;height:100%;object-fit:cover;display:block}
.svc-gal .g1 img{aspect-ratio:16/8;object-position:center 8%}
.svc-gal .g2 img{aspect-ratio:16/8;object-position:center 40%}
.svc-gal .g3{grid-column:2;grid-row:1/3}
.svc-gal .g3 img{object-position:82% 50%}
.svc-gal figcaption{position:absolute;left:12px;bottom:12px;background:rgba(15,36,70,.82);color:#fff;font-size:.76rem;letter-spacing:.06em;padding:.3rem .7rem;border-radius:3px}
@media (max-width:700px){.svc-gal{grid-template-columns:1fr}.svc-gal .g3{grid-column:auto;grid-row:auto}.svc-gal .g3 img{aspect-ratio:4/3}}
.svc-hero{margin:0 0 clamp(24px,4vw,40px);display:grid;gap:10px}
.svc-hero img{width:100%;aspect-ratio:21/9;object-fit:cover;object-position:center 8%;border-radius:8px}
.svc-hero figcaption{font-size:.8rem;color:var(--muted);text-align:right}
@media (max-width:600px){.svc-hero img{aspect-ratio:4/3}}
/* 事業継続力強化計画 認定ロゴ(規約:加工しない・幅の3割以上の余白) */
.cert{display:flex;flex-wrap:wrap;align-items:center;gap:18px}
.cert{flex-wrap:nowrap}
.cert img{width:72px;height:auto;margin:22px 22px 22px 0;flex:none}
.cert p{margin:0}
.cert small{color:var(--muted)}
.ft-cert{display:flex;align-items:center;gap:14px;margin-top:18px}
.ft-cert img{width:56px;height:auto;background:#fff;padding:17px;box-sizing:content-box;border-radius:4px;flex:none}
.ft-cert span{font-size:.74rem;line-height:1.6}
.svc-item:nth-child(even){grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}
@media (max-width:760px){.svc-item:nth-child(even){grid-template-columns:1fr}}
/* ===== ヒーロー:言葉なし。右下に英語の一文だけ ===== */
.hero{min-height:clamp(460px,74vh,780px)}
.hero::before{background:linear-gradient(180deg,rgba(10,26,52,0) 55%,rgba(10,26,52,.45) 100%)}
.hero .sig{position:absolute;right:max(28px,env(safe-area-inset-right,0px));bottom:clamp(28px,5vw,56px);margin:0;text-align:right;font-family:var(--f-en);font-weight:700;color:#fff;font-size:clamp(1.15rem,2.2vw,1.7rem);line-height:1.3;letter-spacing:.01em;text-shadow:0 1px 16px rgba(0,0,0,.35);animation:rnzUp 1.6s .4s cubic-bezier(.2,.7,.2,1) both}
section.hero .dots{left:max(28px,env(safe-area-inset-left,0px));right:auto;bottom:clamp(36px,5.4vw,64px);justify-content:flex-start}
section.hero::before{background:linear-gradient(180deg,rgba(10,26,52,0) 55%,rgba(10,26,52,.45) 100%)}
@media (max-width:600px){.hero{min-height:62vh}.hero .sig{font-size:1.05rem}}
@media (prefers-reduced-motion:reduce){.hero .sig{animation:none}}
/* ===== ヒーロー:英語を主役に ===== */
.hero .cap{gap:20px}
.hero .cap .e{margin:0;font-family:var(--f-en);font-weight:800;color:#fff;text-align:center;font-size:clamp(2.4rem,6.4vw,5.2rem);line-height:1.08;letter-spacing:-.01em;text-shadow:0 2px 30px rgba(0,0,0,.35)}
.hero .cap .e.w{font-size:clamp(2.8rem,8vw,6.4rem);letter-spacing:.08em}
.hero .cap .j{margin:0;font-weight:500;color:#fff;text-align:center;font-size:clamp(.92rem,1.5vw,1.12rem);letter-spacing:.18em;text-shadow:0 1px 14px rgba(0,0,0,.6);word-break:auto-phrase}
.hero .cap .j::before{content:"";display:block;width:36px;height:1px;background:rgba(255,255,255,.75);margin:0 auto 16px}
.hero .cap.end img{height:clamp(48px,6vw,72px)}
.hero .cap.end .e{font-size:clamp(2rem,5.4vw,4.4rem)}
@media (max-width:440px){.hero .cap .e.w{font-size:2.6rem;letter-spacing:.05em}.hero .cap.end .e{font-size:2rem}.hero .cap .j{letter-spacing:.1em;font-size:.9rem}}
/* ===== 濃紺テーマ ===== */
:root{--navy:#0f2446;--text:#14233d;--muted:#5d6b80;--line:rgba(15,36,70,.14);--bg:#f4f6f9;--bg-2:#e9eef4;--on-navy:#eef3fa}
.hd{background:var(--navy)}
body::before{background:var(--navy)}
.ft{background:#0a1a34}
.pg-head{background:var(--navy)}
.pg-head>img{opacity:.6;mix-blend-mode:luminosity}
.pg-head::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(15,36,70,.75),rgba(15,36,70,.3))}
.ct{background:var(--navy)}
.btn-s{background:var(--navy)}
.menu-btn{border-color:rgba(238,243,250,.35)}
.nav.open{background:var(--navy)}
.fixbar{background:var(--navy)}
.map{grid-column:1/-1;position:relative;aspect-ratio:16/7;min-height:280px;border-radius:8px;overflow:hidden;background:var(--panel);border:1px solid var(--line)}
.map::before{content:"地図を読み込んでいます";position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);font-size:.86rem}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
@media (max-width:600px){.map{aspect-ratio:4/3}}
/* ヒーローのスライド:ゆっくり寄りながら3枚が切り替わる */
.hero .slides{position:absolute;inset:0;z-index:-2;overflow:hidden;background:var(--navy)}
.hero .slides img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;animation:rnzSlide 21s linear infinite;will-change:opacity,transform}
.hero .slides img:nth-child(1){object-position:center top;opacity:1;animation-delay:-1.4s}
.hero .slides img:nth-child(2){animation-delay:5.6s}
.hero .slides img:nth-child(3){animation-delay:12.6s}
@keyframes rnzSlide{0%{opacity:0;transform:scale(1.12)}7%{opacity:1}33%{opacity:1}40%{opacity:0;transform:scale(1)}100%{opacity:0;transform:scale(1)}}
.hero h1 span,.hero .sub{animation:rnzUp 1.4s cubic-bezier(.2,.7,.2,1) both}
.hero h1 span:nth-child(2){animation-delay:.25s}
.hero .sub{animation-delay:.6s}
@keyframes rnzUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.hero .dots{position:absolute;left:0;right:0;bottom:28px;display:flex;justify-content:center;gap:10px}
.hero .dots i{width:28px;height:2px;background:rgba(255,255,255,.35);overflow:hidden;position:relative}
.hero .dots i::after{content:"";position:absolute;inset:0;background:#fff;transform:scaleX(0);transform-origin:left;animation:rnzBar 21s linear infinite}
.hero .dots i:nth-child(1)::after{animation-delay:-1.4s}
.hero .dots i:nth-child(2)::after{animation-delay:5.6s}
.hero .dots i:nth-child(3)::after{animation-delay:12.6s}
@keyframes rnzBar{0%{transform:scaleX(0)}33%{transform:scaleX(1)}34%,100%{transform:scaleX(0)}}
.hero::before{background:radial-gradient(ellipse 70% 55% at 50% 50%,rgba(14,30,60,.38) 0%,rgba(14,30,60,.16) 60%,rgba(14,30,60,.08) 100%)}
.hero h1{font-weight:700;text-shadow:0 2px 24px rgba(0,0,0,.45)}
.hero .sub{font-weight:500;text-shadow:0 1px 14px rgba(0,0,0,.6)}
@media (max-width:440px){
  .brand b{display:block;font-size:.82rem;letter-spacing:.06em}
  .brand{gap:10px}
  .brand img{height:26px}
  .hd .wrap{gap:12px}
  .hero::before{background:linear-gradient(180deg,rgba(20,24,32,.25) 0%,rgba(20,24,32,.55) 45%,rgba(20,24,32,.55) 60%,rgba(20,24,32,.25) 100%)}
  .hero h1{font-size:2.3rem;letter-spacing:.1em}
}
.hero .slides img{animation:rnzImgS 24s linear infinite;opacity:0}
.hero .slides img:nth-child(1){object-position:center 62%;animation-delay:-1.5s}
.hero .slides img:nth-child(2){object-position:center top;animation-delay:4.5s}
.hero .slides img:nth-child(3){animation-delay:10.5s}
.hero .slides img:nth-child(4){object-position:center 55%;animation-delay:16.5s}
@keyframes rnzImgS{0%{opacity:0;transform:scale(1.1)}6%{opacity:1}25%{opacity:1}31%{opacity:0;transform:scale(1.02)}100%{opacity:0}}
@keyframes rnzImgL{0%{opacity:0;transform:scale(1.12)}6%{opacity:1}50%{opacity:1}56%{opacity:0;transform:scale(1)}100%{opacity:0}}
.hero .caps{display:grid;justify-items:center}
.hero .cap{grid-area:1/1;display:grid;justify-items:center;gap:18px;opacity:0;animation:rnzCap 24s linear infinite}
.hero .cap:nth-child(1){animation-delay:-1.5s}
.hero .cap:nth-child(2){animation-delay:4.5s}
.hero .cap:nth-child(3){animation-delay:10.5s}
.hero .cap:nth-child(4){animation-delay:16.5s}
@keyframes rnzCap{0%{opacity:0;transform:translateY(16px)}5%{opacity:1;transform:none}22%{opacity:1;transform:none}27%{opacity:0;transform:translateY(-8px)}100%{opacity:0}}
.hero .cap .k{display:inline-flex;align-items:center;gap:12px;font-weight:700;font-size:clamp(.9rem,1.6vw,1.1rem);letter-spacing:.4em;color:#fff;text-shadow:0 1px 12px rgba(0,0,0,.5)}
.hero .cap .k::before,.hero .cap .k::after{content:"";width:28px;height:1px;background:rgba(255,255,255,.7)}
.hero .cap .c{text-align:center;font-weight:700;font-size:clamp(2rem,5vw,3.6rem);line-height:1.55;letter-spacing:.12em;color:#fff;text-shadow:0 2px 24px rgba(0,0,0,.45);margin:0;word-break:auto-phrase}
.hero .cap.end img{height:clamp(56px,8vw,88px);width:auto;background:#fff;border-radius:6px;padding:8px 14px;box-sizing:content-box}
.hero .cap.end .c{font-size:clamp(1.8rem,4.4vw,3rem);letter-spacing:.2em}
.hero .cap.end .s{font-weight:500;font-size:clamp(.9rem,1.4vw,1.05rem);letter-spacing:.14em;color:#fff;text-shadow:0 1px 14px rgba(0,0,0,.6)}
.hero .dots i::after{animation:rnzBar4 24s linear infinite}
.hero .dots i:nth-child(1)::after{animation-delay:-1.5s}
.hero .dots i:nth-child(2)::after{animation-delay:4.5s}
.hero .dots i:nth-child(3)::after{animation-delay:10.5s}
.hero .dots i:nth-child(4)::after{animation-delay:16.5s}
@keyframes rnzBar4{0%{transform:scaleX(0)}25%{transform:scaleX(1)}26%,100%{transform:scaleX(0)}}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (max-width:440px){.hero .cap .c{font-size:1.9rem;letter-spacing:.08em}.hero .cap.end .c{font-size:1.6rem}}
@media (prefers-reduced-motion:reduce){.hero .cap{animation:none}.hero .cap:nth-child(-n+3){display:none}.hero .cap.end{opacity:1}.hero .slides img:nth-child(1){opacity:1}
.hero .slides img{animation:none}.hero .slides img:nth-child(n+2){display:none}.hero .dots{display:none}.hero h1 span,.hero .sub{animation:none}}
.nav .sp-only{display:none}
@media (max-width:980px){.nav.open .sp-only{display:block}}
@media (max-width:980px){.nav.open .sp-sub{font-size:.82rem!important;color:rgba(255,255,255,.6)!important;border-bottom:0!important}}
.igband{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px 40px;align-items:center;background:var(--panel);border-radius:8px;padding:clamp(24px,4vw,40px)}
.igband .h{display:flex;align-items:center;gap:18px;min-width:0}
.igband .h svg{width:46px;height:46px;flex:none;color:var(--accent)}
.igband b{display:block;font-family:var(--f-en);font-weight:700;font-size:clamp(1.4rem,3vw,2rem);letter-spacing:.02em}
.igband p{color:var(--muted);font-size:.88rem}
@media (max-width:700px){.igband{grid-template-columns:1fr}}

/* ===== 最終トーン:白基調+濃紺の文字+ブロンズの差し色(高級感のある明るさ) ===== */
:root{--paper:#faf9f7;--bg:#faf9f7;--bg-2:#f2f0ec;--panel:#ffffff;--text:#15233d;--ink:#15233d;--muted:#5f6878;--line:rgba(21,35,61,.12);--accent:#a8864f;--navy:#15233d;--on-navy:#f6f4ef}
body{background:var(--bg);color:var(--text)}
body::before{background:#ffffff}
/* ヘッダー */
.hd{background:rgba(255,255,255,.94)!important;backdrop-filter:blur(10px);border-bottom:1px solid var(--line);color:var(--text)}
.hd .brand b{color:var(--text)}
.hd .brand img{background:transparent;padding:0}
.nav a{color:var(--text)!important;opacity:1}
.nav a:hover{color:var(--accent)!important}
.nav a[aria-current="page"]{color:var(--accent)!important}
.hd-cta{border:1px solid var(--text)!important;color:var(--text)!important;background:transparent}
.hd-cta:hover{background:var(--text)!important;color:#fff!important}
.menu-btn{border-color:var(--line)!important;color:var(--text)!important}
.nav.open{background:#ffffff!important;border-top:1px solid var(--line)}
.nav.open a{border-bottom-color:var(--line)!important}
/* 下層ページの見出し */
.pg-head{background:var(--bg-2)!important;color:var(--text)}
.pg-head>img{opacity:1!important;mix-blend-mode:normal!important}
.pg-head::after{background:linear-gradient(90deg,rgba(250,249,247,.94) 0%,rgba(250,249,247,.75) 45%,rgba(250,249,247,.15) 100%)!important}
.pg-head h1{color:var(--text)}
.pg-head .en{color:var(--accent)!important}
.crumb{color:var(--muted)}
.crumb a:hover{color:var(--text)}
/* 面の色 */
.st-bg,.sv-bg,#strength{background:var(--bg-2)!important}
.label,.eyebrow,.svc-item .tag,.work .tag,.nw .meta,.card .no,.plist li span{color:var(--accent)!important}
.timeline li::before{background:var(--accent)!important}
.btn-s{background:var(--text)!important;color:#fff!important}
/* お問い合わせ欄 */
section.ct{background:#ffffff!important;color:var(--text);border-top:1px solid rgba(168,134,79,.45)}
section.ct h2{color:var(--text)}
section.ct p.lead{color:var(--muted)}
section.ct .tel{border-top:1px solid rgba(168,134,79,.55)!important}
section.ct .tel small{color:var(--accent)}
section.ct .tel .v,section.ct .tel .m{color:var(--text)}
section.ct .btn{background:var(--text)!important;color:#fff!important}
section.ct .ct-ig{color:var(--muted)}
/* フッター */
.ft{background:var(--bg-2)!important;color:var(--muted);border-top:1px solid var(--line)}
.ft b{color:var(--text)!important}
.ft a{color:var(--muted)}
.ft a:hover{color:var(--text)}
.ft-sub{background:transparent!important;border-top:1px solid var(--line)!important}
.ft-sub small{color:var(--muted)}
/* スマホ下の相談ボタン */
.fixbar{background:#ffffff!important;border-top:1px solid var(--line)}
.fixbar a{color:var(--text)!important}
.fixbar a+a{background:var(--text)!important;color:#fff!important}

/* ===== 黒×ブロンズ案 ===== */
:root{--navy:#141414}
body::before{background:#141414}
.hd{background:#141414!important;border-bottom:1px solid rgba(255,255,255,.08)}
.hd .brand b{color:#f4f1ea}
.hd .brand img{background:#fff;padding:3px 6px;border-radius:3px}
.nav a{color:#e9e5dc!important}
.nav a:hover,.nav a[aria-current="page"]{color:#c9a96e!important}
.hd-cta{border-color:#c9a96e!important;color:#c9a96e!important}
.hd-cta:hover{background:#c9a96e!important;color:#141414!important}
.menu-btn{border-color:rgba(255,255,255,.3)!important;color:#f4f1ea!important}
.nav.open{background:#141414!important}
.nav.open a{border-bottom-color:rgba(255,255,255,.1)!important}
.pg-head{background:#141414!important;color:#f4f1ea}
.pg-head::after{background:linear-gradient(90deg,rgba(20,20,20,.88) 0%,rgba(20,20,20,.6) 50%,rgba(20,20,20,.25) 100%)!important}
.pg-head h1{color:#f4f1ea}
.pg-head .en{color:#c9a96e!important}
.crumb{color:#b5b0a6}
.btn-s,section.ct .btn{background:#141414!important}
.fixbar a+a{background:#141414!important}
.ft{background:#141414!important;color:#b5b0a6;border-top:0}
.ft b{color:#f4f1ea!important}
.ft a{color:#b5b0a6}
.ft a:hover{color:#f4f1ea}
.ft-sub{border-top:1px solid rgba(255,255,255,.1)!important}
.ft-sub small{color:#8d887f}

/* ===== 白黒+ブロンズ(最終) ===== */
:root{--text:#1b1b1b;--ink:#1b1b1b;--muted:#6b675f;--line:rgba(27,27,27,.12);--bg:#fbfaf8;--paper:#fbfaf8;--bg-2:#f2f0eb;--accent:#a8864f;--navy:#141414}
h1,h2,h3{color:var(--text)}
.hero .sig{color:#fff}
/* ブロンズは「小見出し・区切り線・現在地・数字の単位・タグ」だけに使う */
.label,.svc-item .tag,.work .tag,.nw .meta,.card .no,.plist li span,.cert small{color:var(--accent)!important}
.h2{position:relative}
.sec-head .h2::after,.works-head .h2::after{content:"";display:block;width:36px;height:2px;background:var(--accent);margin-top:14px}
.num .fig small{color:var(--accent)}
.tbl tr:first-child th,.tbl tr:first-child td{border-top-color:var(--text)!important}
.cond li::before{border-color:var(--accent)!important}
.steps li::before{color:var(--accent)}
/* ボタンは黒、押すとブロンズ */
.btn-s,section.ct .btn{background:#141414!important;color:#fff!important;transition:background .2s}
.btn-s:hover,section.ct .btn:hover{background:var(--accent)!important}
.copy:hover{color:var(--accent);border-color:var(--accent)}
.fixbar{background:#ffffff!important}
.fixbar a{color:#141414!important}
.fixbar a+a{background:#141414!important;color:#fff!important}

/* ===== 参考サイト風:英語の大見出し・MOREボタン・問い合わせの入口 ===== */
.ttl2{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 18px;margin-bottom:6px}
.ttl2 .en{font-family:var(--f-en);font-weight:700;font-size:clamp(2.2rem,5vw,3.6rem);letter-spacing:.06em;line-height:1.05;color:var(--text)}
.ttl2 .ja{font-size:.86rem;letter-spacing:.14em;color:var(--accent)}
.intro .ttl2,.center .ttl2{justify-content:center}
.h2s{font-weight:500;font-size:clamp(1.15rem,2.2vw,1.5rem);line-height:1.8;letter-spacing:.06em;margin:18px 0 0;color:var(--text)}
section.ct .ttl2 .en{color:var(--text)}
.btn-s{display:inline-flex!important;align-items:baseline;gap:14px;background:transparent!important;color:var(--text)!important;border:1px solid var(--text);border-radius:0!important;padding:.85rem 1.6rem!important}
.btn-s span{font-family:var(--f-en);font-weight:700;letter-spacing:.2em;font-size:.8rem}
.btn-s small{font-size:.76rem;color:var(--muted)}
.btn-s::after{content:"";width:28px;height:1px;background:currentColor;align-self:center;transition:width .3s}
.btn-s:hover{background:var(--text)!important;color:#fff!important}
.btn-s:hover small{color:#d8d3c8}
.btn-s:hover::after{width:40px}
.ct-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:clamp(36px,5vw,56px)}
.ct-cards a{display:grid;gap:4px;padding:22px 24px;border:1px solid var(--line);background:var(--bg);text-decoration:none;position:relative;transition:border-color .2s}
.ct-cards a::after{content:"→";position:absolute;right:20px;top:50%;transform:translateY(-50%);color:var(--accent)}
.ct-cards a:hover{border-color:var(--accent)}
.ct-cards b{font-weight:700;font-size:1rem;color:var(--text)}
.ct-cards small{font-size:.8rem;color:var(--muted)}
@media (max-width:760px){.ct-cards{grid-template-columns:1fr}}
.gate{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:28px}
.gate a{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;text-decoration:none;color:#fff;background:#141414}
.gate img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.72;transition:transform .8s cubic-bezier(.2,.7,.2,1),opacity .3s}
.gate a:hover img{transform:scale(1.04);opacity:.6}
.gate div{position:absolute;left:28px;right:28px;bottom:24px;display:grid;gap:2px}
.gate .en{font-family:var(--f-en);font-weight:700;font-size:clamp(1.6rem,3vw,2.2rem);letter-spacing:.06em;line-height:1}
.gate b{font-weight:700;font-size:1rem;margin-top:6px}
.gate small{font-size:.8rem;color:#e6e1d6}
.gate div::after{content:"";position:absolute;right:0;bottom:6px;width:40px;height:1px;background:#d9bf8c}
@media (max-width:700px){.gate{grid-template-columns:1fr}}
/* ヘッダーの「お問い合わせ」:ブロンズの面に白文字 */
.hd-cta{background:#a8864f!important;border-color:#a8864f!important;color:#fff!important}
.hd-cta:hover{background:#fff!important;border-color:#fff!important;color:#141414!important}
/* ===== 色を一段やわらかく:白は生成り寄り、ブロンズは淡く ===== */
:root{--accent:#b39a72;--bg:#f6f4ef;--paper:#f6f4ef;--bg-2:#eeebe4;--panel:#fbfaf7}
body{background:var(--bg)}
section.ct{background:var(--panel)!important;border-top-color:rgba(179,154,114,.35)}
section.ct .tel{border-top-color:rgba(179,154,114,.45)!important}
.ct-cards a{background:var(--bg)}
.card,.nw .ph,.cbox{background:var(--panel)}
.label,.svc-item .tag,.work .tag,.nw .meta,.card .no,.plist li span,.cert small,.ttl2 .ja,.num .fig small{color:#a48c66!important}
.sec-head .h2::after,.works-head .h2::after,.timeline li::before{background:#b39a72!important}
.hd-cta{background:transparent!important;border:1px solid #b39a72!important;color:#d8c6a6!important}
.hd-cta:hover{background:#b39a72!important;color:#fff!important}
.nav a:hover,.nav a[aria-current="page"],.pg-head .en{color:#d8c6a6!important}
.btn-s:hover,section.ct .btn:hover{background:#b39a72!important}
.gate div::after{background:#d8c6a6}

/* ===== 制作会社の仕上げ ===== */
:root{--bg:#ffffff;--paper:#ffffff;--bg-2:#f6f5f2;--panel:#ffffff;--f-en:"Jost","Noto Sans JP",system-ui,sans-serif}
body{background:#ffffff;font-feature-settings:"palt" 1;letter-spacing:.06em}
#about,.st-bg#about{background:#ffffff!important}
#strength,.sv-bg{background:var(--bg-2)!important}
/* 見出し:英字は細めで字間を広く */
.ttl2 .en{font-weight:400;letter-spacing:.14em;font-size:clamp(2rem,4.4vw,3.2rem)}
.ttl2 .ja{letter-spacing:.2em}
.gate .en,.pg-head .en{font-weight:400;letter-spacing:.2em}
.hero .sig{font-family:var(--f-en);font-weight:400;letter-spacing:.08em}
h1,h2,h3,.h2s,.msg-lead{font-feature-settings:"palt" 1;letter-spacing:.1em}
.h2s{font-weight:400}
.intro .big{font-weight:400}
/* 角丸と影をやめ、写真と面は直角に */
.card,.nw .ph,.work .ph,.work img,.svc-item .ph,.svc-gal figure,.cbox,.chips li,.steps li,.map,.igband,.btn,.btn-s,.svc-ph img,.ct-cards a,.gate a{border-radius:0!important;box-shadow:none!important}
/* 選ばれる理由:写真なし・番号と罫線 */
.st{gap:0!important;border-top:1px solid var(--text)}
.card{background:transparent!important;border-bottom:1px solid var(--line)}
.card+.card{border-left:1px solid var(--line)}
.card .tx{padding:36px 32px 40px}
.card .no{font-family:var(--f-en);font-weight:300;font-size:3rem!important;letter-spacing:.04em;line-height:1;color:#b39a72!important}
.card h3{font-weight:500;font-size:1.2rem;margin-top:8px}
@media (max-width:900px){.card+.card{border-left:0}.card{grid-template-columns:1fr!important}}
/* お知らせ:日付と見出しの一覧 */
.nlist{list-style:none;margin:28px 0 0;padding:0;border-top:1px solid var(--text)}
.nlist li{border-bottom:1px solid var(--line)}
.nlist li,.nlist li a{display:grid;grid-template-columns:7em 7em 1fr;align-items:baseline;gap:6px 20px;padding:22px 4px;text-decoration:none;color:var(--text)}
.nlist li a{padding:0;grid-column:1/-1}
.nlist time{font-family:var(--f-en);letter-spacing:.08em;color:var(--muted)}
.nlist .cat{font-size:.74rem;letter-spacing:.14em;color:#a48c66;border:1px solid rgba(179,154,114,.6);padding:.1rem .6rem;justify-self:start}
.nlist p{margin:0;font-size:.95rem}
@media (max-width:600px){.nlist li,.nlist li a{grid-template-columns:auto 1fr}.nlist p{grid-column:1/-1}}
/* 細部 */
.ct-cards a::after{content:"";width:22px;height:1px;background:#b39a72}
.btn-s span{font-family:var(--f-en);font-weight:500;letter-spacing:.24em}
@media (max-width:600px){section.hero .dots{display:none}}
.intro .poem{line-height:2.4;letter-spacing:.1em;color:var(--text);font-size:.98rem}
.intro .big{font-size:clamp(1.15rem,2vw,1.4rem);letter-spacing:.14em}
.intro .poem span{display:inline-block}
@media (max-width:600px){.intro .poem{font-size:.92rem;letter-spacing:.06em;line-height:2.1}.intro .poem br{display:block;content:"";margin-top:.9em}}
.intro .poem .ln{display:block}
@media (max-width:600px){.intro .poem .ln+.ln{margin-top:1em}}
/* トップは1枚だけ:ゆっくり寄るだけで、切り替えなし */
.hero .slides img:nth-child(1){opacity:1!important;animation:rnzZoom 14s ease-out both!important}
@keyframes rnzZoom{from{transform:scale(1.08)}to{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){.hero .slides img:nth-child(1){animation:none!important}}
/* ABOUTは左詰め */
.intro{text-align:left!important;margin-inline:0!important;max-width:none!important}
.intro .ttl2,.intro .label{justify-content:flex-start!important}
.intro .body{text-align:left!important}
.intro .more-c{justify-content:flex-start!important}
@media (min-width:861px){.intro{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr)!important;gap:clamp(32px,6vw,96px)!important;align-items:start}}
/* 施工事例:1件ずつ区切って見やすく */
.works.grid3{row-gap:0!important;column-gap:clamp(20px,3vw,40px)!important;margin-top:36px}
.works.grid3 .work{padding-block:28px 32px;border-top:1px solid var(--line);gap:14px}
.works.grid3 .work figcaption{gap:6px}
.works.grid3 .work b{font-size:1.05rem;line-height:1.6}
@media (max-width:520px){.works.grid3 .work{padding-block:28px 36px}.works.grid3 .work:first-child{border-top:1px solid var(--text)}}
/* 新ロゴ(横組み) */
.brand .logo-h{height:38px!important;width:auto!important;background:none!important;padding:0!important;border-radius:0!important}
.ft-logo{height:34px;width:auto;margin-bottom:14px;display:inline-block}
@media (max-width:440px){.brand .logo-h{height:30px!important}}
.brand .logo-h{height:30px!important}
.ft-logo{height:28px}
@media (max-width:440px){.brand .logo-h{height:24px!important}}
/* ロゴは白い台の上に(黒に沈まないように) */
.brand .logo-h{background:#fff!important;padding:7px 12px!important;box-sizing:content-box!important;border-radius:2px!important;height:26px!important}
.ft-logo{background:#fff;padding:7px 12px;box-sizing:content-box;border-radius:2px;height:24px}
@media (max-width:440px){.brand .logo-h{height:20px!important;padding:6px 10px!important}}
/* ロゴは文字の形に沿った白フチ(台なし) */
.brand .logo-h{background:none!important;padding:0!important;height:32px!important}
.ft-logo{background:none;padding:0;height:28px}
@media (max-width:440px){.brand .logo-h{height:24px!important;padding:0!important}}

/* PCでもメニューは☰にまとめる */
@media (min-width:981px){
  .hd .wrap{position:relative}
  .nav{display:none}
  .hd .ig{margin-left:auto}
  .menu-btn{display:inline-flex!important;align-items:center;justify-content:center;width:44px;height:44px;background:none;border:1px solid rgba(255,255,255,.3)!important;color:#f4f1ea!important;border-radius:0;cursor:pointer;font:inherit;font-size:1.1rem}
  .menu-btn:hover{border-color:#b39a72!important;color:#d8c6a6!important}
  .nav.open{display:flex;position:absolute;right:0;top:100%;width:340px;flex-direction:column;gap:0;background:#141414!important;padding:10px 32px 26px;border-top:1px solid rgba(255,255,255,.12);box-shadow:0 18px 40px rgba(0,0,0,.25)!important}
  .nav.open a{padding:16px 0;border-bottom:1px solid rgba(255,255,255,.1);font-size:.95rem}
  .nav.open .sp-only{display:block}
  .nav.open .sp-sub{font-size:.82rem!important;color:rgba(255,255,255,.6)!important;border-bottom:0!important}
}

/* メニューが画面より長いときはパネルの中でスクロール */
.nav.open{max-height:calc(100vh - 76px);max-height:calc(100dvh - 76px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
@media (max-width:980px){.nav.open{max-height:calc(100vh - 68px);max-height:calc(100dvh - 68px)}}
@media (min-width:981px) and (max-height:760px){.nav.open a{padding:12px 0}.nav.open{padding-top:4px;padding-bottom:16px}}

/* 個人情報保護方針も他の項目と同じ大きさ・色に */
.nav.open .sp-sub{font-size:.95rem!important;color:#e9e5dc!important;border-bottom:0!important}
.nav.open .sp-sub:hover,.nav.open .sp-sub[aria-current="page"]{color:#d8c6a6!important}

/* ページ見出し：英語を大きく、日本語を小さく */
.pg-head .en{display:block;font-family:var(--f-en);font-weight:400!important;font-size:clamp(2.2rem,5.6vw,3.8rem)!important;letter-spacing:.12em!important;line-height:1.1;color:#f4f1ea!important}
.pg-head h1{font-size:clamp(.9rem,1.4vw,1.05rem)!important;font-weight:500;letter-spacing:.2em!important;margin-top:14px!important;color:#d8c6a6!important}

/* 下層ページの小見出しもトップと同じ並び */
.ttl2.sub{margin-bottom:28px}
.ttl2.sub h2.en{margin:0;text-transform:uppercase}

/* 見出しは全ページ「英語を上・日本語を下」で統一 */
.ttl2{flex-direction:column;align-items:flex-start!important;gap:12px!important}
.ttl2 .ja{font-size:clamp(.9rem,1.4vw,1.05rem);letter-spacing:.2em}

/* 電話・メールのリンク（見た目は文字のまま） */
.tel a.v,.tel a.m,.cbox a.v{color:inherit;text-decoration:none;display:inline-block}
.tel a.v:hover,.tel a.m:hover,.cbox a.v:hover{color:var(--accent)!important}
.pp-tbl a,.ft a[href^="tel:"]{color:inherit}

/* お問い合わせページ：コピーの代わりに直接発信・メール作成 */
.cbox .cact{margin-top:18px;display:inline-flex}

/* 下部お問い合わせ欄：ボタンをなくし、メール・Instagramを電話番号に釣り合う大きさに */
.ct .tel small[style]{margin-top:26px!important}
.tel .m{font-size:clamp(1.35rem,2.4vw,1.75rem)!important;letter-spacing:.02em}
.ct-ig{margin-top:30px!important;gap:14px!important}
.ct-ig img{width:34px!important;height:34px!important}
.ct-ig img.t{width:auto!important;height:32px!important}
.ct-ig span{font-size:1rem!important}

/* ABOUT：1行ずつ完結する4行。行間は均等に */
.poem.p2 .ln+.ln{margin-top:.55em}

/* 下部お問い合わせ欄：行間をそろえる（見出し→中身は狭く、項目どうしは同じ間隔） */
.ct .tel{gap:0!important}
.ct .tel small{line-height:1.4;margin:0 0 6px!important}
.ct .tel small[style]{margin-top:30px!important}
.ct .tel .v{line-height:1.1}
.ct .tel .m{line-height:1.3}
.ct .ct-ig{margin-top:30px!important;line-height:1}
.ct .tel .m,.tel .m{font-size:clamp(1.6rem,3.4vw,2.25rem)!important;font-weight:700!important;letter-spacing:.01em!important;line-height:1.15!important}
.ct .tel .m,.tel .m{font-size:clamp(1.95rem,4vw,2.6rem)!important}
@media (max-width:360px){.ct .tel .m,.tel .m{font-size:1.7rem!important}}
.ct-ig{gap:12px!important}
.ct-ig img{width:28px!important;height:28px!important}
.ct-ig img.t{width:auto!important;height:26px!important}
.ct-ig span{font-size:.9rem!important}
.ct .tel .m,.tel .m{font-size:clamp(1.75rem,3.6vw,2.35rem)!important}
@media (max-width:360px){.ct .tel .m,.tel .m{font-size:1.6rem!important}}

/* 経営理念の一文：行末に句読点を置かず、言葉の切れ目で折り返す */
.msg-lead .ln{display:block}
.msg-lead .ln span{display:inline-block}

/* スマホで地図がはみ出して横スクロールが出るのを防ぐ */
@media (max-width:560px){.map{min-height:0!important;aspect-ratio:4/3}}

/* ヘッダー：ロゴを中央に大きく、右は☰だけ */
.hd .wrap{position:relative;justify-content:flex-end}
.hd .brand{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0!important}
.brand .logo-h{height:40px!important;width:auto!important}
.hd .menu-btn{margin-left:auto}
.hd .wrap{height:84px!important}
@media (max-width:980px){.hd .wrap{height:72px!important}.brand .logo-h{height:30px!important}}
@media (max-width:420px){.brand .logo-h{height:25px!important}}
.nav.open{top:100%}

/* ヘッダー：ロゴマーク＋縦線＋社名（ミニマル）、右に空の光 */
.hd{background:#0f1115 url(img/header-bg.jpg) right center/62% 100% no-repeat!important}
.hd::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#0f1115 0%,#0f1115 38%,rgba(15,17,21,.55) 70%,rgba(15,17,21,.15) 100%)}
.hd .wrap{position:relative;z-index:1}
.brand2{display:flex!important;align-items:center;gap:18px;text-decoration:none}
.brand2 .mark{height:40px;width:auto;display:block}
.brand2 .sep{width:1px;height:30px;background:rgba(255,255,255,.55)}
.brand2 .name{font-family:"Noto Sans JP",sans-serif;font-weight:400;font-size:1.32rem;letter-spacing:.32em;color:#fff;white-space:nowrap;line-height:1;margin-right:-.32em}
@media (max-width:980px){.brand2{gap:13px}.brand2 .mark{height:31px}.brand2 .sep{height:24px}.brand2 .name{font-size:1.02rem;letter-spacing:.24em;margin-right:-.24em}}
@media (max-width:420px){.brand2{gap:10px}.brand2 .mark{height:26px}.brand2 .sep{height:20px}.brand2 .name{font-size:.9rem;letter-spacing:.18em;margin-right:-.18em}}
.hd .menu-btn{background:rgba(15,17,21,.35)!important}
.hd .brand2 img.mark{background:none!important;padding:0!important;border-radius:0!important;box-shadow:none!important}
.brand2 > *{flex:none}
@media (max-width:420px){.brand2 .name{font-size:.84rem!important;letter-spacing:.14em!important;margin-right:-.14em!important}.brand2 .mark{height:25px!important}}
@media (max-width:350px){.brand2 .sep{display:none}.brand2 .name{font-size:.8rem!important;letter-spacing:.1em!important}}
@media (max-width:980px){
  .brand2{gap:10px!important}
  .brand2 .mark{height:clamp(23px,7vw,31px)!important}
  .brand2 .sep{display:block!important;height:clamp(18px,5.4vw,24px)!important}
  .brand2 .name{font-size:clamp(.76rem,3.5vw,1.02rem)!important;letter-spacing:.16em!important;margin-right:-.16em!important}
}
@media (max-width:600px){.hd .brand{left:calc(50% - 26px)!important}.brand2 .name{font-size:clamp(.72rem,3.5vw,1.02rem)!important}}
@media (max-width:340px){.brand2 .sep{display:none!important}}
.ft-brand{display:inline-flex!important;margin-bottom:6px}
.ft-brand .mark{height:30px!important}
.ft-brand .sep{height:22px!important;display:block!important}
.ft-brand .name{font-size:.98rem!important;letter-spacing:.24em!important}

/* ===== 01 ベーシック：社名を太字に、背景は右に青い光の筋 ===== */
.hd{background:
  linear-gradient(115deg,transparent 0 72%,rgba(70,140,255,.0) 72%,rgba(90,160,255,.55) 74.2%,rgba(170,210,255,.9) 74.6%,rgba(90,160,255,.4) 75.2%,transparent 77.5%),
  linear-gradient(118deg,transparent 0 78%,rgba(60,120,240,.35) 80%,rgba(140,190,255,.6) 80.4%,rgba(60,120,240,.25) 81%,transparent 83%),
  radial-gradient(60% 140% at 92% 50%,rgba(40,95,210,.55),rgba(20,40,90,.25) 45%,transparent 75%),
  #0b0c10!important}
.hd::before{display:none!important}
.brand2 .name{font-weight:700!important;letter-spacing:.08em!important;margin-right:-.08em!important;font-size:1.5rem!important}
.ft-brand .name{font-weight:700!important;letter-spacing:.08em!important;font-size:1.05rem!important}
@media (max-width:980px){.brand2 .name{font-size:clamp(.8rem,3.9vw,1.15rem)!important;letter-spacing:.06em!important;margin-right:-.06em!important}}

/* 光の筋をぐっと控えめに */
.hd{background:
  linear-gradient(115deg,transparent 0 73%,rgba(110,160,240,.10) 74.3%,rgba(170,200,245,.22) 74.6%,rgba(110,160,240,.08) 75%,transparent 76.5%),
  linear-gradient(118deg,transparent 0 79.5%,rgba(110,160,240,.07) 80.3%,rgba(160,195,245,.14) 80.5%,transparent 81.6%),
  radial-gradient(55% 140% at 95% 50%,rgba(40,80,160,.22),rgba(20,35,70,.10) 50%,transparent 78%),
  #0b0c10!important}

/* 光の筋はなし。右にごく薄い青のにじみだけ */
.hd{background:radial-gradient(55% 140% at 95% 50%,rgba(40,80,160,.20),rgba(20,35,70,.08) 50%,transparent 78%),#0b0c10!important}

/* ===== 社名：M PLUS 1p 極太・縦線なし・背景は無地の黒 ===== */
.hd{background:#141414!important}
.brand2 .sep{display:none!important}
.brand2{gap:14px!important}
.brand2 .name{font-family:"M PLUS 1p","Noto Sans JP",sans-serif!important;font-weight:800!important;letter-spacing:.04em!important;margin-right:-.04em!important;font-size:1.6rem!important}
.ft-brand .name{font-family:"M PLUS 1p","Noto Sans JP",sans-serif!important;font-weight:800!important;letter-spacing:.04em!important;font-size:1.1rem!important}
@media (max-width:980px){.brand2{gap:10px!important}.brand2 .name{font-size:clamp(.9rem,4.4vw,1.25rem)!important;letter-spacing:.03em!important;margin-right:-.03em!important}}

/* 新ロゴ（フラットなRNZ） */
.brand2 .mark{height:34px!important}
.ft-brand .mark{height:26px!important}
@media (max-width:980px){.brand2 .mark{height:clamp(22px,6.6vw,28px)!important}}
.brand2 .mark{height:30px!important}
.ft-brand .mark{height:24px!important}
@media (max-width:980px){.brand2 .mark{height:clamp(20px,6vw,26px)!important}}
@media (max-width:360px){.brand2 .mark{height:19px!important}.brand2 .name{font-size:.84rem!important}.brand2{gap:8px!important}}

/* ===== ヘッダーを白に。下にロゴの青のごく細い線 ===== */
.hd{background:#fff!important;border-bottom:0!important;box-shadow:none!important}
.hd::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,#05a2e9 0%,#05a2e9 45%,#8fd3f7 80%,#cdeefc 100%);pointer-events:none}
.brand2 .name{color:#141414!important}
.hd .menu-btn{background:#fff!important;border-color:#d6d1c7!important;color:#141414!important}
.hd .menu-btn:hover{border-color:#05a2e9!important;color:#05a2e9!important}
.nav.open{background:#fff!important;border-top:1px solid #ece9e3!important;box-shadow:0 18px 40px rgba(0,0,0,.12)!important}
.nav.open a{color:#1b1b1b!important;border-bottom-color:#ece9e3!important}
.nav.open a:hover,.nav.open a[aria-current="page"]{color:#a48c66!important}
.nav.open .sp-sub{color:#1b1b1b!important}
.ft .ft-brand .name{color:#fff!important}

/* ===== ヘッダー：氷のような薄い水色 ===== */
.hd{background:#f2f8fc!important}
.hd .menu-btn{background:transparent!important;border-color:#cfe0ec!important}
.nav.open{background:#f2f8fc!important;border-top-color:#dde9f2!important}
.nav.open a{border-bottom-color:#dde9f2!important}

/* ===== ヘッダー：半透明の白（下の写真が透けるすりガラス） ===== */
.hd{background:rgba(255,255,255,.72)!important;-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%)}
.hd .menu-btn{background:transparent!important;border-color:rgba(20,20,20,.22)!important}
.nav.open{background:rgba(255,255,255,.96)!important;border-top-color:#ece9e3!important}
.nav.open a{border-bottom-color:#ece9e3!important}
/* 写真をヘッダーの下まで引き上げて透けさせる */
.hero,.pg-head{margin-top:-84px!important}
.pg-head .wrap{padding-top:calc(clamp(64px,10vw,120px) + 84px)!important}
@media (max-width:980px){.hero,.pg-head{margin-top:-72px!important}.pg-head .wrap{padding-top:calc(clamp(64px,10vw,120px) + 72px)!important}}
.hd{background:rgba(255,255,255,.86)!important}

/* ===== ヘッダー：最初は真っ白、スクロールして中身と重なったら真っ黒 ===== */
.hero,.pg-head{margin-top:0!important}
.pg-head .wrap{padding-top:clamp(64px,10vw,120px)!important}
@media (max-width:980px){.hero,.pg-head{margin-top:0!important}.pg-head .wrap{padding-top:clamp(64px,10vw,120px)!important}}
.hd{background:#fff!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;transition:background-color .35s ease,box-shadow .35s ease}
.hd .brand2 .name{transition:color .35s ease}
.hd .menu-btn{background:transparent!important;border-color:rgba(20,20,20,.22)!important;color:#141414!important;transition:border-color .35s,color .35s}
.hd.is-scrolled{background:#111!important}
.hd.is-scrolled .brand2 .name{color:#fff!important}
.hd.is-scrolled .menu-btn{border-color:rgba(255,255,255,.35)!important;color:#fff!important}
.hd.is-scrolled .nav.open{background:#111!important;border-top-color:rgba(255,255,255,.12)!important}
.hd.is-scrolled .nav.open a{color:#eee!important;border-bottom-color:rgba(255,255,255,.1)!important}
.hd.is-scrolled .nav.open a:hover,.hd.is-scrolled .nav.open a[aria-current="page"]{color:#d8c6a6!important}
.nav.open{background:#fff!important}

/* ===== 逆：最初は黒、スクロールして中身と重なったら白 ===== */
.hd{background:#111!important}
.hd .brand2 .name{color:#fff!important}
.hd .menu-btn{border-color:rgba(255,255,255,.35)!important;color:#fff!important}
.hd .nav.open{background:#111!important;border-top-color:rgba(255,255,255,.12)!important}
.hd .nav.open a{color:#eee!important;border-bottom-color:rgba(255,255,255,.1)!important}
.hd .nav.open a:hover,.hd .nav.open a[aria-current="page"]{color:#d8c6a6!important}
.hd.is-scrolled{background:#fff!important}
.hd.is-scrolled .brand2 .name{color:#141414!important}
.hd.is-scrolled .menu-btn{border-color:rgba(20,20,20,.22)!important;color:#141414!important}
.hd.is-scrolled .nav.open{background:#fff!important;border-top-color:#ece9e3!important}
.hd.is-scrolled .nav.open a{color:#1b1b1b!important;border-bottom-color:#ece9e3!important}
.hd.is-scrolled .nav.open a:hover,.hd.is-scrolled .nav.open a[aria-current="page"]{color:#a48c66!important}

/* 下へスクロールで帯を隠し、上へ戻すと出す */
.hd{transition:transform .35s ease,background-color .35s ease!important;will-change:transform}
.hd.is-hidden{transform:translateY(calc(-100% - 4px))}

/* 会社案内PDFのダウンロード */
.dl-card{grid-column:2;display:flex;align-items:center;gap:22px;margin-top:28px;padding:18px;border:1px solid var(--line);background:#fff;text-decoration:none;color:inherit;transition:border-color .25s}
.dl-card:hover{border-color:#a48c66}
.dl-card img{width:96px;height:auto;flex:none;box-shadow:0 4px 14px rgba(0,0,0,.12)}
.dl-txt{display:grid;gap:4px}
.dl-txt small{font-family:var(--f-en);letter-spacing:.2em;font-size:.72rem;color:#a48c66;text-transform:uppercase}
.dl-txt b{font-weight:500;font-size:1.05rem}
.dl-txt span{font-size:.8rem;color:var(--muted)}
.dl-txt em{font-style:normal;font-size:.82rem;margin-top:6px;border-bottom:1px solid currentColor;justify-self:start}
@media (max-width:860px){.dl-card{grid-column:auto}}
/* お問い合わせページ：メールを電話番号に釣り合う大きさに */
.cbox .v.sm{font-size:clamp(1.55rem,3.4vw,2.1rem)!important;font-weight:700!important;letter-spacing:.01em}
@media (max-width:360px){.cbox .v.sm{font-size:1.4rem!important}}

/* 画面下の固定ボタン：押した瞬間に白黒が反転して、押せたことがわかる */
.fixbar a{min-height:56px;font-size:16px;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:background-color .12s,color .12s}
.fixbar a.fb-tel{background:#fff!important;color:#111!important}
.fixbar a.fb-mail{background:#111!important;color:#fff!important}
.fixbar a.fb-tel:active,.fixbar a.fb-tel.is-pressed{background:#111!important;color:#fff!important}
.fixbar a.fb-mail:active,.fixbar a.fb-mail.is-pressed{background:#fff!important;color:#111!important}
.fixbar a:focus-visible{outline:2px solid #3b82f6;outline-offset:-4px}
.fixbar a{transition:none!important}

/* 押したときはブロンズに（白黒反転だと隣と同じ色になって見分けにくいため） */
.fixbar a.fb-tel:active,.fixbar a.fb-tel.is-pressed,
.fixbar a.fb-mail:active,.fixbar a.fb-mail.is-pressed{background:#a48c66!important;color:#fff!important}

/* 画面下の帯：最初は2つとも白、押したボタンだけ黒に */
.fixbar{background:#fff!important;border-top:1px solid #e3dfd7}
.fixbar a.fb-tel,.fixbar a.fb-mail{background:#fff!important;color:#111!important}
.fixbar a.fb-tel+a.fb-mail{border-left:1px solid #e3dfd7}
.fixbar a.fb-tel:active,.fixbar a.fb-tel.is-pressed,
.fixbar a.fb-mail:active,.fixbar a.fb-mail.is-pressed{background:#111!important;color:#fff!important}

/* メールの確認画面（電話の発信確認に合わせた形） */
.mconf{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.28);display:flex;align-items:center;justify-content:center;padding:24px}
.mconf[hidden]{display:none}
.mconf-box{width:min(320px,100%);background:#fff;border-radius:22px;padding:22px 16px 16px;box-shadow:0 12px 40px rgba(0,0,0,.25);text-align:center}
.mconf-addr{margin:0 0 18px;font-family:var(--f-en);font-weight:700;font-size:1.05rem;color:#111;word-break:break-all}
.mconf-btns{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.mconf-btns>*{display:flex;align-items:center;justify-content:center;height:46px;border-radius:999px;font:inherit;font-weight:700;font-size:.95rem;border:0;cursor:pointer;text-decoration:none;-webkit-tap-highlight-color:transparent}
.mconf-no{background:#e9e9e9;color:#111}
.mconf-yes{background:#3b82f6;color:#fff!important}

/* 会社案内ビューア（×で閉じてページに戻れる） */
.pdfv{position:fixed;inset:0;z-index:70;background:#1a1a1a;display:flex;flex-direction:column}
.pdfv[hidden]{display:none}
html.pdfv-on,html.pdfv-on body{overflow:hidden}
.pdfv-bar{display:flex;align-items:center;gap:14px;height:58px;padding:0 10px 0 18px;padding-top:env(safe-area-inset-top,0px);background:#111;color:#fff;flex:none}
.pdfv-bar b{font-weight:500;letter-spacing:.1em;font-size:.95rem;margin-right:auto}
.pdfv-dl{color:#d8c6a6!important;font-size:.82rem;text-decoration:none;border-bottom:1px solid currentColor}
.pdfv-x{width:46px;height:46px;border:1px solid rgba(255,255,255,.35);background:none;color:#fff;font-size:1.6rem;line-height:1;cursor:pointer;-webkit-tap-highlight-color:transparent}
.pdfv-body{flex:1;overflow:auto;-webkit-overflow-scrolling:touch;padding:16px 12px calc(24px + env(safe-area-inset-bottom,0px));display:grid;gap:14px;align-content:start;justify-items:center}
.pdfv-body img{width:100%;max-width:1100px;height:auto;background:#fff;box-shadow:0 6px 24px rgba(0,0,0,.4)}

/* 押したときはロゴに合う濃い青 */
.fixbar a.fb-tel:active,.fixbar a.fb-tel.is-pressed,
.fixbar a.fb-mail:active,.fixbar a.fb-mail.is-pressed{background:#0788d8!important;color:#fff!important}

/* 事業内容のラベル：箇所はグレー、工法はブロンズで区別 */
.svc-item li.t-place{border-color:#dcd8d0!important;color:#1b1b1b!important;background:#fff!important}
.svc-item li.t-method{border-color:#a48c66!important;color:#7d6744!important;background:#faf7f1!important}
/* 箇所と工法を段で分け、間に細い線 */
.svc-item .tagrow{display:grid;grid-template-columns:5.2em 1fr;gap:10px;align-items:start;margin-top:14px}
.svc-item .tagrow+.tagrow{border-top:1px solid #e6e2da;padding-top:14px}
.svc-item .tagrow ul{margin:0!important}
.svc-item .tr-h{font-size:.74rem;letter-spacing:.08em;color:#8a8478;padding-top:.35rem;white-space:nowrap}
@media (max-width:560px){.svc-item .tagrow{grid-template-columns:1fr;gap:8px}.svc-item .tr-h{padding-top:0}}
/* 箇所は上段・工法は下段、間に細い線。色は同じ */
.svc-item li.t-place,.svc-item li.t-method{border-color:var(--line)!important;color:inherit!important;background:var(--panel)!important}
.svc-item .tagrow{display:block!important;margin-top:16px}
.svc-item .tagrow+.tagrow{margin-top:14px;padding-top:14px;border-top:1px solid #e6e2da}
.msg-lead .ml-sub{display:block;margin-top:10px;font-size:.55em;letter-spacing:.12em;color:#a48c66;font-weight:400}
.msg-lead .ml-sub{font-size:.72em!important;margin-top:12px!important;letter-spacing:.08em!important}

/* 採用：募集職種をいちばん大きく、キャッチは2番手に */
.rec-h{margin:0 0 18px;font-weight:700;font-size:clamp(1.6rem,4.4vw,2.4rem);letter-spacing:.06em;line-height:1.45;color:#1b1b1b}
.rec-h+.msg-lead{font-size:clamp(1.05rem,2.6vw,1.4rem)!important;color:#7d6744}
.sp-br{display:none}
@media (max-width:560px){.sp-br{display:inline}}
.rec-h .rec-tag{display:block;font-size:.55em;font-weight:500;letter-spacing:.2em;color:#a48c66;margin-bottom:6px}
.rec-h .rec-tag{display:inline!important;font-size:1em!important;font-weight:inherit!important;letter-spacing:inherit!important;color:inherit!important;margin:0!important}
.rec-h+.msg-lead .ml-sub{font-size:.9em!important;margin-top:10px!important}

/* 「このページを送る」ボタン（スマホは共有メニュー、PCはURLをコピー） */
.nav .nav-share{display:none;width:100%;text-align:left;background:none;border:0;border-top:1px solid rgba(127,127,127,.25);padding:16px 0 4px;margin-top:6px;font:inherit;font-size:.95rem;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
.nav.open .nav-share{display:block}
.nav-share::before,.ft-share::before{content:"";display:inline-block;width:1em;height:1em;margin-right:.5em;vertical-align:-.15em;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v12'/%3E%3Cpath d='M7 8l5-5 5 5'/%3E%3Cpath d='M5 13v6a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-6'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v12'/%3E%3Cpath d='M7 8l5-5 5 5'/%3E%3Cpath d='M5 13v6a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-6'/%3E%3C/svg%3E") center/contain no-repeat}
.ft-share{background:none;border:0;padding:0;font:inherit;font-size:inherit;color:inherit;cursor:pointer;opacity:.85}
.ft-share:hover{opacity:1;color:#d8c6a6}
.share-toast{position:fixed;left:50%;bottom:calc(76px + env(safe-area-inset-bottom,0px));transform:translate(-50%,20px);background:#111;color:#fff;padding:10px 18px;font-size:.85rem;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:80;max-width:90vw;word-break:break-all}
.share-toast.on{opacity:1;transform:translate(-50%,0)}
.hd .nav.open .nav-share{color:#eee!important;opacity:1}
.hd.is-scrolled .nav.open .nav-share{color:#1b1b1b!important}

/* 「このページを送る」はフッター最下段の右端、メニューでは右寄せ */
.ft-sub .wrap{align-items:flex-end}
.ft-end{display:flex;align-items:center;justify-content:space-between;gap:16px;flex:1 1 100%}
.ft-end .ft-share{margin-left:auto;white-space:nowrap}
.nav .nav-share{text-align:right!important}
.ft-end{margin-top:2.6em}

/* 送るボタン：枠なし・アイコン付き・右端ぴったり */
.ft-share,.nav .nav-share{-webkit-appearance:none;appearance:none;background:none!important;border:0!important;border-radius:0!important;box-shadow:none!important;padding:0!important;margin:0;font:inherit;color:inherit;display:inline-flex!important;align-items:center;gap:.45em;line-height:1.4;cursor:pointer}
.ft-share::before,.nav-share::before{content:none!important;display:none!important}
.sh-ic{flex:none;display:block}
.ft-end{width:100%}
.ft-end .ft-share{margin-left:auto!important;margin-right:0!important;font-size:.8rem}
.nav .nav-share{display:none!important}
.nav.open .nav-share{display:flex!important;justify-content:flex-end;width:100%;padding:16px 0 4px!important;margin-top:6px!important;border-top:1px solid rgba(127,127,127,.25)!important;font-size:.95rem}

/* 送るボタン：真四角・鮮やかな青・白文字（↑マーク付き） */
.ft-end .ft-share,.nav.open .nav-share{background:#0788d8!important;color:#fff!important;border:0!important;border-radius:0!important;padding:.6em 1em!important;font-size:.85rem!important;opacity:1!important}
.ft-end .ft-share:hover,.nav.open .nav-share:hover{background:#0670b3!important;color:#fff!important}
.nav.open .nav-share{width:auto!important;margin:18px 0 4px auto!important;border-top:0!important}

/* 送るボタン：↑マークのみ（文字は読み上げ用に残す） */
.ft-end .ft-share span,.nav.open .nav-share span{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ft-end .ft-share,.nav.open .nav-share{width:44px!important;height:44px!important;padding:0!important;justify-content:center!important;gap:0!important}
.ft-end .ft-share .sh-ic,.nav.open .nav-share .sh-ic{width:20px;height:20px}
.ft-end .ft-share .sh-ic,.nav.open .nav-share .sh-ic{color:#fff!important;stroke:#fff!important}

/* 送るボタンの左にインスタ */
.ft-acts{margin-left:auto;display:flex;gap:10px;align-items:center}
.ft-end .ft-acts .ft-share{margin-left:0!important}
.ig-btn{width:44px;height:44px;display:inline-flex!important;align-items:center;justify-content:center;background:#0788d8;color:#fff!important;border:0!important;border-radius:0;padding:0!important;text-decoration:none}
.ig-btn:hover{background:#0670b3}
.ig-btn .ig-ic{stroke:#fff;color:#fff}
.ig-btn::before,.ig-btn::after{content:none!important}
.nav .nav-acts{display:none!important}
.nav.open .nav-acts{display:flex!important;justify-content:flex-end;gap:10px;width:100%;margin:18px 0 4px;padding:0!important;border:0!important}
.nav.open .nav-acts .nav-share{display:inline-flex!important;margin:0!important}

/* インスタ：公式グラデーション */
.ig-btn,.ig-btn:hover{background:radial-gradient(circle at 30% 107%,#fdf497 0%,#fdf497 5%,#fd5949 45%,#d6249f 60%,#285aeb 90%)!important}
.ig-btn:hover{filter:brightness(.9)}

/* 送るボタン：白・黒マーク */
.ft-end .ft-share,.nav.open .nav-share{background:#fff!important;color:#111!important}
.ft-end .ft-share .sh-ic,.nav.open .nav-share .sh-ic{stroke:#111!important;color:#111!important}
.ft-end .ft-share:hover,.nav.open .nav-share:hover{background:#e6e6e6!important}
.hd.is-scrolled .nav.open .nav-share{box-shadow:inset 0 0 0 1px #cfcfcf!important}

/* インスタ：公式アイコン風（角丸・グラデーション） */
.ig-btn,.ig-btn:hover{border-radius:22%!important;background:radial-gradient(circle at 22% 108%,#fdda7c 0%,#f8a35b 16%,#e7614f 34%,#cf3b83 58%,#a03fb4 80%,#6c55d4 100%)!important}
.ig-btn .ig-ic{width:28px!important;height:28px!important}

/* フッター会社情報：ロゴ→許可→住所→TEL→MAIL */
.ft .ft-info{display:flex;flex-direction:column;gap:.35em;margin-top:.9em}
.ft .ft-info .ft-lic{font-size:.85em;opacity:.8}
.ft .ft-info a{color:inherit;text-decoration:none;border:0}
.ft .ft-info a:hover{text-decoration:underline}
/* スマホで押した後グレーが残らないように */
@media (hover:none){.ft-end .ft-share:hover,.nav.open .nav-share:hover{background:#fff!important}}
/* 許可番号：ロゴの下に右寄せ */
.ft .ft-head{display:inline-flex;flex-direction:column;align-items:flex-end;gap:.4em}
.ft .ft-head .ft-lic{font-size:.8rem;opacity:.75;white-space:nowrap}
.ft .ft-head{display:inline-grid!important;justify-items:start}
.ft .ft-head .ft-lic{justify-self:end;letter-spacing:.02em}
.ft .ft-head .ft-lic{margin-right:0;font-size:.8rem;white-space:nowrap}
/* インスタ：発色を鮮やかに */
.ig-btn,.ig-btn:hover{background:radial-gradient(circle farthest-corner at 28% 108%,#ffe17d 0%,#ffcd69 10%,#fa9137 28%,#eb4141 44%,rgba(235,65,65,0) 82%),linear-gradient(135deg,#4f5bd5 10%,#c13584 58%)!important}
/* インスタ：白地にグラデーションのマーク（送るボタンとそろえる） */
.ig-btn,.ig-btn:hover{background:#fff!important;border-radius:0!important}
.hd.is-scrolled .nav.open .ig-btn{box-shadow:inset 0 0 0 1px #cfcfcf}
.ig-btn .ig-ic{stroke:none!important;color:inherit!important}
/* インスタ・送る：塗りなし＋薄く細い白枠 */
.ft-end .ig-btn,.ft-end .ig-btn:hover,.ft-end .ft-share,.ft-end .ft-share:hover,.nav.open .ig-btn,.nav.open .nav-share,.nav.open .ig-btn:hover,.nav.open .nav-share:hover{background:transparent!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)!important}
.ft-end .ft-share .sh-ic,.nav.open .nav-share .sh-ic{stroke:#fff!important;color:#fff!important}
@media (hover:none){.ft-end .ft-share:hover,.nav.open .nav-share:hover{background:transparent!important}}
.hd.is-scrolled .nav.open .ig-btn,.hd.is-scrolled .nav.open .nav-share{box-shadow:inset 0 0 0 1px rgba(0,0,0,.18)!important}
.hd.is-scrolled .nav.open .nav-share .sh-ic{stroke:#111!important;color:#111!important}
.ft .ft-info a,.ft .ft-info a:hover{text-decoration:none!important;border:0!important}
/* メール確認：iPhoneの発信確認と同じ見た目に */
.mconf-box{font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Hiragino Kaku Gothic ProN",sans-serif;padding:26px 16px 16px}
.mconf-addr{font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue",sans-serif!important;font-weight:600!important;font-size:1.1rem!important;letter-spacing:0!important;margin-bottom:22px!important}
.mconf-btns>*{font-family:inherit!important;letter-spacing:0!important;height:50px!important;font-size:1rem!important;outline:none!important;box-shadow:none!important}
.mconf-yes{background:#3b87f6!important}
.mconf-btns>*:focus-visible{outline:2px solid #3b87f6!important;outline-offset:2px}
/* 確認画面中も下のボタンの色が見えるように（押せないまま前面に） */
.mconf-on .fixbar{z-index:70!important;pointer-events:none}
/* 電話とメール：同じ大きさに */
.cbox .v,.cbox .v.sm{font-size:clamp(1.55rem,3.4vw,2.1rem)!important;font-weight:700!important;letter-spacing:.01em!important}
@media (max-width:360px){.cbox .v,.cbox .v.sm{font-size:1.4rem!important}}
/* ご相談欄：電話とメールを同じ大きさに */
.ct .tel .v,.ct .tel .m,.tel .v,.tel .m{font-size:clamp(1.75rem,3.6vw,2.35rem)!important;font-weight:700!important;letter-spacing:.01em!important;line-height:1.15!important}
@media (max-width:360px){.ct .tel .v,.ct .tel .m,.tel .v,.tel .m{font-size:1.6rem!important}}
/* ご相談欄：電話・メール・インスタの間隔をそろえる（インスタには見出しがない分を足す） */
.ct .ct-ig,.ct-ig{margin-top:52px!important}
/* トップ：背景を交互に（ABOUT白→REASON色→BUSINESS白→NEWS色→CONTACT白） */
#business{background:#ffffff!important}
#news{background:var(--bg-2)!important}
.sv-w{background:#ffffff!important}
/* ベージュ地の上の白いカード */
.w-card{background:#fff;padding:clamp(36px,6vw,64px) clamp(20px,5vw,56px);max-width:860px;margin-inline:auto}
.w-card .lead{margin-bottom:0}
/* 白カード：応募の流れのカードと同じ作り（左寄せ・同じ余白・幅いっぱい） */
.w-card{background:var(--panel,#fff)!important;max-width:none!important;padding:28px 22px!important;text-align:left!important}
@media (min-width:861px){.w-card{padding:44px 48px!important}}
.w-card .rec-h,.w-card .msg-lead,.w-card .lead{text-align:left!important;margin-left:0!important;margin-right:0!important}
/* カードだけの区切り：上下のベージュ余白を詰めて、カードの外と中のバランスをとる */
.sec.sec-card{padding-top:40px!important;padding-bottom:40px!important}
@media (min-width:861px){.sec.sec-card{padding-top:72px!important;padding-bottom:72px!important}}
.w-card{padding:32px 24px!important}
@media (min-width:861px){.w-card{padding:48px 52px!important}}
/* 募集職種：小さな金色の見出しを上に */
.rec-h .rec-tag,.w-card .rec-h .rec-tag{display:block!important;font-size:.82rem!important;font-weight:500!important;letter-spacing:.2em!important;color:#a48c66!important;margin:0 0 10px!important;line-height:1.4!important}
/* スマホ：表は「項目（太字）」の下に「内容」を全幅で */
@media (max-width:600px){
  .tbl,.tbl tbody,.tbl tr,.tbl th,.tbl td{display:block!important;width:100%!important}
  .tbl tr{padding:18px 0!important;border-bottom:1px solid var(--line,#e3dfd7)}
  .tbl th,.tbl td{padding:0!important;border:0!important}
  .tbl th{font-weight:700!important;color:var(--text,#141414)!important;margin-bottom:6px;white-space:normal!important}
  .tbl td{line-height:1.9}
}
@media (max-width:600px){.tbl th,.tbl td{padding-left:12px!important;padding-right:12px!important}}
/* 募集職種の見出し：大きすぎを控えめに（参考サイト寄り） */
.w-card .rec-h{font-size:clamp(1.3rem,2.4vw,1.6rem)!important;line-height:1.55!important;letter-spacing:.06em!important;margin-bottom:22px!important}
/* 募集職種：参考サイトと同じく「項目名を太字・中身は普通の太さ」 */
.w-card .rec-h .rec-tag{font-size:1rem!important;font-weight:700!important;letter-spacing:.08em!important;color:#141414!important;margin:0 0 8px!important}
.w-card .rec-h{font-size:1.15rem!important;font-weight:400!important;letter-spacing:.06em!important;line-height:1.8!important;margin-bottom:26px!important}
/* 募集職種：C案（金色の小見出し＋中太2行） */
.w-card .rec-h .rec-tag{font-size:.82rem!important;font-weight:500!important;letter-spacing:.2em!important;color:#a48c66!important;margin:0 0 10px!important}
.w-card .rec-h{font-size:clamp(1.3rem,2.4vw,1.6rem)!important;font-weight:500!important;letter-spacing:.06em!important;line-height:1.55!important;margin-bottom:22px!important}
/* 防水工・鳶工：もう一段小さく（キャッチと同じくらい） */
.w-card .rec-h{font-size:1.15rem!important;line-height:1.7!important}
@media (min-width:861px){.w-card .rec-h{font-size:1.3rem!important}}
/* 募集職種：黒の太字（項目名をしっかり）＋職種名は普通の太さ */
.w-card .rec-h .rec-tag{font-size:1.05rem!important;font-weight:700!important;letter-spacing:.08em!important;color:#141414!important;margin:0 0 8px!important}
.w-card .rec-h{font-weight:400!important}
.w-card > :first-child{margin-top:0!important}
.w-card .msg-lead{font-size:clamp(1.05rem,2.6vw,1.4rem)!important;color:#7d6744!important}
.w-card .msg-lead .ml-sub{font-size:.9em!important;margin-top:10px!important}
/* 採用キャッチ：金→黒（金は小見出しだけに統一） */
.w-card .msg-lead,.rec-h+.msg-lead{color:#141414!important}
.w-card .msg-lead .ml-sub,.msg-lead .ml-sub{color:var(--muted,#6b6b6b)!important}
/* スマホ：見出しと中身を近づけて一つのまとまりに（会社概要・沿革・募集要項など共通） */
@media (max-width:860px){.wrap.two{row-gap:20px!important}.wrap.two>div:first-child .ttl2{margin-bottom:0!important}}
@media (max-width:600px){.wrap.two .tbl tr:first-child{padding-top:12px!important}}
/* 施工事例：説明文と写真一覧の間を詰める */
.sec.wk-intro{padding-bottom:36px!important}
.sec.wk-list{padding-top:36px!important}
@media (min-width:861px){.sec.wk-intro{padding-bottom:56px!important}.sec.wk-list{padding-top:56px!important}}
.wk-list .works{margin-top:0!important}
/* 施工事例：一覧の最初の黒い横線をなくす（1段目の上線と上余白を消す） */
.wk-list .works.grid3 .work:nth-child(-n+3){border-top:0!important;padding-top:0!important}
@media (max-width:900px){.wk-list .works.grid3 .work:nth-child(3){border-top:1px solid var(--line)!important;padding-top:28px!important}}
@media (max-width:520px){.wk-list .works.grid3 .work:nth-child(2){border-top:1px solid var(--line)!important;padding-top:28px!important}}
/* 施工事例：1件ずつ白いカードに（線をやめる） */
.wk-list .works.grid3{row-gap:16px!important;column-gap:16px!important}
.wk-list .works.grid3 .work,.wk-list .works.grid3 .work:nth-child(n){background:#fff!important;border:0!important;padding:0 0 24px!important;gap:0!important}
.wk-list .works.grid3 .work figcaption{padding:18px 22px 0!important}
.wk-list .works.grid3 .work img{display:block;width:100%}
.wk-list .works.grid3 .work{align-content:start!important}
/* 採用の最初のカード：白を画面の横いっぱいに（文字の位置は今のまま） */
.sec.sec-card{overflow:hidden}
.sec-card .w-card{margin-inline:calc(50% - 50vw)!important;padding-inline:calc(50vw - 50%)!important}
/* 白帯の上下のベージュを細く */
.sec.sec-card{padding-top:14px!important;padding-bottom:14px!important}
@media (min-width:861px){.sec.sec-card{padding-top:24px!important;padding-bottom:24px!important}}
/* 採用・協力：最初の区切りは白一色（カードなし） */
.rec-intro .w-card{background:none!important;margin:0!important;padding:0!important}
.sec.rec-intro{padding-bottom:0!important}
/* 区切り3つ以下のページは白一色：白地の上のカードには細い枠線 */
.sv-w .steps li{background:#fff!important;box-shadow:inset 0 0 0 1px var(--line,#e3dfd7)!important}
.wk-list .works.grid3 .work,.wk-list .works.grid3 .work:nth-child(n){box-shadow:inset 0 0 0 1px var(--line,#e3dfd7)!important}
/* ===== 読みやすさ改善（評価の指摘対応） ===== */
/* ① 補足の文字：グレーを一段濃く、小さい文字を少し大きく */
:root{--muted:#55524c!important}
.lead,.steps p,.ct-cards small,.btn-s small{color:#55524c!important}
.steps p{font-size:.92rem!important}
.tel small,.cbox small{font-size:.82rem!important}
.ct-cards small{font-size:.85rem!important}
/* ② フッター：文字を少し大きく明るく、メニューは2列でゆったり */
.ft .ft-info{font-size:.86rem!important;color:#d4cfc6!important;gap:.5em!important}
.ft .ft-info .ft-lic{color:#bdb8ae!important}
.ft nav a{color:#d4cfc6!important;font-size:.86rem!important}
.ft-end small{font-size:.78rem!important;color:#aaa59c!important}
@media (max-width:600px){.ft nav{display:grid!important;grid-template-columns:1fr 1fr;gap:14px 16px!important;align-items:start!important}}
/* ③ 下の問い合わせバー：下へスクロール中は隠れ、上へ戻すと出る（ページ最下部では表示） */
.fixbar{transition:transform .3s ease!important;will-change:transform}
.fixbar.is-hidden{transform:translateY(110%)!important}
/* ページの先頭へ（フッター右端・送るボタンと同じ見た目） */
.ft-top{-webkit-appearance:none;appearance:none;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:0;border-radius:0;padding:0;cursor:pointer;color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}
.ft-top .tp-ic{stroke:#fff}
.ft-top:hover{background:rgba(255,255,255,.08)}
@media (max-width:380px){.ft-acts{gap:8px!important}.ft-end small{font-size:.72rem!important}}
.ft-top{flex-direction:column;gap:1px}
.ft-top .tp-ic{width:18px;height:18px}
.ft-top .tp-t{font-family:var(--f-en),sans-serif;font-size:.6rem;letter-spacing:.12em;line-height:1;color:#fff}
/* スマホ：電話ボタンの上に「TOP」ボタン（少し下へ読み進めたら表示） */
.fixbar{position:fixed}
.fb-top{position:absolute;left:16px;bottom:calc(100% + 12px);width:48px;height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;-webkit-appearance:none;appearance:none;border:0;border-radius:0;padding:0;background:rgba(20,20,20,.86);color:#fff;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .25s;-webkit-tap-highlight-color:transparent;box-shadow:0 2px 10px rgba(0,0,0,.18)}
.fb-top span{font-family:var(--f-en),sans-serif;font-size:.6rem;letter-spacing:.12em;line-height:1}
.fixbar.show-top .fb-top{opacity:1;pointer-events:auto}
.fixbar a.fb-tel,.fixbar a.fb-mail{position:relative}
/* フッターのTOPはパソコンだけ（スマホは浮いているTOPを使う） */
@media (max-width:760px){.ft-top{display:none!important}}
/* TOPボタン：消えるのではなく、下の電話バーの裏へ下がって隠れる */
.fb-top{z-index:-1;opacity:1!important;transform:translateY(calc(100% + 14px));transition:transform .3s ease!important;box-shadow:none}
.fixbar.show-top .fb-top{transform:translateY(0);box-shadow:0 2px 10px rgba(0,0,0,.18)}
@media (max-width:760px){.ft-top{display:inline-flex!important}}
/* ご相談欄：そのページの話題と同じ入口カードは出さない */
.ct-def .ct-cards a[href*="contact"],.ct-recruit .ct-cards a[href*="recruit"],.ct-partner .ct-cards a[href*="partner"]{display:none!important}
/* スマホのフッター：行間を詰めてコンパクトに（内容はそのまま） */
@media (max-width:600px){
  .ft .wrap{padding-top:40px!important;padding-bottom:24px!important}
  .ft .ft-info{gap:.15em!important;margin-top:.7em!important;line-height:1.7!important}
  .ft .ft-head{gap:.3em!important}
  .ft-sub{padding-top:22px!important;padding-bottom:20px!important}
  .ft nav{gap:4px 16px!important}
  .ft nav a{line-height:1.6!important;padding:5px 0!important}
  .ft-end{margin-top:18px!important}
}
@media (max-width:600px){.ft-sub .wrap{padding-top:0!important}.ft .ft-info .addr-n{white-space:nowrap}}
/* フッター：上は明るいグレー（会社情報・メニュー）、下は黒い細帯（©・ボタン） */
.ft{background:#ecebe7!important;color:#1b1b1b!important}
.ft .ft-brand .name{color:#1b1b1b!important}
.ft .ft-info{color:#3a3833!important}
.ft .ft-info .ft-lic,.ft .ft-head .ft-lic{color:#6b675f!important}
.ft nav a{color:#1b1b1b!important}
.ft nav a:hover{color:#a48c66!important}
.ft-sub{border-top:1px solid rgba(0,0,0,.1)!important;padding-bottom:0!important}
.ft-sub .wrap{padding-bottom:0!important}
.ft-end{background:#141414;margin-inline:calc(50% - 50vw)!important;padding:14px calc(50vw - 50%)!important;width:auto!important;margin-top:32px!important;margin-bottom:0!important}
.ft{overflow:hidden}
.ft-end small{color:#aaa59c!important}
@media (max-width:600px){.ft-end{margin-top:22px!important;padding-top:12px!important;padding-bottom:12px!important}}
/* フッター：メニュー（HOME〜）から下を黒に、会社情報は明るいグレーのまま */
.ft-sub{background:#141414!important;border-top:0!important}
.ft-sub .wrap{padding-top:32px!important}
@media (max-width:600px){.ft-sub .wrap{padding-top:26px!important}}
.ft-sub nav a{color:#d4cfc6!important}
.ft-sub nav a:hover{color:#fff!important}
.ft-end{border-top:1px solid rgba(255,255,255,.1)}
/* 事業内容：対応地域はベージュ（本文が古くても効くように） */
.pg-services .sec:has(.wrap.two){background:var(--bg-2)!important}
.pp .pp-end{text-align:right;margin-top:2em}
/* スマホのフッターメニュー：3列×3段に */
@media (max-width:600px){
  .ft nav{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:2px 8px!important}
  .ft nav a{font-size:.78rem!important;letter-spacing:0!important;white-space:nowrap;padding:6px 0!important}
  .ft-sub .wrap{padding-top:18px!important}
}
@media (max-width:600px){.ft nav{grid-template-columns:auto auto auto!important;justify-content:space-between!important;column-gap:10px!important}}
@media (max-width:340px){.ft nav a{font-size:.7rem!important}}
/* スマホのフッターメニュー：上下の余白を文字1つ分ずつ詰める */
@media (max-width:600px){.ft-sub .wrap{padding-top:5px!important}.ft-end{margin-top:9px!important}}
/* メニューと©の間の線はなし */
.ft-end{border-top:0!important}
/* スマホ：一番下の©・ボタンの行が下の電話バーに隠れないよう、バーの高さ分あける */
@media (max-width:760px){.ft-end{padding-bottom:calc(12px + 58px + env(safe-area-inset-bottom,0px))!important}}
/* スマホのフッターメニュー：左そろえのまま、3列を幅いっぱいに均等配置 */
@media (max-width:600px){.ft nav{width:100%!important;grid-template-columns:auto auto auto!important;justify-content:space-between!important}}
/* フッター上段：真っ白に。上の区切りはヘッダーと同じ青のグラデ線 */
.ft{background:#ffffff!important;position:relative}
.ft::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,#05a2e9 0%,#05a2e9 45%,#8fd3f7 80%,#cdeefc 100%);pointer-events:none;z-index:1}
/* フッター：許可番号の下にインボイス登録番号（右端はツにそろえる処理の対象外） */
.ft .ft-head .ft-inv{margin-top:-.3em;font-size:.72rem}
.ft .ft-head .ft-inv{font-size:inherit}
/* フッターの社名：マジョーラカラー（見る角度で色が変わる塗装のイメージ） */
.ft .ft-brand .name{background:linear-gradient(110deg,#3b1f6e 0%,#5a2aa0 18%,#1d5fa8 36%,#0f8a8a 52%,#2f8f4e 66%,#6b2c91 84%,#3b1f6e 100%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent!important;-webkit-text-fill-color:transparent;animation:rnzMajora 9s ease-in-out infinite alternate}
@keyframes rnzMajora{0%{background-position:0% 50%}100%{background-position:100% 50%}}
@media (prefers-reduced-motion:reduce){.ft .ft-brand .name{animation:none}}
/* トップの「安心を施工する」：安心感のあるマジョーラ（白〜空色〜水色〜淡い藤色がゆっくり移ろう） */
.sig .jp{background:linear-gradient(110deg,#ffffff 0%,#d9efff 18%,#9fd8f5 36%,#bfe9e6 52%,#e6e2ff 70%,#cfe6ff 86%,#ffffff 100%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent!important;-webkit-text-fill-color:transparent;animation:rnzCalm 10s ease-in-out infinite alternate}
@keyframes rnzCalm{0%{background-position:0% 50%}100%{background-position:100% 50%}}
@media (prefers-reduced-motion:reduce){.sig .jp{animation:none}}
/* 見出しの英語：白地・ベージュ地はフッター社名と同じ深いマジョーラ、写真の上は「安心を施工する」と同じ淡いマジョーラ */
.ttl2 .en{background:linear-gradient(110deg,#3b1f6e 0%,#5a2aa0 18%,#1d5fa8 36%,#0f8a8a 52%,#2f8f4e 66%,#6b2c91 84%,#3b1f6e 100%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent!important;-webkit-text-fill-color:transparent;animation:rnzMajora 9s ease-in-out infinite alternate}
.pg-head .en,.page-head .en,.ph .en{background:linear-gradient(110deg,#ffffff 0%,#d9efff 18%,#9fd8f5 36%,#bfe9e6 52%,#e6e2ff 70%,#cfe6ff 86%,#ffffff 100%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent!important;-webkit-text-fill-color:transparent;animation:rnzCalm 10s ease-in-out infinite alternate}
@media (prefers-reduced-motion:reduce){.ttl2 .en,.pg-head .en,.page-head .en,.ph .en{animation:none}}
/* フッターの社名は黒で締める（マジョーラは見出しの英語だけ） */
.ft .ft-brand .name{background:none!important;-webkit-background-clip:border-box!important;background-clip:border-box!important;color:#1b1b1b!important;-webkit-text-fill-color:#1b1b1b!important;animation:none!important}
/* 白い区切りが続くときは余白を二重にしない（上の区切りの下余白だけにする） */
.sec.sv-w+.sec.sv-w:not(.wk-list){padding-top:0!important}
.sec:not(.sv-bg):not(.st-bg):not(.ct)+.sec.sv-w:not(.wk-list){padding-top:0!important}
.sec.rec-intro{padding-bottom:80px!important}
@media (max-width:760px){.sec.rec-intro{padding-bottom:var(--sec-pad-sp,80px)!important}}
/* ヘッダー下とフッター上の線：今の青を基調にしたマジョーラ（青→水色→淡い藤色がゆっくり流れる） */
.hd::after,.ft::before{background:linear-gradient(90deg,#05a2e9 0%,#3fb6ef 18%,#8fd3f7 34%,#7fd6d0 50%,#b9b4f2 66%,#5a8fe0 82%,#05a2e9 100%)!important;background-size:300% 100%!important;animation:rnzLine 12s ease-in-out infinite alternate}
@keyframes rnzLine{0%{background-position:0% 50%}100%{background-position:100% 50%}}
@media (prefers-reduced-motion:reduce){.hd::after,.ft::before{animation:none}}
/* 線：濃さをそろえた色だけで流す（右が白に溶けて細く・曲がって見える錯覚を防ぐ） */
.hd::after,.ft::before{background:linear-gradient(90deg,#1f8fe0 0%,#2aa3dc 20%,#2fa9c4 40%,#4a8fdc 60%,#6c7fe0 80%,#1f8fe0 100%)!important;background-size:300% 100%!important}
/* 線：マジョーラ感をはっきり（濃さはそろえたまま色相の幅を広げる） */
.hd::after,.ft::before{background:linear-gradient(90deg,#1e88e5 0%,#159fb0 18%,#2a9d7c 32%,#3f7fd8 48%,#6a5ae0 64%,#9b4fd0 80%,#1e88e5 100%)!important;background-size:250% 100%!important;animation:rnzLine 7s ease-in-out infinite alternate!important}
/* 線：さりげなく色が移ろう程度（v79より控えめ） */
.hd::after,.ft::before{background:linear-gradient(90deg,#1e88e5 0%,#1a9cc0 22%,#2a9a92 38%,#3a86d6 56%,#5f6ee0 76%,#1e88e5 100%)!important;background-size:250% 100%!important;animation:rnzLine 10s ease-in-out infinite alternate!important}
/* 安心を施工する：雲が流れるように（白い雲が空色の上を一方向にゆっくり流れる） */
.sig .jp{background-image:radial-gradient(ellipse 22% 60% at 15% 40%,rgba(255,255,255,.95) 0%,rgba(255,255,255,.6) 45%,rgba(255,255,255,0) 75%),radial-gradient(ellipse 16% 45% at 30% 65%,rgba(255,255,255,.85) 0%,rgba(255,255,255,0) 70%),radial-gradient(ellipse 26% 55% at 62% 45%,rgba(255,255,255,.9) 0%,rgba(255,255,255,.5) 45%,rgba(255,255,255,0) 75%),radial-gradient(ellipse 14% 40% at 82% 30%,rgba(255,255,255,.8) 0%,rgba(255,255,255,0) 70%),linear-gradient(180deg,#bfe3fa 0%,#9fd3f3 100%)!important;background-size:200% 100%!important;background-repeat:repeat-x!important;-webkit-background-clip:text;background-clip:text;color:transparent!important;-webkit-text-fill-color:transparent;animation:rnzCloud 28s linear infinite!important}
@keyframes rnzCloud{0%{background-position:0% 0}100%{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.sig .jp{animation:none!important}}
/* 雲：もっと白く濃く */
.sig .jp{background-image:radial-gradient(ellipse 26% 70% at 14% 42%,#fff 0%,#fff 40%,rgba(255,255,255,.75) 60%,rgba(255,255,255,0) 82%),radial-gradient(ellipse 18% 55% at 30% 62%,#fff 0%,#fff 35%,rgba(255,255,255,0) 78%),radial-gradient(ellipse 30% 70% at 60% 45%,#fff 0%,#fff 42%,rgba(255,255,255,.7) 62%,rgba(255,255,255,0) 84%),radial-gradient(ellipse 18% 55% at 84% 35%,#fff 0%,#fff 35%,rgba(255,255,255,0) 78%),linear-gradient(180deg,#a8d8f6 0%,#86c6ef 100%)!important}
/* 安心を施工する：マジョーラの地に白い雲が流れる（地の色もゆっくり移ろう） */
.sig .jp{background-image:radial-gradient(ellipse 26% 70% at 14% 42%,#fff 0%,#fff 40%,rgba(255,255,255,.75) 60%,rgba(255,255,255,0) 82%),radial-gradient(ellipse 18% 55% at 30% 62%,#fff 0%,#fff 35%,rgba(255,255,255,0) 78%),radial-gradient(ellipse 30% 70% at 60% 45%,#fff 0%,#fff 42%,rgba(255,255,255,.7) 62%,rgba(255,255,255,0) 84%),radial-gradient(ellipse 18% 55% at 84% 35%,#fff 0%,#fff 35%,rgba(255,255,255,0) 78%),linear-gradient(90deg,#7fb6f2 0%,#62c9d6 18%,#78d2a6 34%,#8fb0f0 50%,#ae9cf2 66%,#c79be8 82%,#7fb6f2 100%)!important;background-size:200% 100%,200% 100%,200% 100%,200% 100%,300% 100%!important;background-repeat:repeat-x!important;animation:rnzCloudM 28s linear infinite!important}
@keyframes rnzCloudM{0%{background-position:0% 0,0% 0,0% 0,0% 0,0% 0}100%{background-position:-200% 0,-200% 0,-200% 0,-200% 0,-150% 0}}
@media (prefers-reduced-motion:reduce){.sig .jp{animation:none!important}}
/* 安心を施工する：言葉を濃く（色を鮮やかに・雲は細めに・少し太く・影で締める） */
.sig .jp{background-image:radial-gradient(ellipse 16% 55% at 14% 42%,rgba(255,255,255,.95) 0%,rgba(255,255,255,.5) 45%,rgba(255,255,255,0) 75%),radial-gradient(ellipse 18% 55% at 60% 45%,rgba(255,255,255,.95) 0%,rgba(255,255,255,.5) 45%,rgba(255,255,255,0) 75%),linear-gradient(90deg,#3d9bff 0%,#1fc4d0 18%,#2fd17e 34%,#4f8dff 50%,#8d6bff 66%,#c25ff0 82%,#3d9bff 100%)!important;background-size:200% 100%,200% 100%,300% 100%!important;animation:rnzCloudM2 28s linear infinite!important;font-weight:600!important;filter:drop-shadow(0 1px 3px rgba(0,0,0,.45))}
@keyframes rnzCloudM2{0%{background-position:0% 0,0% 0,0% 0}100%{background-position:-200% 0,-200% 0,-150% 0}}
@media (prefers-reduced-motion:reduce){.sig .jp{animation:none!important}}
/* 雲：白のボリュームを戻す（色は鮮やかなまま、雲を大きく・4つに） */
.sig .jp{background-image:radial-gradient(ellipse 22% 65% at 12% 42%,#fff 0%,#fff 35%,rgba(255,255,255,.6) 58%,rgba(255,255,255,0) 80%),radial-gradient(ellipse 14% 50% at 32% 62%,#fff 0%,#fff 30%,rgba(255,255,255,0) 75%),radial-gradient(ellipse 24% 65% at 60% 45%,#fff 0%,#fff 35%,rgba(255,255,255,.6) 58%,rgba(255,255,255,0) 80%),radial-gradient(ellipse 14% 50% at 84% 35%,#fff 0%,#fff 30%,rgba(255,255,255,0) 75%),linear-gradient(90deg,#3d9bff 0%,#1fc4d0 18%,#2fd17e 34%,#4f8dff 50%,#8d6bff 66%,#c25ff0 82%,#3d9bff 100%)!important;background-size:200% 100%,200% 100%,200% 100%,200% 100%,300% 100%!important;animation:rnzCloudM 28s linear infinite!important}
@media (prefers-reduced-motion:reduce){.sig .jp{animation:none!important}}
/* マジョーラ：青が背景の青に沈まないよう、全色を明るめに（鮮やかさは維持） */
.sig .jp{background-image:radial-gradient(ellipse 22% 65% at 12% 42%,#fff 0%,#fff 35%,rgba(255,255,255,.6) 58%,rgba(255,255,255,0) 80%),radial-gradient(ellipse 14% 50% at 32% 62%,#fff 0%,#fff 30%,rgba(255,255,255,0) 75%),radial-gradient(ellipse 24% 65% at 60% 45%,#fff 0%,#fff 35%,rgba(255,255,255,.6) 58%,rgba(255,255,255,0) 80%),radial-gradient(ellipse 14% 50% at 84% 35%,#fff 0%,#fff 30%,rgba(255,255,255,0) 75%),linear-gradient(90deg,#7cc8ff 0%,#3fe0e6 18%,#5fe6a0 34%,#8fb8ff 50%,#b39cff 66%,#df8cff 82%,#7cc8ff 100%)!important}
/* フッター会社情報：上の線の下と、黒いメニューの上をうっすら暗くして、白い面が一段くぼんだ立体感に */
.ft{box-shadow:inset 0 22px 22px -16px rgba(0,0,0,.16)!important}
.ft-sub{position:relative;box-shadow:0 -14px 20px -8px rgba(0,0,0,.22)!important}
/* 立体感：端まで均一な濃さに（影ではなくグラデーションで） */
.ft{box-shadow:none!important;background:linear-gradient(to bottom,rgba(0,0,0,.11) 0,rgba(0,0,0,0) 26px),#fff!important}
.ft-sub{box-shadow:none!important}
.ft-sub::before{content:"";position:absolute;left:0;right:0;top:-28px;height:28px;background:linear-gradient(to top,rgba(0,0,0,.14),rgba(0,0,0,0));pointer-events:none}
/* 立体感：くぼみではなく浮き出しに（影は面の外側、面の中は上が明るく下へわずかに陰る） */
.ft{background:linear-gradient(to bottom,#ffffff 0,#ffffff 55%,#f1f2f4 100%)!important;box-shadow:0 -10px 22px -6px rgba(0,0,0,.20)!important;z-index:2}
.ft-sub{background:#141414!important}
.ft-sub::before{top:0!important;height:22px!important;background:linear-gradient(to bottom,rgba(0,0,0,.55),rgba(0,0,0,0))!important;z-index:1}
.ft-sub>*{position:relative;z-index:2}
/* 浮き出し：強さを半分ほどに */
.ft{background:linear-gradient(to bottom,#ffffff 0,#ffffff 60%,#f6f7f8 100%)!important;box-shadow:0 -6px 14px -6px rgba(0,0,0,.11)!important}
.ft-sub::before{height:14px!important;background:linear-gradient(to bottom,rgba(0,0,0,.35),rgba(0,0,0,0))!important}
/* 浮き出し：強すぎ・弱すぎの中間 */
.ft{background:linear-gradient(to bottom,#ffffff 0,#ffffff 58%,#f3f4f6 100%)!important;box-shadow:0 -8px 18px -6px rgba(0,0,0,.16)!important}
.ft-sub::before{height:18px!important;background:linear-gradient(to bottom,rgba(0,0,0,.45),rgba(0,0,0,0))!important}
/* 浮き出し：灰・黒ではなく、上下の線と同じ青系の色の影に */
.ft{background:linear-gradient(to bottom,#ffffff 0,#ffffff 58%,#eef4fb 100%)!important;box-shadow:0 -8px 18px -6px rgba(31,110,210,.22)!important}
.ft-sub::before{height:18px!important;background:linear-gradient(to bottom,rgba(40,70,150,.55),rgba(40,70,150,0))!important}
/* 影：青みは残しつつ、彩度と濃さを落として落ち着かせる */
.ft{background:linear-gradient(to bottom,#ffffff 0,#ffffff 58%,#f2f5f8 100%)!important;box-shadow:0 -8px 18px -6px rgba(50,80,120,.16)!important}
.ft-sub::before{height:18px!important;background:linear-gradient(to bottom,rgba(30,45,70,.55),rgba(30,45,70,0))!important}
/* 黒いフッターとの境にも影：白い面の影が黒の上に落ちて見えるよう濃く・長く */
.ft{background:linear-gradient(to bottom,#ffffff 0,#ffffff 55%,#edf1f5 100%)!important}
.ft-sub::before{height:26px!important;background:linear-gradient(to bottom,rgba(0,0,0,.9),rgba(10,16,28,.35) 45%,rgba(10,16,28,0))!important}
/* 黒いフッターの上に落ちる影をはっきり：黒の地をほんの少し明るくして、上端を真っ黒からぼかす */
.ft-sub,.ft-end{background:#1b1b1d!important}
.ft-sub::before{height:34px!important;background:linear-gradient(to bottom,#000 0,rgba(0,0,0,.55) 35%,rgba(0,0,0,0) 100%)!important}
/* 境の影：黒側ではなく白側に（白い面の下端を黒へ向けてうっすら暗く） */
.ft-sub,.ft-end{background:#141414!important}
.ft-sub::before{top:-26px!important;height:26px!important;background:linear-gradient(to top,rgba(30,45,70,.20),rgba(30,45,70,0))!important}
.ft{background:#fff!important}
/* 境：白側の影はやめ、上と同じ青のグラデ線を白い面の下にも */
.ft-sub::before{top:0!important;height:2px!important;background:linear-gradient(90deg,#1e88e5 0%,#1a9cc0 22%,#2a9a92 38%,#3a86d6 56%,#5f6ee0 76%,#1e88e5 100%)!important;background-size:250% 100%!important;animation:rnzLine 10s ease-in-out infinite alternate!important;z-index:3}
@media (prefers-reduced-motion:reduce){.ft-sub::before{animation:none!important}}
/* 白い面を上下に広げ、上下の線の外側を同じくらいぼかす（上は白地に影、下は黒地に青い光） */
.ft>.wrap{padding-top:52px!important;padding-bottom:52px!important}
@media (max-width:600px){.ft>.wrap{padding-top:40px!important;padding-bottom:40px!important}}
.ft{box-shadow:0 -10px 18px -6px rgba(50,80,120,.18)!important}
.ft-sub::after{content:"";position:absolute;left:0;right:0;top:2px;height:18px;background:linear-gradient(to bottom,rgba(70,120,190,.28),rgba(70,120,190,0));pointer-events:none;z-index:1}
@media (max-width:600px){.ft>.wrap{padding-top:56px!important;padding-bottom:56px!important}}
.ft>.wrap{padding-top:68px!important;padding-bottom:68px!important}
@media (max-width:600px){.ft>.wrap{padding-top:56px!important;padding-bottom:56px!important}}
/* 下の青線の下のぼかしを、上と同じくらい見えるように */
.ft-sub::after{height:30px!important;background:linear-gradient(to bottom,rgba(80,135,205,.50),rgba(80,135,205,.18) 40%,rgba(80,135,205,0))!important}
/* 黒をぼかしの下まで下げる：下の青線の下に白地のぼかし帯、その下から黒 */
.ft-sub{padding-top:30px!important;background:linear-gradient(to bottom,#fff 0,#fff 30px,#141414 30px)!important}
.ft-sub::after{top:2px!important;height:28px!important;background:linear-gradient(to bottom,rgba(50,80,120,.18),rgba(50,80,120,0))!important}
.ft-sub .wrap{padding-top:32px!important}
@media (max-width:600px){.ft-sub .wrap{padding-top:20px!important}}
/* 黒の下げ幅とぼかしを短く */
.ft-sub{padding-top:14px!important;background:linear-gradient(to bottom,#fff 0,#fff 14px,#141414 14px)!important}
.ft-sub::after{height:12px!important;background:linear-gradient(to bottom,rgba(50,80,120,.20),rgba(50,80,120,0))!important}
/* 下の青線はなし（白い帯とぼかしのみ） */
.ft-sub::before{display:none!important}
.ft-sub::after{top:0!important}
/* 試し：フッター上の青線もなし（影だけで区切る） */
.ft::before{display:none!important}
/* ぼかし幅を狭く（上下とも） */
.ft{box-shadow:0 -5px 9px -4px rgba(50,80,120,.20)!important}
.ft-sub::after{height:7px!important;background:linear-gradient(to bottom,rgba(50,80,120,.22),rgba(50,80,120,0))!important}
/* 黒を上に詰める（白い帯なし） */
.ft-sub{padding-top:0!important;background:#141414!important}
/* タップ領域：見た目の間隔は変えず、押せる範囲を44px以上に */
.ft-sub nav a{display:inline-flex;align-items:center;min-height:44px;margin:-10px 0!important;padding:10px 0!important}
.ft .ft-info a{display:inline-block;padding:8px 0;margin:-8px 0}
.ft-brand{display:inline-flex;align-items:center;min-height:44px}
.ft-sub nav a{margin:-6px 0!important;padding:12px 0!important}
.ft .ft-info a{padding:11px 0;margin:-11px 0}

/* WordPress用 */
html,body{margin:0}
.admin-bar .hd{top:32px}
@media (max-width:782px){.admin-bar .hd{top:46px}}
.works .work img,.news .nw .ph img{height:auto}
.works.grid3 .work img{aspect-ratio:4/3}
.nw .ph{position:relative;display:block}
.nw .ph img{position:absolute;inset:0;width:100%;height:100%!important;object-fit:cover}
.work.w-l .ph img{height:100%!important}
.work.w-m .ph img,.works.grid3 .work .ph img{aspect-ratio:4/3;height:auto!important}
.entry{max-width:46rem;display:grid;gap:1.2rem}
.entry img{height:auto;border-radius:8px}
.single-meta{display:flex;gap:14px;font-size:.84rem;color:var(--accent)}
.single-meta span{color:var(--muted)}
.single-fig{margin:0 0 28px;border-radius:8px;overflow:hidden}
.single-fig img{width:100%;height:auto;display:block}
.news-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.news-list li{border-bottom:1px solid var(--line)}
.news-list a{display:grid;grid-template-columns:9em 1fr;gap:6px 20px;padding:22px 0;text-decoration:none}
.news-list time{color:var(--muted);font-size:.86rem}
.news-list a:hover b{color:var(--accent)}
.news-list b{font-weight:500}
@media (max-width:560px){.news-list a{grid-template-columns:1fr}}
.nav-links{display:flex;gap:10px;justify-content:center;margin-top:36px}
.nav-links .page-numbers{padding:.4rem .8rem;border:1px solid var(--line);border-radius:3px;text-decoration:none;font-size:.86rem}
.nav-links .current{background:var(--navy);color:var(--on-navy)}
