@import 'https://cdnjs.cloudflare.com/ajax/libs/remixicon/4.6.0/remixicon.min.css';
/*
  MARK: All
*/

.gray-breadcrumb-outer,
.gray-main,
.recommand-articles,
.recommand-categories {
  /* font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; */
  /* 一部のAndroid端末でfont-weight:boldが効かない */
  font-family: ui-sans-serif, system-ui, sans-serif;
  font-feature-settings: normal;
  font-variation-settings: normal;
  -webkit-tap-highlight-color: transparent;
}

/*
  MARK: breadcrumb
*/

.gray-breadcrumb-outer {
  /* background-color: #f3f4f6; */
  background-color: #f9fafb;
  .container {
    max-width: 1280px;
    padding-inline: 2em;
    width: 100%;
    @media (max-width: 768px) {
      padding-inline: 1em;
    }

    .breadcrumb {
      white-space: nowrap;
      overflow-x: auto;
    }
  }
}

/*
  MARK: gray-main
*/

.gray-main {
  background-color: #f9fafb;
}
.gray-main__inner {
  display: block grid;
  gap: 2em;
  grid-template-columns: 2fr 1fr;
  align-items: start;
  max-width: 1280px;
  width: 100%;
  padding: 2em 2em 4em;
  margin-inline: auto;
  & > * {
    overflow: hidden;
  }
  @media (max-width: 768px) {
    grid-template-columns: 1fr;
    padding: .5em 1em 4em;
  }
}
.gray-article__banners,
.gray-aside {
  display: block grid;
  gap: 2em;
  align-content: flex-start;
  img {
    vertical-align: bottom;
    max-width: 100%;
    width: 100%;
    height: auto;
    border-radius: 16px;
  }
}
.gray-aside {
  position: sticky;
  top: 0;
  @media (max-width: 768px) {
    position: static;
  }
}
.gray-article__inner {
  background-color: #fff;
  border-radius: 16px;
  padding: 2em;
  @media (max-width: 768px) {
    padding: 2em 1em 2em;
  }
}
.gray-article__banners {
  margin-block-start: 2em;
}
.gray-article__header {
  display: block grid;
  gap: 1.5em;
  margin-block-end: 2em;
}
.gray-article__title {
  font-weight: bold;
  margin: 0 !important;
  font-size: 1.75em;
  line-height: 1.4;
  color: #111827 !important;
}
.gray-article__date {
  color: #166534;
  margin-block: 0;
  padding: 1em;
  font-size: 1.1em;
  background-color: #f0fdf4;
  border-left: 4px solid #4ade80;
}
.gray-article__image {
  img {
    display: block;
    max-width: 100%;
    width: 100%;
    height: auto;
    border-radius: 16px;
  }
}
.categories-list {
  display: block flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 1em;
}
.categories-item a {
  display: inline-block;
  color: #fff;
  border-radius: 8px;
  padding: .5em 1em;
  &:hover {
    color: #fff;
    text-decoration: none;
  }
}
.categories-item-single {
  margin-block: 0;
}
.categories-item-single span,
.categories-item-single a {
  border-radius: calc(1px * infinity);
  color: #fff;
  padding: .25em 1em;
}
.categories-item-single a {
  &:hover {
    color: #fff;
    text-decoration: none;
  }
}
.gray-article__footer {
  margin-block-start: 2em;
  border-top: 1px solid #e5e7eb;
  padding-block-start: 2em;
}
.gray-article__sns {
  display: block grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1em;

  img {
    display: block;
    max-width: 100%;
    width: 100%;
    height: auto;
  }
}

/*
  MARK: editor
*/

.gray-article__content {
  font-family: ui-sans-serif, system-ui, **Roboto**, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-feature-settings: normal;
  font-variation-settings: normal;
  color: #374151;
  /* font-size: 1.25em; */
  font-size: 18px;
  /* line-height: 1.625; */
  line-height: 1.8;

  .container, .row, *[class^="col-"] {
    all: unset;
  }
  #toc_container {
    width: 100%;
    padding: 2em;
    margin-block: 2em;
    /* border-width: 0; */
    border-radius: 16px;
    border-color: #e5e7eb;
    background-color: #f9fafb;
    li {
      margin-block: .5em 0;
    }
  }
  blockquote {
    all: unset;
  }
  table {
    width: 100%;
    font-size: 14px;
    border-collapse: collapse;
    margin-block: 2em;
    th, td {
      padding: .75em 1em;
      border: 1px solid #e5e7eb !important;
    }
  }
  .wp-block-table.is-style-stripes tr:nth-child(odd) {
    background-color: #f9fafb;
  }

  h1, h2, h3, h4, h5, h6 {
    font-weight: bold;
    color: #111827;
    line-height: 1.4;
    margin-block-start: 1.5em;
    margin-block-end: .5em;
  }
  h1 {
    font-size: 1.35em;
  }
  h2 {
    font-size: 1.35em;
  }
  h3 {
    font-size: 1.125em;
  }
  h4 {
    font-size: 1em;
  }
  h5 {
    font-size: .9em;
  }
  h6 {
    font-size: .8em;
  }
  p {
    margin-block: 1em 0;
  }
  ul, ol {
    margin-block: 1em 0;
    padding-inline-start: 1.5em;
    li {
      margin-block: .5em 0;
    }
  }
  & > ul {
    margin-block: 2em;
    padding-inline-start: 0;
    & > li {
      position: relative;
      list-style: none;
      padding-inline-start: 1.5em;
    }
    & > li::before {
      content: "\eb7b";
      font-family: remixicon !important;
      font-style: normal;
      font-weight: normal;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      color: #2563eb;
      position: absolute;
      left: 0;
    }
  }
  & > ol {
    margin-block: 2em;
    padding-inline-start: 0;
    counter-reset: custom-counter;
    & > li {
      position: relative;
      list-style: none;
      padding-inline-start: 2em;
    }
    & > li::before {
      counter-increment: custom-counter;
      content: counter(custom-counter);
      line-height: 1;
      font-size: .8em;
      width: 2em;
      height: 2em;
      line-height: 2;
      font-weight: normal;
      text-align: center;
      color: #fff;
      background-color: #1e40af;
      border-radius: 100%;
      position: absolute;
      left: 0;
    }
  }
  & > ol:has(li li),
  & > ul:has(li li) {
    & > li {
      font-weight: bold;
    }
    ul, ol {
      margin-block: .5em 1em;
      padding-inline-start: 0;
    }
    li li {
      font-weight: normal;
      font-size: .8em;
    }
    li li:first-child {
      margin-block-start: 0;
    }
  }
  iframe {
    display: block;
    width: 100%;
    max-width: 100%;
    margin-block: 1em 0;
  }
  iframe:not(.wp-embedded-content) {
    aspect-ratio: 16 / 9;
    height: auto;
  }
  .wp-block-image {
    margin-block: 1em;
  }
  img {
    max-width: 100%;
    height: auto;
  }
  .wp-block-media-text {
    background-color: #f9fafb;
    border-radius: 16px;
    padding: 1.5em;
    margin-block: 2em;
  }
  @media (max-width: 600px) {
    .wp-block-media-text.is-stacked-on-mobile {
      gap: 2em;
      .wp-block-media-text__content {
        padding-inline: 0;
      }
    }
  }
  .wp-block-media-text__content {
    & > *:first-child {
      margin-block-start: 0;
    }
    p {
      font-size: .8em;
    }
  }
  .wp-block-media-text__media {
    img {
      border-radius: 16px;
      height: auto;
      max-width: 100%;
      width: 100%;
    }
  }
  .wp-block-pullquote {
    background-color: #eff6ff;
    border: 1px solid #bfdbfe;
    padding: 1em 1.5em;
    color: #1e40af;
    border-radius: 16px;
    margin-block: 1em 0;
    text-align: left;

    blockquote > *:first-child {
      margin-block-start: 0;
    }
    blockquote {
      text-align: left;
      p {
        font-weight: bold;
        font-size: 18px;
        margin-block-end: .75em;

        &::before {
          content: "\ee59";
          font-family: remixicon !important;
          font-style: normal;
          -webkit-font-smoothing: antialiased;
          -moz-osx-font-smoothing: grayscale;
          color: #2563eb;
          margin-inline-end: .25em;
        }
      }
      cite {
        display: block;
        text-align: left;
        font-size: 14px;
        font-style: normal;
        line-height: 1.4;
      }
      a {
        display: inline-block;
        background-color: #2563eb;
        font-size: 16px;
        border-radius: 8px;
        color: #fff;
        padding: .25em 1em;
        margin-block-start: 1em;
        &:hover {
          text-decoration: none;
        }
      }
    }
  }
  .wp-block-button {
    margin-block: 1em 0;
  }
  .banners-area.is-column {
    margin-block: 2em 0;
    img {
      width: 100%;
      max-width: 100%;
      height: auto;
    }
  }
}

/*
  MARK: profile
*/

.profile {
  display: block grid;
  gap: 1.5em;
  background-color: #fff;
  border-radius: 16px;
  padding: 1.5em;
}
.profile__inner {
  display: block grid;
  grid-template-columns: 2fr 5fr;
  gap: 1.5em;
  & > * {
    overflow: hidden;
  }
}
.profile__image {
  width: 100%;
  aspect-ratio: 1 / 1;
  border-radius: 100%;
  img {
    display: block;
    object-fit: cover;
    width: 100%;
    height: 100%;
  }
}
.profile__image {
  width: 100%;
  aspect-ratio: 1 / 1;
  border-radius: 100%;
  img {
    display: block;
    object-fit: cover;
    width: 100%;
    height: 100%;
  }
}
.profile__content {
  display: block grid;
  gap: 1em;
}
.profile__header {
  display: block grid;
  gap: .25em;
}
.profile__heading {
  font-weight: bold;
  margin-block: 0;
  font-size: 1.25em;
}
.profile__name {
  font-weight: bold;
  margin-block: 0;
  font-size: 1.125em;
  line-height: 1.4;
}
.profile__position {
  margin-block: 0;
  font-size: .95em;
  color: #374151;
  line-height: 1.4;
}
.profile__description {
  margin-block: 0;
  font-size: .95em;
  color: #374151;
  line-height: 1.6;
}

/*
  MARK: recommand-articles
*/

.recommand-articles {
  background-color: #3b82f6;
  padding: 4em 2em;
}
.recommand-articles__inner {
  display: block grid;
  gap: 2em;
  justify-items: center;
  max-width: 1220px;
  width: 100%;
  margin-inline: auto;
}
.recommand-articles__heading {
  font-weight: bold;
  margin-block: 0;
  color: #fff;
}
.recommand-articles__list {
  display: block grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2em;
  @media (max-width: 768px) {
    grid-template-columns: 1fr;
  }
}
.recommand-articles__item {
  background-color: #fff;
  overflow: hidden;
  border-radius: 16px;
  box-shadow: 0 4px 4px rgba(0, 0, 0, 0.2);
}
.recommand-articles__image {
  width: 100%;
  height: 240px;
  img {
    object-fit: cover;
    width: 100%;
    height: 100%;
  }
}
.recommand-articles__link {
  display: block;
  &:hover {
    text-decoration: none;
  }
}
.recommand-articles__content {
  display: block grid;
  gap: 1em;
  justify-items: center;
  text-align: center;
  padding: 2em 2em 1.5em;
}
.recommand-articles__title {
  color: #000;
  font-weight: bold;
  font-size: 1.2em;
  line-height: 1.4;
  margin-block: 0;
}
.recommand-articles__lead {
  color: #4b5563;
  margin-block: 0;
}
.recommand-articles__show-more {
  margin-block-start: 1em;
  color: #2563eb;
  margin-block: 0;
}

/*
  MARK: recommand-categories
*/

.recommand-categories {
  background-color: #f3f4f6;
  padding: 4em 2em;
}
.recommand-categories__inner {
  display: block grid;
  gap: 2em;
  justify-items: center;
}
.recommand-categories__heading {
  font-weight: bold;
  margin-block: 0;
}
.recommand-categories__button-outer {
  margin-block-start: 1em;
}
.recommand-categories__button {
  background-color: #1e40af;
  color: #fff;
  border-radius: 8px;
  padding: .75em 2em;
  font-size: 1.2em;
  font-weight: bold;
  &:hover {
    color: #fff;
    text-decoration: none;
  }
}
