@charset "UTF-8";

/*!
Theme Name: Cocoon Child
Description: Cocoon専用の子テーマ
Theme URI: https://wp-cocoon.com/
Author: わいひら
Author URI: https://nelog.jp/
Template:   cocoon-master
Version:    1.1.3
*/

/************************************
** 子テーマ用のスタイル
************************************/

/* ===================================================
   1. 基本レイアウト・強制リセット
   =================================================== */
body,
#content,
.entry-content,
.alignfull,
#main {
    margin-top: 0;
    padding-top: 0;
}

.header-div,
.header-container {
    margin-bottom: 0;
    padding-bottom: 0;
}

#content {
    padding-top: 70px;
}

.home .date-tags,
.home .post-date,
.home .entry-header .date-tags,
.date-tags {
    display: none !important;
}

/* ===================================================
   2. ヘッダーのデザイン
   =================================================== */

/* ID セレクターで Cocoon のクラス指定より詳細度を上げる */
#header-container,
.header-container {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    z-index: 2147483647 !important;
    background-color: transparent !important;
    background: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border-bottom: none !important;
    box-shadow: none !important;
    border: none !important;
    transition: background 0.4s ease;
}

.widget-entry-top,
.widget-content-top {
    display: none !important;
}

/* ---
   Cocoon DOM構造：
   #header-container > #header-container-in
     ├ #header (ID: header) ← ロゴ
     └ #navi   (ID: navi)   ← メニュー
   + ul.mobile-header-menu-buttons  ← ハンバーガー（#header-container-inの外）
   ヘッダーレイアウト：「トップメニュー（右寄せ）」に設定済み
--- */

/* PC（1025px以上）：ハンバーガーを非表示にし、デスクトップメニューのみ表示
   Cocoon の切り替えブレークポイント 1024px に合わせる */
@media screen and (min-width: 1025px) {

    /* ハンバーガーを消す */
    .mobile-menu-buttons,
    .mobile-header-menu-buttons {
        display: none !important;
    }

    /* ヘッダー内部要素をすべて透明に（Cocoonが白背景をセットするため上書き） */
    #header-container-in,
    .header-in,
    #header,
    #navi,
    #navi-in,
    .navi-in,
    .header-container-in {
        background-color: transparent !important;
        background: transparent !important;
        box-shadow: none !important;
        border: none !important;
    }

    /* メニューリンク：色・サイズのみ指定 */
    #navi-in>ul>li>a,
    #navi .navi-in>ul>li>a {
        color: #333 !important;
        font-size: 14px;
        font-weight: 500;
        text-decoration: none !important;
        background: transparent !important;
    }

    .sub-caption,
    .fa-angle-down,
    .item-label-caption {
        display: none !important;
    }
}

/* タブレット（1025px〜1100px）：小さめフォント */
@media screen and (min-width: 1025px) and (max-width: 1100px) {

    #navi-in>ul>li>a,
    #navi .navi-in>ul>li>a {
        font-size: 11px !important;
        padding: 15px 5px !important;
        letter-spacing: -0.03em;
    }
}

/* ===================================================
   3. タブレット・スマホ（〜1024px）: ハンバーガーメニューのみ表示
   =================================================== */
@media screen and (max-width: 1024px) {

    /* デスクトップ用ロゴを非表示 */
    #header {
        display: none !important;
    }

    /* ★重要: #navi ごと消すと中の #navi-menu-content（ドロワー）も消えてしまう。
       デスクトップ用のナビリスト（#navi-in）だけを非表示にする */
    #navi-in,
    #navi>.navi-in {
        display: none !important;
    }

    /* モバイルボタン（ハンバーガー＋ロゴ）を表示 */
    .mobile-header-menu-buttons {
        display: flex !important;
        visibility: visible !important;
        opacity: 1 !important;
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        z-index: 2147483647 !important;
        align-items: center !important;
        justify-content: space-between !important;
        padding: 0 16px !important;
        box-sizing: border-box !important;
        height: 60px !important;
        background: transparent !important;
    }

    /* モバイルボタン内のすべての要素（ハンバーガー・ロゴ・検索）を表示 */
    .mobile-header-menu-buttons>li,
    .mobile-header-menu-buttons li {
        display: flex !important;
        visibility: visible !important;
        opacity: 1 !important;
    }

    /* フッター型ボタンは非表示 */
    .mobile-menu-buttons,
    .footer-mobile-buttons {
        display: none !important;
    }
}

/* ===================================================
   4. KV（トップ画像）★ここだけ全幅にする
   =================================================== */
/* 
   セレクタを強化: 
   「.entry-content」の直下にある「最初のwp-block-cover」だけを狙う
   （> を使うことで、カラムの中にあるカバーを除外）
*/
#custom-page-wrapper .wp-block-cover.kv-shadow,
.home .main-visual {
    margin-top: 0;
    padding-top: 0;
    height: 600px;

    /* 全幅化（100vw） */
    width: 100vw;
    position: relative !important;
    left: 50% !important;
    right: 50% !important;
    margin-left: -50vw;
    margin-right: -50vw;
    max-width: 100vw;
    overflow: hidden;
}

#custom-page-wrapper .wp-block-cover.kv-shadow .wp-block-cover__inner-container,
.home .main-visual #custom-page-wrapper .wp-block-cover__inner-container {
    position: relative !important;
    z-index: 2 !important;
    height: 100%;
    display: flex !important;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
}

/* KV内テキスト */
#custom-page-wrapper .wp-block-cover.kv-shadow h2,
#custom-page-wrapper .wp-block-cover.kv-shadow .wp-block-heading {
    margin-bottom: 20px;
    line-height: 1.2;
}

#custom-page-wrapper .wp-block-cover.kv-shadow p:nth-of-type(1) {
    margin-bottom: 15px;
    font-size: 28px;
    line-height: 1.4;
}

#custom-page-wrapper .wp-block-cover.kv-shadow p:nth-of-type(2) {
    margin-top: 0;
    margin-bottom: 0;
    font-size: 20px;
}

#custom-page-wrapper .wp-block-cover.kv-shadow * {
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7);
    color: #fff;
}

/* 導入文などの余白（オレンジ背景エリア） */
.home #custom-page-wrapper .wp-block-cover+p,
.home #custom-page-wrapper .wp-block-cover+div {
    margin-top: 40px;
    margin-bottom: 40px;
    line-height: 2.0;
}

/* DevTools確認: p に margin: 80px 0 160px が適用されているため上書き */
.home #custom-page-wrapper p.has-text-align-center,
.home #custom-page-wrapper .is-style-bottom-margin-10em,
.home #custom-page-wrapper .has-bottom-margin {
    margin-top: 40px !important;
    margin-bottom: 80px !important;
}

/* ===================================================
   5. セクション背景（全幅・About/Works/Services）
   =================================================== */
#custom-page-wrapper .wp-block-group.alignfull {
    width: 100vw;
    position: relative !important;
    left: 50% !important;
    right: 50% !important;
    margin-left: -50vw;
    margin-right: -50vw;
    max-width: 100vw;
    box-sizing: border-box;

    /* グリーン背景エリアの縦幅を半分に（インラインstyleより優先） */
    padding-top: 30px !important;
    padding-bottom: 30px !important;
}

/* 画像の余計なマージン削除で垂直中央揃えを確実に */
#custom-page-wrapper .my-custom-layout .wp-block-column figure.wp-block-image {
    margin-top: 0;
    margin-bottom: 0;
}

/* インナーコンテナの横幅制限 */
#custom-page-wrapper .wp-block-group.alignfull>.wp-block-group__inner-container,
#custom-page-wrapper .wp-block-group.alignfull>.wp-block-columns {
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
    padding-left: 30px;
    padding-right: 30px;
    box-sizing: border-box;
}

/* ===================================================
   6. 見出し・その他
   =================================================== */
/* h2　*/
h2.wp-block-heading {
    position: relative;
    padding: 10px 25px;
    color: #4A4A4A;
    font-size: 24px;
    border: none;
    background: none;
    margin-bottom: 40px;
    display: flex !important;
    align-items: center;
    padding-top: 20px;
    padding-bottom: 10px;
    min-height: 55px;
    line-height: 1.4;
}

h2.wp-block-heading:before {
    content: '';
    position: absolute;
    top: 0;
    left: 5px;
    width: 100%;
    height: 100%;
    background: #D9D9D9;
    z-index: -1;
    transform: rotate(0.8deg);
}

h2.wp-block-heading:after {
    content: '';
    position: absolute;
    top: 0;
    left: -4px;
    width: 100%;
    height: 100%;
    background: #fff;
    border: 2px solid #7D8B96;
    z-index: -1;
    transform: rotate(-0.2deg);
}

/* h3　*/
.article h3,
h3.wp-block-heading {
    padding: 10px 15px;
    border-left: 5px solid #7D8B96;
    border-bottom: 2px solid #ccc;
    background: transparent;
    font-size: 20px;
}

/* h6（WP）*/
h6.wp-block-heading,
.article h6 {
    display: table;
    border-bottom: 1px solid #7D8B96;
    padding-bottom: 5px;
    margin-bottom: 15px;
    font-size: 18px;
}

/* 段落 */
p {
    font-size: 16px;
}

/* --- レイアウト調整 --- */
#custom-page-wrapper .my-custom-layout,
#custom-page-wrapper .wp-block-columns.my-custom-layout {
    display: flex !important;
    /* Flexboxを強制 */
    flex-wrap: nowrap;
    /* 折り返さない（スマホ時はメディアクエリで変更） */
    align-items: center;
    /* 垂直方向中央揃え */
    margin-bottom: 0;
}

/* もしカラムブロック自体にflexが効いていない場合の対策 */
#custom-page-wrapper .wp-block-columns.my-custom-layout {
    align-items: center;
}

#custom-page-wrapper .my-custom-layout h4 {
    margin-bottom: 20px;
}

#custom-page-wrapper .my-custom-layout p {
    margin-bottom: 30px;
    line-height: 1.8;
}

/* KVのScrollボタン */
#custom-page-wrapper .wp-block-cover.kv-shadow .kv-scroll-btn {
    position: absolute !important;
    bottom: 20px !important;
    left: 0 !important;
    right: 0 !important;
    width: 100%;
    margin: 0 auto;
    padding: 0;
    text-align: center;
    z-index: 100;
    transform: none;
}

#custom-page-wrapper .kv-scroll-btn a {
    color: #fff;
    font-size: 0;
    letter-spacing: 0.1em;
    position: relative;
    padding-top: 40px;
    display: inline-block;
    text-decoration: none;
    opacity: 0.8;
}

#custom-page-wrapper .kv-scroll-btn a:hover {
    opacity: 1;
}

#custom-page-wrapper .kv-scroll-btn a::after {
    content: "Scroll";
    font-size: 12px;
    display: block;
    color: #fff;
    margin-top: 5px;
}

#custom-page-wrapper .kv-scroll-btn a span {
    position: absolute;
    top: 0;
    left: 50%;
    width: 16px;
    height: 16px;
    margin-left: -8px;
    border-left: 2px solid #fff;
    border-bottom: 2px solid #fff;
    transform: rotate(-45deg);
    animation: sdb 1.5s infinite;
}

#custom-page-wrapper .kv-scroll-btn a span:nth-of-type(1) {
    top: 0px;
    animation-delay: 0s;
}

#custom-page-wrapper .kv-scroll-btn a span:nth-of-type(2) {
    top: 10px;
    animation-delay: .15s;
}

@keyframes sdb {
    0% {
        transform: rotate(-45deg) translate(0, 0);
        opacity: 0;
    }

    50% {
        opacity: 1;
    }

    100% {
        transform: rotate(-45deg) translate(-10px, 10px);
        opacity: 0;
    }
}

/* ===================================================
   7. 新着記事（[new_list]）
   =================================================== */
#custom-page-wrapper .new-entry-cards .a-wrap,
#custom-page-wrapper .new-entry-cards .entry-card-wrap {
    display: flex !important;
    align-items: center;
    padding: 15px 0;
}

#custom-page-wrapper .new-entry-cards .entry-card-thumb {
    margin: 0 20px 0 0;
    flex-shrink: 0;
    align-self: center;
}

#custom-page-wrapper .new-entry-cards .entry-card-content,
#custom-page-wrapper .new-entry-cards .new-entry-card-content,
#custom-page-wrapper .new-entry-cards .card-content {
    margin: 0;
    padding: 0;
    flex-grow: 1;
    display: flex !important;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    /* Flexbox内でellipsisを効かせるために必須 */
}

#custom-page-wrapper .new-entry-cards .entry-card-title,
#custom-page-wrapper .new-entry-cards .new-entry-card-title,
#custom-page-wrapper .new-entry-cards .card-title {
    margin: 0;
    padding: 0;
    line-height: 1.6;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    width: 100%;
    display: block !important;
    max-width: 100%;
}

/* ===================================================
   8.ボタンデザイン
   =================================================== */
/* Worksページボタン */
.button-52 {
    font-size: 16px;
    font-weight: 200;
    letter-spacing: 1px;
    padding: 13px 20px 13px;
    outline: 0;
    border: 1px solid black;
    cursor: pointer;
    position: relative;
    background-color: rgba(0, 0, 0, 0);
    user-select: none;
    -webkit-user-select: none;
    width: 100%;
    box-sizing: border-box;
    text-align: center;
    display: block;
    max-width: 300px;
    margin: 0 auto;
}

.button-52:after {
    content: "";
    background-color: #E0E0E0;
    width: 100%;
    z-index: -1;
    position: absolute;
    height: 100%;
    top: 7px;
    left: 7px;
    transition: 0.2s;
}

.button-52:hover:after {
    top: 0px;
    left: 0px;
}

@media (min-width: 768px) {
    .button-52 {
        padding: 13px 50px 13px;
    }
}

/* --- VIEW MORE デザイン (Sharpe Angle Arrow) --- */
/* --- VIEW MORE デザイン (Sharpe Angle Arrow) --- */
#custom-page-wrapper .arrow-line-btn {
    position: relative;
    border: none;
    border-bottom: 1px solid #666;
    /* 下線 */
    width: 180px;
    max-width: 90%;
    margin-top: 40px;
    /* 上余白のみ指定し、左右はmodifiersに委ねる */
    margin-bottom: 0;
    display: block;
    /* ブロック要素 */
    text-align: center;
    /* ボタン内のテキストは中央 */
    padding-bottom: 5px;
}

/* Modifier classes for button alignment */
#custom-page-wrapper .arrow-line-btn.align-btn-right {
    margin-left: auto;
    /* 右寄せ */
    margin-right: 0;
}

#custom-page-wrapper .arrow-line-btn.align-btn-left {
    margin-left: 0;
    /* 左寄せ */
    margin-right: auto;
}

/* リンクテキスト */
#custom-page-wrapper .arrow-line-btn a {
    text-decoration: none;
    color: #666;
    font-size: 0.9rem;
    letter-spacing: 0.05em;
    display: block;
    transition: opacity 0.3s;
}

#custom-page-wrapper .arrow-line-btn a:hover {
    opacity: 0.7;
}

/* --- 矢印（疑似要素）の設定 --- */
/* Always display Arrow on RIGHT for all buttons */
.arrow-line-btn::before {
    content: "";
    display: block;
    width: 30px;
    height: 1px;
    background: #666;
    position: absolute;
    bottom: 11px;
    /* 右端に配置 */
    right: -7px !important;
    left: auto !important;
    transform: rotate(60deg);
}

/* テキスト配置の強制適用クラス（テーマ上書き用） */
.has-text-align-right {
    text-align: left;
    /* user requested left align even for this class */
}

.has-text-align-left {
    text-align: left;
}

/* About & Services Specific Overrides if needed */
/* Assuming they might be using specific blocks or contexts */
.home #custom-page-wrapper .wp-block-column p.has-text-align-right {
    text-align: left;
}

/* スマホ対応 */
@media (max-width: 781px) {
    #custom-page-wrapper .wp-block-columns.my-custom-layout {
        flex-direction: column;
    }

    #custom-page-wrapper .wp-block-column:not(:first-child) {
        margin-top: 20px;
    }

    /* Worksセクション：モバイルで画像→テキストの順に逆転 */
    .reverse-column-mobile {
        display: flex !important;
        flex-direction: column !important;
    }

    .reverse-column-mobile .wp-block-column:first-child {
        order: 2 !important;
    }

    .reverse-column-mobile .wp-block-column:last-child {
        order: 1 !important;
        margin-bottom: 20px;
    }
}

/* ===================================================
   9. 余白調整・決定版
   =================================================== */
#sidebar,
.sidebar {
    display: none !important;
}

body,
#content,
#main,
.wrap {
    background-color: #fff;
}

/* ▼HOME以外の全ページ */
body:not(.home) #main {
    width: 100%;
    max-width: 1000px;
    margin: 50px auto 100px auto;
    border: none;
    padding: 0 40px;
    box-sizing: border-box;
}

/* ▼HOMEのレイアウト */
.home #main,
.home .entry-content {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding-left: 30px;
    padding-right: 30px;
    box-sizing: border-box;
    padding-top: 0px;
}

/* スマホ表示 */
@media screen and (max-width: 768px) {

    .home #custom-page-wrapper .wp-block-columns,
    #custom-page-wrapper .image-link-cards {
        flex-wrap: wrap;
        gap: 20px;
    }

    .home #custom-page-wrapper .wp-block-column,
    #custom-page-wrapper .image-link-cards .wp-block-column {
        flex: 0 0 100%;
        margin-bottom: 20px;
    }

    body:not(.home) #main,
    .home #main {
        padding-left: 20px;
        padding-right: 20px;
    }

    #custom-page-wrapper .wp-block-group.alignfull>.wp-block-group__inner-container,
    #custom-page-wrapper .wp-block-group.alignfull>.wp-block-columns {
        padding-left: 20px;
        padding-right: 20px;
    }

    /* スマホKV */
    #custom-page-wrapper .wp-block-cover.kv-shadow,
    .home .main-visual {
        margin-left: -50vw;
        margin-right: -50vw;
        width: 100vw;
        height: 350px;
    }
}

/* ▼お問い合わせ画像（フッター画像） ★ここも全幅にする */
/* 「.home .entry-content > #custom-page-wrapper .wp-block-cover:last-child」で狙い撃ち */
#custom-page-wrapper .wp-block-cover:last-child {
    min-height: 400px;
    height: 400px;

    /* 全幅化（100vw） */
    width: 100vw;
    position: relative !important;
    left: 50% !important;
    right: 50% !important;
    margin-left: -50vw;
    margin-right: -50vw;
    max-width: 100vw;
    margin-bottom: 50px;
    margin-top: 80px;
}

.entry-content>* {
    margin-bottom: 2.0em;
}

h2 {
    margin-top: 80px;
    margin-bottom: 30px;
}

h3 {
    margin-top: 60px;
    margin-bottom: 30px;
}

.entry-content>h2:first-child,
.entry-content>h3:first-child {
    margin-top: 20px;
}

/* --- 行間・フォントの強制適用 (一番最後に配置) --- */
p {
    line-height: 2 !important;
    /* 文章自体の行間（ここを大きくすると文章がゆったりします） */
    margin-bottom: 2em;
    /* 段落と段落の間の隙間 */
}

/* フッターモバイルボタン（メニュー・検索・ロゴ等）のみ非表示 */
/* ※ .mobile-header-menu-buttons はハンバーガー＋ロゴなので非表示にしない */
/* ※ Cocoonは同一要素に mobile-header-menu-buttons と mobile-menu-buttons を両方付与するため
      :not() で除外しないと消えてしまう */
.mobile-menu-buttons:not(.mobile-header-menu-buttons),
.footer-mobile-buttons,
.mobile-buttons:not(.mobile-header-menu-buttons),
#mobile-menu-buttons,
#footer-mobile-buttons,
#mobile-buttons,
.mobile-navi-buttons,
.mobile-footer-menu-buttons {
    display: none !important;
}

/* 右下の編集リンク(sk)などを非表示にする */
.edit-link,
.author-info,
.entry-footer {
    display: none !important;
}

/* ===================================================
   【最終上書き】モバイルヘッダー（ハンバーガー＋ロゴ）強制表示
   Cocoon親テーマの .mobile-menu-buttons { display: none } を
   IDセレクター+クラスで詳細度を高めて完全上書きする
   =================================================== */
@media screen and (max-width: 1024px) {

    /* 詳細度を上げるためにID + クラスの複合セレクター */
    #header-container .mobile-header-menu-buttons,
    #header-container-in~.mobile-header-menu-buttons,
    ul.mobile-header-menu-buttons.mobile-menu-buttons,
    .mobile-header-menu-buttons.has-logo-button,
    .mobile-header-menu-buttons {
        display: flex !important;
        visibility: visible !important;
        opacity: 1 !important;
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: 60px !important;
        z-index: 2147483647 !important;
        align-items: center !important;
        justify-content: space-between !important;
        padding: 0 16px !important;
        box-sizing: border-box !important;
        background: rgba(255, 255, 255, 0.3) !important;
        backdrop-filter: blur(8px) !important;
        -webkit-backdrop-filter: blur(8px) !important;
    }

    /* ボタン内の各アイテム（ハンバーガー・ロゴ・検索）を表示 */
    .mobile-header-menu-buttons>li,
    .mobile-header-menu-buttons li {
        display: flex !important;
        visibility: visible !important;
        opacity: 1 !important;
    }

    /* ===================================================
       モバイルメニュードロワー（開いた時のメニューパネル）修正
       ★ 親の height:60px に制限されないよう position:fixed で独立させる
       =================================================== */
    #navi-menu-content,
    .navi-menu-content {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        height: 100vh !important;
        overflow-y: auto !important;
        z-index: 99999 !important;
        box-sizing: border-box !important;
        padding-top: 60px !important;
        background-color: rgba(255, 255, 255, 0.97) !important;
        backdrop-filter: blur(8px) !important;
        -webkit-backdrop-filter: blur(8px) !important;
    }
}