*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#eff4fa;color:#0c1a2c;font-family:'Zen Kaku Gothic New',system-ui,sans-serif;-webkit-font-smoothing:antialiased;--ac:#1d6ce0;--hair:rgba(12,26,44,.18)}
a{color:inherit;text-decoration:none}
a:hover{color:var(--ac)}
::selection{background:var(--ac);color:#fff}

/* ---- responsive (cmd_1246) ----
   layout の inline style を上書きするため !important。hook は classify.py が足した class(w-wrap/g-*/h-*)。
   breakpoint 1024 / 768 / 480。JS は使わぬ。 */
img,video,canvas{max-width:100%}
.g-split>*,.g-c2>*,.g-c3>*,.g-c4>*,.g-c5>*,.g-dl>*,.g-mc>*,.g-row>*,.g-news>*{min-width:0}
@media (max-width:1024px){
  .w-wrap{padding-left:28px!important;padding-right:28px!important}
  .g-split{gap:40px!important}
}
@media (max-width:768px){
  .w-wrap{padding-left:20px!important;padding-right:20px!important}
  /* ヘッダー=折返し: 1段目 ロゴ+問合せ / 2段目 ナビ全幅 */
  .h-in{min-height:0!important;padding-top:8px!important;padding-bottom:8px!important;gap:4px 12px!important}
  .h-nav{order:3;flex:1 1 100%;justify-content:space-between;gap:4px!important;font-size:12px!important}
  .g-split{grid-template-columns:1fr!important;gap:28px!important}
  .g-c3,.g-c4,.g-c5{grid-template-columns:repeat(2,1fr)!important}
  .g-dl{grid-template-columns:110px 1fr!important;gap:0 16px!important}
  .g-row{grid-template-columns:44px 1fr!important;gap:10px 16px!important}
  .g-row>:nth-child(n+3){grid-column:2}
  .g-news{grid-template-columns:1fr!important;gap:6px!important}
  .g-mc{grid-template-columns:1fr!important;gap:10px!important}
}
@media (max-width:480px){
  .w-wrap{padding-left:16px!important;padding-right:16px!important}
  .h-nav{font-size:11.5px!important}
  .g-c2,.g-c3,.g-c4,.g-c5{grid-template-columns:1fr!important}
  .g-dl{grid-template-columns:1fr!important;gap:4px!important}
}
@media (max-width:768px){
  /* 枠線付きセルの格子(役員・拠点一覧・ナビ帯)=2列・cell の左右 padding/縦罫を均す */
  .g-bc{grid-template-columns:repeat(2,1fr)!important}
  .g-bc>*{padding:20px 12px!important;border-right:0!important}
  .g-bc>:nth-child(odd){padding-left:0!important;border-right:1px solid var(--hair)!important}
  .hero-img{height:380px!important}
  .hero-stats{right:0!important;bottom:-22px!important;padding:16px 18px!important;gap:18px!important}
  .hero-stats>*{white-space:nowrap}
  .hero-vtag{left:0!important}
}
@media (max-width:480px){
  .g-bc{grid-template-columns:repeat(2,1fr)!important}
  .h-logo{flex-direction:column;align-items:flex-start!important;gap:2px!important}
  .hero-stats{gap:14px!important;padding:14px!important}
}
/* ---- cmd_1246 r3: 軍師 UI QC 直し ---- */
@media (max-width:768px){
  /* M1 認証・許認可の行=本文+年(元 1fr 150px)。g-dl の 110px 1fr だと列が逆転する */
  .g-yr{grid-template-columns:1fr auto!important;gap:0 16px!important}
  /* S1 2列化で奇数の最終セルが空きを作り格子の灰地が出る所=最終セルを全幅に */
  .g-gf>:last-child:nth-child(odd){grid-column:1/-1}
}
@media (max-width:480px){
  .g-yr{grid-template-columns:1fr!important;gap:4px!important}
  /* S2 index 拠点一覧(JP/US/PH)=1列 */
  .g-bc1{grid-template-columns:1fr!important}
  .g-bc1>*,.g-bc1>:nth-child(odd){padding:20px 0!important;border-right:0!important;border-left:0!important}
  .g-bc1>:not(:last-child){border-bottom:1px solid var(--hair)}
  /* S3 見出し+英字副題=縦積み(見出し1字落ちを避ける) */
  .g-ttl{flex-direction:column;align-items:flex-start!important;gap:4px!important}
}

/* ---- cmd_1246 r5: スマホ UI/UX 再調整(768 未満のみ・1024 以上は不変) ---- */
.r5-nt{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.r5-bg{display:none}
@media (min-width:769px){.r5-nt{display:none}}
@media (max-width:768px){
  /* 2 ナビ: ロゴ+お問い合わせ+ハンバーガー / 開くと全幅 drawer(和のみ・48px 行) */
  .h-in{flex-wrap:nowrap!important;min-height:56px!important;padding-top:6px!important;padding-bottom:6px!important;gap:12px!important}
  .h-logo{margin-right:auto}
  .h-in>a[href="#contact"]{order:2;font-size:12.5px!important;padding:8px 0!important;gap:6px!important}
  .r5-bg{order:3;display:flex;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;margin-right:-10px;padding:0 10px;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .r5-bg i{display:block;height:2px;background:#0c1a2c;transition:transform .25s,opacity .2s}
  .r5-nt:checked~.r5-bg i:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .r5-nt:checked~.r5-bg i:nth-child(2){opacity:0}
  .r5-nt:checked~.r5-bg i:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .r5-nt:focus-visible~.r5-bg{outline:2px solid var(--ac);outline-offset:-2px}
  .h-nav{display:none!important}
  .r5-nt:checked~.h-nav{display:flex!important;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch!important;gap:0!important;padding:4px 20px 12px;background:#fbfaf7;border-bottom:1px solid var(--hair);box-shadow:0 14px 24px rgba(12,26,44,.1);font-size:15px!important;order:unset}
  .h-nav>a{flex-direction:row!important;align-items:center!important;justify-content:flex-start;min-height:48px;border-bottom:1px solid var(--hair)}
  .h-nav>a:last-child{border-bottom:0}
  .h-nav>a>span+span{display:none}
}
@media (max-width:480px){
  .h-in>a[href="#contact"]>span{display:none}
  .h-in>a[href="#contact"]{padding:8px 0!important}
}
@media (max-width:768px){
  /* 1 縦リズム: section 上下 40〜56px・ブロック間 24〜32px */
  .r5-pt{padding-top:48px!important}
  .r5-pb{padding-bottom:48px!important}
  .r5-mt{margin-top:40px!important}
  .g-split{gap:24px!important}
  /* 3 透かし大英字=画面幅に全語が入る大きさ+薄く */
  .r5-wm{font-size:11vw!important;letter-spacing:-.01em!important;opacity:.5;right:0!important}
  /* 4 見出し字組 */
  .r5-h1{font-size:31px!important;line-height:1.5!important;letter-spacing:.03em!important}
  .r5-h2{font-size:24px!important;line-height:1.55!important;letter-spacing:.03em!important}
  h1 br,h2 br,h3 br{display:none}
  /* 5 本文 */
  .r5-tx{font-size:14px!important;line-height:1.85!important}
  .r5-lb{font-size:11px!important;letter-spacing:.15em!important}
  /* 6 写真(縦位置)=高さ 62vw に収める */
  .r5-por{aspect-ratio:auto!important;height:58vw!important}
  .r5-por>img{object-position:50% 18%!important}
  /* 7a index 企業紹介 01〜05 = 1 列リスト(左に番号・右に名称+説明) */
  .r5-menu{grid-template-columns:1fr!important}
  .r5-menu>a{display:grid!important;grid-template-columns:34px 1fr;gap:2px 10px!important;align-items:baseline;padding:16px 0!important;border-right:0!important;border-left:0!important;border-bottom:1px solid var(--hair);min-height:44px}
  .r5-menu>a:last-child{border-bottom:0}
  .r5-menu>a>span:first-child{grid-row:1/3}
}
@media (max-width:768px){
  .r5-kb br{display:inline}
  h2.r5-kb,h3.r5-kb{font-size:clamp(19px,5.3vw,24px)!important;letter-spacing:.01em!important}
}
@media (max-width:768px){
  .r5-n1{font-size:38px!important}
  .r5-n2{font-size:26px!important}
  .r5-tx{line-height:1.8!important}
  /* フッター: 住所は全幅・リンク群は 2 列・リンクは 44px 行 */
  .r5-ft{grid-template-columns:1fr 1fr!important;gap:8px 16px!important}
  .r5-ft>:first-child{grid-column:1/-1}
  .r5-ft>div:not(:first-child){gap:0!important;align-content:start}
  .r5-ft>div:not(:first-child)>span{padding:8px 0}
  .r5-ft>div:not(:first-child)>a{display:flex;align-items:center;min-height:44px}
}
@media (max-width:768px){
  /* 8 24時間カバレッジ: 目盛 0/6/12/18/24・帯内の文字は帯の外(上)へ */
  .r5-scale{display:flex!important;justify-content:space-between}
  .r5-scale>:nth-child(even):not(:last-child){display:none}
  .r5-scale>:last-child{font-size:0}
  .r5-scale>:last-child::after{content:"24:00";font-size:10.5px}
  .r5-band{position:relative;margin-top:22px}
  .r5-bl{position:absolute!important;top:-20px;left:0;right:0;padding-left:0!important;text-shadow:none!important;font-size:11.5px!important;letter-spacing:.04em!important}
  /* 7c 拠点 card=詰める */
  .g-gf>*{padding:14px 16px!important}
  .g-gf>*>div:first-child{font-size:15px!important}
  .g-gf .r5-tx{font-size:12.5px!important;line-height:1.7!important;margin-top:4px!important}
  /* group 会社の行=番号|名称+タグ / 説明 */
  .g-row{grid-template-columns:28px 1fr auto!important;gap:2px 10px!important;padding:14px 0!important;align-items:start!important}
  .g-row>:nth-child(1){grid-column:1!important;grid-row:1/3}
  .g-row>:nth-child(2){grid-column:2!important;grid-row:1}
  .g-row>:nth-child(3){grid-column:2/4!important;grid-row:2}
  .g-row>:nth-child(4){grid-column:3!important;grid-row:1}
  /* 副頁フッター nav=3 列・44px */
  .r5-fnav{display:grid!important;grid-template-columns:repeat(3,auto);justify-content:space-between;gap:0 12px!important;width:100%}
  .r5-fnav>a{display:flex;align-items:center;min-height:44px}
}
@media (max-width:768px){
  .r5-wm{font-size:10vw!important}
  .r5-cd{padding:18px 16px!important}
  .r5-rw{padding-top:16px!important;padding-bottom:16px!important}
  .r5-tl{padding:0 0 16px 22px!important}
  .r5-m1{margin-top:20px!important}
  .r5-m2{margin-top:28px!important}
  /* 縦書きの飾り=横書きにして空洞を作らぬ */
  .r5-vt{writing-mode:horizontal-tb!important;letter-spacing:.3em!important;font-size:16px!important;padding:2px 0 2px 14px!important}
}
@media (max-width:768px){
  .r5-chip{display:inline-flex!important;align-items:center;min-height:44px;padding-top:0!important;padding-bottom:0!important}
  .r5-chip,.r5-chip~*{}
  .r5-bd{grid-template-columns:repeat(3,1fr)!important}
  .r5-bd>*{padding:14px 12px!important;border-right:0!important;border-left:0!important;border-bottom:1px solid var(--hair)!important}
  .r5-bd>:last-child:nth-child(3n+1){grid-column:1/-1}
}
@media (max-width:480px){
  .r5-bd{grid-template-columns:1fr!important}
  .r5-bd>*{display:grid!important;grid-template-columns:96px 1fr;gap:2px 10px;align-items:baseline;padding:12px 0!important}
  .r5-bd>*>div:nth-child(1){grid-row:1/3}
  .r5-bd>*>div:nth-child(2){margin-top:0!important;font-size:19px!important}
  .r5-bd>*>div:nth-child(3){margin-top:0!important}
}
@media (max-width:768px){
  /* 9 tap 目標 44px 以上 */
  .r5-tap{min-height:44px;align-items:center}
  .r5-tapi{display:inline-flex}
  .h-logo{min-height:44px;align-items:center!important}
  button{min-height:44px}
  h1,h2,h3{text-wrap:balance}
}
@media (max-width:768px){.r5-ph{aspect-ratio:16/9!important}}
@media (max-width:768px){
  .h-logo{flex-direction:column;align-items:flex-start!important;gap:2px!important}
}
@media (max-width:360px){
  .h-in{gap:8px!important}
  .h-logo>span:first-child{font-size:16px!important;letter-spacing:.03em!important}
  .h-in>a[href="#contact"]{font-size:12px!important}
}

/* ---- cmd_1246 r5b: 見出しの語中折れ・hero 上の SINCE 1994 孤立(768 以下のみ・文言不変) ---- */
.r5b-nw{white-space:nowrap}
@media (max-width:768px){
  .r5b-kk{word-break:keep-all;overflow-wrap:break-word}
}
@media (max-width:480px){
  .r5b-hl{gap:10px!important;font-size:10.5px!important;letter-spacing:.12em!important}
  .r5b-hr{width:24px!important;flex:none}
}

/* ---- cmd_1246 r5c: 軍師 UI QC SHOULD(768 以下のみ・PC 不変) ---- */
@media (max-width:768px){
  /* S1 1列化した一覧(index 01〜05・company 役員)で奇数行だけ残る右罫を消す */
  .r5-menu>a:nth-child(odd),.r5-bd>:nth-child(odd){border-right:0!important}
  /* S2 index 再掲の役員紹介=company と同じ1列(役職|氏名) */
  .g-c4.g-bc,.g-c5.g-bc:not(.r5-menu){grid-template-columns:1fr!important}
  .g-c4.g-bc>*,.g-c5.g-bc:not(.r5-menu)>*{display:grid;grid-template-columns:96px 1fr;gap:0 10px;align-items:baseline;padding:12px 0!important;border-right:0!important;border-left:0!important}
  .g-c4.g-bc>*>div:nth-child(2),.g-c5.g-bc:not(.r5-menu)>*>div:nth-child(2){margin-top:0!important;font-size:19px!important}
  /* S3 company card 群上の灰帯(padding-top:56px に罫の背景色が乗る) */
  .g-gf{padding-top:0!important}
  /* S4 グループ会社名で小書き仮名(ョ 等)が行頭に来ぬ様に */
  .g-row>:nth-child(2)>div:first-child{line-break:strict}
}

/* ---- cmd_1246 r5d: 代表メッセージ2つを「写真→本文」の順に(768 以下のみ・PC 不変) ---- */
@media (max-width:768px){
  /* 社長ブロックは html 上 本文→写真。写真の箱を先頭へ(会長ブロックは元から写真が先=order 0 のまま) */
  .g-split>div:has(>.r5-por):last-child{order:-1}
}

/* ---- cmd_1246 r5e: .g-split は 768 以下で「見出し→テキスト→写真」に統一(代表メッセージ .r5-por は写真先のまま・PC 不変) ---- */
@media (max-width:768px){
  /* html 上 写真の箱(.r5-ph)が先頭の block(business 02)は写真を末尾へ。01/03 は元から 本文→写真 */
  .g-split>.r5-ph:first-child{order:1}
}
/* cmd_1248: footer 規約3リンク(.r5-pol)はスマホ幅で縦1列 */
@media (max-width:768px){.r5-fnav.r5-pol{grid-template-columns:1fr!important;justify-content:start!important}}

/* 言語切替(English・テキストのみ)・2026-10-26 */
.h-lang{display:inline-flex;align-items:center;flex:none;white-space:nowrap;font-family:'Schibsted Grotesk',sans-serif;font-size:13px;font-weight:500;letter-spacing:.06em;color:#0c1a2c;text-decoration:none;padding:4px 0;border-bottom:1.5px solid transparent;transition:color .2s,border-color .2s}
.h-lang:hover{color:var(--ac);border-bottom-color:var(--ac)}
@media (max-width:768px){.h-lang{order:1;font-size:12px;margin-left:auto;padding:4px 2px}}

/* 2026-10-26: mobile 並び順(お問い合わせ=./contact.html にも適用) */
@media (max-width:768px){.h-in>a[href="./contact.html"]{order:2;font-size:12.5px!important;padding:8px 0!important;gap:6px!important}.h-lang{order:1;margin-left:auto;margin-right:4px}}
@media (max-width:360px){.h-lang{display:none}}

/* 2026-10-26: スマホ幅は English をメニュー内へ(header 行は非表示) */
.h-lang-nav{display:none!important}
@media (max-width:768px){.h-lang{display:none!important}.h-lang-nav{display:flex!important}}
