/* ========================================
   レスポンシブ対応CSS
   ======================================== */

/* ハンバーガーメニュー */
.l-hamburger {
    display: none;
    position: fixed;
    top: 20px;
    right: 20px;
    width: 30px;
    height: 30px;
    background: transparent;
    border: none;
    cursor: pointer;
    z-index: 1001;
}

.l-hamburger__line {
    display: block;
    width: 100%;
    height: 2px;
    background: #241a08;
    margin: 0 auto;
    position: absolute;
    left: 0;
    transition: all 0.3s ease;
}

.l-hamburger__line:nth-child(1) {
    top: 6px;
}

.l-hamburger__line:nth-child(2) {
    top: 14px;
}

.l-hamburger__line:nth-child(3) {
    top: 22px;
}

/* ハンバーガーメニュー開いた状態 */
.l-hamburger.is-active .l-hamburger__line:nth-child(1) {
    top: 14px;
    transform: rotate(45deg);
}

.l-hamburger.is-active .l-hamburger__line:nth-child(2) {
    opacity: 0;
}

.l-hamburger.is-active .l-hamburger__line:nth-child(3) {
    top: 14px;
    transform: rotate(-45deg);
}

/* メニューオーバーレイ */
.l-mainNavi__overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    z-index: 998;
}

/* メニュー閉じるボタン */
.l-mainNavi__close {
    display: none;
    position: absolute;
    top: 20px;
    right: 20px;
    width: 30px;
    height: 30px;
    background: transparent;
    border: none;
    cursor: pointer;
    z-index: 1001;
}

.l-mainNavi__close span {
    display: block;
    width: 100%;
    height: 2px;
    background: #241a08;
    position: absolute;
    left: 0;
    transition: all 0.3s ease;
}

.l-mainNavi__close span:nth-child(1) {
    top: 14px;
    transform: rotate(45deg);
}

.l-mainNavi__close span:nth-child(2) {
    top: 14px;
    transform: rotate(-45deg);
}

/* スマートフォン（767px以下） */
@media only screen and (max-width: 767px) {
    body {
        min-width: auto;
        font-size: 1.3rem;
    }
    
    .l-wrap {
        width: 100%;
        padding: 0 15px;
    }
    
    /* ヘッダー */
    .l-header {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        background: #e6eae3;
        z-index: 9000;
        box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    }
    
    .l-headerBox {
        min-height: 60px;
        padding: 10px 0;
    }
    
    .l-headerBox__logo {
        width: 150px;
    }
    
    .l-headerBox__logo img {
        width: 100%;
        height: auto;
    }
    
    /* ハンバーガーメニュー表示 */
    .l-hamburger {
        display: block;
    }
    
    /* コンテンツエリア */
    #content {
        margin-top: 60px;
    }
    
    /* メインナビゲーション（SP） */
    .l-mainNavi {
        position: fixed;
        top: 0;
        right: -100%;
        width: 80%;
        max-width: 300px;
        height: 100%;
        background: #e6eae3;
        z-index: 9999;
        transition: right 0.3s ease;
        overflow-y: auto;
    }
    
    .l-mainNavi.is-active {
        right: 0;
    }
    
    .l-mainNavi__overlay.is-active {
        display: block;
    }
    
    .l-mainNavi__inner {
        padding: 60px 20px 40px;
    }
    
    .l-mainNavi__close {
        display: block;
    }
    
    /* ナビゲーションメニュー */
    .l-gNavi {
        margin-bottom: 30px;
    }
    
    .l-gNavi__item {
        margin-bottom: 20px;
        border-bottom: 1px solid rgba(36, 26, 8, 0.1);
    }
    
    .l-gNavi__item a {
        display: block;
        padding: 10px 0;
        font-size: 1.4rem;
    }
    
    .l-gNavi__item.is-current a:before,
    .l-gNavi__item:hover a:before {
        display: none;
    }
    
    .l-gNavi__item.is-current a,
    .l-gNavi__item:hover a {
        padding-left: 0;
        color: #ab6953;
    }
    
    .l-gNavi__item--coshiki {
        margin-top: 20px;
        padding-top: 20px;
        border-top: 1px solid rgba(36, 26, 8, 0.3);
    }
    
    /* ショップ情報 */
    .l-naviShop {
        width: 100%;
        margin-bottom: 30px;
    }
    
    /* ソーシャルリンク */
    .l-naviSocial {
        margin-top: 30px;
    }
    
    /* メインコンテンツ */
    .l-main {
        padding-left: 0;
        min-height: auto;
    }
    
    /* トップページ */
    .home #mainColumn .leftContent {
        float: none;
        width: 100%;
    }
    
    .home #mainColumn .leftContent .topSliderArea {
        margin-bottom: 40px;
    }
    
    /* インフォメーションエリア */
    .home #mainColumn .leftContent .infomationArea .infoList>li {
        padding-left: 0;
        margin-bottom: 20px;
    }
    
    .home #mainColumn .leftContent .infomationArea .infoList>li .day {
        position: static;
        display: block;
        margin-bottom: 5px;
    }
    
    /* ブログエリア（SP） - 横書きに変更 */
    .home #mainColumn .blogArea {
        float: none;
        position: static;
        margin-top: 60px;
    }
    
    .home #mainColumn .blogArea .blogListWrap {
        position: static;
        width: 100%;
    }
    
    /* h2 タイトル */
    .home #mainColumn .blogArea .c-heading02 {
        text-align: left;
        font-size: 1.6rem;
        line-height: 1;
        margin-bottom: 35px;
    }
    
    /* ブログリスト - 横書きスタイル */
    .home #mainColumn .blogArea .blogList {
        height: auto;
        clear: both;
    }
    
    .home #mainColumn .blogArea .blogList:after {
        content: "";
        display: table;
        clear: both;
    }
    
    .home #mainColumn .blogArea .blogList li {
        float: none !important;
        clear: both;
        width: 100%;
        margin-left: 0 !important;
        margin-top: 0 !important;
        margin-bottom: 10px;
        position: relative;
        padding-left: 0;
        display: block;
    }
    
    /* 縦書きを横書きに戻す */
    .home #mainColumn .blogArea .h2v,
    .home #mainColumn .blogArea .h2vr_0,
    .home #mainColumn .blogArea .h2vr_fixed {
        writing-mode: horizontal-tb !important;
    }
    
    .home #mainColumn .blogArea .blogList li *,
    .home #mainColumn .blogArea .blogList li ._r_e,
    .home #mainColumn .blogArea .blogList li ._r_float,
    .home #mainColumn .blogArea .blogList li ._r_float_clear {
        display: inline !important;
        float: none !important;
        position: static !important;
        writing-mode: horizontal-tb !important;
        width: auto !important;
        height: auto !important;
        margin: 0 !important;
        transform: none !important;
        left: auto !important;
        top: auto !important;
    }
    
    /* 日付とカテゴリ - informationスタイルに合わせる */
    .home #mainColumn .blogArea .blogList li .heading {
        display: inline;
        margin-bottom: 0;
        margin-right: 10px;
        font-size: 1rem !important;
        line-height: 1.5 !important;
        font-weight: 700;
    }
    
    .home #mainColumn .blogArea .blogList li .heading .day {
        display: inline;
        font-weight: 700;
        margin-right: 10px;
    }
    
    .home #mainColumn .blogArea .blogList li .heading .day ._r_alpha {
        margin-bottom: 0 !important;
        display: inline !important;
        transform: none !important;
    }
    
    .home #mainColumn .blogArea .blogList li .heading .cat {
        display: inline;
        color: #2c4f54;
        margin-left: 0;
    }
    
    /* タイトル */
    .home #mainColumn .blogArea .blogList li .title {
        display: inline;
        margin-right: 0 !important;
    }
    
    .home #mainColumn .blogArea .blogList li .title a {
        color: #241a08;
        font-size: 1.3rem;
        line-height: 1.5384615385;
        display: inline;
    }
    
    /* 縦書き関連のスタイルを完全に無効化 */
    .home #mainColumn .blogArea ._r_e span,
    .home #mainColumn .blogArea ._r_e a,
    .home #mainColumn .blogArea ._r_e {
        position: static !important;
        display: inline !important;
        transform: none !important;
        margin: 0 !important;
        width: auto !important;
        left: auto !important;
        writing-mode: horizontal-tb !important;
    }
    
    .home #mainColumn .blogArea ._r_e:before,
    .home #mainColumn .blogArea ._r_e:after {
        display: none !important;
    }
    
    /* aboutusページ */
    .page-aboutus #mainColumn .policyArea {
        padding: 40px 20px;
        margin-bottom: 60px;
    }
    
    .page-aboutus #mainColumn .profileArea {
        margin-bottom: 60px;
    }
    
    .page-aboutus #mainColumn .profileArea .profileBox .imageBox,
    .page-aboutus #mainColumn .profileArea .profileBox .textBox {
        float: none;
        width: 100%;
    }
    
    .page-aboutus #mainColumn .profileArea .profileBox .imageBox {
        margin-bottom: 30px;
    }
    
    .page-aboutus #mainColumn .profileArea .profileBox .imageBox img {
        width: 100%;
        height: auto;
    }
    
    .page-aboutus #mainColumn .officeArea .accessBox .textBox,
    .page-aboutus #mainColumn .officeArea .accessBox .mapBox {
        float: none;
        width: 100%;
    }
    
    .page-aboutus #mainColumn .officeArea .accessBox .textBox {
        margin-bottom: 30px;
    }
    
    .page-aboutus #mainColumn .officeArea .accessBox .mapBox img {
        margin-top: 0;
        width: 100%;
        height: auto;
    }
    
    /* Blogページ */
    .page-blog #mainColumn .blogContentArea,
    .single-post #mainColumn .blogContentArea,
    .archive #mainColumn .blogContentArea {
        float: none;
        width: 100%;
    }
    
    .page-blog #mainColumn .blogContentArea .blogList,
    .single-post #mainColumn .blogContentArea .blogList,
    .archive #mainColumn .blogContentArea .blogList {
        display: block;
    }
    
    .page-blog #mainColumn .blogContentArea .blogList .box,
    .single-post #mainColumn .blogContentArea .blogList .box,
    .archive #mainColumn .blogContentArea .blogList .box {
        width: 100%;
        margin-bottom: 40px;
    }
    
    .page-blog #mainColumn .blogNaviArea,
    .single-post #mainColumn .blogNaviArea,
    .archive #mainColumn .blogNaviArea {
        float: none;
        width: 100%;
        margin-top: 40px;
        padding-top: 40px;
        border-top: 1px solid #ddd;
    }
    
    /* Projectsページ */
    .page-projects #mainColumn .catListArea,
    .tax-project-category #mainColumn .catListArea,
    .single-projects #mainColumn .catListArea {
        text-align: center;
        margin-bottom: 40px;
    }
    
    .page-projects #mainColumn .catListArea .catList,
    .tax-project-category #mainColumn .catListArea .catList,
    .single-projects #mainColumn .catListArea .catList {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        padding: 0 0 10px;
    }
    
    .page-projects #mainColumn .catListArea .catList li,
    .tax-project-category #mainColumn .catListArea .catList li,
    .single-projects #mainColumn .catListArea .catList li {
        padding: 5px 10px;
    }
    
    .page-projects #mainColumn .projectList,
    .tax-project-category #mainColumn .projectList {
        margin-left: 0;
        margin-bottom: 40px;
    }
    
    .page-projects #mainColumn .projectList .box,
    .tax-project-category #mainColumn .projectList .box {
        float: none;
        width: 100%;
        margin-left: 0;
        margin-bottom: 40px;
    }
    
    /* プロジェクト詳細 */
    .single-projects #mainColumn .topArea {
        display: block;
        margin-bottom: 30px;
    }
    
    .single-projects #mainColumn .headingArea {
        margin-bottom: 20px;
    }
    
    .single-projects #mainColumn .headingArea .title {
        font-size: 2rem;
        margin-right: 0;
    }
    
    .single-projects #mainColumn .bodyArea .leftBox,
    .single-projects #mainColumn .bodyArea .rightBox {
        float: none;
        width: 100%;
    }
    
    .single-projects #mainColumn .bodyArea .rightBox {
        margin-top: 40px;
        padding-top: 40px;
        border-top: 1px solid #ddd;
    }
    
    /* Workflowページ */
    .page-workflow #mainColumn .workflowList>dt {
        padding-left: 50px;
        font-size: 1.3rem;
    }
    
    .page-workflow #mainColumn .workflowList>dt .num {
        width: 35px;
        height: 35px;
        font-size: 1.6rem;
        line-height: 33px;
    }
    
    .page-workflow #mainColumn .workflowList>dd {
        padding-left: 0;
        margin-bottom: 60px;
    }
    
    .page-workflow #mainColumn .workflowList>dd .section .imgList {
        margin-left: 0;
    }
    
    .page-workflow #mainColumn .workflowList>dd .section .imgList .box {
        width: 100%;
        float: none;
        margin-left: 0;
        margin-bottom: 20px;
    }
    
    .page-workflow #mainColumn .designFeeArea {
        padding: 20px;
        margin-bottom: 40px;
    }
    
    .page-workflow #mainColumn .designFeeArea .section .list02>li {
        float: none;
        width: 100%;
        margin-bottom: 10px;
    }
    
    /* Contactページ */
    .page-contact #mainColumn .ccm-block-type-form {
        width: 100%;
        margin: 30px auto 0;
    }
    
    /* フッター */
    .l-footer {
        padding: 30px 0;
    }
    
    .l-footerBox {
        display: block;
    }
    
    .l-footerBox__copy {
        margin-bottom: 20px;
        text-align: center;
    }
    
    .l-footerBox__company {
        text-align: center;
        margin-left: 0;
    }
    
    /* Back to Top */
    .l-backToTop {
        bottom: 20px;
        right: 20px;
    }
    
    .l-backToTop img {
        width: 40px;
        height: 40px;
    }
    
    /* ページネーション */
    .l-pagination {
        margin-top: 40px;
    }
    
    .l-pagination li {
        margin: 5px;
    }
    
    .l-pagination__prev {
        margin-right: 20px !important;
    }
    
    .l-pagination__next {
        margin-left: 20px !important;
    }
    
    /* 見出し */
    .c-heading01 {
        font-size: 2rem;
    }
    
    .c-heading02 {
        font-size: 1.4rem;
        margin-bottom: 25px;
    }
    
    .c-heading03 {
        font-size: 1.6rem;
        padding-bottom: 15px;
        margin-bottom: 30px;
    }
    
    /* スライダー */
    .topSliderArea {
        height: 250px;
    }
    
    .topSliderArea .swiper-button-prev,
    .topSliderArea .swiper-button-next {
        width: 35px;
        height: 35px;
    }
    
    .topSliderArea .swiper-button-prev:after,
    .topSliderArea .swiper-button-next:after {
        font-size: 16px;
    }
    
    /* 常にナビゲーション矢印を表示（タッチデバイス対応） */
    .swiper-button-prev,
    .swiper-button-next {
        opacity: 0.7;
    }
    
    /* 縦書きコンテンツの調整 */
    .h2v {
        /* 縦書きを解除 */
        writing-mode: horizontal-tb !important;
    }
    
    /* ユーティリティクラスの調整 */
    .u-fz-10 { font-size: 0.9rem !important; }
    .u-fz-12 { font-size: 1rem !important; }
    .u-fz-14 { font-size: 1.2rem !important; }
    .u-fz-16 { font-size: 1.3rem !important; }
    .u-fz-18 { font-size: 1.4rem !important; }
    .u-fz-20 { font-size: 1.5rem !important; }
    .u-fz-22 { font-size: 1.6rem !important; }
    .u-fz-24 { font-size: 1.7rem !important; }
    .u-fz-26 { font-size: 1.8rem !important; }
    
    /* マージンの調整 */
    .u-mt-10 { margin-top: 5px !important; }
    .u-mt-20 { margin-top: 10px !important; }
    .u-mt-30 { margin-top: 15px !important; }
    .u-mt-40 { margin-top: 20px !important; }
    .u-mt-50 { margin-top: 25px !important; }
    .u-mt-60 { margin-top: 30px !important; }
    
    .u-mb-10 { margin-bottom: 5px !important; }
    .u-mb-20 { margin-bottom: 10px !important; }
    .u-mb-30 { margin-bottom: 15px !important; }
    .u-mb-40 { margin-bottom: 20px !important; }
    .u-mb-50 { margin-bottom: 25px !important; }
    .u-mb-60 { margin-bottom: 30px !important; }
}

/* 小画面スマートフォン（480px以下） */
@media only screen and (max-width: 480px) {
    .l-wrap {
        padding: 0 10px;
    }
    
    .l-headerBox__logo {
        width: 120px;
    }
    
    /* Blogページ - 1カラムに戻す */
    .page-blog #mainColumn .blogContentArea .blogList .box,
    .single-post #mainColumn .blogContentArea .blogList .box,
    .archive #mainColumn .blogContentArea .blogList .box {
        width: 100%;
        margin-bottom: 30px;
    }
    
    /* Projectsページ - 1カラムに戻す */
    .page-projects #mainColumn .projectList,
    .tax-project-category #mainColumn .projectList {
        margin-left: 0;
        margin-right: 0;
    }
    
    .page-projects #mainColumn .projectList .box,
    .tax-project-category #mainColumn .projectList .box {
        width: 100%;
        margin-left: 0;
        margin-right: 0;
        margin-bottom: 30px;
    }
    
    .page-projects #mainColumn .projectList .box .image,
    .tax-project-category #mainColumn .projectList .box .image {
        height: 200px;
    }
    
    .page-projects #mainColumn .projectList .box .image img,
    .tax-project-category #mainColumn .projectList .box .image img {
        height: 100%;
        width: 100%;
        object-fit: cover;
    }
}