@charset "UTF-8";

@media screen and (max-width: 767px) {
    .pc {
        display: none;
    }

    .backgroundImage {
        position: fixed;
        top: 0;
        left: 0;
        height: 100vh;
        width: 100%;
        /* background: #fff; */
        pointer-events: none;
        z-index: 1;
        opacity: 0;
        background-repeat: no-repeat;
        background-position: center top;
        background-size: cover;
        transition: none;
        background-image: url(/img/top_back.png);
    }

    .backgroundImage {
        opacity: 1;
        transition: opacity 2s cubic-bezier(.77, 0, .18, 1);
        will-change: transform;
    }

    .backgroundImage h2 {
        font-size: 20px !important;
        width: 100%;
        text-align: center;
        margin-top: 45vh;
        line-height: 1.6;
    }

    .gLogo {
        z-index: 31;
        margin-top: 10px;
        margin-left: 20px;
        width: 15%;
    }

    .gLogoMark {
        position: relative;
        text-align: center;
        width: 100%;
        max-width: 60px;
        pointer-events: auto !important;
    }

    .gLogoMark img {
        width: 100%;
    }

    .gHeader {
        width: 100%;
        height: 100%;
        box-sizing: border-box;
        /* line-height: 2.5; */
        position: fixed;
        top: 0;
        right: 0;
        /* pointer-events: none; */
        z-index: 12;
    }

    .gHeader a {
        text-decoration: none;
        outline: none;
    }

    .gHeaderInner {
        position: relative;
        z-index: 2;
        display: block;
        width: 100%;
        height: 100%;
    }

    .gHeaderFixed {
        pointer-events: none;
        height: 100%;
        position: relative;
    }

    .gHeaderFixed a {
        pointer-events: auto;
    }

    .gHeaderFixedInner {
        display: block;
        padding: 20px 0;
        /* height: calc(100% - 60px); */
        position: absolute;
        right: 20px;
        bottom: 10px !important;
    }

    .menu-button {
        position: relative;
        margin: 0;
        z-index: 13;
        cursor: pointer;
    }

    .menu-button.close-only {
        position: static;
        top: initial;
        right: initial;
        margin: 0 auto;
        padding: 15px 0;
    }

    .menu-button.close-only a {
        margin: auto;
    }

    .menu-button a {
        position: relative;
        height: 40px;
        width: 40px;
        display: block;
        padding: 0;
        overflow: hidden;
        box-sizing: border-box;
    }

    .menu__bar {
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        margin: auto;
        position: absolute;
        display: block;
        height: 40px;
        width: 1px;
        padding: 0;
        text-indent: -200px;
    }

    .-show .menu__bar {}

    .-show .menu__bar:nth-child(1) {
        transform: rotate(45deg) translate(4px, -9px);
    }

    .-show .menu__bar:nth-child(2) {}

    .-show .menu__bar:nth-child(3) {
        transform: rotate(-45deg) translate(-4px, -9px);
    }

    .menu__bar {
        position: absolute;
        display: block;
        height: 40px;
        width: 1px;
        padding: 0;
        text-indent: -200px;
        transition: initial;
    }

    .menu__bar:nth-child(1) {
        top: 0;
        left: -18px;
    }

    .menu__bar:nth-child(2) {
        top: 0;
        left: 0;
        right: 0;
    }

    .menu__bar:nth-child(3) {
        top: 0;
        left: 18px;
    }

    .menu__bar:before,
    .menu__bar:after {
        position: absolute;
        left: 0;
        top: 0;
        display: block;
        width: 100%;
        height: 100%;
        display: block;
        background: currentColor;
        content: "";
        /*0712*/
        background-color: #fff;
    }

    .black .menu__bar:before,
    .black .menu__bar:after {
        /*0712*/
        background-color: #000 !important;
    }

    .-show .menu__bar:before,
    .-show .menu__bar:after {
        /*0712*/
        background-color: #fff !important;
    }

    .menu__bar:before {
        animation: navigate_animation 4s cubic-bezier(.45, .05, 0, 1) infinite;
        animation-fill-mode: both;
    }

    .menu__bar:nth-child(1):before {
        animation-delay: 1.75s;
    }

    .menu__bar:nth-child(2):before {
        animation-delay: 1.5s;
    }

    .menu__bar:nth-child(3):before {
        animation-delay: 1.25s;
    }

    .menu__bar:after {
        opacity: 0.15;
    }


    .-show .menu__bar:nth-child(1) {
        animation: navigate_close_a 1s cubic-bezier(.45, .05, 0, 1) 1;
    }

    .-show .menu__bar:nth-child(2) {
        animation: navigate_close_b 1s cubic-bezier(.45, .05, 0, 1) 1;
    }

    .-show .menu__bar:nth-child(3) {
        animation: navigate_close_c 1s cubic-bezier(.45, .05, 0, 1) 1;
    }

    .-show .menu__bar:before {
        animation: navigate_close_before 1s cubic-bezier(.45, .05, 0, 1) 1;
    }

    .-show .menu__bar:nth-child(1):before {
        animation-delay: 0.2s;
    }

    .-show .menu__bar:nth-child(2):before {
        animation: navigate_close_before_b 1s cubic-bezier(.45, .05, 0, 1) 1;
        animation-delay: 0.1s;
        animation-fill-mode: forwards;
    }

    .-show .menu__bar:after {
        transition: opacity 0.25s ease;
        opacity: 0;
    }

    .-show .menu__bar:nth-child(3):before {
        animation-delay: 0.0s;
    }

    .gNavigation {
        display: none;
    }

    .gNavigationSP {
        position: absolute;
        top: 8.5vh;
        left: 0px;
        display: block;
        width: 100%;
        height: 100vh;
        margin-left: auto;
        margin-right: auto;
        pointer-events: none;
        opacity: 0;
        z-index: 12;
        transition: opacity 0.5s cubic-bezier(.77, 0, .18, 1);
    }

    .gNavigationSP::-webkit-scrollbar {
        display: none;
    }

    .-show .gNavigationSP {
        opacity: 1;
        pointer-events: auto;
    }


    #navContent {
        /* width: 100%; */
        width: 95%;
        margin-left: auto;
        margin-right: auto;
        /* position: relative; */
    }

    .gNavigationInner {
        box-sizing: border-box;
    }

    .-show+.main-wrapper {
        pointer-events: none;
    }

    .nolink {
        pointer-events: none;
    }

    .gHeader .gNav {
        border-bottom: 1px solid rgba(153, 153, 153, 1);
        padding-bottom: 25px;
    }



    .gOverlay {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100vh;
        background-color: rgba(255, 255, 255, 0);
        transition: background-color 0.5s cubic-bezier(.77, 0, .18, 1);
        z-index: 1;

    }

    .-show .gOverlay {
        /* background-color: rgba(0, 64, 152, 0.8); */
        /* background: #004098;
        background: rgba(0, 64, 152, 1);
        opacity: 0.8;
        filter: alpha(opacity=80) progid:DXImageTransform.Microsoft.Alpha(opacity=80); */
        background-blend-mode: multiply;
        background-image: url(/img/back.png);
        background-position: top left;
        background-repeat: repeat;
        background-size: 100% 100%;

    }

    /* .gHeader .sns {
        margin-top: 30px;
        width: 30%;
        max-width: 180px;
    } */

    .gHeader .snsList {
        line-height: 1;
    }

    .gHeader .snsItem {
        display: block;
    }

    .gHeader .sns .copyright {
        display: none;
    }

    /**/

    .gNavigationInner h1 {
        display: none;
    }

    .snsList {
        width: 100%;
        margin-top: 4vh;
        margin-bottom: 2vh;
    }

    .snsList li {
        margin-right: 5%;
        float: left;
        display: block;
        position: relative;
    }

    .snsList li img {
        width: auto;
        /* height: 100%; */
        max-height: 30px;
    }

    .copyright {
        display: inline-block;
        -ms-writing-mode: tb-rl;
        -webkit-writing-mode: vertical-rl;
        writing-mode: vertical-rl;
        font-size: clamp(6px, 1vw, 9px) !important;
        margin-bottom: -10px;
    }

    /* ---------------- */
    .copyright {
        font-size: clamp(6px, 1vw, 9px) !important;
    }

    .menuText {
        width: 100%;
        text-align: left;
        border-top: solid 1px #fff;
        border-bottom: solid 1px #fff;
        padding-top: 2vh;
        padding-bottom: 2vh;
        /* height: 30vh; */
    }

    .menuText li {
        font-size: 16px !important;
        text-align: left;
        display: block;
        position: relative;
        /* line-height: 2.5; */
        margin-top: 2vh;
        margin-bottom: 2vh;
        letter-spacing: 0.7px;
    }

    /*モーダル下部情報*/
    #fProfile {
        width: 100%;
        padding-top: 3vh;
        text-align: left;
    }

    #fFooterLogo {
        width: 30%;
        line-height: 2.5;
    }

    #fFooterLogo img {
        max-width: 100%;
    }

    #fName {
        font-size: 16px !important;
        line-height: 1.5;
        letter-spacing: 3.6px;
        color: #fff;
    }

    #fAlphabet {
        font-size: 11px !important;
        line-height: 1;
        letter-spacing: 0.3px;
        color: #fff;
        margin-top: 1vh;
        margin-bottom: 2.5vh;
    }

    #fInfoArea {
        margin-top: 3vh;
    }

    #fAddressArea {
        display: flex;
        width: 100%;
        /* justify-content: center; */
        align-items: center;
    }

    #fAddress {
        font-size: 13px !important;
        color: #fff;
        margin-right: 5%;
    }

    #fAddress a {
        color: #fff;
    }

    #fMap {
        font-size: 13px !important;
        color: #fff;
    }

    #fTel {
        font-size: 13px !important;
        letter-spacing: 0.4px;
        width: 100%;
        text-align: left;
        line-height: 3.5;
        color: #fff;
    }

    #fTel a {
        color: #fff;
    }


    #fFooterCopyright {
        font-size: 12px !important;
        text-align: left;
        margin-top: 2%;
        margin-bottom: 20px;
        color: #fff;
    }

    .backgroundImage2 {
        position: absolute;
        top: 0;
        left: 0;
        height: 100vh;
        width: 100%;
        /* background: #fff; */
        pointer-events: none;
        z-index: 1;
        opacity: 0;
        background-repeat: no-repeat;
        background-position: center top;
        background-size: cover;
        transition: none;
        background-image: url(/img/ideas_sp_main.png);
        display: flex;
        justify-content: center;
        align-items: center;
    }

    .backgroundImage2 {
        opacity: 1;
        transition: opacity 2s cubic-bezier(.77, 0, .18, 1);
        will-change: transform;
    }

    .backgroundImage2 h2 {
        font-size: 30px !important;
        line-height: 100.79px;
        letter-spacing: 9px;
    }

    .mainContent {
        width: 100%;
        position: absolute;
        top: 100vh;
        left: 0px;
        text-align: center;
    }

    .contentBlock {
        width: 100%;
        padding-bottom: 15%;
    }

    .contentBlock h3 {
        width: 100%;
        margin-top: 20%;
        font-size: 28px !important;
        line-height: 100.79px;
        letter-spacing: 0.5rem;
        color: #231815;
    }

    .contentBlock2 {
        width: 100%;
        /* height: calc(100vh - 150px); */
    }

    .text1 {
        font-size: 16px !important;
        margin-top: 5%;
        line-height: 2.5;
        letter-spacing: 0.02rem;
        color: #231815;
    }

    .text2 {
        font-size: 50px !important;
        margin-top: 15%;
        letter-spacing: 0.2rem;
        color: #231815;
    }

    .imgContent {
        width: 100%;
        height: 100vh;
        background-image: url(/img/ideas_sp_img2.png);
        background-size: cover;
        background-position: center;
        display: flex;
        justify-content: center;
        align-items: center;
    }

    .imgContent h2 {
        font-size: 30px !important;
        line-height: 50px;
        letter-spacing: 0.5rem;
        color: #FFFFFF;
    }

    .imgContent2 {
        width: 100%;
        height: 100vh;
        background-image: url(/img/ideas_img2.jpg);
        background-size: cover;
        background-position: center;
        display: flex;
        justify-content: center;
        align-items: center;
    }

    .imgContent2 h2 {
        font-size: clamp(22px, 2.5vw, 30px) !important;
        line-height: 50px;
        letter-spacing: 0.5rem;
        color: #FFFFFF;
    }

    .imgContent3 {
        width: 100%;
        /* height: 82vh; */
        height: 100vh;
        background-image: url(/img/ideas_sp_img3.png);
        background-size: cover;
        background-position: center;
        display: block;
        /* text-align: center; */
        padding-top: 18vh;
    }

    .imgContent3 h2 {
        font-size: 25px !important;
        line-height: 50px;
        letter-spacing: 0.5rem;
        color: #FFFFFF;
    }

    .imgContent3 h3 {
        font-size: 25px !important;
        line-height: 50px;
        letter-spacing: 0.5rem;
        color: #FFFFFF;
        margin-top: 40vh;
    }

    .text3 {
        font-size: 16px !important;
        margin-top: 30%;
        line-height: 3.5;
        letter-spacing: 0.02rem;
        color: #231815;
    }

    .text4 {
        font-size: 16px !important;
        margin-top: 10%;
        line-height: 3.5;
        letter-spacing: 0.02rem;
        color: #231815;
        margin-bottom: 40%;
    }

    .text5 {
        font-size: 16px !important;
        margin-top: 7vh;
        line-height: 40px;
        letter-spacing: 0.02rem;
        color: #231815;
    }

    .text6 {
        font-size: 16px !important;
        margin-top: 25%;
        line-height: 40px;
        letter-spacing: 0.02rem;
        color: #231815;
        margin-bottom: 30%;
    }

    .text7 {
        font-size: 16px !important;
        margin-top: 30vh;
        line-height: 40px;
        letter-spacing: 0.02rem;
        color: #231815;
    }

    .imgContent4 {
        width: 100%;
        height: 100vh;
        background-image: url(/img/ideas_sp_img4.png);
        background-size: cover;
        background-position: center;
        display: block;
        padding-top: 30%;
    }

    .imgContent4 h2 {
        font-size: 25px !important;
        line-height: 50px;
        letter-spacing: 0.5rem;
        color: #FFFFFF;
    }

    .imgContent4 h3 {
        font-size: 25px !important;
        line-height: 50px;
        letter-spacing: 0.3rem;
        color: #FFFFFF;
        margin-top: 60%;
    }

    footer {
        width: 90%;
        margin-left: auto;
        margin-right: auto;
    }

    ul#footerMenu {
        width: 100%;
        padding-top: 15%;
        padding-bottom: 15%;
        color: #000;
        text-align: left;
        border-top: solid 1px #231815;
        border-bottom: solid 1px #231815;
    }

    ul#footerMenu li {
        width: 100%;
        font-size: clamp(14px, 1.5vw, 18px) !important;
        line-height: 45px;
        letter-spacing: 0.7px;
        position: relative;
    }

    #profile {
        width: 100%;
        padding-top: 15%;
        text-align: left;
    }

    #name {
        font-size: clamp(12px, 1.5vw, 16px) !important;
        line-height: 4;
        letter-spacing: 3.6px;
        color: #231815;
    }

    #alphabet {
        font-size: clamp(6px, 1vw, 10px) !important;
        line-height: 4.42px;
        letter-spacing: 0.3px;
        color: #231815;
    }

    #infoArea {
        margin-top: 5%;
    }

    #footerLogo {
        width: 15%;
        max-width: 120px;
    }

    #footerLogo img {
        max-width: 100%;
    }

    #addressArea {
        display: flex;
        width: 100%;
        /* justify-content: center; */
        align-items: center;
    }

    #address {
        font-size: clamp(8px, 1vw, 14px) !important;
        margin-right: 3%;
    }

    #gMap {
        font-size: clamp(8px, 1vw, 14px) !important;
        margin-right: 4%;
    }

    .footerSnsIcon {
        height: 20px;
        width: auto;
        margin-right: 1%;
    }

    .footerSnsIcon img {
        height: 100%;
        width: auto;
    }

    #tel {
        font-size: clamp(8px, 1vw, 14px) !important;
        letter-spacing: 0.4px;
        width: 100%;
        text-align: left;
        line-height: 3.5;
    }

    #footerCopyright {
        font-size: clamp(8px, 1vw, 12px) !important;
        text-align: left;
        margin-top: 2%;
        margin-bottom: 20px;
    }

    /*VISION*/
    .backgroundImage3 {
        position: absolute;
        top: 0;
        left: 0;
        height: 100vh;
        width: 100%;
        /* background: #fff; */
        pointer-events: none;
        z-index: 1;
        opacity: 0;
        background-repeat: no-repeat;
        background-position: center top;
        background-size: cover;
        transition: none;
        background-image: url(/img/vision_main.jpg);
        display: flex;
        justify-content: center;
        align-items: center;
    }

    .backgroundImage3 {
        opacity: 1;
        transition: opacity 2s cubic-bezier(.77, 0, .18, 1);
        will-change: transform;
    }

    .backgroundImage3 h2 {
        font-size: 30px !important;
        line-height: 100.79px;
        letter-spacing: 9px;
    }

    .contentBlock3 {
        width: 100%;
        /* height: calc(100vh - 120px); */
    }

    .contentBlock3 h3 {
        width: 100%;
        margin-top: 15%;
        font-size: 28px !important;
        line-height: 120px;
        letter-spacing: 1.5rem;
        color: #231815;
    }

    .visionText1 {
        font-size: 12px !important;
        letter-spacing: 3px;
        color: #231815;
    }

    .visionText2 {
        font-size: 13px !important;
        line-height: 2.5;
        letter-spacing: 0.1rem;
        color: #231815;
        margin-top: 10%;
        margin-bottom: 25%;
    }

    .imgContentVision {
        width: 100%;
        height: 100vh;
        background-image: url(/img/vision_sp_img1.png);
        background-size: cover;
        background-position: right bottom;
        display: flex;
        align-items: center;
    }

    .imgContentVision h2 {
        font-size: 20px !important;
        line-height: 50px;
        letter-spacing: 0.1rem;
        color: #FFFFFF;
        text-align: left;
        margin-left: 10%;
    }

    .contentBlock4 {
        width: 100%;
        /* height: calc(100vh - 120px); */
        padding-top: 30%;
        padding-bottom: 35%;
    }

    .contentBlock4 h3 {
        width: 100%;
        font-size: 20px !important;
        line-height: 33px;
        letter-spacing: 1.8px;
        color: #231815;
    }

    .profileBlock {
        width: 90%;
        margin-left: auto;
        margin-right: auto;
        text-align: left;
    }

    .smallText {
        font-size: 14px !important;
    }

    .careerText {
        font-size: 13px !important;
        line-height: 31px;
        letter-spacing: 1px;
        color: #231815;
        margin-top: 10%;
    }

    .officeText {
        font-size: 13px !important;
        line-height: 23px;
        letter-spacing: 1px;
        color: #231815;
        margin-top: 30%;
    }

    /*Works*/
    .worksContent {
        width: 100%;
        margin-left: auto;
        margin-right: auto;
        z-index: 15 !important;
    }

    .worksContent h2 {
        width: 100%;
        text-align: center;
        line-height: 4;
        letter-spacing: 0.85px;
        color: #231815;
    }

    #worksArea {
        width: 90%;
        margin-left: auto;
        margin-right: auto;
        margin-top: 3%;
    }

    ul#worksImg {
        width: 100%;
        margin-bottom: 10%;
        display: block;
    }

    ul#worksImg li {
        width: calc(calc(100% - 10px) / 2);
        float: left;
        margin-bottom: 10px;
        position: relative;
        display: block;
        line-height: 1;
    }

    ul#worksImg li:nth-child(even) {
        margin-left: 10px;
    }

    /* ul#worksImg li {
        width: 48%;
        margin-left: 1%;
        margin-right: 1%;
        float: left;
        margin-bottom: 10px;
        position: relative;
        display: block;
    } */

    ul#worksImg li img {
        width: 100%;
        height: auto;
        z-index: -10;
    }

    .-show .worksContent {
        position: absolute;
        z-index: -99999 !important;
    }

    ul#worksImg li figcaption.hoverMask {
        color: #fff;
        width: 100%;
        height: 100%;
        margin: 0;
        position: absolute;
        left: 0;
        top: 0;
        background: rgba(255, 255, 255, 0.2);
        opacity: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        /* z-index: 14; */
        z-index: 1;
        font-size: clamp(10px, 1vw, 13px) !important;
    }

    ul#worksImg li:hover figcaption.hoverMask {
        opacity: 1;
        transition: all 0.9s ease;
    }


    .linkBlock2 {
        position: absolute;
        top: 0px;
        left: 0px;
        width: 100%;
        height: 100%;
        display: block;
        z-index: 25;
    }

    /*フッター*/
    #footerNavContent {
        /* width: 100%; */
        width: 100%;
        margin-left: auto;
        margin-right: auto;
        position: relative;
    }

    .footerMenuText {
        width: 80%;
        text-align: left;
        border-top: solid 1px #231815;
        border-bottom: solid 1px #231815;
        padding-top: 2vh;
        padding-bottom: 2vh;
        /* height: 30vh; */
    }

    .footerMenuText li {
        font-size: 16px !important;
        text-align: left;
        display: block;
        position: relative;
        /* line-height: 2.5; */
        margin-top: 2vh;
        margin-bottom: 2vh;
        letter-spacing: 0.7px;
    }

    #blackProfile {
        width: 100%;
        padding-top: 3vh;
        text-align: left;
    }

    #blackFooterLogo {
        width: 30%;
        line-height: 2.5;
    }

    #blackFooterLogo img {
        max-width: 100%;
    }

    #blackName {
        font-size: 16px !important;
        line-height: 1.5;
        letter-spacing: 3.6px;
        color: #231815;
    }

    #blackAlphabet {
        font-size: 11px !important;
        line-height: 1;
        letter-spacing: 0.3px;
        color: #231815;
        margin-top: 1vh;
        margin-bottom: 2.5vh;
    }

    #blackInfoArea {
        margin-top: 3vh;
    }

    #blackAddressArea {
        display: flex;
        width: 100%;
        /* justify-content: center; */
        align-items: center;
    }

    #blackAddress {
        font-size: 13px !important;
        color: #231815;
        margin-right: 5%;
    }

    #blackAddress a {
        color: #231815;
    }

    #blackMap {
        font-size: 13px !important;
        color: #231815;
        position: relative;
        display: block;
    }

    #blackTel {
        font-size: 13px !important;
        letter-spacing: 0.4px;
        width: 100%;
        text-align: left;
        line-height: 3.5;
        color: #231815;
    }

    #blackTel a {
        color: #231815;
    }


    #blackFooterCopyright {
        font-size: 12px !important;
        text-align: left;
        margin-top: 2%;
        margin-bottom: 20px;
        color: #231815;
    }

    .gHeader2 {
        width: 100%;
        /* height: 100%; */
        box-sizing: border-box;
        /* line-height: 2.5; */
        position: fixed;
        top: 0;
        right: 0;
        pointer-events: none;
        z-index: 30;
    }

    .gHeader2 a {
        text-decoration: none;
        outline: none;
    }

    /*WORKS詳細*/
    #worksLeft {
        width: 100%;
        text-align: left;
    }

    #worksRight {
        width: 100%;
    }

    h3.leftTitle {
        font-size: 20px !important;
        letter-spacing: 0.2rem;
        color: #231815;
        margin-bottom: 2%;
    }

    .leftTtext {
        font-size: 13px !important;
        line-height: 1.8;
        letter-spacing: 0.1rem;
        color: #231815;
        margin-bottom: 5%;
    }

    ul#worksImgList {
        width: 100%;
    }

    ul#worksImgList li {
        width: 100%;
        margin-bottom: 5%;
    }

    ul#worksImgList li img {
        width: 100%;
    }

    .pageBack {
        text-align: center;
        font-size: 13px !important;
        line-height: 2;
        letter-spacing: 0.2rem;
        color: #231815;
        display: block;
        text-decoration: none;
        margin-bottom: 15%;
    }

}