/* ---- fade-in on scroll ---- */
[data-fade]{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
[data-fade].is-visible{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){[data-fade]{opacity:1;transform:none;transition:none}}

/* ============================================================
   Responsive (shared, non-home)
   ============================================================ */
@media(max-width:1024px){
  .site-header__inner{padding:12px 18px}
  .gnav__list{gap:18px}
}

@media(max-width:900px){
  .header-contact{display:none}
  .site-header__inner{flex-wrap:nowrap}
  .site-logo{flex:0 1 auto;min-width:0}
  .site-logo img{width:240px}
  .nav-toggle{margin-left:auto;position:relative;z-index:101}
  .gnav{
    position:fixed;inset:64px 0 auto 0;background:#fff;
    flex-direction:column;align-items:stretch;gap:0;
    border-bottom:0 solid var(--blue);box-shadow:none;
    max-height:0;overflow:hidden;transition:max-height .35s ease;padding:0;
  }
  .gnav.is-open{max-height:80vh;padding:8px 0;border-bottom-width:2px;box-shadow:var(--shadow)}
  .gnav__list{flex-direction:column;gap:0;width:100%}
  .gnav__list li{border-bottom:1px solid #eee}
  .gnav__list a{display:block;padding:15px 24px}
  .gnav__list a::after{display:none}
  .gnav .btn{margin:14px 24px}
  /* モバイルはホバー不可のためサブメニューを常時展開（インデント表示） */
  .gnav__list .menu-item-has-children>a::before{display:none}
  .gnav__list .sub-menu{
    position:static;transform:none;opacity:1;visibility:visible;pointer-events:auto;
    box-shadow:none;border-top:none;min-width:0;padding:0;background:#f5f8fa;
  }
  .gnav__list .sub-menu a{padding:13px 24px 13px 42px;font-size:14px}
  .gnav__list .sub-menu a::before{content:"└ ";color:var(--blue);opacity:.6}
}

@media(max-width:820px){
  .section{padding:48px 0}
  .sec-head__en{font-size:24px}
  .jp-title{font-size:21px;letter-spacing:.2em}
  .proj{flex-direction:column}
  .proj--rev{flex-direction:column}
  .proj__img{flex-basis:auto;width:100%}
  .proj__img img{min-height:0;height:220px}
  .proj__body{padding:26px 22px}
  /* ONLINE ORDER：縦積み中央寄せ（ONLINE ORDER→カンタン発注→説明文→QR）、QRは読み取れるサイズ */
  .footer-order{flex-direction:column;align-items:center;text-align:center;gap:12px;padding:22px 16px}
  .footer-order__en{order:1;font-size:26px}
  .footer-order__btn{order:2}
  .footer-order__txt{order:3;flex:0 1 auto;font-size:14px}
  .footer-order__qr{order:4;width:120px;height:120px}
  /* CONTACT：電話（FAX含む）・メール・SNSを中央寄せ（FAXは電話番号の右端に揃える。見出しは左） */
  .footer-contact__row{display:grid;grid-template-columns:1fr;justify-items:center;gap:18px;width:100%}
  .footer-contact__phone{text-align:right}
  .footer-contact__actions{align-items:center}
  .footer-sns{justify-content:center}
  .footer-grid{grid-template-columns:1fr;gap:30px}
  .footer-sites ul{grid-template-columns:1fr 1fr}
  .footer-logo img{width:230px}
  .biz-hero img{height:200px}
  .biz-hero__cap .en{font-size:26px}
  .page-hero__img{height:180px}
  .page-hero__label .en{font-size:24px}
  /* テーブルを完全ブロック化：display:table のままだと内容でコンテナ幅を押し広げ、
     同じ container 内の他要素（データ統計）まで横溢れさせるため */
  .plain-table,.plain-table tbody{display:block;width:100%}
  .plain-table th{width:auto;display:block;background:transparent;border-bottom:none}
  .plain-table td{display:block;padding-top:6px}
  .plain-table tr{display:block;border-bottom:1px solid var(--line);padding:8px 0}
  .plain-table th,.plain-table td{border-bottom:none}
}

@media(max-width:520px){
  body{font-size:15px}
  .container{padding:0 16px}
  .news-item{flex-wrap:wrap;gap:8px}
  .news-item__date{width:100%}
  .footer-contact .tel{font-size:24px}
}
