@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
*/

/************************************
** ベース設定
************************************/
:root{
  --site-main: #1f3c88;
  --site-main-dark: #15306f;
  --site-sub: #2a6f97;
  --site-accent: #1fb980;
  --site-accent-dark: #129164;
  --site-bg: #f7fafe;
  --site-bg-soft: #eef5ff;
  --site-border: #d7e3f4;
  --site-text: #2c3440;
  --site-text-soft: #5f6b7a;
  --site-success-bg: #eefaf4;
  --site-success-border: #7cc9a2;
  --site-caution-bg: #fff7ed;
  --site-caution-border: #f2b36d;
  --site-point-bg: #eef6ff;
  --site-point-border: #7ba7e8;
  --site-shadow: 0 8px 24px rgba(31, 60, 136, 0.08);
  --site-radius-s: 8px;
  --site-radius-m: 12px;
  --site-radius-l: 18px;
  --content-max: 860px;
}

html{
  scroll-behavior: smooth;
}

body{
  color: var(--site-text);
  background: #ffffff;
  line-height: 1.9;
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
  text-rendering: optimizeLegibility;
}

body,
button,
input,
select,
textarea{
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic", "Meiryo", sans-serif;
}

a{
  color: var(--site-main);
  text-decoration: none;
  transition: all 0.25s ease;
}

a:hover{
  color: var(--site-main-dark);
  opacity: 0.88;
}

.entry-content,
.article,
.main{
  word-break: break-word;
  overflow-wrap: break-word;
}

.entry-content p{
  margin: 0 0 1.35em;
}

.entry-content img{
  border-radius: var(--site-radius-s);
}

.entry-content hr{
  border: 0;
  border-top: 1px solid var(--site-border);
  margin: 2.2em 0;
}

/************************************
** 見出しデザイン
************************************/
.entry-content h2{
  position: relative;
  margin: 2.6em 0 1.1em;
  padding: 0.95em 1.1em;
  background: linear-gradient(135deg, var(--site-main), var(--site-sub));
  color: #fff;
  border-radius: var(--site-radius-m);
  box-shadow: var(--site-shadow);
  font-size: 1.45em;
  line-height: 1.5;
}

.entry-content h2::before{
  content: "";
  position: absolute;
  inset: 0;
  border-radius: var(--site-radius-m);
  border: 1px solid rgba(255,255,255,0.18);
  pointer-events: none;
}

.entry-content h3{
  margin: 2.2em 0 1em;
  padding: 0.5em 0.85em;
  border-left: 6px solid var(--site-accent);
  background: var(--site-bg);
  color: var(--site-main-dark);
  border-radius: 0 var(--site-radius-s) var(--site-radius-s) 0;
  font-size: 1.22em;
  line-height: 1.6;
}

.entry-content h4{
  margin: 1.8em 0 0.9em;
  padding-bottom: 0.35em;
  border-bottom: 2px solid var(--site-border);
  color: var(--site-main-dark);
  font-size: 1.08em;
  line-height: 1.6;
}

/************************************
** 本文まわり
************************************/
.entry-content ul,
.entry-content ol{
  margin: 0 0 1.4em 1.4em;
  padding: 0;
}

.entry-content li{
  margin-bottom: 0.45em;
}

.entry-content strong{
  font-weight: 700;
}

.marker-yellow{
  background: linear-gradient(transparent 58%, #fff1a8 58%);
}

.marker-green{
  background: linear-gradient(transparent 58%, #bff3de 58%);
}

.marker-blue{
  background: linear-gradient(transparent 58%, #cfe6ff 58%);
}

/************************************
** 引用
************************************/
.entry-content blockquote{
  margin: 1.8em 0;
  padding: 1.2em 1.2em 1.2em 1.4em;
  background: #f9fbff;
  border-left: 4px solid var(--site-sub);
  border-radius: var(--site-radius-m);
  color: var(--site-text-soft);
  box-shadow: 0 3px 12px rgba(31, 60, 136, 0.05);
}

/************************************
** 比較表・テーブル
************************************/
figure.wp-block-table,
.table-scroll{
  overflow-x: auto;
  margin: 1.6em 0;
}

.entry-content table,
.wp-block-table table{
  width: 100%;
  border-collapse: collapse;
  min-width: 640px;
  background: #fff;
  border: 1px solid var(--site-border);
  border-radius: var(--site-radius-s);
  overflow: hidden;
}

.entry-content th,
.entry-content td,
.wp-block-table th,
.wp-block-table td{
  padding: 0.85em 0.9em;
  border: 1px solid var(--site-border);
  vertical-align: top;
  line-height: 1.7;
}

.entry-content th,
.wp-block-table th{
  background: var(--site-bg-soft);
  color: var(--site-main-dark);
  font-weight: 700;
}

.entry-content tr:nth-child(even) td,
.wp-block-table tr:nth-child(even) td{
  background: #fcfdff;
}

/************************************
** 汎用ボックス
** 使い方：ブロックの「追加CSSクラス」に
** box-point / box-success / box-caution / box-note / cta-box を入力
************************************/
.entry-content .box-point,
.entry-content .box-success,
.entry-content .box-caution,
.entry-content .box-note,
.entry-content .cta-box{
  position: relative;
  margin: 1.8em 0;
  padding: 1.4em 1.2em 1.2em;
  border-radius: var(--site-radius-m);
  box-shadow: 0 6px 18px rgba(31, 60, 136, 0.05);
}

.entry-content .box-point{
  background: var(--site-point-bg);
  border: 1px solid var(--site-point-border);
}

.entry-content .box-success{
  background: var(--site-success-bg);
  border: 1px solid var(--site-success-border);
}

.entry-content .box-caution{
  background: var(--site-caution-bg);
  border: 1px solid var(--site-caution-border);
}

.entry-content .box-note{
  background: #f8fafc;
  border: 1px solid #d9e2ec;
}

.entry-content .cta-box{
  background: linear-gradient(135deg, #f5fbff, #eefaf5);
  border: 1px solid #bddfd0;
  padding-top: 1.7em;
}

.entry-content .box-point::before,
.entry-content .box-success::before,
.entry-content .box-caution::before,
.entry-content .box-note::before,
.entry-content .cta-box::before{
  position: absolute;
  top: -0.8em;
  left: 1em;
  display: inline-block;
  padding: 0.25em 0.7em;
  border-radius: 999px;
  font-size: 0.78em;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #fff;
}

.entry-content .box-point::before{
  content: "POINT";
  background: var(--site-sub);
}

.entry-content .box-success::before{
  content: "成功例";
  background: var(--site-accent-dark);
}

.entry-content .box-caution::before{
  content: "注意点";
  background: #d97706;
}

.entry-content .box-note::before{
  content: "メモ";
  background: #64748b;
}

.entry-content .cta-box::before{
  content: "CHECK";
  background: var(--site-main);
}

/************************************
** CTAボタン
** Gutenbergボタン、Cocoonのボタン風クラス両方を想定
************************************/
.wp-block-button{
  margin-bottom: 1em;
}

.wp-block-button__link,
.btn-wrap > a,
a.btn,
a.cta-button{
  display: inline-block;
  padding: 0.95em 1.5em;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--site-accent), var(--site-main));
  color: #fff !important;
  font-weight: 700;
  text-align: center;
  box-shadow: 0 10px 24px rgba(31, 60, 136, 0.18);
  border: none;
}

.wp-block-button__link:hover,
.btn-wrap > a:hover,
a.btn:hover,
a.cta-button:hover{
  transform: translateY(-2px);
  box-shadow: 0 14px 28px rgba(31, 60, 136, 0.22);
  color: #fff !important;
}

/************************************
** FAQ・details
************************************/
.entry-content details{
  margin: 1em 0;
  border: 1px solid var(--site-border);
  border-radius: var(--site-radius-m);
  background: #fff;
  overflow: hidden;
}

.entry-content summary{
  list-style: none;
  cursor: pointer;
  padding: 1em 1.15em;
  background: var(--site-bg);
  color: var(--site-main-dark);
  font-weight: 700;
  position: relative;
}

.entry-content summary::-webkit-details-marker{
  display: none;
}

.entry-content summary::after{
  content: "＋";
  position: absolute;
  right: 1em;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.15em;
}

.entry-content details[open] summary::after{
  content: "−";
}

.entry-content details > *:not(summary){
  padding: 0 1.15em 1.1em;
}

/************************************
** 投稿内のリンクカード・関連記事補助
************************************/
a.a-wrap{
  border-radius: var(--site-radius-m);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

a.a-wrap:hover{
  transform: translateY(-2px);
  box-shadow: var(--site-shadow);
}

/************************************
** サイドバー・ウィジェット
************************************/
.widget{
  border-radius: var(--site-radius-m);
}

.widget-title{
  padding-left: 0.7em;
  border-left: 4px solid var(--site-accent);
}

/************************************
** 投稿メタ・補足テキスト
************************************/
.post-date,
.post-update,
.author-info,
.entry-categories,
.entry-tags{
  color: var(--site-text-soft);
}

/************************************
** レスポンシブデザイン用のメディアクエリ
************************************/
/*1023px以下*/
@media screen and (max-width: 1023px){
  .entry-content h2{
    font-size: 1.32em;
    padding: 0.85em 1em;
  }

  .entry-content h3{
    font-size: 1.15em;
  }

  .entry-content table,
  .wp-block-table table{
    min-width: 560px;
  }
}

/*834px以下*/
@media screen and (max-width: 834px){
  body{
    font-size: 15.5px;
  }

  .entry-content h2{
    margin-top: 2.2em;
    font-size: 1.24em;
  }

  .entry-content h3{
    font-size: 1.1em;
  }

  .entry-content .box-point,
  .entry-content .box-success,
  .entry-content .box-caution,
  .entry-content .box-note,
  .entry-content .cta-box{
    padding: 1.3em 1em 1em;
  }

  .wp-block-button__link,
  .btn-wrap > a,
  a.btn,
  a.cta-button{
    width: 100%;
    box-sizing: border-box;
  }
}

/*480px以下*/
@media screen and (max-width: 480px){
  body{
    font-size: 15px;
  }

  .entry-content h2{
    font-size: 1.16em;
    line-height: 1.45;
  }

  .entry-content h3{
    font-size: 1.04em;
    padding: 0.55em 0.75em;
  }

  .entry-content h4{
    font-size: 1em;
  }

  .entry-content th,
  .entry-content td,
  .wp-block-table th,
  .wp-block-table td{
    padding: 0.7em;
  }
}
