/* Reset
===================================== */
*,
*::before,
*::after {
    box-sizing: border-box;
}

html,
body {
    padding: 0;
    margin: 0;
}

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, button, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
    border: 0;
    font: inherit;
    font-size: 100%;
    margin: 0;
    padding: 0;
    vertical-align: baseline;
}

small {
    font-size: 14px;
}

strong {
    font-weight: 700;
    margin-bottom: 8px;
}

@media (max-width: 767.98px) {

    h2 {
        font-size: 22px;
    }

    h3 {
        font-size: 18px;
    }

    h4, h5, h6 {
        font-size: 16px;
    }

    small {
        font-size: 12px;
    }

}

html {
    line-height: 1;
}

table {
    border-collapse: collapse;
    border-spacing: 0;
}

caption, th, td {
    font-weight: normal;
    text-align: left;
    vertical-align: middle;
}

q, blockquote {
    quotes: none;
}

q:before, q:after, blockquote:before, blockquote:after {
    content: "";
    content: none;
}

article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary {
    display: block;
}

img {
    border: none;
    vertical-align: bottom;
    width: 100%;
    max-width: 100%;
    height: auto;
}

a {
    text-decoration: none;
}

a, a:hover, a:visited {
    color: inherit;
}

/* ========================================================
   Custom colors
=========================================================*/
:root {
    --text-color: #223C4C;
    --main-color: #07A066;
    --margin-section: 100px;
    --margin-l: 64px;
    --margin-m: 48px;
    --margin-ms: 32px;
    --margin-s: 24px;
    --margin-xs: 16px;
}

@media (max-width: 767.98px) {
    :root {
        --margin-section: 60px;
        --margin-l: 40px;
        --margin-m: 32px;
        --margin-ms: 24px;
        --margin-s: 16px;
        --margin-xs: 8px;
    }
}

/* ========================================================
   Common
=========================================================*/
html {
    font-size: 62.5%;
    box-sizing: border-box;
}

body {
    font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", Arial, nc3Jp, sans-serif;
    font-optical-sizing: auto;
    background: #FFF;
    color: var(--text-color);
    font-size: 1.6rem;
    font-style: normal;
    font-weight: 500;
    letter-spacing: 0.06em;
    background: url(../images/bg.jpg)repeat;
}

p {
    font-size: 1.6rem;
    line-height: 1.7;
}

@media (max-width: 991.98px) {
    p {
        line-height: 1.7;
    }
}

@media (min-width: 576px) {
    .xs {
        display: none;
    }
}

@media (min-width: 399px) {
    .xxs {
        display: none;
    }
}


@media (max-width: 575.98px) {
    .xsnon {
        display: none;
    }
}


@media (min-width: 992px) {
    .sp {
        display: none !important;
    }
}

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

@media (max-width: 767.98px) {
    .sp_left {
        text-align: left;
    }
}

.content {
    position: relative;
}

@media (max-width: 991.98px) {
    .content {
        margin-top: 60px;
    }
}

section {
    padding: var(--margin-section) 0
}

.wrapper {
    width: 85.13vw;
    margin: 0 auto;
    position: relative;
}

.inner {
    width: 75vw;
    margin: 0 auto;
    position: relative;
}

@media (max-width: 767.98px) {
    .wrapper, .inner {
        width: 90%;
    }
}

.btn {
    background: var(--main-color);
    display: inline-block;
    padding: 18px 46px;
    border-radius: 100vmax;
    min-width: 290px;
    transition: all 0.4s ease-out;
    cursor: pointer;
    position: relative;
    box-shadow: 0px 2px 5px 0px rgba(207, 217, 235, .6);
    overflow: hidden;
}

.btn span {
    position: relative;
    z-index: 2;
    color: #FFF;
    font-weight: 700;
    line-height: normal;
    text-align: center;
    font-size: 16px;
    letter-spacing: 0.07em;
    transition: all 0.4s ease-out;
}

.btn:before {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: auto;
    display: block;
    width: 0;
    z-index: 0;
    background-color: #9ECA44;
    content: "";
    -webkit-transition: width 0.33s ease-out, opacity 0.4s ease-in, letter-spacing 0.3s ease;
    transition: width 0.33s ease-out, opacity 0.4s ease-in, letter-spacing 0.3s ease;
}

.btn::after {
    content: "";
    display: inline-block;
    background: url(../images/btn_arrow.svg) no-repeat center;
    background-size: contain;
    width: 9px;
    height: 12px;
    top: 50%;
    transform: translateY(-50%);
    position: absolute;
    right: 16px;
    transition: 0.2s ease;
    z-index: 2;
}

.btn:hover {
    color: #FFF;
    background: var(--main-color);
}

.btn:hover span {
    letter-spacing: 0.1em;
}

.btn:hover:before {
    right: auto;
    left: 0;
    width: 100%;
    -webkit-transition: width 0.33s ease-out, opacity 0.4s ease-in, letter-spacing 0.3s ease;
    transition: width 0.33s ease-out, opacity 0.4s ease-in, letter-spacing 0.3s ease;
}

.btn:visited {
    color: #FFF;
}

.section_btn_wrap {
    text-align: center;
    margin-top: var(--margin-l);
}

@media (min-width: 768px) {
    .row_reverse {
        flex-direction: row-reverse;
    }
}

@media (max-width: 767.98px) {
    .col_reverse {
        flex-direction: column-reverse;
    }
}


.section_ttl {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    margin-bottom: var(--margin-m);
}

.section_ttl .en {
    color: var(--MAIN, #07A066);
    font-family: "Noto Sans JP";
    font-size: 21px;
    font-size: max(calc((21 / 1440) * 100vw), 18px);
    font-style: normal;
    font-weight: 900;
    line-height: normal;
    letter-spacing: 1.26px;
}

.section_ttl .ja {
    font-size: max(calc((34 / 1440) * 100vw), 26px);
    font-style: normal;
    font-weight: 700;
    text-align: center;
    line-height: 1.4;
    letter-spacing: 0.06em;
}

.section_ttl .ja span.big {
    font-size: max(calc((44 / 1440) * 100vw), 26px);
    margin: 0 4px;
}

/* ========================================================
   Header
=========================================================*/
header {
    width: 100%;
    position: fixed;
    top: 18px;
    z-index: 100000;
}

@media (max-width: 991.98px) {
    header {
        top: 0;
    }
}

.header_container {
    width: calc(100% - 80px);
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    justify-content: space-between;
    align-items: center;
    padding: 10px 32px;
    border-radius: 11px;
    background: #FFF;
    box-shadow: 0px 4px 9px 0px rgba(0, 143, 89, 0.18);
}

@media (max-width: 991.98px) {
    .header_container {
        width: 100%;
        padding: 0;
        border-radius: 0;
    }
}

.header_logo {
    margin-right: auto;
    width: 16%;
}

@media (max-width: 991.98px) {
    .header_logo {
        margin-left: 5%;
    }
}


@media (max-width: 767.98px) {
    .header_logo {
        width: 33.61vw;
    }
}

.btn.header_btn {
    padding: 16px 46px;
}

/* 管理バーが表示されている場合にヘッダーの位置を調整 */
body.admin-bar header {
    top: 50px; /* 管理バーの高さ */
}

@media screen and (max-width: 782px) {
    body.admin-bar header {
       top: 46px; /* モバイルデバイス用の管理バーの高さ */
    }
}

/* ========================================================
   PC Navigation
=========================================================*/
.nav_pc {
    width: 80%;
}

.nav_pc ul {
    display: flex;
    list-style: none;
    align-items: center;
    justify-content: flex-end;
    gap: 24px;
}

.nav_pc ul li a {
    font-weight: 700;
    cursor: pointer;
    font-size: max(calc((16 / 1440) * 100vw), 14px);
    transition: .2s ease-out;
}

.nav_pc ul li a:hover {
    color: var(--main-color);
}

.nav_btn {
    color: #FFF;
    width: 180px;
    min-width: unset;
    background: var(--main-color);
    padding: 14px !important;
    transition: .2s ease;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 100vmax;
    font-size: 15px;
}

.nav_btn:hover {
    opacity: .8;
}

/* ========================================================
   PC Sub Navigation
=========================================================*/
.nav_pc_sub {
    display: none;
    width: 100%;
    border-top: 1px solid rgba(0, 0, 0, 0.1);
    margin-top: 10px;
    padding: 16px;
}

.nav_pc_sub.active {
    display: block;
}

.symptoms_nav {
    display: flex;
}

.symptoms_nav_inner {
    width: 100%;
    display: flex;
    flex-direction: column;
    padding: 0 16px;
    border-right: 1px solid rgba(54, 35, 35, 0.1);
}

.symptoms_nav_inner:last-child {
    border-right: 0;
}

.symptoms_nav_head {
    display: flex;
    align-items: center;
    gap: 16px;
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 10px;
}

.symptoms_nav .symptoms_menu_img_wrap {
    width: 20%;
    border: 5px solid #ECF8EE;
}

.symptoms_nav_inner ul {
    list-style: none;
}

.symptoms_nav_inner ul li a {
    padding: 10px;
    width: 100%;
    display: inline-block;
    cursor: pointer;
    position: relative;
    transition: .2s ease-out;
}

.symptoms_nav_inner ul li a:hover {
    color: var(--main-color);
}

.symptoms_nav_inner ul li a::after {
    position: absolute;
    content: url(../images/nav_arrow.svg);
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    transition: .2s ease-out;
}

.symptoms_nav_inner ul li a:hover::after {
    right: 14px;
}

.symptoms_nav_inner ul li:last-child a {
    border-bottom: none;
}

@media (max-width: 1180.98px) {
    .nav_pc_sub {
        padding: 16px;
    }

    .symptoms_nav_inner {
        padding: 0 8px;
    }

    .symptoms_nav_inner ul li a {
        font-size: 14px;
    }

    .symptoms_nav_inner ul li a::after {
        right: 8px;
    }
}

@media (max-width: 991.98px) {
    .nav_pc {
        display: none;
    }
}

/* ========================================================
   SP Navigation
=========================================================*/
.nav_sp {
    position: relative;
    background: var(--main-color);
    width: 60px;
    height: 60px;
}

.menu_btn {
    position: relative;
    display: flex;
    justify-content: center;
    width: 100%;
    height: 57px;
    cursor: pointer;
    z-index: 10000;
    cursor: pointer;
}

.menu_btn span {
    position: absolute;
    width: 60%;
    height: 2px;
    background: #FFF;
    transition: .4s;
}

.top_bar {
    top: calc(35% - 2px / 2);
}

.center_bar {
    top: calc(50% - 2px / 2);
}

.under_bar {
    top: calc(65% - 2px / 2);
}

#open:checked~.menu_btn>.top_bar {
    top: calc(50% - 2px / 2);
    transform: rotate(45deg);
}

#open:checked~.menu_btn>.center_bar {
    opacity: 0;
}

#open:checked~.menu_btn>.under_bar {
    top: calc(50% - 2px / 2);
    transform: rotate(-45deg);
}

#open {
    display: none;
}

.drawer {
    width: 100vw;
    max-width: 500px;
    min-height: 100%;
    position: fixed;
    top: 0;
    right: -100%;
    -webkit-transition: .7s;
    transition: .5s;
    background: var(--main-color);
    color: #FFF;
    padding: 32px;
    z-index: 1000;
    overflow: scroll;
}

.drawer.open {
    right: 0;
}

.drawer_logo {
    width: 80%;
    max-width: 260px;
    aspect-ratio: 30000 / 5411;
    margin-bottom: 32px;
}

.drawer_menu, .drawer_links {
    margin: 0;
    position: relative;
    list-style: none;
}

.drawer_links {
    margin-top: 16px;
}

.drawer_menu li, .drawer_links li {
    position: relative;
    text-align: left;
    letter-spacing: 0.06em;
    text-transform: capitalize;
    font-weight: 600;
    font-style: normal;
}

.drawer_item {
    list-style: none;
    position: relative;
    z-index: 2;
}

.drawer_item:last-child {
    margin-bottom: 0;
}

.drawer_item dl dt a {
    display: block;
    padding: 20px 0;
    text-decoration: none;
    font-size: 1.6rem;
    color: #FFF;
    font-weight: bold;
    border-bottom: 1px solid #87C090;
    transition: .2s ease-out;
}

.drawer_item dl dt a:hover {
    text-decoration: underline;
}

.drawer_item dt .nav_sp_btn {
    display: block;
    position: absolute;
    width: 44px;
    height: 100%;
    top: 0;
    right: 0;
    cursor: pointer;
}

.drawer_item dt .nav_sp_btn>span {
    position: absolute;
    right: 8px;
    top: 30px;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    width: 20px;
    height: 1px;
}

.drawer_item dt .nav_sp_btn>span:before,
.drawer_item dt .nav_sp_btn>span:after {
    content: " ";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #FFF;
    transition: transform 0.2s ease;
}

.drawer_item dt .nav_sp_btn>span:after {
    transform: rotate(90deg);
}

.drawer_item dt .nav_sp_btn span.minus:after {
    transform: none;
    /* 変形を解除 */
}

.drawer_item dd {
    display: none;
    transition: transform 0.4s ease-in;
}

.nav_sp_btn.opened span:before, .nav_sp_btn.opened span:after {
    background: transparent;
}

.nav_sp_btn.opened span {
    background: var(--text-color);
}

.nav_sp_sub {
    padding: 8px 0;
    list-style: none;
}

.nav_sp_sub li a {
    font-size: 14px;
    display: block;
    padding: 8px 0;
    transition: .2s ease-in;
}

.nav_sp_sub li a:hover {
    text-decoration: underline;
}


.drawer_btn {
    text-align: center;
    display: inline-block;
    margin-top: 3.8rem;
    width: 100%;
    padding-top: 3rem;
    padding-bottom: 2.9rem;
    border: 1px solid #ededed;
    font-weight: bold;
    background: #FFF;
    color: var(--main-color);
    border-radius: 100vmax;
}

@media (max-width: 1113.98px) {
    .nav_pc ul {
        justify-content: space-between;
        gap: 0;
    }

    .nav_btn {
        width: 160px;
    }

    .nav_btn span {
        font-size: 14px;
    }
}

@media (max-width: 991.98px) {

    .nav_pc {
        display: none;
    }

    .nav_pc_sub {
        display: none;
    }

    .drawer {
        width: 100vw;
    }

    .drawer_menu, .drawer_links {
        padding: 0;
        margin: 0;
    }
}


@media (min-width: 768px) {
    .drawer {
        max-width: 500px;
    }

    .drawer.open {
        box-shadow: 0px 9px 21px rgba(17, 17, 17, 0.3);
    }
}


/* ========================================================
   Footer
=========================================================*/
footer {
    background: var(--main-color);
    border-radius: 0px 80px 0px 0px;
    padding: var(--margin-section) var(--margin-m);
    position: relative;
    color: #FFF;
}

@media (max-width: 767.98px) {
    footer {
        padding-bottom: var(--margin-section);
    }
}


.footer_top {
    background: url(../images/ft_bg.png);
}

.footer_content {
    display: flex;
    justify-content: flex-start;
    margin-bottom: 24px;
    gap: var(--margin-section);
}


.footer_logo img {
    width: 200px;
}

@media (max-width: 576px) {

    .footer_logo img {
        width: 46vw;
    }
}

.footer_nav_wrap {
    display: flex;
    justify-content: space-between;
    margin-bottom: var(--margin-s);
    width: 50%;
}

@media (max-width: 991.98px) {
    .footer_content {
        flex-wrap: wrap;
        gap: var(--margin-s);
    }

    .footer_logo {
        width: 100%;
    }

    .footer_nav_wrap {
        width: 100%;
    }
}

.footer_nav {
    display: flex;
    flex-direction: row;
    list-style-type: none;
    gap: 24px;
    flex-wrap: wrap;
}

.footer_nav li {
    padding: 8px 0;
}

.footer_nav a {
    font-size: 16px;
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 500;
    color: #FFF;
    display: block;
    cursor: pointer;
}

.footer_nav a:visited {
    color: #FFF;
}

.footer_nav a.child::before {
    content: "-";
    margin-right: 4px;
}

.footer_nav a:hover {
    opacity: 0.8;
}

.copyright {
    font-size: 13px;
    text-align: right;
    color: #ECF8EE;
    font-weight: 300;
}

@media (max-width: 991.98px) {
    .footer_logo {
        padding-bottom: var(--margin-s);
        border-bottom: 1px solid #87C090;
    }

    .footer_container {
        flex-direction: column;
        align-items: center;
        gap: 40px;
    }

    .footer_nav_wrap {
        flex-wrap: wrap;
    }

    .footer_nav {
        width: 100%;
        margin-bottom: 8px;
    }
}

/* ========================================================
   INDEX
=========================================================*/
/*
   temp index
 ---------------------------*/
.temp_mtop{
    margin-top: var(--margin-section);
}

section.temp_feature{
    padding: var(--margin-m) 0;
}

/*
   FV
 ---------------------------*/
.fv {
    background:url(../images/mv_new.jpg)no-repeat center center / cover;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
}

.fv_inner {
    width: 91.94vw;
    margin-right: 0;
    margin-left: auto;
    margin-top: 5vw;
    display: flex;
    justify-content: space-between;
    gap: 9.58vw;
}

.fv_content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 8px;
    position: relative;
}

.fv_content.temp{
    max-width: 33.11vw;
}

.fv_content .note{
    font-size: 12px;
    font-weight: 400;
    margin-top: 8px;
    color#FFF
}

.fv_maintxt {
    font-size: clamp(26px, calc((46 / 1440) * 100vw), 46px);
    font-weight: 900;
    line-height: 1.5;
    color: #FFF;
    text-shadow: 0px 4px 75px rgba(0, 0, 0, 0.45);
}


.fv_top_green{
    color: var(--main-color);
    font-size: clamp(26px, calc((40 / 1440) * 100vw), 42px);
    font-weight: 900;
}

.fv_maintxt .size_s {
    font-size: clamp(24px, calc((42 / 1440) * 100vw), 42px);
}

.fv_maintxt .size_m {
    font-size: clamp(26px, calc((46 / 1440) * 100vw), 46px);
}

.fv_maintxt .size_l {
    font-size: clamp(30px, calc((52 / 1440) * 100vw), 52px);
}

.fv_subtxt {
    font-size: clamp(16px, calc((23 / 1440) * 100vw), 24px);
    font-weight: 700;
    color: #FFF;
    margin-bottom: 16px;
    text-shadow: 0px 4px 75px rgba(0, 0, 0, 0.45);
}

.mv_circles{
    display: flex;
    gap: 12px;
}

.mv_circles img{
    width: 156px;
    aspect-ratio: 1 / 1;
}

.fv_plist {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
}

.fv_plist span {
    border-radius: 9px;
    background: #FFF;
    box-shadow: 0px 2px 14px 0px rgba(0, 143, 89, 0.18);
    padding: 16px;
    width: calc(50% - 8px);
    text-align: center;
    font-size: max(calc((18 / 1440) * 100vw), 14px);
    font-weight: 700;
}


@media (max-width: 575.98px) {
    .fv_plist {
        gap: 8px;
    }

    .fv_plist span {
        padding: 12px;
        width: calc(50% - 4px);
    }
    .mv_circles{
        width: 100%;
        gap: 8px;
    }
    .mv_circles img {
        width: 30%;
    }

    .fv_maintxt .size_l{
        font-size: clamp(25px, calc((52 / 1440)* 100vw), 52px);
    }
}

.fv_image {
    width: 48.94vw;
    padding-bottom: 7vw;
}

.fv_deco {
    position: absolute;
    width: 14.17vw;
    aspect-ratio: 204 / 261;
    bottom: 7vw;
    right: -14.88vw;
}

@media (max-width: 991.98px) {

    .fv{
        height: 75vh;
    }

    .fv_deco {
        display: none;
    }

    .fv_inner {
        width: 100vw;
        justify-content: center;
        gap: 0;
    }

    .fv_content {
        padding: 0 5% 8% 5%;
        margin: 0;
        width: 100%!important;
        max-width: none;
    }

    .fv_content.temp{
        padding: 0 5% 8% 5%;
        margin: 0;
        width: 100%!important;
        max-width: none;
    }

    .fv_image {
        width: 90%;
        margin-right: 0;
        margin-left: auto;
    }
}

/*
   top_symptoms
 ---------------------------*/
.symptoms_menu {
    display: flex;
    max-width: 880px;
    width: 80%;
    margin: 0 auto;
    list-style: none;
    gap: 24px;
}

.symptoms_menu li {
    position: relative;
    width: 100%;
}

@media (max-width: 767.98px) {
    .symptoms_menu {
        flex-wrap: wrap;
        width: 100%;
    }

    .symptoms_menu li {
        width: calc(50% - 12px);
        margin-bottom: var(--margin-s);
    }
}

.symptoms_menu li::after {
    content: url(../images/symtoms_arrow.svg);
    position: absolute;
    bottom: -20px;
    left: 50%;
    transform: translateX(-50%);
    transition: .2s ease;
}

.symptoms_menu li:hover::after {
    bottom: -24px;
}

.symptoms_menu li a {
    display: flex;
    flex-direction: column;
    gap: 4px;
    cursor: pointer;
    transition: .2s ease;
}

.symptoms_menu_img_wrap {
    border-radius: 100vmax;
    border: 12px solid #ECF8EE;
    overflow: hidden;
}

.symptoms_menu_img_wrap img {
    transition: .2s ease-in-out;
}

.symptoms_menu li a:hover img {
    transform: scale(1.05, 1.05);
    opacity: .9;
}

.symptoms_menu_ttl {
    text-align: center;
    font-size: max(calc((24 / 1440) * 100vw), 18px);
    font-style: normal;
    font-weight: 700;
}

@media (min-width: 1440px) {
    .symptoms_menu_ttl {
        font-size: 24px;

    }
}

/*
   top_symptoms_posts
 ---------------------------*/
section.top_symtom_posts {
    padding: var(--margin-l) 0;
    overflow-x: hidden;
}

.top_symtom_posts.is_gray {
    background: #F7F7F7;
}

.top_symtom_posts_ttl {
    display: flex;
    align-items: center;
    gap: 24px;
    margin-bottom: var(--margin-m);
}

.top_symtom_posts_ttl .num {
    font-family: "Montserrat", sans-serif;
    font-weight: 600;
    color: var(--main-color);
    font-size: 32px;
    font-size: max(calc((65 / 1440) * 100vw), 32px);
    font-weight: 700;
}

.top_symtom_posts_ttl .line {
    display: inline-block;
    width: 1px;
    height: 4vw;
    background: #223C4C;
}


@media (max-width: 767.98px) {
    .top_symtom_posts_ttl {
        gap: 3vw;
    }

    .top_symtom_posts_ttl .line {
        height: 8vw;
    }
}

.top_symtom_posts_ttl .ttl {
    font-size: 28px;
    font-size: max(calc((34 / 1440) * 100vw), 22px);
    font-weight: 700;
}

.top_symtom_slider .swiper-slide {
    width: 337px;
}

@media (max-width: 991.98px) {
    .top_symtom_slider .swiper-slide {
        width: 85%;
    }
}


.symtom_post {
    border-radius: 20px;
    background: #FFF;
    box-shadow: 0px 4px 27px 0px rgba(0, 143, 89, 0.19);
    overflow: hidden;
}

.symtom_post a {
    cursor: pointer;
    transition: .2s ease-out;
}

.blog_thumb {
    overflow: hidden;
    position: relative;
}

.blog_thumb img {
    aspect-ratio: 337 / 180;
    object-fit: cover;
    transition: .2s ease-out;
}

.symtom_post a:hover {
    opacity: 0.8;
}

.symtom_post a:hover .blog_thumb img {
    transform: scale(1.05, 1.05);
}

.blog_thumb_cat {
    border-radius: 0px 13px 0px 0px;
    background: var(--main-color);
    padding: 1rem 2.5rem;
    font-size: 16px;
    font-weight: 700;
    position: absolute;
    bottom: 0;
    left: 0;
    color: #FFF;
}

.blog_content {
    padding: var(--margin-s) var(--margin-xs);
}

@media (max-width: 767.98px) {

    .blog_content {
        padding: var(--margin-s);
    }

}


.blog_content h3 {
    font-size: 20px;
    font-weight: 700;
    margin-bottom: 10px;
    line-height: 1.4;
    transition: .2s ease-out;
}

.symtom_post a:hover .blog_content h3 {
    color: var(--main-color);
}

@media (max-width: 767.98px) {
    .blog_content h3 {
        font-size: 18px;
    }
}

.blog_content p {
    font-size: 14px;
}

/*
   top_cases
 ---------------------------*/
section.top_cases {
    background: #ECF8EE;
}

.top_case_list {
    display: flex;
    flex-direction: column;
    gap: 24px;
    max-width: 1120px;
    margin: 0 auto;
}

.top_case {
    border-radius: 20px;
    background: #FFF;
    box-shadow: 0px 4px 14px 0px rgba(0, 143, 89, 0.15);
    overflow: hidden;
    max-width: 880px;
    margin: 0 auto;
}

.top_case article a {
    display: flex;
    cursor: pointer;
    align-items: center;
}

.case_thumb {
    width: 35.27%;
    aspect-ratio: 395 / 252;
}

.case_thumb img {
    height: 100%;
    object-fit: cover;
    transition: .2s ease-out;
}

.top_case article a:hover .case_thumb img {
    transform: scale(1.05, 1.05);
    opacity: .9;
}

.case_content_wrap {
    width: 64.82%;
    margin: var(--margin-s);
}

@media (max-width: 767.98px) {
    .top_case article a {
        flex-direction: column;
    }

    .case_thumb {
        width: 100%;
        aspect-ratio: 395 / 200;
    }

    .case_thumb img {
        aspect-ratio: 395 / 200;
    }

    .case_content_wrap {
        width: auto;
    }
}



.categories {
    display: flex;
    gap: 8px;
    margin-bottom: 16px;
}

.categories span,
.cat span {
    border-radius: 4px;
    border: 1px solid var(--main-color);
    padding: 4px 8px;
    font-size: 14px;
    color: var(--main-color);
    font-weight: 500;
}

.case_content_wrap h3 {
    font-weight: 700;
    font-size: 20px;
    line-height: 1.4;
    padding-bottom: 16px;
    margin-bottom: 16px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.14);
    transition: .2s ease-out;
}

.top_case article a:hover .case_content_wrap h3 {
    color: var(--main-color);
}


@media (max-width: 575.98px) {
    .case_content_wrap h3 {
        font-size: 18px;
    }
}

.case_info {
    font-weight: 400;
}

/*
   top_about
 ---------------------------*/
.top_about {
    text-align: center;
}

.about_txt {
    font-size: 16px;
    font-size: max(calc((21 / 1440) * 100vw), 16px);
    font-weight: 500;
    margin-bottom: var(--margin-m);
}

.aboutimg {
    max-width: 640px;
    margin-bottom: var(--margin-l);
}

/*
   top_recommend
 ---------------------------*/
section.top_recommend {
    background: #ECF8EE;
}

.recommend_list {
    display: flex;
    gap: var(--margin-m);
    list-style: none;
    justify-content: center;
    width: 78vw;
    margin: 0 auto;
}


@media (max-width: 767.98px) {

    .recommend_list {
        flex-wrap: wrap;
    }

}

.recommend_list li {
    border-radius: 20px 20px 20px 0px;
    background: #FFF;
    box-shadow: 0px 6px 19px 0px rgba(0, 143, 89, 0.19);
    padding: var(--margin-m) 0;
    width: 100%;
    position: relative;
    text-align: center;
    font-size: max(calc((22 / 1440) * 100vw), 20px);
    font-weight: 700;
    line-height: 1.5;
}

.recommend_list li .num {
    position: absolute;
    top: -20px;
    left: 20px;
    font-family: "Montserrat", sans-serif;
    font-weight: 600;
    color: rgba(7, 160, 102, 0.60);
    font-size: max(calc((36 / 1440) * 100vw), 20px);

}

/*
   top_voice
 ---------------------------*/
section.top_voice {
    background: #F7F7F7;
}

.top_voice_list {
    display: flex;
    gap: 40px;
}

@media (max-width: 991.98px) {
    .top_voice_list {
        flex-wrap: wrap;
    }
}

.voice_wrap {
    width: 100%;
}

.voice_wrap a {
    display: flex;
    flex-direction: column;
    cursor: pointer;
}

.voice_thumb {
    overflow-x: hidden;
    aspect-ratio: 348 / 157;
    margin-bottom: 16px;
}

.voice_thumb img {
    aspect-ratio: 348 / 157;
    transition: .2s ease-in-out;
}

.voice_wrap a:hover img {
    transform: scale(1.05, 1.05);
    opacity: .9;
}

.voice_content_wrap {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.voice_content_wrap h3 {
    font-size: 28px;
    font-size: clamp(18px, calc((20 / 1440) * 100vw), 20px);
    font-weight: 700;
    line-height: 1.4;
    padding-bottom: 16px;
    margin-bottom: 16px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.14);
    transition: .2s ease-out;
}

.voice_wrap a:hover .voice_content_wrap h3 {
    color: var(--main-color);
}

.voice_info {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.voice_info p {
    font-size: clamp(16px, calc((16 / 1440) * 100vw), 14px);
}

@media (max-width: 991.98px) {
    .voice_content_wrap h3 {
        padding-bottom: 0;
        border-bottom: none;
    }

    .voice_info {
        padding-bottom: 40px;
        border-bottom: 1px solid rgba(0, 0, 0, 0.14);
    }
}

/*
   top_clinic
 ---------------------------*/
.top_clinic_list {
    display: flex;
    gap: var(--margin-m);
}

@media (max-width: 767.98px) {
    .top_clinic_list {
        flex-wrap: wrap;
    }
}

.clinic_wrap {
    width: 100%;
}

.clinic_wrap a {
    display: flex;
    flex-direction: column;
    width: 100%;
}

.clinic_thumb {
    aspect-ratio: 547 / 317;
    overflow: hidden;
    width: 100%;
    margin-bottom: 16px;
}

.clinic_thumb img {
    aspect-ratio: 547 / 317;
    object-fit: cover;
    transition: .2s ease-out;
}

.clinic_wrap a:hover .clinic_thumb img {
    transform: scale(1.05, 1.05);
}

.clinic_content_wrap {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.clinic_content_wrap h3 {
    font-size: 20px;
    font-weight: 700;
    margin: 14px 0;
}

dl.clinic_info {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    align-items: center;
}

dl.clinic_info dt {
    width: calc(30% - 16px);
    background-color: #ECF8EE;
    margin-bottom: 16px;
    margin-right: 16px;
    text-align: center;
    padding: 8px 0;
    font-size: 14px;
    font-weight: 700;
}

dl.clinic_info dd {
    width: 70%;
    margin-bottom: 16px;
    line-height: 1.4;
}

.clinic_btn_wrap {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.clinic_btn_wrap .btn {
    width: 100%;
    min-width: unset;
    border-radius: 4px;
    padding: 14px;
}

.clinic_btn_wrap .btn span {
    font-size: 16px;
}

.clinic_btn_wrap .btn span.mapbtn_span::after {
    content: url(../images/mappin.svg);
    margin-left: 5px;
    /* transform: translateY(2px); */
    position: relative;
    top: 3px;
}

/* ========================================================
   Page Top Button
=========================================================*/
#pageTopButton {
    position: fixed;
    right: 40px;
    bottom: 40px;
    width: 70px;
    height: 70px;
    border-radius: 50%;
    background-color: var(--main-color);
    border: none;
    cursor: pointer;
    display: flex;
    justify-content: center;
    align-items: center;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3);
    z-index: 1000;
}

#pageTopButton img {
    width: 17px;
    height: 22px;
}

#pageTopButton.hide {
    display: none !important;
}

@media (max-width: 991.98px) {

    #pageTopButton {
        transition: opacity 0.2s ease-in-out;
        opacity: 0;
    }

    #pageTopButton.show {
        opacity: 1;
    }
}


@media (max-width: 767.98px) {
    #pageTopButton {
        right: 7px;
        bottom: 128px;
        width: 40px;
        height: 40px;
    }

    #pageTopButton img {
        width: 12px;
        height: 14px;
    }
}

/* ========================================================
   Pages
=========================================================*/

/* Page Header
-------------------------*/
.page_header {
    background: var(--main-color);
    height: 360px;
    position: relative;
    overflow: hidden;
}

@media (min-width:1440px) {
    .page_header{
        height: 25vw;
    }
}


.page_header::before {
    content: "";
    display: inline-block;
    background: url(../images/ph_left.svg)no-repeat;
    position: absolute;
    top: 0;
    left: 0;
    width: 41.81vw;
    aspect-ratio: 603 / 357;
    background-size: contain;
}

.page_header::after {
    content: "";
    display: inline-block;
    background: url(../images/ph_right.svg)no-repeat;
    position: absolute;
    bottom: 0;
    right: 0;
    width: 25.07vw;
    background-size: contain;
    aspect-ratio: 36148 / 21391;
}

.page_ttl {
    position: absolute;
    left: 8.75vw;
    bottom: 34%;
    text-align: left;
    display: flex;
    flex-direction: column;
    gap: 16px;
    color: #FFF;
}

.page_ttl .ttl_ja {
    letter-spacing: 0.1em;
    font-size: max(calc((46 / 1440) * 100vw), 28px);
    font-weight: 700;
    z-index: 3;
    line-height: 1.4;
}

.page_ttl .ttl_en {
    font-size: 16px;
    font-family: "Montserrat", sans-serif;
    font-weight: 600;
    font-size: max(calc((22 / 1440) * 100vw), 18px);
}

@media (max-width: 767.98px) {
    .page_header {
        height: 260px;
    }

    .page_header::before {
        width: 53.81vw;
    }

    .page_header::after {
        width: 46.07vw;
    }

    .page_header .container {
        padding: 60px 0;
    }

    .page_ttl {
        bottom: 68px;
    }

    .page_ttl .ttl_ja {
        font-size: 26px;
        letter-spacing: 0.1em;
    }

    .page_ttl .ttl_en {
        font-size: 16px;
        font-family: 'Jost', sans-serif;
    }
}

/* Page Navigation
-------------------------*/
.page_nav ul {
    display: flex;
    gap: 16px;
    justify-content: center;
    list-style: none;
    margin-top: var(--margin-section);
}

.page_nav ul li a {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 16px;
    min-width: 115px;
    text-align: center;
    color: var(--main-color);
    padding: 1rem;
    border-radius: 4px;
    border: 2px solid #22B47D;
    background: #FFF;
    transition: .2s ease-out;
    cursor: pointer;
}

.page_nav ul li a:hover {
    background: var(--main-color);
    color: #FFF;
}

.page_nav ul li a.selected {
    background: var(--main-color);
    color: #FFF;
}

@media (max-width: 767.98px) {
    .page_nav ul {
        flex-wrap: wrap;
        gap: 8px;
    }

    .page_nav ul li a {
        font-size: 13px;
        min-width: 19.81vw;
    }
}
/* faq
-------------------------*/
.faq_wrap {
    max-width: 880px;
    margin: 0 auto;
}

.faq_wrap .faq-item {
    width: 100%;
    padding: 0;
}

.faq_wrap .faq-question {
    background: #F6F6F6;
}

.faq_wrap .faq-answer {
    line-height: 2;
}


@media (max-width: 576px) {

    .faq_wrap .faq-question,
    .faq_wrap .faq-answer {
        font-size: 14px;
        text-indent: -2.3em;
        padding-left: 3em;
    }
}
.faq-item {
    margin-bottom: var(--margin-s);
    padding: 0 5%;
}

.faq-question {
    display: block;
    width: 100%;
    text-align: left;
    background-color: #F1F1F1;
    padding: 1.5rem 2rem 1.5rem 1.5rem;
    cursor: pointer;
    font-size: 18px;
    font-weight: bold;
    position: relative;
    color: var(--text-color);
    line-height: 1.4;
}

.faq-question::before {
    content: "Q";
    color: var(--main-color);
    font-size: 22px;
    margin-right: var(--margin-s);
    font-family: "Montserrat", sans-serif;
    font-weight: 600;
}

.faq-question::after {
    content: '';
    display: inline-block;
    width: 8px;
    height: 8px;
    border-right: 2px solid #888;
    border-bottom: 2px solid #888;
    transform: rotate(45deg);
    transition: transform 0.3s;
    position: absolute;
    right: 14px;
    top: calc(50% - 4px);
}

.faq-question.active::after {
    transform: rotate(-135deg);
}

.faq-answer {
    display: none;
    padding: 16px;
    border-top: none;
}

.faq-answer strong {
    color: var(--main-color);
}

/* pagenation
-------------------------*/
.nav-links {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    margin-top: var(--margin-l);
}

.pagination {
    text-align: center;
    margin-top: 20px;
    font-family: "Montserrat", sans-serif;
    font-optical-sizing: auto;
}

.pagination .page-numbers {
    background: #F7F7F7;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 2px;
}

.pagination .page-numbers.current {
    background: var(--main-color);
    color: #fff;
}

.pagination .page-numbers:hover {
    background: var(--main-color);
    color: #fff;
}

.pagination .page-numbers.prev,
.pagination .page-numbers.next {
    font-weight: bold;
    padding: 8px 16px;
    position: relative;
    background: transparent;
}

.pagination .page-numbers.prev::before,
.pagination .page-numbers.next::before {
    content: '';
    display: block;
    width: 12px;
    height: 12px;
    border-width: 2px;
    border-style: solid;
    border-color: #333;
}

.pagination .page-numbers.prev::before {
    transform: rotate(135deg);
    border-width: 0 2px 2px 0;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(135deg);
}

.pagination .page-numbers.next::before {
    transform: rotate(-45deg);
    border-width: 0 2px 2px 0;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(-45deg);
}


/* Archives
-------------------------*/
.article_list {
    display: flex;
    flex-wrap: wrap;
}

.article_list article {
    width: calc(33.3% - 46px);
    margin-bottom: 46px;
    margin-left: 23px;
    margin-right: 23px;
    line-height: 1.4;
}

@media (max-width: 992px) {
    .article_list article {
        width: calc(50% - 46px);
    }
}

@media (max-width: 575.98px) {
    .article_list article {
        width: 100%;
        margin-right: 0;
        margin-left: 0;
    }
}

.page_about {
    background: linear-gradient(0deg, #ECF8EE 0%, #ECF8EE 100%), url(<path-to-image>) lightgray 0% 0% / 50px 50px repeat;
    text-align: center;
}

/* Clinic
-------------------------*/
.select-box {
    cursor: pointer;
    position: relative;
    max-width: 25em;
    margin: 5em auto 0;
    width: 90%;
}

.select,
.label {
    color: #414141;
    display: block;
    font: 400 17px/2em "Noto Sans JP", sans-serif;
}

.select {
    width: 100%;
    position: absolute;
    top: 0;
    padding: 8px;
    height: 53px;
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    background: none transparent;
    border: 0 none;
}

.select-box1 {
    background: #ececec;
}

.label {
    position: relative;
    padding: 10px 10px;
    cursor: pointer;
}

.open .label::after {
    content: "▲";
}

.label::after {
    content: "▼";
    font-size: 12px;
    position: absolute;
    right: 0;
    top: 0;
    padding: 10px 18px;
    border-left: 8px solid #fff;
}

.clinic_list {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
}


.clinic_list .clinic_wrap {
    display: flex;
    align-items: center;
    gap: var(--margin-m);
    margin-bottom: var(--margin-m);
    padding-bottom: var(--margin-m);
    border-bottom: 1px solid rgba(0, 0, 0, 0.14);
}

.clinic_list .clinic_wrap:last-child{
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}

.clinic_list .clinic_content_wrap h3 {
    font-size: 28px;
    font-size: clamp(22px, calc((32 / 1440) * 100vw), 34px);
}

@media (min-width: 992px) {
    .clinic_list .clinic_thumb {
        width: 80%;
    }

    .clinic_btn_wrap .btn {
        width: 45%;
    }
}


@media (max-width: 991.98px) {
    .clinic_list .clinic_wrap {
        width: calc(50% - 46px);
        margin-bottom: 46px;
        margin-left: 23px;
        margin-right: 23px;
        flex-direction: column;
        gap: 8px;
    }

    .clinic_content_wrap {
        gap: 8px;
    }

    .clinic_list .clinic_thumb {
        width: 100%;
    }

    .clinic_list dl.clinic_info dt,
    .clinic_list dl.clinic_info dd {
        width: 100%;
    }
}

@media (max-width: 575.98px) {
    .clinic_list .clinic_wrap {
        width: 100%;
        margin-left: 0;
        margin-right: 0;
    }

    .clinic_btn_wrap .btn {
        width: 48%;
    }

    dl.clinic_info dt {
        padding: 10px 0;
    }
}

/* About
-------------------------*/
.about_sec01 .flex_columns {
    display: flex;
    gap: var(--margin-l);
    align-items: center;
}

.about_sec01 .flex_columns .flex_column {
    width: 55%;
}

.about_sec01 .flex_columns .flex_column p {
    font-size: 20px;
    font-size: clamp(16px, calc((23 / 1440) * 100vw), 24px);
    line-height: 1.8;

}

.about_sec01 .flex_columns .img_column {
    width: 40%;
}

@media (max-width: 767.98px) {
    .about_sec01 .flex_columns {
        flex-wrap: wrap;
        flex-direction: column-reverse;
    }

    .about_sec01 .flex_columns .flex_column {
        width: 100%;
    }

    .about_sec01 .flex_columns .img_column {
        width: 100%;
    }
}

.about_sec02 {
    background: url(../images/factor_bg.jpg)no-repeat;
    background-size: cover;
}

.factor_txt {
    font-size: 16px;
    font-size: clamp(16px, calc((20 / 1440) * 100vw), 24px);
    text-align: center;
    font-weight: 700;
    line-height: 1.8;
    margin-bottom: var(--margin-m);
}

.factors_list {
    display: flex;
    gap: var(--margin-s);
    justify-content: center;
}

.factor {
    background: #ECF8EE;
    width: 18.75vw;
    border-radius: 20px;
    display: flex;
    padding: var(--margin-s);
    flex-direction: column;
    gap: 10px;
    align-items: center;
    justify-content: center;
}

.factor h3 {
    color: var(--main-color);
    font-size: 24px;
    font-weight: 700;
    line-height: 188.4%;
    letter-spacing: 1.86px;
}

.factor p {
    font-size: 1.2vw;
    text-align: center;
    font-weight: 700;
}


@media (max-width: 991.98px) {
    .factors_list {
        flex-wrap: wrap;
        justify-content: space-between;
        gap: 2.11vw;
    }

    .factor {
        width: 48%;
    }

    .factor_txt {
        text-align: left;
    }

    .factor h3 {
        font-size: 22px;
    }

    .factor p {
        font-size: 14px;
    }
}

.about_effects {
    background: #F7F7F7;
}

.flex_columns {
    display: flex;
    justify-content: center;
}

.three_columns {
    gap: var(--margin-m);
}

.three_columns .flex_column {
    display: flex;
    flex-direction: column;
    gap: var(--margin-xs);
    align-items: center;
    width: 100%;
}

.effect_img{
    width: 100%;
    box-shadow: 0px 2px 14px 0px rgba(0, 143, 89, 0.19);
}

.effects_txt {
    text-align: center;
    font-weight: 700;
    font-size: 20px;
}

@media (max-width: 767.98px) {
    .three_columns {
        flex-wrap: wrap;
    }

    .three_columns .flex_column {
        width: 100%;
    }
}

.aboout_features {
    margin-top: var(--margin-m);
    border-radius: 20px;
    background: rgba(7, 173, 110, 0.90);
    padding: var(--margin-m);
}

.aboout_features h2 {
    font-size: max(calc((34 / 1440) * 100vw), 22px);
    font-style: normal;
    font-weight: 700;
    text-align: center;
    line-height: 1.4;
    letter-spacing: 0.06em;
    color: #FFF;
    margin-bottom: var(--margin-m);
}

.aboout_features h2 span {
    font-size: 120%;
}

.feature_column {
    border-radius: 10px;
    background: #FFF;
    padding: var(--margin-ms);
}

.feature_column small{
    font-size: 12px;
    color: #717171;
    line-height: 1.5;
}

.aboout_features .three_columns {
    gap: var(--margin-s);
}

.feature_column img {
    width: 8.82vw;
}

@media (max-width: 767.98px) {
    .feature_column img {
        width: 90px;
        aspect-ratio: 1 / 1;
    }
}

.feature_column h3 {
    color: var(--main-color);
    text-align: center;
    font-size: max(calc((24 / 1440) * 100vw), 20px);
    font-style: normal;
    font-weight: 700;
    line-height: 147.4%;
    letter-spacing: 1.44px;
}

.feature_column p {
    text-align: center;
}

.developer_box {
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.90);
    box-shadow: 0px 4px 36px 0px rgba(0, 143, 89, 0.19);
    display: flex;
    padding: var(--margin-m);
    gap: 56px;
    align-items: center;
    max-width: 1400px;
    margin: 0 auto;
}

@media (max-width: 767.98px) {
    .developer_box {
        flex-wrap: wrap;
        justify-content: center;
        gap: var(--margin-s);
    }
}

.developer_box img {
    width: 17.22vw;
    min-width: 216px;
    aspect-ratio: 1 / 1;
    object-fit: contain;
}

.dev_tltle {
    font-size: 24px;
    font-size: max(calc((24 / 1440) * 100vw), 18px);
    font-style: normal;
    font-weight: 700;
    line-height: 157.4%;
    /* 37.776px */
    letter-spacing: 1.44px;
    padding-bottom: var(--margin-s);
    border-bottom: 1px solid var(--main-color);
    margin-bottom: var(--margin-s);
}

.developer_name {
    display: flex;
    align-items: flex-end;
    justify-content: flex-start;
    gap: 11px;
}

.name_ja {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: var(--main-color);
}

.name_ja .name_ttl {
    font-size: 18px;
    font-style: normal;
    font-weight: 700;
    line-height: 147.4%;
    /* 26.532px */
    letter-spacing: 1.08px;
}

.name_ja .name_body {
    font-size: 25px;
    font-style: normal;
    font-weight: 700;
    line-height: 147.4%;
    /* 39.798px */
    letter-spacing: 1.62px;
}

.name_en {
    color: #CACACA;
    font-family: "Montserrat", sans-serif;
    font-size: 17px;
    font-style: normal;
    font-weight: 700;
    line-height: 147.4%;
    /* 25.058px */
}

.about_flow {
    background: #ECF8EE;
}

.flow.flex_column {
    position: relative;
    width: 100%;
    border-radius: 20px;
    border: 3px solid #22B47D;
    background: #FFF;
    position: relative;
    padding: var(--margin-s);
    gap: 8px;
}

.flow.flex_column span {
    position: absolute;
    border-radius: 16px 0px;
    background: #22B47D;
    font-weight: 700;
    color: #FFF;
    font-family: "Montserrat", sans-serif;
    font-size: max(calc((18 / 1440) * 100vw), 16px);
    padding:16px;
    top: 0;
    left: 0;
}

.flow.flex_column img{
    width: 28%;
    aspect-ratio: 1 / 1;
}

.flow.flex_column p{
    text-align: center;
}
/* ========================================================
   Articles
=========================================================*/

/* Toc
-------------------------*/
#toc_container {
    margin-bottom: var(--margin-l);
    padding: 15px 20px;
    border: 1px solid #ACACAC;
    border-radius: 2px;
    color: #666;
    text-align: left;
}

#toc_container .toc_title {
    margin-bottom: 30px;
    margin-top: 0;
    padding-top: 0;
    padding-bottom: 0px;
    font-size: 18px;
}

#toc_container .toc_list {
    list-style-type: none !important;
    margin-left: 0;
}

#toc_container .toc_list>li {
    position: relative;
    margin-bottom: 15px;
    margin-left: 2rem;
    line-height: 1.3em;
}


#toc_container .toc_list>li a {
    text-decoration: none !important;
    font-size: 16px;
    position: relative;
    padding-left: 0rem;
    text-indent: -2rem;
    line-height: 1.6;
    font-size: 14px;
}

#toc_container .toc_list>li>a::before {
    position: absolute;
    top: 0;
    left: 0;
    content: url(../images/toc_arrow.svg);
    margin-right: 8px;
}

#toc_container .toc_list>li a:hover {
    text-decoration: underline !important;
}

#toc_container .toc_list>li ul {
    list-style-type: none;
    margin-top: 8px;
    padding-left: 0;
    margin-left: 0;
}

#toc_container .toc_list>li>ul li {
    font-size: 0.9em;
    margin-bottom: 8px;
    font-size: 14px;
}

#toc_container .toc_list>li>ul li a::before {
    content: "-";
    margin-right: 8px;
}

@media only screen and (min-width: 641px) {
    #toc_container {
        padding: 25px 40px;
    }

    #toc_container .toc_list li a {
        font-size: 16px;
    }

    #toc_container .toc_list>li {
        margin-bottom: 18px;
        margin-left: 12px;
        font-size: 1em;
    }

}


/* Post body
-------------------------*/
.post_header {
    background: #ECF8EE;
    padding: var(--margin-m);
    border-radius: 4px;
    margin-bottom: var(--margin-l);
}

@media (max-width: 576px) {
    .post_header {
        padding: 0;
        background: transparent;
    }
}


.post_header h1 {
    font-size: 28px;
    font-size: clamp(20px, calc((34 / 1440) * 100vw), 36px);
    font-weight: 700;
    line-height: 1.4;
    margin-bottom: 16px;
}

.post_header_info {
    display: flex;
    gap: var(--margin-s);
}

.post_header_info time {
    font-size: 16px;
    font-weight: 700;
    font-family: "Montserrat", sans-serif;
    color: #717171;
}

.post_header_info time::before {
    content: url(../images/icon_pen.svg);
    margin-right: 8px;
}

.post_body {
    text-align: center;
}

.post_body h2 {
    text-align: left;
    font-size: 28px;
    font-size: clamp(20px, calc((28 / 1440) * 100vw), 34px);
    font-weight: 700;
    padding: 2rem;
    background: #ECF8EE;
    border-radius: 4px;
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: var(--margin-s);
    line-height: 1.3;
}

.post_body h2::before {
    content: '';
    display: inline-block;
    background: url(../images/head_deco2.svg);
    height: 3rem;
    aspect-ratio: 5 / 38;
    background-size: contain;
}

.post_body h3 {
    text-align: left;
    font-weight: 700;
    font-size: 22px;
    font-size: clamp(18px, calc((22 / 1440) * 100vw), 30px);
    line-height: 1.4;
    padding: 0 0 0 16px;
    margin: 0 0 .8em;
    color: #008D58;
    line-height: 1.3;
}

.post_body img {
    margin: 0 auto;
    max-width: 800px;
    margin-bottom: var(--margin-m);
}

.post_body p {
    text-align: left;
    line-height: 2;
    margin-bottom: var(--margin-m);
}

.post_body ul {
    text-align: left;
    margin-left: 2rem;
    line-height: 2;
    margin-bottom: var(--margin-s);
}

.post_body ol {
    text-align: left;
    margin-left: 2rem;
    line-height: 2;
    margin-bottom: var(--margin-s);
}

.post_body p a {
    text-decoration: underline;
    color: #2e74aa;
}

@media (max-width: 576px) {
    .post_body h2 {
        padding: 1.5rem 1em;
    }

    .post_body h3 {
        padding: 0;
    }
}

.symptoms_nav_wrap {
    background: #F7F7F7;
}

.symptoms_nav_wrap .wrapper {
    width: 90vw;
}


@media (max-width: 991.98px) {
    .symptoms_nav_wrap .symptoms_nav {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        gap: 40px;
    }

    .symptoms_nav_wrap .symptoms_nav_inner {
        width: calc(50% - 20px);
        padding: 0;
        border-right: none;
    }

    .symptoms_nav_wrap .symptoms_nav_inner ul li a {
        padding: 13px;
        border-bottom: 1px solid rgba(0, 0, 0, 0.1);
    }
}

@media (max-width: 576px) {
    .symptoms_nav_wrap .symptoms_nav_inner {
        width: 100%;
    }

}

.post_video_wrap {
    display: flex;
    gap: var(--margin-m);
    align-items: center;
    margin-bottom: var(--margin-section);
}

.yt {
    width: 100%;
}

.post_video_wrap_content {
    width: 100%;
}

.yt iframe {
    aspect-ratio: 16 / 9;
    overflow: hidden;
    width: 100%;
}


@media (max-width: 767.98px) {
    .post_video_wrap {
        display: block;
    }
}

/* Case
-------------------------*/
.case_content{
    max-width: 880px;
    margin: 0 auto;
}
.case_columns {
    display: flex;
    gap: var(--margin-m);
    align-items: center;
    margin-bottom: var(--margin-l);
    flex-direction: row-reverse;
}

@media (max-width: 767.98px) {
    .case_columns {
        flex-wrap: wrap;
    }

    .case_img{
        width: 100%;
    }

}

.case_img img{
    width: 100%;
    min-width: 360px;
    aspect-ratio: 395 / 252;
    margin-bottom: 0;
    object-fit: cover;
}

@media (max-width: 576px) {
    .case_img img{
        min-width: unset;
    }
}

.case_column{
    width: 100%;
}

.case_table {
    width: 100%;
}

.case_table tr th,
.case_table tr td {
    font-weight: 500;
}

.case_table tr{
    padding-bottom: var(--margin-m);
}

.case_table th{
    background-color: #f3f3f3;
    text-align: center;
    width: 190px;
    padding: 1.5rem;
    display: inline-block;
    font-weight: 600;
}

@media (max-width: 767.98px) {
    .case_table th{
        width: 160px;
    }
}

.case_table td{
    padding-left: var(--margin-s);
    padding-bottom: 3rem;
    padding-top: 1.5rem;
    width: 100%;
}

.case_table tr:last-child td{
    padding-bottom: 0;
}

@media (max-width: 575.98px) {

    .case_table tr th,
    .case_table tr td {
        font-size: 14px;
    }
}

.case_table tr td a {
    color: var(--main-color);
    border-bottom: 1px dashed var(--main-color);
}

.case_table tr td a::after {
    content: url(../images/icon_external.svg);
    margin-left: 2px;
}

.case-single .post_header{
    padding: var(--margin-s);
}

@media (max-width: 576px) {
    .case-single .post_header{
        background: #ECF8EE;;
    }
}

.case-single .post_header h1{
    margin-bottom: 0;
}

.case_content .post_body h2{
    font-size: clamp(20px, calc((20 / 1440) * 100vw), 18px);
    padding: 0;
    padding-bottom: 1rem;
    padding-top: 1rem;
    border-bottom: 2px solid var(--main-color);
    background-color:transparent;
    border-radius: 0;
}

.case_content .post_body p{
    font-size: 18px;

}

.case_content .post_body h2::before{
    content: "";
    display: none;
}
/* -----------------
        Contact Form
      ----------------  */
/* template02 */
.form__wrap {
    width: 100%;
    max-width: 900px;
    /*フォームの最大幅*/
    margin-right: auto;
    margin-left: auto;
    margin: 0 auto;
}

.wpcf7-form-control-wrap{
    width: 100%;
}

.wpcf7 .template02 {
    color: var(--main-txtcolor);
    font-size: 16px;
}

.wpcf7 .template02 a {
    margin: 0;
    padding: 0;
    text-decoration: underline;
    color: inherit;
    transition: opacity .25s;
}

.wpcf7 .template02 a:hover {
    opacity: .5;
    transition: opacity .25s;
}

.wpcf7 .template02 div.form__row {
    display: flex;
    margin: 0;
    padding: 0;
    border-top: 1px solid #efe8e5;
}

.wpcf7 .template02 div.form__row.row-privacy,
.wpcf7 .template02 div.form__row.row-submit {
    display: block;
    border-top: 0;
    margin-top: 1em;
    text-align: center;
}

.wpcf7 .template02 p.form__label,
.wpcf7 .template02 p.form__body {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

.wpcf7 .template02 p.form__label {
    width: 36%;
    padding: 1.5em 1em;
}

.wpcf7 .template02 p.form__body {
    width: 64%;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 4px;
    padding: 1.5em 1em;
}

.wpcf7 .template02 div.form__row.row-privacy .form__body,
.wpcf7 .template02 div.form__row.row-submit .form__body {
    width: 100%;
}

.wpcf7 .template02 p.form__label label {
    position: relative;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

.wpcf7 .template02 p.form__label label::after {
    content: "";
}

.wpcf7 .template02 p.form__label.is-required label {
    display: flex;
    align-items: center;
    position: relative;
}

.wpcf7 .template02 p.form__label.is-required label::after {
    content: "※";
    display: block;
    top: 0;
    right: 0;
    color: #d03a30;
    font-size: 14px;
    text-align: center;
}

/* テキストフィールド */
.wpcf7 .template02 input[type=text],
.wpcf7 .template02 input[type=tel],
.wpcf7 .template02 input[type=email],
.wpcf7 .template02 textarea {
    width: 100%;
    margin: 0;
    padding: .5em 1em;
    border: 1px solid #c4bbb8;
    border-radius: 0;
    box-shadow: none;
    background-color: #fefefe;
    color: inherit;
    font-family: inherit;
    font-weight: inherit;
    font-size: 16px;
    box-sizing: border-box;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

/* テキストフィールド placeholder */
.wpcf7 .template02 input[type=text]::placeholder,
.wpcf7 .template02 input[type=tel]::placeholder,
.wpcf7 .template02 input[type=email]::placeholder,
.wpcf7 .template02 input[type=url]::placeholder,
.wpcf7 .template02 input[type=date]::placeholder,
.wpcf7 .template02 input[type=number]::placeholder,
.wpcf7 .template02 textarea::placeholder {
    color: #ccc;
}

.wpcf7 .template02 input[type=text]:-ms-input-placeholder,
.wpcf7 .template02 input[type=tel]:-ms-input-placeholder,
.wpcf7 .template02 input[type=email]:-ms-input-placeholder,
.wpcf7 .template02 input[type=url]:-ms-input-placeholder,
.wpcf7 .template02 input[type=date]:-ms-input-placeholder,
.wpcf7 .template02 input[type=number]:-ms-input-placeholder,
.wpcf7 .template02 textarea:-ms-input-placeholder {
    color: #ccc;
}

.wpcf7 .template02 input[type=text]::-ms-input-placeholder,
.wpcf7 .template02 input[type=tel]::-ms-input-placeholder,
.wpcf7 .template02 input[type=email]::-ms-input-placeholder,
.wpcf7 .template02 input[type=url]::-ms-input-placeholder,
.wpcf7 .template02 input[type=date]::-ms-input-placeholder,
.wpcf7 .template02 input[type=number]::-ms-input-placeholder,
.wpcf7 .template02 textarea::-ms-input-placeholder {
    color: #ccc;
}

/* テキストフィールド フォーカス時 */
.wpcf7 .template02 input[type=text]:focus,
.wpcf7 .template02 input[type=tel]:focus,
.wpcf7 .template02 input[type=email]:focus,
.wpcf7 .template02 input[type=url]:focus,
.wpcf7 .template02 input[type=date]:focus,
.wpcf7 .template02 input[type=number]:focus,
.wpcf7 .template02 textarea:focus {
    outline: 0;
    border: 2px var(--main-color) solid;
}

/* チェックボックス */
.wpcf7 .template02 input[type=checkbox] {
    display: none;
}

.wpcf7 .template02 input[type=checkbox]+span {
    cursor: pointer;
    position: relative;
    margin: 0;
    padding: 0 1em 0 1.8em;
    font-size: inherit;
    box-sizing: border-box;
    transition: opacity .25s ease;
}

.wpcf7 .template02 input[type=checkbox]+span::before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 1.24em;
    height: 1.24em;
    border: 1px solid #c4bbb8;
    border-radius: 4px;
    background-color: #fefefe;
    box-sizing: border-box;
}

.wpcf7 .template02 input[type=checkbox]+span::after {
    content: "";
    opacity: 0;
    display: block;
    position: absolute;
    top: 0.15em;
    left: 0.44em;
    width: 0.4em;
    height: .8em;
    border-bottom: 3px solid #000;
    border-right: 3px solid #000;
    box-sizing: border-box;
    transform: rotate(40deg);
    transition: opacity .25s ease;
}

.wpcf7 .template02 input[type=checkbox]:checked+span {
    color: #6c5d2f;
    transition: all .25s ease;
}

.wpcf7 .template02 input[type=checkbox]:checked+span::before {
    opacity: 1;
    border: 1px solid var(--main-color);
    box-shadow: 0 0 2px 2px var(--rgba-color);
    background-color: var(--main-color);
    transition: opacity .25s ease;
}

.wpcf7 .template02 input[type=checkbox]:checked+span::after {
    opacity: 1;
    border-bottom: 3px solid #fff;
    border-right: 3px solid #fff;
    transition: opacity .25s ease;
}

/* ラジオボタン */
.wpcf7 .template02 input[type=radio] {
    display: none;
}

.wpcf7 .template02 input[type=radio]+span {
    cursor: pointer;
    position: relative;
    margin: 0;
    padding: 0 1em 0 1.8em;
    font-size: inherit;
    box-sizing: border-box;
    transition: opacity .25s ease;
}

.wpcf7 .template02 input[type=radio]+span::before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 1em;
    height: 1em;
    border: 1px solid #c4bbb8;
    border-radius: 50%;
    background-color: #fefefe;
    box-sizing: border-box;
    transition: opacity .25s ease;
}

.wpcf7 .template02 input[type=radio]+span::after {
    content: "";
    display: block;
    opacity: 0;
    position: absolute;
    box-sizing: border-box;
    transition: opacity .25s ease;
}

.wpcf7 .template02 input[type=radio]:checked+span {
    color: #6c5d2f;
}

.wpcf7 .template02 input[type=radio]:checked+span::before {
    box-shadow: 0 0 2px 2px var(--rgba-color);
}

.wpcf7 .template02 input[type=radio]:checked+span::after {
    opacity: 1;
    top: 0;
    left: 0;
    width: 1em;
    height: 1em;
    background-color: #6c5d2f;
    border-radius: 50%;
    box-sizing: border-box;
    transition: opacity .25s ease;
}

/* セレクト */
.wpcf7 .template02 span.select-wrap {
    position: relative;
    width: 250px;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

.wpcf7 .template02 select {
    cursor: pointer;
    max-width: 100%;
    margin: 0;
    padding: .5em 3.5em .5em 1em;
    border: 1px solid #c4bbb8;
    box-shadow: none;
    background-color: #FFF;
    border-radius: 0!important;
    background-position: 100% 0;
    background-size: 2em 3.5em;
    background-repeat: no-repeat;
    color: inherit;
    font-size: inherit;
    line-height: 1;
    box-sizing: border-box;
    transition: border-color 0.2s ease, outline 0.2s ease;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

.wpcf7 #zip::before{
    content: "〒";
}

.wpcf7 .template02 select::-ms-expand {
    display: none;
}

.wpcf7 .template02 span.select-wrap::after {
    content: "";
    pointer-events: none;
    position: absolute;
    display: block;
    width: .6em;
    height: .6em;
    top: 50%;
    right: .8em;
    margin-top: -3px;
    border-bottom: 2px solid var(--main-color);
    border-right: 2px solid var(--main-color);
    transform: rotate(45deg) translateY(-50%);
    transform-origin: 50% 0;
    box-sizing: border-box;
}

.wpcf7 .template02 select:focus {
    outline: 0;
    border: 1px #6c5d2f solid;
    box-shadow: 0 0 2px 2px var(--rgba-color);
}

.wpcf7 .template02 span.select-wrap:focus-within::after {
    border-bottom: 1px solid #6c5d2f;
    border-right: 1px solid #6c5d2f;
}

/* 送信ボタン */
.wpcf7 .template02 .submit-btn {
    position: relative;
    width: 320px;
    height: 65px;
    max-width: 100%;
    margin: 0;
    padding: 0;
    margin-left: auto;
    margin-right: auto;
}

.wpcf7 .template02 input[type="submit"] {
    cursor: pointer;
    width: 320px;
    max-width: 100%;
    padding: 18px;
    box-shadow: none;
    border: 1px var(--main-color) solid;
    border-radius: 0;
    background-color: var(--main-color);
    color: #fff;
    font-size: 18px;
    text-align: center;
    box-sizing: border-box;
    transition: all .25s;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

.wpcf7 .template02 input[type="submit"]:disabled {
    cursor: not-allowed;
    box-shadow: none !important;
    border: 1px solid #f8f8f8 !important;
    background-color: #f8f8f8 !important;
    color: #929292 !important;
}

.wpcf7 .template02 input[type="submit"]:hover {
    background-color: #fff;
    color: var(--main-color);
    transition: all .25s;
}

.wpcf7 .template02 input[type="submit"]:focus {
    outline: 0;
    border: 2px var(--main-color) solid;
}

.row-zip p.form__body::before{
    content: "〒 ";

}

@media only screen and (max-width: 768px) {
    .wpcf7 .template02 div.form__row {
        display: block;
    }

    .wpcf7 .template02 p.form__label {
        width: 100%;
        padding: 1.5em 1em 0;
    }

    .wpcf7 .template02 p.form__body {
        width: 100%;
        padding: 1em 1em 1.5em;
        display: flex;
        justify-content: flex-start;
    }
    .wpcf7-list-item{
        margin: 0;
    }
}

.contact_txt_wrap{
    width: 100%;
    max-width: 900px;
    margin: 0 auto;
}

.contact_txt{
    font-size: 14px;
    text-align: right;
    margin-bottom: var(--margin-s);
}

.contact_txt span{
    color: #d03a30;
}