@charset "UTF-8";
/* CSS Document */

@media screen and (max-width:640px) {
	body {
		/*min-width: 0;*/
        overflow-x: hidden;
        padding-top: 16vw;
	}
	.PC {
		display: none !important;
	}
	.SP {
		display: block;
	}

	img.SP,
	span.SP {
		display: inline;
	}
    
    body {
        font-size: 2.0rem;
        line-height: 140%;
        color: #000;
        min-width: 0;
        max-width: 640px;
        margin: auto;
        height: 100%;
    }
    
    a {
        text-decoration: none;
        color: #444;
        -webkit-tap-highlight-color:rgba(0,32,64,0.1);
    }
    a img {
        transition: none;
    }
    /*
    a:hover img {
        opacity: 1;
    }
    */
    
    a.btn {
        font-family: 'Roboto', 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', Meiryo, メイリオ, Osaka, 'MS PGothic', arial, helvetica, sans-serif;
        background: #45b1e3;
        border-radius: 2px;
        font-size: 12px;
        font-weight: bold;
        line-height: 33px;
        height: 33px;
        width: 92%;
        display: block;
        color: #FFF;
        margin: 4vw auto 0;
        text-align: center;
        transition: opacity 0.3s;
    }
    /*
    a.btn:hover {
        text-decoration: none;
        opacity: 1;
    }
    */
    
    #container {
        max-width: 1920px;
        height: auto;
        margin: auto;
        background: #FFF;
    }
    header {
        position: fixed;
        width: 100%;
        max-width: none;
        min-width: 0px;
        height: 58px;
        /*height: 16vw;*/
        /*max-height: 70px;*/
        z-index: 10000;
        transition: all 0s;
        top: 0;
        opacity: 1;
        box-shadow: 0px 0px 4px 0px rgba(0,0,0,0.6); 
        background: #fff;
    }
    header > .wrapper {
        width: 100%;
        height: 100%;
        margin: auto;
        position: relative; 
        padding: 0; 
        display: flex; 
        justify-content: center; 
        align-items: center; 
        box-sizing: border-box; 
        transition: none;
    }

    header h2.brand-logo {
        position: absolute;
        left: 2.5vw;
        bottom: 1.5vw;
        top: 0;
        margin: auto;
        transition: none;
        height: 30px;
        width:auto;
        /*height: 9vw;
        max-height: 30px;*/
        display: inline-block;
    }
    header h2.brand-logo a {
        display: block;
        height: 100%;
        line-height: 0;
    }
    header h2.brand-logo img {
        height: 100%;
        width: auto;
    }
    
    /* mobile-btns-group.SP만 가운데 끼워넣기 */
    header .mobile-btns-group.SP {
        position: absolute; /* 그대로 유지 (Flex item으로 동작) */
        right: auto;
        top: auto;
        bottom: auto;
        margin: auto; /* 핵심: Flexbox 컨테이너 내에서 좌우 여백을 균등하게 배분하여 가운데로 보냄 */
        right: calc(2.5vw + 7vw + 5px); 
        height: auto;
        width: auto;
        display: flex; /* 버튼들 자체는 여전히 flex row로 정렬 */
        flex-direction: row;
        justify-content: center; /* 내부 버튼 중앙 정렬 */
        align-items: center; 
        gap: 5px;
        z-index: 5; /* 로고와 햄버거 메뉴 사이에 오도록 z-index 설정 (필요에 따라) */
    }

    header .contact_sp.SP {
        color: white !important;
        padding: 0 8px !important;
        border-radius: 20px !important;
        font-size: 11.5px !important;
        font-weight: 800 !important;
        line-height: 32px !important;
        height: 32px !important;
        text-align: center !important;
        white-space: nowrap !important;
        vertical-align: middle !important;
        display: inline-flex !important;
        justify-content: center !important;
        align-items: center !important;
        text-shadow: 0 0 1px white;
    }
    
    header #menuBtn {
        margin: auto;
        width: 7vw;
        height: 46%;
        vertical-align: middle;
        background: url(/images/common/sp_menu_btn.png) center center/contain no-repeat;
        position: absolute;
        right: 2.5vw;
        top: 0;
        bottom: 0;
    }
    header #menuBtn.close {
        background: url(/images/common/sp_menu_close.png) center center/80% no-repeat;
    }
    #accordion_menu {
        position: relative;
        z-index: 1000;
        width:100%;
        border-top:1px solid #d0d0d0;
        display: none;
        text-align: left;
        /*height: calc(100vh - 17vw);
        overflow-y: auto;
        padding-bottom: 60px;*/
    }
    #accordion_menu .wrap {
        box-shadow: 0px 6px 6px 0px rgba(0,0,0,0.2); 
    }
    #accordion_menu .link a,
    #accordion_menu h2 {
        display:block;
        width:100%;
        padding:16px 40px 14px 20px;
        font-size:1.6rem;
        line-height:100%;
        border-bottom:1px solid #d0d0d0;
        color: #333;
    }
    #accordion_menu a {
        background: #FFF url(/images/common/sp_menu_link.png) right 15px center no-repeat;
        background-size:8px auto;
    }
    #accordion_menu h2 {
        background: #FFF url(/images/common/sp_menu_aco.png) right 15px center no-repeat;
        background-size:auto 8px;
    }
    #accordion_menu h2.reverse{
        background: #FFF url(/images/common/sp_menu_aco_r.png) right 15px center no-repeat;
        background-size:auto 8px;
    }
    #accordion_menu ul {
        display: none;
    }
    #accordion_menu li a {
        background: #ffefdd url(/images/common/sp_menu_link.png) right 15px center no-repeat;
        background-size:8px auto;
        display:block;
        padding:16px 20px 14px 40px;
        font-size:1.6rem;
        line-height:100%;
        border:1px solid #d0d0d0;
        border-top:none;
        color:#666;
    }
    #accordion_menu li a.blank {
        background: #ffefdd url(/images/common/sp_menu_link_blank.png) right 15px center no-repeat;
        background-size: 16px auto;
    }
    #accordion_menu h2 span,
    #accordion_menu a span {
        font-size: 0.7em;
        margin-left: 1em;
        vertical-align: middle;
    }
    #accordion_menu a:hover{
        text-decoration:none;
    }

    #spMenu_bg {
        position: fixed;
        left:0;
        top:0;
        width: 100%;
        height: 100%;
        background: rgba(0,0,0,0.8);
        z-index:998;
        display: none;
    }

    

    section#contact {
        margin: 14vw auto;
        background: url(/images/common/contact_bg.jpg) right 30% top/auto 100% no-repeat;
        height: auto;
        width: auto;
        text-align: center;
        padding: 7vw 0 4vw;
        margin: 10vw auto!important;
    }
    section#contact h2 {
        font-size: 14px;
        line-height: 120%;
        letter-spacing: -0.5px;
        padding: 0;
    }
    section#contact ul {
        display: block;
        width: auto;
        margin: 5vw auto 0;
        border-collapse: separate;
        border-spacing: 4vw 0;
        padding: 0 4vw;
    }
    section#contact li {
        display: block;
        width: auto;
        background: #fff;
        padding: 7vw 4vw;
        margin-bottom: 4vw
    }
    section#contact li h3 {
        font-size: 11px;
        line-height: 120%;
        font-weight: bold;
        margin-bottom: 12px;
    }
    section#contact li .tel {
        display: inline-block;
        font-size: 20px;
        line-height: 20px;
        font-weight: bold;
        height: 20px;
        color: #65a427;
        padding-left: 22px;
        background: url(/images/common/contact_icon_tel.png) left center/19px auto no-repeat;
    }
    section#contact li p {
        font-size: 11px;
        line-height: 100%;
        margin-top: 14px;
    }
    section#contact li a.contact_btn {
        background: #65a427 url(/images/common/contact_icon_mail.png) left 20px center no-repeat;
        color: #fff;
        font-size:16px;
        line-height: 45px;
        height: 45px;
        width: auto;
        display: block;
        transition: all 0.3s;
    }
    section#contact li a.contact_btn:hover {
        text-decoration: none;
        opacity: 0.7;
    }

    footer {
        background: #3b3b3a;
        padding: 6vw 0;
        color: #fff;
        min-height: 0;
    }
    footer a {
        color: #fff;
    }
    footer .wrapper {
        width: auto;
        margin: auto;
        padding: 0 4vw;
    }
    footer .wrapper::after {
        content: '';
        display: block;
        clear: both;
    }
    footer .logoWrap {
        width: auto;
        float: none;
        margin-top: 0;
    }
    footer .logoWrap h2 img {
        width: 140px;
    }
    footer .logoWrap h3 {
        font-size: 14px;
        line-height: 120%;
        margin: 18px 0 0 0;
    }
    footer .logoWrap p {
        font-size: 10px;
        line-height: 170%;
        width: auto;
        margin: 12px 0 0 0;
    }
    footer nav {
        display: table;
        width: 500px;
        float: left;
        margin-top: 30px;
    }
    footer nav ul {
        display: table-cell;
        border-left: #000000 solid 1px;
        width: 50%;
    }
    footer nav ul li {
        font-size: 14px;
        line-height: 120%;
        padding: 5px 0 20px 40px;
        border-left: #696969 solid 1px;
    }
    footer .companyWrap {
        width: auto;
        float: none;
        text-align: center;
        margin-top: 20px;
    }
    footer .companyWrap .is {
        font-size: 10px;
        line-height: 120%;
        width: 120px;
        text-align: center;
        display: inline-block;
    }
    footer .companyWrap .is img {
        margin-bottom: 3px;
        width: 80px;
    }
    footer .companyWrap .uzen {
        font-size: 10px;
        line-height: 180%;
    }
    footer .companyWrap .uzen img {
        display: block;
        margin: 10px auto;
    }
    footer .companyWrap .copyright {
        font-size: 10px;
        line-height: 120%;
        margin-top: 20px;
        transform-origin: center top;
        transform: scale(0.8);
    }


    #pagetopBtn {
        position: fixed;
        right: -60px;
        bottom: 50px;
        width: 40px;
        height: 40px;
        background: #FFF url(/images/common/pagetop.png) center center/50px auto no-repeat;
        z-index: 10;
        transition: all 0.3s;
        cursor: pointer;
    }
    #pagetopBtn.show {
        right: 5px;
        bottom: 50px;
    }
    /*
    #pagetopBtn.show:hover {
        opacity: 1;
    }
    */




    #fadeAll{
        position:fixed;
        width:100%;
        height:100%;
        background:#FFF;
        z-index:9999;
        top:0;
    }
    #progress {
        width: 100%;
        height:100%;
        padding:0;
        margin:0;
        position:fixed;
        top:0;
        z-index: 20002;
    }
    #progressBar {
        width: 0;
        height: 4px;
        background: #4343c8;
        position:relative;
        top: 54px;
    }
        
    #preload {
        display: none;
    }






    section {
        position: relative;
        max-width: none;
        margin: auto;
    }

    .jumpTarget {
        position: relative;
        top: -40px;
    }



    /*フォントサイズ*/

    section h2 {
        font-family: 'Roboto', 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', Meiryo, メイリオ, Osaka, 'MS PGothic', arial, helvetica, sans-serif;
        font-size: 18px;/*sp_heading*/
        font-weight: bold;
        padding-left: 6vw;
    }
    
    
    
    
} /*640*/

/*@media screen and (max-width:434px) {
    #progressBar {
        top:16vw;
    }
}*/

@media screen and (max-width:480px) {

}/*480*/

@media screen and (max-width:330px) {
    header .contact_sp.SP {
        display:none;
    }
}/*320*/


