html {
  scroll-behavior: smooth;
  font-size: 16px;
}

.container {
  box-sizing: border-box;
  max-width: 1170px;
  width: 100%;
  padding: 0 15px;
  margin: 0 auto;
}

header {
  height: 55px;
  width: 100%;
  background-color: rgba(0, 170, 0, 0.7); /* 背景だけ透過 */
  position: fixed;
  top: 0;
  z-index: 10;
}
.logo {
  width: 150px;
  margin-top: 10px;
}
.header_left {
  float: left;
}
.header_right {
  float: right;
  color: white;
}
.header_right a {
  line-height: 55px;
  padding: 0 20px;
  display: block;
  float: left;
  transition: all 0.5s;
  font-size: 22px;
  font-weight: bold;
}
.header_right a:hover {
  background-color: #026b02;
}

body {
  margin: 0;
  font-family: sans-serif;
}
a {
  text-decoration: none;
}
a,
a:visited, a:hover, a:active {
  color: inherit;
}

.border_line {
  padding: 0 0;
  margin: 10px 20px 30px 20px;
  border: solid 2px #E0E0E0;  
  border-radius: 5px;
}

.box1 {
  border: 2px solid #E0E0E0;
  background-color: #fffff3;
  padding: 0 0;
  margin: 10px 20px 30px 20px;
  border-radius: 5px;
}
.box2 {
  border: 2px solid #E0E0E0;
  background-color: #f2f6fd;
  padding: 0 0;
  margin: 10px 20px 30px 20px;
  border-radius: 5px;
}
.box3 {
  border: 2px solid #E0E0E0;
  background-color: #fff7fe;
  padding: 0 0;
  margin: 10px 20px 30px 20px;
  border-radius: 5px;
}

.left_line {
  padding: 5px 15px;
  border-left: solid 8px #C4A74E;
}
.left_line2 {
  padding: 5px 15px;
  border-left: solid 8px olive;
}
.left_line3 {
  padding: 5px 15px;
  border-left: solid 8px #25a87c;
}
.left_line5 {
  padding: 5px 15px;
  border-left: solid 8px #00AA00;
}

.far, .fas {
  color: 	#444444;
}
.left {
  text-align: left;
  margin-left: 15px;
}
.right {
  text-align: right;
  margin-right: 20px;
}

.price {
  color: #E8487B;
  font-weight: bold;
}
.price1 {  
  color: gray;
  font-weight: bold;
}
.price2 {  
  color: #474747;
  font-weight: bold;
}
.sold {
  color: #DD0000;
  font-weight: bold;
}
.line_through {
  text-decoration: line-through;
}
.price, .price1, .line_through, .sold {
  font-size: 56px;
}

.skip_icon {
  color: white;
  font-weight: bold;
  background-color: rgba(60, 180, 113);
  padding: 5px 70px;  
  border-color: rgba(60, 180, 113);  
  border-style: solid;
}
.skip_icon:hover {
  color: rgba(60, 180, 113);  
  background-color: white;
}

.clear {
  clear: left;
}

.top_wrapper {
  padding: 180px 0 80px 0;
  background-image: url(img/refusal_4.webp);
  background-size: cover;
  background-position: left;
  width: 100%;
  color: white;
  text-align: center;
}
.top_wrapper h1 {
  position: absolute;
  top: 15px;
  font-size: 36px;
  letter-spacing: 3px;
  text-shadow: 2px 2px rgb(95, 95, 95);
}

.btn_wrapper {
  text-align: center;
  margin: 20px 0;
  font-size: 20px;
  color: white;
}
.btn {
  padding: 8px 24px;
  margin: 10px 15px;
  display: inline-block;
  opacity: 0.75;
  border-radius: 4px;
  text-align: center;  
}
.btn:hover {
  opacity: 1;
}

.youtube {
  background-color: #FC031B;
}
.mail {
  background-color: #3b5998;
}
.line {
  background-color: #00AA00;
}

.btn_zoom {
  position: relative;
  display: inline-block;
  padding: 8px 30px;
  margin: 5px 5px;
  text-decoration: none;
  color: white;
  font-size: 18px;
  background: #2b8aff;
  border-radius: 4px;
  box-shadow: inset 0 2px 0 rgba(255,255,255,0.2), inset 0 -2px 0 rgba(0, 0, 0, 0.05);
  font-weight: bold;
  border: solid 2px #166cff;
}
.btn_iphone {
  position: relative;
  display: inline-block;
  padding: 8px 10px;
  margin: 5px 5px;
  text-decoration: none;
  color: white;
  font-size: 18px;
  background: #fd9535;
  border-radius: 4px;
  box-shadow: inset 0 2px 0 rgba(255,255,255,0.2), inset 0 -2px 0 rgba(0, 0, 0, 0.05);
  font-weight: bold;
  border: solid 2px #d27d00;
}
.btn_android {
  position: relative;
  display: inline-block;
  padding: 8px 10px;
  margin: 5px 5px;
  text-decoration: none;
  color: white;
  font-size: 18px;
  background: red;
  border-radius: 4px;
  box-shadow: inset 0 2px 0 rgba(255,255,255,0.2), inset 0 -2px 0 rgba(0, 0, 0, 0.05);
  font-weight: bold;
  border: solid 2px rgb(192, 0, 0);
}
.btn_zoom:hover, .btn_iphone:hover, .btn_android:hover {
  opacity: 0.7;
  box-shadow: 0 0 2px rgba(0, 0, 0, 0.30);
}

.heading {
  padding-bottom: 10px;
}

.heading h2 {
  font-weight: bold;
  font-size: 60px;
  margin-top: 45px;
  text-align: center;
  color: #444444;
}
.heading img {
  width: 40%;
}

/* 文字色 */
.bold {
  font-weight: bold;
}
.normal {
  font-weight: normal;
}

.white {
  color: white;
  font-weight: normal;
}
.red, .red1 {
  color: red;
}
.red2 {
  color: rgb(209, 3, 3);
}
.navy {
  color: navy;
}
.navy1 {
  color: navy;
}
.blue {
  color: rgb(0, 0, 197);
}
.blue1 {
  color: rgb(4, 4, 182);
}
.blue2 {
  color: rgb(152, 217, 255);
}
.blue3 {
  color: rgb(48, 48, 199);
}
.green, .green1 {
  color: #00AA00;
}
.green2 {
  color: #088608;
}
.green3 {
  color: #026302;
}
.green5 {
  color: #25a87c;
}
.green6 {
  color: #00a764;
}
.purple {
  color: purple;
}
.orange {
  color: orangered;
}
.orange1 {
  color: #ff9800;
}
.orange3 {
  color: #A0522D;
}
.orange5 {
  color: #ff6600;
}

.yellow {
  color: #FFFF66;
}
.ocher {
  color: #C4A74E;
}
.ocher1 {
  color: #f7e2a3;
}
.olive {
  color: olive;
}
.pink, .pink1 {
  color: #E8487B;
}
.pink2 {
  color: #fca4c0;
}
.pink3 {
  color: #fa4881;
}
.pink5 {
  color: #fcc5d7;
}
.gray {
  color: gray;
}
.gray1 {
  color: rgb(190, 190, 190);
}
.darkgray, .darkgray1 {
  color: #474747;
}
.gray1:hover {
  color: rgb(255, 255, 255);
  text-decoration: underline;
}

.blue:hover, .navy:hover, .darkgray1:hover {
  color: rgb(7, 7, 150);
  text-decoration: underline;
}
.green:hover, .red:hover, .pink:hover, .orange5:hover {
  text-decoration: underline;
}

.underline {
  text-decoration: underline;
}

.youtube_wrapper {  
  margin-bottom: 30px;
}
.mylesson_wrapper, .price_wrapper {
  padding-bottom: 30px;
  margin-bottom: 50px;
}
.mylesson_wrapper h3, .mylesson_wrapper p,.price_wrapper h3, .price_wrapper p {
  margin-left: 20px;
  width: 95%;
}

.example {
  margin: 10px 0;
  color: white;
  text-align : center;
}
.example_1 {
  position: relative;
}
.example_1 img {
  width: 100%;
}
.example_1 h2 {
  position: absolute;
  text-align: left;
  top: 2%;
  left: 5%;
  width: 90%;
  color: #FF99CC;
  font-size: 50px;
  letter-spacing: 3px;
}

.example_1 p {
  position: absolute;
  text-align: left;
  top: 18%;
  left: 3%;
  width: 90%;
  font-size: 38px;
  line-height: 1.6;
}
.example_1 p span {
  size: 38px;
  font-weight: bold;
}

.comparison {
  position: relative;
}
.comparison h4 {
  position: absolute;
  text-align: left;
  top: 77%;
  left: 10%;
  color: #444444;
  font-size: 45px;
  font-weight: bold;
}
.comparison p {
  position: absolute;
  text-align: left;
  top: 83%;
  left: 0%;
  color: #444444;
  font-size: 28px;
}
.comparison img {
  width: 100%;
}

.explanation {
  color: #444444;
  margin-bottom: 30px;
}


.month_wrapper {
  padding-bottom: 10px;
  text-align: center;
}
.month {
  float: left;
  width: 50%;
}
.grade {
  float: left;
  width: 33%;
}
.month_icon {
  position: relative;
}
.month_icon:hover {
  transform: scale(1.2);
  transition: transform .5s;
}
.month_icon p {
  position: absolute;
  top: -45px;
  width: 100%;
  color: white;
  font-size: 75px;
  font-weight: bold;
  text-shadow: 3px 3px 5px #3d3636;
}
.month_icon img {
  width: 100%;
  max-width: 100%;
  height: auto;
}

hr {
  border: 1px solid transparent;
}

.subject {
  position: relative;
  float: left;
  width: 25%;
  margin: 15px 0;
}
.subject_icon img {
  width: 100%;
}
.subject_icon p {
  position: absolute;
  top: -37px;
  width: 100%;
  color: black;
  font-size: 48px;
  font-weight: bold;
  letter-spacing: 5px;
}
.subject_icon:hover {
  transform: scale(1.15);
  transition: transform .5s;
}

.discount h3 {
  color: #E8487B;
  background: #FFE4E1;
  font-size: 48px;
  padding: 30px 0;
  margin: 20px 10px;
}
.spring h3 {
  color: #E8487B;
  background: #FFE4E1;
  font-size: 48px;
  padding: 30px 0;
  margin: 20px 10px;
}

.subject_select {
  margin: 10px 300px;
  background: white;
  border-left: solid 10px #444444;
  box-shadow: 5px 5px 3px rgba(0, 0, 0, 0.33);
}
.subject_select h2 {
  color: #444444;
  font-size: 48px;
  text-align: center;
  width: 100%
}
.grades p {
  color: #444444;
  text-align: left;
}
.grade_english, .grade_math, .grade_social_studies, .grade_science {
  border: solid 3px #DADDDC;
  border-radius: 10px;
  margin-bottom: 20px;
}


/* 共通設定 */
summary {
  position: relative;
  display: block;
  padding: 4px 10px;
  margin-bottom: 10px;
  cursor: pointer;
  font-weight: bold;
  opacity: 0.9;
  transition: 0.2s;
  font-size: 48px;
  color: white;
}
summary:hover {
  opacity: 0.6;
}
summary:-webkit-details-marker {
  display: none;
}
summary:before,
summary:after {
  content: "";
  margin: auto 0 auto 10px;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
}
summary:before {
  width: 16px;
  height: 16px;
  border-radius: 4px;
  background-color: #006600; /* 初期は中学生の色 */
}
summary:after {
  left: 6px;
  width: 5px;
  height: 5px;
  border: 4px solid transparent;
  border-left: 5px solid #fff;
  box-sizing: border-box;
  transition: 0.1s;
}
details[open] summary:after {
  transform: rotate(90deg);
  left: 4px;
  top: 5px;
}
/* 中学生カラー */
summary.basic {
  background-color: #00AA00;
}
details[open] summary.basic {
  background-color: #026b02;
}
summary.basic:before {
  background-color: #006600;
}
/* 高校生カラー */
summary.high {
  background-color: #fb678e;       /* 閉じているときのベース色：柔らかいピンク */
  color: white;
}
summary.high:before {
  background-color: #c05065;       /* ピンク系に調和したダークレッド系ボックス */
}
details[open] summary.high {
  background-color: #da3e5b;       /* 開いたときは少し深みのあるローズ系に変更 */
}
details[open] summary.high:before {
  background-color: #a22b42;       /* 開いたときのアイコンボックスも調和させる */
}
/* アニメーション（共通） */
details[open] .details_content {
  animation: fadeIn 0.5s ease;
}
@keyframes fadeIn {
  0% {
    opacity: 0;
    transform: translateY(-10px);
  }
  100% {
    opacity: 1;
    transform: none;
  }
}


.hours, .online {
  border-style: solid;
  border-radius: 50px;
  width: 55%;
  font-size: 40px;
  font-weight: bold;
}
.hours {
  color: white;
  border-color: #3CB371;
  background-color: #3CB371;
}
.online {
  color: #3CB371;
  border-color: #3CB371;
  background-color: white;
}

.off, .out, .next, .next1 {
  font-size: 48px;
  border-style: solid;
  color: white;
  width: 60%;
}
.off {
  border-color: #E8487B;
  background-color: #E8487B;
  letter-spacing: 2px;
}
.off:hover {
  color: #E8487B;
  background-color: white;
  letter-spacing: 2px;
}
.next, .next1, .out {
  border-color: #DD0000;
  background-color: #DD0000;
  letter-spacing: 7px;
}
.next:hover {
  background: white;
  color: #DD0000;
}

.english, .math, .history, .geography, .science {
  padding: 0.5em 1em;
  margin: 1em 1em;
  border-radius: 10px;
}
.english h3, .math h3, .history h3, .geography h3, .science h3 {
  text-align: left;
  font-weight: bold;
  font-size: 48px;
}
.english p, .math p, .history p, .geography p, .science p {
  margin: 10px 0;
  padding: 0;
  font-size: 45px;
}
.text_small {
  font-size: 40px;
}

.english img, .math img, .history img, .geography img, .science img {
  width: 100%;
  margin-bottom: 10px;
}

.english {
  color: #f86a5a;
  background: #ffebe9;
  border-top: solid 20px #f86a5a;
}
.math {
  color: 	#2C7CFF;
  background: #D7EEFF;
  border-top: solid 20px 	#2C7CFF;
}
.history {
  color: 	#ff9100fb;
  background: #FAEBD7;
  border-top: solid 20px 	#ff9100fb;
}
.geography {
  color: 	#469e6c;
  background: #d5f5d5;
  border-top: solid 20px 	#469e6c;
}
.english h3 span, .math h3 span, .history h3 span, .geography h3 span, .science h3 span {
  font-weight: normal;
  font-size: 40px;
}
.science {
  color: #9057FF;
  background: #FFEEFF;
  border-top: solid 20px #9057FF;
}

.cta {
  color: #474747;
  margin-top: 30px;
  text-align: left;
  margin-left: 20px;
}
.cta_1, .cta_2, .cta_3, .cta_4 {
  float: center;
  width: 100%;
}
.cta_1_icon, .cta_2_icon, .cta_3_icon, .cta_4_icon {
  display: inline-block;
  will-change: transform;
  transform-origin: center;
  transition: transform 0.4s;
  position: relative;
  overflow: hidden; /* 拡大で親領域をはみ出さないようにする */
}
.cta_1_icon:hover img, .cta_2_icon:hover img, .cta_3_icon:hover img, .cta_4_icon:hover img,
.cta_1_icon:hover p, .cta_2_icon:hover p, .cta_3_icon:hover p, .cta_4_icon:hover p {
  transform: scale(1.15);
  transition: transform 0.4s;
}
.cta_1_img, .cta_2_img, .cta_3_img, .cta_4_img {
  width:100%;
  max-width: 100%;
  height: auto;
}
.cta_1_icon p, .cta_2_icon p, .cta_3_icon p, .cta_4_icon p {
  position: absolute;
  top: -40px;
  width: 100%;
  color: white;
  font-size: 85px;
  font-weight: bold;
  text-shadow: 3px 3px 5px #3d3636;
  text-align: center;
}
.cta_1_icon img, .cta_2_icon img, .cta_3_icon img, .cta_4_icon img {
  width: 100%;
}

table {
  width: 95%;
  border-collapse:separate;
  border-spacing: 0;
  margin: 0 auto 20px auto;
}
table th:first-child {
  border-radius: 5px 0 0 0;
}
table th:last-child {
  border-radius: 0 5px 0 0;
  border-right: 1px solid #3c6690;
}
table th {
  text-align: center;
  color:white;
  font-size: 26px;
  background: linear-gradient(#829ebc,#225588);
  border-left: 1px solid #3c6690;
  border-top: 1px solid #3c6690;
  border-bottom: 1px solid #3c6690;
  box-shadow: 0px 1px 1px rgba(255,255,255,0.3) inset;
  width: 20%;
  padding: 10px 0;
}
table.table_red th {
  text-align: center;
  color:white;
  font-size: 26px;
  background: linear-gradient(	#CC0000,#660000);
  border-left: 1px solid #550000;
  border-top: 1px solid #550000;
  border-bottom: 1px solid #550000;
  box-shadow: 0px 1px 1px rgba(255,255,255,0.3) inset;
  width: 20%;
  padding: 10px 0;
}
table.table_black th {
  text-align: center;
  color:white;
  font-size: 26px;
  background: linear-gradient(	#999999,#222222);
  border-left: 1px solid #222222;
  border-top: 1px solid #222222;
  border-bottom: 1px solid #222222;
  box-shadow: 0px 1px 1px rgba(255,255,255,0.3) inset;
  width: 20%;
  padding: 10px 0;
}
table.table_5 th {
  text-align: center;
  color:white;
  font-size: 26px;
  background: linear-gradient(#829ebc,#225588);
  border-left: 1px solid #3c6690;
  border-top: 1px solid #3c6690;
  border-bottom: 1px solid #3c6690;
  box-shadow: 0px 1px 1px rgba(255,255,255,0.3) inset;
  width: 15%;
  padding: 10px 0;
}
table td {
  text-align: center;
  border-left: 1px solid #a8b7c5;
  border-bottom: 1px solid #a8b7c5;
  border-top:none;
  box-shadow: 0px -3px 5px 1px #eee inset;
  width: 20%;
  padding: 8px 0;
  font-size: 20px;
  background: white;
}
.top {
  color: #000099;
  font-size: 28px;
  font-weight: bold;
  background-color: #EEEEEE;
  padding: 8px 0;
}
.top1 {
  color: #333333;
  font-size: 20px;
  background-color: #EEEEEE;
  padding: 8px 0;
}
.top2 {
  color: #333333;
  font-size: 28px;
  font-weight: bold;
  background-color: #EEEEEE;
  padding: 8px 0;
}

table td:last-child {
  border-right: 1px solid #a8b7c5;
}
table tr:last-child td:first-child {
  border-radius: 0 0 0 5px;
}
table tr:last-child td:last-child {
  border-radius: 0 0 5px 0;
}
.margin_left {
  margin-left: 20px;
}
.margin_right {
  text-align: right;
  margin-right: 20px;
}


.price-table-wrapper {
  overflow-x: auto;
  margin-top: 1rem;
}
.price-table {
  width: 95%;
  min-width: 400px;
  margin: 0 auto;
  table-layout: auto;
}
.price-table th,
.price-table td {
  border: 1px solid #ccc;
  padding: 0.8rem;
  text-align: center;
  font-size: 1rem;
}
.price-table th {
  background-color: #f7f7f7;
  font-weight: bold;
}
.price-table td:first-child {
  background-color: #fafafa;
  font-weight: bold;
}
.price-note {
  margin-top: 0.5rem;
  font-size: 0.9rem;
  color: #555;
}


.profile_wrapper, .refusal_wrapper, .flow_wrapper, .cancel_wrapper, .refund_wrapper {
  border-bottom: 1px solid #eee;
  padding-bottom: 30px;
  margin-bottom: 50px;
  text-align: center;
}
.profile, .refusal, .refund {
  float: left;
}
.profile_img, .refusal_img {
  margin-bottom: 20px;
}
.profile_img h3, .refusal_img h3, .flow_img h3, .cancel_img h3, .refund_img h3 {
  margin-left: 20px;
  width: 95%;
  color: #444444;
  text-align: left;
}
.profile_img p, .refusal_img p, .flow_img p, .cancel_img p, .refund_img p {
  margin-left: 20px;
  width: 95%;
  color: #444444;
  text-align: left;
}
.profile_img img, .refusal_img img, .flow_img img, .cancel_img img, .refund_img img, .info_img img {
  width:100%;
  max-width: 100%;
  height: auto;
}
.profile_img ul, .flow_img ul, .cancel_img ul, .refund_img ul, .refusal_img ul {
  width: 90%;
  color: #444444;
  text-align: left;
}

.pay {
  text-align: center;
}

li {
  margin-bottom: 5px;
}

.bold {
  font-weight: bold;
}

.refund_img {
  position: relative;
  margin-bottom: 20px;
}
.refund_img h2 {
  position: absolute;
  top: -3%;
  width: 100%;
  font-size: 90px;
  font-weight: bold;
  color: white;
}

.hr_time {
	border-width: 5px 0 0 0;
	border-style: dotted;
	border-color: silver;
  margin-bottom: 40px;
  width: 95%;
}
.hr_refund {
	border-width: 2px 0 0 0;
	border-style: double;
	border-color: #C4A74E;
  width: 95%;
}
.hr_gray {
	border-width: 2px 0 0 0;
	border-style: double;
	border-color: gray;
  width: 95%;
}
.hr_white {
	border-width: 5px 0 0 0;
	border-style: dotted;
	border-color: white;
  margin-bottom: 40px;
  width: 95%;
}
.hr_green {
	border-width: 2px 0 0 0;
	border-style: double;
	border-color: #25a87c;
  width: 95%;
}

footer img {
  width: 150px;
}
footer p {
  color: #444444;
  font-size: 30px;
}
footer {
  padding-top: 30px;
  padding-bottom: 20px;
}

.footer_right {
  float: center;
  color: #00AA00;
  opacity: 0.8;
}
.footer_right a {
  line-height: 45px;
  padding: 0 20px;
  display: block;
  float: left;
  transition: all 0.5s;
  font-size: 16px;
  font-weight: bold;
}
.footer_right a:hover {
  color: white;
  background-color: #026b02;
}


h2 {
  text-align: center;
  margin-bottom: 2rem;
}


.faq-section {
  max-width: 720px;
  margin: 0 auto;
}
.faq-item {
  border: 1px solid #ddd;
  border-radius: 10px;
  background-color: #fff;
  margin-bottom: 1.5rem;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.05);
  overflow: hidden;
}
.faq-question {
  display: flex;
  align-items: center;
  background-color: #eef8ff;
  color: #474747;
  font-weight: bold;
  padding: 1rem;
  cursor: pointer;
  position: relative;
  transition: background-color 0.3s ease, color 0.3s ease;
}
.faq-question::before {
  content: 'Q';
  background-color: #1e88e5;
  color: #fff;
  border-radius: 10%;
  width: 28px;
  height: 28px;
  text-align: center;
  line-height: 28px;
  font-size: 14px;
  font-weight: bold;
  margin-right: 0.75rem;
  flex-shrink: 0;
}
.faq-question::after {
  content: '＋';
  position: absolute;
  right: 1rem;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.4rem;
}
input[type="checkbox"] {
  display: none;
}
input[type="checkbox"]:checked + .faq-question::after {
  content: '−';
}
input[type="checkbox"]:checked + .faq-question {
  background-color: #dbeefb;
  color: #0081d6;
}
.faq-answer {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: all 0.3s ease;
  padding: 0 1rem;
}
input[type="checkbox"]:checked ~ .faq-answer {
  max-height: 500px;
  opacity: 1;
  padding: 1rem;
}
.faq-answer {
  background-color: #ffffff;
  color: #333;
  border-top: 1px solid #ccc;
  border-radius: 0 0 10px 10px;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  text-align: left;
  line-height: 1.6;
}
.faq-answer::before {
  background-color: #ff4b4b;
  color: #fff;
  border-radius: 50%;
  width: 28px;
  height: 28px;
  text-align: center;
  line-height: 28px;
  font-size: 14px;
  font-weight: bold;
  margin-right: 0.75rem;
  flex-shrink: 0;
}
.faq-answer p {
  margin: 0;
}


/* 別アコーディオン用（理念やメッセージ用） */
.philosophy-faq {
  max-width: 800px;
  margin: 2rem auto;
  padding: 0 1rem;
}
.ph-item {
  border: 1px solid #fbc9d9;
  border-radius: 10px;
  background-color: #fff1f5;
  margin-bottom: 1rem;
  overflow: hidden;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.05);
}
.ph-question {
  display: flex;
  align-items: center;
  cursor: pointer;
  font-weight: bold;
  font-size: 17px;
  color: #333;
  padding: 1rem;
  background-color: #ffd08a;
  transition: background-color 0.3s ease;
  position: relative;
}
.ph-question::before {
  content: '▶';
  margin-right: 0.75rem;
  color: #333;
  font-size: 16px;
}
input[type="checkbox"] {
  display: none;
}
input[type="checkbox"]:checked + .ph-question {
  background-color: #ff9800;
  color: #1e88e5;
}
/* 開いたときに色とアイコン変更 */
input[type="checkbox"]:checked + .ph-question::before {
  content: '▼';
  color: #1e88e5; /* ← 開いた時の色（例：白） */
}
.ph-answer {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: all 0.3s ease;
  padding: 0 1rem;
  background-color: #ffffff;
  color: #333;
  font-size: 16px;
  line-height: 1.6;
  text-align: left;
}
input[type="checkbox"]:checked ~ .ph-answer {
  max-height: 600px;
  opacity: 1;
  padding: 1rem;
}


/* 共通ボックスデザイン */
.chat-box, .chat-box-pinkblue {
  max-width: 700px;
  margin: 2rem auto;
}
.message {
  display: flex;
  margin-bottom: 1.5rem;
}
.message .icon {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-color: #ddd;
  text-align: center;
  line-height: 40px;
  font-weight: bold;
  margin-right: 1rem;
  flex-shrink: 0;
}
.message .text {
  border-radius: 15px;
  padding: 1rem;
  box-shadow: 0 4px 8px rgba(15, 15, 15, 0.1);
  max-width: 80%;
  position: relative;
}
.user {
  flex-direction: row-reverse;
}
.user .icon {
  background-color: #f2fbf8;
  color: white;
  margin-left: 1rem;
  margin-right: 0;
}
/* chat-box（黄色・緑） */
.chat-box .message .text {
  background-color: rgb(255, 252, 220);
}
.chat-box .user .text {
  background-color: #dcf8c6;
}
/* chat-box-pinkblue（黄色・ピンク） */
.chat-box-pinkblue .message .text {
  background-color: rgb(255, 252, 220);
}
.chat-box-pinkblue .user .text {
  background-color: #fde3f2;
}
/* 吹き出しの三角をすべて削除 */
.chat-box .text::after,
.chat-box .user .text::after,
.chat-box-pinkblue .text::after,
.chat-box-pinkblue .user .text::after {
  display: none !important;
  content: none !important;
}
/* アニメーション（そのまま維持） */
@keyframes fadeSlideUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.fade-in-on-scroll {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.fade-in-on-scroll.visible {
  animation: fadeSlideUp 0.6s ease forwards;
}


.marker {
  background-image: linear-gradient(transparent 70%, #ffff66 60%);
  background-size: 100% 100%;
  background-repeat: no-repeat;
}
.marker_pink {
  background-image: linear-gradient(transparent 70%, #ffccf9 60%);
  background-size: 100% 100%;
  background-repeat: no-repeat;
}
.marker_green {
  background-image: linear-gradient(transparent 70%, #ccff90 60%);
  background-size: 100% 100%;
  background-repeat: no-repeat;
}
.marker_blue {
  background-image: linear-gradient(transparent 70%, #b2f2ff 60%);
  background-size: 100% 100%;
  background-repeat: no-repeat;
}
.marker_red {
  background-image: linear-gradient(transparent 70%, #ff99bb 60%);
  background-size: 100% 100%;
  background-repeat: no-repeat;
}


/* 汎用タブボタンデザイン */
.tab-buttons {
  display: flex;
  margin: 1rem 0;
}
.tab-buttons button {
  flex: 1;
  padding: 0.75rem;
  cursor: pointer;
  background-color: #eee;
  border: 1px solid #aaa;
  color: #333;
  font-size: 20px;
  font-weight: bold;
  transition: background-color 0.3s ease;
}
.tab-buttons button:hover {
  filter: brightness(1.05);
}
.tab-button-schedule:hover,
.tab-button-voice:hover,
.tab-button-contact:hover,
.tab-button-ranking:hover,
.tab-button-exam:hover {
  filter: brightness(1.05); /* 少し明るく */
}
.tab-buttons button.active {
  color: white;
}

/* 色指定：上位タブ（基本／標準／完成） */
.tab-button-exam[data-target="basic"].active {
  background-color: #fb678e;
}
.tab-button-exam[data-target="standard"].active {
  background-color: #4caf50;
}
.tab-button-exam[data-target="advanced"].active {
  background-color: #ff653f;
}
.tab-content#basic,
.tab-content#standard,
.tab-content#advanced,
#schedule-basic,
#schedule-standard,
#schedule-advanced {
  border: none !important;
  padding: 0; /* 必要に応じて余白も調整 */
}
/* タブコンテンツ共通 */
.tab-content {
  display: none;
  padding: 1rem;
  background-color: white;
  border: 1px solid #ddd;
  border-radius: 6px;
}
.tab-content.active {
  display: block;
}

/* 色指定：問い合わせタブ */
.tab-button-contact.form.active {
  background-color: #2196f3;
}
.tab-button-contact.line.active {
  background-color: #4caf50;
}
.tab-button-contact.tell.active {
  background-color: #ee6a7c;
}

.next-tab-link {
  margin-top: 1rem;
}
.next-tab-link.left-align {
  text-align: left;
}
.next-tab-link.right-align {
  text-align: right;
}
/* 通常のオレンジリンク */
.next-tab-link a {
  text-decoration: none;
  font-weight: bold;
  font-size: 1rem;
  display: inline-block;
}
/* 保護者さまリンク（オレンジ・左寄せ） */
.next-tab-link.left-align a {
  color: #ff9800;
}
.next-tab-link.left-align a:hover {
  color: #e65100;
}
/* 生徒さんリンク（青・右寄せ） */
.next-tab-link.right-align a {
  color: #2196f3;
}
.next-tab-link.right-align a:hover {
  color: #0d47a1;
}


/* 固定CTA全体 */
#fixedCta {
  position: fixed;
  bottom: -70px; /* 初期は非表示 */
  left: 0;
  right: 0;
  background-color: #4eb323;
  text-align: center;
  padding: 0.6rem;
  z-index: 9999;
  transition: bottom 0.4s ease;
  box-shadow: 0 -4px 10px rgba(0, 0, 0, 0.2); /* ← 影をここで指定 */
}
/* CTAボタン */
#fixedCta .cta-button {
  position: relative;
  display: inline-block;
  color: #fff;
  background-color: #218838;
  padding: 0.6rem 1.6rem;
  border-radius: 999px;
  text-decoration: none;
  font-weight: bold;
  font-size: 20px;
  overflow: hidden;
}
/* hover時の色変化 */
#fixedCta .cta-button:hover {
  background-color: #026b02;
}
/* 光るエフェクト */
#fixedCta .cta-button::before {
  content: '';
  position: absolute;
  top: 0;
  left: -75%;
  width: 50%;
  height: 100%;
  background: linear-gradient(120deg, rgba(255,255,255,0.3), rgba(255,255,255,0));
  transform: skewX(-25deg);
}
/* キラーンをループ */
@keyframes shine {
  0% { left: -75%; }
  100% { left: 125%; }
}
#fixedCta .cta-button::before {
  animation: shine 2.5s linear infinite;
}


.youtube-link {
  display: inline-block;
  background-color: #FF0000; /* 通常のYouTubeレッド */
  color: #fff;
  color: #fff !important; /* ← 強制的に白にする */
  font-weight: bold;
  padding: 6px 12px;
  border-radius: 4px;
  margin-left: 10px;
  text-decoration: none;
  font-size: 14px;
  transition: background-color 0.3s ease;
}
.youtube-link:hover {
  background-color: #e43f3f !important; /* 明るめの赤 */
}


.countdown-wrapper-green {
  border: 3px solid #4eb323;
  border-radius: 12px;
  background: #f3fff0;
  padding: 1.5em;
  margin: 1.5em 0;
  text-align: center;
  box-shadow: 0 0 10px rgba(126, 217, 87, 0.5);
}
.countdown-wrapper-green h3 {
  font-size: 1.4em;
  margin-bottom: 0.5em;
  color: #2d7a1f;
  font-weight: bold;
}
.countdown-wrapper-green .highlight-green {
  background: #4eb323;
  color: white;
  padding: 0.4em 0.7em;
  border-radius: 6px;
}
.countdown-green {
  font-size: 2em;
  font-weight: bold;
  color: #1e5631;
  letter-spacing: 1px;
}
@keyframes pulse {
  0% { transform: scale(1); box-shadow: 0 0 10px rgba(126, 217, 87, 0.5); }
  50% { transform: scale(1.02); box-shadow: 0 0 15px rgba(126, 217, 87, 0.8); }
  100% { transform: scale(1); box-shadow: 0 0 10px rgba(126, 217, 87, 0.5); }
}
@media screen and (max-width: 600px) {
  .countdown-green {
    font-size: 1.6em;
  }
  .countdown-wrapper-green {
    padding: 1em;
  }
}

.pulse-target {
  animation: pulse 2s infinite ease-in-out;
  display: inline-block;
}
.countdown-link {
  display: block;
  text-decoration: none;
  color: inherit;
}
.countdown-link:hover {
  opacity: 0.9;
}

.youtube-container {
  position: relative;
  width: 100%;
  max-width: 900px; /* LPの横幅に合わせて調整 */
  margin: 0 auto;
  padding-bottom: 56.25%; /* 16:9 */
  height: 0;
}

.youtube-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
@media screen and (max-width: 768px) {
  .youtube-container {
    max-width: 100%;
  }
}

.img-stack img {
  display: block;   /* 余白の原因を消す */
  width: 100%;      /* 横幅を揃える */
  height: auto;     /* 縦比率維持 */
}

