@charset 'UTF-8';
/* --------------------------------------------------
reset css
-------------------------------------------------- */
.wp-block-image,
.hcb_wrap,
.hcb_wrap pre.prism {
  margin: 0;
}


/* --------------------------------------------------
utility css
-------------------------------------------------- */
.u-bg-soft_red {
  background: #e06666;
}
.u-bg-soft_light_blue {
  background: #5e9ec3;
}
.u-bg-soft_green {
  background: #5eb569;
}
.u-bg-soft_purple {
  background: #8272d8;
}
.u-bg-soft_pink {
  background: #e076c4;
}
.u-bg-soft_yellow {
  background: #e2a700;
}
.u-bg-soft_blue {
  background: #3c74c7;
}


/* --------------------------------------------------
com color
-------------------------------------------------- */
.article h1 {
  border-left: .4em solid #0f488a;
}
.u-post_main_color,
.article h2,
.article caption::before,
.wp-block-group__inner-container> p:first-of-type::before,
.wp-block-image figcaption::before {
  background: #0f488a;
}
.article dt::before {
  color: #0f488a;
}
.article caption,
.wp-block-group__inner-container> p:first-of-type,
.wp-block-image figcaption {
  border-bottom: 3px dashed #0f488a;
}


/* --------------------------------------------------
layout
-------------------------------------------------- */
.l-outer {
  margin: 0 auto;
  max-width: 1100px;
}
.l-inner {
  padding: 40px 2%;
}
@media screen and (max-width: 767px) {
  .l-inner {
    padding: 40px 2% 44px;
  }
}
@media screen and (max-width: 479px) {
  .l-inner {
    padding: 32px 8px 44px;
  }
}


/* --------------------------------------------------
module
-------------------------------------------------- */
.breadcrumb {
  border-left: none;
  border-right: none;
  margin: 0 0 36px;
  padding: .5em .8em .4em;
}


/* --------------------------------------------------
base font
-------------------------------------------------- */
body {
  font-size: 15px;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: 'Noto Sans JP', sans-serif;
  line-height: 1.4;
}
@media screen and (max-width: 767px) {
  body {
    font-size: 14px;
  }
}


/* --------------------------------------------------
main
-------------------------------------------------- */
.container .l-inner {
  display: flex;
}
main {
  margin: 0 20px 0 0;
  width: calc(100% - 220px - 20px);
}
@media screen and (max-width: 899px) {
  .container .l-inner {
    display: block;
  }
  main {
    margin: 0;
    width: 100%;
  }
}


/* --------------------------------------------------
article
-------------------------------------------------- */
.article {
  background: #fff;
  padding: 32px 5% 50px;
}
.article h1 {
  font-size: 40px;
  font-weight: bold;
  line-height: 1.2;
  margin: 0 0 .5em;
  padding: .1em .5em .12em .3em;
}
.article h1 br {
  display: none;
}
.wp-block-group,
.wp-block-image.size-full {
  margin: 0 auto 50px;
}
.article .breadcrumb+ #toc_container+ h2 {
  margin-top: 0;
}
.article h2 {
  color: #fff;
  font-size: 23px;
  margin: 64px 0 30px;
  padding: .4em 1em .45em .9em;
}
.article a {
  color: #e60b29;
  text-decoration: underline;
  transition: opacity .3s ease-in-out;
}
.article a:hover {
  opacity: .6;
}
.article p {
  margin: 0 0 40px;
  max-width: 45em;
  padding: 0 .8em;
}
.wp-block-group__inner-container> p:first-of-type {
  margin: 0 0 20px;
}
.wp-block-group__inner-container> p:first-of-type {
  max-width: none;
}
.wp-block-group__inner-container> p:not(:first-of-type) {
  margin-bottom: 12px;
}
.article caption,
.wp-block-group__inner-container> p:first-of-type,
.wp-block-image figcaption {
  font-size: 16px;
  font-weight: bold;
  line-height: 1.4;
  margin: -.4em 0 18px;
  padding: .4em 0 .4em 2.4em;
  position: relative;
}
.article dd caption,
.article dd .wp-block-group__inner-container> p:first-of-type,
.article dd .wp-block-image figcaption {
  font-size: 15px;
  font-weight: normal;
  padding: .4em 0 .4em 1.8em;
  text-shadow: 0 0 0 #0e0e0e;
}
.article caption::before,
.wp-block-group__inner-container> p:first-of-type::before,
.wp-block-image figcaption::before {
  content: '';
  display: block;
  height: 1.6em;
  left: 0;
  margin: -.9em 0 0;
  position: absolute;
  top: 50%;
  width: 1.6em;
}
.wp-block-group__inner-container> p:first-of-type+ dl {
  margin-top: 0;
}
.article dd caption::before,
.article dd .wp-block-group__inner-container> p:first-of-type::before,
.article dd .wp-block-image figcaption::before {
  height: 1.15em;
  margin: -9px 0 0;
  width: 1.15em;
}
.article ul,
.article ol {
  margin: 0 0 40px;
  max-width: 45em;
  padding: 0 .4em;
}
.article dd ul {
  margin: 0 0 20px -0.15em;
}
.article dd ol {
  margin: 0 0 20px;
}
.article li {
  line-height: 1.6;
}
.article ul li {
  text-indent: -.9em;
}
.article ul li:not(:last-of-type) {
  padding: 0 0 6px .9em;
}
.article ul li:last-of-type {
  padding: 0 0 0 .9em;
}
.article ul li::before {
  background: #0e0e0e;
  border-radius: 50%;
  content: '';
  display: inline-block;
  height: 5px;
  margin: 0 9px 0 0;
  position: relative;
  top: -1px;
  vertical-align: middle;
  width: 5px;
}
.article ol {
  counter-reset: ol-counter;
}
.article ol li {
  list-style: none;
  text-indent: -27px;
}
.article ol li:not(:last-of-type) {
  padding: 0 0 8px 27px;
}
.article ol li:last-of-type {
  padding: 0 0 0 27px;
}
.article ol li::before {
  background: #4071ad;
  border-radius: 50%;
  box-sizing: border-box;
  color: #fff;
  content: counter(ol-counter);
  counter-increment: ol-counter;
  display: inline-block;
  font-family: 'Istok Web', sans-serif;
  font-size: 13px;
  height: 21px;
  margin: 0 6px 0 0;
  padding: 2px 0 0 1px;
  position: relative;
  text-align: center;
  text-indent: 0;
  top: -1px;
  width: 21px;
}
.article ol li:nth-of-type(1)::before {
  padding: 2px 0 0 0;
}
.article table {
  border: 1px solid #9ca9af;
  margin: 50px 0 50px;
  width: 100%;
}
.article caption {
  text-align: left;
}
.article th,
.article td {
  border-bottom: 1px solid #9ca9af;
  font-size: 14px;
  line-height: 1.6;
  padding: .6em 1em .5em;
}
.article th.highlight,
.article td.highlight {
  background-color: #dadfe2;
}
.article th {
  background: #f6f7f8;
  font-weight: normal;
  text-align: left;
  text-shadow: 0 0 0 #0e0e0e;
  word-break: keep-all;
}
.article th[colspan],
.article td[colspan] {
  text-align: center;
}
.article td {
  border-left: 1px solid #9ca9af;
}
.article dl {
  margin: -.4em 0 40px;
  padding: .4em .4em 0;
}
.article dt,
.article dd {
  max-width: 45em;
}
.article dt {
  font-size: 16px;
  line-height: 1.4;
  margin: 0 0 .9em;
  padding: 0 0 0 38px;
  position: relative;
  text-shadow: 0 0 0 #0e0e0e, 0 0 0 #0e0e0e;
}
.article dt::before {
  content: '\f058';

/*ver 4.7 */
  font-family: 'FontAwesome';
  font-size: 2em;
  font-weight: bold;
  left: 0;
  line-height: 1.0;
  margin: -.55em 0 0;
  padding: 0 .3em 0 0;
  position: relative;
  position: absolute;
  text-shadow: none;
  top: 4px;
  top: 50%;
}
.article dd {
  padding: 0 0 1.2em 39px;
  position: relative;
}
.article dd:not(:last-of-type) {
  margin: 0 0 1.7em;
}
.article dd> :not(img):not(.wp-block-image):last-child {
  margin-bottom: 0;
}
/* 下ボーダーはdlの左padding分だけ欠ける */
.article> dl,
.article> div dl {
  position: relative;
}
.article> dl::before,
.article> dl::after,
.article> div dl::before,
.article> div dl::after {
  bottom: 0;
  content: '';
  display: block;
  left: 0;
  position: absolute;
}
.article> dl::after,
.article> div dl::after {
  border-bottom: 1px solid #9ca9b0;
  width: 100%;
  z-index: 1;
}
.article> dl::before,
.article> div dl::before {
  border-bottom: 1px solid #fff;
  width: 0.4em;
  z-index: 2;
}
/* ----- ここまで ----- */
.article dd ul+ p {
  margin: -6px 0 20px;
}
.article dd p {
  margin: 0 0 20px;
  padding: 0;
}
/*
プラグインを利用した dl の入れ子レイアウト
*/
.article dl dl {
  padding: 0.8em 0 0;
}
.article dl dl div:not(:last-of-type) {
  margin: 0 0 1.2em;
}
.article dl dl dt {
  margin: 0 0 0.4em;
  padding: 0;
  font-size: 15px;
  text-shadow: none;
}
.article dl dl dt::before {
  display: none;
}
.article dl dl dd {
  padding: 0 0 0 1.3em;
  white-space: normal;
  /* 日本語は自然に改行 */
  word-break: normal;
  /* 日本語寄りの綺麗な改行 */
  line-break: strict;
  /* 英語のカンマやスペースでも折れる */
  overflow-wrap: anywhere;
}
.article dl dl dd::after {
  display: none;
}
/* ここまで */
.wp-block-image {
  display: flex;
  flex-wrap: wrap;
}
/* .wp-block-image img, */
.wp-block-image figcaption {
  flex: 0 1 100%;
}
.wp-block-image img {
  order: 2;
}
.wp-block-image figcaption {
  order: 1;
}
.article img {
  border: 1px solid #b7bbbb;
}
.article dd table,
.article dd .wp-block-image,
.article p> img,
.article li> img,
.article dt> img,
.article dd> img {
  margin: 24px 0;
}
.article dd .wp-block-image img {
  margin: 0;
}
/* article の最後の子要素の余白を削除する */
.article> :last-child,
.article div> :last-child,
.article p :last-child:not(img),
.article li :last-child {
  margin-bottom: 0;
}
/* 最後が文章で終わる場合 */
.article> p:last-child {
  margin-bottom: 1em;
}
/* plugin Table of Contents Plus ---------- */
#toc_container {
  display: none;
}
/* plugin Highlighting Code Block */
/* .hcb_wrap {
  margin: -6px 0 0;
}
.wp-block-group p:not(:first-of-type)+ .hcb_wrap {
  margin: 0;
} */
@media screen and (max-width: 767px) {
  .article {
    padding: 20px 5% 50px;
  }
  .article h1 {
    font-size: 28px;
  }
  .article h2 {
    font-size: 20px;
    margin: 50px 0 26px;
  }
  .article p {
    margin: 0 0 34px;
  }
  .article p img,
  .article li img,
  .article dt img,
  .article dl img {
    margin: 16px 0;
  }
}
@media screen and (max-width: 583px) {
  .article h1 {
    font-size: 26px;
  }
  .article .breadcrumb+ #toc_container+ h2 {
    margin-top: 30px;
  }
  .article h2 {
    margin: 40px 0 22px;
  }
  .article p {
    margin: 0 0 30px;
  }
  .article caption,
  .wp-block-group__inner-container> p:first-of-type {
    font-size: 15px;
  }
  .article table {
    border-bottom: none;
    margin: 0 0 50px;
  }
  .article th,
  .article td {
    display: block;
    font-size: 13px;
    width: 100%;
  }
  .article th[colspan] {
    text-align: center;
  }
  .article td {
    border-left: none;
  }
  .article td.highlight {
    background: none;
  }
  .article dt {
    font-size: 15px;
    padding: 0 0 0 36px;
  }
  .article dd {
    padding: 0 0 1.2em 37px;
  }
  .article dd .wp-block-image figcaption {
    font-size: 14px;
  }
}
@media screen and (max-width: 479px) {
  .article {
    padding: 16px 8px 40px;
  }
  .article h1 {
    font-size: 24px;
  }
  .article h2 {
    font-size: 18px;
  }
  .article dt {
    margin: 0 0 1.2em;
  }
  .article dd {
    padding: 0 0 1.2em .4em;
  }
  .article p img,
  .article li img,
  .article dt img,
  .article dl img {
    margin: 12px 0;
  }
  .article> p:last-child {
    margin-bottom: 0;
  }
}


/* --------------------------------------------------
sidebar
-------------------------------------------------- */
.invisible_header {
  height: 40px;
  left: 0;
  pointer-events: none;
  top: 0;
  width: 100%;
  z-index: -1;
}
.invisible_header.is-float_floated {
  position: fixed;
}
.side_content {
  width: 220px;
}
.side_content-inner {
  /* 上端: 40px, 下端: 40px */
  height: calc(100vh - 80px);
  top: 40px;
  width: 220px;
}
.side_content-inner.is-float_floated {
  position: fixed;
  z-index: 1;
}
.side_content-inner.is-float_canceled {
  position: absolute;
}
@media screen and (max-width: 899px) {
  .side_content-inner {
    height: auto;
  }
}

/* --------------------------------------------------
slide_nav
-------------------------------------------------- */
.page_nav {
  background: #fff;
  margin: 0 0 10px;
}
.page_nav-title {
  color: #fff;
  font-size: 13px;
  font-weight: bold;
  padding: 5px 0 3px .9em;
}
.page_nav-title.u-before_font_icon::before {
  content: '\f0ca';
  font-family: 'FontAwesome';
  font-size: 15px;
  font-weight: normal;
  padding: 0 .5em 0 0;
  position: relative;
  top: -.05em;
}
.page_nav .u-border_content_outline {
  border-top: none;

/*
  上端: 40px, 見出し: 31px, 余白: 10px, sample: 92px, 余白: 10px,
  to_top: 45px, 下端: 40px;
  */
  max-height: calc(100vh - 268px);
  overflow-y: auto;
}
.page_nav li {
  position: relative;
}
.page_nav li:not(:last-of-type)::after {
  background: #d4d4d8;
  bottom: 0;
  content: '';
  display: block;
  height: 1px;
  left: 0;
  margin: 0 0 0 6%;
  position: absolute;
  width: 88%;
}
.page_nav a {
  display: block;
  font-size: 13px;
  line-height: 1.4;
  min-height: 45px;
  padding: 14px 18px 12px 26px;
  position: relative;
  transition: color .2s ease-in-out;
}
.page_nav li.is-current a,
.page_nav a:hover {
  color: #e60b29;
}
.page_nav li::before {
  background: #e60b29;
  content: '';
  display: inline-block;
  height: 8px;
  left: 0;
  margin: 18px 0 0 13px;
  position: absolute;
  top: 0;
  vertical-align: middle;
  visibility: hidden;
  width: 8px;
}
.page_nav li.is-current::before {
  visibility: visible;
}
.slide_nav-toggle_btn {
  display: none;
}
@media screen and (max-width: 899px) {
  .slide_nav {
    visibility: hidden;
  }
  .slide_nav.is-showed {
    visibility: visible;
  }
  .slide_nav_content_outer {
    background: #fefefe;
    border-left: 1px solid #aaa;
    height: 120%;
    margin: 0 -250px 0 0;

/*
    position: fixed だと iPhone のときに、範囲外が描画されない不具合が出た。
    position を absolute にしたら改善
    → 高さ調整で height を 120% から 100% に変更した。
    ↓
    もろもろ調整した結果、症状が出ない仕様になったのと、
    それに合わせて帳尻あわせで fixed に戻している。
    */
    position: fixed;
    right: 0;
    top: 0;

/*
    transition の対象を margin に絞ると、表示時は正しくアニメーションするが
    非表示時に a 要素の赤い ■ 以外が瞬時に消えてしまうので、対象を絞っていない。
    */
    transition: .2s ease-out;
    width: 250px;
    z-index: 12;
  }
  .slide_nav_content_inner {
    height: 83.3333%; /* 120:100=100:x */
    overflow-y: auto;
  }
  .slide_nav.is-showed .slide_nav_content_outer {
    margin: 0 0 0 0;
  }
  .slide_nav_content {
    padding: 10px 0 10px 10px;
  }
  .page_nav {
    margin: 0 auto 36px;
    position: relative;
    z-index: 2;
  }
  .page_nav .u-border_content_outline {
    border-color: #d4d4d8;
    border-left: none;
    border-right: none;
    max-height: none;
  }
  .page_nav li:not(:last-of-type)::after {
    margin: 0;
    width: 100%;
  }
  .slide_nav-toggle_btn {
    background: #ef065b;
    color: #fff;
    display: block;
    font-size: 11px;
    height: 66px;
    margin: -30px -250px 0 0;
    padding: 37px 0 0 9px;
    position: fixed;
    right: 0;
    text-align: left;
    top: 50%;
    transition: margin .2s ease-out;
    visibility: visible;
    width: 290px;
    z-index: 11;
  }
  .slide_nav.is-showed .slide_nav-toggle_btn {
    margin: -30px 0 0;
  }
  .slide_nav-toggle_btn::before {
    border-right: 2px solid #fff;
    border-top: 2px solid #fff;
    content: '';
    display: block;
    height: 9px;
    left: 0;
    margin: 0 0 0 17px;
    position: absolute;
    top: 17px;
    transform: rotate(-135deg);
    width: 9px;
  }
  .slide_nav.is-showed .slide_nav-toggle_btn::before {
    margin: 0 0 0 11px;
    transform: rotate(45deg);
  }
  .slide_nav-overlay {
    background: rgba(0, 0, 0, .3);
    height: 120%;
    left: 0;
    margin: 0 0 0 100%;
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 10;
  }
  .slide_nav.is-showed .slide_nav-overlay {
    margin: 0;
    transition: margin .1s ease-out;
  }
  /* ロード時にスライドナビが画面外に出るまでに非表示にしておく処理 */
  .slide_nav_content_outer,
  .slide_nav-toggle_btn {
    /* steps() に 0 を指定するとエラーになる */
    animation: loadFix .2s steps(1);
  }
  @keyframes loadFix {
    0% {
      opacity: 0;
    }
    100% {
      opacity: 1;
    }
  }
}
@media screen and (max-width: 767px) {
  html.is-disabled_scroll,
  body.is-disabled_scroll {
    height: 100vh;
    left: 0;

/* overflow: hidden; */ /* 無い方が良さそう */
    position: fixed; /* 必須 */
    width: 100vw;
  }
  .slide_nav_content {
    /*
    // height でも min-height でも OK
    // IE Fix (フォールバック)
    height: 120vh;
    // var(変数, 初期値)
    // ：変数を利用した処理
    //   初期値：変数を取得できなかった場合に利用される
    height: calc(var(--vh, 1vh) * 120);
    */
    /* スマホ用に右下までナビをスクロールするための余白 */
    /*
    [--percent_height] には単位が [%] で、ブラウザの高さいっぱいとなる数値で渡ってくる
    var val = window.innerHeight * 100 / 249;
    249px：親要素の幅
    249px:100% = ブラウザの高さ:X%
    ※[%] 指定なので、親要素の幅基準です
    */
    padding: calc(var(--vh_as_percent, 100vh) - 76px) 0 10px 10px;

    /*
    [vh] でも同じことをしてみた版
    実機で確認すると、PC でのスマホサイズ検証のときと比べて、
    スライドナビのスクロールで隠せる高さが結構ずれてしまったので、
    vh を基準とした算出は諦める。
    */
    /* padding: calc(100vh * var(--vh, 100) / var(--sh, 100) - 76px) 0 10px 10px; */
  }
  .slide_nav-toggle_btn {
    bottom: 46px;
    height: 60px;
    padding: 33px 0 0 9px;
    top: auto;
  }
  .slide_nav-toggle_btn::before {
    top: 14px;
  }
  .page_nav a:hover {
    color: inherit;
  }
}


/* --------------------------------------------------
to_top
-------------------------------------------------- */
.to_top {
  bottom: 0;
  margin: 0 0 -85px;
  position: absolute;
  transition: margin .3s ease, opacity .3s ease-out;
  z-index: 3;
}
.to_top.is-float_floated {
  margin: 0;
}
@media screen and (max-width: 899px) {
  .to_top {
    margin: 0;
    padding: 0 0 0 2.8em;
    position: relative;
    text-align: left;
    transition: opacity .2s ease-out;
    width: 100%;
  }
  .to_top::before {
    height: 8px;
    margin: 20px 0 0 14px;
    width: 8px;
  }
}


/* --------------------------------------------------
sample_nav
-------------------------------------------------- */
.sample_nav {
  background: #fff;
}
.sample_nav-list li {
  position: relative;
  width: 100%;
}
.sample_nav-list li.u-after_symbol::after {
  background: #d4d4d8;
  bottom: 0;
  content: '';
  display: block;
  height: 1px;
  left: 0;
  margin: 0 0 0 6%;
  position: absolute;
  width: 88%;
}
.sample_nav-list a {
  display: block;
  font-size: 13px;
  padding: 12px 1.5em 10px 1.3em;
  transition: color .2s ease-in-out;
}
.sample_nav-list a:hover {
  color: #ef0202;
}
.sample_nav-list a::after {
  content: '\f08e';
  display: inline-block;
  font-family: 'FontAwesome';
  line-height: 1.0;
  padding: 0 0 0 .3em;
  vertical-align: middle;
}
@media screen and (max-width: 899px) {
  .sample_nav {
    background: #000;
    border: none;
    bottom: 0;
    color: #fff;
    left: 0;
    margin: 0 0 -45px 0;
    position: fixed;
    width: 100%;
    z-index: 1;
  }
  .sample_nav.is-float_floated {
    margin: 0;
  }
  .sample_nav-list-half {
    display: flex;
  }
  .sample_nav-list-full li {
    width: 100%;
  }
  .sample_nav-list-half li {
    position: relative;
    width: 50%;
  }
  .sample_nav-list li.u-after_symbol::after {
    background: #61646b;
    border: none;
    height: 25px;
    left: auto;
    margin: -12px 0 0;
    position: absolute;
    right: 0;
    top: 50%;
    width: 1px;
  }
  .sample_nav-list a {
    font-size: 12px;
    height: 45px;
    line-height: 47px;
    padding: 0 1em;
    text-align: center;
    transition: opacity .3s ease-out;
  }
  .sample_nav-list a:hover {
    color: inherit;
    opacity: .5;
  }
}
/* URL コピーボタン */
.copy-url-block {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.7em 1.2em;
}
.copy-url-block p {
  margin: 0 !important;
  line-height: 1.5;
}
.copy-url-btn-wrap {
  position: relative;
  flex: 0 0 auto;
  width: 8em;
}
.copy-url-btn {
  background: #389b360f;
  color: #389b36;
  border: 2px solid #389b36a6;
  font-weight: bold;
  border-radius: 5px;
  cursor: pointer;
  transition: background .25s ease-out, border .25s ease-out, color .25s ease-out;
}
.copy-url-btn:hover {
  /* opacity: 0.7; */
  background: #389b36;
  border: 2px solid #389b36;
  color: #fff;
}
.copy-url-tooltip {
  position: absolute;
  color: #fff;
  white-space: nowrap;
  font-size: 11px;
  padding: 5px 10px 3px;
  border-radius: 5px;
  font-weight: bold;
  background: #888;
  left: 0;
  top: 100%;
  margin: 5px 0 0 0;
  opacity: 0;
  pointer-events: none;
  z-index: 3;
}
/* アニメーション用のエフェクト */
.copy-url-tooltip.animateable {
  animation: tooltipScale 2s ease-in forwards;
  transform: scale(0.7);
}
@keyframes tooltipScale {
  0% {
    transform: scale(0.7);
    opacity: 0;
  }
  5% {
    transform: scale(1);
    opacity: 1;
  }
  95% {
    transform: scale(1);
    opacity: 1;
  }
  100% {
    /* transform: scale(1.1); */
    transform: scale(1);
    opacity: 0;
  }
}
@media screen and (max-width: 583px) {
  .copy-url-block {
    justify-content: space-between;
  }
  .copy-url-block p {
    flex: 0 1 auto;
    min-width: 0;
  }
  .copy-url-btn-wrap {
    width: auto;
  }
  .copy-url-tooltip {
    right: 0;
    left: auto;
  }
}
