@charset "UTF-8";

html {
  scroll-behavior: smooth;
}

body{
    font-family: "Noto Serif JP", serif;
    background-color: #000;
    color: #fff;
}

/*アニメーション*/
.reveal{
    opacity: 0;
    transform: translateY(30px) scale(.5);
    transition: all .6s ease-out;
}

.reveal.is-visible{
    opacity: 1;
    transform: translateY(0) scale(1);
}

.reveal-text{
    opacity: 0;
    transition: all .6s ease;
}

.reveal-text.is-visible{
    opacity: 1;
}

.card-reveal {
  /* 初期状態（非表示・下にずらす） */
  opacity: 0;
  transform: translateY(120px) scale(.5);
  transition: all .6s ease-out;
}

.card-reveal.is-visible {
  opacity: 1;
  transform: translateY(0) scale(1);
}

/*ハンバーガーアイコン*/
.hamburger{
    position: fixed;
    top: 15px;
    right: 15px;
    width: 35px;
    height: 30px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    z-index: 1001;
}

.hamburger span{
    display: block;
    height: 4px;
    background-color: #fff;
    border-radius: 2px;
    transition: all .4s ease;
}

/*メニュー開時の「×」状態*/
.hamburger.is-active span:nth-of-type(1){
    transform: translateY(13px) rotate(45deg);
}

.hamburger.is-active span:nth-of-type(2){
    opacity: 0;
}

.hamburger.is-active span:nth-of-type(3){
    transform: translateY(-13px) rotate(-45deg);
}

/*ナビゲーション*/
.nav-menu{
    position: fixed;
    top: 0;
    right: -250px;/*初期状態は画面外*/
    width: 250px;
    height: 100%;
    background-color: #000;
    transition: all .3s ease;
    z-index: 1000;
    padding-top: 60px;
}

.nav-menu ul li{
    margin: 20px;
}

.nav-menu ul li a{
    text-decoration: none;
    color: #fff;
    font-size: 1.2em;
}

/*メニューが開いたとき*/
.nav-menu.nav-open{
    right: 0;
}

/*ファーストビュー*/
.first-view{
    height: 100vh;
    min-height: 100dvh;
    display: flex;
    justify-content: center;
    align-items: center;
    padding-bottom: 350px;
}

.logo{
    max-width: 80%;
    opacity: 0;
    transform: scale(.5);
    transition: all 2s ease;
}

.logo.show{
    opacity: 1;
    transform: scale(1);
}

.site-catchphrase{
    margin-top: -450px;
    opacity: 0;
    transition: all 4s ease;
}

.site-catchphrase.show{
    opacity: 1;
}

.site-catchphrase h1,
.site-catchphrase p{
    text-align: center;
    opacity: .7;
}

/*代表紹介 タイトル部分は共通*/
.common-box{
    padding: 50px 0 100px 0;
}

.founder-box{
    background-color: #2D2D2D;
    margin: 200px 0 0 0;
}

.flex-title{
    margin-bottom: 100px;
}

.contents-title h2{
    font-size: 2em;
    color: #E0BC39;
    text-align: center;
    padding-top: 50px;
    margin: 0;
}

.contents-title p{
    font-weight: bold;
    text-align: center;
    margin: 0;
}

.explanation{
    text-align: center;
    font-size: .8em;
    padding-top: 20px;
}

.founder img{
    max-width: 80%;
    margin: auto;
    display: block;
}

.founder-furigana,
.founder-name,
.founder-greeting{
    text-align: center;
    margin: 0;
}

.founder-furigana{
    padding: 50px 0 10px 0;
    font-size: .8em;
}

.founder-name{
    padding: 0 0 50px 0;
    font-size: 1.8em;
}

.founder-greeting{
    max-width: 95%;
    text-align: left;
    margin: auto;
}

.career-etc h4{
    border-left: #fff solid 3px;
    padding: 0 0 0 8px;
    margin: 80px 0 0 20px;
    font-size: 1.5em;
}

.career-etc ul{
    list-style: none;
}

.career-etc ul li{
    font-size: .8em;
    padding: 10px 0;
}

/*パートナーシップ*/
.partnership img{
    max-width: 80%;
    margin: 150px auto 0;
    display: block;
}

.partnership-title{
    text-align: center;
    margin: 0;
    padding: 40px 0 0 0;
    color: #E0BC39;
}

.partnership-furigana,
.partnership-name,
.partnership-greeting{
    text-align: center;
    margin: 0;
}

.partnership-furigana{
    padding: 30px 0 10px 0;
    font-size: .8em;
}

.partnership-name{
    padding: 0 0 50px 0;
    font-size: 1.8em;
}

.partnership-greeting{
    max-width: 95%;
    text-align: left;
    margin: auto;
}

/*サービス紹介*/
.category-title h3{
    font-size: 1.5em;
    text-align: center;
    margin: 0;
}

.category-title p{
    font-size: .8em;
    text-align: center;
    margin: 0;
    padding: 10px 0 50px 0;
}

.category-title hr{
    display: none;
}

.service-box{
    background-color: #2D2D2D;
}

.cards{
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
    max-width: 95%;
    margin: auto;
}

.card{
    background-color: #9A7D09;
    text-align: center;
}

.card span{
    display: block;
    text-align: start;
    font-size: .8em;
    padding: 5px 0 10px 5px;
}

.card img{
    max-width: 45%;
}

.card h4{
    font-size: 1.8em;
    margin: 0 auto;
    padding: 5px 0 20px 0;
}

.card p{
    font-size: .8em;
    max-width: 80%;
    margin: 0 auto;
    padding: 0 0 20px 0;
}

/*お客様の声*/
.customer-title{
    text-align: center;
    font-size: 2em;
    font-weight: bold;
    padding: 30px 0 50px 0;
}

.customer-img img{
    max-width: 80%;
    margin: auto;
    display: block;
    border-radius: 15px;
}

.industry,
.era{
    text-align: center;
}

.customer-voice{
    max-width: 90%;
    margin: auto;
}

.customer-contents hr{
    border: none;
    height: 1px;
    background-color: #E0BC39;
    max-width: 95%;
    margin: 50px auto;
    opacity: .5;
}

/*イベント*/
.event-box{
    background-color: #2D2D2D;
}

.event-wrapper{
    position: relative;
}

.event-img{
    display: flex;
}

.event-img img{
    display: block;
    max-width: 50%;
    opacity: .3;
}

.event-img img:last-child{
    display: none;
}

.event-text{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%); /* 自分のサイズ分ずらす */
    text-align: center;
}

.event-text h3{
    width: max-content;
    font-size: 1.3em;
    margin: 0;
}

.event-text p{
    font-size: .8em;
    margin: 0;
    padding: 20px 0 0 0;
}

/*ニュース*/
.news-child hr{
    max-width: 95%;
    margin: auto;
    opacity: .5;
}

.news-flex{
    display: flex;
    flex-direction: column-reverse;
    padding: 50px 0 0 0;
}

.news-contents{
    max-width: 90%;
    margin: auto;
    padding: 0 0 30px 0;
}

.news-contents p:first-child{
    font-size: 1em;
    font-weight: bold;
    border-left: #fff solid 3px;
    padding: 0 0 0 10px;
}

.news-contents p:last-child{
    font-size: .8em;
}

.news-img img{
    display: block;
    margin: auto;
    max-width: 20%;
    padding: 0 0 30px 0;
}

/*お問い合わせ(後で)*/

/*よくある質問*/
.question-box{
    background-color: #2D2D2D;
}

.accordion {
    max-width: 90%;
    margin: 20px auto;
}

.accordion-btn {
    width: 100%;
    text-align: left;
    padding: 12px 14px;
    background: #000;
    border: none;
    cursor: pointer;
    font-size: 1em;
    margin: 10px 0 0 0;
    color: #fff;
    font-family: "Noto Serif JP", serif;
}

.accordion-content {
    overflow: hidden;
    height: 0;                       /* 明示的に高さを管理 */
    transition: height .25s ease;
    background: #f9f9f9;
    contain: layout;                  /* レイアウト分離で再計算負荷を軽減 */
    will-change: height;              /* 乱用は非推奨だがここでは有効なことが多い */
}

.accordion-inner {
    padding: 10px 14px;              /* 余白は内側に付ける（クリップされる） */
    background-color: #000;
}

/*フッター*/
.flex-footer{
    display: flex;
    align-items: center;
}

.footer-nav,
.footer-logo{
    flex: 1;
}

.footer-nav ul{
    display: flex;
    flex-direction: column;
    padding: 0;
}

.footer-nav ul li{
    list-style: none;
    padding: 3px 0 3px 20px;
}

.footer-nav ul li a{
    color: #fff;
    text-decoration: none;
}

.footer-logo img{
    max-width: 100%;
    margin: auto;
    display: block;
    opacity: .2;
}

.copyright hr{
    max-width: 92%;
    margin: auto;
}

.copyright p{
    text-align: center;
}

/*PC向け(768px以上)*/
@media screen and (min-width:768px) {
    
    .hamburger{
        display: none;
    }

    .nav-menu{
        left: 0;
        width: 100%;
        height: auto;
        padding-top: 0px;
        opacity: .8;
    }

    .nav-menu ul{
        display: flex;
        justify-content: space-around;
    }

    .nav-menu ul li a{
        position: relative;/*疑似要素の基準にする*/
        padding: 5px 8px;
        transition: all .4s ease;
    }

    /*疑似要素で下線を作る*/
    .nav-menu ul li a::after{
        content: "";
        position: absolute;
        left: 0;
        bottom: 0;
        width: 0;
        height: 2px;
        background-color: #E0BC39;
        transition: all .3s ease;
    }

    /*ホバー時に線が伸びる*/
    .nav-menu ul li a:hover::after{
        width: 100%;
    }

    .nav-menu ul li a:hover{
        color: #E0BC39;
    }

    /*ファーストビュー*/
    .first-view{
        padding-bottom: 0px;
    }

    .first-view img{
        max-width: 30%;
    }

    .site-catchphrase{
        margin-top: -250px;
    }

    .site-catchphrase h1,
    .site-catchphrase p{
        text-align: left;
        opacity: .8;
        margin-left: 30px;
        letter-spacing: .1em;
    }

    .site-catchphrase h1{
        font-size: 2.4rem;
    }

    /*代表紹介　タイトル部分は共通*/
    .flex-founder{
        display: flex;
    }

    .founder,
    .career-etc{
        flex: 1;
    }

    .flex-title{
        display: flex;
        align-items: flex-end;
        padding-top: 50px;
    }

    .contents-title,
    .explanation{
        flex: 1;
    }

    .contents-title h2{
        text-align: left;
        padding: 0 0 0 150px;
    }

    .contents-title p{
        text-align: left;
        padding: 0 0 0 150px;
    }

    .explanation p{
        text-align: left;
        margin: 0;
        padding: 0 0 0 150px;
    }

    .founder img{
        max-width: 50%;
    }

    .founder-greeting{
        max-width: 88%;
    }

    .career-etc{
        padding: 0 0 0 10px;
    }

    .career-etc h4{
        margin-left: 150px;
    }

    .career-etc ul{
        padding: 0 0 0 150px;
    }

     .career h4:first-of-type {
        margin-top: 0;
    }

    /*パートナーシップ*/
    .flex-partnership{
        display: flex;
        flex-wrap: wrap;
    }

    .partnership{
        flex: 0 0 50%;
        padding: 80px 0 0 0;
    }

    .partnership img{
        max-width: 50%;
        margin: 0 auto 0;
    }

    .partnership-greeting{
        max-width: 88%;
        margin: auto;
    }

    /*お客様の声*/
    .customer-img img{
        max-width: 75%;
    }

    .customer-container{
        display: flex;
        flex-direction: row-reverse;
        align-items: center;
        justify-content: center;
    }

    .customer-row{
        display: flex;
        flex-direction: row;
    }

    .customer-img,
    .customer-detail{
        flex: 1;
    }

    .customer-detail{
        padding: 0 0 0 50px;
    }

    .industry,
    .era{
        text-align: left;
    }

    .customer-voice{
        max-width: 88%;
        margin: 0;
    }

    .customer-contents hr{
        margin: 100px auto;
    }

    /*サービス紹介*/
    .category-title h3{
        font-size: 2em;
    }

    .category-title p{
        font-size: 1em;
        padding: 10px 0 80px 0;
    }

    .category-title hr{
        display: block;
        max-width: 65%;
        background-color: #E0BC39;
        margin: 0 auto 20px auto;
        border: none;
        height: 1px;
    }


    .cards{
        grid-template-columns: repeat(3, 1fr);
        max-width: 60%;
    }

    .card span{
        padding: 10px 0 20px 10px;
    }

    .card h4{
        letter-spacing: .05em;
    }

    .card p{
        max-width: 60%;
        text-align: start;
    }

    /*イベント*/
    .event-img img{
        max-width: 33%;
    }

    .event-img img:last-child{
        display: block;
    }

    .event-text h3{
        font-size: 2em;
        letter-spacing: .05em;
    }

    .event-text p{
        font-size: 1em;
    }

    /*ニュース*/
    .news-child hr{
        max-width: 80%;
    }

    .news-flex{
        flex-direction: row;
        align-items: center;
    }

    .news-contents,
    .news-img{
        flex: 1;
    }

    .news-contents{
        padding: 0 0 20px 150px;
    }

    /*フッター*/

    .footer-nav ul li{
        padding: 3px 0 3px 70px;
    }

    .footer-nav ul li a{
        opacity: .8;
        transition: all .2s ease;
    }

    .footer-nav ul li a:hover{
        color: #9A7D09;
    }

    .footer-logo img{
        max-width: 50%;
    }

}