@charset "UTF-8";

* {
    font-family: "Zen Old Mincho", serif;
    font-weight: 400;
    font-style: normal;
}
.en {
    font-family: "Philosopher", serif;
}
.mintyo {
    font-family: "Noto Serif JP", serif;
}
.red {
    color: #ff5757;
}
.gold {
    color: #845a12;
}

.firstview {
    background-image: 
        url(../images/01_FirstView/FV1.png),
        url(../images/01_FirstView/FV2.png),
        url(../images/01_FirstView/FV3.png),
        url(../images/01_FirstView/FV6.png),
        url(../images/01_FirstView/FV4.png),
        url(../images/01_FirstView/FV5.png),
        url(../images/01_FirstView/FV7.png),
        url(../images/01_FirstView/FV8.png),
        /* 追加分 */
        url(../images/01_FirstView/FV9.png),
        url(../images/01_FirstView/FV10.png),
        url(../images/01_FirstView/FV11.png),
        url(../images/01_FirstView/FV12.png),
        url(../images/01_FirstView/FV13.png),
        url(../images/01_FirstView/FV14.png);
    background-size: 
        40vw, 50vw, 40vw, 10vw, 30vw, 30vw, 25vw, 25vw,
        /* 追加分 */
        30vw, 20vw, 20vw, 20vw, 20vw, 20vw;
    background-repeat: no-repeat;
    background-position: 
        -10vw -3vw,
        20vw -20vw,
        7vw -2.7vw,
        91vw 40vw,
        -6vw 70vw,
        40vw 82vw,
        0vw 120vw,
        80vw 83vw,
          /* 追加分 */
        -25vw 150vw,     
        85vw 180vw,
        0vw 210vw,      
        90vw 240vw,
        0vw 270vw,     
        85vw 300vw;
}
.firstview .ft {
    text-align: center;
    padding: 15vw 4vw 4vw;
    margin-bottom: 4vw;
    font-size: 4vw;
    font-weight: lighter;
    font-style: italic;
}
.firstview h1 {
    text-align: center;
    font-size: 9vw;
    line-height: 0.8;
    padding: 5vw 4vw 6vw;
    margin: 5vw auto;
    letter-spacing: 1vw;
}
.firstview .sbtitle {
    font-size: 4vw;
    letter-spacing: 0.6vw;
}
.firstview .sbtitleabove {
    font-size: 4vw;
    letter-spacing: 0.6vw;
    line-height: 2.6; 
}
.firstview .st {
    text-align: center;
    font-size: 2vw;
    padding-bottom: 10vw;
    letter-spacing: 1vw;
}
.firstview h2 {
    text-align: center;
    font-size: 4vw;
    padding: 4vw;
    margin: 4vw auto 1.5vw;
}
.conrainer-fbb {
    width: 50vw;
    margin: 0 auto;
    text-align: center;
}
.conrainer-fbb p {
    font-size: 2.1vw;
    line-height: 2.8;
    text-align: left;
}
.conrainer-fbb p span {
    font-size: 2.2vw;
}

/* VISION */
.vision {
    background-image: url(../images/02_Vision/Vision1.png),
                      url(../images/02_Vision/Vision2.png);
    background-repeat: no-repeat;
    background-size: 30vw, 25vw;
    background-position: -5vw 32vw, 73vw 8vw;
}
.vision h2 {
    text-align: center;
    font-size: 4vw;
    margin-top: 15vw;
    padding-bottom: 4vw;
}
.vision p {
    text-align: center;
    font-size: 2.2vw;
    padding-bottom: 3vw;
    letter-spacing: 0.4vw;
}
.vision p span {
    font-size: 2.2vw;
}

/* AWAKENING */
.awakening {
    margin-top: 15vw;
    padding-bottom: 15vw;
    background-image: url(../images/03_Awakening/Awakening1.png);
    background-repeat: no-repeat;
    background-size: 35vw;
    background-position: 3vw 8vw;
}
.container-awa {
    display: flex;
    justify-content: center;
    flex-direction: row;
    margin: 0 5vw;
}
.awakening img {
    height: 30vw;
    object-fit: cover;
    margin-top: 2vw;
}
.awa-text {
    margin-right: 3vw;
}
.awa-text h2 {
    text-align: center;
    font-size: 3.4vw;
    padding-bottom: 3vw;
}
.awa-text p {
    text-align: center;
    font-size: 2vw;
}
.awa-text p span {
    font-size: 2vw;
}

/* GATHERING */
.gathering {
    margin-top: 5vw;
    background-image: url(../images/04_Gathering/Gathering2.png);
    background-repeat: no-repeat;
    background-size: 10vw;
    background-position: 88vw 20vw;
}
.container-ga {
    display: flex;
    justify-content: center;
    flex-direction: row-reverse;
    margin: 0 5vw;
}
.ga-text {
    margin-left: 2vw;
}
.ga-text h2 {
    text-align: center;
    font-size: 3.4vw;
    padding-bottom: 3vw;
}
.ga-text p {
    text-align: center;
    font-size: 2vw;
    padding-bottom: 2vw;
    letter-spacing: 0.4vw;
}
.ga-text p span {
    font-size: 2vw;
}
.gathering img {
    height: 45vw;
    object-fit: cover;
}
.ga-img p {
    text-align: center;
    font-size: 2vw;
}

/* BLOOMING */
.blooming {
    padding-top: 15vw;
    background-image: url(../images/05_Blooming/Blooming1.png),
                      url(../images/05_Blooming/Blooming7.png),
                      url(../images/05_Blooming/Blooming8.png),
                      url(../images/05_Blooming/Blooming1.png),
                      url(../images/05_Blooming/Blooming9.png),
                      url(../images/05_Blooming/Blooming10.png),
                      url(../images/05_Blooming/Blooming11.png),
                      url(../images/05_Blooming/Blooming13.png),
                      url(../images/05_Blooming/Blooming14.png),
                      url(../images/05_Blooming/Blooming15.png),
                      url(../images/05_Blooming/Blooming16.png),
                      url(../images/05_Blooming/Blooming17.png),
                      url(../images/05_Blooming/Blooming19.png),
                      url(../images/05_Blooming/Blooming20.png),
                      url(../images/05_Blooming/Blooming21.png),
                      url(../images/05_Blooming/Blooming22.png),
                      url(../images/05_Blooming/Blooming23.png),
                      url(../images/05_Blooming/Blooming24.png),
                      url(../images/05_Blooming/Blooming26.png),
                      url(../images/05_Blooming/Blooming27.png),
                      url(../images/05_Blooming/Blooming28.png),
                      url(../images/05_Blooming/Blooming29.png),
                      url(../images/05_Blooming/Blooming31.png),
                      url(../images/05_Blooming/Blooming32.png),
                      url(../images/05_Blooming/Blooming33.png),
                      url(../images/05_Blooming/Blooming34.png),
                      url(../images/05_Blooming/Blooming35.png);
    background-repeat: no-repeat;
    background-size: 25vw, 40vw, 35vw, 30vw, 20vw,
                     22vw, 35vw, 15vw, 30vw, 30vw,
                     45vw, 32vw, 45vw, 35vw, 50vw,
                     30vw, 18vw, 12vw, 30vw, 15vw,
                     22vw, 33vw, 30vw, 15vw, 20vw,
                     40vw, 32vw;
    background-position: -2vw 15vw, -15vw 90vw, 82vw 50vw,
                         80vw 140vw, -9vw 195vw, 85vw 315vw,              
                         -12vw 312vw, -7vw 400vw, 80vw 410vw,
                         -15vw 500vw, 80vw 470vw, -13vw 550vw,
                         78vw 537vw, -25vw 610vw, 78vw 605vw,
                         -10vw 693vw, 85vw 688vw, -1vw 740vw,
                         85vw 750vw, -4vw 790vw, 82vw 850vw,
                         -15vw 888vw, 83vw 940vw, -5vw 990vw,
                         -8vw 1070vw, 70vw 1090vw, -17vw 1135vw;                       
}

.blooming h2 {
    text-align: center;
    font-size: 4vw;
    padding-bottom: 3vw;
}
.img-con {
    padding: 0.5vw 0.5vw;
    border: 0.3vw solid transparent;
    border-image: linear-gradient(90deg, #fbddab, #b99d76) 1;
}
.blooming img {
    height: 30vw;
    object-fit: cover;
}
.container-bl {
    display: flex;
    flex-direction: row;
    margin-bottom: 10vw;
}
.voice {
    background-color: rgba(254, 236, 230, 0.2);
    border-radius: 10px;
    width: 75vw;
    margin: 0 auto 13vw;
    padding: 3vw;
    border: solid 0.2vw #d3d3d3;
    background-image: url(../images/05_Blooming/Blooming4.png);
    background-repeat: no-repeat;
    background-size: 60vw;
    background-position: 12vw 14vw;
}
.voice-name {
    flex-grow: 1;
}
.voice-name h3 {
    text-align: center;
    font-size: 5vw;
    letter-spacing: 1vw;
    padding: 1vw 0 3vw 0;
    background-image: url(../images/05_Blooming/Blooming3.png);
    background-repeat: no-repeat;
    background-size: 45vw;
    background-position: 4vw 8vw;
}
.voice-name p {
    font-size: 3vw;
    margin: 2vw 0.5vw 2vw 2vw;
}
.qa {
    width: 80vw;
    margin: 0 auto;
}
.qa span {
    font-size: 2.5vw;
}
.ques {
    font-size: 3.5vw;
    padding: 1vw 0 2vw 4vw;
    background-image: url(../images/05_Blooming/Blooming5.png);
    background-repeat: no-repeat;
    background-size: 40vw;
    background-position: 2vw -1vw;
}
.ans {
    font-size: 2.5vw;
    margin-bottom: 7vw;
    padding: 1vw 2vw;
    width: 85%;
}
.con-line {
    border-left: 1vw solid transparent;
    border-image: linear-gradient(to top, #c59238 20%, #ecc17a 50%, #c59238 80%) 1;
}
.other {
    text-align: center;
    font-size: 4vw;
    padding-bottom: 4vw;
}
.other-voice {
    background-color: rgba(254, 236, 230, 0.2);
    border-radius: 10px;
    width: 80vw;
    margin: 0 auto;
    padding: 3vw;
    border: solid 0.2vw #d3d3d3;
}
.con-other {
    display: flex;
    justify-content: center;
    flex-direction: row;
}
.blooming .other1 {
    padding: 2vw 2vw 2vw 0;
    height: 40vw;
}
.blooming .other2 {
    height: 40vw;
}

/* CURRICULUM */
.curriculum {
    margin-top: 15vw;
    background-image: url(../images/06_Curriculum/Curriculum1.png),
                      url(../images/06_Curriculum/Curriculum2.png),
                      url(../images/06_Curriculum/Curriculum4.png),
                      url(../images/06_Curriculum/Curriculum5.png);
    background-repeat: no-repeat;
    background-size: 35vw, 50vw, 30vw, 50vw;
    background-position: -18vw 40vw, 70vw 10vw, 80vw 100vw,
                         -20vw 150vw;
}
.curriculum h2,
.curriculum h2 .red {
    text-align: center;
    font-size: 3.5vw;
    padding-bottom: 4vw;
}

.cur-text {
    background-color: rgba(255, 248, 244, 0.4);
    border-radius: 10px;
    width: 80vw;
    margin: 0 auto 7vw;
    padding: 3vw;
}
.cur-text h3 {
    text-align: center;
    font-size: 3vw;
}
.cur-text p {
    text-align: center;
    font-size: 1.8vw;
    margin: 4vw;
}
.cur-date {
    background-color: rgba(255, 248, 244, 0.6);
    border-radius: 10px;
    width: 65vw;
    margin: 0 auto 4vw;
    padding: 4vw 10vw;
}
.cur-date p {
    font-size: 3vw;
    margin-top: 2vw;
}
.cur-date p .dot {
    font-size: 3vw;
    padding-bottom: 1vw;
    border-bottom: 0.5vw dotted #efdac0;
}
.cur-date .mon {
    font-size: 4.5vw;
    padding-right: 2vw;
}
.curriculum h4 {
    font-size: 3.5vw;
    text-align: center;
    margin-bottom: 5vw;
}
.party-info {
    background-image: url(../images/06_Curriculum/Curriculum6.png);
    background-repeat: no-repeat;
    background-size: 40vw;
    background-position: 9vw 0;
    width: 60vw;
    margin: 0 auto;
}
.party {
    font-size: 3vw;
    text-align: center;
    padding: 4vw;
}
.party-day {
    font-size: 5vw;
    text-align: center;
    padding-bottom: 4vw;
}
.cur-last {
    font-size: 3.5vw;
    text-align: center;
    margin: 10vw;
    font-weight: bold;
}

/* COURSE */
.course {
    background-image: url(../images/07_Course/Course1.png),
                      url(../images/07_Course/Course1.png),
                      url(../images/07_Course/Course1.png),
                      url(../images/07_Course/Course1.png),
                      url(../images/07_Course/Course1.png),
                      url(../images/07_Course/Course1.png),
                      url(../images/07_Course/Course1.png),
                      url(../images/07_Course/Course1.png),
                      url(../images/07_Course/Course1.png),
                      url(../images/07_Course/Course3.png);
    background-repeat: no-repeat;
    background-size: 80vw, 80vw, 80vw, 80vw, 80vw,
                     80vw, 80vw, 80vw, 80vw, 120vw;
    background-position: 75vw -20vw, -40vw 50vw, 75vw 60vw,
                         70vw 110vw, -40vw 160vw, -30vw 230vw,
                         -45vw 320vw, -40vw 360vw, 80vw 300vw,
                         30vw 475vw;
}
.course-name {
    text-align: center;
}
.course-name h3 {
    font-size: 5vw;
    text-align: center;
    padding-top: 2vw;
}

img.banner {
    display: block;
    width: 80%;
    max-width: 100vw;  /* 必要ならこれでもOK */
    height: auto;
    margin: 3vw auto;
    object-fit: contain;
}

img.banner_step {
    display: block;
    width: 80%;
    max-width: 100vw;  /* 必要ならこれでもOK */
    height: auto;
    margin: 3vw auto;
    object-fit: contain;
}

.btn {
    width: 70vw;
    margin: 6vw 0;
}
.li-bgc {
    background-color: #fffdf4;
    padding: 2vw;
    width: 70vw;
    margin: 0 auto;
}
.list ul {
    list-style: none;
    padding: 3vw 5vw;
    border: 1px solid #c19e4c;
    border-radius: 10px;
}
.list ul li {
    font-size: 3.5vw;
    text-align: left;
    border-bottom: 0.5vw dotted #d9aa1e;
    padding: 2vw;
    position: relative;
    padding-left: 25px;
    margin-bottom: 5px;
}
.list ul li span {
    font-size: 3vw;
}
li::before {
    content: "";
    position: absolute;
    top: 52vw;
    left: 0;
    transform: translateY(-50vw);
    width: 5vw; /* 画像の幅 */
    height: 5vw; /* 画像の高さ */
    background-size: contain;
    background-repeat: no-repeat;
}
li.item1::before {
    background-image: url(../images/07_Course/num1.png);
}
li.item2::before {
    background-image: url(../images/07_Course/num2.png);
}
li.item3::before {
    background-image: url(../images/07_Course/num3.png);
}
li.item4::before {
    background-image: url(../images/07_Course/num4.png);
}
li.item5::before {
    background-image: url(../images/07_Course/num5.png);
}
li.item6::before {
    background-image: url(../images/07_Course/num6.png);
}
li.item7::before {
    background-image: url(../images/07_Course/num7.png);
}
li.item8::before {
    background-image: url(../images/07_Course/num8.png);
}
.last-text {
    font-size: 2.7vw;
    text-align: center;
    padding-bottom: 18vw;
}



/* STEP SECTION */
.step-o-title {
  font-size: 1.0rem !important;
  color: #333 !important;
  margin-bottom: 0.2em !important;
  line-height: 1.3 !important;
}
.step-o-block p {
  margin-top: 0;          /* 見出しとの間の余白なし */
  margin-bottom: 1em;     /* 各ブロック間に余白確保 */
  line-height: 1.6;
  font-size: 0.7rem;        /* 本文は通常サイズを維持 */
}

.step-o-block {
  margin-bottom: 1.5em;   /* ステップ同士の間隔 */
}


@media screen and (min-width: 769px) {
  .step-o-title {
    font-size: 2.6rem !important;  /* タイトル少し大きく */
    margin-bottom: 0.3em !important;
  }
  .step-o-block p {
    font-size: 1.8rem;           /* 本文も少し読みやすく */
    line-height: 1.8;
  }
  .step-o-block {
    margin-bottom: 2em;           /* ステップ間も広く */
  }
}

