@charset "UTF-8";

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


/* =========================================
   基本フォント設定
   ========================================= */
body {
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 400;
}

h1, h2, h3, .entry-title {
    font-family: "Montserrat", "Noto Sans JP", sans-serif;
    font-weight: 700;
    letter-spacing: 0.05em;
}


/* =========================================
   Cocoonヘッダー表示設定
   ========================================= */

/* ヘッダー本体 */
#header {
    display: block !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* ヘッダー内部（ロゴ周りの余白） */
.header-in {
    display: flex !important;
    justify-content: center;
    align-items: center;
    padding: 10px 0; /* ※ロゴ上下の余白を少し調整したい場合はこの数値を変更してください */
}

/* Cocoonロゴ */
.logo-header {
    display: block !important;
}

.logo-header img {
    display: block !important;
    width: 100%;
    max-width: 400px;
    height: auto;
}

/* キャッチコピー非表示 */
.tagline {
    display: none !important;
}

/* Cocoon標準ナビ非表示 */
#navi,
.mobile-header-menu-buttons,
.footer-menu-buttons,
.mobile-menu-buttons,
.menu-button {
    display: none !important;
}


/* =========================================
   固定メニュー（ナビゲーションバー）
   ========================================= */
.special-menu-container {
    position: fixed !important;
    z-index: 9999999 !important;
}

/* PC表示 */
@media screen and (min-width: 1024px) {
    .special-menu-container {
        top: 30px;
        right: 30px;
    }
}

/* スマホ表示 */
@media screen and (max-width: 1023px) {
    .special-menu-container {
        bottom: 25px;
        left: 50%;
        transform: translateX(-50%);
        width: 90%;
    }
}

.special-menu-bar {
    display: flex !important;
    align-items: center;
    justify-content: center;
    background: #fff;
    padding: 10px 15px;
    border-radius: 50px;
    box-shadow: 0 4px 25px rgba(0, 0, 0, 0.2);
    gap: 12px;
}

.special-menu-bar li {
    list-style: none;
    display: flex;
    align-items: center;
    justify-content: center;
}

.special-menu-bar a {
    text-decoration: none !important;
    color: #333 !important;
    font-size: 10px;
    font-weight: bold;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.special-menu-bar a::before,
.special-menu-bar a::after {
    display: none !important;
    content: none !important;
}


/* =========================================
   サイトマップパネル
   ========================================= */
.special-sitemap-content {
    position: absolute;
    background: #fff;
    padding: 25px;
    border-radius: 20px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
    display: none;
}

.special-sitemap-content.is-active {
    display: block;
}

.special-sitemap-content ul {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    list-style: none;
    padding: 0;
    margin: 0;
}


/* =========================================
   演出用（キュン演出ハート）
   ========================================= */
#kyun-effect-container {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    pointer-events: none;
    z-index: 0;
    overflow: hidden;
}

.floating-heart,
.burst-heart {
    position: absolute;
    pointer-events: none;
    will-change: transform, opacity;
}


/* =========================================
   画面全幅表示用クラス
   ========================================= */
.full-width-section {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}


/* =========================================
   【重要】全ページのヘッダー直下余白を完全除去
   ========================================= */
/* コンテンツ枠全体の最上部余白リセット */
#content,
.content,
.content-in,
#content-in {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* メインカラムおよび記事（固定ページ含む）の余白リセット */
#main,
.main,
article,
.article,
.entry-content {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* ページタイトルエリアの上下余白リセット */
.entry-header {
    margin-top: 0 !important;
    padding-top: 0 !important;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

/* パンくずリストが配置されている場合の余白リセット */
.breadcrumb-after-header,
.breadcrumb {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* ==========================
   FESTIVAL NEWS
========================== */

.festival-news{
    width:100%;
    max-width:1100px;
    margin:100px auto;
    padding:0 20px;
    box-sizing:border-box;
}

.news-heading{
    margin-bottom:35px;
}

.news-heading img{
    width:260px;
    max-width:100%;
    height:auto;
    display:block;
}

@keyframes heartBeat{

    0%,100%{
        transform:scale(1);
    }

    50%{
        transform:scale(1.2);
    }

}

/* ==========================
   TAB
========================== */

.news-tabs{

    display:flex;
    gap:12px;

    margin-bottom:35px;

    flex-wrap:wrap;

}

.news-tab{

    border:none;

    background:#fff;

    border:2px solid #ffd4e8;

    border-radius:999px;

    padding:12px 26px;

    cursor:pointer;

    font-size:15px;

    font-weight:700;

    transition:.3s;

}

.news-tab:hover{

    background:#ffe5f2;

    transform:translateY(-2px);

}

.news-tab.active{

    background:#ff4fa3;

    color:#fff;

    border-color:#ff4fa3;

}

/* ==========================
   LIST
========================== */

.news-list{

    display:flex;

    flex-direction:column;

}

.news-item{

    display:flex;

    align-items:center;

    gap:20px;

    padding:22px 10px;

    text-decoration:none;

    color:#333;

    border-bottom:1px solid #efefef;

    transition:.3s;

}

.news-item:hover{

    background:#fff7fb;

    padding-left:20px;

}

.news-new{

    min-width:46px;

    text-align:center;

    background:#ff4fa3;

    color:#fff;

    border-radius:30px;

    padding:5px 0;

    font-size:11px;

    font-weight:bold;

}

.news-date{

    width:110px;

    color:#999;

    font-size:14px;

}

.news-title{

    flex:1;

    font-size:17px;

    font-weight:700;

}

.news-more{

    text-align:right;

    margin-top:28px;

}

.news-more a{

    text-decoration:none;

    color:#ff4fa3;

    font-weight:bold;

    transition:.3s;

}

.news-more a:hover{

    letter-spacing:.08em;

}

/* ==========================
   FILTER
========================== */

.news-item.hide{

    display:none;

}

/* ==========================
   SP
========================== */

@media (max-width:768px){

.festival-news{
    margin:50px auto;
    padding:0 16px;
}

/* NEWSロゴ */
.news-heading img{
    width:170px;
}

/* タブ */
.news-tabs{
    gap:8px;
    margin-bottom:18px;
    overflow-x:auto;
    flex-wrap:nowrap;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
}

.news-tabs::-webkit-scrollbar{
    display:none;
}

.news-tab{
    flex:none;
    white-space:nowrap;
    padding:8px 14px;
    font-size:13px;
}

/* 投稿 */
.news-item{
    display:flex;
    align-items:center;
    gap:10px;

    padding:12px 6px;
}

.news-new{
    min-width:40px;
    font-size:10px;
    padding:3px 0;
}

.news-date{
    width:72px;
    font-size:12px;
    flex-shrink:0;
}

.news-title{
    flex:1;
    font-size:14px;
    line-height:1.3;

    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

/* VIEW MORE */
.news-more{
    margin-top:18px;
}

.news-more a{
    font-size:14px;
}

}