@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 {
    font-family: "Times New Roman", "游明朝", "Yu Mincho", "游明朝体", "YuMincho", "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "HiraMinProN-W3", "HGS明朝E", "ＭＳ Ｐ明朝", "MS PMincho", serif;
}

.header-container-in.hlt-center-logo-top-menu {
	flex-direction: column;
}

#header-container-in {
	position: relative;
}

.front-top-page #header-container-in {
	min-height: 700px;
}

#header {
	position: absolute;
    top: 0;
    width: 100%;
	background-position: 50% 35%;
}

.page-header-in {
	height:70px;
}

.front-top-page .navi {
	opacity: 0.5;
}

#container .navi {
	position: -webkit-fixed;
	position: fixed;
	top: 0;
	z-index: 1;
	background-color: black;
	width: 100%;
    height: fit-content;
}

#navi-in {
	display: flex;
	justify-content: space-between;
}

#navi-in .logo-p {
	font-weight:bold;
}

.logo-text {
    padding: 0px 0px 0px 20px;
}

#navi-in .site-name-text {
	font-size: 42px;
}

#navi-in h1 a .site-name-text {
	transition: all 0.3s ease-in-out;
}

#navi-in h1 a:hover {
	background-color: transparent!important;
}

#navi-in h1 a:hover .site-name-text {
	color:#333;
}

.navi-in > ul li {
    height: 100%;
}

/*モバイルメニュー*/
.navi-menu-content {
	right: 0;
	left: unset;
	-webkit-transform: translateX(105%);
	transform: translateX(105%);
}

.mobile-menu-buttons .menu-button > a {
	font-size: 37px;
    color: white;
    font-weight: 300;
    letter-spacing: 2px;
}

.mobile-header-menu-buttons {
	background-color: black;
	height: 75px;
	box-shadow: unset;
}

.front-top-page .mobile-header-menu-buttons {
	opacity: 0.5;
}

.mobile-menu-buttons {
	color: white;
}

.navi-menu-close-button {
	color: #333;
}

.menu-content .menu-drawer {
    margin-top: 40px;
}


.menu-drawer a {
    padding: 20px 6px;
    letter-spacing: 2px;
    text-align: center;
}

#navi-menu-input:checked ~ #navi-menu-content, 
#sidebar-menu-input:checked ~ #sidebar-menu-content, 
#search-menu-input:checked ~ #search-menu-content, 
#share-menu-input:checked ~ #share-menu-content, 
#follow-menu-input:checked ~ #follow-menu-content {
    opacity: 0.8;
}

.mobile-menu-buttons .logo-menu-button {
	justify-content: left;
	padding-left: 20px;
}

/*SNS*/
.sns_button_list {
	text-align: center;
    list-style: none;
    display: flex;
    justify-content: center;
	padding:0;
}

.sns_button_list .insta {
	padding-right: 18px;
}

.sns-logo {
	height:18px;
	width:auto;
}

/*プロフィール*/

.profile-main {
	display: flex;
    flex-direction: row;
    justify-content: space-evenly;
	margin-bottom: 50px;
}

.profile-title_headline, 
.contact-title_headline,
.page-template-default .entry-title {
	font-size: 30px;
    font-weight: normal!important;
    letter-spacing: 2px;
}

.profile-title,
.contact-title,
.article-header {
	margin-bottom:30px;
}

.profile-column {
	width:50%;
	position: relative;
}

.profile-column-in {
	position: absolute;
    bottom: 0;
    left: 0;
}

.profile-photo {
	width:50%;
}

.profile-photo-img {
	width:420px;
}

.p-sns-body {
	padding-left: 40px;
}

.p-sns-body .sns_button_list {
	justify-content: flex-start;
}

.p-sns-body .sns-logo {
	height:25px;
}

.p-list {
	list-style-type:none;
}

.p-name-body{
    margin-bottom: 95px;
}

.p-data-body {
	margin-bottom:5px;
}

.p-name {
	font-size: 25px;
    letter-spacing: 0.3em;
}

.p-data {
	color:black;
	letter-spacing: 0.3em;
}

.p-breadcrumb {
	text-align: right;
    margin-top: 60px;
    padding-right: 60px;
	position: absolute;
    bottom: 0;
    right: 0;
}

.p-breadcrumb a {
	color: #333;
    text-decoration: none;
	transition: all 0.3s ease-in-out;
}

.p-breadcrumb a:hover {
	opacity:0.6;
}

/*コンタクト*/

.contact-content {
	min-height:520px;
}

.contact-main {
	text-align:center;
}

.contact-form-button {
	margin-top:90px;
}

.contact-form-button a {
	background-color: #333;
    text-decoration: none;
    transition: all 0.3s ease-in-out;
    font-size: 20px;
    padding: 10px 80px;
    color: white;
}

.contact-form-button a:hover {
	opacity:0.5;
}

/*コンタクト*/
.page-template-default .entry-title {
	line-height: 1.8;
	margin:0;
}

/*バイオグラフィー*/
/* reset */
.b-accordion_navi {
	background:transparent;
	border:none;
	outline:none;
	padding:0;
	appearance:none;
}

.b-accordion_navi ul {
	list-style-type:none;
	margin:0;
	padding:0;
}

.b-accordion_navi>ul>li, .b-accordion_navi>ul>p {
	margin: 0;
}
/* reset */

.b-accordion_navi {
	display: block;
	line-height: 50px;
	border: solid #a9a9a9;
}

.b-accordion_title {
	padding-left: 20px;
	cursor: pointer;
}

.b-accordion_text {
	margin-bottom:0!important;
	font-weight:bold;
}

.b-accordion_navi > ul > li {
	text-align: left;
	/* 閉じている状態 */
	border-top: 0 white solid;
	padding-top: 0;
	padding-bottom: 0;
	padding-left:20px;
	/* 閉じるアニメーション */
	transition:
		border-top     .3s ease-out,
		padding-top    .3s ease-out,
		padding-bottom .3s ease-out;
}

.b-accordion_navi > ul.is-open > li {
	/* 開いている状態 */
	border-top: 1px white solid;
	padding-top: 13px;
	padding-bottom: 13px;
	/* 開くアニメーション */
	transition:
		border-top     .3s ease-out,
		padding-top    .3s ease-out,
		padding-bottom .3s ease-out;
}

.b-accordion_navi > ul {
	/* 閉じている状態 */
	line-height: 0;
	opacity: 0;
	visibility: hidden;
	/* 閉じるアニメーション */
	transition:
		line-height .3s ease-out,
		opacity     .1s linear,
		visibility  .1s linear;
}

.b-accordion_navi > ul.is-open {
	/* 開いている状態 */
	line-height: 1.5;
	opacity: 1;
	visibility: visible;
	/* 開くアニメーション */
	transition:
		line-height .3s ease-out,
		opacity     .1s linear .1s,
		visibility  .1s linear .1s;
}

.b-accordion_navi > ul > li > ul {
	/* 閉じている状態 */
	margin-top:0px;
	/* 閉じるアニメーション */
	transition:
		margin-top .3s ease-out;
}

.b-accordion_navi > ul.is-open > li > ul {
	/* 開いている状態 */
	margin-top:7px;
	/* 開くアニメーション */
	transition:
		margin-top .3s ease-out;
}

.b-accordion_navi > ul li {
	margin:0;
}

/* ギャラリー */
.image-gallery {
	display: flex;
    flex-wrap: wrap;
    flex-direction: row;
    justify-content: space-between;
}

.image-wrapper {
	position: relative;
    width: 30%;
    aspect-ratio: 3 / 4; /* 画像を比率で表示 */
    overflow: hidden;
    cursor: pointer;
    transition: transform 0.3s ease;
	margin-bottom: 40px;
}

.image-wrapper img {
	position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    height: 100%;
    object-fit: cover; /* 画像を切り取って比率にフィット */
    transform: translate(-50%, -50%);
}

.image-wrapper:hover {
	transform: scale(1.05);
}

.image-empty {
	height: 0;
	width:30%;
	margin-top: 0;
	margin-bottom: 0;
	padding-top: 0;
	padding-bottom: 0;
}

/* モーダルスタイル */
.gallery-modal {
	display: none;
	position: fixed;
	z-index: 10;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	overflow: auto;
	background-color: rgba(0, 0, 0, 0.6);
	align-items: center; /* モーダルを中央に配置 */
	justify-content: center;
}

.gallery-modal-content {
	display: block;
	margin: auto;
	max-width: 90%;
	max-height: 90%;
	transform: scale(0); /* 初期状態は縮小 */
	opacity: 0; /* 初期状態は透明 */
	animation: gallery-modal-appear 0.5s ease-out forwards;
}

.close {
	position: absolute;
	top: 20px;
	right: 30px;
	color: #fff;
	font-size: 30px;
	font-weight: bold;
	cursor: pointer;
	transition: color 0.3s ease;
}

.close:hover {
	color: #f3f3f3;
}

@keyframes gallery-modal-appear {
	0% {
		transform: scale(0); /* モーダルのスケール初期値 */
		opacity: 0; /* 初期状態は透明 */
	}
	100% {
		transform: scale(1); /* 通常の大きさに */
		opacity: 1; /* 完全に表示 */
	}
}

/************************************
** レスポンシブデザイン用のメディアクエリ
************************************/
/*1023px以下*/
@media screen and (max-width: 1023px){
	#container .navi {
		display:none;
	}
    body:where(.mblt-header-mobile-buttons, .mblt-header-and-footer-mobile-buttons) {
        margin-top:0;
    }	
	/*必要ならばここにコードを書く*/
	.profile-photo-img {
		width: 350px;
	}
	.profile-main {
		flex-direction: column-reverse;
	}
	.profile-photo {
		width: 100%;
	}
	.profile-photo-img {
		margin: auto;
	}
	.profile-column {
		width: 100%;
	}	
	.profile-column-in {
		position: unset;
	}
	.p-data-body {
		margin-bottom: 0px;
	}
	.p-list {
		padding-left:10px;
	}
	.p-sns-body {
		padding-left: 10px;
	}
	
	.p-sns-body .sns-logo {
		height: 20px;
	}
	
	.p-name-body{
		margin-bottom: 0px;
	}
}

/*834px以下*/
@media screen and (max-width: 834px){
  /*必要ならばここにコードを書く*/
	.article ul, .article ol {
		padding-left: 0px;
	}
}

/*480px以下*/
@media screen and (max-width: 480px){
  /*必要ならばここにコードを書く*/
	.entry-title, .article h2 {
		padding: 0;
	}
	
	.profile-photo-img {
        width: 315px;
    }
	
	.p-name {
		font-size: 21px;
	}
	
	.p-data {
		font-size: 13px;
	}
	
	.b-accordion_navi > ul li,
	.front-top-page .main p {
		font-size: 14px;
	}
}
