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

/****************************************************
 ❶ 全体設定
****************************************************/

/* PC 上に戻るボタン サイズ調整 */
.go-to-top-button {
    width: 65px;
	height:60px;
}

/* cocoon標準ボタン マウスオーバー*/
.wp-block-buttons>.wp-block-button .wp-block-button__link {
    /* transform を transition に追加 */
    transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease, transform 0.3s ease;
}

.wp-block-buttons>.wp-block-button .wp-block-button__link:hover {
    background-color: #fc84a3!important;
    color: white !important;
    border-color: #fc84a3!important;
    /* 上に4px持ち上げる */
    transform: translateY(-4px);
}
/* 明朝系フォント（class入れる）*/
.mincho {
	font-family: "Hiragino Mincho ProN", "游明朝", "Yu Mincho", "MS Mincho", serif;
}

/* ------------------------------
  PCのみ／モバイルのみ 非表示  
---------------------------------*/
/* PCのみ表示（モバイル非表示） */
.pc-only {
    display: none;
}
/* モバイルのみ表示（PCで非表示） */
.mobile-only {
    display: block;
}

/* PC（768px以上） */
@media (min-width: 768px) {
.pc-only {
     display: block;
}
.mobile-only {
     display: none;
}
}




/****************************************************
 ❷ ヘッダー／グローバルナビ設定
****************************************************/

/* ヘッダーロゴサイズ */
.header-container-in.hlt-top-menu .logo-header img {
	max-height: 45px;
}

/* =========================================
   PC：ヘッダー横幅100% ＋ グローバルナビ2段表記
   Cocoon用 / PCのみ
========================================= */
@media screen and (min-width: 1024px) {

  /* ------------------------------
     ヘッダー全体
  ------------------------------ */
  #header-container,
  .header-container {
    width: 100% !important;
    max-width: none !important;
    background: #fff !important;
  }

  /* ロゴ＋ナビの内側 */
  #header-container .header-container-in,
  .header-container .header-container-in {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 24px !important;
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    box-sizing: border-box;
  }

  /* ロゴ側 */
  .header-logo,
  .logo-header,
  .header .logo {
    flex: 0 0 auto;
  }

  .custom-logo,
  .header-logo img,
  .logo-image img {
    max-width: 100%;
    height: auto;
  }

  /* ------------------------------
     ナビ全体
  ------------------------------ */
  #navi,
  .navi {
    flex: 1 1 auto;
    width: auto !important;
    margin-left: 24px;
  }

  #navi .navi-in,
  .navi .navi-in,
  #navi-in {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
  }

  /* メニュー全体：右寄せ */
  #navi .navi-in > ul,
  .navi .navi-in > ul {
    display: flex !important;
    justify-content: flex-end !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    width: 100% !important;
    gap: 3px;
  }

  /* 各メニュー項目 */
  #navi .navi-in > ul > li,
  .navi .navi-in > ul > li {
    flex: 0 0 auto;
    position: relative;
    text-align: center;
  }

  /* 親メニューのリンク */
  #navi .navi-in > ul > li > a,
  .navi .navi-in > ul > li > a {
    display: flex !important;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 58px;
    padding: 6px 8px !important;
    margin: 0 !important;
    line-height: 1.2;
    box-sizing: border-box;
    white-space: nowrap;
    position: relative;
  }

  /* 親メニュー：上段テキスト */
  #navi .navi-in > ul > li > a .item-label,
  .navi .navi-in > ul > li > a .item-label {
    display: block;
    font-size: 0.93em;
    font-weight: 600;
    color: #6f5a60;
    line-height: 1.2;
    letter-spacing: 0.02em;
    text-align: center;
  }

  /* 親メニュー：下段テキスト */
  #navi .navi-in > ul > li > a .item-description.sub-caption,
  .navi .navi-in > ul > li > a .item-description.sub-caption {
    display: block;
    margin-top: 2px;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.15;
    color: #b18b96;
    letter-spacing: 0.02em;
    text-align: center;
  }

  /* 親メニュー hover */
  #navi .navi-in > ul > li > a:hover .item-label,
  #navi .navi-in > ul > li > a:hover .item-description.sub-caption,
  .navi .navi-in > ul > li > a:hover .item-label,
  .navi .navi-in > ul > li > a:hover .item-description.sub-caption {
    color: #fc84a3!important;
  }

  /* 子メニューありの矢印補正 */
  #navi .menu-item-has-children > a,
  .navi .menu-item-has-children > a {
    padding-right: 20px !important;
  }

  #navi .menu-item-has-children > a::after,
  .navi .menu-item-has-children > a::after {
    position: absolute;
    right: 6px;
    top: 50%;
    transform: translateY(-50%);
    color: #b18b96;
  }

  #navi .menu-item-has-children > a:hover::after,
  .navi .menu-item-has-children > a:hover::after {
    color: #e86f95;
  }

  /* ------------------------------
     サブメニュー
  ------------------------------ */

  /* サブメニュー全体 */
  #navi .navi-in > ul .sub-menu,
  .navi .navi-in > ul .sub-menu {
    width: 220px !important;
    padding: 6px 0 !important;
    margin: 0 !important;
    background: #fff !important;
    box-shadow: 0 10px 24px rgba(232, 111, 149, 0.14);
    border: 1px solid #f7d7e1;
    z-index: 99;
  }

  /* サブメニューの各項目 */
  #navi .sub-menu > li,
  .navi .sub-menu > li {
    width: 100% !important;
    height: 48px !important;
    text-align: left !important;
  }

  /* サブメニューのリンク */
  #navi .sub-menu > li > a,
  .navi .sub-menu > li > a {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    height: 48px !important;
    min-height: 0 !important;
    padding: 0 16px !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    line-height: 1.3 !important;
    letter-spacing: 0.02em !important;
    color: #6f5a60 !important;
    text-align: left !important;
    white-space: normal !important;
  }

  /* サブメニュー内の文字 */
  #navi .sub-menu .item-label,
  .navi .sub-menu .item-label {
    display: block !important;
    margin: 0 !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    line-height: 1.3 !important;
    letter-spacing: 0.02em !important;
    color: #6f5a60 !important;
    text-align: left !important;
  }

  /* サブメニュー内の英字説明は非表示 */
  #navi .sub-menu .item-description.sub-caption,
  .navi .sub-menu .item-description.sub-caption {
    display: none !important;
  }

  /* サブメニュー hover */
  #navi .sub-menu > li > a:hover,
  .navi .sub-menu > li > a:hover {
    background: #fff3f7 !important;
  }

  #navi .sub-menu > li > a:hover .item-label,
  .navi .sub-menu > li > a:hover .item-label {
    color: #e86f95 !important;
  }
}


/* =========================================
   スマホ・タブレット：ヘッダー非表示
========================================= */
@media screen and (max-width: 1023px) {

  #header-container,
  .header-container {
    display: none !important;
  }

}


/* =========================================
   スマホ・タブレット：ヘッダー非表示
========================================= */
@media screen and (max-width: 1023px) {

  #header-container,
  .header-container {
    display: none !important;
  }

}

/*----------------------------------------
 　モバイル ヘッダーボタン色
-----------------------------------------*/
.mobile-header-menu-buttons {
  color: #727477!important;
}

.mobile-header-menu-buttons .menu-button-in,
.mobile-header-menu-buttons .custom-menu-icon,
.mobile-header-menu-buttons .menu-caption,
.mobile-header-menu-buttons .menu-icon,
.mobile-header-menu-buttons a {
  color:#727477!important;
}


/*----------------------------------------
   PCグローバルナビ：CTAボタンのみ装飾
-----------------------------------------*/
@media screen and (min-width: 1024px) {

  /* CTAのli自体を中央揃え */
  #navi .navi-in > ul > li.nav-contact-btn,
  .navi .navi-in > ul > li.nav-contact-btn {
    display: flex;
    align-items: center;
    margin-left: 14px;
  }

  /* CTAボタン本体 */
  #navi .navi-in > ul > li.nav-contact-btn > a,
  .navi .navi-in > ul > li.nav-contact-btn > a {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;

    min-width: 148px;
    padding: 0.72em !important;

    background: linear-gradient(135deg, #6997e1 0%, #0b67ea 100%)!important;
    color: #ffffff !important;

    border-radius: 5px;
    letter-spacing: 0.04em;
    line-height: 1.1;

    box-shadow: 0 6px 16px rgba(255, 157, 0, 0.28);
    transition:
      transform 0.9s ease,
      box-shadow 0.9s ease,
      background 0.9 ease;
  }

  /* CTA hover */
  #navi .navi-in > ul > li.nav-contact-btn > a:hover,
  .navi .navi-in > ul > li.nav-contact-btn > a:hover {
    background: #fc84a3!important;
    color: #ffffff !important;
    transform: translateY(-1px);
    box-shadow: 0 8px 20px rgba(255, 157, 0, 0.36);
  }

  /* CTA内の文字色 */
  #navi .navi-in > ul > li.nav-contact-btn > a span,
  #navi .navi-in > ul > li.nav-contact-btn > a .item-label,
  .navi .navi-in > ul > li.nav-contact-btn > a span,
  .navi .navi-in > ul > li.nav-contact-btn > a .item-label {
    color: #ffffff !important;
  }

  /* CTA内のCocoonアイコンだけ白にする */
  #navi .navi-in > ul > li.nav-contact-btn .navi-icon,
  .navi .navi-in > ul > li.nav-contact-btn .navi-icon,
  #navi .navi-in > ul > li.nav-contact-btn i,
  .navi .navi-in > ul > li.nav-contact-btn i {
    color: #ffffff !important;
  }

  /* CTA内のアイコン余白を少し整える */
  #navi .navi-in > ul > li.nav-contact-btn .navi-icon,
  .navi .navi-in > ul > li.nav-contact-btn .navi-icon {
    margin-right: 7px;
  }
}



/****************************************************
 ❸ メインカラム・本文設定
****************************************************/

/* PC メインカラム 上下余白 */
.main {
	padding: 15px 35px!important;
}

/* モバイル メインカラム 上下余白 */
@media screen and (max-width: 1023px) {
.main {
	padding: 15px!important;
}
}

/* 記事SNSアイコンの文字サイズ縮小 */
.sns-share-buttons a .button-caption {
    font-size: 13px;
}

/* 吹き出し（余白広げる）*/
div.speech-balloon p {
    margin: 5px 8px;
}

/*---------------------------
  テキストリンクの下線消す
--------------------------*/
.no-underline-link a {
    text-decoration: none;
}

/* ホバー時：アンダーラインを表示する */
.no-underline-link a:hover {
    text-decoration: underline;
}

/*---------------------------*/
/* 本文の見出しデザイン */
/*---------------------------*/


/*---------------------------*/
/* リストの点を青く */
/*---------------------------*/
.wp-block-list li::marker {
    color: #2196f3;
}


/* ------------------------------
   スマホの文字調整  
---------------------------------*/

/* スマホで中央揃え＋改行の解除 */
@media (max-width: 767px) {
  .sp-left-reset {
    text-align: left !important;
  }
  .sp-left-reset br {
    display: none!important;
  }
}

/*---------------------------
　もくじデザイン
---------------------------*/

/* もくじ全体デザイン */
.toc-center {
	margin-bottom: 70px !important;
}

/* 全体の最小幅を50%に */
.toc {
	min-width: 50%;
	width: auto; /* 自動調整を許可 */
	max-width: 100%; /* はみ出し防止 */
}

/* もくじアイコン */
.toc-title:before {
	width: 50px;
	height: 50px;
	font-family: "Font Awesome 5 Free";
	content : "\f03c";
	font-size:22px;
	margin-right:8px;
	color:#FFF;
}

.toc-title{
	background-color:#fc84a3;
	font-size: 19px;
	padding: 0.1em;
	font-weight: 600; 
	color: #ffffff;
	font-family: "Font Awesome 5 Free";
	content : "\f03c";
	margin-bottom: 10px
}

/*見出し2（H2）の設定*/
.toc-content > .toc-list > li:before { 
	font-family: "Font Awesome 5 Free";
	content: "\f144";
	font-weight: 900;
	color: #ffb135;
	padding-right:8px;
}
.toc-content .toc-list li {
	font-weight:600;
}

/*H3以降の文字サイズ*/
.toc-content .toc-list li li {
	font-weight:normal;
}
.toc .toc-list ul, .toc .toc-list ol {
	padding-left: 1.25em;
}


/*--------------------------------
  トグル開閉のデザイン（シンプルに）
/*--------------------------------*/

.toggle-button {
    border: none !important;
    border-bottom: 2px solid #dcdcdc !important; 
    padding: 5px 0;
    background: #fff;
    display: flex !important;
    align-items: center;
    justify-content: flex-start !important;
    text-align: left !important;
    width: 100%;
}
.toggle-checkbox:checked + .toggle-button {
    border-bottom: none !important;
}
.toggle-checkbox:checked ~ .toggle-content {
    border: none !important;
    border-bottom: 2px solid #dcdcdc !important;
    padding: 20px 0 50px;
}

/*--------------------------------
  案内ボックスのデザイン
/*--------------------------------*/
.information-box:before, .question-box:before, .alert-box:before {
	padding-right:.15em;
	line-height:1em;
	position: absolute;
	top:50%;
	margin-top:-.5em;
}
.information-box {
	background:rgba(135,206,250,.1);
	border:1px solid rgba(135,206,250,.5);
}
.information-box:before {
	color:#87cefa;
	border-right: 1px solid rgba(135,206,250,.5);
}
.question-box:before {
	color:gold;
	border-right: 1px solid rgba(255,215,0,.5);
}
.question-box  {
	background:rgba(255,215,0,.2);
	border: 1px solid rgba(255,215,0,.5);
}
.alert-box{
	background:rgba(240,128,128,.1);
	border:1px solid rgba(240,128,128,.5);
}
.alert-box:before {
	border-right: 1px solid rgba(240,128,128,.5);
}


	
/*---------------------------*/
/*モバイル ブログ記事一覧の文字サイズ*/
/*---------------------------*/
@media screen and (max-width: 834px){
.related-entry-card-title, .entry-card-title {
    font-size: 14px !important;
	font-weight: 500;
}

/*---------------------------*/
/*モバイル ブログページのタイトル余白 */
/*---------------------------*/
.entry-title {
	padding:0 0 10px;		
}
	}
	

/*----------------------------------------
 　PCブログ記事一覧 リスト系
 -----------------------------------------*/

/* 記事一覧リスト 影と視覚効果 */
.entry-card-wrap {
	box-shadow: 0 0 1px 0 rgba(0,0,0,.2), 0 1px 5px 0 rgba(0,0,0,.2);
}
.entry-card-wrap:hover {
	transform: translateY(-2px);
}

/* 記事一覧 カラム間余白 */
.ect-vertical-card {
    column-gap: 3%;
}
.ect-vertical-card .entry-card-wrap {
	width: 48.5%; /* 余白と併せて100 */
}

/* 記事一覧 タイトル文字サイズ･余白 */
.related-entry-card-title, .entry-card-title {
    font-size: 16px;
    margin: 0.5em 0 0.8em 0;
}

/* 記事一覧 ページ送りボタン */
.pagination-next {
	display: none;
}
.page-numbers {
	border-radius: 25px;
}

/* カテゴリ一覧の表記 */
.archive-title {
    display: none;
}

/* 本文下の関連記事 タイトル文字サイズ */
.rect-vertical-card .related-entry-card-title {
    font-size: 14px;
}



/*----------------------------------------
 　関連記事リンクのカード
 -----------------------------------------*/
/* ブログカード（関連記事） */
.blogcard-label {
    top: -15px;
    background-color: #4ba0e9;
}
.blogcard {
    padding: 3.6% 2.2% 2%;
}
.blogcard-title {
    font-size: 1.13em;
	padding: 0 5px;
}
.carousel-entry-card-title, .blogcard-snippet {
    padding: 0.6em 5px;
}
.blogcard-footer {
    font-size: 13px;
}


/*---------------------------------
  モバイル 本文SNSアイコン3列→6列 
/*---------------------------------*/
/* sns-shareの共通設定 */
.sns-share.ss-top.ss-col-6 a, 
.sns-share.ss-bottom.ss-col-6 a, 
.sns-share.ss-top.ss-col-5 a, 
.sns-share.ss-bottom.ss-col-5 a {
    width: 15%;
}
/* sns-buttonsの共通設定 */
.sns-share.ss-top.ss-col-6 .sns-buttons,
.sns-share.ss-bottom.ss-col-6 .sns-buttons, 
.sns-share.ss-top.ss-col-5 .sns-buttons, 
.sns-share.ss-bottom.ss-col-5 .sns-buttons {
    column-gap: 1.75%;
}
/* sns-share-buttonsの共通設定 */
.ss-top .sns-share-buttons a, 
.ss-bottom .sns-share-buttons a {
    font-size: 18px;
}
/* ボタンキャプションの非表示 */
.ss-top .sns-share-buttons a .button-caption, 
.ss-bottom .sns-share-buttons a .button-caption {
    display: none;
}
/* sns-buttonsの高さ設定 */
.sns-buttons a {
    height: 40px;
}





/****************************************************
 ❹ サイドバー・フッター
****************************************************/


/*-------------------------------------
  サイドバーの見出し（背景色＋中央揃え）
/*------------------------------------*/
.sidebar h2, .sidebar h3 {
    background-color: #fc84a3;
    padding: 8px;
    color: #fff;
    text-align: center;
}

/*-------------------------------------
  サイドバー 追従もくじデザイン
/*------------------------------------*/
.sidebar-scroll{
	top:15px !important;
}
.sidebar h3{
	font-size:0.9em;
	padding: 7px 12px;
}
.sidebar .widget_toc{
	box-shadow: 0 2px 10px rgba(0, 0, 0, .08);
}
.sidebar .toc-widget-box{
	margin-top: -0.9em;
}
.sidebar .toc{
	padding: 0;
	width:100%;
}
.sidebar .toc-content {
	overflow-y: scroll;
	max-height: 390px;
	background: #fff;
	padding: 0.5em 1.5em;
}
.sidebar .toc li{
	line-height:1.6;
	margin-bottom: 1em;
	font-size:0.85rem;
	color:#3cb8f1;
}
.sidebar .toc-content > ol  > li,.sidebar .toc-content > ul  > li{
	font-weight:600;
	padding-left: 0.5em;
}
.sidebar .toc-content a{
	letter-spacing:0.5px;
}
.sidebar .toc .toc-list ul, .sidebar .toc .toc-list ol {
	margin: 1em 0;
	list-style-type:none;
	font-weight:500;
}
@media screen and (max-width: 768px){
  .sidebar-menu-button .widget_toc{
    display:none;
  }
}

/*---------------------------
 　モバイル サイドバー調整
/*---------------------------*/

@media screen and (max-width: 834px){
/* サイドバー 検索バー非表示 */
aside#search-5 {
   display: none;
}
}


/************************************
サイドバー「最近の投稿」
区切り線・文字サイズ・余白・アイコン中央揃え
************************************/
.widget_block .wp-block-latest-posts li {
  margin: 0;
  padding: 0;
}

.widget_block .wp-block-latest-posts li a {
  display: block;
  position: relative;
  padding: 0.7em 0 0.7em 1.4em;
  border-bottom: 1px solid #e7e7e7;
  font-size: 0.94em;
  line-height: 1.8;
  text-decoration: none;
  box-sizing: border-box;
}

/* アイコン */
.widget_block .wp-block-latest-posts li a::before {
  font-family: "Font Awesome 5 Free";
  content: "\f054";
  font-weight: 900;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  font-size: 0.85em;
  line-height: 1;
}



/*--------------------------------*/
/* フッターモバイルボタン透明背景色 */
/*--------------------------------*/
.mobile-footer-menu-buttons {
	background: rgba(1,1,1,0.6); 
}
.mobile-footer-menu-buttons .menu-button,
.home-menu-button menu-button,
.mobile-menu-buttons .home-menu-button > a,
.mobile-menu-buttons .top-menu-button > a {
	color: #fff;
}


/*----------------------------------
 フッターウィジェットのメニュー調整
-----------------------------------*/

/* フッターナビ 通常時／下線解除 */
#footer a:not(.sns-button), .footer-title {
	text-decoration: none;
}

/* フッターナビ ホバー時／下線解除＋色 */
#footer a:not(.sns-button):hover,
#footer a:not(.sns-button):focus-visible {
	text-decoration: none;
	color:#fc84a3;
}



/***********************************************
 ❺ その他、機能追加（PHP･JS連動）
***********************************************/

/* リンク画像のホーバー視覚効果  */
.animated-link img {
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.animated-link:hover img {
	transform: scale(1.03);
	opacity: 0.8; 
}


/*--------------------------------
　モバイル 左スライドメニュー デザイン
/*--------------------------------*/
.menu-close-button {
	display:none;
}
.menu-content {
	background:rgba( 255, 255, 255, 0.93 ); 
}

ul.menu-drawer:before {
	content: "MENU"; 
	display: block;
	background-color: #888;
	color: #fff; 
	font-size: 1.1em;
	font-weight: bold;
	text-align: center;
	padding: 7px;
	margin: 15px 0;
}
ul.menu-drawer:after {
	background-color: #fff;
}
.menu-drawer a {
	color: #555 !important;/* 文字色 */
	font-size: 1em;
	font-weight: 600;
	padding: 0.9em 0 0.9em 0.7em;
	border-bottom: 1px solid #c5c3c3;
}
.menu-drawer a:hover {
	background-color: #eff8f9;
}
.menu-drawer a .fas, .menu-drawer a .far,.menu-drawer a .fa,.menu-drawer a .fab {
	margin-right: 7px;
	color:  #a3a2a6;
}
.sub-menu li {
	font-size: 0.8em;
}

.fa-chevron-right:before {
    content: "\f054";
    color: #a3a2a6;
    padding-right: 7px;
}



/*---------------------------　
/* 通知エリアの流れるテキスト 　*/
/*---------------------------*/
.notice-area {
	overflow: hidden;
	white-space: nowrap;
	padding: 0.4em;
}
.notice-area-message {
	display: inline-block;
	padding-left: 100%; 
	animation: slideMessage 12s linear infinite; 
}
@keyframes slideMessage {
	to {
	transform: translateX(-100%); 
	}
}
@media screen and (min-width: 1023px) {
	.notice-area-message {
	animation-duration: 25s;
	}
}

