/*######################################################################
共通設定
######################################################################*/

:root {
    /* メインコンテンツの最大幅 */
    --width__main-content: min(100%, 1000px);
    /* メインフォントカラー */
    --color__p: #462817;
    /* メインフォント */
    --font__main: var(--font__noto-sans-jp);
    /* フォント種類 */
    --font__noto-sans-jp: "Noto Sans JP", sans-serif;
    --font__noto-serif-jp: "Noto Serif JP", serif;
    --font__shippori-mincho: "Shippori Mincho", serif;
    /* 追加フォント */
    /* --font__x: ; */
}

/* コンテンツ全体の調整 */
body {
    width: min(100%, 1440px);
    margin-inline: auto;
    color: var(--color__p);
    font-size: clamp(0.75rem, 0.464rem + 0.595vw, 1rem);
    
    /* font */
    font-family: var(--font__main);
    font-optical-sizing: auto;
    font-weight: 500;
    font-style: normal;

    &.page {
        margin: 0 auto;
    }
}

h1,
p {
    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
------------------------------------------------------------*/

.site-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: min(90%,1040px);
    margin-inline: auto;
    padding: 1% 0;
}

.name {
    width: 31%;
}

.btn {
    width: 34%;
}

/*------------------------------------------------------------
fv
------------------------------------------------------------*/

.fv {
    margin-bottom: 8%;
}


/*------------------------------------------------------------
cta
------------------------------------------------------------*/

.cta {
    /* width: min(90%, 848px); */
    width: 51%;
    margin-inline: auto;
    margin-bottom: 4%;
    position: relative;
}

.btn__cta {
    position: absolute;
    bottom: 9%;
    left: 0;
    right: 0;
    margin-inline: auto;
    /* width: min(70%, 464px); */
    width: 55%;
}

/*------------------------------------------------------------
worry
------------------------------------------------------------*/

.worry__bottom {
    margin-top: -6%;
    margin-bottom: 4%;
}

/*------------------------------------------------------------
benefit
------------------------------------------------------------*/

.benefit {
    position: relative;
    z-index: 1;
    margin-bottom: -5%;
}

/*------------------------------------------------------------
menu
------------------------------------------------------------*/

.menu {
    margin-top: 1%;
    position: relative;
    font-size: 2em;
    font-size: clamp(1rem, -0.143rem + 2.381vw, 2rem);
}

.normal-price__outer,
.discount__outer,
.price__outer {
    position: absolute;
    left: 50%;
    translate: -50%;
}

.normal-price__outer {
    bottom: 39.8%;
}

.normal-price {
    font-size: 1.25em;
    font-weight: 700;
}

.discount__outer {
    bottom: 34.3%;
    translate: -233%;
}

.discount {
    font-size: 1.25em;
    font-weight: 700;

    .off {
        font-size: 0.8em;
    }
}

.price__outer {
    font-size: 3em;
    font-family: var(--font__shippori-mincho);
    font-weight: 600;

    .yen {
        font-size: 0.5em;
    }

    .tax {
        font-size: 0.833em;
        margin-left: 0.25em;
    }
}

.price__outer--1 {
    bottom: 32.5%;
    color: #FFB700;
    translate: -19%;
}

.price__outer--2 {
    bottom: 16.6%;
    color: #FF7288;
    translate: -13%;
}

.btn__menu {
    bottom: 6.3%;
    width: 32%;
}

/*------------------------------------------------------------
reason
------------------------------------------------------------*/

.reason {
    margin-bottom: 4%;
}

/*------------------------------------------------------------
charm
------------------------------------------------------------*/

.charm {
    margin-top: 10%
}
/*------------------------------------------------------------
flow
------------------------------------------------------------*/

.flow {
    width: 52%;
    margin: 8% auto;
}

/*------------------------------------------------------------
message
------------------------------------------------------------*/

.message {
    /* margin: 8% 0 -3%; */
    margin: 4% 0 -3%;
}

/*------------------------------------------------------------
info
------------------------------------------------------------*/

.info {
    margin: 8% 0;
}

.info__title {
    width: 11%;
    margin-inline: auto;
}

.info__content--outer {
    display: flex;
    gap: 2%;
    width: 78%;
    margin: 4% auto;
}

.info__image {
    width: 40%;
}

.info__content {
    font-size: 1.5em;
    font-size: clamp(0.75rem, -0.107rem + 1.786vw, 1.5rem);
    font-weight: 400;
}

.info__list {
    margin: 0;

    th {
        text-align: left;
    }

    th, td {
            padding-bottom: 1em;
    }
}

.info__root {
    margin-left: 1em;
    font-weight: 700;

    .sp-indent {
        display: none;
    }
}

.google-map {
    width: 38%;
    aspect-ratio: 544 / 353;
    margin-inline: auto;

    iframe {
        width: 100%;
        height: 100%;
    }
}

/*------------------------------------------------------------
footer
------------------------------------------------------------*/

.footer {
    padding: 2.5em 0;
    font-weight: 400;
}

.footer__nav {

    ul {
        display: flex;
        justify-content: center;
        list-style: none;
        margin: 0;
        padding: 0;
        text-align: center;

        li {
            /* flex: 1; */
            padding: 0.125rem 0;
            position: inherit;

            &:not(:last-child) {

                &::after {
                    content: "｜";
                    margin: 0 0.5em;
                }
            }
        }
    }

    a {
        text-decoration: none;
        transition: 0.2s;

        &:hover {
            filter: brightness(0.8);
        }
    }
}

.copyright__p {
    text-align: center;
    margin-top: 1em;
}

.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 */
    .site-header {
        padding: 2% 0;
    }

    .name {
        width: 35%;
    }

    .btn {
        width: 43%;
    }

    /* cta */
    .cta {
        width: 86%;
        margin-bottom: 8%;
    }

    /* benefit */
    .benefit {
        margin-bottom: -9%;
    }

    /* menu */
    .menu {
        margin-top: 8%;
        margin-bottom: -6%;
        font-size: clamp(0.625rem, -0.001rem + 3.132vw, 1.5rem);
    }

    .normal-price__outer {
        bottom: 37%;
    }

    .normal-price {
        font-size: 1.08em;
    }

    .discount__outer {
        bottom: 31.5%;
        translate: -200%;
    }

    .discount {
        font-size: 1.5em;

        .off {
            font-size: 0.67em;
        }
    }

    .price__outer {
        font-size: 2.67em;
    }

    .price__outer--1 {
        bottom: 30.5%;
    }

    .price__outer--2 {
        font-size: 3em;
    }

    .btn__menu {
        bottom: 6%;
        width: 60%;
    }

    /* reason */
    .reason {
        margin-bottom: 8%;
    }

    /* flow */
    .flow {
        width: 85%;
    }

    /* message */
    .message {
        margin: 0; 
    }

    /* info */
    .info__title {
        width: 16%;
    }
    
    .info__content--outer {
        flex-direction: column;
        align-items: center;
        width: 90%;
        gap: clamp(1rem, 0.284rem + 3.579vw, 2rem);
    }

    .info__image {
        width: 80%;
    }

    .info__content {
        font-size: clamp(0.563rem, -0.019rem + 2.908vw, 1.375rem);
        width: 95%;
    }

    .info__list {
        width: 95%;
        margin-inline: auto;

        th {
            font-size: 1.09em;
        }

        tr:last-child {
            th, td {
                padding-bottom: 0;
            }
        }
        
    }

    .info__root {
        width: fit-content;
        margin-left: auto;

        .sp-indent {
            display: inline-block;
        }
    }

    .google-map {
        width: 80%;
    }

    /* footer */
    footer {
        margin-top: -4%;
        font-size: clamp(0.563rem, 0.339rem + 1.119vw, 0.875rem)
    }
}
