@charset "UTF-8";
/* CSS Document */


p {
	font-size: 16px;
}

a {
	text-decoration: none;
}


/*ーーーーーーーーーーーーーーーーヘッダー ーーーーーーーーーーーーーーーー*/
header {
	max-width: 960px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin: 0 auto;
	padding: 0 4%;
}

header h1 img {
	width: 150px;
	height: auto;
	display: flex;
	align-items: center;
}

header ul {
	display: flex;
	padding: 20px 0;
}

header ul li a {
	margin-left: 30px;
	color: #24292e;
	font-size: medium;
}


/*ハンバーガーメニュー*/
/* チェックボックスを非表示にする */
.drawer_hidden {
	display: none;
}

  /* ハンバーガーアイコンの設置スペース */
.drawer_open {
	display: flex;
	height: 60px;
	width: 60px;
	justify-content: center;
	align-items: center;
	position: relative;
	z-index: 100;/* 重なり順を一番上にする */
	cursor: pointer;
}

  /* ハンバーガーメニューのアイコン */
.drawer_open span,
.drawer_open span:before,
.drawer_open span:after {
	content: '';
	display: block;
	height: 3px;
	width: 25px;
	border-radius: 3px;
	background: #333;
	transition: 0.5s;
	position: absolute;
}

  /* 三本線の一番上の棒の位置調整 */
.drawer_open span:before {
	bottom: 8px;
}

  /* 三本線の一番下の棒の位置調整 */
.drawer_open span:after {
	top: 8px;
}

  /* アイコンがクリックされたら真ん中の線を透明にする */
#drawer_input:checked ~ .drawer_open span {
	background: rgba(255, 255, 255, 0);
}

  /* アイコンがクリックされたらアイコンが×印になように上下の線を回転 */
#drawer_input:checked ~ .drawer_open span::before {
	bottom: 0;
	transform: rotate(45deg);
}

#drawer_input:checked ~ .drawer_open span::after {
	top: 0;
	transform: rotate(-45deg);
}

/* メニューのデザイン*/
.nav_content {
	width: 100%;
	height: 100%;
	position: fixed;
	top: 0;
	left: 100%; /* メニューを画面の外に飛ばす */
	z-index: 99;
	background: #fff;
	transition: .5s;
}

  /* メニュー黒ポチを消す */
.nav_list {
	list-style: none;
	flex-direction: column;
}

  /* アイコンがクリックされたらメニューを表示 */
#drawer_input:checked ~ .nav_content {
	left: 0;/* メニューを画面に入れる */
}


/*ーーーーーーーーーーーーーーーーヘッダー ーーーーーーーーーーーーーーーー*/


main {
	margin: 0 auto;
}

h2, h3 {
	font-weight: bold;
}

section {
	max-width: 960px;
	padding: 0 4%;
	margin: 0 auto 8.5rem;
}

small {
	margin: 0 auto;
}


/*ーーーーーーーーーーーーーーーーメインビジュアル ーーーーーーーーーーーーーーーー*/
#mainvisual {
	padding-bottom: 80px;
}

#mainvisual img {
	width: 100%;
	max-width: 1920px;
	height: 600px;
	object-fit: cover;
}
/*ーーーーーーーーーーーーーーーーメインビジュアル ーーーーーーーーーーーーーーーー*/





h2 {
	display: block;
	margin: 0 auto 50px;
	font-size: 2rem;
	width: fit-content;
	border-bottom: 1px solid;
}

h3 {
	font-size: 1.1rem;
}



/*ーーーーーーーーーーーーーーーーAbout ーーーーーーーーーーーーーーーー*/
#about {
	max-width: 960px;
}

.about-flex {
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto;
	width: 70%;
}

.about-flex img {
	border-radius: 50%;
	width: 150px;
	height: 150px;
}

.about-text {
	padding: 30px;
	line-height: 1.6;
}

.about-text h3 {
	margin-bottom: 1.2rem;
}

.text-right {
	text-align: right;
}

/*
.join {
	text-align: center;
	margin: 0 auto;
	max-width: 500px;
	font-color: #000000;
	border: solid 10px #89CCCC;
}
*/


/*ーーーーーーーーーーーーーーーーAbout ーーーーーーーーーーーーーーーー*/



/*ーーーーーーーーーーーーーーーーBicycleーーーーーーーーーーーーーーーー*/
#bicycle {
	max-width: 960px;
}


/*ーーーーリスト左寄せーーーー*/
.bicycle-flex {
	display: flex;
	justify-content: left;
	padding-bottom: 4%;
	margin: 0 auto 0 4%;
	flex-wrap: wrap;　　　　/*4つ目以降のコンテンツを自動改行*/
	/*position: relative;*/
}
/*ーーーーリスト左寄せーーーー*/



/*ーーーーリスト右寄せーーーー
.bicycle-flex {
	display: flex;
	justify-content: right;
	padding-bottom: 4%;
	margin: 0 4% 0 auto;
	flex-wrap: wrap;
}
ーーーーリスト右寄せーーーー*/


.bicycle-flex li {
	width: 30%;
	margin: 1%;
}

.bicycle-flex li h3, .bicycle-flex li p {
	text-align: center;
	line-height: 1.5;
}

/*
.bicycle-flex::after {
	content: "...and more!";
	position: absolute;
	top: 75%;
	left: 68%;
}
*/

/*ーーーーーーーーーーーーーーーーBicycleーーーーーーーーーーーーーーーー*/



/*ーーーーーーーーーーーーーーーーfooterーーーーーーーーーーーーーーーー*/
footer p {
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 0.7rem;
	margin: 0 auto;
	height: 80px;
	color: #ffffff;
	background-color: #333333;
}
/*ーーーーーーーーーーーーーーーーfooterーーーーーーーーーーーーーーーー*/






/*ーーーーーーーーーーーーーーーーmemberーーーーーーーーーーーーーーーー*/

#member_mainvisual {
	padding-bottom: 80px;
}

#member_mainvisual img {
	width: 100%;
	max-width: 1920px;
	height: 300px;
	object-fit: cover;
}

.profile  {
	display: flex;
	max-width: 1080px;
	margin: 0 auto;
}

.profile li {
	padding: 30px;
	text-align: center;
	width: 30%;
}

.profile li img {
	width: 80px;
	height: 80px;
}

.profile li p {
	line-height: 1.8;
	text-align: left;
}

/*ーーーーーーーーーーーーーーーーmemberーーーーーーーーーーーーーーーー*/






/*ーーーーーーーーーーーーーーーー参加情報ページーーーーーーーーーーーーーーーー*/
/*ーーーーーーーーーーーークリックするとテキストが広がるーーーーーーーーーーーー*/

#rule {
	margin: 0 auto 2rem;
}


small {
	font-size: small;
}

.dropdown {
	/*display:none;*/
	background: #ffffff;
	padding-bottom: 20px;
}

/*
#rule label, #rule ul li{
	display:block;
	border-bottom:#fff 1px solid;
	font-family:sans-serif;
	letter-spacing:.05em;
}
*/

.rule-label {
	display:block;
	font-size: 1rem;
	background: #89CCCC;
	margin-bottom: 30px;
}

.dropdown li {
	padding: 0 1.5em 1.5em 1em;
	margin-left: 1rem;
	font-size: 0.9rem;
	line-height: 2;
	position: relative;
	display: flex;
}

.dropdown li:first-child {
	padding-top: 0;
}

.dropdown li::before {
	content:'';
	width: 1em;
	height: 1em;
	background: #000000;
	border-radius: 50%;
	left: -0.5em;
	position: absolute;
	margin-top: 0.3em;
}

#rule input[type="checkbox"]{
	display:inherit;
}

/*
.rule_list:checked + .dropdown{
	display: inline-block;
}
*/


/*以下２つChatGPTに聞いた部分*/
/* ①初期状態: 非表示 */
/*.dropdown {
	max-height: 0;
	opacity: 0;
	overflow: hidden;
	transition: opacity 1s ease, max-height 1s ease;
}*/

/* ②チェック時: 表示*/
/*.rule_list:checked + .dropdown {
	max-height: 1000px;
	opacity: 1;
    transition: opacity 0.2s ease, max-height 0.2s ease;
}*/


/* ↓　開くときはゆっくり、閉じるときは素早く、のアニメーション */


/* ①初期状態 */
.dropdown {
	max-height: 0; /* 高さを0にして非表示 */
	opacity: 0; /* 透明にする */
	overflow: hidden; /* コンテンツがはみ出ないようにする */
	transition: opacity 1s ease, max-height 1s ease; /* 開くときのアニメーション */
  }
  
  /* ②チェック時: 表示 */
  .rule_list:checked + .dropdown {
	max-height: 1000px; /* 十分大きい値を指定（内容に合わせて変動する） */
	opacity: 1; /* 透明度を元に戻す */
	transition: opacity 1s ease, max-height 1s ease; /* 開くときのアニメーション */
  }
  
  /* ③閉じる時のアニメーション: アニメーションのスピードを変更 */
  .rule_list:not(:checked) + .dropdown {
	max-height: 0; /* 高さを0に戻す */
	opacity: 0; /* 透明に戻す */
	transition: opacity 0.2s ease, max-height 0.2s ease; /* 閉じるときのアニメーションを速くする */
  }
  

/*　ホバーすると色が変わる
#rule li:hover, #rule label:hover{
	background:orange;
}
*/

/*　下向き矢印（ボタン枠内に安定して収めるのが難しそう）
#rule li::before, #rule label::before{
	content:"";
	display:block;
	position:absolute;
	right:5%;
	width:.5em;
	height:.5em;
	border-top:#000 2px solid;
	border-left:#000 2px solid;
	transform:rotate(135deg);
}
*/

/*　矢印の下向きにするため90°ローテートするCSS
#rule label[for="rule_list"]::before{
	transform:rotate(225deg);
}
*/

.for_contact {
	text-align: center;
	padding: 30px 0 50px;
	border-top: solid #aabbcc 1px;
	border-bottom: solid #aabbcc 1px;
}


.kakunin,
.contact-button {
	/*display: flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
	text-decoration: none;
	color: #ffffff;
	font-size: 16px;
	border-radius: 0px;
	width: 300px;
	height: 50px;
	position: relative;
	transition: 0.3s;
	background-color: #239696;
	margin: 1rem auto 0;*/


	justify-content: center;
	text-align: center;
	display: flex;       /* ボタンはインラインブロックで配置 */
    line-height: 50px;           /* 高さに合わせて中央寄せ */
    color: #ffffff;              /* 文字色 */
    font-size: 16px;             /* フォントサイズ */
    width: 300px;                /* ボタン幅 */
    height: 50px;                /* ボタン高さ */
    position: relative;          /* 相対位置 */
    transition: 0.3s;            /* ホバー時のエフェクト */
    background-color: #239696;   /* 背景色 */
    margin: 1rem auto 0;         /* 上下余白と中央寄せ */
    border: none;                /* 枠線を削除 */
    cursor: pointer;             /* クリック可能に */



}

.kakunin::before,
.kakunin::after,
.contact-button::before,
.contact-button::after {
	content: "";
	display: block;
	position: absolute;
	border: 1px solid #888888;
	width: 100%;
	height: 100%;
	transition: .3s;
}

.kakunin::before,
.contact-button::before {
	top: -5px;
	left: -5px;
}

.kakunin::after,
.contact-button::after {
	top: 3px;
	left: 3px;
}

.kakunin:hover::before,
.contact-button:hover::before {
	top: 0;
	left: 0;
}

/*ーーーーーーーーーーーーーーーー参加情報ページーーーーーーーーーーーーーーーー*/






/*ーーーーーーーーーーーーーーーーContactページーーーーーーーーーーーーーーーー*/








/*ーーーーーーーーーーーーーーーーContactページーーーーーーーーーーーーーーーー*/









/*ーーーーーーーーーーーーーーーー以下レスポンシブ！ーーーーーーーーーーーーーーーー*/



@media screen and (max-width: 640px) {

	header ul {
		display: flex;
		padding: 5px 0;
	}

	/* ーーーーーーートップページーーーーーーー */

	#mainvisual img {
		height: calc(100vh - 60px);
	}

	header nav ul li {
		font-size: 0.7em;
	}


	.about-flex {
		flex-direction: column;
		width: 100%;
		margin: 0 auto;
	}

	.about-flex p {
		font-size: 0.8rem;
		line-height: 1.7;
	}

	.about-text {
		padding: 30px 30px 60px;
	}

	.bicycle-flex {
		margin: 0 auto;
		justify-content: center;
	}

	#about {
		width: 90%;
	}

	.text-right {
		text-align: left;
		padding: 30px 30px 10px;
	}


	h3, p {
		font-size: 0.9rem;
		line-height: 1.6;
		margin-bottom: 5px;
	}

	.bicycle-flex li {
		width: 80%;
		margin-bottom: 30px;
	}

	/* ーーーーーーートップページーーーーーーー */



	/* ーーーーーーーメンバーページーーーーーーー */
	#member_mainvisual {
		padding-bottom: 30px;
	}

	#member_mainvisual img {
		width: 100%;
		max-width: 1920px;
		height: 750px;
		object-fit: cover;
	}

	h2 {
		font-size: 1.2rem;
	}

	.profile {
		flex-direction: column;
		font-size: 0.7rem;
	}

	.profile li {
		text-align: center;
		padding: 20px;
		width: 90%;
	}
	/* ーーーーーーーメンバーページーーーーーーー */



	/* ーーーーーーーNotesページーーーーーーー */

	#rule {
		max-width: 85%;
		margin: 0 auto 2rem;
	}

	#rule h2 {
		line-height: 1.7;
		margin: 0 auto 30px;
	}

	#rule small {
		font-size: 0.5em;
	}

	#rule label {
		display: flex;
		height: 40px;
		font-size: 0.7rem;
		line-height: 3;
	}


	.dropdown li {
		font-size: 0.7rem;
		padding: 3% 3% 3% 5%;
		line-height: 1.7;
	}

	.for_contact p {
		font-size: 0.6rem;
	}

	/* ーーーーーーーNotesページーーーーーーー */


/*ーーーーーーーーーーーーーーーーfooterーーーーーーーーーーーーーーーー*/
footer p {
	font-size: 0.5rem;
}
/*ーーーーーーーーーーーーーーーーfooterーーーーーーーーーーーーーーーー*/
}

















