/* =========================================
   基本設定・変数定義
   ========================================= */
:root {
  /* カラーパレット */
  --main-color: #6bb6ff;       /* メインの青色 */
  --text-color: #252525;       /* 基本文字色 */
  --bg-color: #ffffff;         /* 背景色 */
  --bg-gray: #eaedf2;          /* 薄いグレー背景 */
  --bg-input: #eff1f5;         /* 入力欄背景 */
  --border-color: #e0e0e0;     /* 枠線色 */
  --link-hover-opacity: 0.7;
  
  /* フォント */
  --font-base: "Quicksand", "Avenir", "Arial", "Hiragino Kaku Gothic ProN", YuGothic, "Yu Gothic", "Hiragino Sans", "ヒラギノ角ゴシック", "メイリオ", Meiryo, sans-serif;
  --font-code: "Menlo", "Consolas", "monaco", "monospace", "ＭＳ ゴシック", sans-serif;
}

html {
  font-family: sans-serif;
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  background-color: var(--bg-color);
  color: var(--text-color);
  font-family: sans-serif; /* 必要に応じて var(--font-base) に変更可 */
  line-height: 1.5;
  word-break: normal;
  overflow-wrap: break-word;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

*, *::before, *::after {
  box-sizing: border-box;
}

/* =========================================
   タイポグラフィ・基本要素
   ========================================= */
h1 {
  margin: 0.67em 0;
  font-size: 2em;
}

h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5 {
  font-weight: bold;
}

/* リンクスタイル */
a {
  text-decoration: none;
  transition: 0.3s ease-in-out;
  color: inherit; /* 親要素の色を継承（必要に応じて変更） */
}

a:hover {
  text-decoration: underline;
  cursor: pointer;
}

/* フォーカス時のアクセシビリティ確保 */
a:focus {
  outline: thin dotted;
}

a:active,
a:hover {
  outline: 0;
}

p {
  word-wrap: break-word;
}

.strong { font-weight: bold; }
.em { font-style: italic; }

hr {
  box-sizing: content-box;
  height: 0;
  border: 0;
  border-top: 1px solid var(--border-color);
}

pre {
  margin: 0;
  white-space: pre-wrap;
}

code, pre {
  font-family: var(--font-code);
  font-size: 1em;
}

.dfont {
  font-family: var(--font-base);
}

dl, ol, ul { margin: 1em 0; }
dd { margin: 0; }
ol, ul {
  list-style-type: none;
  padding: 0;
}
nav ul, nav ol {
  list-style: none;
}

img {
  max-width: 100%;
  height: auto;
  border: 0;
  vertical-align: middle;
}

iframe { max-width: 100%; }
figure { margin: 0; }

/* 配置ユーティリティ */
.entry-content img.alignleft {
  display: inline;
  float: left;
  margin: 0.5em 1.2em 0.5em 0;
}
.entry-content img.alignright {
  display: inline;
  float: right;
  margin: 0.5em 0 0.5em 1em;
}

/* =========================================
   フォーム要素
   ========================================= */
fieldset {
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
  border: 1px solid #c0c0c0;
}
legend { padding: 0; border: 0; }

button, input, select, textarea {
  margin: 0;
  font-family: inherit;
  font-size: 100%;
}
button, input { line-height: normal; }

button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  cursor: pointer;
  appearance: button;
  -webkit-appearance: button;
}

input[type="checkbox"],
input[type="radio"] {
  padding: 0;
}

input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/* 入力フィールド共通 */
input[type="text"],
input[type="password"],
input[type="datetime"],
input[type="date"],
input[type="month"],
input[type="time"],
input[type="week"],
input[type="number"],
input[type="email"],
input[type="url"],
input[type="search"],
input[type="tel"],
input[type="color"],
select,
textarea,
.field {
  display: block;
  width: 100%;
  padding: 0.55em;
  border: 0;
  border-radius: 3px;
  background-color: var(--bg-input);
  box-shadow: none;
  color: rgba(0, 0, 0, 0.7);
  font-size: 1em;
  line-height: 1.5;
  transition: ease 0.3s; /* 時間を追加 */
}

textarea {
  max-width: 100%;
  min-height: 120px;
  line-height: 1.5em;
  padding: 0.5em;
  overflow: auto;
}

select {
  /* Base64画像はそのまま維持（軽量化のためSVG推奨だが現状維持） */
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAHCAYAAADXhRcnAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpEOEZCMjYxMEYwNUUxMUUyOTI4REZGQTEzMzA2MDcyNiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpEOEZCMjYxMUYwNUUxMUUyOTI4REZGQTEzMzA2MDcyNiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkQ4RkIyNjBFRjA1RTExRTI5MjhERkZBMTMzMDYwNzI2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkQ4RkIyNjBGRjA1RTExRTI5MjhERkZBMTMzMDYwNzI2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Vxkp9gAAAI9JREFUeNpidHFxucHAwKAOxE+AmJmBMPgLxDJAfJMFSKwD4kqoAClgA+P///8ZXF1dPaCGcBKh6QcQB+3evXs7WDMIAA2QB1I7gFgDj0aQFz2BGh+AOEwwUaDAQyBlCMR7cGjcC5KHaQQBuM3IAOiKTiBVhiTUDdRUhq4Oq2aoAelAahIQ5wM1zsCmBiDAADhYMJXVZ9u9AAAAAElFTkSuQmCC);
  background-color: transparent;
  background-repeat: no-repeat;
  background-position: 97.5% center;
  outline: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
select::-ms-expand { display: none; }

/* =========================================
   レイアウト・グリッド (Floatベース)
   ※ Flexbox/Gridへの完全移行はHTML構造に依存するため、
      既存のFloatシステムを整理して維持
   ========================================= */
table {
  border-spacing: 0;
  border-collapse: collapse;
}

.image-replacement, .ir {
  overflow: hidden;
  text-indent: 100%;
  white-space: nowrap;
}

/* Clearfix (IEハック削除) */
.clearfix::after,
.cf::after,
.comment-respond::after {
  display: block;
  clear: both;
  content: "";
}

.last-col {
  float: right;
  padding-right: 0 !important;
}
/* グリッドシステム */
/* Mobile */
@media (max-width: 768px) {
  .m-all { float: left; width: 100%; padding-right: 0; }
  .m-1of2 { float: left; width: 50%; padding-right: 0.75em; }
  .m-1of3 { float: left; width: 33.33%; padding-right: 0.75em; }
  .m-2of3 { float: left; width: 66.66%; padding-right: 0.75em; }
  .m-1of4 { float: left; width: 25%; padding-right: 0.75em; }
  .m-3of4 { float: left; width: 75%; padding-right: 0.75em; }
}
/* Tablet */
@media (min-width: 769px) and (max-width: 1029px) {
  .t-all { float: left; width: 100%; padding-right: 0; }
  .t-1of2 { float: left; width: 50%; padding-right: 0.75em; }
  .t-1of3 { float: left; width: 33.33%; padding-right: 0.75em; }
  .t-2of3 { float: left; width: 66.66%; padding-right: 0.75em; }
  .t-1of4 { float: left; width: 25%; padding-right: 0.75em; }
  .t-3of4 { float: left; width: 75%; padding-right: 0.75em; }
  .t-1of5 { float: left; width: 20%; padding-right: 0.75em; }
  .t-2of5 { float: left; width: 40%; padding-right: 0.75em; }
  .t-3of5 { float: left; width: 60%; padding-right: 0.75em; }
  .t-4of5 { float: left; width: 80%; padding-right: 0.75em; }
}
/* Desktop */
@media (min-width: 1030px) {
  .d-all { float: left; width: 100%; padding-right: 0; }
  .d-1of2 { float: left; width: 50%; padding-right: 0.75em; }
  .d-1of3 { float: left; width: 33.33%; padding-right: 0.75em; }
  .d-2of3 { float: left; width: 66.66%; padding-right: 0.75em; }
  .d-1of4 { float: left; width: 25%; padding-right: 0.75em; }
  .d-3of4 { float: left; width: 75%; padding-right: 0.75em; }
  .d-1of5 { float: left; width: 20%; padding-right: 0.75em; }
  .d-2of5 { float: left; width: 40%; padding-right: 0.75em; }
  .d-3of5 { float: left; width: 60%; padding-right: 0.75em; }
  .d-4of5 { float: left; width: 80%; padding-right: 0.75em; }
  
  /* 細分化されたグリッド */
  .d-1of6 { float: left; width: 16.6666666667%; padding-right: 0.75em; }
  .d-1of7 { float: left; width: 14.2857142857%; padding-right: 0.75em; }
  .d-2of7 { float: left; width: 31%; padding-right: 0.75em; }
  .d-3of7 { float: left; width: 42.8571429%; padding-right: 0.75em; }
  .d-4of7 { float: left; width: 57.1428572%; padding-right: 0.75em; }
  .d-5of7 { float: left; width: 69%; padding-right: 30px; }
  .single .d-5of7, .post .d-5of7, .page .d-5of7 { padding-right: 2em; }
  .d-6of7 { float: left; width: 85.7142857%; padding-right: 0.75em; }
  .d-1of8 { float: left; width: 12.5%; padding-right: 0.75em; }
  .d-1of9 { float: left; width: 11.1111111111%; padding-right: 0.75em; }
  .d-1of10 { float: left; width: 10%; padding-right: 0.75em; }
  .d-1of11 { float: left; width: 9.09090909091%; padding-right: 0.75em; }
  .d-1of12 { float: left; width: 8.33%; padding-right: 0.75em; }
}

/* =========================================
   コンテンツラッパー
   ========================================= */
.wrap {
  width: 92%;
  margin: 0 auto;
}

.single #inner-content,
.page #inner-content {
  width: 100%;
}

.single .insidesp,
.page .insidesp {
  margin: 0 auto;
  padding: 0 4%;
}

/* =========================================
   ヘッダーエリア
   ========================================= */
.header {
  position: relative;
  z-index: 99;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.18);
}

#inner-header { max-width: 96%; }
#drawer + #inner-header { max-width: calc(100% - 76px); }

#logo {
  display: table;
  margin: 0;
  padding: 0 0 0 5px;
  width: 100%;
  font-size: 6vmin;
  text-align: center;
  letter-spacing: 1px;
}
#logo:before {
  content: "";
  height: 62px;
  display: block;
  float: left;
}
#logo a {
  display: table-cell;
  line-height: 1.5;
  vertical-align: middle;
}
#logo a:hover { opacity: 0.5; }
#logo img {
  display: inline-block;
  height: 62px;
  width: auto;
  padding: 10px 0;
  vertical-align: middle;
}

/* ナビゲーション */
.desktop-nav { display: none; }

.mobile-nav {
  overflow: hidden;
  height: 40px;
}
.mobile-nav li, .mobile-nav li a { height: 40px; }

.mobile-nav ul {
  overflow-x: auto;
  margin: 0;
  text-align: center;
  white-space: nowrap;
  animation: RightToLeft 2s cubic-bezier(0.24, 0.56, 0.47, 0.91) 0s 1 normal;
  -webkit-overflow-scrolling: touch;
}
.mobile-nav ul::-webkit-scrollbar {
  display: none;
  appearance: none;
}

@keyframes RightToLeft {
  0% { transform: translateX(15px); }
}

.mobile-nav li {
  display: inline-block;
  opacity: 0.8;
}
.mobile-nav li.current-menu-item {
  border-bottom: 3px solid currentColor;
  opacity: 1;
}
.mobile-nav li a {
  display: inline-block;
  padding: 0 9px;
  font-size: 14px;
  font-weight: bold;
  vertical-align: middle;
  line-height: 40px;
}
.mobile-nav li a:hover {
  opacity: 1;
  text-decoration: none;
}

/* ドロワーメニュー */
#drawer__content {
  overflow: auto;
  position: fixed;
  z-index: 9999;
  width: 90%;
  max-width: 330px;
  height: 100%;
  padding-bottom: 50px;
  background: #fff;
  transition: 0.3s ease-in-out;
  transform: translateX(-105%);
  -webkit-overflow-scrolling: touch;
}
#drawer__content .widget { margin: 0 0 15px; }
#drawer__content .widget_search { margin: 1em; }
#drawer__content .searchform__input {
  background: #efefef;
  box-shadow: none;
}

.drawer__title {
  position: relative;
  padding: 7px 15px;
  font-size: 22px;
  font-weight: bold;
  text-align: center;
  letter-spacing: 2px;
}
.drawer__title .close {
  display: inline-block;
  padding: 10px 3px;
}
.drawer__title .close span {
  height: 30px;
  margin: 0 20px 0 7px;
}
.drawer__title .close span:before {
  left: -13px;
  width: 30px;
}

.drawer-unshown, .drawer--unshown { display: none; }

#drawer__open, .header-search {
  position: absolute;
  top: 0;
  width: 48px;
  padding: 0;
  border: none;
  background: transparent;
  outline: none;
  font-size: 23px;
  text-align: center;
  vertical-align: middle;
  line-height: 62px;
}
#drawer__open { left: 0; }
.header-search { right: 0; }

#drawer__close-cover {
  display: none;
  position: fixed;
  z-index: 99;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: black;
  opacity: 0;
  transition: 0.3s ease-in-out;
}

#drawer__input:checked ~ #drawer__content {
  box-shadow: 6px 0 25px rgba(0, 0, 0, 0.15);
  transform: translateX(0%);
}
#drawer__input:checked ~ #drawer__close-cover {
  display: block;
  opacity: 0.5;
}

/* ヘッダー検索 */
.header-search__input,
.header-search__close,
.header-search__modal {
  display: none;
}
.header-search__label { cursor: pointer; }

.header-search__close {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 99999;
  cursor: pointer;
  background: rgba(0, 0, 0, 0.65);
}

.header-search__modal {
  position: fixed;
  top: 50%;
  left: 0;
  width: 100%;
  padding: 1em;
  z-index: 999999;
}
.header-search__modal .searchform {
  max-width: 350px;
  margin: -70px auto 0;
  font-size: 18px;
}
.header-search__modal .searchform__submit {
  background: #eaeaea;
  color: #4e4e4e;
}
.header-search__modal .searchform:before {
  content: "キーワードで検索";
  color: #fff;
  font-weight: bold;
  display: block;
  text-align: left;
  font-size: 16px;
  line-height: 1.5;
  margin-bottom: 7px;
}
.header-search__input:checked ~ .header-search__modal,
.header-search__input:checked ~ .header-search__close {
  display: block;
}

/* ヘッダーお知らせ欄 */
.header-info a {
  display: block;
  padding: 10px;
  font-weight: bold;
  border-top: solid 1px rgba(255, 255, 255, 0.3);
  text-align: center;
}
.header-info.animated a {
  animation: fadeHeader 0.7s ease 0s 1 normal;
}
.header-info a:hover {
  text-decoration: none;
  background-size: 140%;
  opacity: 0.9;
}

/* =========================================
   メインコンテンツ
   ========================================= */
#content {
  margin-top: 2em;
  padding-bottom: 2em;
}
.single #content, .page #content { margin-top: 0; }

#entry {
  margin-bottom: 0.5em;
  border-radius: 3px;
  background-color: white;
}
#entry header { color: #070f15; }
#entry footer { margin: 0.5em 0 0; }
#entry footer aside { position: relative; }
footer p { margin: 0; }

.post-thumbnail { margin: 15px 0 0; }
.post-thumbnail img { width: 100%; }
.withspace { padding: 0 15px; }

/* 記事内見出し */
.entry-content h2 {
  margin: 2.5em 0 0.7em;
  font-size: 1.3em;
  line-height: 1.6;
}
.entry-content h3 {
  margin: 2.6em 0 0.7em;
  padding: 10px 0 10px 10px;
  border-left: 4px solid currentColor; /* 親の色を使うか、明示的に色を指定 */
  font-size: 1.2em;
  line-height: 1.5;
}
.entry-content h4 {
  margin: 2.3em 0 0.7em;
  font-size: 1.1em;
}

/* =========================================
   SNSシェアボタン
   ========================================= */
.sns-btn {
  margin: 0 auto;
  text-align: center;
}
.article-header .sns-btn:not(.sns-dif) { margin-top: 30px; }

.sns-btn__item {
  display: inline-block;
  position: relative;
}
.sns-btn__item a {
  display: inline-block;
  border-radius: 10px;
  font-size: 12px;
  text-align: center;
  vertical-align: middle;
  transition: 0.3s ease-in-out;
}
.sns-btn__item a:hover {
  box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.2);
  text-decoration: none;
}
.sns-btn__item i {
  display: block;
  width: auto;
  height: 32px;
  font-size: 32px;
  line-height: 32px;
}
.sns-btn__item img {
  display: block;
  height: 32px;
  width: 32px;
  padding: 1px;
}

/* SNSカラー変数化推奨だが、個別の色は維持 */
.tw a, .tw .scc { color: #3ab4ff; }
.fb a, .fb .scc { color: #3b8df7; }
.pkt a, .pkt .scc { color: #ff7b7b; }
.hatebu a, .hatebu .scc { color: #45b5f7; }
.line a { color: #59d869; }

.fa-hatebu:before {
  position: relative;
  top: -0.1em;
  font-family: var(--font-base);
  font-size: 1.11em;
  font-weight: bold;
  line-height: 32px;
  content: "B!";
  white-space: nowrap;
}

/* Floating Action Button (FAB) */
#fab { display: none; }
.fab-btn {
  display: block;
  position: relative;
  margin: -25px 15px 0 auto;
  width: 140px;
  z-index: 2;
  outline: none;
  cursor: pointer;
  border-radius: 33px;
  font-size: 19px;
  text-align: center;
  letter-spacing: 1px;
  background-color: #fff;
  box-shadow: 0 5px 18px -2px rgba(0, 0, 0, 0.15);
  transition: 0.3s ease-in-out;
  transition-delay: 0.1s;
  animation: animScale 3.5s ease-out;
}
.fab-btn, .fab-btn i {
  height: 50px;
  line-height: 50px;
}
.fab-btn i:after {
  content: "SHARE";
  padding-left: 10px;
  font-family: var(--font-base);
  font-weight: 500;
  color: #555;
}
.fab-btn:hover {
  box-shadow: 0 12px 45px -9px rgba(0, 0, 0, 0.23);
}

#fab:checked ~ .fab-btn {
  background: #f0f0f0;
  opacity: 0;
  transform: translate(-150px, -150px) scale3d(4, 5, 1);
}
.nothumb .fab-btn {
  margin: -35px 15px 0 auto;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
}

@media only screen and (max-width: 400px) {
  .nothumb .fab-btn {
    margin: 15px;
    width: auto;
    animation: none;
  }
  .nothumb .fab-btn i { animation: none; }
}

#fab__contents {
  display: none;
  position: fixed;
  z-index: 9999;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  padding: 10px;
  background: #eaedf2;
}
#fab:checked ~ #fab__contents {
  display: block;
  animation: coverIn 0.7s ease 0s 1 normal;
}

@keyframes coverIn {
  0%, 50% { opacity: 0; }
  100% { opacity: 1; }
}

.fab__contents-main {
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  padding: 20px 0;
  background: #e9edf2;
  transform: translateY(-50%);
}
.fab__contents_title {
  margin: 0;
  font-size: 30px;
  text-align: center;
}
.fab__contents_img {
  overflow: hidden;
  position: relative;
  width: 300px;
  height: 145px;
  margin: 10px auto;
  background-repeat: no-repeat;
  background-position: 50% 50%;
  background-size: cover;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
  color: #fff;
  font-weight: bold;
}

.close {
  display: none;
  position: absolute;
  z-index: 999999;
  top: 0;
  right: 0;
  padding: 0 15px 10px;
  cursor: pointer;
  animation: animScale 2s ease 0s 1 normal;
}
.close span {
  display: inline-block;
  position: relative;
  width: 3px;
  height: 45px;
  margin: 0 20px 0 7px;
  padding: 0;
  background: #8c9196;
  transition: 0.3s ease-in-out;
  transform: rotate(45deg);
}
.close span:before {
  display: block;
  position: absolute;
  top: 50%;
  left: -20px;
  width: 45px;
  height: 3px;
  margin-top: -2px;
  background: #8c9196;
  content: "";
}
#fab:checked ~ #fab__contents .close { display: inline-block; }
.close span:hover { transform: rotate(45deg) scale(1.1); }
.fab__close-cover {
  display: none;
  position: fixed;
  z-index: 9999;
  top: 0;
  left: 0;
  padding: 10px;
  background: rgba(0, 0, 0, 0.35);
  opacity: 0;
}
.footer .fab-btn { display: none; }

.sns-btn__item { width: 17%; margin: 0 0.5%; }
.sns-btn__item a:hover { opacity: 0.6; box-shadow: none; }

.sns-btn__title {
  display: inline-block;
  position: relative;
  padding: 0 25px;
  color: #cccfd7;
  font-size: 22px;
  font-weight: bold;
  line-height: 1;
  letter-spacing: 1px;
}
.sns-btn__title:before,
.sns-btn__title:after {
  display: inline-block;
  position: absolute;
  top: 50%;
  width: 20px;
  height: 3px;
  border-radius: 3px;
  background-color: #d8dae1;
  content: "";
}
.sns-btn__title:before {
  left: 0;
  transform: rotate(50deg);
}
.sns-btn__title:after {
  right: 0;
  transform: rotate(-50deg);
}

.share_txt { font-weight: bold; white-space: nowrap; }
.sns-dif { position: relative; }
.sns-dif .share_txt { display: none; }
.sns-dif ul {
  margin: 0;
  padding: 14px 0 16px;
  background: #eaedf2;
  backface-visibility: hidden;
  overflow: hidden;
}
.sns-dif ul li { width: auto; margin: 0; }
.sns-dif ul li a {
  position: relative;
  width: 52px;
  height: 52px;
  margin: 3.5px;
  padding: 0;
  background: #fff;
  box-shadow: 0 7px 15px -4px rgba(0, 0, 0, 0.15);
  transition: all 0.3s cubic-bezier(0.51, 0.1, 0.36, 1.68);
}
.sns-dif ul li a:hover {
  opacity: 1;
  box-shadow: 0 14px 20px -4px rgba(0, 0, 0, 0.25);
  transform: scale(1.05) translateY(-2px);
}
.sns-dif ul li i {
  font-size: 30px;
  line-height: 52px;
  height: 52px;
}
.sns-dif ul li .fa-line { font-size: 32px; }
.sns-dif .sns-btn__item img { margin: 11px auto 0; }
.sns-dif .fa-hatebu:before { top: 0; }

.scc {
  position: absolute;
  font-size: 11px;
  font-weight: bold;
  top: -19px;
  opacity: 0.7;
  left: 50%;
  transform: translateX(-50%);
}
.sns-dif .scc {
  top: auto;
  bottom: -12px;
  line-height: 1.2;
}

/* =========================================
   固定メニュー
   ========================================= */
.fixed-menu { margin-bottom: 54px; }
.fixed-menu.fixed-menu-scroll-upward { margin-bottom: 0; }
.fixed-menu.fixed-menu-scroll-upward ul {
  transform: translateY(100%);
  transition: transform .3s ease-in;
}
.fixed-menu.fixed-menu-scroll-upward-show ul {
  transform: translateY(0);
}
.fixed-menu ul {
  position: fixed;
  display: table;
  table-layout: fixed;
  width: 100%;
  bottom: 0;
  left: 0;
  margin: 0;
  padding-bottom: constant(safe-area-inset-bottom);
  padding-bottom: env(safe-area-inset-bottom);
  z-index: 98;
  box-shadow: 0 -1px 3px rgba(100, 120, 130, 0.25);
  background: #fff; /* 背景色追加 */
}
.fixed-menu ul li i {
  font-size: 24px;
  display: block;
  width: auto;
}
.fixed-menu ul li {
  display: table-cell;
  text-align: center;
}
.fixed-menu ul li a {
  display: block;
  padding: 9px 0 6px;
  font-size: 10px;
  font-weight: bold;
  white-space: nowrap;
  overflow: hidden;
}
.fixed-menu a:hover,
.fixed-menu__follow a {
  text-decoration: none;
}
.fixed-menu__share .sns-btn__title { display: none; }
.fixed-menu__share,
.fixed-menu__follow {
  position: fixed;
  bottom: -150px;
  width: 100%;
  z-index: 97;
  transition: 0.3s ease-in-out;
}
.fixed-menu__share.active,
.fixed-menu__follow.active {
  bottom: 54px;
  bottom: calc(env(safe-area-inset-bottom) + 52px);
}
.fixed-menu__share ul { background: #a2a7ab; }
.fixed-menu__share .scc { color: #e0e0e0; }

.fixed-menu__follow {
  display: table;
  table-layout: fixed;
  width: 100%;
  background: #505050;
  text-align: center;
  box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
}
.fixed-menu__follow span,
.fixed-menu__follow a {
  display: table-cell;
  color: #fff;
  vertical-align: middle;
  height: 54px;
}
.fixed-menu__follow span {
  font-size: 19px;
  padding: 10px 3px;
}
.fixed-menu__follow a {
  font-size: 11px;
  padding: 10px 0 5px;
}
.fixed-menu__follow a i { display: block; font-size: 28px; }

/* Follow Colors */
.follow-tw { background: #7dccf7; }
.follow-fb { background: #7c9cec; }
.follow-fdly { background: #8ed87a; }
.follow-youtube { background: #f0504f; }
.follow-insta {
  background: linear-gradient(45deg, #fad51f, #f95e5e 20%, #e83784 60%, #754ed5);
}

/* =========================================
   記事コンテンツ
   ========================================= */
.article-header { margin-bottom: 10px; }
.single-title, .page-title {
  position: relative;
  margin: 25px 0 10px 0;
  padding: 0 15px;
  color: #111;
}

.entry-meta {
  margin: 15px 0 0;
  padding: 0 15px;
  font-size: 15px;
  letter-spacing: 0.3px;
  color: #a5aaaf;
}
.entry-time.pubdate { padding: 0 10px 0 0; }
time.pubdate:before,
time.updated:before {
  padding-right: 5px;
  font-family: FontAwesome;
  opacity: 0.6;
}
time.pubdate:before { content: "\f017"; }
time.updated:before { content: "\f021"; }

.entry-content { padding: 10px 15px 0; }
.entry-content p { margin: 0 0 0.5em; }
.entry-content > p {
  line-height: 1.4rem;
  font-size: 0.85rem;
}
.entry-content p a { text-decoration: underline; }
.entry-content p a:hover { text-decoration: none; }

.entry-content table {
  width: 100%;
  margin: 1em 0;
  border: 2px solid var(--border-color);
}
.entry-content table.tb-responsive {
  display: block;
  overflow-x: auto;
  width: 100%;
  white-space: nowrap;
  -webkit-overflow-scrolling: touch;
}
.entry-content table caption {
  margin: 0 0 7px;
  color: #9fa6b4;
  font-size: 0.75em;
  letter-spacing: 1px;
}
.entry-content tr:not(:last-child) { border-bottom: 2px solid var(--border-color); }
.entry-content td {
  padding: 7px;
  border-right: 2px solid var(--border-color);
  word-break: break-all;
}
.entry-content td:last-child,
.entry-content th:last-child { border-right: 0; }
.entry-content th {
  padding: 7px;
  border-right: 2px solid var(--border-color);
  border-bottom: 2px solid var(--border-color);
  background: #f8f9fa;
}
.entry-content tfoot {
  border-top: 2px dotted #c5c7ca;
  background: #f8f9fa;
}

/* Scroll Hint */
.entry-content .is-style-sango-table-scroll-hint.wp-block-table table { margin: 0; }
.entry-content .is-style-sango-table-scroll-hint { margin: 1em 0; }
.entry-content .is-style-sango-table-scroll-hint table th,
.entry-content .is-style-sango-table-scroll-hint table td { white-space: nowrap; }
.entry-content .scroll-hint-icon {
  height: 90px;
  top: calc(50% - 45px);
}

.entry-content blockquote {
  box-sizing: border-box;
  position: relative;
  margin: 1.5em 0;
  padding: 13px 15px 13px 50px;
  border: solid 2px #464646;
  color: #464646;
}
.entry-content blockquote:before {
  display: inline-block;
  position: absolute;
  top: 20px;
  left: 15px;
  font-family: FontAwesome;
  font-size: 25px;
  vertical-align: middle;
  line-height: 1;
  content: "\f10d";
}
.entry-content blockquote p {
  margin: 10px 0;
  padding: 0;
  line-height: 1.7;
}
.entry-content blockquote cite {
  display: block;
  color: #888;
  font-size: 0.9em;
  text-align: right;
}
.entry-content blockquote ul,
.entry-content blockquote ol {
  border: none;
  padding: 5px 0 5px 22px;
  margin: 0;
  background: transparent;
}

/* リスト */
.entry-content ul,
.entry-content ol {
  margin-bottom: 1.5em;
  padding: 1em 1em 1em 2.5em;
  border: solid 2px #e8e8e8;
  border-radius: 3px;
}
.entry-content ul { list-style-type: disc; }
.entry-content li { padding: 5px 0; }
.entry-content li ul li,
.entry-content li ol li { padding: 0; }
.entry-content ol { list-style-type: decimal; }
.entry-content ul li ul,
.entry-content ul li ol,
.entry-content ol li ul,
.entry-content ol li ol {
  margin: 0;
  padding: 0.5em 0 0.5em 1.3em;
  border: none;
}
.entry-content dd {
  margin-bottom: 1.5em;
  margin-left: 0;
  color: #787878;
  font-size: 0.9em;
}

/* 画像 */
.entry-content img { max-width: 100%; height: auto; }
.entry-content .size-auto,
.entry-content .size-full,
.entry-content .size-large,
.entry-content .size-medium,
.entry-content .size-thumbnail {
  max-width: 100%;
  height: auto;
}
.entry-content .aligncenter,
.entry-content img.aligncenter {
  clear: both;
  margin-right: auto;
  margin-left: auto;
}
.entry-content img.aligncenter { display: block; }
.entry-content .gallery-caption {
  color: gray;
  font-size: 0.75em;
  margin: 5px 0;
  text-align: center;
}
.entry-content .wp-caption {
  max-width: 100%;
  margin: 0 0 1.5em;
  padding: 8px;
  border: var(--bg-gray) 2px solid;
}
.entry-content .wp-caption.aligncenter { margin: 0 auto 1em; }
.entry-content .wp-caption img {
  max-width: 100%;
  width: 100%;
  margin-bottom: 0;
}
.entry-content .wp-caption p.wp-caption-text {
  margin: 10px 0 0;
  font-size: 0.85em;
  text-align: center;
}

/* コード */
.entry-content code,
.entry-content .haiiro {
  padding: 0.2em 0.3em;
  margin: 0 0.2em;
  border-radius: 5px;
  background: #f1f2f3;
  color: #404040;
  font-size: 0.9em;
}
.entry-content pre {
  margin: 0 0 1.5em;
  padding: 1em;
  border: solid 1px #eaedf2;
  background: #f3f6fc;
  color: #54687c;
}
.entry-content pre code {
  padding: 0;
  background: transparent;
}
body .entry-content > *:first-child { margin-top: 0.1em; }

/* =========================================
   カード型レイアウト
   ========================================= */
.cardtype, .sidelong { margin-bottom: 1em; }

.cardtype__article {
  position: relative;
  width: 100%;
  margin: 0 0 25px;
  border-radius: 2px;
  background: #fff;
  box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.12), 0 2px 3px 0 rgba(0, 0, 0, 0.22);
  cursor: pointer;
  transition: 0.2s ease-in-out;
}
.cardtype__article:hover {
  box-shadow: 0 15px 30px -5px rgba(0, 0, 0, 0.15), 0 0 5px rgba(0, 0, 0, 0.1);
  transform: translateY(-4px);
}
.cardtype__link {
  display: block;
  color: #111;
  text-decoration: none;
  cursor: pointer;
  padding-bottom: 25px;
}
.cardtype__link:hover {
  color: #111;
  text-decoration: none;
}
.cardtype__img {
  margin: 0;
  overflow: hidden;
  position: relative;
  height: 0;
  padding-bottom: 57.7%;
}
.cardtype__img img {
  border-radius: 2px 2px 0 0;
  width: 100%;
}
.cardtype h2 { margin: 8px 13px 0; font-size: 17px; }
.cardtype time {
  display: block;
  margin: 13px 13px 8px;
  color: #b5b5b5;
  font-size: 13px;
  font-weight: bold;
}
.cat-name {
  display: inline-block;
  overflow: hidden;
  position: absolute;
  top: 13px;
  left: 13px;
  height: 22px;
  margin: 0;
  padding: 0 10px;
  border-radius: 14px;
  color: #fff;
  font-size: 11px;
  font-weight: bold;
  vertical-align: middle;
  line-height: 22px;
}
.cat-name:hover {
  text-decoration: none;
  background: silver;
}
.newmark {
  display: inline-block;
  position: absolute;
  top: 13px;
  right: 10px;
  width: 37px;
  height: 37px;
  border-radius: 8px;
  color: #fff;
  font-size: 13px;
  font-weight: bold;
  text-align: center;
  line-height: 37px;
  transform-origin: 50% 50%;
  animation: animScale 3.5s ease-out;
}

@keyframes animScale {
  0%, 30% { transform: scale(0, 0); }
  35% { transform: scale(1.2, 1.2); }
  40%, 60%, 100% { transform: scale(1, 1); }
  45% { transform: scale(1.1, 1.1); }
}

/* 横長記事レイアウト */
.home_bottom { margin: 1em 0; }
.home_top { margin: 0 0 1em; }
#content.page-forfront {
  margin-top: 0;
  padding: 15px;
  background: #fff;
}
#content.page-forfront .entry-content { padding: 0 !important; }

.sidelong__article {
  position: relative;
  width: 100%;
  margin: 0 0 1em;
  border-radius: 5px;
  overflow: hidden;
  background: #fff;
  cursor: pointer;
  transition: 0.3s ease-in-out;
}
.sidelong__article:hover {
  box-shadow: 0 10px 20px -5px rgba(0, 0, 0, 0.2);
}
.sidelong__link {
  display: table;
  width: 100%;
  padding: 2px;
  color: #111;
  text-decoration: none;
  cursor: pointer;
}
.sidelong__link:hover { text-decoration: none; }
.sidelong__img, .sidelong__article-info {
  display: table-cell;
  vertical-align: middle;
}
.sidelong__img { width: 75px; height: 75px; }
.sidelong__img img { width: 100%; border-radius: 3px; }
.sidelong__article-info {
  width: calc(100% - 90px);
  padding-left: 20px;
}
.sidelong time {
  display: block;
  color: #b5b5b5;
  font-size: 13px;
  font-weight: bold;
  margin: 0;
}
.sidelong h2, .sidelong .sidelong__title {
  display: -webkit-box;
  overflow: hidden;
  margin: 0;
  font-size: 1.2rem;
  font-weight: bold;
  line-height: 1.3rem;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
.sidelong .newmark {
  top: 4px;
  right: auto;
  left: 4px;
}
.sidelong--shade .sidelong__article {
  box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.12), 0 2px 3px 0 rgba(0, 0, 0, 0.22);
}
.sidelong--shade .sidelong__article:hover {
  box-shadow: 0 15px 30px -5px rgba(0, 0, 0, 0.15), 0 0 5px rgba(0, 0, 0, 0.1);
  transform: translateY(-4px);
}

.cardtype__article, .sidelong__article {
  animation: fadeIn 1.1s ease 0s 1 normal;
}
.cardtype__article:first-child,
.cardtype__article:nth-child(2),
.sidelong__article:first-child,
.sidelong__article:nth-child(2) {
  animation: fadeIn 0.7s ease 0s 1 normal;
}
@keyframes fadeIn {
  0% { opacity: 0; transform: translateY(30px); }
  100% { opacity: 1; }
}

/* タブウィジェット */
.post-tab {
  width: 100%;
  margin-bottom: 0.5em;
  text-align: center;
  box-shadow: 0 3px 10px -2px rgba(0, 0, 0, 0.2);
  border-radius: 3px;
  overflow: hidden;
  background: #fff;
  font-size: 0.85em;
  font-weight: bold;
  line-height: 1.4;
}
.post-tab > div {
  float: left;
  width: 50%;
  padding: 0.8em 0.2em;
  cursor: pointer;
  vertical-align: middle;
}
.post-tab .tab3, .post-tab .tab4 { border-top: solid 1px #eaeaea; }
.post-tab .tab1, .post-tab .tab3 { border-right: solid 1px #eaeaea; }
.post-tab > div.tab-active {
  color: #fff;
  background: #58a9ef;
}
.post-tab__content {
  display: none;
  padding: 20px 0;
}
.post-tab__content.tab-active { display: block; }
.post-tab__more { margin-bottom: 1.5em; }
.post-tab__more span { white-space: pre-line; }

/* ページネーション */
.pagination, .wp-prev-next { margin: 1.5em 0; }
.pagination { text-align: left; }
.pagination ul {
  display: block;
  clear: both;
  padding: 0;
  text-align: center;
}
.pagination li {
  display: inline-block;
  overflow: hidden;
  margin: 3.5px;
  padding: 0;
  text-align: center;
}
.pagination a, .pagination span, .post-page-numbers {
  display: inline-block;
  width: 46px;
  height: 46px;
  margin: 0;
  border-radius: 50%;
  background: #fff;
  font-size: 17.5px;
  font-weight: bold;
  text-decoration: none;
  line-height: 46px;
}
.pagination .current, .post-page-numbers.current {
  color: #fff;
  cursor: default;
}
.page-numbers.dots {
  width: auto;
  padding: 0;
  background: transparent;
}
.wp-prev-next .prev-link { float: left; }
.wp-prev-next .next-link { float: right; }
.page-links, .post-page-links { margin: 2em 0; text-align: center; }
a.post-page-numbers {
  margin: 0 2px;
  background: #eff0f1;
  color: #555;
  text-decoration: none !important;
}
a.post-page-numbers:hover { background: #e4e5e6; }

/* =========================================
   サイドバー・ウィジェット
   ========================================= */
#sidebar1 h4:first-child,
#nav_drawer h4:first-child { margin-top: 0; }

.widget {
  margin: 0 0 2.5em;
  background: #fff;
  font-size: 0.98em;
}
.widgettitle {
  margin-bottom: 0;
  padding: 7px 13px;
  font-size: 1.2em;
}
.sidebar .widgettitle:before {
  padding-right: 4px;
  font-family: FontAwesome;
}
.sidebar .my_popular_posts .widgettitle:before { content: "\f201"; }
.sidebar .widget_archive .widgettitle:before { content: "\f017"; }
.sidebar .widget_recent_entries .widgettitle:before { content: "\f08d"; }
.sidebar .widget_tag_cloud .widgettitle:before { content: "\f02c"; }
.sidebar .widget_categories .widgettitle:before { content: "\f0ca"; }

.widget ul { margin: 0; }
.widget h4 + * {
  margin-top: 0;
  margin-bottom: 0;
  padding: 8px 10px;
}
.widget .textwidget { padding: 10px; }
.textwidget p { margin: 0.5em 0; }
.widget .custom-html-widget { padding: 0; }
.widget ul li { margin: 0; font-weight: bold; }
.widget ul li ul { margin: 0; }
.widget ul li ul li a {
  padding: 5px 7px 5px 13px;
  font-size: 15px;
  font-weight: normal;
}
.widget ul li ul li a:before {
  padding-right: 5px;
  color: silver;
  font-family: FontAwesome;
  content: "\f105";
}
.widget ul li a {
  display: block;
  padding: 7px;
  color: #626262;
  text-decoration: none;
}
.widget ul li a:hover { background: #efefef; }
.widget.popular-posts ul li a:hover { background: transparent; }

.entry-count {
  display: inline-block;
  overflow: hidden;
  min-width: 24px;
  height: 24px;
  margin-left: 3px;
  border-radius: 50%;
  background: #f3f3f3;
  color: #626262;
  font-size: 12px;
  font-weight: normal;
  text-align: center;
  vertical-align: middle;
  line-height: 24px;
}

/* 固定サイドバー */
.fixed-sidebar { display: none; }
.normal-sidebar + .fixed-sidebar { margin: 25px 0 40px; }
.fixed-sidebar:not(.sidefixed):not(.sideidled) {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  max-height: 100vh;
  overflow-y: auto;
}
.admin-bar .fixed-sidebar { top: 32px; }
.fixed-sidebar .widget { margin-bottom: 1em; }
.sidefixed { position: fixed; top: 0; }
.sideidled { position: fixed; }

/* ウィジェット内スタイル */
.widget_search { background: transparent; }
.searchform div { position: relative; max-width: 400px; }
input.searchform__input {
  height: 45px;
  padding-right: 48px;
  border-bottom: solid 1px #efefef;
  background: #fff;
  outline: none;
  box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.15), 0 3px 3px -2px rgba(0, 0, 0, 0.15);
  transition: 0.3s ease-in-out;
  -webkit-appearance: none;
}
input.searchform__input:focus {
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.15);
}
.searchform__submit {
  position: absolute;
  top: 0;
  right: 0;
  width: 45px;
  height: 45px;
  padding: 0;
  border: none;
  border-bottom: solid 1px rgba(0, 0, 0, 0.1);
  border-radius: 0 3px 3px 0;
  color: #fff;
  font-size: 20px;
  text-align: center;
  vertical-align: middle;
  line-height: 44px;
}
.searchform__submit i {
  transition: 0.4s ease-in-out;
  line-height: 44px;
}
input.searchform__input:focus + .searchform__submit i { font-size: 24px; }

.tagcloud a {
  display: inline-block;
  margin: 5px 5px 5px 0;
  padding: 2px 8px;
  border-radius: 15px;
  background: #f4f4f4;
  color: #666;
  font-size: 12px !important;
  font-weight: bold;
}
.tagcloud a:hover {
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
  text-decoration: none;
}

/* カレンダー */
#wp-calendar {
  width: 250px;
  margin: 10px auto 0;
  text-align: center;
}
.widget_media_image { background: transparent; }
.widget_media_image a, .widget_media_image img { display: block; padding: 0; }

/* 最近のコメント */
.widget.widget_recent_comments li {
  padding: 5px 0;
  font-size: 0.85em;
  font-weight: normal;
}
.widget.widget_recent_comments li a {
  display: inline;
  padding: 0;
  text-decoration: underline;
}
.widget.widget_recent_comments li a:hover { background: transparent; }

/* マイウィジェット */
.widget .my-widget li a { display: table; width: 100%; }
.widget .my-widget li a:hover {
  background: transparent;
  color: #92979f;
}
.my-widget li a .my-widget__text {
  display: table-cell;
  width: calc(100% - 88px);
  font-size: 0.9em;
  vertical-align: middle;
  line-height: 1.5;
}
.my-widget li a .my-widget__img {
  display: table-cell;
  width: 88px;
  height: 88px;
  padding-right: 8px;
  vertical-align: middle;
}
.my-widget li a .post-date, .views {
  display: block;
  color: #b7b7b7;
  font-size: 13px;
  font-weight: 500;
}
.my-widget__img img {
  width: 100%;
  border: solid 2px #f3f3f3;
  transition: 0.3s ease-in-out;
}
.my-widget li a:hover .my-widget__img img { transform: scale(1.05); }

.show_num li { position: relative; }
.show_num li .rank {
  display: inline-block;
  position: absolute;
  z-index: 3;
  top: 0;
  left: 0;
  width: 25px;
  height: 25px;
  border-radius: 50%;
  color: #fff;
  text-align: center;
  line-height: 25px;
}
.show_num li:nth-child(n + 4) .rank {
  background: #f3f3f3;
  color: #9a9a9a;
}
.show_num li a div { padding-left: 23px; }
.show_num li a figure + div { padding-left: 0; }

/* プロフィール */
.profile-background img { width: 100%; }
.yourprofile .profile-img {
  position: relative;
  width: 80px;
  height: 80px;
  margin: -40px auto 0;
}
.yourprofile .profile-img img {
  border: solid 3px #fff;
  border-radius: 40px;
  overflow: hidden;
}
.yourname {
  padding: 0 10px;
  font-size: 1.3em;
  font-weight: bold;
  text-align: center;
}
.profile-content { padding: 0 15px; font-size: 0.95em; }
.profile-sns {
  margin: 0;
  padding: 10px 10px 20px;
  text-align: center;
}
.profile-sns li {
  display: inline-block;
  vertical-align: middle;
}
.widget .profile-sns li a {
  padding: 4px;
  color: #555;
  width: 48px;
  height: 48px;
}
.widget .profile-sns li a:hover {
  background: transparent;
  opacity: 0.6;
}
.profile-sns li i {
  display: inline-block;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #6eb6fd;
  color: #fff;
  font-size: 23px;
  text-align: center;
  line-height: 40px;
}
.profile-sns li .fa-twitter { background: #3ab4ff; }
.profile-sns li .fa-facebook, .profile-sns li .fa-facebook-f { background: #3b8df7; }
.profile-sns li .fa-instagram { background: #ff7b7b; }
.profile-sns li .fa-youtube { background: #f0504f; }
.profile-sns li .fa-rss { background: #72d865; }
.profile-sns li .fa-line { background: #70da7d; }

/* ウィジェットメニュー */
.widget-menu__title { padding: 10px; font-size: 1.1em; color: #fff; }
.widget-menu { text-align: center; }
.widget-menu li {
  float: left;
  width: 50%;
  border-bottom: solid 2px #efefef;
  font-size: 12px;
  vertical-align: middle;
  background: #fff;
}
.widget-menu li:nth-child(even) { border-left: solid 2px #efefef; }
.widget-menu li:last-child,
.widget-menu li:nth-last-child(2) { border-bottom: 0; }
.widget-menu i { display: block; font-size: 3em; }

#main .widget-menu {
  margin: 0 0 1em;
  padding: 0;
  border-top: 0;
  list-style: none;
}
#main .widget-menu li { margin-top: 1px; padding: 0; }
#main .widget-menu li:after { display: table; content: ""; }
#main .widget-menu a {
  display: block;
  padding: 1.2em 0.5em;
  font-weight: bold;
  text-decoration: none;
  color: #555;
}
#main .widget-menu a:hover { background: #efefef; }

@media only screen and (min-width: 520px) {
  .menu-three.widget-menu li { width: 33.3%; }
  .menu-three.widget-menu li:nth-child(3n + 1) { border-left: 0; }
  .menu-three.widget-menu li { border-left: solid 2px #efefef; }
  .menu-three.widget-menu li:nth-last-child(3) { border-bottom: 0; }
}

.widget .follow_btn { margin-top: 0; text-align: center; }
.widget .follow_btn a { margin: 15px 5px 10px; }
.widget .follow_btn a:before { width: 50px; height: 50px; line-height: 50px; }

.no-widgets {
  margin-bottom: 1.5em;
  padding: 1.5em;
  border: 1px solid #ccc;
  border-radius: 2px;
  background-color: white;
  text-align: center;
}
.sponsored { margin: 1em 0; }
.entry-content .sponsored:first-child { margin-top: 0; }

/* =========================================
   記事フッター
   ========================================= */
#main .h-undeline {
  position: relative;
  margin: 0 0 5px;
  padding: 8px 10px;
  font-weight: bold;
  border-bottom: 2px solid var(--main-color);
}

.recommended { margin-bottom: 1.5em; }
.recommended a {
  display: table;
  width: 90%;
  margin: 5%;
  color: #333;
  font-weight: bold;
  line-height: 1.55;
}
.recommended a figure, .recommended a div {
  display: table-cell;
  vertical-align: middle;
}
.recommended a figure { width: 90px; height: 90px; }
.recommended figure img {
  width: 100%;
  border-radius: 10px;
  transition: all 0.4s;
}
.recommended a div {
  width: calc(100% - 90px);
  padding-left: 15px;
}
.recommended a:hover { color: #888; text-decoration: none; }
.recommended a:hover figure img {
  box-shadow: 0 7px 15px rgba(0, 0, 0, 0.25);
}

/* 関連記事 */
.related-posts ul {
  margin: 0;
  padding: 15px;
  display: flex;
  flex-wrap: wrap;
}
.related-posts li {
  width: 48%;
  margin: 0 4% 20px 0;
  display: block;
  float: left; /* Flexbox使用時でも互換性のため維持 */
}
.related-posts li:nth-child(even) { margin-right: 0; }
.related-posts li a {
  display: block;
  color: #333;
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
}
.related-posts li a:hover { color: black; }
.rlmg img { transition: 0.3s; }
.related-posts li a:hover img {
  box-shadow: 0 15px 30px -5px rgba(0, 0, 0, 0.25);
  transform: translateY(-4px);
}
.rep {
  padding: 10px 0 0;
  line-height: 1.5;
}
.rep p { margin: 0; font-size: 1.2rem; font-weight: bold; }

.related-posts.type_b { background: #eaedf2; }
.related-posts.type_b ul { padding: 0 10px 25px; }
.related-posts.type_b li {
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.25);
  background: #fff;
  transition: 0.3s;
  border-radius: 5px;
}
.related-posts.type_b .rlmg img {
  box-shadow: none;
  border-bottom: solid 1px #efefef;
  border-radius: 4px 4px 0 0;
}
.related-posts.type_b .rep { padding: 10px; font-size: 0.95em; }
.related-posts.type_b li:hover { box-shadow: 0 6px 13px rgba(0, 0, 0, 0.25); }
.related-posts.type_b li a:hover img { box-shadow: none; transform: none; }

.related-posts.type_c ul { padding: 0 13px; margin: 0 0 1.5em; }
.related-posts.type_c li {
  display: block;
  margin: 0;
  padding: 14px 0;
  width: 100%;
  border-bottom: 1px solid #e0e0e0;
  border-radius: 0;
}
.related-posts.type_c li:last-child { border-bottom: none; }
.related-posts.type_c li a { display: table; }
.related-posts.type_c .rlmg, .related-posts.type_c .rep {
  display: table-cell;
  vertical-align: middle;
}
.related-posts.type_c .rlmg { width: 25%; padding-right: 3px; }
.related-posts.type_c .rlmg img { width: 100%; }
.related-posts.type_c .rep { width: 60%; padding: 0; }

@media only screen and (max-width: 768px) {
  .related-posts.slide ul {
    padding: 10px 10px 20px;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    flex-wrap: nowrap;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
  }
  .related-posts.type_b.slide ul { padding-top: 0; }
  .related-posts.slide ul:after { content: ""; min-width: 20px; }
  .related-posts.slide ul li {
    min-width: 240px;
    max-width: 300px;
    margin: 8px;
    scroll-snap-align: center;
  }
}

.footer-meta {
  padding: 10px 5% 20px;
  font-size: 0.95em;
}
.footer-meta_title {
  display: inline-block;
  padding-right: 2px;
  font-weight: bold;
}
.footer-meta ul { display: inline-block; margin: 0; }
.footer-meta ul li { display: inline-block; margin: 0 5px 5px 0; }
.footer-meta ul li:not(:last-child):after { padding: 0 0 0 4px; }
.footer-meta ul li a {
  padding: 0.5rem;
  border: 1px solid #e0e0e0;
  background-color: #e6f2ff;
  color: #4a86e8;
  cursor: pointer;
  transition: background-color 0.3s, color 0.3s;
  text-align: center;
  border-radius: 5px;
  text-decoration: none;
  display: inline-block;
}
.footer-meta ul li a:hover {
  background-color: var(--main-color);
  color: white;
  text-decoration: none;
}
.meta-tag { margin-top: 5px; }
.meta-tag a:before { padding-left: 3px; content: ""; }
.tags { margin: 0; }

.like_box { padding: 30px 15px; }
.like_inside {
  overflow: hidden;
  max-width: 350px;
  margin: 0 auto;
  border-radius: 3px;
  background: #fff;
  box-shadow: 0 10px 15px -2px rgba(0, 0, 0, 0.24);
}
.like_img {
  overflow: hidden;
  position: relative;
  width: 110%;
  margin-left: -5%;
  border-radius: 0 0 50% 50%/0 0 25% 25%;
  transition: 0.3s ease-in-out;
}
.like_img img { width: 100%; }
.like_img:after {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: black;
  opacity: 0.15;
  content: "";
}
.like_img p {
  position: absolute;
  z-index: 2;
  top: calc(50% - 70px);
  left: 0;
  width: 100%;
  padding: 10%;
  background-position: 50% 50%;
  color: #fff;
  font-size: 35px;
  text-align: center;
}
.like_content { padding: 15px 20px; font-weight: bold; }
.like_content p { padding-bottom: 10px; font-weight: bold; }
.like_insta, .like_youtube {
  display: inline-block;
  margin: 10px 0 0;
  padding: 4.5px 7px 4px;
  color: #fff;
  font-size: 12px;
  line-height: 1.1;
  border-radius: 4px;
}
.like_youtube { background: #f0504f; }
.like_insta {
  background: linear-gradient(45deg, #fad51f, #f95e5e 20%, #e83784 60%, #754ed5);
}
.fb-like { margin-top: 13px; }

/* 著者情報 */
.author-info { position: relative; padding: 25px 15px; }
.author-info__inner { position: relative; }
.author-info__inner .tb {
  border-radius: 3px;
  background: #fff;
  box-shadow: 0 5px 20px -5px rgba(105, 115, 131, 0.35);
}
.author-info__inner .tb-left { padding: 20px 15px 5px; }
.author_label span {
  display: inline-block;
  position: relative;
  min-width: 120px;
  max-width: 100%;
  margin: 0 0 15px;
  padding: 6px 12px;
  border-radius: 20px;
  background: #eaedf2;
  color: #555;
  font-size: 16px;
  font-weight: bold;
}
.author_label span:before {
  position: absolute;
  top: 100%;
  left: 33px;
  border: 13px solid transparent;
  border-top: solid 10px #eaedf2;
  content: "";
}
.author_img {
  display: inline-block;
  width: 90px;
  height: 90px;
  margin: 0;
  vertical-align: middle;
}
.author_img img { border: solid 3px #dfe2e8; border-radius: 50%; }
.author-info__inner .tb-left .aut {
  display: inline-block;
  width: calc(100% - 95px);
  margin: 0;
  padding-left: 10px;
  vertical-align: middle;
  line-height: 1.3;
}
.author-info__inner .tb-left dt { font-size: 19px; font-weight: bold; }
.author-info__inner .tb-left dd {
  padding-top: 4px;
  color: #686868;
  font-size: 15px;
  font-weight: bold;
}
.author-info__inner .tb-right {
  padding: 15px;
  font-size: 0.95em;
  line-height: 1.7;
}

.follow_btn { margin-top: 15px; }
.follow_btn a {
  display: inline-block;
  margin: 15px 10px 0 0;
  color: #919191;
  text-align: center;
  font-size: 11px;
}
.follow_btn a:hover { text-decoration: none; transform: translateY(-4px); }
.follow_btn a:before {
  display: block;
  width: 60px;
  height: 60px;
  margin: 0 auto;
  border-radius: 12px;
  color: #fff;
  font-family: FontAwesome;
  font-size: 35px;
  text-align: center;
  line-height: 60px;
}
.fa5 .follow_btn a:before { font-family: "Font Awesome 5 Brands"; }
.follow_btn .Twitter:before { background: #3ab4ff; content: "\f099"; }
.follow_btn .Facebook:before { background: #4f96f6; content: "\f09a"; }
.follow_btn .Instagram:before, .profile-sns li .fa-instagram {
  background: url("library/images/insta.jpg") no-repeat cover;
  content: "\f16d";
}
.follow_btn .YouTube:before { background: #f0504f; content: "\f16a"; }
.fa5 .follow_btn .YouTube:before { content: "\f167"; }
.follow_btn .Feedly:before { background: #72d865; content: "\f09e"; }
.follow_btn .Website:before { background: #ffb35d; content: "\f0ac"; }
.follow_btn .LINE:before { background: #59d869; content: "\f3c0"; }
.fa4 .follow_btn .LINE:before { content: "\f075"; }
.fa5 .follow_btn .Feedly:before, .fa5 .follow_btn .Website:before {
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
}

.cta { padding: 25px 15px; font-weight: bold; }
.cta-img { margin: 15px 0; text-align: center; }
.cta h3 { margin: 0; font-size: 1.5em; line-height: 1.45; }
.cta-descr { margin: 15px 0; font-size: 1.1em; white-space: pre-wrap; }
.cta-btn { text-align: center; }
.cta-btn a { padding: 0.5em 1em; }

.related_ads { margin: 1.5em 0 2em; }
.article-footer .textwidget { margin: 1em 0 0; }

.prnx_box { margin-bottom: 1.5em; }
.prnx { display: block; margin: 0 15px 20px; color: #505050; }
.prnx:hover { text-decoration: none; }
.prnx p {
  margin: 0;
  padding: 4px;
  color: rgba(0, 0, 0, 0.52);
  font-size: 0.9em;
  font-weight: bold;
}
.prnx.nx p { text-align: right; }
.prnx_tb {
  display: table;
  width: 100%;
  background: #fff;
  border-radius: 2px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
  transition: 0.3s ease-in-out;
}
.prnx:hover .prnx_tb { box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2); }
.prnx_tb figure {
  display: table-cell;
  width: 95px;
  padding: 10px 0 10px 10px;
  vertical-align: middle;
}
.prnx_tb figure img { width: 100%; }
.prev-next__text {
  display: table-cell;
  width: calc(100% - 95px);
  padding: 10px;
  font-size: 0.9em;
  vertical-align: middle;
  line-height: 1.4;
}
.nx .prnx_tb figure { padding: 10px 10px 10px 0; }

/* =========================================
   コメント
   ========================================= */
#comments-title {
  margin: 0;
  padding: 0.75em;
  border-top: 1px solid #f8f9fa;
}
.commentlist {
  list-style-type: none;
  margin: 0;
  font-size: 0.9em;
}
.comment {
  overflow: hidden;
  position: relative;
  clear: both;
  padding: 1em;
}
.no-comments { font-size: 0.95em; margin: 1em; }
.comment .comment-author { padding: 7px 0 2px; border: 0; }
.comment .vcard { margin-left: 50px; }
.comment .vcard cite.fn { font-weight: bold; font-style: normal; }
.comment .vcard time {
  display: block;
  font-size: 0.8em;
  font-style: italic;
}
.comment .vcard time a {
  color: #9fa6b4;
  text-decoration: none;
}
.comment .vcard time a:hover { text-decoration: underline; }
.comment .vcard .avatar {
  position: absolute;
  left: 16px;
  border-radius: 50%;
}
.comment:last-child { margin-bottom: 0; }
.comment .children { margin: 0; }
.comment[class*="depth-"] { margin-top: 1.1em; }
.comment.depth-1 { margin-top: 0; margin-left: 0; }
.comment:not(.depth-1) { margin-top: 0; padding: 13px; }
.comment.odd { background-color: white; }
.comment.even { background: #f8f9fa; }

.comment_content p {
  margin: 0.7335em 0 1.5em;
  line-height: 1.5em;
}
.blue-btn,
.comment-reply-link,
#submit {
  display: inline-block;
  position: relative;
  padding: 0 24px;
  border: 0;
  border-radius: 4px;
  color: white;
  font-size: 34px;
  font-weight: normal;
  text-decoration: none;
  line-height: 34px;
  cursor: pointer;
  transition: background-color 0.14s ease-in-out;
}
.blue-btn:hover,
.comment-reply-link:hover,
#submit:hover,
.blue-btn:focus,
.comment-reply-link:focus,
#submit:focus {
  color: white;
  text-decoration: none;
}
.blue-btn:active,
.comment-reply-link:active,
#submit:active {
  top: 1px;
}

.blue-btn { background-color: var(--main-color); }
.blue-btn:hover, #submit:hover, .blue-btn:focus, .comment-reply-link:focus, #submit:focus {
  background-color: silver;
}
.blue-btn:active, .comment-reply-link:active, #submit:active {
  background-color: silver;
}

.comment-reply-link {
  float: right;
  margin: 10px 0 10px 10px;
  background-color: #c1c7cc;
  font-size: 0.85em;
  font-weight: bold;
}
.comment-edit-link {
  margin: 0 7px;
  font-size: 0.9em;
  font-style: italic;
  text-decoration: none;
}
.comment-nav-prev { float: left; padding: 10px; font-weight: bold; }
.comment-nav-next { float: right; padding: 10px; font-weight: bold; }

.comment-respond {
  padding: 1em 1.5em 2em;
  border-top: solid 1px #eaedf2;
}
#reply-title { font-weight: bold; }
#reply-title:before {
  padding-right: 5px;
  font-family: FontAwesome;
  font-weight: normal;
  content: "\f040";
}
.fa5 #reply-title:before { content: "\f303"; }
.comment-notes { color: #7b7e82; font-size: 0.9em; }
.logged-in-as {
  margin: 0;
  color: #9fa6b4;
  font-style: italic;
}
.logged-in-as a { color: #5c6b80; }
.comment-form-comment { margin: 1.5em 0 0.75em; }
.form-allowed-tags {
  padding: 1.5em;
  background-color: #f8f9fa;
  font-size: 0.9em;
}
.form-submit { text-align: right; }
#submit {
  display: inline-block;
  padding: 2px 14px;
  border-radius: 2px;
  box-shadow: 0 1.5px 3px rgba(0, 0, 0, 0.25);
  font-size: 1em;
}
#comment-form-title { margin: 0 0 1.1em; }
#allowed_tags { margin: 1.5em 10px 0.7335em 0; }
.comment-form-cookies-consent {
  font-size: 0.9em;
  position: relative;
  line-height: 1.6;
}
.comment-form-cookies-consent input { position: absolute; top: 5px; left: 0; }
.comment-form-cookies-consent label { padding-left: 25px; display: block; }
.required { color: #ee7b7b; }
.nocomments { margin: 0 20px 1.1em; }

/* =========================================
   フッター
   ========================================= */
.footer {
  position: relative;
  clear: both;
  font-size: 0.95em;
}
.inner-footer { padding-top: 2em; }
.ft_title {
  margin: 0 0 0.7em;
  padding: 2px 0 2px 10px;
  border-left: solid 3px;
  font-size: 1.2em;
}
.footer .widget ul li a, .footer .my-widget__text { opacity: 0.75; }
.footer .widget .my-widget li a { opacity: 1; }
.footer p { line-height: 1.55; }
.footer p a { text-decoration: underline; }
.footer p a:hover { opacity: 0.7; }
.footer .ft_widget, .footer .my_popular_posts {
  margin: 1.5em 0 3em;
  background: transparent;
}
.footer .widget h4 + * { padding: 0; }
.footer .my-widget__img img { border: none; box-shadow: 0 3px 15px rgba(0, 0, 0, 0.15); }
.footer .widget ul li a {
  position: relative;
  padding: 8px 0 8px 13px;
}
.footer .widget ul li a:hover { background: transparent; text-decoration: underline; }
.footer .widget .my-widget li a { padding-left: 0; }
.footer .widget .my-widget li a:hover { text-decoration: none; }
.footer .widget ul:not(.my-widget) li a:before {
  position: absolute;
  left: 0;
  font-family: FontAwesome;
  content: "\f105";
}
.footer .widget ul li ul li a { margin-left: 15px; }
.footer .tagcloud a {
  background: rgba(0, 0, 0, 0.18);
  text-decoration: none;
}
.footer select { background-color: #fff; }

#footer-menu {
  padding: 8px;
  text-align: center;
}
#footer-menu a { color: #fff; text-decoration: none; }
.footer-menu__btn {
  font-size: 20px;
  transition: 0.3s ease-in-out;
}
.footer-menu__btn:hover { opacity: 0.7; }
#footer-menu nav, .footer-links { display: inline-block; }
#footer-menu ul { margin: 0.5em; }
#footer-menu li, .privacy-policy-link {
  display: inline-block;
  padding: 0 6px;
  font-size: 14.5px;
}
.privacy-policy-link { padding-left: 0; }
#footer-menu li a:hover,
#footer-menu .privacy-policy-link:hover {
  text-decoration: underline;
}
.copyright {
  margin: 5px 0 0;
  font-size: 13.5px;
  opacity: 0.7;
}

/* TOPへ戻るボタン */
.totop {
  display: none;
  width: 54px;
  height: 54px;
  text-align: center;
  position: fixed;
  bottom: 15px;
  right: 10px;
  border-radius: 50%;
  opacity: 0.6;
  transition: none;
}
.fixed-menu ~ .totop { bottom: 70px; }
.totop i {
  display: inline-block;
  height: 54px;
  line-height: 52px;
  color: #fff;
  vertical-align: middle;
}
body .totop i { width: auto; height: auto; }
.totop:hover { opacity: 0.9; }

/* その他ボタン */
.raised {
  display: inline-block;
  margin: 0.5em 0;
  padding: 0.4em 1.3em;
  border-radius: 3px;
  box-shadow: 0 2px 3px rgba(0, 0, 0, 0.2), 0 2px 3px -2px rgba(0, 0, 0, 0.15);
  color: #fff;
  text-decoration: none !important;
  vertical-align: middle;
  transition: 0.3s ease-in-out;
}
.raised:hover, .raised:focus {
  box-shadow: 0 13px 20px -3px rgba(0, 0, 0, 0.24);
  -webkit-tap-highlight-color: transparent;
}

/* パンくずリスト */
#breadcrumb {
  margin: 0;
  padding: 13px 15px;
  background: #f4f4f4;
}
.archive #breadcrumb { padding: 0; background: transparent; }
#breadcrumb ul { margin: 0; }
#breadcrumb li {
  display: inline;
  list-style: none;
  color: gray;
  font-size: 0.87em;
}
#breadcrumb li:after {
  padding: 0 6px;
  color: rgba(0, 0, 0, 0.2);
  font-family: FontAwesome;
  content: "\f0da";
  font-size: 14px;
}
#breadcrumb li a { text-decoration: none; }
#breadcrumb li:first-child a:before {
  padding-right: 5px;
  font-family: FontAwesome;
  font-size: 1.1em;
  font-weight: normal;
  content: "\f015";
}
#breadcrumb li a:hover { color: gray; text-decoration: none; }

/* アーカイブページ */
#archive_header {
  margin: 0 0 1em;
  padding: 10px 0 5px 0;
  background: #fff;
}
#archive_header h1 { margin: 0.5em 0; }
#archive_header .cat-item, .cat_list_article {
  display: inline-block;
  overflow: hidden;
  margin: 0 5px 5px 0;
  padding: 3px 14px;
  border-radius: 20px;
  background: #eaedf2;
  font-size: 0.9em;
  transition: 0.2s ease-in-out;
}
#archive_header .cat-item:hover, .cat_list_article:hover {
  box-shadow: 0 3px 7px rgba(0, 0, 0, 0.2);
}
#archive_header .cat-item a { color: #4c4c4c; }
#archive_header .cat-item a:hover { text-decoration: none; }
#archive_header .taxonomy-description { padding: 0; }

.author h1 .fa-check-circle { color: #5cc5f0; }
.author_page_img img {
  border: solid 5px #eaedf2;
  border-radius: 50%;
}
.author h1, .author_page_img {
  display: inline-block;
  vertical-align: middle;
}
.author_page_img { width: 100px; }
.author h1 { padding-left: 0.3em; font-size: 1.5em; }

/* カスタマイザー関係 */
#header-image {
  min-height: 150px;
  background-repeat: no-repeat;
  background-position: 50% 50%;
  background-size: cover;
  animation: fadeHeader 1s ease 0s 1 normal;
}
@keyframes fadeHeader {
  0% { opacity: 0; transform: translateY(20px); }
  100% { opacity: 1; }
}

.header-image__text {
  max-width: 1080px;
  margin: 0 auto;
  padding: 13% 20px 15%;
  color: #fff;
  text-align: center;
  line-height: 1.5;
}
.header-image__text p { margin: 10px 0; white-space: pre-wrap; }
.header-image__headline { font-size: 2em; font-weight: bold; }
.header-image__descr { font-size: 0.9em; }
.header-image__btn { margin: 20px 0 0; }
.header-image__btn .raised { font-size: 19px; line-height: 1.6; }

#divheader, .post-tab { animation: fadeHeader 1s ease 0s 1 normal; }
.divheader__img img { width: 100%; }
.divheader__text { padding: 15px; }
.divheader__headline {
  margin: 0 0 5px;
  font-size: 1.3em;
  font-weight: bold;
  line-height: 1.4;
}
.divheader__descr {
  margin: 0.5em 0;
  font-size: 1em;
  white-space: pre-wrap;
}
.divheader__btn { margin: 15px 0; text-align: center; }
.divheader__btn .raised { font-size: 18px; font-weight: bold; }
.divheader__btn .raised:before {
  content: "\f0da";
  font-family: FontAwesome;
  padding-right: 8px;
}

/* 404 Not Found */
.notfound { margin-bottom: 2em; }
.nofound-title {
  position: relative;
  padding: 1em 0.5em;
  background: #fff;
  font-size: 1.1em;
  font-weight: bold;
  text-align: center;
}
.nofound-title i {
  color: #84c2ff;
  font-size: 1.2em;
  animation: slideDown 1s ease 0s 1 normal;
}
@keyframes slideDown {
  0% { opacity: 0; transform: translateY(-30px); }
  100% { opacity: 1; }
}
.nofound-title:before {
  position: absolute;
  z-index: 2;
  top: 100%;
  left: 50%;
  margin-left: -20px;
  border: 20px solid transparent;
  border-top: 20px solid #fff;
  content: "";
}
.nofound-img { position: relative; }
.nofound-img h2 {
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  margin: 0;
  padding: 0;
  color: rgba(255, 255, 255, 0.8);
  font-size: 6em;
  text-align: center;
  transform: translateY(-50%);
}
.nofound-contents { padding: 1em; background: #fff; }
.nofound-contents .searchform__input { background: #f2f2f2; }

/* ユーティリティ */
.center, .ct { text-align: center; }
.flex { display: flex; }
.flex-wrap { flex-wrap: wrap; }
.space-between { justify-content: space-between; }

.withtag_list { margin: 1.5em 0; }
.withtag_list > span {
  display: inline-block;
  padding: 2px 12px;
  border-radius: 5px 5px 0 0;
  color: #fff;
  font-weight: bold;
}
.withtag_list ul {
  list-style-type: disc;
  margin: 0;
  padding: 0.5em 0.5em 0.5em 2em;
  background: #f2f2f2;
  color: #878787;
}
.withtag_list ul li ul { padding: 0.3em 0 0.3em 1em; }

.search-title { margin: 0 0 1em; }
.search-title .fa-search {
  width: 2em;
  height: 2em;
  border-radius: 50%;
  color: #fff;
  text-align: center;
  line-height: 2em;
}

.screen-reader-text { display: none; }
#inner-content .ads-title {
  margin-bottom: 0.5em;
  color: #878787;
  font-size: 0.95em;
  text-align: center;
}

/* FontAwesome Helper */
.has-fa-before:before, .has-fa-after:after { font-family: FontAwesome; }
.fa5 .has-fa-before:before,
.fa5 .has-fa-after:after,
.fa5 #breadcrumb li:after,
.fa5 #breadcrumb li:first-child a:before,
.fa5 .divheader__btn .raised:before,
.fa5 time.updated:before,
.fa5 time.pubdate:before,
.fa5 .entry-content blockquote:before,
.fa5 .widget ul li ul li a:before,
.fa5 #reply-title:before,
.fa5 .footer .widget ul:not(.my-widget) li a:before {
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
}
.fa5 .fab { font-weight: normal; }
.fa4 .fa, .fa4 .fas { font-weight: normal; }
.fa5 .fa, .fa5 .fas { font-weight: 900; }

/* =========================================
   レスポンシブ (481px以上)
   ========================================= */
@media only screen and (min-width: 481px) {
  #logo { font-size: 23px; }
  .div-text .smltext { font-size: 1.1em; }

  .home_bottom { margin: 1em 2%; }
  .home_top { margin: 0 2% 1em; }
  .post-tab {
    margin: 0 2% 1em;
    width: 96%;
    font-size: 0.9em;
  }
  .cardtype {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
  }
  .cardtype__article {
    float: left;
    width: 46%;
    margin: 0 1.8% 25px;
  }
  .cardtype__link { padding-bottom: 15px; }
  .cardtype__article h2 { margin: 8px 13px 0; }
  .cardtype__article time { margin: 13px 13px 8px; }

  .sidelong__article {
    width: 96%;
    margin: 0 1.8% 25px;
  }
  .sidelong__link { padding: 10px;}
  .sidelong__img { width: 120px; height: 120px; }
  .sidelong__article-info {
    width: calc(100% - 120px);
    padding-left: 15px;
  }
  .sidelong h2, .sidelong .sidelong__title { font-size: 19px;}
  
  #archive_header { margin: 0 2% 1.5em; }

  .single-title, .page-title, .entry-meta, .entry-content {
    padding-right: 25px;
    padding-left: 25px;
  }

  /* FAB */
  .share-abst { max-width: 294px; height: 180px; }
  .fab__contents_img { width: 346px; }

  .sns-btn__item { width: 14%; max-width: 86px; margin: 0; }
  .sns-dif ul { max-width: 100%; }
  .sns-dif ul li { width: auto; }
  .sns-dif ul li a { width: 55px; height: 55px; margin: 7px; }
  .sns-dif ul li i { height: 55px; line-height: 55px; }

  .recommended a { width: 80%; margin: 5% 10%; font-size: 1.05em; }
  .rep p { font-size: 1.1em; }
  .related-posts.type_b ul { padding: 0 30px 15px; }
  .related-posts.type_b li a .rep { padding: 10px; font-size: 1em; }
  .related-posts.type_c ul { padding: 0px 25px; }
  .related-posts.type_c li { padding: 18px 0; }

  .cta { padding: 25px; }
  .author-info { position: relative; padding: 25px; }

  .prnx.pr, .prnx.nx {
    max-width: 300px;
    width: 46%;
  }
  .prnx.pr { float: left; margin: 0 0 15px 2%; }
  .prnx.nx { float: right; margin: 0 2% 15px 0; }

  .inner-footer { width: 82%; }
  .nofound-contents { padding: 2em; }
  .totop { right: 18px; bottom: 20px; }
  .catpost-cards .c_linkto {
    width: 47%;
    margin: 1em 0;
    max-width: none;
  }
}

/* =========================================
   レスポンシブ (769px以上)
   ========================================= */
@media only screen and (min-width: 769px) {
  .wrap, .single #inner-content, .page #inner-content { width: 96%; }
  .single #content, .page #content { margin-top: 2em; }

  /* ロゴ */
  #logo {
    display: inline-block;
    height: 62px;
    line-height: 62px;
    margin: 0 5px 0 0;
    text-align: left;
    width: auto;
  }
  #logo:before { content: none; }
  #logo a {
    display: inline;
    line-height: inherit;
    vertical-align: baseline;
  }
  #logo img {
    vertical-align: top;
    padding: 6px 6px 6px 0;
  }

  .header--center { height: auto; padding: 0; }
  .header--center #logo {
    display: block;
    height: auto;
    margin: 0;
    padding: 10px;
    text-align: center;
    line-height: 1.5;
  }
  .header--center #logo img { padding: 0 5px; vertical-align: middle; }

  /* ナビ */
  .mobile-nav { display: none; }
  .desktop-nav, .desktop-nav ul, .desktop-nav li, .desktop-nav li a {
    display: inline-block;
    vertical-align: top;
    margin: 0;
  }
  .desktop-nav { float: right; font-weight: bold; display: block; }
  .desktop-nav li { position: relative; }
  .desktop-nav li a {
    height: 62px;
    padding: 0 10px;
    font-size: 20px;
    line-height: 62px;
  }
  .desktop-nav li i { opacity: 0.7; padding-right: 2px; }
  .desktop-nav .current-menu-item a { opacity: 1; }
  .desktop-nav li a:hover { text-decoration: none; }
  .desktop-nav li:after {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 3px;
    content: "";
    transition: transform 0.3s ease-in-out;
    transform: scale(0, 1);
    transform-origin: left top;
  }
  .desktop-nav a[href="#sng-search"] { padding: 0; }
  .desktop-nav a[href="#sng-search"] label {
    display: block;
    height: 100%;
    padding: 0 5px;
    font-size: 19px;
    cursor: pointer;
  }
  .desktop-nav a[href="#sng-search"] i { position: relative; top: -1.5px; opacity: 1; }
  .desktop-nav li:hover:after { transform: scale(1, 1); }
  .header-search__open { display: none; }

  .header--center .desktop-nav { display: block; float: none; text-align: center; }
  .header--center .desktop-nav .menu { width: 100%; }
  .header--center .desktop-nav li a {
    height: auto;
    padding: 10px 15px 15px;
    font-size: 15px;
    line-height: 1.5;
  }
  
  .desktop-nav .sub-menu {
    display: none;
    position: absolute;
    left: 0;
    top: 100%;
    width: 180px;
    color: #fff;
    background-color: #545454;
    box-shadow: 0 3px 5px rgba(0, 0, 0, 0.22);
    transition: 0.3s ease-in-out;
  }
  .desktop-nav li:hover .sub-menu { display: block; }
  .desktop-nav .sub-menu li { display: block; border-bottom: solid 1px #7b7b7b; }
  .desktop-nav .sub-menu li a {
    display: block;
    height: auto;
    line-height: 1.5;
    padding: 10px;
    font-size: 13.5px;
    vertical-align: middle;
    text-align: left;
    color: rgba(255, 255, 255, 0.86);
  }
  .desktop-nav .sub-menu li a:hover { background: gray; }
  .desktop-nav .sub-menu li:hover:after { content: none; }

  #drawer__open { display: none; }
  #inner-header { max-width: 100%; }

  .header-image__headline { font-size: 3em; }
  .header-image__descr { font-size: 1.1em; }

  #divheader { display: table; }
  .divheader__img, .divheader__text { display: table-cell; width: 50%; vertical-align: middle; }
  .divheader__img img { width: 100%; }
  .divheader__text { padding: 15px 30px; }
  .divheader__headline, .divheader__descr, .divheader__btn {
    max-width: 550px;
    text-align: left;
  }
  .home_bottom { margin: 1em 2%; }
  .home_top { margin: 0 2% 1em; }
  .post-tab { margin-bottom: 1.5em; }

  .article-header { margin: 20px 25px 10px; }
  .single #breadcrumb, .page #breadcrumb { padding: 0; background: transparent; }
  .single-title, .page-title { margin-top: 15px; padding: 0; }
  .entry-meta { padding: 0; }

  .entry-content table.tb-responsive {
    display: table;
    overflow-x: visible;
    width: auto;
    border: 2px solid var(--border-color);
    white-space: normal;
  }

  #fab:checked ~ .fab-btn {
    opacity: 0;
    transform: translate(-50px, -50px) scale3d(3, 3, 1);
  }
  #fab__contents {
    top: 50%;
    left: 50%;
    width: 440px;
    height: auto;
    padding: 30px 10px;
    transform: translate(-50%, -50%);
  }
  #fab:checked ~ .fab__close-cover {
    display: block;
    width: 100%;
    height: 100%;
    opacity: 1;
    transition: 0.5s ease-in-out;
  }
  .close { padding: 20px 15px; }

  .single #inner-content, .page #inner-content { display: flex; }
  .sidebar, .insidesp { min-height: 100%; }
  .single .insidesp, .page .insidesp { padding: 0; }

  .footer-contents { padding: 0 25px; }
  .footer-meta { padding: 10px 0; }
  .sns-dif + .like_box { padding-top: 12px; background: #eaedf2; }
  .page .footer-contents { margin-bottom: 2em; }

  .recommended a { width: calc(100% - 50px); margin: 25px; }
  .recommended a figure { width: 110px; height: 110px; }
  .recommended a div { width: calc(100% - 110px); height: calc(100% - 110px); }

  .related-posts ul {
    overflow: visible;
    padding: 15px 0;
    text-align: center;
    white-space: normal;
  }
  .related-posts li {
    display: block;
    float: left;
    width: 48%;
    margin: 1em 4% 1em 0;
    text-align: left;
  }
  .related-posts li:nth-child(even) { margin-right: 0; }
  .related-posts.type_b { background: transparent; }
  .related-posts.type_b ul { padding: 15px 0; }
  .related-posts.type_c ul { padding: 0; }
  .related-posts.type_c li { width: 100%; margin: 0; }
  
  .cta { margin: 25px 0; padding: 25px 20px; }
  .related_ads { margin: 2.5em 0; }
  .prnx.pr { float: left; margin: 15px 0; }
  .prnx.nx { float: right; margin: 15px 0; }

  .inner-footer { width: 90%; }
  .fblock { float: left; width: 47%; }
  .fblock.first { margin-right: 6%; }
  .notfound { margin-right: 4%; }
  .fixed-sidebar { display: block; }

  #content.one-column { margin-top: 0; background: #fff; }
  .one-column #inner-content { width: 100%; }
  .one-column #main {
    float: none;
    max-width: 850px;
    width: 100%;
    margin: 0 auto;
    padding-right: 0;
  }
  .one-column .author-info, .one-column .prnx_box { margin: 0 25px; }
  #content.page-forfront { margin-top: 0; padding: 30px; }
}

/* =========================================
   レスポンシブ (1030px以上)
   ========================================= */
@media only screen and (min-width: 1030px) {
  .wrap, .maximg, .single #inner-content, .page #inner-content { width: 92%; }
  .maximg { margin: 30px auto 45px; }

  .cardtype__article { width: 45%; margin: 0 4% 25px 0; }
  .cardtype__link { padding-bottom: 25px; }
  .cardtype h2 { margin: 8px 13px 0; font-size: 18px; }
  .cardtype time { margin: 13px 13px 8px; }

  .sidelong__article {
    float: left;
    width: 45.5%;
    margin: 0 3% 3% 0;
    min-height: 117px;
  }
  .sidelong__link { padding: 8px; }
  .sidelong__img { width: 100px; height: 100px; }
  .sidelong__article-info { width: calc(100% - 100px); padding-left: 10px; }
  .sidelong h2, .sidelong .sidelong__title { font-size: 16px;}

  .home_bottom { margin: 1em 6% 1em 0; }
  .home_top { margin: 0 6% 1em 0; }
  
  .post-tab {
    display: table;
    table-layout: fixed;
    margin: 0 6% 1.5em 0;
    width: 94%;
  }
  .post-tab.cf:before, .post-tab.cf:after { content: none; }
  .post-tab > div {
    display: table-cell;
    width: auto;
    float: none;
    padding: 0.9em 0.2em;
    border-right: solid 1px #eaeaea;
  }
  .post-tab > div:last-of-type { border-right: none; }
  .post-tab .tab3, .post-tab .tab4 { border-top: none; }

  #archive_header { margin: 0 6% 1.5em 0; padding: 20px 20px; }

  h1 { font-size: 1.5em; }
  .article-header { margin: 25px 40px 10px; }
  .entry-content { padding-left: 40px; padding-right: 40px; }
  .footer-contents { padding: 0 40px; }

  .author-info { padding: 30px 40px; }
  .tb { display: table; width: 100%; }
  .tb-left, .tb-right { display: table-cell; vertical-align: middle; }
  .author-info__inner .tb-left {
    width: 220px;
    border-right: 2px #eaedf2 dashed;
    text-align: center;
  }
  .author-info__inner .tb-right { width: calc(100% - 220px); padding: 20px; }
  .author_img { display: inline-block; }
  .author-info__inner .tb-left .aut { display: block; width: 100%; padding: 15px 0; }
  .author_label span { z-index: 2; margin-bottom: 20px; font-size: 14px; }
  .author_label span:before {
    z-index: -1;
    top: calc(100% - 15px);
    left: 50px;
    border: 15px solid transparent;
    border-top: solid 30px #eaedf2;
    transform: rotate(-40deg);
  }

  .follow_btn { margin: 0 8px 5px 0; }
  .follow_btn a:before { width: 50px; height: 50px; font-size: 33px; line-height: 50px; }

  .related-posts ul { text-align: left; }
  .related-posts li { width: 31%; margin: 1em 0; }
  .related-posts li:nth-child(3n + 2) { margin: 1em 3.5%; }
  .related-posts.type_c li,
  .related-posts.type_c li:nth-child(3n + 2) {
    width: 48%;
    margin: 0 2% 0 0;
    padding: 17px 0;
  }
  .related-posts.type_c li:nth-child(even) { margin: 0 0 0 2%; }
  .related-posts.type_c li:nth-last-child(2) { border-bottom-color: #fff; }
  .related-posts.type_c .rlmg { width: 45%; }
  .related-posts.type_c .rep { width: 55%; font-size: 0.9em; }

  .cta { padding: 30px 25px; }
  .cta h3 { text-align: center; }

  .recommended a {
    float: left;
    width: 47.5%;
    margin: 3% 5% 3% 0;
    font-size: 0.95em;
  }
  .recommended a:nth-child(even) { margin-right: 0; }
  .recommended a figure {
    width: 90px;
    height: 90px;
    vertical-align: top;
  }
  .recommended a div {
    width: calc(100% - 110px);
    height: calc(100% - 110px);
    padding-left: 10px;
  }

  .one-column .author-info, .one-column .prnx_box { margin: 0 40px; }
  .comment-respond { padding: 10px 40px 30px; }

  .inner-footer { width: 92%; }
  .fblock, .fblock.first { width: 30%; margin-right: 5%; }
  .fblock.last { margin-right: 0; }
}

/* =========================================
   レスポンシブ (1240px以上)
   ========================================= */
@media only screen and (min-width: 1240px) {
  .wrap, .maximg, .single #inner-content, .page #inner-content, .inner-footer {
    width: 1180px;
  }
}

.sns-btn__item.hatebu, .sns-btn__item.pkt { display: none; }