@charset "UTF-8";

/*!
Theme Name: Cocoon Child
Description: Cocoon専用の子テーマ
Theme URI: https://wp-cocoon.com/
Author: わいひら
Author URI: https://nelog.jp/
Template:   cocoon-master
Version:    1.1.3
*/

/************************************
** 1. 全体・要素の微調整用変数設定
************************************/
:root {
  --target-img-width: 100%;     /* 図（画像）の幅 */
  --target-font-size: 100%;    /* テキストの文字サイズ */
  --target-line-height: 1.8;   /* テキストの行間 */
  --target-math-size: 100%;    /* 数式の大きさ */
}

/************************************
** 2. Web（通常表示）時のスタイル最適化
************************************/

body {
  line-height: var(--target-line-height);
  color: #333333;
}

/* ◆固定ページのタイトル非表示 */
.page .entry-title {
  display: none;
}

/* ◆見出しスタイル（Web表示） */
.entry-content > h1,
.entry-content > h2,
.entry-content > h3,
.entry-content > h4,
.entry-content > h5,
.entry-content > h6 {
  background: none;
  box-shadow: none;
}

.article h1 {
  font-size: 32px;
  font-weight: 700;
  line-height: 1.5;
  color: #333333;
  margin: 10px 0 0px;
  padding: 20px 0;
  border-top: 5px solid #949495;
  border-bottom: 5px solid #949495;
}

.article h2 {
  font-size: 30px;
  font-weight: 700;
  line-height: 1.5;
  color: #333333;
  margin: 50px 0 25px;
  padding: 12px 0;
  border-top: 3px solid #949495;
  border-bottom: 3px solid #949495;
}

.article h3 {
  font-size: 28px;
  font-weight: 700;
  line-height: 1.5;
  color: #333333;
  margin: 40px 0 20px;
  padding: 6px 0 6px 14px;
  border-left: 8px solid #949495;
}

.article h4 {
  font-size: 26px;
  font-weight: 700;
  line-height: 1.5;
  color: #333333;
  margin: 35px 0 18px;
  padding-left: 12px;
  border-left: 4px solid #949495;
}

.article h5 {
  font-size: 24px;
  font-weight: 700;
  line-height: 1.5;
  color: #333333;
  margin: 0px 0px 30px;
  padding-bottom: 8px;
  border-bottom: 2px solid #949495;
}
.entry-content h5::before {
  content: "■";
  color: #949495;
  margin-right: 8px;
  font-size: 18px;
  position: relative;
  top: 0px;
}

.article h6 {
  font-size: 22px;
  font-weight: 700;
  line-height: 1.5;
  color: #333333;
  margin: 0px 0px 30px;
  padding-bottom: 8px;
  border-bottom: 2px solid #949495;
}

/* ◆アピール画像・おすすめカード */
#appeal .appeal-in {
  height: calc(100vw * 0.26);
}
#recommended .navi-entry-card-title {
  font-weight: bold;
}

/* ◆カテゴリーラベル非表示 */
.cat-label {
  display: none !important;
}

/* ◆ブログカード設定 */
.blogcard {
  position: relative;
  padding-bottom: 150px;
  border: 2px solid #a2d7dd !important;
  background-color: #eaf4fc;
}
.blogcard:hover {
  background-color: #f0ffff;
}
.blogcard-title {
  color: #007bbb;
  line-height: 1.5;
  font-size: 1.6em;
}
.blogcard-snippet,
.internal-blogcard-footer {
  display: none !important;
}
.internal-blogcard:after {
  position: absolute;
  bottom: 10px;
  right: 20px;
  font-family: 'Font Awesome 5 Free';
  content: 'GO! \f101';
  font-size: 90%;
  font-weight: bold;
  background-color: #2ca9e1;
  color: #FFF;
  padding: 0.2em 2em;
  border-radius: 2px;
}

/* ◆サイドバー設定（外枠線を削除） */
.sidebar {
  border: none !important;
  box-shadow: none !important;
}

/* ◆プロフィール リンク解除 */
.author-box .author-content .author-name a {
  color: #14171a;
  text-decoration: none;
  pointer-events: none;
}

/* ◆ボックスメニュー設定 */
.box-menus {
  margin: 2px;
}
.box-menu {
  border: 1px solid #ea553a;
  border-radius: 10px;
  padding: 10px;
}
.box-menu:hover {
  box-shadow: inset 1px 1px 0 0 #839b5c, 1px 1px 0 0 #839b5c, 1px 0 0 0 #839b5c;
  border-radius: 10px;
  background: #f5f5f5;
  color: #fff;
}
.box-menu-label {
  font-size: 16px;
  color: #696969;
}
.box-menu-description {
  font-size: 12px;
  color: #696969;
}
.box-menu-icon {
  font-size: 30px;
  color: #ea553a;
}

/* ◆アコーディオン（Q&A） */
.toggle-button {
  background: #fff;
  text-align: left;
  font-weight: bold;
  box-shadow: 0 2px 6px 0px #ddd;
  border: none;
  padding: 1em;
}
.toggle-button::before,
.toggle-checkbox:checked ~ .toggle-button::before {
  content: '問';
  color: #f89174;
  font-size: 1em;
  margin-right: 1em;
}
.toggle-button::after,
.toggle-checkbox:checked ~ .toggle-button::after {
  font-family: "Font Awesome 5 Free";
  content: '\f107';
  color: #f89174;
  font-size: 1em;
  font-weight: bold;
  position: absolute;
  right: 2em;
  transition: 0.3s;
}
.toggle-checkbox:checked ~ .toggle-button::after {
  transform: rotate(180deg) translateY(3px);
}
.toggle-checkbox:checked ~ .toggle-content {
  background: #e5f2ff;
  margin-top: 10px;
  border: none;
  padding: 1em;
}
.toggle-checkbox:checked ~ .toggle-content p:first-of-type::before {
  content: '答';
  color: #7499f7;
  font-size: 1em;
  font-weight: bold;
  margin-right: 1em;
}

/* ◆FAQショートコード */
.article dd {
  margin-left: 0;
}
.faq_block .faq_q::before,
.faq_block .faq_a::before {
  color: #fff;
  box-shadow: none;
  border-radius: 50%;
  position: absolute;
  top: .75em;
  left: 0;
  display: block;
  width: 2em;
  line-height: 2;
  text-align: center;
  font-family: Arial, sans-serif;
}
.faq_block .faq_q::before {
  font-weight: 400;
  content: "Q";
  background-color: #d55656;
}
.faq_block .faq_a::before {
  content: "A";
  background-color: #6599b7;
}
.faq_block .faq_q,
.faq_block .faq_a {
  position: relative;
  padding: 0.75em 1em 1em 3em;
  line-height: 1.8;
  font-weight: 700;
}
.faq_block .faq_a:not(:last-child) {
  margin-bottom: 1em;
  padding-bottom: 2em;
  border-bottom: solid 1px rgba(200, 200, 200, .5);
}

/************************************
** 3. カスタムHTML（manual-fit-template）個別制御
************************************/
.manual-fit-template img {
  width: var(--target-img-width);
  max-width: 100%;
  height: auto;
  display: block;
  margin: 5px auto;
}
.manual-fit-template p,
.manual-fit-template span,
.manual-fit-template li {
  font-size: var(--target-font-size);
  line-height: var(--target-line-height);
}
.manual-fit-template .mjx-chtml,
.manual-fit-template .katex,
.manual-fit-template .math {
  font-size: var(--target-math-size) !important;
}

/************************************
** 4. 印刷（Print My Blog）時最適化
************************************/
@media print {
  *,
  *::before,
  *::after {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
	
  @page {
    size: A4 portrait;
    margin: 18mm 17mm;
  }

  html, body {
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
  }

	.print-page-break{
		height:0 !important;
		margin:0 !important;
		padding:0 !important;
		border:0 !important;
		break-before:page !important;
		page-break-before:always !important;
	}

  /* 記事エリア全体のパディング設定 */
  .entry-content,
  .print-my-blog,
  .print-my-blog-content {
    box-sizing: border-box !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
    border: none !important;
  }

  /* 印刷時の見出し設定 */
  .article h1 {
    /*上下一重太線*/
    font-size: 32px;
    font-weight: 700;
    line-height: 1.5;
    color: #333333;
    margin: 10px 0 0px !important;
    padding: 20px 0 !important;
    border-top: 5px solid #949495 !important;
    border-bottom: 5px solid #949495 !important;
  }

  .article h2 {
    /*上下一重線*/
    font-size: 30px;
    font-weight: 700;
    line-height: 1.5;
    color: #333333;
    margin: 50px 0 25px !important;
    padding: 12px 0 !important;
    border-top: 3px solid #949495 !important;
    border-bottom: 3px solid #949495 !important;
  }

  .article h3 {
    /*左太帯*/
    font-size: 28px;
    font-weight: 700;
    line-height: 1.5;
    color: #333333;
    margin: 40px 0 20px !important;
    padding: 6px 0 6px 14px !important;
    border-left: 8px solid #949495 !important;
  }

  .article h4 {
    /*左帯*/
    font-size: 26px;
    font-weight: 700;
    line-height: 1.5;
    color: #333333;
    margin: 35px 0 18px !important;
    padding-left: 12px !important;
    border-left: 4px solid #949495 !important;
  }

  .article h5 {
    /*「■」付き*/
    font-size: 24px;
    font-weight: 700;
    line-height: 1.5;
    color: #333333;
    margin: 0px 0px 30px !important;
    padding-bottom: 8px !important;
    border-bottom: 2px solid #949495 !important;
  }

  .entry-content h5::before {
    content: "■";
    color: #949495 !important;
    margin-right: 8px !important;
    font-size: 18px !important;
    position: relative !important;
    top: 0px !important;
  }

  .article h6 {
    /*アンダーライン*/
    font-size: 22px;
    font-weight: 700;
    line-height: 1.5;
    color: #333333;
    margin: 0px 0px 30px !important;
    padding-bottom: 4px !important;
    border-bottom: 2px solid #949495 !important;
  }

  /* 途中切れ防止 */
  h1, h2, h3, h4, h5, h6, table, blockquote, pre {
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }
  .manual-fit-template img,
  .manual-fit-template p,
  .manual-fit-template .mjx-chtml,
  .manual-fit-template .katex {
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }
}

/************************************
** 5. レスポンシブデザイン
************************************/
@media screen and (max-width: 1023px) {
  body {
    line-height: 1.85;
  }
  .mobile-header-menu-buttons .menu-button,
  .navi-menu-content,
  .mobile-menu-buttons .menu-button {
    background-color: #5b7e91;
  }
  .mobile-menu-buttons .menu-button {
    padding-top: 6px;
  }
  .mobile-header-menu-buttons .menu-caption {
    display: none;
  }
  .search-menu-button.menu-button,
  .navi-menu-button.menu-button {
    height: 56px;
    padding-top: 20px;
  }
}

@media screen and (max-width: 834px) {
  body {
    line-height: 1.85;
  }
}

@media screen and (max-width: 480px) {
  body {
    line-height: 1.85;
  }
  .mobile-header-menu-buttons .menu-button {
    font-size: 14px;
  }
  .navi-menu-content {
    font-size: 16px;
  }
}