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

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

/* サイト表示のローディングアニメーション */
html {
  --site-opening-duration: 1s;
}
html::before {
  content: "";
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 99990;
  background-color: #231815;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  will-change: opacity;
  transition:
    opacity var(--site-opening-duration) ease,
    visibility 0s linear var(--site-opening-duration);
}
html.is-site-opening-finished::before {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}


/* ============================================================
   トップページ：縦書きキャッチコピー
   ============================================================ */

/*
 * ローディング中は、#231815のオープニング背景より前面に表示します。
 *
 * ローディング背景：z-index 99990
 * キャッチコピー：z-index 100000
 *
 * position: fixed にすることで、ローディング中は画面を基準に配置します。
 */
body.home #top-catchcopy {
  writing-mode: vertical-rl;
  text-orientation: upright;
  position: fixed !important;
  top: 20vh;
  left: calc(50% - 0.5em);
  margin: 0 auto;
  z-index: 100000 !important;
  color: white;
  font-size: 3em;
  line-height: 1;
  letter-spacing: 5px;
  pointer-events: none;
}

html.is-site-opening-finished body.home #top-catchcopy {
  position: absolute !important;
  z-index: 100 !important;
}


/* ============================================================
   ローディング中はページのスクロールを禁止
   ※ WordPress管理画面・ブロックエディターは対象外
   ============================================================ */

html:not(.is-site-opening-finished) body:not(.wp-admin) {
  height: 100%;
  overflow: hidden !important;
  overscroll-behavior: none;
  touch-action: none;
}


/*
 * 「坐る」「時間を」「支える。」の各まとまり
 */
body.home #top-catchcopy .word {
  display: inline-block;
  vertical-align: top;
}

/*
 * 1文字ごとの初期状態
 *
 * transition-delayはJavaScript側で文字ごとに設定します。
 */
body.home #top-catchcopy .word > span {
  display: inline-block;
  vertical-align: top;

  opacity: 0;
  filter: blur(7px);

  transition:
    opacity 2.2s ease-out,
    filter 2.2s ease-out,
    transform 2.2s cubic-bezier(0.19, 1, 0.22, 1);
}

/* 右側から現れる文字 */
body.home #top-catchcopy .word[data-dir="right"] > span {
  transform: scale(1.5) translateX(30px);
}

/* 左側から現れる文字 */
body.home #top-catchcopy .word[data-dir="left"] > span {
  transform: scale(1.5) translateX(-30px);
}

/*
 * JavaScriptでis-activeが付いた後の表示状態
 */
body.home #top-catchcopy.is-active .word > span {
  opacity: 1;
  filter: blur(0);
  transform: scale(1) translateX(0);
}

/*
 * ブロックエディター内では、編集しやすいように
 * アニメーション前の透明状態を解除します。
 */
body.wp-admin.block-editor-page #top-catchcopy,
body.wp-admin.block-editor-page #top-catchcopy .word > span {
  position: relative !important;
  top: auto;
  left: auto;
  z-index: auto !important;

  opacity: 1;
  filter: none;
  transform: none;
  transition: none;
}

/* スマートフォン */
@media screen and (max-width: 480px) {
  body.home #top-catchcopy {
    top: 25vh;
    font-size: 2em;
  }
}

/* Cocoon上書き */
body, #container {
    overflow-x: hidden;
}
body{
	overflow: auto;
	letter-spacing: .1em;
}
.wp-block-paragraph{
	line-height: 2.4em;
}
#main {
    min-height: calc(100svh - 700px);
	margin-top: 80px;
	border: none;
}
.column-full-wide #main {
    padding-left: 0;
    padding-right: 0;
}
.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;
}
nav, .copyright {
    font-family: "Yu Gothic Medium", "Yu Gothic", "YuGothic", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
}
.menu-content{
	font-family: "Yu Gothic Medium", "Yu Gothic", "YuGothic", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
}
.fa-remove:before, .fa-close:before, .fa-times:before {
    content: "×";
    font-size: 1.2em;
}
.home.page #main{
    padding: 0;
    border: 0;
	margin-top: 0;
}
.home .content {
    margin-top: 0;
}
.home .entry-content, .home article{
	margin: 0 !important;
}
.serif{
	font-family: "Yu Gothic Medium", "Yu Gothic", "YuGothic", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
}
.article h2,
.article h3{
	font-weight: normal;
}
a.wp-block-button__link, input[type=submit], .wp-block-button__link {
    letter-spacing: .2em;
    font-size: 16px;
	min-width: 250px;
    padding: .7em;
	display: flex;
	align-items: center;
	justify-content: center;
	backdrop-filter: blur(0);
	transition: ease-in-out .4s;
	background: transparent;
	border-radius: 100px;
    border: 2px solid;
}
.wp-block-button__link:hover {
    color: inherit;
    transform: scale(1.05);
}
.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;
	position: absolute;
    right: 2em;
}
.white-btn .wp-block-button__link:after {
	filter: invert(1);
}
input[type=submit] {
	max-width: 250px;
	margin: 0 auto;
    letter-spacing: .2em;
	font-family: serif;
    font-size: 1.2em;
    filter: drop-shadow(0 0 5px white);
    box-shadow: inset 0 0 15px #ffffff45;
    padding: .6em 2em;
	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 .5%, black 99.5%, transparent 100%),
                linear-gradient(to bottom, transparent 0%, black .5%, black 99.5%, 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;
}
.skip-link{
	display: none;
}
.block-library-html__preview-overlay {
    border: 1px solid lightgray;
}
ruby > rt {
    text-align: center;
    letter-spacing: .5em;
}

/* ── トップページ ── */
.top-newsblock {
    position: absolute;
    top: calc(100vh - 70px);
	right: 0;
    width: 100%;
    padding: 0 5vw;
    z-index: 10;
    color: white;
	font-family: sans-serif;
	max-width: 586px;
}
.top-newsblock p {
    line-height: 1.5;
}
.top-newsblock ul li{
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column-reverse;
	justify-content: flex-end;
	flex-wrap: wrap;
}
.top-newsblock ul.wp-block-latest-posts__list li {
    border-bottom: .75px solid white;
	padding-bottom: .2em;
}
.top-newsblock .wp-block-latest-posts__post-title{
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	width: 100%;
}
.top-newsblock .wp-block-latest-posts__post-date {
    font-size: .7em;
}
.home .new-entry-card-content {
	font-family: sans-serif;
}
.home .new-entry-card-content.widget-entry-card-content.card-content {
    display: flex;
    flex-direction: column-reverse;
}
.home .new-entry-card-content .post-update, .home .new-entry-card-content .fa-clock-o{
	display: none;
}
.home .new-entry-card-content .entry-date {
    margin-left: 0;
}
.home .new-entry-card-thumb{
    margin-right: 4%;
}
.border-partition .a-wrap {
    border-bottom: 1px solid lightgray;
}
.border-partition .a-wrap:first-of-type {
    border-top: 1px solid lightgray;
	padding-top: 9px;
}

/* ── 固定ページ ── */
.thumbnail-title-block {
    position: absolute;
	letter-spacing: .2em;
	top: 0;
	left: 50%; 
	right: 50%;
	margin-left: -50vw;
	margin-right: -50vw;
	width: 100vw;
}
.thumbnail-title-block h1{
	font-weight: normal;
	letter-spacing: 0.25em;
}
.page #main, body.archive{
	padding-top: 482px;
}
.page #main, .page .content{
	margin: 0;
}
.wp-block-breadcrumbs a{
	text-decoration: none;
	color: inherit;
}
.page .eye-catch-wrap {
    display: none;
}

/* ── 投稿ページ ── */
.single-post h1.entry-title {
    margin: 1em auto;
    font-family: serif;
    line-height: 1.5;
}
.single-post .entry-content{
	font-family: sans-serif;
}


/* ── アーカイブ ── */
.archive .wp-block-breadcrumbs{
	padding: 16px !important;
	max-width: 1200px;
    margin: 0 auto;
}
.archive .archive-title{
	display: none;
}
.archive #main{
	margin-top: 0;
	padding: 0 5vw;
}
.archive .entry-card-meta{
    position: relative;
    text-align: left;
}
.archive .entry-card-content {
    display: flex;
    flex-direction: column-reverse;
	gap: .5em;
}
.archive .e-card-info {
    display: block;
	font-size: 1.2em;
	color: var(--cocoon-text-color);
}
.archive .e-card-info .fa-clock-o{
	display: none;
}
.archive a.entry-card-wrap{
	font-family: sans-serif;
	border-bottom: 1px solid lightgray;
}
.archive a.entry-card-wrap:first-of-type {
    border-top: 1px solid lightgray;
	padding-top: 22px;
}
.archive .entry-card-thumb{
    margin-right: 20px;
}
.archive .cat-label{
	display: none;
}
.archive .eye-catch-wrap {
    display: none;
}


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

.header-logo img{
	margin-top: 8px;
}

.header-fixed {
    position: fixed;
    top: 0;
    z-index: 100;
    width: 100%;
    padding: 0 5vw;
    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: white;
    opacity: 0;
    transition: opacity 0.6s ease;
    z-index: -1;
}

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

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

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

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

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

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


/* ── フッター ── */
#footer {
    display: none;
}
.footer-block a, .footer-credit a{
	text-decoration: none;
}
.footer-scroll-menu .wp-block-navigation.items-justified-center.no-wrap {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    white-space: nowrap;
	gap: 0;
	justify-content: flex-start;
}
.footer-scroll-menu .wp-block-navigation.items-justified-center.no-wrap::-webkit-scrollbar {
    height: 4px;
}
.footer-scroll-menu .wp-block-navigation.items-justified-center.no-wrap::-webkit-scrollbar-thumb {
    background-color: rgba(0,0,0,0.2);
    border-radius: 2px;
}
.footer-scroll-menu .wp-block-navigation__container {
    display: flex;
    flex-wrap: nowrap;
    width: max-content;
}
.footer-scroll-menu .wp-block-navigation-item {
    flex-shrink: 0;
    padding: 0 1.2rem;
    position: relative;
}
.footer-scroll-menu .wp-block-navigation-item:not(:last-child)::after {
    content: "";
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    height: 1em;
    width: 1px;
    background-color: currentColor;
}
.shop-logo-group{
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: clamp(1em, 10vw, 2em);
	align-items: center;
}
.shop-logo-group > *:last-child {
	grid-column: 1 / -1;
	justify-self: center;
}
@media screen and (min-width: 786px){
	.footer-scroll-menu .wp-block-navigation.items-justified-center.no-wrap {
		justify-content: center;
	}
}
@media screen and (min-width: 480px){
	.shop-logo-group {
		grid-template-columns: repeat(5, 1fr);
	}
	.shop-logo-group > *:last-child {
		grid-column: auto; 
		justify-self: stretch; 
  }
}


/* ── ハンバーガーボタン ── */
.hamburger-btn {
    margin-left: auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 6px;
    width: 50px;
    height: 80px;
    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: 45px;
    height: 1.5px;
    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;
  position: fixed;
  top: 80px;
  right: 0;
  width: 100%;
  height: calc(100svh - 80px);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  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 */
}
html.is-menu-open,
body.is-menu-open {
  overflow: hidden !important;
}

/* WordPress管理画面では常に表示 */
body.wp-admin.block-editor-page .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);
}
body.wp-admin.block-editor-page .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);           }
.anim-left  { transform: translateX(-40px);    filter: blur(10px); }
.anim-right { transform: translateX(40px);     filter: blur(10px); }
.anim-down  { transform: translateY(-16px);     }
.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);
}
body.wp-admin.block-editor-page .anim-zoom,
body.wp-admin.block-editor-page .anim-left,
body.wp-admin.block-editor-page .anim-right,
body.wp-admin.block-editor-page .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: #f9f9f9;
}

.entry-title, .archive-title {
    font-family: "Yu Gothic Medium", "Yu Gothic", "YuGothic", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", 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 {
    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.';
}
.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: white;
	padding: 0 .5em;
    font-size: 1.2em;
	font-weight: normal;
}

/* ── ABOUTページ ── */
.aspect-wide img{
	aspect-ratio: 21 / 9;
    object-fit: cover;
}
.original-gallery {
	column-count: 3;
	column-gap: .44remx;
	display: block !important;
}
.original-gallery .wp-block-image {
	break-inside: avoid;
	margin-bottom: .44rem;
}
.original-gallery img {
	width: 100%;
	height: auto;
	display: block;
}
.original-gallery .wp-element-caption {
    padding: .5em !important;
}
@media (max-width: 480px) {
	.original-gallery {
		column-count: 2;
	}
}
.review-block {
    max-width: 840px;
    margin: 0 auto;
}
[class^=is-style-balloon-], [class*=" is-style-balloon-"] {
    border: 1px solid #929292;
    border-radius: 0;
}
.review-head{
	white-space: nowrap;
}
.review-star{
	position: absolute;
	left: calc(50% - 50px);
}
@media (max-width: 400px) {
	.review-star{
		position: relative;
		left: auto;
	}
}
@media (min-width: 480px) {
	.review-title br{
		display: none;
	}
}

/* ── 製品紹介ページ slider ── */
.lineup-slider1 .flex-control-nav li a,
.lineup-slider2 .flex-control-nav li a {
    width: 1.5em;
    height: 1.5em;
}
.lineup-slider1 .flex-control-nav li a.flex-active,
.lineup-slider2 .flex-control-nav li a.flex-active {
    outline: 3px double #9d9d9d;
}
.lineup-slider1 .flex-control-nav li:nth-child(1) a {
    background: #a30345 !important;
}
.lineup-slider1 .flex-control-nav li:nth-child(2) a {
    background: #29589a !important;
}
.lineup-slider1 .flex-control-nav li:nth-child(3) a {
    background: #202934 !important;
}
.lineup-slider2 .flex-control-nav li:nth-child(1) a {
    background: #00acb3 !important;
}
.lineup-slider2 .flex-control-nav li:nth-child(2) a {
    background: #0092e6 !important;
}
.lineup-slider2 .flex-control-nav li:nth-child(3) a {
    background: #f0307a !important;
}
.lineup-slider2 .flex-control-nav li:nth-child(4) a {
    background: #aa45ce !important;
}
.lineup-slider2 .flex-control-nav li:nth-child(5) a {
    background: #e79c17 !important;
}

/* ── 404ページ ── */
.error404 .post {
    text-align: center;
}
.error404 .post img {
    max-width: 200px;
	margin: 20px auto;
}

/************************************
** レスポンシブデザイン用のメディアクエリ
************************************/
/*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;
	}
	.page-template-default .main{
        padding: 0 5vw;
    }
	.post-template-default .main{
        padding: 5vw;
    }
	.column-reverse{
		flex-direction: column-reverse;
	}
	.article ul, .article ol {
        padding-left: 0;
    }
}

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