@charset "UTF-8";

/*
Theme Name:表参道 HIKARI DENTAL 矯正歯科 Theme
Theme URI:
Description:表参道 HIKARI DENTAL 矯正歯科 web site.
Version: 1.0
Author:
Author URI:
*/

html {
    font-size: 62.5%;
    /* 62.5% 10px 1em */
    scroll-behavior: smooth;
    scroll-padding-top: 160px;
    --black: #4a4749;
    --blue: #55b9f1;
    --hover: #46eeff;
    --pink: #ffe2f2;
    --yellow: #fff664;
    --line: #a49da0;
    --Mincho: YakuHanMP, "Noto Serif JP", sans-serif;
    --Gothic: "Noto Sans JP", "Hiragino Sans", "Yu Gothic UI", "Yu Gothic", Meiryo, sans-serif;
    --en: "Cormorant Garamond", serif;
    --Oswald: "Oswald", sans-serif;
    --icomoon: "icomoon";
}

@media screen and (max-width: 768px) {
    html {
        scroll-padding-top: 60px;
    }
}

html .grecaptcha-badge {
    visibility: hidden;
}

html body {
    font-family: var(--Gothic);
    color: var(--black);
    font-size: 1.5rem;
    font-weight: 400;
    line-height: 2;
    min-width: 1200px;
    position: relative;
}

html img {
    vertical-align: top;
    max-width: 100%;
    height: auto;
}

html h1,
html h2,
html h3,
html h4,
html h5,
html em {
    font-family: var(--Mincho);
    line-height: 1.35;
    letter-spacing: 0;
    font-weight: 500;
}

html .en {
    font-family: var(--en);
    font-weight: 300;
    font-size: 9rem;
    line-height: 1;
    letter-spacing: 0.05em;
}

@media screen and (max-width: 767px) {
    html .en {
        font-size: 16vw;
        letter-spacing: 0.02em;
        text-align: center;
        line-height: 1;
    }
}

html p {
    font-weight: 400;
    letter-spacing: 0.06em;
}

@media screen and (max-width: 767px) {
    html p {
        font-size: 1.4rem;
        font-weight: 400;
        letter-spacing: 0.06em;
    }
}

html small.small {
    padding-top: 0.5em;
    display: block;
    font-size: 1.2rem;
    line-height: 1.5;
}

@media screen and (max-width: 767px) {
    html small.small {
        padding-top: 0.5em;
        display: block;
        font-size: 1rem;
        line-height: 1.5;
    }
}

html a {
    text-decoration: none;
    border: 0;
    transition: all 0.4s ease;
    backface-visibility: hidden;
    color: var(--blue);
}

html a img {
    transition: all 0.2s ease;
    backface-visibility: hidden;
}

html a:hover {
    color: var(--hover);
}

html a:hover img {
    filter: brightness(110%);
}

html a[target=_blank]:not(.none) {
    /*text-decoration: underline;*/
}

html a[target=_blank]:not(.none):hover {
    color: var(--hover);
}

html a[target=_blank]:not(.none):after {
    content: "\e910";
    font-family: var(--icomoon);
    font-size: 1rem;
    margin-left: 4px;
    padding-right: 4px;
}

html .highlight {
    display: inline;
    background: linear-gradient(var(--yellow) 70%, var(--yellow) 0%);
    background-position: 0 100%;
    background-repeat: no-repeat;
    background-size: 0% 15px;
    transition: background-size 1s;
    padding-bottom: 0;
    font-weight: 500;
    mix-blend-mode: multiply;
}

html .highlight.active {
    background-size: 100% 15px;
}

html .highlight_line {
    display: inline;
    background: linear-gradient(var(--black) 70%, var(--black) 0%);
    background-position: 0 100%;
    background-repeat: no-repeat;
    background-size: 0% 1px;
    transition: background-size 1s;
    padding-bottom: 0;
    font-weight: 500;
    mix-blend-mode: multiply;
}

html .highlight_line.active {
    background-size: 100% 1px;
}

html .animation {
    transform: translate(0px, 10px);
    opacity: 0;
    transition: opacity 1s ease, transform 1s ease;
    backface-visibility: hidden;
}

html .animation_left {
    transform: translate(-10px, 0px);
    opacity: 0;
    transition: opacity 1s ease, transform 1s ease;
    backface-visibility: hidden;
}

html .animation_left.active {
    transform: translate(0%, 0%);
    opacity: 1;
}

html .animation_right {
    transform: translate(10px, 0px);
    opacity: 0;
    transition: opacity 1s ease, transform 1s ease;
    backface-visibility: hidden;
}

html .animation_right.active {
    transform: translate(0%, 0%);
    opacity: 1;
}

html .animation_down {
    transform: translate(0px, -10px);
    opacity: 0;
    transition: opacity 1s ease, transform 1s ease;
    backface-visibility: hidden;
}

html .animation_down.active {
    transform: translate(0%, 0%);
    opacity: 1;
}

html .animation.active {
    transform: translate(0%, 0%);
    opacity: 1;
}

html main {
    position: relative;
    width: 100%;
    box-sizing: border-box;
    overflow: hidden;
    z-index: 2;
}

@media screen and (max-width: 768px) {
    html body {
        min-width: 320px;
        box-sizing: border-box;
        font-size: 1.4rem;
    }
    html .pc {
        display: none !important;
    }
}

@media screen and (min-width: 769px) {
    html .sp {
        display: none !important;
    }
}

html a.tel {
    display: flex;
    justify-content: center;
    align-items: baseline;
    gap: 5px;
    line-height: 1;
    white-space: nowrap;
    width: fit-content;
    color: var(--black);
}

html a.tel span {
    font-family: var(--Oswald);
    font-weight: 400;
    letter-spacing: 0.06em;
    font-size: 3rem;
}

html .tag {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    flex-wrap: wrap;
    gap: 0 10px;
}

html .tag li a {
    font-size: 1.1rem;
    border: 1px solid var(--black);
    color: var(--black);
    border-radius: 2px;
    line-height: 1;
    padding: 2px 8px;
}

html .tag li a:hover {
    border-color: var(--blue);
    color: var(--blue);
}

@media screen and (max-width: 767px) {
    html .tag {
        display: flex;
        justify-content: flex-start;
        align-items: center;
        flex-wrap: wrap;
        gap: 5px;
    }
    html .tag li a {
        font-size: 1rem;
        padding: 2px 8px;
    }
}

html header {
    position: fixed;
    z-index: 11;
    width: 100%;
    padding: 0;
    box-sizing: border-box;
    transition: all 0.2s ease;
}

html header.on {
    background: rgba(255, 255, 255, 0.8);
    backdrop-filter: blur(12px);
    width: 100%;
}

html header.on .header_content .logo {
    left: 15px;
    top: 5px;
}

html header.on .header_content .logo img {
    width: 124px;
}

html header.slide-open {
    background: rgba(255, 255, 255, 0);
    backdrop-filter: blur(0);
}

html header.slide-open .seo {
    opacity: 0;
}

html header.slide-open .header_content .logo {
    top: 15px;
    filter: brightness(100000%);
}

html header.slide-open .header_content .logo img {
    width: 180px;
}

html header.slide-open .header_content .header_content_inner .tel_box small {
    color: #fff;
}

html header.slide-open .header_content .header_content_inner .tel_box .tel {
    color: #fff;
}

html header.slide-open .header_content .header_content_inner .h-btnbox .contact_btn,
html header.slide-open .header_content .header_content_inner .h-btnbox .rsv_btn {
    background: #4d3746;
    color: #fff;
}

html header.slide-open .header_content .header_content_inner .h-btnbox .rsv_btn {
    background: #4d3746;
    color: #fff;
}

html header .seo {
    position: absolute;
    right: 432px;
    top: 12px;
    z-index: 100;
    line-height: 1.5;
    font-weight: 400;
    font-size: 1rem;
    font-family: var(--Mincho);
}

html header .header_content {
    width: 100%;
    z-index: 10;
    padding-left: 15px;
    box-sizing: border-box;
    display: flex;
    justify-content: flex-end;
    align-items: flex-start;
}

html header .header_content .logo {
    position: absolute;
    left: 25px;
    top: 25px;
    display: block;
    filter: drop-shadow(0px 0px 10px #fff);
}

html header .header_content .header_content_inner {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 20px;
}

html header .header_content .header_content_inner .tel_box {
    display: flex;
    justify-content: flex-end;
    align-items: flex-start;
    padding-top: 10px;
}

html header .header_content .header_content_inner .tel_box small {
    text-align: right;
    font-size: 1rem;
    font-family: var(--Mincho);
    line-height: 1.5;
    padding-right: 20px;
}

html header .header_content .header_content_inner .h-btnbox {
    display: flex;
    justify-content: center;
    align-items: center;
}

html header .header_content .header_content_inner .h-btnbox .instagram {
    width: 62px;
    height: 62px;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    background: #fff;
    margin-right: 20px;
}

html header .header_content .header_content_inner .h-btnbox .contact_btn,
html header .header_content .header_content_inner .h-btnbox .rsv_btn {
    width: 110px;
    height: 110px;
    background: #ffc3df;
    color: #4d2b3e;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
}

html header .header_content .header_content_inner .h-btnbox .contact_btn .icon-mail,
html header .header_content .header_content_inner .h-btnbox .rsv_btn .icon-mail {
    position: relative;
    top: -10px;
    font-size: 2.8rem;
}

html header .header_content .header_content_inner .h-btnbox .contact_btn small,
html header .header_content .header_content_inner .h-btnbox .rsv_btn small {
    font-size: 1.1rem;
    display: block;
    text-align: center;
    line-height: 1.2;
    position: absolute;
    left: 0;
    top: 72px;
    width: 100%;
}

html header .header_content .header_content_inner .h-btnbox .rsv_btn {
    background: #ffe2f2;
}

html header .header_content .header_content_inner .h-btnbox .rsv_btn .icon-cal {
    position: relative;
    top: -10px;
    font-size: 3.2rem;
}

html header .header_content .header_content_inner .h-btnbox #slidemenuBtn {
    width: 110px;
    height: 110px;
    background: #4d3746;
    background-size: 100% 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
}

html header .header_content .header_content_inner .h-btnbox #slidemenuBtn.slide-open>span:before {
    width: 0%;
}

html header .header_content .header_content_inner .h-btnbox #slidemenuBtn.slide-open>span:after {
    width: 0%;
}

html header .header_content .header_content_inner .h-btnbox #slidemenuBtn.slide-open>span span:before {
    width: 100%;
    left: 0;
    transform: rotate(-35deg);
    transition: width 0.2s ease, top 0.2s ease, transform 0.2s ease 0.2s;
    backface-visibility: hidden;
}

html header .header_content .header_content_inner .h-btnbox #slidemenuBtn.slide-open>span span:after {
    width: 100%;
    right: 0;
    transform: rotate(35deg);
    transition: width 0.2s ease, bottom 0.2s ease, transform 0.2s ease 0.2s;
    backface-visibility: hidden;
}

html header .header_content .header_content_inner .h-btnbox #slidemenuBtn small {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    text-align: center;
    color: #fff;
    bottom: 15px;
    font-size: 1.3rem;
    line-height: 1;
    font-weight: 400;
}

html header .header_content .header_content_inner .h-btnbox #slidemenuBtn>span {
    width: 42px;
    height: 28px;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
}

html header .header_content .header_content_inner .h-btnbox #slidemenuBtn>span:before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 1px;
    background: #fff;
    transition: width 0.2s ease;
    backface-visibility: hidden;
    border-radius: 1px;
}

html header .header_content .header_content_inner .h-btnbox #slidemenuBtn>span:after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background: #fff;
    transition: width 0.2s ease;
    backface-visibility: hidden;
    border-radius: 1px;
}

html header .header_content .header_content_inner .h-btnbox #slidemenuBtn>span span:before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 100%;
    height: 1px;
    background: #fff;
    transition: transform 0.2s ease, top 0.2s ease 0.2s;
    backface-visibility: hidden;
    border-radius: 1px;
}

html header .header_content .header_content_inner .h-btnbox #slidemenuBtn>span span:after {
    content: "";
    position: absolute;
    right: 0;
    bottom: calc(50% - 1px);
    width: 100%;
    height: 1px;
    background: #fff;
    transition: transform 0.2s ease, bottom 0.2s ease 0.2s;
    backface-visibility: hidden;
    border-radius: 1px;
}

@media screen and (max-width: 768px) {
    html header {
        position: fixed;
        left: 0;
        top: 0;
        min-width: 100%;
        padding: 0 !important;
        transition: all 0.2s ease;
        z-index: 110;
        padding: 0;
        top: 0;
    }
    html header.subpage .header_content .logo img {
        width: 30vw;
    }
    html header.on .seo {
        margin-top: -17px;
        opacity: 0;
    }
    html header.on .header_content .logo img {
        width: 71px;
    }
    html header.slide-open {
        top: 0;
    }
    html header.slide-open .seo {
        margin-top: -17px;
        opacity: 0;
    }
    html header.slide-open .header_content .logo {
        filter: brightness(100000%);
    }
    html header.slide-open .header_content .logo img {
        width: 120px;
    }
    html header .seo {
        position: static;
        width: 100%;
        height: 17px;
        font-size: 1rem;
        line-height: 17px;
        text-indent: 5px;
        white-space: nowrap;
        z-index: 1;
        text-align: left;
    }
    html header .header_content {
        position: static;
        left: 0;
        top: 0;
        padding: 0;
        width: 100%;
        height: auto;
        z-index: 10;
        transition: all 0.2s ease;
        display: flex;
        justify-content: space-between;
        align-items: center;
    }
    html header .header_content .logo {
        position: static;
        padding: 10px;
    }
    html header .header_content .logo img {
        width: 45.3vw;
    }
    html header .header_content .header_content_inner .tel_box {
        display: none;
    }
    html header .header_content .header_content_inner .h-btnbox {
        position: fixed;
        top: 0;
        right: 0;
    }
    html header .header_content .header_content_inner .h-btnbox .instagram,
    html header .header_content .header_content_inner .h-btnbox .contact_btn,
    html header .header_content .header_content_inner .h-btnbox .rsv_btn {
        display: none;
    }
    html header .header_content .header_content_inner .h-btnbox #slidemenuBtn {
        width: 74px;
        height: 74px;
    }
    html header .header_content .header_content_inner .h-btnbox #slidemenuBtn>span {
        width: 33px;
        height: 25px;
    }
}

html .main_title {
    width: 100%;
    box-sizing: border-box;
    position: relative;
    z-index: 1;
    background: #fff;
}

html .main_title .swiper-container {
    width: 100%;
    box-sizing: border-box;
    position: relative;
    overflow: hidden;
}

html .main_title .swiper-container .swiper-wrapper .swiper-slide {
    width: 100%;
}

html .main_title .swiper-container .swiper-wrapper .swiper-slide img {
    object-fit: cover;
    object-position: top;
    width: 100%;
    height: 880px;
    min-height: 600px;
    max-height: 100vh;
}

html .main_title .swiper-container .swiper-pagination {
    position: absolute;
    z-index: 100;
    left: 20px;
    top: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 22px;
    width: auto;
}

html .main_title .swiper-container .swiper-pagination .swiper-pagination-bullet {
    margin: 0;
    border: none;
    opacity: 1;
    width: 8px;
    height: 8px;
    box-sizing: border-box;
    border-radius: 50%;
    background-color: #fff;
    transition: all 0.4s ease;
}

html .main_title .swiper-container .swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active {
    background: var(--blue);
}

html .main_title .swiper_text {
    position: absolute;
    left: 50px;
    bottom: 80px;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

html .main_title .swiper_text h2 {
    font-size: 3.8rem;
    line-height: 1.5;
}

html .main_title .swiper_text p {
    font-family: var(--Mincho);
    font-size: 2.25rem;
}

@media screen and (max-width: 768px) {
    html .main_title {
        width: 100%;
        height: auto;
        max-height: initial;
        min-height: initial;
    }
    html .main_title .swiper-container {
        width: 100%;
    }
    html .main_title .swiper-container .swiper-wrapper .swiper-slide img {
        object-fit: cover;
        object-position: top;
        width: 100%;
        height: 158vw;
        min-height: initial;
        max-height: initial;
        border-radius: 0;
    }
    html .main_title .swiper-container .swiper-pagination {
        left: 10px;
        gap: 22px;
        height: 158vw;
    }
    html .main_title .swiper-container .swiper-pagination .swiper-pagination-bullet {
        background-color: #fff;
    }
    html .main_title .swiper_text {
        left: 0;
        bottom: 0;
        z-index: 11;
        width: 100%;
        padding: 20px 0;
        text-align: center;
        gap: 10px;
    }
    html .main_title .swiper_text h2 {
        font-size: 7.2vw;
        color: #fff;
    }
    html .main_title .swiper_text p {
        font-size: 4.26vw;
        color: #fff;
    }
}

html .check_point .top_inner {
    width: 100%;
    height: 720px;
    background: url("img/index/check_bg.webp") no-repeat top center;
    background-size: cover;
    position: relative;
}

html .check_point .top_inner .vertical {
    position: absolute;
    left: 12.5vw;
    top: 0;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    flex-direction: row-reverse;
    padding-top: 115px;
    gap: 5px;
}

html .check_point .top_inner .vertical span {
    writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    -webkit-writing-mode: vertical-rl;
    white-space: pre;
    font-size: 3.3rem;
}

html .check_point .top_inner .vertical span:nth-child(1) {
    position: relative;
}

html .check_point .top_inner .vertical span:nth-child(1):before {
    content: "";
    position: absolute;
    left: calc(50% - 1px);
    top: -115px;
    width: 2px;
    height: 95px;
    background: var(--black);
}

html .check_point .top_inner .vertical span:nth-child(2) {
    text-indent: 1em;
}

html .check_point .top_inner .check_point_inner {
    position: absolute;
    right: 0;
    bottom: -90px;
    padding: 65px 56px 56px;
    width: 578px;
    box-sizing: border-box;
    background: #fff;
    z-index: 1;
}

html .check_point .top_inner .check_point_inner h3 {
    font-family: var(--en);
    font-size: 7rem;
    font-weight: 200;
    line-height: 1;
    font-style: italic;
    position: absolute;
    left: 0;
    top: -40px;
    width: 100%;
    text-align: center;
}

html .check_point .top_inner .check_point_inner ol {
    display: flex;
    flex-direction: column;
    gap: 30px;
}

html .check_point .top_inner .check_point_inner ol li {
    font-size: 1.9rem;
    padding-left: 35px;
    line-height: 24px;
    background: url("img/index/check.webp") no-repeat left center;
    background-size: 25px auto;
}

html .check_point .bottom_inner {
    width: 100%;
    height: 400px;
    background: url("img/index/text_bg.webp") no-repeat center top;
    background-size: 100% 100%;
}

html .check_point .bottom_inner h3 {
    padding-top: 130px;
    text-align: center;
    padding-bottom: 20px;
}

html .check_point .bottom_inner h3 small {
    display: block;
    font-size: 2.4rem;
}

html .check_point .bottom_inner h3 em {
    display: block;
    font-size: 3.6rem;
}

html .check_point .bottom_inner p {
    text-align: center;
}

@media screen and (max-width: 767px) {
    html .check_point .top_inner {
        width: 100%;
        height: auto;
        background: url("img/index/check_bg@sp.webp") no-repeat top center;
        background-size: 100% auto;
        position: relative;
        padding-top: 121vw;
    }
    html .check_point .top_inner .vertical {
        position: absolute;
        left: 30px;
        top: 0;
        display: flex;
        justify-content: center;
        align-items: flex-start;
        flex-direction: row-reverse;
        padding-top: 45px;
        gap: 5px;
    }
    html .check_point .top_inner .vertical span {
        font-size: 2rem;
    }
    html .check_point .top_inner .vertical span:nth-child(1) {
        position: relative;
    }
    html .check_point .top_inner .vertical span:nth-child(1):before {
        content: "";
        position: absolute;
        left: calc(50% - 1px);
        top: -45px;
        width: 1px;
        height: 40px;
        background: var(--black);
    }
    html .check_point .top_inner .vertical span:nth-child(2) {
        text-indent: 1em;
    }
    html .check_point .top_inner .check_point_inner {
        position: relative;
        right: auto;
        bottom: auto;
        padding: 50px 40px 40px;
        width: 100%;
        box-sizing: border-box;
        background: #fff;
        z-index: 1;
    }
    html .check_point .top_inner .check_point_inner h3 {
        font-size: 12vw;
        position: absolute;
        left: 0;
        top: -30px;
        width: 100%;
        text-align: center;
    }
    html .check_point .top_inner .check_point_inner ol {
        display: flex;
        flex-direction: column;
        gap: 30px;
    }
    html .check_point .top_inner .check_point_inner ol li {
        font-size: 1.7rem;
        padding-left: 35px;
        line-height: 24px;
        background: url("img/index/check.webp") no-repeat left center;
        background-size: 25px auto;
    }
    html .check_point .bottom_inner {
        width: 100%;
        height: auto;
        padding: 30px 30px 0;
        box-sizing: border-box;
        background: url("img/index/text_bg@sp.webp") no-repeat center top;
        background-size: 100% auto;
    }
    html .check_point .bottom_inner h3 {
        padding: 0;
        text-align: center;
    }
    html .check_point .bottom_inner h3 small {
        display: block;
        font-size: 1.7rem;
        padding-bottom: 10px;
    }
    html .check_point .bottom_inner h3 em {
        display: block;
        line-height: 1.65;
        font-size: 2.4rem;
    }
    html .check_point .bottom_inner p {
        padding-top: 15vw;
        text-align: center;
    }
}

html .sect_ttl {
    text-align: center;
}

html .sect_ttl .icon-kirakira {
    color: var(--blue);
    font-size: 6.4rem;
}

html .sect_ttl .en {
    display: block;
    font-family: var(--en);
    font-size: 9rem;
    line-height: 1;
}

html .sect_ttl .ttl {
    padding: 20px 0 0;
    display: block;
    font-size: 2.8rem;
}

html .sect_ttl p {
    font-size: 1.8rem;
    font-family: var(--Mincho);
    padding-top: 40px;
}

@media screen and (max-width: 767px) {
    html .sect_ttl .icon-kirakira {
        font-size: 3.8rem;
    }
    html .sect_ttl .en {
        font-size: 13.3vw;
    }
    html .sect_ttl .ttl {
        padding-top: 10px;
        font-size: 5vw;
    }
    html .sect_ttl p {
        font-size: 1.4rem;
        text-align: left;
        padding: 40px 20px 0;
    }
}

html .btn_text {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 16px;
    width: fit-content;
}

html .btn_text.blue span {
    color: var(--blue);
}

html .btn_text:hover .icon-arrow:after {
    transform: scale(1.15);
    filter: brightness(120%);
}

html .btn_text:hover span {
    color: var(--blue);
}

html .btn_text:hover span:before {
    width: 100%;
}

html .btn_text .icon-arrow {
    flex-shrink: 0;
    width: 70px;
    height: 70px;
    display: flex;
    justify-content: center;
    align-items: center;
    color: #fff;
    font-size: 2rem;
    position: relative;
    transition: all 0.2s ease;
}

html .btn_text .icon-arrow:before {
    z-index: 1;
}

html .btn_text .icon-arrow:after {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background: var(--blue);
    transition: all 0.2s ease;
}

html .btn_text span {
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1.5;
    color: var(--black);
    transition: all 0.2s ease;
    position: relative;
}

html .btn_text span:before {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 0;
    height: 1px;
    background: var(--blue);
    transition: all 0.2s linear;
}

@media screen and (max-width: 767px) {
    html .btn_text {
        gap: 10px;
    }
    html .btn_text .icon-arrow {
        width: 40px;
        height: 40px;
        font-size: 1.4rem;
    }
    html .btn_text span {
        font-size: 1.5rem;
    }
}

html .text_link {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 10px;
    width: fit-content;
}

html .text_link:hover {
    opacity: 0.8;
}

html .text_link:hover .icon-arrow {
    background: var(--blue);
}

html .text_link:hover span {
    color: var(--blue);
}

html .text_link .icon-arrow {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 2rem;
    color: var(--black);
    transition: all 0.4s ease;
}

html .text_link span {
    color: var(--black);
    font-size: 1.5rem;
}

@media screen and (max-width: 767px) {
    html .text_link {
        display: flex;
        justify-content: flex-start;
        align-items: center;
        gap: 10px;
        width: fit-content;
    }
    html .text_link:hover {
        opacity: 0.8;
    }
    html .text_link:hover .icon-arrow {
        background: var(--blue);
    }
    html .text_link:hover span {
        color: var(--blue);
    }
    html .text_link .icon-arrow {
        width: 40px;
        height: 40px;
        font-size: 1.4rem;
    }
    html .text_link span {
        font-size: 1.5rem;
    }
}

html .btn {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 280px;
    height: 64px;
    border-radius: 32px;
    color: var(--black);
    background: #fff;
    border: 1px solid var(--blue);
    box-sizing: border-box;
    position: relative;
    transition: all 0.2s ease;
    overflow: hidden;
}

html .btn:hover {
    border-color: var(--hover);
    filter: brightness(100%);
}

html .btn:hover .icon-arrow {
    background: var(--hover);
}

html .btn:hover span {
    color: var(--blue);
}

html .btn span {
    font-size: 1.6rem;
    font-weight: 500;
    text-align: left;
    line-height: 1.2;
}

html .btn span.long {
    padding-left: 30px;
}

html .btn .icon-arrow {
    position: absolute;
    left: 7px;
    top: 7px;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--blue);
    display: flex;
    justify-content: center;
    align-items: center;
    color: #fff;
    font-size: 2rem;
    transition: all 0.4s ease;
}

@media screen and (max-width: 767px) {
    html .btn {
        width: 280px;
        max-width: 100%;
        height: 46px;
        border-radius: 23px;
    }
    html .btn span {
        font-size: 1.5rem;
    }
    html .btn .icon-arrow {
        left: 7px;
        top: 7px;
        width: 32px;
        height: 32px;
        font-size: 1rem;
    }
}

html .category {
    padding-top: 60px;
    text-align: center;
    background: url("img/index/wave01.webp") no-repeat center top 300px;
    background-size: 100% auto;
}

html .category .sect_ttl {
    padding-bottom: 110px;
}

html .category .sect_ttl .icon-kirakira {
    color: var(--blue);
    font-size: 6.4rem;
}

html .category .category_inner {
    display: flex;
    align-items: flex-start;
}

html .category .category_inner .item {
    width: 25%;
}

html .category .category_inner .item#category02 {
    transition-delay: 0.2s;
}

html .category .category_inner .item#category02 a {
    background-color: #FDFDFD;
    background-image: url("img/index/category02.webp");
}

html .category .category_inner .item#category03 {
    transition-delay: 0.2s;
}

html .category .category_inner .item#category03 a {
    background-color: #F3F3F3;
    background-image: url("img/index/category03.webp");
}

html .category .category_inner .item#category04 {
    transition-delay: 0.2s;
}

html .category .category_inner .item#category04 a {
    background-color: #E4EFF4;
    background-image: url("img/index/category04.webp");
}

html .category .category_inner .item a {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    width: 100%;
    height: 600px;
    background: url("img/index/category01.webp") no-repeat center bottom;
    background-size: 100% auto;
    position: relative;
}

html .category .category_inner .item a:hover {
    filter: brightness(120%);
}

html .category .category_inner .item a h3 {
    padding-top: 60px;
    color: var(--black);
}

html .category .category_inner .item a h3 span {
    display: block;
    font-size: 1.4rem;
}

html .category .category_inner .item a h3 em {
    display: block;
    font-size: 2.7rem;
}

html .category .category_inner .item a h3 small {
    color: var(--pink);
    font-size: 1.7rem;
}

html .category .category_inner .item a .icon-arrow {
    position: absolute;
    right: 20px;
    bottom: 20px;
    z-index: 20;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--blue);
    color: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 2rem;
}

@media screen and (max-width: 767px) {
    html .category {
        padding-top: 60px;
        text-align: center;
        background: url("img/index/wave01@sp.webp") no-repeat center top 300px;
        background-size: 100% auto;
    }
    html .category .sect_ttl {
        padding-bottom: 0;
    }
    html .category .sect_ttl .icon-kirakira {
        color: var(--blue);
        font-size: 3.8rem;
    }
    html .category .category_inner {
        display: flex;
        align-items: flex-start;
        flex-wrap: wrap;
    }
    html .category .category_inner .item {
        width: 50%;
    }
    html .category .category_inner .item#category02 {
        transition-delay: 0.2s;
    }
    html .category .category_inner .item#category02 a {
        background-color: #FDFDFD;
        background-image: url("img/index/category02.webp");
    }
    html .category .category_inner .item#category03 {
        transition-delay: 0.2s;
    }
    html .category .category_inner .item#category03 a {
        background-color: #F3F3F3;
        background-image: url("img/index/category03.webp");
    }
    html .category .category_inner .item#category04 {
        transition-delay: 0.2s;
    }
    html .category .category_inner .item#category04 a {
        background-color: #E4EFF4;
        background-image: url("img/index/category04.webp");
    }
    html .category .category_inner .item a {
        width: 100%;
        height: 85vw;
    }
    html .category .category_inner .item a h3 {
        padding-top: 30px;
    }
    html .category .category_inner .item a h3 span {
        font-size: 1.1rem;
    }
    html .category .category_inner .item a h3 em {
        display: block;
        font-size: 2rem;
    }
    html .category .category_inner .item a h3 small {
        font-size: 1.2rem;
    }
    html .category .category_inner .item a .icon-arrow {
        right: 10px;
        bottom: 10px;
        width: 33px;
        height: 33px;
        font-size: 1.4rem;
    }
}

html .reasons {
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
    padding-top: 40px;
}

html .reasons .sect_ttl {
    padding-left: 117px;
}

html .reasons .sect_ttl .icon-kirakira {
    margin-left: -50px;
}

html .reasons .reasons_inner {
    width: 100%;
    padding: 100px 0;
    display: flex;
    flex-direction: column;
    gap: 120px;
}

html .reasons .reasons_inner .reasons_box {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    flex-wrap: wrap;
    position: relative;
    width: 100%;
}

html .reasons .reasons_inner .reasons_box .num {
    position: absolute;
    right: 80px;
    top: -100px;
    z-index: 1;
}

html .reasons .reasons_inner .reasons_box .num em {
    display: block;
    line-height: 1;
    font-size: 14.5rem;
    font-weight: 200;
    font-family: var(--en);
}

html .reasons .reasons_inner .reasons_box .num small {
    margin-top: -10px;
    display: block;
    line-height: 1;
    font-family: var(--en);
    text-align: center;
    font-size: 2.4rem;
}

html .reasons .reasons_inner .reasons_box .ttl {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    flex-wrap: wrap;
    flex-direction: row-reverse;
    width: 15%;
    overflow: hidden;
}

html .reasons .reasons_inner .reasons_box .ttl h3,
html .reasons .reasons_inner .reasons_box .ttl small {
    writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    -webkit-writing-mode: vertical-rl;
    white-space: pre;
}

html .reasons .reasons_inner .reasons_box .ttl h3 {
    display: block;
    font-size: 4.4rem;
    line-height: 1.3;
}

html .reasons .reasons_inner .reasons_box .ttl small {
    display: block;
    line-height: 1;
    font-family: var(--en);
    font-style: italic;
    font-weight: 200;
    font-size: 3.6rem;
    letter-spacing: 0.06em;
    padding-right: 5px;
}

html .reasons .reasons_inner .reasons_box figure {
    width: 85%;
}

html .reasons .reasons_inner .reasons_box figure img {
    object-fit: cover;
    object-position: bottom;
    width: 100%;
    height: 512px;
    border-radius: 10px;
}

html .reasons .reasons_inner .reasons_box .text {
    margin-top: -30px;
    width: 100%;
    padding-left: 250px;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    flex-wrap: wrap;
    gap: 30px 60px;
    position: relative;
    z-index: 1;
}

html .reasons .reasons_inner .reasons_box .text h4 {
    display: flex;
    flex-direction: column;
    gap: 15px;
    width: 100%;
}

html .reasons .reasons_inner .reasons_box .text h4 span {
    width: fit-content;
    background: var(--pink);
    padding: 13px 20px;
    font-size: 2.8rem;
    line-height: 1;
    border-radius: 5px;
}

html .reasons .reasons_inner .reasons_box .text p {
    max-width: 650px;
}

html .reasons .reasons_inner #reasons02 {
    justify-content: flex-start;
    flex-direction: row-reverse;
    padding: 0 2% 0 8%;
    box-sizing: border-box;
}

html .reasons .reasons_inner #reasons02 figure {
    width: 79%;
}

html .reasons .reasons_inner #reasons02 .ttl {
    width: 21%;
}

html .reasons .reasons_inner #reasons02 .num {
    right: auto;
    left: 170px;
}

html .reasons .reasons_inner #reasons02 .text {
    padding-left: 70px;
}

html .reasons .reasons_inner #reasons03 {
    justify-content: flex-end;
    padding: 0 0 0 4%;
    box-sizing: border-box;
}

html .reasons .reasons_inner #reasons03 figure {
    width: 81%;
    height: 590px;
    position: relative;
}

html .reasons .reasons_inner #reasons03 figure .img01 {
    position: absolute;
    left: 0;
    top: 0;
    width: 47%;
}

html .reasons .reasons_inner #reasons03 figure .img01 img {
    object-fit: cover;
    object-position: bottom;
    width: 100%;
    height: 512px;
}

html .reasons .reasons_inner #reasons03 figure .img02 {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 61%;
}

html .reasons .reasons_inner #reasons03 figure .img02 img {
    object-fit: cover;
    object-position: bottom;
    width: 100%;
    height: 512px;
}

html .reasons .reasons_inner #reasons03 .ttl {
    width: 19%;
}

html .reasons .reasons_inner #reasons03 .num {
    top: -20px;
    right: 20px;
}

html .reasons .reasons_inner #reasons03 .num small {
    margin-top: 20px;
}

html .reasons .reasons_inner #reasons03 .text {
    margin-top: -108px;
    padding-left: 300px;
}

html .reasons .reasons_inner #reasons03 .text p {
    max-width: 500px;
}

html .reasons .reasons_inner_flex {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    gap: 10px;
}

html .reasons .reasons_inner_flex .reasons_box {
    width: calc((100% - 20px) / 3);
    position: relative;
    width: 100%;
}

html .reasons .reasons_inner_flex .reasons_box#reasons04 {
    transition-delay: 0.2s;
}

html .reasons .reasons_inner_flex .reasons_box#reasons05 {
    transition-delay: 0.4s;
}

html .reasons .reasons_inner_flex .reasons_box#reasons06 {
    transition-delay: 0.6s;
}

html .reasons .reasons_inner_flex .reasons_box .num {
    position: absolute;
    left: 0;
    top: -70px;
    z-index: 1;
    width: 100%;
    text-align: center;
    display: flex;
    flex-direction: column-reverse;
}

html .reasons .reasons_inner_flex .reasons_box .num em {
    display: block;
    line-height: 1;
    font-size: 11rem;
    font-weight: 200;
    font-family: var(--en);
}

html .reasons .reasons_inner_flex .reasons_box .num small {
    position: absolute;
    left: 0;
    top: 10px;
    width: 100%;
    text-align: center;
    display: block;
    line-height: 1;
    font-family: var(--en);
    text-align: center;
    font-size: 1.8rem;
}

html .reasons .reasons_inner_flex .reasons_box .ttl {
    margin-top: -20px;
    padding-left: 20px;
}

html .reasons .reasons_inner_flex .reasons_box .ttl small {
    display: block;
    line-height: 1;
    font-family: var(--en);
    font-style: italic;
    font-weight: 200;
    font-size: 3.6rem;
    letter-spacing: 0.06em;
    padding-right: 5px;
}

html .reasons .reasons_inner_flex .reasons_box .ttl h3 {
    padding-top: 10px;
    display: block;
    font-size: 2.9rem;
    line-height: 1.5;
}

html .reasons .reasons_inner_flex .reasons_box figure {
    width: 100%;
}

html .reasons .reasons_inner_flex .reasons_box figure img {
    border-radius: 10px;
}

html .reasons .reasons_inner_flex .reasons_box .text {
    padding: 40px 50px 0 20px;
}

html .reasons .reasons_inner_flex .reasons_box .text p {
    padding-bottom: 30px;
}

html .reasons .reasons_inner_flex #reasons05 {
    margin-top: 100px;
}

html .reasons .reasons_inner_flex #reasons06 {
    margin-top: 200px;
}

html .reasons .reasons_inner_flex #reasons06 .num small {
    top: 0;
}

@media screen and (max-width: 767px) {
    html .reasons {
        width: 100%;
        max-width: 100%;
        margin: 0;
        padding-top: 50px;
    }
    html .reasons .sect_ttl {
        padding-left: 0;
    }
    html .reasons .sect_ttl .icon-kirakira {
        margin-left: 0px;
    }
    html .reasons .reasons_inner {
        width: 100%;
        padding: 100px 0 50px;
        display: flex;
        flex-direction: column;
        gap: 50px;
    }
    html .reasons .reasons_inner .reasons_box {
        display: flex;
        flex-direction: column !important;
        position: relative;
        width: 100%;
        padding: 0 !important;
    }
    html .reasons .reasons_inner .reasons_box .num {
        position: static;
        width: 100%;
        text-align: center;
        display: flex;
        flex-direction: column;
        z-index: 1;
    }
    html .reasons .reasons_inner .reasons_box .num em {
        margin-top: -20px;
        order: 1;
        display: block;
        font-size: 7rem;
    }
    html .reasons .reasons_inner .reasons_box .num small {
        order: 0;
        margin-top: 0px;
        font-size: 1.3rem;
    }
    html .reasons .reasons_inner .reasons_box .ttl {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        width: 100% !important;
        overflow: hidden;
        padding-bottom: 30px;
    }
    html .reasons .reasons_inner .reasons_box .ttl h3,
    html .reasons .reasons_inner .reasons_box .ttl small {
        writing-mode: horizontal-tb;
        -ms-writing-mode: lr-tb;
        -webkit-writing-mode: horizontal-tb;
    }
    html .reasons .reasons_inner .reasons_box .ttl h3 {
        display: block;
        font-size: 2.4rem;
        line-height: 1.3;
        text-align: center;
    }
    html .reasons .reasons_inner .reasons_box .ttl small {
        font-size: 1.8rem;
        letter-spacing: 0.06em;
        padding-right: 5px;
    }
    html .reasons .reasons_inner .reasons_box figure {
        width: 100% !important;
    }
    html .reasons .reasons_inner .reasons_box figure img {
        object-fit: cover;
        object-position: bottom;
        width: 100%;
        height: 56vw;
        border-radius: 0px;
    }
    html .reasons .reasons_inner .reasons_box .text {
        margin-top: -15px !important;
        width: 100%;
        padding: 0 !important;
        display: flex;
        flex-direction: column;
        position: relative;
        z-index: 1;
        gap: 0;
    }
    html .reasons .reasons_inner .reasons_box .text h4 {
        display: flex;
        flex-direction: column;
        gap: 5px;
        width: 100%;
    }
    html .reasons .reasons_inner .reasons_box .text h4 span {
        padding: 8px 10px;
        font-size: 1.7rem;
        line-height: 1;
        border-radius: 0 5px 5px 0;
    }
    html .reasons .reasons_inner .reasons_box .text p {
        max-width: initial;
        padding: 20px;
    }
    html .reasons .reasons_inner #reasons03 figure {
        height: auto;
        position: relative;
    }
    html .reasons .reasons_inner #reasons03 figure .img01 {
        display: block;
        position: static;
        left: 0;
        top: 0;
        width: 47%;
    }
    html .reasons .reasons_inner #reasons03 figure .img01 img {
        object-fit: cover;
        object-position: bottom;
        width: 100%;
        height: 54vw;
        border-radius: 0 5px 0 0;
    }
    html .reasons .reasons_inner #reasons03 figure .img02 {
        position: absolute;
        right: 0;
        bottom: 0;
        width: 61%;
    }
    html .reasons .reasons_inner #reasons03 figure .img02 img {
        object-fit: cover;
        object-position: bottom;
        width: 100%;
        height: 47vw;
        border-radius: 5px 0 0 5px;
    }
    html .reasons .reasons_inner #reasons03 .ttl {
        padding-top: 10px;
    }
    html .reasons .reasons_inner #reasons03 .text {
        margin-top: -108px;
        padding-left: 300px;
    }
    html .reasons .reasons_inner #reasons03 .text p {
        max-width: 500px;
    }
    html .reasons .reasons_inner_flex {
        display: flex;
        flex-direction: column;
        gap: 50px;
    }
    html .reasons .reasons_inner_flex .reasons_box {
        display: flex;
        flex-direction: column !important;
        position: relative;
        width: 100%;
        padding: 0 !important;
        margin: 0 !important;
        transition-delay: 0s !important;
    }
    html .reasons .reasons_inner_flex .reasons_box .num {
        order: 0;
        position: static;
        width: 100%;
        text-align: center;
        display: flex;
        flex-direction: column;
        z-index: 1;
    }
    html .reasons .reasons_inner_flex .reasons_box .num em {
        position: static;
        margin-top: -20px;
        order: 1;
        display: block;
        font-size: 7rem;
    }
    html .reasons .reasons_inner_flex .reasons_box .num small {
        position: static;
        order: 0;
        margin-top: 0px;
        font-size: 1.3rem;
    }
    html .reasons .reasons_inner_flex .reasons_box .ttl {
        order: 1;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        width: 100% !important;
        overflow: hidden;
        margin: 0 !important;
        padding: 0 0 30px !important;
    }
    html .reasons .reasons_inner_flex .reasons_box .ttl h3,
    html .reasons .reasons_inner_flex .reasons_box .ttl small {
        writing-mode: horizontal-tb;
        -ms-writing-mode: lr-tb;
        -webkit-writing-mode: horizontal-tb;
    }
    html .reasons .reasons_inner_flex .reasons_box .ttl h3 {
        order: 0;
        display: block;
        font-size: 2.4rem;
        line-height: 1.3;
        text-align: center;
    }
    html .reasons .reasons_inner_flex .reasons_box .ttl small {
        order: 1;
        font-size: 1.8rem;
        letter-spacing: 0.06em;
        padding: 0px;
    }
    html .reasons .reasons_inner_flex .reasons_box figure {
        order: 2;
        width: 100% !important;
    }
    html .reasons .reasons_inner_flex .reasons_box figure img {
        object-fit: cover;
        object-position: bottom;
        width: 100%;
        height: 56vw;
        border-radius: 0px;
    }
    html .reasons .reasons_inner_flex .reasons_box .text {
        order: 3;
        margin-top: 0 !important;
        width: 100%;
        padding: 0 !important;
        display: flex;
        flex-direction: column;
        position: relative;
        z-index: 1;
        gap: 0;
    }
    html .reasons .reasons_inner_flex .reasons_box .text p {
        max-width: initial;
        padding: 20px;
    }
    html .reasons .reasons_inner_flex .reasons_box .text .btn_text {
        margin: 0 auto;
    }
    html .reasons .reasons_inner_flex #reasons06 .num em {
        margin-top: 0;
    }
}

html .loop {
    padding: 200px 0;
    width: 100%;
    position: relative;
    display: flex;
    width: max-content;
    gap: 30px;
    transform: translateX(0);
    animation: loop 120s linear infinite;
}

html .loop li {
    flex-shrink: 0;
}

html .loop li img {
    width: 1522px;
    height: 588px;
}

@keyframes loop {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-66.666%);
    }
}

@media screen and (max-width: 767px) {
    html .loop {
        padding: 100px 0;
        width: 100%;
        position: relative;
        display: flex;
        width: max-content;
        gap: 20px;
        transform: translateX(0);
        animation: loop 60s linear infinite;
    }
    html .loop li {
        flex-shrink: 0;
    }
    html .loop li img {
        width: 761px;
        height: 294px;
    }
}

html .orthodontics .sect_ttl {
    padding-bottom: 128px;
}

html .orthodontics .orthodontics_inner {
    width: 100%;
    padding-bottom: 200px;
    position: relative;
}

html .orthodontics .orthodontics_inner:before {
    content: "";
    position: absolute;
    left: 0;
    top: 100px;
    width: 100%;
    height: calc(100% - 100px);
    background: url("img/index/orthodontics_bg.webp") no-repeat center top;
    background-size: 100% 100%;
    z-index: -1;
}

html .orthodontics .orthodontics_inner .wide_item {
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
    position: relative;
}

html .orthodontics .orthodontics_inner .wide_item figure {
    width: 72.5%;
}

html .orthodontics .orthodontics_inner .wide_item figure img {
    object-fit: cover;
    object-position: bottom;
    width: 100%;
    height: 615px;
    border-radius: 10px;
}

html .orthodontics .orthodontics_inner .wide_item .text {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 580px;
    padding: 60px;
    box-sizing: border-box;
    background: #fff;
    border-radius: 10px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

html .orthodontics .orthodontics_inner .wide_item .text h3 {
    font-size: 2.9rem;
}

html .orthodontics .orthodontics_inner .sp_slide {
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 50px 32px;
    margin-top: -50px;
}

html .orthodontics .orthodontics_inner .sp_slide .item {
    width: 500px;
    background: #fff;
    display: flex;
    flex-direction: column;
    gap: 30px;
    text-align: center;
    border-radius: 10px;
    padding-bottom: 40px;
}

html .orthodontics .orthodontics_inner .sp_slide .item figure img {
    border-radius: 10px 10px 0 0;
}

html .orthodontics .orthodontics_inner .sp_slide .item h4 {
    text-align: center;
    font-size: 2.4rem;
}

html .orthodontics .orthodontics_inner .sp_slide .item p {
    padding: 0 20px;
    text-align: left;
}

html .orthodontics .orthodontics_inner .sp_slide .item .btn {
    margin: 0 auto;
}

html .orthodontics #wedding .wide_item figure {
    margin-left: auto;
}

html .orthodontics #wedding .wide_item .text {
    right: auto;
    left: 0;
}

html .orthodontics #wedding .wedding_wrap {
    padding-top: 50px;
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
}

html .orthodontics #wedding .wedding_wrap .ttl {
    width: 150px;
    padding: 0 20px;
    box-sizing: border-box;
}

html .orthodontics #wedding .wedding_wrap .ttl .icon-kirakira {
    display: block;
    color: var(--blue);
    font-size: 6.4rem;
    text-align: center;
}

html .orthodontics #wedding .wedding_wrap .ttl em {
    padding-top: 10px;
    display: block;
    writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    -webkit-writing-mode: vertical-rl;
    white-space: pre;
    font-size: 2.9rem;
    margin: 0 auto;
}

html .orthodontics #wedding .wedding_wrap .sp_slide {
    width: calc(100% - 150px);
    margin-top: 0;
    gzp: 25px;
    display: flex;
    justify-content: flex-start;
    flex-wrap: nowrap;
}

html .orthodontics #wedding .wedding_wrap .sp_slide .item {
    width: calc((100% - 50px) / 3);
}

html .orthodontics #wedding .wedding_wrap .sp_slide .item h4 small {
    display: block;
    font-size: 1.6rem;
}

html .orthodontics #other .wide_item figure {
    margin-left: auto;
}

html .orthodontics #other .wide_item .text {
    right: auto;
    left: 0;
}

html .orthodontics #other .sp_slide {
    width: calc(100% - 150px);
    max-width: 1250px;
    margin: 0 auto;
    margin-top: 25px;
    gzp: 25px;
    display: flex;
    justify-content: flex-start;
    flex-wrap: nowrap;
}

html .orthodontics #other .sp_slide .item {
    width: calc((100% - 50px) / 3);
}

html .orthodontics #other .sp_slide .item h4 small {
    display: block;
    font-size: 1.6rem;
}

@media screen and (max-width: 767px) {
    html .orthodontics .sect_ttl {
        padding-bottom: 40px;
    }
    html .orthodontics .orthodontics_inner {
        width: 100%;
        padding-bottom: 50px;
        margin-bottom: 25px;
        position: relative;
    }
    html .orthodontics .orthodontics_inner:before {
        content: "";
        position: absolute;
        left: 0;
        top: 100px;
        width: 100%;
        height: calc(100% - 100px);
        background: url("img/index/orthodontics_bg@sp.webp") no-repeat center top;
        background-size: 100% 100%;
        z-index: -1;
    }
    html .orthodontics .orthodontics_inner .wide_item {
        width: 100%;
        max-width: 100%;
        margin: 0 auto 10px;
        position: relative;
    }
    html .orthodontics .orthodontics_inner .wide_item figure {
        width: 100%;
        padding-right: 10px;
        box-sizing: border-box;
    }
    html .orthodontics .orthodontics_inner .wide_item figure img {
        object-fit: cover;
        object-position: bottom;
        width: 100%;
        height: 64vw;
        border-radius: 0 10px 10px 0;
    }
    html .orthodontics .orthodontics_inner .wide_item .text {
        position: static;
        transform: translateY(-10px);
        width: calc(100% - 40px);
        margin: 0 auto;
        padding: 20px;
        border-radius: 5px;
        display: flex;
        flex-direction: column;
        gap: 10px;
    }
    html .orthodontics .orthodontics_inner .wide_item .text h3 {
        font-size: 2.4rem;
        text-align: center;
    }
    html .orthodontics .orthodontics_inner .wide_item .text .btn_text {
        margin: 0 auto;
    }
    html .orthodontics .orthodontics_inner .sp_slide {
        width: 100%;
        max-width: 100%;
        margin: 0;
        display: block;
        padding-bottom: 30px;
    }
    html .orthodontics .orthodontics_inner .sp_slide .slick-slide {
        padding: 0 7px;
    }
    html .orthodontics .orthodontics_inner .sp_slide .slick-dots {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 12px;
        bottom: 0;
        left: 0;
    }
    html .orthodontics .orthodontics_inner .sp_slide .slick-dots li {
        margin: 0;
        width: 8px;
        height: 8px;
    }
    html .orthodontics .orthodontics_inner .sp_slide .slick-dots li.slick-active button {
        background: var(--blue);
    }
    html .orthodontics .orthodontics_inner .sp_slide .slick-dots li button {
        margin: 0;
        padding: 0;
        width: 8px;
        height: 8px;
        overflow: hidden;
        border-radius: 50%;
        background: none;
        background: #fff;
        border: 1px solid var(--blue);
        box-sizing: border-box;
        font-size: 0;
    }
    html .orthodontics .orthodontics_inner .sp_slide .slick-dots li button:before {
        content: none;
    }
    html .orthodontics .orthodontics_inner .sp_slide .slick-prev,
    html .orthodontics .orthodontics_inner .sp_slide .slick-next {
        transition: 0.3s;
        top: 21vw;
        width: 28px;
        height: 28px;
        background: var(--blue);
        border-radius: 50%;
        z-index: 10;
        transform: translate(0, 0);
        text-align: center;
        display: flex;
        justify-content: center;
        align-items: center;
    }
    html .orthodontics .orthodontics_inner .sp_slide .slick-prev:before,
    html .orthodontics .orthodontics_inner .sp_slide .slick-next:before {
        content: "\e902";
        font-family: var(--icomoon);
        color: #fff;
        font-size: 1.2rem;
    }
    html .orthodontics .orthodontics_inner .sp_slide .slick-prev:focus,
    html .orthodontics .orthodontics_inner .sp_slide .slick-prev:hover,
    html .orthodontics .orthodontics_inner .sp_slide .slick-prev:focus,
    html .orthodontics .orthodontics_inner .sp_slide .slick-prev:hover,
    html .orthodontics .orthodontics_inner .sp_slide .slick-next:focus,
    html .orthodontics .orthodontics_inner .sp_slide .slick-next:hover,
    html .orthodontics .orthodontics_inner .sp_slide .slick-next:focus,
    html .orthodontics .orthodontics_inner .sp_slide .slick-next:hover {
        opacity: 0.7;
    }
    html .orthodontics .orthodontics_inner .sp_slide .slick-prev {
        left: 10px;
    }
    html .orthodontics .orthodontics_inner .sp_slide .slick-next {
        right: 10px;
    }
    html .orthodontics .orthodontics_inner .sp_slide .slick-next:before {
        content: "\e901";
        font-family: var(--icomoon);
        color: #fff;
        font-size: 1.2rem;
    }
    html .orthodontics .orthodontics_inner .sp_slide .item {
        border-radius: 5px;
        padding-bottom: 20px;
    }
    html .orthodontics .orthodontics_inner .sp_slide .item figure img {
        object-fit: cover;
        object-position: bottom;
        width: 100%;
        height: auto;
        aspect-ratio: 600/336;
        border-radius: 5px 5px 0 0;
    }
    html .orthodontics .orthodontics_inner .sp_slide .item h4 {
        text-align: center;
        font-size: 1.8rem;
        padding: 20px 0;
    }
    html .orthodontics .orthodontics_inner .sp_slide .item p {
        padding: 0 20px 20px;
        text-align: left;
    }
    html .orthodontics .orthodontics_inner .sp_slide .item .btn {
        width: calc(100% - 40px);
        margin: 0 20px;
    }
    html .orthodontics #wedding .wide_item figure {
        padding: 0 0 0 10px;
    }
    html .orthodontics #wedding .wide_item figure img {
        border-radius: 5px 0 0 5px;
    }
    html .orthodontics #wedding .wedding_wrap {
        padding: 0px;
        display: block;
        width: 100%;
        max-width: 100%;
        margin: 0;
    }
    html .orthodontics #wedding .wedding_wrap .ttl {
        width: 100%;
        padding: 20px;
        box-sizing: border-box;
    }
    html .orthodontics #wedding .wedding_wrap .ttl .icon-kirakira {
        display: block;
        color: var(--blue);
        font-size: 3.8rem;
        text-align: center;
    }
    html .orthodontics #wedding .wedding_wrap .ttl em {
        padding-top: 10px;
        display: block;
        writing-mode: horizontal-tb;
        -ms-writing-mode: lr-tb;
        -webkit-writing-mode: horizontal-tb;
        font-size: 1.9rem;
        margin: 0;
        text-align: center;
    }
    html .orthodontics #wedding .wedding_wrap .sp_slide {
        width: 100%;
        margin: 0;
        display: block;
    }
    html .orthodontics #wedding .wedding_wrap .sp_slide .item h4 small {
        font-size: 1.6rem;
    }
    html .orthodontics #other .wide_item figure {
        margin-left: auto;
    }
    html .orthodontics #other .wide_item .text {
        right: auto;
        left: 0;
    }
    html .orthodontics #other .sp_slide {
        width: 100%;
        max-width: initial;
        margin: 0;
        gzp: 25px;
        display: flex;
        justify-content: flex-start;
        flex-wrap: nowrap;
    }
    html .orthodontics #other .sp_slide .item {
        width: 100%;
    }
    html .orthodontics #other .sp_slide .item h4 small {
        display: block;
        font-size: 1.6rem;
    }
}

html .greeting {
    width: 100%;
    position: relative;
}

html .greeting:before {
    content: "";
    position: absolute;
    left: 0;
    top: 100px;
    width: 100%;
    height: calc(100% - 100px);
    background: url(img/index/greeting_bg.webp) no-repeat 0 0;
    background-size: 100% 100%;
}

html .greeting .greeting_inner {
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 80px 80px;
    box-sizing: border-box;
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    flex-direction: row-reverse;
    gap: 80px;
}

html .greeting .greeting_inner .sect_ttl {
    position: absolute;
    left: 80px;
    top: 160px;
    text-align: left;
}

html .greeting .greeting_inner .sect_ttl .en {
    font-size: 9rem;
}

html .greeting .greeting_inner .sect_ttl .ttl {
    padding-top: 0;
}

html .greeting .greeting_inner figure {
    width: 46%;
    flex-shrink: 0;
    position: relative;
}

html .greeting .greeting_inner figure img {
    border-radius: 10px;
}

html .greeting .greeting_inner figure .name {
    padding-top: 20px;
    text-align: right;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

html .greeting .greeting_inner figure .name span {
    display: block;
    line-height: 1;
    font-size: 1.5rem;
    font-weight: 500;
    font-family: var(--Mincho);
}

html .greeting .greeting_inner figure .name em {
    display: block;
    line-height: 1;
    font-size: 2.4rem;
}

html .greeting .greeting_inner figure .name em~small {
    display: block;
    line-height: 1;
    font-size: 1.35rem;
}

html .greeting .greeting_inner .greeting_text {
    padding-top: 350px;
}

html .greeting .greeting_inner .greeting_text h3 {
    font-size: 2.8rem;
    padding-bottom: 30px;
}

html .greeting .greeting_inner .greeting_text p {
    padding-bottom: 40px;
}

@media screen and (max-width: 767px) {
    html .greeting {
        width: 100%;
        position: relative;
    }
    html .greeting:before {
        content: "";
        position: absolute;
        left: 0;
        top: 0;
        width: 100%;
        height: 100%;
        background: url(img/index/greeting_bg@sp.webp) no-repeat 0 0;
        background-size: 100% 100%;
    }
    html .greeting .greeting_inner {
        width: 100%;
        max-width: 100%;
        margin: 0 auto;
        padding: 0 20px 40px;
        box-sizing: border-box;
        display: flex;
        justify-content: flex-start;
        align-items: flex-start;
        flex-direction: column;
        gap: 0;
    }
    html .greeting .greeting_inner .sect_ttl {
        width: 100%;
        position: static;
        text-align: center;
        padding: 40px 0;
    }
    html .greeting .greeting_inner .sect_ttl .en {
        font-size: 13.3vw;
    }
    html .greeting .greeting_inner .sect_ttl .ttl {
        font-size: 5vw;
        padding-bottom: 0;
    }
    html .greeting .greeting_inner figure {
        width: 78.6vw;
        margin: 0 auto;
    }
    html .greeting .greeting_inner figure img {
        border-radius: 5px;
    }
    html .greeting .greeting_inner figure .name {
        padding-top: 20px;
        text-align: center;
        display: flex;
        flex-direction: column;
        gap: 10px;
    }
    html .greeting .greeting_inner figure .name span {
        font-size: 1.2rem;
    }
    html .greeting .greeting_inner figure .name em {
        font-size: 1.9rem;
    }
    html .greeting .greeting_inner .greeting_text {
        padding-top: 20px;
    }
    html .greeting .greeting_inner .greeting_text h3 {
        font-size: 1.8rem;
        line-height: 1.5;
        padding-bottom: 20px;
    }
    html .greeting .greeting_inner .greeting_text p {
        padding-bottom: 20px;
    }
    html .greeting .greeting_inner .greeting_text .btn {
        margin: 0 auto;
    }
}

html .instagram_section {
    padding: 80px;
    width: 100%;
    box-sizing: border-box;
    background: url(img/index/greeting_bg.webp) no-repeat 0 0;
    background-size: 100% 100%;
}

html .instagram_section:before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: #ffeff8;
    mix-blend-mode: multiply;
}

html .instagram_section .instagram_inner {
    position: relative;
    z-index: 1;
    max-width: 100%;
    width: 1240px;
    height: 390px;
    margin: 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 10px;
    background: #fff;
}

@media screen and (max-width: 767px) {
    html .instagram_section {
        padding: 20px;
        width: 100%;
    }
    html .instagram_section .instagram_inner {
        position: relative;
        z-index: 1;
        max-width: 100%;
        width: 100%;
        height: 190px;
        border-radius: 5px;
    }
}

html .consultation_case {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
}

html .consultation_case .item {
    width: 50%;
}

html .consultation_case .item#Case a {
    background: url("img/index/case.webp") no-repeat center;
    background-size: cover;
}

html .consultation_case .item a {
    display: block;
    position: relative;
    height: 544px;
    width: 100%;
    background: url("img/index/consultation.webp") no-repeat center;
    background-size: cover;
}

html .consultation_case .item a:hover {
    filter: brightness(120%);
}

html .consultation_case .item a .text {
    position: absolute;
    left: 0;
    bottom: 0;
    padding: 60px;
    color: #fff;
    text-align: left;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

html .consultation_case .item a .text .en {
    text-align: left;
    font-size: 6.9rem;
    opacity: 0.5;
}

html .consultation_case .item a .text .ttl {
    font-size: 2.7rem;
    text-align: left;
}

html .consultation_case .item a .text .icon-arrow {
    position: absolute;
    right: 20px;
    bottom: 20px;
    z-index: 20;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--blue);
    color: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 2rem;
}

@media screen and (max-width: 767px) {
    html .consultation_case {
        display: flex;
        flex-direction: column;
        width: 100%;
    }
    html .consultation_case .item {
        width: 100%;
    }
    html .consultation_case .item#Case a {
        background: #a8ad9f url("img/index/case@sp.webp") no-repeat center top;
        background-size: 100% auto;
    }
    html .consultation_case .item a {
        display: block;
        position: relative;
        height: auto;
        width: 100%;
        padding-top: 66.4vw;
        background: #b3bcbe url("img/index/consultation@sp.webp") no-repeat center top;
        background-size: 100% auto;
    }
    html .consultation_case .item a:hover {
        filter: brightness(120%);
    }
    html .consultation_case .item a .text {
        margin-top: -45px;
        position: static;
        padding: 20px 20px 60px;
        color: #fff;
        text-align: center;
        gap: 10px;
    }
    html .consultation_case .item a .text .en {
        text-align: center;
        font-size: 11.4vw;
        opacity: 0.5;
    }
    html .consultation_case .item a .text .ttl {
        font-size: 2rem;
        text-align: center;
    }
    html .consultation_case .item a .text p {
        text-align: left;
    }
    html .consultation_case .item a .text .icon-arrow {
        position: absolute;
        right: calc(50% - 20px);
        bottom: 10px;
        z-index: 20;
        width: 40px;
        height: 40px;
        font-size: 1.4rem;
    }
}

html .information {
    width: 100%;
}

html .information .news_inner {
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
    padding: 90px 100px;
    box-sizing: border-box;
    border-bottom: 1px solid #d4d4d4;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    position: relative;
}

html .information .news_inner .sect_ttl {
    text-align: left;
}

html .information .news_inner .sect_ttl .en {
    font-size: 9rem;
}

html .information .news_inner .sect_ttl .ttl {
    padding-top: 0;
}

html .information .news_inner .sect_ttl .ttl em {
    font-size: 2.4rem;
}

html .information .news_inner .scroll_box {
    width: 70%;
    position: relative;
    max-height: 400px;
}

html .information .news_inner .scroll_box .item {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 40px;
    padding: 28px 0;
}

html .information .news_inner .scroll_box .item figure {
    width: 248px;
    flex-shrink: 0;
}

html .information .news_inner .scroll_box .item figure img {
    border-radius: 10px;
}

html .information .news_inner .scroll_box .item .text {
    padding-right: 10px;
}

html .information .news_inner .scroll_box .item .text .date {
    color: var(--pink);
    font-family: var(--Oswald);
    font-size: 1.5rem;
    color: #ffcfe9;
}

html .information .news_inner .scroll_box .item h3 {
    padding-bottom: 10px;
}

html .information .news_inner .scroll_box .item h3 a {
    line-height: 1.8;
    font-weight: 400;
    font-family: var(--Gothic);
    color: var(--black);
}

html .information .news_inner .scroll_box .item h3 a:hover {
    color: var(--pink);
}

html .information .news_inner .scroll_box .item:nth-child(1) {
    padding-top: 0;
}

html .information .news_inner .scroll_box .item~.item {
    border-top: 1px dotted #d4d4d4;
}

html .information .news_inner .btn_text {
    position: absolute;
    left: 100px;
    top: 260px;
}

@media screen and (max-width: 767px) {
    html .information {
        width: 100%;
    }
    html .information .news_inner {
        width: 100%;
        max-width: 100%;
        margin: 0;
        padding: 0 20px;
        box-sizing: border-box;
        border-bottom: 1px solid #d4d4d4;
        display: flex;
        flex-direction: column;
    }
    html .information .news_inner.blog .sect_ttl .ttl {
        padding-top: 5px;
    }
    html .information .news_inner .sect_ttl {
        width: 100%;
        text-align: center;
        padding: 40px 0;
    }
    html .information .news_inner .sect_ttl .en {
        font-size: 13.3vw;
    }
    html .information .news_inner .sect_ttl .ttl {
        padding-top: 0;
    }
    html .information .news_inner .sect_ttl .ttl em {
        font-size: 5vw;
    }
    html .information .news_inner .scroll_box {
        width: 100%;
        position: relative;
        max-height: 100vw;
    }
    html .information .news_inner .scroll_box .item {
        display: flex;
        justify-content: flex-start;
        align-items: flex-start;
        gap: 15px;
        padding: 20px 0;
    }
    html .information .news_inner .scroll_box .item figure {
        width: 100px;
        flex-shrink: 0;
    }
    html .information .news_inner .scroll_box .item figure img {
        object-fit: cover;
        object-position: bottom;
        width: 100%;
        height: 100px;
        border-radius: 5px;
    }
    html .information .news_inner .scroll_box .item .text {
        padding-right: 10px;
    }
    html .information .news_inner .scroll_box .item .text .date {
        font-size: 1.2rem;
        line-height: 1;
    }
    html .information .news_inner .scroll_box .item h3 {
        padding-bottom: 5px;
    }
    html .information .news_inner .scroll_box .item h3 a {
        line-height: 1.6;
    }
    html .information .news_inner .btn_text {
        position: static;
        margin: 10px auto 20px;
    }
}

html .calendar {
    position: relative;
    background: #fff;
    padding: 90px 100px 0;
}

html .calendar .sect_ttl {
    position: relative;
    text-align: center;
    padding-bottom: 90px;
}

html .calendar .calendar_inner {
    width: 100%;
    max-width: 1160px;
    padding: 0 0 100px;
    margin: 0 auto;
    box-sizing: border-box;
    display: flex;
    justify-content: space-between;
}

html .calendar .calendar_inner .month {
    width: calc((100% - 65px) / 2);
}

html .calendar .calendar_inner .month em {
    display: block;
    text-align: center;
    font-size: 2.4rem;
    font-weight: 500;
    margin-bottom: 40px;
    line-height: 1;
}

html .calendar .calendar_inner .month table {
    width: 100%;
    table-layout: fixed;
    border-collapse: separate;
    border-bottom: 1px solid #858585;
}

html .calendar .calendar_inner .month table thead th {
    height: 40px;
    vertical-align: middle;
    text-align: center;
    font-size: 1.5rem;
    font-weight: normal;
    border-top: 1px solid #858585;
}

html .calendar .calendar_inner .month table thead th.holiday {
    color: #f098c9;
}

html .calendar .calendar_inner .month table tbody td {
    height: 74px;
    vertical-align: top;
    text-align: center;
    border-top: 1px solid #858585;
}

html .calendar .calendar_inner .month table tbody td span {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 43px;
    height: 43px;
    margin: 8px auto;
    font-weight: 400;
    font-size: 1.8rem;
    box-sizing: border-box;
    position: relative;
    text-align: left;
    background: #ffffff;
    border-radius: 50%;
}

html .calendar .calendar_inner .month table tbody td span:before {
    content: "";
    position: absolute;
    right: 0;
    bottom: -14px;
    line-height: 1;
    font-size: 1.1rem;
    font-weight: normal;
    width: 100%;
    text-align: center;
    white-space: nowrap;
}

html .calendar .calendar_inner .month table tbody td.close span {
    background: #f098c9;
    color: #fff;
}

html .calendar .calendar_inner .month table tbody td.close span:before {
    content: "休診日";
    color: #f098c9;
}

html .calendar .calendar_inner .month table tbody td.am_close span {
    background: #64c5f6;
    color: #fff;
}

html .calendar .calendar_inner .month table tbody td.am_close span:before {
    content: "午前休";
    color: #64c5f6;
}

html .calendar .calendar_inner .month table tbody td.pm_close span {
    background: #3cabe1;
    color: #fff;
}

html .calendar .calendar_inner .month table tbody td.pm_close span:before {
    content: "午後休";
    color: #3cabe1;
}

html .calendar .calendar_inner .month table tbody td.other span {
    background: #d1cfc8;
    color: #fff;
}

html .calendar .calendar_inner .month table tbody td.other span:before {
    content: "その他";
    color: #d1cfc8;
}

@media screen and (max-width: 767px) {
    html .calendar {
        width: 100%;
        padding: 40px 20px;
        box-sizing: border-box;
    }
    html .calendar .sect_ttl {
        position: static;
        padding-bottom: 0px;
    }
    html .calendar .calendar_inner {
        width: 100%;
        max-width: 100%;
        padding: 0;
        margin: 0 auto;
        box-sizing: border-box;
        display: flex;
        flex-direction: column;
    }
    html .calendar .calendar_inner .month {
        padding-top: 40px;
        width: 100%;
    }
    html .calendar .calendar_inner .month em {
        font-size: 1.9rem;
        margin-bottom: 20px;
        line-height: 1;
    }
    html .calendar .calendar_inner .month table thead th {
        height: 30px;
        font-size: 1.1rem;
    }
    html .calendar .calendar_inner .month table thead th span {
        display: none;
    }
    html .calendar .calendar_inner .month table tbody td {
        height: 18vw;
        vertical-align: middle;
    }
    html .calendar .calendar_inner .month table tbody td span {
        position: relative;
        top: -5px;
        width: 9.6vw;
        height: 9.6vw;
        margin: 0 auto;
        font-size: 4vw;
    }
    html .calendar .calendar_inner .month table tbody td span:before {
        bottom: -14px;
        font-size: 1rem;
    }
}

html .googlemap {
    width: 100%;
    height: 500px;
    position: relative;
}

html .googlemap iframe {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
}

html footer {
    width: 100%;
    box-sizing: border-box;
    overflow: hidden;
    background: url("img/index/footer_bg.webp") no-repeat center;
    background-size: cover;
}

html footer .footer_inner {
    padding-top: 80px;
    text-align: center;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
}

html footer .footer_inner .date_box {
    width: 420px;
    text-align: left;
    flex-shrink: 0;
}

html footer .footer_inner .date_box address {
    padding: 30px 0;
}

html footer .footer_inner .date_box .telbox {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 20px;
    margin-bottom: 30px;
}

html footer .footer_inner .date_box .telbox .instagram {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    background: #fff;
    margin-right: 20px;
}

html footer .footer_inner .open_time {
    max-width: 620px;
}

html footer .footer_inner .open_time .btnbox {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 28px;
}

html footer .f_bnrs {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 30px;
    padding: 60px 0;
}

html footer .sitemap {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    flex-wrap: wrap;
}

html footer .sitemap dl {
    width: 40%;
}

html footer .sitemap dl dt {
    font-size: 1.8rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    padding-bottom: 30px;
}

html footer .sitemap dl dd {
    display: flex;
    justify-content: flex-start;
}

html footer .sitemap dl dd ol {
    width: 40%;
    line-height: 3;
}

html footer .sitemap dl dd ol li a {
    font-size: 1.2rem;
    color: var(--black);
}

html footer .sitemap dl dd ol li a:hover {
    text-decoration: underline;
}

html footer .sitemap dl dd ol~ol {
    width: 60%;
}

html footer .sitemap dl~dl {
    width: 60%;
}

html footer .sitemap dl~dl dd {
    display: flex;
    justify-content: space-between;
}

html footer .sitemap dl~dl dd ol {
    width: auto !important;
}

html footer .sitemap .copy {
    width: 100%;
    text-align: left;
    font-size: 1rem;
    padding: 50px 0;
}

@media screen and (max-width: 768px) {
    html .googlemap {
        width: 100%;
        height: 74.6vw;
    }
    html footer {
        box-sizing: border-box;
        overflow: hidden;
        background: url("img/index/footer_bg@sp.webp") no-repeat center;
        background-size: cover;
    }
    html footer .footer_inner {
        padding: 40px 20px 20px;
        text-align: center;
        display: flex;
        flex-direction: column;
        width: 100%;
        max-width: 100%;
        margin: 0;
        box-sizing: border-box;
    }
    html footer .footer_inner .date_box {
        width: 100%;
        text-align: center;
        flex-shrink: 0;
    }
    html footer .footer_inner .date_box .seo {
        font-size: 1rem;
        padding-bottom: 10px;
    }
    html footer .footer_inner .date_box .f-logo {
        display: block;
        width: 42.6vw;
        margin: 0 auto;
    }
    html footer .footer_inner .date_box address {
        padding: 30px 0;
    }
    html footer .footer_inner .date_box .telbox {
        display: flex;
        flex-direction: column;
        gap: 20px;
        margin-bottom: 20px;
    }
    html footer .footer_inner .date_box .text_link {
        margin: 0 auto 20px;
    }
    html footer .footer_inner .open_time {
        max-width: 100%;
    }
    html footer .footer_inner .open_time .btnbox {
        padding-top: 20px;
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 28px;
    }
    html footer .f_bnrs {
        display: flex;
        flex-direction: column;
        gap: 10px;
        padding: 30px 20px;
    }
    html footer .sitemap {
        width: 100%;
        max-width: 100%;
        margin: 0 auto;
        display: flex;
        flex-direction: column;
        padding: 20px;
        box-sizing: border-box;
    }
    html footer .sitemap dl {
        width: 100%;
    }
    html footer .sitemap dl dt {
        font-size: 1.4rem;
        padding-bottom: 15px;
    }
    html footer .sitemap dl dd {
        display: flex;
        justify-content: flex-start;
    }
    html footer .sitemap dl dd ol {
        width: 50%;
        line-height: 2.4;
    }
    html footer .sitemap dl dd ol li a {
        font-size: 1.2rem;
    }
    html footer .sitemap dl~dl {
        width: 100%;
        padding-top: 30px;
    }
    html footer .sitemap dl~dl dd {
        flex-direction: column;
    }
    html footer .sitemap dl~dl dd ol {
        width: 100%;
    }
    html footer .sitemap .copy {
        text-align: center;
        font-size: 1rem;
        padding: 20px 0 80px;
    }
}

html .time_table {
    width: 100%;
    table-layout: fixed;
    border-collapse: separate;
}

html .time_table thead {
    font-size: 1.5rem;
}

html .time_table thead tr th {
    border-top: 1px solid #b7a4ae;
    border-bottom: 1px solid #b7a4ae;
    height: 40px;
    font-family: var(--Mincho);
    vertical-align: middle;
    font-weight: 400;
}

html .time_table thead tr th:nth-child(1) {
    width: 160px;
    border-top: 1px solid #b7a4ae;
}

html .time_table thead tr th:last-child {
    border-top: 1px solid #b7a4ae;
}

html .time_table tbody {
    font-size: 1.7rem;
}

html .time_table tbody tr td {
    height: 60px;
    vertical-align: middle;
    text-align: center;
    border-bottom: 1px solid #b7a4ae;
    font-family: var(--Mincho);
}

html .time_table tbody tr:last-child td:nth-child(1) {
    border-bottom: 1px solid #b7a4ae;
}

html .time_table tbody tr:last-child td {
    border-bottom: 1px solid #b7a4ae;
}

html .time_table tfoot tr td {
    padding-top: 10px;
    text-align: right;
    font-size: 1.4rem;
    font-family: var(--Mincho);
}

@media screen and (max-width: 767px) {
    html .time_table thead {
        font-size: 1rem;
    }
    html .time_table thead tr th:nth-child(1) {
        width: 80px;
    }
    html .time_table thead tr th {
        height: 24px;
    }
    html .time_table thead tr th span {
        display: none;
    }
    html .time_table tbody {
        font-size: 1rem;
    }
    html .time_table tbody tr td {
        height: 50px;
    }
    html .time_table tfoot tr td {
        text-align: center;
        font-size: 1rem;
    }
}

@media screen and (max-width: 767px) {
    html .footer_access .googlemap {
        width: 100%;
        height: 225px;
    }
    html .footer_access .sect_ttl {
        position: relative;
        z-index: 1;
        margin-top: -50px;
        padding-bottom: 30px;
    }
    html .footer_access address em {
        display: block;
        font-weight: 500;
        font-size: 1.8rem;
    }
    html .footer_access .access_root {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        width: fit-content;
        margin: 0 auto;
        gap: 20px;
        padding: 30px 0;
    }
    html .footer_access .access_root .item {
        gap: 10px;
    }
    html .footer_access .access_root .item i {
        width: 40px;
        height: 40px;
    }
    html .footer_access .access_root .item i.icon-root01 {
        font-size: 2.7rem;
    }
    html .footer_access .access_root .item i.icon-root02 {
        font-size: 1.8rem;
    }
    html .footer_access .access_root .item .text em {
        font-size: 1.7rem;
    }
    html .footer_access .access_root .item .text p {
        font-size: 1.4rem;
    }
}

html .line_box {
    position: relative;
    top: -52px;
    width: 100%;
    padding: 0 min(7.1vw, 100px);
    box-sizing: border-box;
}

html .line_box.contact_page {
    top: 0;
    padding: 0;
}

html .line_box .line_box_inner {
    background: #fbfbfb;
    padding: 25px;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 15px;
}

html .line_box .line_box_inner p {
    line-height: 1.5;
}

html .line_box .line_box_inner .line_btn {
    margin-left: auto;
    width: 298px;
    height: 48px;
    border-radius: 24px;
    background: #06c755;
    display: flex;
    justify-content: center;
    align-items: center;
    color: #fff;
    gap: 8px;
}

html .line_box .line_box_inner .line_btn .icon-line {
    font-size: 2.4rem;
}

html .contact_box {
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
    position: relative;
    box-sizing: border-box;
    display: flex;
    justify-content: center;
    padding: 10px 0 75px;
}

html .contact_box.contact_page {
    padding: 0;
}

html .contact_box .item {
    width: 50%;
    text-align: center;
}

html .contact_box .item h3 {
    font-size: 2.6rem;
    color: var(--Black);
    padding-bottom: 40px;
}

html .contact_box .item .tel {
    margin: 0 auto;
    gap: 10px;
}

html .contact_box .item .tel .icon-freedial {
    font-size: 3rem;
}

html .contact_box .item .tel .icon-tel {
    position: relative;
    top: -3px;
    font-size: 3.2rem;
}

html .contact_box .item .tel span {
    font-size: 4.2rem;
}

html .contact_box .item p {
    height: 100px;
    width: 100%;
    text-align: center;
}

html .contact_box .item p small {
    display: block;
    font-size: 1rem;
    line-height: 1;
}

html .contact_box .item .btnbox {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
}

html .contact_box .item .btnbox a {
    width: 240px;
    height: 70px;
    background: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    font-family: var(--Mincho);
    color: var(--Black);
    border: 1px solid var(--Black);
    font-size: 1.6rem;
}

html .contact_box .item .btnbox a:hover {
    color: var(--hover);
    border-color: var(--hover);
}

html .contact_box .item .btnbox a .icon-cal {
    font-size: 2.2rem;
}

html .contact_box .item .btnbox a .icon-woman {
    font-size: 2.4rem;
}

html .contact_box .item .btnbox a .icon-clinic {
    font-size: 2.2rem;
}

html .contact_box .item .btnbox a .icon-mail {
    font-size: 1.8rem;
}

@media screen and (max-width: 767px) {
    html .line_box {
        position: static;
        width: 100%;
        padding: 0 20px;
        background: #f3f0f0;
        box-sizing: border-box;
    }
    html .line_box .line_box_inner {
        position: relative;
        top: 10px;
        padding: 25px;
        display: flex;
        flex-direction: column;
        gap: 20px;
        text-align: center;
    }
    html .line_box .line_box_inner .line_btn {
        margin: 0 auto;
    }
    html .contact_box {
        width: 100%;
        max-width: 100%;
        margin: 0;
        position: relative;
        box-sizing: border-box;
        display: flex;
        justify-content: center;
        flex-direction: column;
        gap: 40px;
        padding: 40px;
    }
    html .contact_box .item {
        width: 100%;
        text-align: center;
    }
    html .contact_box .item h3 {
        font-size: 5vw;
        padding-bottom: 30px;
    }
    html .contact_box .item .tel {
        margin: 0 auto;
        gap: 6px;
    }
    html .contact_box .item .tel .icon-freedial {
        font-size: 2.6rem;
    }
    html .contact_box .item .tel .icon-tel {
        position: relative;
        top: -3px;
        font-size: 2.6rem;
    }
    html .contact_box .item .tel span {
        font-size: 3.3rem;
    }
    html .contact_box .item p {
        padding: 20px 0;
        height: auto;
        width: 100%;
        text-align: center;
    }
    html .contact_box .item .btnbox {
        display: flex;
        flex-direction: column;
        gap: 10px;
    }
    html .contact_box .item .btnbox a {
        width: 100%;
        height: 60px;
        gap: 8px;
        font-size: 1.5rem;
    }
}

html .pageTop {
    position: fixed;
    right: 30px;
    bottom: -64px;
    transition: all 0.8s cubic-bezier(1, 0, 0, 1);
    backface-visibility: hidden;
    z-index: 8;
}

html .pageTop.on {
    bottom: 30px;
}

html .pageTop a {
    width: 64px;
    height: 64px;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 50%;
    background: #4d3746;
}

html .pageTop a .icon-top {
    color: #fff;
    font-size: 2.4rem;
    transition: all 0.2s ease;
    backface-visibility: hidden;
}

html .pageTop a:hover {
    filter: brightness(120%);
}

html .pageTop a:hover:before {
    transform: scale(1, 2);
}

html .pageTop a:hover .icon-top {
    animation: top 1.5s cubic-bezier(1, 0, 0, 1) 1;
}

@keyframes top {
    0% {
        transform: scale(1, 1);
        transform-origin: 0 0;
    }
    50% {
        transform: scale(1, 0);
        transform-origin: 0 0;
    }
    50.1% {
        transform: scale(1, 0);
        transform-origin: 0 100%;
    }
    100% {
        transform: scale(1, 1);
        transform-origin: 0 100%;
    }
}

@media screen and (max-width: 768px) {
    html .pageTop {
        bottom: 0px;
        right: 0;
    }
    html .pageTop.on {
        bottom: 0px;
    }
    html .pageTop a {
        width: 60px;
        height: 60px;
        border-radius: 0;
    }
    html .pageTop a .icon-top {
        font-size: 2rem;
    }
}

html #fixed_footer {
    position: fixed;
    left: 0;
    bottom: 0;
    width: calc(100% - 60px);
    height: 60px;
    z-index: 10;
    transition: all 0.2s ease;
    display: flex;
    justify-content: flex-start;
    align-items: center;
}

html #fixed_footer.slide-open {
    width: 100%;
}

html #fixed_footer.on {
    pointer-events: auto;
    bottom: 0;
}

html #fixed_footer .tel {
    width: 33.3333333333%;
    height: 60px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 5px;
    background: #ffe2f2;
    color: #4d3746;
    line-height: 1;
    position: relative;
}

html #fixed_footer .tel:before {
    content: "\e90e";
    font-family: var(--icomoon);
    font-size: 2.4rem;
    color: #4d3746;
    position: relative;
    top: -6px;
}

html #fixed_footer .tel span {
    position: absolute;
    left: 0;
    bottom: 5px;
    font-family: var(--Oswald);
    font-size: 1.2rem;
    width: 100%;
    text-align: center;
}

html #fixed_footer .mail {
    width: 33.3333333333%;
    height: 60px;
    background: #fff0fc;
    color: #4d3746;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    transition: all 0.4s ease;
}

html #fixed_footer .mail .icon-mail {
    position: relative;
    top: -5px;
    font-size: 1.8rem;
}

html #fixed_footer .mail span {
    font-size: 1rem;
    line-height: 1.3;
    position: absolute;
    left: 0;
    bottom: 5px;
    width: 100%;
    text-align: center;
}

html #fixed_footer .cal {
    width: 33.3333333333%;
    height: 60px;
    background: #e2c8d6;
    color: #4d3746;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    transition: all 0.4s ease;
}

html #fixed_footer .cal .icon-cal {
    position: relative;
    top: -11px;
    font-size: 2.1rem;
}

html #fixed_footer .cal span {
    font-size: 1rem;
    line-height: 1.15;
    position: absolute;
    left: 0;
    bottom: 5px;
    width: 100%;
    text-align: center;
}

html #menu {
    position: fixed;
    right: 0;
    top: 0;
    z-index: 10;
    width: 100%;
    padding: 110px 0 110px;
    box-sizing: border-box;
    height: 100%;
    overflow-y: auto;
    opacity: 0;
    pointer-events: none;
    transform: translateY(10px);
    transition: all 0.6s ease;
    background: #4d3746;
}

html #menu.slide-open {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0%);
}

html #menu .menu_inner {
    display: flex;
    flex-direction: column;
    gap: 40px;
}

html #menu .menu_inner .menu_sitemap {
    padding-top: 150px;
    display: flex;
    justify-content: space-around;
}

html #menu .menu_inner .menu_sitemap .item {
    position: relative;
    padding-top: 50px;
}

html #menu .menu_inner .menu_sitemap .item h3 {
    position: absolute;
    left: -30px;
    top: 0;
    color: #fff;
    font-family: var(--Gothic);
    font-size: 1.8rem;
    font-weight: 400;
    white-space: nowrap;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 10px;
}

html #menu .menu_inner .menu_sitemap .item h3 .icon-kirakira {
    color: var(--pink);
    font-size: 2.2rem;
}

html #menu .menu_inner .menu_sitemap .item ol {
    line-height: 3.5;
}

html #menu .menu_inner .menu_sitemap .item ol li a {
    color: #fff;
    font-size: 1.4rem;
}

html #menu .menu_inner .menu_sitemap .item ol li a:hover {
    filter: brightness(120%);
    text-decoration: underline;
}

html #menu .menu_inner .menu_sitemap .item ol li a span {
    position: relative;
}

html #menu .menu_inner .menu_sitemap .item ol li a span:before {
    content: attr(data-text);
    position: absolute;
    left: 0;
    top: -10px;
    width: 100%;
    font-size: 1rem;
    line-height: 1;
    text-align: center;
    letter-spacing: 7px;
    transform: scale(0.8);
}

html #menu .menu_inner .btnbox {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
}

html #menu .menu_inner .btnbox a {
    width: 380px;
    height: 90px;
    border: 1px solid #fff;
    border-radius: 10px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    color: #fff;
}

html #menu .menu_inner .btnbox a .icon-mail {
    position: relative;
    top: 2px;
    font-size: 2.1rem;
}

html #menu .menu_inner .btnbox a .icon-cal {
    position: relative;
    top: 2px;
    font-size: 2.4rem;
}

html #menu .menu_inner .btnbox a em {
    font-family: var(--Gothic);
    font-size: 1.8rem;
}

html #menu .menu_inner .btnbox a:hover {
    background: rgba(255, 225, 246, 0.4);
}

html #menu .menu_inner .btnbox .tel:before {
    display: block;
    content: "\e90e";
    font-family: var(--icomoon);
    color: #fff;
    font-size: 2.8rem;
    position: relative;
    top: 2px;
}

html #menu .menu_inner .root li {
    display: flex;
    justify-content: center;
    align-items: center;
    color: #fff;
    font-size: 1.4rem;
    letter-spacing: 0.2em;
    line-height: 2.5;
}

html #menu .menu_inner .root span {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 24px;
    height: 24px;
    line-height: 24px;
    text-align: center;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
    font-weight: 500;
    margin: 0 3px;
    font-size: 1.2rem;
    text-indent: 2px;
}

html #menu .menu_inner p {
    width: fit-content;
    text-align: center;
    color: #fff;
    margin: 0 auto;
    font-size: 1.4rem;
    border-bottom: 1px solid #fff;
}

@media screen and (max-width: 767px) {
    html #menu {
        position: fixed;
        right: 0;
        top: 0;
        z-index: 10;
        width: 100%;
        padding: 50px 20px 20px;
        box-sizing: border-box;
        height: 100%;
        overflow-y: auto;
        opacity: 0;
    }
    html #menu .menu_inner {
        display: flex;
        flex-direction: column;
        gap: 20px;
    }
    html #menu .menu_inner .menu_sitemap {
        padding: 90px 20px 40px;
        display: flex;
        justify-content: flex-start;
        align-items: flex-start;
        flex-wrap: wrap;
    }
    html #menu .menu_inner .menu_sitemap .item {
        width: 50%;
        position: relative;
        padding-top: 30px;
    }
    html #menu .menu_inner .menu_sitemap .item h3 {
        position: absolute;
        left: -30px;
        top: 0;
        color: #fff;
        font-size: 1.6rem;
        gap: 5px;
    }
    html #menu .menu_inner .menu_sitemap .item h3 .icon-kirakira {
        font-size: 2.2rem;
    }
    html #menu .menu_inner .menu_sitemap .item ol {
        line-height: 3;
    }
    html #menu .menu_inner .menu_sitemap .item ol li a {
        color: #fff;
        font-size: 1.2rem;
    }
    html #menu .menu_inner .menu_sitemap .item ol li a:hover {
        filter: brightness(120%);
        text-decoration: underline;
    }
    html #menu .menu_inner .menu_sitemap .item ol li a span {
        position: relative;
    }
    html #menu .menu_inner .menu_sitemap .item ol li a span:before {
        letter-spacing: 2px;
    }
    html #menu .menu_inner .menu_sitemap .item:nth-child(1) {
        padding-bottom: 40px;
    }
    html #menu .menu_inner .menu_sitemap .item:last-child {
        padding-top: 0;
        width: 100%;
    }
    html #menu .menu_inner .btnbox {
        display: flex;
        flex-direction: column;
        gap: 20px;
        padding: 0 20px;
    }
    html #menu .menu_inner .btnbox a {
        width: 100%;
        height: 60px;
        border-radius: 5px;
        gap: 10px;
    }
    html #menu .menu_inner .btnbox a .icon-mail {
        position: relative;
        top: 2px;
        font-size: 2.1rem;
    }
    html #menu .menu_inner .btnbox a .icon-cal {
        position: relative;
        top: 2px;
        font-size: 2.4rem;
    }
    html #menu .menu_inner .btnbox a span {
        font-size: 2rem;
    }
    html #menu .menu_inner .btnbox a em {
        font-size: 1.5rem;
    }
    html #menu .menu_inner .btnbox .tel:before {
        font-size: 2.2rem;
        top: 2px;
    }
    html #menu .menu_inner .root li {
        font-size: 1.2rem;
    }
    html #menu .menu_inner .root span {
        width: 22px;
        height: 22px;
        line-height: 22px;
        margin: 0 3px;
        font-size: 1.1rem;
        text-indent: 2px;
    }
    html #menu .menu_inner p {
        width: fit-content;
        text-align: center;
        color: #fff;
        margin: 0 auto;
        font-size: 1.2rem;
        border-bottom: 1px solid #fff;
    }
}

html .subpage_title {
    margin-top: 110px;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
    gap: 0;
    position: relative;
}

html .subpage_title figure {
    width: 100%;
    height: 600px;
    position: relative;
}

html .subpage_title figure img {
    object-fit: cover;
    object-position: center;
    width: 100%;
    height: 600px;
}

html .subpage_title .subpage_title_text {
    position: absolute;
    left: 60px;
    bottom: 60px;
    z-index: 1;
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    flex-direction: column;
    text-align: left;
}

html .subpage_title .subpage_title_text .text {
    font-family: var(--Mincho);
    display: block;
    line-height: 1;
    font-size: 3.8rem;
    font-weight: 500;
}

@media screen and (max-width: 768px) {
    html .subpage_title {
        margin-top: 0;
    }
    html .subpage_title figure {
        width: 100%;
        height: 50vw;
        position: relative;
    }
    html .subpage_title figure img {
        object-fit: cover;
        object-position: center;
        width: 100%;
        height: 100%;
        border-radius: 0;
    }
    html .subpage_title .subpage_title_text {
        left: 20px;
        bottom: 20px;
        gap: 0px;
    }
    html .subpage_title .subpage_title_text .text {
        font-size: 5vw;
        text-shadow: 0 0 10px #fff, 0 0 10px #fff, 0 0 10px #fff, 0 0 10px #fff, 0 0 10px #fff, 0 0 10px #fff, 0 0 10px #fff, 0 0 10px #fff;
    }
}

html .Breadcrumb_box {
    text-align: right;
    padding: 20px 20px 70px;
}

html .Breadcrumb_box .Breadcrumb {
    line-height: 1.5;
}

html .Breadcrumb_box .Breadcrumb>span+span:before {
    content: "/";
    margin: 0 6px;
}

html .Breadcrumb_box .Breadcrumb span {
    font-family: var(--Gothic);
    font-size: 1.3rem;
    font-weight: 400;
    color: var(--black);
}

html .Breadcrumb_box .Breadcrumb span a span {
    transition: all 0.4s ease;
}

html .Breadcrumb_box .Breadcrumb span a:hover span {
    color: var(--blue);
    text-decoration: underline;
}

@media screen and (max-width: 768px) {
    html .Breadcrumb_box {
        margin-top: 0em;
        padding: 10px 10px 20px;
    }
    html .Breadcrumb_box .Breadcrumb>span+span:before {
        content: "/";
        margin: 0 6px;
    }
    html .Breadcrumb_box .Breadcrumb span {
        font-size: 1rem;
    }
}

html .anchor_link {
    margin: 0 auto;
    width: fit-content;
    width: 1060px;
    box-sizing: border-box;
    position: relative;
    background: #fcfafb;
    border-radius: 10px;
}

html .anchor_link .anchor_link_inner {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    width: 100%;
    padding: 40px 50px 50px;
    box-sizing: border-box;
    gap: 0 30px;
}

html .anchor_link .anchor_link_inner .item {
    width: calc((100% - 60px) / 3);
    display: flex;
    justify-content: center;
    align-items: center;
    height: 60px;
    position: relative;
    font-size: 1.5rem;
    box-sizing: border-box;
    border-bottom: 1px solid #aaa7a9;
    color: var(--black);
}

html .anchor_link .anchor_link_inner .item.wide {
    width: calc((100% - 30px) / 2);
}

html .anchor_link .anchor_link_inner .item:hover {
    color: var(--blue);
    filter: brightness(120%);
}

html .anchor_link .anchor_link_inner .item:nth-child(n+4) {
    border-top: 0;
}

html .anchor_link .anchor_link_inner .item .icon-down {
    position: absolute;
    right: 10px;
    top: 50%;
    font-size: 1rem;
    transform: translateY(-50%);
}

@media screen and (max-width: 768px) {
    html .anchor_link {
        margin: 0 auto;
        width: calc(100% - 20px);
        box-sizing: border-box;
        border-radius: 5px;
    }
    html .anchor_link.wide {
        width: 100%;
    }
    html .anchor_link .anchor_link_inner {
        display: flex;
        flex-direction: row;
        width: 100%;
        padding: 10px 20px 20px;
        gap: 0 10px;
    }
    html .anchor_link .anchor_link_inner .item {
        width: calc(50% - 5px);
        height: 40px;
        font-size: 1.2rem;
        padding-left: 0;
        box-sizing: border-box;
        text-align: left;
        border-top: 0;
        justify-content: flex-start;
    }
    html .anchor_link .anchor_link_inner .item.sp_wide {
        width: 100%;
    }
    html .anchor_link .anchor_link_inner .item span {
        line-height: 1.4;
    }
    html .anchor_link .anchor_link_inner .item .icon-down {
        position: absolute;
        right: 10px;
        top: 50%;
        font-size: 0.75rem;
        transform: translateY(-50%);
    }
}

html .subpage section {
    display: flex;
    flex-direction: column;
    gap: 100px;
    position: relative;
    padding-bottom: 100px;
}

html .subpage section .subpage_sect_box {
    display: flex;
    flex-direction: column;
    gap: 40px;
}

html .subpage section .subpage_sect_box .subpage_sect_ttl {
    text-align: center;
}

html .subpage section .subpage_sect_box .subpage_sect_ttl .icon-kirakira {
    display: block;
    padding-bottom: 30px;
    font-size: 6.4rem;
    color: var(--blue);
}

html .subpage section .subpage_sect_box .subpage_sect_ttl em {
    display: block;
    font-weight: 400;
    font-size: 4rem;
}

html .subpage section .subpage_sect_box p {
    text-align: center;
    margin-bottom: -20px;
}

html .subpage section .inner+.subpage_sect_box {
    margin-top: 60px;
}

html .subpage section .inner {
    display: flex;
    flex-direction: column;
    gap: 80px;
    width: 1060px;
    margin: 0 auto;
}

html .subpage section .inner .inner_block {
    display: flex;
    flex-direction: column;
    gap: 50px;
    width: 100%;
}

@media screen and (max-width: 768px) {
    html .subpage section {
        padding-bottom: 40px;
        gap: 30px;
    }
    html .subpage section .subpage_sect_box {
        width: 100%;
        gap: 20px;
        padding: 0 20px;
        margin-bottom: 0;
        box-sizing: border-box;
    }
    html .subpage section .subpage_sect_box .subpage_sect_ttl {
        text-align: center;
        position: relative;
    }
    html .subpage section .subpage_sect_box .subpage_sect_ttl .icon-kirakira {
        padding-bottom: 20px;
        font-size: 3.8rem;
    }
    html .subpage section .subpage_sect_box .subpage_sect_ttl em {
        font-size: 2.4rem;
    }
    html .subpage section .subpage_sect_box p {
        text-align: justify;
        margin-bottom: 0;
    }
    html .subpage section .inner+.subpage_sect_box {
        margin-top: 30px;
    }
    html .subpage section .inner {
        display: flex;
        flex-direction: column;
        gap: 40px;
        padding: 0 20px;
        width: 100%;
        box-sizing: border-box;
        margin: 0;
    }
    html .subpage section .inner>p {
        padding: 0 20px;
    }
    html .subpage section .inner .inner_block {
        gap: 20px;
    }
    html .subpage section .inner .inner_block>p {
        padding: 0;
    }
}

html .wide_content {
    position: relative;
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 40px;
}

html .wide_content>figure {
    text-align: center;
}

html .wide_content>figure img {
    border-radius: 10px;
}

html .wide_content .text {
    display: flex;
    flex-direction: column;
    gap: 40px;
}

html .wide_content .text .wide_content_ttl {
    font-size: 2.4rem;
    font-weight: 500;
    position: relative;
}

html .wide_content .text .wide_content_ttl.center {
    text-align: center;
}

html .wide_content .text .wide_content_ttl.feature_ttl {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 20px;
}

html .wide_content .text .wide_content_ttl.feature_ttl span {
    position: relative;
    top: -10px;
    z-index: 1;
    padding-top: 30px;
    width: 80px;
    text-align: center;
    font-size: 6rem;
    line-height: 1;
    font-family: var(--Mincho);
    background: url(img/index/features_text.webp) no-repeat center top;
    background-size: 80px auto;
}

html .wide_content .text .wide_content_ttl.feature_ttl em {
    font-size: 2.8rem;
    color: var(--Black);
}

html .wide_content .text p small {
    padding-top: 0.5em;
    display: block;
    font-size: 1.2rem;
    line-height: 1.5;
}

html .wide_content .text .btnbox {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 60px;
}

html .wide_content.concept_box figure {
    position: relative;
}

html .wide_content.concept_box figure figcaption {
    position: absolute;
    left: calc(50% - 50px);
    top: -50px;
    width: 100px;
    height: 99px;
    background: url(img/index/num.webp) no-repeat 0 0;
    background-size: 100% auto;
    text-align: center;
    line-height: 92px;
    font-size: 4.7rem;
    font-family: var(--Kiwi);
    color: #fff;
    z-index: 1;
}

html .wide_content.concept_box .wide_content_ttl {
    text-align: center;
}

@media screen and (max-width: 768px) {
    html .wide_content {
        position: relative;
        width: 100%;
        gap: 20px;
    }
    html .wide_content>figure {
        margin-left: -20px;
        width: calc(100% + 40px);
    }
    html .wide_content>figure.no_cover {
        margin-left: 0;
        width: 100%;
    }
    html .wide_content>figure.no_cover img {
        width: 100%;
        height: auto;
        object-fit: false;
    }
    html .wide_content>figure img {
        width: 100%;
        height: 50vw;
        object-fit: cover;
        border-radius: 0;
    }
    html .wide_content .text {
        padding: 20px 0 0;
        gap: 20px;
    }
    html .wide_content .text .wide_content_ttl {
        margin-top: -20px;
        font-size: 2rem;
        line-height: 1.5;
    }
    html .wide_content .text .wide_content_ttl.feature_ttl {
        display: flex;
        justify-content: center;
        align-items: center;
        flex-direction: column;
        gap: 20px;
    }
    html .wide_content .text .wide_content_ttl.feature_ttl span {
        position: relative;
        top: 0px;
        padding-top: 20px;
        width: 60px;
        font-size: 4.8rem;
        background-size: 60px auto;
    }
    html .wide_content .text .wide_content_ttl.feature_ttl em {
        font-size: 2.4rem;
        text-align: center;
    }
    html .wide_content .text p small {
        padding-top: 0.5em;
        display: block;
        font-size: 1rem;
        line-height: 1.5;
    }
    html .wide_content .text .btnbox {
        display: flex;
        flex-direction: column;
        gap: 20px;
    }
}

html .textbox01 {
    display: flex;
    justify-content: flex-start;
    gap: 60px;
    width: 100%;
    box-sizing: border-box;
}

html .textbox01.reverse {
    flex-direction: row-reverse;
}

html .textbox01 figure {
    flex-shrink: 0;
    padding: 0;
}

html .textbox01 figure img {
    border-radius: 10px;
}

html .textbox01 figure .name {
    text-align: right;
    font-family: var(--Mincho);
    padding-top: 10px;
}

html .textbox01 figure .name span {
    display: block;
    font-size: 1.7rem;
}

html .textbox01 figure .name em {
    display: block;
    line-height: 1;
    font-size: 2.4rem;
}

html .textbox01 .text {
    display: flex;
    flex-direction: column;
    gap: 30px;
    width: 100%;
}

html .textbox01 .text .text_inner {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

html .textbox01 .text .text_inner .staff_box {
    padding: 30px 40px;
    border-radius: 5px;
    background: #fafafa;
}

html .textbox01 .text .text_inner .staff_box .text_arrow {
    margin-left: auto;
}

html .textbox01 .text .textbox_ttl01 {
    font-size: 2.4rem;
    line-height: 1.5;
}

html .textbox01 .text .textbox_ttl02 {
    font-size: 2.2rem;
    line-height: 1.5;
}

html .textbox01 .text small {
    display: block;
    font-size: 1.2rem;
}

html .textbox01 .text .name {
    text-align: left;
    font-weight: 500;
    font-family: var(--Mincho);
}

html .textbox01 .text .name span {
    display: block;
    line-height: 1;
}

html .textbox01 .text .name em {
    display: block;
    font-size: 2.25rem;
    font-weight: 500;
}

html .textbox01 .text .name em small {
    font-size: 1.8rem;
    padding-right: 10px;
}

@media screen and (max-width: 768px) {
    html .textbox01 {
        display: flex;
        flex-direction: column;
        gap: 20px;
    }
    html .textbox01.reverse {
        flex-direction: column;
    }
    html .textbox01>figure {
        text-align: center;
    }
    html .textbox01>figure img {
        margin: 0 auto;
        border-radius: 5px;
    }
    html .textbox01 .text {
        display: flex;
        flex-direction: column;
        gap: 20px;
        box-sizing: border-box;
    }
    html .textbox01 .text .text_inner {
        display: flex;
        flex-direction: column;
        gap: 10px;
    }
    html .textbox01 .text .text_inner .staff_box {
        padding: 10px;
    }
    html .textbox01 .text .textbox_ttl01 {
        font-size: 2rem;
        line-height: 1.5;
    }
    html .textbox01 .text .textbox_ttl02 {
        font-size: 1.8rem;
    }
    html .textbox01 .text .textbox_ttl02.sq {
        padding-left: 16px;
        position: relative;
    }
    html .textbox01 .text .textbox_ttl02.sq:before {
        top: 12px;
        width: 8px;
        height: 8px;
    }
    html .textbox01 .text .textbox_ttl02 .position {
        display: block;
        font-size: 0.8em;
        padding-right: 20px;
    }
    html .textbox01 .text .name {
        padding-top: 10px;
        text-align: left;
    }
    html .textbox01 .text .name span {
        font-size: 1.1rem;
    }
    html .textbox01 .text .name em {
        display: block;
        font-size: 1.8rem;
    }
}

html .line {
    font-size: 2.4rem;
    font-weight: 500;
    padding-bottom: 20px;
    position: relative;
    background: url("img/index/h3_bg.webp") no-repeat 0 0;
    background-size: cover;
    padding: 20px 25px 20px 50px;
    border-radius: 10px;
}

html .line:before {
    content: "";
    width: 30px;
    height: 30px;
    background: url("img/svg/star.svg") no-repeat 0 0;
    background-size: 30px auto;
    position: absolute;
    left: 15px;
    top: 20px;
}

@media screen and (max-width: 768px) {
    html .line {
        font-size: 1.8rem;
        margin: 0;
        padding: 12px 16px 12px 28px;
        position: relative;
        border-radius: 5px;
    }
    html .line:before {
        content: "";
        width: 20px;
        height: 20px;
        background: url("img/svg/star.svg") no-repeat 0 0;
        background-size: 20px auto;
        position: absolute;
        left: 7px;
        top: 14px;
    }
    html .line~p {
        padding: 0 20px;
    }
}

html .large em {
    display: block;
    font-size: 2.4rem;
    font-weight: 500;
    line-height: 1.4;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--black);
    box-sizing: border-box;
}

@media screen and (max-width: 768px) {
    html .large em {
        font-size: 1.8rem;
        padding-bottom: 10px;
    }
    html .large~p {
        margin: 0;
        padding: 0 20px;
    }
}

html .bg_box {
    padding: 60px;
    position: relative;
    background: #fef3f7;
    border-radius: 10px;
}

html .bg_box .bg_box_inner {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: 40px;
}

html .bg_box .bg_box_inner .box_ttl {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 20px;
}

html .bg_box .bg_box_inner .box_ttl .icon-kirakira {
    font-size: 6rem;
    color: var(--blue);
}

html .bg_box .bg_box_inner .box_ttl em {
    display: block;
    font-size: 2.4rem;
    line-height: 1.5;
}

html .bg_box .bg_box_inner .bg_box_inner_text {
    display: flex;
    justify-content: space-between;
    gap: 50px;
}

html .bg_box .bg_box_inner .bg_box_inner_text figure {
    flex-shrink: 0;
}

html .bg_box .bg_box_inner .bg_box_inner_text figure img {
    border-radius: 10px;
}

html .bg_box .bg_box_inner .bg_box_inner_link {
    display: flex;
    flex-direction: column;
    gap: 40px;
}

html .bg_box .bg_box_inner .bg_box_inner_other {
    display: flex;
    flex-direction: column;
    gap: 40px;
}

html .bg_box .bg_box_inner .bg_box_inner_other .text h3 {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 10px;
    font-family: var(--Mincho);
    font-size: 2rem;
    padding-bottom: 10px;
}

html .bg_box .bg_box_inner .bg_box_inner_other .text h3:before {
    content: "";
    display: block;
    width: 8px;
    height: 8px;
    background: var(--hover);
}

html .bg_box .bg_box_inner .bg_box_inner_other .text p {
    background: rgba(255, 255, 255, 0.8);
    padding: 10px 20px;
    border-radius: 5px;
}

html .bg_box .bg_box_inner .bg_box_inner_other .text p~h3 {
    margin-top: 1em;
}

@media screen and (max-width: 767px) {
    html .bg_box {
        margin-left: -20px;
        width: calc(100% + 40px);
        padding: 20px;
        position: relative;
        box-sizing: border-box;
        border-radius: 0;
    }
    html .bg_box:before {
        content: none;
    }
    html .bg_box:after {
        content: none;
    }
    html .bg_box .bg_box_inner {
        gap: 20px;
    }
    html .bg_box .bg_box_inner .box_ttl {
        display: flex;
        flex-direction: column;
        gap: 10px;
    }
    html .bg_box .bg_box_inner .box_ttl .icon-kirakira {
        font-size: 3.8rem;
        color: var(--blue);
    }
    html .bg_box .bg_box_inner .box_ttl em {
        text-align: center;
        font-size: 1.8rem;
    }
    html .bg_box .bg_box_inner .bg_box_inner_text {
        display: flex;
        flex-direction: column;
        gap: 20px;
    }
    html .bg_box .bg_box_inner .bg_box_inner_text figure img {
        width: 100%;
        border-radius: 5px;
    }
    html .bg_box .bg_box_inner .bg_box_inner_link {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 20px;
    }
    html .bg_box .bg_box_inner .bg_box_inner_other {
        display: flex;
        flex-direction: column;
        gap: 20px;
    }
    html .bg_box .bg_box_inner .bg_box_inner_other .text h3 {
        align-items: flex-start;
        gap: 10px;
        font-size: 1.8rem;
        padding-bottom: 10px;
        line-height: 1.5;
    }
    html .bg_box .bg_box_inner .bg_box_inner_other .text h3:before {
        flex-shrink: 0;
        width: 6px;
        height: 6px;
        position: relative;
        top: 11px;
    }
    html .bg_box .bg_box_inner .bg_box_inner_other .text p {
        background: rgba(255, 255, 255, 0.8);
        padding: 8px 16px;
        border-radius: 5px;
    }
    html .bg_box .bg_box_inner .bg_box_inner_other .text p~h3 {
        margin-top: 1em;
    }
}

html .qa_box {
    width: 100%;
    margin: 0 auto;
    position: relative;
}

html .qa_box .item {
    margin: 0 auto 60px;
}

html .qa_box .item:last-child {
    margin-bottom: 0;
}

html .qa_box .item .qa_ttl {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 20px;
    margin-bottom: 20px;
}

html .qa_box .item .qa_ttl em {
    flex-shrink: 0;
    display: block;
    line-height: 55px;
    text-align: center;
    font-weight: 100;
    font-size: 3rem;
    color: #fff;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    font-family: var(--en);
    background: var(--black);
}

html .qa_box .item .qa_ttl span {
    font-size: 2.2rem;
    font-weight: 500;
}

html .qa_box .item p {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 20px;
}

html .qa_box .item p em {
    flex-shrink: 0;
    display: block;
    line-height: 56px;
    text-align: center;
    font-weight: 300;
    font-size: 3rem;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    font-family: var(--en);
    background: var(--pink);
}

html .qa_box .item p .qa_tel {
    display: block;
    padding: 20px 0 10px;
}

html .qa_box .item p .qa_tel a {
    color: #a39c97;
}

html .qa_box .item .btn {
    margin: 20px 0 0 80px;
}

@media screen and (max-width: 768px) {
    html .qa_box {
        box-sizing: border-box;
    }
    html .qa_box .item {
        margin: 0 auto 20px;
    }
    html .qa_box .item:last-child {
        margin-bottom: 0;
    }
    html .qa_box .item .qa_ttl {
        display: flex;
        justify-content: flex-start;
        align-items: center;
        gap: 10px;
        margin-bottom: 10px;
    }
    html .qa_box .item .qa_ttl em {
        flex-shrink: 0;
        font-size: 2rem;
        width: 40px;
        height: 40px;
        line-height: 36px;
    }
    html .qa_box .item .qa_ttl span {
        font-size: 1.65rem;
    }
    html .qa_box .item p {
        gap: 10px;
    }
    html .qa_box .item p em {
        flex-shrink: 0;
        font-size: 2rem;
        width: 40px;
        height: 40px;
        line-height: 36px;
    }
    html .qa_box .item .btn {
        margin: 10px 0 0 50px;
    }
}

html .textbox03 {
    width: 100%;
    max-width: 100%;
    margin: 0 auto 32px;
}

html .textbox03 .text {
    padding: 0 16px 32px;
}

html .textbox03 .text .circle {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: #9b6b20;
    color: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 1.4rem;
    margin: 0 auto;
    border: 4px solid #fff;
    outline: 1px solid var(--gold);
}

html .textbox03 .text .circle#color02 {
    background: #9b5140;
    outline-color: #9b5140;
}

html .textbox03 .text .circle#color03 {
    background: #a12828;
    outline-color: #a12828;
}

html .textbox03 .text p {
    padding-top: 16px;
}

@media screen and (min-width: 769px) {
    html .textbox03 {
        margin: 0 auto 64px;
    }
    html .textbox03 .text {
        display: flex;
        justify-content: flex-start;
        gap: 40px;
        padding: 0 0 48px;
    }
    html .textbox03 .text.wide {
        display: block;
    }
    html .textbox03 .text.wide h3 {
        width: 100%;
        padding-bottom: 16px;
        color: var(--brown);
    }
    html .textbox03 .text h3 {
        width: 100px;
        flex-shrink: 0;
    }
    html .textbox03 .text .circle {
        width: 100px;
        height: 100px;
        font-size: 1.6rem;
    }
    html .textbox03 .text p {
        padding-top: 0;
    }
    html .textbox03 .text:last-child {
        padding-bottom: 0;
    }
}

html .price_table_head {
    margin-top: -20px;
}

html .price_table_head h4 {
    font-size: 2rem;
    padding-bottom: 10px;
}

@media screen and (max-width: 768px) {
    html .price_table_head {
        padding: 0 20px;
    }
    html .price_table_head h4 {
        font-size: 1.6rem;
        padding-bottom: 10px;
    }
}

html .table_type01 {
    table-layout: fixed;
    width: 100%;
    box-sizing: border-box;
    border-collapse: separate;
    border-spacing: 0;
    margin: 0 auto;
    font-weight: 400;
}

html .table_type01 caption {
    font-family: var(--Mincho);
    font-size: 2rem;
    font-weight: 500;
    padding-bottom: 1em;
    text-align: left;
}

html .table_type01 thead tr th {
    padding: 12px;
    box-sizing: border-box;
    text-align: center;
    font-weight: 500;
    font-size: 1.5rem;
    background: #fef3f7;
    font-family: var(--Mincho);
    line-height: 1.5;
    vertical-align: middle;
    text-align: center;
    border: 1px solid var(--line);
}

html .table_type01 thead tr th~th {
    border-left: 0;
}

html .table_type01 thead tr th:nth-child(1) {
    border-radius: 10px 0 0 0;
}

html .table_type01 thead tr th:last-child {
    border-radius: 0 10px 0 0;
}

html .table_type01 tbody tr th {
    padding: 30px;
    box-sizing: border-box;
    vertical-align: middle;
    text-align: center;
    font-weight: 600;
    border-bottom: 1px solid var(--line);
    border-left: 1px solid var(--line);
    border-right: 1px solid var(--line);
    line-height: 1.5;
    white-space: nowrap;
    text-align: center;
    background: #ffffff;
}

html .table_type01 tbody tr th.bg {
    background: #fefff8;
}

html .table_type01 tbody tr td:nth-child(1) {
    border-left: 1px solid var(--line);
}

html .table_type01 tbody tr td {
    padding: 20px;
    border-bottom: 1px solid var(--line);
    vertical-align: middle;
    line-height: 1.35;
    font-weight: 400;
    text-align: center;
    background: #ffffff;
}

html .table_type01 tbody tr td p {
    text-align: left;
    font-weight: 500;
    line-height: 1.5;
}

html .table_type01 tbody tr td small {
    display: block;
    font-weight: normal;
    font-size: 1rem;
    line-height: 1;
    padding-top: 5px;
}

html .table_type01 tbody tr td+td {
    border-left: 1px solid var(--line);
}

html .table_type01 tbody tr td:last-child {
    border-right: 1px solid var(--line);
}

html .table_type01 tbody tr .bold {
    font-weight: normal;
}

html .table_type01 tbody tr:last-child th:first-child,
html .table_type01 tbody tr:last-child td:first-child {
    border-radius: 0 0 0 10px;
}

html .table_type01 tbody tr:last-child td:last-child {
    border-radius: 0 0 10px 0;
}

html .table_type01 tfoot tr td {
    font-weight: 400;
    text-align: right;
    padding-top: 10px;
    font-size: 1.3rem;
    color: var(--gray);
}

html .table_type01 tfoot tr td a {
    text-decoration: underline;
}

html .table_type01 tfoot tr td a:hover {
    color: var(--hover);
}

@media screen and (max-width: 768px) {
    html .js-scrollable {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    html .js-scrollable .table_type01 {
        min-width: 800px;
    }
    html .scroll-hint-text {
        white-space: nowrap;
    }
    html .table_type01 {
        width: 100%;
        margin: 0 auto 10px;
    }
    html .table_type01 caption {
        font-size: 1.5rem;
        padding-bottom: 0.5em;
        text-align: left;
    }
    html .table_type01 thead tr th {
        padding: 5px;
        font-size: 1rem;
    }
    html .table_type01 thead tr th:nth-child(1) {
        border-radius: 5px 0 0 0;
    }
    html .table_type01 thead tr th:last-child {
        border-radius: 0 5px 0 0;
    }
    html .table_type01 tbody tr th {
        padding: 10px;
        white-space: normal;
        font-size: 1.2rem;
    }
    html .table_type01 tbody tr td {
        padding: 10px;
        white-space: normal;
        font-size: 1.2rem;
    }
    html .table_type01 tbody tr td p {
        font-size: 1.2rem;
    }
    html .table_type01 tbody tr td small {
        font-size: 1rem;
    }
    html .table_type01 tbody tr:last-child th:first-child,
    html .table_type01 tbody tr:last-child td:first-child {
        border-radius: 0 0 0 5px;
    }
    html .table_type01 tbody tr:last-child td:last-child {
        border-radius: 0 0 5px 0;
    }
    html .table_type01 tfoot tr td {
        padding-top: 0px;
        font-size: 1rem;
    }
}

html .table_type01.course colgroup .num {
    width: 60px;
}

html .table_type01.course colgroup .time {
    width: 120px;
}

html .table_type01.course colgroup .price {
    width: 120px;
}

html .table_type01.course tbody tr th.num {
    padding: 0;
    font-family: var(--Gothic);
    background: #f7f3f3;
}

html .table_type01.course tbody tr th.num+td {
    font-family: var(--Mincho);
    font-weight: 500;
    background: #f7f3f3;
}

html .table_type01.course tbody tr .left {
    text-align: left;
}

html .table_type01.course tbody tr td b {
    display: block;
    color: #d14b67;
}

html .table_type01.course tbody tr td:nth-child(2) {
    text-align: left;
}

html .table_type01.course tbody tr td:nth-child(3) {
    padding: 0;
}

html .table_type01.course tbody tr td:nth-child(4) {
    text-align: left;
}

html .table_type01.course tbody tr td:last-child {
    padding: 0;
    text-align: center;
}

html .table_ttl {
    font-size: 2rem;
    margin-bottom: -20px;
}

html .table_ttl~p {
    color: var(--Black);
    margin-bottom: -10px;
}

@media screen and (max-width: 767px) {
    html .table_ttl {
        font-size: 1.8rem;
        margin-bottom: -10px;
    }
    html .table_ttl~p {
        color: var(--Black);
        margin-bottom: 0px;
    }
}

html .table_type02 {
    table-layout: fixed;
    width: 100%;
    box-sizing: border-box;
    border-collapse: separate;
    border-spacing: 0;
    margin: 0 auto;
    font-weight: 400;
}

html .table_type02 caption {
    font-family: var(--Mincho);
    font-size: 2rem;
    font-weight: 500;
    padding-bottom: 1em;
    text-align: left;
}

html .table_type02 tbody tr th {
    padding: 25px;
    box-sizing: border-box;
    vertical-align: middle;
    text-align: center;
    font-weight: 600;
    border: 1px solid var(--Green);
    border-bottom: 0;
    line-height: 1.5;
    white-space: nowrap;
    text-align: center;
    background: #fefff8;
    width: 300px;
}

html .table_type02 tbody tr td:nth-child(1) {
    border-left: 1px solid var(--Green);
}

html .table_type02 tbody tr td {
    padding: 25px;
    border: 1px solid var(--Green);
    border-bottom: 0;
    border-left: 0;
    vertical-align: middle;
    line-height: 1.35;
    font-weight: 400;
    text-align: center;
    background: #ffffff;
}

html .table_type02 tbody tr td p {
    text-align: left;
    font-weight: 500;
    line-height: 1.5;
}

html .table_type02 tbody tr td small {
    display: block;
    font-weight: normal;
    font-size: 1rem;
    line-height: 1;
    padding-top: 5px;
}

html .table_type02 tbody tr td:last-child {
    border-right: 1px solid var(--Green);
}

html .table_type02 tbody tr:first-child th:first-child,
html .table_type02 tbody tr:first-child td:first-child {
    border-radius: 10px 0 0 0;
}

html .table_type02 tbody tr:first-child td:last-child {
    border-radius: 0 10px 0 0;
}

html .table_type02 tbody tr:last-child th:first-child,
html .table_type02 tbody tr:last-child td:first-child {
    border-bottom: 1px solid var(--Green);
    border-radius: 0 0 0 10px;
}

html .table_type02 tbody tr:last-child td:last-child {
    border-radius: 0 0 10px 0;
    border-bottom: 1px solid var(--Green);
}

html .table_type02 tfoot tr td {
    font-weight: 400;
    text-align: right;
    padding-top: 10px;
    font-size: 1.3rem;
    color: var(--gray);
}

html .table_type02 tfoot tr td a {
    text-decoration: underline;
}

html .table_type02 tfoot tr td a:hover {
    color: var(--hover);
}

@media screen and (max-width: 767px) {
    html .table_type02 {
        width: 100%;
        margin: 0 auto 10px;
    }
    html .table_type02 caption {
        font-size: 1.5rem;
        padding-bottom: 0.5em;
        text-align: left;
    }
    html .table_type02 caption em {
        font-size: 1.8rem;
    }
    html .table_type02 caption span {
        font-size: 1.4rem;
    }
    html .table_type02 tbody tr th {
        width: 100px;
        padding: 10px;
        white-space: normal;
        font-size: 1.2rem;
    }
    html .table_type02 tbody tr td {
        padding: 10px;
        white-space: normal;
        font-size: 1.2rem;
    }
    html .table_type02 tbody tr td ul {
        padding: 0;
    }
    html .table_type02 tfoot tr td {
        padding-top: 0px;
        font-size: 1rem;
    }
}

html .small_box {
    background: #fcfafb;
    padding: 35px;
    border-radius: 10px;
}

html .small_box em {
    font-family: var(--gothic);
    color: var(--gray);
    display: block;
    font-weight: 500;
    line-height: 1.3;
    font-size: 1.3rem;
    padding-bottom: 8px;
}

html .small_box p {
    font-size: 1.2rem;
    line-height: 2;
}

html .small_box em~em {
    padding-top: 1em;
}

@media screen and (max-width: 768px) {
    html .small_box {
        padding: 16px;
        border-radius: 5px;
    }
    html .small_box em {
        font-size: 1.2rem;
        padding-bottom: 8px;
    }
    html .small_box p {
        font-size: 1rem;
    }
}

html .point_box {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 60px 35px;
}

html .point_box .item {
    width: calc((100% - 70px) / 3);
    display: flex;
    flex-direction: column;
    gap: 30px 0;
}

html .point_box .item>a {
    display: flex;
    flex-direction: column;
    gap: 30px 0;
}

html .point_box .item figure {
    position: relative;
}

html .point_box .item figure img {
    border-radius: 5px;
}

html .point_box .item figure figcaption {
    position: absolute;
    left: 50%;
    top: 0;
    transform: translate(-50%, -50%);
    width: 80px;
    height: 80px;
    margin: 0 auto;
    border-radius: 50%;
    background: #fcfafb;
    background-size: 100% auto;
    display: flex;
    justify-content: center;
    align-items: center;
}

html .point_box .item figure figcaption span {
    display: block;
    text-align: center;
    line-height: 1;
}

html .point_box .item figure figcaption span small {
    position: relative;
    top: 5px;
    display: block;
    line-height: 1;
    font-family: var(--en);
    letter-spacing: 0.1em;
    font-weight: 200;
    font-size: 1.2rem;
}

html .point_box .item figure figcaption span em {
    text-align: center;
    display: block;
    line-height: 1;
    font-family: var(--en);
    font-weight: 200;
    font-size: 3.6rem;
}

html .point_box .item .item_ttl {
    text-align: center;
    font-size: 2.4rem;
    line-height: 1.5;
}

html .point_box .item .item_ttl small {
    display: block;
    font-size: 0.7em;
}

@media screen and (max-width: 768px) {
    html .point_box {
        display: flex;
        gap: 30px;
    }
    html .point_box .item {
        width: 100%;
        display: flex;
        flex-direction: column;
        gap: 15px;
        padding-top: 20px;
    }
    html .point_box .item figure {
        position: relative;
    }
    html .point_box .item figure img {
        width: 100%;
    }
    html .point_box .item figure figcaption {
        width: 60px;
        height: 60px;
    }
    html .point_box .item figure figcaption span small {
        font-size: 1rem;
    }
    html .point_box .item figure figcaption span em {
        padding-top: 2px;
        font-size: 2rem;
    }
    html .point_box .item .item_ttl {
        text-align: center;
        font-size: 1.8rem;
    }
}

html .textbox02 {
    width: 100%;
    padding: 60px;
    box-sizing: border-box;
    position: relative;
    background: #fef3f7;
    border-radius: 10px;
}

html .textbox02 .textbox02_inner {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: 40px;
}

html .textbox02 .textbox02_inner .chack_ttl {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 10px;
    padding-bottom: 20px;
}

html .textbox02 .textbox02_inner .chack_ttl .icon-check {
    font-size: 3.6rem;
}

html .textbox02 .textbox02_inner .chack_ttl em {
    font-size: 2.4rem;
}

html .textbox02 .text .text_ttl {
    font-size: 2rem;
    padding-bottom: 10px;
}

html .textbox02 .text .text_ttl.sq {
    padding-left: 20px;
    position: relative;
}

html .textbox02 .text .text_ttl.sq:before {
    position: absolute;
    left: 0;
    top: 14px;
    display: inline-block;
    content: "";
    width: 8px;
    height: 8px;
    background: var(--hover);
}

html .textbox02 .text .flex {
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 10px 40px;
}

html .textbox02 .text .flex li {
    width: calc(50% - 20px);
    line-height: 1.5;
    padding-left: 14px;
    position: relative;
    box-sizing: border-box;
}

html .textbox02 .text .flex li:before {
    content: "";
    width: 4px;
    height: 4px;
    background: var(--brown);
    display: inline-block;
    margin-right: 8px;
    position: absolute;
    left: 0;
    top: 10px;
}

html .textbox02 .text small {
    padding-top: 20px;
    display: block;
    line-height: 1.5;
    font-size: 1.2rem;
}

@media screen and (max-width: 768px) {
    html .textbox02 {
        margin-left: -20px;
        width: calc(100% + 40px);
        padding: 30px 20px;
        border-radius: 0;
        box-sizing: border-box;
    }
    html .textbox02:before {
        content: none;
    }
    html .textbox02:after {
        content: none;
    }
    html .textbox02 .textbox02_inner {
        display: flex;
        flex-direction: column;
        gap: 20px;
    }
    html .textbox02 .textbox02_inner .chack_ttl {
        align-items: flex-start;
        gap: 5px;
        padding-bottom: 10px;
    }
    html .textbox02 .textbox02_inner .chack_ttl .icon-check {
        position: relative;
        top: 3px;
        font-size: 2.6rem;
    }
    html .textbox02 .textbox02_inner .chack_ttl em {
        font-size: 2rem;
    }
    html .textbox02 .textbox02_inner .text .text_ttl {
        font-size: 1.7rem;
        padding-bottom: 10px;
    }
    html .textbox02 .textbox02_inner .text .text_ttl.sq {
        padding-left: 16px;
        position: relative;
    }
    html .textbox02 .textbox02_inner .text .text_ttl.sq:before {
        top: 12px;
        width: 8px;
        height: 8px;
    }
}

html .flex_box {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 40px;
}

html .flex_box .item {
    width: calc((100% - 40px) / 2);
    display: flex;
    flex-direction: column;
    gap: 30px 0;
}

html .flex_box .item figure img {
    border-radius: 10px;
}

html .flex_box .item.flex {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    flex-direction: row;
    gap: 30px;
}

html .flex_box .item.flex figure {
    flex-shrink: 0;
}

html .flex_box .item.flex figure img {
    border-radius: 50%;
}

html .flex_box .item.flex .text {
    gap: 10px;
}

html .flex_box .item.flex .text .text_ttl {
    text-align: left;
}

html .flex_box .item .text {
    display: flex;
    flex-direction: column;
    gap: 30px 0;
}

html .flex_box .item .text .text_ttl {
    font-size: 2.4rem;
    text-align: center;
}

@media screen and (max-width: 768px) {
    html .flex_box {
        display: flex;
        flex-direction: column;
        gap: 40px;
    }
    html .flex_box .item {
        width: 100%;
        gap: 20px 0;
    }
    html .flex_box .item figure img {
        border-radius: 5px;
    }
    html .flex_box .item.flex {
        display: flex;
        justify-content: center;
        align-items: flex-start;
        flex-direction: row;
        gap: 20px;
    }
    html .flex_box .item.flex figure {
        width: 100px;
        flex-shrink: 0;
    }
    html .flex_box .item.flex figure img {
        border-radius: 50%;
    }
    html .flex_box .item.flex .text {
        gap: 10px;
    }
    html .flex_box .item.flex .text .text_ttl {
        text-align: left;
    }
    html .flex_box .item .text {
        gap: 20px 0;
    }
    html .flex_box .item .text .text_ttl {
        font-size: 2rem;
        text-align: center;
    }
}

html .flow.flow_block {
    position: relative;
    z-index: 1;
    margin-top: -60px;
    padding: 50px;
    background: #fff;
    border-radius: 0 0 15px 15px;
    border: 2px solid #ab998d;
    border-top: 0;
}

html .flow.flow_block .item {
    padding-bottom: 50px;
}

html .flow.flow_block .item .text {
    width: calc(100% - 430px);
}

html .flow.flow_block .item figure {
    width: 380px;
}

html .flow .item {
    display: flex;
    justify-content: flex-start;
    flex-direction: row-reverse;
    flex-wrap: wrap;
    gap: 50px;
    padding-bottom: 80px;
    position: relative;
}

html .flow .item.extension:before {
    content: "" !important;
    position: absolute;
    left: 38px;
    top: 80px;
    width: 0;
    height: 1746px;
    border-right: 3px dotted #ab998d;
}

html .flow .item:before {
    content: "";
    position: absolute;
    left: 38px;
    top: 80px;
    width: 0;
    height: calc(100% - 80px);
    border-right: 2px solid #fef3f7;
}

html .flow .item>figure {
    width: 430px;
    flex-shrink: 0;
}

html .flow .item>figure img {
    border-radius: 10px;
}

html .flow .item .text {
    width: calc(100% - 480px);
    display: flex;
    justify-content: flex-start;
    gap: 25px;
}

html .flow .item .text.wide {
    width: 100%;
}

html .flow .item .text.wide .inner_box {
    width: 100%;
}

html .flow .item .text .flow_num {
    flex-shrink: 0;
    width: 80px;
    height: 80px;
    background: #fef3f7;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
}

html .flow .item .text .flow_num span {
    display: block;
    text-align: center;
}

html .flow .item .text .flow_num span small {
    position: relative;
    top: 5px;
    display: block;
    line-height: 1;
    font-family: var(--en);
    font-weight: 200;
    font-size: 1.3rem;
    letter-spacing: 0.1em;
}

html .flow .item .text .flow_num span em {
    display: block;
    line-height: 1;
    font-size: 4rem;
    font-family: var(--en);
    font-weight: 200;
}

html .flow .item .text .inner_box {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

html .flow .item .text .inner_box .flow_ttl {
    font-size: 2.4rem;
    font-weight: 500;
    line-height: 1.5;
    display: flex;
    justify-content: space-between;
    align-items: center;
    min-height: 80px;
    gap: 20px;
    margin-bottom: -20px;
}

html .flow .item .text .inner_box .flow_ttl picture {
    flex-shrink: 0;
}

html .flow .item .text .inner_box .flow_ttl picture img {
    width: auto;
    height: 80px;
}

html .flow .item .text .inner_box .sub_ttl {
    display: block;
    font-weight: 500;
    font-size: 1.1em;
    line-height: 1.5;
    color: var(--gray);
    margin-bottom: -10px;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 8px;
}

html .flow .item .text .inner_box .sub_ttl:before {
    content: "";
    display: block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--hover);
}

html .flow .item .text .inner_box .tel {
    color: var(--brown);
}

html .flow .item .text .inner_box .inner_box_text {
    padding: 40px;
    width: 100%;
    box-sizing: border-box;
    background: rgba(255, 255, 255, 0.5);
    display: flex;
    flex-direction: column;
    gap: 20px;
}

html .flow .item .text .inner_box .inner_box_text p {
    color: var(--Black);
}

html .flow .item .text .inner_box .inner_box_text .sub_ttl {
    color: var(--Black);
}

html .flow .item .text .inner_box .inner_box_text .telbox .tel {
    color: var(--Black);
}

html .flow .item .text .inner_box .inner_box_text .telbox .tel .icon-tel {
    font-size: 3.2rem;
}

html .flow .item .text .inner_box .inner_box_text .telbox .tel span {
    font-size: 4rem;
}

html .flow .item .text .inner_box .pdf_down_load {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

html .flow .item .text .inner_box .pdf_down_load h4 {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 10px;
    font-size: 1.8rem;
    font-weight: 500;
}

html .flow .item .text .inner_box .pdf_down_load ul li a {
    color: var(--hover);
}

html .flow .item .text .inner_box .pdf_down_load ol {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

html .flow .item .text .inner_box .pdf_down_load ol li {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 10px;
}

html .flow .item .text .inner_box .pdf_down_load ol li span {
    position: relative;
    top: 5px;
    flex-shrink: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 80px;
    border: 1px solid var(--line);
    font-size: 1.2rem;
    color: var(--brown);
    white-space: nowrap;
}

html .flow .item .item_inner {
    width: 100%;
    padding-left: 65px;
    box-sizing: border-box;
}

html .flow .item:last-child {
    padding-bottom: 0;
}

html .flow .item:last-child:before {
    content: none;
}

@media screen and (max-width: 768px) {
    html .flow .item {
        display: flex;
        flex-direction: column;
        padding: 0 0 40px;
        gap: 20px;
    }
    html .flow .item.extension:before {
        left: 44px;
        top: 50px;
        width: 0;
        height: 100%;
    }
    html .flow .item:before {
        left: 24px;
        top: 50px;
        width: 0;
        height: calc(100% - 50px);
    }
    html .flow .item>figure {
        width: 100%;
        order: 1;
        flex-shrink: 0;
        padding-left: 70px;
        margin-right: 0px;
        box-sizing: border-box;
    }
    html .flow .item>figure img {
        border-radius: 5px;
    }
    html .flow .item .text {
        width: 100%;
        order: 0;
        display: flex;
        justify-content: flex-start;
        gap: 15px;
    }
    html .flow .item .text .flow_num {
        width: 50px;
        height: 50px;
    }
    html .flow .item .text .flow_num span small {
        font-size: 1rem;
    }
    html .flow .item .text .flow_num span em {
        padding-top: 2px;
        font-size: 2rem;
    }
    html .flow .item .text .inner_box {
        display: flex;
        flex-direction: column;
        gap: 20px;
    }
    html .flow .item .text .inner_box .flow_ttl {
        font-size: 1.8rem;
        line-height: 1.5;
        min-height: 50px;
    }
    html .flow .item .text .inner_box .flow_ttl picture {
        flex-shrink: 0;
    }
    html .flow .item .text .inner_box .flow_ttl picture img {
        width: auto;
        height: 50px;
        border-radius: 5px;
    }
    html .flow .item .text .inner_box .inner_box_text {
        padding: 20px;
        display: flex;
        flex-direction: column;
        gap: 10px;
    }
    html .flow .item .text .inner_box .inner_box_text .telbox .tel .icon-tel {
        font-size: 2.4rem;
    }
    html .flow .item .text .inner_box .inner_box_text .telbox .tel span {
        font-size: 3rem;
    }
    html .flow .item .text .inner_box .pdf_down_load {
        display: flex;
        flex-direction: column;
        gap: 10px;
    }
    html .flow .item .text .inner_box .pdf_down_load h4 {
        display: flex;
        justify-content: flex-start;
        align-items: flex-start;
        gap: 10px;
        font-size: 1.6rem;
        font-weight: 500;
    }
    html .flow .item .text .inner_box .pdf_down_load h4 img {
        width: 20px;
    }
    html .flow .item .text .inner_box .pdf_down_load ol {
        display: flex;
        flex-direction: column;
        gap: 10px;
    }
    html .flow .item .text .inner_box .pdf_down_load ol li {
        display: flex;
        flex-direction: column;
        gap: 5px;
        line-height: 1.5;
    }
    html .flow .item .text .inner_box .pdf_down_load ol li span {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 120px;
        border: 1px solid var(--line);
        font-size: 1rem;
    }
    html .flow .item:last-child {
        padding-bottom: 0;
    }
    html .flow .item:last-child:before {
        content: none;
    }
}

html .icon_box {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

html .icon_box.cavity {
    gap: 60px;
}

html .icon_box.cavity .item {
    padding: 0;
    background: none;
    align-items: flex-start;
}

html .icon_box.cavity .item dl {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 20px;
}

html .icon_box.cavity .item dl dt {
    position: relative;
    top: 4px;
    flex-shrink: 0;
    color: var(--lightyellow);
    line-height: 1;
    white-space: nowrap;
    width: 80px;
    height: 30px;
    background: var(--Green);
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 5px;
}

html .icon_box .item {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 30px;
}

html .icon_box .item figure {
    width: 116px;
    height: 116px;
    border-radius: 50%;
    background: #fef3f7;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-shrink: 0;
}

html .icon_box .item figure i {
    font-size: 4rem;
}

html .icon_box .item figure .icon-car {
    font-size: 3rem;
}

html .icon_box .item figure .icon-train {
    font-size: 5rem;
}

html .icon_box .item .text {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

html .icon_box .item .text .text_ttl {
    font-size: 2.4rem;
}

@media screen and (max-width: 768px) {
    html .icon_box {
        display: flex;
        flex-direction: column;
        gap: 20px;
    }
    html .icon_box.cavity {
        gap: 30px;
    }
    html .icon_box.cavity .item {
        padding: 0;
        flex-direction: row;
    }
    html .icon_box.cavity .item figure img {
        transform: scale(1);
    }
    html .icon_box.cavity .item .text .text_ttl {
        text-align: left;
    }
    html .icon_box.cavity .item .text dl {
        margin-left: -106px;
        display: flex;
        justify-content: flex-start;
        align-items: flex-start;
        gap: 20px;
    }
    html .icon_box.cavity .item .text dl dt {
        position: relative;
        top: 5px;
        font-size: 1.2rem;
        width: 86px;
        height: 20px;
    }
    html .icon_box .item {
        display: flex;
        flex-direction: column;
        gap: 20px;
    }
    html .icon_box .item figure {
        width: 86px;
        height: 86px;
        margin: 0 auto;
    }
    html .icon_box .item figure .icon-icon01 {
        font-size: 5rem;
    }
    html .icon_box .item figure .icon-icon02 {
        font-size: 5rem;
    }
    html .icon_box .item figure img {
        transform: scale(0.8);
    }
    html .icon_box .item .text .text_ttl {
        font-size: 1.8rem;
        text-align: center;
    }
    html .icon_box .item .text .text_ttl.left {
        text-align: left;
        padding-bottom: 0;
    }
}

html .case_box .case_ttl {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    position: relative;
    margin-bottom: 30px;
}

html .case_box .case_ttl span {
    position: relative;
    font-size: 2.4rem;
}

html .case_box .case_table dl {
    display: flex;
    justify-content: flex-start;
}

html .case_box .case_table dl dt {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 25%;
    background: var(--navy);
    padding: 15px;
    border: 1px solid var(--line);
    border-right: 0;
    box-sizing: border-box;
    flex-shrink: 0;
    color: #fff;
    font-size: 1.6rem;
    font-weight: 600;
}

html .case_box .case_table dl dd {
    min-width: 75%;
    padding: 15px;
    box-sizing: border-box;
    border: 1px solid var(--line);
    text-align: center;
    background: #fff;
}

html .case_box .case_table dl dd em {
    display: block;
    font-weight: 500;
    color: var(--brown);
}

html .case_box .case_table dl dd p {
    text-align: left;
}

html .case_box .case_table dl dd small {
    display: block;
    font-size: 1rem;
    text-align: right;
}

html .case_box .case_table dl dd~dt {
    margin-left: 10px;
}

html .case_box .case_table dl.narrow dt {
    width: 25%;
}

html .case_box .case_table dl.narrow dd {
    width: calc(25% - 5px);
    min-width: auto;
}

html .case_box .case_table dl~dl {
    margin-top: 10px;
}

html .case_box .case_images {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    padding: 110px 70px 0;
    position: relative;
}

html .case_box .case_images.type02 {
    padding-left: 0;
    padding-right: 0;
}

html .case_box .case_images.type03 {
    flex-direction: column;
    gap: 20px;
    padding-left: 0;
    padding-right: 0;
}

html .case_box .case_images.type03 figure img {
    border-radius: 30px;
}

html .case_box .case_images.type03 figure figcaption {
    position: absolute;
    left: 0;
    top: 0;
    text-align: left;
    padding-left: 37px;
}

html .case_box .case_images.type03 .icon-case-arrow {
    transform: rotate(90deg);
}

html .case_box .case_images figure {
    position: relative;
}

html .case_box .case_images figure figcaption {
    position: absolute;
    left: 0;
    top: -50px;
    width: 100%;
    text-align: center;
    font-size: 2rem;
    color: var(--navy);
    font-weight: 500;
}

html .case_box .case_images .icon-case-arrow {
    font-size: 3rem;
    color: var(--navy);
}

@media screen and (max-width: 768px) {
    html .case_box .case_ttl {
        padding: 0 20px;
        margin-bottom: 20px;
    }
    html .case_box .case_ttl span {
        position: relative;
        font-size: 1.65rem;
        padding: 0;
    }
    html .case_box .case_table {
        padding: 0 20px;
        display: flex;
        justify-content: space-between;
        flex-wrap: wrap;
        gap: 10px;
    }
    html .case_box .case_table dl {
        display: flex;
        flex-direction: column;
        width: 100%;
    }
    html .case_box .case_table dl dt {
        border-right: 1px solid var(--line);
        width: 100%;
        padding: 2px 5px;
        box-sizing: border-box;
        font-size: 1.2rem;
        flex-shrink: 0;
    }
    html .case_box .case_table dl dd {
        min-width: 100%;
        padding: 5px;
        box-sizing: border-box;
        border-top: 0;
        font-size: 1.2rem;
    }
    html .case_box .case_table dl dd p {
        text-align: left;
        font-size: 1.3rem;
        line-height: 1.6;
    }
    html .case_box .case_table dl dd~dt {
        margin-left: 0px;
        margin-top: 10px;
    }
    html .case_box .case_table dl.narrow {
        width: calc(50% - 5px);
    }
    html .case_box .case_table dl.narrow dt {
        width: 100%;
    }
    html .case_box .case_table dl.narrow dd {
        width: 100%;
        min-width: auto;
    }
    html .case_box .case_table dl~dl {
        margin-top: 0;
    }
    html .case_box .case_images {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 10px;
        padding: 40px 20px 20px;
        position: relative;
    }
    html .case_box .case_images.type02 {
        padding-left: 0;
        padding-right: 0;
    }
    html .case_box .case_images.type03 {
        flex-direction: column;
        gap: 10px;
        padding-left: 20px;
        padding-right: 20px;
    }
    html .case_box .case_images.type03 figure figcaption {
        position: absolute;
        left: 0;
        top: 0;
        text-align: left;
        padding-left: 30px;
        font-size: 1.4rem;
    }
    html .case_box .case_images.type03 .icon-case-arrow {
        transform: rotate(90deg);
    }
    html .case_box .case_images figure {
        position: relative;
    }
    html .case_box .case_images figure figcaption {
        top: -30px;
        font-size: 1.2rem;
    }
    html .case_box .case_images .icon-case-arrow {
        font-size: 2rem;
    }
}

html .blog_section {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    flex-direction: row !important;
    width: 100%;
    max-width: 1028px;
    margin: 0 auto 120px;
    gap: 80px 50px !important;
}

@media screen and (max-width: 768px) {
    html .blog_section {
        margin: 0;
        padding: 0;
        gap: 40px !important;
        flex-direction: column !important;
        box-sizing: border-box;
    }
}

html .blog_section .subpage_sect_box {
    width: 100%;
    margin-top: 0;
}

@media screen and (max-width: 768px) {
    html .blog_section .subpage_sect_ttl {
        text-align: center;
        padding: 20px;
        box-sizing: border-box;
    }
    html .blog_section .subpage_sect_ttl.detail_ttl {
        text-align: justify;
        padding: 0 16px 20px;
        margin-top: 30px;
        box-sizing: border-box;
    }
    html .blog_section .subpage_sect_ttl.detail_ttl em:before {
        width: 22px;
        left: 18px;
    }
}

html .blog_section .blog_main {
    width: calc(100% - 310px);
    box-sizing: border-box;
}

@media screen and (max-width: 768px) {
    html .blog_section .blog_main {
        width: 100%;
        padding: 0 20px;
    }
}

html .blog_section .blog_main .blog_data {
    display: flex;
    justify-content: flex-start;
    align-items: center;
}

html .blog_section .blog_main .blog_data>span {
    font-family: var(--Oswald);
    color: #ffcfe9;
    display: block;
    font-size: 1.5rem;
    font-weight: 400;
    margin-right: 20px;
}

html .blog_section .blog_main .blog_data .tag li a {
    background: #fff;
}

@media screen and (max-width: 768px) {
    html .blog_section .blog_main .blog_data {
        display: flex;
        flex-direction: row;
        gap: 10px;
        align-items: flex-start;
    }
    html .blog_section .blog_main .blog_data>span {
        font-size: 1.4rem;
        margin: 0px;
        padding-bottom: 5px;
    }
}

html .blog_section .blog_main .blog_detail {
    padding: 0 0 30px;
    border-bottom: 1px dotted var(--line);
}

html .blog_section .blog_main .blog_detail .blog_data {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    padding-bottom: 10px;
}

html .blog_section .blog_main .blog_detail .blog_detail_inner {
    width: 100%;
    overflow: hidden;
}

@media screen and (max-width: 768px) {
    html .blog_section .blog_main .blog_detail {
        padding: 0;
        margin-bottom: 0;
    }
}

html .blog_section .blog_main .blog_detail~.page .left,
html .blog_section .blog_main .blog_detail~.page .right {
    top: 0;
}

html .blog_section .blog_main .articles article {
    padding: 30px 0;
    position: relative;
    border-bottom: 1px dotted var(--line);
    display: grid;
    grid-template-columns: 220px 1fr;
    grid-template-rows: auto auto auto;
    gap: 10px 30px;
}

html .blog_section .blog_main .articles article .blog_data {
    grid-column: 2/3;
    grid-row: 1/2;
}

html .blog_section .blog_main .articles article figure {
    grid-column: 1/2;
    grid-row: 1/4;
}

html .blog_section .blog_main .articles article figure img {
    width: 220px;
    aspect-ratio: 3/2;
    object-fit: cover;
    object-position: center;
    border-radius: 5px;
}

html .blog_section .blog_main .articles article h2 {
    grid-column: 2/3;
    grid-row: 2/3;
}

html .blog_section .blog_main .articles article h2 a {
    display: block;
    font-size: 2rem;
    line-height: 1.35;
    color: var(--black);
}

html .blog_section .blog_main .articles article h2 a:hover {
    color: var(--blue);
}

html .blog_section .blog_main .articles article p {
    grid-column: 2/3;
    grid-row: 3/4;
}

@media screen and (max-width: 768px) {
    html .blog_section .blog_main .articles article {
        padding: 20px 0;
        display: grid;
        grid-template-columns: 110px 1fr;
        grid-template-rows: auto auto auto;
        gap: 10px 20px;
    }
    html .blog_section .blog_main .articles article .blog_data {
        grid-column: 2/3;
        grid-row: 1/2;
    }
    html .blog_section .blog_main .articles article figure {
        grid-column: 1/2;
        grid-row: 1/3;
    }
    html .blog_section .blog_main .articles article figure img {
        width: 110px;
        height: 110px;
    }
    html .blog_section .blog_main .articles article h2 {
        grid-column: 2/3;
        grid-row: 2/3;
    }
    html .blog_section .blog_main .articles article h2 a {
        font-size: 1.7rem;
    }
    html .blog_section .blog_main .articles article p {
        grid-column: 1/3;
        grid-row: 3/4;
    }
}

html .blog_section .blog_main .p-blog_pager {
    width: 100%;
    padding-top: 30px;
    position: relative;
    display: grid;
    grid-template-columns: 100px 1fr 100px;
    grid-template-rows: auto;
}

html .blog_section .blog_main .p-blog_pager .p-blog_pager_next {
    grid-column: 3/4;
    display: flex;
    justify-content: center;
    align-items: center;
}

html .blog_section .blog_main .p-blog_pager .p-blog_pager_next a {
    position: relative;
    padding-right: 15px;
    font-weight: 500;
    color: var(--black);
}

html .blog_section .blog_main .p-blog_pager .p-blog_pager_next a:before {
    position: absolute;
    right: 0;
    top: 6px;
    content: "\e901";
    font-family: var(--icomoon);
    font-size: 1rem;
    transition: all 0.4s ease;
}

html .blog_section .blog_main .p-blog_pager .p-blog_pager_next a:hover {
    color: var(--blue);
}

html .blog_section .blog_main .p-blog_pager .p-blog_pager_prev {
    grid-column: 1/2;
    display: flex;
    justify-content: center;
    align-items: center;
}

html .blog_section .blog_main .p-blog_pager .p-blog_pager_prev a {
    font-weight: 500;
    padding-left: 15px;
    position: relative;
    color: var(--black);
}

html .blog_section .blog_main .p-blog_pager .p-blog_pager_prev a:before {
    position: absolute;
    left: 0;
    top: 6px;
    content: "\e902";
    font-family: var(--icomoon);
    font-size: 1rem;
    transition: all 0.4s ease;
}

html .blog_section .blog_main .p-blog_pager .p-blog_pager_prev a:hover {
    color: var(--blue);
}

html .blog_section .blog_main .p-blog_pager .p-blog_pager_list {
    grid-column: 2/3;
    display: flex;
    justify-content: center;
    align-items: center;
}

html .blog_section .blog_main .p-blog_pager .p-blog_pager_list a,
html .blog_section .blog_main .p-blog_pager .p-blog_pager_list span {
    display: block;
    text-align: center;
    width: 40px;
    height: 40px;
    line-height: 38px;
    background: var(--brown);
    border: 1px solid var(--brown);
    box-sizing: border-box;
    color: #fff;
    margin: 0 5px;
    font-size: 1.7rem;
    font-weight: 400;
    border-radius: 50%;
    transition: all 0.4s ease;
}

html .blog_section .blog_main .p-blog_pager .p-blog_pager_list a.current,
html .blog_section .blog_main .p-blog_pager .p-blog_pager_list span.current {
    border: 1px solid var(--hover);
    background: var(--hover);
    color: #fff;
    pointer-events: none;
}

html .blog_section .blog_main .p-blog_pager .p-blog_pager_list a:hover,
html .blog_section .blog_main .p-blog_pager .p-blog_pager_list span:hover {
    filter: brightness(110%);
    background: var(--hover);
    border: 1px solid var(--hover);
    color: #fff;
}

@media screen and (max-width: 768px) {
    html .blog_section .blog_main .p-blog_pager {
        width: 100%;
        padding-top: 20px;
        position: relative;
        display: grid;
        grid-template-columns: 1fr 1fr;
        grid-template-rows: 28px auto;
    }
    html .blog_section .blog_main .p-blog_pager .p-blog_pager_next {
        grid-column: 2/3;
        grid-row: 1/2;
        justify-content: flex-end;
    }
    html .blog_section .blog_main .p-blog_pager .p-blog_pager_prev {
        grid-column: 1/2;
        grid-row: 1/2;
        justify-content: flex-start;
    }
    html .blog_section .blog_main .p-blog_pager .p-blog_pager_list {
        grid-column: 1/3;
        grid-row: 2/3;
        display: flex;
        justify-content: center;
        align-items: center;
    }
}

html .blog_section .blog_side {
    flex-shrink: 0;
    width: 260px;
    box-sizing: border-box;
}

html .blog_section .blog_side .heading {
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.06em;
    position: relative;
    text-align: left;
    padding: 14px 15px;
    background: #fef3f7;
    border: 1px solid var(--line);
    border-bottom: 0;
    box-sizing: border-box;
    border-radius: 10px 10px 0 0;
}

html .blog_section .blog_side .blog_side_items {
    padding: 16px;
    background: #fff;
    border: 1px solid var(--line);
    box-sizing: border-box;
    border-top: 0;
    border-radius: 0 0 10px 10px;
}

html .blog_section .blog_side .blog_side_items ul li a {
    display: block;
    font-size: 1.5rem;
    padding-left: 12px;
    line-height: 1.5;
    font-weight: normal;
    font-weight: normal;
    position: relative;
    color: var(--black);
}

html .blog_section .blog_side .blog_side_items ul li a:before {
    content: "";
    position: absolute;
    left: 2px;
    top: 10px;
    width: 3px;
    height: 3px;
    background: var(--black);
    transition: all 0.2s ease;
}

html .blog_section .blog_side .blog_side_items ul li a:hover {
    color: var(--hover);
}

html .blog_section .blog_side .blog_side_items ul li a:hover:before {
    background: var(--hover);
}

html .blog_section .blog_side .blog_side_items ul li+li {
    margin-top: 15px;
}

html .blog_section .blog_side .blog_side_items+.heading {
    margin-top: 20px;
}

html .blog_section .blog_side .selectBox {
    display: block;
    overflow: hidden;
    position: relative;
    vertical-align: top;
}

html .blog_section .blog_side .selectBox select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    border: medium none;
    box-sizing: border-box;
    font-size: 1.6rem;
    height: 40px;
    margin: 0;
    padding: 0 10px;
    box-sizing: border-box;
    border-radius: 0;
    padding-right: 50px;
    width: 114%;
    max-width: none;
    box-shadow: none;
    outline: none;
    border: 1px solid var(--line);
}

html .blog_section .blog_side .selectBox select option,
html .blog_section .blog_side .selectBox select optgroup {
    font-style: normal;
}

html .blog_section .blog_side .selectBox:after {
    background: #fff;
    content: "\e903";
    font-family: var(--icomoon);
    font-size: 1rem;
    color: var(--black);
    height: 100%;
    width: 40px;
    line-height: 40px;
    pointer-events: none;
    position: absolute;
    right: 0;
    top: 0;
    text-align: center;
    box-sizing: border-box;
    display: inline-block;
    border: 1px solid var(--line);
    border-left: 0;
}

@media screen and (max-width: 768px) {
    html .blog_section .blog_side {
        flex-shrink: 0;
        width: 100%;
        padding: 0 20px;
        box-sizing: border-box;
        border-radius: 0;
    }
    html .blog_section .blog_side .heading {
        font-size: 1.6rem;
    }
    html .blog_section .blog_side .blog_side_items {
        padding: 20px;
    }
    html .blog_section .blog_side .blog_side_items ul li a {
        font-size: 1.4rem;
    }
    html .blog_section .blog_side .blog_side_items ul li+li {
        margin-top: 10px;
    }
    html .blog_section .blog_side .blog_side_items+.heading {
        margin-top: 20px;
    }
}

html .blog_section .blog_ranking {
    width: 100%;
    padding-top: 70px;
}

html .blog_section .blog_ranking h3 {
    font-size: 2.6rem;
    margin-bottom: 40px;
    font-weight: 500;
}

html .blog_section .blog_ranking .blog_ranking_wrap {
    display: flex;
    justify-content: flex-start;
    gap: 20px;
}

html .blog_section .blog_ranking .blog_ranking_wrap li {
    width: calc((100% - 60px) / 4);
}

html .blog_section .blog_ranking .blog_ranking_wrap li a {
    display: block;
}

html .blog_section .blog_ranking .blog_ranking_wrap li a img {
    object-fit: cover;
    width: 100%;
    aspect-ratio: 3/2;
    border-radius: 5px;
}

html .blog_section .blog_ranking .blog_ranking_wrap li a~a {
    margin-top: 10px;
    display: inline-block;
    font-size: 1.5rem;
    line-height: 1.35;
    color: var(--black);
    font-weight: 400;
}

html .blog_section .blog_ranking .blog_ranking_wrap li a~a:hover {
    color: var(--blue);
}

html .blog_section .blog_ranking .blog_ranking_wrap li span {
    padding-top: 10px;
    display: block;
    line-height: 1;
    font-family: var(--Oswald);
    color: #ffcfe9;
    display: block;
    font-size: 1.3rem;
    font-weight: 400;
}

@media screen and (max-width: 768px) {
    html .blog_section .blog_ranking {
        width: 100%;
        padding: 0 20px 80px;
        box-sizing: border-box;
    }
    html .blog_section .blog_ranking h3 {
        font-size: 1.8rem;
        margin-bottom: 30px;
    }
    html .blog_section .blog_ranking .blog_ranking_wrap {
        display: flex;
        justify-content: center;
        flex-wrap: wrap;
        gap: 20px;
    }
    html .blog_section .blog_ranking .blog_ranking_wrap li {
        width: calc((100% - 20px) / 2);
    }
    html .blog_section .blog_ranking .blog_ranking_wrap li a {
        display: block;
    }
    html .blog_section .blog_ranking .blog_ranking_wrap li a img {
        object-fit: cover;
        width: 100%;
        aspect-ratio: 220/150;
        border-radius: 5px;
    }
    html .blog_section .blog_ranking .blog_ranking_wrap li a~a {
        margin-top: 10px;
        font-size: 1.5rem;
    }
    html .blog_section .blog_ranking .blog_ranking_wrap li span {
        color: #ffcfe9;
        display: block;
        font-size: 1.2rem;
    }
}

html .history {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 40px;
}

html .history .item {
    width: calc(50% - 20px);
    box-sizing: border-box;
}

html .history .item.center {
    text-align: center;
}

html .history .item.wide {
    width: 100%;
}

html .history .item h3 {
    font-size: 1.8rem;
    background: #fef3f7;
    line-height: 55px;
    text-indent: 20px;
    border: 1px solid var(--line);
    box-sizing: border-box;
    border-radius: 10px 10px 0 0;
}

html .history .item .item_inner~h3 {
    margin-top: 40px;
}

html .history .item .item_inner {
    border: 1px solid var(--line);
    border-top: 0;
    padding: 30px;
    background: #fff;
    border-radius: 0 0 10px 10px;
}

html .history .item .item_inner.flex {
    display: flex;
    justify-content: space-between;
}

html .history .item .item_inner ul {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

html .history .item .item_inner ul.decimal {
    list-style-type: decimal;
    margin-left: 20px;
}

html .history .item .item_inner ul.decimal li {
    display: list-item;
}

html .history .item .item_inner ul li {
    line-height: 1.5;
    position: relative;
    display: flex;
    justify-content: flex-start;
    color: var(--gray);
    font-weight: 400;
}

html .history .item .item_inner ul li span {
    display: block;
    width: 80px;
    flex-shrink: 0;
    line-height: 1.5;
    color: var(--gray);
    font-weight: 400;
}

html .history .item .item_inner ul li p {
    color: var(--gray);
}

html .history .item .item_inner ul li a:hover {
    color: var(--hover);
}

html .history .item .item_inner ul li p {
    line-height: 1.5;
}

@media screen and (max-width: 768px) {
    html .history {
        display: flex;
        flex-direction: column;
        gap: 20px;
    }
    html .history .item {
        width: 100%;
        box-sizing: border-box;
    }
    html .history .item h3 {
        line-height: 40px;
        text-indent: 20px;
        font-size: 1.6rem;
        border-radius: 5px 5px 0 0;
    }
    html .history .item .item_inner~h3 {
        margin-top: 20px;
    }
    html .history .item .item_inner {
        padding: 15px;
        border-radius: 0 0 5px 5px;
    }
    html .history .item .item_inner.flex {
        display: flex;
        flex-direction: column;
        gap: 20px;
    }
    html .history .item .item_inner ul {
        display: flex;
        flex-direction: column;
        gap: 10px;
    }
    html .history .item .item_inner ul li {
        display: block;
        line-height: 1.5;
    }
    html .history .item .item_inner ul li span {
        width: 100%;
        font-size: 1.2rem;
        flex-shrink: 0;
    }
    html .history .item .item_inner ul li p {
        line-height: 1.5;
    }
}

html ul.dot {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

html ul.dot li {
    font-weight: 400;
    padding-left: 15px;
    position: relative;
}

html ul.dot li:before {
    display: inline-block;
    position: absolute;
    left: 0;
    top: 15px;
    content: "";
    width: 5px;
    height: 5px;
    border-radius: 2px;
    background: var(--Green);
    margin-right: 10px;
}

html ul.dot li em {
    display: block;
    font-weight: 500;
}

html ul.dot li p {
    font-size: 1.5rem;
}

@media screen and (max-width: 768px) {
    html ul.dot {
        padding: 0 10px;
        display: flex;
        flex-direction: column;
        gap: 10px;
    }
    html ul.dot li em {
        display: block;
        font-weight: 500;
    }
    html ul.dot li p {
        font-size: 1.4rem;
    }
}

html .payment ul {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    gap: 30px;
}

html .payment ul li {
    width: calc(50% - 20px);
    display: flex;
    flex-direction: column;
    gap: 20px;
}

html .payment ul li>span {
    border: 1px solid var(--brown);
    background: #fff;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 78px;
    font-size: 2rem;
    font-weight: 500;
}

html .payment ul li>span+em {
    padding: 20px;
    background: #fafafa;
    display: flex;
    justify-content: center;
    height: 110px;
    box-sizing: border-box;
}

html .payment ul li>span+em a.text_arrow:after {
    content: none;
}

@media screen and (max-width: 768px) {
    html .payment {
        padding: 0 20px;
    }
    html .payment ul {
        display: flex;
        flex-direction: column;
        gap: 20px;
    }
    html .payment ul li {
        width: 100%;
    }
    html .payment ul li>span {
        display: block;
        background: #fff;
        text-align: center;
        display: flex;
        justify-content: center;
        align-items: center;
        height: 60px;
        font-size: 1.6rem;
        font-weight: 500;
    }
    html .payment ul li>span+em {
        padding: 10px;
        height: auto;
    }
}

html .formula {
    display: block;
}

html .formula .formula_inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-direction: row;
    gap: 20px;
}

html .formula .formula_inner em {
    flex-shrink: 0;
    width: 260px;
    height: 80px;
    display: flex;
    justify-content: center;
    align-items: center;
    border: 1px solid var(--brown);
    color: #fff;
    font-weight: 500;
    background: var(--brown);
    position: relative;
    box-sizing: border-box;
}

html .formula .formula_inner em:before {
    content: "=";
    font-size: 3rem;
    color: var(--brown);
    font-weight: 300;
    position: absolute;
    left: 100%;
    top: 0;
    height: 80px;
    width: 47px;
    display: flex;
    justify-content: center;
    align-items: center;
    transform: none;
}

html .formula .formula_inner em small {
    display: inline;
    padding: 0;
    font-size: 1rem;
}

html .formula .formula_inner p {
    width: 220px;
    height: 80px;
    display: flex;
    justify-content: center;
    align-items: center;
    border: 1px solid var(--brown);
    box-sizing: border-box;
    text-align: center;
    color: var(--brown);
    font-weight: normal;
    position: relative;
    box-sizing: border-box;
    background: #fff;
}

html .formula .formula_inner p:before {
    content: "−";
    font-size: 3rem;
    color: var(--brown);
    font-weight: 300;
    position: absolute;
    left: 100%;
    top: 0;
    height: 80px;
    width: 47px;
    display: flex;
    justify-content: center;
    align-items: center;
    transform: none;
}

html .formula .formula_inner p span {
    color: var(--brown);
    font-weight: 500;
    display: block;
    line-height: 1.2;
}

html .formula .formula_inner p span small {
    display: inline;
    padding: 0;
    font-size: 1rem;
}

html .formula .formula_inner p:last-child:before {
    content: none;
}

html .formula .formula_text {
    margin-top: 40px;
    display: block;
    padding: 20px;
    background: #fff;
    color: var(--brown);
    font-size: 1.2rem;
    font-weight: 500;
    line-height: 1.8;
}

@media screen and (max-width: 768px) {
    html .formula {
        display: block;
        padding: 0 20px;
    }
    html .formula .formula_inner {
        display: flex;
        flex-direction: column;
        gap: 40px;
    }
    html .formula .formula_inner em {
        width: 100%;
        height: 60px;
    }
    html .formula .formula_inner em:before {
        font-size: 3rem;
        position: absolute;
        left: calc(50% - 20px);
        top: 100%;
        height: 40px;
        width: 40px;
        transform: rotate(90deg);
    }
    html .formula .formula_inner em small {
        display: inline;
        padding: 0;
        font-size: 1rem;
    }
    html .formula .formula_inner p {
        width: 100%;
        height: 60px;
        display: flex;
        justify-content: center;
        align-items: center;
        box-sizing: border-box;
        text-align: center;
        font-weight: normal;
        position: relative;
    }
    html .formula .formula_inner p:before {
        font-size: 3rem;
        position: absolute;
        left: calc(50% - 20px);
        top: 100%;
        height: 40px;
        width: 40px;
        transform: rotate(90deg);
    }
    html .formula .formula_text {
        margin-top: 10px;
        padding: 10px;
        font-size: 1.1rem;
    }
}

html .merit {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 40px;
}

html .merit .item {
    width: calc(50% - 20px);
    box-sizing: border-box;
}

html .merit .item.wide {
    width: 100%;
}

html .merit .item.wide ul.dot {
    gap: 30px;
}

html .merit .item.wide ul.dot li em {
    padding-bottom: 10px;
}

html .merit .item.wide ul.dot li p {
    line-height: 2;
}

html .merit .item .merit_ttl {
    background: var(--Green);
    font-weight: normal;
    padding: 15px;
    text-align: left;
    border: 1px solid var(--line);
    font-size: 2rem;
    position: relative;
    font-weight: 500;
    background: #fef3f7;
    border-radius: 10px 10px 0 0;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 5px;
}

html .merit .item .merit_ttl .icon-record {
    font-size: 2.4rem;
}

html .merit .item .merit_ttl .icon-cross {
    font-size: 2.4rem;
}

html .merit .item .item_inner {
    padding: 30px;
    border: 1px solid var(--line);
    border-radius: 0 0 10px 10px;
    background: #fff;
    border-top: 0;
    font-weight: 500;
    text-align: left;
}

html .merit .item .item_inner p~.dot {
    padding-top: 20px;
}

html .merit .item~.item .item_inner {
    background: #fffbfb;
}

@media screen and (max-width: 768px) {
    html .merit {
        display: flex;
        flex-direction: column;
        gap: 20px;
    }
    html .merit .item {
        width: 100%;
        box-sizing: border-box;
    }
    html .merit .item.wide {
        width: 100%;
    }
    html .merit .item.wide ul.dot {
        gap: 20px;
    }
    html .merit .item.wide ul.dot li em {
        padding-bottom: 0px;
    }
    html .merit .item.wide ul.dot li p {
        line-height: 2;
    }
    html .merit .item .merit_ttl {
        padding: 10px;
        gap: 5px;
        line-height: 1.5;
        font-size: 1.6rem;
        border-radius: 5px 5px 0 0;
    }
    html .merit .item .merit_ttl .icon-cross,
    html .merit .item .merit_ttl .icon-record {
        top: 13px;
        left: 10px;
        font-size: 2rem;
    }
    html .merit .item .item_inner {
        padding: 15px;
        border-radius: 0 0 5px 5px;
    }
    html .merit .item .item_inner .dot {
        padding: 0;
    }
}

html .risk {
    padding: 60px 100px;
    background: #fff7f8;
}

html .risk.subpage_risk {
    padding: 60px;
    background: #fcfafb;
    border-radius: 10px;
}

html .risk .risk_inner {
    position: relative;
    max-width: 1100px;
    max-height: 200px;
    padding-right: 20px;
    margin: 0 auto;
    box-sizing: border-box;
}

html .risk .risk_inner h2 {
    font-size: 1.6rem;
    font-weight: 600;
    padding-bottom: 30px;
}

html .risk .risk_inner h3 {
    font-size: 1.4rem;
    font-weight: 600;
    padding-bottom: 10px;
}

html .risk .risk_inner p {
    font-size: 1.2rem;
}

html .risk .risk_inner p~h3 {
    margin-top: 2em;
}

@media screen and (max-width: 767px) {
    html .risk {
        padding: 20px;
    }
    html .risk.subpage_risk {
        padding: 20px;
        border-radius: 5px;
    }
    html .risk .risk_inner {
        position: relative;
        max-height: 150px;
        padding-right: 10px;
    }
    html .risk .risk_inner h2 {
        font-size: 1.4rem;
        padding-bottom: 20px;
    }
    html .risk .risk_inner h3 {
        font-size: 1.3rem;
        padding-bottom: 10px;
    }
    html .risk .risk_inner p {
        font-size: 1.1rem;
    }
    html .risk .risk_inner p~h3 {
        margin-top: 2em;
    }
}

html .p-blog_sns {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 15px;
    padding: 14px 0;
}

html .p-blog_sns li a {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    background: #3b5998;
}

html .p-blog_sns li a.sns_x {
    background: #0F1419;
}

html .p-blog_sns li a.sns_line {
    background: #06C755;
}

@media screen and (max-width: 768px) {
    html .p-blog_sns {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 10px;
    }
}

html .form {
    width: 100%;
    padding: 80px;
    box-sizing: border-box;
    background: rgba(255, 255, 255, 0.5);
}

html .form .risk {
    background: #fffdfa;
    padding: 60px;
    margin: 60px 0;
    border-radius: 20px;
}

html .form .form_policy {
    margin: 40px 0;
}

html .form .privacy-check {
    text-align: center;
}

html .form .privacy-check label {
    display: block;
    position: relative;
    padding-left: 40px;
    height: 30px;
}

html .form .privacy-check label input[type=checkbox] {
    display: none;
}

html .form .privacy-check label input[type=checkbox]:checked~span {
    color: var(--hover);
}

html .form .privacy-check label input[type=checkbox]:checked~span:before {
    border: 1px solid var(--hover);
}

html .form .privacy-check label input[type=checkbox]:checked~span:after {
    opacity: 1;
}

html .form .privacy-check label span {
    display: inline-block;
    line-height: 30px;
    font-weight: 500;
    transition: all 0.2s ease;
}

html .form .privacy-check label span:before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 30px;
    height: 30px;
    border-radius: 5px;
    border: 1px solid var(--line);
    box-sizing: border-box;
    transition: all 0.2s ease;
}

html .form .privacy-check label span:after {
    content: "\e91d";
    font-family: var(--icomoon);
    font-size: 1.8rem;
    color: var(--hover);
    position: absolute;
    left: 6px;
    top: 6px;
    line-height: 1;
    transition: all 0.2s ease;
    opacity: 0;
}

html .form .p-contact-form_btn {
    padding-top: 40px;
}

html .form .p-contact-form_btn input[type=submit] {
    width: 690px;
    height: 66px;
    display: flex;
    justify-content: center;
    align-items: center;
    background: var(--text);
    font-weight: 600;
    color: #fff;
    font-size: 1.6rem;
    border: 0;
    outline: none;
    margin: 0 auto;
    cursor: pointer;
    transition: all 0.4s ease;
    background: var(--hover);
}

html .form .p-contact-form_btn input[type=submit]:hover {
    filter: brightness(110%);
}

html .form .p-contact-form_btn .wpcf7-previous {
    width: 690px;
    height: 66px;
    display: flex;
    justify-content: center;
    align-items: center;
    background: var(--text);
    font-weight: 600;
    color: #fff;
    font-size: 1.6rem;
    border: 0;
    outline: none;
    margin: 0 auto;
    cursor: pointer;
    transition: all 0.4s ease;
    background: var(--line);
}

html .form .p-contact-form_btn .wpcf7-previous:hover {
    filter: brightness(110%);
}

@media screen and (max-width: 768px) {
    html .form {
        width: 100%;
        max-width: 100%;
        padding: 0 20px;
        box-sizing: border-box;
        margin: 0 auto;
    }
    html .form .risk {
        padding: 20px;
        margin: 20px 0;
        border-radius: 10px;
        width: 100%;
        box-sizing: border-box;
    }
    html .form .p-contact-form_btn {
        padding-top: 20px;
        margin-bottom: 40px;
    }
    html .form .p-contact-form_btn input[type=submit] {
        width: 100%;
        height: 56px;
        font-size: 1.6rem;
    }
    html .form .p-contact-form_btn .wpcf7-previous {
        width: 100%;
        height: 56px;
        font-size: 1.6rem;
    }
}

html .form_wrap {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 40px;
}

html .form_wrap .input {
    display: flex;
    justify-content: flex-start;
    gap: 20px;
}

html .form_wrap .input>em {
    flex-shrink: 0;
    padding-left: 50px;
    position: relative;
    width: 180px;
    font-family: var(--Gothic);
    font-weight: 500;
}

html .form_wrap .input>em .is-red {
    position: absolute;
    left: 0;
    top: 8px;
    font-size: 1.1rem;
    background: var(--hover);
    color: #fff;
    text-box: trim-both cap alphabetic;
    padding: 5px 10px;
    border-radius: 2px;
    margin-right: 10px;
}

html .form_wrap .input>em .is-gray {
    position: absolute;
    left: 0;
    top: 8px;
    font-size: 1.1rem;
    background: var(--brown);
    color: #fff;
    text-box: trim-both cap alphabetic;
    padding: 5px 10px;
    border-radius: 2px;
    margin-right: 10px;
}

html .form_wrap .input .input_inner {
    display: flex;
    flex-direction: column;
    gap: 20px;
    width: calc(100% - 200px);
}

html .form_wrap .input .input_inner .wpcf7-form-control-wrap {
    display: block;
    width: 100%;
}

html .form_wrap .input .input_inner span,
html .form_wrap .input .input_inner small {
    color: var(--gray);
}

html .form_wrap .input .input_inner .wpcf7-not-valid-tip {
    color: var(--hover);
}

html .form_wrap .input .input_inner .item {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 20px;
}

html .form_wrap .input .input_inner .item em {
    white-space: nowrap;
    font-family: var(--Gothic);
}

html .form_wrap .input .input_inner .item .wpcf7-form-control-wrap[data-name=postcode],
html .form_wrap .input .input_inner .item .wpcf7-form-control-wrap[data-name=tel] {
    width: fit-content;
}

html .form_wrap .privacy_agree {
    text-align: center;
}

html .form_wrap .privacy_agree a {
    color: var(--hover);
    text-decoration: underline;
}

@media screen and (max-width: 768px) {
    html .form_wrap {
        width: 100%;
        display: flex;
        flex-direction: column;
        gap: 20px;
    }
    html .form_wrap .input {
        display: flex;
        flex-direction: column;
        gap: 10px;
    }
    html .form_wrap .input>em {
        flex-shrink: 0;
        padding-left: 50px;
        width: 100%;
        font-size: 1.6rem;
    }
    html .form_wrap .input .input_inner {
        display: flex;
        flex-direction: column;
        gap: 10px;
        width: 100%;
    }
    html .form_wrap .input .input_inner .item {
        display: flex;
        justify-content: flex-start;
        align-items: center;
        flex-wrap: wrap;
        gap: 10px;
    }
    html .form_wrap .input .input_inner .item em {
        width: 100%;
        font-family: var(--Gothic);
    }
}

html .input_inner small {
    font-family: var(--Gothic);
}

html .input_inner input[type=text],
html .input_inner input[type=tel],
html .input_inner input[type=email],
html .input_inner input[type=date] {
    width: 100%;
    height: 52px;
    border: 1px solid var(--line);
    background: #fff;
    font-size: 1.6rem;
    font-weight: 500;
    padding: 0 16px;
    border-radius: 0;
    box-sizing: border-box;
}

html .input_inner input[type=text].name-input,
html .input_inner input[type=text].furigana-input,
html .input_inner input[type=text].tel-input,
html .input_inner input[type=text].birthday-input,
html .input_inner input[type=text].postcode-input,
html .input_inner input[type=tel].name-input,
html .input_inner input[type=tel].furigana-input,
html .input_inner input[type=tel].tel-input,
html .input_inner input[type=tel].birthday-input,
html .input_inner input[type=tel].postcode-input,
html .input_inner input[type=email].name-input,
html .input_inner input[type=email].furigana-input,
html .input_inner input[type=email].tel-input,
html .input_inner input[type=email].birthday-input,
html .input_inner input[type=email].postcode-input,
html .input_inner input[type=date].name-input,
html .input_inner input[type=date].furigana-input,
html .input_inner input[type=date].tel-input,
html .input_inner input[type=date].birthday-input,
html .input_inner input[type=date].postcode-input {
    width: 260px;
}

html .input_inner input[type=text].narrow,
html .input_inner input[type=tel].narrow,
html .input_inner input[type=email].narrow,
html .input_inner input[type=date].narrow {
    width: 100px;
}

@media screen and (max-width: 768px) {
    html .input_inner .wpcf7-form-control-wrap {
        width: 100%;
    }
    html .input_inner input[type=text],
    html .input_inner input[type=tel],
    html .input_inner input[type=email],
    html .input_inner input[type=date] {
        width: 100%;
        height: 52px;
        font-size: 1.6rem;
        padding: 0 10px;
    }
    html .input_inner input[type=text].name-input,
    html .input_inner input[type=text].furigana-input,
    html .input_inner input[type=text].tel-input,
    html .input_inner input[type=text].birthday-input,
    html .input_inner input[type=tel].name-input,
    html .input_inner input[type=tel].furigana-input,
    html .input_inner input[type=tel].tel-input,
    html .input_inner input[type=tel].birthday-input,
    html .input_inner input[type=email].name-input,
    html .input_inner input[type=email].furigana-input,
    html .input_inner input[type=email].tel-input,
    html .input_inner input[type=email].birthday-input,
    html .input_inner input[type=date].name-input,
    html .input_inner input[type=date].furigana-input,
    html .input_inner input[type=date].tel-input,
    html .input_inner input[type=date].birthday-input {
        width: 100%;
    }
    html .input_inner input[type=text].narrow,
    html .input_inner input[type=tel].narrow,
    html .input_inner input[type=email].narrow,
    html .input_inner input[type=date].narrow {
        width: 100%;
    }
    html .input_inner input[type=text].post,
    html .input_inner input[type=tel].post,
    html .input_inner input[type=email].post,
    html .input_inner input[type=date].post {
        width: 100%;
        margin-left: 0;
    }
}

html .input_inner textarea {
    width: 100% !important;
    height: 250px !important;
    padding: 16px;
    box-sizing: border-box;
    border: 1px solid var(--line);
    font-size: 1.6rem;
    vertical-align: top;
}

@media screen and (max-width: 768px) {
    html .input_inner textarea {
        padding: 10px;
    }
}

html .input_inner select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    border: 1px solid var(--line);
    box-sizing: border-box;
    font-size: 1.6rem;
    font-weight: 400;
    height: 52px;
    margin: 0;
    padding: 0 10px;
    box-sizing: border-box;
    background: #fff;
    width: fit-content;
    max-width: none;
    box-shadow: none;
    outline: none;
}

html .input_inner select option,
html .input_inner select optgroup {
    font-style: normal;
}

@media screen and (max-width: 768px) {
    html .input_inner select {
        width: 100%;
    }
}

html .input_inner .wpcf7-radio {
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 40px;
}

html .input_inner .wpcf7-radio .wpcf7-list-item {
    width: fit-content;
    height: 30px;
}

html .input_inner .wpcf7-radio .wpcf7-list-item input[type=radio] {
    display: none;
}

html .input_inner .wpcf7-radio .wpcf7-list-item input[type=radio]:checked~span {
    color: var(--hover);
}

html .input_inner .wpcf7-radio .wpcf7-list-item input[type=radio]:checked~span:before {
    border-color: var(--hover);
}

html .input_inner .wpcf7-radio .wpcf7-list-item input[type=radio]:checked~span:after {
    transform: scale(1);
}

html .input_inner .wpcf7-radio .wpcf7-list-item span {
    display: block;
    width: 100%;
    height: 30px;
    line-height: 30px;
    padding-left: 40px;
    margin: 0;
    box-sizing: border-box;
    position: relative;
    cursor: pointer;
    font-family: var(--Gothic);
    font-size: 1.6rem;
    white-space: nowrap;
}

html .input_inner .wpcf7-radio .wpcf7-list-item span:before {
    display: inline-block;
    content: "";
    width: 30px;
    height: 30px;
    border-radius: 50%;
    border: var(--line) solid 1px;
    position: relative;
    box-sizing: border-box;
    position: absolute;
    left: 0px;
    top: 0px;
    background: #fff;
    transition: all 0.2s ease;
    backface-visibility: hidden;
}

html .input_inner .wpcf7-radio .wpcf7-list-item span:after {
    content: "";
    position: absolute;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    flex-direction: row-reverse;
    left: 5px;
    top: 5px;
    background: var(--hover);
    transform: scale(0);
    transition: all 0.1s ease;
    backface-visibility: hidden;
}

@media screen and (max-width: 768px) {
    html .input_inner .wpcf7-radio {
        gap: 10px;
    }
    html .input_inner .wpcf7-radio .wpcf7-list-item {
        width: 100%;
    }
}

html .input_inner .wpcf7-checkbox {
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 20px;
}

html .input_inner .wpcf7-checkbox .wpcf7-list-item {
    width: calc((100% - 20px) / 2);
    height: 30px;
    margin: 0;
}

html .input_inner .wpcf7-checkbox .wpcf7-list-item input[type=checkbox] {
    display: none;
}

html .input_inner .wpcf7-checkbox .wpcf7-list-item input[type=checkbox]:checked~span:before {
    border-color: var(--hover);
}

html .input_inner .wpcf7-checkbox .wpcf7-list-item input[type=checkbox]:checked~span:after {
    transform: rotate(-45deg) scale(1);
}

html .input_inner .wpcf7-checkbox .wpcf7-list-item span {
    display: block;
    width: 100%;
    height: 30px;
    line-height: 30px;
    padding-left: 40px;
    margin: 0;
    box-sizing: border-box;
    position: relative;
    cursor: pointer;
    font-family: var(--Gothic);
    font-size: 1.6rem;
    white-space: nowrap;
}

html .input_inner .wpcf7-checkbox .wpcf7-list-item span:before {
    display: inline-block;
    content: "";
    width: 30px;
    height: 30px;
    border-radius: 2px;
    border: var(--line) solid 1px;
    position: relative;
    box-sizing: border-box;
    position: absolute;
    left: 0px;
    top: 0px;
    background: #fff;
    transition: all 0.2s ease;
    backface-visibility: hidden;
}

html .input_inner .wpcf7-checkbox .wpcf7-list-item span:after {
    content: "";
    position: absolute;
    left: 5px;
    top: 8px;
    width: 20px;
    height: 10px;
    border-left: 4px solid var(--hover);
    border-bottom: 4px solid var(--hover);
    box-sizing: border-box;
    transform: rotate(-45deg) scale(0);
    transition: all 0.1s ease;
    backface-visibility: hidden;
}

@media screen and (max-width: 768px) {
    html .input_inner .wpcf7-checkbox {
        gap: 10px;
    }
    html .input_inner .wpcf7-checkbox .wpcf7-list-item {
        width: 100%;
        height: 30px;
    }
}

html .listbox {
    display: flex;
    justify-content: center;
    gap: 50px;
}

html .listbox.padding {
    padding: 50px 60px;
    background: #fef3f7;
    border-radius: 10px;
}

html .listbox ul {
    width: calc((100% - 50px) / 2);
    display: flex;
    flex-direction: column;
    gap: 20px;
}

html .listbox ul.wide {
    width: 100%;
}

html .listbox ul li {
    position: relative;
    display: flex;
    justify-content: flex-start;
    gap: 10px;
}

html .listbox ul li:before {
    flex-shrink: 0;
    display: block;
    position: relative;
    top: 6px;
    content: "";
    width: 20px;
    height: 20px;
    background: url(img/index/check.webp) no-repeat left center;
    background-size: 20px auto;
}

@media screen and (max-width: 767px) {
    html .listbox {
        display: flex;
        flex-direction: column;
        gap: 0;
    }
    html .listbox.padding {
        padding: 20px;
        border-radius: 5px;
    }
    html .listbox ul {
        width: 100%;
        display: flex;
        flex-direction: column;
        gap: 10px;
    }
    html .listbox ul.wide {
        width: 100%;
    }
    html .listbox ul li {
        position: relative;
        display: flex;
        justify-content: flex-start;
        gap: 10px;
    }
    html .listbox ul li:before {
        top: 4px;
    }
    html .listbox ul~ul {
        padding-top: 10px;
    }
}

html .open_time_wide {
    width: 100%;
}

html .open_time_wide .time_table thead {
    color: #fff;
}

html .open_time_wide .time_table thead th {
    height: 40px;
    vertical-align: middle;
    border-color: var(--Green) !important;
}

html .open_time_wide .time_table tbody {
    background-color: #fff;
}

html .open_time_wide .time_table tbody th,
html .open_time_wide .time_table tbody td {
    height: 70px;
    border-color: var(--Green) !important;
}

html .open_time_wide .time_table tfoot td {
    padding-top: 10px;
    font-size: 1.3rem;
}

html .googlemap_access {
    width: 100%;
    height: 500px;
    position: relative;
}

html .googlemap_access iframe {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    border-radius: 10px;
}

html .formula {
    display: block;
}

html .formula .formula_inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-direction: row;
    gap: 20px;
}

html .formula .formula_inner em {
    flex-shrink: 0;
    width: 260px;
    height: 80px;
    display: flex;
    justify-content: center;
    align-items: center;
    border: 2px solid var(--Green);
    border-radius: 10px;
    background: #fefff8;
    position: relative;
    box-sizing: border-box;
}

html .formula .formula_inner em:before {
    content: "=";
    font-size: 3rem;
    color: var(--gold02);
    font-weight: 300;
    position: absolute;
    left: 100%;
    top: 0;
    height: 80px;
    width: 47px;
    display: flex;
    justify-content: center;
    align-items: center;
    transform: none;
}

html .formula .formula_inner em small {
    display: inline;
    padding: 0;
    font-size: 1rem;
}

html .formula .formula_inner p {
    width: 220px;
    height: 80px;
    display: flex;
    justify-content: center;
    align-items: center;
    border: 2px solid var(--Green);
    border-radius: 10px;
    box-sizing: border-box;
    text-align: center;
    font-weight: normal;
    position: relative;
    box-sizing: border-box;
}

html .formula .formula_inner p:before {
    content: "−";
    font-size: 3rem;
    color: var(--gray);
    font-weight: 300;
    position: absolute;
    left: 100%;
    top: 0;
    height: 80px;
    width: 47px;
    display: flex;
    justify-content: center;
    align-items: center;
    transform: none;
}

html .formula .formula_inner p span {
    color: var(--gray);
    font-weight: 500;
    display: block;
    line-height: 1.2;
}

html .formula .formula_inner p span small {
    display: inline;
    padding: 0;
    font-size: 1rem;
}

html .formula .formula_inner p:last-child:before {
    content: none;
}

html .formula .formula_text {
    margin-top: 40px;
    display: block;
    padding: 20px;
    border-radius: 10px;
    background: #f5f5f5;
    color: var(--gray);
    font-size: 1.2rem;
    line-height: 1.8;
}

@media screen and (max-width: 768px) {
    html .formula {
        display: block;
        padding: 0;
    }
    html .formula .formula_inner {
        display: flex;
        flex-direction: column;
        gap: 40px;
    }
    html .formula .formula_inner em {
        width: 100%;
        height: 60px;
    }
    html .formula .formula_inner em:before {
        font-size: 3rem;
        position: absolute;
        left: calc(50% - 20px);
        top: 100%;
        height: 40px;
        width: 40px;
        transform: rotate(90deg);
    }
    html .formula .formula_inner em small {
        display: inline;
        padding: 0;
        font-size: 1rem;
    }
    html .formula .formula_inner p {
        width: 100%;
        height: 60px;
        display: flex;
        justify-content: center;
        align-items: center;
        box-sizing: border-box;
        text-align: center;
        font-weight: normal;
        position: relative;
    }
    html .formula .formula_inner p:before {
        font-size: 3rem;
        position: absolute;
        left: calc(50% - 20px);
        top: 100%;
        height: 40px;
        width: 40px;
        transform: rotate(90deg);
    }
    html .formula .formula_text {
        margin-top: 20px;
        padding: 10px;
        font-size: 1.1rem;
    }
}

html .payment {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 30px;
}

html .payment li {
    position: relative;
    width: 330px;
    height: 120px;
    border: 2px solid var(--Green);
    box-sizing: border-box;
    border-radius: 10px;
    display: flex;
    justify-content: center;
    align-items: center;
    background: #fefff8;
}

html .payment li figure {
    position: absolute;
    left: 50%;
    top: 0;
    transform: translate(-50%, -50%);
}

html .payment li span em {
    display: block;
    line-height: 1;
    font-family: var(--Mincho);
    font-size: 2.4rem;
    font-weight: 600;
}

html .payment li span small {
    padding-top: 8px;
    display: block;
    text-align: center;
    line-height: 1.3;
    font-size: 1.2rem;
}

@media screen and (max-width: 767px) {
    html .payment {
        display: flex;
        flex-direction: column;
        gap: 10px;
        padding: 0;
    }
    html .payment li {
        position: relative;
        width: 100%;
        height: 70px;
        border: 2px solid var(--Green);
        box-sizing: border-box;
        border-radius: 10px;
        display: flex;
        justify-content: flex-start;
        align-items: center;
        gap: 10px;
        background: #fefff8;
    }
    html .payment li figure {
        width: 80px;
        text-align: center;
        position: static;
        transform: none;
    }
    html .payment li figure img {
        transform: scale(0.8);
    }
    html .payment li span em {
        font-size: 1.75rem;
        font-weight: 600;
    }
    html .payment li span small {
        padding-top: 3px;
        display: block;
        text-align: left;
        line-height: 1.3;
        font-size: 1rem;
    }
    html .payment li span small br {
        display: none;
    }
}

html .contact_area {
    width: 100%;
    height: 500px;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    background: #FBFFFF;
    padding-bottom: 0 !important;
}

html .contact_area figure {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    text-align: right;
}

html .contact_area figure img {
    object-fit: cover;
    width: auto;
    height: 100%;
}

html .contact_area .contact_area_inner {
    width: 1060px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

html .contact_area .contact_area_inner .chack_ttl {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 10px;
    padding-bottom: 20px;
}

html .contact_area .contact_area_inner .chack_ttl .icon-check {
    font-size: 3.6rem;
}

html .contact_area .contact_area_inner .chack_ttl em {
    font-size: 2.8rem;
}

html .contact_area .contact_area_inner .contact_btn {
    padding-top: 30px;
    display: flex;
    flex-direction: column;
    gap: 30px;
}

html .contact_area .contact_area_inner .contact_btn .tel_box {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 20px;
}

html .contact_area .contact_area_inner .contact_btn .tel_box .rsv_ttl {
    width: 126px;
    height: 20px;
    border-radius: 10px;
    box-sizing: border-box;
    background: var(--Green);
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 1.1rem;
    color: #fff;
}

html .contact_area .contact_area_inner .contact_btn .tel_box a.tel .icon-tel {
    font-size: 3rem;
}

html .contact_area .contact_area_inner .contact_btn .tel_box a.tel span {
    font-size: 3.4rem;
}

html .contact_area .contact_area_inner .contact_btn .mail_btn {
    width: 360px;
    height: 54px;
    border-radius: 10px;
    background: var(--Green);
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    color: #fff;
}

html .contact_area .contact_area_inner .contact_btn .mail_btn:hover {
    filter: brightness(120%);
}

html .contact_area .contact_area_inner .contact_btn .mail_btn .icon-mail02 {
    position: relative;
    top: 1px;
    font-size: 1.8rem;
}

html .contact_area .contact_area_inner .contact_btn .mail_btn span {
    font-weight: 500;
}

@media screen and (max-width: 767px) {
    html .contact_area {
        width: 100%;
        height: auto;
        padding: 0;
        box-sizing: border-box;
        display: flex;
        flex-direction: column;
        gap: 0 !important;
        padding-bottom: 0 !important;
    }
    html .contact_area figure {
        position: static;
    }
    html .contact_area .contact_area_inner {
        width: 100%;
        padding: 20px;
        margin: 0;
        box-sizing: border-box;
        position: relative;
        z-index: 1;
    }
    html .contact_area .contact_area_inner .chack_ttl {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 10px;
        padding-bottom: 10px;
    }
    html .contact_area .contact_area_inner .chack_ttl .icon-check {
        font-size: 2.6rem;
    }
    html .contact_area .contact_area_inner .chack_ttl em {
        font-size: 2rem;
    }
    html .contact_area .contact_area_inner p {
        text-align: center;
    }
    html .contact_area .contact_area_inner .contact_btn {
        padding-top: 30px;
        display: flex;
        flex-direction: column;
        gap: 30px;
    }
    html .contact_area .contact_area_inner .contact_btn .tel_box {
        display: flex;
        flex-direction: column;
        gap: 10px;
    }
    html .contact_area .contact_area_inner .contact_btn .tel_box .rsv_ttl {
        width: 126px;
        height: 20px;
        border-radius: 10px;
    }
    html .contact_area .contact_area_inner .contact_btn .mail_btn {
        width: 100%;
        height: 54px;
    }
}


/* 追記 */

ul li .text_ttl {
    font-size: 2rem;
    padding-bottom: 10px;
}

@media screen and (max-width: 768px) {
    ul li .text_ttl {
        font-size: 1.7rem;
        padding-bottom: 10px;
    }
}


/*# sourceMappingURL=style.css.map */
