
:root{
  --paper:#FAF8F3; --paper2:#F1ECE2; --paper3:#E8E1D4;
  --sumi:#221E1A; --sumi2:#5A5148; --sumi3:#8A8075;
  --kicha:#5C4A3A; --ame:#8A5E2B; --rule:#DBD3C4; --rule2:#C6BCA9;
  --mincho:"Shippori Mincho",serif; --gothic:"Zen Kaku Gothic New",sans-serif;
  --latin:"Cormorant Garamond",serif;
  --wide:1200px; --narrow:1000px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--sumi);font-family:var(--gothic);font-weight:400;
  font-size:15px;line-height:1.9;-webkit-font-smoothing:antialiased;letter-spacing:.04em}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
.wide{max-width:var(--wide);margin-inline:auto;padding-inline:32px}
.narrow{max-width:var(--narrow);margin-inline:auto;padding-inline:32px}
.mincho{font-family:var(--mincho)}
.latin{font-family:var(--latin);letter-spacing:.14em;font-weight:300}

/* ============ 提案バナー（説明用・実装時は削除） ============ */
.memo{background:var(--sumi);color:#EFE9DE;font-size:12.5px;letter-spacing:.06em;
  padding:9px 32px;text-align:center;line-height:1.7}
.memo b{color:#D9BE8E;font-weight:500}

/* ============ ヘッダー（ばんたね型：上=ユーティリティ／下=ロゴ+グロナビ） ============ */
.hd-top{background:var(--paper2);border-bottom:1px solid var(--rule)}
.hd-top .wide{display:flex;align-items:center;justify-content:flex-end;gap:26px;height:42px}
.hd-top a{font-size:12.5px;color:var(--sumi2);letter-spacing:.08em}
.hd-top a:hover{color:var(--ame)}
.hd-search{display:flex;align-items:center;border:1px solid var(--rule2);background:#fff;
  height:27px;padding:0 4px 0 10px}
.hd-search input{border:0;outline:0;font-family:inherit;font-size:12px;width:132px;background:transparent}
.hd-search button{border:0;background:var(--kicha);color:#fff;font-family:inherit;font-size:11px;
  letter-spacing:.1em;height:21px;padding:0 10px;cursor:pointer}

.hd-btm{background:var(--paper);border-bottom:1px solid var(--rule);position:sticky;top:0;z-index:50}
.hd-btm .wide{display:flex;align-items:stretch;justify-content:space-between;gap:40px}
.logo{display:flex;align-items:center;gap:13px;padding:17px 0}
.logo img{width:36px}
.logo-tx{display:block}
.logo-ja{display:block;font-family:var(--mincho);font-size:22px;letter-spacing:.16em;line-height:1.25;font-weight:600;white-space:nowrap}
.logo-en{display:block;font-family:var(--latin);font-size:10px;color:var(--sumi3);letter-spacing:.18em;margin-top:2px;white-space:nowrap}
.gnav{display:flex}
.gnav > a{display:flex;flex-direction:column;justify-content:center;align-items:center;
  padding:0 15px;border-left:1px solid var(--rule);text-align:center;transition:background .2s;
  white-space:nowrap}
.gnav > a:last-child{border-right:1px solid var(--rule)}
.gnav > a:hover{background:var(--paper2)}
.gnav .j{font-family:var(--mincho);font-size:14px;letter-spacing:.06em;font-weight:500;white-space:nowrap}
.gnav .e{font-family:var(--latin);font-size:9px;color:var(--sumi3);letter-spacing:.12em;margin-top:3px;white-space:nowrap}
.gnav .cta{background:var(--kicha);color:#F7F2E8;border-left:0!important}
.gnav .cta:hover{background:#4a3b2d}
.gnav .cta .e{color:#C3B29A}

/* ============ メインビジュアル ============ */
.mv{position:relative;background:var(--paper2)}
.mv-img{position:relative;height:clamp(360px,52vw,540px);overflow:hidden}
.mv-img img{width:100%;height:100%;object-fit:cover;filter:saturate(.86) contrast(1.02)}
.mv-img::after{content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(28,24,20,.52) 0%,rgba(28,24,20,.22) 46%,rgba(28,24,20,0) 74%)}
.mv-copy{position:absolute;inset:0;display:flex;align-items:center;z-index:2}
.mv-copy .wide{width:100%}
.mv-lead{font-family:var(--latin);font-size:11.5px;color:#E4D7BE;letter-spacing:.3em;margin-bottom:20px}
.mv-h1{font-family:var(--mincho);color:#FBF7EF;font-weight:500;
  font-size:clamp(28px,3.7vw,46px);line-height:1.62;letter-spacing:.1em;
  text-shadow:0 1px 22px rgba(0,0,0,.28)}
.mv-h1 .sm{display:block;font-size:.56em;letter-spacing:.14em;margin-top:16px;color:#EADFCB}
.mv-sub{color:#E3DACB;font-size:13.5px;margin-top:22px;letter-spacing:.08em;line-height:2}

/* ============ 実務情報バー＋読者別動線（ばんたね guideLinkArea） ============ */
.guide{background:var(--paper);padding:0 0 66px}
.guide-bar{background:#fff;border:1px solid var(--rule);margin-top:-40px;position:relative;z-index:3;
  display:grid;grid-template-columns:1.15fr 1fr 1fr;box-shadow:0 3px 24px rgba(60,48,36,.07)}
.gb{padding:20px 26px;border-left:1px solid var(--rule)}
.gb:first-child{border-left:0;background:var(--paper2)}
.gb .lab{font-size:10.5px;letter-spacing:.22em;color:var(--ame);font-family:var(--latin);
  font-size:11px;margin-bottom:7px}
.gb .big{font-family:var(--mincho);font-size:26px;letter-spacing:.06em;line-height:1.3;font-weight:600}
.gb .big small{font-size:13px;letter-spacing:.1em;color:var(--sumi2);font-weight:400}
.gb .note{font-size:12px;color:var(--sumi2);margin-top:5px;line-height:1.8}
.gb .tel{font-family:var(--mincho);font-size:29px;letter-spacing:.03em;color:var(--kicha);font-weight:600}

.guide-h{text-align:center;margin:62px 0 30px}
.guide-h .e{font-family:var(--latin);font-size:11.5px;letter-spacing:.28em;color:var(--ame)}
.guide-h .j{font-family:var(--mincho);font-size:25px;letter-spacing:.14em;margin-top:8px;font-weight:600}
.guide-list{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.gcard{background:#fff;border:1px solid var(--rule);transition:.24s;display:flex;flex-direction:column}
.gcard:hover{border-color:var(--kicha);transform:translateY(-3px);box-shadow:0 8px 26px rgba(60,48,36,.09)}
.gcard .ph{aspect-ratio:16/10;overflow:hidden;background:var(--paper3)}
.gcard .ph img{width:100%;height:100%;object-fit:cover;filter:saturate(.84)}
.gcard .bd{padding:17px 19px 21px;flex:1;display:flex;flex-direction:column}
.gcard .num{font-family:var(--latin);font-size:11px;color:var(--ame);letter-spacing:.2em}
.gcard h3{font-family:var(--mincho);font-size:17px;letter-spacing:.08em;margin:5px 0 8px;font-weight:600;line-height:1.55}
.gcard p{font-size:12.5px;color:var(--sumi2);line-height:1.85;flex:1}
.gcard .arw{font-size:11.5px;color:var(--kicha);letter-spacing:.12em;margin-top:13px;
  padding-top:11px;border-top:1px solid var(--rule)}

/* ============ 製品検索（ばんたね searchArea） ============ */
.search{background:var(--kicha);color:#F3EDE2;padding:52px 0}
.search-h{display:flex;align-items:baseline;gap:18px;margin-bottom:24px}
.search-h .j{font-family:var(--mincho);font-size:23px;letter-spacing:.14em;font-weight:600}
.search-h .e{font-family:var(--latin);font-size:11px;letter-spacing:.24em;color:#C7B69C}
.search-box{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.2);padding:26px 30px;
  display:grid;grid-template-columns:1fr 1fr auto;gap:20px;align-items:end}
.sf label{display:block;font-size:11.5px;letter-spacing:.14em;color:#D3C4AC;margin-bottom:8px}
.sf select{width:100%;height:44px;border:1px solid rgba(255,255,255,.3);background:#FAF8F3;
  color:var(--sumi);font-family:inherit;font-size:14px;padding:0 13px;letter-spacing:.06em}
.search-btn{height:44px;padding:0 40px;background:#F0E7D6;color:var(--kicha);border:0;
  font-family:var(--mincho);font-size:15px;letter-spacing:.16em;font-weight:600;cursor:pointer}
.search-btn:hover{background:#fff}
.search-tags{margin-top:18px;font-size:12.5px;color:#CFBFA6;letter-spacing:.06em}
.search-tags a{border-bottom:1px solid rgba(255,255,255,.32);margin:0 5px;padding-bottom:2px}

/* ============ 代表あいさつ（ばんたね greetingArea） ============ */
.greet{padding:76px 0;background:var(--paper)}
.greet-in{display:grid;grid-template-columns:.82fr 1.18fr;gap:56px;align-items:center}
.greet-ph{position:relative}
.greet-ph img{filter:saturate(.8)}
.greet-ph .cap{font-size:11.5px;color:var(--sumi3);margin-top:9px;letter-spacing:.06em}
.greet .e{font-family:var(--latin);font-size:11.5px;letter-spacing:.26em;color:var(--ame)}
.greet h2{font-family:var(--mincho);font-size:clamp(22px,2.5vw,30px);letter-spacing:.1em;
  line-height:1.75;margin:12px 0 24px;font-weight:600}
.greet p{font-size:14.5px;line-height:2.15;color:var(--sumi2);margin-bottom:15px}
.greet .sign{margin-top:24px;padding-top:18px;border-top:1px solid var(--rule);
  font-size:13px;color:var(--sumi2);letter-spacing:.08em}
.greet .sign b{font-family:var(--mincho);font-size:19px;letter-spacing:.14em;margin-left:10px;
  color:var(--sumi);font-weight:600}

/* ============ 信頼の帯（ばんたね certArea） ============ */
.cert{background:var(--paper2);border-block:1px solid var(--rule);padding:34px 0}
.cert-in{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.ci{padding:6px 26px;border-left:1px solid var(--rule2);text-align:center}
.ci:first-child{border-left:0}
.ci .n{font-family:var(--mincho);font-size:33px;letter-spacing:.04em;line-height:1.2;
  color:var(--kicha);font-weight:600}
.ci .n small{font-size:14px;letter-spacing:.08em;margin-left:3px}
.ci .t{font-size:12px;color:var(--sumi2);margin-top:7px;letter-spacing:.1em}
.ci .s{font-size:11px;color:var(--sumi3);margin-top:3px}

/* ============ 用途別バナー（ばんたね linkBlockArea） ============ */
.blocks{padding:76px 0 0}
.sec-h{margin-bottom:32px}
.sec-h .e{font-family:var(--latin);font-size:11.5px;letter-spacing:.28em;color:var(--ame)}
.sec-h .j{font-family:var(--mincho);font-size:clamp(22px,2.4vw,28px);letter-spacing:.13em;
  margin-top:7px;font-weight:600}
.sec-h .d{font-size:13.5px;color:var(--sumi2);margin-top:12px;line-height:1.95}
.bl-list{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.bl{position:relative;aspect-ratio:3/3.5;overflow:hidden;border:1px solid var(--rule)}
.bl img{width:100%;height:100%;object-fit:cover;filter:saturate(.82);transition:transform .55s}
.bl:hover img{transform:scale(1.045)}
.bl::after{content:"";position:absolute;inset:0;
  background:linear-gradient(to top,rgba(24,20,16,.72) 0%,rgba(24,20,16,.1) 52%,rgba(24,20,16,0) 100%)}
.bl .tx{position:absolute;left:0;right:0;bottom:0;padding:20px 18px;z-index:2;color:#F7F2E7}
.bl .tx .e{display:block;font-family:var(--latin);font-size:10px;letter-spacing:.22em;color:#D8C6A8}
.bl .tx .j{display:block;font-family:var(--mincho);font-size:20px;letter-spacing:.1em;margin-top:4px;font-weight:600}
.bl .tx .m{display:block;font-size:11.5px;color:#DDD2C0;margin-top:6px;line-height:1.7}

/* ============ 対象者別2枠（ばんたね targetLinkBlockArea） ============ */
.target{padding:66px 0 76px}
.tg-list{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.tg{border:1px solid var(--rule);background:#fff;padding:34px 36px;display:flex;
  justify-content:space-between;align-items:center;gap:24px;transition:.24s}
.tg:hover{background:var(--paper2);border-color:var(--kicha)}
.tg .e{display:block;font-family:var(--latin);font-size:11px;letter-spacing:.24em;color:var(--ame)}
.tg h3{font-family:var(--mincho);font-size:21px;letter-spacing:.12em;margin:6px 0 9px;font-weight:600}
.tg p{font-size:12.5px;color:var(--sumi2);line-height:1.85}
.tg .go{font-family:var(--mincho);font-size:24px;color:var(--kicha);flex-shrink:0}

/* ============ お知らせ（ばんたね infoArea） ============ */
.info{background:var(--paper2);border-top:1px solid var(--rule);padding:66px 0}
.info-h{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:22px;
  border-bottom:1px solid var(--rule2);padding-bottom:14px}
.info-h .j{font-family:var(--mincho);font-size:24px;letter-spacing:.14em;font-weight:600}
.info-h .e{font-family:var(--latin);font-size:11px;letter-spacing:.24em;color:var(--ame);margin-left:14px}
.info-h .all{font-size:12.5px;color:var(--sumi2);letter-spacing:.08em}
.news{list-style:none}
.news li{border-bottom:1px solid var(--rule);}
.news a{display:grid;grid-template-columns:104px 92px 1fr;gap:18px;align-items:center;padding:15px 4px}
.news a:hover{background:rgba(255,255,255,.55)}
.news .d{font-family:var(--latin);font-size:14px;color:var(--sumi3);letter-spacing:.1em}
.news .c{font-size:10.5px;letter-spacing:.14em;text-align:center;padding:3px 0;
  border:1px solid var(--rule2);color:var(--sumi2);background:#fff}
.news .c.new{background:var(--kicha);color:#F3EBDD;border-color:var(--kicha)}
.news .t{font-size:14px;letter-spacing:.04em}
.news a:hover .t{color:var(--ame)}

/* ============ 取扱製品グリッド（ばんたね centerArea） ============ */
.prod{padding:76px 0}
.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);
  border:1px solid var(--rule)}
.pc{background:#fff;padding:0;display:flex;flex-direction:column;transition:.2s}
.pc:hover{background:var(--paper2)}
.pc .ph{aspect-ratio:16/9;overflow:hidden;background:var(--paper3)}
.pc .ph img{width:100%;height:100%;object-fit:cover;filter:saturate(.82)}
.pc .bd{padding:18px 21px 22px;flex:1;display:flex;flex-direction:column}
.pc .e{display:block;font-family:var(--latin);font-size:10px;letter-spacing:.2em;color:var(--ame)}
.pc h3{font-family:var(--mincho);font-size:19px;letter-spacing:.1em;margin:4px 0 9px;font-weight:600}
.pc h3 span{font-size:12px;color:var(--sumi3);letter-spacing:.06em;margin-left:7px;font-family:var(--gothic)}
.pc p{font-size:12.5px;color:var(--sumi2);line-height:1.85;flex:1}
.pc .spec{display:block;font-size:11.5px;color:var(--kicha);margin-top:12px;padding-top:10px;
  border-top:1px dotted var(--rule2);letter-spacing:.05em}

/* ============ 新規事業（ばんたね spArea） ============ */
.newbiz{background:var(--sumi);color:#EDE6D9;padding:78px 0}
.nb-in{display:grid;grid-template-columns:1.05fr .95fr;gap:52px;align-items:center}
.nb .e{font-family:var(--latin);font-size:11.5px;letter-spacing:.26em;color:#C9A978}
.nb h2{font-family:var(--mincho);font-size:clamp(24px,2.8vw,34px);letter-spacing:.11em;
  line-height:1.65;margin:12px 0 20px;font-weight:600;color:#FAF5EA}
.nb p{font-size:14px;line-height:2.1;color:#C8C0B2;margin-bottom:14px}
.nb-spec{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:26px;
  border:1px solid rgba(255,255,255,.16)}
.nb-spec div{padding:15px 12px;text-align:center;border-left:1px solid rgba(255,255,255,.16)}
.nb-spec div:first-child{border-left:0}
.nb-spec .v{font-family:var(--mincho);font-size:21px;letter-spacing:.05em;color:#F0E6D3;font-weight:600}
.nb-spec .l{font-size:10.5px;color:#9E958A;margin-top:4px;letter-spacing:.1em}
.nb-btn{display:inline-block;margin-top:28px;border:1px solid rgba(255,255,255,.4);
  padding:13px 34px;font-family:var(--mincho);font-size:14px;letter-spacing:.16em;color:#F2EADB}
.nb-btn:hover{background:rgba(255,255,255,.1)}
.nb-ph img{filter:saturate(.72) brightness(.94)}

/* ============ CTA ============ */
.cta{background:var(--paper2);padding:72px 0;text-align:center;border-top:1px solid var(--rule)}
.cta .e{font-family:var(--latin);font-size:11.5px;letter-spacing:.26em;color:var(--ame)}
.cta h2{font-family:var(--mincho);font-size:clamp(23px,2.6vw,31px);letter-spacing:.12em;
  line-height:1.7;margin:12px 0 16px;font-weight:600}
.cta p{font-size:14px;color:var(--sumi2);line-height:2}
.cta-btns{display:flex;gap:16px;justify-content:center;margin-top:32px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;min-width:250px;height:60px;
  font-family:var(--mincho);font-size:16px;letter-spacing:.14em;font-weight:600;border:1px solid var(--kicha)}
.btn.fill{background:var(--kicha);color:#F7F1E6}
.btn.fill:hover{background:#4a3b2d}
.btn.line{color:var(--kicha);background:#fff}
.btn.line:hover{background:var(--paper3)}
.cta-tel{margin-top:26px;font-size:13px;color:var(--sumi2);letter-spacing:.06em}
.cta-tel b{font-family:var(--mincho);font-size:26px;letter-spacing:.04em;color:var(--kicha);
  margin:0 8px;font-weight:600}

/* ============ フッター（ばんたね：巨大サイトマップ） ============ */
.ft{background:var(--sumi);color:#B9B0A3;padding:56px 0 0;font-size:12.5px}
.ft-in{display:grid;grid-template-columns:1.15fr 2.4fr;gap:56px;padding-bottom:44px;
  border-bottom:1px solid rgba(255,255,255,.13)}
.ft-logo{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.ft-logo img{width:32px}
.ft-logo .j{font-family:var(--mincho);font-size:19px;letter-spacing:.16em;color:#EFE8DA;font-weight:600}
.ft-logo .e{font-family:var(--latin);font-size:9.5px;letter-spacing:.2em;color:#8A8175}
.ft-addr{line-height:2;color:#A79E92}
.ft-addr b{color:#E4DCCC;font-family:var(--mincho);font-size:20px;letter-spacing:.03em;font-weight:600}
.ft-map{display:grid;grid-template-columns:repeat(4,1fr);gap:30px}
.ft-map h4{font-family:var(--mincho);font-size:13.5px;letter-spacing:.12em;color:#E0D8C8;
  margin-bottom:13px;padding-bottom:9px;border-bottom:1px solid rgba(255,255,255,.14);font-weight:600}
.ft-map ul{list-style:none}
.ft-map li{margin-bottom:8px}
.ft-map a{color:#A79E92;font-size:12px;letter-spacing:.05em}
.ft-map a:hover{color:#DCCBA8}
.ft-btm{display:flex;justify-content:space-between;align-items:center;padding:20px 0;
  font-size:11.5px;color:#7E766B;letter-spacing:.06em;flex-wrap:wrap;gap:12px}
.ft-btm .lk a{margin-left:20px}


/* ============ モバイル用（ばんたね spMenu 相当） ============ */
.mbtn{display:none;align-items:center;gap:8px;background:none;border:0;font-family:var(--mincho);
  font-size:12px;letter-spacing:.14em;color:var(--sumi);cursor:pointer;padding:0 4px}
.mbtn i{display:block;width:22px;height:1px;background:var(--sumi);position:relative}
.mbtn i::before,.mbtn i::after{content:"";position:absolute;left:0;width:22px;height:1px;background:var(--sumi)}
.mbtn i::before{top:-7px}.mbtn i::after{top:7px}
#mtoggle{display:none}
.mbar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:80;
  grid-template-columns:1fr 1.25fr;border-top:1px solid var(--rule2)}
.mbar a{display:flex;align-items:center;justify-content:center;height:58px;
  font-family:var(--mincho);font-size:14.5px;letter-spacing:.1em;font-weight:600}
.mbar .t{background:var(--paper2);color:var(--kicha)}
.mbar .c{background:var(--kicha);color:#F7F1E6}

@media(max-width:980px){
  .guide-bar{grid-template-columns:1fr}
  .gb{border-left:0;border-top:1px solid var(--rule)}
  .guide-list,.bl-list{grid-template-columns:repeat(2,1fr)}
  .search-box,.greet-in,.tg-list,.nb-in,.ft-in{grid-template-columns:1fr}
  .cert-in{grid-template-columns:repeat(2,1fr);gap:22px 0}
  .ci:nth-child(3){border-left:0}
  .pgrid{grid-template-columns:repeat(2,1fr)}
  .ft-map{grid-template-columns:repeat(2,1fr)}
  .mbtn{display:flex}
  .hd-btm .wide{align-items:center;gap:14px}
  .gnav{position:absolute;left:0;right:0;top:100%;background:var(--paper);
    border-bottom:1px solid var(--rule);flex-direction:column;display:none}
  #mtoggle:checked ~ .hd-btm .gnav{display:flex}
  .gnav > a{flex-direction:row;justify-content:flex-start;gap:12px;height:54px;
    border-left:0;border-top:1px solid var(--rule);padding:0 22px}
  .gnav > a:last-child{border-right:0}
  .gnav .e{margin-top:0}
  .hd-btm{position:relative}
  .mbar{display:grid}
  body{padding-bottom:58px}
  .news a{grid-template-columns:88px 1fr;gap:10px}
  .news .c{display:none}
}
@media(max-width:640px){
  .guide-list,.bl-list,.pgrid{grid-template-columns:1fr}
  .wide,.narrow{padding-inline:20px}
  .hd-top .wide{justify-content:center;gap:0;height:38px}
  .hd-top a{display:none}
  .hd-search{width:100%;max-width:420px}
  .hd-search input{width:100%}
  .logo-ja{font-size:19px}
  .mv-img{height:400px}
  .guide-bar{margin-top:-24px}
  .cta-btns .btn{min-width:100%}
}

.preview-flag{background:#221E1A;color:#E8DFD0;font-size:12px;line-height:1.5;letter-spacing:.04em;padding:7px 16px;text-align:center;font-family:"Zen Kaku Gothic New",sans-serif;display:flex;gap:10px;justify-content:center;align-items:center;flex-wrap:wrap}
.preview-flag b{font-weight:500;color:#fff}
.preview-flag .pf-sep{opacity:.4}
.preview-flag a{color:#C9A227;text-decoration:underline;text-underline-offset:2px}
.hd-search button{white-space:nowrap}
@media(max-width:760px){.preview-flag{font-size:11px;padding:6px 12px;gap:6px}.preview-flag .pf-sub{display:none}.preview-flag .pf-sep{display:none}}

/* ===== compact pass：長いLPではなく「入口の集合体」にする ===== */
.mv-img{height:clamp(300px,36vw,400px)}
.guide{padding:0 0 44px}
.gb{padding:15px 22px}
.gcard .ph{height:118px}
.gcard .bd{padding:14px 16px 16px}
.gcard .bd>p:not(.num):not(.arw){font-size:12.5px;line-height:1.75}
.guide-h{padding:30px 0 16px}
.search{padding:32px 0}
.search-box{padding:18px 22px}
.cert{padding:26px 0}
.info{padding:44px 0}
.news a{padding:12px 4px}
.prod{padding:48px 0 52px}
.pc .ph{height:132px}
.pc .bd{padding:13px 15px 15px}
.pc .bd .e{font-size:9.5px}
.pc .bd h3{font-size:16px;margin:3px 0 7px}
.pgrid{grid-template-columns:repeat(3,1fr);gap:1px}
.newbiz{padding:46px 0}
.nb-spec div{padding:11px 10px}
.cta{padding:46px 0}
.ft{padding:40px 0 0}
.sec-h{margin-bottom:22px}
/* --- compact pass 2 --- */
.mv-img{height:clamp(280px,32vw,360px)}
.gcard .ph{height:96px}
.gcard .bd{padding:12px 15px 14px}
.gcard .bd h3{font-size:15.5px;line-height:1.5}
.gcard .bd>p:not(.num):not(.arw){font-size:12px;line-height:1.7;margin-top:6px}
.gcard .arw{margin-top:10px;padding-top:10px}
.guide-h{padding:24px 0 13px}
.guide{padding:0 0 34px}
.search{padding:26px 0}
.info{padding:36px 0}
.prod{padding:38px 0 42px}
.pc .ph{height:96px}
.pc .bd{padding:11px 13px 13px}
.pc .bd .e{display:none}
.pc .bd h3{font-size:15px;margin:0 0 6px}
.pc .bd h3 span{font-size:11px}
.pc .spec{font-size:11px;padding-top:8px;margin-top:auto}
.newbiz{padding:34px 0}
.nb-ph img{max-height:280px;object-fit:cover}
.nb-in{align-items:center}
.nb h2{font-size:26px}
.nb-spec div{padding:9px 8px}
.cta{padding:34px 0}
.cta h2{font-size:25px}
.ft{padding:32px 0 0}
.ft-in{padding-bottom:26px}
.sec-h{margin-bottom:18px}
.sec-h .d{margin-top:6px}
/* --- compact pass 3 --- */
.gcard .ph{height:88px}
.search-tags{margin-top:12px}
.newbiz{padding:30px 0}
.nb-ph{max-height:250px;overflow:hidden}
.nb-ph img{height:250px;object-fit:cover}
.nb p{font-size:13.5px;line-height:1.9}
.nb-spec{margin:16px 0}
.nb-btn{margin-top:4px}
.cta{padding:30px 0}
.cta-btns{margin:18px 0 14px}
.cta p{font-size:13.5px}
.ft{padding:28px 0 0;font-size:12px}
.ft-in{padding-bottom:22px;gap:30px}
.ft a{line-height:1.9}
.cert{padding:22px 0}
.info{padding:32px 0}
.prod{padding:32px 0 36px}
/* --- compact pass 4：取扱製品を横型の一覧タイルに --- */
.pc{flex-direction:row;align-items:stretch}
.pc .ph{height:auto;width:94px;flex:0 0 94px}
.pc .ph img{height:100%;width:100%;object-fit:cover}
.pc .bd{padding:12px 14px;justify-content:center}
.pc .bd h3{font-size:14.5px;margin:0 0 4px}
.pc .spec{margin-top:0;padding-top:6px;border-top:0;font-size:10.5px;line-height:1.6}
.gcard .bd{padding:11px 14px 12px}
.gcard .arw{margin-top:8px;padding-top:8px}
.guide{padding:0 0 30px}
/* --- compact pass 5：MVのコピーが受付バーに潜り込むのを防ぐ --- */
.mv-copy{align-items:flex-start;padding-top:clamp(30px,4vw,52px)}
.mv-lead{margin-bottom:14px}
.mv-h1{font-size:clamp(26px,3.2vw,40px);line-height:1.55}
.mv-h1 .sm{margin-top:12px}
.mv-sub{margin-top:16px;line-height:1.85;font-size:13px}
/* --- compact pass 6：モバイルも「長いLP」にしない --- */
@media(max-width:760px){
  .mv-img{height:300px}
  .mv-copy{padding-top:22px}
  .mv-lead{margin-bottom:10px;font-size:10.5px}
  .mv-h1{font-size:22px;line-height:1.55}
  .mv-h1 .sm{font-size:.62em;margin-top:9px}
  .mv-sub{display:none}
  .gb{padding:13px 18px}
  .gb .tel{font-size:27px}
  .gb .note{font-size:11.5px;line-height:1.75}
  .gcard{flex-direction:row;align-items:stretch}
  .gcard .ph{width:96px;flex:0 0 96px;height:auto}
  .gcard .ph img{height:100%;width:100%;object-fit:cover}
  .gcard .bd{padding:12px 14px;justify-content:center}
  .gcard .bd h3{font-size:14.5px}
  .gcard .bd h3 br{display:none}
  .gcard .bd>p:not(.num):not(.arw){font-size:11.5px;margin-top:4px}
  .gcard .arw{margin-top:7px;padding-top:7px;font-size:11.5px}
  .guide-h{padding:20px 0 11px}
  .pc .ph{width:82px;flex:0 0 82px}
  .nb-ph{max-height:180px}
  .nb-ph img{height:180px}
  .newbiz,.cta,.prod,.info{padding-block:26px}
}
@media(max-width:1000px){.pgrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.pgrid{grid-template-columns:1fr}}

/* ==================================================================
   下層ページ共通コンポーネント（v1デザイントークン準拠）
   ================================================================== */

/* ---- ページヘッダー（page-hero） ---- */
.page-hero{background:var(--sumi);color:#EDE6D9;padding:64px 0 54px;position:relative}
.page-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(217,190,142,.5),transparent)}
.page-hero-eyebrow{font-family:var(--latin);font-size:11.5px;letter-spacing:.28em;color:#C9A978}
.page-hero-title{font-family:var(--mincho);font-weight:600;font-size:clamp(26px,3.2vw,38px);
  letter-spacing:.1em;line-height:1.6;margin:14px 0 16px;color:#FAF5EA}
.page-hero-lead{font-size:13.5px;line-height:2;color:#C8C0B2;max-width:760px}

/* ---- パンくず ---- */
.crumbs{padding:16px 0}
.crumbs-list{list-style:none;display:flex;flex-wrap:wrap;gap:8px;font-size:12px;
  letter-spacing:.04em;color:var(--sumi3)}
.crumbs-list li:not(:last-child)::after{content:"›";margin-left:8px;color:var(--rule2)}
.crumbs-list a{color:var(--sumi2)}
.crumbs-list a:hover{color:var(--ame)}
.crumbs-list li[aria-current="page"]{color:var(--kicha)}

/* ---- セクション見出し（下層ページ用） ---- */
.section-head{margin-bottom:32px;max-width:760px}
.section-eyebrow{font-family:var(--latin);font-size:11.5px;letter-spacing:.26em;color:var(--ame)}
.section-title{font-family:var(--mincho);font-size:clamp(22px,2.5vw,29px);letter-spacing:.1em;
  line-height:1.6;margin:10px 0 14px;font-weight:600;color:var(--sumi)}
.section-lead{font-size:13.5px;line-height:2;color:var(--sumi2)}

/* ---- 汎用セクションラッパー（padding/背景） ---- */
.pillars-sec{padding:64px 0}
.pillars-sec.bg-soft{background:var(--paper2)}
.pillars-sec.rv .wrap,.pillars-sec .wrap{max-width:var(--wide);margin-inline:auto;padding-inline:32px}
.wrap{max-width:var(--wide);margin-inline:auto;padding-inline:32px}
.pad-sec{padding:64px 0}
.bg-soft{background:var(--paper2)}
.bg-paper{background:var(--paper)}
.mt-lg{margin-top:28px}
.txt-center{text-align:center}
.mx-auto-880{max-width:880px;margin-inline:auto}

/* ---- pillars-grid / pillar-card ---- */
.pillars-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule);
  border:1px solid var(--rule)}
.pillar-card{background:#fff;padding:26px 22px 24px}
.pillar-num{font-family:var(--latin);font-size:12px;color:var(--ame);letter-spacing:.2em}
.pillar-jp{font-family:var(--mincho);font-size:17px;letter-spacing:.08em;margin:8px 0 4px;
  font-weight:600;color:var(--sumi)}
.pillar-en{display:block;font-family:var(--latin);font-size:10px;letter-spacing:.18em;color:var(--sumi3)}
.pillar-desc{font-size:12.5px;line-height:1.9;color:var(--sumi2);margin-top:10px}

/* ---- company-table ---- */
.company-table{border:1px solid var(--rule);background:#fff}
.company-table table{width:100%;border-collapse:collapse}
.company-table tr{border-bottom:1px solid var(--rule)}
.company-table tr:last-child{border-bottom:0}
.company-table th{text-align:left;font-family:var(--mincho);font-weight:600;font-size:13.5px;
  letter-spacing:.06em;color:var(--kicha);background:var(--paper2);padding:14px 20px;
  width:220px;vertical-align:top;white-space:nowrap}
.company-table td{padding:14px 20px;font-size:13px;line-height:1.9;color:var(--sumi2)}
@media(max-width:700px){
  .company-table tr{display:flex;flex-direction:column}
  .company-table th{width:auto;white-space:normal;padding:12px 16px 6px}
  .company-table td{padding:0 16px 14px}
}

/* ---- people-grid / person-card ---- */
.people-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.person-card{border:1px solid var(--rule);background:#fff;padding:26px 24px}
.person-role{font-family:var(--latin);font-size:11px;letter-spacing:.2em;color:var(--ame)}
.person-name{font-family:var(--mincho);font-size:17px;letter-spacing:.06em;margin:8px 0 10px;
  font-weight:600;color:var(--sumi);line-height:1.5}
.person-spec{font-size:12.5px;line-height:1.9;color:var(--sumi2)}

/* ---- timeline / tl-item ---- */
.timeline{border-top:1px solid var(--rule)}
.tl-item{display:grid;grid-template-columns:200px 1fr;gap:24px;padding:26px 0;
  border-bottom:1px solid var(--rule)}
.tl-item > div:first-child{display:flex;flex-direction:column;gap:4px}
.tl-year{font-family:var(--mincho);font-size:22px;font-weight:600;color:var(--kicha);letter-spacing:.04em}
.tl-year-jp{font-size:11.5px;color:var(--sumi3);letter-spacing:.08em}
.tl-title{font-family:var(--mincho);font-size:16px;letter-spacing:.06em;font-weight:600;
  margin-bottom:8px;color:var(--sumi)}
.tl-body{font-size:13px;line-height:1.95;color:var(--sumi2)}
@media(max-width:700px){.tl-item{grid-template-columns:1fr}}

/* ---- stats-grid / stat-card ---- */
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--rule)}
.stat-card{padding:24px 20px;text-align:center;border-left:1px solid var(--rule)}
.stat-card:first-child{border-left:0}
.stat-num{font-family:var(--mincho);font-size:30px;color:var(--kicha);font-weight:600}
.stat-label{font-size:12px;color:var(--sumi2);margin-top:6px;letter-spacing:.06em}

/* ---- CTA（下層ページ用） ---- */
.contact-sec{padding:70px 0;text-align:center;border-top:1px solid var(--rule)}
.hero-cta-row{display:flex;gap:16px;justify-content:center;margin-top:28px;flex-wrap:wrap}
.hbtn{display:inline-flex;align-items:center;justify-content:center;min-width:230px;height:56px;
  font-family:var(--mincho);font-size:15px;letter-spacing:.12em;font-weight:600;border:1px solid var(--kicha)}
.hbtn-main{background:var(--kicha);color:#F7F1E6}
.hbtn-main:hover{background:#4a3b2d}
.hbtn-sub{color:var(--kicha);background:#fff}
.hbtn-sub:hover{background:var(--paper3)}

/* ---- 求人カード（recruit用） ---- */
.job-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.job-card{border:1px solid var(--rule);background:#fff;padding:26px 24px}
.job-card h3{font-family:var(--mincho);font-size:18px;letter-spacing:.06em;font-weight:600;
  color:var(--sumi);margin-bottom:10px}
.job-card p{font-size:13px;line-height:1.9;color:var(--sumi2);margin-bottom:6px}

/* ---- photo-feature（現場写真：単体・大） ---- */
.photo-feature{border:1px solid var(--rule);background:#fff;display:grid;
  grid-template-columns:1.3fr 1fr;align-items:stretch}
.photo-feature.rev{grid-template-columns:1fr 1.3fr}
.photo-feature.rev .pf-ph{order:2}
.photo-feature.rev .pf-cap{order:1}
.pf-ph{aspect-ratio:4/3;overflow:hidden;background:var(--paper3)}
.pf-ph img{width:100%;height:100%;object-fit:cover;filter:saturate(.84) contrast(1.02)}
.pf-cap{padding:34px 36px;display:flex;flex-direction:column;justify-content:center}
.pf-eyebrow{font-family:var(--latin);font-size:11px;letter-spacing:.2em;color:var(--ame)}
.pf-title{font-family:var(--mincho);font-size:18px;letter-spacing:.06em;font-weight:600;
  color:var(--sumi);margin:8px 0 12px;line-height:1.6}
.pf-desc{font-size:12.5px;line-height:1.95;color:var(--sumi2)}

/* ---- photo-duo（現場写真：2枚並び） ---- */
.photo-duo{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.pd-card{border:1px solid var(--rule);background:#fff}
.pd-ph{aspect-ratio:4/3;overflow:hidden;background:var(--paper3)}
.pd-ph img{width:100%;height:100%;object-fit:cover;filter:saturate(.84) contrast(1.02)}
.pd-cap{padding:16px 18px 19px}
.pd-cap .e{display:block;font-family:var(--latin);font-size:10px;letter-spacing:.18em;color:var(--ame)}
.pd-cap p{font-size:12.5px;line-height:1.8;color:var(--sumi2);margin-top:5px}

@media(max-width:980px){
  .pillars-grid{grid-template-columns:repeat(2,1fr)}
  .people-grid{grid-template-columns:1fr}
  .stats-grid{grid-template-columns:repeat(2,1fr)}
  .stat-card:nth-child(3){border-left:0}
  .stat-card{border-top:1px solid var(--rule)}
  .stat-card:nth-child(1),.stat-card:nth-child(2){border-top:0}
  .job-grid{grid-template-columns:1fr}
  .photo-feature,.photo-feature.rev{grid-template-columns:1fr}
  .photo-feature.rev .pf-ph{order:1}
  .photo-feature.rev .pf-cap{order:2}
  .pf-cap{padding:26px 24px}
}
@media(max-width:640px){
  .pillars-grid{grid-template-columns:1fr}
  .company-table th{width:auto}
  .photo-duo{grid-template-columns:1fr}
}
