@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 !important;
    padding-top: 0 !important;
}

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

#content {
    padding-top: 70px !important;
}

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

/* ===================================================
   2. ヘッダーのデザイン（全幅・透過対応）
   =================================================== */
.header-container {
    position: fixed !important;
    top: 0;
    left: 0;
    width: 100% !important;
    max-width: 100% !important;
    z-index: 2147483647 !important;
    background: #fff !important;
    border-bottom: none !important;
    transition: background-color 0.4s ease, border 0.4s ease, box-shadow 0.4s ease;
}

.header-container .header-in,
.header-container .navi-in,
#header .wrap,
#header-container-in,
.header-div {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    box-sizing: border-box !important;
    background: transparent !important;
}

#navi,
#navi .navi-in,
.menu-header {
    background: transparent !important;
}

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

.header-container.header-scrolled {
    background: rgba(255, 255, 255, 0.3) !important;
    backdrop-filter: blur(5px);
    border-bottom: none !important;
    box-shadow: none !important;
}

.header-container.header-scrolled .header-in,
.header-container.header-scrolled .navi-in,
.header-container.header-scrolled #navi {
    background: transparent !important;
}

.header-container #navi .navi-in>ul>li>a {
    color: #333 !important;
    font-weight: 500;
    text-shadow: none !important;
    font-size: 14px !important;
    padding: 15px 10px !important;
    text-decoration: none;
    white-space: nowrap !important;
    transition: color 0.3s ease;
    background: transparent !important;
}

.header-container #navi .navi-in>ul>li>ul.sub-menu>li>a {
    font-size: 13px !important;
    padding: 10px 15px !important;
    width: auto !important;
    min-width: 160px;
}

#navi .navi-in>ul {
    display: flex !important;
    justify-content: flex-end !important;
    flex-wrap: nowrap !important;
}

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

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

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

/* KV内テキスト */
.home .entry-content>.wp-block-cover:first-child h2,
.home .entry-content>.wp-block-cover:first-child .wp-block-heading {
    margin-bottom: 20px !important;
    line-height: 1.2 !important;
}

.home .entry-content>.wp-block-cover:first-child p:nth-of-type(1) {
    margin-bottom: 15px !important;
    font-size: 24px !important;
    line-height: 1.4 !important;
}

.home .entry-content>.wp-block-cover:first-child p:nth-of-type(2) {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    font-size: 16px !important;
}

.home .entry-content>.wp-block-cover:first-child * {
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7);
    color: #fff !important;
}

/* 導入文などの余白 */
.home .wp-block-cover+p,
.home .wp-block-cover+div {
    margin-top: 40px !important;
    margin-bottom: 40px !important;
    line-height: 2.5;
}

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

    /* 縦幅を画像に合わせる（余白削除） */
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

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

/* インナーコンテナの横幅制限 */
.home .entry-content>.wp-block-group.alignfull>.wp-block-group__inner-container,
.home .entry-content>.wp-block-group.alignfull>.wp-block-columns {
    max-width: 1200px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    width: 100% !important;
}

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

main 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);
}

main 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);
}

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

.entry-content p {
    font-size: 16px !important;
    line-height: 1.8;
}

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

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

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

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

/* KVのScrollボタン */
.home .entry-content>.wp-block-cover:first-child .kv-scroll-btn {
    position: absolute !important;
    bottom: 20px !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    margin: 0 auto !important;
    padding: 0 !important;
    text-align: center;
    z-index: 100;
    transform: none !important;
}

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

.kv-scroll-btn a:hover {
    opacity: 1;
}

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

.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;
}

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

.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]）
   =================================================== */
.new-entry-cards .a-wrap,
.new-entry-cards .entry-card-wrap {
    display: flex !important;
    align-items: center !important;
    padding: 15px 0 !important;
}

.new-entry-cards .entry-card-thumb {
    margin: 0 20px 0 0 !important;
    flex-shrink: 0;
    align-self: center !important;
}

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

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

/* ===================================================
   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) --- */
.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 */
.arrow-line-btn.align-btn-right {
    margin-left: auto !important;
    /* 右寄せ */
    margin-right: 0 !important;
}

.arrow-line-btn.align-btn-left {
    margin-left: 0 !important;
    /* 左寄せ */
    margin-right: auto !important;
}

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

.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) !important;
}

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

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

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

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

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

    .reverse-column-mobile {
        display: flex;
        flex-direction: column;
    }

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

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

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

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

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

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

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

    .home .wp-block-columns,
    .image-link-cards {
        flex-wrap: wrap !important;
        gap: 20px !important;
    }

    .home .wp-block-column,
    .image-link-cards .wp-block-column {
        flex: 0 0 100% !important;
        margin-bottom: 20px !important;
    }

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

    /* スマホKV */
    .home .entry-content>.wp-block-cover:first-child,
    .home .main-visual {
        margin-left: -50vw !important;
        margin-right: -50vw !important;
        width: 100vw !important;
        height: 350px !important;
    }
}

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

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

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

.entry-content h2 {
    margin-top: 80px !important;
    margin-bottom: 30px !important;
}

.entry-content h3 {
    margin-top: 60px !important;
    margin-bottom: 30px !important;
}

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

/* --- 行間・フォントの強制適用 (一番最後に配置) --- */
.entry-content p {
    line-height: 2.0 !important;
    /* ここで数値を変更すれば全ページに反映されます */
    margin-bottom: 2em !important;
}