/* ---------- 共通 ---------- */
body {
  background-color: #F9E5DA;
  width: 100%;
}

.container {
  width: calc(100% - 160px);
  text-align: center;
  margin: 0 auto;
}

.decoration {
 width: 100%;
 height: 200px;
 background-image: url(../images/frame01.jpg); 
 background-size: cover;
 position: absolute;
 top: 0;
}

.decoration02 {
  width: 100%;
  height: 200px;
  background-image: url(../images/frame02.jpg); 
  background-size: cover;
  position: absolute;
  top: 0;
 }

 .decoration03 {
  width: 100%;
  height: 200px;
  background-image: url(../images/frame03.jpg); 
  background-size: cover;
  position: absolute;
  top: 0;
 }

 .decoration04 {
  width: 100%;
  height: 200px;
  background-image: url(../images/frame04.jpg); 
  background-size: cover;
  position: absolute;
  top: 0;
 }

li {
  list-style: none;
}

a {
  color: #ffffff;
  text-decoration: none;
}

a:hover {
  font-weight: bold;
}

h1 {
  color: #E658A6;
  font-size: 40px;
}

h2 {
  color: #E658A6;
  font-size: 32px;
}

h3 {
  color: #28293E;
  font-size: 28px;
}

h4 {
  color: #28293E;
  font-size: 26px;
}

p {
  color: #28293E;
  font-size: 24px;
  line-height: 1.5;
}

/* ---------- header ---------- */
header {
  width: 100%;
  box-sizing: border-box;
  display: flex;
  justify-content: space-between;
  padding: 0px 40px 0px 40px;
  position: fixed;
  top: 0;
  z-index: 2;
}

header img {
  width: 88px;
  height: 88px;
  object-fit: cover;
  z-index: 3;
}

.logoShow {
  width: 55px;
  height: 55px;
  object-fit: cover;
  z-index: 3;
}

.bgColor {
  background-color: #DD8AA5;
  background-size: cover;
  opacity: 0.9;
} 

header nav ul {
  display: flex;
  padding-top: 40px;
}

.ulShow {
  display: flex;
  padding-top: 20px;
}

header nav ul li + li {
  margin-left: 50px;
}

header ul #line {
  border: 1px solid #ffffff;
  padding: 10px 25px;
  border-radius: 4px;
  font-weight: bold;
}

header ul #line:hover {
  opacity: 0.7;
}

header #sp-menu,
header #modal,
header #sp-close {
  display: none;
}



/* ---------- hero section ---------- */
.hero {
  width: 100%;
  box-sizing: border-box;
  margin: 0 auto;
  height: 865px;
  background-image: url(../images/main.jpg);
  background-size: cover;
  background-position: left;
  position: relative;
}

header #menu {
  display: block;
  z-index: 3;
}

.main-message {
  position: absolute;
  top: 150px;
}

.main-message h3 {
  color: #F8EE0A;
  padding-left: 45px;
  font-size: 40px;
  letter-spacing: 3px;
}

.main-message h1 {
  font-size: 64px;
  color: #E658A6;
  padding: 10px 25px 10px 40px;
  margin: 45px 0 40px 0;
  background-color: #fff;
  opacity: 0.7;
}

.main-message h1 span {
  font-size: 80px;
}

.main-message h2 {
  font-size: 70px;
  line-height: 90px;
  color: #fff;
  padding-left: 3px;
}

.sub-message {
  position: absolute;
  bottom: 160px;
}

.sub-message #students {
  width: 250px;
  text-align: center;
  color: #E658A6;
  background-color: #fff;
  padding: 5px 40px;
  margin-left: 180px;
  font-size: 16px;
  border-radius: 30px;
  font-weight: bold;
}

.sub-message h5 {
  color: #fff;
  text-align: center;
  font-size: 24px;
  letter-spacing: 1.5px;
  margin-left: 70px;
  margin-top: 20px;
  border: 5px solid #fff;
  padding: 10px 25px;
}

.sub-message h5 span {
  color: #F8EE0A;
  letter-spacing: 3px;
}

.sub-message h5 span:last-child {
  margin-right: 5px;
}

.sub-message h5 #seven {
  font-size: 36px;
  margin-left: 5px;
}

.btn {
  position: absolute;
  bottom: 50px;
}

.btn button {
  margin-left: 45px;
  width: 420px;
  border: 5px solid #fff;
  border-radius: 30px;
  background-color: #67BD83;
  text-align: center;
  cursor: pointer;
}

.btn button:hover {
  border: 5px solid #67BD83;
  background-color: #fff;
}

.btn button p {
  font-size: 32px;
  padding: 3px 0;
  font-weight: bold;
  color: #fff;
}

.btn button p:hover {
  color: #67BD83;
}

.btn a {
  font-size: 32px;
  font-weight: bold;
  color: #fff;
  margin-left: 20px;
  border: 3px solid #fff;
  padding: 15px 25px;
  border-radius: 6px;
}

.btn a:hover {
  opacity: 0.7;
}

/* ---------- worry section ---------- */
.worry {
  width: 100%;
  position: relative;
  height: auto;
  padding-bottom: 100px;
}

.worry h1 {
  padding-top: 80px;
}

.worry h3 {
  line-height: 70px;
}

.worry img {
  width: 400px;
  height: 280px;
  object-fit: cover;
}

.worry .info {
  padding-top: 70px;
}

.worry .info .desc01,
.worry .info .desc02 {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 45px;
  width: 100%;
}

.worry .info .desc02 {
  flex-direction: row-reverse;
  padding-top: 40px;
}

/* ---------- about section ---------- */
.about {
  width: 100%;
  background-color: #FAE7F0;
  height: auto;
  padding-bottom: 150px;
  position: relative;
  overflow: hidden;
}

.about .triangle {
  width: 100px;
  height: 100px;
  position: absolute;
  top: -70px;
  left: 47%;
  background-color: #E658A6;
  transform: rotate(-45deg);
}

.about img {
  width: 490px;
  height: 360px;
  object-fit: cover;
}

.about h1 {
  padding-top: 110px;
}

.about h2 {
  padding: 120px 0 30px 0;
}

.about h3 {
  padding-bottom: 110px;
}

.about .info {
  display: flex;
  justify-content: center;
  flex-direction: row-reverse;
  width: 90%;
  margin: 0 auto;
  gap: 40px;
}

.about .info .desc {
  text-align: left;
  width: 100%;
}

.about .info .desc span {
  color: #E658A6;
}

.about .info .desc .reason span {
  font-weight: bold;
}

.about .info .desc p:first-child {
  font-weight: bold;
  padding-bottom: 50px;
  font-size: 28px;
}

.about .info .desc p:last-child {
  padding-top: 10px;
  font-size: 18px;
  width: 550px;
}


/* ---------- profile section ---------- */
.profile {
  position: relative;
  height: auto;
  width: 100%;
  padding-bottom: 150px;
}

.profile #sp-profile {
  display: none;
}

.profile #pc-profile {
  width: 450px;
  height: 450px;
  object-fit: cover;
}

.profile h2 {
  padding-top: 200px;
}

.profile h3 {
  padding: 30px 0 90px 0;
}

.profile .info {
  width: 100%;
  display: flex;
  align-items: center;
}

.profile .info .desc {
  width: 100%;
}

.profile .info .desc p {
  width: 90%;
  text-align: left;
  font-weight: bold;
  font-size: 20px;
  padding-left: 70px;
}

.profile .info .desc p:last-child {
  padding-top: 50px;
  font-weight: normal;
}

.profile .info .desc p span {
  color: #E658A6;
  font-size: 28px;
}

/* ---------- service section ---------- */
#service {
  position: relative;
  background-color: #FAE7F0;
  height: auto;
  text-align: center;
  width: 100%;
  padding-bottom: 150px;
}

#service .planning .schedule img {
  width: 450px;
  height: 450px;
  margin: 0 40px 0 40px;
}

#service .overview h2 {
  padding-top: 200px;
}

#service h3 {
  padding: 30px 0 90px 0;
}

#service .overview p,
#service .planning p,
#service #coach {
  width: 65%;
  margin: 0 auto;
  text-align: left;
}

#service .planning h2 {
  padding-top: 86px;
  padding-bottom: 70px;
} 

#service .schedule {
  width: 100%;
  padding: 50px 0 100px 0;
}

#service .coaching {
  width: 95%;
  margin: 0 auto;
}

#service .coaching h2 {
  padding-bottom: 70px;
}

#service .coaching .check {
  display: flex;
  justify-content: center;
  width: 100%;
  box-sizing: border-box;
  gap: 40px;
}

#service .coaching .check .content {
  width: 430px;
  margin-top: 80px;
}

#service .coaching .check .content h4 {
  background-color: #FFFA84;
  padding: 15px 0 15px 0;
}

#service .coaching .check .content p {
  background-color: #fff;
  height: 220px;
  padding: 20px 20px 10px 20px;
  text-align: left;
}

#service .coaching .coaching-pic {
  width: 90%;
  display: flex;
  justify-content: center;
  margin: 80px auto 0;
}

#service .coaching .coaching-pic .student {
  width: 57%;
  box-sizing: border-box;
}

#service .coaching .coaching-pic .student02 {
  width: 30%;
}

#service .coaching .coaching-pic #student {
  width: 100%;
  object-fit: contain;
}

#service .coaching .coaching-pic #time {
  width: 100%;
  margin-top: 25px;
  object-fit: contain;
} 

#service .coaching .coaching-pic .student02 {
  margin-left: 50px;
}

#service .coaching .coaching-pic #student02 {
  width: 100%;
  object-fit: contain;
}

/* ---------- benefit section ---------- */
.benefit {
  width: 100%;
  position: relative;
  height: auto;
  padding-bottom: 150px;
}

.benefit .overview {
  text-align: center;
  padding-top: 200px;
  padding-bottom: 145px;
}

.benefit .overview img {
  width: 100%;
  height: 650px;
  object-fit: cover;
}

.benefit .overview h3 {
  padding: 50px 0 110px 0;
  line-height: 1.5;
}

.benefit .content {
  width: 420px;
  height: 540px;
  border: 1px solid #E658A6;
}

.benefit .content img {
  width: 100%;
  height: 250px;
  object-fit: cover;
}

.benefit .content .position {
  object-position: top;
}

.benefit .content .text {
  text-align: left;
  height: 237px;
  background-color: #fff;
  padding: 25px;
}

.benefit .content .text h5 {
  font-size: 18px;
  color: #E658A6;
}

.benefit .content .text p {
  font-size: 16px;
  font-weight: bold;
  padding-top: 35px;
}

.benefit .contents {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 70px;
}

/* ----------  change section ---------- */
.change {
  position: relative;
  background-color: #FAE7F0;
  width: 100%;
  height: auto;
  padding-bottom: 150px;
}

.changes {
  display: flex;
  padding-top: 250px;
  justify-content: center;
  gap: 30px;
}

.changes .text {
  text-align: left;
}

.changes .text h2 {
  padding-bottom: 35px;
  line-height: 1.5;
}

.changes .text h5 {
  font-weight: normal;
  font-size: 18px;
  line-height: 1.5;
}

.changes .text h5:last-child {
  width: 440px;
}

.changes .check {
  background-color: #fff;
  width: 400px;
  margin-top: 40px;
  margin-bottom: 40px;
  padding: 15px;
}

.changes .check .check-text {
  display: flex;
}

.changes .check .check-text + .check-text {
  padding-top: 15px;
}

.changes .check .check-text p {
  margin-left: 15px;
  font-size: 16px;
}

.changes .check-pic {
  display: flex;
  width: 600px;
}

.change .check-pic img {
  width: 100%;
  height: 90%;
  object-fit: cover;
}

.changes .check-pic .before {
  background-color: #D9D9D9;
  width: 50%;
  height: 510px;
}

.changes .check-pic .before h4 {
  color: 28293E;
  padding-top: 10px;
}

.changes .check-pic .after {
  width: 50%;
  background-color: #E658A6;
  height: 510px;
}

.changes .check-pic .after h4 {
  color: #fff;
  padding-top: 10px;
}

/* ----------  central-cv section ---------- */
.central-cv {
  background-image: url(../images/pink.jpg);
  background-size: cover;
  width: 100%;
  height: 350px;
  position: relative;
}

.central-cv #icon {
  position: absolute;
  top: -75px;
  left: 100px;
}

.central-cv .cv {
  display: flex;
  justify-content: space-between;
}

.central-cv .cv .text {
  text-align: left;
}

.central-cv .cv .text h1 {
  color: #fff;
  padding: 40px 0 30px 0;
  font-size: 28px;
}

.central-cv .cv .text h2 {
  color: #F8EE0A;
  padding-top: 100px;
  font-size: 24px;
}

.central-cv .cv .btn {
  display: flex;
  left: 35px;
}

.central-cv .cv .btn button {
  width: 300px;
}

.central-cv .cv .btn .tel {
  display: flex;
}

.central-cv .cv .btn p,
.central-cv .cv .btn a {
  font-size: 20px;
}

.central-cv .cv .btn a {
  padding-top: 13px;
  margin-left: 15px;
  margin-right: 15px;
}

.central-cv .cv .btn .tel p {
  font-size: 16px;
  color: #fff;
}

.central-cv .cv .image {
  padding-top: 100px;
  padding-left: 80px;
}

.central-cv .cv .image img {
  width: 300px;
  height: 220px;
  margin-top: -30px;
}

/* ----------  customer-voice section ---------- */
.customer-voice {
  width: 100%;
  position: relative;
  height: auto;
  padding-bottom: 150px;
}

.customer-voice .text {
  text-align: center;
}

.customer-voice .text h2 {
  padding-top: 200px;
}

.customer-voice .text h3 {
  padding: 30px 0 50px 0;
}

.customer-voice .voices {
  display: flex;
  gap: 50px;
}

.customer-voice .voices .voice01,
.customer-voice .voices .voice02 {
  border: 1px solid #E658A6;
  padding: 40px 40px 20px 40px;
}

.customer-voice .voices h3 {
  text-align: left;
  padding-bottom: 40px;
}

.customer-voice .voices h4 {
  font-size: 24px;
  text-align: left;
  padding-bottom: 14px;
}

.customer-voice .voices p {
  font-size: 16px;
  text-align: left;
}

.customer-voice .voices .student01,
.customer-voice .voices .student02,
.customer-voice .voices .student03 {
  display: flex;
  justify-content: center;
  padding-top: 100px;
  align-items: center;
  gap: 20px;
}

/* ----------  price section ---------- */
#price {
  width: 100%;
  position: relative;
  background-color: #FAE7F0;
  height: 1600px;
}

#price .text {
  text-align: center;
  padding-top: 200px;
}

#price .text h3 {
  padding: 30px 0 100px 0;
}

#price .price-text .main-text {
  text-align: left;
  line-height: 2.0;
  letter-spacing: 1.5;
  padding: 0 70px 0 70px;
}

#price .price-text .main-text span {
  color: #E658A6;
}

#price .price-text .main-text .one,
#price .price-text .main-text .two,
#price .price-text .main-text .three {
  font-size: 32px;
  font-weight: bold;
}

#price .price-main {
  width: 100%;
  padding-top: 120px;
  overflow: hidden;
}

#price .price-main .join,
#price .price-main .guide {
  display: flex;
  align-items: center;
  padding-left: 80px;
  text-align: left;
  gap: 40px;
  padding-bottom: 30px;
  width: 70%;
  margin: 0 auto;
}

#price .price-main .join h2,
#price .price-main .guide h2,
#price .price-main .supplement h2 {
  font-size: 36px;
}

#price .price-main .join p,
#price .price-main .guide p {
  color: #E658A6;
  font-size: 36px;
  font-weight: bold;
}

#price .price-main .join p span,
#price .price-main .guide p span {
  color: #28293E;
  text-decoration: line-through;
  font-size: 28px;
}

#price .price-main .guide p span:last-child {
  text-decoration: none;
  color: #E658A6;
  font-size: 24px;
}

#price .price-main .supplement {
  width: 70%;
  margin: 0 auto;
  padding-left: 160px;
  text-align: center;
  overflow: hidden;
}

#price .price-main .supplement span {
  font-size: 32px;
}

#price .price-main .rectangle01 {
  position: absolute;
  bottom: 200px;
  left: 100px;
  width: 20px;
  height: 250px;
  transform: rotate(-20deg);
  background-color: #E658A6;
}

#price .price-main .rectangle02 {
  position: absolute;
  bottom: 200px;
  right: 100px;
  width: 20px;
  height: 250px;
  transform: rotate(20deg);
  background-color: #E658A6;
}

/* ----------  cost section ---------- */
.cost {
  width: 100%;
  position: relative;
  padding-top: 200px;
  text-align: center;
}

.cost .text p {
  width: 80%;
  padding: 60px 0 60px 0;
  margin: 0 auto;
  text-align: left;
}

.cost .text p span {
  text-decoration: underline;
  text-decoration-color: #E658A6;
}

.cost .cost-table {
  width: 80%;
  margin: 0 auto;
}

.cost .cost-table table {
  width: 100%;
  margin: 0 auto;
}

.cost .cost-table table .head th {
  padding-left: 5px;
  padding-right: 5px;
  vertical-align: middle;
}

.cost .cost-table table th {
  background-color: #F3D1BF;
  border: 1px solid #28293E;
  padding-top: 15px;
  padding-bottom: 15px;
  line-height: 1.3;
}

.cost .cost-table table tr,
.cost .cost-table table td {
  border: 1px solid #28293E;
} 

.cost .cost-table table td {
  font-size: 14px;
  vertical-align: middle;
}

.cost .cost-table table th span {
  color: #E658A6;
  font-size: 20px;
}

.cost .cost-table table span {
  font-weight: bold;
}

.cost .cost-table table .head #emp01 {
  border-top: 15px solid #E658A6;
  border-right: 15px solid #E658A6;
  border-left: 15px solid #E658A6;
}

.cost .cost-table table .first #emp02,
.cost .cost-table table .second #emp03,
.cost .cost-table table .third #emp04,
.cost .cost-table table .fourth #emp05 {
  border-right: 15px solid #E658A6;
  border-left: 15px solid #E658A6;
}

.cost .cost-table table .fifth #emp06 {
  border-right: 15px solid #E658A6;
  border-left: 15px solid #E658A6;
  border-bottom: 15px solid #E658A6;
}

.cost .cost-table table .fifth {
  border: 15px solid #67BD83;
}

.cost .cost-table #table-text {
  text-align: left;
  padding-top: 85px;
  padding-bottom: 65px;
}

.cost .cost-table #table-text span {
  color: #E658A6;
}

.cost .year-cost {
  width: 90%;
  margin: 0 auto;
}

.cost .year-cost img {
  width: 100%;
  height: auto;
  object-fit: contain;
}

.cost .year-cost p {
  padding: 80px 0 80px 0;
  font-size: 40px;
  color: #E658A6;
  font-weight: bold;
}

.cost .year-cost p span {
  font-size: 48px;
}

.cost .head #online span {
  color: #000;
  font-size: 16px;
}

/* ----------  trial section ---------- */
.trial {
  width: 100%;
  height: auto;
  background-color: #FAE7F0;
  position: relative;
  padding-bottom: 150px;
}

.trial .text {
  width: 100%;
}

.trial .text h2 {
  padding-top: 150px;
  padding-bottom: 30px;
}

.trial p,
.trial #text02 {
  width: 90%;
  margin: 0 auto;
  padding-top: 80px;
  text-align: left;
  line-height: 2.0;
}

.trial p span {
  color: #E658A6;
  font-size: 32px;
  font-weight: bold;
}

.trial .days {
  width: 80%;
  height: 350px;
  margin: 50px auto 0;
  background-color: #fff;
  border: 5px solid #E658A6;
  border-radius: 30px;
  padding: 70px 30px 70px 30px;
}

.trial .days p {
  line-height: 2.0;
  width: 95%;
}

.trial .days h2 span {
  font-size: 64px;
  margin-right: 20px;
  margin-left: 20px;
  vertical-align: middle;
}

/* ----------  message section ---------- */
.message {
  width: 100%;
  height: auto;
  text-align: center;
  background-image: url(../images/sakura.jpg);
  background-size: cover; 
  background-position: center; 
  padding-bottom: 100px;
}

.message .text h2 {
  padding-top: 160px;
}

.message .text h3 {
  padding: 30px 0 100px 0;
} 

.message .text h4 {
  font-size: 40px;
  text-decoration: underline;
} 

.message .container {
  width: 60%;
  margin: 0 auto;
}

.message .sub-text {
  width: 70%;
  text-align: left;
  margin: 0 auto;
  padding-top: 80px;
  padding-bottom: 180px;
  font-weight: bold;
}

.message .sub-text p {
  width: 100%;
  margin: 0 auto;
}

.message .sub-text span {
  font-size: 32px;
}

.message .sub-text #pink {
  font-size: 24px;
  color: #E658A6;
}

/* ----------  faq section ---------- */


/* ----------  flow section ---------- */
#flow {
  width: 100%;
  position: relative;
  background-color: #FAE7F0;
  height: auto;
  padding-bottom: 150px;
}

#flow .text {
  text-align: center;
}

#flow .text h2 {
  padding-top: 150px;
}

#flow .text h3 {
  padding: 30px 0 100px 0;
}

#flow .supports .support img {
  width: 380px;
  height: 200px;
  object-fit: cover;
}

#flow .supports {
  width: 80%;
  margin: 0 auto;
  padding: 0 80px;
}

#flow .supports .support {
  display: flex;
  width: 100%;
  gap: 100px;
  padding-bottom: 55px;
}

#flow .supports .support + .support {
  border-top: 5px solid #fff;
  padding-top: 65px;
}

#flow .supports .support h3 {
  text-align: left;
  padding-bottom: 40px;
}

#flow .supports .talk p {
  text-align: left;
}

/* ----------  contact section ---------- */

/* ----------  last-message section ---------- */
.last-message {
  width: 100%;
  height: 2100px;
  background-image: url(../images/last.jpg);
  background-size: cover;
  overflow: hidden;
}

.last-message .background {
  height: 2100px;
  background-color: rgba(255, 255, 255, 0.7);
}

.last-message .background .text {
  text-align: center;
}

.last-message .background .text h2 {
  padding-top: 150px;
}

.last-message .background .text h3 {
  padding: 50px 0 90px 0;
} 

.last-message .background .desc {
  background-color: rgba(255, 255, 255, 0.6);
}

.last-message .background .desc p {
  width: 90%;
  margin: 0 auto;
  text-align: left;
  line-height: 1.8;
  padding: 40px 0;
}

.last-message .background .desc p span {
  color: #E658A6;
  font-weight: bold;
}

.last-message .background .desc p #life {
  color: #28293E;
  font-size: 32px;
}

/* ---------- footer ---------- */
footer {
  width: 100%;
  background-color: #FBD5EF;
}

footer #footer-logo {
  width: 150px;
  height: 150px;
}

footer .footer {
  display: flex;
  justify-content: space-between;
  padding: 110px 0 70px 0;
}

footer .footer .sp-footer {
  display: flex;
}

footer .footer-menu {
  margin-right: 100px;
}

footer .footer-menu h2 {
  text-align: left;
}

footer .footer-menu ul {
  width: 100%;
}

footer .footer-menu ul li {
  text-align: left;
}

footer .footer-menu ul li + li {
  margin-top: 20px;
}

footer .footer-menu ul li a {
  color: #28293E;
}

footer h2 {
  font-size: 24px;
  padding-bottom: 40px;
}

footer .sns {
  padding-bottom: 40px;
}

footer .sns ul {
  display: flex;
  justify-content: center;
}

footer p {
  font-size: 16px;
}

footer .policy .sns ul li {
  width: 40px;
  height: 40px;
  background-color: #67BD83;
  border-radius: 50%;
}

footer .policy .sns ul li:hover {
  opacity: 0.5;
}

footer .policy .sns ul li + li {
  margin-left: 10px;
}

footer .policy .sns ul li a {
  display: block;
}

footer .policy .sns ul li i {
  padding-top: 9px;
  font-size: 24px;
}

footer .desc p + p {
  margin-top: 5px;
}

footer small p {
  text-align: center;
  font-size: 16px;
  opacity: 0.7;
  padding-bottom: 20px;
}

