/* KZ_SHOWCASE_3BANDS_CORE_20251010J BEGIN */
#showcase{
  width:100% !important; display:grid;
  grid-template-columns:min(var(--kz-content-w, min(92vw,1100px)),100%);
  justify-content:center; margin:28px auto 20px; padding:0 20px; box-sizing:border-box;
  --show-gap:8px; --row-h:clamp(96px,13vh,132px); --tile-gap:12px;
  --speed-fast:22s; --speed-normal:30s; --speed-slow:38s;
}
#showcase > *{ grid-column:1; }
#showcase .lead{ margin:0 auto 10px; max-width:56ch; color:#cfd2d4; text-align:center; font-size:14px; }
#showcase .band{ display:none; overflow:hidden; border-radius:12px;
  background:rgba(255,255,255,.02); border:1px solid rgba(255,255,255,.08);
  margin:var(--show-gap) 0; box-sizing:border-box; }
#showcase .band[data-on="1"]{ display:block; }
#showcase .track{ display:flex; align-items:center; gap:var(--tile-gap);
  height:var(--row-h); padding:6px 10px; animation:kz-marquee var(--dur,30s) linear infinite; }
#showcase .band[data-speed="fast"] .track{ --dur:var(--speed-fast); }
#showcase .band[data-speed="normal"] .track{ --dur:var(--speed-normal); }
#showcase .band[data-speed="slow"] .track{ --dur:var(--speed-slow); }
#showcase .band[data-dir="rtl"] .track{ animation-direction:normal; }
#showcase .band[data-dir="ltr"] .track{ animation-direction:reverse; }
#showcase img{ height:calc(var(--row-h) - 12px) !important; width:auto; display:block; border-radius:10px;
  box-shadow:0 1px 0 rgba(255,255,255,.05) inset, 0 10px 20px rgba(0,0,0,.35); }
/* 見出しの左バーをこのセクションだけOFF・中央寄せ */
#showcase h1::before,#showcase h2::before,#showcase h3::before{content:none !important;}
#showcase h2{ border-left:0 !important; padding-left:0 !important; text-align:center !important; }
/* 無限ループ */
@keyframes kz-marquee{ from{transform:translateX(0)} to{transform:translateX(-50%)} }
/* 詳しくみる（detailsをゴーストボタン風に） */
#showcase .kz-show-cta{ text-align:center; margin:10px 0 16px; }
#showcase .kz-show-cta details{ display:inline-block; }
#showcase .kz-show-cta summary{
  display:inline-block; cursor:pointer; user-select:none; margin:6px 8px; padding:10px 16px; border-radius:999px;
  border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.04); color:#fff; text-decoration:none;
  -webkit-backdrop-filter:saturate(160%) blur(6px); backdrop-filter:saturate(160%) blur(6px);
  transition:transform .2s ease, background .2s ease, border-color .2s ease; list-style:none; outline:0; }
#showcase .kz-show-cta summary::-webkit-details-marker{ display:none; }
#showcase .kz-show-cta summary:hover,#showcase .kz-show-cta summary:focus{
  transform:translateY(-1px); background:rgba(255,255,255,.10); border-color:rgba(255,255,255,.28); }
#showcase .kz-show-cta details[open] > summary{ background:rgba(255,255,255,.10); border-color:rgba(255,255,255,.28); }
#showcase .kz-more-body{ margin:10px auto 0; padding:10px 12px; max-width:60ch; color:#cfd2d4; font-size:14px; line-height:1.85;
  background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.08); border-radius:10px; }
@media (max-width:600px){
  #showcase{ --row-h:110px; --tile-gap:8px; --show-gap:8px; padding:0 14px; }
  #showcase .lead{ font-size:13px; }
}
/* KZ_SHOWCASE_3BANDS_CORE_20251010J END */
/* KZ_SHOWCASE_DETAILS_WIDE_20251010L BEGIN */
/* details 本文の見た目をフラット＆ワイドに */
#showcase .kz-more-body{
  max-width: 72ch;               /* 以前の56ch→広げる */
  margin: 14px auto 0;
  padding: 0;                     /* 枠の内側余白もゼロに */
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: #d7dadd;
  font-size: 15px;
  line-height: 1.9;
}
#showcase .kz-more-body p{ margin: .6em 0; }
#showcase .kz-more-body ul{ margin: .4em 0 .8em 1.2em; padding: 0; }
#showcase .kz-more-body li{ margin: .25em 0; }
/* スマホは読みやすさ優先で幅を端まで使う */
@media (max-width: 600px){
  #showcase .kz-more-body{ max-width: min(92vw, 72ch); font-size:14px; }
}
/* KZ_SHOWCASE_DETAILS_WIDE_20251010L END */
/* KZ_READABILITY_TUNE_20251010M BEGIN */
/* 1) ワイド化＆本文の“枠”を完全オフ（#showcase 限定） */
#showcase .kz-show-cta details{
  padding: 0;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
#showcase .kz-more-body{
  max-width: 76ch;               /* 72ch→76ch で視線移動が自然に */
  margin: 16px auto 0;
  padding: 0;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: #e2e5e8;                 /* わずかに明るくして読みやすく */
  font-size: 16px;                /* 15px→16px（デスクトップ） */
  line-height: 1.9;
  text-align: left;
}
#showcase .kz-more-body p{ margin: .85em 0; }
#showcase .kz-more-body ul{ margin: .6em 0 1.1em 1.35em; padding: 0; }
#showcase .kz-more-body li{ margin: .28em 0; }
/* スマホは端まで使うが、サイズは控えめに */
@media (max-width: 600px){
  #showcase .kz-more-body{ max-width: min(94vw, 76ch); font-size: 14.5px; }
}
/* KZ_READABILITY_TUNE_20251010M END */
/* KZ_WIDEN_HERO_CM_20251010P BEGIN */
/* 横幅ハンドル（必要なら数値だけ変えてください） */
:root{
  --kz-hero-wide: min(96vw, 1280px);
  --kz-cm-wide:   min(96vw, 1280px);
}
/* 共通：中央寄せヘルパ */
/* HERO: 汎用（文書内で最初に video を持つセクション） */
main section:has(video):first-of-type,
body section:has(video):first-of-type{ display:grid; justify-content:center; }
main section:has(video):first-of-type :is(.content,.container,.wrap,.frame,.card,video),
body section:has(video):first-of-type :is(.content,.container,.wrap,.frame,.card,video){
  max-width: var(--kz-hero-wide) !important; width:100% !important;
}
/* CM: 汎用（src に "cm" を含む video/source を持つセクション） */
section:has(video[src*="cm"]), section:has(source[src*="cm"]){
  display:grid; justify-content:center;
}
section:has(video[src*="cm"]) :is(.content,.container,.wrap,.frame,.card,.track,video,img),
section:has(source[src*="cm"]) :is(.content,.container,.wrap,.frame,.card,.track,video,img){
  max-width: var(--kz-cm-wide) !important;
}
/* KZ_WIDEN_HERO_CM_20251010P END */
/* KZ_CM_WIDEN_FORCE_20251010Q BEGIN */
/* 調整ノブ：CM 帯の目標幅（必要に応じて数値変更） */
:root{ --kz-cm-wide: min(96vw, 1280px); }

/* CMセクション= src に 'cm' を含む <video>/<source> を持つ <section> を広げる */
section:has(video[src*="cm"]), section:has(source[src*="cm"]){
  display:grid; justify-content:center;
  /* ページの共通コンテンツ幅変数を使っている場合の保険 */
  --kz-content-w: var(--kz-cm-wide);
}

/* 途中のラッパーごと“固定幅を上書き”し、クランプ解除 */
section:has(video[src*="cm"]) :is(.content,.container,.wrap,.frame,.card,.track,.row,.reel,.items),
section:has(source[src*="cm"]) :is(.content,.container,.wrap,.frame,.card,.track,.row,.reel,.items){
  width: var(--kz-cm-wide) !important;
  max-width: var(--kz-cm-wide) !important;
  margin-left:auto !important; margin-right:auto !important;
}

/* メディア自体はボックスにフィット（比率維持） */
section:has(video[src*="cm"]) :is(video,img),
section:has(source[src*="cm"]) :is(video,img){
  width: 100% !important; height: auto !important;
}

/* 一部トラックが固定幅/transformのときの保険 */
section:has(video[src*="cm"]) .track,
section:has(source[src*="cm"]) .track{ width: 100% !important; }
/* KZ_CM_WIDEN_FORCE_20251010Q END */
/* KZ_FIX_ADVISOR_LAYOUT_20251010R BEGIN */
/* AIアドバイザー節だけを保護（他のワイド化ルールの影響を遮断） */
#advisor{
  --advisor-w: var(--kz-content-w, min(92vw, 1100px));
}

/* 1) ラッパー幅を既定に戻して中央寄せ（CM帯の強制widthを無効化） */
#advisor,
#advisor :is(.content,.container,.wrap,.frame,.card,.inner,.body){
  width: auto !important;
  max-width: var(--advisor-w) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 20px !important;
  padding-right: 20px !important;
  box-sizing: border-box;
}

/* 2) 行レイアウト系の固定幅/トラック幅を無効化（必要最小限） */
#advisor :is(.row,.cols,.grid,.track,.reel,.items){
  width: auto !important;
  max-width: 100% !important;
  margin-left: 0 !important; margin-right: 0 !important;
}

/* 3) メディアは可視・等比で表示（高さ0やopacity:0等の事故に備える） */
#advisor :is(img,video){
  max-width: 100% !important;
  height: auto !important;
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  object-fit: cover;
}

/* 4) 2カラム時の詰まり対策（余白がゼロになっているケースの最小補正） */
@media (min-width: 900px){
  #advisor :is(.row,.cols){
    gap: 24px;
    align-items: center;
  }
}
/* KZ_FIX_ADVISOR_LAYOUT_20251010R END */
/* KZ_MISSION_CANON_20251010V BEGIN */
/* --- 調整ノブ（ここだけ変えればOK） --- */
#mission{
  --mission-wide:        min(96vw, 1320px);           /* 横幅上限 */
  --mission-icon-size:   64px;                        /* ★アイコンサイズ（必要なら 56/60/68 など） */
  --mission-icon-radius: 16px;                        /* 角丸 */
  --mission-gap-icon:    6px;                         /* ★アイコン→見出しの間（5～10px目安） */
  --mission-title-size:  clamp(24px, calc(22px + 1vw), 34px); /* ★見出し（小さめ安定） */
  --mission-title-lh:    1.12;                        /* 見出し行間 */
  --mission-gap-title:   10px;                        /* 見出し→本文の間 */
  --mission-text-size:   15.5px;                      /* 説明文サイズ */
}

/* 横幅を mission だけ広げ、中央寄せ */
#mission{ display:grid; justify-content:center; }
#mission,
#mission :is(.content,.container,.wrap,.frame,.card,.inner,.body){
  max-width: var(--mission-wide) !important;
  width: 100% !important;
  margin-left:auto !important; margin-right:auto !important;
  box-sizing:border-box;
  overflow: visible !important;  /* 右端切れの保険 */
}

/* 先頭メディア（mission アイコン） */
#mission :where(img,svg,video):first-of-type{
  width: var(--mission-icon-size) !important;
  height: auto !important;
  display:block !important;
  margin: 0 auto var(--mission-gap-icon) !important;
  border-radius: var(--mission-icon-radius) !important;
  overflow: hidden !important;
  object-fit: cover;
}

/* 見出し：デフォは折返し可。広い画面だけ1行化して端切れ回避 */
#mission :is(h1,h2,h3):first-of-type{
  font-size: var(--mission-title-size) !important;
  line-height: var(--mission-title-lh) !important;
  margin: 0 0 var(--mission-gap-title) !important;
  text-align:center !important;
  letter-spacing: .01em;
  white-space: normal;
  text-wrap: balance;
  -webkit-text-size-adjust: 100%;
}
#mission :is(h1,h2,h3):first-of-type br{ display:none !important; }
@media (min-width: 1200px){
  #mission :is(h1,h2,h3):first-of-type{ white-space: nowrap; }
}

/* 説明文・CTA */
#mission p{
  text-align:center; font-size: var(--mission-text-size);
  margin: 0 auto 8px; max-width: 68ch;
}
#mission :is(.actions,.btns,.buttons,.cta,.actions-wrap){
  display:flex; justify-content:center; align-items:center; gap:12px; flex-wrap:wrap;
}
/* KZ_MISSION_CANON_20251010V END */
/* KZ_MISSION_ONE_LINE_FIX_20251010W BEGIN */
/* ここで mission の最終上書きを行う（正規ブロックより後に読み込まれる想定） */
#mission{
  /* —— 見出しをさらに小さめに（Chromeでも余裕を作る） —— */
  --mission-title-size:  clamp(22px, calc(20px + 0.9vw), 30px);
  --mission-title-lh:    1.10;
  /* —— アイコンと見出しの間を少し詰める —— */
  --mission-gap-icon:    5px;
  /* —— セクションの下を少し詰める（次セクションとの間隔） —— */
  --mission-after-gap:   clamp(12px, 2.0vw, 24px);
}
/* テキスト末尾の余白も少しだけ詰める */
#mission p{ margin-bottom: 6px !important; }

/* 1行固定の発火を早める（Chrome対策）：幅が1080px以上なら nowrap */
@media (min-width: 1080px){
  #mission :is(h1,h2,h3):first-of-type{ white-space: nowrap !important; }
}

/* ミッション直後のセクション（自社AI Kazera など）との隙間を詰める */
#mission{ margin-bottom: var(--mission-after-gap) !important; }
#mission + :is(section,div,article){ margin-top: clamp(8px, 1.4vw, 18px) !important; }
/* KZ_MISSION_ONE_LINE_FIX_20251010W END */
/* KZ_MISSION_TIGHTER_20251010X BEGIN */
/* ここで #mission の最終上書き（“数値ノブ”だけ変更） */
#mission{
  --mission-title-size:  clamp(20px, calc(18px + 0.8vw), 28px); /* タイトルをさらに小さく */
  --mission-gap-icon:    4px;   /* アイコン→見出しの間をさらに詰める */
  --mission-gap-title:   8px;   /* 見出し→本文の間も少し詰める */
  --mission-after-gap:   clamp(6px, 1.2vw, 14px); /* 次セクションまでの下余白をさらに短縮 */
}
/* 本文末尾の余白も少しだけ詰める */
#mission p{ margin-bottom: 4px !important; }
/* KZ_MISSION_TIGHTER_20251010X END */
/* KZ_MISSION_TIGHTEST_20251011C BEGIN */
#mission{
  /* タイトル：さらに小さく（Safari/Chromeで揺れにくい係数） */
  --mission-title-size:  clamp(18px, calc(16px + 0.7vw), 26px);
  /* アイコン→見出しの間を“ボタン上下くらい”まで詰める */
  --mission-gap-icon:    2px;
  /* 見出し→本文の間も少しだけ詰める */
  --mission-gap-title:   6px;
  /* 次セクションまでの下余白をさらに短縮 */
  --mission-after-gap:   clamp(4px, 0.8vw, 10px);
}
/* 本文末尾の余白も詰める（行間はそのまま） */
#mission p{ margin-bottom: 3px !important; }
/* KZ_MISSION_TIGHTEST_20251011C END */
/* KZ_MISSION_GAP_LOCK_20251011D BEGIN */
/* さらにタイトに（#mission だけ） */
#mission{
  --mission-title-size: clamp(18px, calc(16px + 0.7vw), 24px); /* タイトルをもう一段小さく */
  --mission-gap-icon:   2px;   /* アイコン→見出しの標準マージン */
  --mission-gap-title:  6px;   /* 見出し→本文 */
  --mission-pull-up:   10px;   /* ↓ これで“上に引き寄せる”（親の gap を相殺） */
}

/* 通常の余白指定（万一の margin 初期値をゼロ化） */
#mission :where(img,svg,video):first-of-type{ margin: 0 auto var(--mission-gap-icon) !important; }
#mission :is(h1,h2,h3):first-of-type{ margin: 0 0 var(--mission-gap-title) !important; }

/* デスクトップは “引き寄せ” で確実に半分まで詰める（親stackの gap を無視） */
@media (min-width: 900px){
  #mission :is(h1,h2,h3):first-of-type{
    margin-top: calc(-1 * var(--mission-pull-up)) !important; /* ← ここが効きます */
  }
  /* アイコンと見出しを抱える親が gap を持っていても相殺する */
  #mission :is(.content,.container,.wrap,.frame,.card,.inner,.body,.stack,.vstack,.flow,.column,.section-head):has(:where(img,svg,video)):has(:is(h1,h2,h3)){
    gap: 0 !important; row-gap: 0 !important;
  }
}
/* 本文側は少しだけ詰める */
#mission p{ margin-bottom: 4px !important; }
/* KZ_MISSION_GAP_LOCK_20251011D END */
/* KZ_CM_TEXT_CENTER_20251011H BEGIN */
/* 調整ノブ：見出しを“少しだけ”大きく、本文は据え置き */
:root{
  --kz-cm-title-size: clamp(22px, calc(20px + 1.1vw), 34px);
  --kz-cm-lead-size:  15.5px;
  --kz-cm-lead-width: 70ch;
}

/* 見出し（そのセクション内の最初の h1/h2/h3）のみ中央 & サイズUP */
section:has(video[src*="cm"]) :is(h1,h2,h3):first-of-type,
section:has(source[src*="cm"]) :is(h1,h2,h3):first-of-type{
  text-align: center !important;
  font-size: var(--kz-cm-title-size) !important; /* 太字だけ少し大きく */
  line-height: 1.2;
  margin-bottom: 8px;
}

/* 見出し直後のリード文だけを中央に（他のpは触らない） */
section:has(video[src*="cm"]) :is(h1,h2,h3):first-of-type + p,
section:has(video[src*="cm"]) :is(h1,h2,h3):first-of-type ~ p:first-of-type,
section:has(source[src*="cm"]) :is(h1,h2,h3):first-of-type + p,
section:has(source[src*="cm"]) :is(h1,h2,h3):first-of-type ~ p:first-of-type{
  text-align: center !important;
  font-size: var(--kz-cm-lead-size);
  margin-left: auto; margin-right: auto;
  max-width: var(--kz-cm-lead-width);
}
/* KZ_CM_TEXT_CENTER_20251011H END */
/* KZ_MISSION_ICON_SHIFT_20251011I BEGIN */
/* 数値ノブ（ここだけ変えればOK） */
#mission{
  --mission-icon-size:   72px;  /* ★パネルを少し大きく（64→72pxなど） */
  --mission-icon-offset: 10px;  /* ★上からの押し下げ量：8〜14pxで微調整 */
}

/* 先頭メディア（missionパネル）にだけ適用 */
#mission :where(img,svg,video):first-of-type{
  /* 既存の幅指定より“後勝ち”で上書き */
  width: var(--mission-icon-size) !important;
  height: auto !important;

  /* 既存の margin: 0 auto ... を上書きして“下へ” */
  margin-top: var(--mission-icon-offset) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
/* KZ_MISSION_ICON_SHIFT_20251011I END */
/* KZ_ADVISOR_LOCK_20251011L2 BEGIN */
/* 調整ノブ：上の「自社AI Kazera」に合わせて読み幅/間隔を微調整 */
#advisor{
  --advisor-copy-max: 46ch;   /* ← 44–50ch で好みに調整可（Safari/Chromeで安定） */
  --advisor-gap-y:    10px;   /* 見出し→本文の縦間隔 */
}

/* 1) 「見出しを含む列（テキスト列の親）」を特定し、中央寄せを根こそぎ解除して左揃え */
#advisor :is(.content,.container,.wrap,.inner,.column,.col,.left,.body,.desc,.text,.copy)
  :has(> :is(h1,h2,h3)){
  text-align: left !important;
  justify-items: start !important;
  align-items: start !important;
}

/* 2) 見出し直下のリードだけ幅を絞る（同じ“見出しを含む列”の直下の p/.lead） */
#advisor :is(.content,.container,.wrap,.inner,.column,.col,.left,.body,.desc,.text,.copy)
  :has(> :is(h1,h2,h3)) > :is(p,.lead){
  max-inline-size: var(--advisor-copy-max);
  margin-inline: 0 !important;
  margin-block-start: var(--advisor-gap-y) !important;
}

/* 3) CTA を左寄せ。中央化の指定や auto マージンを相殺 */
#advisor :is(.content,.container,.wrap,.inner,.column,.col,.left,.body,.desc,.text,.copy)
  :has(> :is(h1,h2,h3)) > :is(.actions,.btns,.buttons,.cta){
  display:flex !important;
  justify-content:flex-start !important;
  margin-inline: 0 !important;
}
/* 念のため、単体ボタンにも左寄せを適用 */
#advisor :is(h1,h2,h3) ~ :is(a,button,.btn){ margin-left:0 !important; }
/* KZ_ADVISOR_LOCK_20251011L2 END */
/* KZ_ADVISOR_LOCK_20251011L3 BEGIN */
/* 調整ノブ：上2節と縦ラインを揃えるための読み幅／余白 */
#advisor{
  --advisor-copy-max: 46ch;  /* 44–50ch で微調整可 */
  --advisor-gap-y:    10px;  /* 見出し→本文の縦間隔 */
}

/* 1) 「見出しを含む“列”」を子孫条件で特定（直系に限定しない：Chrome対策） */
#advisor :is(.content,.container,.wrap,.inner,.column,.col,.left,.body,.desc,.text,.copy)
  :has(:is(h1,h2,h3)){
  text-align: left !important;
  /* 中央寄せを根こそぎ解除（Grid/Flex 両対応） */
  justify-items: start !important;
  align-items: flex-start !important;
  place-items: start !important;
  justify-content: flex-start !important;
}

/* 2) その“列”の中にある段落（.lead含む）は読み幅/左寄せを統一 */
#advisor :is(.content,.container,.wrap,.inner,.column,.col,.left,.body,.desc,.text,.copy)
  :has(:is(h1,h2,h3)) :is(p,.lead){
  max-inline-size: var(--advisor-copy-max);
  margin-inline: 0 !important;
  text-align: left !important;
}

/* 見出し直後の段落は少し間を空ける */
#advisor :is(.content,.container,.wrap,.inner,.column,.col,.left,.body,.desc,.text,.copy)
  :has(:is(h1,h2,h3)) :is(h1,h2,h3) + :is(p,.lead){
  margin-block-start: var(--advisor-gap-y) !important;
}

/* 3) CTA（詳しくみる…）は列の左端にそろえる（親が center でも上書き） */
#advisor :is(.content,.container,.wrap,.inner,.column,.col,.left,.body,.desc,.text,.copy)
  :has(:is(h1,h2,h3)) :is(.actions,.btns,.buttons,.cta){
  display: flex !important;
  justify-content: flex-start !important;
  margin-inline: 0 !important;
}
#advisor :is(.content,.container,.wrap,.inner,.column,.col,.left,.body,.desc,.text,.copy)
  :has(:is(h1,h2,h3)) :is(.actions,.btns,.buttons,.cta) :is(a,button,.btn){
  align-self: flex-start !important;
  margin-left: 0 !important;
}
/* 念のため、CTAがラッパーに入っていない場合も単体ボタンを左寄せ */
#advisor :is(h1,h2,h3) ~ :is(a,button,.btn){
  align-self: flex-start !important;
  margin-left: 0 !important;
}
/* KZ_ADVISOR_LOCK_20251011L3 END */
/* KZ_FOOTER_CLEAN_FIX_20251011M2 BEGIN */
/* まず、フッターのリンクは基本“有効”に戻す（前ルールの上書き） */
footer a{ pointer-events:auto; }

/* 法定系/ダミーだけを無効化（href パターンで限定） */
footer a[href="#"],
footer a[href=""],
footer a[href*="privacy"],
footer a[href*="policy"],
footer a[href*="terms"],
footer a[href*="legal"],
footer a[href*="tokusho"],
footer a[href*="commerce"],
footer a[href*="law"],
footer a[href*="特定商取引"],
footer a[href*="利用規約"],
footer a[href*="プライバシ"],
footer a[href*="個人情報"]{
  pointer-events:none; cursor:default;
  color:#aeb3b9; opacity:.72; text-decoration:none;
}

/* メール/電話は引き続き有効＆強調 */
footer a[href^="mailto:"],
footer a[href^="tel:"]{
  pointer-events:auto; color:#cfd5dc; text-decoration:none;
}
footer a[href^="mailto:"]:hover,
footer a[href^="tel:"]:hover{
  text-decoration: underline; text-underline-offset:2px;
}
/* KZ_FOOTER_CLEAN_FIX_20251011M2 END */
/* KZ_ADVISOR_TITLE_MATCH_20251011Q BEGIN */
/* 既存スケール（--h2 等）があれば優先、なければ 22–28px の安全域で固定 */
#advisor{
  --kz-service-title-size: var(--h2, clamp(22px, 2.4vw, 28px));
}

/* 見出しが h2 でも h3 でも、ここで同じサイズ・行間に揃える */
#advisor :is(h1,h2,h3){
  font-size: var(--kz-service-title-size) !important;
  line-height: 1.25 !important;
  margin-bottom: 0.6em !important;
}
/* KZ_ADVISOR_TITLE_MATCH_20251011Q END */
/* KZ_SERV_ALIGN_20251011F BEGIN */

/* 見出しサイズを3枚で完全一致（Safari/Chrome 差吸収） */
#kazera-ai h3,
#ios-dev h3,
#advisor h3{
  font-size: clamp(22px, 2.4vw, 28px) !important;
  line-height: 1.25 !important;
  margin: 0 0 .6em !important;
  text-wrap: balance;
}

/* グリッド列内の .content を“必ず左端”に寄せる
   （共通CSSの margin-left/right:auto を打ち消す） */
#kazera-ai .content,
#ios-dev .content,
#advisor .content{
  justify-self: start !important;   /* grid の水平方向起点を左に */
  margin-left: 0 !important;
  margin-right: auto !important;
  text-align: left !important;
}

/* 説明の最初の段落の折返し幅を統一（ch差異での見え方ズレを抑える） */
#kazera-ai .content > p:first-of-type,
#ios-dev  .content > p:first-of-type,
#advisor  .content > p:first-of-type{
  max-width: min(56ch, 90vw) !important;
  margin-left: 0 !important;
}

/* 自動挿入される要約クラス（.kz-acc-sum）がある場合も同幅に固定 */
#kazera-ai .kz-acc-sum,
#ios-dev  .kz-acc-sum,
#advisor  .kz-acc-sum{
  max-width: min(56ch, 90vw) !important;
  margin-left: 0 !important;
}
/* KZ_SERV_ALIGN_20251011F END */
