@charset "UTF-8";

/* =================================================================
   共通
   ================================================================= */
.header {
    position: sticky;
    top: 0;
    width: 100%;
    height: 96px!important;
    background-color: #EDECEB;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 28px 32px 28px 28px;
    z-index: 101;
    .header__logo {
        width: 158px;
        @media screen and (min-width: 768px) {
            transition: width 0.3s ease;
            transition: width 0.3s ease;
        }
        @media screen and (max-width: 767px) {
            width: 86px!important;
        }
    }
    &.fixed {
        height: 72px!important;
        padding: 19px 32px;
        border-bottom: 1px solid #D9D8D7;
        .header__logo {
            width: 102px;
        }
    }
    
}
.header .header__nav .nav__button.clinic,
.header .header__nav .nav__button.guide {
    display: block !important;
}
@media screen and (min-width: 1201px) {
    .header .header__nav .nav__button.online {
        margin-left: 8px !important;
    }
}

#breadcrumbs {
    display: none;
}
.section__title-style {
    font-size: 3.4rem;
    font-weight: 500;
    line-height: 100%;
    letter-spacing: 0.68px;
    display: flex;
    align-items: baseline;
    gap: 16px;
    margin-bottom: 35px;
    @media screen and (max-width: 767px) {
        font-size: 2.5rem;
        letter-spacing: 0.5px;
        margin-bottom: 40px;
    }
    span {
        font-family: 'League Spartan', sans-serif;
        font-size: 1.6rem;
        font-weight: 700;
        line-height: 100%;
        letter-spacing: 0.32px;
        color: #C52626;
        position: relative;
        padding-left: 27px;
        @media screen and (max-width: 767px) {
            font-size: 1.2rem;
            font-weight: 600;
            letter-spacing: 0.24px;
            padding-left: 22px;
        }
        &::before {
            content: '';
            width: 22px;
            height: 1px;
            background-color: #C52626;
            position: absolute;
            top: 35%;
            left: 0;
            @media screen and (max-width: 767px) {
                width: 18px;
                height: 1px;
            }
        }
    }
}

/* =================================================================
   メインエリア
   ================================================================= */
/* メインタイトル */
.main__area {
    margin-bottom: 220px;
    padding-top: 144px;
    @media screen and (max-width: 767px) {
        margin-bottom: 120px;
        padding-top: 70px;
    }
    .main__title__wrapper {
        max-width: 1296px;
        display: flex;
        justify-content: space-between;
        margin: 0 auto 20px;
        padding: 0 10px;
        align-items: center;
        @media screen and (max-width: 1000px) {
            margin-bottom: 100px;
            padding: 0 20px;
            display: block;
        }
        @media screen and (max-width: 767px) {
            margin-bottom: 12px;
        }
        .main__title {
            font-size: clamp(3.8rem, calc(4.5rem / 1440px * 100vw), 5.2rem);
            font-style: normal;
            font-weight: 300;
            line-height: normal;
            @media screen and (max-width: 1000px) {
                margin-bottom: 50px;
            }
            @media screen and (max-width: 767px) {
                font-size: 3.8rem;
                line-height: 160%;
                margin-bottom: 30px;
            }
            .char {
                display: inline-block;
                white-space: pre;
            }
        }
        .main__title__sub {
            font-size: 1.4rem;
            font-weight: 400;
            line-height: 170%;
            letter-spacing: 0.28px;
            color: #3B3A3A;
            transition: opacity 1.8s 0.8s cubic-bezier(0, 0, 0.2, 1),
                transform 1.8s cubic-bezier(0, 0, 0.2, 1);
            @media screen and (max-width: 767px) {
                font-size: 1.5rem;
                line-height: 180%;
                letter-spacing: 0.3px;
            }
        }
    }
    .main__slider {
        overflow: hidden;
        position: relative;
        margin-bottom: 100px;
        @media screen and (max-width: 767px) {
            margin-bottom: 50px;
        }
        .slider-track {
            display: flex;
            width: max-content;
            will-change: transform;

            img {
                width: 982px;
                height: 636px;
                object-fit: cover;
                flex-shrink: 0;
                @media screen and (max-width: 767px) {
                    width: 340px;
                    height: 460px;
                }
            }
        }
    }
    .sub__title {
        max-width: 1100px;
        margin: 0 auto 50px;
        padding-left: 42px;
        font-size: clamp(3.8rem, calc(2.8rem / 1440px * 100vw), 4.8rem);
        font-weight: 300;
        line-height: 180%;
        letter-spacing: 0.96px;
        @media screen and (max-width: 767px) {
            font-size: 2.8rem;
            font-weight: 300;
            line-height: 180%;
            letter-spacing: 0.56px;
            margin-bottom: 30px;
            padding: 0 24px;
        }
        .char {
            display: inline-block;
            white-space: pre;
        }
    }
    .lead__text {
        font-size: 1.6rem;
        max-width: 1100px;
        margin: 0 auto 25px;
        padding-left: 42px;
        font-weight: 400;
        line-height: 240%;
        letter-spacing: 0.32px;
        color: #3B3A3A;
        &:last-child {
            margin-bottom: 0;
        }
        @media screen and (max-width: 767px) {
            font-size: 1.5rem;
            font-weight: 400;
            line-height: 220%;
            letter-spacing: 0.3px;
            margin: 0 0 30px;
            padding: 0 24px;
        }
    }
}
@keyframes unfoldH {
    0%   { transform: rotateY(-90deg) translateY(0px); opacity: 0; }
    100% { transform: rotateY(0deg)   translateY(0px);  opacity: 1; }
}

/* =================================================================
   レカルカの事業
   ================================================================= */
.business__area {
    max-width: 1100px;
    margin: 0 auto 220px;
    position: relative;
    @media screen and (max-width: 1200px) {
        padding: 0 10px;
    }
    @media screen and (max-width: 767px) {
        margin-bottom: 140px;
        padding: 0 20px;
    }
    .btn-style.target-animation {
        margin-bottom: 25px;
    }
    .business__lists {
        li {
            border-top: 1px solid #3B3A3A;
            margin-bottom: 100px;
            padding-top: 15px;
            /* position: sticky; */
            top: 100px;
            background-color: #EDECEB;
            @media screen and (max-width: 767px) {
                padding-top: 12px;
            }
            &:last-child {
                margin-bottom: 0;
            }
            .business__cat {
                font-family: 'League Spartan', sans-serif;
                font-size: 1.2rem;
                font-weight: 400;
                line-height: 100%;
                letter-spacing: 0.96px;
                color: #969696;
                margin-bottom: 40px;
                @media screen and (max-width: 767px) {
                    margin-bottom: 10px;
                    padding-left: 9px;
                }
            }
            .business__content {
                display: flex;
                gap: 60px;
                @media screen and (max-width: 767px) {
                    flex-direction: column;
                    gap: 20px;
                    padding: 0 5px;
                }
                .business__content__image {
                   max-width: 550px;
                   @media screen and (max-width: 767px) {
                    max-width: 100%;
                }
                   img {
                    border-radius: 10px;
                   }
                }
                .business__content__text {
                    padding: 10px 34px 0 0;
                    max-width: 490px;
                    @media screen and (max-width: 767px) {
                        padding: 0;
                    }
                    h3 {
                        font-size: 2.8rem;
                        font-weight: 400;
                        line-height: 150%;
                        letter-spacing: 0.56px;
                        margin-bottom: 40px;
                        @media screen and (max-width: 767px) {
                            font-size: 2rem;
                            letter-spacing: 0.4px;
                            margin-bottom: 15px;
                        }
                    }
                    p {
                        color: #3B3A3A;
                        font-size: 1.5rem;
                        font-weight: 400;
                        line-height: 200%;
                        letter-spacing: 0.3px;
                        margin-bottom: 30px;
                        @media screen and (max-width: 767px) {
                            font-size: 1.4rem;
                            letter-spacing: 0.28px;
                        }
                    }
                    .btn-style {
                        position: static;
                    }
                }
            }
        }
    }
    .btn-style {
        position: absolute;
        top: 11px;
        right: 0;
        @media screen and (max-width: 1200px) {
            right: 10px;
        }
        @media screen and (max-width: 767px) {
            position: static;
        }
    }
}
  
/* =================================================================
   ブランド紹介
   ================================================================= */
.brands__area {
    max-width: 1100px;
    margin: 0 auto 120px;
    position: relative;
    @media screen and (max-width: 1200px) {
        padding: 0 10px;
    }
    @media screen and (max-width: 767px) {
        padding: 0 20px;
    }
    .brands__lead {
        font-size: 1.5rem;
        font-weight: 400;
        line-height: 180%;
        letter-spacing: 0.3px;
        margin-bottom: 50px;
        color: #3B3A3A;
        @media screen and (max-width: 767px) {
            font-size: 14px;
            font-weight: 400;
            line-height: 180%;
            letter-spacing: 0.28px;
            margin-bottom: 40px;
        }
    }
    .brands__contents {
        display: flex;
        gap: 96px;
        @media screen and (max-width: 767px) {
            flex-direction: column;
            gap: 60px;
            margin-bottom: 60px;
        }
        .brands__contents-lekarka {
            max-width: 648px;
            @media screen and (max-width: 767px) {
                max-width: 100%;
                padding: 0 10px;
            }
        }
        .brands__contents-drex {
            max-width: 306px;
            padding-top: 160px;
            @media screen and (max-width: 767px) {
                max-width: 100%;
                padding: 0 10px;
            }
            .brands__contents__text {
                max-width: 94%;
                @media screen and (max-width: 767px) {
                    max-width: 100%;
                }
            }
        }
        .brands__contents__image {
            margin-bottom: 30px;
            img {
                border-radius: 20px;
                @media screen and (max-width: 767px) {
                    border-radius: 10px;
                }
            }
        }
        .brands__contents__title {
            font-size: 2.6rem;
            font-weight: 500;
            line-height: 100%;
            letter-spacing: 0.52px;
            margin-bottom: 20px;
        }
        .brands__contents__text {
            font-size: 1.5rem;
            font-weight: 400;
            line-height: 170%;
            letter-spacing: 0.3px;
            color: #3B3A3A;
        }
    }
    .btn-style {
        position: absolute;
        top: 85px;
        right: 0;
        @media screen and (max-width: 1200px) {
            right: 10px;
        }
        @media screen and (max-width: 1000px) {
            position: static;
        }
    }
}


/* ============================================================
   レカルカのものづくり
   ============================================================ */
.development__area{
    background-image: url(../images/index/bg-development-pc.webp);
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    color: #fff;
    margin-bottom: 120px;
    padding: 120px 0;
    @media screen and (max-width: 1200px) {
        padding: 120px 10px;
    }
    @media screen and (max-width: 767px) {
        background-image: url(../images/index/bg-development-sp.webp);
        padding: 80px 20px 50px;
    }
    .development__inner {
        max-width: 1100px;
        margin: 0 auto;
        .section__title-style {
            @media screen and (max-width: 767px) {
                display: block;
            }
            span {
                @media screen and (max-width: 767px) {
                    display: block;
                    margin-top: 15px;
                }
            }
        }
        .development__lead__wrapper {
            position: relative;
            .development__lead {
                font-size: 15px;
                font-weight: 400;
                line-height: 180%;
                letter-spacing: 0.3px;
                margin-bottom: 38px;
                position: relative;
                @media screen and (max-width: 767px) {
                    margin-bottom: 50px;
                    width: 80%;
                }
            }
            .btn-style {
                position: absolute;
                right: 0;
                bottom: 3px;
                @media screen and (max-width: 767px) {
                    position: static;
                    margin-bottom: 100px;
                }
            }
        }
    }
    
    .slider-mask {
        position: relative;
        max-width: 998px;
        margin: 0 auto;
        @media screen and (max-width: 767px) {
            margin-right: -20px;
        }
    }
} 

/* ============================================================
会社概要
============================================================ */
.about__area {
    max-width: 1068px;
    margin: 0 auto 120px;
    @media screen and (max-width: 1200px) {
        padding: 0 10px;
    }
    @media screen and (max-width: 767px) {
        max-width: 100%;
        margin-bottom: 100px;
        padding: 0 20px;
    }
    .about__contents {
        display: flex;
        gap: 13%;
        @media screen and (max-width: 767px) {
            display: block;
        }
        .about__contents__text {
            max-width: 528px;
            width: 100%;
            @media screen and (max-width: 767px) {
                max-width: 100%;
            }
            .about__lead {
                font-size: 1.5rem;
                font-style: normal;
                font-weight: 400;
                line-height: 180%;
                letter-spacing: 0.3px;
                margin-bottom: 80px;
                @media screen and (max-width: 767px) {
                    font-size: 1.4rem;
                    letter-spacing: 0.28px;
                    margin-bottom: 40px;
                }
            }
            .about__lists {
                li {
                    &:first-child {
                        a {
                            border-top: 1px solid #989898;
                        }
                    }
                    a {
                        display: block;
                        border-bottom: 1px solid #989898;
                        padding: 26px 55px 26px 20px;
                        position: relative;
                        font-size: 1.8rem;
                        font-weight: 500;
                        line-height: 100%;
                        letter-spacing: 0.36px;
                        @media screen and (max-width: 767px) {
                            padding: 26px 60px 24px 24px;
                            background-repeat: no-repeat;
                            background-size: 112px auto;
                            background-position: center right 8px;
                        }
                        &::before {
                            content: '';
                            width: 40px;
                            height: 40px;
                            border-radius: 6px;
                            position: absolute;
                            top: 50%;
                            right: 12px;
                            transform: translateY(-50%);
                            background-color: #110101;
                            @media screen and (max-width: 767px) {
                                width: 28px;
                                height: 28px;
                                right: 24px;
                            }
                        }
                        &::after {
                            content: '';
                            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M14.1001 17L13.1866 16.0409L16.4966 12.6633H6V11.3367H16.4966L13.1866 7.9591L14.1001 7L19 12L14.1001 17Z' fill='%23FFFFFF'/%3E%3C/svg%3E");
                            background-repeat: no-repeat;
                            background-size: 24px;
                            background-position: top left;
                            width: 24px;
                            height: 24px;
                            position: absolute;
                            top: 50%;
                            right: 8px;
                            transform: translate(-50%, -50%);
                            @media screen and (max-width: 767px) {
                                right: 14px;
                            }
                        }
                        @media screen and (min-width: 768px) {
                            &:hover {
                                opacity: 1;
                                &::before {
                                    background-color: #C52626;
                                }
                            }
                        }
                    }
                }
            }
        }
        .about__contents__image {
            width: 100%;
            ul {
                position: relative;
                width: 100%;
                min-height: 546px;
                margin: 0;
                padding: 0;
                list-style: none;
                overflow: hidden;
                li {
                    position: absolute;
                    top: 0;
                    left: 0;
                    width: 100%;
                    height: 100%;
                    opacity: 0;
                    visibility: hidden;
                    transform: translateX(-30px);
                    pointer-events: none; 
                    transition: none;
                    &.is-active {
                        opacity: 1;
                        visibility: visible;
                        transform: translateX(0);
                        pointer-events: auto;
                        transition: opacity 0.8s ease-out, visibility 0.5s ease-out, transform 0.5s ease-out;
                    }
                    img {
                        border-radius: 10px;
                        width: 100%;
                        height: 100%;
                        object-fit: cover;
                        display: block;
                    }
                }
            }
            
            @media screen and (max-width: 767px) {
                display: none;
            }
        }
    }
}

/* ============================================================
採用情報
============================================================ */
.recruit__area{
    background-color: #fff;
    border-radius: 40px;
    max-width: 1408px;
    margin: 0 auto 120px;
    padding: 100px 104px;
    position: relative;
    @media screen and (max-width: 1200px) {
        padding: 100px 7.5%;
    }
    @media screen and (max-width: 767px) {
        border-radius: 20px;
        width: calc(100% - 20px);
        margin: 0 10px 100px;
        padding: 50px 26px 60px;
    }
    .recruit__lead {
        max-width: 672px;
        font-size: 15px;
        font-weight: 400;
        line-height: 180%;
        letter-spacing: 0.3px;
        margin: 0 250px 38px 0;
        position: relative;
        @media screen and (max-width: 767px) {
            font-size: 1.4rem;
            margin: 0 0 50px;
        }
    }
    .btn-style {
        position: absolute;
        top: 185px;
        right: 104px;
        @media screen and (max-width: 767px) {
            position: static;
        }
    }

    
    .slider-mask {
        position: relative;
        max-width: 1200px;
        margin: 0 auto;
        @media screen and (max-width: 767px) {
            margin: 0 -26px 95px 0;
        }
        #swiper-recruit {
            overflow-x: clip;
            overflow-y: visible;
            @media screen and (min-width: 768px) {
                margin-bottom: 60px;
            }
            .slide-img {
                border-radius: 10px;
                overflow: hidden;
              }
              .swiper-slide {
                display: block;
                position: relative;
                @media screen and (min-width: 768px) {
                    max-width: 286px!important;
                    margin-right: 30px!important;
                }
              }
              .slide-img {
                width: 100%;
              }
              .slide-img img {
                width: 100%;
                height: auto;
                object-fit: cover;
                object-position: center;
                aspect-ratio: 286 / 418;
              }
              .slide-text {
                position: absolute;
                bottom: -25px;
                right: -15px;
                background-color: #fff;
                border-radius: 10px;
                padding: 15px 20px 16px;
                max-width: 260px;
                box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.10);
                @media screen and (max-width: 767px) {
                    max-width: 208px;
                    padding: 12px;
                }
              }
              
              .slide-caption {
                font-size: 1.6rem;
                font-weight: 500;
                line-height: 170%;
                letter-spacing: 0.32px;
                display: -webkit-box;
                -webkit-line-clamp: 3;
                -webkit-box-orient: vertical;
                overflow: hidden;
                text-overflow: ellipsis;
                margin-bottom: 15px;
                @media screen and (max-width: 767px) {
                    font-size: 1.5rem;
                }
              }
              .slide-author {
                font-size: 1.4rem;
                font-style: normal;
                font-weight: 400;
                line-height: 100%;
                letter-spacing: 0.28px;
                @media screen and (max-width: 767px) {
                    font-size: 1.2rem;
                }
              }
        }
        .swiper-pagination {
            bottom: 35px;
            @media screen and (max-width: 767px) {
                bottom: -60px;
            }
        }
        .swiper-pagination-bullet {
            background: #BFBFBF;
            width: 6px;
            height: 6px;
            opacity: 1;
        }
        .swiper-pagination-bullet-active {
            background: #C52626;
        }
        
        .slide__button {
            display: flex;
            gap: 16px;
        }
        .nav-btn {
            width: 42px;
            height: 42px;
            border-radius: 50%;
            background: #fff;
            color: #110101;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            padding: 0;
            transition: background 0.2s;
            border: 1px solid #3B3A3A;
            &::before {
                content: '';
                display: block;
                width: 9px;
                height: 9px;
                border-top: 2px solid #110101;
                border-right: 2px solid #110101;
            }
            &.prev::before {
                transform: rotate(-135deg) translate(-1px, 1px);
            }
            &.next::before {
                transform: rotate(45deg) translate(-1px, 1px);
            }
            @media screen and (min-width: 768px) {
                &:hover {
                    opacity: 0.6;
                }
            }    
          
            @media screen and (max-width: 768px) {
                display: none;
            }
        }
    }
} 
  
/* ============================================================
お知らせ
============================================================ */
.news__area {
    max-width: 1100px;
    margin: 0 auto 120px;
    position: relative;
    display: flex;
    justify-content: space-between;
    @media screen and (max-width: 1200px) {
        padding: 0 10px;
    }
    @media screen and (max-width: 1000px) {
        display: block;
    }
    @media screen and (max-width: 767px) {
        padding: 0 20px;
    }
    .news__lists {
        max-width: 704px;
        width: 100%;
        @media screen and (max-width: 1000px) {
            max-width: 100%;
            margin-bottom: 50px;
        }
        li {
            &:first-child a {
                border-top: 1px solid #C7C7C7;
            }
            a {
                display: flex;
                gap: 78px;
                align-items: center;
                padding: 36px 0;
                border-bottom: 1px solid #C7C7C7;
                position: relative;
                @media screen and (max-width: 767px) {
                    gap: 16px;
                    padding: 25px 0;
                    align-items: start;
                }
                time {
                    color: #969696;
                    font-family: 'League Spartan', sans-serif;
                    font-size: 1.5rem;
                    font-weight: 400;
                    line-height: 100%;
                    letter-spacing: 0.3px;
                    @media screen and (max-width: 767px) {
                        font-size: 1.4rem;
                        letter-spacing: 0.28px;
                        line-height: 150%;
                    }
                }
                h3 {
                    font-size: 1.5rem;
                    font-weight: 400;
                    line-height: 150%;
                    letter-spacing: 0.3px;
                    padding-right: 30px;
                    @media screen and (max-width: 767px) {
                        padding: 0;
                        font-size: 1.4rem;
                        letter-spacing: 0.28px;
                    }
                }
                &::after {
                    content: '';
                    display: block;
                    width: 10px;
                    height: 10px;
                    border-top: 1px solid #3B3A3A;
                    border-right: 1px solid #3B3A3A;
                    transform: rotate(45deg) translateY(-50%);
                    position: absolute;
                    top: 50%;
                    right: 19px;
                    @media screen and (max-width: 767px) {
                        display: none;
                    }
                }
            }
        }
    }
    .btn-style {
        position: absolute;
        top: 70px;
        left: 0;
        @media screen and (max-width: 1200px) {
            left: 10px;
        }
        @media screen and (max-width: 1000px) {
            position: static;
        }
    }
}