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

html{
	scroll-behavior: smooth;
	margin: auto;
}
body{
	font-size: 18px;
  	font-family: "Helvetica Neue",Arial,"Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;
	background-color: #E5E5E5 !important;
}

a{
	color: #fff;
	text-decoration: none;
	transition: .3s;
}

img{
	width: 100%;
}

br {
display: block;
content: "";
margin: 0;
line-height: initial;
}

sup{
	font-size: 10px;
}

a:hover{
	opacity: 0.6;
}

.change-grid{display:grid;gap:24px;}
@media(min-width:760px){.change-grid{grid-template-columns:repeat(3,1fr);}}
.card{background:#fff;border-radius:16px;padding:24px;border:1px solid #e5e7eb;box-shadow:var(--shadow);position:relative;overflow:hidden;}
.card strong{color:var(--brand);font-size:1.1rem;}
.card::before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:var(--accent);opacity:.2;}
.card p{margin:.6rem 0 0;}
.before-after{margin-top:16px;background:var(--soft);border-radius:12px;padding:12px;}
.before-after span{display:block;font-weight:700;}
.before-after .before{color:#ef4444;}
.before-after .after{color:#16a34a;}
.btn{display:inline-block;padding:.9rem 1.4rem;border-radius:12px;font-weight:700;text-decoration:none;box-shadow:var(--shadow);}
.btn.primary{background:var(--brand);color:#fff;}

.card strong{
	display: block;
	font-size: 1.8rem;
	text-align: center;
}
/*menu*/
.menu{
    height: 20px;
    position: absolute;
    right: 20px;
    top: 20px;
    width: 30px;
    z-index: 99;
}
.menu__line{
    background: #000;
    display: block;
    height: 2px;
    position: absolute;
    transition:transform .3s;
    width: 100%;
}
.menu__line--center{
    top: 9px;
}
.menu__line--bottom{
    bottom: 0;
}
.menu__line--top.active{
    top: 8px;
    transform: rotate(45deg);
}
.menu__line--center.active{
    transform:scaleX(0);
}
.menu__line--bottom.active{
    bottom: 10px;
    transform: rotate(135deg);
}

/*gnav*/
.gnav{
    background: rgba(0,0,0,0.8);
    display: none;
    height: 100%;
    position: fixed;
    width: 100%;
    z-index: 98;
}
.gnav__wrap{
    align-items:center;
    display: flex;
    height: 100%;
    justify-content: center;
    position: absolute;
    width: 100%;
}
.gnav__menu__item{
    margin: 40px 0;
}
.gnav__menu__item a{
    color: #fff;
    font-size: 2em;
    font-weight: bold;
    padding: 40px;
    text-decoration: none;
    transition: .5s;
}
.gnav__menu__item a:hover{
    color: #666;
}

.contactWrap{
	max-width: 1000px;
	margin: auto;
	padding: 20px 0;
}

.hero {
  width: 100%;
  max-width: 100%;
  background-color: #F3A9AA; /* 背景を画像の水色に近づける */
  display: flex;
  justify-content: center;
}

.hero-image {
  width: 100%;
  max-width: 1920px;
  height: auto;
  display: block;
}




.btn{
	display: flex;
	width: 100%;
	padding: 30px;
	text-align: center;
	border-radius: 10px;
	position: relative;
	margin: 60px 0;
	margin-left: auto;
	margin-right: auto;
	max-width: 570px;
}

.btnLeft1{
	width: 20%;
}

.btnLeft2{
	width: 20%;
}

.btnLeft3{
	width: 20%;
}

.btnLeft4{
	width: 30%;
}

.btnLeft1 img{
	width: 120px;
	position: absolute;
	top: -35px;
	left: -15px;
}

.btnLeft2 img{
	width: 150px;
	position: absolute;
	top: -40px;
	left: -15px;
}

.btnLeft3 img{
	width: 120px;
	position: absolute;
	top: -30px;
	left: -15px;
}

.btnLeft4 img{
	width: 150px;
	position: absolute;
	top: -30px;
	left: -10px;
}

.nitteibtn{
	background: #FFB1BD;
	color: #383838;
	padding: 20px 10px 20px 0;
}

.telbtn{
	background: #BAFFB1;
	color: #383838;
	padding: 20px 10px 20px 0;
}

.btnRight{
	padding-top: 10px;
	font-size: 1.6rem;
	font-weight: bold;
	width: 80%;
	position: relative;
}

.btnRight:after{
	position: absolute;
	font-family: FontAwesome;
	content: '\f138';
	right: 0%;
	top: 13%;
}

.btnRight2{
	font-size: 1.4rem;
	width: 70%;
}

.btnRight2:after{
	position: absolute;
	font-family: FontAwesome;
	content: '\f138';
	right: 0%;
	top: 35%;
}


.btnRight span{
	display: block;
	font-size: 0.8rem;
}

.btnRight2{
	font-size: 1.8rem;
	font-weight: bold;
}

.btnRight2 span{
	font-size: 1rem;
	color: #FFFF00;
}

.webbtn{
	background:#DB2743;
	color: #fff;
	padding: 30px 10px 30px 0;
}

.pointbtn{
	background:#DB2743;
	color: #fff;
	padding: 10px 10px 10px 0;
}

.sectitle{
	display: flex;
	text-align: center;
	justify-content: center;
}

.sectitleicon{
	width: 10%;
	text-align: center;
	margin:1.8em 0;
}

.h3sectitle{
	font-size: 1.8rem;
}


	  .acc-container{
		  max-width: 960px;
		  margin: auto;
		  padding: 5px;
	  }
	  
    .accordion {
		width: 100%;
      border-radius: 5px;
		margin:10px 0px;
    }

    .accordion-header {
		display: block;
		width: 100%;
      color: #333;
      font-weight: bold;
      padding: 10px;
	  text-align: center;
		font-size: 1.5em;
		line-height: 1;
    }

    .accordion-header:hover {
		opacity: 0.4;
    }
	  
	  #elem{
		  background-color: #FFB76C;
      	  border: 1px solid #FFB76C;
	  }
	  
	  #jh1{
		  background-color: #5FC1FF;
		  border: 1px solid #5FC1FF;
	  }
	  
	  #jh2{
		  background-color: #FF90C7;
		  border: 1px solid #FF90C7;
	  }
	  
	  #jh3{
		  background-color: #69DE69;
		  border: 1px solid #69DE69;
	  }

.rex{
	color: #DB2743;
	font-family: "fot-udkakugo-large-pr6n", sans-serif;
	font-weight: 600;
	font-style: normal;
}

.toplogo{
	margin: auto;
	padding: 10px 0 0 0;
	width: 70%;
	max-width: 500px;
}

.topsec{
	background-color: #FAFAFA;
}

.top{
	width: 100%;
	margin: auto;
	max-width: 800px;
}


.topsub{
	position: absolute;
  bottom: 0;
	width: 100%;
	height: 20vh;
background: rgb(0,0,0);
background: linear-gradient(0deg, rgba(0,0,0,1) 0%, rgba(0,0,0,0) 100%);
}

.topsubtext{
	vertical-align: bottom;
	margin: auto;
	max-width: 800px;
	text-align: center;
	position: absolute;
  bottom: 10px;
	left: 0;
	right: 0;
}

.topsubtext span{
	color: #fff;
	font-size: 2.2rem;
	line-height: 1.9rem;
	font-family: vdl-admin, sans-serif;
	font-weight: 400;
	font-style: normal;
 	text-shadow: 0px 0px 4px rgba(0, 0, 0, 0.63);
}

.open{
  background: url("../images/24764153_m.webp");
	width: 100%;
}

.openWrap{
	margin: auto;
	max-width: 800px;
	display: flex;
}

.openright{
	padding: 30px 10px 0 0;
}

.openbottom{
	display: block;
	margin: auto;
	max-width: 800px;
	text-align: center;
	font-size: 1.6rem;
	font-weight: 600;
}

.kaikoem{
	font-size: 2.0rem;
	color: #DB2743;
	font-weight:bold;
}

.newschool{
	width: 100%;
}

.newwchooltitle{
	margin: auto;
	width: 100%;
	display: flex;
	background-color: #DB2743;
	padding: 10px;
	justify-content: center;
	padding-top: 20px;
}

.newschtleft{
	width: 10%;
	max-height: 80px;
}

.newschtleft img{
	max-width: 30px;
	max-height: 80px;
	min-width: 20px;
	min-height: 50px;
}

.newschtright{
	font-size: 1.8rem;
	font-weight: bold;
	color: #fff;
}

.flex{
	display: flex;
}

.bentenr{
	width: 80%;
}

.texty{
	color: #FFFF00; 
}

.flow {
	padding: 20px 10px;
	margin: auto;
  max-width: 1000px;
}

.flowbg{
	max-width: 400px;
	margin: auto;
	text-align: center;
}

.flowbg img{
	display: block;
	margin: auto;
	max-width: 90%;
}

.flowbottom{
	position: absolute;
  bottom: 0;
	width: 100%;
	height: 20vh;
background: rgb(0,0,0);
background: linear-gradient(0deg, rgba(0,0,0,1) 0%, rgba(0,0,0,0) 100%);
	text-align: center;
}

.flowbottom span{
	color: #fff;
	font-size: 1.6rem;
	line-height: 1.9rem;
	font-family: vdl-admin, sans-serif;
	font-weight: 400;
	font-style: normal;
 	text-shadow: 0px 0px 4px rgba(0, 0, 0, 0.63);
}

.sorotouch{
	max-width: 800px;
	margin:auto; 
}

.sorotouchtext{
	display: block;
	margin: auto;
	text-align: center;
	font-size: 2rem;
	color: #5FA930;
}

.underlineRed{
		background:linear-gradient(transparent 80%, #DB2743 80%);
}

.underlineYellow{
		background:linear-gradient(transparent 80%, #FFFF00 80%);
	display: inline!important;
}

.special img{
	display: block;
	margin: auto;
	max-width: 30%;
}

.setsumeikai{
	max-width: 800px;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 20px;
	border: 1px #DB2743 solid;
	background-color: #fff;
	padding: 10px;
	text-align: center;
}

.setsumeikai span{
	display: block;
	font-size: 1.1rem;
	font-weight: 600;
}

.setumeikaidate{
	font-size: 1.4rem!important;
	color: #DB2743;
	font-weight: bold!important;
}

.special{
	background-color: #FFF7F8;
	margin: auto;
	max-width: 800px;
	text-align: center;
}

.specialtitle{
	display: block;
	padding: 5px;
	background-color: #DB2743;
	color: #fff;
	border-radius: 5px;
	font-family: nitalago-ruika, sans-serif;
font-weight: 100;
font-style: normal;
	font-size: 1.5rem;
}

.specialor{
	font-family: nitalago-ruika, sans-serif;
font-weight: 100;
font-style: normal;
	font-size:1.7rem;
}

.specialor span{
	display: block;
	padding-top: 30px;
	color: #DB2743;
}

.specialtext{
	font-size: 1.3rem;
	font-family: nitalago-ruika, sans-serif;
	font-weight: 100;
	font-style: normal;
}

.specialpre{
	font-family: nitalago-ruika, sans-serif;
	font-weight: 100;
	font-style: normal;
	display: block;
	font-size: 1.4rem;
	color: #DB2743
}

.topdate{
	margin: auto;
	width: 90%;
	position: relative;
	top:-100px;
	max-width: 750px;
	box-shadow: 0px 0px 15px -9px #949494;
	border-radius: 11px;
	background: rgba(255,255,255,0.8);
	padding: 10px;
	text-align: center;
	}

.titlewrap{
	text-align: center;
	margin: 20px auto;
	max-width: 960px;
}

.titlewrapCam{
	display: flex;
	justify-content: center;
	margin: -15px auto -30px auto;
}

.camtitleLeft{
	width: 30%;
	max-width: 200px;
	min-width: 50px;
}

.camtitleRight{
	margin: auto 10px;
}


.topdate h1{
	font-family: kozuka-mincho-pro, serif;
	font-weight: 700;
	font-style: normal;
	font-size: clamp(2em,6vw,4em);
	margin: 0;
}

.topdate h1 span{
	color: #F5193B;
}

.topdate h2{
	font-size: clamp(1.8em,3vw,3em);
	font-family: "a-otf-ud-reimin-pr6n", sans-serif;
	font-weight: 300;
	font-style: normal;
	margin: 10px 0px;

}

.jukunav{
	width: 100%;
	 background-image: linear-gradient(180deg, rgba(211, 51, 76, 1) 59%, rgba(83, 0, 13, 1));
	
}

.jukunavWrap{
	margin: auto;
	max-width: 800px;
	padding: 50px;
}

.subtitle{
		position: relative;
  width: 100%;
  background: url("../images/_N0A8500_.webp");
background-size: cover;
	min-height: 100vh;
	min-height: 100svh;
	background-position: 30% 0%;
}

.subtextWrap{
	position: absolute;
  bottom: 0;
	width: 100%;
	height: 25vh;
background: rgb(255,101,101);
background: linear-gradient(180deg, rgba(255,101,101,0) 0%, rgba(196,38,44,0.7) 43%, rgba(59,0,9,0.7) 100%);
}

.subtext{
	vertical-align: bottom;
	margin: auto;
	max-width: 800px;
	text-align: center;
	position: absolute;
  bottom: 10px;
	left: 0;
	right: 0;
}

.subtext span{
		color: #fff;
	font-size: 2.2rem;
	line-height: 1.9rem;
	font-family: vdl-admin, sans-serif;
	font-weight: 400;
	font-style: normal;
 	text-shadow: 0px 0px 4px rgba(0, 0, 0, 0.63);
}

.culWrap{
	margin: auto;
	max-width: 800px;
}

.sorobutton{
	background: #FFB1BD;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 30px;
	width: 80%;
	padding: 20px;
	text-align: center;
	border-radius: 10px;
	font-size: 1.2rem;
	font-weight: bold;
	color: #000;
	
}

.sorobutton a:hover{
		transform: scale(0.77);
	transition-duration: 0.3s;
	border-radius: 15px;
}

.rexpoint{
	margin-top:-50px;
}

.rexpointwrap{
	max-width: 800px;
	margin: auto;
	padding: 10px;
	text-align: center;
	border-top: 5px solid #c21500;
	border-bottom: 5px solid #c21500;
	border-image: linear-gradient(90deg, rgba(248,255,42,1) 0%, rgba(143,254,59,1) 11%, rgba(54,200,255,1) 100%);
	border-image-slice: 1;
	background-color: #FAFAFA;
}

.rexpointwrap h2{
	display: block;
	color: #fff;
	padding: 5px;
	margin-top: 20px;
	border-radius: 10px;
	background-color: #DB2743;
}

.rexpointwrap h2 span{
	color: #FFF60A;
}

.rexpointwrap h3{
	font-family: nitalago-ruika, sans-serif;
	font-weight: 100;
	font-style: normal;
}

.rexpointwrap h3 span{
	color: #FD1F41;
	font-size: 1.2em;
}

.startBox{
	max-width: 800px;
	margin: auto;
}

.campaign img{
	max-width: 900px;
	margin:20px auto;
	display: block;
}

.camWrap{
	margin: 40px 0;
	background:#FAEE00;
}

.cambox{
	margin: auto;
	text-align: center;
	padding-bottom: 10px;
	max-width: 900px;
	padding: 20px;
}

.camboxIn{
	border-radius: 13px;
	border: 1px solid #330204;
	padding: 20px;
}

.camboxIn span{
	display: block;
	color: #330204;
	font-size: 0.8rem;
	text-align: left !important;
}

.cambox img{
	margin: 20px 0;
}


.cambox img{
	margin: 20px 0;
}

.cambox span{
	text-align: left !important;
}

.camtitlesvgwrap{
	width: 40%;
	margin: auto;
}

.camboxWrap{
		max-width: 700px;
	margin: auto;
	display: flex;
	padding: 20px;
	color: #fff;
}

.cambutoom{
	display: block;
	max-width: 500px;
	margin: auto;
	padding: 10px;
	text-align: center;
	font-size: 1.5rem;
	font-weight: bold;
}

.markery{
	background:linear-gradient(transparent 60%, #ff6 60%);
}

.entrancefee{
	background-color: #fff;
	border-radius: 15px;
	text-align: center;
	padding: 20px;
	box-shadow: 0px 9px 15px -5px #a3a3a3;
	max-width: 700px;
	margin-left: auto;
	margin-right: auto;
	width: 90%;
	
}

.entrancefee2{
	display: block;
	font-size: 3rem;
	font-weight: bold;
	color: #2B2525;
}

.entrancefee3{
	display: block;
	font-size: 7rem;
	color: #DB2743;
	font-weight: bold;
}

.entrancefee4{
	display: flex;
	color: #fff;
	font-size: 1.3rem;
	margin: auto;
}

.fee4Left{
	width: 30%;
	max-width: 200px;
	min-width: 40px;
}

.fee4Right{
	width: 70%;
	color:#2B2525;
	font-weight: bold;
	padding-top: 10%;
}

.camleft{
	width: 60%;
	text-align: center;
	font-size: 2rem;
	padding-top: 10px;
}

.camright{
	width:40%;
	font-size: 3rem;
	text-align: center;
	font-weight: bold;
}

.junbiclass{
	max-width: 700px;
	margin: 10px auto;
	display: block;
	width: 85%;
	text-align: center;
	color: #DB2743;
  background-image: linear-gradient(180deg, rgba(255, 255, 255, 1), rgba(237, 237, 237, 1));
	padding: 10px 5px;
	font-size: 1.4rem;
	font-weight: bold;
	border-radius: 10px;
	position: relative;
	box-shadow: 0px 0px 10px -5px #777777;
}

.junbiclass::after{
	    content: '';
    border: 0;
    border-top: solid 2px #DB2743;
    border-right: solid 2px #DB2743;
    display: inline-block;
    width: 10px;
    height: 10px;
    /* 矢印アイコンの位置を設定 */
    position: absolute;
    top: 50%;
    right: 20px;
    transform: translateY(-50%) rotate(45deg);
}

.sorotouchbutton{
	max-width: 700px;
	margin: 10px auto;
	display: block;
	width: 85%;
	text-align: center;
	color: #5FA930!important;
  background-image: linear-gradient(180deg, rgba(255, 255, 255, 1), rgba(237, 237, 237, 1));
	padding: 10px 5px;
	font-size: 1.4rem;
	font-weight: bold;
	border-radius: 10px;
	position: relative;
	box-shadow: 0px 0px 10px -5px #777777;
}

.sorotouchbutton::after{
	    content: '';
    border: 0;
    border-top: solid 2px #5FA930;
    border-right: solid 2px #5FA930;
    display: inline-block;
    width: 10px;
    height: 10px;
    /* 矢印アイコンの位置を設定 */
    position: absolute;
    top: 50%;
    right: 20px;
    transform: translateY(-50%) rotate(45deg);
		color: #5FA930!important;
}

.sorotouchbutton span{
	color: #5FA930!important;
}


#change-stories{
	padding: 20px;
	max-width: 1500px;
	margin: auto;
}
.voice2{
	padding: 15px;
}

.voice2Wrap{
	max-width: 800px;
	margin: 20px auto;
	display: flex;
	padding: 10px;
	background-color: #fff;
	box-shadow: 0px 9px 15px -5px #a3a3a3;
	border-radius: 10px;
}

.voice2text{
	width: 90%;
	font-size: 0.8rem;
}

.voice2img{
	width: 10%;
	padding: 0 5px;
}


.sectitleWrap{
	display: flex;
	align-items: center;
	justify-content: center;
}

.sectitlecontainer:before{
		content: "";
		display: block;
		width: 20%;
		height: 1px;
		background-color: #FFF;
}

.sectitlecontainer:after{
		content: "";
		display: block;
		width: 20%;
		height: 1px;
		background-color: #FFF;
	margin: 10px 0 10px auto;
}

.sectitlecontainer3:before{
		content: "";
		display: block;
		width: 20%;
		height: 1px;
		background-color: #424B7E;
		margin-bottom: 10px;
}

.sectitlecontainer3:after{
		content: "";
		display: block;
		width: 20%;
		height: 1px;
		background-color: #424B7E;
	margin: 0 0 0 auto;
}



.sectitleleft{
	padding: 10px;
	width: 100px;
}

.sectitleright h2{
	display: block;
	color: #DB2743;
	font-family: "nitalago-ruika", sans-serif;
	font-weight: 100;
	font-style: normal;
	margin: 0;
	line-height: 0;
	padding-top: 20px;
}

.sectitleleft3{
	padding: 10px;
	width: 100px;
}

.sectitleright3 h2{
	display: block;
	color: #424B7E;
	font-family: fot-tsukuardgothic-std, sans-serif;
	font-weight: 700;
	font-style: normal;
	margin: 0;
	line-height: 0;
	padding-top: 20px;
}

.sectitileplus{
	background-color: #424B7E;
	padding: 30px 0 20px 0;
}


.sectitleleft_result{
	padding: 10px;
}

.sectitleright_result h2{
	display: block;
	color: #FF5D69;
	font-family: fot-tsukuardgothic-std, sans-serif;
	font-weight: 700;
	font-style: normal;
	margin: 0;
	line-height: 0;
	font-size: clamp(1.2em,4vw,2.5em);
}

.sectitleright_result h2 span{
	display: block;
	margin-top: 1.1em;
}


.sectitleright img{
	display: block;
	width: 100%;
}

.sectitleright h2 span{
	display: block;
	margin-top: 1.2em;
}

.sectitleright3 h2 span{
	display: block;
	margin-top: 1.2em;
}

#grade{
	max-width: 960px;
	margin: auto;
}

.selgrade{
	display: block;
	text-align: center;
}

.eletitle{
	text-align: center;
	font-size: 1.6em;
	font-family: fot-tsukuardgothic-std, sans-serif;
	font-weight: 700;
	font-style: normal;
	color: #FF9300;
}

.eletitle span{
  display: inline;
  font-weight: 600;
  line-height: 1.5em;
  padding: 5px;
	color: #fff;
  background-color: #FF9300;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

.jh1title{
	text-align: center;
	font-size: 1.5em;
	font-family: fot-tsukuardgothic-std, sans-serif;
	font-weight: 700;
	font-style: normal;
	color: #23AAFF;
}

.jh1title span{
  display: inline;
  font-weight: 600;
  line-height: 1.5em;
  padding: 5px;
	color: #fff;
  background-color: #23AAFF;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

.jh2title{
	text-align: center;
	font-size: 1.5em;
	font-family: fot-tsukuardgothic-std, sans-serif;
	font-weight: 700;
	font-style: normal;
	color: #FF2391;
}

.jh2title span{
  display: inline;
  font-weight: 600;
  line-height: 1.5em;
  padding: 5px;
	color: #fff;
  background-color: #FF2391;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

.jh3title{
	text-align: center;
	font-size: 1.5em;
	font-family: fot-tsukuardgothic-std, sans-serif;
	font-weight: 700;
	font-style: normal;
	color: #00DD00;
}

.jh3title span{
  display: inline;
  font-weight: 600;
  line-height: 1.5em;
  padding: 5px;
	color: #fff;
  background-color: #00DD00;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

.accordion-content img{
	margin: auto;
	display: block;
}

.elesubtitle{
  position: relative;
  color: black;
  background: #FFEEDD;
  line-height: 1.4;
  padding: 0.25em 0.5em;
  margin: 2em 0 0.5em;
  border-radius: 0 5px 5px 5px;
}

.elesubtitle:after{
  position: absolute;
  font-family: "Font Awesome 5 Free",'Quicksand','Avenir','Arial',sans-serif;
  font-weight: 900;
  content: 'Check';
  background: #FF9323;
  color: #fff;
  left: 0px;
  bottom: 100%;
  border-radius: 5px 5px 0 0;
  padding: 3px 7px 1px;
  font-size: 0.7em;
  line-height: 1;
  letter-spacing: 0.05em
}

.jh1subtitle{
  position: relative;
  color: black;
  background: #DDF3FF;
  line-height: 1.4;
  padding: 0.25em 0.5em;
  margin: 2em 0 0.5em;
  border-radius: 0 5px 5px 5px;
}

.jh1subtitle:after{
  position: absolute;
  font-family: "Font Awesome 5 Free",'Quicksand','Avenir','Arial',sans-serif;
  font-weight: 900;
  content: 'Check';
  background: #23AAFF;
  color: #fff;
  left: 0px;
  bottom: 100%;
  border-radius: 5px 5px 0 0;
  padding: 3px 7px 1px;
  font-size: 0.7em;
  line-height: 1;
  letter-spacing: 0.05em
}

.jh2subtitle{
  position: relative;
  color: black;
  background: #FFDDFC;
  line-height: 1.4;
  padding: 0.25em 0.5em;
  margin: 2em 0 0.5em;
  border-radius: 0 5px 5px 5px;
}

.jh2subtitle:after{
  position: absolute;
  font-family: "Font Awesome 5 Free",'Quicksand','Avenir','Arial',sans-serif;
  font-weight: 900;
  content: 'Check';
  background: #FF2391;
  color: #fff;
  left: 0px;
  bottom: 100%;
  border-radius: 5px 5px 0 0;
  padding: 3px 7px 1px;
  font-size: 0.7em;
  line-height: 1;
  letter-spacing: 0.05em
}

.jh3subtitle{
  position: relative;
  color: black;
  background: #DDFFDE;
  line-height: 1.4;
  padding: 0.25em 0.5em;
  margin: 2em 0 0.5em;
  border-radius: 0 5px 5px 5px;
}

.jh3subtitle:after{
  position: absolute;
  font-family: "Font Awesome 5 Free",'Quicksand','Avenir','Arial',sans-serif;
  font-weight: 900;
  content: 'Check';
  background: #00DD00;
  color: #fff;
  left: 0px;
  bottom: 100%;
  border-radius: 5px 5px 0 0;
  padding: 3px 7px 1px;
  font-size: 0.7em;
  line-height: 1;
  letter-spacing: 0.05em
}

.accordion-content p span{
	font-weight: 700;
 	text-decoration: underline; /* 下線 */
  	text-decoration-thickness: 0.5em; /* 線の太さ */
  	text-decoration-color: rgba(255, 228, 0, 0.4); /* 線の色 */
  	text-underline-offset: -0.2em; /* 線の位置。テキストに重なるようにやや上部にする */
  	text-decoration-skip-ink: none;
}

.em{
	color: #DB2743;
	font-size: 1.1em;
}

.jhen-b{
  	color: #2B6CFF; /* 線の色 */

}

.topicWrap{
	background-color: #F7F7F7;
	padding: 10px;
}

.topiccontainer{
	display: flex;
}

.topicleft{
	width: 20%;
	padding-top: 30px;
	padding-left: 5px;
}

.topicright{
	width: 80%;
	padding-left: 10px;
	font-size: 1.2rem;
}

.topicright h5{
	line-height: 0;
	color: #FF4A5E;
	font-family: fot-tsukuardgothic-std, sans-serif;
	font-weight: 700;
	font-style: normal;
	font-size: 1.0em;
	white-space: nowrap;
}

.topicright h5 span{
	display: block;
	margin-top: 1.0em;
}


.contntimg{
	margin: auto;
	display: block;
	width: 100%;
}

.voice{
	box-shadow: 0px 14px 6px -15px #c7c7c7;
	overflow:hidden;
}

.voice img{
	 transition:1s all;
}

.voice img:hover{
	transform: scale(0.77);
	transition-duration: 0.3s;
	border-radius: 15px;
}


.present{
	background-image: url("../images/comirubg.jpg");
	background-repeat:no-repeat;
	background-position: top center;
	background-color:#CFEEFB;
	border-top: 5px solid #c21500;
	border-bottom: 5px solid #c21500;
	border-image: linear-gradient(90deg, rgba(248,255,42,1) 0%, rgba(143,254,59,1) 11%, rgba(54,200,255,1) 100%);
	border-image-slice: 1;
}

.present h3{
	text-align: center;
	font-size:  clamp(1.5em,5vw,3em);
	margin: 0;
}

.presentWrap{
	display: flex;
	margin: auto;
	max-width: 800px;
}


.presentBox{
	box-shadow: 0px 0px 15px -9px #949494;
	border-radius: 11px;
	background: rgba(255,255,255,0.8);
	padding: 5px;
	text-align: center;
	margin:0 5px;
	width: 50%;
}

.presentBox h4{
	margin: 0;
	color: #D65B00;
	font-size:  clamp(1.0em,2vw,2.5em);
}

.present h3 span{
	color:#FF831F;
}

.jet{
	font-size:  clamp(0.5em,1vw,1em);
	margin: 0;
	color: #758E95;
	font-family: source-han-sans-japanese, sans-serif;
	font-weight: 500;
}

.pr{
	display: block;
	color: #FF831F;
	text-align: center;
	font-size:  clamp(1.2em,5vw,2em);
	font-family: source-han-sans-japanese, sans-serif;
	font-weight: 700;
	padding: 10px;
}

.map{
	margin: auto;
	padding: 10px;
}

.mapBox{
	box-shadow: 0px 0px 15px -9px #949494;
	border-radius: 11px;
	background: rgba(255,255,255,1);
	padding: 20px;
	text-align: center;
	margin: auto;
	max-width: 600px;
}

.mapBox span{
	font-size:  clamp(2em,5vw,3em);
}

.selgrade{
	display: block;
	text-align: center;
}


.shunkiWrap{
	padding: 10px;
font-family: fot-tsukuardgothic-std,sans-serif;
font-weight: 700;
font-style: normal;
}

.shunkipoint h4{
	text-align: center;
	display: block;
	background:#E7E7E7;
	padding: 5px;
	border-radius: 6px;
}
.setumeikai{
	background: #FFFB8B;
}

.setumeikaibox{
	margin: auto;
	max-width: 800px;
	text-align: center;
	background-image: url("../images/rexkamban.png");
	background-repeat:no-repeat;
	background-position: bottom left;
	background-size: 100px;
	padding: 10px 5px;
}

.setumeikaibox h2{
	font-size:  clamp(1.4em,5vw,3em);
}

.setumeikaibox span{
	display: block;
	font-size:  clamp(1.3em,4vw,2em);
	font-family: source-han-sans-japanese, sans-serif;
	font-weight: 900;
	color: #DB385E;
	background: rgba(255,255,255,0.8);
	
}

.message{
	margin: auto;
	max-width: 960px;
	padding: 10px 10px;
}

.messagebox{
	border-top: 5px solid #c21500;
	border-bottom: 5px solid #c21500;
	border-image: linear-gradient(90deg, rgba(248,255,42,1) 0%, rgba(143,254,59,1) 11%, rgba(54,200,255,1) 100%);
	border-image-slice: 1;
	background-color: #fff;
}

.messagebox p{
	display: block;
	color: #373737;
	padding: 10px;
font-family: fot-tsukuardgothic-std,sans-serif;
font-weight: 700;
font-style: normal;
	font-size:  clamp(0.9em,2vw,1em);
}

.messagebox p span{
	background:linear-gradient(transparent 80%, #ff6 80%);
}

.topdate p span{
		background:linear-gradient(transparent 55%, #ff6 100%);
}

.messagebox h3{
	text-align: center;
	color: #E9445A;
	font-size:  clamp(1.1em,4vw,2em);
}

.mansign{
	display: block;
	font-family: ta-oonishi,sans-serif;
	font-weight: 300;
	font-style: normal;
	text-align: right;
}

.camtitlesvgwrap{
	width: 40%;
	margin: auto;
}

.sarani{
	margin: auto;
	padding: 20px;
	width: 40%;
	max-width: 400px;
}

.eiken{
	font-size: 9px;
	color: #606060;
}

.cambox h2{
	display: block;
	width: 100%;
	margin: auto;
	font-size: 1.8em;
	color: #fff;
}

.cambox h2 span{
	color: #FFE000;
	font-family: source-han-sans-japanese, sans-serif;
	font-weight: 900;
	font-style: normal;
}

.camtext{
	font-size: 1.3em;
	color: #fff;
	font-family: source-han-sans-japanese, sans-serif;
	font-weight: 700;
	font-style: normal;
}

.camfeewrap{
	color:#fff;
}

.camfeeL{
	padding: 0 20px;
}

.camimg{
	vertical-align: middle;
	width: 40%;
	margin: auto;
}

.camfeeL p{
	font-size: 2.0em;
	font-family: source-han-sans-japanese, sans-serif;
	font-weight: 700;
	font-style: normal;
	text-align: center;
	margin: 0;
}

.camfeeR p{
	font-size: 1.2em;
}

.feefree{
	display: block;
	font-family: source-han-sans-japanese, sans-serif;
	font-weight: 900;
	font-style: normal;
	font-size: 6em;
	letter-spacing: 0.2em;
	text-indent: 0.2em;
	text-align: center;
	color: #FFE000;
	margin: -40px 0 0;
}

.camat{
	padding: 0 20px;
	color: #fff;
	font-size:0.6em;
	text-align: left;
	
}

.feesec{
	margin: auto;
	max-width: 800px;
	text-align: center;
	width: 95%;
}

.sectitle{
	font-family: source-han-sans-japanese, sans-serif;
	font-weight: 700;
	font-style: normal;
	display:inline-block;
	padding: 10px 20px;
background-image: linear-gradient(84deg, #36D8FF 0%, #559CEF 13%, #2E79BE 46%, #228DE8 82%, #36FFFF 101%);
	color: #fff;
	font-size: 1.5em;
}

.feecourse h3{
	display: block;
	font-size: 1.4em;
	border-radius: 10px;
	background-color: #2E79BE;
	color: #fff;
}

.feesec p{
	font-size:0.6em;
	text-align: left;
}

.schoolsec{
	text-align: center;
	padding: 20px 0;
}

.schoolwrap{
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap:2vw;
	max-width: 800px;
	margin: auto;
	padding:0px;
}

.schoolwrap a:hover{
		transform: scale(0.77);
	transition-duration: 0.3s;
	border-radius: 15px;
}

.schoolitems{
  border-radius: 9px;
  box-shadow: 1px 2px 5px 0 rgba(0, 0, 0, 0.14);
  border: solid 0.5px #f2f2f2;
  background-color: #fff;
	margin: 3px 0;
  transition: .3s;
	padding-top:5px;
	padding-left: 0px;
	padding-right: 0px;
}

.schoolimg{
	display: inline-block;
	width: 30%;
}

.schoolitems span{
	display: inline-block;
	width: 	100%;
	font-size: 1em;
	font-family: source-han-sans-japanese, sans-serif;
	font-weight: 700;
	font-style: normal;
	color: #000;
	padding: 0px;;
}

.schoolitems:hover{
	transform: scale(0.77);
	transition-duration: 0.3s;
	border-radius: 15px;
}

.contactsec{
	background: #FFFFE3;
	padding: 20px 5px;
}

.contactWrap{
	padding: 0 10px;
}



.contactwrap{
	display: flex;	
	width:100%;
	margin: auto;
	max-width: 800px;
	padding:0 10px;
}

.contactsec span{
	display: block;
	font-family: nitalago-ruika, sans-serif;
font-weight: 100;
font-style: normal;
	text-align: center;
	padding-bottom: 10px;
	font-size: clamp(1.1em,2vw,2em);
} 

.taikenWrap{
	width: 100%;
	max-width: 800px;
	margin: auto;
}

.taikenWrap p{
	text-align: center;
	font-size: 1.4em;
	font-family: source-han-sans-japanese, sans-serif;
	font-weight: 600;
}

.pointsec{
	padding: 10px 0;
}

.pointtile{
	width: 80vw;
	margin: auto;
	max-width: 600px;
	
}

.ponintwrap{
	display: flex;
	
}

.pointL{
	width: 20%;
	padding: 10px 0 5px 5px;
}

.pointL span{
	display:inline-block;
	font-size: 4em;
	font-weight: bold;
	position: relative;
	margin: -20px 0 0;
	background: linear-gradient(to right, #f58c8c, #c65353);
	text-align: center;
	color: #fff;
}

.pointR{
	width: 80%;
	text-align: center;
}

.pointR h3{
	font-family: source-han-sans-japanese, sans-serif;
	font-weight: 700;
	font-style: normal;
	display:inline-block;
	padding: 10px 20px;
	margin: 0;
      background: linear-gradient(to right, #f58c8c, #c65353); /* 左から右へのグラデーション */
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
      color: transparent;
	font-size: 1.5rem;
}

.pointR h4{
	font-size: 1em;
	margin: 5px 0 0;
}

.tokutenWrap{
	margin: auto;
	max-width: 900px;
	text-align: center;

}

.pointcontainer img{
	display: block;
	position: relative;
	margin:  0;
}

.pointvoice img{
	max-width: 300px;
	display: block;
	margin: auto;
}

.pointvoice{
	padding: 20px;
}

.pointvoicetitle{
	text-align: center;
	font-weight: bold;
	padding: 20px 0;
	font-size: 1.5rem;
 background: linear-gradient(to right, #f58c8c, #c65353);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
      color: transparent;
}

.pointvoicename{
	text-align: center;
}

.pointcontainer{
	margin: auto;
	margin-bottom: 50px;
	padding: 20px 0 0;
	box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.16);
	max-width: 900px;
	background-color: #fff;
}


.voiceitemswrap{
	border-top: 5px solid #c65353;
	border-bottom: 5px solid #c65353;
	border-image-slice: 1;
	padding: 8px 0;
	display: flex;
	margin: auto;
	overflow-x: scroll;
	white-space:nowrap;
	background: #fff;
	max-width: 3000px;
}

.voiceitems{
	min-width: 360px;
	padding: 0 10px;
	text-align: center;
}

.voicetitle{
	display: block;
	font-size: 1.2rem;
	white-space: normal;
	font-weight:700;
}

.mark2{ background: linear-gradient(transparent 20%, #f6ff5f 20%);}

.voicetext{
	display: block;
	font-size: 1rem;
	white-space: normal;
	text-align: left;
}

.newadv{
	max-width: 900px;
	margin: 20px auto;
}

.schoolname{
	margin-left: auto;
	margin-right: auto;
	margin-top: 10px;
	display: block;
	padding: 5px;
	text-align: center;
	background-color: #DB2743;
	border-radius: 10px;
	color: #fff;
}

.name{
	margin: 10px 0 0 0;
	display: block;
	color: #DB2743;
	font-size: 1.2rem;
	text-align: center;
}

.schoolname2{
	display: block;
	font-size:0.8rem;
	text-align: center;
}

.comirusec{
	margin: auto;
	text-align: center;
	padding: 0 0 20px 0;
}

.comirutitlebg{
	background-image: url("../images/comirubg.jpg");
	background-repeat:no-repeat;
	background-position: center center;
	background-color:#CFEEFB;
}

.comirutitle h2{
	display:inline-block;
	padding: 0 20px;
 background-image: linear-gradient(83deg, #f8ff2a 0%, #8ffe3b 29%, #36c8ff 101%);
	font-size: 1.7em;
	font-family: source-han-sans-japanese, sans-serif;
	font-weight: 700s;
	font-style: normal;
}

.comirutitle span{
	display: block;
	margin: -40px 0 0 150px;
}

.comirutitle1{
	margin-left: -90px;
}

.comiruimg{
	margin: auto;
	max-width: 500px;
	padding: 20px 0 0;
}

.comirudesc{
	margin: auto;
	max-width: 600px;
	padding: 15px;
	font-size: 0.8em;
	
}

.comiruirtemswrap{
	border-top: 5px solid #c21500;
	border-bottom: 5px solid #c21500;
	border-image: linear-gradient(90deg, rgba(248,255,42,1) 0%, rgba(143,254,59,1) 11%, rgba(54,200,255,1) 100%);
	border-image-slice: 1;
	padding: 8px 0;
	display: flex;
	max-width: 800px;
	margin: auto;
	overflow-x: scroll;
	white-space:nowrap;
	background: #fff;
}

.comirupointitems{
	width: 100%;
	padding: 0 10px;
}

.comirupointitems p{
	font-size: 0.8em;
}

.online{
	margin: 0;
	background-image: linear-gradient(127deg, #0098ce 4%, #0585c3 19%, #1063b1 52%, #164ea6 78%, #1947a2 96%);
}

.onlineWrap{
	width: 90%;
	max-width: 900px;
	padding: 30px 0;
	margin: auto;
}

.onlineBox{
	width: 100%;
	height: auto;
	padding: 15px 10px;
	margin: auto;
	background-color: #12479c;
}

.closingWrap{
	width: 90%;
	max-width: 900px;
	margin: auto;
	text-align: center;
	display: flex;
}

.closingRight span{
	display: block;
	border-radius: 60px;
	padding: 20px;
	background: #DB2743;
	width: 60%;
	margin: auto;
	font-size: 2.3rem;
	color: #fff;
	font-weight: bold;
}

.closingLeft{
	width: 30%;
	min-width: 150px;
}

.closingRight{
	width: 70%;
	padding: 40px 0 0 0;
	font-family: fot-tsukuardgothic-std, sans-serif;
}

.closingRight p{
	color: #DB2743;
	font-weight: bold;
	font-size: 2rem;
}

#result{
	margin: 0;
	background-color: #ffeff2;
}

.resultWrap{
	width: 90%;
	max-width: 900px;
	margin: auto;
	padding: 30px 0;
}

.resultSub{
	text-align: center;
}

.sectitleleft_result{
	padding: 10px;
}

.sectitleleft_result img{
	display: block;
	margin: auto;
	max-height:90px;
	padding: 20px;
}

.sectitleright_result h2{
	display: block;
	color: #FF5D69;
	font-family: fot-tsukuardgothic-std, sans-serif;
	font-weight: 700;
	font-style: normal;
	margin: 0;
	line-height: 0;
	font-size: clamp(1.2em,4vw,2.5em);
	white-space: nowrap;
}

.sectitleright_result h2 span{
	display: block;
	margin-top: 1.1em;
}


.footer{
	position: fixed;
    bottom: 0;
    width: 100%;
	background: rgba(255,255,255,0.8);
	text-align: center;
	padding: 10px 20px 5px 20px;
}

.footerbtnWrap{
	display: flex;
	margin: auto;
}

.webbtn_footer{
background-image: linear-gradient(164deg, rgba(22, 76, 217, 1), rgba(0, 221, 248, 1));
	padding: 5px;
	width: 50%;
	border-radius: 5px;
	margin-right: 10px;
	color: #fff;
	font-size: 1.0rem;
}

.webbtn_footer a{
	display: block;
}

.telbtn_footer{
 background-image: linear-gradient(164deg, rgba(0, 175, 222, 1), rgba(96, 204, 107, 1));
	padding: 5px;
	width: 50%;
	border-radius: 5px;
	color: #fff;
	font-size: 1.0rem;
}

.telbtn_footer a{
	display: block;
}

.pconly{
	display: none;
}

	  #elem{
		  background-color: #FFF8F0;
		box-shadow: 0px 0px 13px -7px #777777;
		border-radius: 13px;
	  }
	  
	  #jh1{
		  background-color: #F0FCFF;
				box-shadow: 0px 0px 13px -7px #777777;
		border-radius: 13px;
	  }
	  
	  #jh2{
		  background-color: #FFF0FD;
		  		box-shadow: 0px 0px 13px -7px #777777;
		border-radius: 13px;
	  }
	  
	  #jh3{
		  background-color: #F0FFF3;
		  		box-shadow: 0px 0px 13px -7px #777777;
		border-radius: 13px;
	  }

.elecolor{
			  color: #ED7900;
}

.jh1color{
	color: #00B1DB;
}

.jh2color{
	color: #F00078;
}

.jh3color{
	color: #00B400;
}

.closing img{
	margin: auto;
	display: block;
	padding: 10px;
	max-width: 960px;
}

.point34{
	padding-top: 0px !important;
	padding-top: 0px !important;
	margin: 0 !important;
	line-height: 1.0;
}

/* アコーディオン */

.accordion-content{
	background-color: #fff;
	padding: 15px;
}

.accordion *, .accordion *:before, .accordion *:after {
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}
.accordion {
	position: relative;
}
.accordion label {
	position: absolute;
	z-index: 1;
	bottom: 0;
	width: 100%;
	height: 140px; /* グラデーションの高さ */
	cursor: pointer;
	text-align: center;
	/* 以下グラデーションは背景を自身のサイトに合わせて設定してください */
	background: linear-gradient(to bottom, rgba(250, 252, 252, 0) 0%, rgba(250, 252, 252, 0.95) 90%);
}
.accordion input:checked + label {
	background: inherit; /* 開いた時にグラデーションを消す */
	background-color: #fff;
	opacity: 0;
}
.accordion label:after {
	line-height: 2.5rem;
	position: absolute;
	z-index: 2;
	bottom: 20px;
	left: 50%;
	width: 16rem;
	font-family: FontAwesome;
	content: '\f13a'' 続きをよむ';
	transform: translate(-50%, 0);
	letter-spacing: 0.05em;
	color: #ffffff;
	border-radius: 20px;
	background-color: rgba(27, 37, 56, 1);
}

.accordion input {
	display: none;
}
.accordion .accordion-content {
	overflow: hidden;
	height: 300px; /* 開く前に見えている部分の高さ */
	transition: all 1s ease;
}
.accordion input:checked + label {
	/* display: none ; 閉じるボタンを消す場合解放 */
}
.accordion input:checked + label:after {
	font-family: FontAwesome;
	content: '\f139'' 閉じる';
}
.accordion input:checked ~ .accordion-content {
	height: auto;
	padding-bottom: 10px; /* 閉じるボタンのbottomからの位置 */
	transition: all 1s ease;
}

.tokuten{
	padding: 5px 30px;
	background-color: #DB2743;
	color: #fff;
	border-radius: 5px;
	font-size: 1.5rem;
	text-align: center;
	display:inline-block;
	margin: 5px;
font-family: nitalago-ruika, sans-serif;
font-weight: 100;
font-style: normal;
}

.videotitle{
	display: inline-block;
	font-size: 1.5rem;
}

#tfa{
	display: block;
	background-color: #EFFFFA;
	border: #5BC1C6 solid 5px;
	margin: auto;
	margin-top: 20px;
	margin-bottom: 20px;
	width: 100%;
	max-width: 1000px;
	padding: 20px;
}

#tfa img{
	display: block;
	width:70%;
	margin: auto;
}

#tfa h3{
	font-size: 2.4rem;
	font-family: fot-tsukuardgothic-std, sans-serif;
	font-weight: 700;
	font-style: normal;
	color: #3E3128;
	margin: 0;
	text-align: center;
}

#tfa h3 span{
	color: #FD616D;
	font-size: 3.3rem;
}

#tfa h4{
	display: block;
	font-size: 2rem;
	color: #37ACB2;
	font-family: "nitalago-ruika", sans-serif;
	font-weight: 100;
	font-style: normal;
	text-align: center;
	margin: 0;
	padding-bottom: 10px;
}

#tfa p{
	font-family: fot-tsukuardgothic-std, sans-serif;
	font-weight: 400;
	font-style: normal;
	text-align: center;
}

#tfa p span{
	font-size:1.7rem;
	color: #37ACB2;
	font-weight: 700;
}

.tfastart{
	display: block;
	margin: auto;
	background-color: #37ACB2;
	color: #FFF;
	font-size: 1.5rem;
	text-align: center;
	padding: 10px;
	border-radius: 10px;
}

.pconly{
	display: none;
}

.bottomnav{
	position: fixed;
	bottom: 0;
	display: flex;
    width: 100%;
	background: rgba(255,255,255,0.4);
	text-align: center;
	margin: auto;
	z-index: 3;
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	border: 1px solid rgba(255, 255, 255, 0.4);
	border-right-color: rgba(255, 255, 255, 0.2);
	border-bottom-color: rgba(255, 255, 255, 0.2);
	border-radius: 5px;
	padding: 0;
}

.bottomnavitem:hover{
	background-color:#71C9E9;
	opacity: 0.7;
	transition: 1.0s ;
}

.bottomnavitem{
	list-style:none;
	flex: 1;
}



.bottomnavitem span{
	display: block;
	color: #00365F;
	line-height: 3px;
	font-size: 0.6em;
	text-align: center;
	margin-top: 3px;
	padding-bottom: 15px;
}

.bottomnavitem img{
	display: block;
	max-height: 40px;
}
.footer{
	    position: fixed;
    bottom: 0;
    left: 0;
    overflow: hidden;
    width: 100%;
    z-index: 2;
}

    .qa-box {
      background-color: #ffffff;
      border-radius: 10px;
      margin-bottom: 10px;
      overflow: hidden;
    }
    .qa-header {
      padding: 15px 20px;
      cursor: pointer;
      background-color: #F5F7FF;
      font-weight: bold;
      position: relative;
    }
    .qa-header::after {
      content: "+";
      position: absolute;
      right: 20px;
      font-size: 20px;
    }
    .qa-header.active::after {
      content: "−";
    }
.qa-content {
  padding: 0 20px;
  max-height: 0;
  overflow: hidden;
  background: none !important;
  background-color: #ffffff !important;
  border-top: 1px solid #ddd;
  white-space: pre-wrap;
  transition: max-height 0.4s ease, padding 0.4s ease;
}
.qa-content.open {
  padding: 15px 20px;
  max-height: 1000px;
  background: none !important;
  background-color: #ffffff !important;
}

#qa{
	max-width: 900px;
	margin: auto;
	padding: 0 10px;
}

@media (max-width : 374px ){
	.menu{
		display: none;
	}
	
}



@media (max-width : 465px ){

	html{
		font-size: 80%;
	}
	
	.topdate{
	margin: auto;
	width: 90%;
	position: relative;
	top:-60px;
	}
	
.topiccontainer{
	display:block;
}

.topicleft{
	width: 50%;
	margin: auto;
}

.topicright{
	width: 100%;
	text-align: center;
	padding-left: 10px;
	font-size: 1.3rem;
}
	
	.sectitleWrap{
		display: block;
		margin: auto;
		text-align: center;
	}
	
.sectitleleft{
	margin: auto;
}

.sectitleright h2{
	font-family: "nitalago-ruika", sans-serif;
	font-weight: 100;
	font-style: normal;
	margin: 0;
	padding-top: 20px;
	padding-bottom: 20px;
}
	
		.closingWrap{
		display: block;
	}
	
	.closingLeft{
		margin: auto;
		width: 70%;
	}
	
	.closingRight{
		width: 90%;
		margin: auto;
	}
	
	.closingRight span{
		width: 100%;
		margin: auto;
	}
	
	.closingRight p{
		font-size: 1.7rem;
	}
	
	.campaign-details h4 {
    font-size: 3em;
    color: white;
    margin-bottom: 10px;
    line-height: 1.2;
    text-align: center; /* 中央揃え */
}

	
}

@media (min-width : 725px ){
	
	.topsubtext span{
		font-size: 3rem;
		line-height: 2.9rem;
	}
	.subtext span{
		font-size: 3rem;
		line-height: 2.9rem;
	}
	
	.voiceitems img{
	width: 20vw;
	padding: 0 5px;
		max-width: 300px;
		min-width: 300px;
		
}
	
	.pconly{
		display: block;
	}
	
	.sponly{
		display: none;
	}
	
	.pointcontainerPC{
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap:2vw;
	max-width: 800px;
	margin: auto;
	padding: 10px;
	}
	
	.camfeewrap{
		display: flex;
		align-items: center;
		justify-content: center;
	}
	
	.camat{
		text-align: center;
		font-size: 0.8em;
	}
	
	.feesec p{
		font-size: 0.8em;
	}
	
	.camimg{
	width: 200px;
	}
	.comirupointitems{
	width: 60%;
}
	
.cam{
	display: flex;
	box-shadow: 0px 0px 15px -9px #949494;
	border-radius: 14px;
	background: #fff;
	max-width: 800px;
	margin: 10px;
	
}
	
.cam1{
	padding-left: 10px;
	font-size: 4em;
	font-family: source-han-sans-japanese, sans-serif;
	font-weight: 900;
	font-style: normal;
	color: #E9445A;
}

.cam2{
	width: 70%;
  display: grid;
  place-items: center;
}



.camem{
	font-size: 3em;
	font-family: source-han-sans-japanese, sans-serif;
	font-weight: 700;
	font-style: normal;
}

.cam3{
	border-radius: 8px;
	background: #FD2D55;
	margin: 10px;
	width: 20%;
	padding: 10px;
  display: flex;
  justify-content: center;
  align-items: center;
}

.cam3 span{
	color: #fff;
	font-size: 3em;
	font-family: source-han-sans-japanese, sans-serif;
	font-weight: 700;
}

.cam2 p{
	margin: 0;
	font-size: 1.2em;
	text-align: center;
}

.spanfee{
	font-size: 1em;
}
	
	.topiccontainer{
		margin: auto;
		padding: 0 40px 0 80px;
	}
	.topicleft{
		width: 20%;
	}
	.topicright{
		font-size: 1.8rem;
		padding-left: 30px;
	}
	
.contntimg{
	width: 70%;
}
	
}

.closing-section {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 40px 10px;
  position: relative;
}

.image-container {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
}

.image-container img {
  width: 100%;
  max-width: 800px;
  height: auto;
}

.catch-copy {
  position: absolute;
  top: 10%;
  right: 5%;
  background: rgba(255, 255, 255, 0.85);
  padding: 20px 30px;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  max-width: 300px;
}

.catch-copy h1 {
  margin: 0;
  font-size: 1.8rem;
  line-height: 1.5;
  color: #333;
  text-align: left;
      background: linear-gradient(to right, #007BAA, #38BCE1); /* 左から右へのグラデーション */
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
      color: transparent;
}

.table-container {
  overflow-x: auto;
  max-width: 1200px; /* 横幅拡大 */
  margin: auto;
}

.price-table {
  width: 100%;
  min-width: 400px; /* 表自体の最小横幅を明示 */
  border-collapse: collapse;
  background-color: #fff;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

.price-table th,
.price-table td {
  border: 1px solid #ccc;
  padding: 0px 8px; /* 横にも少し余裕を持たせた */
  text-align: center;
  vertical-align: middle;
  white-space: nowrap;
	line-height: 1.5;
}

td p{
	margin-block-start:5px;
	margin-block-end:5px;
}

.price-table thead th {
  background-color: #229dd9;
  color: white;
  font-size: 1rem;
}

.price-table thead th.campaign {
  background-color: #ff6666;
}

.price-table tbody tr:nth-child(even) {
  background-color: #f9f9f9;
}

.campaign-price {
  color: red;
  font-weight: bold;
  font-size: 1.5rem;
}

@media (max-width: 768px) {
  .catch-copy {
    position: static;
    margin-top: 20px;
    background: none;
    box-shadow: none;
    text-align: center;
	  padding: 0;
  }

  .catch-copy h1 {
    font-size: 3rem;
    color: #000;
  }
	
	.image-container{
		padding: 0;
	}
}

@media (max-width : 375px ){
	html{
		font-size: 75%;
	}
}

 
    .title-container {
      position: relative;
      font-size: 1.6rem;
      font-weight: bold;
      overflow: hidden;
      display: flex;
      justify-content: center;
      align-items: center;
      white-space: normal; /* 折り返しを有効にする */
      word-break: break-word; /* 長い単語も適切に折り返す */
      text-align: center; /* 中央揃え */
      margin: 20px auto;
		max-width: 900px;
    }

    .title {
      position: relative;
      z-index: 2;
      display: inline-block;
      opacity: 0;
      transform: translateY(20px);
      transition: opacity 1.5s ease, transform 1.5s ease;
      background: linear-gradient(to right, #c65353, #f58c8c); /* 左から右へのグラデーション */
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
      color: transparent;
    }

    .overlay {
      position: absolute;
      top: 0;
      left: 0;
      height: 100%;
	background: linear-gradient(to right, #f58c8c, #c65353);
      z-index: 1;
      width: 100%;
      transform: translateX(-100%);
      pointer-events: none;
    }

    .title-container.scrolled .title {
      opacity: 1;
      transform: translateY(0);
    }

    .title-container.scrolled .overlay {
      animation: slide-overlay 1.5s forwards;
    }

    @keyframes slide-overlay {
      from {
        transform: translateX(-100%);
      }
      to {
        transform: translateX(100%);
      }
    }

    .top-text {
      text-align: center;
      color: #333;
      margin-top: 5px;
      line-height: 0.9;
	font-family: vdl-admin, sans-serif;
    }

    .top-text h1 {
      font-size: 5rem;
      margin: 5px 0;
    }

    .highlight {
      display: flex;
      align-items: center;
      justify-content: center;
      color: #333;
      font-size: 5vw;
      margin: 0px 0;
      position: absolute;
      top: 22%;
    }

    .highlight .badge {
      background-color: red;
      color: white;
      border-radius: 50%;
      width: auto;
      height: auto;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      font-size: 5vw;
      margin: 0 10px;
      padding: 5px 10px;
    }

    .highlight2 {
      background-color: #333;
      color: white;
      padding: 10px 20px;
      border-radius: 20px;
      font-size: 4.5vw;
      font-weight: bold;
      text-align: center;
      position: absolute;
      top: 29%;
    }

    .highlight2 .highlight-number {
      color: yellow;
      font-weight: bold;
    }

    .bottom-text {
      text-align: center;
      color: white;
      font-size: 6vw;
      text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
      margin-bottom: 20px;
    }

    .bottom-text h2 {
      margin: 0 0 -20px 0;
    }
	  
	  .bottom-textWrap{
		  	position: absolute;
  		bottom: 0;
		  left: 0;
		width: 100%;
		height: 25vh;
	background: rgb(255,101,101);
background: linear-gradient(180deg, rgba(255,101,101,0) 0%, rgba(196,38,44,0.7) 43%, rgba(59,0,9,0.7) 100%);
		  padding-bottom: 20px;
	  }

      .top-text h1 {
        font-size: 12vw;
      }

      .highlight {
        font-size: 7vw;
      }

      .highlight2 {
        font-size: 6vw;
      }

      .bottom-text {
        font-size: 8vw;
      }

.sphero2{
	      margin: 0;
      height: 100vh;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      align-items: center;
      background-image: url('../images/hero2bgsp.jpg');
      background-size: cover;
      background-position: center;
	position: relative;
}

    * {
      box-sizing: border-box;
    }

    .carousel-container {
      overflow: hidden;
      width: 100%;
      max-width: 100%;
      position: relative;
    }

    .carousel-track {
      display: flex;
      transition: transform 0.4s ease-in-out;
    }

    .slide {
      flex: 0 0 100%;
    }

    .slide img {
      width: 100%;
      height: auto;
      display: block;
    }

    .nav-buttons {
      text-align: center;
      margin-top: 10px;
    }

    .nav-buttons button {
      background: #fff;
      border: none;
      border-radius: 50%;
      width: 12px;
      height: 12px;
      margin: 5px;
      cursor: pointer;
    }

    .nav-buttons button.active {
      background: #ff6600;
    }

    /* ボタン全体 */
    .link-buttons {
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 20px;
      flex-wrap: wrap;
      margin: 30px auto;
      padding: 20px;
      flex-direction: row;
    }

    .link-buttons a {
      display: block;
      text-align: center;
      text-decoration: none;
      font-weight: bold;
      font-size: 20px;
      padding: 16px 24px;
      border-radius: 10px;
      color: #fff;
      box-shadow: 0 2px 6px rgba(0,0,0,0.2);
      transition: background 0.3s;
      width: auto;
      min-width: 200px;
    }

.link-buttons a strong {
  display: block;
  font-size: 28px;
  font-weight: bold;
  margin-top: 6px;
}

    .btn-math {
      background: #00bfff;
    }

    .btn-math:hover {
      background: #009acd;
    }

    .btn-japanese {
      background: #32cd32;
    }

    .btn-japanese:hover {
      background: #2e8b57;
    }

    /* スマホ対応 */
    @media (max-width: 768px) {
      .link-buttons {
        flex-direction: column;
        gap: 16px;
      }

      .link-buttons a {
        width: 90%;
        font-size: 18px;
      }
    }

@media (max-width : 799px ){
	.pconly{
		display: none;
	}
	.sponly{
		display: block;
	}
}

@media (min-width: 481px) and (max-width: 799px) {
	      .top-text h1 {
        font-size: 3.8rem;
      }
	
	.highlight{
		font-size:2rem;
	}
	
	.highlight2{
		font-size: 2.5rem;
	}
	
	.bottom-textWrap{
		font-size: 3rem;
		padding-bottom: 60px;
	}
	
	.bottom-textWrap h2{
		display: block;
		margin-bottom: -60px;
	}
	
}

        body {
            margin: 0;
            font-family: Arial, sans-serif;
            background-color: #FAFAFA;
            color: #333;
            overflow-x: hidden; /* Prevent horizontal scroll */
        }

header {
	position: fixed;
    top: 0;
    width: 100%;
    background: rgba(219, 41, 67, 0.8); /* 半透明の背景色 */
    padding: 10px 20px;
    z-index: 1000;
    display: flex;
    justify-content: space-between;
    align-items: center;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); /* 柔らかい影 */
    backdrop-filter: blur(10px); /* すりガラス効果 */
    -webkit-backdrop-filter: blur(10px); /* Safari対応のバックドロップフィルター */
    border-bottom: 1px solid rgba(255, 255, 255, 0.3); /* ガラスの縁取りを追加 */
    transition: backdrop-filter 0.3s ease, box-shadow 0.3s ease; /* スムーズなトランジション */
}
		
header img {
    max-width: 120px; /* 最大幅を200pxに制限 */
    width: auto; /* 画像のアスペクト比を保持 */
    height: auto; /* 画像の高さを自動調整 */
}


header:hover {
    box-shadow: 0 6px 10px rgba(0, 0, 0, 0.2); /* ホバー時に影を強調 */
}



        .hamburger-menu {
            font-size: 1.8rem;
            color: #FFF;
            cursor: pointer;
            display: block;
            user-select: none;
            transition: transform 0.3s ease, color 0.3s ease;
        }

        .hamburger-menu.active {
            transform: rotate(180deg);
            color: #FFAAAA;
        }

        #mobile-menu {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(255, 255, 255, 0.1);
            backdrop-filter: blur(30px);
            display: none;
            flex-direction: column;
            z-index: 2000;
            opacity: 0;
            pointer-events: none;
            transition: opacity 0.5s ease-in-out, visibility 0.5s ease-in-out;
            overflow-y: auto;
            padding-top: 60px;
        }

        #mobile-menu.active {
            display: flex;
            opacity: 1;
            pointer-events: auto;
        }

        .menu-container {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 20px;
            padding: 20px;
            box-sizing: border-box; /* Prevent grid overflow */
        }

        @media (max-width: 768px) {
            .menu-container {
                grid-template-columns: repeat(2, 1fr);
            }
        }

        .menu-item {
            background-color: rgba(0, 0, 0, 0.6);
            border: 1px solid transparent;
            border-radius: 30px;
            text-align: center;
            padding: 15px;
            transition: transform 0.3s ease, background-color 0.3s ease, opacity 0.3s ease, transform 0.5s, border 0.3s ease;
            color: #FFF;
            font-weight: bold;
            opacity: 0;
            transform: translateY(30px);
        }

        .menu-item.visible {
            opacity: 1;
            transform: translateY(0);
        }

        .menu-item:hover {
            transform: scale(1.05);
            border-color: #DB2943;
        }

        .menu-item img {
            width: 80px;
            height: 80px;
            margin-bottom: 10px;
        }

        .menu-item h2 {
            font-size: 1.5rem;
            margin: 5px 0;
        }

        .menu-item p {
            font-size: 0.8rem;
            color: #FFF;
        }




        @media (max-width: 768px) {
            .menu-item img {
                width: 60px;
                height: 60px;
            }

            .menu-item h2 {
                font-size: 0.9rem;
            }

            .menu-item p {
                font-size: 0.7rem;
            }


            @keyframes scrollHeroMobile {
                0% {
                    background-position: 200% center;
                }
                100% {
                    background-position: -200% center;
                }
            }
        }

        .close-menu {
            position: absolute;
            top: 20px;
            right: 20px;
            cursor: pointer;
            color: #FFF;
            font-size: 1.5rem;
            background-color: #DB2943;
            border-radius: 50%;
            width: 40px;
            height: 40px;
            display: flex;
            align-items: center;
            justify-content: center;
            line-height: 1;
            text-align: center;
        }

        .close-menu span {
            display: flex;
            align-items: center;
            justify-content: center;
            width: 100%;
            height: 100%;
        }

        @keyframes fadeIn {
            from { opacity: 0; }
            to { opacity: 1; }
        }

        @keyframes zoomIn {
            0% {
                transform: scale(0.8) translate(-50%, -50%);
                opacity: 0;
            }
            50% {
                transform: scale(1.1) translate(-50%, -50%);
                opacity: 0.8;
            }
            100% {
                transform: scale(1) translate(-50%, -50%);
                opacity: 1;
            }
        }

        .menu-large {
            grid-column: span 2;
            padding: 20px;
            font-size: 1.2rem;
            width: calc(200% - 20px);
            text-align: center;
            height: 200px;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            background-color: #DB2943;
            color: #FFF;
            border-radius: 30px;
        }

        .menu-special {
            grid-column: span 2;
            padding: 10px;
            background-color: #FF5733;
            color: #FFF;
            font-size: 1.2rem;
            text-align: center;
            border-radius: 25px;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            transition: transform 0.3s ease, background-color 0.3s ease, opacity 0.3s ease, transform 0.5s, border 0.3s ease;
            opacity: 0;
            transform: translateY(30px);
        }

        .menu-special.visible {
            opacity: 1;
            transform: translateY(0);
        }

        .menu-special:hover {
            transform: scale(1.05);
            border: 1px solid #DB2943;
        }

        .menu-special h2 {
            margin: 0;
            line-height: 1.5;
        }

        .menu-special a {
            margin-top: 10px;
            color: #FFF;
            text-decoration: underline;
        }

        .hero-section {
            width: 100%;
            height: 100vh;
            background-image: url('../images/hero2img.png');
            background-size: cover;
            background-position: center;
            display: flex;
            justify-content: flex-end;
            align-items: center;
            padding: 5vw; /* Padding adjusts proportionally to screen width */
            box-sizing: border-box;
        }

        .hero-content {
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: flex-end;
            max-width: 50%;
            margin-right: 100px; /* Adjusted for more right margin */
        }

        .hero-text {
            flex: 1;
            color: #333;
            max-width: 700px; /* Increased max width */
            text-align: center; /* Center align text */
				font-family: vdl-admin, sans-serif;
        }

        .hero-text h2 {
            font-size: 2.5rem; /* Adjust font size */
            margin-bottom: 20px;
        }

        .hero-text h3 {
            font-size: 1.5rem;
            margin-bottom: 5px;
        }

        .hero-text p {
            font-size: 1.2rem;
            margin-bottom: 10px;
        }

        .hero-text h4 {
            font-size: 1.8rem;
            color: #DB2943;
        }


        @media (max-width: 768px) {
            .hero-section {
                flex-direction: column;
                padding: 20px;
            }

            .hero-content {
                flex-direction: column;
            }

            .hero-text {
                padding: 0 0 20px;
                text-align: center;
            }

            .hero-text h2 {
                font-size: 1.5rem;
            }

            .hero-text h3 {
                font-size: 1.2rem;
            }

            .hero-text p {
                font-size: 1rem;
            }

            .hero-text h4 {
                font-size: 1.5rem;
            }
        }

.campaign-section {
    position: relative;
    width: 100%;
    background-color: #FEFFCF;
    padding: 0;
    box-sizing: border-box;
    text-align: center;
}

.campaign-section::after {
    content: "";
    position: absolute;
    bottom: -100px; /* Adjust the height of the triangle */
    left: 0;
    width: 0;
    height: 0;
    border-left: 50vw solid transparent; /* Adjust the size of the triangle */
    border-right: 50vw solid transparent;
    border-top: 100px solid #FEFFCF; /* Match the section background color */
}


.campaign-header {
    background-color: #DB2943;
    color: #FFF;
    font-size: 1.5rem;
    padding: 20px 10px; /* 高さを大きくするためpaddingを増加 */
    position: relative;
    font-weight: bold; /* 文字を太字に */
}

.campaign-header::after {
    content: "";
    position: absolute;
    bottom: -20px;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: 20px solid transparent;
    border-right: 20px solid transparent;
    border-top: 20px solid #DB2943;
}

.campaign-content {
    position: relative;
    background-color: #DB2943;
    border-radius: 40px;
    width: 80vw;
    max-width: 900px;
    margin: 40px auto 0 auto;
    color: white;
    /* 文字サイズを以前より大きく、かつ可変に */
    font-size: clamp(1.5rem, 2vw, 3rem);
    font-weight: bold;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 40px;
    box-sizing: border-box;
    overflow: visible;
}

.campaign-contentsoro {
    position: relative;
    background-color: #068400;
    border-radius: 40px;
    width: 80vw;
    max-width: 900px;
    margin: 40px auto 0 auto;
    color: white;
    /* 文字サイズを以前より大きく、かつ可変に */
    font-size: clamp(1.5rem, 2vw, 3rem);
    font-weight: bold;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 40px;
    box-sizing: border-box;
    overflow: visible;
}

.campbutton {
	padding: 10px 30px 10px 30px;
	width: 100%;
	background-color: #fff;
	border-radius: 30px;
	color:#008F00;
}

/* 以下、相対的なem指定部分はそのままでも、
   baseサイズが上がるため全体的に大きくなります */

.campaign-details h2 {
    font-size: 1.5em; 
    margin-bottom: 10px;
    border-top: 2px solid #fff;
    border-bottom: 2px solid #fff;
    padding: 20px 0;
}
	
.campaign-details h2 span {
    display: inline-block; /* ブロックで囲む */
    background-color: #ffffff; /* 背景色を白に設定 */
    color: #DB2943; /* 文字色を赤に設定 */
    padding: 5px 10px; /* 内側の余白を調整 */
    border-radius: 10px; /* 角丸を適用 */
    font-weight: bold; /* 文字を強調 */
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* 軽い影を追加 */
}


.campaign-details h3 {
    font-size: 1.25em;
	margin-top: 40px;
    margin-bottom: 10px;
}

.campaign-details h4 {
    font-size: 1.5em;
    color: white;
    margin-bottom: 10px;
}

.campaign-details h4 span {
    color: yellow;
    font-weight: bold; /* 太字で強調 */
    font-size: clamp(2rem, 5vw, 3rem); /* 文字サイズを大きく設定 */
}
	
.campaign-section h4 {
    padding: 0; /* 不要なpaddingを削除 */
    margin: 0; /* 必要なら外側の余白も削除 */
}
	
.campaign-section h2,
.campaign-section h3 {
    padding: 0; /* 不要なpaddingを削除 */
    margin: 0; /* 必要なら外側の余白も削除 */
}



.campaign-details p {
    font-size: 0.9em;
    color: white;
    padding: 0; /* 不要なpaddingを削除 */
    margin: 0; /* 必要なら外側の余白も削除 */
}



.campaign-image {
    position: absolute;
    top: -50px;  
    left: -50px; 
}

.campaign-image img {
    width: 20vw;
    height: auto;
    max-width: 200px;
}

/* 「2月」を白背景、角丸、文字色#DB2943 */
.special-date {
    background-color: #fff;
    color: #DB2943;
    padding: 0 10px;
    border-radius: 10px;
    margin-right: 10px;
}

/* 以下、emを使って相対的に大きさを指定 */
/* .campaign-contentが4vwを基準とするため、  
   em指定で相対的に倍増可能 */

.campaign-details {
    max-width: 600px;
}

/* 元々3rem程度だったh2を1.5emにすることで、
   .campaign-contentの4vwに対して1.5倍 */
.campaign-details h2 {
    font-size: 1.5em; 
    margin-bottom: 10px;
    border-top: 2px solid #fff;
    border-bottom: 2px solid #fff;
    padding: 20px 0;
}

/* h3は元々2.5rem程度 → 1.25emで微調整 */
.campaign-details h3 {
    font-size: 1.25em;
    margin-bottom: 10px;
}

/* h4は元々3rem → 1.5emで1.5倍 */
.campaign-details h4 {
    font-size: 1.5em;
    color: white;
    margin-bottom: 10px;
}

/* 「無料」はさらに大きく。h4内で2emにすることで
   h4が1.5emなので1.5em * 2em = 3emとなり、  
   base(4vw) * 3 = 12vwと大幅拡大(1.5倍以上) */
.campaign-details h4 span {
    color: yellow;
    font-size: 2em;
}

/* pは元々1.8rem程度だったので約0.9emで微調整 */
.campaign-details p {
    font-size: 0.9em;
    color: white;
}

/* JS有効時だけ折りたたむ（無効なら表示のまま） */
.js-enabled .pointvoice p {
  max-height: 0;
  overflow: hidden;
  transition: max-height .35s ease;
}

/* 開いた状態 */
.js-enabled .pointvoice p.is-open {
  /* 開く時はJSでmax-heightを動的に設定します */
}

/* トグルボタン */
.pv-toggle {
  display: inline-flex;
  align-items: center;
  gap: .4em;
  margin-top: .5rem;
  padding: .5rem .9rem;
  font-size: 0.95rem;
  line-height: 1.2;
  border: 1px solid #ddd;
  border-radius: 999px;
  background: #fff;
  cursor: pointer;
  user-select: none;
}

.pv-toggle:focus-visible {
  outline: 2px solid #4da3ff;
  outline-offset: 2px;
}

.pv-toggle .pv-icon {
  transform: translateY(1px);
  transition: transform .2s ease;
}

.pv-toggle[aria-expanded="true"] .pv-icon {
  transform: rotate(180deg) translateY(-1px);
}

.js-enabled .pointvoice p {
  max-height: 0;
  overflow: hidden;
  transition: max-height .35s ease;
}

.pv-toggle {
  display: inline-flex;
  align-items: center;
  gap: .4em;
  margin-top: .5rem;
  padding: .5rem .9rem;
  font-size: 0.95rem;
  line-height: 1.2;
  border: 1px solid #ddd;
  border-radius: 999px;
  background: #fff;
  cursor: pointer;
}

.pv-toggle:focus-visible { outline: 2px solid #4da3ff; outline-offset: 2px; }
.pv-toggle .pv-icon { transform: translateY(1px); transition: transform .2s ease; }
.pv-toggle[aria-expanded="true"] .pv-icon { transform: rotate(180deg) translateY(-1px); }

.pointvoice h5 {
  text-align: center;
  font-weight: 700;
	font-size: 1.3rem;
  margin-bottom: 0.4rem;
	margin-block-start:5px;
	margin-block-end:5px;
}

/* 体験談を読むボタン - 大きく＆目立つ */
.pointvoice .pv-toggle {
  display: inline-block;
  margin: 1rem auto;
  padding: 0.9rem 2.2rem;
  font-size: 1.05rem;
  font-weight: 700;
  border-radius: 50px;
  border: none;
  background: #ffcc00;
  cursor: pointer;
  box-shadow: 0 4px 8px rgba(0,0,0,0.15);
  transition: all .25s ease;
}

/* hover アニメーション */
.pointvoice .pv-toggle:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 12px rgba(0,0,0,0.2);
  background: #ffdb4d;
}

/* フォーカス（キーボード操作時）*/
.pointvoice .pv-toggle:focus-visible {
  outline: 3px solid #ff9900;
  outline-offset: 3px;
}

/* 開いた状態の色変化 */
.pointvoice .pv-toggle[aria-expanded="true"] {
  background: #ffaa00;
}


.pointvoice {
  display: flex;
  flex-direction: column;
  align-items: center;
}



@media (max-width: 768px) {
    .campaign-content {
        flex-direction: column;
        text-align: center;
    }

    .campaign-image img {
        margin: 0 auto 20px;
        position: static;
    }

    .campaign-details {
        text-align: center;
    }
}

.contact-section {
    width: 100%;
    padding: 120px 20px 40px; /* 上部の余白をさらに大きく */
    box-sizing: border-box;
    text-align: center;
}

.contact-header {
    font-size: 1.5rem;
    font-weight: bold;
    color: #333; /* 濃い文字色 */
    margin-bottom: 30px;
}



.contact-content {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.contact-banner {
    display: flex;
    flex-direction: column; /* 上から下に要素を配置 */
    align-items: center;
    background-color: #2ECC71; /* 明るい緑色 */
    border-radius: 40px; /* 角丸を適用 */
    padding: 10px;
    margin-top: 40px;
    gap: 10px; /* 要素間の間隔を調整 */
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    max-width: 800px; /* 最大幅を800pxに設定 */
    width: 90%; /* 画面サイズに応じた幅 */
    margin-left: auto;
    margin-right: auto;
    overflow: hidden; /* コンテンツがはみ出ないように設定 */
}

.tags {
    width: 100%; /* 幅をボックス内全体に広げる */
    text-align: center;
    margin-bottom: 10px; /* 間隔を調整 */
    font-size: clamp(1.8rem, 5vw, 3rem); /* 画面サイズに応じて可変 */
    font-weight: bold;
    color: white;
    flex-wrap: wrap; /* タグが折り返されるように設定 */
}

.tag {
    background-color: white;
    color: #2ECC71; /* 明るい緑に合わせる */
    padding: 10px 20px; /* タグの余白を大きく調整 */
    border-radius: 15px;
    font-size: clamp(1rem, 3vw, 1.5rem); /* 画面サイズに応じて可変 */
    font-weight: bold;
    margin: 5px; /* タグ間の間隔 */
    display: inline-block;
}

.tag-extra {
    color: white;
    font-size: clamp(1rem, 2.5vw, 1.5rem); /* サイズをタグに合わせる */
    margin-left: 5px;
}

.contact-banner-content {
    font-size: clamp(1.5rem, 4vw, 2.5rem); /* 画面サイズに応じて可変 */
    font-weight: bold;
    line-height: 1.4; /* 行間調整 */
    padding: 0; /* 上下の余白を完全に削除 */
    text-align: center;
    color: white; /* テキストの文字色を白に変更 */
    margin-bottom: 5px; /* 画像との余白を最小限に */
}

.contact-banner-content h2 {
    font-size: clamp(1.5rem, 4vw, 2.5rem); /* 画面サイズに応じて可変 */
    font-weight: bold;
    line-height: 1.4; /* 行間調整 */
    margin: 0; /* 外側の余白を完全に削除 */
    padding: 0; /* 内側の余白を完全に削除 */
    text-align: center;
    color: white; /* テキストの文字色を白に設定 */
}

.contact-banner-content h2 span {
    display: block; /* 改行を追加 */
}

.contact-banner-image {
    position: relative; /* 吹き出しの基準位置を設定 */
    display: flex;
    align-items: center; /* 垂直方向を中央揃え */
    justify-content: center; /* 水平方向も中央揃え */
    width: 100%; /* 親要素全体の幅 */
    gap: 20px; /* 画像と吹き出しの間隔を確保 */
    margin: 20px auto; /* セクション全体を中央配置 */
}

.contact-banner-image img {
    width: clamp(150px, 20vw, 200px); /* アドバイザー画像のサイズ */
    height: auto;
    border-radius: 50%; /* 円形にする */
    box-shadow: 0 6px 10px rgba(0, 0, 0, 0.3); /* 影を追加 */
}

.speech-bubble {
    position: relative; /* 矢印の基準位置を設定 */
    background-color: #ffffff;
    color: #2ECC71;
    padding: 15px 20px;
    border-radius: 15px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    font-size: clamp(1rem, 2vw, 1.2rem);
    font-weight: bold;
    text-align: center;
    white-space: pre-wrap;
    max-width: 400px;
    overflow: visible; /* 矢印が切り取られないように */
	white-space: normal; /* 不要な改行や空白を無視 */
}

.speech-bubble::after {
    content: '';
    position: absolute;
    top: 50%; /* 矢印を吹き出しの中央に配置 */
    left: -25px; /* 矢印を吹き出しの左端に配置 */
    transform: translateY(-50%);
    border-width: 20px; /* 矢印を大きく調整 */
    border-style: solid;
    border-color: transparent #ffffff transparent transparent; /* 左側に三角形の矢印 */
    display: block;
    z-index: 1; /* 矢印を確実に前面表示 */
}





.line-button {
    background-color: #FFD700;
    color: #333;
    padding: 15px 30px; /* ボタンサイズを調整 */
    font-size: clamp(1rem, 3vw, 1.5rem); /* フォントサイズを画面サイズに応じて可変 */
    font-weight: bold;
    border: none;
    border-radius: 10px;
    cursor: pointer;
    text-align: center;
    display: inline-block;
    margin: 0 auto; /* セクション中央に配置 */
    box-shadow: 0 6px 10px rgba(0, 0, 0, 0.2); /* 軽い影を追加 */
    transition: all 0.3s ease;
    width: 80%; /* ボタンの横幅を広げてクリックしやすく */
    max-width: 450px; /* 最大幅を指定 */
}

.line-button:hover {
    background-color: #FFC107; /* ホバー時に濃い黄色 */
    transform: translateY(-3px); /* 浮き上がり効果 */
    box-shadow: 0 10px 15px rgba(0, 0, 0, 0.3); /* ホバー時の影を強調 */
}

.line-button:active {
    transform: scale(0.97); /* クリック時に縮小 */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); /* クリック時の影 */
}

	
.contact-button {
    background: linear-gradient(120deg, #FF5733, #DB2943);
    color: white;
    padding: 20px 40px; /* ボタンの内側余白を調整 */
    font-size: 1.5rem; /* フォントサイズを拡大 */
    font-weight: bold;
    border: none;
    border-radius: 15px;
    cursor: pointer;
    text-align: center;
    display: inline-block;
    position: relative;
    overflow: hidden; /* アニメーション用 */
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    box-shadow: 0 6px 10px rgba(0, 0, 0, 0.2);
    margin: 20px 0; /* 上下の余白を広げる */
    width: 100%; /* 幅を統一 */
    max-width: 800px; /* 最大幅を指定 */
}

/* ボタンの親コンテナを中央揃え */
.contact-buttons-container {
    display: flex;
    flex-direction: column; /* 縦に配置 */
    align-items: center; /* 中央揃え */
    gap: 15px; /* ボタン間の間隔を調整 */
}

/* ホバーアニメーション */
.contact-button:hover {
    transform: translateY(-5px); /* 浮き上がり効果 */
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.3); /* 影を強調 */
}

/* ホバー時のグラデーションエフェクト */
.contact-button::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 200%;
    height: 100%;
    background: rgba(255, 255, 255, 0.3); /* 光のエフェクト */
    transition: all 0.4s ease;
    transform: skewX(-45deg);
    opacity: 0;
}

.contact-button:hover::before {
    left: 0;
    opacity: 1; /* ホバー時に光を表示 */
}





/* 1つ目のボタン（赤系） */
.contact-buttonDate {
    background: linear-gradient(120deg, #DB2943, #FF5733);
}

.contact-buttonDate:hover {
    background: linear-gradient(120deg, #FF5733, #DB2943); /* グラデーション反転 */
    transform: translateY(-3px) scale(1.03); /* 浮き上がる効果 */
    box-shadow: 0 10px 15px rgba(0, 0, 0, 0.3); /* ホバー時の影 */
}

/* 2つ目のボタン（青系） */
.contact-buttonWeb {
    background: linear-gradient(120deg, #1E90FF, #4169E1);
}

.contact-buttonWeb:hover {
    background: linear-gradient(120deg, #4169E1, #1E90FF); /* グラデーション反転 */
    transform: translateY(-3px) scale(1.03);
    box-shadow: 0 10px 15px rgba(0, 0, 0, 0.3);
}

/* 3つ目のボタン（緑系） */
.contact-buttonLine {
    background: linear-gradient(120deg, #32CD32, #228B22);
}

.contact-buttonLine:hover {
    background: linear-gradient(120deg, #228B22, #32CD32); /* グラデーション反転 */
    transform: translateY(-3px) scale(1.03);
    box-shadow: 0 10px 15px rgba(0, 0, 0, 0.3);
}

/* クリック時の効果を全てのボタンに適用 */
.contact-button:active {
    transform: scale(0.97); /* クリック時に縮小 */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); /* クリック時の影 */
}


	.line-button {
    background-color: #FFD700;
    color: #333;
    padding: 10px 20px;
    font-size: 1.2rem;
    font-weight: bold;
    border: none;
    border-radius: 15px;
    cursor: pointer;
    transition: background-color 0.3s ease, transform 0.3s ease;
    text-align: center;
    display: inline-block;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

.line-button:hover {
    background-color: #FFC107; /* ホバー時に少し濃い色に */
    transform: translateY(-3px); /* 浮き上がり効果 */
    box-shadow: 0 10px 15px rgba(0, 0, 0, 0.2); /* ホバー時の影を強調 */
}

.line-button:active {
    transform: scale(0.97); /* クリック時に少し縮小 */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* クリック時の影 */
}


        .sorocontainer {
            max-width: 900px;
            width: 95%;
            margin: 0 auto;
            background-color: #1b8d30;
            border-radius: 25px;
            padding: 20px;
            box-sizing: border-box;
            text-align: center;
            color: #ffffff;
        }

        .soroheader {
            font-size: calc(1.5rem + 1vw);
            font-weight: bold;

        }

        .sorotitle {
            background-color: #ffffff;
            color: #1b8d30;
            font-size: calc(1rem + 0.5vw);
            font-weight: bold;
            border-radius: 15px;
            display: inline-block;
        }

        .sorosubtitle {
            font-size: calc(1.5rem + 1vw);
            font-weight: bold;
            line-height: 1.5;
        }

        .soroimage-container {
            margin: 20px 0;
        }

        .sorobranch-list {
            font-size: calc(1rem + 0.8vw);
            line-height: 1.8;
			padding-bottom: 10px;
        }

        .sorobranch-title {
            font-size: calc(1rem + 1.5vw);
            font-weight: bold;
            color: black;
            background: linear-gradient(90deg, #ffcd00, #ff9800);
            padding: 10px 0;
            border-radius: 25px;
            margin-bottom: 15px;
			display: block;
			width: 100%;
        }

        .sorocta {
            background-color: #ffffff;
            color: #1b8d30;
            font-size: calc(2rem + 0.5vw);
            font-weight: bold;
            padding: 15px;
            border-radius: 10px;
            margin-bottom: 10px;
            display: inline-block;
        }

        .sorocta-link {
            background-color: #ffcd00;
            color: #000000;
            font-size: calc(1rem + 0.5vw);
            font-weight: bold;
            padding: 10px 20px;
            border-radius: 10px;
            text-decoration: none;
            display: block;
            margin-top: 10px;
        }

        .sorologo {
            margin-bottom: 20px;
        }

        .sorotarget-grade {
            background-color: #ffffff;
            color: #1b8d30;
            font-size: calc(1.2rem + 0.5vw);
            font-weight: bold;
            padding: 15px;
            border-radius: 15px;
            margin: 15px 0;
            display: inline-block;
        }

.hero-announcement {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  color: white;
  font-size: clamp(2rem, 3vw, 3rem); /* Responsive font size */
  font-weight: bold;
  text-align: center;
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
  line-height: 1.5;
	width: 100%;
}



@media (max-width:465px) {
.campaign-details h4 span {
    display: block; /* 改行を強制 */
    color: yellow; /* 黄色に変更 */
    font-size: 6rem; /* サイズを大きく設定 */
    font-weight: bold; /* 太字にする */
}

	.campaign-details h2 span {
    display: block; /* ブロック表示にして改行 */
    text-align: center; /* 中央揃え */
    margin-bottom: 5px; /* 適度な余白を追加 */
}

.campaign-details h2 {
    font-size: 1.5em; /* スマホ用に適切なサイズに調整 */
    line-height: 1.4; /* 行間を調整 */
    text-align: center; /* 全体を中央揃え */
	display:block;
}
	
}
