/* about */
.about_bg_image {
    background: url(../images/course-personal/about-fv-bg.webp) center bottom / cover no-repeat;
    text-align: center;
    width: 100%;
    height: 400px;
    padding-block: calc(var(--s-val) * 10.4) calc(var(--s-val) * 9);
    position: relative;
    z-index: 0;
}
:root{
    --overlap: clamp(24px, 5vw, 72px);
}
.personal-sub-top {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
}

/* --- 武器になります--- */
.section-weapon{
    position: relative;
    overflow: hidden;
    background: url(../images/course-personal/weapon-bg.webp) no-repeat center /  100% 100%;
    padding-top: calc(var(--s-val) * 10); 
    margin-top: calc(var(--overlap) * -2);
    isolation: isolate;
    z-index: -1;
}
.weapon-decor{
    position:absolute;
    inset:0;
    pointer-events:none;
    z-index:-4;
}

/* --- コンセプト部分装飾画像設定  start--- */
.weapon-decor-wrapper {
    position: absolute;
    width: 100%;
    overflow: hidden;
    pointer-events: none;
    z-index: -3;
    inset: 0;
}
.weapon-decor-img {
    position: absolute;
    max-width: none;
    width: 20vw; 
}
.weapon-decor-top-right {
    top: -2vw; 
    right: 0vw; 
    width: 13vw;
}
.weapon-decor-bottom-right {
    bottom: 53vw;
    right: 0vw; 
    width: 10vw;
}
.weapon-decor-top-left {
    top: 15vw;
    left: 0vw;  
    width: 13vw;
}
.weapon-decor-bottom-left {
    bottom: 27vw;
    left: 0vw; 
    width: 28vw;
}
/* --- コンセプト部分装飾画像設定  end--- */

.weapon-title{
    text-align: center;
    font-weight: 800;
    font-size: calc(var(--s-val) * 4.5);
    line-height: 1.4;
    margin-bottom: 30px;
    background: linear-gradient(290deg,#E96666, #ea704f 28%,  #FA894B);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.weapon-inner-box {
    display: grid;
    grid-template-columns: 1.4fr 0.6fr;
    align-items: center;  
    max-width: 800px;    
    margin: 0 auto 200px;   
    padding: 0 20px;
    text-align: center;
    position: relative;
    z-index: -2;
}
    @media (max-width: 980px){
        .weapon-inner-box{
            grid-template-columns: 1fr;
            max-width: none;
            width: 100%;
            padding: 0 16px;
            margin-bottom: 30px;
        }

        .weapon-image{
            justify-self: center;
        }

        .weapon-image__img{
            max-width: min(360px, 80vw);
        }
    }
.weapon-highlight{
    display: inline-block;
    margin-bottom: 25px;
}
.weapon-image {
    transform: translateX(-40px); 
}
.weapon-worry{
    position: relative;
    z-index: -1;
    margin:60px auto 150px;
    max-width:912px;
    background:#fff;
    border-radius:18px;
    padding:30px;
    box-shadow:0 10px 30px rgba(0,0,0,.08);
    text-align:center;
    border: #C7C7C7 solid 1px;
    }
.weapon-worry-title{
    position: relative;
    z-index: -1;
    font-size: calc(var(--s-val) * 2.4);
    margin-bottom:20px;
    text-align: center;
    color: #22537C;
}
.weapon-worry-title span{
    position:relative; 
    display:inline-block;
    font-size: calc(var(--s-val) * 3.7);
    font-weight:800;
    color: #22537C;
    }
.weapon-worry-list{
    list-style:none;
    padding:0;
    margin:0;
    text-align:left;
}
.weapon-worry-list li{
    padding-left:28px;
    margin-bottom:12px;
    position:relative;
    font-weight:600;
    color: #22537C;
    font-size: calc(var(--s-val) * 2.7);
}
.weapon-worry-decor{
    position:absolute;
    width:50px;
    height:auto;
    pointer-events:none;
}
.weapon-worry-decor--left{
    left:-80px;  
    top:20px;   
}
.weapon-worry-decor--right{
    right:-80px; 
    top:-10px;
    }
.weapon-worry-person{
    position: absolute;
    right: 60px;
    bottom: -5px;
    width: 200px;
    pointer-events: none;
}
.weapon-worry-person__img{
    width: 100%;
    height: auto;
    display: block;
}
.weapon-overcome__card{
    position: relative;
    background: #fff;
    border-radius: 12px;
    padding: 50px 0px 50px;
    box-shadow: 0 10px 30px rgba(0,0,0,.12);
    text-align: center;
    min-height: 150px;
    overflow: visible;
    margin: 0;   
    height: 100%;
}

/* --- タイトル部分装飾画像設定  start--- */
.weapon-overcome-title-wrapper {
    position: relative; 
    display: inline-block; 
    margin-bottom: calc(var(--s-val) * 2); 
}
.weapon-overcome-title{
    font-size: calc(var(--s-val) * 4.4);
    color: var(--color-white);
    text-shadow: 0 4.4px 10.6px #FABAB1;
    position: relative;
}
.weapon-overcome-title-decor {
    position: absolute;
    width: calc(var(--s-val) * 2);
    height: auto;
    z-index: -1; 
}
.weapon-overcome-decor__square {
    left: 50%;
    top: -100%;
    width: calc(var(--s-val) * 4);
}
.weapon-overcome-decor__top-left{
    left: -3%;
    top: 72%;
}
.weapon-overcome-decor__top-right{
    top: 40%;
    right: -7%;
    width: calc(var(--s-val) * 3);
}
.weapon-overcome-decor__bottom-right{
    bottom: 28%;
    right: -9%;
}
/* --- タイトル部分装飾画像設定  end--- */

.weapon-point-line{
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    top: 80px; 
    width: 100vw;
    max-width: none;
    height: auto;
    z-index: -3;
    pointer-events: none;
    }
.weapon-overcome__cards{
    position: relative;
    z-index: -2;
    list-style: none;
    padding: 50px 10px 50px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
    width: min(1200px, 100%);
}
.weapon-overcome {
    position: relative;
    padding: 200px 0 90px;
    overflow: hidden;
    background: url(../images/course-personal/weapon-point-bg.webp) center /cover no-repeat;
    z-index: -1;
}
.weapon-overcome__inner{
    position: relative;
    z-index: -2;
    text-align: center;
}
.weapon-overcome__text{
    margin: 50px 0 26px;
    color: #fff;
    font-weight: 800;
    font-size: calc(var(--s-val) * 4);
    line-height: 1.3;
}
.weapon-overcome__em{
    font-size: calc(var(--s-val) * 6);
    font-weight: 900;
}
.weapon-overcome__point{
    position: absolute;
    top: -22px;
    left: 20px;
    width: 64px;  
    height: auto;
}
.weapon-overcome__small{
    margin: 0 0 6px;
    font-size: calc(var(--s-val) * 1.4);
    line-height: 1.4;
    color: #333;
    font-weight: 600;
}
.weapon-overcome__title{
    margin: 0;
    font-size: calc(var(--s-val) * 2.5);
    font-weight: 800;
    color: #EA704F;
    line-height: 1.2;
}
.weapon-overcome__icon{
    position: absolute;
    right: 5px;
    bottom: 0px;
    width: 56px;
    height: auto;
    opacity: .45; 
}

/* --- サービス --- */
.section-service{
    position: relative;
    background: #FFF8F2;
    isolation: isolate;
}
.personal-section-service {
    padding-top: calc(var(--s-val) * 8);
}
.service-container{
    text-align: center;
    position: relative;
}
.section-title{
    color: var(--color-pink02);
    font-size: calc(var(--s-val) * 4);
    font-weight: bold;
    position: relative;
    z-index: -1;
    display: inline-block; 
}
.section-title::after {
    content: "";
    display: block;
    position: absolute;
    top: 70%;
    left: 50%;
    transform: translateX(-50%);
    width: 12rem;
    aspect-ratio: 4 / 1;
    background: url(../images/top/title.png) no-repeat center;
    background-size: contain;
    z-index: -1;
}
.service-list{
    display: flex; 
    flex-wrap: wrap;
    justify-content: center;
    gap: 40px;
    list-style: none;
    padding: 0;
    margin-top: calc(var(--s-val) * 6.9);
    position: relative;
    z-index: -1;
}
.service-online,.service-category,
.service-question,.service-carrier,
.service-community{
    background-repeat: no-repeat;
    background-position: center;
}
.service-online{
    background-image: url(../images/top/service-online_bg.png);
}
.service-category{
    background-image: url(../images/top/service-category_bg.png);
}
.service-question{
    background-image: url(../images/top/service-question_bg.png);
}
.service-carrier{
    background-image: url(../images/top/service-carrier_bg.png);
}
.service-community{
    background-image: url(../images/top/service-community_bg.png);
}
.service-list__item {
    width: calc(var(--s-val) * 32); 
    aspect-ratio: 300 / 420; 
    display: flex;
    flex-direction: column;
    align-items: center; 
    justify-content: center;
    background-size: 100% 100%; 
    padding: 0 calc(var(--s-val) * 5);     
    box-sizing: border-box; 
}
.service-list__img {
    width: calc(var(--s-val) * 14.4);
    height: auto;
    object-fit: contain;
    
}
.service-list__body {
    margin-top: calc(var(--s-val) * 1.1);
}
.service-list__head{
    font-size: calc(var(--s-val) * 2.4);
    color: var(--color-orange02);
    font-weight: bold;
    margin-bottom: calc(var(--s-val) * 0.5);
}
.service-list__text{
    color: var(--color-top-text);
    text-align: left;
    margin-bottom: calc(var(--s-val) * 0.5);
}
.text-small{
    font-size: calc(var(--s-val) * 1.2);
    color: var(--color-top-text);
    text-align: left;
}
.service-woman__img{
    position: absolute;
    width: calc(var(--s-val) * 44);
    height: auto;
    top: -10%;
    right: 3%;
    z-index: -1;
}
.service-container-bottom {
    text-align: center;
    margin-top: 50px;
}
.service-container-bottom__img{
    width: 100%;
    height: auto;
    display: block;
}

/* --- ctaエリア --- */
.section-cta{
    background: linear-gradient(220deg, #ffeada, #fffed9);
    padding-top:  calc(var(--s-val) * 2);
    position: relative;
    isolation: isolate;
    overflow: visible;
}
.cta-container{
    display: flex;
    align-items: center; 
    justify-content: space-between; 
    gap: calc(var(--s-val) * 2);
}
.cta-img-box {
    width: 45%; 
}
.cta-woman {
    width: 100%;
    height: auto;
    display: block;
    margin-top: calc(var(--s-val) * -6);
}
.cta-text-box {
    width: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.cta-text {
    font-weight: bold;
    background: linear-gradient(290deg, #FA894B, #ea704f 28%, #E96666);
    -webkit-background-clip: text; 
    background-clip: text;
    color: transparent; 
    display: inline-block; 
}
.cta-text-01{
    font-size: calc(var(--s-val) * 2.7);
    margin-bottom: 0;
    line-height: 1.4;
}
.cta-text-02{
    font-size: calc(var(--s-val) * 3);
    margin-bottom: calc(var(--s-val) * 1.5);
    line-height: 1.4;
    position: relative;
    z-index:-2;
}
.cta-text__small{
    font-size: calc(var(--s-val) * 2.3);
}
.text-dot {
    text-emphasis: circle  #ea704f; 
    -webkit-text-emphasis: circle #ea704f; 
    text-emphasis-position: over right;
    font-style: normal;
}
.cta-link-btn{
    color: var(--color-white);
    text-decoration: none;
    background: linear-gradient(290deg, #FA894B, #ea704f 28%, #E96666);
    padding: calc(var(--s-val) * 1.6) calc(var(--s-val) * 11.4);
    font-size: calc(var(--s-val) * 2.4);
    border-radius: calc(var(--s-val) * 3.6);
    font-weight: bold;
    position: relative;
    margin-bottom: calc(var(--s-val) * 1.5); 
    display: inline-block;
}
.cta-link-btn::after{
    content: "";
    width: calc(var(--s-val) * 1.6);
    height: calc(var(--s-val) * 1.6);
    aspect-ratio: 1 / 1;
    background: url(../images/top/cta-btn_arrow.png) no-repeat;
    background-size: contain;
    position: absolute;
    top: 50%;
    right: calc(var(--s-val) * 2);
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    pointer-events: none;
}
.cta-link-text{
    color: #14609E;
    font-weight: bold;
    font-size: calc(var(--s-val) * 2);
}

/* --- カリキュラム --- */
.section-curriculum{
    padding-block: calc(var(--s-val) * 7.4) calc(var(--s-val) * 12.3);
    isolation: isolate;
    position: relative; 
}

.section-curriculum::before {
    content: "";
    position: absolute;
    inset: 0; 
    background-image: url(../images/top/curriculum_bg.webp);
    background-repeat: repeat;
    background-position: center;
    background-size: auto;
    z-index: -1; 
}
.curriculum-container{
    text-align: center;
    position: relative;
}
.title-small-text{
    color: #333;
    font-size: calc(var(--s-val) * 2.4);
}
.curriculum-title{
    color: #EA704F;
    font-size: calc(var(--s-val) * 4);
    font-weight: bold;
    position: relative;
    z-index: -1;
    display: inline-block;
}
.curriculum-title::after {
    content: "";
    display: block;
    position: absolute;
    top: 85%;
    left: 50%;
    transform: translateX(-50%);
    width: 12rem;
    aspect-ratio: 4 / 1;
    background: url(../images/top/title.png) no-repeat center;
    background-size: contain;
    z-index: -2;
}
.curriculum-lead-text{
    margin-top: calc(var(--s-val) * 5);
    line-height: 1.8;
}
.curriculum-list{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: calc(var(--s-val) * 2);
    list-style: none;
    padding: 0;
    margin-top: calc(var(--s-val) * 6.9);
}
.curriculum-box{
    background: var(--color-white);
    border-radius: var(--s-val);
    box-shadow: 0 4px 4px #FFD5CD;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    width: calc((100% - (var(--s-val) * 8)) / 5);    
    overflow: hidden;
}
.curriculum-box__label{
    background: var(--color-pink);
    color: var(--color-white);
    font-size: calc(var(--s-val) * 1.8);
    font-weight: bold;
    display: block;
    width: 100%;
    padding: calc(var(--s-val) * 1.4) 0;
}
.curriculum-box__img-wrapper{
    width: 70%;              
    aspect-ratio: 1 / 1;
    display: flex;
    align-items: center;
    justify-content: center;
}
.curriculum-box__img{
    max-width: 80%;
    max-height: 80%;
    object-fit: contain;
}
.delivery img{
    transform: scale(1.5);
}
.analysis img{
    transform: translateY(4.5%);
}
.risk img,
.trend img{
    transform: translateX(4.5%);
}
.curriculum-btn{
    display: inline-block;
    color: #14609E;
    font-weight: bold;
    font-size: calc(var(--s-val) * 2.4);
    text-decoration: none;
    padding: calc(var(--s-val) * 2) calc(var(--s-val) * 10.6);
    border-radius: calc(var(--s-val) * 3.6);
    border: 1px solid #e7e7e7;
    box-shadow: 0 4px 4px rgba(230, 242, 238, 0.5);
    background: linear-gradient(160deg, #f2fdff, #f8fef7 50%, #fefff0);
    position: relative;
    margin-top: calc(var(--s-val) * 8);
}
.curriculum-btn::after{
    content: "";
    width: calc(var(--s-val) * 1.6);
    height: calc(var(--s-val) * 1.6);
    aspect-ratio: 1 / 1;
    background: url(../images/top/curriculum-btn_arrow.png) no-repeat;
    background-size: contain;
    position: absolute;
    top: 50%;
    right: calc(var(--s-val) * 2);
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    pointer-events: none;
}
.curriculum-text-link{
    color: var(--color-top-text);
    font-weight: bold;
    font-size: calc(var(--s-val) * 2.4);
    margin-top: calc(var(--s-val) * 4.2);
}
.curriculum-link{
    color: var(--color-navy);
}

/* --- 修了後のキャリア支援 --- */
.career-support-container,
.faq-container {
    text-align: center;
    position: relative;

}
.section-career-support{
    padding: calc(var(--s-val) * 14) 0 calc(var(--s-val) * 10);
    position: relative;
    isolation: isolate;
}

.section-career-support::before {
    content: "";
    position: absolute;
    inset: 0;
    background: url(../images/course-personal/career-support-bg.webp) center bottom / cover no-repeat;
    z-index: -1;
}
.career-support-title{
    text-align: center;
    color: #E96666;
    font-weight: 800;
    font-size: calc(var(--s-val) * 4);
    margin: 0 0 calc(var(--s-val) * 7);
    position: relative;
}
.career-support-title__line{
    display: block;
    width: calc(var(--s-val) * 8);
    height: 3px;
    margin: calc(var(--s-val) * 2) auto 0;
    background: #F05858;
    border-radius: 99px;
}
.career-support-list{
    list-style: none;
    padding: 0;
    margin: 50px auto 100px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
    width: min(1200px, 100%);
    gap: 24px;
}
.career-support-item{
    text-align: center;
    aspect-ratio: 1 / 1;
}
.career-support-circle{
    margin: 0 auto;
    border-radius: 50%;
    background: #fff;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding-bottom: calc(var(--s-val) * 2);
    text-align: center;
    height: 100%;
}
.career-support__img{
    width: 28%;
    height: auto;
}
.career-support-circle::before{
    content:"";
    position: absolute;
    inset: -6px;
    border-radius: 50%;
    border: 2px solid #F05858;
}
.career-support-circle::after{
    content:"";
    position: absolute;
    inset: 1px;
    border-radius: 50%;
    border: 1px solid #F05858;
}
.career-support-item__title{
    color: #E96666;
    font-weight: 800;
    font-size: calc(var(--s-val) * 2.4);
    line-height: 1.35;
}
.career-support-item__title-s{
    font-size: calc(var(--s-val) * 2.2);
}
.career-support-item__text{
    margin: 0;
    color: #333;
    font-size: calc(var(--s-val) * 1.6);
    width: 180px;
    text-align: left;
}

/* --- レビュー（個人・法人共通部分） --- */
.individual-container,
.corporate-container{
    text-align: center;
}
.individual-lead-text,
.corporate-lead-text{
    font-weight: bold;
    margin-top: calc(var(--s-val) * 5);
}
.review-list{
    display: flex;
    gap: calc(var(--s-val) * 1.1);
    align-items: stretch;
    margin-top: calc(var(--s-val) * 7);
}
.review-card{
    list-style-type: none;
    background: var(--color-white);
    border-radius:calc(var(--s-val) * 3);
    box-shadow: 0 4px 4px 4px rgba(207, 207, 207, 0.25);
    position: relative;
    z-index: -1;
    padding: calc(var(--s-val) * 3.2) calc(var(--s-val) * 1.5);
    text-align: left;
    display: flex;
    flex-direction: column;
    flex: 0 0 calc((100% - (var(--s-val) * 1.1 * 2)) / 3);
    box-sizing: border-box;
}
.review-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: calc(var(--s-val) * 2.3);
    background: #DEAC7F; 
    border-radius: calc(var(--s-val) * 3) calc(var(--s-val) * 3) 0 0;
    z-index: -1;
}
.review-header{
    display: flex;
    gap: calc(var(--s-val) * 0.3);
    align-items: flex-start;   
    padding-bottom: calc(var(--s-val) * 0.8);
    flex-shrink: 0;
    height: calc(var(--s-val) * 11);
}
.review-icon{
    width: 28%;
    transform: translateY(-40%);
}
.review-icon__img{
    width: 100%;
    height: auto;
}
.review-title{
    font-weight: bold;
    font-size: calc(var(--s-val) * 2.3);
    line-height: 1.3;
    margin-bottom: calc(var(--s-val) * 0.9);
}
.profile-text{
    font-size: calc(var(--s-val) * 2);
    line-height: 1.2;
}
.review-text{
    line-height: 1.8;
    padding-top: calc(var(--s-val) * 2) ;
    font-size: calc(var(--s-val) * 2.2);
    flex-grow: 1;
}
.individual-container .section-title {
    color: #EA704F;
}

/* --- レビュー（個人） --- */
.section-review-individual{
    padding-block: calc(var(--s-val) * 7.4) calc(var(--s-val) * 12.3);
    position: relative;
    z-index: -1;
    isolation: isolate;
}
.section-review-individual::before {
    content: "";
    position: absolute;
    inset: 0;
    background: #FFF8F2;
    z-index: -1;
}
.individual{
    color: #ea704f;
}
.individual-border{
    border-top: 1px solid #DEAC7F;
}
.personal-review {
    padding-top: calc(var(--s-val) * 30); 
    margin-top: calc(var(--overlap) * -3);
}

/* --- ご利用料金 --- */
.price-container{
    z-index: -2;
}
.section-price-bg {
    position:absolute;
    z-index: -3;
    inset: 0;
    pointer-events: none;
}
.section-price{
    position: relative;
    padding: calc(var(--s-val) * 10) 0;
    background: #fff;
    overflow: visible;
    text-align: center;
    isolation: isolate;
}
.price-right__img {
    position: absolute;
    max-width: none;
    top: -5vw; 
    right: 0; 
}
.price-left__img {
    position: absolute;
    max-width: none;
    bottom: -5vw; 
    left: 0; 
    z-index: -2;
}
.price-inner{ 
    position: relative;
    z-index: -1;
}
.price-title{
    color: var(--color-pink02, #E96666);
    font-weight: 800;
    font-size: calc(var(--s-val) * 4);
    margin: 0 0 calc(var(--s-val) * 5);
}
.price-amount{
    display: inline-flex;
    align-items: baseline;
    justify-content: center;
    margin-top: calc(var(--s-val) * 6);
    margin-bottom: calc(var(--s-val) * 6);
}
.price-badge{
    padding: 10px 14px;
    background: #FA894B;
    color: #fff;
    font-weight: 800;
    border-radius: 6px;
    font-size: calc(var(--s-val) * 3.6);
    line-height: 1;
    font-family: 'Noto Sans JP';
}
.price-badge small {
    font-size: calc(var(--s-val) * 2.7);
}
.price-number::before{
    content:"";
    position:absolute;
    top: calc(var(--s-val) * -1);
    right: calc(var(--s-val) * 9.5);
    width: calc(var(--s-val) * 4.7);
    height: calc(var(--s-val) * 4.7);
    background: url(../images/course-personal/price.png) no-repeat center;
    background-size: contain;
    pointer-events:none;
}
.price-yen{
    color: inherit;
    font-weight: 800;
    font-size: calc(var(--s-val) * 3);
}
.price-number{
    position: relative; 
    letter-spacing: 0.02em;
    display: inline-block;
    background: linear-gradient(290deg,#E96666, #ea704f 28%,  #FA894B);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    padding-left: calc(var(--s-val) * 2);
    line-height: 1.3;
    font-family: 'Noto Sans JP';
    font-size: calc(var(--s-val) * 6.5);
    font-weight: 800;
}
.price-cta-link-text {
    position: relative;
}

/* --- 導入までの流れ --- */
.section-flow{
    padding: calc(var(--s-val) * 10) 0;
    position: relative;
    isolation: isolate;
}
.section-flow::before {
    content: "";
    position: absolute;
    inset: 0;
    background: #FFF8F2;
    z-index: -7;
}
.flow-container{
    text-align: center;
    margin-bottom: calc(var(--s-val) * 13);
}
.flow-title{
    color: #EA704F;
    font-weight: 800;
    font-size: calc(var(--s-val) * 3.6);
    margin-bottom: calc(var(--s-val) * 5);
}
.flow-list{
    list-style: none;
    padding: 0;
    margin: 0 auto;
    width: min(665px, 100%);
    display: grid;
    gap: 12px;
    padding-top: calc(var(--s-val) * 8);
    font-family: 'Noto Sans JP';
}
.flow-item{
    position: relative;
    display: grid;
    grid-template-columns: 1fr auto 1fr; 
    align-items: center;
    padding: 13px 24px;
    color: #fff;
    background: #F18A72;
    border-radius: 4px;
    height: 107px;
    border: solid 2px;
    z-index: -6;
}
.flow-item:nth-child(1){ 
    background:#FA894B; 
    opacity: 90%;
}
.flow-item:nth-child(2){ 
    background:#F4804D;
    opacity: 90%;
}
.flow-item:nth-child(3){ 
    background:#EE764F;
    opacity: 90%;
}
.flow-item:nth-child(4){ 
    background:#EA6F52;
    opacity: 90%;
}
.flow-item:nth-child(5){ 
    background:#EA6B5A;
    opacity: 90%;
}
.flow-item:nth-child(6){ 
    background:#E96764;
    opacity: 90%;
}
.flow-step{
    font-weight: 800;
    font-size: calc(var(--s-val) * 2.4);
    text-align: left;
    letter-spacing: .05em;
    padding-left: 50px;
}
.flow-icon{
    text-align: center;
    margin: 0 auto;
    justify-self: center; 
}
.flow-icon img{
    width: 100%;
    height: auto;
}
.flow-item:nth-child(1){
    z-index: -1; 
}
.flow1::after{
    content:"";
    position:absolute;
    top: 104%;  
    left: 50%;
    transform: translate(-50%, -50%);
    width: 22px;
    height: 12px;
    background: url(../images/course-personal/flow-bottom1.png) no-repeat center;
    background-size: contain;
    pointer-events:none;
    z-index: -1;
}
.flow-item:nth-child(2){
    z-index: -2; 
}
.flow2::after{
    content:"";
    position:absolute;
    top: 104%;  
    left: 50%;
    transform: translate(-50%, -50%);
    width: 22px;
    height: 12px;
    background: url(../images/course-personal/flow-bottom2.png) no-repeat center;
    background-size: contain;
    pointer-events:none;
    z-index: -1;
}
.flow-item:nth-child(3){
    z-index: -3; 
}
.flow3::after{
    content:"";
    position:absolute;
    top: 104%;  
    left: 50%;
    transform: translate(-50%, -50%);
    width: 22px;
    height: 12px;
    background: url(../images/course-personal/flow-bottom3.png) no-repeat center;
    background-size: contain;
    pointer-events:none;
    z-index: -4;
}
.flow-item:nth-child(4){
    z-index: -4; 
}
.flow4::after{
    content:"";
    position:absolute;
    top: 104%;    
    left: 50%;
    transform: translate(-50%, -50%);
    width: 22px;
    height: 12px;
    background: url(../images/course-personal/flow-bottom4.png) no-repeat center;
    background-size: contain;
    pointer-events:none;
    z-index: -5;
}
.flow-item:nth-child(5){
    z-index: -5; 
}
.flow5::after{
    content:"";
    position:absolute;
    top: 104%;  
    left: 50%;
    transform: translate(-50%, -50%);
    width: 22px;
    height: 12px;
    background: url(../images/course-personal/flow-bottom5.png) no-repeat center;
    background-size: contain;
    pointer-events:none;
    z-index: -2;
}
.flow-step::after{
    content:"";
    position:absolute;
    left:35%;
    top:20%;
    transform:translateX(-50%);
    width:2px;
    height:60%;
    background: rgba(255,255,255,.5);
    z-index:-1;
}
.flow-icon img{
    position: relative;
    z-index:-1;
}
.flow-text{
    font-weight: 800;
    font-size: calc(var(--s-val) * 2.4);
    line-height: 1.3;
    text-align: center;
}
.flow-text span{
    display:block;
}
.flow-item + .flow-item{
    margin-top: -14px; 
}

/* --- よくある質問 --- */
.section-faq {
    margin-top: calc(var(--s-val) * 10);
}
.faq-list {
    margin-top: calc(var(--s-val) * 10);
    margin-bottom: calc(var(--s-val) * 17);
}
.faq-item{
    margin-bottom: calc(var(--s-val) * 3);
    background: #fff;
    overflow: hidden;
    text-align: left;
}
.faq-item summary{
    display: grid;
    grid-template-columns: 0.2fr 1fr 0.2fr; 
    align-items: center;
    padding: 50px 100px;
    background: #FFF0F0;
    color: #F17474;
    font-weight: 700;
    cursor: pointer;
    list-style: none;
    font-size: calc(var(--s-val) * 2.4);
    position: relative;
}
.faq-item summary::-webkit-details-marker{ 
    display:none; 
}
.faq-item summary::before{
    content: "Q";
    font-weight: 800;
    font-size: 28px;
    line-height: 1;
    display: grid;
    place-items: start center;
    color: #F17474;
}
.faq-item summary::after{
    content: "";
    justify-self: end;
    width: 40px;
    height: 18px;
    background:
        linear-gradient(#F17474,#F17474) center/18px 2px no-repeat, 
        linear-gradient(#F17474,#F17474) center/2px 18px no-repeat; 
}
.faq-item[open] summary::after{
    background:
        linear-gradient(#F17474,#F17474) center/18px 2px no-repeat;
}
.faq-item p{
    margin: 0;
    display: grid;
    grid-template-columns: 0.17fr 1fr; 
    padding: 22px 100px;
    background: #FFF9F9;
    color: #333333;
    line-height: 1.9;
    font-size: calc(var(--s-val) * 2);
    transform: translateY(-10px);
    opacity: 0;
    transition: transform .5s, opacity .5s;
}
.faq-item p::before{
    content: "A";
    font-weight: 900;
    font-size: 28px;
    line-height: 1;
    display: grid;
    place-items: start center;
    color: #333333;
}
.faq-item[open] p{
    transform: none;
    opacity: 1;
}


/* --- エントリー --- */
.section-entry{
    background-image: url(../images/top/entry-bg.png);
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    padding-block: calc(var(--s-val) * 12);
}
.entry-container{
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.entry-head{
    margin-bottom:  calc(var(--s-val) * 4.6);
}
.entry-body{
    display: flex;
    flex-direction: column;
    align-items: center;
}
.entry-logo__img{
    width: calc(var(--s-val) * 44);
    height: auto;
}
.entry-logo-text{
    font-weight: bold;
    font-size: calc(var(--s-val) * 2.8);
    color: #282828;
}
.entry-text{
    font-size: calc(var(--s-val) * 2.4);
    margin-bottom:  calc(var(--s-val) * 2.9);
}

/* カレンダー */
.entry-text-link{
    margin-top: calc(var(--s-val) * 2.4);
}

#timerex_calendar > div {
    background: none !important;
}

#timerex_calendar iframe html {
    background: none !important;
}

#timerex_calendar {
    overflow-x: visible !important;
}

.embed-container.guest-card {
    background-color: #fff;
}

/* === レスポンシブ === */
@media screen and (max-width: 768px) {

    /* ===== FV（about） ===== */
    .about_bg_image{
        height: 280px;
        padding-block: calc(var(--s-val) * 12) calc(var(--s-val) * 6);
        background-position: center bottom;
    }
    .section-weapon{
        background-size: cover;
        padding-top: calc(var(--s-val) * 8);
    }
    .weapon-decor-wrapper{
        left: 0;
        right: 0;
        top: -10vw;
        bottom: -10vw;
        overflow: hidden;
    }
    .weapon-decor-img{
        width: 28vw;
        opacity: .6;
    }
    .weapon-decor-top-right{ top: 6vw; width: 18vw; }
    .weapon-decor-bottom-right{ width: 16vw; top: 180vw;}
    .weapon-decor-top-left{ top: 60vw; width: 18vw; }
    .weapon-decor-bottom-left{ bottom: 200vw; width: 40vw; }
    .weapon-inner-box{
        padding: 0 16px;
        text-align: center;
        margin-bottom: 30px;
    }
    .weapon-image{
        transform: none;
        justify-self: center;
        margin-top: 8px;
    }
    .weapon-image__img{
        width: min(240px, 70vw);
        height: auto;
    }
    .weapon-highlight{
        margin-bottom: 16px;
    }
    .weapon-highlight__img,
    .weapon-subtext__img{
        width: 100%;
        max-width: 520px;
        height: auto;
        display: block;
        margin: 0 auto;
    }
    .weapon-overcome{
        padding: 0 0 64px;
    }
    .weapon-overcome__text{
        font-size: calc(var(--s-val) * 2.5);
        padding-top: calc(var(--s-val) * 12);
        width: 300px;
        margin-bottom: 10px;
    }
    .weapon-overcome__em{
        font-size: calc(var(--s-val) * 3.4);
    }
    .weapon-overcome__cards{
        grid-template-columns: 1fr;
        gap: 12px;
        padding: 0;
    }
    .weapon-overcome__card{
        min-height: auto;
        padding: 22px 16px 30px;
    }
    .weapon-overcome__point{
        width: 56px;
        top: -16px;
        left: -16px;
    }
    .weapon-overcome__icon{
        width: 48px;
    }
    .weapon-title{
        font-size: calc(var(--s-val) * 3.2);
        line-height: 1.35;
        margin-bottom: 14px;
    }
    .weapon-worry{
        margin: 32px auto 0;
        padding: 18px 14px 110px;
        border-radius: 14px;
    }
    .weapon-worry-title{
        font-size: calc(var(--s-val) * 2.1);
        margin-bottom: 12px;
    }
    .weapon-worry-title span{
        font-size: calc(var(--s-val) * 3);
        line-height: 1.25;
        padding-inline: 6px;
    }
    .weapon-worry-decor{ width: 36px; }
    .weapon-worry-decor--left{
        left: -10px;
        top: -25px;
    }
    .weapon-worry-decor--right{
        right: -18px;
        top: -18px;
    }
    .weapon-worry-list li{
        font-size: calc(var(--s-val) * 2.2);
        line-height: 1.45;
        padding-left: 0;
    }
    .weapon-point-line{
        top: 20%;
    }
    .weapon-overcome-decor__square {
        left: 50%;
        top: 29%;
        width: calc(var(--s-val) * 3);
    }
    .weapon-overcome-decor__top-right {
        top: 53%;
        right: -7%;
        width: calc(var(--s-val) * 3);
    }

    /* サービス */
    .section-service {
        padding-top: calc(var(--s-val) * 15);
        padding-bottom: calc(var(--s-val) * 15);
    }
    .service-woman__img{
        display: none;
    }
    .personal-section-service {
        padding-top: calc(var(--s-val) * 5);
        padding-bottom: calc(var(--s-val) * 0);
    }
    .service-container-bottom{
        overflow: hidden;
    }
    .service-container-bottom__img{
        width: auto;
        max-width: none;
        position: relative;
        left: 50%;
        transform: translateX(-50%);
    }
    .personal-service-list {
        gap: 20px;
    }

    /* cta */   
    .section-cta{
        padding-block: calc(var(--s-val) * 4);
    }   
    .cta-container{
        flex-direction: column;
    }
    .cta-img-box,
    .cta-text-box {
        width: 100%;
    }
    .cta-text__small {
        font-size: calc(var(--s-val) * 1.9);
    }
    .cta-text-01{
        font-size: calc(var(--s-val) * 2.2);
    }
    .cta-text-02{
        font-size: calc(var(--s-val) * 2.6);
    }
    .concept__btn,.cta-link-btn{
        font-size: calc(var(--s-val) * 2);
        padding: calc(var(--s-val) * 1.6) calc(var(--s-val) * 9);
    }

    /* カリキュラム */
    .section-curriculum{
        padding-block: calc(var(--s-val) * 7.4) calc(var(--s-val) *  7.4);
    }
        .curriculum-box {
        width: calc((100% - (var(--s-val) * 2)) / 2);
    }
    .curriculum-btn{
        font-size: calc(var(--s-val) * 2);
        padding: calc(var(--s-val) * 1.6) calc(var(--s-val) * 8);
    }
    .curriculum-text-link{
        font-size: calc(var(--s-val) * 2);
    }

    /* キャリア支援 */
    .section-career-support{
    background:
        url(../images/course-personal/career-support-bg.webp)
        center bottom / 120% auto no-repeat;
        position: relative;
        padding: calc(var(--s-val) * 7.4) 0 calc(var(--s-val) * 10);
    }
    .section-career-support::before {
        content: "";
        background: #FFF6F6;
        z-index: -10;
        width: 100%;
        height: 95%;
        position: absolute;
        top: 0;
        left: 0;
    }
    .career-support-list{
        grid-template-columns: 1fr; 
        gap: calc(var(--s-val) * 3);
        margin-bottom: 0;
    }
    .career-support-item__text{
        width: auto;
        text-align: center;
        margin: 10px auto 0;
    }
    .career-support-item__title,
    .career-support-item__title-s{
        font-size: calc(var(--s-val) * 2.5);
        line-height: 1.25;
        word-break: keep-all;   
    }
    .career-support-item__text{
        width: 100%;  
        max-width: 60%;
        font-size: calc(var(--s-val) * 1.8);
        line-height: 1.5;
    }
    .career-support__img{
        width: 26%;
    }
    .career-support-item{
        aspect-ratio: auto;
    }
    .career-support-circle{
        overflow: visible;  
        padding-inline: 12px;     
        box-sizing: border-box;
        width: 70%;  
        max-width: 465px;
        height: auto;
        aspect-ratio: 1 / 1;
        margin: 0 auto;
    }

    /* レビュー */
    .section-review-individual {
        padding-block: calc(var(--s-val) * 7.4) calc(var(--s-val) * 7.4);
    }
    .review-list{
        flex-direction: column;
        gap: calc(var(--s-val) * 5);
    }
    .personal-review {
    padding-top: calc(var(--s-val) * 20);
    margin-top: calc(var(--overlap) * -5);
    }

    /* ご利用料金 */
    .section-price{
        padding: calc(var(--s-val) * 5) 0;
        overflow: visible; 
    }
    .price-title{
        font-size: calc(var(--s-val) * 3);
    }
    .price-amount{
        flex-direction: column;
        gap: 10px;
        margin-top: calc(var(--s-val) * 4);
        margin-bottom: calc(var(--s-val) * 4);
    }
    .price-badge{
        font-size: calc(var(--s-val) * 2.4);
        padding: 8px 12px;
        margin: 20px auto 0;
    }
    .price-number{
        font-size: calc(var(--s-val) * 5);
        padding-left: 0;
    }
    .price-number::before{
        top: calc(var(--s-val) * -1);
        right: calc(var(--s-val) * 7);
        width: calc(var(--s-val) * 3.5);
        height: calc(var(--s-val) * 3.5);
    }
    .price-yen{
        font-size: calc(var(--s-val) * 2.2);
    }
    .price-right__img{
        width: 100px; 
        top: -40px;
        right: 55px;
        transform: translateX(55%);
    }
    .price-left__img{
        width: 100px; 
        left: 0;
        bottom: -30px;  
        transform: translateX(-15%); 
    }

    /* 導入までの流れ */
    .section-flow {
        padding: calc(var(--s-val) * 5) 0;
    }
    .flow-item{
        grid-template-columns: 1fr 70px 1fr;
        padding: 16px;
    }
    .flow-step{ font-size: calc(var(--s-val) * 2); }
    .flow-text{ font-size: calc(var(--s-val) * 1.8); }
    .flow-icon img{ width:36px; }
    .flow-step {
        padding-left: 0;
    }
    .flow-list {
        padding-top: calc(var(--s-val) * 5);
    }
    .flow-container {
        margin-bottom: calc(var(--s-val) * 3);
    }

    /* よくある質問 */
    .section-faq {
        margin-top: calc(var(--s-val) * 6);
    }
    .faq-item summary{
        grid-template-columns: 44px 1fr 44px;
        padding: 18px 18px;
        font-size: calc(var(--s-val) * 2);
    }
    .faq-item summary::before{
        width: 32px;
        height: 32px;
        font-size: 24px;
    }
    .faq-item p{
        grid-template-columns: 44px 1fr;
        padding: 18px 18px;
    }
    .faq-item p::before{
        font-size: 24px;
    }
    .faq-list {
        margin-top: calc(var(--s-val) * 7);
        margin-bottom: calc(var(--s-val) * 7);
    }

    /* エントリー */
    .section-entry {
        padding-block: calc(var(--s-val) * 8);
    }
    .entry-logo__img{
        width: 100%;
    }
    .entry-logo-text {
        font-size: calc(var(--s-val) * 2.4);
        line-height: 1.3;
        margin-top: calc(var(--s-val) * 1.2);
    }
    .entry-text{
        font-size: calc(var(--s-val) * 2);
    }
}

