/* ============================================================
   Neovision リニューアル 共通トークン + 基本設定
   正本デザイン: Figma「shuto oda様 ホームページリニューアル」
   fileKey: b8IaC52m8ELxmB6mVJpkjg / デザイン幅 1440px
   ============================================================ */

:root{
  /* Figma 変数 */
  --nv-text:#1F3A5F;      /* text: 見出し・本文の基調ネイビー */
  --nv-main:#2A67D4;      /* main: プライマリブルー */
  --nv-base:#EBF6FF;      /* base: 薄水色の面 */
  --nv-accent-y1:#F5AF04; /* アクセント黄 (濃) */
  --nv-accent-y2:#FEA21C; /* アクセント黄 (橙寄り) */
  --nv-white:#FFFFFF;

  --nv-font:'Noto Sans JP', -apple-system, BlinkMacSystemFont, sans-serif;

  /* レイアウト: デザインは 1440px 基準 / コンテンツ幅 1100px */
  --nv-content:1100px;
}

/* ページ全体の横スクロール(右の余白)防止。
   料金/サービス等の比較表 (.nv-svc-table min-width:720 / .nv-ctable min-width:760) が
   overflow-x:auto ラップ内にあっても、スマホ実機ではレイアウト幅が表の最小幅に引きずられて
   ページ全体が横に伸び「右の余白+横スクロール」が出る。ここで確実にクリップする。
   表自体は各 .*-table-wrap 内で横スクロール可能なまま (内部スクロールは維持)。
   overflow-x:hidden は html/body に置いても position:sticky (ヘッダー/サイドバー) を壊さないことを実機幅で検証済み。 */
html{overflow-x:hidden}
body{overflow-x:hidden;max-width:100%}

/* リニューアル済みセクションのスコープ */
.nv-page{
  font-family:var(--nv-font);
  color:var(--nv-text);
  line-height:1.5;
  font-feature-settings:"palt";
}
.nv-page *,.nv-page *::before,.nv-page *::after{box-sizing:border-box}
.nv-page img{max-width:100%;height:auto;display:block}
.nv-page a{text-decoration:none;color:inherit}
.nv-page ul,.nv-page ol{list-style:none;margin:0;padding:0}

.nv-inner{
  width:min(var(--nv-content), calc(100% - 48px));
  margin-inline:auto;
}

/* モバイル: Figma SP デザイン(390px幅)基準の左右20pxガター */
@media (max-width:767px){
  .nv-inner{
    width:calc(100% - 40px);
  }

  /* スマホでのテキスト改行を自然に (見出しが「変なところ」で折れる問題の解消)。
     word-break:auto-phrase … 日本語を文節境界で自動改行 (Chrome119+/Safari17.4+)。
     word-break は継承プロパティなので .nv-page に一括指定すれば全子孫に波及する。
     クラス名が title/name/head/copy 等バラバラでも漏れなく効く。
     明示的に word-break を持つ要素 (例: フロー図 .nv-flow__* の keep-all + <wbr> 制御) は
     その指定が優先され、従来どおり維持される。
     未対応ブラウザ (Firefox 等) は normal にフォールバックするため安全 (現状維持)。 */
  .nv-page{
    word-break:auto-phrase;
  }
  /* 見出し・タイトル・リードは行長も均す (最後の1語だけ落ちる等を防ぐ) */
  .nv-page h1,
  .nv-page h2,
  .nv-page h3,
  .nv-page h4,
  .nv-page [class*="title"],
  .nv-page [class*="lead"],
  .nv-page [class*="head"],
  .nv-page [class*="name"],
  .nv-page [class*="catch"],
  .nv-page [class*="copy"]{
    text-wrap:balance;
  }
}
