@charset "UTF-8";

/*=============================================
 * HOME
*=============================================*/
#mv {
   position: relative;
}

#mv .photo {
   width: 90%;
   transform: translate(-100%, -100%);
   opacity: 0;
   transition: transform 1s ease-out, opacity 1s ease-out;
}

#mv .photo.is-active {
   transform: translate(0, 0);
   opacity: 1;
}

#mv .catch {
   width: 53%;
   max-width: 742px;
   position: absolute;
   top: 24%;
   left: 30%;
}

#mv .catch .elementor-widget-image img {
   -webkit-clip-path: inset(0 100% 0 0);
   clip-path: inset(0 100% 0 0);
   will-change: clip-path;
}

#mv .catch .elementor-element-84b05fa {
   width: 72.5%;
}

#mv .catch.is-active .elementor-widget-image img {
   -webkit-clip-path: inset(0);
   clip-path: inset(0);
   transition: 1s ease 0s;
}

#mv .catch.is-active .elementor-element-f51d26f img {
   transition-delay: 1s;
}

#mv .deco-1 {
   width: 23.8%;
   position: absolute;
   top: 56.5%;
   left: 0;
}

#mv .deco-2 {
   width: 22.3%;
   position: absolute;
   top: 0;
   right: 0;
   text-align: right;
}

.btn-scroll {
   cursor: pointer;
   padding-bottom: 305px;
   transition: all 0.3s;
   font-family: "Poppins", sans-serif;
   font-weight: 400;
   font-size: 12px;
   line-height: 14px;
   color: #C7C7C7;
   position: relative;
   margin: 0 auto;
   padding-bottom: 70px;
}

.btn-scroll .txt-vertical {
   width: 12px;
   height: 65px;
   cursor: inherit;
}

.btn-scroll .txt-latin {
   cursor: inherit;
}

.btn-scroll .border {
   width: 1px;
   height: 62px;
   background-color: #C7C7C7;
   position: absolute;
   bottom: 0;
   left: 40%;
}

.btn-scroll .border:before {
   content: '';
   width: 100%;
   height: 100%;
   background-color: #000;
   position: absolute;
   top: 0;
   left: 0;
   animation: sdl01 1.5s cubic-bezier(1, 0, 0, 1) infinite;
}

.btn-scroll:hover {
   opacity: 0.7;
}

@keyframes sdl01 {
   0% {
      transform: scale(1, 0);
      transform-origin: 0 0;
   }

   50% {
      transform: scale(1, 1);
      transform-origin: 0 0;
   }

   50.1% {
      transform: scale(1, 1);
      transform-origin: 0 100%;
   }

   100% {
      transform: scale(1, 0);
      transform-origin: 0 100%;
   }
}

@media screen and (max-width: 1023px) {
   #mv .catch {
      top: 35%;
      left: 0;
   }
}

@media screen and (max-width: 767px) {
   .btn-scroll {
      padding-bottom: 60px;
   }

   #mv {
      padding-top: 40px;
   }

   #mv .photo {
      width: 95%;
   }

   #mv .catch {
      width: 97.5%;
      top: 55%;
      gap: 8px;
   }

   #mv .deco_sp {
      width: 100%;
      position: absolute;
      top: 0;
      left: 0;
   }
}

/* -- --*/
#top__about {
   padding: 30px 0;
}

#top__about .elementor-widget-text-editor {
   line-height: 42px;
   padding-top: 30px;
}

#top__about .elementor-widget-text-editor p+p {
   padding-top: 30px;
}

@media screen and (max-width: 767px) {
   #top__about {
      padding: 17vw 0 0;
   }

   #top__about .elementor-widget-heading {
      font-size: 22px;
      letter-spacing: 0.02em;
      line-height: 31px;
      text-align: left;
   }

   #top__about .elementor-widget-text-editor {
      font-size: 13px;
      line-height: 25px;
      letter-spacing: -0.6px;
      text-align: justify;
      padding-top: 20px;
   }

   #top__about .elementor-widget-text-editor p+p {
      padding-top: 20px;
   }
}

/* -- --*/
#top__feature {
   background-color: #FDECAB;
   margin: 20% 0;
}

#top__feature:before {
   content: '';
   width: 100%;
   height: auto;
   padding-top: 22.3%;
   background: url("../img/index/feature-bg-t.webp") no-repeat center top/cover;
   position: absolute;
   top: auto;
   bottom: 100%;
   left: 0;
}

#top__feature:after {
   content: '';
   width: 100%;
   height: auto;
   padding-top: 22.3%;
   background: url("../img/index/feature-bg-b.webp") no-repeat center top/cover;
   position: absolute;
   top: 100%;
   left: 0;
}

#top__feature .wrap {
   z-index: 1;
}

#top__feature .box {
   gap: 35px;
   padding-top: 35px;
}

#top__feature .box .col {
   padding: 0 30px 85px;
}

#top__feature .box .col:before {
   content: '';
   width: 100%;
   height: auto;
   background-color: #fff;
   position: absolute;
   top: 65px;
   bottom: 0;
   left: 0;
   border-radius: 200px;
}

#top__feature .box .elementor-widget-image {
   margin: 0 auto;
}

#top__feature .box .elementor-element-4dffe54 {
   max-width: 235px;
}

#top__feature .box .elementor-element-fa057d5 {
   max-width: 169px;
   left: 45px;
}

#top__feature .box .elementor-element-148c425 {
   max-width: 140px;
}

#top__feature .box .no {
   text-align: center;
   padding-top: 20px;
}

#top__feature .box h3 {
   text-align: center;
   padding-top: 5px;
}

#top__feature .box .elementor-widget-text-editor {
   padding-top: 15px;
}

#top__feature .button {
   text-align: right;
   padding-top: 30px;
}

@media screen and (max-width: 1023px) {
   #top__feature:before {
      bottom: 100%;
   }

   #top__feature:after {
      top: 100%;
   }

   #top__feature .box {
      flex-direction: column;
      align-items: center;
   }

   #top__feature .box .col {
      width: 336px;
   }
}

@media screen and (max-width: 767px) {
   #top__feature {
      margin-top: 38%;
   }

   #top__feature:before {
      width: 190%;
      padding-top: 50%;
      left: 50%;
      transform: translateX(-50%);
   }

   #top__feature .box {
      gap: 40px;
      padding-top: 55px;
   }

   #top__feature .box .col {
      width: 100%;
      min-height: 420px;
      padding: 60px 30px;
      position: relative;
   }

   #top__feature .box .col:before {
      top: 0;
   }

   #top__feature .box .elementor-widget-image {
      position: absolute;
   }

   #top__feature .box .elementor-element-4dffe54 {
      max-width: 138px;
      top: -35px;
      left: 0;
   }

   #top__feature .box .elementor-element-fa057d5 {
      max-width: 100px;
      top: 0;
      left: 45px;
   }

   #top__feature .box .elementor-element-148c425 {
      max-width: 94px;
      top: -10px;
      left: 20px;
   }

   #top__feature .box .no {
      font-size: 40px;
      line-height: 50px;
   }

   #top__feature .box h3 {
      font-size: 20px;
      line-height: 29px;
   }

   #top__feature .box .elementor-widget-text-editor {
      font-size: 14px;
      line-height: 24px;
      padding-top: 15px;
   }

   #top__feature .button {
      text-align: center;
   }
}

/* -- --*/
#top__class {
   background: url("../img/index/class-bg.webp") no-repeat center top 132px/1411px auto;
   padding: 0 0 280px;
}

#top__class:before {
   content: '';
   width: 100%;
   height: auto;
   background-color: #C7EEF7;
   position: absolute;
   top: -20%;
   bottom: 0;
   left: 0;
   z-index: -1;
}

#top__class .wrap {
   padding-top: 42px;
}

#top__class .deco {
   width: 407px;
   position: absolute;
   top: 0;
   right: -95px;
}

#top__class .box {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 50px 15px;
   padding-top: 265px;
}

#top__class .box .elementor-widget-image {
   padding-left: 10px;
}

#top__class .box .elementor-widget-image img {
   border-radius: 16px;
}

#top__class .box .widget-image-caption {
   background-color: #FFE260;
   color: inherit;
   border-radius: 6px 30px 30px 6px;
   font-family: inherit;
   font-weight: 700;
   font-size: 22px;
   letter-spacing: 0;
   line-height: 32px;
   position: absolute;
   bottom: 10px;
   left: 0;
   padding: 6px 30px 8px;
}

#top__class .button {
   padding-top: 30px;
}

@media screen and (max-width: 1200px) {
   #top__class .deco {
      width: 307px;
      right: 0;
   }
}

@media screen and (max-width: 1023px) {
   #top__class {
      background-size: 1800px auto;
   }

   #top__class .deco {
      top: 120px;
   }

   #top__class .box {
      grid-template-columns: repeat(2, 1fr);
   }
}

@media screen and (max-width: 767px) {
   #top__class {
      background: transparent;
      padding-bottom: 100px;
   }

   #top__class .deco {
      width: 210px;
      right: 20px;
   }

   #top__class .box {
      grid-template-columns: repeat(2, 1fr);
      gap: 20px 10px;
      padding-top: 210px;
   }

   #top__class .box .elementor-widget-image img {
      border-radius: 8px;
   }

   #top__class .box .widget-image-caption {
      font-size: 12px;
      line-height: 12px;
      padding: 6px 10px 8px;
   }
}

/* -- --*/
#top__schedule {
   padding: 120px 0 30px;
   position: relative;
}

#top__schedule:before {
   content: '';
   width: 100%;
   height: auto;
   background-size: 8px 8px;
   background-image: linear-gradient(to right, rgba(208, 202, 200, 0.4) 1px, transparent 1px), linear-gradient(to bottom, rgba(208, 202, 200, 0.4) 1px, transparent 1px);
   position: absolute;
   top: 0;
   bottom: -40%;
   left: 0;
}

#top__schedule .full-note {
   display: flex;
   justify-content: flex-end;
   align-items: center;
   gap: 5px;
   font-weight: 700;
   font-size: 15px;
   line-height: 21px;
   padding-top: 30px;
   position: relative;
}

#top__schedule .full-note span {
   letter-spacing: -0.5em;
}

#top__schedule .full-note:before {
   content: '';
   display: block;
   width: 90px;
   height: 28px;
   background-color: #FFAEAD;
}

#top__schedule .schedule-table {
   padding-top: 20px;
}

#top__schedule .button {
   text-align: right;
   padding-top: 45px;
}

#top__schedule .button a {
   width: 285px;
   font-family: inherit;
}

@media screen and (max-width: 1023px) {
   #top__schedule .deco {
      top: -32.5vw;
   }
}

@media screen and (max-width: 767px) {
   #top__schedule {
      padding: 50px 0;
   }

   #top__schedule .note_sp {
      color: #EA3030;
      padding-top: 30px;
   }

   #top__schedule .full-note {
      padding-top: 10px;
   }

   #top__schedule .button {
      padding-top: 20px;
   }

   #top__schedule .button a {
      width: 220px;
   }
}

/* -- --*/
#top__review {
   background-color: #F8E3E1;
   position: relative;
   margin: 26.5% 0 5.9%;
   padding: 0 0 165px;
}

#top__review:before {
   content: '';
   width: 100%;
   height: auto;
   padding-top: 26.5%;
   background: url("../img/index/review-bg-t.webp") no-repeat center top/cover;
   position: absolute;
   top: auto;
   bottom: 100%;
   left: 0;
   z-index: 1;
}

#top__review:after {
   content: '';
   width: 100%;
   height: auto;
   padding-top: 5.9%;
   background: url("../img/index/review-bg-b.webp") no-repeat center bottom/cover;
   position: absolute;
   top: 100%;
   left: 0;
}

#top__review .deco {
   width: 14vw;
   position: absolute;
   top: -25vw;
   left: 50%;
   transform: translateX(-50%);
}

#top__review .wrap {
   z-index: 1;
}

#top__review .box {
   display: flex;
   justify-content: center;
   gap: 100px;
   padding-top: 50px;
}

#top__review .box .col {
   width: 460px;
}

#top__review .slider {
   width: 100%;
   height: calc(100% - 185px);
   background-color: #fff;
   border: 10px solid #FF7C7A;
   border-radius: 20px;
   font-weight: 500;
   font-size: 18px;
   line-height: 26px;
   margin-top: 30px;
   padding: 45px 30px;
   box-sizing: border-box;
}

#top__review .slider .slick-list {
   margin: 0 -10px;
}

#top__review .slider .slick-slide {
   margin: 0 10px;
}

#top__review .slider .slick-dots {
   width: 100%;
   position: absolute;
   top: 100%;
   left: 0;
   margin-top: 35px;
   z-index: 1;
}

#top__review .slider .name {
   text-align: right;
   padding-top: 24px;
}

#top__review .button {
   text-align: right;
   padding-top: 65px;
}

@media screen and (max-width: 1200px) {
   #top__review .box .col {
      width: calc(50% - 50px);
   }
}

@media screen and (max-width: 1023px) {
   #top__review {
      margin-top: 35%;
   }

   #top__review .deco {
      width: 28vw;
      top: -35vw;
   }

   #top__review .box {
      gap: 50px;
   }

   #top__review .box .col {
      width: calc(50% - 25px);
   }
}

@media screen and (max-width: 767px) {
   #top__review {
      margin-top: 45%;
      padding: 20px 0 120px;
   }

   #top__review:before {
      bottom: 100%;
   }

   #top__review .deco {
      width: 45vw;
      top: -48vw;
   }

   #top__review .box {
      flex-direction: column;
      gap: 50px;
   }

   #top__review .box .col {
      width: 100%;
   }

   #top__review .slider {
      border-width: 5px;
      font-size: 14px;
      line-height: 24px;
      margin-top: 20px;
      padding: 30px 20px;
   }
}

/* -- --*/
#top__news .wrap {
   padding-top: 110px;
   padding-bottom: 90px;
}

#top__news .deco {
   width: 300px;
   position: absolute;
   top: -170px;
   right: 0;
}

#top__news .box {
   background-color: #F5EBBD;
   border-radius: 30px;
   margin-top: 30px;
   padding: 90px 30px;
}

#top__news .box ul {
   max-width: 570px;
   margin: 0 auto;
}

#top__news .box ul li {
   display: grid;
   grid-template-columns: auto 1fr;
   gap: 70px;
}

#top__news .box ul li+li {
   padding-top: 40px;
}

#top__news .box ul li time {
   font-weight: 700;
   font-size: 20px;
}

#top__news .box ul li a {
   font-size: 18px;
}

#top__news .box ul li a span {
   -webkit-box-orient: vertical;
   -webkit-line-clamp: 1;
   display: -webkit-box;
   overflow: hidden;
}

#top__news .button {
   text-align: right;
   padding-top: 45px;
}

@media screen and (max-width: 1023px) {
   #top__news .deco {
      width: 210px;
      top: -130px;
   }
}

@media screen and (max-width: 767px) {
   #top__news .wrap {
      padding-top: 100px;
      padding-bottom: 50px;
   }

   #top__news .deco {
      width: 170px;
      top: -100px;
   }

   #top__news .box {
      border-radius: 20px;
      padding: 20px;
   }

   #top__news .box ul li {
      grid-template-columns: 1fr;
      gap: 5px;
   }

   #top__news .box ul li+li {
      padding-top: 20px;
   }

   #top__news .box ul li time {
      font-size: 16px;
   }

   #top__news .box ul li a {
      font-size: 14px;
   }

   #top__news .box ul li a span {
      -webkit-line-clamp: 2;
   }

   #top__news .button {
      padding-top: 30px;
   }
}

@media screen and (min-width: 1201px) {
   #top__news .wrap {
      max-width: 980px;
   }

   #top__news .deco {
      right: -80px;
   }
}

/* -- --*/
/*=============================================
 * 教室案内
*=============================================*/
#about__kv {
   flex-direction: row;
   gap: 50px;
   padding: 80px 0 0;
}

#about__kv:before {
   content: '';
   width: 100%;
   height: 100%;
   background: url("../img/about/about-bg-1.webp") no-repeat center bottom/100% auto;
   position: absolute;
   top: 0;
   left: 0;
   transform: translate(100%, -100%);
   opacity: 0;
   transition: transform 0.5s ease-out, opacity 0.5s ease-out;
}

#about__kv .photo {
   width: 46.5%;
}

#about__kv .photo img {
   transform: translate(-100%, -100%);
   opacity: 0;
   transition: transform 1s ease-out, opacity 1s ease-out;
}

#about__kv .col {
   width: 540px;
   padding: 30% 0 42%;
}

#about__kv .elementor-widget-heading {
   font-weight: 600;
   font-size: 15px;
   letter-spacing: 0.069em;
   line-height: 20px;
}

#about__kv .elementor-widget-heading span {
   display: inline-block;
   font-weight: 700;
   font-size: 45px;
   letter-spacing: 0.03em;
   line-height: 56px;
}

#about__kv .elementor-widget-text-editor {
   padding-top: 40px;
}

#about__kv .elementor-widget-text-editor p+p {
   padding-top: 30px;
}

#about__kv .button {
   text-align: right;
   padding-top: 30px;
}

#about__kv.is-active:before {
   transform: translate(0, 0);
   opacity: 1;
}

#about__kv.is-active .photo img {
   transform: translate(0, 0);
   opacity: 1;
   transition-delay: 0.5s;
}

@media screen and (max-width: 1440px) {
   #about__kv .col {
      padding-bottom: 36%;
   }
}

@media screen and (max-width: 1200px) {
   #about__kv .photo {
      width: calc(100% - 640px);
   }

   #about__kv .col {
      padding: 24% 0 36%;
   }
}

@media screen and (max-width: 1023px) {
   #about__kv {
      flex-direction: column;
      align-items: center;
      gap: 35vw;
      padding-bottom: 40vw;
   }

   #about__kv:before {
      background-size: 140% auto;
   }

   #about__kv .photo {
      width: 100%;
      align-self: flex-start;
   }

   #about__kv .col {
      padding: 0;
   }
}

@media screen and (max-width: 767px) {
   #about__kv {
      gap: 20px;
      padding: 52px 0 0;
   }

   #about__kv:before {
      background-image: url("../img/about/about-bg-1_sp.webp");
      background-size: 100% auto;
   }

   #about__kv .photo {
      width: 95%;
      margin: 0;
   }

   #about__kv .col {
      width: 100%;
      padding: 0 20px;
      box-sizing: border-box;
   }

   #about__kv .elementor-widget-heading {
      font-size: 12px;
      line-height: 17px;
      letter-spacing: 0;
   }

   #about__kv .elementor-widget-heading span {
      font-size: 28px;
      line-height: 35px;
      padding-bottom: 6px;
   }

   #about__kv .elementor-widget-text-editor {
      font-size: 13px;
      line-height: 25px;
      padding-top: 28px;
   }

   #about__kv .elementor-widget-text-editor p+p {
      padding-top: 20px;
   }
}

/* -- --*/
#about__concept {
   padding-bottom: 170px;
}

#about__concept .photo {
   max-width: 980px;
   margin: 0 auto;
   padding-top: 70px;
}

#about__concept .photo img {
   border-radius: 30px;
}

#about__concept .deco {
   width: 148px;
   height: 155px;
   position: relative;
   margin: -40px auto 0;
}

#about__concept .deco .elementor-widget-image {
   transition: 1s cubic-bezier(0.4, 0.4, 0, 1);
   transform: rotate(180deg);
   opacity: 0;
}

#about__concept .deco.scrollIn .elementor-widget-image {
   transform: rotate(0deg);
   opacity: 1;
   transition-delay: 0.3s;
}

#about__concept .deco-1 {
   width: 80px;
   position: absolute;
   top: 0;
   right: 0;
}

#about__concept .deco-2 {
   width: 67px;
   position: absolute;
   top: calc(50% - 30px);
   left: 0;
}

#about__concept .deco-3 {
   width: 46px;
   position: absolute;
   bottom: 0;
   left: calc(50% - 23px);
}

#about__concept .elementor-widget-text-editor {
   text-align: center;
   padding-top: 40px;
}

#about__concept .elementor-widget-text-editor p+p {
   padding-top: 30px;
}

@media screen and (max-width: 1023px) {
   #about__concept .elementor-widget-text-editor br.sp {
      display: block;
   }

   #about__concept .elementor-widget-text-editor br.pc {
      display: none;
   }
}

@media screen and (max-width: 767px) {
   #about__concept {
      padding: 50px 0 80px;
   }

   #about__concept .photo {
      padding-top: 30px;
   }

   #about__concept .photo img {
      border-radius: 15px;
   }

   #about__concept .deco {
      width: 75px;
      height: 78px;
      margin-top: -20px;
   }

   #about__concept .deco-1 {
      width: 40px;
   }

   #about__concept .deco-2 {
      width: 33px;
      top: calc(50% - 16px);
   }

   #about__concept .deco-3 {
      width: 23px;
      left: calc(50% - 12px);
   }

   #about__concept .elementor-widget-text-editor {
      text-align: left;
      padding-top: 30px;
   }

   #about__concept .elementor-widget-text-editor p+p {
      padding-top: 20px;
   }
}

/* -- --*/
#about__staff {
   background-color: #FEA9A3;
   margin-top: 16%;
   padding: 0 0 calc(80px + 31%);
}

#about__staff:before {
   content: '';
   width: 100%;
   height: auto;
   padding-top: 19%;
   background: url("../img/about/about-bg-2.webp") no-repeat center top/cover;
   position: absolute;
   top: auto;
   bottom: 100%;
   left: 0;
}

#about__staff .h2 {
   margin-top: -5%;
}

#about__staff .swiper {
   width: auto;
   padding-top: 50px;
}

#about__staff .swiper-slide {
   width: 320px;
   margin: 0 30px;
}

#about__staff .swiper-slide.odd {
   padding-top: 60px;
}

#about__staff .swiper-slide figure {
   width: 100%;
   height: 450px;
}

#about__staff .swiper-slide figure img {
   height: 100% !important;
   border-radius: 200px;
}

#about__staff .swiper-slide .elementor-heading-title,
#about__staff .swiper-slide .name {
   text-align: center;
   padding-top: 30px;
}

#about__staff .swiper-slide .elementor-widget-text-editor,
#about__staff .swiper-slide .desc {
   padding-top: 20px;
}

#about__staff .button {
   text-align: right;
   padding-top: 90px;
}

@media screen and (max-width: 767px) {
   #about__staff .swiper {
      padding: 30px 0 0;
   }

   #about__staff .h2 {
      margin-top: 0;
   }

   #about__staff .swiper-slide {
      width: 230px;
      margin: 0 15px;
   }

   #about__staff .swiper-slide.odd {
      padding-top: 60px;
   }

   #about__staff .swiper-slide figure {
      height: 325px;
   }

   #about__staff .swiper-slide .elementor-heading-title {
      font-size: 16px;
      line-height: 24px;
      text-align: center;
      padding-top: 20px;
   }

   #about__staff .swiper-slide .elementor-widget-text-editor {
      padding-top: 10px;
   }

   #about__staff .button {
      padding-top: 40px;
   }
}

/* -- --*/
#about__class {
   background-color: #C1E4EC;
   padding-bottom: 120px;
}

#about__class:before {
   content: '';
   width: 100%;
   height: auto;
   padding-top: 31%;
   background: url("../img/about/about-bg-3.webp") no-repeat center top/cover;
   position: absolute;
   top: auto;
   bottom: 100%;
   left: 0;
}

#about__class:after {
   content: '';
   width: 100%;
   height: 24vw;
   background-color: #C1E4EC;
   position: absolute;
   top: 100%;
   left: 0;
}

#about__class .wrap {
   margin-top: -60px;
}

#about__class .box {
   flex-direction: row-reverse;
   justify-content: flex-end;
   align-items: flex-end;
   gap: 60px;
   margin-top: 60px;
   padding: 0 50px 50px;
}

#about__class .box+.box {
   margin-top: 80px;
}

#about__class .box:before {
   content: '';
   width: 100%;
   height: auto;
   background-color: #fff;
   position: absolute;
   top: 60px;
   bottom: 0;
   left: 0;
   border-radius: 30px;
}

#about__class .box .col {
   width: 510px;
   padding-top: 110px;
}

#about__class .box h3 {
   max-width: 345px;
   background-color: #FFE260;
   border-radius: 10px 30px 30px 10px;
   padding: 14px 0 14px 60px;
   position: relative;
   left: -60px;
}

#about__class .box .elementor-widget-text-editor {
   padding-top: 30px;
}

#about__class .box .elementor-widget-text-editor ul {
   padding-top: 30px;
}

#about__class .box .elementor-widget-text-editor ul li {
   display: grid;
   grid-template-columns: 120px 1fr;
   align-items: center;
   gap: 16px;
}

#about__class .box .elementor-widget-text-editor ul li+li {
   padding-top: 10px;
}

#about__class .box .elementor-widget-text-editor ul li:nth-child(1) strong {
   background-color: #B688E6;
}

#about__class .box .elementor-widget-text-editor ul li:nth-child(2) strong {
   background-color: #06B6DB;
}

#about__class .box .elementor-widget-text-editor ul strong {
   display: block;
   color: #fff;
   font-weight: 700;
   font-size: 22px;
   border-radius: 50px;
   text-align: center;
   padding: 4px 0;
}

#about__class .box .elementor-widget-image {
   width: 401px;
}

#about__class .box .elementor-widget-image img {
   border-radius: 30px;
}

#about__class .button {
   text-align: right;
   padding-top: 60px;
}

@media screen and (max-width: 1200px) {
   #about__class .box {
      align-items: flex-start;
      padding-top: 50px;
   }

   #about__class .box:before {
      top: 0;
   }

   #about__class .box .col {
      padding-top: 0;
   }
}

@media screen and (max-width: 1023px) {
   #about__class .box {
      flex-direction: column;
   }

   #about__class .box .elementor-widget-image {
      width: 100%;
      text-align: center;
   }
}

@media screen and (max-width: 767px) {
   #about__class {
      padding-bottom: 50px;
   }

   #about__class .wrap {
      margin-top: 0;
   }

   #about__class .box {
      flex-direction: column;
      gap: 30px;
      margin-top: 30px;
      padding: 20px;
   }

   #about__class .box:before {
      border-radius: 20px;
   }

   #about__class .box+.box {
      margin-top: 40px;
   }

   #about__class .box .elementor-widget-image img {
      border-radius: 20px;
   }

   #about__class .box .col {
      width: 100%;
   }

   #about__class .box h3 {
      padding: 7px 30px 7px 30px;
      left: -30px;
   }

   #about__class .box .elementor-widget-text-editor {
      padding-top: 20px;
   }

   #about__class .box .elementor-widget-text-editor ul {
      padding-top: 20px;
   }

   #about__class .box .elementor-widget-text-editor ul li {
      grid-template-columns: 80px 1fr;
      gap: 10px;
   }

   #about__class .box .elementor-widget-text-editor ul strong {
      font-size: 16px;
   }

   #about__class .button {
      padding-top: 40px;
   }
}

/*=============================================
 * b-Englishが選ばれる3つの理由
*=============================================*/
@keyframes rotateRev {
   0% {
      transform: rotate(0);
   }

   15% {
      transform: rotate(0);
   }

   85% {
      transform: rotate(225deg);
   }

   100% {
      transform: rotate(225deg);
   }
}

@keyframes rotateRevRev {
   0% {
      transform: rotate(0);
   }

   15% {
      transform: rotate(0);
   }

   85% {
      transform: rotate(-270deg);
   }

   100% {
      transform: rotate(-270deg);
   }
}

.page-feature-deco {
   background: url("../img/feature/page-feature-deco.webp") no-repeat center top/100% auto;
   width: 1580px;
   padding-top: 175.5%;
   position: absolute;
   top: 32vw;
   bottom: 0;
   left: 50%;
   transform: translateX(-50%);
}

.page-feature-deco .deco-1 {
   width: 9%;
   position: absolute;
   top: 3.1%;
   left: 6.2%;
   animation: rotateRevRev 4s ease-in-out infinite alternate;
   animation-delay: 0s;
}

.page-feature-deco .deco-2 {
   width: 8%;
   position: absolute;
   top: 24.9%;
   right: 3.3%;
   animation: rotateRevRev 4s ease-in-out infinite alternate;
   animation-delay: 2s;
}

.page-feature-deco .deco-3 {
   width: 4%;
   position: absolute;
   top: 29.8%;
   right: 3.5%;
   animation: rotateRevRev 4s ease-in-out infinite alternate;
   animation-delay: 2s;
}

.page-feature-deco .deco-4 {
   width: 9%;
   position: absolute;
   top: 48.8%;
   left: 3.7%;
   animation: rotateRevRev 4s ease-in-out infinite alternate;
}

.page-feature-deco .deco-5 {
   width: 6.4%;
   position: absolute;
   top: 51.4%;
   left: 7%;
   animation: rotateRevRev 4s ease-in-out infinite alternate;
}

.page-feature-deco .deco-6 {
   width: 8.6%;
   position: absolute;
   top: 54.7%;
   right: 3.4%;
}

.page-feature-deco .deco-6 svg {
   width: 100%;
   height: 100%;
}

.page-feature-deco .deco-7 {
   width: 8.6%;
   position: absolute;
   top: 54.8%;
   right: 4.5%;
}

@media screen and (max-width: 767px) {
   .page-feature-deco {
      background-image: url('../img/feature/page-feature-deco_sp.webp');
      width: 150%;
      padding-top: 399%;
      top: 85vw;
   }

   .page-feature-deco .deco-1 {
      width: 17.4%;
      top: 4%;
      left: 10%;
   }

   .page-feature-deco .deco-2 {
      width: 17%;
      top: 27%;
      right: 8.3%;
   }

   .page-feature-deco .deco-3 {
      width: 11%;
      top: 32.8%;
      right: 7.5%;
   }

   .page-feature-deco .deco-4 {
      width: 21%;
      top: 63%;
      left: 8.7%;
   }

   .page-feature-deco .deco-5 {
      width: 14%;
      top: 65.8%;
      left: 16%;
   }

   .page-feature-deco .deco-6 {
      width: 18.6%;
      top: 69.5%;
      right: 9%;
   }

   .page-feature-deco .deco-7 {
      width: 18.6%;
      top: 69.6%;
      right: 9.7%;
   }
}

/* -- -- */
#feature-sec1 {
   padding-bottom: 80px;
}

#feature-sec1 .wrap {
   padding: 70px 0 280px 50px;
}

#feature-sec1 .box {
   padding: 70px 50px 70px 205px;
   border-radius: 263px 0 0 263px;
}

#feature-sec1 .box .no {
   font-weight: 700;
   font-size: 80px;
   line-height: 100px;
   position: absolute;
   top: 0;
   left: 30px;
}

#feature-sec1 .box .h-26 {
   font-weight: 900;
}

#feature-sec1 .box .elementor-widget-text-editor {
   padding-top: 24px;
}

#feature-sec1 .box .deco-1 {
   width: 385px;
   position: absolute;
   top: 92%;
   left: 55px;
}

#feature-sec1 .box .deco-2 {
   width: 342px;
   position: absolute;
   top: 92%;
   left: 98px;
}

#feature-sec1 .box .deco-3 {
   width: 305px;
   position: absolute;
   top: 92%;
   left: 135px;
}

#feature-sec1 .box.blue {
   background-color: #C6E7EE;
}

#feature-sec1 .box.blue .no {
   color: #06B6DB;
}

#feature-sec1 .box.pink {
   background-color: #FDDAD6;
   margin-top: 270px;
}

#feature-sec1 .box.pink .no {
   color: #FF7C6E;
}

#feature-sec1 .box.purple {
   background-color: #E4DEEE;
   margin-top: 250px;
}

#feature-sec1 .box.purple .no {
   color: #B688E6;
}

@media screen and (max-width: 767px) {
   #feature-sec1 {
      padding-top: 50px;
      padding-bottom: 50px;
   }

   #feature-sec1 .wrap {
      padding: 40px 0 150px 20px;
   }

   #feature-sec1 .box {
      padding: 40px 20px;
      border-radius: 30px 0 0 30px;
   }

   #feature-sec1 .box .no {
      font-size: 40px;
      letter-spacing: 0.17em;
      line-height: 50px;
      top: -20px;
      right: 30px;
      text-align: center;
   }

   #feature-sec1 .box .h-26 {
      font-size: 20px;
      line-height: 27px;
      text-align: center;
   }

   #feature-sec1 .box .elementor-widget-text-editor {
      padding-top: 12px;
   }

   #feature-sec1 .box .deco-1 {
      width: 213px;
      position: absolute;
      top: 94%;
      left: 0;
   }

   #feature-sec1 .box .deco-2 {
      width: 198px;
      position: absolute;
      top: 94%;
      left: 16px;
   }

   #feature-sec1 .box .deco-3 {
      width: 182px;
      position: absolute;
      top: 94%;
      left: 32px;
   }

   #feature-sec1 .box.pink {
      margin-top: 148px;
   }

   #feature-sec1 .box.purple {
      margin-top: 148px;
   }
}

/* -- -- */
#feature-sec2 {
   padding-bottom: 80px;
   overflow: hidden;
}

#feature-sec2 .swiper {
   width: 1460px;
   overflow: visible;
}

#feature-sec2 .swiper-wrapper {
   transition-timing-function: linear;
}

@media screen and (max-width: 767px) {
   #feature-sec2 {
      padding-bottom: 40px;
   }

   #feature-sec2 .swiper {
      width: 730px;
   }
}

/*=============================================
 * 講師・スタッフ紹介
*=============================================*/
#staff {
   padding: 5% 0 120px;
}

#staff .box {
   position: relative;
   margin: 80px 0 0 60px;
}

#staff .box+.box {
   margin-top: 160px;
}

#staff .box figure {
   width: 400px;
   height: 300px;
   position: absolute;
   top: -80px;
   left: -60px;
}

#staff .box figure img {
   border-radius: 30px;
}

#staff .box .col {
   background-color: #fff;
   border-radius: 30px;
   box-shadow: 0 0 10px rgba(0, 0, 0, 0.06);
   padding: 60px 50px 70px 380px;
}

#staff .box .name {
   display: flex;
   align-items: center;
   flex-wrap: wrap;
   gap: 16px;
}

#staff .box .name dt {
   background-color: #B688E6;
   color: #fff;
   font-weight: 700;
   border-radius: 6px 20px 20px 6px;
   padding: 5px 25px 5px 20px;
}

#staff .box .name dd {
   font-weight: 900;
}

#staff .box .desc {
   padding-top: 20px;
}

#staff .box .desc a {
   color: #FF7C7A;
   text-decoration: underline;
}

#staff .box .desc a:hover {
   text-decoration: none;
}

#staff .box:nth-child(3) .name dt {
   background-color: #FF7C7A;
}

#staff .box:nth-child(4) .name dt {
   background-color: #06B6DB;
}

#staff .box:nth-child(5) .name dt {
   background-color: #00C280;
}

@media screen and (max-width: 1023px) {
   #staff .box {
      background-color: #fff;
      border-radius: 30px;
      box-shadow: 0 0 10px rgba(0, 0, 0, 0.06);
      margin: 0;
      padding: 50px;
   }

   #staff .box+.box {
      margin-top: 50px;
   }

   #staff .box figure {
      position: static;
      margin: 0 auto;
   }

   #staff .box .col {
      background-color: transparent;
      box-shadow: none;
      padding: 50px 0 0;
   }
}

@media screen and (max-width: 767px) {
   #staff {
      padding: 50px 0 50px;
   }

   #staff .box {
      border-radius: 30px;
      padding: 20px 20px 30px;
   }

   #staff .box figure {
      width: 100%;
      height: auto;
   }

   #staff .box figure img {
      border-radius: 20px;
   }

   #staff .box .col {
      padding-top: 30px;
   }

   #staff .box .name dt {
      font-size: 16px;
   }

   #staff .box .desc {
      line-height: 26px;
      padding-top: 15px;
   }
}

/*=============================================
 * 代表あいさつ
*=============================================*/
#message {
   padding-bottom: 120px;
}

#message .wrap {
   padding: 80px 105px;
}

#message .title {
   font-weight: 700;
   font-size: 40px;
   letter-spacing: 0.05em;
   line-height: 60px;
}

#message .title span {
   font-size: 53px;
}

#message .sub {
   font-size: 15px;
   line-height: 36px;
}

#message .elementor-widget-text-editor {
   line-height: 36px;
   padding-top: 60px;
}

#message .elementor-widget-text-editor p+p {
   padding-top: 30px;
}

#message .name {
   padding-top: 60px;
}

#message .deco {
   width: 301px;
   position: absolute;
   bottom: -85px;
   right: 50px;
}

@media screen and (max-width: 1200px) {
   #message .deco {
      right: 20px;
   }
}

@media screen and (max-width: 1023px) {
   #message .wrap {
      padding: 80px 50px;
   }

   #message .deco {
      width: 201px;
      right: 0px;
   }
}

@media screen and (max-width: 767px) {
   #message {
      padding-top: 50px;
      padding-bottom: 80px;
   }

   #message .wrap {
      padding: 40px 20px 80px;
   }

   #message .title {
      font-size: 22px;
      line-height: 36px;
   }

   #message .title span {
      font-size: 32px;
   }

   #message .sub {
      font-size: 12px;
      line-height: 24px;
   }

   #message .elementor-widget-text-editor {
      line-height: 30px;
      padding-top: 20px;
   }

   #message .elementor-widget-text-editor p+p {
      padding-top: 30px;
   }

   #message .name {
      padding-top: 30px;
   }

   #message .deco {
      width: 150px;
      bottom: -60px;
   }
}

/*=============================================
 * クラス紹介
*=============================================*/
#class {
   color: #3B2D20;
   padding-bottom: 100px;
}

#class .wrap {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   gap: 100px 60px;
}

#class .wrap>.elementor-element {
   border-radius: 40px;
   box-shadow: 0 0 10px rgba(0, 0, 0, 0.06);
   padding: 273px 74px 34px 40px;
   transition: all 0.3s;
}

#class .wrap>.elementor-element:hover {
   opacity: 0.7;
}

#class .elementor-widget-image {
   width: 100%;
   height: 100%;
   position: absolute;
   top: 0;
   left: 0;
}

#class .elementor-widget-button {
   width: 100%;
   height: 100%;
   position: absolute;
   top: 0;
   left: 0;
}

#class .elementor-widget-button a {
   display: block;
   width: 100%;
   height: 100%;
   font-size: 0;
   background: transparent;
}

#class .elementor-widget-button a:after {
   content: '';
   width: 40px;
   height: 40px;
   background: url("../img/common/btn-arrow.webp") no-repeat center top/cover;
   position: absolute;
   bottom: 20px;
   right: 20px;
   border-radius: 50%;
   transition: all 0.3s;
}

#class .elementor-widget-button a:hover {
   opacity: 1;
}

#class .elementor-widget-button a:hover:after {
   transform: translateX(5px);
}

#class .elementor-widget-text-editor {
   padding-top: 14px;
}

#class .kids {
   background-color: #BFECE6;
}

#class .kids .elementor-widget-button a:after {
   background-color: #00C280;
}

#class .general {
   background-color: #C6E7EE;
}

#class .general .elementor-widget-button a:after {
   background-color: #06B6DB;
}

#class .business {
   background-color: #F4D7D4;
}

#class .business .elementor-widget-button a:after {
   background-color: #FF7C7A;
}

#class .toeic {
   background-color: #E4DEEE;
}

#class .toeic .elementor-widget-button a:after {
   background-color: #B689E6;
}

#class .speech {
   background-color: #F5EBBD;
}

#class .speech .elementor-widget-button a:after {
   background-color: #F9B900;
}

#class .senior {
   background-color: #F1D8BF;
}

#class .senior .elementor-widget-button a:after {
   background-color: #F97C00;
}

@media screen and (max-width: 1023px) {
   #class .wrap {
      gap: 100px 30px;
   }

   #class .wrap>.elementor-element {
      padding: 200px 70px 30px 20px;
   }
}

@media screen and (max-width: 767px) {
   #class {
      padding-top: 50px;
      padding-bottom: 50px;
   }

   #class .wrap {
      grid-template-columns: 1fr;
      gap: 50px;
   }

   #class .wrap>.elementor-element {
      padding: 50vw 70px 30px 20px;
   }
}

/*-- -- */
#class__lead {
   padding-bottom: 75px;
}

#class__lead .wrap {
   padding: 100px 140px;
   z-index: 1;
}

#class__lead .h-26 {
   line-height: 45px;
}

#class__lead .elementor-widget-text-editor {
   line-height: 36px;
   padding-top: 40px;
}

#class__lead .photo-1 {
   width: 501px;
   height: 303px;
   position: absolute;
   bottom: -230px;
   right: -50px;
}

#class__lead .photo-1 .deco {
   width: 26%;
   position: absolute;
   top: 0;
   left: 9%;
}

#class__lead .photo-1 .img-1 {
   width: 29%;
   position: absolute;
   bottom: 0;
   left: 0;
}

#class__lead .photo-1 .img-2 {
   width: 62%;
   position: absolute;
   bottom: 13%;
   right: 0;
}

@media screen and (max-width: 1200px) {
   #class__lead .photo-1 {
      right: -20px;
   }
}

@media screen and (max-width: 1023px) {
   #class__lead .wrap {
      padding: 100px 40px;
   }
}

@media screen and (max-width: 767px) {
   #class__lead {
      padding-top: 50px;
   }

   #class__lead .wrap {
      padding: 50px 20px;
   }

   #class__lead .h-26 {
      line-height: 32px;
   }

   #class__lead .elementor-widget-text-editor {
      text-align: justify;
      line-height: 30px;
      padding-top: 20px;
   }

   #class__lead .photo-1 {
      width: 250px;
      height: 151px;
      bottom: -120px;
   }
}

/*-- -- */
#class__course {
   position: relative;
   margin-top: 20%;
   padding-bottom: 100px;
}

#class__course:before {
   content: '';
   width: 100%;
   height: auto;
   padding-top: 20%;
   background: url("../img/class/course-bg.webp") no-repeat center top/cover;
   position: absolute;
   top: auto;
   bottom: 100%;
   left: 0;
}

#class__course:after {
   content: '';
   width: 100%;
   height: 140%;
   background-color: #B5E3DC;
   position: absolute;
   top: 0%;
   left: 0;
}

#class__course .wrap {
   z-index: 1;
   gap: 0;
}

#class__course .box {
   display: flex;
   flex-direction: row;
   flex-wrap: wrap;
   gap: 30px;
   padding-top: 60px;
}

#class__course .box .col {
   flex: 1 0 calc(33.33% - 20px);
   background-color: #fff;
   border-radius: 30px;
   padding: 50px 30px;
}

#class__course .box h3 {
   padding: 10px 0 10px 20px;
}

#class__course .box h4 {
   width: 150px;
   border-radius: 4px 18px 18px 4px;
   margin-top: 30px;
   padding: 4px 0 4px 50px;
   position: relative;
   left: -36px;
   color: #fff;
   font-weight: 500;
}

#class__course .box .elementor-widget-text-editor {
   padding: 10px 0 0 20px;
}

#class__course .box .col:nth-child(1) h3 {
   background: url("../img/class/course-icon-1.webp") no-repeat center left/auto 100%;
}

#class__course .box .col:nth-child(1) h4 {
   background-color: #FF7C7A;
}

#class__course .box .col:nth-child(2) h3 {
   background: url("../img/class/course-icon-2.webp") no-repeat center left/auto 100%;
}

#class__course .box .col:nth-child(2) h4 {
   background-color: #F97C00;
}

#class__course .box .col:nth-child(3) h3 {
   background: url("../img/class/course-icon-3.webp") no-repeat center left/auto 100%;
}

#class__course .box .col:nth-child(3) h4 {
   background-color: #F9B900;
}

#class__course .box .col:nth-child(4) h3 {
   background: url("../img/class/course-icon-4.webp") no-repeat center left/auto 100%;
}

#class__course .box .col:nth-child(4) h4 {
   background-color: #00C280;
}

#class__course .box .col:nth-child(5) h3 {
   background: url("../img/class/course-icon-5.webp") no-repeat center left/auto 100%;
}

#class__course .box .col:nth-child(5) h4 {
   background-color: #06B6DB;
}

#class__course .box .col:nth-child(6) h3 {
   background: url("../img/class/course-icon-6.webp") no-repeat center left/auto 100%;
}

#class__course .box .col:nth-child(6) h4 {
   background-color: #B689E6;
}

@media screen and (max-width: 1023px) {
   #class__course {
      margin-top: 23%;
   }

   #class__course:before {
      bottom: 100%;
   }

   #class__course:after {
      top: 0;
   }

   #class__course .box .col {
      flex: 1 0 calc(50% - 15px);
   }
}

@media screen and (max-width: 767px) {
   #class__course {
      padding-top: 30px;
      padding-bottom: 50px;
   }

   #class__course .box {
      grid-template-columns: 1fr;
      padding-top: 30px;
   }

   #class__course .box .col {
      flex: 1 0 100%;
      padding: 30px 20px;
   }

   #class__course .box h4 {
      width: 120px;
      left: -26px;
      padding-left: 46px;
   }
}

/*=============================================
 * 受講料金
*=============================================*/
#fee {
   padding-top: 4%;
}

#fee .wrap {
   padding-top: 100px;
   padding-bottom: 100px;
}

#fee .box+.box {
   padding-top: 60px;
}

#fee .table-scroll {
   overflow-y: hidden !important;
}

#fee table {
   width: 100%;
}

#fee table th,
#fee table td {
   font-weight: 500;
   line-height: 25px;
   vertical-align: middle;
   text-align: left;
   height: 70px;
   padding: 4px 50px;
}

#fee table th {
   width: 340px;
}

#fee table td {
   border-left: 6px solid #F0F0F0;
}

#fee table tr:first-child th,
#fee table tr:first-child td {
   font-weight: 700;
   font-size: 22px;
   line-height: 32px;
}

#fee table tr:first-child th {
   border-top-left-radius: 20px;
}

#fee table tr:first-child td {
   border-top-right-radius: 20px;
}

#fee table tr:last-child th {
   border-bottom-left-radius: 20px;
}

#fee table tr:last-child td {
   border-bottom-right-radius: 20px;
}

#fee table tr:last-child th,
#fee table tr:last-child td {
   border-top: 6px solid #F0F0F0;
}

#fee table tr:not(:first-child) th,
#fee table tr:not(:first-child) td {
   background-color: #fff;
}

#fee .table-1 tr:first-child th,
#fee .table-1 tr:first-child td {
   background-color: #00E1BF;
}

#fee .table-2 tr:first-child th,
#fee .table-2 tr:first-child td {
   background-color: #66D5EB;
}

#fee .table-3 tr:first-child th,
#fee .table-3 tr:first-child td {
   background-color: #FEA9A3;
}

#fee .table-4 tr:first-child th,
#fee .table-4 tr:first-child td {
   background-color: #C6B2EB;
}

#fee .note {
   font-size: 15px;
   line-height: 24px;
   padding-top: 30px;
}

@media screen and (max-width: 1023px) {

   #fee table th,
   #fee table td {
      padding: 10px 20px;
   }
}

@media screen and (max-width: 767px) {
   .page-id-464 .page-feature-deco {
      display: none;
   }

   #fee .note_sp {
      color: #EA3030;
      padding-bottom: 30px;
   }

   #fee .wrap {
      padding-top: 50px;
      padding-bottom: 50px;
   }

   #fee .box+.box {
      padding-top: 50px;
   }

   #fee .table-scroll {
      overflow: auto hidden;
      margin-right: -20px;
      padding-bottom: 10px;
   }

   #fee .table-scroll table {
      min-width: 600px;
   }

   #fee table th,
   #fee table td {
      width: 50%;
      height: 40px;
      padding: 10px 20px;
   }

   #fee table td {
      border-left-width: 2px;
   }

   #fee table tr:first-child th,
   #fee table tr:first-child td {
      font-size: 16px;
      line-height: 26px;
   }

   #fee table tr:first-child th {
      border-top-left-radius: 10px;
   }

   #fee table tr:first-child td {
      border-top-right-radius: 10px;
   }

   #fee table tr:last-child th,
   #fee table tr:last-child td {
      border-top-width: 2px;
   }

   #fee table tr:last-child th {
      border-bottom-left-radius: 10px;
   }

   #fee table tr:last-child td {
      border-bottom-right-radius: 10px;
   }

   #fee .note {
      font-size: 12px;
      line-height: 20px;
      padding-top: 20px;
   }

   #fee .box .note {
      padding-top: 10px;
   }
}

/*=============================================
 * アクセス情報
*=============================================*/
#access {
   padding-bottom: 46px;
}

#access .wrap {
   flex-direction: row;
   align-items: flex-start;
   gap: 50px;
   padding: 100px 50px;
}

#access .elementor-widget-image {
   width: 300px;
   position: relative;
}

#access .elementor-widget-image:before {
   content: '';
   width: 100%;
   height: 100%;
   background-color: #FDF4C8;
   border-radius: 20px;
   position: absolute;
   top: 10px;
   left: 10px;
}

#access .col {
   width: 630px;
   padding-top: 170px;
}

#access .elementor-widget-text-editor {
   padding-top: 24px;
}

#access .elementor-widget-text-editor p+p {
   padding-top: 24px;
}

#access .button {
   text-align: right;
   padding-top: 30px;
}

@media screen and (max-width: 1023px) {
   #access .wrap {
      flex-direction: column;
      align-items: center;
   }

   #access .col {
      padding-top: 0;
   }
}

@media screen and (max-width: 767px) {
   #access {
      padding-top: 50px;
   }

   #access .wrap {
      padding: 50px 20px;
   }

   #access .elementor-widget-image {
      margin-top: 30px;
   }

   #access .col {
      width: 100%;
   }
}

/*=============================================
 * プライバシーポリシー
*=============================================*/
#privacy {
   padding-bottom: 120px;
}

#privacy .wrap {
   padding: 100px 50px;
}

#privacy .elementor-widget-text-editor {
   padding-bottom: 30px;
}

#privacy .elementor-widget-text-editor h3 {
   font-weight: 900;
   font-size: 20px;
   line-height: 30px;
   margin-bottom: 16px;
}

#privacy .elementor-widget-text-editor p+p {
   padding-top: 30px;
}

#privacy .elementor-widget-text-editor:first-child {
   padding-bottom: 65px;
}

#privacy .elementor-widget-text-editor:last-child {
   text-align: right;
   padding-bottom: 0;
}

#privacy .elementor-divider {
   padding: 0 0 30px;
}

#privacy .elementor-divider .elementor-divider-separator {
   border-block-start: 1px solid #F0F0F0;
}

@media screen and (max-width: 767px) {
   #privacy {
      padding-top: 50px;
      padding-bottom: 50px;
   }

   #privacy .wrap {
      padding: 40px 20px;
   }

   #privacy .elementor-widget-text-editor h3 {
      font-size: 16px;
      line-height: 26px;
      margin-bottom: 10px;
   }

   #privacy .elementor-widget-text-editor p+p {
      padding-top: 20px;
   }

   #privacy .elementor-widget-text-editor:first-child {
      padding-bottom: 30px;
   }
}

/*=============================================
 * お問い合わせ
*=============================================*/
.mailform {
   padding-bottom: 120px;
}

.mailform .tel {
   display: flex;
   align-items: flex-start;
   justify-content: space-between;
   flex-wrap: wrap;
   gap: 20px;
   max-width: 800px;
   margin: 0 auto;
   border-bottom: 1px solid #F0F0F0;
   margin-bottom: 35px;
   padding-bottom: 50px;
}

.mailform .tel h3 {
   display: flex;
   align-items: center;
   gap: 20px;
   position: relative;
}

.mailform .tel h3:before {
   content: '';
   width: 33px;
   height: 43px;
   -webkit-mask: url("../img/common/icon-tel-green.webp") no-repeat center top/cover;
   mask: url("../img/common/icon-tel-green.webp") no-repeat center top/cover;
   background: #06B6DB;
   display: block;
}

.mailform .tel .number a {
   display: block;
   font-weight: 600;
   font-size: 43px;
   letter-spacing: 0.04em;
   line-height: 50px;
}

.mailform .tel .number time {
   display: flex;
   gap: 15px;
   font-weight: 500;
   font-size: 14px;
   line-height: 20px;
}

.mailform .tel .number time strong {
   font-weight: 700;
}

.mailform .form-wrap {
   max-width: 800px;
   margin: 0 auto;
}

.mailform .form-wrap h3 {
   display: flex;
   align-items: center;
   gap: 12px;
   position: relative;
   padding-bottom: 30px;
}

.mailform .form-wrap h3:before {
   content: '';
   width: 40px;
   height: 28px;
   -webkit-mask: url("../img/common/icon-email-wh.webp") no-repeat center top/cover;
   mask: url("../img/common/icon-email-wh.webp") no-repeat center top/cover;
   background: #FF7C7A;
   display: block;
}

.mailform .form-desc {
   font-weight: 500;
   font-size: 15px;
   line-height: 28px;
   padding-bottom: 50px;
}

.mailform .form-row {
   padding-bottom: 30px;
}

.mailform .form-row .caption {
   display: flex;
   align-items: center;
   flex-wrap: wrap;
   gap: 15px;
   font-weight: 700;
   font-size: 20px;
   line-height: 30px;
}

.mailform .form-row .caption span {
   width: 62px;
   background-color: #FF7C7A;
   color: #fff;
   font-weight: 700;
   font-size: 15px;
   line-height: 24px;
   border-radius: 12px;
   text-align: center;
}

.mailform .form-row .caption small {
   font-size: 15px;
   color: #FF7C7A;
   align-self: baseline;
}

.mailform .form-row .input {
   padding-top: 12px;
}

.mailform .form-pp a {
   color: #FF7C7A;
   text-decoration: underline;
}

.mailform .form-pp a:hover {
   text-decoration: none;
}

.mailform .form-btn {
   display: flex;
   justify-content: center;
   align-items: center;
   gap: 30px;
   font-weight: 500;
   font-size: 20px;
   line-height: 30px;
   padding-top: 50px;
}

.mailform .form-btn input {
   width: 100%;
   height: 100%;
   position: absolute;
   top: 0;
   left: 0;
   opacity: 0;
   cursor: pointer;
}

.mailform .form-btn p {
   display: flex;
   align-items: center;
   justify-content: center;
   background-color: #FF7C7A;
   color: #fff;
   width: 180px;
   height: 60px;
   position: relative;
   border-radius: 50px;
   transition: all 0.3s;
}

.mailform .form-btn p:hover {
   background-color: #00E1BF;
}

.mailform .form-btn .btn-back {
   background-color: #ccc;
   color: #382416;
}

.mailform .form-btn .btn-back:hover {
   background-color: #00E1BF;
   color: #fff;
}

.mailform .form-btn .wpcf7-spinner {
   display: none;
}

@media screen and (max-width: 767px) {
   .mailform {
      padding-top: 50px;
      padding-bottom: 50px;
   }

   .mailform .tel {
      justify-content: center;
      gap: 10px;
      margin-bottom: 30px;
      padding-bottom: 30px;
   }

   .mailform .tel h3 {
      gap: 10px;
   }

   .mailform .tel h3:before {
      width: 25px;
      height: 33px;
   }

   .mailform .tel .number a {
      font-size: 38px;
   }

   .mailform .tel .number time {
      justify-content: center;
      gap: 8px;
      font-size: 13px;
   }

   .mailform .form-wrap h3 {
      justify-content: center;
      gap: 10px;
      padding-bottom: 20px;
   }

   .mailform .form-wrap h3:before {
      width: 30px;
      height: 22px;
      position: relative;
      top: 2px;
   }

   .mailform .form-desc {
      font-size: 14px;
      line-height: 22px;
      padding-bottom: 30px;
   }

   .mailform .form-row .caption {
      font-size: 16px;
      gap: 5px 10px;
   }

   .mailform .form-row .caption small {
      font-size: 12px;
      line-height: 1;
   }

   .mailform .form-row .caption span {
      width: 40px;
      font-size: 12px;
      line-height: 20px;
   }

   .mailform .form-btn {
      gap: 20px;
      font-size: 16px;
   }
}

/* -- -- */
.thanks {
   padding-bottom: 100px;
}

.thanks .wrap {
   gap: 30px;
   padding: 100px 40px;
}

.thanks .elementor-widget-text-editor p+p {
   padding-top: 30px;
}

.thanks .button .elementor-button {
   width: 250px;
   color: #382416;
}

.thanks .button .elementor-button:after {
   background-color: #06B6DB;
   transform: rotate(180deg);
   right: auto;
   left: -12px;
}

.thanks .button .elementor-button:hover:after {
   background-color: #F97C00;
   transform: translateX(-5px) rotate(180deg);
}

@media screen and (max-width: 767px) {
   .thanks {
      padding-top: 50px;
   }

   .thanks .wrap {
      gap: 20px;
      padding: 40px 20px;
   }

   .thanks .elementor-widget-text-editor {
      font-size: 13px;
      text-align: justify;
   }

   .thanks .elementor-widget-text-editor p+p {
      padding-top: 20px;
   }
}

/*=============================================
 * Post type
*=============================================*/
.sidebar .item {
   background-color: #fff;
   border-radius: 40px;
   box-shadow: 0 0 10px rgba(0, 0, 0, 0.06);
   padding: 30px 30px 50px;
}

.sidebar .item+.item {
   margin-top: 50px;
}

.sidebar h3 {
   padding: 7px 0 7px 20px;
}

.sidebar ul {
   font-size: 15px;
   line-height: 21px;
   padding-top: 35px;
}

.sidebar .newest h3 {
   background: url("../img/news/news-icon-1.webp") no-repeat center left/auto 100%;
}

.sidebar .newest ul li+li {
   border-top: 1px solid #F0F0F0;
   margin-top: 20px;
   padding-top: 20px;
}

.sidebar .newest ul li time {
   display: block;
   font-weight: 700;
   letter-spacing: 0.08em;
   padding-bottom: 4px;
}

.sidebar .newest ul li a {
   -webkit-box-orient: vertical;
   -webkit-line-clamp: 2;
   display: -webkit-box;
   overflow: hidden;
}

.sidebar .year h3 {
   background: url("../img/news/news-icon-2.webp") no-repeat center left/auto 100%;
}

.sidebar .year ul li+li {
   padding-top: 20px;
}

.sidebar .year ul li {
   display: inline-flex;
   align-items: center;
}

.sidebar .year ul li a {
   display: inline-flex;
   align-items: center;
   gap: 10px;
   position: relative;
}

.sidebar .year ul li a:before {
   content: '';
   display: block;
   width: 0;
   height: 0;
   border-width: 3px 0 3px 4px;
   border-color: transparent transparent transparent #66D5EB;
   border-style: solid;
}

@media screen and (max-width: 767px) {
   .sidebar ul {
      font-size: 13px;
      line-height: 20px;
      padding-top: 20px;
   }

   .sidebar .item {
      border-radius: 30px;
      padding: 40px 20px;
   }

   .sidebar .newest ul li:nth-child(3) {
      display: none;
   }

   .sidebar .year ul {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 14px;
   }
}

/* -- -- */
.news__list {
   line-height: 24px;
}

.news__list .item {
   border-bottom: 1px solid #F0F0F0;
   padding-bottom: 30px;
}

.news__list .item+.item {
   padding-top: 30px;
}

.news__list a {
   display: block;
   position: relative;
   padding: 0 80px 0 0;
}

.news__list a:after {
   content: '';
   width: 40px;
   height: 40px;
   background: #FF7C7A url("../img/common/btn-arrow.webp") no-repeat center top/cover;
   position: absolute;
   bottom: 0;
   right: 20px;
   border-radius: 50%;
   transition: all 0.3s;
}

.news__list a:hover:after {
   background-color: #00E1BF;
   transform: translateX(5px);
}

.news__list a time {
   display: block;
   font-weight: 700;
   font-size: 18px;
   letter-spacing: 0.08em;
   padding-bottom: 10px;
}

.news__list a span {
   -webkit-box-orient: vertical;
   -webkit-line-clamp: 2;
   display: -webkit-box;
   overflow: hidden;
}

@media screen and (max-width: 767px) {
   .news__list .item {
      padding-bottom: 20px;
   }

   .news__list .item+.item {
      padding-top: 20px;
   }

   .news__list a {
      padding: 0 40px 0 0;
   }

   .news__list a:after {
      width: 30px;
      height: 30px;
      right: 0;
   }
}

/* -- -- */
.wp-pagenavi {
   display: flex;
   justify-content: center;
   align-items: center;
   gap: 20px;
   font-family: "Outfit", sans-serif;
   font-optical-sizing: auto;
   font-style: normal;
   font-weight: 700;
   font-size: 18px;
   line-height: 24px;
}

.wp-pagenavi .pages,
.wp-pagenavi .first,
.wp-pagenavi .last {
   display: none;
}

.wp-pagenavi span:hover,
.wp-pagenavi a:hover {
   color: #FF7C7A;
   opacity: 1;
}

.wp-pagenavi span.current,
.wp-pagenavi a.current {
   color: #FF7C7A;
   pointer-events: none;
}

.wp-pagenavi .nextpostslink,
.wp-pagenavi .previouspostslink {
   display: none;
   width: 40px;
   height: 40px;
   background: #FF7C7A url("../img/common/btn-arrow.webp") no-repeat center top/cover;
   border-radius: 50%;
   transition: all 0.3s;
   font-size: 0;
}

.wp-pagenavi .nextpostslink:hover,
.wp-pagenavi .previouspostslink:hover {
   background-color: #00E1BF;
}

.wp-pagenavi .previouspostslink {
   transform: rotate(180deg);
}

@media screen and (max-width: 767px) {
   .wp-pagenavi {
      gap: 15px;
      font-size: 16px;
   }
}

/* -- -- */
.pt-archive {
   padding-bottom: 120px;
}

.pt-archive .wrap {
   display: flex;
   gap: 50px;
}

.pt-archive .sidebar {
   width: 300px;
}

.pt-archive .content {
   width: calc(100% - 350px);
   background-color: #fff;
   border-radius: 40px;
   box-shadow: 0 0 10px rgba(0, 0, 0, 0.06);
   padding: 80px 50px;
   box-sizing: border-box;
}

.pt-archive .wp-pagenavi {
   padding-top: 50px;
}

@media screen and (max-width: 1023px) {
   .pt-archive .wrap {
      flex-direction: column-reverse;
      padding-top: 50px;
   }

   .pt-archive .content {
      width: 100%;
      border-radius: 30px;
   }

   .pt-archive .sidebar {
      display: flex;
      justify-content: center;
      gap: 50px;
      width: 100%;
   }

   .pt-archive .sidebar .item {
      width: 50%;
   }

   .pt-archive .sidebar .item+.item {
      margin-top: 0;
   }
}

@media screen and (max-width: 767px) {
   .pt-archive {
      padding-bottom: 80px;
   }

   .pt-archive .wrap {
      gap: 30px;
   }

   .pt-archive .content {
      padding: 50px 20px 60px;
   }

   .pt-archive .wp-pagenavi {
      padding-top: 50px;
   }

   .pt-archive .sidebar {
      flex-direction: column;
      gap: 30px;
   }

   .pt-archive .sidebar .item {
      width: 100%;
      box-sizing: border-box;
   }
}

/* -- -- */
.pt-details-title {
   padding-bottom: 30px;
   border-bottom: 1px solid #F0F0F0;
}

.pt-details-time {
   display: block;
   background: url("../img/news/news-icon-3.webp") no-repeat center left/auto 100%;
   padding: 12px 0 12px 20px;
   font-weight: 700;
   letter-spacing: 0.08em;
}

.pt-details-content {
   padding-top: 30px;
}

.pt-details-content h2 {
   border-top: 3px solid #FF7C7A;
   border-bottom: 3px solid #FF7C7A;
   font-weight: 700;
   font-size: 24px;
   line-height: 46px;
   margin: 50px 0 20px;
   padding: 9px 0px 11px;
}

.pt-details-content h3 {
   font-weight: 700;
   font-size: 20px;
   line-height: 30px;
   border-left: 6px solid #FF7C7A;
   margin: 50px 0 20px;
   padding: 0 0 0 8px;
   position: relative;
}

.pt-details-content h4 {
   font-weight: 700;
   font-size: 18px;
   line-height: 26px;
   border-left: 6px solid #FF7C7A;
   margin: 50px 0 20px;
   padding: 0 0 0 8px;
   position: relative;
}

.pt-details-content h1:first-child,
.pt-details-content h2:first-child,
.pt-details-content h3:first-child,
.pt-details-content h4:first-child,
.pt-details-content h5:first-child,
.pt-details-content h6:first-child {
   margin-top: 0;
}

.pt-details-content h2+h3,
.pt-details-content h2+h4,
.pt-details-content h3+h4 {
   margin-top: 0;
}

.pt-details-content strong {
   font-weight: 700;
}

.pt-details-content mark {
   background-color: #FDF47F;
}

.pt-details-content ul {
   list-style: disc;
   padding-left: 20px;
}

.pt-details-content ol {
   list-style: decimal;
   padding-left: 20px;
}

.pt-details-content p img {
   display: inline-block;
   vertical-align: top;
   margin-right: 10px;
}

.pt-details-content p img.aligncenter {
   display: block;
   margin: 0 auto;
}

.pt-details-content p img.alignright {
   display: block;
   margin-left: auto;
}

.pt-details-content p img:last-child {
   margin-right: 0;
}

.pt-details-content a:not([href^="tel:"]) {
   color: #FF7C7A;
   text-decoration: underline;
}

.pt-details-content a:not([href^="tel:"]):hover {
   text-decoration: none;
}

.pt-details-btn {
   padding-top: 80px;
}

.pt-details-btn a {
   background-color: #FDF4C9;
}

.pt-details-btn a i {
   transform: rotate(180deg);
   right: auto;
   left: -12px;
}

.pt-details-btn a:hover i {
   transform: translateX(-5px) rotate(180deg);
}

@media screen and (max-width: 767px) {
   .pt-details-content h2 {
      font-size: 20px;
      line-height: 30px;
   }

   .pt-details-content h3 {
      font-size: 18px;
      line-height: 26px;
   }

   .pt-details-content h4 {
      font-size: 16px;
      line-height: 24px;
   }

   .pt-details-content p img {
      display: block;
      margin: 0 auto 15px;
   }

   .pt-details-content p img.alignright {
      margin: 0 auto 15px;
   }

   .pt-details-content p img:last-child {
      margin: 0 auto;
   }

   .pt-details-btn {
      padding-top: 40px;
   }
}

/* -- -- */
.tax-review {
   padding-top: 4%;
}

.tax-review .wrap {
   column-count: 2;
   column-gap: 80px;
   padding-top: 100px;
   padding-bottom: 100px;
}

.tax-review .col {
   break-inside: avoid;
   padding-bottom: 90px;
}

.tax-review .col .in {
   position: relative;
   background-color: #fff;
   border: 10px solid;
   border-radius: 30px;
   position: relative;
   padding: 40px;
   line-height: 30px;
}

.tax-review .col .in:after {
   content: '';
   width: 107px;
   height: 60px;
   background: no-repeat center top / 100% auto;
   position: absolute;
   top: 100%;
   left: 50px;
}

.tax-review .col .ttl {
   text-align: right;
   padding-top: 30px;
}

.tax-review .col:nth-child(6n + 1) .in {
   border-color: #FFE260;
}

.tax-review .col:nth-child(6n + 1) .in:after {
   background-image: url("../img/review/icon-1.webp");
}

.tax-review .col:nth-child(6n + 4) .in {
   border-color: #FEA9A3;
}

.tax-review .col:nth-child(6n + 4) .in:after {
   background-image: url("../img/review/icon-2.webp");
}

.tax-review .col:nth-child(6n + 2) .in {
   border-color: #06B6DB;
}

.tax-review .col:nth-child(6n + 2) .in:after {
   background-image: url("../img/review/icon-3.webp");
}

.tax-review .col:nth-child(6n + 5) .in {
   border-color: #00E1BF;
}

.tax-review .col:nth-child(6n + 5) .in:after {
   background-image: url("../img/review/icon-4.webp");
}

.tax-review .col:nth-child(6n + 3) .in {
   border-color: #F97C00;
}

.tax-review .col:nth-child(6n + 3) .in:after {
   background-image: url("../img/review/icon-5.webp");
}

.tax-review .col:nth-child(6n + 6) .in {
   border-color: #C9A9EC;
}

.tax-review .col:nth-child(6n + 6) .in:after {
   background-image: url("../img/review/icon-6.webp");
}

@media screen and (max-width: 1023px) {
   .tax-review .wrap {
      gap: 40px;
   }
}

@media screen and (max-width: 767px) {
   .tax-review .wrap {
      column-count: 1;
      padding-top: 50px;
      padding-bottom: 50px;
   }

   .tax-review .col {
      padding-bottom: 50px;
   }

   .tax-review .col .in {
      border-width: 7px;
      border-radius: 20px;
      padding: 30px 20px;
      line-height: 28px;
   }

   .tax-review .col .in:after {
      width: 54px;
      height: 30px;
      left: 30px;
   }

   .tax-review .col .ttl {
      padding-top: 20px;
   }
}

/*=============================================
 * スケジュール
*=============================================*/
#schedule {
   padding-bottom: 120px;
}

#schedule h3 {
   display: flex;
   align-items: center;
   min-height: 66px;
   position: relative;
   z-index: 1;
   padding-left: 20px;
}

#schedule h3 img {
   max-width: 75px;
   position: absolute;
   top: 0;
   left: 0;
   z-index: -1;
}

#schedule .box-month {
   padding-top: 100px;
}

#schedule .full-note {
   display: flex;
   justify-content: flex-end;
   align-items: center;
   gap: 5px;
   font-weight: 700;
   font-size: 15px;
   line-height: 21px;
   padding-top: 30px;
   position: relative;
}

#schedule .full-note:before {
   content: '';
   display: block;
   width: 90px;
   height: 28px;
   background-color: #FFAEAD;
}

#schedule .full-note span {
   letter-spacing: -0.5em;
}

#schedule .schedule-table {
   padding-top: 20px;
}

#schedule .note {
   font-size: 15px;
   line-height: 24px;
   padding-top: 20px;
}

#schedule .box-year {
   padding-top: 120px;
}

#schedule .box-year figure {
   max-width: 662px;
   padding-top: 30px;
}

@media screen and (max-width: 767px) {
   #schedule {
      padding-top: 50px;
      padding-bottom: 50px;
   }

   #schedule .box-month,
   #schedule .box-year {
      padding-top: 80px;
   }

   #schedule .note_sp {
      color: #EA3030;
      padding-top: 30px;
   }

   #schedule .full-note {
      padding-top: 10px;
   }
}