/* =============================================
  mv
 ============================================= */
.mv {
   border: solid var(--color-bg-light2) 1px;
   background-color: var(--color-bg-light2);
   z-index: 0;
   filter: blur(10px);
}

.mv__content {
   min-height: calc(100svh - 8rem);
   display: flex;
   flex-direction: column;
   justify-content: center;
   position: relative;
   padding: 2rem clamp(2rem, 5vw, 4rem) 3rem;
   background: var(--color-main1);
   border-radius: var(--radius);
   margin: 7% 3%;
   background-color: var(--color-main1);
   background-color: #fff;
   z-index: 1;
   background-image: url(../img/mv.webp);
   background-size: cover;
   background-position: center;
}

.mv::before {
   content: '';
   position: absolute;
   width: 42vw;
   height: 42vw;
   max-width: 520px;
   max-height: 520px;
   border-radius: 50%;
   background: radial-gradient(circle, #fcd26c 0%, transparent 70%);
   opacity: 0.8;
   top: -15vw;
   left: 3vw;
   pointer-events: none;
}
.mv::after {
   content: '';
   position: absolute;
   width: 100vw;
   min-height: 10vw;
   background-image: url(../img/mv-text.svg?01);
   bottom: 0;
   left: 0;
   pointer-events: none;
   z-index: 1;
   background-repeat: no-repeat;
   background-size: contain;
   background-position: center;
}


.mv__inner {
   position: relative;
   z-index: 1;
   text-align: left;
   padding-left: clamp(0rem, 3vw, 4rem);
   width: 100%;
   animation: fadeUp 1.1s ease both;
}

.mv__title {
   font-size: var(--fs-xl);
   line-height: 1.5;
   letter-spacing: 0.08em;
   color: #fff;
   margin-bottom: var(--spacer-s);
   animation: fadeUp 1.1s 0.25s ease both;
}

.mv__title span {
   display: block;
}

.mv__desc {
   font-size: var(--fs-s);
   color: #fff;
   line-height: 2;
   margin-bottom: var(--spacer-m);
   animation: fadeUp 1.1s 0.4s ease both;
}

.mv__cta {
   animation: fadeUp 1.1s 0.55s ease both;
}


@keyframes fadeUp {
   from {
      opacity: 0;
      transform: translateY(24px);
   }

   to {
      opacity: 1;
      transform: translateY(0);
   }
}


/* 初期：ぼかし */
.mv {
  transition: filter 1s ease;
}

.is-loaded .mv {
  filter: blur(0);
}

#loading {
  position: fixed;
  inset: 0;
  background: #fff;
  z-index: 9999;
  display: grid;
  place-items: center;
   font-family: 'Cormorant Garamond', serif;
}

.loading__inner {
  text-align: center;
}

.loading__bar {
  width: 200px;
  height: 4px;
  background: #eee;
  margin-top: 10px;
  overflow: hidden;
}

.loading__bar-fill {
  width: 0%;
  height: 100%;
  background: #333;
  transition: width 0.2s linear;
}

.loading__percent {
  margin-top: 8px;
  font-size: 14px;
}
@media (max-width: 640px) {
.mv {
      padding: 40px 0 0;
}

   .mv__content {
   min-height: calc(100svh - 6rem);
      background-image: url(../img/mv-sp.webp);
      justify-content: flex-end;

}

   .mv__title {
      font-size: 1.6rem;
   }

   .mv__inner {
      padding-left: 0;
      padding-right: 0;

   }
}
/* =============================================
       CONCEPT  (Section 2)
    ============================================= */
.concept {
   background-color: var(--color-bg-light2);
   position: relative;
   z-index: 0;
   text-align: center;
   background-image: url(../img/blur.webp),url(../img/leaf1.webp), url(../img/leaf2.webp), url(../img/leaf3.webp);
   background-size: 350px, 80px, 50px, 50px;
   background-repeat: no-repeat;
   background-position: right 0 top 0,left 5% top 0,  right 20% top 8%, right 24% bottom 0%;
}

.concept::after {
   content: '';
   position: absolute;
   width: 32vw;
   height: 32vw;
   max-width: 420px;
   max-height: 420px;
   border-radius: 50%;
   background: radial-gradient(circle, #f5c56d 0%, transparent 70%);
   opacity: 0.8;
   bottom: 15vw;
   left: -15%;
   pointer-events: none;
}

.concept__inner {
   /*max-width: 1300px;*/
   margin-inline: auto;
   display: grid;
   grid-template-columns: 1fr auto 1fr;
   grid-template-areas:
      "img-l content img-r";
   gap: 0 clamp(1.5rem, 4vw, 4rem);
   align-items: center;
   min-height: 800px;
}

.concept__img {
   overflow: hidden;
   aspect-ratio: 1/1;
}

.concept__img--left {
   grid-area: img-l;
   align-self: start;
   border-bottom-right-radius: 40%;
}

.concept__img--right {
   grid-area: img-r;
   align-self: end;
   border-top-left-radius: 40%;
}

.concept__img img {
   width: 100%;
   height: 130%;
   object-fit: cover;
   object-position: center 0%;
   will-change: object-position;
   background: linear-gradient(145deg, var(--color-main1), var(--color-main2));
}

.concept__catch {
   font-size: clamp(1.3rem, 2.2vw, 2rem);
   line-height: 1.7;
   color: var(--color-green-dark);
   margin-bottom: var(--spacer-m);
   letter-spacing: 0.04em;
   color: #80663e;
   font-weight: 500;
   background-image: linear-gradient(90deg,
         var(--color-green-dark) 0%,
         rgba(250, 211, 110, 0.9) 30%,
         var(--color-green-dark) 60%,
         var(--color-green-dark) 100%);
   background-size: 300% 100%;
   background-position: 100% 0;
   background-clip: text;
   -webkit-background-clip: text;
   color: transparent;
   -webkit-text-fill-color: transparent;
}

.concept__catch.is-lit {
   animation: lightSweep 1.4s ease forwards;
}

.concept__text {
   font-size: var(--fs-s);
   color: var(--color-text);
   line-height: 2.7;
   letter-spacing: 0.03em;
}

@media (max-width: 900px) {

   .concept__inner {
      grid-template-columns: 1fr;
      grid-template-areas:
         "content"
         "img-l"
         "img-r";
   gap: 0;
   align-items: center;
   min-height: none;
   padding: 100px 0;
   }

   .concept__img--left {
      align-self: start;
      border-bottom-right-radius: 40%;
   }

   .concept__img--right {
      align-self: end;
      border-top-left-radius: 40%;
      position: absolute;
      bottom: 0;
      right: 0;
   }

   .concept__content {
      max-width: 100%;
      padding: 0 20px;
   }


}

@media (max-width: 900px) {
   section.concept {
      padding: 0
   }

   .concept__inner {
      gap: 50px clamp(1.5rem, 4vw, 4rem);
   }

   .concept__img {
      width: 50%;
   }

   .concept__img--left {
      justify-self: start;
   }

   .concept__img--right {
      justify-self: end;
   }
}

@media (max-width: 768px){
   .concept {
      background-size: 250px, 50px, 30px, 40px;
   background-position: right 0 top 0,left 5% top 0,  right 20% top 4%, right 12% bottom 27%;
}
.concept::after {
   width: 80vw;
   height: 80vw;
   max-width: unset;
   max-height: unset;
   bottom: 5vw;
   left: -30%;
   z-index: -1;
}

}

/* =============================================
       FOR WHOM  (Section 3)
    ============================================= */
.forwho {
   background-color: var(--color-bg);
    background-image: url(../img/forwhoBg.webp);
    background-repeat: no-repeat;
    background-position: center top;
    background-size: 100%;
    padding-bottom: 0;
}

.forwho__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
    margin-bottom: var(--spacer-m);
}
.forwho__card {
    transition: transform var(--transition), box-shadow var(--transition);
    padding: 50px var(--spacer-s) var(--spacer-s);
    box-shadow: 1px 0 0 0 var(--color-border), 0 1px 0 0 var(--color-border); /* 右＋下 */
}
.forwho__card:nth-child(3n) {
    box-shadow: 0 1px 0 0 var(--color-border); /* 右端列：下のみ */
}
.forwho__card:nth-last-child(-n+3) {
    box-shadow: 1px 0 0 0 var(--color-border); /* 最終行：右のみ */
}
.forwho__card:nth-last-child(-n+3):nth-child(3n) {
    box-shadow: none; /* 右下角：なし */
}


.forwho__card-img {
   aspect-ratio: 4/3;
   background: linear-gradient(135deg, var(--color-main1), var(--color-bg-light2));
   position: relative;
   overflow: hidden;
   border-radius: 10px;
}

.forwho__card-img img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   transform: scale(1.15);
   transition: all 1.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
   opacity: 0;
}

.forwho__card {
   position: relative;
}

.forwho__card.is-visible .forwho__card-img img {
   transform: scale(1);
   opacity: 1;
}

/* decorative number */
.forwho__card::after {
   content: "";
   position: absolute;
   top: 0;
   left: 50%;
   transform: translateX(-50%);
   color: var(--color-accent);
   background-image: url();
   background-repeat: no-repeat;
   background-size: contain;
   background-position: center;
   width: 80%;
   height: 100px;
}
.forwho__card:nth-child(1)::after {
   background-image: url(../img/num1.webp);
   background-repeat: no-repeat;
   background-size: contain;
   background-position: center;
   }
.forwho__card:nth-child(2)::after {
   background-image: url(../img/num2.webp);
   background-repeat: no-repeat;
   background-size: contain;
   background-position: center;
   }
   
.forwho__card:nth-child(3)::after {
   background-image: url(../img/num3.webp);
   background-repeat: no-repeat;
   background-size: contain;
   background-position: center;
   }
   
.forwho__card:nth-child(4)::after {
   background-image: url(../img/num4.webp);
   background-repeat: no-repeat;
   background-size: contain;
   background-position: center;
   }
   
.forwho__card:nth-child(5)::after {
   background-image: url(../img/num5.webp);
   background-repeat: no-repeat;
   background-size: contain;
   background-position: center;
   }
   
.forwho__card:nth-child(6)::after {
   background-image: url(../img/num6.webp);
   background-repeat: no-repeat;
   background-size: contain;
   background-position: center;
   }
   
.forwho__card-body {
   padding: 1.4rem 0 0;
}

.forwho__card-title {
   font-size: var(--fs-m);
   margin-bottom: 0.6rem;
   color: var(--color-green-dark);
   letter-spacing: 0.04em;
   text-align: center;
   font-weight: 600;
}

.forwho__card-text {
   line-height: 1.9;
}

.forwho__note {
   text-align: center;
   font-size: var(--fs-m);
   letter-spacing: 0.06em;
   position: relative;   
   background-image: url(../img/leaf4.webp);
   background-size: 80px;
   background-repeat: no-repeat;
   background-position: left 5% bottom 0;
   padding: var(--spacer-m) 0 ;
}

.forwho__note:before {
   content: '';
   position: absolute;
   width: 42vw;
   height: 42vw;
   max-width: 320px;
   max-height: 320px;
   border-radius: 50%;
   background: radial-gradient(circle, #fcd986 0%, transparent 70%);
   opacity: 0.6;
   top: 50%;
   left: 50%;
   transform: translate(-50%, -50%);
   pointer-events: none;
   z-index: -1;
}

.forwho__note span {
   display: block;
   font-size: 1.5rem;
   color: var(--color-green-dark);

}

@media (max-width: 900px) {

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

    /* 3列ルールをリセット */
    .forwho__card:nth-child(3n),
    .forwho__card:nth-last-child(-n+3),
    .forwho__card:nth-last-child(-n+3):nth-child(3n) {
        box-shadow: 1px 0 0 0 var(--color-border), 0 1px 0 0 var(--color-border);
    }

    /* 2列ルール */
    .forwho__card:nth-child(2n) {
        box-shadow: 0 1px 0 0 var(--color-border);
    }
    .forwho__card:nth-last-child(-n+2) {
        box-shadow: 1px 0 0 0 var(--color-border);
    }
    .forwho__card:nth-last-child(-n+2):nth-child(2n) {
        box-shadow: none;
    }
}



@media (max-width: 480px) {

.forwho__note {
   background-size: 40px;
   background-position: left 0% top 0px;
}
   .forwho__grid {
      grid-template-columns: repeat(1, 1fr);
      gap: 0.75rem;
   }
	.forwho__card,
	.forwho__card:nth-child(2n),
	.forwho__card:nth-last-child(-n+2),
	.forwho__card:nth-child(3n),
	.forwho__card:nth-last-child(-n+3) {
    box-shadow:none
}
}

/* =============================================
       PROFILE  (Section 4)
    ============================================= */
.profile {
   background: #fff;
}

.profile__inner {
   max-width: 1200px;
   margin-inline: auto;
   padding-inline: clamp(1.25rem, 4vw, 3rem);
   display: grid;
   grid-template-columns: 6fr 4fr;
   grid-template-areas:
      "header header"
      "content photo";
   gap: 0 clamp(2rem, 6vw, 6rem);
   align-items: start;
}

.profile__header {
   grid-area: header;
   text-align: center;
}

.profile__content {
   grid-area: content;
}

.profile__photo {
   grid-area: photo;
}

.profile__tabs {
   display: flex;
   gap: 20px;
   margin-bottom: 40px;
}

.profile__tab {
   letter-spacing: 0.08em;
   padding: 0.65rem 1.5rem;
   cursor: pointer;
   border: none;
   background: none;
   color: var(--color-accent);
   transition: color var(--transition);
   margin-bottom: -1.5px;
   border: solid var(--color-accent) 1px;
   border-radius: 50px;
}

.profile__tab.is-active {
   color: #fff;
   background-color: var(--color-accent);
}

.profile__panel {
   display: none;
}

.profile__panel.is-active {
   display: block;
   animation: fadeUp 0.5s ease both;
}

.profile__text {
   font-size: var(--fs-s);
   line-height: 2.1;
}

.profile__text-career {

   font-size: var(--fs-s);
   line-height: 2.1;
   padding-bottom: 1.5rem;
   margin-bottom: 1.5rem;
   border-bottom: solid 1px #c8c8c8;
}

.profile__img-wrap {
   position: relative;
   padding-bottom: 20px;
}

.profile__img-wrap:before {
   content: '';
   position: absolute;
   width: 32vw;
   height: 32vw;
   max-width: 320px;
   max-height: 320px;
   border-radius: 50%;
   background: radial-gradient(circle, #fcd986 0%, transparent 70%);
   opacity: 0.8;
   bottom: -20%;
   right: -15%;
   pointer-events: none;
   z-index: -1;
}

.profile__img-wrap:after {
   content: '';
   position: absolute;
   width: 32vw;
   height: 32vw;
   max-width: 260px;
   max-height: 260px;
   border-radius: 50%;
   background: radial-gradient(circle, var(--color-main2) 0%, transparent 70%);
   opacity: 0.8;
   bottom: -45%;
   right: 20%;
   pointer-events: none;
   z-index: -1;
}

.profile__name {
   margin-left: auto;
   text-align: center;
   position: absolute;
   right: 0;
   bottom: 0;
   line-height: 1.2;
   letter-spacing: 0.3rem;
}

.profile__name span {
   display: block;
   font-size: 1.6rem;
}

@media (max-width: 768px) {
.profile__inner {
      grid-template-columns: 1fr;
      grid-template-areas:
         "header"
         "photo"
         "content";
   }

.profile__header {
      margin-bottom: 0;
   }

.profile__img-wrap{
   margin-bottom: 50px;
   max-width: 80%;
   margin: 0 auto 50px;
}
.profile__img-wrap:before {
   width: 52vw;
   height: 52vw;
   bottom: -8%;
   right: -10%;
}

.profile__img-wrap:after {
   bottom: -20%;
   right: 20%;
}

}


/* =============================================
       SESSIONS  (Section 5)
============================================= */
.sessions {
   background: var(--color-bg-light1);

      background-image: url(../img/leaf1.webp), url(../img/leaf5.webp);
   background-size: 80px, 80px;
   background-repeat: no-repeat;
   background-position: right 5% top 5%,  left 20% bottom 8%;
}

.sessions__grid {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 10px;
   margin-bottom: var(--spacer-m);
}

.session-card {
   border-radius: 1.25rem;
   overflow: hidden;
   background-color: #fff;
   border: 1.5px solid var(--color-border);
   transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition);
}

.session-card:hover {
   transform: translateY(-4px);
   box-shadow: 0 14px 44px rgba(93, 155, 144, 0.1);
   border-color: var(--color-main2);
}

.session-card__img {
   aspect-ratio: 16/9;
   background: linear-gradient(135deg, var(--color-bg-light2), var(--color-main1));
}

.session-card__body {
   padding: 1.4rem 1.5rem 1.8rem;
}

.session-card__title {
    font-size: 1.1rem;
    margin: 0.7rem 0;
    letter-spacing: 0.04em;
    font-weight: 400;
}

.session-card__excerpt {
   font-size: var(--fs-xs);
   color: var(--color-text);
   line-height: 1.9;
   display: -webkit-box;
   -webkit-line-clamp: 3;
   -webkit-box-orient: vertical;
   overflow: hidden;
}

.sessions__more {
   text-align: center;
}

@media (max-width: 900px) {
   .sessions {
       background-size: 50px, 50px;
   background-position: right 3% top 3%,
   left 3% bottom 3%;
}
   .sessions__grid {
      grid-template-columns: 1fr;
      max-width: 500px;
      margin-inline: auto;
   }
}

/* =============================================
       NEWS  (Section 6)
    ============================================= */
.news {
   position: relative;
}


.news__Bgimg {
   position: absolute;
   overflow: hidden;
   border-top-left-radius: 60px;
   border-bottom-left-radius: 60px;
   right: 0;
   top: -10%;
   width: 300px;
   height: 450px;
}

.news__Bgimg img {
   width: 100%;
   height: 120%;
   object-fit: cover;
   will-change: transform;
   transform: translateY(0px);
}

.news__list {
   margin-right: 30%;
   margin-bottom: 50px;
}

@media (max-width: 768px) {
.news .section__heading-wrapper {
      margin-bottom: 100px;
   }

   .section__inner {
      max-width: 1160px;
      margin-inline: auto;
   }

.news__list {
   margin-right: 0;
}

   .news__Bgimg {
      border-top-left-radius: 30px;
      border-bottom-left-radius: 30px;
      top: -5%;
      width: 150px;
      height: 280px;
   }
}