/*******************************************************************/
/****************** tablet --> 768px ～ 1024px *********************/
/******************* sp --> ～ 767px *******************************/
/*******************************************************************/
/******* remの基準値 *******/
@media screen and (max-width: 1024px) {     /* タブレット */ 
    html { font-size: calc(100vw / 102.4 ); } 
}
@media screen and (max-width: 767px) {      /* スマホ */
    html { font-size: calc(100vw / 76.7 ); } 
}
/*******************************/
/**********全ページ共通**********/
/*******************************/
.pc-only { display: none; }
.sp-only.inline { display: inline; }
.sp-only.block { display: block; }
/*** モーダル ***/
/* 閉じるボタン */
.btn_close {
    top: 1rem;
    left: 87.5vw;
    width: 5vw;
}
/******* メニュー *******/
/* ヘッダーメニュー */
.header .nav {
    display: flex;
    align-items: center;
    justify-items: center;
    position: fixed;
    top: -100%;    /* 画面外へ */
    width: 100vw;
    transition: 0.7s linear;
}
/*** バーガーメニュー ***/
.header .mobile-menu-btn-wrapper {
    display: block;
    position: fixed;
    top: 10vh ;
    right: 5rem;
    z-index: 100;
}
/* バーガーメニューボタン */
.header .mobile-menu-btn {
    width: 3.5rem;
    height: 2.2rem;
}
/* バーガーメニューボタンを作る */
.header .mobile-menu-btn span::before, 
.header .mobile-menu-btn span::after {
    content: '';
    display: block;
    height: 0.5rem;
    width: 3.5rem;
    border-radius: 3.5px;
    background: #EB5C01;
    transition: 0.5s;
    position: absolute; 
}
/* 背景色がオレンジ部を通過時-->色を変更 */
.mobile-menu-btn.change_color span::before,
.mobile-menu-btn.change_color span::after {
  background-color: #F1EFDF;
}
/* スマホ用 */
.header .mobile-menu-btn span::before { top: 0; }
.header .mobile-menu-btn span::after { bottom: 0; }
/* バーガーメニューボタンが押されたら✕に --> 変更なし */
/* バーガーメニューボタンが押されたらメニューを表示 --> 変更なし */

/****** フッター ******/
.footter {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    width: 100%;
    min-width: 100vw;
    min-height: 100px;
    padding: 2.0rem 0;
}
/*** フッターナビ ***/
.footter .nav {
    min-width: 100%;
    width: 100%;
    font-size: 1.6rem;
}
.footter .nav a {
    font-size: 1.6rem;
}
.footter .nav li::after { 
    font-size: 1.6rem; 
    margin: 0 1rem;
}
/* 特商法、プライバシーポリシー */
.footter .footter-law {
    width: 100%; 
    margin: auto;
    justify-content: center; 
}
.footter .footter-law li::after {
    content: '|';
    font-size: 1.2rem;
    margin-left: 5px;
    margin-right: 5px;
}
.footter .footter-law a {
    font-size: 1.2rem;
}
/* コピーライト */
.footter .copyright {
    margin: 0;
    font-size: 1.2rem;
}
/* ヘッダー／フッター共通 */
.nav a { position: relative ; }
.nav a::after { /* 下線 */
    content: '';
    position: absolute;
    left: 0;
    bottom: 1px;
    width: 100%;
    height: 1px;
    transform: scale(0,1);  /* 線の長さを0にして表示させない */
    transform-origin: left top;
    transition: transform 0.3s;
}
/*******************************/
/**********トップページ**********/
/*******************************/
/***** ヘッダー *****/
.header {
    width: 100vw;
    height: 100dvh;
    min-height: 600px;
    margin: 0 auto;
}
.header .wrapper {
    position: relative;
    display: flex;
    flex-direction: row;
    justify-content: center;
    gap: 0;
}
/*** タイトル ***/
.header .title {
    width: calc(100vw / 2);
}
/*** アイキャッチ ***/
.eye-chatch {
    width: calc(100vw / 2);
    height: 79vh;
    margin-top: 21vh;
}
/*** モックアップ ***/
.header .image {
    top: calc(100vh + 6px);
    left: 25%;
    transform: translate(-50%,-100%);
}
.header .image img { width: 35vw; }

/***** ヘッダー＠スマホ版 *****/
@media screen and (max-width: 767px) {
    .header .wrapper {
        flex-direction: column;
        align-items: center;
    }
    /*** タイトル ***/
    .header .title {
        width: 100%;
        margin: 10.5vh 0;
    }
    /*** アイキャッチ ***/
    .eye-chatch {
        width: 100%;
        height: 56vh;
        margin-top: auto;
        margin-bottom: 0;
    }
    /*** モックアップ ***/
    .header .image {
        top: calc(100vh + 6px);
        left: 50%;
        transform: translate(-50%,-100%);
    }
    .header .image img {
        max-width: 96vmin;
        max-height: 31vh;
        width: auto;
        height: auto;
    }
}
/**** コンテンツ *****/
/*** 共通 ***/
/** セクション **/
#top-page .section-wrapper { 
    width: 100vw; 
    margin-left: 0;
}
/** 小見出し **/
#top-page .content-title {
    margin-left: 0;
}
#top-page .content-title::before {
    width: 8.5rem;
}
/** Moreボタン **/
.btn_more {
    /* 配置 */
    text-align: center;
}

/******* Works *******/
#top-works .flex-wrapper{
    display: flex;
    flex-direction: column;
    justify-content: start;
    align-items: center;
    gap: 12rem;
}
/* 個々のWork */
#top-works .work-wrapper {
    max-width: 500px;
    width: 50rem;
}
#top-works .work-wrapper .supplement {
    margin-bottom: 3.2rem;
    height: 5%;
}
#top-works .work-wrapper .supplement .loupe,
#top-works .work-wrapper .supplement .loupe a {
    height: 5%;
}
#top-works .work-wrapper .supplement .loupe img { 
    display: block;
    height: 0.5rem;
    width: auto;
    overflow: hidden;
}
/******* Service *******/
#top_service .service-wrapper {
    margin: 0 auto;
    width: 62rem;    
}
/* 個々のサービス */
#top_service ul {
    display: flex;
    flex-direction: column;
    align-items: start;
}
/* サービスの大枠 */
#top_service .main-ul { 
    flex-wrap: wrap;
    margin-top: 3.6rem; 
    margin-left: 2.8rem;
}
#top_service .main-ul .title { 
    margin-right: 0;
}
#top_service .main-ul .description {
    width: 100%;
    margin-left: 2rem;
}
#top_service .main-ul .description .dot {
    display: none;
}
/*** サービス概要 ***/
#top_service .detail .service-name {    /* サービス名 */
    width: 100%;
}
#top_service .detail .value {   /* 価格 */
    margin-top: 1.5rem;
    margin-left: 1.5rem;
}
#top_service .detail .value::after { 
    content: '';
}
#top_service .detail .deadline { 
    margin-left: 1.5rem; 
    margin-bottom: 2.5rem;
    line-height: 1;
}
#top_service .detail .deadline::before {
    content: '(';
    font-size: 2.7rem;
    margin-right: 0.5rem;
}
#top_service .detail .deadline::after {
    content: ')';
    font-size: 2.7rem;
    margin-left: 0.5rem;
}
/*** 納品までの流れ ***/
#top_service #service-flow {
    margin: 0 auto; 
    margin-top: 9rem; 
}
#top_service #service-flow h4 {
    justify-content: center;
}
#top_service .flow-wrapper {
    display: flex;
    flex-direction: column;
    justify-content: start;
    align-items: center;
    width: 100%;
}
/*** 本体 ***/
/* 矢印 */
#top_service .arrow {
    transform: rotate(135deg);
}
/******* アニメーション *******/

/******* 私について *******/
#top_about-me .contact_wrapper h4 { 
    display: flex;
    flex-direction: row;
    align-items: center;
    margin: 0  auto;
    margin-bottom: 3.6rem; 
}
/*** 名刺 ***/
#top_about-me .card {
    width: 67.2rem; 
    padding: 11.2rem 6.4rem 6.4rem 6.4rem;
}
/* 名前 --> 変更なし */
/* ルビ --> 変更なし */
/* 自己紹介 --> 変更なし */
/* こだわり */
#top_about-me .card .introduction .pride p { margin-top: 3.2rem; }
/* お問い合わせ */
#top_about-me .card .introduction .contact {
    display: flex;
    flex-direction: column;
}
/* CTA */
#top_about-me .card .introduction .message {
    margin-top: 3.2rem;
    margin-right: 0;
    margin-bottom: 3.2rem;
}

/* LINE＆SNS */
#top_about-me .card .introduction .contact .line_qr { display: none; }    /* LINE QRコード：PC&tb */
#top_about-me .card .introduction .contact .line_logo { display: block; }  /* LINEへのリンク：sqのみ */
/* 写真 */
#top_about-me .card .self-portrait {
    top: 6.4rem;
    right: 6.4rem;
}
/*** #コンタクト ***/
#top_about-me .contact_wrapper { 
    width: 67.2rem; 
    margin-top: 10rem;
    padding-bottom: 10rem;
}
#top_about-me .contact_wrapper h4 { 
    display: flex;
    flex-direction: row;
    align-items: center;
    margin-bottom: 3.6rem; 
}
#top_about-me .contact_wrapper h4::before {
    content: '＃';
}
#top_about-me .contact_wrapper h5 {
    margin-bottom: 3.5rem;
    font-size: 2rem;
    text-align: center;
}
/* CTAボタン */
#top_about-me .contact_wrapper { display: block; }
#top_about-me .contact_wrapper .btn {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 30rem;
    height: 8.7rem;
    margin: 0 auto;
    border: #EB5C01 1px solid;
    border-radius: 20rem;
    color: #EB5C01;
    text-decoration: none;
}
#top_about-me .contact_wrapper .btn .text {
    position: relative;
    text-align: center;
}
#top_about-me .contact_wrapper .btn .text::after {
    content: '>';
    position: absolute;
    top: 50%;
    right: -4.5rem;
    transform: translateY(-50%);
    font-size: 3rem;
    font-weight: 100;
    transition: 0.3s;
}
#top_about-me .contact_wrapper .btn:hover > .text:after {
    right: -5.5rem;
}