@media only screen and (max-width: 768px) {
  .home_page .key {
    --height: calc(100vh - 60px);
    --max-height: 170vw;
    --min-height: 620px;
    width: calc(100% - 20px);
    margin-top: 10px;
    font-size: min(8px, 1.3vmin);
  }
  .home_page .key_video {
    border-radius: 10px;
  }
  .home_page .key .key_text .item {
    padding: 0;
  }
  .home_page .key .mv_wrap {
    min-width: 56em;
    max-width: 88%;
    width: auto;
  }
  .home_page .key .mv_slider::before {
    left: -0.1em;
    top: -4.8em;
  }
  .home_page .key .mv_slider::after {
    right: -4.8em;
    bottom: -0.2em;
  }
  .home_page .key .catch {
    padding: 2em 2.5em 2em 3.5em;
  }
  .home_page .key .catch h2 {
    margin-bottom: 0.3em;
    line-height: 1.5;
  }
  .home_page .key_label {
    width: 100%;
    bottom: 40em;
    padding: 0 10px;
    font-size: min(6px, 1.4vw);
    right: 0.5em;
  }
  .home_page .key_label .flex {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
  .home_page .key_label .label_title {
    margin: 0 auto 0.5em;
    border-radius: 10px 10px 10px 0;
    padding: 0.4333333333em 0.6333333333em 0.5em 0.6333333333em;
  }
  .home_page .key_label .label_title::before {
    bottom: -0.9em;
  }
}
@media only screen and (max-width: 768px) and (max-aspect-ratio: 768/600) {
  .home_page .key {
    font-size: min(7px, 1.4vw);
  }
  .home_page .key .catch h2 {
    letter-spacing: 0.1em;
  }
}
@media only screen and (max-width: 450px) {
  .home_page .key .catch h2 {
    letter-spacing: 0.1em;
  }
  .home_page .key .catch p {
    font-size: 2.7em;
  }
  .home_page .key_label {
    bottom: 44em;
  }
}
@media only screen and (max-width: 768px) {
  section .btn {
    max-width: 300px;
  }
  .tl_h3 {
    font-size: min(20px, 4.3vw);
    letter-spacing: 0.05em;
    text-align: center;
    line-height: 1.3;
  }
  .tl_h3 span {
    letter-spacing: 0.05em;
  }
  .tl_h3 .tt01 {
    font-size: 1.3em;
  }
  .tl_h3 .tt02 {
    font-size: 2.5em;
  }
  .tl_h3 .tt03 {
    font-size: 32px;
  }
  .tl_heading {
    font-size: 32px;
  }
  .txt_scroll.en p {
    font-size: min(100px, 20vw);
  }
  .box_title .txt_en {
    font-size: min(100px, 19vw);
  }
  .fz18 p {
    font-size: 16px;
  }
  .idx01 {
    padding: 60px 0px 0;
  }
  .idx01 .tl_h3 {
    margin-bottom: 20px;
    margin-left: 0;
  }
  .idx01 .tl_h3 .tt02 {
    letter-spacing: 0.05em;
  }
  .idx01 .tl_h3.t_right {
    text-align: center;
    margin-bottom: 20px;
    padding-right: 0;
  }
  .idx01 .tl_h3.t_right .tt01 {
    font-size: 1.3em;
  }
  .idx01 .tl_h3.t_right .tt02 {
    margin: 0;
  }
  .idx01 .b_illus {
    border-radius: 0 0 4em 0;
    width: 49.7em;
    font-size: min(6px, 1vw);
  }
  .idx01 .b_illus::after {
    right: -4.8em;
  }
  .idx01 .b_illus .illus {
    right: 5.8em;
  }
  .idx01 .block_situation {
    width: calc(100% - 20px);
    padding: 160px 20px 60px 0px;
    border-radius: 20px 0 0 20px;
  }
  .idx01 .block_situation::before {
    height: 165vw;
    max-height: 700px;
    background-size: 768px 100%;
    background-position: top center;
  }
  .idx01 .b_checklist li {
    min-height: 4em;
    font-size: min(18px, 2.5vw);
    width: calc(50% - 0.5em);
    padding: 0.7em 0.5em 0.8em 0.5em;
  }
  .idx01 .b_checklist .text {
    padding-left: 2.5em;
    letter-spacing: 0.08em;
  }
  .idx02 {
    padding: 70px 0 60px;
  }
  .idx02::before {
    top: -18vw;
    background-size: 100% auto;
  }
  .idx02 .tl_h3 {
    padding-left: 0;
    font-size: min(20px, 4.85vw);
    margin-bottom: 35px;
  }
  .idx02 .tl_h3 .tt_num{
    position: relative;
    padding-left: 2em;
    margin-top: 1em;
    display: inline-flex;
  }
  .idx02 .tl_h3 .tt_num::before {
    top: -1.1em;
    left: 0;
    margin: 0 auto;
    width: 3em;
    height: 4em;
    font-size: 0.5em;
  }
  .idx02 .tl_h3 .tt02 {
    font-size: 2em;
    line-height: 1.1;
  }
  .idx02 .btn {
    margin: 0 auto;
  }
  .idx02 .txt_scroll {
    bottom: -7px;
  }
  .idx02 .block_reason {
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
  }
  .idx02 .block_reason .item {
    padding: 5.9em 4% 8.3em;
    font-size: min(8px, 1.5vw);
    width: 49%;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 5em;
  }
  .idx02 .block_reason figure{
    width: 35%;
    order: 2;
    margin-bottom: 0;
  }
  .idx02 .block_reason h4{
    font-size: min(2.4em, 2.65vw);
    width: 62%;
    order: 1;
    margin-bottom: 0;
  }
  .idx02 .block_reason .fz18{
    width: 100%;
    order: 3;
    margin-bottom: 1.9em;
  }
  .idx03 {
    padding: 55px 0;
  }
  .idx03 .tl_h3 {
    text-indent: 0;
    margin-top: 0;
    margin-bottom: 30px;
  }
  .idx03 .tl_h3 .tt02 {
    left: 0;
  }
  .idx03 .b_grid {
    max-width: 600px;
    width: 100%;
    margin: 0 auto;
  }
  .idx03 .box_img {
    margin-bottom: 25px;
    font-size: min(8px, 1.5vw);
  }
  .idx03 .box_img::before {
    border-radius: 20px;
  }
  .idx03 .l_circle .it {
    margin: 0 1.2em;
    --space: 2em;
  }
  .b_contact .bn {
    padding: 1em 3em 1em 3.5em;
    font-size: min(8px, 1vw);
    width: calc(50% - 1em);
    height: 11em;
  }
  .b_contact .bn.bn_tel {
    margin-right: 1em;
  }
  .b_contact .bn.bn_tel .icon {
    padding-left: 7em;
  }
  .b_contact .bn.bn_tel .icon::before {
    mask-size: 4.7em auto;
    -webkit-mask-size: 4.7em auto;
  }
  .b_contact .bn.bn_tel .txt_time {
    font-size: 1.6em;
  }
  .b_contact .bn.bn_mail .icon {
    padding-left: 10.5em;
  }
  .b_contact.style02 {
    padding: 22px 5% 26px;
  }
  .b_contact.style02 .bn {
    font-size: min(8px, 1.2vw);
  }
  .b_contact.style02 .bn.bn_tel {
    margin-top: 0;
  }
  .idx04 {
    padding: 60px 0 60px;
  }
  .idx04 .b_contact {
    margin-top: 20px;
  }
  .idx04 .txt_scroll {
    top: -5px;
  }
  .idx04 .txt_scroll p {
    font-size: min(120px, 20vw);
  }
  .idx04 .label {
    margin-bottom: 10px;
  }
  .idx04 .label span {
    padding: 0.5em 1em 0.5em 1em;
    font-size: min(16px, 2.5vw);
  }
  .idx04 .btn-group {
    margin-top: 20px;
  }
  .idx04 .btn-group .btn {
    width: calc(50% - 10px);
    margin: 5px;
  }
  .idx04 .block_consultations {
    padding: 10px 10px 20px;
    border-radius: 20px;
    margin-top: 25px;
  }
  .idx04 .block_consultations h4 {
    text-align: center;
    font-size: min(18px, 5.7vw);
    margin-bottom: 15px;
  }
  .idx04 .block_consultations h4 .lg {
    margin-bottom: 0;
    font-size: 1.8181818em;
  }
  .idx04 .block_consultations .sub {
    font-size: 18px;
    margin-bottom: 5px;
  }
  .idx04 .block_consultations .box_in {
    padding: 35px 5% 28px;
  }
  .gr_bn .bnr {
    height: 8em;
    font-size: min(8px, 1.25vw);
  }
  .idx05 .flow_title {
    max-width: 45em;
    width: 80%;
    height: 9em;
    border-bottom-right-radius: 20px;
    font-size: min(10px, 2vw);
  }
  .idx05 .flow_title::before, .idx05 .flow_title::after {
    width: 2.1em;
    height: 2.1em;
  }
  .idx05 .flow_title::before {
    bottom: -1.9em;
  }
  .idx05 .flow_title::after {
    right: -1.9em;
  }
  .idx05 .flow_title .tl_h3 {
    left: 0;
    top: 0;
    font-size: 2em;
  }
  .idx05 .flow_title .tl_h3 .tt02 {
    font-size: min(2.25em, 9.5vw);
  }
  .idx05 .b_grid {
    max-width: 600px;
    width: 100%;
    margin: 0 auto;
  }
  .idx05 .gr_bn {
    margin-top: 20px;
  }
  .idx05 .inner_full {
    padding: 60px 20px 80px;
  }
  .idx05 .inner_full::before {
    left: 0;
  }
  .idx05 .inner_full .box_img {
    height: auto;
    margin: 0 auto 25px;
  }
  .idx05 .inner_full .box_img img {
    border-radius: 20px;
  }
  .idx05 .inner_max {
    padding: 0;
  }
  .idx05 .block_flow {
    padding: 0 6%;
    margin-top: 40px;
  }
  .idx05 .block_flow .box_wrap {
    overflow-x: auto;
    padding: 130px 0 10px;
  }
  .idx05 .block_flow .box_wrap .flex {
    width: 900px;
  }
  .idx05 .block_flow .item {
    font-size: min(7px, 2.3vw);
  }
  .idx05 .block_flow .flow_img::after {
    right: calc((var(--mg) - 5.4em) * -1);
  }
  .idx05 .block_flow p {
    font-size: 1.8em;
    letter-spacing: 0.05em;
    line-height: 2;
  }
  .idx06 {
    padding-top: 80px;
  }
  .idx06 .inner_full {
    padding-top: 80px;
  }
  .idx06 .inner_full::before {
    top: -20px;
    right: 0;
    width: 100%;
    border-radius: 0;
    max-height: 450px;
    height: 89vw;
  }
  .idx06 .txt_scroll {
    top: 0;
  }
  .idx06 .tl_h3 {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
    margin-bottom: 25px;
  }
  .idx06 .cont {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
  }
  .idx06 .block_support {
    padding: 35px 5%;
    background-color: #f8f2ee;
    border-radius: 20px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    max-width: 600px;
    width: 100%;
    margin: 0 auto;
  }
  .idx06 .box_img {
    margin: 0 auto 20px;
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }
  .idx06 .box_img img {
    border-radius: 20px;
  }
  .idx06 .box_cont {
    display: contents;
    padding: 0;
    background-color: transparent;
    border-radius: 0;
  }
  .idx06 .gr_bn {
    margin-top: 20px;
  }
  .idx07 {
    padding: 60px 0;
  }
  .idx07 .tl_h3 {
    margin-bottom: 25px;
  }
  .idx07 .box_title {
    padding-top: min(54px, 10vw);
  }
  .idx07 .box_title:before {
    font-size: min(4px, 0.8vw);
    top: -8.4em;
  }
  .idx07 .block_faq .title {
    padding: 0.7em 2.5em 0.7em 0.7em;
    font-size: 3em;
    border-radius: 10px;
  }
  .idx07 .block_faq .ic_plus {
    font-size: 1.1em;
    width: round(3.2em, 1px);
    height: round(3.2em, 1px);
  }
  .idx07 .block_faq .item {
    font-size: 6px;
    margin-bottom: 3em;
  }
  .idx07 .block_faq .content {
    padding: 1.7em 3em 1.9em;
    border-radius: 10px 10px 0 10px;
  }
  .idx07 .block_faq .content p {
    font-size: 3em;
  }
  .idx08 {
    padding: 60px 0;
  }
  .idx08 h3 {
    margin-bottom: 20px;
  }
  .idx08 .block_price {
    padding: 40px 9%;
    border-radius: 20px;
  }
  .idx08 .block_price::before {
    border-radius: 10px;
    inset: 10px;
  }
  .idx08 .tbl_price {
    font-size: min(8px, 2vw);
    border-radius: 2.5em;
  }
  .idx08 .tbl_price th, .idx08 .tbl_price td {
    padding: 1.7em 1em 1.5em;
  }
  .idx08 .tbl_price .txt_price {
    font-size: 2em;
  }
  .idx08 .tb_note {
    font-size: 16px;
    line-height: 1.6;
    letter-spacing: 0.1em;
    margin-top: 10px;
  }
  .idx08 .bnr_price {
    margin-top: 20px;
    font-size: min(8px, 1.6vw);
    padding: 2.6em 3.7em 2.5em 2.7em;
  }
  .idx08 .bnr_price .icon {
    padding-left: 10.8em;
  }
  .idx08 .bnr_price .title {
    font-size: 2.5em;
  }
  .idx08 .bnr_price .txt {
    letter-spacing: 0.05em;
  }
  .block_contact {
    padding: 50px 0;
  }
  .block_contact .tl_h3 {
    letter-spacing: 0.05em;
  }
  .idx09 {
    padding: 85px 0 50px;
  }
  .idx09::before {
    background-size: 100% auto;
    height: calc(100% + 750px);
  }
  .idx09 .b_grid {
    max-width: 600px;
    width: 100%;
    margin: 0 auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  .idx09 .box_title {
    margin-bottom: 25px;
    margin-top: 0;
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
  .idx09 .box_title .txt_en {
    left: 0;
    right: 0;
    text-align: center;
  }
  .idx09 .box_name {
    top: 20px;
    right: 20px;
    font-size: min(8px, 1.8vw);
  }
  .idx09 .greeting_img {
    display: contents;
  }
  .idx09 .greeting_img figure img {
    border-radius: 20px;
  }
  .idx09 .b_img {
    display: table;
    margin: 0 auto 25px;
    position: relative;
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }
  .idx09 .greeting_cont {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
  }
  .idx09 .greeting_cont p {
    line-height: 2;
    margin-bottom: 10px;
  }
  .idx09 .greeting_cont .sub {
    font-size: min(20px, 4.8vw);
    line-height: 2.5;
    margin-bottom: 10px;
    text-align: center;
  }
  .idx09 .greeting_cont .sub span {
    padding: 0.3em 0.5416666667em 0.4em 0.2916666667em;
  }
  .idx09 .b_work {
    margin-top: 25px;
    padding: 0;
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4;
  }
  .idx09 .work_tl {
    padding-bottom: 0.15em;
    font-size: 20px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 20px;
  }
  .idx09 .work_list {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
  .idx09 .btn-group {
    margin: 25px 0 0;
  }
  .idx09 .btn-group .btn {
    margin: 10px auto;
    max-width: 300px;
  }
  .idx_map {
    height: 299px;
  }
  .idx10 {
    padding: 40px 0;
  }
  .idx10::before {
    left: 0;
    right: 0;
    margin: auto;
    width: calc(100% - 40px);
    border-radius: 20px;
  }
  .idx10 .tl_h3 {
    margin-top: 0;
    margin-bottom: 15px;
  }
  .idx10 .block_clinic {
    padding: 0 5%;
  }
  .idx10 .block_clinic::before {
    top: -11.5em;
    right: 0;
    left: 0;
    font-size: min(3px, 1vw);
    margin: auto;
  }
  .idx10 .btn {
    margin: 30px auto 0;
    max-width: 300px;
  }
  .idx10 .box_info dl {
    margin-bottom: 8px;
  }
  .idx10 .box_info dl:first-child {
    margin-bottom: 8px;
  }
  .idx10 .box_info dt, .idx10 .box_info dd {
    font-size: 16px;
  }
  .idx10 .box_info dt {
    width: 90px;
  }
  .idx10 .box_info dd {
    width: calc(100% - 90px);
  }
  .idx10 .col_map {
    margin-top: 35px;
  }
  .idx10 .col_map .b_map {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    padding: 20px 5% 20px;
  }
  .idx10 .col_map .map_tl {
    padding-right: 0;
    padding-bottom: 5px;
    margin-right: 0;
    margin-bottom: 10px;
    width: 100%;
    font-size: 16px;
  }
  .idx10 .col_map .map_tl:after {
    width: 100%;
    height: 1px;
    top: unset;
    bottom: 0;
  }
  .idx10 .col_map .map_tl .icon {
    padding-left: 1.5em;
    display: table;
    margin-left: auto;
    margin-right: auto;
  }
  .idx10 .col_map .map_tl .icon::before {
    top: 0.4em;
    width: 1em;
    height: 1.7em;
  }
  .idx10 .col_map .map_txt {
    padding-left: 0;
    margin-top: 0;
    width: 100%;
    line-height: 1.8;
  }
  .idx11 {
    padding: 16vw 0 0px;
  }
  .idx11::before {
    height: calc(100% + 580px);
  }
  .idx11 .box_title {
    margin-bottom: 25px;
  }
  .idx11 .box_title .txt_en {
    left: 0;
    right: 0;
    text-align: center;
  }
  .idx11 .btn {
    margin: 20px auto 0;
  }
  .idx11 .post_list li a {
    --w: 85px;
    padding: 10px 25px 10px 10px;
  }
  .idx11 .post_list li a::after {
    right: 10px;
    top: 0;
  }
  .idx11 .post_list li a .date {
    font-size: 14px;
  }
  .idx11 .post_list li a .cate {
    top: 3px;
    width: 80px;
    font-size: 14px;
    padding: 4px 10px 5px;
  }
  .idx11 .post_list li a .title {
    font-size: 16px;
  }
}
@media only screen and (max-width: 639px) {
  .idx02 .block_reason .item {
    border-radius: 3em;
    width: 100%;
    font-size: 8px;
    padding: 5.9em 8% 5em;
  }
  .idx02 .block_reason .item::before {
    border-radius: 2em;
  }
  .idx02 .block_reason .point {
    font-size: 9em;
  }
  .idx02 .block_reason figure {
    margin: 0 0 1.9em;
  }
  .idx02 .block_reason p {
    line-height: 2;
    font-size: 16px;
  }
  .idx02 .block_reason h4{    
    font-size: min(2.4em, 5.1vw);
  }
  .b_contact .bn {
    width: 100%;
    margin: 0 auto 1.5em;
    max-width: 400px;
    font-size: min(8px, 2vw);
  }
  .b_contact .bn.bn_tel {
    margin-right: auto;
  }
  .b_contact.style02 .bn {
    font-size: min(8px, 2.2vw);
  }
  .b_contact.style02 .bn.bn_tel {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    margin-bottom: 0;
  }
  .b_contact.style02 .bn.bn_mail {
    height: 9em;
    max-width: 290px;
  }
  .b_contact.style02 .bn.bn_mail .txt_mail {
    font-size: 2em;
  }
  .idx04 .label {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    margin-bottom: 20px;
  }
  .idx04 .label span {
    margin: 5px auto;
    width: auto;
    text-align: center;
    font-size: min(16px, 4vw);
  }
  
}
@media only screen and (max-width: 430px) {
  .idx01 .block_situation {
    padding-top: 30vw;
  }
  .idx01 .b_checklist li {
    width: 100%;
    margin-right: auto;
    margin-left: auto;
    font-size: min(18px, 4.2vw);
    min-height: 3.5em;
    margin-bottom: 0.8em;
  }
  .idx01 .b_checklist li:nth-child(2n+2) {
    margin-right: auto;
  }
  .idx02 .tl_h3 {
    letter-spacing: 0;
  }
  .gr_bn .bnr {
    width: 100%;
    margin: 8px auto;
    font-size: min(10px, 2.3vw);
  }
  .idx04 .btn-group .btn {
    width: 100%;
    margin: 5px auto;
  }
  .idx05 .block_flow .box_wrap {
    padding-top: 28vw;
    padding-bottom: 0;
  }
  .idx06 .inner_full {
    padding-top: 17vw;
  }
  .idx08 .tbl_price th, .idx08 .tbl_price td {
    padding: 1.7em 0.5em 1.5em;
  }
  .idx11 .box_title .txt_en {
    bottom: -6px;
  }
}
@media only screen and (max-width: 370px) {
  .idx10 .box_info dd span {
    letter-spacing: 0;
  }
  .idx08 .bnr_price {
    padding: 2.6em 3em 2.5em 2.5em;
  }
}