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

/************************************
** 子テーマ用のスタイルを書く
************************************/
/*必要ならばここにコードを書く*/

/************************************
** レスポンシブデザイン用のメディアクエリ
************************************/
/*1023px以下*/
@media screen and (max-width: 1023px){
  /*必要ならばここにコードを書く*/
}

/*834px以下*/
@media screen and (max-width: 834px){
  /*必要ならばここにコードを書く*/
}

/*480px以下*/
@media screen and (max-width: 480px){
  /*必要ならばここにコードを書く*/
}

/* トップページのスタイルここから -------------------------------------------- */

/* 背景色を白にする（不要なら削除） */
body {
   background-color: #fff !important; /* 背景色を白に指定 */
}

/* トップページヘッダー・フッター非表示 */
.front-top-page .article-header,
.front-top-page .article-footer {
   display: none; /* トップページのヘッダーとフッターを非表示に */
}

/* セクションの余白設定 */
.section-wrap {
   padding-top: 5em; /* 上部の内側余白 */
   padding-bottom: 5em; /* 下部の内側余白 */
   margin-bottom: 0; /* 下部の外側余白 0（固定） */
}

/* 見出し ------------------------------------------------------------ */
.heading {
   text-align: center; /* 見出しを中央揃え */
   font-size: 5rem; /* 見出しの文字サイズ */
   color: #a69f8a; /* 見出しの色を設定 */
   letter-spacing: 2px; /* 文字間隔を2px */
   line-height: 1.4; /* 行の高さを1.4倍 */
   font-weight: bold; /* 太字に設定 */
   position: relative; /* 基準点を設定 */
   padding-bottom: 1rem; /* 下部の内側余白を1rem */
   margin-bottom: 3rem; /* 下部の外側余白を3rem */
}

/*480px以下*/
@media screen and (max-width: 480px){
   .heading {
   font-size: 3rem; /* 見出しの文字サイズ */
   }
}

.heading span {
   display: block; /* サブ見出しをブロック要素化 */
   font-size: .9rem; /* サブ見出しの文字サイズ */
   font-weight: normal; /* サブ見出しを通常の太さに設定 */
}

/* 見出し下の線 */
.heading::after {
   display: block; /* 擬似要素をブロック要素に */
   content: ""; /* 内容を空に */
   width: 2.5rem; /* 線の幅を2.5rem */
   height: 1px; /* 線の高さを1px */
   border-radius: 10px; /* 線に丸みを追加 */
   background-color: #a69f8a; /* 線の色を設定 */
   position: absolute; /* 位置を絶対配置に */
   bottom: 0; /* 下部の位置を基準に */
   left: 50%; /* 左から50%で中央揃え */
   transform: translateX(-50%); /* 中央寄せを調整 */
}

/* リンクボタン---------------------------------------------- */

/* ボタンの配置 */
.link-btn {
   display: block; /* ボタンをブロック要素に */
   text-align: center; /* ボタン内のテキストを中央揃え */
}

.link-btn a {
   display: inline-block; /* インラインブロック要素 */
   border: 1px solid #b5b5ae; /* ボタンの枠線（色はグレー） */
   color: #a69f8a; /* 文字色 */
   min-width: fit-content; /* ボタンの最小幅を自動調整 */
   width: auto; /* ボタンの幅を自動調整 */
   min-width:300px; /*ボタンの最小幅*/
   padding: .7em 3em; /* 内側余白を上下0.7em, 左右5em */
   text-decoration: none; /* 下線を削除 */
   border-radius: 0; /* 角の丸みを0 */
   transition: .3s all; /* 変化をスムーズに */
   position: relative; /* 起点設定 */
}

/* 834px以下のボタン幅調整 */
@media screen and (max-width: 834px) {
   .link-btn a {
   width: 100%; /* モバイルでの最小幅を100%に */
   min-width: unset; /* min-widthを解除 */
   }
}

/* 矢印のスタイル */
.link-btn a:after {
   content: ''; /* 擬似要素の内容を空に */
   border-bottom: 1px solid var(--cocoon-text-color); /* 下矢印の線 */
   border-right: 1px solid var(--cocoon-text-color); /* 右矢印の線 */
   width: 15px; /* 矢印の幅 */
   height: 3px; /* 矢印の高さ */
   transform: skewX(45deg); /* 45度傾斜 */
   position: absolute; /* 位置を絶対配置に */
   right: 20px; /* 右から20pxに配置 */
   bottom: 50%; /* 下から50%の位置 */
   transition: .3s all; /* 変化をスムーズに */
}

/* ホバー時の変化 */
.link-btn a:hover {
   --link-btn-color: #a69f8a; /* ホバー時のボタン色 */
   background-color: var(--link-btn-color); /* 背景色を変化 */
   border-color: var(--link-btn-color); /* 枠線色を変化 */
   color: var(--cocoon-white-color); /* 文字色を白に */
}

/* 矢印のホバー効果 */
.link-btn a:hover:after {
   border-color: var(--cocoon-white-color); /* 矢印色を白に */
   right: 15px; /* 矢印の位置を左へ少し移動 */
}

/* 記事カードの最大幅設定 --------------------------------------------- */
.widget-entry-cards.card-large-image .a-wrap {
   max-width: 600px; /* 最大幅を600pxに制限 */
   width: 100%; /*カード幅を揃える*/
}

/* サムネイル（大）記事を横並びにする(grid)------------------------------------------ */
.widget-entry-cards.large-thumb {
   display: grid; /* グリッドレイアウトを適用 */
   justify-items: center; /* アイテムを中央揃え */
   gap: 16px; /* アイテム間の隙間を16pxに */
}

/* 新着記事サムネイルのグリッド */
.new-entry-cards.large-thumb {
   grid-template-columns: repeat(2, 1fr); /* 2列で均等に分配 */
}

/* 人気記事サムネイルのグリッド */
.popular-entry-cards.large-thumb {
   grid-template-columns: repeat(3, 1fr); /* 3列で均等に分配 */
}

/* 834px以下のグリッド設定 */
@media screen and (max-width: 834px) {
   .new-entry-cards.large-thumb {
   grid-template-columns: 1fr; /* 1列に配置 */
   gap: 0; /* 隙間を0に */
   }
   .cate .new-entry-cards.large-thumb,
   .popular-entry-cards.large-thumb {
   grid-template-columns: repeat(2, 1fr); /* 2列に分配 */
   gap: 0; /* 隙間を0に */
   }
}

/* モバイルでのタイトル文字サイズ調整 */
@media screen and (max-width: 834px) {
   .cate .large-thumb .new-entry-card-title,
   .popular-entry-card-title {
   font-size: 14px !important; /* タイトル文字を小さく */
   }
}

/* タブ切り替え---------------------------------------------- */

/* タブコンテナの設定 */
.tab-switch {
   --active-tab-color: #a69f8a; /* 選択タブの色はここで指定 */
   display: flex; /* タブを横並びに */
   flex-wrap: wrap; /* 幅に応じて折り返し */
   max-width: 100%; /* コンテナの最大幅 */
   margin: auto; /* 中央寄せ */
   justify-content: center; /* 中央揃え */
   gap: 10px 5px; /* タブ間の隙間 */
}

/* タブボタンのスタイル */
.tab-switch > label {
	flex: 1 1 auto; /* タブ均等幅、幅を超えると折り返す */
   order: -1; /* コンテンツより上に表示 */
   position: relative; /* 起点 */
   padding: .7em 1em; /* 内側余白 */
   border-bottom: 1px solid var(--active-tab-color); /* 下ボーダー */
   color: var(--active-tab-color); /* 文字色 */
   text-align: center; /* テキスト中央揃え */
   cursor: pointer; /* ポインタ表示 */
   transition:.3s all; /* ゆっくり変化 */
}

/* タブのホバーと選択時のスタイル */
.tab-switch > label:hover,
.tab-switch label:has(:checked) {
   background-color: var(--active-tab-color); /* 背景色を変化 */
   color: #fff; /* 文字色 */
}

/* 選択タブの下三角形 */
.tab-switch label:has(:checked)::before {
   position: absolute; /* 三角形位置を絶対配置 */
   bottom: -8px; /* 下からの位置 */
   left: 50%; /* 中央寄せ */
   transform: translateX(-50%); /* 中央寄せを調整 */
   width: 18px; /* 三角形の幅 */
   height: 9px; /* 三角形の高さ */
   background-color: var(--active-tab-color); /* 三角形色 */
   content: ''; /* 内容なし */
   clip-path: polygon(0 0, 100% 0, 50% 100%);  /* 三角形の形 */
}

/* ラジオボタン非表示 */
.tab-switch input {
   display: none; /* 非表示 */
}

/* タブのコンテンツエリア */
.tab-switch > div {
   display: none; /* 初期非表示 */
   width: 100%; /* 幅設定 */
   padding: 1.5em 0; /* 内側余白 */
}

/* 選択されたタブの内容表示 */
.tab-switch label:has(:checked) + div {
   display: block; /* チェック時に表示 */
}

/* トップページのスタイルここまで -------------------------------------------- */
/* タブ切り替え---------------------------------------------- */

/* タブコンテナの設定 */
.tab-switch {
   --active-tab-color: #a69f8a; /* 選択タブの色 */
   display: flex; /* タブを横並びに */
   flex-wrap: wrap; /* 幅に応じて折り返し */
   max-width: 100%; /* コンテナの最大幅 */
   margin: auto; /* 中央寄せ */
   justify-content: center; /* 中央揃え */
   gap: 10px 5px; /* タブ間の隙間 */
}

/* タブボタンのスタイル */
.tab-switch > label {
   order: -1; /* コンテンツより上に表示 */
   position: relative; /* 起点 */
   padding: .7em 1em; /* 内側余白 */
   border-bottom: 1px solid var(--active-tab-color); /* 下ボーダー */
   color: var(--active-tab-color); /* 文字色 */
   text-align: center; /* テキスト中央揃え */
   cursor: pointer; /* ポインタ表示 */
}

/* タブのホバーと選択時のスタイル */
.tab-switch > label:hover,
.tab-switch label:has(:checked) {
   background-color: var(--active-tab-color); /* 背景色を変化 */
   color: #fff; /* 文字色 */
}

/* 選択タブの下三角形 */
.tab-switch label:has(:checked)::before {
   position: absolute; /* 三角形位置を絶対配置 */
   bottom: -8px; /* 下からの位置 */
   left: 50%; /* 中央寄せ */
   transform: translateX(-50%); /* 中央寄せを調整 */
   width: 18px; /* 三角形の幅 */
   height: 9px; /* 三角形の高さ */
   background-color: var(--active-tab-color); /* 三角形色 */
   content: ''; /* 内容なし */
   clip-path: polygon(0 0, 100% 0, 50% 100%);  /* 三角形の形 */
}

/* ラジオボタン非表示 */
.tab-switch input {
   display: none; /* 非表示 */
}

/* タブのコンテンツエリア */
.tab-switch > div {
   display: none; /* 初期非表示 */
   width: 100%; /* 幅設定 */
   padding: 1.5em 0; /* 内側余白 */
}

/* 選択されたタブの内容表示 */
.tab-switch label:has(:checked) + div {
   display: block; /* チェック時に表示 */
}
.widget_toc {
  max-height: 800px; /* 目次の最大高さを指定 */
  overflow-y: auto;  /* 縦スクロールバーを自動表示 */
}
/* サイドバー目次エリアにだけスクロールバーのデザインを適用 */
.widget_toc::-webkit-scrollbar {
  width: 10px;
}

.widget_toc::-webkit-scrollbar-track {
  background: #f1f1f1;
}

.widget_toc::-webkit-scrollbar-thumb {
  background: #aaa;
  border-radius: 6px;
}

.widget_toc::-webkit-scrollbar-thumb:hover {
  background: #999;
}
/* ----------------------------------------------------------
   アピールエリアフルスクリーン（ヘッダー固定あり）
----------------------------------------------------------- */

/* ヘッダー固定（トップページのみ） */
.front-top-page .header-container {
   position: fixed; 
   z-index: 9;
   width: 100%;
}

/* ヘッダー背景透過 */
.front-top-page #header-container,
.front-top-page #header-container .navi,
.front-top-page #header-container .navi-in a:hover {
    background-color: transparent;
}
	
/* ----------------------------------------------------------
   アピールエリア
---------------------------------------------------------- */
.front-top-page .appeal {
   height: 100svh; /* 画面縦幅いっぱい */
   background-size: cover;  /* 背景画像をフィット */
}

.front-top-page .appeal-in {
   height: 100%; /* 親要素に合わせる */
   width: 100%;  /* 横幅いっぱい */
}

/* アピール内コンテンツ背景を透明に */
.front-top-page .appeal-content {
   background-color: transparent;
}
/* ----------------------------------------------------------
   アピールエリアを横幅いっぱいに表示
----------------------------------------------------------- */
.front-top-page .appeal {
  width: 100vw; /* 画面幅いっぱいに */
  margin-left: calc(50% - 50vw); /* コンテンツ幅制限を解除して中央に広げる */
  height: 100svh; /* 画面の高さ全体を確保 */
  background-size: cover; /* 画像を拡大して隙間を埋める */
  background-position: center center; /* 画像の中心を基準に表示 */
  background-repeat: no-repeat; /* 繰り返しを防止 */
}
/* ヘッダー・フッターモバイルボタン両方の調整 */
@media screen and (max-width: 1023px) {
    .mblt-header-and-footer-mobile-buttons {
        margin-top: 0; /* 上部余白を削除 */
    }
    .front-top-page .mobile-menu-buttons {
        background-color: transparent; /* 背景を透明に */
        box-shadow: none; /* 影を削除 */
    }
}
/*「Scroll」＋下方向に動くライン----------------- */
.scroll-line {
  --line-color: #fff;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 50px;
  height: 50px;
}

.scroll-line span {
  position: absolute;
  left: -15px;
  top: -15px;
  color: var(--line-color);
  font-size: 0.7rem;
  letter-spacing: 0.05em;
}

.scroll-line::after {
  content: "";
  position: absolute;
  top: 5px;
  width: 1px;
  height: 30px;
  background: var(--line-color);
  animation: line-move 1.5s ease-in-out infinite;
  opacity: 0;
}

@keyframes line-move {
  0%   { height: 0; top: 5px; opacity: 0; }
  30%  { height: 30px; opacity: 1; }
  100% { height: 0; top: 50px; opacity: 0; }
}


@media screen and (max-width: 834px) {
  .appeal {
    background-position: 85% center !important; /* 右寄りに */
    background-size: cover !important;
  }
}
/* アピールエリアの文字配置（左揃え版） */
.front-top-page .hero-copy {
  position: absolute;
  top: 50%;
  left: 6%;
  transform: translateY(-50%);
  text-align: left;
  color: #fff;
  max-width: 85%;
  z-index: 20;
}
/* 装飾英字（小さめ） */
.front-top-page .hero-deco {
  font-family: "Open Sans", sans-serif !important;
  font-size: 0.65rem;    /* 小さめ */
  line-height: 1.55;
  max-width: 520px;
  margin-bottom: 1.8rem;
  opacity: 0.85;
}

/* 本文（Open Sans） */
.front-top-page .hero-body {
  font-family: "Open Sans", sans-serif !important;
   font-size: 0.65rem;    /* 小さめ */
  line-height: 1.55;
  max-width: 520px;
  margin-bottom: 1.8rem;
  opacity: 0.85;
}
/* ---------- モバイル調整 ---------- */
@media screen and (max-width: 834px) {
  .front-top-page .hero-copy {
    left: 5%;
    top: 58%;
    max-width: 92%;
  }

  .front-top-page .hero-title {
    font-size: 3rem !important;
    line-height: 2 !important;
    margin-bottom: 2rem !important;
  }

  .front-top-page .hero-deco {
    font-size: 0.6rem !important;    /* 小さめに統一 */
    line-height: 1 !important;      /* 段落差を均一に */
    margin-bottom: 1.5rem !important;   /* タイトルとの隙間 */
    
  }

  .front-top-page .hero-body {
    font-size: 0.6rem !important;
    line-height: 1 !important;
    margin-bottom: 1.5rem !important;
  }
}

/* 768px以下のさらに小さい画面 */
@media screen and (max-width: 768px) {
  .front-top-page .hero-title {
    font-size: 3rem !important;
    line-height: 2 !important;
  }

  .front-top-page .hero-deco {
    font-size: 0.6rem !important;
    line-height: 1 !important;
    margin-bottom: 1.5rem !important;
  }

  .front-top-page .hero-body {
    font-size: 0.6rem !important;
    line-height: 1 !important;
  }
}

/* 読みやすくするための薄い影 */
.front-top-page .hero-copy * {
  text-shadow: 0 0 8px rgba(0,0,0,0.45);
}
	
@media screen and (max-width: 834px) {
  .front-top-page .appeal::before {
    background-position: 80% center; /* モバイルは右寄せ80% */
  }
}
@media screen and (max-width: 768px) {
  .front-top-page .appeal::before {
    background-position: 80% center; /* モバイルは右寄せ80% */

  }
}
/* ----------------------------------------------------------
   背景ズームアウトアニメーション（ヘッダー固定版）
---------------------------------------------------------- */

.front-top-page .appeal {
    position: relative; 
    overflow: hidden; /* はみ出し防止 */
}

.front-top-page .appeal::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: url("https://around-thirty-mom.blog/wp-content/uploads/2025/11/fullscreen-1.jpg"); /* ここに画像パス */
    background-size: cover;
    transform: scale(1.1); /* 初期サイズ（拡大状態） */
    animation: zoomOut 6s ease forwards; /* 6秒かけて縮小 */
}

/* ズームアウトアニメーション定義 */
@keyframes zoomOut {
    from { transform: scale(1.2); }
    to   { transform: scale(1); }
}
/* ---------- アピールエリア ---------- */
/* 文字配置（左揃え版） */
.front-top-page .hero-copy {
    position: absolute;
    top: 50%;
    left: 6%;
    transform: translateY(-50%);
    text-align: left;
    color: #fff;
    max-width: 85%;
    z-index: 20;
}

/* 装飾英字（右ずれ維持、下に大きくずらす） */
.front-top-page .hero-deco {
    font-family: "Open Sans", sans-serif !important;
    font-size: 0.65rem;
    line-height: 1.55;
    max-width: 520px;
    margin-bottom: 1.8rem;
    opacity: 0.85;
    margin-left: 20px; /* 右ずれ */
    position: relative;
    top: 20px; /* 下に大きくずらす */
}

/* 本文（右ずれ維持、下に大きくずらす） */
.front-top-page .hero-body {
    font-family: "Open Sans", sans-serif !important;
    font-size: 0.65rem;
    line-height: 1.55;
    max-width: 520px;
    margin-bottom: 1.8rem;
    opacity: 0.85;
    margin-left: 20px; /* 右ずれ */
    position: relative;
    top: 20px; /* 下に大きくずらす */
}

/* 読みやすくするための薄い影 */
.front-top-page .hero-copy * {
    text-shadow: 0 0 8px rgba(0,0,0,0.45);
}

/* ---------- モバイル調整 ---------- */
@media screen and (max-width: 834px) {
    .front-top-page .hero-copy {
        left: 5%;
        top: 58%;
        max-width: 92%;
    }

    .front-top-page .hero-title {
        font-size: 3rem !important;
        line-height: 2 !important;
        margin-bottom: 2rem !important;
    }

    .front-top-page .hero-deco {
        font-size: 0.6rem !important;
        line-height: 1 !important;
        margin-bottom: 1.5rem !important;
        margin-left: 10px !important; /* 右ずれ微調整 */
        top: 20px; /* 下ずれ大きめ */
    }

    .front-top-page .hero-body {
        font-size: 0.6rem !important;
        line-height: 1 !important;
        margin-bottom: 1.5rem !important;
        margin-left: 10px !important; /* 右ずれ微調整 */
        top: 20px; /* 下ずれ大きめ */
    }

    .front-top-page .appeal::before {
        background-position: 80% center;
    }
}

@media screen and (max-width: 768px) {
    .front-top-page .hero-title {
        font-size: 3rem !important;
        line-height: 2 !important;
    }

    .front-top-page .hero-deco {
        font-size: 0.6rem !important;
        line-height: 1 !important;
        margin-bottom: 1.5rem !important;
        margin-left: 5px !important; /* 右ずれ微調整 */
        top: 40px; /* 小さい画面は少し控えめに下ずれ */
    }

    .front-top-page .hero-body {
        font-size: 0.6rem !important;
        line-height: 1 !important;
        margin-left: 5px !important; /* 右ずれ微調整 */
        top: 40px; /* 小さい画面は少し控えめに下ずれ */
    }

    .front-top-page .appeal::before {
        background-position: 80% center;
    }
}


