@charset "UTF-8";
/**********************
- ROOT
- BASE
- GENERAL
  -- FONT
  -- ALIGN
  -- FLEX
  -- LIST
  -- OTHER
- HEADER
- BREADCRUMB
- CONTAINER
- HEADING
- BUTTON
- FOOTER
- ARCHIVE
- SINGLE
- CONTACT
- FRONT
- PAGE PARTS
- LOADING
- COLOR
- MARGIN
- ANIMATION
- RESPONSIVE
***********************/

/**********************
* ブレイクポイント
* 560px/960px
**********************/


/*********************
ROOT
**********************/
:root {
    --base: #FAF7EE;
    --bg-1: #EBF1DF;
    --bg-2: #FEFBE5;
    --text-main: #5E5950;
    --bg-image: url(../../assets/image/common/texture.webp);


    --accent-color-1: #7CB180;
    --accent-color-2: #F0B43D;
    --gradient: linear-gradient(70deg, #5DC5F7, #FA966B);

    --font-jp: "fot-tsukubrdgothic-std", sans-serif;
    --font-en: "Bellefair", serif;
    --font-number: "Amiri", serif;
    --light: 300;
    --normal: 400;
    --bold: 700;

    --container: calc(1920px + 6%);
    --container-side: 3%;
    --container-ll: 1600px;
    --container-l: 1200px;
    --container-m: 960px;
    --container-s: 660px;
    --container-ss: 480px;

    --letter-spacing-en: .08em;
    --letter-spacing-nomal: .1em;
    --letter-spacing-wide: .24em;

}

/**********
fv
**********/
.fv {
    height: 100vh;
    position: relative;
}

.fv::before {
    position: absolute;
    content: "";
    top: 0;
    left: 0;
    width: 41.6%;
    height: 100%;
    background-image: var(--bg-image);
    background-repeat: repeat;
    background-color: var(--bg-1);
}

.fv .slider {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 0;
    width: 81.25%;
    height: calc(100vh - 200px);
}

.fv .slick-list,
.fv .slick-list * {
    width: 100%;
    height: 100%
}

.slick-list img {
    object-fit: cover;
    object-position: center center;
}

.dots-wrap {
    display: flex;
    justify-content: end;
    margin-right: 3vw;
    margin-top: 3rem;
    gap: 2.4rem;
}

.dots-wrap li {
    width: 12px;
    height: 12px;
    margin: 0 5px;
    border: 1px solid var(--accent-color-1);
    border-radius: 50%;
    cursor: pointer;
    transition: all ease .3s;
}

.dots-wrap li:hover,
.dots-wrap li.slick-active {
    background: var(--accent-color-1);
}

.dots-wrap li button {
    display: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    outline: none;
    padding: 0;
    border: none;
    background-color: transparent;
}

.fv .container,
.fv .container-ll {
    height: 100%;
}

.fv .container-ll {
    position: relative;
}

.fv .catchcopy {
    position: absolute;
    bottom: 20%;
    left: 0;
    color: var(--accent-color-1);
    z-index: 2;
}

.fv .catchcopy::before {
    position: absolute;
    content: "";
    top: 50%;
    left: 36%;
    transform: translate(-50%, -50%);
    width: 132%;
    height: auto;
    aspect-ratio: 1/1;
    background-image: url(../../assets/image/common/accent01.webp);
    background-size: cover;
    z-index: -1;
}

.fv .catchcopy h2 {
    font-size: clamp(3.2rem, 2.5vw, 4.8rem);
    letter-spacing: var(--letter-spacing-wide);
    line-height: 2em;
    font-weight: var(--bold);
}

.fv .catchcopy p {
    font-family: var(--font-en);
    font-size: clamp(2rem, 1.4vw, 2.6rem);
    line-height: 1.5em;
    letter-spacing: .08em;
    padding-top: 4rem;
}

@media screen and (max-width: 960px) {
    .fv .slider {
        top: auto;
        bottom: 8vh;
        transform: translateY(0%);
        width: 100%;
        height: 72vh;
    }

    .fv::before {
        display: none;
    }

    .fv .catchcopy {
        bottom: auto;
        top: 14vh;
    }

    .fv .catchcopy h2 {
        font-size: clamp(2rem, 5.4vw, 3.2rem);
    }

    .fv .catchcopy p {
        font-size: clamp(1rem, 3.1vw, 2rem);
        padding-top: 1.6rem;
    }

    .dots-wrap {
        margin-top: 2rem;
        gap: 1.2rem;
    }

    .dots-wrap li {
        width: 8px;
        height: 8px;
    }
}

/**********
philosophy
**********/
#philosophy .container-l {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

#philosophy .image-wrap {
    position: relative;
    width: 46.66%;
    height: auto;
    aspect-ratio: 560/705;
}

#philosophy .image-wrap .philosophy01 {
    position: absolute;
    top: 0;
    left: 0;
    width: 71.42%;
    height: auto;
}

#philosophy .image-wrap .philosophy02 {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 46.42%;
    height: auto;
}

#philosophy .text {
    width: 48.33%;
    position: relative;
    z-index: 1;
}

#philosophy .text::before {
    position: absolute;
    content: "";
    background-image: url(../../assets/image/common/accent02.webp);
    background-size: cover;
    top: 0;
    right: 20%;
    transform: translate(50%, -50%);
    width: 103.4%;
    height: auto;
    aspect-ratio: 1/1;
    z-index: -1;
}

#philosophy .text>.read {
    font-size: 1.25em;
    color: var(--accent-color-1);
    padding-top: 6rem;
    font-weight: var(--bold);
}

#philosophy .text>p {
    padding-top: 2rem;
}

#philosophy .text .btn-philosophy {
    margin-top: 8rem;
    text-transform: capitalize;
    font-family: var(--font-en);
    color: var(--accent-color-1);
    font-size: 2.4rem;
    letter-spacing: .04em;
    position: relative;
    width: fit-content;
    margin-left: auto;
    padding-right: 3rem;
    z-index: 1;
}

#philosophy .text .btn-philosophy::before {
    position: absolute;
    content: "";
    background-image: url(../../assets/image/common/accent02.webp);
    background-size: cover;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 160px;
    height: 160px;
    z-index: -1;
    transition: all ease .3s;
}


#philosophy .text .btn-philosophy::after {
    position: absolute;
    content: "";
    top: 50%;
    transform: translateY(-50%);
    right: 0;
    width: 20px;
    height: 10px;
    background-image: url(../../assets/image/common/btn-arrow.png);
    background-size: cover;
}

@media screen and (min-width: 961px) {
    #philosophy .text .btn-philosophy::before {
        opacity: 0;
    }

    #philosophy .text .btn-philosophy:hover::before {
        opacity: 1;
    }
}

@media screen and (max-width: 960px) {

    #philosophy .text {
        margin-top: 6rem;
    }

    #philosophy .text::before {
        top: 20%;
        right: 13%;
        width: 75.4%;
    }

    #philosophy .text .read {
        padding-top: 4rem;
    }

    #philosophy .text>p {
        padding-top: 2rem;
    }

    #philosophy .text .btn-philosophy {
        margin-top: 5rem;
        font-size: 1.8rem;
    }

    #philosophy .text .btn-philosophy::before {
        width: 100px;
        height: 100px;
    }

}

@media screen and (max-width: 768px) {
    #philosophy .container-l {
        display: block;
    }

    #philosophy .image-wrap {
        width: 76.8%;
        max-width: 460px;
        margin: auto;
    }

    #philosophy .text {
        width: 100%;
    }
}

@media screen and (max-width: 560px) {
    #philosophy .text .btn-philosophy {
        margin-right: auto;
    }

    #philosophy .text .btn-philosophy::before {
        width: 100px;
        height: 100px;
        opacity: 1;
    }

    #philosophy .text .btn-philosophy::after {
        width: 12px;
        height: 6px;
    }
}

/************
section#oursalon
************/
section#oursalon {
    position: relative;
    padding-bottom: 12rem;
}

section#oursalon::before {
    position: absolute;
    content: "";
    bottom: 0;
    left: 0;
    width: 100%;
    height: 50%;
    background-image: var(--bg-image),
        linear-gradient(90deg, rgb(235, 241, 223, 1) 20%, rgba(254, 251, 229, 0.5) 50%, rgba(235, 241, 223, 0));
}

.oursalon-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    padding-top: 10rem;
    row-gap: 6rem;
}

.oursalon-item {
    width: 30%;
}

.oursalon-item .image {
    width: 100%;
    height: auto;
    aspect-ratio: 1/1;
}

.oursalon-item h3 {
    font-size: 2.4rem;
    color: var(--accent-color-1);
    font-weight: var(--bold);
    padding-top: 3rem;
}

.oursalon-item h3 span {
    text-transform: capitalize;
}

.oursalon-item .address {
    padding-top: .6rem;
}

.oursalon-item p {
    padding-top: 1.2rem;
}

.oursalon-item .btn {
    margin: 3rem auto 0;
}

@media screen and (max-width: 960px) {
    section#oursalon {
        padding-top: 12rem;
    }

    section#oursalon::before {
        position: absolute;
        content: "";
        bottom: 0;
        left: 0;
        width: 89.86%;
        height: 100%;
    }

    .oursalon-list {
        padding-top: 4rem;
    }

    .oursalon-item {
        width: 45%;
    }
}

@media screen and (max-width: 560px) {
    .oursalon-list {
        gap: 6rem;
        flex-direction: column;
    }

    .oursalon-item {
        width: 100%;
    }

    .oursalon-item h3 {
        font-size: 2rem;
        padding-top: 2rem;
    }
}

/************
section#voices
************/
section#voices ul.voices-list {
    display: flex;
    gap: 4rem;
    padding-top: 6rem;
}

section#voices li.voices-item {
    width: calc((100% - 8rem)/3);
    border-radius: 4rem;
    background-color: #fff;
    padding: 2em 1.25em;
}

section#voices li.voices-item .profile {
    display: flex;
    align-items: center;
    color: var(--accent-color-1);
    line-height: 1.5em;
    padding: .5em 0;
    border-top: 1px solid var(--accent-color-1);
    border-bottom: 1px solid var(--accent-color-1);
}

section#voices li.voices-item .profile .number {
    font-family: var(--font-number);
    font-size: 2em;
    padding-right: 1rem;
    border-right: 1px solid var(--accent-color-1);
}

section#voices li.voices-item .profile .name {
    flex: 1;
    font-size: 1.25em;
    padding-left: 1.4rem;
}

section#voices li.voices-item .image-wrap {
    display: flex;
    justify-content: center;
    gap: .5em 3%;
    max-width: 360px;
    margin: 1rem auto 0;
}

section#voices li.voices-item .image-wrap.column {
    flex-direction: column;
    max-width: 240px;
}

section#voices li.voices-item .image-wrap .image {
    position: relative;
}

section#voices li.voices-item .image-wrap .image::after {
    position: absolute;
    bottom: 0;
    left: 0;
    text-transform: capitalize;
    color: #fff;
    background-color: var(--accent-color-1);
    padding: 0 8px;
}

section#voices li.voices-item .image-wrap .image:nth-child(1)::after {
    content: "before";
}

section#voices li.voices-item .image-wrap .image:nth-child(2)::after {
    content: "after";
}

section#voices li.voices-item p {
    padding-top: 1.4em;
}

section#voices li.voices-item p span {
    background-color: rgb(255 230 0 / 24%);
}

@media screen and (max-width: 960px) {
    section#voices ul.voices-list {
        flex-direction: column;
        gap: 2rem;
        padding-top: 4rem;
    }

    section#voices li.voices-item {
        width: 100%;
        border-radius: 2rem;
        margin: 0 1rem;
    }

    .voices-slider {
        position: relative;
    }

    .slick-prev,
    .slick-next {
        position: absolute;
        top: 50%;
        z-index: 10;
        cursor: pointer;
        border: none;
        background: transparent;
        outline: none;
        width: 24px;
        height: 24px;
    }

    .slick-prev::before,
    .slick-next::before {
        content: '';
        display: block;
        width: 20px;
        height: 20px;
        border-top: 2px solid var(--accent-color-1);
        border-right: 2px solid var(--accent-color-1);
    }

    .slick-prev {
        left: 10px;
        transform: translate(-50%, -50%);
    }

    .slick-prev::before {
        transform: rotate(-135deg);
    }

    .slick-next {
        right: 10px;
        transform: translate(50%, -50%);
    }

    .slick-next::before {
        transform: rotate(45deg);
    }
}

/************
section#btn-wrap
************/
section#btn-wrap ul.btn-wrap {
    display: flex;
    justify-content: space-between;
}

section#btn-wrap li.btn-item {
    width: 48.3%;
    aspect-ratio: 580/387;
    border-radius: 30px;
    overflow: hidden;
    position: relative;
}

section#btn-wrap li.btn-item a {
    display: inline-block;
    width: 100%;
    height: 100%;
    transition: all ease .5s;
    opacity: 1;
}

section#btn-wrap li.btn-item:nth-child(1) a {
    background: linear-gradient(45deg, rgba(235, 241, 223, .3) 0%, rgba(235, 241, 223, .3) 100%), url(../../assets/image/top/btn-company.webp);
    background-size: cover;
}

section#btn-wrap li.btn-item:nth-child(2) a {
    background: linear-gradient(45deg, rgba(235, 241, 223, .3) 0%, rgba(235, 241, 223, .3) 100%), url(../../assets/image/top/btn-contact.webp);
    background-size: cover;
}

section#btn-wrap li.btn-item .guide {
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: absolute;
    bottom: 0;
    right: 0;
    border-radius: 30px 0 30px 0;
    padding: 2rem 3rem;
    background-color: var(--base);
}

section#btn-wrap li.btn-item .guide img {
    vertical-align: middle;
}

section#btn-wrap li.btn-item .guide::before {
    position: absolute;
    content: "";
    width: 30px;
    height: 30px;
    background-image: url(../../assets/image/common/corner.png);
    top: -30px;
    right: 0;
}

section#btn-wrap li.btn-item .guide::after {
    position: absolute;
    content: "";
    width: 30px;
    height: 30px;
    background-image: url(../../assets/image/common/corner.png);
    bottom: 0;
    left: -30px;
}

section#btn-wrap li.btn-item .arrow {
    width: 81px;
    height: 6px;
}

section#btn-wrap li.btn-item .guide .text {
    color: var(--accent-color-1);
    margin-right: 4rem;
    white-space: nowrap;
    line-height: 1.75em;
}

section#btn-wrap li.btn-item .guide .text span {
    font-family: var(--font-en);
    text-transform: capitalize;
    font-size: 3.2rem;
}

@media only screen and (min-width: 961px) {
    section#btn-wrap li.btn-item a:hover {
        transform: scale(1.05);
    }
}

@media screen and (max-width: 960px) {
    section#btn-wrap li.btn-item .guide {
        border-radius: 30px 0 30px 0;
        padding: 1.2rem 2rem;
    }

    section#btn-wrap li.btn-item .guide .text {
        margin-right: 1rem;
        line-height: 1.5em;
        font-size: 1.2rem;
    }

    section#btn-wrap li.btn-item .guide .text span {
        font-size: 2rem;
    }

    section#btn-wrap li.btn-item .arrow {
        width: 50px;
        height: 4px;
    }
}

@media screen and (max-width: 560px) {
    section#btn-wrap ul.btn-wrap {
        flex-direction: column;
        gap: 4rem;
    }

    section#btn-wrap li.btn-item {
        width: 100%;
    }
}