﻿:root {
    --white-clr: 255, 255, 255;
    --base-clr: 113, 93, 101;
    --link-clr: 8, 146, 165;
    --orange-clr: 255, 114, 95;
    --brown-clr: 127, 107, 115;
    --grad-p-clr: 240, 235, 255;
    --grad-b-clr: 218, 241, 255;
    --grad-g-clr: 220, 248, 235;
    --grad--p-clr: 249, 224, 216
}

html,
body {
    height: 100%;
    overscroll-behavior-x: none
}

body {
    text-align: center;
    line-height: 1;
    -webkit-text-size-adjust: 100%;
    overflow-wrap: anywhere;
    word-break: normal;
    line-break: strict
}

img {
    max-width: 100%;
    height: auto
}

input[type=submit],
input[type=reset] {
    appearance: none;
    cursor: pointer
}

@font-face {
    font-family: "DIN";
    src: url("../fonts/D-DIN-PRO-700-Bold.otf") format("opentype");
    font-weight: 700;
    font-display: swap
}

@font-face {
    font-family: "DIN";
    src: url("../fonts/D-DIN-PRO-500-Medium.otf") format("opentype");
    font-weight: 500;
    font-display: swap
}

body {
    font-size: 3.48vw;
    font-family: "Noto Sans JP", sans-serif;
    color: rgb(var(--base-clr));
    background: rgb(var(--white-clr));
    font-weight: 400
}

body.active {
    height: 100%;
    overflow: hidden
}

.inner {
    padding: 0 4.65vw
}

.cf:before,
.cf:after {
    content: "";
    display: table
}

.cf:after {
    clear: both
}

@media(min-width: 601px) {
    body {
        font-size: 15px
    }

    .sp {
        display: none !important
    }

    .inner {
        margin: 0 auto;
        padding: 0 20px;
        max-width: 1200px
    }

    .inner.mw_1270 {
        max-width: 1270px
    }

    .inner.mw_1040 {
        max-width: 1040px
    }

    .inner.mw_940 {
        max-width: 940px
    }

    .inner.mw_820 {
        max-width: 820px
    }
}

@media(min-width: 961px) {
    .sptab {
        display: none !important
    }
}

@media(min-width: 1200px) {
    .inner {
        padding: 0
    }
}

@media(max-width: 960px) {
    .pc {
        display: none !important
    }
}

@media(max-width: 600px) {
    .pctab {
        display: none !important
    }
}

a {
    text-decoration: none;
    color: rgb(var(--base-clr));
    font-weight: 600;
    word-break: break-all;
    cursor: pointer;
    touch-action: manipulation;
    text-underline-offset: 4px;
    transition-duration: .3s;
    transition-timing-function: cubic-bezier(0.37, 0, 0.63, 1);
    transition-property: opacity
}

a[href*="tel:"] {
    text-decoration: underline
}

a.inlinetext {
    display: inline !important;
    padding-left: 0 !important
}

a.link {
    position: relative;
    display: inline-block;
    font-size: 1em;
    line-height: 1.35;
    color: rgb(var(--link-clr))
}

a.link::before {
    content: "";
    width: 100%;
    height: 1px;
    background: rgb(var(--link-clr));
    position: absolute;
    bottom: -0.1em;
    top: initial;
    left: 0;
    transition-duration: .3s;
    transition-timing-function: cubic-bezier(0.37, 0, 0.63, 1);
    transition-property: transform;
    transform-origin: left;
    transform: scaleX(1)
}

a.inline__none {
    display: inline !important;
    padding: 0 !important
}

a.inline__none::before {
    content: none;
    display: none !important
}

@media(min-width: 601px) {
    a[href*="tel:"] {
        pointer-events: none !important;
        cursor: default !important;
        text-decoration: none !important
    }

    a.link {
        font-size: inherit;
        line-height: 1.35
    }

    a.link:hover {
        text-decoration: none
    }
}

@media(any-hover: hover) {
    a:hover {
        opacity: .8
    }

    a.link:hover {
        opacity: 1;
        text-decoration: none
    }

    a.link:hover::before {
        transform-origin: right;
        transform: scaleX(0)
    }
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-weight: 600
}

p {
    font-weight: 400
}

p.mb {
    margin-bottom: 6.0465vw
}

p.left {
    text-align: left !important
}

small {
    display: block;
    position: relative;
    padding: 0 0 0 1em;
    text-align: left;
    font-size: 3.2558vw;
    font-weight: 400;
    line-height: 1.47
}

small::before {
    content: "＊";
    position: absolute;
    top: 0;
    left: 0
}

.comment.nb,
.comment_list.nb {
    margin-bottom: 0 !important
}

.small {
    display: inline-block;
    position: relative;
    text-align: left;
    font-size: 3.2558vw !important;
    line-height: 1.47
}

.red {
    color: rgb(var(--orange-clr))
}

.ff_din {
    font-family: "DIN", sans-serif
}

.svg_symbol {
    display: none
}

.italic {
    font-style: italic
}

.em {
    color: rgb(var(--orange-clr))
}

.visually-hidden {
    border: 0 !important;
    clip: rect(0, 0, 0, 0) !important;
    height: 1px !important;
    margin: -1px !important;
    overflow: hidden !important;
    padding: 0 !important;
    position: absolute !important;
    white-space: nowrap !important;
    width: 1px !important
}

.ul_list li {
    position: relative;
    padding: 0 0 0 6vw;
    line-height: 1.76;
    text-align: left
}

.ul_list li::before {
    content: "";
    display: block;
    overflow: hidden;
    position: absolute;
    top: .75em;
    left: .6em;
    width: 4px;
    height: 4px;
    background-color: rgb(var(--base-clr));
    border-radius: 50%
}

@media(min-width: 601px) {
    p.mb {
        margin-bottom: 45px
    }

    small {
        font-size: 11px;
        line-height: 1.35
    }

    .small {
        font-size: 11px !important;
        line-height: 1.35
    }

    .ul_list li {
        padding-left: 18px;
        font-size: 13px;
        line-height: 1.538
    }

    .ul_list li::before {
        top: .655em
    }
}

.more_btn,
.standard_btn {
    margin: 0 auto;
    width: 100%
}

.more_btn a,
.standard_btn a {
    position: relative;
    z-index: 1;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 27.91vw;
    margin: 0 auto;
    padding: 0 16vw;
    width: 100%;
    font-size: 4.18vw;
    line-height: 1.25;
    text-decoration: none !important;
    overflow: hidden;
    font-kerning: normal;
    word-break: auto-phrase
}

.more_btn a::before,
.standard_btn a::before {
    position: absolute;
    display: block;
    content: "";
    top: 50%;
    border-radius: 50%;
    background-repeat: no-repeat;
    background-position: left top;
    background-size: cover;
    transform: translateY(-50%);
    transition-duration: .3s;
    transition-timing-function: cubic-bezier(0.37, 0, 0.63, 1);
    transition-property: transform, right
}

.more_btn a::after,
.standard_btn a::after {
    content: "";
    width: 100%;
    height: 100%;
    background: #646464;
    mix-blend-mode: overlay;
    position: absolute;
    left: -100%;
    top: 0;
    z-index: -1;
    transition-duration: .3s;
    transition-timing-function: cubic-bezier(0.37, 0, 0.63, 1);
    transition-property: left
}

.more_btn {
    max-width: 69.77vw
}

.more_btn a {
    height: 13.95vw
}

.more_btn a::before {
    width: 6.9767vw;
    height: 6.9767vw;
    right: 3.95vw
}

.more_btn.bg_gradation a {
    background: rgb(var(--grad--p-clr));
    background: linear-gradient(45deg, rgb(var(--grad--p-clr)) 0%, rgb(var(--grad-b-clr)) 100%)
}

.more_btn.bg_gradation a::before {
    background-image: url("../img/btn_icon_bg_brown_arrow_white.svg")
}

.more_btn.bg_gray a {
    background: #eaeaea
}

.more_btn.bg_gray a::before {
    background: rgb(var(--orange-clr))
}

.standard_btn {
    max-width: 90.7vw
}

.standard_btn a {
    height: 20vw;
    color: rgb(var(--white-clr))
}

.standard_btn a::before {
    width: 11.62vw;
    height: 11.62vw;
    right: 4.18vw;
    background-image: url("../img/btn_icon_bg_white_arrow_orange.svg")
}

.standard_btn.bg_brown a {
    background: rgb(var(--brown-clr))
}

.standard_btn.bg_orange a {
    background: rgb(var(--orange-clr))
}

.standard_btn.bg_white a {
    color: rgb(var(--brown-clr));
    background: rgb(var(--white-clr))
}

.standard_btn.bg_white a::before {
    width: 6.9767vw;
    height: 6.9767vw;
    background-image: url("../img/btn_icon_bg_brown_arrow_white.svg")
}

.standard_btn.mypage a {
    color: rgb(var(--brown-clr));
    background: rgb(var(--white-clr))
}

.standard_btn.mypage a::before {
    width: 6.9767vw;
    height: 6.9767vw;
    background-image: url("../img/btn_icon_bg_brown_arrow_white.svg")
}

.standard_btn.up a::before {
    background-image: url("../img/btn_icon_bg_white_arrow_orange_up.svg")
}

.standard_btn.mt {
    margin-top: 2rem
}

@media(min-width: 601px) {

    .more_btn,
    .standard_btn {
        max-width: 300px
    }

    .more_btn.big,
    .standard_btn.big {
        max-width: 400px
    }

    .more_btn a,
    .standard_btn a {
        padding: 0 55px;
        font-size: inherit;
        line-height: 1.25;
        border-radius: 140px
    }

    .more_btn a {
        height: 60px
    }

    .more_btn a::before {
        width: 30px;
        height: 30px;
        right: 20px
    }

    .more_btn.bg_gradation a::before {
        background: url("../img/btn_icon_bg_brown_arrow_white.svg") no-repeat
    }

    .standard_btn {
        max-width: 350px
    }

    .standard_btn a {
        height: 70px
    }

    .standard_btn a::before {
        width: 30px;
        height: 30px;
        right: 20px
    }

    .standard_btn.bg_white a::before {
        width: 30px;
        height: 30px
    }

    .standard_btn.mypage a::before {
        width: 30px;
        height: 30px
    }
}

#follow_btn {
    position: absolute;
    width: 100%;
    left: 0;
    bottom: 0;
    z-index: 998
}

#follow_btn.fix {
    position: fixed
}

#follow_btn a {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 19.77vw;
    font-size: 4.41vw;
    line-height: 1.25;
    padding: 0 3.0233vw 0 0;
    color: rgb(var(--white-clr));
    background: #ff523a;
    box-sizing: border-box
}

#follow_btn a::before {
    position: absolute;
    display: block;
    content: "";
    width: 11.6279vw;
    height: 11.6279vw;
    top: 50%;
    right: 4.186vw;
    background: url("../img/btn_icon_bg_white_arrow_orange.svg") no-repeat left top/contain;
    transform: translateY(-50%)
}

@media(min-width: 601px) {
    #follow_btn a {
        height: 85px;
        padding: 0 1em;
        font-size: 19px;
        line-height: 1.25
    }

    #follow_btn a::before {
        width: 30px;
        height: 30px;
        right: 19px;
        background: url("../img/btn_icon_bg_white_arrow_orange.svg") no-repeat
    }
}

@media(min-width: 1101px) {
    #follow_btn {
        display: none
    }
}

@media(any-hover: hover) {
    #follow_btn a:hover {
        opacity: 1
    }
}

.bnr_area a:has(picture) {
    display: inline-block;
    position: relative;
    transition-duration: .3s;
    transition-timing-function: cubic-bezier(0.37, 0, 0.63, 1);
    transition-property: transform, right
}

.bnr_area a:has(picture)::before {
    content: " ";
    width: calc(100% - 3px);
    height: calc(100% - 3px);
    position: absolute;
    left: 3px;
    top: 3px;
    border-color: #fff;
    border-style: solid;
    border-width: .69vw;
    opacity: 0
}

@media(min-width: 601px) {
    .bnr_area a:has(picture)::before {
        border-width: 3px
    }
}

.round_corner {
    position: relative;
    border-radius: 9.3vw
}

.round_corner.purple {
    background: #e0e1f5
}

.round_corner.green {
    background: #cde7db
}

.round_corner.light_green {
    background: #dcefe6
}

.round_corner.blue {
    background: rgb(var(--grad-b-clr))
}

.round_corner.beige {
    background: #f1eff0
}

.round_corner.grad {
    background: rgb(var(--grad--p-clr));
    background: linear-gradient(80deg, rgb(var(--grad--p-clr)) 26%, rgb(var(--grad-b-clr)) 74%)
}

.round_corner.grad_2 {
    background: linear-gradient(243.18deg, rgb(var(--grad-g-clr)) 0%, rgb(var(--grad-b-clr)) 50%, rgb(var(--grad-p-clr)) 100%)
}

.decoration {
    padding-top: 28.8372vw
}

.decoration .inner {
    padding-bottom: 9.3vw
}

.decoration .inner.title_inner,
.decoration .inner.middle_inner {
    padding-bottom: 0
}

.section_decoration .section_decoration_svg {
    width: 7.44vw;
    height: 32.6vw;
    margin: -14.6512vw 0 9.0698vw
}

.booking_area .about {
    position: relative;
    display: inline-block;
    margin: 6.05vw 0 0;
    font-size: 4.41vw;
    line-height: 1.35;
    color: rgb(var(--link-clr))
}

.booking_area .about::before {
    content: "";
    width: 100%;
    height: 1px;
    background: rgb(var(--link-clr));
    position: absolute;
    bottom: -0.1em;
    top: initial;
    left: 0;
    transition-duration: .3s;
    transition-timing-function: cubic-bezier(0.37, 0, 0.63, 1);
    transition-property: transform;
    transform-origin: left;
    transform: scaleX(1)
}

@media(min-width: 601px) {
    .round_corner {
        border-radius: 70px
    }

    .decoration {
        padding-top: 135px
    }

    .decoration .inner {
        padding-bottom: 60px
    }

    .decoration .inner.title_inner,
    .decoration .inner.middle_inner {
        padding-bottom: 0
    }

    .section_decoration .section_decoration_svg {
        width: 32px;
        height: 140px;
        margin: -63px 0 38px
    }

    .booking_area .about {
        margin: 18px 0 0;
        font-size: inherit;
        line-height: 1.35
    }
}

@media(any-hover: hover) {
    .booking_area a.about:hover {
        opacity: 1;
        text-decoration: none
    }

    .booking_area a.about:hover::before {
        transform-origin: right;
        transform: scaleX(0)
    }
}

.common_title {
    position: relative;
    font-weight: 600;
    color: #593e49
}

.common_title .jpn,
.common_title .eng {
    display: block;
    line-height: 1.15
}

.common_title .jpn {
    margin: 0 0 3.72vw;
    font-size: 8.13vw
}

.common_title .eng {
    font-size: 3.72vw;
    color: #ab9ca2;
    text-transform: uppercase
}

.jagged_txt {
    position: relative;
    display: inline-block;
    padding: 0 7.4419vw;
    font-size: 4.42vw;
    font-weight: 600;
    line-height: 1.15;
    color: rgb(var(--base-clr))
}

.jagged_txt::before,
.jagged_txt::after {
    position: absolute;
    display: block;
    content: "";
    width: 1.4vw;
    height: 5.35vw;
    top: 0;
    bottom: 0;
    margin: auto 0;
    background: url("../img/icon_stroke.svg") no-repeat left top/contain
}

.jagged_txt::before {
    left: 0
}

.jagged_txt::after {
    right: 0
}

.jagged_txt.js_inview::before,
.jagged_txt.js_inview::after {
    transition: transform .4s .2s
}

.jagged_txt.js_inview::before {
    transform: translateX(-300%)
}

.jagged_txt.js_inview::after {
    transform: rotate(180deg) translateX(-300%)
}

.jagged_txt.js_inview.viewed::before {
    transform: translateX(0)
}

.jagged_txt.js_inview.viewed::after {
    transform: rotate(180deg) translateX(0)
}

@media(min-width: 601px) {
    .common_title .jpn {
        margin: 0 0 20px;
        font-size: 30px
    }

    .common_title .eng {
        font-size: 13px
    }

    .jagged_txt {
        padding: 0 27px;
        font-size: 19px
    }

    .jagged_txt::before,
    .jagged_txt::after {
        width: 6px;
        height: 23px
    }
}

#head {
    position: absolute;
    width: 100%;
    top: 0;
    left: 0;
    border-radius: 0 0 9.3vw 9.3vw;
    z-index: 999;
    transition: background-color .3s
}

#head .head_inn>.inner {
    display: flex;
    align-items: center;
    height: 17.44vw
}

#head .logo {
    width: 29.77vw;
    padding: 0 0 0 2.79vw
}

#head .btn_area {
    display: flex;
    gap: 0 2.09vw;
    margin: 0 0 0 auto
}

#head .btn_area .btn {
    width: 10.47vw
}

#head .btn_area .btn a,
#head .btn_area .btn button {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 10.47vw;
    color: rgb(var(--base-clr));
    background: rgb(var(--white-clr));
    transition: background-color .3s;
    border-radius: 50%
}

#head .btn_area .btn button {
    border: none
}

#head .btn_area .clinic svg {
    width: 3.4884vw;
    height: 4.41vw
}

#head .btn_area .menu_btn button {
    flex-direction: column;
    gap: .93vw 0;
    cursor: pointer
}

#head .btn_area .menu_btn button svg {
    width: 3.95vw;
    height: 3.27vw
}

#head.fix {
    position: fixed;
    background: rgb(var(--white-clr))
}

#head.fix .btn_area .btn a,
#head.fix .btn_area .btn button {
    color: rgb(var(--white-clr));
    background: #ab9ca2
}

@media(min-width: 601px) {
    #head {
        border-radius: 0 0 30px 30px
    }

    #head .inner {
        height: 103px
    }

    #head .logo {
        width: 178px;
        padding: 0
    }

    #head .logo a {
        transition: opacity .3s
    }

    #head .btn_area {
        gap: 0 12px
    }

    #head .btn_area .btn {
        width: 62px
    }

    #head .btn_area .btn a,
    #head .btn_area .btn button {
        height: 62px
    }

    #head .btn_area .clinic svg {
        width: 26px;
        height: 33px
    }

    #head .btn_area .menu_btn button svg {
        width: 24px;
        height: 20px
    }

    #head.fix {
        position: fixed;
        background: rgb(var(--white-clr))
    }
}

@media(min-width: 1101px) {
    #head .head_inn {
        box-sizing: border-box;
        position: relative;
        padding: 56px 0 0;
        height: 206px
    }

    #head .inner {
        height: auto;
        flex-direction: column;
        gap: 52px 0
    }

    #head .logo {
        width: 170px
    }

    #head .btn_area {
        display: none
    }

    #head .g_navi ul {
        display: flex;
        justify-content: center;
        gap: 0 75px
    }

    #head .g_navi li a {
        font-size: 14px;
        position: relative
    }

    #head .g_navi li a span {
        display: inline-block
    }

    #head.fix {
        position: absolute;
        background: rgba(0, 0, 0, 0);
        transition: none
    }

    #head.fix_pc_hidden {
        position: fixed;
        opacity: 0;
        visibility: hidden;
        background: rgb(var(--white-clr))
    }

    #head.fix_pc {
        transition: opacity .3s;
        opacity: 1;
        visibility: visible
    }

    #head.fix_pc .head_inn {
        height: 85px;
        padding: 17px 0 18px
    }

    #head.fix_pc .inner {
        height: 50px;
        flex-direction: row;
        justify-content: flex-end;
        gap: 0
    }

    #head.fix_pc .logo {
        width: 131px;
        margin: 0 auto
    }

    #head.fix_pc .g_navi {
        margin: 0 20px;
        height: auto
    }

    #head.fix_pc .g_navi ul {
        gap: 0 min(20px, 2.24vw)
    }

    #head.fix_pc .g_navi li a {
        font-size: min(14px, 1.17vw)
    }
}

@media(min-width: 1178px) {
    #head.fix_pc .g_navi ul {
        gap: 0 min(38px, 2.24vw)
    }
}

#sp_menu {
    position: fixed;
    box-sizing: border-box;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    padding: 0 0 6.98vw;
    background: rgb(var(--grad-p-clr));
    background: linear-gradient(37deg, rgb(var(--grad-p-clr)) 0%, rgb(var(--grad-p-clr)) 25%, rgb(var(--grad-b-clr)) 75%, rgb(var(--grad-g-clr)) 100%);
    overflow-y: auto;
    z-index: 999
}

#sp_menu.show {
    transform: translateX(0);
    transition: transform .5s
}

#sp_menu .head .inner {
    position: relative;
    height: 17.44vw
}

#sp_menu .head .logo {
    position: absolute;
    width: 29.77vw;
    top: 3.48vw;
    left: 7.44vw
}

#sp_menu .inner {
    display: block;
    height: auto
}

#sp_menu .content {
    padding: 5.81vw 0 0
}

#sp_menu .navi {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6.28vw 0;
    margin: 0 0 8.13vw;
    padding: 0 3.48vw
}

#sp_menu .navi li a {
    position: relative;
    display: inline-block;
    padding: 0 0 0 10.47vw;
    font-size: 4.42vw;
    text-transform: uppercase
}

#sp_menu .navi li a::before {
    position: absolute;
    display: block;
    content: "";
    width: 6.9767vw;
    height: 6.9767vw;
    top: 50%;
    left: 0;
    background: url("../img/btn_icon_bg_white_arrow_brown.svg") no-repeat left top/contain;
    transform: translateY(-50%)
}

#sp_menu .btn_area {
    display: flex;
    flex-direction: column;
    gap: 5.35vw 0;
    margin: 0 0 6.98vw
}

#sp_menu .link_area {
    padding: 0 3.48vw
}

#sp_menu .link_area .subnavi {
    display: flex;
    gap: 0 9.3vw;
    margin: 0 0 4.65vw
}

#sp_menu .link_area .subnavi li a {
    position: relative;
    display: block;
    padding: 0 0 0 3.72vw;
    font-size: 4.18vw
}

#sp_menu .link_area .subnavi li a::before {
    position: absolute;
    display: block;
    content: "";
    width: 2.7907vw;
    height: 1.6279vw;
    top: .6977vw;
    bottom: 0;
    left: 0;
    margin: auto 0;
    background: url("../img/icon_arrow_brown.svg") no-repeat left top/contain;
    transform: rotate(-90deg)
}

#sp_menu .link_area .recruit {
    text-align: left
}

#sp_menu .link_area .recruit a {
    position: relative;
    display: inline-block;
    padding: 0 0 0 7.67vw;
    font-size: 4.18vw
}

#sp_menu .link_area .recruit a::before {
    position: absolute;
    display: block;
    content: "";
    width: 5.3488vw;
    height: 5.3488vw;
    top: 50%;
    left: 0;
    background: url("../img/icon_new_window.svg") no-repeat left top/contain;
    transform: translateY(-50%)
}

@media(min-width: 601px)and (max-width: 1100px) {
    #sp_menu {
        padding: 0 0 30px
    }

    #sp_menu .head .inner {
        height: 103px
    }

    #sp_menu .logo {
        width: 178px;
        top: 15px;
        left: 32px
    }

    #sp_menu .content {
        padding: 40px 0
    }

    #sp_menu .navi {
        gap: 38px 0;
        margin: 0 0 49px;
        padding: 0 24px
    }

    #sp_menu .navi li a {
        padding: 0 0 0 53px;
        font-size: 22px
    }

    #sp_menu .navi li a::before {
        width: 30px;
        height: 30px
    }

    #sp_menu .btn_area {
        gap: 32px 0;
        margin: 0 0 42px
    }

    #sp_menu .link_area {
        padding: 0 24px
    }

    #sp_menu .link_area .subnavi {
        gap: 0 56px;
        margin: 0 0 24px
    }

    #sp_menu .link_area .subnavi li a {
        padding: 0 0 0 28px;
        font-size: 20px
    }

    #sp_menu .link_area .subnavi li a::before {
        width: 15px;
        height: 9px;
        top: 2px
    }

    #sp_menu .link_area .recruit a {
        padding: 0 0 0 42px;
        font-size: 20px
    }

    #sp_menu .link_area .recruit a::before {
        width: 23px;
        height: 23px
    }
}

@media(min-width: 1101px) {
    #sp_menu {
        position: static;
        box-sizing: border-box;
        height: auto;
        top: 0;
        left: 0;
        padding: 0;
        background: rgba(0, 0, 0, 0);
        transform: translateX(0);
        overflow: initial
    }

    #sp_menu .head,
    #sp_menu .link_area {
        display: none
    }

    #sp_menu .content,
    #sp_menu .inner {
        height: auto;
        padding: 0
    }

    #sp_menu .navi,
    #sp_menu .booking_btn {
        display: block
    }

    #sp_menu .navi {
        flex-direction: row;
        padding: 0;
        margin: 0
    }

    #sp_menu .navi li.top {
        display: none
    }

    #sp_menu .navi li a {
        padding: 0
    }

    #sp_menu .navi li a::before {
        content: "";
        width: 100%;
        height: 1px;
        background: rgb(var(--base-clr));
        position: absolute;
        bottom: -4px;
        top: initial;
        left: 0;
        transform-origin: right;
        transform: scaleX(0);
        transition: transform .3s
    }

    #sp_menu .navi li a:hover::before {
        transform-origin: left;
        transform: scaleX(1)
    }

    #sp_menu .btn_area {
        display: flex;
        justify-content: center;
        align-items: flex-start;
        gap: 20px;
        margin: 0;
        position: absolute;
        top: -163px;
        right: -8vw
    }

    #sp_menu .btn_area .standard_btn.mypage {
        order: 1;
        width: 240px
    }

    #sp_menu .btn_area .standard_btn.mypage a {
        width: 100%;
        font-size: 12px;
        padding: 0;
        display: grid;
        place-content: center;
        color: rgb(var(--base-clr));
        background: rgb(var(--white-clr));
        height: 33px;
        border-radius: 0 0 20px 20px;
        transition: none
    }

    #sp_menu .btn_area .standard_btn.mypage a::before {
        transition: none;
        display: none
    }

    #sp_menu .btn_area .standard_btn.mypage a::after {
        display: none
    }

    #sp_menu .btn_area .standard_btn.bg_orange {
        order: 2;
        width: 240px
    }

    #sp_menu .btn_area .standard_btn.bg_orange a {
        height: 50px;
        display: grid;
        place-content: center;
        font-size: 14px;
        padding: 0 20px 0 0
    }

    #sp_menu .btn_area .standard_btn.bg_orange a::before {
        right: 12px
    }

    #head .navi {
        display: flex;
        justify-content: center;
        gap: 0 75px
    }

    #head .navi li a {
        font-size: 14px;
        position: relative
    }

    #head.fix_pc .navi {
        gap: 0 min(38px, 2.24vw)
    }

    #head.fix_pc .navi li a {
        font-size: min(12px, 1.17vw)
    }

    #head.fix_pc .navi li a span {
        display: inline-block
    }

    #head.fix_pc #sp_menu .content .inner {
        display: flex;
        align-items: flex-end;
        gap: 0 min(38px, 2.24vw)
    }

    #head.fix_pc #sp_menu .btn_area {
        position: relative;
        top: 0;
        right: 0
    }

    #head.fix_pc #sp_menu .btn_area .standard_btn.mypage {
        position: absolute;
        top: 0;
        right: min(272px, 240px + 2.24vw);
        z-index: 99;
        width: auto !important
    }

    #head.fix_pc #sp_menu .btn_area .standard_btn.mypage a {
        display: inline-block;
        margin: 0;
        padding: 0;
        line-height: 1;
        width: 11em;
        height: auto;
        border-radius: 0;
        background: rgba(0, 0, 0, 0);
        position: relative;
        overflow: visible
    }

    #head.fix_pc #sp_menu .btn_area .standard_btn.mypage a::after {
        display: block;
        content: "";
        margin: 0;
        width: 100%;
        height: 1px;
        background: rgb(var(--base-clr));
        position: absolute;
        top: 1.2em;
        left: 0;
        transform-origin: right;
        transform: scaleX(0);
        transition: transform .3s
    }

    #head.fix_pc #sp_menu .btn_area .standard_btn.mypage a:hover::after {
        transform-origin: left;
        transform: scaleX(1)
    }
}

@media(min-width: 1178px) {
    #sp_menu .btn_area {
        right: -144px
    }
}

@media(max-width: 1100px) {
    #sp_menu {
        transform: translateX(100%);
        transition: transform .5s
    }
}

.sp_menu_close_btn {
    position: fixed;
    width: 10.47vw;
    top: 3.72vw;
    right: 3.48vw;
    z-index: 999;
    transition: opacity .3s;
    opacity: 0;
    visibility: hidden
}

.sp_menu_close_btn.show {
    opacity: 1;
    visibility: visible
}

.sp_menu_close_btn button {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 10.47vw;
    background: rgb(var(--white-clr));
    border: none;
    border-radius: 50%;
    cursor: pointer
}

.sp_menu_close_btn button span {
    position: absolute;
    display: block;
    width: 3.95vw;
    height: .47vw;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    background: rgb(var(--base-clr));
    border-radius: 11.63vw
}

.sp_menu_close_btn button span:nth-of-type(1) {
    transform: rotate(45deg)
}

.sp_menu_close_btn button span:nth-of-type(2) {
    transform: rotate(-45deg)
}

@media(min-width: 601px) {
    .sp_menu_close_btn {
        width: 62px;
        top: 16px;
        right: 30px
    }

    .sp_menu_close_btn button {
        height: 62px
    }

    .sp_menu_close_btn button span {
        width: 24px;
        height: 3px;
        border-radius: 3px
    }
}

@media(any-hover: hover) {

    #head .btn_area .btn a:hover,
    #head .btn_area .btn button:hover {
        opacity: 1
    }
}

#pagetop {
    margin: 17.907vw 0 11.63vw
}

#pagetop a {
    position: relative;
    display: inline-block;
    padding: 0 0 20.23vw;
    font-size: 3.02vw;
    text-transform: uppercase
}

#pagetop a::after {
    position: absolute;
    display: block;
    content: "";
    width: 7.44vw;
    height: 17.1735vw;
    left: 0;
    right: 0;
    bottom: 0;
    margin: 0 auto;
    background: url("../img/pagetop.svg") no-repeat left top/contain
}

@media(min-width: 601px) {
    #pagetop {
        margin: 78px 0 50px
    }

    #pagetop a {
        padding: 0 0 85px;
        font-size: 13px
    }

    #pagetop a::after {
        width: 32px;
        height: 74px
    }
}

@media(any-hover: hover) {
    #pagetop a:hover::after {
        animation: fluffy 1.5s ease-in-out infinite alternate
    }

    @keyframes fluffy {
        0% {
            transform: translate(0, 0)
        }

        50% {
            transform: translate(0, -3px)
        }

        100% {
            transform: translate(0, 0)
        }
    }
}

#foot {
    position: relative;
    padding: 32.56vw 0 30.24vw;
    background: rgb(var(--grad-p-clr));
    background: linear-gradient(37deg, rgb(var(--grad-p-clr)) 0%, rgb(var(--grad-p-clr)) 25%, rgb(var(--grad-b-clr)) 75%, rgb(var(--grad-g-clr)) 100%);
    border-radius: 50vw 50vw 0 0
}

#foot .logo {
    width: 46.51vw;
    margin: 0 auto 18.6vw
}

#foot .logo a {
    display: block;
    width: 100%
}

#foot .foot_navi {
    display: inline-grid;
    grid-template-columns: 1fr 1fr;
    gap: 6.98vw 1em;
    margin: 0 0 12.56vw
}

#foot .foot_navi li {
    text-align: left
}

#foot .foot_navi li a {
    position: relative;
    font-size: 3.72vw;
    line-height: 1.25
}

#foot .foot_navi li a[target=_blank]::after {
    position: absolute;
    display: block;
    content: "";
    width: 5.3488vw;
    height: 5.3488vw;
    top: .2326vw;
    right: -6.0465vw;
    background: url("../img/icon_new_window.svg") no-repeat left top/contain
}

#foot .foot_sns {
    margin: 0 0 10.47vw
}

#foot .foot_sns ul {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0 10.47vw;
    margin: 0 0 5.58vw
}

#foot .foot_sns li {
    display: flex;
    align-items: center;
    height: 6.7442vw
}

#foot .foot_sns li.x {
    width: 6.7442vw
}

#foot .foot_sns li.instagram {
    width: 6.7442vw
}

#foot .foot_sns li.tiktok {
    width: 5.814vw
}

#foot .foot_sns li.youtube {
    width: 8.3721vw
}

#foot .foot_sns li a {
    display: block;
    width: 100%
}

#foot .foot_sns .link_sns_list a {
    font-size: 3.72vw
}

#foot .copyright {
    padding: 10.7vw 0 0;
    font-size: 3.02vw;
    font-weight: 700
}

@media(min-width: 601px) {
    #foot {
        padding: 215px 0 137px
    }

    #foot .logo {
        width: 200px;
        margin: 0 auto 93px
    }

    #foot .logo a {
        transition: opacity .3s
    }

    #foot .logo a:hover {
        opacity: .8
    }

    #foot .foot_navi {
        gap: 30px 100px;
        margin: 0 auto 40px
    }

    #foot .foot_navi li a {
        font-size: 14px
    }

    #foot .foot_navi li a[target=_blank]::after {
        width: 17px;
        height: 20px;
        top: 0;
        right: -20px;
        background: url("../img/icon_new_window_pc.svg") no-repeat
    }

    #foot .foot_navi li a:hover {
        text-decoration: underline
    }

    #foot .foot_sns {
        margin: 0 0 60px
    }

    #foot .foot_sns ul {
        gap: 0 38px;
        margin: 0 0 30px
    }

    #foot .foot_sns li {
        height: 25px
    }

    #foot .foot_sns li.x {
        width: 25px
    }

    #foot .foot_sns li.instagram {
        width: 25px
    }

    #foot .foot_sns li.tiktok {
        width: 21px
    }

    #foot .foot_sns li.youtube {
        width: 31px
    }

    #foot .foot_sns li a {
        transition: opacity .3s
    }

    #foot .foot_sns li a:hover {
        opacity: .8
    }

    #foot .foot_sns .link_sns_list a {
        font-size: 14px
    }

    #foot .foot_sns .link_sns_list a:hover {
        text-decoration: underline
    }

    #foot .copyright {
        padding: 52px 0 0;
        font-size: 12px
    }
}

@media(min-width: 961px) {
    #foot .foot_navi {
        grid-template-columns: 1fr 1fr 1fr
    }
}

@media(min-width: 1101px) {
    #foot {
        padding: 215px 0 52px
    }
}

@media(any-hover: hover) {
    #foot a:hover {
        opacity: 1
    }
}

#plan_popular {
    margin-bottom: 30.2326vw;
    padding: 0 0 6.98vw
}

#plan_popular.decoration {
    padding-top: 28.8372vw;
    padding-bottom: 0
}

#plan_popular.top {
    margin-bottom: 7.44vw;
    padding-top: 6.51vw
}

#plan_popular .title {
    margin: 0 0 6.98vw
}

#plan_popular .title .eng {
    width: 60.47vw;
    margin: 0 auto 3.48vw
}

#plan_popular .lower_title {
    margin: 0 0 5.814vw
}

#plan_popular .lead {
    margin-bottom: 1.8em;
    text-align: left;
    font-size: 4.186vw;
    line-height: 1.78
}

#plan_popular .lead a {
    text-decoration: underline;
    color: rgb(var(--link-clr))
}

#plan_popular .lead+.comment_list {
    margin: -1em 0 1.8em
}

#plan_popular .plan_list {
    display: flex;
    flex-direction: column;
    gap: 4.65vw 0;
    margin: 0 0 4.65vw
}

#plan_popular .plan_list li {
    box-sizing: border-box;
    background: rgb(var(--white-clr));
    border-radius: 4.65vw
}

#plan_popular .plan_list li:not(.junior):not(.student) {
    border-radius: 4.65vw 4.65vw 16.28vw 16.28vw
}

#plan_popular .plan_list li.junior,
#plan_popular .plan_list li.student {
    padding: 14.8837vw 10.47vw 5.12vw
}

#plan_popular .plan_list li .headline {
    display: block;
    position: relative;
    margin: 0 0 3.72vw;
    font-size: 5.81vw;
    font-weight: 800;
    color: rgb(var(--orange-clr))
}

#plan_popular .plan_list li .headline::before {
    content: "";
    display: block;
    position: absolute;
    left: 50%;
    transform: translateX(-50%)
}

#plan_popular .plan_list li.junior .headline::before {
    width: 7.4419vw;
    height: 6.2791vw;
    top: -9.5349vw;
    background: url("../img/icon_leaf.svg") no-repeat left top/contain
}

#plan_popular .plan_list li.student .headline::before {
    width: 8.6047vw;
    height: 5.814vw;
    top: -9.0698vw;
    background: url("../img/icon_graduationcap.svg") no-repeat left top/contain
}

#plan_popular .plan_list li .headline_txt {
    display: block;
    position: relative;
    margin-bottom: 3.72vw;
    font-size: 3.72vw;
    font-weight: 600
}

@media(min-width: 601px) {
    #plan_popular {
        margin-bottom: 140px;
        padding: 0 0 57px
    }

    #plan_popular.decoration {
        padding-top: 135px
    }

    #plan_popular.top {
        margin-bottom: 45px;
        padding-top: 72px
    }

    #plan_popular .title {
        margin: 0 0 63px
    }

    #plan_popular .title .eng {
        width: 392px;
        margin: 0 auto 26px
    }

    #plan_popular .lower_title {
        margin: 0 0 40px
    }

    #plan_popular .lead {
        font-size: inherit
    }

    #plan_popular .plan_list {
        flex-wrap: wrap;
        justify-content: center;
        gap: 47px 0;
        max-width: 780px;
        margin: 0 auto 35px
    }

    #plan_popular .plan_list li,
    #plan_popular .plan_list li:not(.junior):not(.student) {
        border-radius: 20px 20px 70px 70px
    }

    #plan_popular .plan_list li.junior,
    #plan_popular .plan_list li.student {
        padding: 82px 30px 25px
    }

    #plan_popular .plan_list li .headline {
        font-size: 25px;
        margin: 0 0 16px
    }

    #plan_popular .plan_list li.junior .headline::before {
        width: 32px;
        height: 27px;
        top: -40px
    }

    #plan_popular .plan_list li.student .headline::before {
        width: 37px;
        height: 25px;
        top: -39px
    }

    #plan_popular .plan_list li .headline_txt {
        margin-bottom: 30px;
        font-size: 16px
    }

    #plan_popular .plan_list .comment_list {
        max-width: 600px;
        margin: 0 auto
    }
}

@media(min-width: 961px) {
    #plan_popular.top {
        margin-bottom: 50px
    }
}

@media(min-width: 1101px) {
    #plan_popular .plan_list {
        flex-direction: row;
        gap: 47px min(50px, 2.78vw);
        max-width: none;
        margin: 0 0 35px
    }

    #plan_popular .plan_list li {
        width: calc((100% - min(50px, 2.78vw)*2)/3)
    }
}

#plan_popular .plan_list dl {
    background: rgba(0, 0, 0, 0)
}

#plan_popular .plan_list dt {
    position: relative;
    padding: 4.88vw 24vw 0 10.47vw
}

#plan_popular .plan_list dt .plan_name {
    display: grid;
    align-items: center;
    min-height: 13.95vw;
    text-align: left;
    font-size: 5.81vw;
    font-weight: 800;
    line-height: 1.3;
    padding: 2vw 0
}

#plan_popular .plan_list dt .plan_name .student {
    color: rgb(var(--orange-clr))
}

#plan_popular .plan_list dt .frequency {
    position: absolute;
    width: 16.28vw;
    height: 20.7vw;
    padding: 3vw 0 0;
    top: 0;
    right: 5.12vw;
    font-size: 5.81vw;
    font-weight: 700;
    background: url("../img/plan_list_frequency_bg.svg") no-repeat left top/contain;
    box-sizing: border-box
}

#plan_popular .plan_list dt .frequency .number {
    font-size: 9.53vw
}

#plan_popular .plan_list dt .frequency .mini {
    display: block;
    font-size: 3.6vw
}

#plan_popular .plan_list dd {
    padding: 2.79vw 4.65vw 4.65vw
}

#plan_popular .plan_list dd .icon_list {
    display: flex;
    justify-content: center;
    gap: 0 1.63vw;
    margin: 0 0 .93vw
}

#plan_popular .plan_list dd .icon_list li {
    width: 11.63vw
}

#plan_popular .plan_list dd .price {
    margin: 0 0 3.26vw
}

#plan_popular .plan_list dd .price .installments {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0 2.33vw
}

#plan_popular .plan_list dd .price .installments .monthly {
    width: 14.42vw;
    height: 14.42vw;
    padding: 4.8vw 0 0;
    font-size: 4.18vw;
    font-weight: 600;
    background: rgba(127, 107, 115, .21);
    border-radius: 50%;
    box-sizing: border-box
}

#plan_popular .plan_list dd .price .installments .amount {
    color: rgb(var(--orange-clr));
    position: relative;
    font-size: 9.3vw;
    font-weight: 800
}

#plan_popular .plan_list dd .price .installments .amount .number {
    font-size: 17.21vw;
    font-weight: 700
}

#plan_popular .plan_list dd .price .installments .amount .tax {
    display: inline-block;
    position: absolute;
    top: 2.67vw;
    right: -1.6vw;
    font-size: 3.02vw;
    font-weight: 600
}

#plan_popular .plan_list dd .price .lump_sum {
    font-size: 3.72vw;
    font-weight: 600
}

@media(min-width: 601px) {
    #plan_popular .plan_list dt {
        padding: 0 100px 0 40px
    }

    #plan_popular .plan_list dt .plan_name {
        min-height: 90px;
        font-size: 25px;
        line-height: 1.3;
        padding: 20px 0 10px
    }

    #plan_popular .plan_list dt .frequency {
        width: 70px;
        height: 89px;
        padding: 18px 0 0;
        right: 22px;
        font-size: 25px
    }

    #plan_popular .plan_list dt .frequency .number {
        font-size: 41px
    }

    #plan_popular .plan_list dt .frequency .mini {
        font-size: 17px
    }

    #plan_popular .plan_list dd {
        padding: 9px 30px 20px
    }

    #plan_popular .plan_list dd .icon_list {
        gap: 0 7px;
        margin: 0 0 9px
    }

    #plan_popular .plan_list dd .icon_list li {
        width: 50px
    }

    #plan_popular .plan_list dd .price {
        margin: 0 0 20px
    }

    #plan_popular .plan_list dd .price .installments {
        gap: 0 8px
    }

    #plan_popular .plan_list dd .price .installments .monthly {
        width: 62px;
        height: 62px;
        padding: 20px 0 0;
        font-size: 18px
    }

    #plan_popular .plan_list dd .price .installments .amount {
        font-size: 40px
    }

    #plan_popular .plan_list dd .price .installments .amount .number {
        font-size: 74px
    }

    #plan_popular .plan_list dd .price .installments .amount .tax {
        top: 12px;
        right: -6px;
        font-size: 13px
    }

    #plan_popular .plan_list dd .price .lump_sum {
        font-size: 16px
    }
}

@media(min-width: 1101px) {
    #plan_popular .plan_list dt {
        padding: 0 100px 0 min(40px, 2.22vw)
    }

    #plan_popular .plan_list dt .plan_name {
        font-size: min(25px, 2vw)
    }

    #plan_popular .plan_list dd .price .installments .monthly {
        display: flex;
        align-items: center;
        justify-content: center;
        width: min(62px, 4.96vw);
        height: min(62px, 4.96vw);
        padding: 0;
        font-size: min(18px, 1.44vw)
    }

    #plan_popular .plan_list dd .price .installments .amount {
        font-size: min(40px, 3.2vw)
    }

    #plan_popular .plan_list dd .price .installments .amount .number {
        font-size: min(74px, 5.92vw)
    }

    #plan_popular .plan_list dd .price .installments .amount .tax {
        font-size: min(13px, 1.04vw)
    }
}

.discount_content {
    padding: 5.35vw 0
}

.discount_list {
    display: flex;
    flex-direction: column;
    gap: 4.65vw 0
}

.discount_list dl {
    display: grid;
    grid-template-rows: auto 1fr;
    height: 100%
}

.discount_list dt,
.discount_list dd {
    position: relative;
    background: rgb(var(--white-clr));
    border-radius: 4.65vw;
    overflow: hidden
}

.discount_list dt {
    position: relative;
    padding: 5.12vw 1em
}

.discount_list dt::before {
    position: absolute;
    display: block;
    content: "";
    width: calc(100% - 8.37vw);
    height: 1.16vw;
    bottom: -0.5vw;
    left: 50%;
    background: url("../img/border_dot_green.svg") space left top/auto 100%;
    transform: translateX(-50%)
}

.discount_list dt::after {
    position: absolute;
    display: block;
    content: "";
    width: 6.9767vw;
    height: 6.9767vw;
    top: 50%;
    right: 6.51vw;
    background: url("../img/btn_icon_bg_orange_arrow_white.svg") no-repeat left top/contain;
    transform: translateY(-50%)
}

.discount_list dt .discount_name {
    font-size: 7.44vw;
    font-weight: 800;
    line-height: 1.3;
    text-shadow: .93vw .93vw 0px #ded3d7
}

.discount_list dd {
    padding: 4.18vw 4.42vw 4vw
}

.discount_list dd::before {
    position: absolute;
    display: block;
    content: "";
    width: calc(100% - 8.37vw);
    height: 1.16vw;
    top: -0.7vw;
    left: 50%;
    background: url("../img/border_dot_green.svg") space left top/auto 100%;
    transform: translateX(-50%)
}

.discount_list dd .price {
    margin: 0 0 1.16vw;
    font-size: 8.6vw;
    font-weight: 800;
    color: rgb(var(--orange-clr))
}

.discount_list dd .price .maximum {
    display: inline-block;
    margin: 0 .1em 0 0;
    vertical-align: -0.4em;
    writing-mode: vertical-rl;
    font-size: 5.12vw;
    letter-spacing: .1em
}

.discount_list dd .price .number {
    display: inline-block;
    vertical-align: -0.08em;
    font-size: 14.88vw;
    font-weight: 700
}

.discount_list dd .text {
    margin: 0 0 1.16vw !important;
    text-align: left !important;
    line-height: 1.4 !important;
    font-weight: 600
}

.discount_list dd .comment li {
    position: relative;
    padding: 0 0 0 1em;
    text-align: left;
    font-size: 2.56vw;
    line-height: 1.35
}

.discount_list dd .comment>li::before {
    position: absolute;
    display: block;
    content: "＊";
    top: 0;
    left: 0
}

.discount_list a {
    display: block;
    height: 100%
}

@media(min-width: 601px) {
    .discount_content {
        padding: 92px 0
    }

    .discount_list {
        max-width: 780px;
        margin: 0 auto;
        gap: 40px 0;
        justify-content: center
    }

    .discount_list dt,
    .discount_list dd {
        border-radius: 20px
    }

    .discount_list dt {
        padding: 21px 1em 22px;
        transition-duration: .3s;
        transition-timing-function: cubic-bezier(0.37, 0, 0.63, 1);
        transition-property: top, left, transform
    }

    .discount_list dt::before {
        width: calc(100% - 52px);
        height: 6px;
        bottom: -2px
    }

    .discount_list dt::after {
        width: 30px;
        height: 30px;
        right: 28px
    }

    .discount_list dt .discount_name {
        font-size: 32px;
        text-shadow: 4px 4px 0px #ded3d7
    }

    .discount_list dd {
        padding: 30px 25px 30px
    }

    .discount_list dd::before {
        width: calc(100% - 52px);
        height: 6px;
        top: -3px
    }

    .discount_list dd .price {
        font-size: 37px;
        margin: 0 0 16px
    }

    .discount_list dd .price .maximum {
        font-size: 22px
    }

    .discount_list dd .price .number {
        font-size: 64px
    }

    .discount_list dd .text {
        margin: 0 0 4px !important;
        line-height: 1.46 !important
    }

    .discount_list dd .comment li {
        font-size: 11px;
        line-height: 1.35
    }
}

@media(min-width: 961px) {
    .discount_list {
        flex-wrap: wrap;
        flex-direction: row;
        gap: 30px min(50px, 2.94vw);
        max-width: none
    }

    .discount_list>li {
        width: calc((100% - 50px)/2)
    }

    .discount_list dt .discount_name {
        font-size: min(32px, 2.46vw)
    }

    .discount_list dd .price {
        font-size: min(37px, 2.85vw)
    }

    .discount_list dd .price .maximum {
        font-size: min(22px, 1.69vw)
    }

    .discount_list dd .price .number {
        font-size: min(60px, 4.92vw)
    }

    .discount_list.col3>li {
        width: calc((100% - 100px)/3)
    }
}

#discount {
    background: rgb(var(--white-clr)) url("../img/discount_bg.svg") no-repeat left 31.16vw/100% auto
}

#discount .section_decoration {
    margin-top: 0
}

#discount .section_decoration .section_decoration_svg {
    margin: 0 0 3.6079vw
}

#discount .title {
    position: relative;
    margin: 0 0 2vw;
    margin: 0 0 11.1628vw;
    font-size: 6.51vw;
    font-weight: 600;
    line-height: 1.2
}

#discount .title .fs_small {
    font-size: 4.18vw;
    color: #ab9ca2
}

#discount .title .em {
    font-size: 9.3vw;
    color: rgb(var(--orange-clr))
}

#discount .top_comment {
    margin: -9.1628vw 0 6vw;
    font-size: 3.26vw
}

#discount .top_comment .sub {
    margin-top: .3em;
    display: block;
    font-size: 4.41vw;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: .15em;
    color: #593e49
}

#discount .top_comment .sub .em {
    font-size: 1.3em
}

#discount .top_comment small {
    display: inline-block
}

#discount .link_area {
    padding: 10.23vw 0 0
}

#discount .link_area ul {
    display: flex;
    flex-direction: column;
    gap: 5.58vw 0
}

@media(min-width: 601px) {
    #discount {
        background-position: left 89px
    }

    #discount .section_decoration .section_decoration_svg {
        margin: 0 0 32px
    }

    #discount .title {
        margin: 0 0 10px;
        margin: 0 0 45px;
        font-size: 28px;
        line-height: 1.29
    }

    #discount .title .fs_small {
        font-size: 18px
    }

    #discount .title .em {
        font-size: 40px
    }

    #discount .top_comment {
        margin: -35px 0 70px;
        font-size: 12px
    }

    #discount .top_comment .sub {
        font-size: 19px
    }

    #discount .link_area {
        padding: 45px 0 0
    }

    #discount .link_area ul {
        gap: 20px 0
    }
}

@media(min-width: 961px) {
    #discount {
        background-image: url("../img/discount_bg_pc.svg");
        background-position: center top 10px;
        background-size: initial
    }

    #discount .link_area ul {
        flex-direction: row;
        justify-content: center;
        gap: 0 36px
    }

    #discount .link_area li {
        width: calc((100% - 36px)/2);
        max-width: 300px
    }
}

.splide .splide__track {
    cursor: grab
}

#reason_slide {
    padding: 29.3023vw 0 0
}

#reason_slide .grad {
    background: linear-gradient(45deg, rgb(var(--grad-p-clr)) 0%, rgb(var(--grad-b-clr)) 50%, rgb(var(--grad-g-clr)) 100%)
}

#reason_slide .round_corner {
    padding: 0 0 11.1628vw
}

#reason_slide .lower_title {
    margin-bottom: 0
}

#reason_slide .inner {
    margin: 0 !important;
    padding: 0 !important;
    max-width: 100% !important
}

#reason_slide .btn_area {
    padding: 4.18vw 0 0
}

@media(min-width: 601px) {
    #reason_slide {
        padding: 135px 0 0
    }

    #reason_slide .round_corner {
        padding: 0 0 65px
    }

    #reason_slide .btn_area {
        padding: 22px 0 0
    }
}

.reason_swiper {
    position: relative;
    overflow: hidden;
    padding: 6.7442vw 0 4.18vw;
    z-index: 10
}

.reason_swiper .splide__track {
    overflow: visible
}

.reason_swiper .splide__slide {
    background: rgb(var(--white-clr));
    border-radius: 76.27vw;
    width: 76.27vw;
    height: auto;
    aspect-ratio: 328/465;
    overflow: hidden
}

.reason_swiper .splide__slide small {
    margin-top: 1em;
    padding: 0 1.4em;
    display: block;
    text-align: center
}

.reason_swiper .splide__slide small::before {
    position: inherit
}

.reason_swiper .splide__slide .point {
    position: relative;
    display: inline-block;
    padding: 0 0 1.16vw;
    margin: 0 0 4.18vw;
    font-size: 8.83vw;
    color: #99c8e3
}

.reason_swiper .splide__slide .point::after {
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    background: #99c8e3;
    position: absolute;
    left: 0;
    bottom: 0
}

.reason_swiper .splide__slide .text {
    padding: 0 1em;
    line-height: 1.44;
    font-size: 5.12vw;
    font-weight: 600
}

.reason_swiper .splide__slide .text .em .fz_big {
    font-size: 7.9vw
}

.reason_swiper .splide__slide .img {
    width: 100%;
    margin: 0 0 3.72vw;
    border-radius: 45.35vw 45.35vw 0 0;
    overflow: hidden
}

.reason_swiper .splide__slide .img img {
    width: 100%;
    height: 100%;
    aspect-ratio: 16/9;
    object-fit: cover
}

.reason_swiper .splide__pagination {
    counter-reset: pagination-num;
    position: static;
    margin-top: 1rem;
    padding: 0;
    gap: 0 5.58vw
}

.reason_swiper .splide__pagination .splide__pagination__page {
    position: relative;
    width: auto;
    height: auto;
    margin: 0;
    padding: 0 0 2.79vw;
    font-size: 4.65vw;
    font-weight: 400;
    color: #ab9ca2;
    background: rgba(0, 0, 0, 0);
    opacity: 1;
    cursor: pointer
}

.reason_swiper .splide__pagination .splide__pagination__page::before {
    font-family: "DIN", sans-serif;
    counter-increment: pagination-num;
    content: counter(pagination-num, decimal-leading-zero)
}

.reason_swiper .splide__pagination .splide__pagination__page::after {
    position: absolute;
    display: block;
    content: "";
    width: 0;
    height: 0;
    bottom: 0;
    left: 50%;
    border-style: solid;
    border-color: rgba(0, 0, 0, 0) rgba(0, 0, 0, 0) rgb(var(--base-clr)) rgba(0, 0, 0, 0);
    border-width: 0 1.4vw 2.33vw 1.4vw;
    transform: translateX(-50%);
    opacity: 0;
    transition: opacity .5s
}

.reason_swiper .splide__pagination .splide__pagination__page.is-active {
    color: rgb(var(--base-clr));
    transform: scale(1)
}

.reason_swiper .splide__pagination .splide__pagination__page.is-active::after {
    opacity: 1
}

@media(min-width: 601px) {
    .reason_swiper {
        padding: 53px min(85px, 5.9vw) 22px
    }

    .reason_swiper .splide__slide {
        border-radius: 164px;
        width: 328px;
        padding: 0 0 80px
    }

    .reason_swiper .splide__slide small {
        margin-top: 1em;
        padding: 0 1.4em;
        display: block;
        text-align: center
    }

    .reason_swiper .splide__slide small::before {
        position: inherit
    }

    .reason_swiper .splide__slide .point {
        font-size: 45px;
        padding: 0 0 4px;
        margin: 0 0 24px
    }

    .reason_swiper .splide__slide .text {
        line-height: 1.56;
        font-size: 16px;
        padding: 0 1em
    }

    .reason_swiper .splide__slide .text .em .fz_big {
        font-size: 30px
    }

    .reason_swiper .splide__slide .img {
        margin: 0 0 12px;
        border-radius: 164px 164px 0 0
    }

    .reason_swiper .splide__pagination {
        margin-top: 35px;
        gap: 0 40px
    }

    .reason_swiper .splide__pagination .splide__pagination__page {
        font-size: 16px;
        padding: 0 0 16px
    }

    .reason_swiper .splide__pagination .splide__pagination__page::after {
        border-width: 0 6.5px 11.3px 6.5px
    }

    #reason.top .reason_swiper {
        padding-top: 63px
    }
}

.column_list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 6.9767vw;
    margin: 0 0 11.6279vw;
    padding: 0 3.4884vw
}

.column_list a {
    display: block;
    width: 100%
}

.column_list .thumbnail,
#beginner .epilation .content .list li .thumbnail {
    position: relative;
    width: 100%;
    margin: 0 0 2.7907vw;
    padding-top: calc(100% - .94vw);
    border: .47vw solid #d3eaf9;
    border-radius: 4.65vw;
    overflow: hidden;
    box-sizing: border-box
}

.column_list .thumbnail img,
#beginner .epilation .content .list li .thumbnail img {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    object-fit: cover
}

.column_list .headline {
    display: block;
    text-align: left;
    position: relative;
    font-weight: 600;
    line-height: 1.2
}

.column_list .category {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    gap: 0 1.16vw;
    margin: 0 0 2.33vw;
    padding: 0 0 0 5.81vw
}

.column_list .category::before {
    position: absolute;
    display: block;
    content: "";
    width: 3.48vw;
    height: 3.26vw;
    top: .7vw;
    left: 0;
    background: url("../img/icon_pencil.svg") no-repeat left top/contain
}

.column_list .category>li {
    padding: .93vw 2.33vw 1.4vw;
    font-size: 3.02vw;
    font-weight: 600;
    color: #74b3d9;
    background: #edf8ff;
    border-radius: 11.63vw
}

@media(min-width: 601px) {
    .column_list {
        max-width: 580px;
        row-gap: 50px;
        column-gap: calc(100% - 500px);
        margin: 0 auto 65px;
        padding: 0
    }

    .column_list a .thumbnail,
    .column_list a .headline {
        transition-duration: .3s;
        transition-timing-function: cubic-bezier(0.37, 0, 0.63, 1);
        transition-property: border-radius
    }

    .column_list .thumbnail,
    #beginner .epilation .content .list li .thumbnail {
        margin: 0 0 17px;
        padding-top: calc(100% - 4px);
        border: 2px solid #d3eaf9;
        border-radius: 20px;
        transition: opacity .3s
    }

    .column_list .headline {
        line-height: 1.53
    }

    .column_list .category {
        gap: 0 5px;
        margin: 0 0 8px;
        padding: 0 0 0 27px
    }

    .column_list .category::before {
        width: 19px;
        height: 17px;
        top: 0;
        left: 0
    }

    .column_list .category li {
        padding: 3px 11px 4px;
        border-radius: 50px;
        font-size: 13px
    }
}

@media(min-width: 961px) {
    .column_list {
        max-width: 940px;
        grid-template-columns: repeat(4, 1fr);
        column-gap: calc((100% - 700px)/3)
    }
}

#faq {
    padding: 0 0 5.81vw;
    margin-bottom: 30.2326vw
}

#faq.decoration {
    padding-top: 28.8372vw
}

#faq.top {
    padding-top: 15.35vw;
    margin-bottom: 11.63vw
}

#faq .common_title {
    margin: 0 0 10.47vw
}

#faq .lower_title {
    margin: 0 0 8.3721vw
}

#faq .faq_list {
    display: flex;
    flex-direction: column;
    gap: 4.65vw 0;
    margin: 0 0 9.3vw
}

#faq .faq_list .faq {
    position: relative;
    border-radius: 4.65vw 4.65vw 0 0;
    transition: padding .4s;
    overflow: hidden
}

#faq .faq_list .faq .q,
#faq .faq_list .faq .a {
    text-align: left;
    background: rgb(var(--white-clr));
    border-radius: 4.65vw
}

#faq .faq_list .faq .q::before,
#faq .faq_list .faq .a::before {
    position: absolute;
    display: block;
    content: "";
    left: 4.65vw
}

#faq .faq_list .faq .q {
    display: block;
    position: relative;
    padding: 4.65vw 12.79vw 4.65vw 13.95vw;
    font-size: 4.18vw;
    font-weight: 600;
    line-height: 1.39;
    cursor: pointer;
    z-index: 1;
    outline: none
}

#faq .faq_list .faq .q::-webkit-details-marker {
    display: none
}

#faq .faq_list .faq .q::before {
    width: 6.2791vw;
    height: 7.907vw;
    top: 50%;
    background: url("../img/icon_q.svg") no-repeat left top/contain;
    transform: translateY(-50%)
}

#faq .faq_list .faq .q::after {
    position: absolute;
    display: block;
    content: "";
    width: 4.41vw;
    height: 2.5581vw;
    top: 50%;
    right: 4.65vw;
    background: url("../img/arrow_orange.svg") no-repeat;
    transform: translateY(-50%);
    transition: transform .4s
}

#faq .faq_list .faq .a {
    position: absolute;
    bottom: 0;
    width: 100%;
    padding: 5.81vw 8.13vw 5.81vw 13.95vw;
    box-sizing: border-box
}

#faq .faq_list .faq .a::before {
    width: 6.5116vw;
    height: 7.6744vw;
    top: 4.65vw;
    background: url("../img/icon_a.svg") no-repeat left top/contain
}

#faq .faq_list .faq .a p {
    font-size: 3.95vw;
    line-height: 1.65
}

#faq .faq_list .faq .a p+p {
    margin-top: 1.785em
}

#faq .faq_list .faq .a a {
    position: relative;
    display: inline-block;
    line-height: 1.65;
    font-size: 3.95vw;
    color: rgb(var(--link-clr));
    padding-left: 6vw;
    text-decoration: underline
}

#faq .faq_list .faq .a a::before {
    content: "";
    display: block;
    overflow: hidden;
    position: absolute;
    top: .75em;
    left: .6em;
    width: 4px;
    height: 4px;
    background-color: rgb(var(--link-clr));
    border-radius: 50%
}

#faq .faq_list .faq .a .code {
    background-color: #f1eff0;
    font-size: .88em;
    border-radius: 4px;
    padding: 1px 4px
}

#faq .faq_list .faq .a small a {
    font-size: 1em
}

#faq .faq_list .faq .a .caution-box01 {
    margin: 0;
    border-radius: 4.6512vw;
    padding: 5.5814vw;
    margin-bottom: 7vw;
    color: #593e49;
    background-color: rgb(var(--grad-b-clr))
}

#faq .faq_list .faq .a .caution-box01 p:last-child {
    margin-bottom: 3vw
}

#faq .faq_list .faq .a .caution-box01 .btn {
    height: 13.95vw;
    padding: 0 13.2558vw;
    border-radius: 27.91vw
}

#faq .faq_list .faq .a .caution-box01 .btn::before {
    width: 6.9767vw;
    height: 6.9767vw;
    right: 3.9535vw
}

#faq .faq_list .faq.open .q::after {
    transform: translateY(-50%) rotate(180deg)
}

@media(min-width: 601px) {
    #faq {
        padding: 0 0 75px;
        margin-bottom: 140px
    }

    #faq.decoration {
        padding-top: 135px
    }

    #faq.top {
        padding-top: 90px;
        margin-bottom: 88px
    }

    #faq .common_title {
        margin: 0 0 60px
    }

    #faq .lower_title {
        margin: 0 0 50px
    }

    #faq .faq_list {
        max-width: 940px;
        gap: 25px 0;
        margin: 0 auto 45px
    }
}

.a_ul_list {
    margin: 2em 0 0
}

.a_ul_list li {
    position: relative;
    padding-left: 6vw;
    font-size: 3.9535vw;
    line-height: 1.4375
}

.a_ul_list li::before {
    content: "";
    display: block;
    overflow: hidden;
    position: absolute;
    top: .6em;
    left: .6em;
    width: 4px;
    height: 4px;
    background-color: rgb(var(--base-clr));
    border-radius: 50%
}

.a_ul_list li a {
    padding-left: 0 !important
}

.a_ul_list li a::before {
    display: none !important
}

.a_ul_list+* {
    margin-top: 2em
}

.a_ul_list.link li::before {
    background-color: rgb(var(--link-clr))
}

@media(min-width: 601px) {
    #faq .faq_list .faq {
        border-radius: 20px 20px 0 0
    }

    #faq .faq_list .faq .q,
    #faq .faq_list .faq .a {
        border-radius: 20px
    }

    #faq .faq_list .faq .q {
        padding: 30px 55px 30px 75px;
        font-size: inherit;
        line-height: 1.3
    }

    #faq .faq_list .faq .a {
        padding: 23px 35px 26px 75px
    }

    #faq .faq_list .faq .q::before,
    #faq .faq_list .faq .a::before {
        left: 27px
    }

    #faq .faq_list .faq .q::before {
        width: 24px;
        height: 30px
    }

    #faq .faq_list .faq .a::before {
        width: 25px;
        height: 29px;
        top: 22px
    }

    #faq .faq_list .faq .q::after {
        width: 11px;
        height: 7px;
        right: 30px
    }

    #faq .faq_list .faq .a p {
        font-size: 14px;
        line-height: 1.78
    }

    #faq .faq_list .faq .a a {
        font-size: 14px;
        line-height: 1.78;
        padding-left: 20px
    }

    #faq .faq_list .faq .a a:hover {
        text-decoration: none
    }

    #faq .faq_list .faq .a a.check {
        display: inline
    }

    #faq .faq_list .faq .a .link_list a:hover {
        text-decoration: none
    }

    #faq .faq_list .faq .a a::before {
        width: 4px;
        height: 4px
    }

    .a_ul_list {
        margin: 10px 0
    }

    .a_ul_list li {
        display: block;
        padding-left: 20px;
        font-size: inherit;
        line-height: 2.1
    }

    .a_ul_list li::before {
        width: 4px;
        height: 4px;
        top: .9em
    }

    #faq .faq_list .faq .a .caution-box01 {
        padding: 40px 50px;
        border-radius: 20px;
        margin-bottom: 20px;
        margin-top: 25px
    }

    #faq .faq_list .faq .a .caution-box01 p:last-child {
        margin-bottom: 0
    }
}

#cliniclist {
    margin: 13.9535vw 0 17.907vw;
    padding: 16.28vw 0 5.35vw
}

#cliniclist.section_decoration {
    margin-bottom: 18.6047vw;
    padding-top: 0
}

#cliniclist .common_title {
    margin: 0 0 6.7442vw
}

#cliniclist .lower_title {
    margin: 0 0 65px
}

#cliniclist .clinic_content {
    display: flex;
    flex-direction: column;
    gap: 6.74vw 0
}

#cliniclist .area .area_title {
    margin: 0 0 4.65vw;
    font-size: 5.35vw;
    font-weight: 600
}

.clinic_list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 4.65vw
}

.clinic_list li {
    width: calc((100% - 4.65vw)/2)
}

.clinic_list li a {
    background: rgb(var(--white-clr));
    display: flex;
    justify-content: center;
    flex-direction: column;
    width: 100%;
    border-radius: 4.65vw;
    overflow: hidden
}

.clinic_list li a .img {
    height: 23.26vw;
    aspect-ratio: 161/87;
    border-radius: 4.65vw 4.65vw 0 0
}

.clinic_list li a .img img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.clinic_list li a .name {
    padding: 4.65vw 1em;
    font-size: 4.65vw;
    font-weight: 600;
    color: rgb(var(--orange-clr))
}

@media(min-width: 601px) {
    #cliniclist {
        margin: 80px 0 78px;
        padding: 85px 0 68px
    }

    #cliniclist.section_decoration {
        margin-bottom: 80px
    }

    #cliniclist .common_title {
        margin: 0 0 65px
    }

    #cliniclist .lower_title {
        margin: 0 0 65px
    }

    #cliniclist .clinic_content {
        gap: 50px 0
    }

    #cliniclist .area .area_title {
        font-size: 20px;
        margin: 0 0 20px
    }

    .clinic_list {
        gap: 40px;
        max-width: 1040px;
        margin: 0 auto
    }

    .clinic_list li {
        width: calc((100% - 80px)/3)
    }

    .clinic_list li a {
        border-radius: 20px;
        transition: .3s cubic-bezier(0.37, 0, 0.63, 1)
    }

    .clinic_list li a .img {
        height: 145px;
        aspect-ratio: 46/29;
        border-radius: 20px 20px 0 0;
        transition: opacity .3s
    }

    .clinic_list li a .name {
        padding: 20px 1em;
        font-size: inherit
    }
}

@media(min-width: 961px) {
    .clinic_list li {
        width: calc((100% - 120px)/4)
    }
}

.info_content {
    display: grid;
    grid-template-columns: 20.9302vw auto;
    align-items: center;
    gap: 0 4.41vw
}

.info_content .ymd {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 1.8605vw;
    align-self: start;
    font-size: 3.7209vw;
    font-weight: 400;
    height: 20.9302vw;
    background: #e0e1f5;
    border-radius: 4.65vw
}

.info_content .text_wrap {
    text-align: left
}

.info_content .text_wrap .cate_wrap {
    display: flex;
    margin: 0 0 2.3256vw;
    gap: 1.1628vw
}

.info_content .text_wrap .cate_wrap .cate {
    padding: 0 2.3256vw;
    font-size: 3.0233vw;
    font-weight: 600;
    line-height: 4.65vw;
    letter-spacing: .05em;
    color: #74b3d9;
    background: rgb(var(--grad-b-clr));
    border-radius: 11.6279vw
}

.info_content .text_wrap .cate_wrap .cate.important {
    color: rgb(var(--white-clr));
    background: rgb(var(--orange-clr))
}

.info_content .text_wrap .article_ttl {
    font-size: 3.7209vw;
    font-weight: 600;
    line-height: 1.4375
}

@media(min-width: 601px) {
    .info_content {
        grid-template-columns: 90px auto;
        gap: 20px
    }

    .info_content .ymd {
        height: 90px;
        gap: 8px;
        font-size: inherit;
        border-radius: 20px
    }

    .info_content .text_wrap .cate_wrap {
        gap: 5px;
        margin: 0 0 10px
    }

    .info_content .text_wrap .cate_wrap .cate {
        padding: 0 10px;
        font-size: 13px;
        line-height: 20px;
        border-radius: 50px
    }

    .info_content .text_wrap .article_ttl {
        position: relative;
        font-size: inherit;
        line-height: 1.53;
        display: inline-block
    }

    .info_content .text_wrap .article_ttl::before {
        position: absolute;
        content: "";
        width: 100%;
        height: 1px;
        background: rgb(var(--base-clr));
        position: absolute;
        bottom: -4px;
        left: 0;
        transform-origin: right;
        transform: scaleX(0);
        transition: transform .3s
    }

    .info_content:hover .text_wrap .article_ttl::before {
        transform-origin: left;
        transform: scaleX(1)
    }
}

@media(any-hover: hover) {
    .info_content:hover {
        opacity: 1
    }
}

.content_caution {
    padding-top: 14.41vw
}

.content_caution .round_corner {
    padding: 18.6047vw 0 12.7907vw
}

.content_caution .common_title {
    margin: 0 0 12.3256vw
}

.content_caution h3 {
    text-align: left;
    margin-bottom: .5em;
    font-size: 4.18vw;
    line-height: 1.66
}

.content_caution .maintext {
    text-align: left;
    margin-bottom: 1em;
    font-size: 4.41vw;
    font-weight: 600;
    color: rgb(var(--orange-clr));
    line-height: 1.66
}

.content_caution .text {
    text-align: left;
    font-size: 3.95vw;
    line-height: 1.88
}

.content_caution .text+h3 {
    margin-top: 1em
}

.content_caution a.inlinetext {
    color: rgb(var(--link-clr));
    display: inline;
    text-decoration: underline;
    font-size: 1em
}

@media(min-width: 601px) {
    .content_caution {
        padding-top: 78px
    }

    .content_caution .round_corner {
        padding: 78px 0 53px
    }

    .content_caution .common_title {
        margin: 0 0 37px
    }

    .content_caution .text {
        font-size: 14px
    }

    .content_caution h3 {
        font-size: 1em
    }

    .content_caution .maintext {
        font-size: 19px
    }
}

.counseling_flow.default {
    padding-top: 13.9535vw
}

.counseling_flow.default .round_corner {
    padding-top: 13.9535vw;
    padding-bottom: 13.9535vw
}

.counseling_flow.default .round_corner h2 {
    margin: 0 0 4.72vw;
    font-size: 8.13vw;
    display: block;
    line-height: 1.15
}

@media(min-width: 601px) {
    .counseling_flow {
        padding: 140px 0 0
    }

    .counseling_flow.default {
        padding-top: 60px
    }

    .counseling_flow .round_corner {
        padding: 0
    }

    .counseling_flow.default .round_corner {
        padding-top: 78px;
        padding-bottom: 60px
    }

    .counseling_flow.default .round_corner h2 {
        margin: 0 0 60px;
        font-size: 30px
    }

    .counseling_flow .lower_title {
        margin: 0 0 28px
    }

    .counseling_flow .lower_title+.lead {
        font-size: 14px;
        margin: 0 0 51px
    }
}

#diagnosis_banner {
    margin: 0 auto 10.93vw
}

#diagnosis_banner a {
    display: block
}

@media(min-width: 601px) {
    #diagnosis_banner {
        margin: 0
    }

    #diagnosis_banner a {
        width: 390px;
        margin: 0 auto 70px
    }

    #diagnosis_banner a {
        transition: opacity .3s
    }

    #diagnosis_banner a:hover {
        opacity: .8
    }
}

.info_list {
    padding: 0 .9302vw
}

.info_list>li {
    position: relative;
    padding: 4.6512vw 0
}

.info_list>li:not(.important)::after {
    position: absolute;
    display: inline-block;
    content: "";
    width: 100%;
    height: 1.1628vw;
    bottom: -0.5814vw;
    left: 0;
    background: radial-gradient(circle, transparent 45%, rgb(var(--white-clr)) 45%), linear-gradient(to left, rgb(var(--grad-b-clr)), #F9E0D8);
    background-repeat: repeat-x;
    background-size: 1.1628vw 1.1628vw, 100% 1.1628vw
}

.info_list>li.important {
    margin: 0 -2.093vw 2.5581vw;
    padding: 2.3256vw calc(2.093vw - 1px);
    border: 1px solid rgb(var(--brown-clr));
    border-radius: 4.6512vw
}

@media(min-width: 601px) {
    .info_list {
        max-width: 800px;
        margin: 0 auto;
        padding: 0
    }

    .info_list>li {
        padding: 20px 0
    }

    .info_list>li:not(.important)::after {
        height: 5px;
        bottom: -2.5px;
        background-size: 5px 5px, 100% 5px
    }

    .info_list>li.important {
        margin: 0 -70px 21px;
        padding: 30px 69px;
        border-radius: 20px
    }
}

@media(min-width: 601px)and (max-width: 960px) {
    .info_list>li.important {
        margin-left: 0;
        margin-right: 0;
        padding-left: 30px;
        padding-right: 30px
    }
}

.category_wrap {
    display: block;
    text-align: center;
    padding: 0;
    margin-bottom: 4vw
}

.category_wrap .category {
    padding: 1vw 2.33vw;
    font-size: 3.02vw;
    font-weight: 600;
    color: #74b3d9;
    background: #edf8ff;
    border-radius: 11.63vw;
    line-height: 1;
    text-decoration: none
}

.category_wrap .category.important {
    color: rgb(var(--white-clr));
    background: rgb(var(--orange-clr))
}

@media(min-width: 601px) {
    .category_wrap {
        margin-bottom: 12px
    }

    .category_wrap .category {
        padding: 3px 11px;
        border-radius: 50px;
        font-size: 13px
    }
}

.free_counseling_flow {
    margin: 0 0 9.3vw
}

.free_counseling_flow .splide__slide {
    width: 62.09vw
}

.free_counseling_flow .splide__slide .circle {
    position: relative;
    width: 100%;
    height: 62.09vw;
    margin: 0 0 9.3vw;
    padding: 5.81vw;
    background: rgb(var(--grad--p-clr));
    background: linear-gradient(45deg, rgb(var(--grad--p-clr)) 26%, rgb(202, 204, 224) 74%);
    border: .47vw rgb(var(--white-clr)) solid;
    border-radius: 50%
}

.free_counseling_flow .splide__slide .circle .img {
    width: 49.3vw;
    height: 49.3vw;
    border-radius: 50%;
    overflow: hidden
}

.free_counseling_flow .splide__slide .circle .num {
    position: absolute;
    width: 96%;
    padding: .7vw 0 9.3vw;
    bottom: 0;
    left: 50%;
    font-size: 10.47vw;
    color: rgb(var(--white-clr));
    border-top: 1px solid rgb(var(--white-clr));
    transform: translateX(-50%)
}

.free_counseling_flow .splide__slide .text {
    font-size: 6.05vw;
    font-weight: 600;
    padding-bottom: .2vw
}

.free_counseling_flow .splide__slide .supplement {
    margin: 5.5814vw 0 0;
    text-align: left;
    font-size: 4.186vw;
    font-weight: 400;
    line-height: 1.77
}

.free_counseling_flow .splide__slide .supplement a {
    color: rgb(var(--link-clr));
    text-decoration: underline
}

.free_counseling_flow .splide__slide .supplement a:hover {
    text-decoration: none
}

@media(min-width: 601px) {
    .free_counseling_flow {
        padding: 0;
        margin: 0 0 35px
    }

    .free_counseling_flow .splide__slide {
        width: 267px
    }

    .free_counseling_flow .splide__slide .circle {
        height: 267px;
        margin: 0 0 37px;
        padding: 26px;
        border: 2px rgb(var(--white-clr)) solid
    }

    .free_counseling_flow .splide__slide .circle .img {
        width: 212px;
        height: 212px
    }

    .free_counseling_flow .splide__slide .circle .num {
        padding: 0 0 38px;
        font-size: 45px
    }

    .free_counseling_flow .splide__slide .text {
        font-size: 16px;
        padding-bottom: 0
    }

    .free_counseling_flow .splide__slide .supplement {
        margin: 33px 0 0;
        font-size: inherit
    }

    .free_counseling_flow .splide__slide .supplement a:hover {
        text-decoration: none
    }
}

@media(min-width: 961px) {
    #not_found.lower .intro .lead {
        text-align: center
    }
}

@media(max-width: 960px) {
    #not_found.lower .intro .page_title {
        line-height: 1.2
    }
}