/* 企業情報 — loaded after top-v2 / top-v3 / cases.css */
.cph{position:relative;padding:150px 0 0;overflow:hidden}
.cph .bgtx{position:absolute;right:-2vw;top:90px;font-family:var(--ff-d);font-weight:800;font-stretch:125%;font-size:clamp(120px,19vw,340px);line-height:.8;letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.07);text-transform:uppercase;pointer-events:none;white-space:nowrap}
.cph-top{display:grid;grid-template-columns:1.2fr 1fr;gap:60px;align-items:end;margin-top:44px;position:relative}
.cph-top .disp{font-size:clamp(64px,9vw,150px);color:#fff;margin-top:20px}
.cph-top h1{font-size:clamp(22px,2vw,30px);color:#fff;margin-top:20px}
.cph-top h1 small{display:block;font-size:13px;color:var(--mut);font-family:var(--ff);font-weight:500;margin-top:6px}
.cph-top .lead{color:#b9c2be;font-size:15px;line-height:2.05;max-width:520px}
.cph-nav{display:flex;gap:6px;flex-wrap:wrap;margin-top:48px;padding:6px;border:1px solid var(--line);border-radius:999px;width:max-content;max-width:100%;background:var(--ink2)}
.cph-nav a{font-size:13px;font-weight:700;color:var(--mut);padding:9px 18px;border-radius:999px;transition:.2s;white-space:nowrap}
.cph-nav a:hover{color:#fff;background:var(--ink3)}
.cph-vis{margin-top:56px;border-radius:28px;overflow:hidden;position:relative;height:min(560px,48vw)}
.cph-vis img{width:100%;height:100%;object-fit:cover}
.cph-vis::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(10,13,12,.6))}
.cph-vis .cap{position:absolute;left:28px;bottom:24px;z-index:1;font-size:12px;color:#d6dcd9;display:flex;gap:10px;align-items:center}
.cph-vis .cap::before{content:"";width:24px;height:1px;background:var(--amb)}

/* numbers band */
.nb{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.nb > div{padding:44px 28px 40px;border-right:1px solid var(--line)}
.nb > div:last-child{border-right:0}
.nb .k{font-size:12.5px;color:var(--mut)}
.nb .v{font-family:var(--ff-d);font-weight:800;font-stretch:110%;font-size:clamp(52px,5.4vw,88px);line-height:1;color:#fff;margin-top:18px;letter-spacing:-.03em}
.nb .v small{font-family:var(--ff-h);font-size:17px;color:var(--amb);margin-left:6px;letter-spacing:0}
.nb .s{font-size:12.5px;color:var(--mut);margin-top:12px}
.nb .v.y{color:var(--amb)}

/* message */
.msg2 .w{display:grid;grid-template-columns:.85fr 1.15fr;gap:88px;align-items:start}
.msg2 .pt{position:sticky;top:110px}
.msg2 .pt .ph{aspect-ratio:4/5;border-radius:24px;font-size:12px}
.msg2 .pt .nm{margin-top:22px;display:flex;justify-content:space-between;align-items:flex-end;border-top:1px solid var(--line-d);padding-top:18px}
.msg2 .pt .nm span{font-size:12px;color:var(--mut-d)}
.msg2 .pt .nm b{display:block;font-family:var(--ff-h);font-size:22px;margin-top:4px}
.msg2 .pt .nm em{font-family:var(--ff-d);font-style:normal;font-weight:600;font-size:12px;letter-spacing:.2em;color:var(--mut-d)}
.msg2 h2.q{font-size:clamp(30px,3.4vw,52px);line-height:1.45;margin:24px 0 44px}
.msg2 h2.q em{font-style:normal;background:linear-gradient(transparent 64%,rgba(245,179,1,.55) 64%)}
.msg2 .tx p{font-size:16px;line-height:2.15;color:#2d3531;margin-top:26px;max-width:640px}
.msg2 .sig{margin-top:44px;font-family:var(--ff-h);font-size:15px;color:var(--mut-d)}
.msg2 .sig b{font-size:22px;color:var(--ink);margin-left:12px}
.draft{display:inline-block;font-size:11px;font-weight:700;color:#b54708;background:#fff4e5;border:1px solid #f5c58a;border-radius:6px;padding:2px 8px;margin-left:10px;vertical-align:middle;font-family:var(--ff)}

/* mission */
.mv{position:relative;overflow:hidden}
.mv-big{font-family:var(--ff-h);font-weight:900;font-size:clamp(34px,4.6vw,72px);line-height:1.35;color:#fff;margin:28px 0 72px;max-width:1100px}
.mv-big em{font-style:normal;color:var(--amb)}
.vl{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:24px;overflow:hidden}
.vl > div{background:var(--ink);padding:38px 34px 34px;position:relative}
.vl .n{font-family:var(--ff-d);font-weight:800;font-size:13px;letter-spacing:.2em;color:var(--amb)}
.vl h3{font-size:24px;color:#fff;margin:14px 0 12px}
.vl h3 small{display:block;font-family:var(--ff-d);font-size:11px;letter-spacing:.22em;color:var(--mut);font-weight:600;text-transform:uppercase;margin-bottom:4px}
.vl p{font-size:14px;color:#b9c2be;line-height:1.95}

/* organization */
.org{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:56px}
.og{background:#fff;border:1px solid var(--line-d);border-radius:22px;padding:28px 26px;display:flex;flex-direction:column;transition:.4s var(--ease)}
.og:hover{transform:translateY(-4px);box-shadow:0 24px 48px -28px rgba(0,0,0,.25)}
.og .top{display:flex;justify-content:space-between;align-items:flex-start}
.og img,.og .av{width:68px;height:68px;border-radius:50%;object-fit:cover;background:var(--paper);border:1px solid var(--line-d);font-size:9px}
.og .n{font-family:var(--ff-d);font-weight:800;font-size:40px;line-height:1;color:var(--paper)}
.og .dv{font-size:11.5px;color:var(--mut-d);margin-top:22px;flex:0 0 auto}
.og h3{font-size:19px;margin:2px 0 12px}
.og p{font-size:13.5px;color:var(--mut-d);line-height:1.9;flex:1}
.og ul{margin-top:18px;border-top:1px solid var(--line-d);padding-top:12px;display:flex;flex-wrap:wrap;gap:6px}
.og li{font-size:11.5px;font-weight:700;background:var(--paper);border-radius:6px;padding:3px 10px}
.org-flow{display:flex;align-items:center;gap:14px;margin-top:22px;font-size:13px;color:var(--mut-d);flex-wrap:wrap}
.org-flow b{color:var(--ink);font-weight:700}
.org-flow i{flex:1;min-width:24px;height:1px;background:var(--line-d)}

/* history */
.hs .w{display:grid;grid-template-columns:.8fr 1.6fr;gap:80px;align-items:start}
.hs .stk{position:sticky;top:110px}
.hs .yr{font-family:var(--ff-d);font-weight:800;font-stretch:120%;font-size:clamp(90px,11vw,180px);line-height:.8;letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.35);margin-top:40px}
.hs .yr span{display:block;font-size:12px;letter-spacing:.24em;-webkit-text-stroke:0;color:var(--mut);font-weight:600;margin-bottom:16px}
.tl2{position:relative}
.tl2::before{content:"";position:absolute;left:118px;top:8px;bottom:8px;width:1px;background:var(--line)}
.tl2 li{display:grid;grid-template-columns:118px 1fr;gap:40px;padding:26px 0;position:relative}
.tl2 li::before{content:"";position:absolute;left:113px;top:34px;width:11px;height:11px;border-radius:50%;background:var(--ink);border:2px solid #4a524f}
.tl2 li.k::before{background:var(--amb);border-color:var(--amb);box-shadow:0 0 0 6px rgba(245,179,1,.15)}
.tl2 time{font-family:var(--ff-d);font-weight:800;font-size:26px;color:#fff;line-height:1.2}
.tl2 time small{display:block;font-size:11px;color:var(--mut);font-weight:600;letter-spacing:.1em}
.tl2 li.k time{color:var(--amb)}
.tl2 h3{font-size:17px;color:#fff}
.tl2 p{font-size:13.5px;color:#b9c2be;margin-top:6px}

/* profile table */
.pf .w{display:grid;grid-template-columns:.8fr 1.6fr;gap:80px;align-items:start}
.pf table{width:100%;border-collapse:collapse}
.pf th,.pf td{padding:24px 0;border-top:1px solid var(--line-d);text-align:left;vertical-align:top;font-size:15px}
.pf tr:last-child th,.pf tr:last-child td{border-bottom:1px solid var(--line-d)}
.pf th{width:180px;font-family:var(--ff-h);font-weight:700;color:var(--mut-d);font-size:14px}
.pf td{line-height:1.9}
.pf td a{text-decoration:underline;text-decoration-color:#c9c9c2;text-underline-offset:4px}
.pf td a:hover{color:var(--grn)}
.pf td .pnote{display:block;font-size:13px;color:var(--mut-d)}
.pf td .tel{font-family:var(--ff-d);font-weight:700;font-size:20px}
.pf td ul li{padding-left:16px;position:relative}
.pf td ul li::before{content:"";position:absolute;left:0;top:.85em;width:6px;height:6px;border-radius:50%;background:var(--amb)}

/* certifications */
.cert2{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:56px}
.ct{border:1px solid var(--line);border-radius:22px;padding:28px;display:flex;flex-direction:column;gap:18px;background:var(--ink2)}
.ct .ic{width:60px;height:60px;border-radius:50%;background:var(--amb);color:var(--ink);display:grid;place-items:center;font-family:var(--ff-d);font-weight:800;font-size:12px}
.ct .ic.wh{background:#fff}.ct .ic img{width:38px}
.ct .lb{font-size:11.5px;color:var(--mut)}
.ct h3{font-size:16.5px;color:#fff;line-height:1.55}
.ct p{font-size:12.5px;color:var(--mut);margin-top:auto}

/* access */
.acs-g{display:grid;grid-template-columns:1.3fr 1fr;gap:0;border:1px solid var(--line);border-radius:28px;overflow:hidden;margin-top:56px}
.acs-map{min-height:460px;font-size:12px;border:0!important;border-radius:0}
.acs-tx{padding:44px;background:var(--ink2);display:flex;flex-direction:column}
.acs-tx h3{font-size:22px;color:#fff}
.acs-tx address{font-style:normal;color:#cfd5d2;margin-top:14px;line-height:1.9}
.acs-tx dl{margin-top:28px;display:grid;grid-template-columns:80px 1fr;border-top:1px solid var(--line)}
.acs-tx dt,.acs-tx dd{padding:14px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.acs-tx dt{color:var(--mut)}
.acs-tx dd{color:#e4e8e5}
.acs-tx .bts{display:flex;gap:10px;margin-top:auto;padding-top:28px;flex-wrap:wrap}

/* links */
.lk3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.lk3 a{position:relative;border-radius:22px;overflow:hidden;min-height:280px;display:flex;flex-direction:column;justify-content:flex-end;padding:28px}
.lk3 img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.5);transition:1s var(--ease)}
.lk3 a:hover img{transform:scale(1.06);filter:brightness(.65)}
.lk3 .in{position:relative}
.lk3 .en{font-family:var(--ff-d);font-weight:700;font-size:11px;letter-spacing:.22em;color:var(--amb)}
.lk3 h3{font-size:22px;color:#fff;margin-top:6px}
.lk3 p{font-size:13px;color:#cfd5d2;margin-top:6px}
.lk3 .go{position:absolute;right:24px;top:24px;width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.12);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.3);display:grid;place-items:center;font-family:var(--ff-d);color:#fff;transition:.3s}
.lk3 a:hover .go{background:var(--amb);color:var(--ink);border-color:var(--amb)}

@media (max-width:1180px){
  .cph-top,.msg2 .w,.hs .w,.pf .w,.acs-g{grid-template-columns:1fr;gap:44px}
  .msg2 .pt,.hs .stk{position:static}
  .msg2 .pt .ph{aspect-ratio:16/10}
  .nb{grid-template-columns:1fr 1fr}.nb > div:nth-child(2){border-right:0}.nb > div:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .org,.cert2{grid-template-columns:1fr 1fr}
}
@media (max-width:720px){
  .cph{padding-top:110px}
  .cph-nav{border-radius:18px}
  .vl,.org,.cert2,.lk3{grid-template-columns:1fr}
  .nb .v{font-size:44px}
  .tl2::before{left:70px}.tl2 li{grid-template-columns:70px 1fr;gap:28px}.tl2 li::before{left:65px}
  .tl2 time{font-size:20px}
  .pf th,.pf td{display:block;width:auto;padding:12px 0}.pf td{border-top:0;padding-top:0}
  .pf tr:last-child th{border-bottom:0}
  .acs-tx{padding:28px}.acs-map{min-height:280px}
}

/* ===== WordPress実装での追加 ===== */
.pg-company section[id]{scroll-margin-top:96px}
.msg2 .pt .ph{overflow:hidden;background:var(--ink3)}
.msg2 .pt .ph img{width:100%;height:100%;object-fit:cover}
.og .av.ic{display:grid;place-items:center;background:var(--amb);border-color:var(--amb);color:var(--ink);font-family:var(--ff-h);font-weight:900;font-size:22px}
/* 会社概要（ダーク面） */
.pf-d th,.pf-d td{border-color:var(--line)}
.pf-d tr:last-child th,.pf-d tr:last-child td{border-color:var(--line)}
.pf-d th{color:var(--mut)}
.pf-d td{color:#e4e8e5}
.pf-d td .pnote{color:var(--mut)}
.pf-d td a{text-decoration-color:rgba(255,255,255,.3)}
.pf-d td a:hover{color:var(--amb)}
/* 許認可（ライト面・2枚） */
.cert2.c2{grid-template-columns:1fr 1fr}
.light .ct{background:#fff;border-color:var(--line-d)}
.light .ct h3{color:var(--ink)}
.light .ct .lb{color:var(--mut-d)}
.light .ct .ic.wh{border:1px solid var(--line-d)}
/* 地図 */
.acs-map{position:relative;background:var(--ink3)}
.acs-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:invert(.9) hue-rotate(180deg) saturate(.6) brightness(.95)}
@media (max-width:720px){ .cert2.c2{grid-template-columns:1fr} .acs-map{min-height:300px} }
@media (prefers-reduced-motion:reduce){ .og,.lk3 img{transition:none} .og:hover{transform:none} .lk3 a:hover img{transform:none} }
.pg-company .mv-big{font-size:clamp(30px,4.2vw,64px)}
.pg-company .mv-big .sp-br{display:none}
@media (max-width:720px){ .pg-company .mv-big .sp-br{display:inline} }
