* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    text-decoration: none;
    list-style: none;
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 120px;
}

svg {
    display: none;
}

@font-face {
    font-family: 'GJG-Heavy';
    src: url(../assets/fonts/GenJyuuGothic-Heavy.woff) format('woff');
    font-display: swap;
}

@font-face {
    font-family: 'GJG-Medium';
    src: url(../assets/fonts/GenJyuuGothic-Medium.woff) format('woff');
    font-display: swap;
}

@font-face {
    font-family: 'GJG-Bold';
    src: url(../assets/fonts/GenJyuuGothic-Bold.woff) format('woff');
    font-display: swap;
}

@font-face {
    font-family: 'nikumaru';
    src: url(../assets/fonts/nikumaru.woff) format('woff');
    font-display: swap;
}

header {
    width: 100%;

    &:has(#hmbg-btn.open) {
        .hmbg-menu {
            translate: 0 0;
        }
    }

    .header-top {
        position: fixed;
        padding-inline: 5px;
        z-index: 10;
        top: 0;
        display: flex;
        justify-content: space-between;
        align-items: center;
        width: 100%;
        height: 60px;
        background-color: #ffde59;
        border-bottom: 2px black solid;

        h1 {
            position: relative;
            height: 55px;
            width: 48px;
            margin-inline: 10px;

            a {
                cursor: pointer;

                img {
                    position: absolute;
                    height: 100%;
                }
            }
        }

        .tel-number {
            display: none;
        }

        .tel-number-mobile {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 5px;
            background-color: #ff8f51;
            height: 35px;
            width: 170px;
            font-size: 16px;
            font-family: 'GJG-Bold';
            box-shadow: 5px 5px #42362b;

            p {
                color: #42362b;
            }
        }

        #hmbg-btn {
            width: 60px;
            height: 60px;
            border: none;
            background-color: transparent;
            position: relative;
            color: #42362b;

            span {
                position: absolute;
                background-color: #42362b;
                height: 2px;
                width: 40px;
                left: 10px;
                transition: 0.3s;
            }

            span:nth-of-type(1) {
                top: 18px;
            }

            span:nth-of-type(2) {
                top: 30px;
            }

            span:nth-of-type(3) {
                top: 42px;
            }
        }
    }

    #hmbg-btn.open {
        span:nth-of-type(1) {
            rotate: 45deg;
            top: 30px;
        }

        span:nth-of-type(2) {
            opacity: 0;
        }

        span:nth-of-type(3) {
            rotate: -45deg;
            top: 30px;
        }
    }

    .hmbg-menu {
        box-shadow: 0 3px 5px rgb(93 93 93 / 40%);
        z-index: 9;
        translate: 0 -100%;
        position: fixed;
        top: 60px;
        background-color: #fff;
        width: 100%;
        padding-top: 20px;
        transition: 0.3s;

        li {
            position: relative;
            height: 70px;

            a {
                cursor: pointer;
                display: flex;
                align-items: center;
                position: absolute;
                top: 0;
                left: 0;
                width: 100%;
                height: 100%;

                p {
                    margin-left: 50px;
                    font-family: 'GJG-Medium';
                }
            }
        }
    }

    .header-hero-image {
        margin-top: 60px;
        background-image: url(../assets/image/top_sp.webp);
        background-size: cover;
        background-position: center;
        height: calc(100vh - 100px);
        position: relative;

        .top-logo {
            margin: 10px;
        }

        .top-price {
            text-align: center;
            position: absolute;
            bottom: 5px;
            left: 50%;
            translate: -50% 0;
            display: flex;
            justify-content: center;
            align-items: center;
            width: 90%;
            padding-block: 60px;

            img {
                display: block;
                position: absolute;
                inset: 0;
                width: 100%;
                height: 100%;
            }

            p {
                font-weight: 600;
                letter-spacing: .08em;
                color: #42362b;
                -webkit-text-stroke: #ffde59 .4em;
                paint-order: stroke;
                position: relative;

                >span {
                    font-size: 24px;
                    display: block;

                    span {
                        font-size: 48px;
                    }
                }
            }

            br {
                display: none;
            }
        }
    }
}

.section-wrapper {
    background-color: #ffde59;

    .header-bottom {
        display: none;
    }

    section {
        padding-block: 60px;
    }

    .menu-price {
        display: flex;
        flex-direction: column;
        contain: paint;

        .paper {
            h2 {
                background-image: url(../assets/image/pc1.webp);
                text-align: center;
                font-family: 'nikumaru';
                letter-spacing: .1em;
                font-size: 32px;
                margin-inline: auto;
                width: fit-content;
                padding: 7px 32px;
                background-size: 100% 100%;
            }

            ul {
                margin-inline: auto;
                width: 80%;
                padding-bottom: 30px;

                li {
                    margin-top: 40px;

                    h3 {
                        aspect-ratio: 533/ 315;
                        border: solid 3px #007f34;
                        border-radius: 3px;
                        background-size: cover;
                        font-family: 'GJG-Heavy';
                        font-size: 23px;
                        position: relative;

                        span {
                            text-align: center;
                            width: 100%;
                            position: absolute;
                            bottom: 5px;
                            text-shadow: 3px 3px 1px #fff, -3px -3px 1px #fff, -3px 3px 1px #fff, 3px -3px 1px #fff, 3px 0px 1px #fff, -3px 0px 1px #fff, 0px 3px 1px #fff, 0px -3px 1px #fff;
                        }
                    }

                    .menu-item-image1 {
                        background-image: url(../assets/image/menu1.webp);
                    }

                    .menu-item-image2 {
                        background-image: url(../assets/image/menu2.webp);
                    }

                    .menu-item-image3 {
                        background-image: url(../assets/image/menu3.webp);
                    }

                    .menu-item-image4 {
                        background-image: url(../assets/image/足裏リフレその4.webp);
                        position: relative;

                        b {
                            position: absolute;
                            top: -20px;
                            left: -30px;
                            background-color: #ffde59;
                            padding-inline: 10px;
                            border-radius: 45%;
                            border: 2px solid rgb(0, 41, 0);
                            font-size: 24px;
                        }
                    }

                    .time-price {
                        margin-top: 12px;
                        text-align: end;

                        .time-price-texts {
                            border-bottom: solid 8px #fff9d9;
                            display: inline-block;
                            translate: 0 -12px;

                            p {
                                translate: 0 12px;

                                span {
                                    font-family: 'Noto Sans JP';
                                }

                                .time-price-number {
                                    font-size: 31px;
                                }

                                .time-price-text {
                                    font-size: 16px;
                                }
                            }
                        }
                    }
                }
            }
        }
    }

    .info {
        background-color: #fff9d9;
        padding-block: 60px 80px;

        h2 {
            background-image: url(../assets/image/pc1.webp);
            font-size: 24px;
            text-align: center;
            font-family: 'nikumaru';
            letter-spacing: .1em;
            margin-inline: auto;
            width: fit-content;
            background-size: 100% 100%;
            padding-inline: 12px;
        }

        .campaign {
            padding-block: 60px 90px;
            position: relative;

            &::before,
            &::after {
                content: url(../assets/image/logo1.webp);
                position: absolute;
            }

            &::before {
                top: 23px;
                left: 35px;
            }

            &::after {
                bottom: 23px;
                right: 35px;
            }

            .campaign-box {
                margin-bottom: 18px;

                h3 {
                    font-family: 'nikumaru';
                    letter-spacing: .1em;
                    color: #ff9f61;
                    font-size: 20px;
                    text-align: center;

                    &.suiyou-gentei {
                        span {
                            display: block;
                        }
                    }
                }

                p {
                    font-family: 'Noto Sans JP';
                    letter-spacing: .07em;
                    text-align: center;

                    .number {
                        font-size: 24px;
                    }

                    .lang {
                        font-size: 14px;
                    }

                    .lang-bold {
                        font-size: 14px;
                    }
                }

                .p-2 {
                    margin-top: 14px;
                    font-family: 'Noto Sans JP';
                    letter-spacing: .05em;
                    text-align: center;
                    line-height: .3em;

                    .number {
                        font-size: 18px;
                        margin-left: -7px;
                        margin-right: -5px;
                    }

                    .lang {
                        font-size: 13px;
                    }

                    .lang-bold {
                        font-size: 18px;
                    }
                }
            }
        }

        .alt-news:nth-child(3) {
            margin-top: 30px;
        }

        .alt-news {
            position: relative;

            .news-item {
                margin-inline: auto;
                width: 90%;
                max-width: 1000px;

                .news-head {
                    display: block;
                    border-top: solid 2px #42362b;
                    font-family: 'GJG-Bold';
                    text-align: center;

                    h3 {
                        font-size: 1.15em;
                    }
                }

                .news-content {
                    text-align: center;
                }
            }
        }

        .news {
            position: relative;

            .news-item {
                margin-inline: auto;
                width: 90%;
                max-width: 1000px;

                .news-head {
                    display: block;
                    border-top: solid 2px #42362b;
                    border-bottom: solid 2px #42362b;
                    font-family: 'GJG-Bold';
                    padding: 5px;
                    text-align: center;

                    h3 {
                        font-size: 1.15em;
                    }
                }

                .news-content {
                    text-align: center;
                    padding-block: 20px 40px;
                }
            }
        }
    }

    .access-contact {
        contain: paint;

        .access-paper {
            h2 {
                background-image: url(../assets/image/sp1.webp);
                text-align: center;
                letter-spacing: .1em;
                margin-inline: auto;
                width: fit-content;
                background-size: 100% 100%;
                padding: 7px 12px;

                span {
                    font-family: 'nikumaru';
                    font-size: 32px;
                }
            }

            .access {
                .decoration-wrap {
                    display: inline-block;
                    margin: 0 0 12px 50%;
                    translate: -50% 0;
                    border-bottom: solid 8px #fff9d9;
                    padding-inline: 4px;

                    h3 {
                        translate: 0 10px;
                        text-align: center;

                        span {
                            letter-spacing: .05em;
                            font-family: 'nikumaru';
                        }
                    }
                }

                .map {
                    margin-inline: auto;
                    width: 320px;

                    iframe {
                        width: 320px;
                        height: 250px;
                    }

                    .address {
                        display: flex;

                        p {
                            width: fit-content;
                            margin-inline: auto;
                        }
                    }
                }
            }

            .contact-business-hours {
                display: flex;
                justify-content: center;
                flex-wrap: wrap;
                gap: 4%;

                .contact {
                    .decoration-wrap {
                        margin-bottom: 12px;
                        padding-inline: 4px;
                        border-bottom: solid 8px #fff9d9;

                        h3 {
                            translate: 0 10px;
                            text-align: center;

                            span {
                                letter-spacing: .05em;
                                font-family: 'nikumaru';
                            }
                        }
                    }

                    a {
                        display: block;
                        color: #42362b;
                        font-family: 'GJG-Bold';
                        font-size: 28px;
                        letter-spacing: 0.05em;
                        text-align: center;
                    }

                    table {
                        font-family: 'GJG-Medium';
                        margin: 0 auto 30px;
                        text-align: center;

                        tbody {
                            display: table-row-group;
                            vertical-align: middle;
                            border-color: inherit;

                            tr {
                                display: table-row;
                                vertical-align: inherit;
                                border-color: inherit;

                                td {
                                    display: table-cell;
                                    vertical-align: inherit;
                                }

                                td:first-child {
                                    padding-right: 20px;
                                }
                            }
                        }
                    }
                }

                .business-hours {
                    .decoration-wrap {
                        display: inline-block;
                        margin-left: 0 0 12px 50%;
                        translate: -50% 0;
                        border-bottom: solid 8px #fff9d9;
                        padding-inline: 4px;

                        h3 {
                            translate: 0 10px;
                            text-align: center;

                            span {
                                letter-spacing: .05em;
                                font-family: 'nikumaru';
                            }
                        }
                    }

                    table {
                        border-collapse: collapse;
                        border: solid 3px #42362b;
                        background-color: #fff;
                        margin-inline: auto;

                        tbody {
                            display: table-row-group;
                            vertical-align: middle;
                            border-color: inherit;

                            tr {
                                display: table-row;
                                vertical-align: inherit;
                                border-color: inherit;

                                th {
                                    border: solid 1px #42362b;
                                    padding: 6px;
                                    background-color: #ffde59;
                                }

                                .w {
                                    background-color: #fff9d9;
                                }

                                .b {
                                    background-color: #d5faff;
                                }

                                .r {
                                    background-color: #ffeaea;
                                }

                                td {
                                    padding: 6px;
                                    border: solid 1px #42362b;
                                    text-align: center;

                                    span {
                                        display: block;
                                    }
                                }

                                td:first-child {
                                    background-color: #ffde59;
                                }
                            }
                        }
                    }
                }
            }
        }
    }

    .review {
        background-color: #fff9d9;

        h2 {
            background-color: #fff9d9;
            background-image: url(../assets/image/pc1.webp);
            width: 300px;
            text-align: center;
            font-family: 'nikumaru';
            letter-spacing: .1em;
            font-size: 32px;
            margin-inline: auto;
            width: fit-content;
            padding: 7px 32px;
            background-size: 100% 100%;
        }

        .review-container {
            margin: 30px;
            max-width: 900px;

            .review-box {
                .text {
                    background-color: #fff;
                    border-radius: 50%;
                    padding: 40px;
                    position: relative;
                }

                .text:after {
                    position: absolute;
                    right: 35px;
                    bottom: 0;
                    content: '';
                    width: 50px;
                    height: 35px;
                    background-color: #fff;
                    clip-path: polygon(0 0, 100% 100%, 70% 0);
                }

                .name {
                    text-align: right;
                    padding-right: 24px;
                }
            }

            .hidden-box {
                contain: paint;
                transition: height 0.2s;
            }
        }

        .more-btn-wrap {
            background-color: #fff9d9;
            width: 300px;
            margin-inline: auto;

            &.open {
                .more {
                    display: none;
                }

                .fold {
                    display: block;
                }
            }

            .more {
                display: block;
            }

            .fold {
                display: none;
            }

            .more-btn {
                cursor: pointer;
                font-family: 'GJG-Medium';
                font-size: 16px;
                display: flex;
                margin-inline: auto;
                padding: 8px 14px;
                border: none;
                background-color: #ffde59;
                color: #42362b;

                .shape {
                    translate: 0 2px;
                    display: inline-block;
                    vertical-align: bottom;
                    margin: 0 0 2px 8px;
                    width: 20px;
                    height: 20px;
                    border: solid 2px #42362b;
                    border-radius: 50%;
                    position: relative;
                }

                .shape:after {
                    content: '';
                    display: block;
                    position: absolute;
                    top: 7px;
                    left: 3px;
                    background-color: #42362b;
                    width: 10px;
                    height: 2px;
                }
            }
        }
    }
}

footer {
    background-color: #fff9d9;
    font-family: 'GJG-Medium';

    .footer-container {
        max-width: 900px;
        padding: 60px;
        margin: auto;

        .menu {
            display: flex;
            flex-direction: column;
            margin-bottom: 28px;

            .menu-box {
                display: flex;
                flex-direction: column;
                margin-right: 80px;

                a {
                    cursor: pointer;
                    display: block;
                    color: #42362b;
                    margin-bottom: 14px;
                }
            }
        }

        .logo-page-top {
            display: flex;
            justify-content: space-between;
            margin-bottom: 50px;

            a {
                text-align: center;
                display: block;
                width: 90px;
                height: 90px;
                color: #42362b;

                span {
                    display: block;
                    width: 30px;
                    height: 30px;
                    margin: 0 auto 15px;
                    background-color: #42362b;
                    clip-path: shape(from 50% 0,
                            line to 100% 100%,
                            line to 0 100%,
                            close);
                }
            }
        }

        small {
            display: block;
            width: 100%;
            text-align: center;
            color: #42362b;
        }
    }
}