
/* --------------------------------------------------------------------------------------
	対面指導
--------------------------------------------------------------------------------------- */

.underline {
	text-decoration: underline;
	text-decoration-color: yellow;
  }
  
  .point {
	  /* background-color: #ecfdee; */
	  /* padding-bottom: 72px; */
	  /* padding-top: 68px; */
  }
  
  .point h2 {
	  font-size: 3.2rem;
	  font-weight: 700;
	  letter-spacing: 2px;
	  line-height: 1.7;
  }
  
  .point h2 strong {
	  font-feature-settings: 'palt';
	  font-size: 4rem;
	  font-weight: 700;
  }
  
  .point h2 strong span {
	  background-color: #fe0;
	  padding: 0 10px;
  }
  
  .point h2 > b,
  .point h2 strong span b { color: #009245; }
  
  .point .inner {
	  counter-reset: number 0;
	  margin-top: 40px;
  }
  
  .point .inner section {
	  background-color: #fff;
	  border: 0.05em #ddd solid;
	  border-radius: 10px;
	  margin-top: 36px;
	  min-height: 326px;
	  overflow: hidden;
	  padding: 32px 32px 32px;
	  position: relative;
  }
  
  @media (min-width: 767px) {
	.point .inner section:first-child { 
		padding-right: 500px;
	 }

  }
  
  .point .inner section:nth-child(n+2) { padding-right: 480px; }
  
  .sp_icon {
	background-color: #009245;
	border-radius: 10px;
	color: #fff;
	font-size: 2.4rem;
	font-weight: 600;
	left: 0;
	line-height: 1.1;
	padding: 6px 18px;
	text-align: center;
	top: 0;
  }
  
 .sp_icon::after {
	content: '' counter(number);
    counter-increment: number 1;
    font-size: 2.6rem;
  }

  .point .inner section .icon {
	background-color: #009245;
	border-radius: 10px;
	color: #fff;
	font-size: 2.4rem;
	font-weight: 600;
	left: 0;
	line-height: 1.1;
	padding: 6px 18px;
	text-align: center;
	top: 0;
}

.point .inner section .icon::after {
    content: '' counter(number);
    counter-increment: number 1;
    font-size: 2.6rem;
}
   
  .point .inner section .ribbon {
	  background-color: #15bbf2;
	  color: #fff;
	  font-size: 2.4rem;
	  font-weight: 500;
	  line-height: 1.2;
	  padding: 14px 24px 50px;
	  position: absolute;
	  right: 32px;
	  top: 0;
  }
  
  .point .inner section .ribbon::after {
	  background-color: #fff;
	  bottom: 0;
	  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
	  content: '';
	  display: block;
	  height: 26px;
	  left: 0;
	  position: absolute;
	  width: 100%;
  }
  
  .point .inner section h3 {
	  color: #009245;
	  font-size: 2.4rem;
	  font-weight: 700;
	  letter-spacing: 1px;
	  text-align: center;
	  padding-top: 15px;
  }
  
  .point .inner section h4 {
	  font-weight: 700;
	  letter-spacing: 1px;
	  line-height: 1.8;
	  margin-top: 24px;
	  text-align: center;
  }
  
  .point .inner section .details {
	  display: flex;
	  justify-content: space-between;
	  margin-top: 28px;
  }
  
  .point .inner section .details .column {
	  background-color: #f3f9fc;
	  border-radius: 10px;
	  min-width: 440px;
	  padding: 20px;
	  text-align: center;
  }
  
  .point .inner section .details .column h5 {
	  border-bottom: 1px solid #cdcdcd;
	  font-size: 2rem;
	  font-weight: 700;
	  padding-bottom: 10px;
  }
  
  .point .inner section .details .column h5 span { color: #0062b2; }
  
  .point .inner section .details .column h6 {
	  font-weight: 700;
	  margin-top: 10px;
  }
  
  .point .inner section .details .column dl {
	  align-items: center;
	  display: flex;
	  justify-content: center;
	  margin-top: 8px;
  }
  
  .point .inner section .details .column dt {
	  background: url(../img/icon_balloon.svg) no-repeat;
	  display: flex;
	  flex-direction: column;
	  font-size: 1.2rem;
	  font-weight: 700;
	  height: 91px;
	  justify-content: center;
	  letter-spacing: 0;
	  line-height: 1.3;
	  padding-left: 27px;
	  width: 115px;
  }
  
  .point .inner section .details .column dt span { color: #f24444; }
  
  .point .inner section .details .column dd {
	  font-size: 3.2rem;
	  font-weight: 600;
	  line-height: 1.3;
	  margin-left: 10px;
  }
  
  .point .inner section .details .column dd span {
	  color: #0062b2;
	  font-size: 4rem;
	  font-weight: 600;;
	  line-height: 1;
  }
  
  .point .inner section .details .column dd span b {
	  font-size: 8rem;
	  font-weight: 600;
	  line-height: 1;
  }
  
  .point .inner section .details .column p {
	  font-size: 1.2rem;
	  font-weight: 500;
	  letter-spacing: 0;
	  margin-top: 10px;
  }
  
  .point .inner section .image {
	  position: absolute;
	  right: 34px;
	  top: 32px;
  }
  
  .point .inner section .acc-txt {
	  margin-top: 28px;
	  position: relative;
  }
  
  .point .inner section .acc-content {
	  max-height: 110px;
	  overflow: hidden;
	  position: relative;
	  transition: all .1s ease-in-out;
  }
  
  .point .inner section .acc-txt input[type='checkbox']:checked + label + .acc-content {
	  max-height: 1000px;
	  padding-bottom: 72px;
	  transition: all .2s ease-in-out;
  }
  
  .point .inner section .acc-content::after {
	  background-image: linear-gradient(180deg, rgba(255, 255, 255, .8) 40%, rgba(255, 255, 255, 1) 90%);
	  bottom: 0;
	  content: '';
	  display: block;
	  height: 100%;
	  left: 0;
	  position: absolute;
	  transition: all .4s ease-in-out;
	  width: 100%;
  }
  
  .point .inner section .acc-txt input[type='checkbox']:checked + label + .acc-content::after {
	  opacity: 0;
	  transition: all 1s ease-in-out;
  }
  
  .point .inner section .acc-txt input[type='checkbox'] { display: none; }
  
  .point .inner section .acc-txt label {
	  background-color: #fff;
	  border: 1px solid #009245;
	  border-radius: 100vw;
	  bottom: 0;
	  color: #009245;
	  cursor: pointer;
	  display: inline-block;
	  font-weight: 700;
	  left: calc(50% - 110px);
	  min-width: 220px;
	  padding: 10px 0;
	  position: absolute;
	  text-align: center;
	  z-index: 1;
  
  }
  
  .point .inner section .acc-txt label::before { content: 'もっと見る'; }
  .point .inner section .acc-txt input[type='checkbox']:checked + label::before { content: '閉じる'; }
  
  .point .inner section .acc-txt label::after {
	  background: url(/course/2k/2a_lp/imgs/icon_plus.svg) no-repeat;
	  background-size: cover;
	  content: '';
	  display: block;
	  height: 12px;
	  position: absolute;
	  right: 20px;
	  top: calc(50% - 6px);
	  width: 12px;
  }
  
  .point .inner section .acc-txt input[type='checkbox']:checked + label::after {
	  background-image: url(/course/2k/2a_lp/imgs/icon_minus.svg);
	  height: 2px;
	  top: calc(50% - 1px);
  }

  .arrow {
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 50px 150px 0 150px;
	border-color: #009245 transparent transparent transparent;
	margin:20px auto;
	margin-top:0px;
  }

  .courselist_description_calendar_table td:before {
	content: "";
	display: block;
	position: absolute;
	left: 0;
	top: -2px;
	width: 36px;
	height: calc(100% + 4px);
	background: url(/course/2k/2a_lp/imgs/bg_flowtable2.png) no-repeat 0% 0%;
	 background-size: 36px 100%;
	}
	
	.courselist_description_calendar_table td.bgoff {
			background-color: #009245;
			color: #fff;
	}

	.detail_title, .detail_title_s, .detail_title_m {
		border-bottom: 1px solid #009245;
	}
  
  @media (max-width: 767px) {
  
	  /* .point { padding: 12vw 0vw 8.533vw; } */
  
	  .point h2 { font-size: 4.6vw; }
	  .point h2 strong { font-size: 5.8vw; }
  
	  .point h2 strong span {
		  font-weight: 700;
		  padding: 0 1.333vw;
	  }
  
	  .point .inner { margin-top: 6.4vw; }
  
	  .point .inner section {
		  display: flex;
		  flex-direction: column;
		  padding: 30px 12px 32px;

	  }
  
	  .point .inner section .icon {
		  font-size: 3.733vw;
		  font-weight: 700;
		  padding: 2.133vw 2.667vw;
	  }
  
	  .point .inner section .icon::after { font-size: 6.4vw; }
  
	  .point .inner section .ribbon {
		  font-size: 3.733vw;
		  padding: 2.133vw 2.667vw 6.333vw;
		  right: 0;
	  }
  
	  .point .inner section .ribbon::after { height: 3.467vw; }
  
	  .point .inner section h3 { 
		font-size: 5.333vw;
	 }
  
	  .point .inner section h4 {
		  font-size: 3.733vw;
		  letter-spacing: 0;
		  margin-top: 3.467vw;
	  }
  
	  .point .inner section .details {
		  display: block;
		  margin-top: 5.067vw;
	  }
  
	  .point .inner section .details .column {
		  border-radius: 1.333vw;
		  margin-top: 4.267vw;
		  min-width: inherit;
		  padding: 5.067vw 4.267vw 6.4vw;
		  width: 100%;
	  }
  
	  .point .inner section .details .column:first-child { margin-top: 0; }
  
	  .point .inner section .details .column h5 {
		  font-size: 4.267vw;
		  letter-spacing: 2px;
		  padding-bottom: 2.933vw;
	  }
  
	  .point .inner section .details .column h6 {
		  font-size: 3.733vw;
		  margin-top: 3.2vw;
	  }
  
	  .point .inner section .details .column dl { margin-top: 3.2vw; }
  
	  .point .inner section .details .column dt {
		  background-size: 100% auto;
		  font-size: 2.433vw;
		  font-weight: 700;
		  height: 21.733vw;
		  line-height: 1.4;
		  padding-left: 6.333vw;
		  width: 26.267vw;
	  }
  
	  .point .inner section .details .column dd {
		  font-size: 7.467vw;
		  margin-left: 2.133vw;
	  }
  
	  .point .inner section .details .column dd span {
		  font-size: 8vw;
		  font-weight: 700;
	  }
  
	  .point .inner section .details .column dd span b {
		  font-size: 17.067vw;
		  font-weight: 700;
	  }
  
	  .point .inner section .details .column p {
		  font-size: 2.667vw;
		  font-weight: 500;
		  margin-top: 1.333vw;
	  }
  
	  .point .inner section:nth-child(n+2) {
		  display: flex;
		  flex-direction: column;
		  padding-right: 5.333vw;
	  }
  
	  .point .inner section:nth-child(n+2) h3 { order: 1; }
	  .point .inner section:nth-child(n+2) h4 { order: 2; }
  
	  .point .inner section .image {
		  margin-top: 5.067vw;
		  order: 3;
		  position: relative;
		  right: auto;
		  top: auto;
	  }
  
	  .point .inner section .acc-txt { order: 4; }
  
	  .point .inner section .acc-content { max-height: 26.667vw; }
  
	  .point .inner section .acc-txt label {
		  box-sizing: border-box;
		  font-size: 3.733vw;
		  left: calc(50% - 26.4665vw);
		  min-width: 52.933vw;
		  padding: 3.2vw;
	  }

	  .arrow {
		width: 0;
		height: 0;
		border-style: solid;
		border-width: 30px 60px 0 60px;
		border-color: #009245 transparent transparent transparent;
		margin:20px auto;
		margin-top:0px;
	  }
  }

/*fadeupアニメーションcss */
.anime_wrap {
opacity: 0;
transform: translateY(20px);
transition: opacity 1.5s ease-out, transform 1s ease-out;
}

.fadeup {
animation-name: fadeUpAnime;
animation-duration: 1s;
animation-fill-mode: forwards;
opacity: 1;
transform: translateY(0);
}

/* カード型CSS */
.card_wrapper {
	margin-top: 100px;
}
.cards {
	display: grid;
	gap: 1rem 4.5rem;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}
.card {
	--image-width: 10rem;
	padding: 3rem;
	margin-inline: auto;
	padding-top: 0;
	margin-bottom: 60px;
	display: flex;
	flex-direction: column;
	align-items: center;
	max-width: 47rem;
	border: 1px solid #ddd;
	border-radius: .5rem;
}
.card img {
	width: var(--image-width);
	margin-top: calc(var(--image-width) / 2 * -1);
	background-color: #ffffff;
	aspect-ratio: 1;
	border-radius: 50%;
	border: 1px solid #ddd;
	object-fit: cover;
}
.img_position {
	object-position: 100% 10%;
}
.text-wrap h2 {
	text-align: center;
	margin: 10px 0;
	font-size: clamp(1.7rem, 3.3vw, 2rem);
	color: #009245;
}
.sc_name {
	text-align: center;
	margin-top: 5px;
}

.schedule {
	font-size: 1.8rem;
}
.add_message {
	font-weight: bold;
	font-size: clamp(1.2rem, 4.3vw, 1.75em);
	text-align: center;
	margin-top: 40px;
	margin-bottom: 20px;
}
.section_menu_list3s.add_section_menu_list {
	margin: 0;
}
.add_section_menu_list {
	margin:30px auto 0;
}
@media (max-width: 767px) {
	.card {
		padding: 0 2rem 4rem;
	}
	.add_card_sp_style {
		margin-bottom: 0;
	}
	.add_message {
		margin-bottom: 10px;
	}
}

/* お悩みありませんかブロックCSS */
.add_issue {
	padding-bottom: 100px;
}
.issue {
	text-align: center;

}
.issue_title {
	font-size: clamp(1.6rem, 4.4vw, 2.4rem);
	text-align: center;
	padding-top: 30px;
}
.issue_image_wrap {
	margin-top: 30px;
}
.solution_text_wrap {
    text-align: center;
    background-color: #009245;
    padding: 60px;
	color: #fff;
}
.solution_sub_text {
	text-align: center;
	font-size: clamp(1.6rem, 4.4vw, 2.4rem);
}
.solution_main_text {
    width: 100%;
    font-size: clamp(1.5rem, 4.4vw, 4rem);
}
.jisseki_image_wrap {
	text-align: center;
}
@media (max-width: 767px) {
	.add_issue {
		padding-bottom: 30px;
	}
	.solution_text_wrap {
		padding: 20px;
	}
}
.summary_contents {
	padding: 30px 60px;
	margin-bottom: 10px;
	border: 1px dotted #333333;
	text-align: left;
	font-size:1.1em;
	line-height: 4rem;
}
/* .summary_item {
	line-height: 2rem;
} */
.p-fir-bottom {
	margin-bottom: 100px;
}
.p-bottom {
	margin-bottom: 100px;
}
.mv_text {
	font-size: clamp(0.75rem, 3.4vw, 1.2rem);
	margin-top: 10px;
	text-align: end;
}

@media (max-width: 767px) {
	.summary_contents {
		padding: 30px 10px;
		line-height: 3rem;
	}
	.p-fir-bottom {
		margin-bottom: 0px;
	 }
	.p-bottom {
		margin-bottom: 10px;
	}
	.mv_text {
		text-align: left;
		margin-left: 10px;
	}
}

/* ===== LP用headerCSS ===== */
header {
	position: static;
}
.header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	min-height: 120px;
	padding: 16px 20px;
	background: #fff;
	/* box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); */
}
.header_nav {
	display: flex;
	gap: 10px;
}
.nav_btn {
	text-align: center;
	color: #fff;
	border-radius: 20px;
	cursor: pointer;
	min-width: 232px;
}
.nav_btn a {
	font-size: clamp(1.4rem, 2.5vw, 2.4rem);
	color: #fff;
	padding: 15px 75px;
}
.material a {
	background:  rgba(255,151,0,1);
	line-height: 42px;
	border: none;
	box-shadow:
	 -7px -7px 20px 0px rgba(255,255,255,.9),
	 -4px -4px 5px 0px rgba(255,255,255,.9),
	 7px 7px 20px 0px rgba(0,0,0,.2),
	 4px 4px 5px 0px rgba(0,0,0,.3);
	border-radius: 50px;
}
.material a:hover{
	background: linear-gradient(0deg, rgba(255,151,0,1) 0%, rgba(251,75,2,1) 100%);
	transition: all 0.3s ease;
}
.discussion a {
	background: rgb(0,172,238);
	line-height: 42px;
	border: none;
	box-shadow:
	-7px -7px 20px 0px rgba(255,255,255,.9),
	-4px -4px 5px 0px rgba(255,255,255,.9),
	7px 7px 20px 0px rgba(0,0,0,.2),
	4px 4px 5px 0px rgba(0,0,0,.3);
	border-radius: 50px;
}
.discussion a:hover{
	background: linear-gradient(0deg, rgba(0,172,238,1) 0%, rgba(2,126,251,1) 100%);
	transition: all 0.3s ease;
 }
@media screen and (max-width: 767px) {
	.header {
		min-height: 60px;
		padding: 5px;
	}
	.header_nav {
		gap: 5px;
	}
	.nav_btn {
		min-width: 0px;
	}
	.nav_btn a {
		padding: 10px 17px;
	}
	.logo-wrap img {
		width: 90%;
	}
	.nav_btn {
		width: 90px;
	}
	.material a {
		background: linear-gradient(0deg, rgba(255,151,0,1) 0%, rgba(251,75,2,1) 100%);
		box-shadow:
		 0px 0px 0px 0px rgba(255,255,255,.9),
		 0px 0px 0px 0px rgba(255,255,255,.9),
		 7px 7px 20px 0px rgba(0,0,0,.2),
		 4px 4px 5px 0px rgba(0,0,0,.3);
	}
	.discussion a {
		background: linear-gradient(0deg, rgba(0,172,238,1) 0%, rgba(2,126,251,1) 100%);
		box-shadow:
		 0px 0px 0px 0px rgba(255,255,255,.9),
		 0px 0px 0px 0px rgba(255,255,255,.9),
		 7px 7px 20px 0px rgba(0,0,0,.2),
		 4px 4px 5px 0px rgba(0,0,0,.3);
	}
}

/* ===== MV_CT_CSS ===== */
.mv_cta {
	margin-top: 60px;
}
.mv_cta_nav {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 60px;
}
.mv_cta_nav .nav_btn a {
	font-size: 2.8rem;
	color: #fff;
	padding: 18px 145px;
}
@media screen and (max-width: 698px) {
	.mv_cta_nav {
		flex-direction: column;
		gap: 0px;
		margin-top: 10px;
	}
	.mv_cta {
		margin-top: 40px;
	}
	.mv_btn_sp {
		width: 100%;
	}
	.mv_cta_nav .nav_btn a {
		font-size: 2.0rem;
		padding: 25px 60px;
	}
	.mv_cta_nav .discussion {
		margin-top: 60px;
	}
}
@media screen and (max-width: 355px) {
	.mv_cta_nav .nav_btn a {
		font-size: 1.8rem;
		padding: 25px 50px;
	}
}
/* ===== LP用footerCSS ===== */
footer {
	padding: 40px 0px 40px;
	background-color: #e8e8e8;
}
.copyright {
	padding: 0px;
}
@media screen and (max-width: 767px) {
	.copyright {
	text-align: center;
	}
}

  /* ===== LP用floatingCSS ===== */
  .pc_cv_floating {
	position: fixed;
	bottom: 0;
	right: -90px; /* 画面の右側から出ているようにする */
	background-color: rgba(128, 128, 128, 0.8); /* 背景色を少し薄くする */
	padding: 50px 10px 10px 10px;
	border-radius: 30px 0 0 0;
	z-index: 1000;
	transition: right 0.3s, opacity 0.5s; /* スムーズなアニメーションを追加 */
	opacity: 0;
  }
  
  .pc_cv_floating.show {
	right: 0; /* 完全に表示されるようにする */
	opacity: 1;
  }
  
  .pc_cv_floating .floating_nav_pc {
	list-style-type: none;
	padding: 0;
	margin: 0;
  }
  .floating_nav_pc a {
	box-shadow: 0px 0px 0px 0px rgba(255, 255, 255, .9), 0px 0px 0px 0px rgba(255, 255, 255, .9), 3px 3px 20px 0px rgba(0, 0, 0, .2), 4px 4px 5px 0px rgba(0, 0, 0, .3);
	border-radius: 50px;
}
.floating_nav_pc a:hover {
	border-radius: 50px;
}
  
  .pc_cv_floating .floating_nav_btn {
	margin: 10px 0;
  }
  
  .pc_cv_floating .floating_nav_btn a {
	display: block;
	padding: 25px 100px;
	font-size: 24px;
	color: white;
	text-decoration: none;
	text-align: center;
  }
  
  .sp_cv_floating {
	display: none;
	position: fixed;
	bottom: 0;
	width: 100%;
	background-color: rgb(161 159 159 / 70%);
	z-index: 1000;
	opacity: 0;
	transition: opacity 0.5s;
  }
  
  .sp_cv_floating.show {
	opacity: 1;
	bottom: 30px;
  }
  
  .sp_cv_floating .floating_nav_sp {
	display: flex;
	justify-content: center;
	list-style-type: none;
	margin: 0;
  }
  
  .sp_cv_floating .floating_nav_btn {
	flex: 1;
	text-align: center;
	margin: 0px 2px;
	padding: 10px 0;
  }
  
  .sp_cv_floating .floating_nav_btn a {
	display: block;
	padding: 8px 20px;
	font-size: 18px;
	color: white;
	text-decoration: none;
	text-align: center;
  }
  
  .sp_cv_floating .floating_nav_btn a:hover {
	background-color: #0056b3;
  }
  
  .sp {
	display: none;
  }

  @media (max-width: 768px) {
	.pc {
	  display: none;
	}
	.sp {
	  display: block;
	}
	.pc_cv_floating {
	  display: none;
	}
	.sp_cv_floating {
	  display: block;
	}
  }
  @media (min-width: 768px) {
	a:link {
        text-decoration: none;
    }
  }

.cms_contents:last-child {
	padding-bottom: 0px;
}
