@charset "UTF-8";

/* ======================================================================
   K&Partners lower pages / kpunder-typeblog.css v013-sidebar-wrap-only

   目的:
   ・kpunder-v1.css v009-common は変更しない。
   ・新型ヘッダー／フッターを使用し、H1は移行用のコンパクトなタイトル帯にする。
   ・旧型下層ページ本文は、旧来のメイン本文幅720pxで収容する。
   ・外側の新型構造を維持しながら、旧HTMLの固定幅、画像、表を
     いきなり1200pxへ引き伸ばさず、安全に移行する。

   読み込み順:
   kpfirst.css
   → kprest.css
   → kpunder-v1.css
   → kpunder-typeblog.css（このファイル／旧本文720px互換）

   ====================================================================== */


/* ===== 001: TYPEBLOG compact H1 title ===== */

/*
 * TYPEBLOGは旧本文の移行用テンプレート。
 * 大型ヒーローにはせず、旧ページのタイトル位置を引き継ぎながら
 * 新型ヘッダー・パンくずに合うコンパクトなH1へ整える。
 */
body#top.kp-under-v1.kp-under-type-blog .kp-under-page-head {
  position: relative !important;
  left: auto !important;
  display: block !important;
  width: 100% !important;
  max-width: 720px !important;
  min-height: 0 !important;
  margin: 0 auto 30px !important;
  padding: 42px 0 18px !important;
  overflow: visible !important;
  background: transparent !important;
  border-bottom: 2px solid #123b75 !important;
  transform: none !important;
}

/*
 * ページタイトル欄をH1として表示。
 * ページタイトルが空の場合だけメニュー名を代替表示するHTML仕様は維持する。
 */
body#top.kp-under-v1.kp-under-type-blog .kp-under-title {
  position: relative !important;
  z-index: 1 !important;
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #082b67 !important;
  background: transparent !important;
  border: 0 !important;
  font-size: clamp(28px, 2.1vw, 34px) !important;
  font-weight: 800 !important;
  line-height: 1.35 !important;
  letter-spacing: .01em !important;
  text-align: left !important;
  writing-mode: horizontal-tb !important;
  overflow-wrap: anywhere !important;
  text-shadow: none !important;
}

body#top.kp-under-v1.kp-under-type-blog .kp-under-title::before,
body#top.kp-under-v1.kp-under-type-blog .kp-under-title::after {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  content: none !important;
  background: none !important;
}

/*
 * kpunder-v1.css側の「最初の本文ブロック上48px」を
 * TYPEBLOGだけ解除する。H1下30pxだけを間隔として使う。
 */
body#top.kp-under-v1.kp-under-type-blog
  .kp-under-block--first-content.kp-under-block--default-heading,
body#top.kp-under-v1.kp-under-type-blog
  .kp-under-block--first-content.kp-under-block--custom-heading,
body#top.kp-under-v1.kp-under-type-blog
  .kp-under-block--first-content.kp-under-block--no-heading {
  padding-top: 0 !important;
}


/* ===== 002: legacy-to-new width bridge ===== */

/*
 * kpunder-v1.cssの1200px safety自体は変更しない。
 * TYPEBLOGページだけ、後読みの互換レイヤーで
 * 旧型のメイン本文幅に合わせて最大720pxへ収める。
 *
 * これにより旧HTMLを980pxや1200pxへ無理に拡大せず、
 * 新型の外枠・ヘッダー・フッターへ接続できる。
 */
body#top.kp-under-v1.kp-under-type-blog .kp-under-content__safety,
body#top.kp-under-v1.kp-under-type-blog
  .kp-under-content > .kp-under-block:nth-child(n + 2) {
  width: min(720px, calc(100% - 48px)) !important;
  min-width: 0 !important;
  max-width: 720px !important;
  margin-right: auto !important;
  margin-left: auto !important;
}

/*
 * safety内の各ブロックは720px枠を基準にする。
 * ブロックそのものを固定幅にはせず、狭い画面では自然に縮める。
 */
body#top.kp-under-v1.kp-under-type-blog
  .kp-under-content__safety > .kp-under-block,
body#top.kp-under-v1.kp-under-type-blog
  .kp-under-content > .kp-under-block:nth-child(n + 2) {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  margin-right: 0 !important;
  margin-left: 0 !important;
  padding-right: 0 !important;
  padding-left: 0 !important;
}

/*
 * 旧型の720px前提・固定幅要素は元の幅を保ち、
 * 新しい720px枠の中央へ置く。
 * fullbleedだけは新型の展開指定を優先するため除外する。
 */
body#top.kp-under-v1.kp-under-type-blog
  .kp-under-content__safety > .kp-under-block > .kp-under-body >
  :not(.kp-under-fullbleed),
body#top.kp-under-v1.kp-under-type-blog
  .kp-under-content > .kp-under-block:nth-child(n + 2) >
  .kp-under-body > :not(.kp-under-fullbleed) {
  min-width: 0 !important;
  max-width: 100% !important;
  margin-right: auto !important;
  margin-left: auto !important;
  box-sizing: border-box !important;
}

/*
 * kpunder-v1.cssのclipで旧固定幅コンテンツが切れないようにする。
 * PCでは通常表示、狭い画面では本文領域内だけ横スクロールを許可する。
 */
body#top.kp-under-v1.kp-under-type-blog
  .kp-under-content__safety > .kp-under-block > .kp-under-body,
body#top.kp-under-v1.kp-under-type-blog
  .kp-under-content > .kp-under-block:nth-child(n + 2) > .kp-under-body {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  margin-right: 0 !important;
  margin-left: 0 !important;
  padding-right: 0 !important;
  padding-left: 0 !important;
  overflow-x: visible !important;
}

/*
 * 旧画像・動画・iframeが新しい本文枠からはみ出さないための最低限の保険。
 * 元画像を不必要に拡大しない。
 */
body#top.kp-under-v1.kp-under-type-blog .kp-under-body img,
body#top.kp-under-v1.kp-under-type-blog .kp-under-body video,
body#top.kp-under-v1.kp-under-type-blog .kp-under-body iframe {
  max-width: 100% !important;
}

body#top.kp-under-v1.kp-under-type-blog .kp-under-body img,
body#top.kp-under-v1.kp-under-type-blog .kp-under-body video {
  height: auto !important;
}

/*
 * 旧テーブルは内容幅を維持する。
 * PCで一律100%へ引き伸ばさない。
 */
body#top.kp-under-v1.kp-under-type-blog .kp-under-body table {
  max-width: 100% !important;
}


/* ===== 003: responsive bridge ===== */

@media screen and (max-width: 1024px) {
  body#top.kp-under-v1.kp-under-type-blog .kp-under-page-head {
    width: 100% !important;
    max-width: 720px !important;
    margin-bottom: 28px !important;
    padding: 36px 0 16px !important;
  }

  body#top.kp-under-v1.kp-under-type-blog .kp-under-title {
    font-size: clamp(27px, 3.3vw, 32px) !important;
  }

  body#top.kp-under-v1.kp-under-type-blog .kp-under-content__safety,
  body#top.kp-under-v1.kp-under-type-blog
    .kp-under-content > .kp-under-block:nth-child(n + 2) {
    width: min(720px, calc(100% - 48px)) !important;
    max-width: 720px !important;
  }
}

@media screen and (max-width: 768px) {
  body#top.kp-under-v1.kp-under-type-blog .kp-under-page-head {
    width: 100% !important;
    max-width: none !important;
    margin-bottom: 24px !important;
    padding: 28px 0 14px !important;
  }

  body#top.kp-under-v1.kp-under-type-blog .kp-under-title {
    font-size: clamp(23px, 6.2vw, 28px) !important;
    line-height: 1.4 !important;
  }

  body#top.kp-under-v1.kp-under-type-blog .kp-under-content__safety,
  body#top.kp-under-v1.kp-under-type-blog
    .kp-under-content > .kp-under-block:nth-child(n + 2) {
    width: calc(100% - 32px) !important;
    max-width: 720px !important;
  }

  /*
   * スマホでは旧固定幅要素を無理に再構成せず、
   * 切れる場合だけ本文内で横スクロールできるようにする。
   */
  body#top.kp-under-v1.kp-under-type-blog
    .kp-under-content__safety > .kp-under-block > .kp-under-body,
  body#top.kp-under-v1.kp-under-type-blog
    .kp-under-content > .kp-under-block:nth-child(n + 2) > .kp-under-body {
    overflow-x: auto !important;
    overflow-y: visible !important;
    -webkit-overflow-scrolling: touch;
  }
}

@media screen and (max-width: 420px) {
  body#top.kp-under-v1.kp-under-type-blog .kp-under-page-head {
    margin-bottom: 22px !important;
    padding: 24px 0 12px !important;
  }

  body#top.kp-under-v1.kp-under-type-blog .kp-under-title {
    font-size: 22px !important;
  }

  body#top.kp-under-v1.kp-under-type-blog .kp-under-content__safety,
  body#top.kp-under-v1.kp-under-type-blog
    .kp-under-content > .kp-under-block:nth-child(n + 2) {
    width: calc(100% - 24px) !important;
    max-width: 720px !important;
  }
}





/* ======================================================================
   K&Partners TYPEBLOG / dynamic category sidebar v003

   読み込み順:
   kpfirst.css
   -> kprest.css
   -> kpunder-v1.css
   -> kpunder-typeblog.css
   -> kpunder-typeblog-sidebar.css（このファイル）

   CMSの has_submenu / submenus / localmenus を使い、現在のページが属する
   メニュー分岐を右欄へ自動表示する。旧本文の720px幅は変更しない。
   ====================================================================== */

body#top.kp-under-v1.kp-under-type-blog .kp-typeblog-layout {
  display: block;
  width: min(980px, calc(100% - 48px));
  min-width: 0;
  max-width: 980px;
  margin-right: auto;
  margin-left: auto;
}

body#top.kp-under-v1.kp-under-type-blog
  .kp-typeblog-layout--with-sidebar {
  display: grid;
  grid-template-columns: 980px 280px;
  grid-template-rows: auto 1fr;
  align-items: start;
  column-gap: 24px;
  row-gap: 0;
  width: 980px;
  max-width: 980px;
}

/* safety 980pxの中央へ既存の旧本文720pxを置く。本文自体は変更しない。 */
body#top.kp-under-v1.kp-under-type-blog
  .kp-typeblog-layout > .kp-under-content__safety {
  grid-column: 1;
  grid-row: 2;
  justify-self: center;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 720px !important;
  margin-right: 0 !important;
  margin-left: 0 !important;
}

body#top.kp-under-v1.kp-under-type-blog
  .kp-typeblog-layout > .kp-under-page-head {
  grid-column: 1;
  grid-row: 1;
  justify-self: center;
  width: 100% !important;
  max-width: 720px !important;
}

/* ===== Desktop sidebar ===== */

body#top.kp-under-v1.kp-under-type-blog .kp-typeblog-sidebar {
  position: sticky;
  grid-column: 2;
  grid-row: 1 / span 2;
  top: 92px;
  min-width: 0;
  margin: 42px 0 56px;
  color: #18365f;
  background: #fff;
  border: 1px solid #cfdbe8;
  box-shadow: 0 12px 30px rgba(7, 31, 68, .10);
}

body#top.kp-under-v1.kp-under-type-blog .kp-typeblog-sidebar__details {
  margin: 0;
  padding: 0;
}

body#top.kp-under-v1.kp-under-type-blog .kp-typeblog-sidebar__summary {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 48px;
  margin: 0;
  padding: 12px 42px 12px 16px;
  color: #fff;
  background: linear-gradient(135deg, #071d40 0%, #0d3267 58%, #174d88 100%);
  border-bottom: 2px solid #c9aa55;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .14),
    0 5px 14px rgba(5, 27, 62, .12);
  font-size: 14px;
  font-weight: 800;
  line-height: 1.45;
  letter-spacing: .035em;
  cursor: pointer;
  list-style: none;
}

body#top.kp-under-v1.kp-under-type-blog
  .kp-typeblog-sidebar__summary::-webkit-details-marker {
  display: none;
}

body#top.kp-under-v1.kp-under-type-blog .kp-typeblog-sidebar__summary::after {
  position: absolute;
  right: 18px;
  width: 8px;
  height: 8px;
  content: "";
  border-right: 2px solid #e0c36f;
  border-bottom: 2px solid #e0c36f;
  transform: translateY(-3px) rotate(45deg);
  transition: transform .18s ease;
}

body#top.kp-under-v1.kp-under-type-blog
  .kp-typeblog-sidebar__details[open] > .kp-typeblog-sidebar__summary::after {
  transform: translateY(3px) rotate(225deg);
}

body#top.kp-under-v1.kp-under-type-blog .kp-typeblog-localnav {
  max-height: calc(100vh - 184px);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}

body#top.kp-under-v1.kp-under-type-blog .kp-typeblog-localnav__list,
body#top.kp-under-v1.kp-under-type-blog .kp-typeblog-localnav__children {
  display: block;
  margin: 0;
  padding: 0;
  list-style: none;
}

body#top.kp-under-v1.kp-under-type-blog .kp-typeblog-localnav__list li,
body#top.kp-under-v1.kp-under-type-blog .kp-typeblog-localnav__children li {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  margin: 0;
  padding: 0;
  border-bottom: 1px solid #dce5ef;
  overflow-x: hidden !important;
  overflow-y: visible !important;
  box-sizing: border-box;
}

body#top.kp-under-v1.kp-under-type-blog
  .kp-typeblog-localnav__list > li:last-child,
body#top.kp-under-v1.kp-under-type-blog
  .kp-typeblog-localnav__children > li:last-child {
  border-bottom: 0;
}

body#top.kp-under-v1.kp-under-type-blog
  .kp-typeblog-localnav__list > li > a,
body#top.kp-under-v1.kp-under-type-blog
  .kp-typeblog-localnav__list > li > .subnolink,
body#top.kp-under-v1.kp-under-type-blog
  .kp-typeblog-localnav__children a,
body#top.kp-under-v1.kp-under-type-blog
  .kp-typeblog-localnav__children .localnolink {
  position: relative;
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 44px;
  max-height: none !important;
  padding: 10px 34px 10px 16px;
  color: #153f78;
  background: #fff;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.5;
  text-decoration: none;

  white-space: normal !important;
  word-break: break-all !important;
  overflow-wrap: anywhere !important;
  text-wrap: wrap !important;

  overflow: visible !important;
  text-overflow: clip !important;
  -webkit-line-clamp: unset !important;

  box-sizing: border-box;
}


body#top.kp-under-v1.kp-under-type-blog
  .kp-typeblog-localnav__label {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: auto !important;
  white-space: normal !important;
  word-break: break-all !important;
  overflow-wrap: anywhere !important;
  text-wrap: wrap !important;
  overflow: visible !important;
  text-overflow: clip !important;
  -webkit-line-clamp: unset !important;
  line-height: inherit !important;
}


body#top.kp-under-v1.kp-under-type-blog
  .kp-typeblog-localnav__list > li > a::after,
body#top.kp-under-v1.kp-under-type-blog
  .kp-typeblog-localnav__children a::after {
  position: absolute;
  top: 50%;
  right: 16px;
  width: 7px;
  height: 7px;
  content: "";
  border-top: 1px solid currentColor;
  border-right: 1px solid currentColor;
  transform: translateY(-50%) rotate(45deg);
}

body#top.kp-under-v1.kp-under-type-blog
  .kp-typeblog-localnav__children {
  padding-left: 12px;
  background: #f3f7fb;
}

body#top.kp-under-v1.kp-under-type-blog
  .kp-typeblog-localnav__children a,
body#top.kp-under-v1.kp-under-type-blog
  .kp-typeblog-localnav__children .localnolink {
  height: auto !important;
  min-height: 40px;
  max-height: none !important;
  padding-left: 14px;
  background: #f3f7fb;
  font-size: 12px;
  font-weight: 500;
}

body#top.kp-under-v1.kp-under-type-blog
  .kp-typeblog-localnav__list > li.subselected > a,
body#top.kp-under-v1.kp-under-type-blog
  .kp-typeblog-localnav__list > li.subselected > .subnolink,
body#top.kp-under-v1.kp-under-type-blog
  .kp-typeblog-localnav__children > li.localselected > a,
body#top.kp-under-v1.kp-under-type-blog
  .kp-typeblog-localnav__children > li.localselected > .localnolink {
  color: #0a2852;
  background: #ffe56b;
  font-weight: 800;
}

body#top.kp-under-v1.kp-under-type-blog
  .kp-typeblog-localnav a:hover,
body#top.kp-under-v1.kp-under-type-blog
  .kp-typeblog-localnav a:focus-visible {
  color: #fff;
  background: #24599e;
  outline: 0;
}

body#top.kp-under-v1.kp-under-type-blog
  .kp-typeblog-localnav__list > li.subselected > a:hover,
body#top.kp-under-v1.kp-under-type-blog
  .kp-typeblog-localnav__list > li.subselected > a:focus-visible,
body#top.kp-under-v1.kp-under-type-blog
  .kp-typeblog-localnav__children > li.localselected > a:hover,
body#top.kp-under-v1.kp-under-type-blog
  .kp-typeblog-localnav__children > li.localselected > a:focus-visible {
  color: #0a2852;
  background: #ffe56b;
}

/*
 * 1340～1599pxは safety 980px＋間隔24px＋メニュー280px の
 * 全体1284pxを中央配置する。メニューは常にsafetyの外側。
 */
@media screen and (min-width: 1340px) and (max-width: 1599px) {
  body#top.kp-under-v1.kp-under-type-blog
    .kp-typeblog-layout--with-sidebar {
    margin-right: 0;
    margin-left: max(28px, calc((100vw - 1284px) / 2));
  }
}

/*
 * 1200px級を含む1339px以下ではsafety 980pxを維持し、
 * 横に入り切らないメニューだけをH1直下へ送る。
 */
@media screen and (max-width: 1339px) {
  body#top.kp-under-v1.kp-under-type-blog
    .kp-typeblog-layout--with-sidebar {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto auto auto;
    width: min(980px, calc(100% - 48px));
    max-width: 980px;
    margin-right: auto;
    margin-left: auto;
  }

  body#top.kp-under-v1.kp-under-type-blog
    .kp-typeblog-layout--with-sidebar > .kp-under-page-head {
    grid-column: 1;
    grid-row: 1;
  }

  body#top.kp-under-v1.kp-under-type-blog
    .kp-typeblog-layout--with-sidebar > .kp-typeblog-sidebar {
    grid-column: 1;
    grid-row: 2;
  }

  body#top.kp-under-v1.kp-under-type-blog
    .kp-typeblog-layout--with-sidebar > .kp-under-content__safety {
    grid-column: 1;
    grid-row: 3;
  }

  body#top.kp-under-v1.kp-under-type-blog .kp-typeblog-sidebar {
    position: static;
    justify-self: center;
    width: min(720px, 100%);
    margin: 0 0 32px;
  }

  body#top.kp-under-v1.kp-under-type-blog .kp-typeblog-localnav {
    max-height: 420px;
  }
}

@media screen and (max-width: 768px) {
  body#top.kp-under-v1.kp-under-type-blog .kp-typeblog-layout,
  body#top.kp-under-v1.kp-under-type-blog
    .kp-typeblog-layout--with-sidebar {
    width: calc(100% - 32px);
    max-width: 980px;
  }

  body#top.kp-under-v1.kp-under-type-blog .kp-typeblog-sidebar {
    margin: 0 0 26px;
  }

  body#top.kp-under-v1.kp-under-type-blog .kp-typeblog-sidebar__summary {
    min-height: 46px;
    font-size: 13px;
  }

  body#top.kp-under-v1.kp-under-type-blog .kp-typeblog-localnav {
    max-height: 60vh;
  }
}

@media screen and (max-width: 420px) {
  body#top.kp-under-v1.kp-under-type-blog .kp-typeblog-layout,
  body#top.kp-under-v1.kp-under-type-blog
    .kp-typeblog-layout--with-sidebar {
    width: calc(100% - 24px);
  }

  body#top.kp-under-v1.kp-under-type-blog .kp-typeblog-sidebar__summary {
    min-height: 44px;
    padding: 10px 38px 10px 13px;
    font-size: 12px;
  }

  body#top.kp-under-v1.kp-under-type-blog
    .kp-typeblog-localnav__list > li > a,
  body#top.kp-under-v1.kp-under-type-blog
    .kp-typeblog-localnav__list > li > .subnolink,
  body#top.kp-under-v1.kp-under-type-blog
    .kp-typeblog-localnav__children a,
  body#top.kp-under-v1.kp-under-type-blog
    .kp-typeblog-localnav__children .localnolink {
    min-height: 42px;
    padding-top: 9px;
    padding-bottom: 9px;
    font-size: 12px;
  }
}

/* ======================================================================
   004: 23区 町丁目別世帯数テーブル共通CSS
   目的:
   ・町丁目ごとの <td style="..."> 重複を廃止し、CMSブロック容量を削減する。
   ・足立区、大田区など町丁目数が多い区でも1ブロック内へ収めやすくする。
   ・BLOCK01側は class="kp-area-table" を付け、セルのインラインCSSを外す。
   ====================================================================== */

body#top.kp-under-v1.kp-under-type-blog .kp-area-table-wrap {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: #fff !important;
  border: 1px solid #9fb0c2 !important;
  box-sizing: border-box !important;
}

body#top.kp-under-v1.kp-under-type-blog table.kp-area-table {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #fff !important;
  border: 0 !important;
  border-collapse: collapse !important;
  border-spacing: 0 !important;
  table-layout: fixed !important;
  font-size: 15px !important;
  line-height: 1.5 !important;
}

body#top.kp-under-v1.kp-under-type-blog .kp-area-table thead th {
  padding: 12px 10px !important;
  background: #365c8d !important;
  border: 1px solid #294d78 !important;
  color: #fff !important;
  font-weight: 700 !important;
  text-align: center !important;
  vertical-align: middle !important;
}

body#top.kp-under-v1.kp-under-type-blog .kp-area-table thead th:first-child {
  width: 68% !important;
}

body#top.kp-under-v1.kp-under-type-blog .kp-area-table thead th:last-child {
  width: 32% !important;
}

body#top.kp-under-v1.kp-under-type-blog .kp-area-table tbody td {
  padding: 9px !important;
  border: 1px solid #c5d0db !important;
  text-align: center !important;
  vertical-align: middle !important;
  box-sizing: border-box !important;
}

body#top.kp-under-v1.kp-under-type-blog .kp-area-table tbody td:first-child {
  background: #fff !important;
  color: #222 !important;
  font-weight: 400 !important;
}

body#top.kp-under-v1.kp-under-type-blog .kp-area-table tbody td:last-child {
  background: #f2f6fa !important;
  color: #263f5b !important;
  font-weight: 600 !important;
}

body#top.kp-under-v1.kp-under-type-blog .kp-area-table tbody tr.kp-area-table__total th {
  padding: 11px 10px !important;
  background: #fff7df !important;
  border: 1px solid #e2b252 !important;
  color: #333 !important;
  font-weight: 700 !important;
  text-align: center !important;
  vertical-align: middle !important;
  box-sizing: border-box !important;
}

body#top.kp-under-v1.kp-under-type-blog .kp-area-table tbody tr.kp-area-table__total th:last-child {
  color: #e45b2a !important;
  font-size: 16px !important;
  font-weight: 800 !important;
}

body#top.kp-under-v1.kp-under-type-blog .kp-area-table-source {
  display: block !important;
  margin: 14px 0 0 !important;
  padding: 0 !important;
  color: #657383 !important;
  font-size: 12px !important;
  line-height: 1.75 !important;
}

body#top.kp-under-v1.kp-under-type-blog .kp-area-table-source a {
  color: #173f7a !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
}

@media screen and (max-width: 420px) {
  body#top.kp-under-v1.kp-under-type-blog table.kp-area-table {
    font-size: 14px !important;
  }

  body#top.kp-under-v1.kp-under-type-blog .kp-area-table thead th {
    padding: 10px 7px !important;
  }

  body#top.kp-under-v1.kp-under-type-blog .kp-area-table tbody td {
    padding: 8px 6px !important;
  }

  body#top.kp-under-v1.kp-under-type-blog .kp-area-table tbody tr.kp-area-table__total th {
    padding: 10px 7px !important;
  }
}

/* ======================================================================
   CMS dynamic sidebar / final wrap guard v014

   旧テーマの float・固定高・nowrap が後段で残っている環境でも、CMSから
   取得した可変長タイトルをメニュー幅の中で折り返し、行高を自動で広げる。
   ====================================================================== */
body#top.kp-under-v1.kp-under-type-blog .kp-typeblog-localnav__list li,
body#top.kp-under-v1.kp-under-type-blog .kp-typeblog-localnav__children li {
  float: none !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  white-space: normal !important;
  overflow: visible !important;
  box-sizing: border-box !important;
}

body#top.kp-under-v1.kp-under-type-blog .kp-typeblog-localnav__list > li > a,
body#top.kp-under-v1.kp-under-type-blog .kp-typeblog-localnav__list > li > .subnolink,
body#top.kp-under-v1.kp-under-type-blog .kp-typeblog-localnav__children a,
body#top.kp-under-v1.kp-under-type-blog .kp-typeblog-localnav__children .localnolink {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  align-items: center !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: none !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: anywhere !important;
  overflow: visible !important;
  text-overflow: clip !important;
  box-sizing: border-box !important;
}

body#top.kp-under-v1.kp-under-type-blog .kp-typeblog-localnav__label {
  display: block !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: auto !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: anywhere !important;
  line-break: strict !important;
  overflow: visible !important;
  text-overflow: clip !important;
  -webkit-line-clamp: unset !important;
}
