@charset "UTF-8";
/* CSS Document */
@import url('https://fonts.googleapis.com/css2?family=Castoro:ital@0;1&family=Noto+Sans+JP:wght@100..900&family=Noto+Serif+JP:wght@200..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Castoro:ital@0;1&family=Lato:ital,wght@0,100;0,300;0,400;0,700;0,900;1,100;1,300;1,400;1,700;1,900&family=Noto+Sans+JP:wght@100..900&family=Noto+Serif+JP:wght@200..900&display=swap');

html{
	margin: 0;
	padding: 0;
	font-size: 10px;
}
h3{
	margin: 0;
	padding: 0;
}
p{
	margin: 0;
	padding: 0;
	color: #120702;
}
img{
	width: 100%;
}
a{
	text-decoration: none;
	color: #120702;
	transition: 0.3;
}
a:hover{
	opacity: 0.8;
}

body {
	margin: 0;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1rem;
	line-height: 1;
	overflow-x: hidden;
	color: #120702;
	position: relative;
}
body::before {
  	content: "";
  	position: fixed;       /* 常に画面に固定 */
  	top: 0;
  	left: 0;
  	width: 100%;
  	height: 100%;
  	background: url("../img/bg.png") no-repeat center top;
  	background-size: cover;
  	z-index: -1;           /* コンテンツの背面に */
}
.en{
	font-family: "Lato", sans-serif;
}

/*ヘッダー*/
header{
	position: fixed;
	width: 100%;
	display: flex;
	justify-content: space-between;
	align-items: center;
	top: 20px;
	z-index: 1002; /* main より上に表示 */
}
.logo{
	position: relative;
	left: 20px;
	max-width: 335px;
}
/* メニューボタン */
.menu-btn {
	position: relative;
	background: #120702;
	right: 20px;
	color: white;
	border: none;
	border-radius: 20px;
	padding: 12px 30px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	cursor: pointer;
	z-index: 1002; /* 最前面 */
	transition: background 0.3s;
}
.menu-btn:hover {
	background: #120702;
}
.menu-btn p{
	font-size: 1.4rem;
	margin: 0;
	color: #fff;
}

/* ハンバーガーアイコン */
.menu-icon {
	position: relative;
	width: 20px;
	height: 14px; /* 高さを3本分＋隙間に調整 */
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	align-items: center; /* ←これがズレ防止の肝 */
}
.menu-icon span {
	display: block;
	width: 100%;
	height: 2px;
	background: white;
	border-radius: 2px;
	transition: all 0.3s;
}

/* × 状態 */
.menu-btn.active .menu-icon span:nth-child(1) {
	transform: translateY(6px) rotate(45deg);
}
.menu-btn.active .menu-icon span:nth-child(2) {
	opacity: 0;
}
.menu-btn.active .menu-icon span:nth-child(3) {
	transform: translateY(-6px) rotate(-45deg);
}

/* 拡大する黒背景 */
.menu-bg {
	position: fixed;
	top: 20px;
	right: 20px;
	width: 91px;
	height: 35px;
	background: #120702;
	border-radius: 50px;
	transform-origin: center;
	transform: scale(0);
	transition: transform 0.6s ease-out, border-radius 0.6s ease-out;
	z-index: 1000;
}
.menu-bg.active {
	transform: scale(100);
	border-radius: 10px;
}

/* メニュー内容 */
.menu-content {
	position: fixed;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	color: white;
	z-index: 1001;
	pointer-events: none;
	transition: opacity 0.5s ease;
	gap:136px;
}
.menu-content.active {
	opacity: 1;
	pointer-events: auto;
}
.menu-content a {
	color: white;
	text-decoration: none;
	margin: 10px 0px 50px;
	font-size: 4.3rem;
	font-weight: bold;
	line-height: 1;
	text-align:left;
	display: block;
}
.menu-content a:last-child{
	margin-bottom: 0px;
}
.menu-content a p{
	letter-spacing: 4px;
	color: #fff;
}
.menu-content a span{
	font-size: 1.4rem;
	font-weight: bold;
	letter-spacing: 2px;
}
.menu-content::after{
	content: "";
	width: 198px;
	height: 208px;
	background: url("../img/menu_icon.png");
	background-size: 100%;
	position: absolute;
	bottom: 60px;
	right: 60px;
}

/*footer*/
.footer{
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	margin-bottom: 60px;
	padding-top: 124px;
}
.footer .f_logo{
	max-width: 409px;
}
.footer .f_logo .add{
	margin: 37px 0px 0px;
}
.footer .f_logo .add p.add_ttl{
	font-size: 1.6rem;
	line-height: 2.8rem;
	font-weight: bold;
	margin-bottom: 11px;
	letter-spacing: 2px;
}
.footer .f_logo .add .add_txt{
	margin-bottom: 28px;
}
.footer .f_logo .add .add_txt p{
	font-size: 1.2rem;
	line-height: 2.8rem;
	letter-spacing: 2px;
}
.footer .f_logo .add .add_txt:last-child{
	margin-bottom: 0px;
}
.footer .f_menu .menu_cnt{
	display: flex;
	flex-wrap: wrap;
	gap:20px;
	margin-bottom: 30px;
}
.footer .f_menu .menu_cnt:last-child{
	margin-bottom: 0px;
}
.footer .f_menu p{
	font-size: 1.6rem;
	font-weight: bold;
	letter-spacing: 2px;
	border: solid 1px #707070;
	background: #fff;
	border-radius: 50px;
	padding: 10px 16px;
}
.copyright{
	text-align: right;
	font-size: 1.2rem;
	font-weight: bold;
	letter-spacing: 2px;
	padding-bottom: 21px;
}

/*main_vi*/
.main{
	background: url("../img/main_vi_dami.png") no-repeat;
	background-size: cover;
	width: 100%;
	height: 100vh;      /* 画面いっぱい */
	position: relative;       /* オーバーレイや z-index を使う場合用 */
}

/*contents*/
#contents,#contents2{
  	width: 100%;
  	height: 100%;
	background: url(../img/cnt_bg.png) center top;
    background-size: 100%;
}
section#cnt{
	padding-left: 4.2vw;
	padding-right: 4.2vw;
}
section.contents{
	padding-left: 4.2vw;
	padding-right: 4.2vw;
	position: relative;
}
section.contents2{
	position: relative;
}
section h3{
	font-size: 3.8rem;
	font-weight: bold;
	text-align: center;
	letter-spacing: 4px;
	position: relative;
	display: inline-block;
	margin: 0 auto 38px;
}
section h3::before{
	content: "";
	width: 12px;
	height: 12px;
	background: url("../img/dot.png");
	background-size: 100%;
	position: absolute;
	top: -10px;
	left: -10px;
}

/*cnt1*/
section.contents1{
	padding-top: 190px;
	padding-bottom: 95px;
}
section.contents1::before{
	content: "";
	width: 1012px;
	height: 388px;
	background: url("../img/character1.png");
	background-size: 100%;
	background-repeat: no-repeat;
	position: absolute;
	top: 0%;
	left: 50%;
	transform: translate(-50%,0);
}
section .cnt1{
	background: #fff;
	padding: 61px 4.7vw;
	text-align: center;
	border-radius: 20px;
	position: relative;
	z-index: 2;
}
section .cnt1 p{
	font-size: 2.2rem;
	margin-bottom: 32px;
	font-weight: bold;
}
section .cnt1 p:nth-child(2){
	margin-bottom: 16px;
	line-height: 1.8;
}
section .cnt1 p:last-child{
	margin-bottom: 0px;
}
section .cnt1 p span{
	font-size: 2.6rem;
}
section .cnt1 p span.pic{
	font-size: 2.2rem;
	color: #fff;
	background: linear-gradient(to bottom, #E95B1C, #ECA91D);
	border-radius: 50px;
	padding: 10px 20px;
}

/*cnt2*/
section#vision{
	position: relative;
}
section .cnt2{
	text-align: center;
	padding-bottom: 86px;
}
section .cnt2 .img{
	max-width: 744px;
	margin: 0 auto;
}
section#vision .left::before{
	content: "";
	width: 10.31vw;
	height: 9.14vw;
	background: url("../img/decoration7.svg");
	background-size: 100%;
	position: absolute;
	top: 0;
	left: 10vw;
}
section#vision .left::after{
	content: "";
	width: 10.31vw;
	height: 9.14vw;
	background: url("../img/decoration3.svg");
	background-size: 100%;
	position: absolute;
	bottom: 5vw;
    left: 2vw;
}
section#vision .right::before{
	content: "";
	width: 82px;
	height: 82px;
	background: url("../img/decoration1.svg");
	background-size: 100%;
	position: absolute;
	width: 6.40625vw;
    height: 6.40625vw;
	top: -2vw;
    right: 5vw;
}
section#vision .right::after{
	content: "";
	width: 9.22vw;
	height: 9.92vw;
	background: url("../img/decoration6.svg");
	background-size: 100%;
	position: absolute;
	bottom: -5vw;
    right: 16vw;
    z-index: 2;
}

/*cnt3*/
section .cnt3{
	padding-bottom: 21px;
}
section .cnt3 .ttl{
	max-width: 388px;
	margin: 0 auto 18px;
}
section .cnt3 .column{
	display: flex;
	flex-wrap: wrap;
	gap:32px;
}
section .cnt3 .column .col{
	width: calc(100%/3 - 84px);
	background: #fff;
	padding: 31px;
	text-align: center;
	border-radius: 10px;
}
section .cnt3 .column .col p.copy{
	font-size: 2.6rem;
	line-height: 1;
	margin-bottom: 27px; 
	border-radius: 50px;
	padding: 28px 68px;
	display: inline-block;
	background-color: #FDFBFA; /* 基本の色は白 */
	/* 内側に色を付ける */
  	box-shadow: inset 0 0 15px 5px #FCE0D0;
}
section .cnt3 .column .col p{
	font-size: 1.6rem;
	font-weight: bold;
	line-height: 1.8;
}
section .cnt3 .arrow{
	max-width: 772px;
	margin: 0 auto;
}

/*cnt4*/
section#cnt4{
	position: relative;
	padding-bottom: 34px;
	overflow: hidden;
}
section .cnt4 .ttl{
	max-width: 928px;
	position: absolute;
	top: 0;
	left: 0;
	/*transform: translate(10%,0%);*/
}
section .cnt4 .img::before{
	content: "";
	width: 132px;
	height: 132px;
	background: url("../img/decoration6.svg");
	background-size: 100%;
	position: absolute;
	bottom: 0;
	left: 50%;
/*	transform: translate(-10%, 14%);*/
	bottom: -3%;
	left: 49%;
}


/*cnt5*/
section#cnt5{
	padding-bottom: 80px;
}
section .cnt5{
	background: #fff;
	padding: 64px 4.7vw;
	border-radius: 20px;
}
section .cnt5 .ttl{
	max-width: 519px;
	margin: 0 auto 50px;
}
section .cnt5 .column{
	display: flex;
	flex-wrap: wrap;
	gap:30px;
}
section .cnt5 .column .col{
	width: calc(100%/3 - 90px);
	background: #EDF1F5;
	padding: 33px;
	text-align: center;
	border-radius: 10px;
	box-shadow: inset 0 0 15px 2px #D0DDEA;
}
section .cnt5 .column .col .col_img{
	max-width: 100px;
	margin: 0 auto 22px;
}
section .cnt5 .column .col .col_txt p.copy{
	font-size: 2rem;
	font-weight: bold;
	line-height: 1;
	background: #fff;
	padding: 15px 27px;
	box-shadow: inset 0 0 10px 1px #A7C1D8;
	display: inline-block;
	margin: 0 auto 15px;
	border-radius: 50px;
	letter-spacing: 2px;
}
section .cnt5 .column .col .col_txt p{
	font-size: 1.6rem;
	line-height: 1.8;
	font-weight: bold;
}

/*cnt7*/
section#cnt7{
	height: 600px;
	position: relative;
}
section#cnt7::before{
	content: "";
	width: 6.33vw;
	height: 6.33vw;
	background: url("../img/decoration1.svg");
	background-size: 100%;
	position: absolute;
	top: -3vw;
    right: 4vw;
}
section#cnt7::after{
	content: "";
	width: 11.09vw;
	height: 9.30vw;
	background: url("../img/decoration3.svg");
	background-size: 100%;
	position: absolute;
	bottom: -2vw;
    left: 3vw;
/*	transform: rotate(60deg);*/
	rotate: 60deg;
	z-index: 2;
}

/*cnt8*/
section .cnt8{
	padding-top: 136px;
	padding-bottom: 92px;
	position: relative;
}
section .cnt8::before{
	content: "";
	width: 8.09vw;
    height: 7.64vw;
	background: url("../img/decoration4.svg");
	background-size: 100%;
	position: absolute;
	top:1vw;
	left: 50vw;
}
section .cnt8 .ttl{
	margin-bottom: 50px;
	position: relative;
}
section .cnt8 .ttl span{
	font-size: 1.2rem;
	margin-top: 5px;
}
section .cnt8 > .ttl::after{
	content: "";
	width: 12.97vw;
	height: 12.97vw;
	background: url("../img/decoration2.svg");
	background-size: 100%;
	position:absolute;
	top: -7vw;
    right: 10vw;
	z-index: 2;
}
section .cnt8 .ttl h3{
	margin-bottom: 0px;
}
section .cnt8 .column{
	display: flex;
	flex-wrap: wrap;
	gap:32px;
}
section .cnt8 .column .col{
	width: calc(100%/3 - 22px);
	background: #fff;
	overflow: hidden;
	position: relative;
}
section .cnt8 .column .col .col_img{
	overflow: hidden;
	position: relative; /* ← これが必要！ */
}
section .cnt8 .column .col .col_img::before{
	content: "";
    position: absolute;
    inset: 0;
    border: 1px solid rgb(55, 120, 181);
    pointer-events: none;
    box-sizing: border-box;
	z-index: 2; /* ← 画像より上に置く */
}
section .cnt8 .column .col .col_img img{
	transform: scale(1);
	transition: 0.3s ease;
	z-index: 1;
    position: relative; /* ← 必要に応じて */
}
section .cnt8 .column a.col:hover .col_img img{
	transform: scale(1.2);
}
section .cnt8 .column .col .col_txt{
	padding: 20px 30px;
}
section .cnt8 .column .col .col_txt p{
	font-size: 1.6rem;
	line-height: 1.6;
	font-weight: bold;
}
section .cnt8 .column .col .col_txt p.day{
	font-size: 1.2rem;
	font-weight: normal;
	color: #969696;
	margin-bottom: 12px;
}
section .cnt8 .column .col .link{
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	background: linear-gradient(to right, #3676B9, #519F6E);
	padding: 10px 0px;
}
section .cnt8 .column .col .link p{
	padding-left: 30px;
	color: #fff;
	font-size: 1.2rem;
	line-height: 1;
	position: relative;
	padding: 5px 0px 5px 30px;
}
section .cnt8 .column .col .link p::after{
	content: "";
	width: 1px;
	height: 90%;
	background: #fff;
	position: absolute;
	top: 50%;
	right: 0;
	transform: translate(-40px,-50%);
}
section .cnt8 .column .col .link .arrow{
	position: absolute;
	bottom: 50%;
	right: 0;
	transform: translate(-12px,50%);
	width: 16px;
	height: 16px;
	overflow: hidden;
}
section .cnt8 .column .col .link .arrow img {
  position: absolute;
  top: 0;
  left: 0;
  transition: transform 0.3s ease, opacity 0.3s ease;
}
/* 左に消える矢印初期状態 */
section .cnt8 .column .col .link .arrow-left {
  transform: translateX(0);
  opacity: 1;
}
/* 右から出てくる矢印初期状態は右外 */
section .cnt8 .column .col .link .arrow-right {
  transform: translateX(-100%);
  opacity: 0;
}
/* hover時 */
section .cnt8 .column a.col.news_cnt:hover .arrow-left {
  transform: translateX(200%);
  opacity: 0;
}
section .cnt8 .column a.col.news_cnt:hover .arrow-right {
  transform: translateX(0);
  opacity: 1;
}

/*Message*/
section .cnt9 {
	padding: 52px 4.7vw;
	color: #fff;
	text-align: center;
	background: linear-gradient(-180deg, #4C977C 0%, #397AB0 100%); /* 修正 */
	border-radius: 30px;
	margin-bottom: 90px;
	position: relative; /* box-shadow用の擬似要素に必要 */
}
section .cnt9::before{
	content: "";
    width: 0px;
    height: 0;
    border-style: solid;
    border-right: 0px solid transparent;
    border-left: 35px solid transparent;
    border-top: 30px solid #70CAEC;
    border-bottom: 0;
    position: absolute;
    bottom: 0;
    right: 0;
    transform: translate(-280px, 50px);
}
.cnt9-shadow {
  	position: absolute;
    top: 21px;
    left: 6%;
    width: 91.3%;
    height: 100%;
    background: linear-gradient(-180deg, #EDD048 0%, #70CAEC 100%);
    border-radius: 30px;
    z-index: 0;
}
section .cnt9 .copy p{
	color: #fff;
	font-size: 1.8rem;
	line-height: 4rem;
	font-weight: bold;
	text-align: left;
	margin-bottom: 50px;
}
section .cnt9 .copy p:last-child{
	margin-bottom: 0px;
}

/*member*/
section#member{
	margin-bottom: 128px;
}
section .cnt10 .member_cnt{
	margin-bottom: 50px;
}
section .cnt10 .member_cnt p{
	font-size: 1.6rem;
	line-height: 3.6rem;
	font-weight: bold;
	padding-bottom: 16px;
	position: relative;
	margin-bottom: 20px;
}
section .cnt10 .member_cnt p::before{
	content: "";
	width: 36px;
	height: 2px;
	background: #120702;
	position: absolute;
	bottom: 0;
	left: 0;
}
section .cnt10 .member_cnt .slide{
	position: relative;
}
section .cnt10 .member_cnt .slide .prev{
	position: absolute;
	top: 50%;
	left: 0;
	transform: translate(-30px,-50%);
	width: 50px;
	cursor: pointer;
}
section .cnt10 .member_cnt .slide .next{
	position: absolute;
	top: 50%;
	right: 0;
	transform: translate(30px,-50%) rotate(180deg);
	width: 50px;
	cursor: pointer;
}
section .cnt10 .member_cnt .bnr{
	display: flex;
	overflow-x: hidden;
}
section .cnt10 .member_cnt .bnr .bnr_cnt{
	flex: 0 0 calc(25% - 7.5px); /* 1行に4つ表示、gapを考慮 */
	margin-right: 10px;
}
section .cnt10 .member_cnt .bnr .bnr_cnt:last-child{
	margin-right: 0px;
}
section .cnt10 .member_cnt .bnr .bnr_cnt a{
	display: block;
	margin-bottom: 10px;
}
section .cnt10 .member_cnt .bnr .bnr_cnt a:last-child{
	margin-bottom: 0px;
}
section .cnt10 .member_cnt .bnr2 .bnr_cnt{
	flex: 0 0 calc((100% - 40px) / 5);
	margin-right: 10px;
}
section .cnt10 .member_cnt .bnr3{
	display: flex;
    flex-wrap: wrap;
    gap: 10px;
    width: 100%; /* ← これが超重要（子を幅いっぱいにする） */
}
section .cnt10 .member_cnt .bnr3 a{
	width: calc((100% - 40px) / 5); /* gap10px × 4 */;
}
/*joinus*/
section#joinus{
	margin-bottom: 120px;
}
section .cnt11 .ttl_column{
	display: flex;
	align-items: center;
	gap:20px;
	margin-bottom: 31px;
}
section .cnt11 .ttl_column .ttl_col{
	display: flex;
	align-items: center;
	gap:20px;
}
section .cnt11 .ttl_column h3{
	margin: 0;
}
section .cnt11 .ttl_column p.icon{
	color: #fff;
	font-size: 1.8rem;
	font-weight: bold;
	line-height: 2.8rem;
	letter-spacing: 0.8;
	background: linear-gradient(to bottom, #E95B1C, #ECA91D);
    border-radius: 50px;
    padding: 5px 20px;
	margin-left: 0px;
}
section .cnt11 .ttl_column p{
	font-size: 1.6rem;
	line-height: 3.6rem;
	font-weight: bold;
	margin-left: 37px;
}
section .cnt11 .cnt11_cnt{
	margin-bottom: 20px;
}
section .cnt11 .cnt11_cnt:last-child{
	margin-bottom: 0px;
}
section .cnt11 .cnt11_cnt .column{
	display: flex;
	gap:40px;
	align-items: flex-start;
	padding: 40px;
	background: #fff;
	border-radius: 30px;
}
section .cnt11 .cnt11_cnt .column .col img{
	width: 67px;
}
section .cnt11 .cnt11_cnt .column .col_txt p:first-child{
	font-size: 1.8rem;
	line-height: 3.6rem;
	font-weight: bold;
	margin-bottom: 20px;
}
section .cnt11 .cnt11_cnt .column .col_txt p{
	font-size: 1.6rem;
	line-height: 2.8rem;
}
section .cnt11 .cnt11_cnt .column .col_txt .link{
	margin: 20px 0px 0px;
}
section .cnt11 .cnt11_cnt .column .col_txt .link a{
	display: block;
	position: relative;
}
section .cnt11 .cnt11_cnt .column .col_txt .link a.pdf{
	font-size: 1.6rem;
	letter-spacing: 0.3;
	font-weight: bold;
	color: #F87B26;
	padding: 16px 50px;
	border:solid 1px #F87B26;
	margin-bottom: 10px;
	width: 250px;
}
section .cnt11 .cnt11_cnt .column .col_txt .link a.pdf:last-child{
	margin-bottom: 0px;
}
section .cnt11 .cnt11_cnt .column .col_txt .link a.pdf::before{
	content: "";
	width: 20px;
	height: 24px;
	background: url("../img/pdf_icon.png");
	background-size: 100%;
	position: absolute;
	top: 50%;
	left: 0;
	transform: translate(20px,-50%);
}
section .cnt11 .cnt11_cnt .column .col_txt .link a.excel::before{
	content: "";
	width: 20px;
	height: 24px;
	background: url("../img/excel_icon.png");
	background-size: 100%;
	position: absolute;
	top: 50%;
	left: 0;
	transform: translate(20px,-50%);
}
section .cnt11 .cnt11_cnt .column .col_txt .link a.pdf::after{
	content: "";
	width: 24px;
	height: 24px;
	background: url("../img/link_arrow.png");
	background-size: 100%;
	position: absolute;
	top: 50%;
	right: 0;
	transform: translate(-20px,-50%);
}
section .cnt11 .cnt11_cnt .column .col_txt .link a.meil{
	padding-left: 30px;
}
section .cnt11 .cnt11_cnt .column .col_txt .link a.meil span{
	text-decoration: underline;
	font-size: 1.6rem;
	line-height: 3.6rem;
	letter-spacing: 0.3;
}
section .cnt11 .cnt11_cnt .column .col_txt .link a.meil::before{
	content: "";
	width: 22px;
	height: 17px;
	background: url("../img/mail_icon.png");
	background-size: 100%;
	position: absolute;
	top: 50%;
	left: 0;
	transform: translate(0,-40%);
}

/*menbership*/
section#menbership{
	margin-bottom: 120px;
}
section .cnt12 .ttl_column{
	display: flex;
	align-items: center;
	gap:20px;
	margin-bottom: 50px;
}
section .cnt12 .ttl_column h3{
	margin: 0;
}
section .cnt12 .ttl_column p.icon{
	color: #fff;
	font-size: 1.8rem;
	font-weight: bold;
	line-height: 2.8rem;
	letter-spacing: 0.8;
	background: linear-gradient(to bottom, #E95B1C, #ECA91D);
    border-radius: 50px;
    padding: 2px 20px;
	margin-left: 0px;
}

/*contact*/
section#contact{
	position: relative;
}
section#contact::after{
	content: "";
    width: 8.25vw;
    height: 13.86vw;
    background: url(../img/decoration5.svg);
    background-size: 100%;
    position: absolute;
    bottom: -12vw;
    left: 72vw;
    z-index: 2;
}
section .form{
	background: #fff;
	padding: 67px 80px;
	border-radius: 30px;
	margin-bottom: 186px;
}
section .form .input{
	margin-bottom: 34px;
}
section .form .input .input_ttl{
	display: flex;
	gap:8px;
	align-items: center;
	margin-bottom: 10px;
}
section .form .input .input_ttl p{
	display: inline-block;
	font-size: 1.6rem;
	font-weight: bold;
	line-height: 3.6rem;
	padding-left: 15px;
	position: relative;
}
section .form .input .input_ttl p::before{
	content: "";
	width: 8px;
	height: 8px;
	background: url(../img/dot.png);
    background-size: 100%;
    position: absolute;
	top: 50%;
	left: 0;
	transform: translate(0,-50%);
}
section .form .input .input_ttl p.required,section .form .input .input_ttl p.any{
	font-size: 1.2rem;
	line-height: 1;
	font-weight: normal;
	border: solid 1px #FF0000;
	border-radius: 50px;
	color: #FF0000;
	text-align: center;
	padding-left: 0px;
	width: 40px;
    height: 20px;
	display: flex;
	justify-content: center;
	align-items: center;
}
section .form .input .input_ttl p.required::before,section .form .input .input_ttl p.any::before{
	display: none;
}
section .form .input .input_ttl p.any{
	border: solid 1px #969696;
	background: #969696;
	color: #fff;
}
section .form .input input{
	width: 650px;
	padding: 20px;
	border-radius: 10px;
	background: #F5F5F5;
	border: solid 1px #CCCCCC;
	font-size: 1.6rem;
	line-height: 3.6rem;
}
section .form .input textarea{
	width: 650px;
	padding: 20px;
	border-radius: 10px;
	background: #F5F5F5;
	border: solid 1px #CCCCCC;
	font-size: 1.6rem;
	line-height: 3.6rem;
}
section .form p.error,section .form p.error2{
	font-size: 1.6rem;
	color: #ff0000;
	margin: 10px 0px 0px;
	display: none;
}
section .form .policy{
	margin-bottom: 30px;
}
section .form .policy p.policy_ttl{
	font-size: 1.6rem;
	line-height: 3.6rem;
	color: #fff;
	background: #969696;
	padding: 7px 17px;
}
section .form .policy .policy_txt{
	overflow-y: scroll;
	height: 300px;
	padding: 20px 30px;
	font-size: 1.4rem;
	line-height: 2.6rem;
	border: solid 1px #969696;
}
section .form .policy .policy_txt .txt_cnt{
	margin-bottom: 28px;
}
section .form .policy .policy_txt .txt_cnt p.ttl{
	font-size: 1.6rem;
	line-height: 2.6rem;
	font-weight: bold;
	margin-bottom: 8px;
}
section .form .policy .policy_txt .txt_cnt p.ttl.nofb{
	font-weight: normal;
}
section .form .policy .policy_txt .txt_cnt:last-child{
	margin-bottom: 0px;
}
section .form .policy_btn{
	text-align: center;
	font-size: 1.4rem;
	line-height: 2.6rem;
	margin-bottom: 40px;
}
section .form .policy_btn > p{
	margin-bottom: 18px;
}
section .form .policy_btn label{
	font-size: 1.6rem;
	line-height: 2.6rem;
	display: flex;
    align-items: center;
    justify-content: center;
}
section .form .policy_btn label input[type="checkbox"] {
	width: 28px;
	height: 28px;
}
section .form .note{
	margin-bottom: 40px;
}
section .form .note p{
	font-size: 1.4rem;
	line-height: 2.6rem;
	text-align: center;
}
section .form button{
	width: 198px;
	margin: 0 auto 20px;
	background: #B7B7B7;
	color: #fff;
	font-size: 1.8rem;
	line-height: 3rem;
	font-weight: bold;
	text-align: center;
	display: block;
    border: none;
    border-radius: 50px;
    padding: 15px 0px;
	cursor: pointer;
}
section .form button:hover{
	opacity: 0.8;
}
section .form button.active{
	background: #F87B26;
	color: #fff;
}
section .form p.reset_btn{
	font-size: 1.4rem;
	line-height: 3rem;
	text-align: center;
	border: solid 1px #120702;
	border-radius: 50px;
	padding: 11px;
	width: 140px;
	margin: 0 auto;
	cursor: pointer;
}
section .form p.reset_btn:hover{
	opacity: 0.8;
}
section .form .success-message{
	font-size: 1.6rem;
	text-align: center;
	color: #F87B26;
	font-weight: bold;
}

.topup{
	position: fixed;
	bottom: 0;
	right: 0;
	max-width: 68px;
	z-index: 99;
	transform: translate(-40%, -10px);
}

/*アニメーション*/
.fadein-target {
	opacity: 0;
	transform: translateY(40px);
	transition: opacity 1s ease, transform 1s ease;
	transition-delay: 0.3s; /* ← 0.3秒遅れて開始 */
}
.fadein-target.show {
	opacity: 1;
	transform: translateY(0);
}
.slidein-left {
	opacity: 0;
	transform: translateX(-40px);
	transition: opacity 0.8s ease, transform 0.8s ease;
}
.fadein-target {
	opacity: 0;
	transform: translateY(40px);
	transition: opacity 0.8s ease, transform 0.8s ease;
}
.show {
	opacity: 1;
	transform: translate(0, 0);
}
.slidein-left.show{
	opacity: 1;
	transform: translate(10%, 0);
}

/*thanksページ*/
#thank{
	padding-top: 211px;
}
#thank .cnt{
	background: #fff;
	padding: 92px 0px;
	text-align: center;
	margin-bottom: 37px;
	border-radius: 30px;
}
#thank .cnt img{
	max-width: 294px;
	margin: 0 auto;
}
.back_btn {
    text-align: center;
}
.back_btn a{
    width: 198px;
    background: #fff;
    border-radius: 50px;
    margin: 40px auto 0px;
    text-align: center;
    display: inline-block;
    font-size: 1.6rem;
    font-weight: bold;
    padding: 20px 0px;
}
.back_btn a p {
    padding-left: 20px;
    position: relative;
}
.back_btn a p::before {
    content: "";
    width: 16px;
    height: 8px;
    background: url("../img/news/arrow_back.svg");
    background-size: 100%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-220%, -50%);
    transition: 0.3s;
}
.back_btn a:hover p::before {
    transform: translate(-250%, -50%);
}
/*1280px*/
@media screen and (max-width: 1024px) {
	section#vision .left::before{
		top: 6vw;
    	left: 4vw;
	}
	section#vision .left::after{
		bottom: 13vw;
	}
	section#vision .right::after{
		bottom: 0vw;
    	right: 3vw;
	}
	section .cnt4 .ttl{
		max-width: 638px;
	}
	section .cnt8::before{
		width: 11.09vw;
    	height: 10.54vw;
	}
	
	section .form{
		padding: 22px 17px 30px;
	}
	section .form .input input,section .form .input textarea{
		width: calc(100% - 34px);
	}
	
	.footer{
		display: block;
	}
	.footer .f_menu{
		margin-top: 45px;
	}
}
@media screen and (max-width: 820px) {
	section.contents1::before{
		width: 750px;
		transform: translate(-50%, 12%);
	}
	section#vision .left::after {
		bottom: 0vw;
	}
	section .cnt3 .column .col{
		width: 100%;
	}
	section .cnt4 .ttl{
		max-width: 528px;
	}
	section .cnt5 .column .col{
		width: 100%;
	}
	section .cnt8 .column .col{
		width: calc(100% / 2 - 16px);
	}
}

.pc{
	display: block;
}
.sp{
	display: none;
}
@media screen and (max-width: 768px) {
	.pc{
		display:none;
	}
	.sp{
		display: block;
	}
	body::before{
		background: url(../img/bg_sp.png) no-repeat center top;
    	background-size: cover;
	}
	section h3{
		padding-left: 16px;
	}
	section h3::before{
		left: 0;
	}
	.logo{
		max-width: 228px;
	}
	.menu-btn{
		padding: 15px 20px;
        border-radius: 50px;
	}
	.menu-content{
		align-items: flex-start;
		justify-content: flex-start;
		padding-top: 140px;
		padding-left: 47px;
	}
	.menu-content a{
		text-align: left;
		font-size: 3.2rem;
	}
	.menu-content a span{
		font-size: 1.2rem;
	}
	.menu-content::after{
		background: url(../img/menu_icon_sp.png);
    	background-size: 100%;
		width: 160px;
        height: 104px;
		bottom: 0;
	    right: 20px;
	}
	
	.main{
		background: url(../img/main_vi_dami_sp.png) no-repeat;
		background-size: cover;
		width: 100%;
		height: 100vh;
		position: relative;
	}
	/*contents*/
	#contents,#contents2{
		width: 100%;
		height: 100%;
		background: url(../img/cnt_bg_sp.png) center top;
		background-size: 100%;
	}
	section h3{
		font-size: 3.2rem;
		letter-spacing: 2px;
	}
	section.contents1{
		padding-top: 90px;
		padding-bottom: 76px;
	}
	section.contents1::before {
        width: 95%;
		height: 148px;
        transform: translate(-50%, 0%);
    }
	section .cnt1{
		padding: 18px 16px;
	}
	section .cnt1 p{
		font-size: 1.8rem;
		line-height: 2.4;
		margin-bottom: 0px;
	}
	section .cnt1 p span{
		font-size: 2.2rem;
	}
	section .cnt1 p span.pic{
		font-size: 1.7rem;
	}
	section .cnt1 p:nth-child(2){
		line-height: 2.4;
		margin-bottom: 0px;
	}
	section#vision.contents{
		padding: 0px;
	}
	section .cnt2{
		padding-bottom: 76px;
	}
	section#vision.contents h3{
		margin-bottom: 19px;
	}
	section#vision .left::before{
		width: 20.31vw;
    	height: 19.14vw;
		top: auto;
		bottom: 8vw;
        left: 13vw;
	}
	section#vision .left::after,section#vision .right::before,section#vision .right::after{
		display: none;
	}
	section#cnt3{
		position: relative;
	}
	section .cnt3 .ttl{
		max-width: 280px;
		margin-bottom: 12px;
	}
	section .cnt3 .ttl img{
		position: relative;
		z-index: 3;
	}
	section .cnt3 .column .col p.copy{
		font-size: 1.8rem;
		padding: 24px 58px;
		margin-bottom: 18px;
	}
	section .cnt3 .column .col p{
		font-size: 1.4rem;
	}
	section .cnt3 .ttl::before{
		content: "";
        width: 16vw;
        height: 14vw;
        background: url(../img/decoration3.svg);
        background-size: 100%;
        position: absolute;
		top: 9vw;
        left: 5vw;
/*        transform: rotate(235deg);*/
		rotate: 235deg;
	}
	section .cnt3 .ttl::after{
		content: "";
		width: 8vw;
        height: 8vw;
        background: url(../img/decoration1.svg);
        background-size: 100%;
        position: absolute;
        top: -5vw;
        right: 13vw
	}
	section#cnt4{
		padding-bottom: 72px;
	}
	section .cnt4 .img{
		padding-top: 140px;
	}
	section .cnt4 .ttl{
		max-width: 362px;
		transform: translate(6%,20%);
	}
	section .cnt4 .img::before{
		content: "";
		width: 20.31vw;
        height: 28.31vw;
        background: url(../img/decoration8.svg);
        background-size: 100%;
        position: absolute;
        bottom: -17vw;
        left: 45vw;
	}
	section#cnt5{
		padding-bottom: 60px;
	}
	section .cnt5{
		padding: 40px 4.7vw;
	}
	section .cnt5 .ttl{
		margin-bottom: 30px;
	}
	section .cnt5 .column .col{
		padding: 30px;
	}
	section .cnt5 .column .col .col_img{
		max-width: 76px;
		margin-bottom: 20px;
	}
	section .cnt5 .column .col .col_txt p.copy{
		font-size: 1.8rem;
		letter-spacing: 0px;
	}
	section .cnt5 .column .col .col_txt p{
		font-size: 1.4rem;
	}
	section#cnt7{
		height: 580px;
	}
	section#cnt7::before {
		content: "";
		width: 16.33vw;
		height: 16.33vw;
		background: url(../img/decoration1.svg);
		background-size: 100%;
		position: absolute;
		top: -3vw;
		right: 9vw;
	}
	section#cnt7::after {
		content: "";
		width: 24.09vw;
		height: 22.3vw;
		background: url(../img/decoration3.svg);
		background-size: 100%;
		position: absolute;
		bottom: -5vw;
		left: 10vw;
/*		transform: rotate(71deg);*/
		rotate: 71deg;
		z-index: 2;
	}
	section .cnt8{
		padding-bottom: 45px;
	}
	section .cnt8 > .ttl{
		margin-bottom: 20px;
	}
	section .cnt8 .column{
		gap:9px;
	}
	section .cnt8 .column .col {
        width: calc(100% / 2 - 5px);
		margin-bottom: 22px;
    }
	section .cnt8 .column .col .col_txt{
		padding: 10px;
	}
	section .cnt8 .column .col .col_txt p.day{
		font-size: 1rem;
	}
	section .cnt8 .column .col .col_txt p{
		font-size: 1.2rem;
		padding-left: 0px;
	}
	section .cnt8 .column .col .link p{
		font-size: 1rem;
		padding-left: 10px;
	}
	section .cnt8::before {
        width: 25.09vw;
        height: 23.54vw;
		top: -3vw;
    	left: auto;
    	right: 1vw;
    }
	section .cnt8::after{
		width: 26.25vw;
    	height: 44.86vw;
    	bottom: -23vw;
    	left: 62vw;
	}
	section .cnt8 > .ttl::after{
		display: none;
	}
	section .form{
		margin-bottom: 130px;
	}
	section#contact::after{
		content: "";
		width: 26.25vw;
		height: 44.86vw;
		background: url(../img/decoration5.svg);
		background-size: 100%;
		position: absolute;
		bottom: -47vw;
		left: 62vw;
		z-index: 2;
	}
	.footer{
		display: block;
		margin-bottom: 57px;
	}
	.footer .f_logo{
		max-width: 100%;
		margin-bottom: 38px;
	}
	.footer .f_logo a{
		max-width: 263px;
		display: block;
	}
	.footer .f_menu p{
		font-size: 1.4rem;
		letter-spacing: 1px;
	}
	.copyright{
		text-align: left;
		font-size: 0.9rem;
		letter-spacing: 1px;
	}
}
.pc2{
	display: block;
}
.sp2{
	display: none;
}
@media screen and (max-width: 767px) {
	.pc2{
		display:none;
	}
	.sp2{
		display: block;
	}
	.menu-content{
		padding: 70px 20px 70px;
	}
	.menu-content a{ 
		margin: 10px 0px 20px;
	}
	section#message{
		padding-right: 8vw;
	}
	section .cnt9{
		text-align: left;
	}
	section .cnt9-shadow {
    	position: absolute;
		width: 89.3%;
    	top: 13px;
		left: 6%;
	}
	section .cnt9::before{
		transform: translate(-50px, 40px);
	}
	section .cnt9 .copy p{
		font-size: 1.4rem;
		line-height: 2.8rem;
		margin-bottom: 43px;
	}
	section .cnt10 .member_cnt .bnr .bnr_cnt{
		flex: 0 0 calc(33.5% - 7.5px);
	}
	section .cnt10 .member_cnt .bnr2 .bnr_cnt{
		flex: 0 0 calc((100% - 40px) / 4);
	}
	section .cnt10 .member_cnt .bnr3 {
		display: flex;
		flex-wrap: wrap; /* ← 複数段にする */
		gap: 10px;
	}
	section .cnt10 .member_cnt .bnr3 a{
		width: calc((100% - 30px) / 4); /* gap10px × 3 */ 
	}
	section .cnt10 .member_cnt .slide .prev,section .cnt10 .member_cnt .slide .next{
		width: 28px;
	}
	section .cnt10 .member_cnt .slide .prev{
		transform: translate(-10px, -50%);
	}
	section .cnt10 .member_cnt .slide .next{
		transform: translate(10px, -50%)rotate(180deg);
	}
	section#joinus{
		margin-bottom: 102px;
	}
	section .cnt11 .ttl_column{
		display: block;
	}
	section .cnt11 .ttl_column .ttl_col{
		margin-bottom: 26px;
	}
	section .cnt11 .ttl_column p.icon{
		width: 56px;
		margin-top: 5px;
		font-size: 1.4rem;
		padding: 0px 20px;
	}
	section .cnt11 .ttl_column p{
		margin-left: 0px;
		font-size: 1.4rem;
	}
	section .cnt11 .cnt11_cnt .column{
		display: block;
		padding: 18px;
	}
	section .cnt11 .cnt11_cnt .column .col{
		display: flex;
		align-items: center;
		gap:20px;
		margin-bottom: 16px;
	}
	section .cnt11 .cnt11_cnt .column .col p{
		font-size: 1.6rem;
		line-height: 3.6rem;
		font-weight: bold;
	}
	section .cnt11 .cnt11_cnt .column .col_txt .link a.pdf{
		width: calc(100% - 102px);
	}
	section .cnt11 .cnt11_cnt .column .col_txt .link a.meil span{
		line-height: 2.6rem;
	}
	section#menbership {
		margin-bottom: 96px;
	}
	section .cnt12 .ttl_column{
		display: block;
	}
	section .cnt12 .ttl_column p.icon{
		width: 56px;
		margin-top: 5px;
		font-size: 1.4rem;
	    padding: 0px 20px;
	}
	section .form .input .input_ttl p{
		font-size: 1.4rem;
	}
	section .form .input .input_ttl p.required, section .form .input .input_ttl p.any{
		font-size: 1rem;
	}
	section .form .input input{
		padding: 10px;
		font-size: 1.4rem;
	}
	section .form .input textarea{
		padding: 10px;
		font-size: 1.4rem;
	}
	section .form .input p.error, section .form .input p.error2{
		font-size: 1.2rem;
	}
	section .form .policy .policy_txt{
		font-size: 1.2rem;
		padding: 12px;
	}
	section .form .policy p.policy_ttl{
		font-size: 1.2rem;
	}
	section .form .policy .policy_txt .txt_cnt{
		margin-bottom: 18px;
	}
	section .form .policy .policy_txt .txt_cnt p.ttl{
		font-size: 1.2rem;
	}
	section .form .policy_btn{
		font-size: 1.2rem;
		margin-bottom: 33px;
	}
	section .form .policy_btn label{
		font-size: 1.4rem;
	}
	section .form .note{
		margin-bottom: 20px;
	}
	section .form .note p{
		font-size: 1.2rem;
	}
	section .form button{
		font-size: 1.6rem;
	}
	section .form p.reset_btn{
		font-size: 1.2rem;
	}
	.menu-content{
		display: block;
	}
	.footer .f_menu .menu_cnt.pc2{
		display: none;
	}
	
	#thank{
		padding-top: 92px;
	}
	#thank .cnt{
		padding: 76px 0px;
	}
	#thank .cnt img{
		max-width: 318px;
	}
	
	#menbership h3{
		text-align:left;
		font-size: 3.1rem;
	}
}
@media screen and (max-width: 414px) {
	section .cnt4 .ttl{
		width: 335px;
	}
}
@media screen and (max-width: 390px) {
	.logo {
        max-width: 198px;
    }
	.menu-content a{
		font-size: 2.4rem;
	}
	.menu-content a span {
        font-size: 1rem;
    }
	.menu-content::after {
        background: url(../img/menu_icon_sp.png);
        background-size: 100%;
        width: 160px;
		height: 104px;
	}
	section .cnt1 p span.pic {
        font-size: 1.5rem;
    }
}