/*----------------------------------------------------------------------------------

トップページ

----------------------------------------------------------------------------------*/

/*------------------------
    メインビジュアル
-------------------------*/

#mainvisual .main-img {
    height: 100%;
    object-fit: cover;
    border-radius: var(--border-radius-xl);
}

@media screen and (max-width: 767px) {
    #mainvisual {
        aspect-ratio: 3/2;
    }
}

@media screen and (min-width: 1024px) {
    #mainvisual {
        height: calc(100vh - 160px);
    }
}

/*------------------------
    私たちについて
-------------------------*/

#about {
    position: relative;
}

#about .pt1 {
    width: 28%;
    top: 10%;
    left: -30px;
    animation: float 3s ease-in-out infinite;
}

#about .pt2 {
    width: 22%;
    bottom: 2%;
    right: 4%;
    animation: float 5s ease-in-out infinite;
}

@media screen and (min-width: 768px) {
    #about .pt1 {
        width: 20%;
        top: 25%;
        left: -20px;
    }

    #about .pt2 {
        width: 14%;
        bottom: 6%;
        right: 2%;
    }
}

/*------------------------
    お知らせ
-------------------------*/

#news .container {
    padding: var(--spacing-xl) var(--spacing-md);
    border-radius: var(--border-radius-2xl) var(--border-radius-lg) var(--border-radius-2xl) var(--border-radius-lg);
    background-color: var(--color-pink-secondary);
}

#news .more-btn {
    margin: 0 auto;
}

@media screen and (min-width: 1024px) {
    #news .container {
        padding: var(--spacing-3xl);
    }
}

/*------------------------
    サービス
-------------------------*/

#service .container {
    padding: var(--spacing-2xl) var(--spacing-lg);
    border-radius: var(--border-radius-2xl);
    background-color: var(--color-white-opacity60);
}

#service .service-list {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-5xl);
}

#service .service-item {
    display: grid;
    gap: var(--spacing-md);
}

#service .service-content {
    order: 1;
}

#service .img {
    overflow: hidden;
    width: 100%;
    position: relative;
    order: 0;
    border-radius: var(--border-radius-xl);
}

#service .img img {
    width: 100%;
    height: auto;
    display: block;
}

#service .img .cover {
    display: block;
    width: 150%;
    height: 150%;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 10;
    background: var(--color-pink-light);
    border-radius: 0 0 100% 0;
    transition: all 1.4s cubic-bezier(0.4, 0, 0.2, 1);
}

#service .img.show .cover {
    left: -140%;
    top: -100%;
}

#service .service-title {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-bold);
    margin-bottom: var(--spacing-sm);
}

body[class*="lang-en"] #service .service-title {
    font-size: var(--font-size-lg-en);
}

#service .service-content .more-btn {
    margin: var(--spacing-xl) auto 0;
}

@media screen and (min-width: 768px) {
    #service .service-list {
        gap: var(--spacing-5xl);
    }

    #service .service-item {
        grid-template-columns: 0.47fr 0.55fr;
        align-items: center;
        gap: var(--spacing-xl);
    }

    #service .service-content {
        order: initial;
    }

    #service .service-content .more-btn {
        margin: var(--spacing-xl) 0 0;
    }

    #service .img {
        order: initial;
    }

    #service .service-item:nth-child(even) {
        direction: rtl;
    }

    #service .service-item:nth-child(even) .service-content {
        direction: ltr;
    }
}

@media screen and (min-width: 1024px) {
    #service .container {
        padding: var(--spacing-5xl) var(--spacing-xl);
    }
}

/*------------------------
    ショップ
-------------------------*/

#shop {
    position: relative;
}

#shop .section-heading {
    margin-bottom: var(--spacing-xl);
}

#shop .container {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-lg);
}

@media screen and (min-width: 768px) {
    #shop .container {
        flex-direction: row;
    }
}

/*------------------------
    インスタグラム
-------------------------*/

#instagram {
    position: relative;
}

#instagram .container {
    display: flex;
    flex-direction: column;
    align-items: center;
    row-gap: var(--spacing-2xl);
}

#instagram .text-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-md);
}

@keyframes swing {

    0%,
    100% {
        transform: rotate(5deg);
    }

    50% {
        transform: rotate(-5deg);
    }
}

#instagram .text-wrapper .img-area {
    width: clamp(85px, 125px, 100%);
    animation: swing 1.5s cubic-bezier(0.25, 0.1, 0.25, 1) infinite;
}

#instagram .text-wrapper .text-area {
    display: flex;
    flex-direction: column;
    align-items: center;
    row-gap: var(--spacing-md);
}

#insta-id {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-xs);
}

#insta-id svg {
    width: 20px;
    height: 20px;
}

#insta-id span {
    font-size: var(--font-size-lg-en-px);
    font-weight: var(--font-weight-bold);
}

#instagram .pt1 {
    width: 32%;
    top: 2%;
    right: -5%;
    animation: float 3s ease-in-out infinite;
}

#instagram .post-wrapper {
    width: 100%;
    background-color: var(--color-white);
    padding: var(--spacing-sm);
    border-radius: var(--border-radius-xl);
}

#instagram .post-wrapper #sbi_images {
    border-radius: var(--border-radius-lg);
    overflow: hidden;
}

#instagram .post-wrapper .sbi_item {
    position: relative !important;
    cursor: pointer;
}

#instagram .post-wrapper .sbi_item::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: var(--color-pink-secondary);
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none
}

#instagram .post-wrapper .sbi_item:hover::after {
    opacity: 0.3;
}

#instagram .post-wrapper .sbi_item:nth-child(n+7) {
    display: none !important;
}

@media screen and (min-width: 768px) {

    #instagram .container {
        flex-direction: row-reverse;
        justify-content: space-between;
        gap: var(--spacing-sm);
    }

    #instagram .pt1 {
        width: 22%;
    }

    #instagram .post-wrapper {
        width: 68%;
        padding: var(--spacing-md);
    }

    #instagram .text-wrapper {
        flex-direction: column;
        row-gap: var(--spacing-xl);
    }

    #instagram .text-wrapper .img-area {
        width: clamp(150px, 15vw, 200px);
    }

    #insta-id {
        gap: var(--spacing-sm);
    }

    #insta-id span {
        font-size: var(--font-size-lg);
    }

    #insta-id svg {
        width: 25px;
        height: 25px;
    }
}

/*------------------------
    アクセス
-------------------------*/

#access .container {
    display: flex;
    flex-direction: column;
    row-gap: var(--spacing-xl);
}

#access .map-wrapper {
    position: relative;
    overflow-y: hidden;
    width: 100%;
    padding-top: 75%;
    border-radius: var(--border-radius-lg);
}

#access .map-wrapper iframe {
    position: absolute;
    top: -150px;
    left: 0;
    width: 100%;
    height: calc(100% + (150px * 2));
}

#access .text-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--spacing-sm);
    row-gap: var(--spacing-lg);
}

@media screen and (min-width: 768px) {
    #access .container {
        align-items: center;
    }

    #access .map-wrapper {
        padding-top: 48%;
    }

    #access .text-wrapper {
        flex-direction: row;
        justify-content: center;
        gap: var(--spacing-lg);
    }

    body[class*="lang-en"] #access .text-wrapper .text-body {
        max-width: 580px;
    }
}

/*------------------------
    お問い合わせ
-------------------------*/

#contact {
    position: relative;
}

#contact .section-heading {
    margin-bottom: var(--spacing-xl);
}

#contact .container {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-lg);
    border-top: 1px solid var(--color-pink-primary);
    padding-top: var(--spacing-xl);
}

#contact .pt1 {
    width: 28%;
    top: 10%;
    left: 5%;
    animation: float 4s ease-in-out infinite;
}

@media screen and (min-width: 768px) {
    #contact .container {
        flex-direction: row;
    }

    #contact .pt1 {
        width: 20%;
        top: 20%;
        left: 10%;
    }
}