@charset "UTF-8";

@media screen and (max-width:1400px){
    /*ヘッダーナビ*/
    .gnav_item a,
    .header_tel_num,
    .header_web_txt{
        font-size:1.2vw;
    }
    .gnav_item_link span::after{
        width:1.1vw;
        height:1.1vw;
    }

    /*メガメニュー*/
    .megaMenu{
        width:100%;
        padding:20px 25px;
    }
    .megaMenu-item1 a,.megaMenu-item2 a{
        font-size:1.6vw;
    }

    /*詳細情報*/
    .detail_tel_num,
    .detail_web_txt{
        font-size:1.2vw;
    }
    .detail_web_block{
        padding:.5vw 2vw;
    }
}
@media screen and (max-width:1050px){
    .no-scroll{
        overflow:hidden;
        height:100%;
    }
    /*ハンバーガーメニュー表示（上からスライド）*/
    .header_gnav{
        display:none;
    }
    #header-hamburger{
        display:block;
        background:#fff;
        cursor:pointer;
        width:60px;
        aspect-ratio: 1/1;
        margin-left:auto;
        position:relative;
        z-index: 11;
    }
    #header-hamburger::before{
        content:"MENU";
        position:absolute;
        left:50%;
        bottom:4px;
        transform:translateX(-50%);
        font-size:.6em;
        color:#48a48f;
        white-space: nowrap;
    }
    #header-hamburger.active::before {
        content: "CLOSE";
    }
    #header-hamburger span{
        display:inline-block;
        background:#48a48f;
        width:50%;
        height:2px;
        transition:all .3s ease;
        position:absolute;
        left:50%;
        transform:translateX(-50%);
    }
    #header-hamburger span:nth-of-type(1){
        top:30%;
    }
    #header-hamburger span:nth-of-type(2){
        top:45%;
    }
    #header-hamburger.active span:nth-of-type(1){
        top:45%;
        left:25%;
        transform:rotate(-45deg);
        width:50%;
    }
    #header-hamburger.active span:nth-of-type(2){
        top:45%;
        left:25%;
        transform:rotate(45deg);
        width:50%;
    }

    /*ハンバーガーウィンドウ*/
    #hamburger-window{
        display:block;
        transition:all .4s ease;
        text-align: center;
        position:fixed;
        top:0;
        left:0;
        z-index:10;
        width:100%;
        height:0%;
        background:#fff;
        padding:30px 0;
        opacity:0;
        visibility: hidden;
        overflow: hidden;
        border-top:1px solid #eee;
        overflow-y: scroll;
    }
    #hamburger-window.open {
        opacity: 1;
        visibility: visible;
        height: 100%;
    }
    /*リスト*/
    .hamburger-window_nav_list{
        display:flex;
        flex-direction: column;
        background:rgb(238,238,238,.5);
        padding:80px 40px;
        border-radius: 50px;
        margin:30px 40px 80px 40px;
    }
    .hamburger-window_nav_item{
        text-align:left;
        border-top:1px solid #48a48f;
        border-bottom:1px solid #48a48f;
        margin-bottom:-1px;
        display:flex;
        flex-direction: column;
        padding:20px 0;
    }
    .hamburger-window_nav_item a{
        color:#48a48f;
        font-size:1.2em;
        font-weight:bold;
    }

    .hamburger-window_option{
        margin-top:15px;
    }
    .hamburger-window_option_item a{
        color:#686868;
        font-size:1em;
        font-weight:normal;
        margin-left:1.5em;
    }
    .hamburger-window_option_item a span::before{
        content:"";
        position:static;
        top:auto;
        left:auto;
        display:inline-block;
        width:7px;
        height:0;
        border-top:2px solid #686868;
        border-right:none;
        transform:translateY(-4px);
        margin-right:12px;
    }
    
    .hamburger-window_sns_list{
        display:flex;
        column-gap: 20px;
        margin-left:2em;
        padding:0 40px;
    }
    .hamburger-window_sns_item{
        width:35px;
        aspect-ratio: 1/1;
    }
    .hamburger-window_sns_item img{
        width:100%;
        object-fit: cover;
    }

    /*ヘッダー*/
    .header_logo{
        width:auto;
        max-width:230px;
    }
    .header_tel_block img,
    .header_web_block img{
        width:auto;
    }
    .header_tel_num, .header_web_txt{
        font-size:2vw;
    }

    /*当院について*/
    .about_inner{
        flex-direction: column-reverse;
        justify-content: center;
        align-items: center;
        row-gap: 40px;
    }
    .about_left{
        width:100%;
    }
    .about_img{
        width:100%;
        max-width:100%;
    }
    .btnarea{
        flex-direction: row;
        align-items: center;
        justify-content: center;
    }

    /*診療内容*/
    .consualtation_pc{
        display:none;
    }
    .consualtation_sp{
        display:block;
        background:#eeeeee;
        position:relative;
    }
    .consualtation_inner{
        flex-direction: column;
        row-gap:60px;
        justify-content: center;
        background-image:url(../images/bg_logo.png);
        background-position: right bottom;
        background-repeat:no-repeat;
        background-size: 300px;
        background-color:rgba(238,238,238,0.9);
        background-blend-mode: lighten;
        padding:100px 40px;
    }
    .consualtation_images2{
        width:100%;
    }
    .consualtation_images2 img{
        width:100%;
        border-radius:10px;
    }
    .consualtation_block1{
        margin-bottom:50px;
    }
    .consualtation_list,
    .consualtation_list02{
        margin-top:40px;
        margin-left:2em;
    }

    /*詳細情報*/
    .detail_inner{
        max-width:100%;
        flex-direction: column-reverse;
        justify-content: center;
        align-items: center;
    }
    .detail_map{
        flex: none;
        width:100%;
    }
    .detail_text{
        flex:none;
        width:100%;
        align-items: center;
    }
    .detail_tel_block img{
        width:100%;
        max-width:30px;
    }
    .detail_tel_num, .detail_web_txt{
        font-size:2.2vw;
    }
    .time_table2{
        width:70%;
    }
    .time_table_option{
        width:100%;
    }
    .time_table2 th:first-child{
        width:8em;
    }
    .time_table2 th:not(:first-child){
        width:34px;
        white-space: nowrap;
    }
    .time_table2 th{
        padding:8px;
    }
}

@media screen and (max-width:768px){
    /*ページ下部予約ボタン固定*/

    /*メインビジュアル縦並び*/
    .bl_slider_column{
        display:flex;
        flex-direction: column-reverse;
    }

    .swiper-slide img{
        height:calc(100vh / 2);
        width:100%;
        object-fit: cover;
        object-position: bottom center;
    }
    .consual_time{
        display:none;
    }
    .header_tel,
    .header_web,
    .mv_web{
        display:none;
    }
    .mv_textarea{
        bottom:10%;
    }
    .mv_text01{
        font-size:8vw;
    }
    .mv_text02{
        font-size:4vw;
    }

    /*予約ボタン・診療時間リンク*/
    .sp_nav_fixed{
        display:block;
        position:fixed;
        bottom:0;
        left:0;
        right:0;
        z-index:9;
        width: 100%;
    }
    .sp_nav_tel img{
        width:100%;
        max-width:24px;
    }
    .sp_nav_list{
        display:flex;
        width:100%;
    }
    .sp_nav_list li{
        width:33.33%;
    }
    .sp_nav_web a,
    .sp_nav_tel a,
    .sp_nav_time a{
        display:flex;
        align-items: center;
        justify-content: center;
        height:60px;
        column-gap: 5px;
    }
    .sp_nav_web{
        background:#48a48f;
    }
    .sp_nav_web a{
        color:#fff;
    }
    .sp_nav_tel{
        border:1px solid #48a48f;
        background:#fff;
    }
    .sp_nav_tel a{
        color:#48a48f;
    }
    .sp_nav_time{
        background:#85caba;
    }
    .sp_nav_time a{
        color:#fff;
    }

    /*当院について*/
    .about,
    .consualtation_inner,
    .clinic_map{
        padding:70px 40px;
    }
    .consualtation_list,
    .consualtation_list02{
        margin-top:20px;
    }
    .map_canvas{
        height:400px;
    }
    .bunner{
        margin-top:70px;
    }

    /*詳細情報*/
    .detail_tel_num, .detail_web_txt{
        font-size:3.2vw;
    }
    .detail_consual_item{
        flex-direction: column;
        column-gap: 0;
    }
    .time_table2{
        width:100%;
    }

    /*フッター*/
    .footer{
        padding:40px 40px 80px 40px;
    }
    .footer_inner{
        gap:50px;
    }
    .footer_nav{
        width:100%;
    }
    .footer_nav_list{
        flex-direction: column;
        row-gap: 10px;
    }
}

@media screen and (max-width:600px){
    /*ファーストアニメーション*/
    .loading_text{
        font-size:2em;
    }
    .loading_logo{
        width:200px;
    }

    /*当院について*/
    .about,
    .consualtation_inner,
    .clinic_map{
        padding:40px 20px;
    }
    .about_text{
        font-size:1.15em;
        margin-bottom:20px;
    }
    .btnarea{
        flex-direction: column;
        margin-top:40px;
        gap:20px;
    }
    /*診療内容*/
    .consualtation_ttl{
        flex-direction: column;
        align-items: flex-start;
        row-gap: 50px;
    }
    /*バナー*/
    .bunner_inner{
        flex-direction: column;
        gap:30px;
    }
    /*詳細情報*/
    .detail{
        padding:40px 20px;
    }
    .detail_book{
        flex-direction: column;
        row-gap: 30px;
    }
    .detail_tel_num, .detail_web_txt{
        font-size:1.5em;
    }
    .detail_web_block{
        padding:.5vw 4vw;
    }
    .detail_sns{
        column-gap: 40px;
    }
    .time_table_option{
        table-layout: fixed;
        width:100%;
    }
    .time_table2 th:not(:first-child) {
        width: auto;
    }
    .time_table2 th{
        font-size: .9em;
        padding: 6px 4px;
    }
    .small{
        font-size:.6em !important;
    }
    .time_table2 th:first-child {
        font-size: 95%;
        padding-left: 6px;
        padding-right: 6px;
    }
}

@media screen and (max-width:400px){
    /*テキストやボタンサイズ調整*/
    /*ファーストアニメーション*/
    .loading_text{
        font-size:1.5em;
    }
    /*ハンバーガーウィンドウ*/
    .hamburger-window_nav_list{
        margin:30px 20px 80px 20px;
    }
    .hamburger-window_sns_list{
        margin-left:1em;
        padding:0 20px;
    }

    .about_text{
        font-size:1em;
    }
    .about_btn,
    .policy_btn,
    .consualtation_btn{
        max-width:200px;
    }
    .about_btn_block,
    .policy_btn_block,
    .consualtation_btn_block{
        padding:10px 15px;
    }
    .about_btn_txt,
    .policy_btn_txt,
    .consualtation_btn_txt{
        font-size:1em;
    }

    /*診療内容*/
    .consualtation_ttl h2{
        font-size:1.9em;
    }
    .consualtation_ttl h2 span{
        font-size:.4em;
    }
    .consualtation_item a::before,
    .consualtation_item02 a::before{
        width:20px;
        height:21px;
    }
    .consualtation_item a,
    .consualtation_item02 a{
        font-size:1.2em;
    }
    .consualtation_block1{
        margin-bottom:0;
    }

    .detail_inner{
        gap:50px;
    }
    .detail_text{
        gap:30px;
    }

    /*詳細情報*/
    .detail_tel_num, .detail_web_txt{
        font-size:5.5vw;
    }
    .detail_consual_item{
        font-size:1em;
    }
    .consual_time_text{
        font-size:.8em;
    }
    .br{
        display:block;
    }
    .detail_add{
        font-size:.9em;
        line-height: 1.5;
    }

    /*フッター*/
    .footer{
        padding:40px 20px 80px 20px;
    }
    .footer_inner{
        gap:30px;
    }
    .footer_nav_item{
        font-size:.9em;
    }
    .footer_small{
        font-size:.6em;
    }
    .footer_logo img{
        max-width:250px;
    }
    .privacy{
        font-size:.9em;
    }
}