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

/************************************
** 子テーマ用のスタイルを書く
************************************/
/*必要ならばここにコードを書く*/
body, #container {
    overflow-x: hidden;
}
body{
	overflow: auto;
	letter-spacing: .1em;
}
#main {
    min-height: calc(100svh - 700px);
	background: #f7f3f0;
	margin-top: 65px;
}
.logo-menu-button img {
    width: 155px;
}
li.search-menu-button.menu-button{
	display: none;
}
.mobile-menu-buttons .menu-button{
	justify-content: space-between;
	width: auto;
}
.mobile-menu-buttons .menu-caption{
	display: none;
}
.mobile-header-menu-buttons {
    padding: 0 16px;
	background: #f7f3f0;
}
nav, .copyright {
    font-family: "Noto Sans JP", sans-serif;
}
.menu-content{
	background: #f7f3f0;
	font-family: "Noto Sans JP", sans-serif;
}
.fa-remove:before, .fa-close:before, .fa-times:before {
    content: "×";
    font-size: 1.2em;
}
.home #main{
    padding: 0;
    border: 0;
	margin-top: 0;
}
.home .content {
    margin-top: 0;
}
.home .entry-content, .home article{
	margin: 0 !important;
}
.serif{
	font-family: "Noto Sans JP", sans-serif;
}
h2.wp-block-heading {
    font-family: "Noto Sans JP", sans-serif;
    font-weight: normal;
    font-size: 2.4em;
    letter-spacing: .2em;
}
a.wp-block-button__link, input[type=submit] {
    letter-spacing: .2em;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 1.2em;
    filter: drop-shadow(0 0 5px white);
    box-shadow: inset 0 0 15px #ffffff45;
    padding: .8em 2em;
	display: inline-flex;
	align-items: center;
	gap: 1em;
	backdrop-filter: blur(4px);
	transition: ease-in-out .4s;
}
a.wp-block-button__link:hover {
    color: inherit;
    transform: scale(1.05);
}
a.wp-block-button__link:after{
    content: "";
    display: block;
    width: 2em;
    height: 1em;
    background-image: url(https://www.terasun-zafu.com/wp-content/uploads/2026/03/arrow.svg);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
    flex-shrink: 0;
}
.white-btn a.wp-block-button__link:after {
	filter: invert(1);
}
input[type=submit] {
    letter-spacing: .2em;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 1.2em;
    filter: drop-shadow(0 0 5px white);
    box-shadow: inset 0 0 15px #ffffff45;
    padding: .8em 2em;
	display: inline-flex;
	align-items: center;
	gap: 1em;
	backdrop-filter: blur(4px);
	transition: ease-in-out .4s;
	background: transparent;
	border: 2px solid;
	border-radius: 2em;
}

.edge-blur{
	mask-image: linear-gradient(to right, transparent 0%, black 2%, black 98%, transparent 100%),
                linear-gradient(to bottom, transparent 0%, black 2%, black 98%, transparent 100%);
	mask-composite: intersect;
	-webkit-mask-composite: source-in;
}
.center-left{
	text-align:center;
}
.center-left br{
	display:block;
}
.wood-back div {
	background-size: 100% !important;
    background-repeat: repeat !important;
    background-position: top !important;
}
ul.wp-block-latest-posts__list li {
    border-bottom: .5px solid lightgray;
    padding: 1em 0;
}
ul.wp-block-latest-posts__list li a{
	text-decoration: none;
	color: inherit;
}
ul.wp-block-latest-posts__list {
    padding: 0;
}

/* ── ヘッダー本体 ── */
#header {
    display: none;
}

.header-fixed {
    position: fixed;
    top: 0;
    z-index: 100;
    width: 100%;
    padding: 10px;
    background-color: transparent; /* 背景は::beforeで管理 */

    /* 初期状態：上に隠れている */
    transform: translateY(-100%);
    opacity: 0;

    /* スクロール・初期アニメーション共通トランジション */
    transition: transform 2s cubic-bezier(0.23, 1, 0.32, 1),
                opacity   2s ease;
}

/* ヘッダー背景を疑似要素で管理してフェードさせる */
.header-fixed::before {
    content: '';
    position: absolute;
    inset: 0;
    background-color: #f7f3f0;
    opacity: 0;
    transition: opacity 0.6s ease;
    z-index: -1;
}

/* 表示状態になったら背景を出す */
.header-fixed.is-visible::before {
    opacity: 1;
}

/* TOPページ・透明時は背景を出さない */
.home .header-fixed.is-transparent::before {
    opacity: 0;
}

/* TOPページ・透明時はロゴとハンバーガーを反転 */
.home .header-fixed.is-transparent .header-logo img,
.home .header-fixed.is-transparent .hamburger-btn .bar {
    filter: invert(1);
}

/* WordPress管理画面では固定しない */
.wp-admin .header-fixed {
    z-index: 0;
    transform: none;
    opacity: 1;
    transition: none;
}

/* 表示状態 */
.header-fixed.is-visible {
    transform: translateY(0);
    opacity: 1;
}

/* 非表示状態（下スクロール時） */
.header-fixed.is-hidden {
    transform: translateY(-100%);
    opacity: 0;
}


/* ── フッター ── */
#footer {
    display: none;
}


/* ── ハンバーガーボタン ── */
.hamburger-btn {
    margin-left: auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    width: 44px;
    height: 44px;
    padding: 8px;
    cursor: pointer;
    background: transparent;
    border: none;
    border-radius: 6px;
    position: relative;
    z-index: 9999;
    -webkit-tap-highlight-color: transparent;
    color: inherit;
}

.hamburger-btn .bar {
    display: block;
    width: 22px;
    height: 2px;
    background: currentColor;
    border-radius: 2px;
    transition:
        transform 0.35s cubic-bezier(0.23, 1, 0.32, 1),
        opacity   0.25s ease,
        width     0.35s cubic-bezier(0.23, 1, 0.32, 1);
    transform-origin: center;
}

/* 開いているとき：× に変形 */
.hamburger-btn.is-open .bar:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}
.hamburger-btn.is-open .bar:nth-child(2) {
    opacity: 0;
    width: 0;
}
.hamburger-btn.is-open .bar:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}


/* ── オープンメニュー ── */

/* display切り替えをやめてvisibility+opacityで制御（transitionを効かせるため） */
.open-menu {
    display: block !important;
    visibility: hidden;
    opacity: 0;
    transform: translateY(-10px);
    pointer-events: none;

    transition:
        opacity    0.3s cubic-bezier(0.23, 1, 0.32, 1),
        transform  0.3s cubic-bezier(0.23, 1, 0.32, 1),
        visibility 0s linear 0.3s;   /* 閉じ終わったあとにhidden */

    position: fixed;
    width: 100%;
    right: 0;
    backdrop-filter: blur(5px);
}

.open-menu.is-open {
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;

    transition:
        opacity    0.3s cubic-bezier(0.23, 1, 0.32, 1),
        transform  0.3s cubic-bezier(0.23, 1, 0.32, 1),
        visibility 0s linear 0s;     /* 即座にvisible */
}

/* WordPress管理画面では常に表示 */
.wp-admin .open-menu {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    transform: none !important;
    pointer-events: auto !important;
}


/* ── オーバーレイ ── */
.hamburger-overlay {
    display: none;
}

.hamburger-overlay.is-open {
    display: block;
}

/* ── ボタン：スクロールで画面に入った時のアニメーション ── */

/* 初期状態：少し縮んで透明 */
.wp-block-buttons {
    opacity: 0;
    transform: scale(0.92);
    transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.23, 1, 0.32, 1);
}
.wp-admin .wp-block-buttons {
    opacity: 1;
    transform: none;
}

/* JSでクラスを付与したら表示 */
.wp-block-buttons.is-inview {
    opacity: 1;
    transform: scale(1);
}

/* 矢印：通常時 */
a.wp-block-button__link::after {
	transform: translateX(-1em);
    transition: transform 2s cubic-bezier(0.23, 1, 0.32, 1);
}

/* 矢印：画面に入ったら右に少し動く */
.wp-block-buttons.is-inview a.wp-block-button__link::after {
    transform: translateX(1em);
}

/* ── スクロールアニメーション ── */

/* 共通：初期状態 */
.anim-zoom,
.anim-left,
.anim-right,
.anim-down {
    opacity: 0;
    transition: opacity 0.8s ease,
                transform 0.8s cubic-bezier(0.23, 1, 0.32, 1),
                filter 0.8s ease;
}

/* 各初期位置 */
.anim-zoom  { transform: scale(0.95);          filter: blur(20px); }
.anim-left  { transform: translateX(-40px);    filter: blur(10px); }
.anim-right { transform: translateX(40px);     filter: blur(10px); }
.anim-down  { transform: translateY(-16px);    filter: blur(10px); }
.anim-zoom,
.anim-left,
.anim-right,
.anim-down {
    opacity: 0;
    transition: opacity 1s ease,
                transform 1s cubic-bezier(0.23, 1, 0.32, 1),
                filter 1s ease;
}

/* 発火後：共通のゴール状態 */
.anim-zoom.is-inview,
.anim-left.is-inview,
.anim-right.is-inview,
.anim-down.is-inview {
    opacity: 1;
    transform: none;
    filter: blur(0);
}
.wp-admin .anim-zoom,
.wp-admin .anim-left,
.wp-admin .anim-right,
.wp-admin .anim-down {
    opacity: 1;
    transform: none;
    filter: blur(0);
}

.catchphrase {
    font-size: 1.5em;
    font-weight: 100;
    margin-bottom: 0;
	word-break: keep-all;
    word-break: auto-phrase;
}

.text-shadow {
    text-shadow: 0 0 1em #000000b5;
}

a:hover{
	color: inherit;
}
.a-wrap:hover{
	background: #fbf6f3;
}

.entry-title, .archive-title {
    font-family: "Noto Sans JP", sans-serif;
    font-weight: normal;
    font-size: 2em;
    letter-spacing: .1em;
}
#post-13 h1.entry-title, #archive-title {
    font-size: 3em;
    letter-spacing: .3em;
}
.entry-card-title, .related-entry-main-heading, .article h1 {
    font-weight: 400;
}

.fa-folder-open:before{
	display: none;
}

p.about-question {
    font-size: 1.3em;
    margin-bottom: .5em;
    font-weight: 500;
    line-height: 1.2;
	display: flex;
    gap: 5px;
}
p.about-question:before{
	content: 'Q.';
}
p.about-answer {
	display: flex;
    gap: 5px;
	margin-bottom: 0;
}
p.about-answer:before {
    content: 'A.';
	margin-left: .3em;
}
.label-box-content {
	padding: 20px;
    border: 1px solid;
}
.label-box-label {
    justify-content: center;
    margin: 0;
    text-shadow: none;
    z-index: 10;
}
.label-box-label span{
	background: #f7f3f0;
	padding: 0 .5em;
    font-size: 1.2em;
}

/************************************
** レスポンシブデザイン用のメディアクエリ
************************************/
/*1023px以下*/
@media screen and (max-width: 1023px){
  /*必要ならばここにコードを書く*/
	.mobile-header-menu-buttons{
		flex-direction: row-reverse;
		box-shadow: none;
	}
}

/*834px以下*/
@media screen and (max-width: 834px){
  /*必要ならばここにコードを書く*/
	.home .main{
		padding: 0;
	}
	.column-reverse{
		flex-direction: column-reverse;
	}
}

/*480px以下*/
@media screen and (max-width: 480px){
  /*必要ならばここにコードを書く*/
	.center-left{
		text-align:left;
	}
	.center-left br{
		display:none;
	}
	.header-fixed {
		padding: 0;
	}
	.catchphrase{
        font-size: 1.2em;
		text-align: left;
	}
	.entry-title {
        font-size: 2em;
		padding: 0;
		word-break: auto-phrase;
	}
}