/*######################################################################
共通設定
######################################################################*/

:root {
    --width__main-content: min(100%, 1000px);
    --color__p: #464646;
}

/* コンテンツ全体の調整 */
body {
    width: min(100%, 1440px);
    margin-inline: auto;
    color: var(--color__p);
    font-size: clamp(0.75rem, 0.464rem + 0.595vw, 1rem);
    
    /* font: noto sans jp */
    font-family: "Noto Sans JP", serif;
    font-optical-sizing: auto;
    font-weight: 500;
    font-style: normal;

    /* font: noto serif jp */
    /* font-family: "Noto Serif JP", serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal; */

    /* 全角ゴシック */
    /* font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 700;
    font-style: normal; */

    &.page {
        margin: 0 auto;
    }
}

h1,
p,
figure {
    margin: 0;
}


/* imgタグの調整 */
img {
    vertical-align: top;
    width: 100%;
}

/* SPでのみ表示 */
.sp {
    display: none;
}

/* SPでのみ折り返し */
.br__sp {
    display: none;
}

/*------------------------------------------------------------
スクロールアニメーション
------------------------------------------------------------*/

/* 即時フェードイン */
.fadein {
    opacity: 0;
    animation: fadein 1s ease-in forwards;
}

@keyframes fadein {
    from {
        opacity: 0.1;
    }
    to {
        opacity: 1;
    }
}

/* スクロールフェードイン */
.scroll-in {
    opacity: 0;
    transform: translate(0, 0);
    transition: opacity 1.5s ease, transform 1.5s ease; /* スムーズなアニメーション */
}

/* フェードインの方向指定 */
.scroll-in--left {
    transform: translate(-30px, 0);
}

.scroll-in--right {
    transform: translate(30px, 0);
}

.scroll-in--bottom {
    transform: translate(0, 30px);
}

/* 表示時のスタイル */
.scroll-in.scroll-in--visible {
    opacity: 1;
    transform: translate(0, 0);
}

/*######################################################################
コンテンツ

    clamp: 記述なし = 320-768 768-1440
######################################################################*/

/*------------------------------------------------------------
header
------------------------------------------------------------*/

.header__content {
    width: min(90%, 1200px);
    margin-inline: auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.75% 0;
}

.logo {
    width: 20%;
}

.header__sns {
    display: flex;
    justify-content: right;
    align-items: center;
    gap: 10%;
}

.icon__sns {
    width: 26%;
}

/*------------------------------------------------------------
cta
------------------------------------------------------------*/

.cta {
    padding: 6% 0 6%;
    display: grid;
    place-items: center;
}

.cta__content {
    width: 41%;
    position: relative;
}

.cta__btn {
    position: absolute;
    bottom: -2%;
}

/* menu上のcta */
.cta__menu__top {
    margin-bottom: -77%;
    padding-top: 6%;
    position: relative;
    z-index: 1;
}

/*------------------------------------------------------------
menu
------------------------------------------------------------*/

.menu {
    position: relative;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 700;
    font-size: 1.5rem;
    font-size: clamp(0.875rem, 0.161rem + 1.488vw, 1.5rem);
    color: #E482A1;
}

.menu__content {
    position: absolute;
    top: 53%;
    left: 50%;
    width: 43%;
    height: 36%;
    translate: -50%;
    /* background-color: red; */
    /* opacity: 0.1; */
}

.menu__content__inner {
    position: relative;
    width: 100%;
    height: 100%;
}

.menu__item {
    position: absolute;
    left: 0;
    right: 0;
    margin-inline: auto;
}

.menu-1 {
    top: 3.8%;
}

.menu-2 {
    top: 34%;
}

.menu-3 {
    top: 62%;
}

.menu-4 {
    top: 81%;
}

.menu-5 {
    top: 97.5%;
}

.menu-1,
.menu-4,
.menu-5 {
    text-align: center;
}

.menu__name,
.menu__note {
    color: var(--color__p);
}

.menu__item__subtitle,
.menu__note {

    &::before {
        content: "（";
        margin-right: -0.25em;
    }
    
    &::after {
        content: "）";
        margin-left: -0.25em;
    }
}

.menu__item__list,
.menu__item__list--outer {
    margin-top: 0.375em;
}

.menu__note {
    font-size: 0.8em;
}

/*------------------------------------------------------------
charm
------------------------------------------------------------*/

.charm {
    margin: 8% 0 -16%;
}

/*------------------------------------------------------------
voice
------------------------------------------------------------*/

.voice {
    width: 64%;
    margin: -6% auto 0;
}

/*------------------------------------------------------------
message
------------------------------------------------------------*/

.message {
    width: 69%;
    margin-inline: auto;
}
/*------------------------------------------------------------
google map
------------------------------------------------------------*/

.google-map {
    width: 55%;
    aspect-ratio: 2 / 1;
    margin-inline: auto;

    iframe {
        width: 100%;
        height: 100%;
    }
}

/*------------------------------------------------------------
info
------------------------------------------------------------*/

.info {
    background: linear-gradient(15.2deg, #FFE5F0 39.59%, #FFF2F2 90.47%);;
    padding: 6% 0;
    display: grid;
    place-items: center;
}

.info__content {
    display: flex;
    justify-content: left;
    align-items: center;
    gap: 4%;
    width: 66%;
}

.info__image {
    width: 56%;
}

.info__logo {
    width: 55%;
}

.info__list {
    margin-top: 8%;

    th {
        text-align: left;
        font-size: 1.125em;
        width: 5em;
    }

    th,
    td {
        padding-bottom: 1em;
    }
}

.small {
    font-size: 0.875em;
}

/*------------------------------------------------------------
footer
------------------------------------------------------------*/

.footer {
    padding: 1.5em 0;
    background-color: #E482A1;
    color: #ffffff;
}

.copyright__p {
    text-align: center;
}

.follow__btn {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    display: none;
    justify-content: center;
    align-items: center;
    gap: 3%;
    background-color: rgba(255, 255, 255, 0.9);
    padding: 5% 0;
}

.btn__follow {
    width: 45%;
}

/*######################################################################
responsive
######################################################################*/

@media (max-width: 767px) {
    /* SPでのみ表示 */
    /* SPでのみ改行 */
    .sp,
    .br__sp {
        display: block;
    }

    /* PCでのみ表示 */
    /* PCでのみ改行 */
    .pc,
    .br__pc {
        display: none;
    }

    /* header */
    .logo {
        width: 53%
    }

    .icon__sns {
        width: clamp(2.5rem, 1.964rem + 2.679vw, 3.25rem);
    }

    /* body */
    body {
        font-size: clamp(0.688rem, -0.071rem + 3.795vw, 1.75rem);
    }

    /* fv */
    .fv {
        margin-bottom: -6%;
    }

    /* cta */
    .cta {
        padding-bottom: 14%
    }

    .cta__content {
        width: 77%;
    }

    /* menu上のcta */
    .cta__menu__top {
        margin-bottom: -8%;
        padding-top: 0;
        padding-bottom: 0;
    }

    /* menu */
    .menu {
        font-size: 1em;
    }

    .menu__content {
        top: 39%;
        width: 84%;
        height: 45%;
    }

    .menu-2 {
        top: 35%;
    }

    .menu-3 {
        top: 61.5%;
    }

    .menu-4 {
        top: 81.2%;
    }

    .menu-5 {
        top: 97%;
    }

    /* charm */
    .charm {
        margin: 0 0 -16%;
    }

    /* voice */
    .voice {
        width: 100%;
        margin-top: -12% ;
    }

    /* flow */
    .flow {
        margin-top: -53%;
    }

    /* message */
    .message {
        width: 100%;
    }

    /* google map */
    .google-map {
        width: 88%;
    }

    /* info */
    .info {
        margin-bottom: 4%;
    }
    .info__content {
        flex-direction: column;
        width: 77%;
    }

    .info__image {
        width: 69%;
    }

    .info__content--right {
        width: 100%;
    }

    .info__logo {
        width: 72%;
        margin-inline: auto;
    }

    .info__list {
        margin-top: 5%;

        th,
        td {
            display: block;
            width: 100%;
            padding-bottom: 0;
        }

        td {
            padding-bottom: 1em;
        }
    }
}
