@charset "utf-8";
/* CSS Document */

*,
::before,
::after {
    box-sizing: border-box;
}

html {
    font-size: 62.5%;
}

body {
    position: relative;
    width: 100%;
    margin: 0;
    padding: 0;
    font-family: "Zen Old Mincho", system-ui, YuMincho, "Yu Mincho", "Hiragino Mincho ProN", "serif";
    font-style: normal;
    font-weight: normal;
    font-size: 1.2rem;
    color: #333;
    -webkit-text-size-adjust: none;
    -webkit-font-smoothing: antialiased;
    z-index: 0;
    font-feature-settings: "pkna" 1;
    overflow-x: hidden;

}

a {
    text-decoration: none;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    margin-bottom: 0;
    font-weight: 400;
    font-size: inherit;
    font-feature-settings: "palt";
    line-height: 1.65;
}

p {
    margin-bottom: 0;
}

pre {
    margin-bottom: 0;
}

dl {
    margin-bottom: 0;
}

ul {
    margin-bottom: 0;
}

ol {
    margin-bottom: 0;
    list-style: decimal;
    padding-left: 1em;
}

img {
    max-width: 100%;
}

/*-----------------------------------------------------------------

ハンバーガーメニュー

-----------------------------------------------------------------*/
#g-nav {
    /*position:fixed;にし、z-indexの数値を大きくして前面へ*/
    position: fixed;
    z-index: 999;
    /*ナビのスタート位置と形状*/
    top: 0;
    right: -120%;
    width: 100%;
    height: 100vh;
    /*ナビの高さ*/
    background: #b6f6ff;
    /*動き*/
    transition: all 0.6s;
}

/*アクティブクラスがついたら位置を0に*/
#g-nav.panelactive {
    right: 0;
}

/*ナビゲーションの縦スクロール*/
#g-nav.panelactive #g-nav-list {
    /*ナビの数が増えた場合縦スクロール*/
    position: fixed;
    z-index: 999;
    width: 100%;
    height: 100vh;
    /*表示する高さ*/
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}

/*ナビゲーション*/
#g-nav ul {
    /*ナビゲーション天地中央揃え*/
    position: absolute;
    z-index: 999;
    top: calc(10% + 80vw);
    left: 50%;
    transform: translate(-50%, -50%);
}

/*リストのレイアウト設定*/

#g-nav li {
    list-style: none;
    text-align: center;
}

#g-nav li a {
    color: #333333;
    text-decoration: none;
    padding: 10px;
    display: block;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-weight: bold;
    font-size: 1.6rem;
}

.nav_link {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 3rem;
    max-width: 50%;
    margin: 10% auto;
    text-align: center;
}

.nav_logo {
    margin-bottom: 5%;
}

/*========= ボタンのためのCSS ===============*/
.openbtn1 {
    position: fixed;
    z-index: 9999;
    /*ボタンを最前面に*/
    top: 10px;
    right: 10px;
    cursor: pointer;
    width: 50px;
    height: 50px;
    background: #041847;
    border-radius: 5px;
}

/*×に変化*/
.openbtn1 span {
    display: inline-block;
    transition: all .4s;
    position: absolute;
    left: 14px;
    height: 3px;
    border-radius: 2px;
    background-color: #FFFFFF;
    width: 45%;
}

.openbtn1 span:nth-of-type(1) {
    top: 15px;
}

.openbtn1 span:nth-of-type(2) {
    top: 23px;
}

.openbtn1 span:nth-of-type(3) {
    top: 31px;
}

.openbtn1.active span:nth-of-type(1) {
    top: 18px;
    left: 18px;
    transform: translateY(6px) rotate(-45deg);
    width: 30%;
}

.openbtn1.active span:nth-of-type(2) {
    opacity: 0;
}

.openbtn1.active span:nth-of-type(3) {
    top: 30px;
    left: 18px;
    transform: translateY(-6px) rotate(45deg);
    width: 30%;
}

/*--------------------------------------------------------------------------*/

header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: rgba(255, 255, 255, 0.90);
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    padding: 1rem 3rem;
    z-index: 99;
    height: 130px;
}

.logo {
    max-width: 350px;
    width: 30%;
}

.h_r {
    margin-left: auto;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.icon_tel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2vw;
    max-width: 80%;
    margin-left: auto;
}

.gnav ul {
    display: flex;
    justify-content: space-between;
    gap: 3vw;
}

.gnav li {
    font-size: max(0.9vw, 1.6rem);
    font-weight: 400;
    text-align: center;
}

.gnav li span {
    color: #8acfd9;
    display: block;
}

.mv {
    width: 100%;
    height: max(40vw, 600px);
    position: relative;
    margin-top: 130px;
    overflow: hidden;
}

.MV_slide {
    width: auto;
    min-width: 100%;
    height: max(40vw, 600px);
}

.MV_slide .slide {
    width: 100%;
    height: max(40vw, 600px);
    background-image: url(./images/mv01.png);
    background-size: cover;
}
.MV_slide .slide:nth-of-type(2){
    background-image: url(./images/mv02.png);
}
.MV_slide .slide:nth-of-type(3){
    background-image: url(./images/mv03.png);
}

.catch {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 80%;
    max-width: 611px;
}

.mv_con {
    position: absolute;
    left: 3rem;
    top: 3rem;
    width: 30%;
}

section {
    padding: 3% 0;
}

.inner1460 {
    max-width: calc(1460px + 10%);
    padding: 0 5%;
    margin: 0 auto;
}

.flex {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}

.alc {
    align-items: center;
}

.flex_l {
    width: 25%;
}

.flex_r {
    width: 70%;
}

.flex_r p {
    font-size: max(3vw, 2.8rem);
    font-weight: 700;
}

.consultation {
    max-width: 1000px;
    margin: 0 auto 3%;
}

.circle_width {
    width: max(100%, 150px);
    background: #041847;
    border-radius: 50%;

}

.circle_height {
    position: relative;
    padding-top: 100%;
    height: 0;
}

.circle_height p {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    margin: 0;
    text-align: center;
    color: #FFFFFF;
    font-size: clamp(3rem, 3vw, 6rem);
    transform: translateY(-50%);
    font-weight: 600;
}

.flex .img {
    width: 38%;
}

.flex .txt {
    width: 58%;
}

.top_ttl {
    font-size: max(2vw, 2rem);
    color: #FFFFFF;
    font-weight: 700;
    background: #041847;
    text-align: center;
    margin-bottom: 3%;
    padding: 1rem;
}
div#wistia_chrome_23 {
    display: inline-block;
    height: 700px;
    line-height: normal;
    margin: 0px;
    padding: 0px;
    position: relative;
    vertical-align: top;
    width: 1340.01px;
    outline: none;
    overflow: hidden;
    box-sizing: content-box;
    border-radius: 0px;
}
.check_list {
    margin-bottom: 3%;
}

.check_list li {
    font-size: max(0.9vw, 1.6rem);
    padding: 1rem 1rem 1rem 3rem;
    position: relative;
    background: #b6f6ff;
    width: 48%;
    margin-bottom: 2%;
}

.check_list li::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 1rem;
    background: url("images/check_icon.png") no-repeat center / contain;
    width: 16px;
    height: 16px;
    transform: translateY(-50%);
}

.check_list2 {
    margin-bottom: 3%;
}

.check_list2 li {
    font-size: max(0.9vw, 1.6rem);
    padding: 1rem 1rem 2rem 3rem;
    margin-bottom: 2rem;
    border-bottom: 1px solid #333333;
    max-width: 500px;
    position: relative;
}

.check_list2 li::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 1rem;
    background: url("images/check_icon.png") no-repeat center / contain;
    width: 16px;
    height: 16px;
    transform: translateY(-50%);
}

.check_list3 {
    margin-bottom: 3%;
}

.check_list3 li {
    font-size: max(0.9vw, 1.6rem);
    padding: 1rem 1rem 1rem 3rem;
    margin-bottom: 1rem;
    position: relative;
}

.check_list3 li::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 1rem;
    background: url("images/check_icon02.png") no-repeat center / contain;
    width: 16px;
    height: 16px;
    transform: translateY(-50%);
}

.txt p {
    font-size: max(0.9vw, 1.6rem);
    letter-spacing: 0.06em;
    line-height: 1.6;
}

.top_bg {
    margin-top: 3%;
    background: #041847;
    padding: 2vw;
    color: #FFFFFF;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 2vw;
}

.top_bg p {
    font-size: max(0.9vw, 1.4rem);
}

.bg_tel {
    font-size: max(2.8vw, 2.8rem);
    font-weight: 700;
}

.time_txt {
    font-size: max(0.8vw, 1.4rem);
}

.implant {
    position: relative;
    padding: 3% 0 0;
}

.sec_ttl {
    font-size: max(3vw, 3.6rem);
    margin-bottom: 3%;
    font-weight: 700;
    line-height: 1;
}

.sec_ttl span {
    font-size: max(1vw, 1.8rem);
}

.white {
    color: #FFFFFF;
}

.tc {
    text-align: center;
}

.imp_img {
    position: absolute;
    top: 0;
    left: 0;
    width: 80%;
    max-width: 1328px;
    height: 100%;
    z-index: -1;
    background: url("images/implant_img.png") no-repeat center / contain;
    background-position: top;
}

.border {
    border: 3px solid #FFFFFF;
    border-right: transparent;
    padding: 2rem 0 2rem 2rem;
    max-width: 1227px;
    width: 100%;
    margin-left: auto;
    margin-bottom: -2%;
    position: relative;
}

.imp_txt {
    background: #FFFFFF;
    padding: 5vw;
}

.imp_txt .sub_ttl {
    font-size: max(2vw, 2rem);
    font-weight: 700;
    margin-bottom: 3%;
}

.imp_txt p {
    font-size: max(0.9vw, 1.6rem);
    letter-spacing: 0.06em;
    line-height: 1.6;
    padding-right: 15vw;
}

.problems {
    padding: 5% 3% 3%;
    background: url("images/problems_bg.png") no-repeat center / cover;
}

.problems_txt {
    margin-right: auto;
    padding-left: 5vw;
}

.feature {
    padding: 8% 0 3%;
    background: #eefcfe
}

.blue {
    color: #041847;
}

.point_txt {
    max-width: 50%;
    width: 100%;
}

.point_txt_inner {
    position: relative;
    background: #b6f6ff;
    padding: 5vw 3vw 5vw 6vw;
}

.point_txt_inner::before {
    content: "";
    background: #041847;
    height: calc(tan(60deg) * 5vw / 2);
    width: 5vw;
    clip-path: polygon(0% 0, 100% 100%, 0 100%);
    position: absolute;
    left: 0;
    bottom: 0;
}

.point_num {
    position: absolute;
    left: 5rem;
    top: -5rem;
    background: #041847;
    padding: 1rem 1.5rem;
    text-align: center;
    color: #FFFFFF;
    font-size: 2rem;
    font-weight: 700;
}

.point_num span {
    color: #a3925e;
    font-size: 4rem;
}

.point_txt .sub_ttl {
    font-size: max(2vw, 2rem);
    margin-bottom: 3%;
}

.point_txt p {
    font-size: max(0.9vw, 1.6rem);
    letter-spacing: 0.06em;
    line-height: 1.6;
}

.point_img {
    max-width: 50%;
    width: 100%;
    padding-top: 5rem;
}

.re {
    flex-direction: row-reverse;
}

.feature .flex {
    margin-bottom: 6%;
}

.merit {
    position: relative;
    padding: 6% 0;
}

.merit_inner {
    max-width: 90%;
    margin: 0 auto;
}

.deco_r {
    position: absolute;
    right: 0;
    top: 3%;
    z-index: -1;
}

.deco_l {
    position: absolute;
    bottom: 0;
    left: 0;
}

.merit_box {
    max-width: 48%;
    width: 100%;
    background: #eefcfe;
    padding: 1rem 2rem;
    border-top: 10px solid #49becb
}

.merit_box .check_list3 {
    padding: 0 3vw;
}

.merit_box .sub_ttl {
    background: #49becb;
    color: #FFFFFF;
    font-size: max(1.4vw, 2rem);
    font-weight: 700;
    margin-bottom: 6%;
    padding: 2rem;
    position: relative;
}

.merit_box .sub_ttl::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    background: url("images/title_bg.png") no-repeat center / contain;
    height: 100%;
    width: 25%;
    background-position: left;
    max-width: 114px;
}

.btn {
    text-align: center;
    margin-top: 6%;
}

.btn a {
    padding: 2rem 6rem 2rem 2rem;
    display: inline-block;
    background: #FFFFFF;
    border: 1px solid #041847;
    color: #041847;
    font-size: max(1vw, 1.8rem);
    position: relative;
}

.btn a::before {
    content: "";
    position: absolute;
    right: 1rem;
    top: calc(50% - 0.5rem);
    vertical-align: middle;
    line-height: 1;
    width: 1rem;
    height: 1rem;
    border: 0.1em solid currentColor;
    border-left: 0;
    border-bottom: 0;
    box-sizing: border-box;
    transform: translateX(-25%) rotate(45deg);
}

.flow {
    padding: 6% 0;
    background: url("images/flow_bg.png") no-repeat center / cover;
}

.flow_inner {
    max-width: calc(1280px + 6%);
    padding: 3%;
    margin: 0 auto;
}

.flow_box {
    padding: 2rem;
    border-radius: 10px;
    background: #FFFFFF;
    margin-bottom: 3%;
}

.flow_box:last-child {
    margin-bottom: 6%;
}

.flow_num {
    width: 15%;
    max-width: 100px;
    color: #49becb;
    font-size: 1.8rem;
    font-weight: 700;
    padding: 1rem;
    border-right: 1px solid #49becb;
    text-align: center;
}

.flow_num span {
    font-size: 3rem;
}

.flow_txt {
    width: 85%;
    padding-left: 1rem;
}

.flow_txt p {
    font-size: max(2vw, 2rem);
    font-weight: 700;
    margin-bottom: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid #49becb;
}

.faq_box {
    padding: 3vw;
    border-top: 10px solid #49becb;
    background: #FFFFFF;
}

.faq_box .sec_ttl span {
    padding-left: 1rem;
}

.green {
    color: #49becb;
}

.black {
    color: #333333 !important;
}

.faq_list {
    width: calc(100% / 3);
    padding: 2vw;
    position: relative;
}

.faq_list::before {
    content: "Q";
    color: #e1fafe;
    font-size: max(4vw, 4rem);
    position: absolute;
    left: 0;
    top: 0;
    z-index: 0;

}

.faq_list p {
    font-size: max(1vw, 1.6rem);
    letter-spacing: 0.06em;
    line-height: 1.6;
    position: relative;
}

.recommend {
    padding: 6% 3%;
    background: url("images/recommend_bg.png") no-repeat center / cover;
}

.recommend .sec_ttl {
    font-size: max(2.4vw, 3rem);
    margin-bottom: 6%;
}

.recommend .sub_ttl {
    font-size: max(1.6vw, 2rem);
    margin-bottom: 8%;
    font-weight: 700;
}

.recommend_inner {
    max-width: 900px;
    margin: 0 auto;
}

.recommend p {
    font-size: max(0.9vw, 1.6rem);
    letter-spacing: 0.06em;
    line-height: 1.6;
    padding-left: 3vw;
}

.greeting {
    padding: 8% 0;
}

.greeting_txt {
    max-width: 58%;
    width: 100%;
}

.greeting_img {
    max-width: 36%;
    width: 100%
}

.greeting_inner {
    max-width: 1280px;
    margin: 0 auto;
}

.name {
    font-size: max(1.2vw, 2rem);
    font-weight: 700;
    margin-bottom: 3%;
    padding-left: 3vw;
}

.greeting p {
    font-size: max(0.9vw, 1.6rem);
    letter-spacing: 0.06em;
    line-height: 1.6;
    padding-left: 3vw;
}

.gallery {
    padding: 6% 0;
    background: #eefcfe;
}

.slider img {
    width: 100%;
    /*スライダー内の画像を横幅100%に*/
    height: auto;
}

/*slickのJSで書かれるタグ内、スライド左右の余白調整*/

.slider .slick-slide {
    margin: 0;
    /*スライド左右の余白調整*/
}

.contact {
    padding: 6% 0;
    background: url("images/contact_bg.png") no-repeat center / cover;
}

.contact .sec_ttl {
    color: #041847;
    opacity: .2;
    line-height: 0.2
}

.f_sub_txt {
    font-size: max(1vw, 1.6rem);
    margin-top: -2%;
    text-align: center;
    margin-bottom: 6%;
}

.contact .sec_ttl span {
    opacity: 1
}

.contact_inner {
    max-width: calc(1280px + 6%);
    padding: 0 3%;
    margin: 0 auto;
    text-align: center;
}

.f_tel {
    font-size: max(2vw, 2rem);
    font-weight: 700;
    color: #041847;
}

.f_web_tel {
    max-width: 900px;
    margin: 0 auto 3%;
    width: 100%;
    gap: 3rem;
    justify-content: center;
    align-items: center;
}

.contact .contact_inner .small {
    font-size: max(0.8vw, 1.4rem);
    letter-spacing: 0.06em;
    line-height: 1.4;
    margin-bottom: 0;
}

.flex-2 {
    max-width: 48%;
    width: 100%;
}

.contact_inner .sub_ttl {
    font-size: max(1.4vw, 2rem);
    margin-bottom: 3%;
    font-weight: 700;
}

.contact_inner p {
    font-size: max(0.9vw, 1.6rem);
    margin-bottom: 6%;
}

.biz-hour {
    display: inline-block;
    border-collapse: collapse;
    /* overflow-x: scroll;で、
  スマホ画面幅に表が入りきらない場合は
  横スクロールしてくれます */
    overflow-x: hidden;
    font-size: max(0.9vw, 1.4rem);
    margin: 0 auto 3%;
}

.biz-hour th {
    /* １番上の線 */
    /* #A28C63っていうのが色の名前なので、ここをお好みで */
    border-top: 1px solid #49becb;
}

.biz-hour th,
.biz-hour td {
    padding: 1.5rem 1.3vw;
    text-align: center;
    /* ２番目以降の線 */
    /* 色はお好みで */
    border-bottom: 1px solid #49becb;
}

/* スマホ時に横スクロールしないよう、横の余白（padding）を20px→10pxに */
@media screen and (max-width: 559px) {

    .biz-hour th,
    .biz-hour td {
        padding: 10px 10px;
    }
}

.biz-hour th {
    font-weight: normal;
}

.biz-hour td {
    color: #49becb;
}

/* 「土」の文字色 */
.biz-hour th.sat {
    color: #3db2da;
}

/* 「日」の文字色 */
.biz-hour th.sun {
    color: #e66a6a;
}

.f_link {
    padding: 4vw 3vw;
    background: #eefcfe;
}

.f_r {
    display: flex;
    flex-direction: column;
    margin-left: auto;
}

.f_icon_tel {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 3%;
}

.f_sns {
    display: flex;
    gap: 3vw;
    padding: 0 3vw;
}

.f_tel {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 3vw;
}

.f_link .gnav {
    justify-content: flex-start;
}

.copy {
    padding: 1rem;
    background: #041847;
    color: #FFFFFF;
    text-align: center;
    font-size: 1.4rem;
}

/*----------------

下層ページ

-----------------*/
.under_bg {
    background: #f8f7f3;
    padding-bottom: 5rem;
}

.under_bg section {
    margin-bottom: 5%;
}

.h2_ttl {
    height: max(34vw, 300px);
    text-align: center;
    display: grid;
    justify-content: center;
    align-items: center;
    color: #FFFFFF;
    font-size: max(3vw, 3rem);
    text-shadow: 1px 1px 3px #333, -1px -1px 3px #333,
        -1px 1px 3px #333, 1px -1px 3px #333,
        0px 1px 3px #333, 0-1px 3px #333,
        -1px 0 3px #333, 1px 0 3px #333;
    font-weight: 600;
    letter-spacing: 0.06em;
    position: relative;
}

h2.imp {
    background: url("images/h2_ttl_bg.png") no-repeat center / cover;
}

h2.doctor {
    background: url("images/h2_doctor_bg.png") no-repeat center / cover;
}

h2.price {
    background: url("images/h2_price_bg.png") no-repeat center / cover;
}

h2.faq {
    background: url("images/h2_faq_bg.png") no-repeat center / cover;
}

.h2_ttl span {
    position: absolute;
    bottom: 8vw;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
}

.h2_ttl .mv_con {
    position: absolute;
    left: 3rem;
    top: 15rem;
    width: 30%;
}

.inner1340 {
    max-width: calc(1340px + 6%);
    margin: 0 auto;
    padding: 4% 2%;
}

h4.sub_ttl {
    font-size: max(2vw, 2rem);
    font-weight: 700;
    margin-bottom: 3%;
}

.inner1340 .wrap {
    margin-bottom: 5%;
    padding-bottom: 5%;
    border-bottom: 1px dashed #49becb;
}

.inner1340 p {
    font-size: max(0.9vw, 1.6rem);
    letter-spacing: 0.04em;
    line-height: 1.6;
}

.border_box {
    border: 1px solid #333333;
    padding: 2vw;
}

.border_box .sub_ttl {
    font-size: max(1.2vw, 1.8rem);
    font-weight: 600;
    margin-bottom: 3%;
}

.list_disc li {
    list-style: disc;
    margin-bottom: 1rem;
    padding-left: 2rem;
    margin-left: 2rem;
    font-size: max(0.9vw, 1.6rem);
}

.mt3 {
    margin-top: 3%;
}

h5 {
    font-size: max(1vw, 1.8rem);
    letter-spacing: 0.06em;
    line-height: 1.6;
    margin-bottom: 1%;
    font-weight: 700;
}

.difference {
    max-width: 1000px;
    margin: 0 auto;
}

.difference_table {
    overflow-x: scroll;
    border-collapse: collapse;
    border: 1px solid #333333;
    font-size: max(1vw, 1.6rem);
	margin: 0 auto;
}

.difference_table thead th {
    font-weight: 700;
    padding: 2rem;
    border-bottom: 1px dashed #333333;
    border-right: 1px dashed;
    background: burlywood;
    text-align:center;
}

.difference_table tbody th {
    background: antiquewhite;
    padding: 2rem;
    border-bottom: 1px dashed #333333;
    font-weight: 700;
}

.difference_table tbody td {
    border: 1px dashed #333333;
    padding: 2rem;
	text-align: center;
}

.bg_w {
    background: #FFFFFF;
}

.doctor_txt {
    max-width: 36%;
    width: 100%;
}

.doctor_img {
    max-width: 64%;
    width: 100%;
}

.doc_name {
    font-size: max(1.6vw, 2rem);
    margin-bottom: 5%;
    font-weight: 700;
}

.doc_name span {
    font-size: max(0.8vw, 1.4rem);
}

.career_ttl {
    font-size: max(1vw, 1.8rem);
    font-weight: 700;
    margin-bottom: 2rem;
    padding: 1rem;
    border-bottom: 1px solid #49becb;
}

dl.career {
    display: flex;
    flex-wrap: wrap;
    font-size: max(0.9vw, 1.6rem);
}

.career dt {
    width: 20%;
    padding: 1rem;
}

.career dd {
    width: 78%;
    padding: 1rem;
}

.career_flex {
    display: flex;
    gap: 3rem;
    flex-wrap: wrap;
    justify-content: flex-start;
}

.flex-3 {
    width: 30%;
}

.career_flex .flex-3 {
    background: #49becb;
    color: #FFFFFF;
    text-align: center;
    padding: 1rem;
    border-radius: 10px;
}

.career_flex .flex-3 p {
    font-size: max(0.9vw, 1.6rem);
    margin-bottom: 1%;
    font-weight: 700;
}

.staff_txt {
    width: 40%;
    padding: 3vw
}

.staff_img {
    width: 60%;
}

.staff_name {
    font-size: max(1vw, 1.8rem);
    margin-bottom: 8%;
    padding-bottom: 1rem;
    font-weight: 700;
    position: relative;
    line-height: 1.8;
}

.staff_name span {
    font-size: max(2vw, 2rem);
}

.staff_name::before {
    content: "";
    width: 5rem;
    height: 1px;
    background: #49becb;
    position: absolute;
    left: 0;
    bottom: 0;
}

.staff_txt p {
    font-size: max(0.9vw, 1.6rem);
    letter-spacing: 0.06em;
    line-height: 1.6;
}

.staff .flex {
    margin-bottom: 3%;
}

.clinic {
    position: relative;
}

.clinic_info {
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    background: rgba(238, 231, 223, .90);
    padding: 1rem 1vw 1rem 3vw;
    font-size: max(1vw, 1.6rem);
    width: max(45%, 400px);
    min-height: 60%;
}

.info {
    display: flex;
    flex-wrap: wrap;
    padding: 3% 0;
    margin-left: 5vw;
}

.info dt {
    width: 20%;
    margin-bottom: 4rem;
}

.info dd {
    width: 75%;
    margin-bottom: 4rem;
}

.clinic_info .sec_ttl {
    position: relative;
    margin-bottom: 6%;
    font-size: max(3vw, 3rem);
}

.clinic_info .sec_ttl::before {
    content: "";
    position: absolute;
    top: 2vw;
    right: 0;
    width: 70%;
    height: 1px;
    background: #49becb;
}

.res p {
    max-width: 1200px;
    margin: 0 auto;
    font-size: max(0.9vw, 1.6rem);
    letter-spacing: 0.06em;
    line-height: 1.6;
}

.shadow {
    box-shadow: 0px 0px 15px -5px #777777;
}

.num {
    font-size: max(0.9vw, 1.6rem);
    letter-spacing: 0.06em;
    line-height: 1.6;
    margin-bottom: 2rem
}
.maker .sub_ttl {
    font-size: max(1.2vw, 2rem);
    font-weight: 700;
    margin-bottom: 3%;
}
.price_list {
    overflow-x: scroll;
}

.price_hyou {
    border-collapse: collapse;
    font-size: max(0.9vw, 1.6rem);
    width: 100%;
}

.price_hyou th,
.price_hyou td {
    padding: 2rem;
    border: 1px solid #333333;
    text-align: center;
    vertical-align: middle;
}

.price_hyou th {
    width: 60%;
}

.price_hyou td {
    width: 20%;
}

.price_hyou thead th {
    background: #b7cde1;
}

.qa-1 {
    max-width: 100%;
    margin-bottom: 2rem;
}

.qa-1 summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
    padding: 1em 2em 1em 3em;
    color: #333333;
    font-weight: 600;
    cursor: pointer;
    font-size: max(1vw, 1.8rem);
    background: #eefcfe;
    border-bottom: 1px solid #333333;
}

.qa-1 summary::before,
.qa-1 p::before {
    position: absolute;
    left: 1em;
    font-weight: 600;
    font-size: 1.3em;
}

.qa-1 summary::before {
    color: #49becb;
    content: "Q";
}

.qa-1 summary::after {
    transform: translateY(-25%) rotate(45deg);
    width: 7px;
    height: 7px;
    margin-left: 10px;
    border-bottom: 3px solid #333333b3;
    border-right: 3px solid #333333b3;
    content: '';
    transition: transform .5s;
}

.qa-1[open] summary::after {
    transform: rotate(225deg);
}

.qa-1 p {
    position: relative;
    transform: translateY(-10px);
    opacity: 0;
    margin: 0;
    padding: 3rem 1rem 3rem 6rem;
    color: #333;
    transition: transform .5s, opacity .5s;
}

.qa-1[open] p {
    transform: none;
    opacity: 1;
}

.qa-1 p::before {
    color: #ff0000;
    line-height: 1.2;
    content: "A";
}

:root {
    --flowchart-size: 34px;
    /* 番号大きさ 変更可 */
    --flowchart-border: 2px;
    /* 縦線太さ 変更可(12px以上) */
}

.flowchart {
    list-style: none !important;
    counter-reset: flownum;
    /* リストアイテムの名称(任意) */
    position: relative;
    margin: 1em 0;
    /* フローチャートと前後要素との距離(任意) */
    padding: 0 !important;
}

.flowchart li {
    position: relative;
    padding: 0 0 0 calc(var(--flowchart-size) + var(--flowchart-border) + 8px + 50px);
    margin-bottom: 3%;
    counter-increment: flownum;
}

.flowchart-content {
    position: relative;
    padding: 2vw;
    background: #FFFFFF;
    border-left: 10px solid #49becb;
}

/* 縦線デザイン */
.flowchart::before {
    content: "";
    display: block;
    position: absolute;
    bottom: 0;
    left: 4.8rem;
    width: var(--flowchart-border);
    height: calc(100% + 6px);
    background: #49becb;
}

/* 番号部位デザイン */
.flowchart li::before {
    content: counter(flownum, decimal-leading-zero);

    display: inline-flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    top: 1.2vw;
    /* 通常は 0, 横に並ぶタイトルとのバランスを見て調整 */
    left: 0;
    z-index: 2;
    width: var(--flowchart-size);
    height: var(--flowchart-size);
    color: #49becb;
    font-size: max(1.6vw, 2.4rem);
    font-weight: 700;
}

/* ドットデザイン */
.flowchart li::after {
    content: "";
    display: block;
    position: absolute;
    top: 2vw;
    /* 破線とのバランスを見て適宜調整 */
    left: calc(var(--flowchart-size) + 8px + 2px);
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #49becb
}

/* 工程タイトル */
.flowchart-title {
    position: relative;
    margin: 0 0 1rem;
    font-weight: bold;
    font-size: max(1vw, 1.8rem);
    line-height: 1.4;
    border-bottom: 1px solid #49becb;
    padding-bottom: 1rem;
}

/* タイトル横破線 デザイン */

/* p要素を利用した場合の調整 */
.flowchart li p {
    margin: 1em 0 !important;
}

.flowchart li p:last-of-type {
    margin-bottom: 0 !important;
}

.flowchart_num li {
    position: relative;
    list-style: none;
    padding-left: 4rem;
    font-size: max(0.9vw, 1.6rem);
    border-bottom: 1px solid #49becb;
    padding-bottom: 2rem;
    padding-top: 0.6vw;
    margin-bottom: 2rem;
    counter-increment: num;
}

.flowchart_num li::before {
    content: counter(num, decimal-leading-zero);
    color: #49becb;
    font-size: max(1.4vw, 2rem);
    position: absolute;
    left: 0;
    top: 0;
}

.flowchart_num li::after {
    content: "";
    display: none;
}

.box_ttl {
    background: #49becb;
    color: #FFFFFF;
    padding: 1.5rem;
    font-size: max(1.2vw, 2rem);
    font-weight: 700;
}

.attention {
    padding: 0;
}

.attention_inner {
    padding: 3%;
}

.maintenance .img {
    width: 30%;
}

.maintenance .txt {
    width: 68%;
}

.maintenance .sub_ttl {
    font-size: max(1.2vw, 2rem);
    font-weight: 700;
    margin-bottom: 3%;
}

.xguide_cont .sub_ttl{
	border-bottom: 1px solid #8acfd9;
}

.xguide_cont h5>span{
	color: #8acfd9;
}

.xguide_cont .flex{
	margin-bottom: 50px;
}

.xguide_cont .img{
	width: 30%;
}

.xguide_cont .txt{
	width: 68%;
}

.mb3{
	margin-bottom: 30px;
}

.mb5{
	margin-bottom: 50px;
}

/*--------------------------------------------------------------------------

PC

--------------------------------------------------------------------------*/
@media only screen and (min-width: 1025px) {
    .sp-only {
        display: none !important;
    }

    .tab-only {
        display: none !important;
    }

}

/*--------------------------------------------------------------------------

tablet

--------------------------------------------------------------------------*/

@media only screen and (min-width: 768px) and (max-width: 1024px) {

    .pc-only {
        display: none !important;
    }

    header {
        height: 100px;
    }

    .icon_tel {
        margin-right: 8rem;
    }

    .mv {
        margin-top: 100px;
    }
}

/*--------------------------------------------------------------------------

sp

--------------------------------------------------------------------------*/
@media screen and (max-width: 767px) {
    .pc-only {
        display: none !important;
    }

    .pc-tab-only {
        display: none !important;
    }

    .tab-only {
        display: none !important;
    }

    header {
        height: 80px;
    }

    .logo {
        width: 40%;
    }

    .mv_con {
        width: 50%;
    }

    .mv {
        margin-top: 80px;
    }

    .catch {
        text-align: left;
    }

    .icon_tel {
        margin-right: 5rem;
        max-width: 60%;
        gap: 3rem;
    }

    .flex_l {
        width: 40%;
    }

    .flex_r {
        width: 100%;
        margin-bottom: 3%;
    }

    .flex .img {
        width: 100%;
        margin-bottom: 3%;
    }

    .flex .txt {
        width: 100%;
    }

    .check_list li {
        width: 100%;
        margin-bottom: 2%;
    }

    .top_bg {
        flex-wrap: wrap;
        justify-content: center;
        text-align: center;
        padding: 3rem
    }

    .top_bg p {
        width: 100%;

    }

    .bg_tel {
        width: 100%;
    }

    .time_txt {
        width: 100%;
    }

    .imp_img {
        width: 100%;
        background: url("images/implant_img.png") no-repeat center / cover;
    }

    .border {
        padding: 1rem;
        width: 90%;
        margin: 0 auto -3rem;
        position: relative;
        border-right: 3px solid #FFFFFF;
    }

    .flow_num {
        width: 20%;
    }

    .flow_txt {
        width: 80%;
        padding-left: 1rem;
    }

    .imp_txt p {
        padding-right: 0;
    }

    .problems {
        padding: 15% 3% 3%;
        background: url("images/sp_problems_bg.png") no-repeat center / cover;
    }

    .point_img {
        max-width: 100%;
    }

    .point_txt {
        max-width: 95%;
        margin: 0 auto;
    }

    .point_num {
        position: absolute;
        left: 3rem;
        top: -3rem;
    }

    .point_txt .sub_ttl {
        padding-left: 10rem;
    }

    .merit_box {
        max-width: 100%;
        margin-bottom: 3%;
    }

    .faq_list {
        width: calc(100% / 1);
        padding: 3vw;
        position: relative;
    }

    .greeting {
        padding: 8% 3%;
    }

    .greeting_txt {
        max-width: 100%;
        width: 100%;
        margin-bottom: 3%;
    }

    .greeting_img {
        max-width: 100%;
    }

    .flex-2 {
        max-width: 100%;
        width: 100%;
        margin-bottom: 3%;
    }

    .biz-hour {
        width: 100%;
        display: table;
    }

    .f_icon_tel {
        padding: 6% 0;
        flex-direction: column-reverse;
        gap: 3rem;
    }

    .f_tel {
        flex-wrap: wrap;
        gap: 3rem;
    }

    .f_tel a {
        width: 100%;
        text-align: center;
    }

    .f_sns {
        display: flex;
        gap: 5rem;
        padding: 0 3vw;
    }

    .f_r .gnav ul {
        flex-wrap: wrap;
    }

    .f_link .gnav ul li {
        width: 40%;
        text-align: justify;
    }

    /*--------------------------
    
    下層ページ
    
--------------------------*/
    .h2_ttl .mv_con {
        position: absolute;
        left: 3rem;
        top: 10rem;
        width: 40%;
    }

    .career dt {
        width: 100%;
        padding: 0rem;
    }

    .career dd {
        width: 100%;
        padding: 1rem;
        margin-bottom: 1rem;
    }

    .career_flex .flex-3 {
        width: 45%;
    }

    .staff_txt {
        width: 100%;
        padding: 3vw;
    }

    .staff_img {
        width: 100%;
    }

    .clinic_info {
        position: absolute;
        top: 50%;
        right: 50%;
        transform: translate(50%, -50%);
        background: rgba(238, 231, 223, .90);
        padding: 5rem 1vw 5rem 3vw;
        font-size: max(1vw, 1.6rem);
        width: 90%;
        min-height: 60%;
    }

    .info dt {
        width: 100%;
        margin-bottom: 1rem;
    }

    .info dd {
        width: 100%;
        margin-bottom: 4rem;
    }
}

/*==================================================
フェードイン
===================================*/
.fadeIn {
    animation-name: fadeInAnime;
    animation-duration: 1s;
    animation-fill-mode: forwards;
    opacity: 0;
}

@keyframes fadeInAnime {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

/* 下から */

.fadeUp {
    animation-name: fadeUpAnime;
    animation-duration: 0.5s;
    animation-fill-mode: forwards;
    opacity: 0;
}

@keyframes fadeUpAnime {
    from {
        opacity: 0;
        transform: translateY(100px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* 上から */

.fadeDown {
    animation-name: fadeDownAnime;
    animation-duration: 0.5s;
    animation-fill-mode: forwards;
    opacity: 0;
}

@keyframes fadeDownAnime {
    from {
        opacity: 0;
        transform: translateY(-100px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* 左から */

.fadeLeft {
    animation-name: fadeLeftAnime;
    animation-duration: 0.5s;
    animation-fill-mode: forwards;
    opacity: 0;
}

@keyframes fadeLeftAnime {
    from {
        opacity: 0;
        transform: translateX(-100px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* 右から */

.fadeRight {
    animation-name: fadeRightAnime;
    animation-duration: 0.5s;
    animation-fill-mode: forwards;
    opacity: 0;
}

@keyframes fadeRightAnime {
    from {
        opacity: 0;
        transform: translateX(100px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* スクロールをしたら出現する要素にはじめに透過0を指定　*/

.fadeInTrigger,
.fadeUpTrigger,
.fadeDownTrigger,
.fadeLeftTrigger,
.fadeRightTrigger {
    opacity: 0;
}