@charset "UTF-8";

/*調整用スタイル*/
body {
    width: 100%;
    height: 100%;
    font-family:  "Noto Sans JP", sans-serif;
	font-optical-sizing: auto;
    background: #fff;
    color: #333;
    line-height: 1.5;
}
html,body {
    font-size: 1rem;
}
@media screen and (min-width:960px) {
	html,body {font-size: 0.95rem;}
}
@media (prefers-color-scheme: dark) {
    body {
        background-color: #222;
        color: #fff;
    }
}

.wrapper {
    min-height: 82vh;
    position: relative;
    padding: 0 0 100px;
}

a {text-decoration: none;}

ul,li {list-style: none;}

/*カスタムプロパティ*/
:root {
	--light_Link: #1c6eee;
	--dark_Link: #7cacf8;
}

/*テキスト関連：見出し*/
h1 {
	font-size: 2rem;
	font-weight: 800;
	text-align: center;
}
h2 {
	font-size: 1.5rem;
	font-weight: bold;
	margin: 0 0 5px;
}
h3 {
	font-size: 1rem;
	font-weight: bold;
}

/*テキスト関連：汎用*/
.bold {font-weight: bold;}
.bold_Importants {
	font-weight: bold;
	color: #e70000;
}

/*汎用ボタン*/
.button_Parsonal {
	display: inline-block;
	width: 100%;
	text-align: center;
	margin: 20px 0 0;
	padding: 15px 0;
	border-radius: 10px;
	transition: .3s;
}

.button01 {
	background: #333;
	color: #fff;
}
.button02 {
	background: var(--light_Link);
	color: #fff;
}
.button03 {
	background: none;
	outline: 2px solid #333;
	outline-offset: -2px;
	color: #333;
}
.button03:hover {
	background: #333;
	color: #fff;
	opacity: 0.7;
}
.button01:hover,.button02:hover {opacity: 0.7;}
.button01:active,.button02:active,.button03:active{
	opacity: 1;
	transition: none;
}

@media screen and (min-width:960px) {
	.button_Parsonal {
		width: auto;
		margin: 20px 10px 0 0;
		padding: 10px 20px;
	}
}
@media (prefers-color-scheme: dark) {
    .button01 {
        background: #fff;
        color: #333;
    }
	.button02 {
		background: var(--dark_Link);
		color: #333;
	}
	.button03 {
		outline: 2px solid #fff;
		outline-offset: -2px;
		color: #fff;
	}
	.button03:hover {
		background: #fff;
		color: #333;
		opacity: 0.7;
	}
	.button03:active {
		opacity: 1;
		transition: none;
	}
}

/*ヘッダー設定*/
header {
	padding: 15px;
	position: fixed;
    top: 0;
    left: 0;
    right: 0;
	display: flex;
	background: #ffffffdb;
	backdrop-filter: blur(10px);
	z-index: 999;
}
@media screen and (min-width:960px) {
	header {padding: 15px 7%;}
}
@media (prefers-color-scheme: dark) {
    header {
        background: #222222db;
        color: #fff;
    }
}

.logo img {
	display: block;
	max-width: 130px;
	width: 130px;
	height: auto;
	filter: brightness(0) saturate(100%) invert(0%) sepia(43%) saturate(2370%) hue-rotate(121deg) brightness(95%) contrast(94%);
}
@media (prefers-color-scheme: dark) {
	.logo img {
		filter: brightness(0) saturate(100%) invert(100%) sepia(0%) saturate(7489%) hue-rotate(277deg) brightness(102%) contrast(104%);		
	}
}
.logo {
	height: 100%;
	transition: .3s;
}
.logo:hover {opacity: 0.7;}
.logo:active {
	opacity: 1;
	transition: none;
}

/*メニュー設定*/
@media screen and (max-width:960px) {
    .header__nav {
        position: absolute;
        right: 0;
        left: 0;
        top: 0;
        height: 100vh;
        transform: translateX(100%); 
        background-color: #111;
        /*ハンバーガーメニュークリック時のナビゲーションメニュー背景色*/
        transition: ease .4s;
        /*ハンバーガーメニュークリック時のナビゲーションメニュー出現を遅延*/
        opacity: 0.99;
    }
    .menubar ul{margin: 50% 0;}
    .menubar a{
        font-size: 1.4rem;
        text-align: center;
        padding: 10px 0;
        display: block;
        color: #fff;
		transition: .3s;
		margin: 10px 20px;
		border-radius: 10px;
    }
	.menubar a:hover {
		background-color: #fff;
        color: #333;
	}
}

@media screen and (min-width:960px) {
	.menubar {
		margin: 0 0 0 auto;
		display: block;
	}
	.menubar li{
		float: left;
		margin: 10px 0 10px 20px;
	}
	.menubar a{
		padding: 10px 30px;
		border-radius: 10px;
		transition: .3s;
		color: #333;
	}
	.menubar a:hover{
		color: #fff;
		background: #333;
	}
	.menubar a:active {
		background: #000;
		transition: none;
	}
}
@media (prefers-color-scheme: dark) {
	.menubar a{color: #fff;}
    .menubar a:hover {
        background-color: #fff;
        color: #333;
    }
	.menubar a:active {opacity: 0.7;}
}

/*ハンバーガーメニュー設定*/
.header_hamburder {
	width: 48px;
	height: 100%;
	margin: 0 0 0 auto;
	padding: 10px;
	border-radius: 10px;
}
.hamburger {
    background-color: #333;
    border-color: transparent;
    z-index: 9999;
}
@media screen and (min-width:960px) {
	.hamburger {display: none;}
}
@media (prefers-color-scheme: dark) {
    .hamburger {background-color: #fff;}
}

/*ハンバーガーメニューの線*/
.hamburger span {
    width: 100%;
    height: 3px;
    background-color: #fff;
    position: relative;
    transition: ease .4s;
    display: block;
}
.hamburger span:nth-child(1) {top: 0;}
.hamburger span:nth-child(2) {margin: 8px 0;}
.hamburger span:nth-child(3) {top: 0;}
@media (prefers-color-scheme: dark) {
    .hamburger span {background-color: #333;}
}
/* ハンバーガーメニュークリック後のスタイル*/
.header__nav.active {
    transform: translateX(0);
}
.hamburger.active span:nth-child(1) {
    top: 11px;
    transform: rotate(45deg);
}
.hamburger.active span:nth-child(2) {
    opacity: 0;
}  
.hamburger.active span:nth-child(3) {
    top: -11px;
    transform: rotate(-45deg);
}

/*パンくずリスト設定*/
.breadcrumb {
	margin: 20px auto;
	width: 90%;
	display: flex;
	flex-wrap: wrap;
	list-style: none;
}
.breadcrumb a {color: var(--light_Link);}
.breadcrumb a:hover {color: #103d84;}

.breadcrumb li:not(:last-of-type)::after {
	content: "›";
	margin: 0 .6em; /* 記号の左右の余白 */
	color: #777; /* 記号の色 */
}

@media screen and (min-width:960px) {
	.breadcrumb {width: 60%;}
}
@media (prefers-color-scheme: dark) {
    .breadcrumb a {color: var(--dark_Link);}
}

/*メインコンテンツ共通設定*/
main {
	margin: 150px 0;
	height: 100%;
}
.main_Contents {
	margin: 20px auto;
	padding: 10px;
	width: 90%;
	border: 1px #ddd solid;
	border-radius: 10px;	
}
.main_Contents hr {border-top: 1px  #ccc dashed;}
@media screen and (min-width:960px) {
	.main_Contents {
		padding: 15px;
        width: 60%;
    }
}
@media (prefers-color-scheme: dark) {
    .main_Contents {border: 1px #444 solid;}
	.main_Contents hr {border-top: 1px  #444 dashed;}
}

.main_Contents img {
	width: 100%;
	height: auto;
	border-radius: 5px;
}

/*プロフィール設定*/
.about_Profile {
	margin: 30px 0;
	padding: 0;
	text-align: center;
}
.about_Profile img {
	margin: 10px 0 20px;
	width: 150px;
    border-radius: 400px;
}
.about_Profile p {margin: 0 0 20px;}

.about_What p {margin: 10px 0 0;}

.about_Social img {
	margin: 0 10px;
	width: 35px;
	border-radius: 0;
	filter: brightness(0) saturate(100%) invert(17%) sepia(4%) saturate(19%) hue-rotate(38deg) brightness(94%) contrast(89%);	
}
.about_Social_long img {
	margin: 0 10px;
	width: 150px;
	border-radius: 0;
	filter: brightness(0) saturate(100%) invert(17%) sepia(4%) saturate(19%) hue-rotate(38deg) brightness(94%) contrast(89%);
}

@media screen and (min-width:960px) {
	.about_Social img {
		margin: 0 10px;
		width: 30px;
	}
}
@media (prefers-color-scheme: dark) {
	.about_Social img {
		filter: brightness(0) saturate(100%) invert(100%) sepia(0%) saturate(7489%) hue-rotate(277deg) brightness(102%) contrast(104%);
	}
}
.about_Social a {transition: .3s;}
.about_Social a:hover {opacity: 0.6;}

/*ガイドライン設定*/
.main_Contents li {
	list-style: disc inside;
	line-height: 2;
}

/*コンテンツ設定*/
.contents_Image {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	grid-auto-flow: row dense;
	gap: 10px 10px;
	margin: 0;
	transition: .3s;
}
@media screen and (min-width:960px) {
	.contents_Image {
		grid-template-columns: repeat(2, 1fr);	
	}
}
.contents_Image img {
	width: 100%;
	height: 100%;
	transition: .3s;
}
.contents_Image img:hover {opacity: 0.6;}
.contents_Image img:active {
	opacity: 0.7;
	transition: none;
}

/*ギャラリー設定*/
.image_Gallery {
	display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-auto-flow: row dense;
    gap: 10px 10px;
	margin: 0;
}
@media screen and (min-width:960px) {
	.image_Gallery {
		grid-template-columns: repeat(3, 1fr);	
	}
}
.image_Gallery img {
	width: 100%;
	height: 100%;
	transition: .3s;
	object-fit: cover;
}
.image_Gallery img:hover {opacity: 0.6;}
.image_Gallery img:active {
	opacity: 0.7;
	transition: none;
}

/*フッター設定*/
footer {
    width: 100%;
    position: absolute;
    bottom: 0;
	background: #fff;
	text-align: center;
	font-size: 0.9rem;
	padding: 10px 0 20px;
}
@media (prefers-color-scheme: dark) {
    footer {
        background-color: #222;
        color: #fff;
    }
}

.copyright {padding: 0 15px;}
