@charset "UTF-8";
/* ============================================================
   /asi/ 共通コンポーネントCSS
   実装カンプのインラインstyleのうち繰り返しパターンをクラス化したもの。
   SP(767px以下)の上書きは asi_sp.css 側で行う。
   セレクタは #Page__home スコープ付き:
   テンプレートCSS(.Section__inner p 等)より詳細度を上げるため。
   ============================================================ */

#Page__home .asi-inner { max-width:1100px; }
#Page__home .asi-section-gray { scroll-margin-top:110px; background:#F0F5FA; font-family:'IBM Plex Sans JP','Noto Sans JP',sans-serif; }
#Page__home .asi-section-white { scroll-margin-top:110px; background:#fff; font-family:'IBM Plex Sans JP','Noto Sans JP',sans-serif; }
#Page__home .asi-h2 { font-size: 3.2rem; font-weight: 700; color: #003577; line-height: 1.6; margin-top: 1.4rem; text-align: left; }
#Page__home .asi-h3 { font-size:2.8rem; font-weight:800; color:#231815; }
#Page__home .asi-h4 { font-size:1.9rem; font-weight:800; color:#231815; }
#Page__home .asi-subhead { font-weight:700; color:#003577; font-size:1.85rem; margin-top:1.6rem; line-height:1.7; }
#Page__home .asi-eyebrow { font-family:'IBM Plex Mono',monospace; font-size:1.4rem; letter-spacing:.24em; color:#39A4E4; }
#Page__home .asi-num { font-family:'IBM Plex Mono',monospace; font-size:1.8rem; color:#39A4E4; font-weight:600; }
#Page__home .asi-num-md { font-family:'IBM Plex Mono',monospace; font-size:1.5rem; color:#39A4E4; font-weight:600; }
#Page__home .asi-num-sm { font-family:'IBM Plex Mono',monospace; font-size:1.4rem; color:#39A4E4; flex:none; }
#Page__home .asi-num-sky { font-family:'IBM Plex Mono',monospace; color:#3CB6FF; font-size:1.4rem; }
#Page__home .asi-kicker { font-size:1.2rem; font-weight:700; color:#74838F; letter-spacing:.08em; }
#Page__home .asi-stat-num { font-size: 3.2rem; font-weight: 800; line-height: 1.2; }
#Page__home .asi-section-lead { margin-top:3rem; font-size:1.6rem; line-height:2; color:#395374; }
#Page__home .asi-lead-sm { font-size:1.55rem; line-height:2; color:#395374; margin-top:1.4rem; }
#Page__home .asi-lead-strong { font-size:1.75rem; font-weight:600; color:#231815; line-height:1.8; }
#Page__home .asi-white-label { font-size: 1.4rem; font-weight: 600; color: rgba(255,255,255,.9); }
#Page__home .asi-mini-title { font-size: 1.2rem; font-weight: 700; color: #1E2A38; line-height: 1.55; word-break: keep-all; text-align: center; }
#Page__home .asi-card { background:#fff; border:1px solid #E3EAF2; border-radius:1.4rem; padding:2.2rem; box-shadow:0 2px 8px rgba(16,42,67,.05); }
#Page__home .asi-card-lg { background:#fff; border:1px solid #E3EAF2; border-radius:1.4rem; padding:2.6rem 2.4rem; box-shadow:0 2px 8px rgba(16,42,67,.05); }
#Page__home .asi-card-xl { background:#fff; border:1px solid #E3EAF2; border-radius:1.4rem; padding:2.8rem 2.6rem; box-shadow:0 2px 8px rgba(16,42,67,.05); }
#Page__home .asi-card-flow { background:#fff; border:1px solid #E3EAF2; border-radius:1.2rem; overflow:hidden; box-shadow:0 6px 16px rgba(16,42,67,.06); }
#Page__home .asi-card-body { display: flex; flex-direction: column; gap: 1.2rem; padding: 2rem; }
#Page__home .asi-phase-body { flex:1; background:#fff; border-radius:0 0 .9rem .9rem; padding:2rem; display:flex; flex-direction:column; gap:1.8rem; box-shadow:0 4px 14px rgba(16,42,67,.08); }
#Page__home .asi-card-title { font-size:1.55rem; font-weight:800; color:#1E2A38; margin-top:1.6rem; }
#Page__home .asi-card-title-lg { font-size:1.8rem; font-weight:800; color:#1E2A38; margin-top:2rem; }
#Page__home .asi-card-title-md { font-size:1.7rem; font-weight:800; color:#1E2A38; margin-top:2rem; }
#Page__home .asi-title-md { font-size:1.7rem; font-weight:800; color:#1E2A38; }
#Page__home .asi-title-sm { font-size:1.4rem; font-weight:800; color:#1E2A38; }
#Page__home .asi-card-text { font-size:1.4rem; line-height:1.9; color:#5C6B80; margin-top:1rem; margin-bottom:0; }
#Page__home .asi-card-text2 { margin-top:1.4rem; margin-bottom:0; font-size:1.4rem; line-height:1.95; color:#5C6B80; }
#Page__home .asi-note { font-size:1.25rem; line-height:1.7; color:#5C6B80; }
#Page__home .asi-note-dim { font-size:1.2rem; font-weight:500; color:#8A94A3; }
#Page__home .asi-item-label { font-size:1.35rem; font-weight:600; color:#33414F; line-height:1.6; }
#Page__home .asi-label-purple { font-size:1.35rem; font-weight:700; color:#3A2E63; }
#Page__home .asi-icon-chip { display:flex; width:4.6rem; height:4.6rem; border-radius:1.1rem; background:#E9F1FB; align-items:center; justify-content:center; }
#Page__home .asi-icon-chip-lg { display:flex; width:5.4rem; height:5.4rem; border-radius:1.2rem; background:#E9F1FB; align-items:center; justify-content:center; }
#Page__home .asi-icon-chip-sm { flex:none; width:3.2rem; height:3.2rem; border-radius:.7rem; background:#F1EDFA; display:flex; align-items:center; justify-content:center; }
#Page__home .asi-li-sm { display:flex; gap:1rem; align-items:flex-start; font-size:1.3rem; line-height:1.8; color:#5C6B80; }
#Page__home .asi-li-md { display:flex; gap:1rem; align-items:flex-start; font-size:1.4rem; line-height:1.8; color:#5C6B80; }
#Page__home .asi-li-check { display:flex; gap:1rem; align-items:flex-start; font-size:1.4rem; line-height:1.7; font-weight:600; color:#2A3646; }
#Page__home .asi-li-tight { display:flex; gap:.7rem; align-items:flex-start; margin-top:.4rem; }
#Page__home .asi-li-ico { flex:none; margin-top:.2rem; }
#Page__home .asi-dot { flex:none; width:.5rem; height:.5rem; border-radius:50%; background:#2076BD; margin-top:.9rem; }
#Page__home .asi-dot-md { flex:none; width:.5rem; height:.5rem; border-radius:50%; background:#2076BD; margin-top:1rem; }
#Page__home .asi-dot-purple { flex:none; width:.45rem; height:.45rem; border-radius:50%; background:#6B4FBB; margin-top:.75rem; }
#Page__home .asi-stack-sm { display:flex; flex-direction:column; gap:.6rem; margin-top:1.2rem; }
#Page__home .asi-stack-md { display:flex; flex-direction:column; gap:.7rem; margin-top:1.4rem; }
#Page__home .asi-col { display:flex; flex-direction:column; }
#Page__home .asi-col-center { display:flex; flex-direction:column; align-items:center; }
#Page__home .asi-col-xs { display:flex; flex-direction:column; gap:.6rem; }
#Page__home .asi-col-xxs { display:flex; flex-direction:column; gap:.5rem; }
#Page__home .asi-col-sm { display:flex; flex-direction:column; gap:1.1rem; }
#Page__home .asi-row { display:flex; align-items:center; gap:.9rem; }
#Page__home .asi-row-between { display:flex; align-items:flex-start; justify-content:space-between; gap:1.2rem; }
#Page__home .asi-feature-item { border-bottom:1px solid #E5ECF2; padding-bottom:1.8rem; display:flex; flex-direction:column; gap:1.1rem; }
#Page__home .asi-div-item { display:flex; gap:2rem; align-items:baseline; padding:1.8rem 0; border-top:1px solid #E1E8F0; }
#Page__home .asi-tech-row { display:flex; align-items:center; gap:1rem; background:#fff; border:1px solid #E7E2F2; border-radius:.9rem; padding:.85rem 1.1rem; }
#Page__home .asi-swe-badge { background: #127A5E; color: #fff; font-weight: 700; font-size: 1.2rem; padding: .1rem 0; border-radius: .5rem; width: 6.4rem; text-align: center; font-family: 'IBM Plex Mono',monospace; }
#Page__home .asi-swe-badge-o { background: #fff; border: 1px solid #BFE0D2; color: #0C4A3A; font-weight: 700; font-size: 1.2rem; padding: .1rem 0; border-radius: .5rem; text-align: center; font-family: 'IBM Plex Mono',monospace; }
#Page__home .asi-swe-line { width:2px; height:.9rem; background:#127A5E; display:block; }
#Page__home .asi-badge-new { flex:none; font-size:1rem; font-weight:700; color:#fff; background:#D0021B; border-radius:.3rem; padding:.2rem .6rem; margin-top:.4rem; }
#Page__home .asi-model-row { background:#F3F5F8; border-radius:.8rem; padding:0 1.5rem; min-height:5rem; display:flex; align-items:center; font-size:1.55rem; font-weight:700; color:#232F3E; }
#Page__home .asi-req-head { background: #0E8C6D; padding: 1.2rem 2rem; font-size: 1.6rem; font-weight: 700; color: #fff; }
#Page__home .asi-anc-item { color:#004399; font-size:1.5rem; font-weight:500; padding:1.7rem 2.8rem; display:inline-flex; align-items:center; gap:1rem; border-left:1px solid #E3EAF2; transition:background .2s ease,color .2s ease; }
#Page__home .asi-block { display:block; }
#Page__home .asi-flex-none { flex:none; }
#Page__home .asi-ml1 { margin-left:.3rem; }

/* ---- 記事・一覧ページ用 ---- */
#Page__home .asi-toc-row { display:flex; align-items:baseline; gap:1.6rem; padding:1.7rem 1rem; text-decoration:none; }
#Page__home .asi-toc-num { font-family:'IBM Plex Mono',monospace; font-size:1.5rem; font-weight:600; color:#2D5BE0; flex:none; min-width:2.6rem; }
#Page__home .asi-toc-t { font-size:1.55rem; line-height:1.75; color:#243040; font-weight:500; transition:color .15s ease; }
#Page__home .asi-hr-t { border-top:1px solid #EDF1F6; }
#Page__home .asi-art-num { font-family:'IBM Plex Mono',monospace; font-size:1.9rem; letter-spacing:.08em; color:#39A4E4; font-weight:600; }
#Page__home .asi-art-h2 { font-size:2.9rem; font-weight:700; color:#003577; line-height:1.55; margin:1.3rem 0 0; text-wrap:pretty; }
#Page__home .asi-h2-line { width:6.4rem; height:3px; background:#3CB6FF; margin-top:2rem; }
#Page__home .asi-art-p--26 { font-size:1.6rem; line-height:2.05; color:#395374; margin:2.6rem 0 0; }
#Page__home .asi-mt24 { margin:2.4rem 0 0; }
#Page__home .asi-art-text-lg { font-size:1.55rem; line-height:2; }
#Page__home .asi-jump-box { margin-top:3rem; border:1px solid #B9CCE0; background:#F7FAFD; border-radius:1rem; padding:2.2rem 3.2rem; }
#Page__home .asi-art-text { font-size:1.5rem; line-height:1.9; }
#Page__home .asi-art-h3 { scroll-margin-top:12rem; margin:6.5rem 0 0; display:flex; align-items:flex-start; gap:1.3rem; }
#Page__home .asi-art-h3-bar { flex:none; width:.5rem; height:2.4rem; background:#16608E; border-radius:.2rem; margin-top:.3rem; }
#Page__home .asi-art-h3-t { font-size:2.15rem; font-weight:700; color:#003577; line-height:1.55; margin:0; }
#Page__home .asi-art-p { font-size:1.6rem; line-height:2.05; color:#395374; margin:2.4rem 0 0; }
#Page__home .asi-mt35 { margin-top:3.5rem; }
#Page__home .asi-fig-cap { font-size:1.35rem; font-weight:700; color:#0F2B4A; margin-bottom:1rem; text-align: center; }
#Page__home .asi-fig-cap--below { margin: 1.2rem 0 0; }
#Page__home .asi-art-p--30 { font-size:1.6rem; line-height:2.05; color:#395374; margin:3rem 0 0; }
#Page__home .asi-mt30 { margin-top:3rem; }
#Page__home .asi-art-sec { scroll-margin-top:12rem; margin:10rem 0 0; }
#Page__home .asi-fig-ph { height:30rem; background:repeating-linear-gradient(45deg,#EEF3F9 0,#EEF3F9 14px,#E5ECF5 14px,#E5ECF5 28px); border:1px dashed #A9C7EA; border-radius:1rem; display:flex; align-items:center; justify-content:center; padding:3rem; }
#Page__home .asi-fig-ph-t { font-family:'IBM Plex Mono',monospace; font-size:1.35rem; line-height:2.1; color:#51749B; max-width:56rem; }
#Page__home .asi-art-note { margin-top:2.2rem; font-size:1.3rem; line-height:2.1; color:#6B7C92; }
#Page__home .asi-art-src { display:block; color:#6B7C92; text-decoration:underline; word-break:break-all; }
#Page__home .asi-art-h4 { scroll-margin-top:12rem; display:flex; align-items:center; gap:1.1rem; margin-top:5rem; }
#Page__home .asi-art-h4-bar { flex:none; width:.4rem; height:1.6rem; background:#8FBEE6; border-radius:.2rem; }
#Page__home .asi-art-h4-t { font-size:1.7rem; font-weight:700; color:#0F2B4A; margin:0; line-height:1.6; }
#Page__home .asi-mt26 { margin-top:2.6rem; }
#Page__home .asi-art-p--28 { font-size:1.6rem; line-height:2.05; color:#395374; margin:2.8rem 0 0; }
#Page__home .asi-art-strong-t { font-size:1.6rem; font-weight:700; color:#0F2B4A; margin-top:3.2rem; }
#Page__home .asi-c-navy { color:#0F2B4A; }

/* ============================================================
   PC狭幅ウィンドウ対策(768〜1199px):
   本デザインは vw スケール前提のため、1200px 未満では
   1200px 時点の倍率で固定し、横スクロールで閲覧させる。
   ============================================================ */
@media (min-width: 768px) and (max-width: 1199px) {
  /* common.min.css が 979px 以下で html,body{overflow-x:hidden} を指定するため、
     ビューポートの横スクロールを明示的に復活させる */
  html { font-size: 6.7416px; overflow-x: auto !important; }  /* 0.5618vw @1200px */
  body { /*min-width: 1200px;*/ overflow-x: visible !important; }
  /*.Section__inner { width: 960px; }*/        /* 80vw 相当 @1200px */
  [style*="10vw"] {
    padding-left: 120px !important;        /* 10vw 相当 @1200px */
    padding-right: 120px !important;
  }
}

/* ---- 共通化 第2弾(3ページ横断) ---- */
#Page__home .asi-about-em { font-size: 3.2rem; font-weight: 800; color: #004399; padding: 0 .2em; }
#Page__home .asi-inner-c { max-width:1100px; margin:0 auto; }
#Page__home .asi-cta-eyebrow { font-family:'IBM Plex Mono',monospace; font-size:1.3rem; letter-spacing:.32em; color:#CBE4FF; text-align:center; font-weight:600; }
#Page__home .asi-cta-h2-b { font-size: 3.2rem; font-weight: 800; color: #fff; text-align: center; margin-top: 1.6rem; }
#Page__home .asi-arrow-dark { flex:none; width:2.6rem; height:2.6rem; border-radius:50%; background:rgba(9,22,52,.28); display:flex; align-items:center; justify-content:center; }
#Page__home .asi-cv-num { font-size:1.95rem; color:#004399; line-height:1; }
#Page__home .asi-arrow-blue { flex:none; width:2.6rem; height:2.6rem; border-radius:50%; background:rgba(0,67,153,.12); display:flex; align-items:center; justify-content:center; }
#Page__home .asi-tl-head { display:flex; gap:1.4rem; align-self:stretch; }
#Page__home .asi-tl-line { flex:1; width:2px; background:#C9D8EA; margin-top:1rem; }
#Page__home .asi-tl-label { font-size:1.9rem; font-weight:800; color:#16415F; margin:0; line-height:1.6; }
#Page__home .asi-model-label { min-height:5rem; display:flex; align-items:center; font-size:1.3rem; font-weight:700; color:#5C6B80; }
#Page__home .asi-stack-12 { display:flex; flex-direction:column; gap:1.2rem; margin-top:1.6rem; }
#Page__home .asi-js-center { justify-self:center; }
#Page__home .asi-model-cell { background:#fff; border-radius:.8rem; padding:0 1.5rem; min-height:5rem; display:flex; align-items:center; font-size:1.55rem; font-weight:700; color:#232F3E; }
#Page__home .asi-tl-grid { display: grid; grid-template-columns: 18rem minmax(0,1fr); gap: 0 3rem; }
#Page__home .asi-rule-teal { flex:1; height:1px; background:rgba(23,165,137,.45); }
#Page__home .asi-glass-card { border:1px solid rgba(255,255,255,.18); background:rgba(255,255,255,.06); border-radius:1.2rem; padding:2.4rem; display:flex; align-items:center; gap:1.6rem; }
#Page__home .asi-icon-ghost { flex:none; width:4.8rem; height:4.8rem; background:rgba(255,255,255,.12); border-radius:1rem; display:flex; align-items:center; justify-content:center; }
#Page__home .asi-white-strong-sm { font-size:1.8rem; font-weight:800; color:#fff; }
#Page__home .asi-dl-eyebrow { font-family:'IBM Plex Mono',monospace; font-size:1.25rem; letter-spacing:.3em; color:#2D5BE0; font-weight:600; }
#Page__home .asi-dl-title { font-size:2.8rem; font-weight:800; color:#111A26; line-height:1.5; margin-top:1.2rem; }
#Page__home .asi-colcard-text { font-size:1.5rem; line-height:1.9; color:#5C6B80; margin-top:1.2rem; }
#Page__home .asi-arrow-dark-sm { flex:none; width:2.4rem; height:2.4rem; border-radius:50%; background:rgba(9,22,52,.28); display:flex; align-items:center; justify-content:center; }
#Page__home .asi-minw0 { min-width:0; }
#Page__home .asi-center-row { display:flex; align-items:center; justify-content:center; gap:.9rem; }
#Page__home .asi-row-stretch { display:flex; align-items:stretch; gap:1.6rem; }
#Page__home .asi-org-body { padding:2.4rem 2.2rem; display:flex; flex-direction:column; flex:1; }
#Page__home .asi-flex-col-1 { flex:1; min-width:0; display:flex; flex-direction:column; }
#Page__home .asi-swe-col { display:flex; flex-direction:column; align-items:center; gap:.35rem; }
#Page__home .asi-mt45 { margin-top:4.5rem; }
#Page__home .asi-bar-xs { flex:none; width:.35rem; height:1.6rem; background:#2076BD; border-radius:.2rem; }
#Page__home .asi-strong-blue { font-size:1.6rem; font-weight:800; color:#16608E; }
#Page__home .asi-contents { display:contents; }
#Page__home .asi-plain { list-style:none; }
#Page__home .asi-colcard { display:flex; flex-direction:column; height:100%; background:#fff; border:1px solid #E3EAF2; border-radius:1.4rem; overflow:hidden; box-shadow:0 6px 18px rgba(16,42,67,.07); transition:transform .2s ease,box-shadow .2s ease; }
#Page__home .asi-thumb { aspect-ratio:16/10; overflow:hidden; background:#E7EDF5; }
#Page__home .asi-cover-img { width:100%; height:100%; object-fit:cover; display:block; }
#Page__home .asi-tag-mono { font-family:'IBM Plex Mono',monospace; font-size:1.15rem; letter-spacing:.18em; color:#2D5BE0; }
#Page__home .asi-colcard-title { font-size:1.5rem; font-weight:700; line-height:1.75; color:#1E2A38; flex:1; margin:0; }
#Page__home .asi-readmore { display:flex; align-items:center; gap:.8rem; color:#2D5BE0; font-size:1.35rem; }
#Page__home .asi-btn-outline { display:flex; align-items:center; justify-content:center; gap:1.4rem; width:fit-content; min-width:30rem; margin:5rem auto 0; border:1.5px solid #2D5BE0; color:#2D5BE0; background:#fff; font-size:1.5rem; font-weight:700; padding:1.4rem 3rem; border-radius:.8rem; }
#Page__home .asi-arrow-blue-sm { flex:none; width:2.4rem; height:2.4rem; border-radius:50%; background:rgba(45,91,224,.12); display:flex; align-items:center; justify-content:center; }
#Page__home .asi-white-strong { font-weight:700; font-size:1.8rem; color:#fff; }
#Page__home .asi-crumb-d2 { flex:none; color:rgba(255,255,255,.7); }
#Page__home .asi-bg-white { background:#fff; font-family:'IBM Plex Sans JP','Noto Sans JP',sans-serif; }
#Page__home .asi-toc-box { margin-top:6.5rem; border:1px solid #D3DEEA; border-radius:1.4rem; overflow:hidden; box-shadow:0 6px 18px rgba(16,42,67,.06); }
#Page__home .asi-strong-navy { font-size:1.4rem; font-weight:700; color:#0F2B4A; }
#Page__home .asi-bold { font-weight:700; }
#Page__home .asi-colcard-body { display:flex; flex-direction:column; gap:1.3rem; padding:2.2rem 2.2rem 2.4rem; flex:1; }
#Page__home .asi-cta-band { background-color:#081527; background-image:url('../img/bg_contact_cta.png'); background-size:cover; background-position:center; background-repeat:no-repeat; padding:8.5rem 10vw; font-family:'IBM Plex Sans JP','Noto Sans JP',sans-serif; }
#Page__home .asi-cta-eyebrow-b { font-family:'IBM Plex Mono',monospace; font-size:1.3rem; letter-spacing:.32em; color:#7FA9E8; text-align:center; font-weight:600; }
#Page__home .asi-cta-h2 { font-size:3.2rem; font-weight:800; color:#fff; text-align:center; margin-top:1.6rem; text-wrap:pretty; }
#Page__home .asi-cta-lead { color:#C5D3E6; text-align:center; font-size:1.5rem; line-height:2.1; max-width:88rem; margin:2.6rem auto 0; }
#Page__home .asi-cta-grid { display:grid; grid-template-columns:1fr 1fr; gap:2.4rem; max-width:104rem; margin:5.5rem auto 0; }
#Page__home .asi-cta-card { scroll-margin-top:12rem; background:#fff; border-radius:1.2rem; padding:3.6rem 3.4rem; display:flex; flex-direction:column; align-items:center; text-align:center; gap:1.8rem; }
#Page__home .asi-cta-title { font-weight:800; font-size:1.9rem; color:#0F2B4A; }
#Page__home .asi-cta-text { font-size:1.45rem; line-height:1.95; color:#395374; margin:0; flex:1; }
#Page__home .asi-btn-primary { display:flex; align-items:center; justify-content:center; gap:1.4rem; width:100%; max-width:36rem; background:#2D5BE0; color:#fff; font-size:1.55rem; font-weight:700; padding:1.6rem 1.5rem; border-radius:.8rem; box-shadow:0 12px 26px rgba(45,91,224,.3); }
#Page__home .asi-tel { font-size:2.4rem; font-weight:800; color:#0F2B4A; margin-top:.6rem; letter-spacing:.02em; }
#Page__home .asi-meta { font-size:1.3rem; font-weight:500; color:#5C799A; }
#Page__home .asi-crumb-l2 { flex:none; color:#6B7C92; }

/* ============================================================
   ui.js 対策:
   ui.js は固定ヘッダー直後の要素の padding-top を実行時に
   ヘッダー高で上書きする(テンプレートのヘッダー回避機構)。
   本実装ではヘッダー回避を #local-Header + * の margin-top で
   行っているため二重になる。各ページのデザイン値を強制する。
   ============================================================ */
#main-content { padding-top: 9rem !important; }   /* LP KV */
#article-top { padding-top: 3rem !important; }    /* コラム記事ヒーロー */
#page-hero { padding-top: 2.6rem !important; }    /* コラム一覧ヒーロー */

/* ヘッダー「モビリティ」の縦位置補正(inline-blockのベースライン起因のズレ) */
#Page__home .FSI-Header__Sitetitle { transform: translateY(-1rem); }






