/*ブラウザ幅が769px以上の時*/
@media screen and (min-width: 769px) {
  .sp {
    display: none;
  }
}
/*ブラウザ幅が768px以下の時*/
@media screen and (max-width: 768px) {
  .pc {
    display: none;
  }
}

/*=====
# :root
============*/
:root {
  /* style */
  --main-bg: #fffdf1;
  --main-color: #707070;
  --section-color: #333333;
  --section-yellow: #ffd853;
  --btn-red: #ff8587;
}

/*=====
# フォント
============*/
@font-face {
  font-family: "mgen-medium";
  src: url("../fonts/rounded-x-mgenplus-20150602/rounded-x-mgenplus-1c-medium.ttf");
}

@font-face {
  font-family: "mgen-bold";
  src: url("../fonts/rounded-x-mgenplus-20150602/rounded-x-mgenplus-1c-black.ttf");
}

html {
  font-size: 62.5%;
}

body {
  color: var(--main-color);
  background: var(--main-bg);
  color: #707070;
  font-family: "mgen-medium";
  line-height: 1.45;
  font-weight: 400;
  font-size: 14px;
}

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

a {
  color: #000;
  cursor: pointer;
  text-decoration: none;
}

/*=====
# inner  section-inner
============*/
.inner {
  margin-left: auto;
  margin-right: auto;
  max-width: 1200px;
  padding: 0 40px;
  width: 100%;
}

.section__inner {
  position: relative;
  width: 100%;
  padding: 80px 40px 40px;
  background: #fff;
  border: 1px solid var(--section-yellow);
  border-radius: 24px;
}

/*ブラウザ幅が768px以下の時*/
@media (max-width: 768px) {
  .inner {
    padding: 0px 20px;
  }

  .section__inner {
    padding: 40px 20px 40px;
    background: #fff;
  }
}

/*=====
section- # Heading
============*/
.util-ttl {
  font-family: "mgen-medium", sans-serif;
  font-weight: 400;
  font-size: 2.4rem;
  letter-spacing: 0.1em;
  text-align: center;
  min-width: 400px;
  padding: 18px 24px;
  margin: 0 auto;
  border: 1px solid var(--section-yellow);
  border-radius: 50px;
  position: absolute;
  top: -40px;
  left: 50%;
  transform: translateX(-50%);
  background: #fff;
}

@media (max-width: 768px) {
  .util-ttl {
    font-size: 2.2rem;
    min-width: 350px;
    padding: 8px 0px;
    top: -24px;
    line-height: 1.3;
  }
}

@media (max-width: 499px) {
  .util-ttl {
    min-width: 240px;
    font-size: 2rem;
  }
}

h2 span {
  display: inline-block;
}

/*=====
# パンくずリスト
============*/
.breadcrumb {
  color: #8d8d8d;
  font-size: 12px;
  margin-bottom: 14px;
  font-family: "mgen-medium" sans-serif;
  margin-top: 10px;
  padding-left: 40px;
}

.breadcrumb span {
  color: #666;
}

.breadcrumb .home::before {
  content: "\f015";
  font-family: "Font Awesome 5 Free", sans-serif;
  font-weight: 900;
  margin-right: 10px;
  color: #707070;
}

.breadcrumb a {
  text-decoration: none;
  transition: all 0.3s ease 0s;
}

.breadcrumb a:hover {
  opacity: 0.6;
}

.breadcrumb i {
  margin-left: 15px;
  margin-right: 15px;
}

.gallery {
  margin-bottom: 40px;
}

.gallery-item {
  margin-bottom: 20px;
}

.gallery-columns-2 .gallery-item {
  width: 49%;
}

.gallery-columns-3 .gallery-item {
  width: 32%;
}

.gallery-columns-4 .gallery-item {
  width: 24%;
}

.gallery-columns-5 .gallery-item {
  width: 19%;
}

.gallery-columns-6 .gallery-item {
  width: 15.5%;
}

.gallery-columns-7 .gallery-item {
  width: 13%;
}

.gallery-columns-8 .gallery-item {
  width: 11.5%;
}

.gallery-columns-9 .gallery-item {
  width: 10%;
}

/*=====
# 目次
============*/
#toc_container {
  background: #f9f9f9;
  border: 1px solid #ddd;
  margin-bottom: 40px;
  padding: 20px;
}

#toc_container .toc_title {
  background: var(--section-yellow);
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  margin: -20px -20px 20px;
  padding: 10px 20px;
  text-align: center;
}

#toc_container ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

#toc_container ul a {
  color: #666;
  text-decoration: none;
  transition: all 0.3s ease 0s;
}

#toc_container ul a:hover {
  color: var(--section-yellow);
}

#toc_container > ul > li {
  border-bottom: 1px dotted #ccc;
  padding: 10px 0;
}

#toc_container > ul > li:last-child {
  border-bottom: none;
}

#toc_container > ul > li > a {
  font-weight: 700;
}

#toc_container > ul > li > a::before {
  content: "\f0da";
  font-family: "Font Awesome 5 Free", sans-serif;
  font-weight: 900;
  margin-right: 10px;
}

#toc_container > ul > li > ul {
  margin-top: 10px;
  padding-left: 20px;
}

#toc_container > ul > li > ul > li {
  padding: 5px 0;
}

#toc_container > ul > li > ul > li:last-child {
  border-bottom: none;
}

#toc_container > ul > li > ul > li > a {
  font-weight: 400;
}

#toc_container > ul > li > ul > li > a::before {
  content: "\f105";
  font-family: "Font Awesome 5 Free", sans-serif;
  font-weight: 900;
  margin-right: 8px;
}

/*=====
# キャプション
============*/
.wp-caption {
  margin-bottom: 20px;
}

.wp-caption a {
  display: block;
}

.wp-caption a:hover {
  opacity: 0.6;
}

.wp-caption-text {
  font-size: 12px;
  text-align: center;
}

/*=====
# ギャラリー
============*/
.gallery-item {
  display: inline-block;
  margin-right: 20px;
}

.gallery-item a {
  display: block;
}

.gallery-item a:hover {
  opacity: 0.6;
}

.gallery-caption {
  font-size: 12px;
  text-align: center;
}

.gallery-columns-3 {
  display: flex;
}

.gallery-columns-3 .gallery-item {
  flex: 1;
}

/*=====
# レスポンシブ
============*/
@media screen and (max-width: 767px) {
  .inner {
    padding: 0 15px;
  }

  .breadcrumb {
    padding-left: 15px;
  }

  #toc_container {
    padding: 15px;
  }

  #toc_container .toc_title {
    margin: -15px -15px 15px;
    padding: 8px 15px;
  }

  #toc_container > ul > li {
    padding: 8px 0;
  }

  #toc_container > ul > li > ul {
    padding-left: 15px;
  }
}

/*=====
# エントリー画像
============*/
.entry-item-img img {
  max-width: 100%;
  height: auto;
}

/*=====
# ジャンルナビ
============*/
.genre-nav {
  margin-bottom: 40px;
}

@media screen and (max-width: 767px) {
  .genre-nav {
    margin-bottom: 30px;
  }
}

.genre-nav-link {
  display: inline-block;
}

@media screen and (max-width: 767px) {
  .genre-nav-link {
    display: block;
    margin-bottom: 10px;
  }
}

.genre-nav-link a {
  background: #fff;
  border: 1px solid var(--section-yellow);
  color: var(--section-yellow);
  display: block;
  font-size: 14px;
  padding: 8px 16px;
  text-decoration: none;
  transition: all 0.3s ease 0s;
}

@media screen and (max-width: 767px) {
  .genre-nav-link a {
    padding: 10px 16px;
    text-align: center;
  }
}

.genre-nav-link a.is-active,
.genre-nav-link a:hover {
  background: var(--section-yellow);
  color: #fff;
}
