/* ============================================================
   C16 — responsive（1024 / 768 / 375）
   ============================================================ */

@media (max-width:1180px){
  .hero__photos{ width:100%; }
  .hero__photo-main{ width:100%; }
  .hero__photo-sub{ left:-40px; width:150px; }
  .zig__inner{ grid-template-columns:1fr 1fr; gap:40px; }
  .zig__figure,
  .zig__photo{ width:100%; }
  .zig__macro{ width:140px; height:140px; }
}

/* ---------- タブレット ------------------------------------ */
@media (max-width:1024px){
  :root{
    --pad-top:72px;
    --pad-bottom:96px;
    --gap-head:36px;
  }

  .hero{ max-height:none; grid-template-rows:auto auto; }
  .hero__msg{ grid-template-columns:1fr; gap:40px; padding-block:40px 0; }
  .hero__photos{ justify-self:start; max-width:520px; }
  .hero__plate-zone{ padding-block:48px 40px; }
  .plate__grid{ grid-template-columns:repeat(4,1fr); grid-template-rows:repeat(4,132px); }
  .cell:nth-child(8n){ border-right:1px solid var(--line); }
  .cell:nth-child(4n){ border-right:0; }
  .cell:nth-child(n+9){ border-bottom:1px solid var(--line); }
  .cell:nth-child(n+13){ border-bottom:0; }

  .about__top{ grid-template-columns:1fr; gap:56px; }
  .about__body{ column-count:1; column-rule:none; margin-top:56px; }

  .zig{ height:auto; }
  .zig__panel{ position:relative; width:100%; inset:auto; padding-block:48px; }
  .zig__inner{ grid-template-columns:1fr; gap:32px; padding-block:0; }
  .zig--alt .zig__inner{ grid-template-columns:1fr; }
  .zig--alt .zig__figure{ order:0; }
  .zig__macro{ right:-16px; bottom:-16px; width:120px; height:120px; }
  .zig--alt .zig__macro{ left:auto; right:-16px; }

  .str__grid{ grid-template-columns:1fr 1fr; gap:28px; }

  .group__chart{ grid-template-columns:1fr; gap:32px; }
  .grp__root{ width:180px; }
  .grp__branches{ padding-left:32px; }
  .grp__row{ grid-template-columns:1fr; gap:12px; }
  .grp__row::before{ left:-32px; width:32px; }

  .cmp__body{ grid-template-columns:1fr; gap:32px; }
  .contact__in{ grid-template-columns:1fr; gap:40px; padding-block:64px; }
  .contact__l{ padding-right:0; }
  .contact__l::after{ display:none; }

  .ft__main{ grid-template-columns:1fr; gap:40px; }
}

/* ---------- モバイル -------------------------------------- */
@media (max-width:768px){
  :root{
    --pad-top:56px;
    --pad-bottom:80px;
    --edge:20px;
    --header-h:64px;
  }

  body{ font-size:var(--fs-17); }

  /* ヘッダーはロゴ + CONTACT のみ（ナビはフッターのサイトマップで担保） */
  .nav__link{ display:none; }
  .btn-outline{ height:44px; padding-inline:18px; font-size:var(--fs-12); }

  .hero__kicker{ font-size:var(--fs-12); margin-bottom:20px; }
  .hero__ttl{ font-size:clamp(28px,7.4vw,40px); }
  .hero__sub{ font-size:var(--fs-17); margin-top:20px; }
  .hero__photos{ max-width:100%; padding-bottom:40px; }
  .hero__photo-sub{ left:auto; right:16px; bottom:-16px; width:120px; }
  /* 副写真が右下にせり出すので、キャプションは左に逃がす */
  .hero__cap{ font-size:var(--fs-12); text-align:left; max-width:52%; }

  .plate__grid{ grid-template-columns:repeat(2,1fr); grid-template-rows:repeat(8,84px); }
  .cell:nth-child(4n){ border-right:1px solid var(--line); }
  .cell:nth-child(2n){ border-right:0; }
  .cell:nth-child(n+13){ border-bottom:1px solid var(--line); }
  .cell:nth-child(n+15){ border-bottom:0; }
  .cell{ padding:10px; }
  .cell__name{ font-size:var(--fs-12); }
  .cell__tag{ display:none; }

  .h-ja{ font-size:var(--fs-26); }
  .h-ja--sm{ font-size:var(--fs-21); }
  .sec-head{ gap:14px; }
  .sec-head__en{ font-size:var(--fs-12); }
  .sec-head__ja{ font-size:var(--fs-12); }

  .red__row{ grid-template-columns:64px 1fr; gap:14px; }
  .red__num{ font-size:var(--fs-48); }
  .red__connector{ margin-left:calc(64px + 14px + 8px); height:24px; }
  .red__bar,
  .red__one{ height:auto; min-height:48px; padding-block:10px; font-size:var(--fs-14); }
  .red__one{ font-size:var(--fs-17); }

  .zig__num{ font-size:var(--fs-48); }
  .zig__ttl{ font-size:var(--fs-21); }
  .zig__macro{ width:96px; height:96px; }

  .str__grid{ grid-template-columns:1fr; gap:40px; }

  .grp__meta{ gap:8px; }
  .grp__ex{ font-size:var(--fs-12); }

  .cmp__row{ grid-template-columns:1fr; gap:6px; padding-block:14px; }
  .cmp__key{ font-size:var(--fs-12); }
  .cmp__val{ font-size:var(--fs-17); }

  .news__row{ grid-template-columns:1fr; gap:6px; padding-block:14px; align-items:start; }
  .news__tag{ width:88px; }
  .news__ttl{ font-size:var(--fs-17); }

  .contact__ttl{ font-size:var(--fs-26); }
  .btn-outline--on-navy{ width:100%; height:56px; }

  .ft__map{ grid-template-columns:1fr; gap:28px; }
  .ft__bottom{ height:auto; padding-block:20px; flex-direction:column; align-items:flex-start; gap:10px; }
}
