@charset 'UTF-8';

/*-------------------

# Universal

------------------- */


/* タブレット・中間幅
----------------------------------------------------------------------*/
@media screen and (min-width: 768px) and (max-width: 1240px) {

    .prop{
        padding: 0 4rem;
    }

    .h_menu ul li a{
        font-size: 1.4rem;
        padding: 1rem 3.4rem 1rem 1.6rem;
    }

    /* アクセス経路 strong を改行 */
    .access_route strong{
        flex-basis: 100%;
    }

    /* キービジュアル */

    /* 記事詳細 */
    .single_article{
        padding-top: 6rem;
    }

    /* アクセス */
    .access_content{
        padding: 8rem 5rem;
    }

    /* お問い合わせ */
    .contact_lead{
        padding: 8rem 5rem;
    }
    .contact_info{
        padding: 7rem 5rem;
    }

    /* フッター */
    .footer_in{
        padding: 6rem 5rem 0;
    }
}

/* Universal
----------------------------------------------------------------------*/
@media screen and (max-width: 767px) {
    html,body {
        width: 100%;
        min-width: 100%;
        overflow-x: hidden;
    }

    body.customize-support header{
        top: 46px;
    }

#splash{
        padding: 0 80px;
    }

    .sp {
        display: block;
    }

    .pc {
        display: none;
    }

    p{
        font-size: 1.4rem;
    }

    .prop{
        box-sizing: border-box;
        padding: 0 20px;
    }

    h3.notfound {
        font-size: 18px;
        width: 94%;
        margin: 30px auto 0 auto;
        text-align: center;
    }

    .form_kikan > p > span:not(.wpcf7-form-control-wrap){
        padding-left: 5px;
        padding-right: 19px;
    }

    .form_kikan > p > span.wpcf7-form-control-wrap[data-name="date-774"]{
        width: calc(100% - (38px + 1em));
    }

    .form_kikan > p > span.wpcf7-form-control-wrap[data-name="date-775"]{
        width: 100%;
    }

    form .submit_btn > p{
        padding-left: 44px;
    }

    form .submit_btn > p > span{
        margin: 0 5px 0 15px;
    }

    header{
        padding: 0;
        overflow: visible;
    }

    header .header_in{
        display: flex;
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
        width: 100%;
    }

    h2{
        font-size: 2rem;
        margin-top: 20px;
    }
    h2 span{
        font-size: 1.2rem;
    }

    h3{
        font-size: 1.6rem;
    }
    h3:not(:first-child){
        margin-top: 20px;
    }
    #privacy p{
        font-size: 1.3rem;
        line-height: 1.7;
    }
    #privacy p:not(:first-child){
        margin-top: 10px;
    }
    #privacy h1+*,
    #privacy h2+*{
        margin-top: 30px;
    }

    /* ロゴ */
    .h_logo{
        padding: 1.2rem 2.4rem 1.4rem 1.6rem;
        border-radius: 0 0 30px 0;
    }
    .h_logo a img{
        width: 14rem;
    }

    /* ハンバーガーボタン（2本線） */
    .hamburger{
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 0.7rem;
        width: 7.2rem;
        height: 4.8rem;
        padding: 1.2rem 2.4rem;
        margin-right: 0;
        background: rgba(255,255,255,0.85);
        backdrop-filter: blur(6px);
        border: none;
        border-radius: 50px 0 0 50px;
        cursor: pointer;
        z-index: 1001;
        flex-shrink: 0;
    }
    .hamburger span{
        display: block;
        width: 100%;
        height: 2px;
        background: #8F5A32;
        border-radius: 2px;
        transition: transform 0.3s ease, opacity 0.3s ease;
        transform-origin: center;
    }
    .hamburger.is-open span:nth-child(1){
        transform: translateY(calc(0.7rem / 2 + 1px)) rotate(45deg);
    }
    .hamburger.is-open span:nth-child(2){
        transform: translateY(calc(-0.7rem / 2 - 1px)) rotate(-45deg);
    }

    /* モバイルナビ */
    .h_menu{
        position: fixed;
        top: 0;
        right: -100%;
        bottom: auto;
        left: auto;
        transform: none;
        width: 80%;
        max-width: 32rem;
        height: 100dvh;
        background: #fff;
        box-shadow: -4px 0 20px rgba(0,0,0,0.12);
        z-index: 1000;
        transition: right 0.35s ease;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    .h_menu.is-open{
        right: 0;
    }
    .h_menu ul{
        flex-direction: column;
        align-items: flex-start;
        gap: 0;
        height: auto;
        margin: 0;
        padding: 2rem 3rem;
        background: none;
        border-radius: 0;
        width: 100%;
    }
    .h_menu ul li{
        width: 100%;
        border-bottom: 1px solid #f0f0f0;
    }
    .h_menu ul li:first-child{
        border-top: 1px solid #f0f0f0;
    }
    .h_menu ul li a{
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        gap: 0;
        padding: 1.8rem 0;
        font-size: 1.7rem;
        color: #333;
        width: 100%;
        text-align: left;
        box-shadow: none;
        background: none;
        border-radius: 0;
    }
    .h_menu ul li a .nav_icon{
        margin-right: 2rem;
        color: #f39800;
    }
    .h_menu ul li a span{
        display: block;
        font-size: 1.1rem;
        color: #aaa;
        letter-spacing: .1em;
        margin-top: 0;
    }

    /* ハンバーガーメニュー：ホバーアニメーション無効 */
    .h_menu ul li a:hover{
        color: inherit;
        box-shadow: none;
        background: none;
    }
    .h_menu ul li a:hover span{
        color: #aaa;
    }

    /* オーバーレイ */
    .nav_overlay{
        display: none;
        position: fixed;
        inset: 0;
        background: rgba(0,0,0,0.4);
        z-index: 5;
    }
    .nav_overlay.is-open{
        display: block;
    }


    /* キービジュアル */
    #keyvisual{
        height: 100svh;
    }
    .key_in{
        height: 100%;
    }
    .slideshow{
        aspect-ratio: unset;
        height: 100%;
        min-height: unset;
    }
    .catch{
        height: 200%;
        top: calc(50% - 1rem);
    }
    .scroll_indicator{
        bottom: 2.5rem;
        left: 2.5rem;
    }

    /* お知らせ */
    #news_list{
        padding-top: 5rem;
        padding-bottom: 5rem;
    }
    #news_list .prop{
        padding: 0 2.8rem;
    }
    #news_list ul{
        margin-top: 2.4rem;
    }
    #news_list ul li a{
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 0.4rem;
        padding: 2rem 0;
        font-size: 1.5rem;
    }
    #news_list ul li a::after{
        display: none;
    }
    .news_date{
        font-size: 1.2rem;
        margin: 0;
    }
    .section_label{
        font-size: 1.1rem;
    }
    h2.section_heading{
        font-size: 2.4rem;
    }

    /* コンタクト */
    #contact p{
        font-size: 1.5rem;
    }
    /* コンタクト SP */
    .contact_inner{
        flex-direction: column;
        min-height: auto;
        width: 100%;
        box-sizing: border-box;
    }
    .contact_lead{
        flex: none;
        width: 100%;
        box-sizing: border-box;
        padding: 5rem 3rem 4rem;
    }
    .contact_en{
        margin-bottom: 0.8rem;
    }
    #contact p.contact_en{
        font-size: 1.1rem;
    }
    .contact_ja{
        font-size: 2.4rem;
        margin-bottom: 2rem;
    }
    .contact_desc{
        font-size: 1.5rem;
    }
    #about_intro{
        padding: 6rem 0;
    }
    .about_intro_body{
        margin-top: 4rem;
    }
    .about_intro_body p{
        font-size: 1.6rem;
        line-height: 2.4;
    }
    .contact_info{
        width: 100%;
        box-sizing: border-box;
        padding: 3.5rem 3rem 4rem;
    }
    .contact_info li{
        padding: 2.2rem 0;
        gap: 2rem;
    }
    .contact_label{
        font-size: 1.4rem;
    }
    .contact_value{
        font-size: 1.8rem;
    }

    /* アクセス */
    #access .prop{
        padding: 0 2rem;
    }

    .archive_link{
        font-size: 1.4rem;
        padding: 8px 10px;
        margin-top: 30px;
        max-width: 200px;
    }

    article {
        width: 100%;
    }

    article h1{
        font-size: 2.4rem;
        margin-top: 30px;
    }

    .single_hero{
        padding: 10rem 0 5rem;
    }
    .single_hero_in{
        max-width: 100%;
        padding: 0 2rem;
    }
    .single_hero_title{
        font-size: 2.2rem;
    }
    .single_article{
        padding-top: 4rem;
        padding-bottom: 6rem;
    }
    .single_footer{
        margin-top: 4rem;
    }
    .single_article .edit-area{
        font-size: 1.5rem;
    }
    .single_article .edit-area h2{
        font-size: 1.8rem;
        margin: 3.6rem 0 1.6rem;
    }
    .single_article .edit-area h3{
        font-size: 1.6rem;
    }

    /* アクセス SP：縦積み */
    #top #access{
        margin-top: 0;
    }
    .access_map_wrap{
        flex-direction: column;
        min-height: auto;
    }
    .access_map_wrap .g_map{
        flex: none;
        position: relative;
        width: 100%;
        height: 55vw;
        min-height: 24rem;
        order: 2;
    }
    .access_content{
        padding: 4rem 2.8rem 4.5rem;
        order: 1;
    }
    .access_content::before{
        font-size: 7rem;
    }
    .access_label{
        margin-bottom: 0.8rem;
    }
    .access_info_list li{
        padding: 2rem 0;
    }
    .access_content h2{
        font-size: 2.4rem;
        margin-bottom: 2.8rem;
        text-align: left;
    }
    .access_type{
        width: 5rem;
        font-size: 0.9rem;
        margin-right: 1.6rem;
    }
    .access_route{
        font-size: 1.5rem;
        flex-wrap: wrap;
    }
    .access_route strong{
        flex-basis: 100%;
    }

    footer {
        height: auto;
        margin-top: 4.5rem;
        padding: 0;
    }
    body#top footer{
        margin-top: 0;
    }

    .footer_in {
        padding: 4rem 2.8rem 0;
    }

    /* スマホ：ロゴ上、リンク下に縦積み */
    footer ul {
        flex-direction: column;
        align-items: flex-start;
        padding-bottom: 1.6rem;
        gap: 0;
    }

    .f_logo img {
        width: 18rem;
    }

    .f_logo {
        padding-bottom: 2rem;
    }

    footer ul li:nth-child(2) {
        margin-left: 0;
        margin-top: 2.2rem;
    }

    footer ul li:not(.f_logo) {
        border-left: none;
        border-top: 1px solid rgba(255, 255, 255, 0.3);
        padding-left: 0;
        padding-top: 1.8rem;
        margin-left: 0;
        margin-top: 1.8rem;
        width: 100%;
    }

    footer ul li a {
        font-size: 1.7rem;
        font-weight: 500;
    }

    footer p {
        width: 100%;
        font-size: 1.5rem;
        line-height: 2.0;
        padding: 3rem 0 3.8rem;
        letter-spacing: .06em;
    }

    footer p.cr {
        width: calc(100% + 5.6rem);
        margin-left: -2.8rem;
        padding: 1.8rem 2.8rem;
        font-size: 1.3rem;
        margin-top: 0;
    }

    #page-top {
        display: none;
        font-size: 12px;
        position: fixed;
        z-index: 10;
        right: 15px;
        bottom: 0;
        margin-bottom: 15px;
    }

    #page-top a {
        display: block;
        -webkit-box-sizing: border-box;
           -moz-box-sizing: border-box;
                box-sizing: border-box;
        width: 80px;
        height: 80px;
        padding: 24px 0;
        text-align: center;
        text-decoration: none;
        opacity: .8;
        color: #fff;
        border: solid 1px #fff;
        border-radius: 5px;
        border-radius: 40px;
        background: #00928f;
    }

    #page-top a:hover {
        text-decoration: none;
    }

    .archive_news .news_list{
        margin-top: 2rem;
    }
    .archive_news .news_list li a{
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 0.4rem;
        padding: 2rem 0;
        font-size: 1.5rem;
    }
    .archive_news .news_list li a::after{
        display: none;
    }
    .archive_news .news_list li a .article-date{
        font-size: 1.2rem;
        margin: 0;
        padding: 0;
    }
    .archive_news .news_list li a .article-title{
        font-size: 1.5rem;
    }
    h3.news_title{
        margin-top: 0;
        font-size: 1.5rem;
    }

    /* アクセス交通案内 SP */
    #top #access .map_con{
        flex-direction: column;
        gap: 3rem;
    }
    #top #access .map_con .g_map{
        height: 55vw;
    }
    .access_info_list li{
        font-size: 1.5rem;
    }

    /* 法人概要 SP */
    .about_hero{
        padding: 10rem 2rem 4rem;
    }
    .about_hero_ja{
        font-size: 2.6rem;
    }
    .about_body{
        padding-top: 4rem;
        padding-bottom: 6rem;
    }
    .about_row{
        flex-direction: column;
        gap: 0.8rem;
        padding: 2.4rem 0;
    }
    .about_dl dt{
        width: auto;
        font-size: 1.2rem;
    }
    .about_dl dd{
        font-size: 1.6rem;
    }

    /* コンタクト SP */
    .contact_info{
        width: 100%;
    }
    .contact_value{
        font-size: 1.7rem;
    }
}

@media screen and (max-width: 782px) {
    html #wpadminbar{
        position: fixed;
    }
}
