#main{overflow-x: hidden; padding-top: 115px;}
#mainslide{width:100%; height: 80vh;}
#mainslide .mainSwiper{width:100%;border-radius:10px;overflow:hidden;}
#mainslide .main-slide{position:relative;width:100%;height:80vh;background-position:center;background-repeat:no-repeat;background-size:cover;display:flex;align-items:center;justify-content:center;}
#mainslide .main-slide::before{content:'';position:absolute;inset:0;background:rgba(0,0,0,.12);}
#mainslide .main-slide-text{position:relative;z-index:2;text-align:center;color:#fff;}
#mainslide .mainSwiper .swiper-pagination{bottom:5%!important;}
#mainslide .mainSwiper .swiper-pagination-bullet{width:8px;height:8px;margin:0 8px!important;border-radius:10px;background:rgba(255,255,255,.5);opacity:1;transition:.3s;}
#mainslide .mainSwiper .swiper-pagination-bullet-active{width:30px;background:#fff;}

#program{background:url('/img/main/program_bg.jpg') center/cover no-repeat;}
#program .program-category {display:flex;gap:10px;margin:0;padding:0;list-style:none;}
#program .program-category li {margin:0;padding:0;}
#program .program-category a {display:flex;align-items:center;justify-content:center;min-width:50px;padding:.5rem 1.5rem;border:1px solid;border-radius:20px;line-height:1;text-align:center;text-decoration:none;transition:.2s;}
#program .program-category a:hover {background:#f1efe9;}
#program .program-category a.green {color:#2d4a2e;border-color:#2d4a2e;}
#program .program-category a.orange {color:#bf6753;border-color:#bf6753;}
#program .program-category a.mint {color:#327f41;border-color:#327f41;}
#program .program-category a.yellow {color:#a88d58;border-color:#a88d58;}
#program .program-item a{padding: .5rem 2rem; border-radius: 60px; border: 1px solid #2d4a2e; display: inline-block; text-align: center; min-width:80px; color: #2d4a2e; font-weight: 500;}
#program .program-label-wrap .program-label{color: #fff; border-radius: 20px 4px 20px 4px; padding: 1rem 2rem; display: inline-block; font-weight: 500;}
#program .program-label-wrap .program-label.green{background: #2d4a2e; background: linear-gradient(180deg,rgba(50, 82, 51, 1) 0%, rgba(58, 95, 59, 1) 65%, rgba(63, 104, 64, 1) 100%);}
#program .program-label-wrap .program-label.orange{background: #bf6753; background: linear-gradient(180deg,rgba(199, 116, 93, 1) 0%, rgba(209, 132, 106, 1) 65%, rgba(216, 144, 116, 1) 100%);}
#program .program-label-wrap .program-label.mint{background: #327f41; background: linear-gradient(180deg,rgba(53, 135, 69, 1) 0%, rgba(56, 143, 73, 1) 65%, rgba(60, 151, 77, 1) 100%);}
#program .program-label-wrap .program-label.yellow{background: #a88d58; background: linear-gradient(180deg,rgba(171, 145, 91, 1) 0%, rgba(178, 154, 98, 1) 65%, rgba(180, 157, 100, 1) 100%);}
#program .program-label-wrap .program-line{min-width: 490px; height: 2px; margin-left: 4px; margin-top: -2px; width: 100%; display: block;}
#program .program-label-wrap .program-line.green{background-color: #3f6840;}
#program .program-label-wrap .program-line.orange{background-color: #d99074;}
#program .program-label-wrap .program-line.mint{background-color: #3c984e;}
#program .program-label-wrap .program-line.yellow{background-color: #b59e65;}
#meditation,
#recovery,
#nature,
#healing {
    scroll-margin-top: 115px; /* 헤더 높이에 맞게 조절 */
}

#ReservationInquiry .container{background:url('/img/main/ReservationInquiry_bg.jpg') center/cover no-repeat; border-radius: 12px;}
#ReservationInquiry a{padding: .5rem 2rem; border-radius: 60px; border: 1px solid #fff; display: inline-block;}

#Review a.review-more{padding: .5rem 2rem; border-radius: 60px; border: 1px solid #2d4a2e; color: #2d4a2e;}
#Review { overflow: hidden; }
#Review .review-slide-container{ margin-top: 70px; overflow: hidden;}
#Review .review-swiper { overflow: hidden; }
#Review .review-item { display: block; color: inherit; text-decoration: none; }
#Review .review-img { position: relative; width: 100%; aspect-ratio: 0.85 / 1; overflow: hidden; border-radius: 10px; }
#Review .review-img img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
#Review .review-item:hover .review-img img { transform: scale(1.03); }
#Review .review-text { padding-top: 22px; color: #2c2c2c;}
#Review .review-text p {line-height: 1.7; font-weight: 400; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
#Review .review-link { display: block; margin-top: 5px; color: #777; }
#Review .review-text time { display: block; margin-top: 22px; font-weight: 500;}
#Review .review-progress { position: relative !important; width: 100%; height: 5px !important; margin-top: 48px; background: #fff !important; }
#Review .review-progress .swiper-pagination-progressbar-fill { background: #2d4a2e; transform-origin: left top; }

#somaProgram { width:100%; overflow:hidden; }
#somaProgram .section-left { width:100%; box-sizing:border-box; }
#somaProgramSwiper { position:relative; width:100%; margin:0; padding:0; overflow:hidden; }
#somaProgramSwiper .swiper-wrapper { display:flex; align-items:stretch; margin:0; padding:0; }
#somaProgramSwiper .swiper-slide { position:relative; width:330px !important; flex:0 0 330px !important; height:615px; margin:0; padding:0; box-sizing:border-box; }
#somaProgramSwiper .swiper-slide.is-expanded { width:878px !important; flex:0 0 878px !important; }
#somaProgram .soma-program-card { position:relative; display:flex; width:100%; height:100%; overflow:hidden; border-radius:12px; background:#243f29; }
#somaProgram .soma-program-content { position:relative; width:0; flex:0 0 0; min-width:0; height:100%; overflow:hidden; box-sizing:border-box; display:flex; flex-direction:column; justify-content:flex-start; color:#fff; background:#243f29; opacity:0; visibility:hidden; padding:0; transition:width .7s cubic-bezier(.22,1,.36,1), flex-basis .7s cubic-bezier(.22,1,.36,1), opacity .35s ease, padding .7s cubic-bezier(.22,1,.36,1); }
#somaProgramSwiper .swiper-slide.is-expanded .soma-program-content { width:50%; flex:0 0 50%; opacity:1; visibility:visible; padding:70px 35px 45px; }
#somaProgram .soma-program-title { display:flex; align-items:center; gap:10px; white-space:nowrap; margin-bottom:18px; }
#somaProgram .soma-program-title i { display:block; width:18px; height:1px; flex-shrink:0; background:rgba(255,255,255,.65); }
#somaProgram .soma-program-content strong { display:block; line-height:1.65; font-weight:600; }
#somaProgram .soma-program-content p { margin:34px 0 0; line-height:1.7; color:rgba(255,255,255,.75); }
#somaProgram .soma-program-image { position:relative; width:100%; flex:0 0 100%; min-width:0; height:100%; overflow:hidden; transition:width .7s cubic-bezier(.22,1,.36,1), flex-basis .7s cubic-bezier(.22,1,.36,1); }
#somaProgramSwiper .swiper-slide.is-expanded .soma-program-image { width:50%; flex:0 0 50%; }
#somaProgram .soma-program-image::after { content:""; position:absolute; inset:0; z-index:1; pointer-events:none; background:linear-gradient(to top,rgba(0,0,0,.58) 0%,rgba(0,0,0,.05) 55%,rgba(0,0,0,.08) 100%); transition:opacity .35s ease; }
#somaProgramSwiper .swiper-slide.is-expanded .soma-program-image::after { opacity:0; }
#somaProgram .soma-program-image img { display:block; width:100%; height:100%; object-fit:cover; }
#somaProgram .soma-program-small { position:absolute; left:22px; right:18px; bottom:28px; z-index:2; color:#fff; opacity:1; visibility:visible; transition:opacity .3s ease, visibility .3s ease, transform .4s ease; }
#somaProgram .soma-program-small > span { display:block; margin-bottom:5px; }
#somaProgram .soma-program-small > div { display:flex; align-items:center; gap:8px; }
#somaProgram .soma-program-small i { display:block; width:20px; height:1px; flex-shrink:0; background:rgba(255,255,255,.8); }
#somaProgram .soma-program-small strong { white-space:nowrap; font-weight:500; }
#somaProgramSwiper .swiper-slide.is-expanded .soma-program-small { opacity:0; visibility:hidden; transform:translateY(10px); }
#somaProgram .container { box-sizing:border-box; }
#somaProgram .soma-program-progress { position:relative; width:100%; height:5px; margin-top:50px; overflow:hidden; background:#eeeae2; }
#somaProgram .soma-program-progress-bar { position:absolute; top:0; left:0; width:20%; height:100%; background:#294d32; transition:width .6s cubic-bezier(.22,1,.36,1); }

@media(max-width: 1850px){
    #program .program-label-wrap .program-line{min-width: 450px;}
    #recovery .program-image, #healing .program-image{padding-right: 50px;}
}

@media(max-width: 1500px){
    #program .program-label-wrap .program-line{min-width: 350px;}
}

@media(max-width: 1240px){
    #program .program-label-wrap .program-line{min-width: 300px;}
}

@media (max-width:990px){
    #main{padding-top:72px;}
    #meditation,
    #recovery,
    #nature,
    #healing {
        scroll-margin-top: 72px; /* 헤더 높이에 맞게 조절 */
    }

    /* 모든 카드 높이를 맞추고 이미지와 글 영역을 1:1로 배치 */
    #somaProgramSwiper .swiper-wrapper{
        align-items:stretch !important;
    }
    #somaProgramSwiper .swiper-slide,
    #somaProgramSwiper .swiper-slide.is-expanded{
        width:min(550px, 82vw) !important;
        min-width:min(550px, 82vw) !important;
        max-width:min(550px, 82vw) !important;
        flex:0 0 min(550px, 82vw) !important;
        height:auto !important;
        display:flex;
    }
    #somaProgram .soma-program-card{
        display:grid !important;
        grid-template-rows:repeat(2, minmax(240px, 1fr));
        width:100%;
        height:100% !important;
        min-height:0;
    }
    #somaProgram .soma-program-image,
    #somaProgramSwiper .swiper-slide .soma-program-image,
    #somaProgramSwiper .swiper-slide.is-expanded .soma-program-image{
        grid-row:1;
        width:100% !important;
        height:auto !important;
        min-height:0;
        flex:none !important;
        transition:none !important;
    }
    #somaProgram .soma-program-image img{
        position:absolute;
        inset:0;
        width:100%;
        height:100%;
        object-fit:cover;
    }
    #somaProgram .soma-program-content,
    #somaProgramSwiper .swiper-slide .soma-program-content,
    #somaProgramSwiper .swiper-slide.is-expanded .soma-program-content{
        grid-row:2;
        width:100% !important;
        height:auto !important;
        min-height:0;
        flex:none !important;
        opacity:1;
        visibility:visible;
        padding:clamp(28px, 4vw, 40px) 20px 50px !important;
        transition:none !important;
    }
    #somaProgram .soma-program-image::after{opacity:0;}
    #somaProgram .soma-program-small{opacity:0; visibility:hidden; transform:translateY(10px);}
    #somaProgram .soma-program-content p{margin-top:18px;}

    #program .section-left {padding-right: 5%;}
    #program .program-category{margin-top: 2rem;}
    #program .program-label-wrap .program-line{min-width: 100%;}
    #program .program-image{order: 1;}
    #program .program-info{order: 2; width: 100%; margin-top: 2rem;}
    #recovery .program-image, #healing .program-image{padding-right: 0;}
}

@media (max-width:768px) {
    #mainslide img{max-width: 70%;}
    #ReservationInquiry .container{background:url('/img/main/ReservationInquiry_bgm.jpg') center/cover no-repeat; padding-bottom:300px;}

    #Review .review-more{position:absolute; left:0; margin-top:5rem;}
    #Review .review-slide-container{padding-top:3rem;}
}

@media (max-width:378px){
    #Review .title{flex-direction:column;}
    #Review .title img{max-width:100%; margin-right:auto;}
    #Review .title .ml-10{margin-left:0;}
    #Review .review-more{margin-top:8rem;}
}
