 @import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700;900&display=swap');
.page main{margin-top:200px;}

        /* --- 基本レイアウト --- */
        body {
            margin: 0;
            padding: 0;
            min-height: 100vh;
            overflow-y: auto;
            /* スクロールを許可 */
            overflow-x: hidden;
            font-family: 'Noto Sans JP', sans-serif;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
        }

/* --- 汎用フェードアニメーション --- */

/* 1. 初期状態：透明にしておく */
.fade-in-box {
    opacity: 0;
    /* 動きを滑らかにする設定（1.2秒かけてゆっくり表示） */
    transition: opacity 1.2s ease-out;
    /* 念のため、要素が重なった時にクリックを邪魔しない設定 */
    pointer-events: none; 
}

/* 2. 画面に入った時に付与されるクラス */
.fade-in-box.is-animated {
    opacity: 1;
    pointer-events: auto; /* 表示されたらクリック可能にする */
}
        /* --- イントロ（ロゴレイヤー） --- */
        #intro-overlay {
            position: fixed;
            top: 0;
            left: 0;
            width: 100vw;
            height: 100vh;
            background: #f7eee2;
            z-index: 500;
            display: flex;
            justify-content: center;
            align-items: center;
            opacity: 0;
            transition: opacity 0.8s ease-in-out;
            pointer-events: none;
        }

        #intro-logo {
            width: 40vw;
            max-width: 400px;
            opacity: 0;
            transform: scale(0.5);
            transition: all 0.6s steps(3);
        }

        #intro-logo.don-active {
            opacity: 1;
            transform: scale(1);
        }

        #intro-logo.simple-fade {
            transition: opacity 0.8s ease;
            transform: scale(1);
        }
/* --- ローディング表示のスタイル --- */
#loader-wrapper {
    position: fixed; /* 画面に固定 */
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 15px;
    z-index: 600; /* 白幕(500)より常に手前 */
    text-align: center;
}

#load-percentage {
    font-size: 1.5rem;
    font-weight: 900;
    color: #d16e7d; /* 椿レッド */
    font-family: 'Noto Sans JP', sans-serif;
}

.loader-bar {
    width: 150px;
    height: 2px;
    background: rgba(209, 110, 125, 0.1);
    position: relative;
}

/* カウントアップに合わせて伸びるライン */
.loader-bar::after {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    width: var(--progress, 0%); /* JSから制御 */
    background: #d16e7d;
    transition: width 0.1s linear;
}

.loader-fadeout {
    opacity: 0 !important;
    transition: opacity 0.6s ease;
    pointer-events: none;
}
        /* --- メインビジュアル領域 --- */
        .slider-container {
            width: 100vw;
            height: 100vh;
            display: flex;
            justify-content: center;
            align-items: center;
            position: relative;
            background: #f7eee2;
        }

        /* キャッチコピー */
        .catchphrase-container {
            position: absolute;
            left: 15%;
            top: 50%;
            transform: translateY(-50%);
            z-index: 610;
            /* イラスト(600)より手前 */
            color: #ffffff;
            pointer-events: none;
            opacity: 0;
            transition: opacity 1.5s ease;
            text-align: center;
        }

        .slider-container.ready .catchphrase-container {
            opacity: 1;
        }

        .catch-main {
            font-size: 3rem;
            font-weight: 700;
            display: block;
            margin-bottom: 1rem;
            letter-spacing: 0.05em;
            line-height: 1.2;
        }

        .catch-sub {
            font-size: 1.5rem;
            font-weight: 500;
            line-height: 2;
            letter-spacing: 0.08em;
        }

        /* スライドショーSVG */
        svg#slider-svg {
            width: 88%;
            height: auto;
            display: block;
            padding-top: 100px;
            opacity: 0;
            transition: opacity 1.5s ease;
            filter: brightness(1);
        }

      /* 初期状態：スマホ用を隠す */
.sp-logo {
    display: none;
}

/* PC版の表示（既存のスタイルを維持） */
#fixed-logo.pc-logo {
    position: absolute;
    top: 20px;
    left: 40px;
    width: 300px;
    height: auto;
    z-index: 650;
    opacity: 0;
    transition: opacity 1.2s ease;
}

#fixed-logo.pc-logo.show {
    opacity: 1;
}

        /* --- ナビゲーションメニュー（PC通常時） --- */
        .header-menu {
            position: fixed;
            top: 40px;
            right: 40px;
            z-index: 9998;
            /* ハンバーガー(9999)のすぐ下 */
            display: flex;
            align-items: flex-start;
            gap: 15px;
            color: #4a4a4a;
            font-weight: 600;
            font-size: 1rem;
            opacity: 0;
            /* transitionにtransformを含め、その場フェードを可能に */
            transition: opacity 0.6s ease, transform 0.6s ease, right 0.5s cubic-bezier(0.4, 0, 0.2, 1);
        }

        .header-menu.show {
            opacity: 1;
        }

        /* 【PC用】スクロール時のその場フェードアウト */
        @media (min-width: 1025px) {
            .header-menu.is-scrolled {
                opacity: 0 !important;
                pointer-events: none;
                transform: translateY(-10px);
            }

            /* 【PC用】スクロール後にハンバーガーで開いた時のスタイル */
            .header-menu.is-scrolled.active {
                right: 0 !important;
                top: 0;
                width: 300px;
                height: 100vh;
                background: #fff;
                flex-direction: column;
                align-items: center;
                justify-content: flex-start;
                padding-top: 100px;
                opacity: 1 !important;
                pointer-events: auto;
                transform: translateY(0);
                box-shadow: -10px 0 30px rgba(0, 0, 0, 0.1);
            }

            .header-menu.is-scrolled.active .menu-divider {
                display: none;
            }

            .header-menu.is-scrolled.active .menu-item {
                width: 100%;
                text-align: center;
                padding: 15px 0;
                border-bottom: 1px solid rgba(0, 0, 0, 0.05);
            }
        }

        .menu-item {
            text-decoration: none;
            color: inherit;
            transition: color 0.3s ease;
            cursor: pointer;
        }

        .menu-item:hover {
            color: #e67e22;
        }

        .menu-divider {
            color: #ccc;
            font-size: 0.8rem;
            pointer-events: none;
        }

        /* 特別支援ボタン */
        .menu-item.menu-special {
            position: relative;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            text-align: center;
            color: #ffffff;
            font-size: 1rem;
            line-height: 1.5;
            font-weight: 700;
            background-image: url(/img/menu_back-01.svg);
            background-size: contain;
            background-repeat: no-repeat;
            background-position: center top;
            width: 200px;
            height: 180px;
            padding-top: 10px;
            margin-top: -10px;
            box-sizing: border-box;
        }

        .menu-item.menu-special::before {
            content: "";
            position: absolute;
            top: 25px;
            width: 35px;
            height: 35px;
            background-image: url(/img/heart-01.svg);
            background-size: contain;
            background-repeat: no-repeat;
            background-position: center;
            animation: heartBeat 2s infinite ease-in-out;
        }

        @keyframes heartBeat {

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

            50% {
                transform: scale(1.15);
            }
        }

        /* --- ハンバーガーボタン --- */
        /* --- ハンバーガーボタン：丸枠に長めの2本線 --- */
        .hamburger {
            display: none;
            /* 初期は非表示（PC通常時） */
            position: fixed;
            top: 25px;
            right: 25px;

            /* サイズを少し大きくし、完全な丸にします */
            width: 60px;
            height: 60px;
            border-radius: 50%;
            /* 丸枠 */

            z-index: 9999;
            /* 最前面 */
            cursor: pointer;
            background: #fff;
            /* ベージュ（少し不透明度を上げる） */

            /* 中の線を中央に配置するためのFlex設定 */
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            gap: 8px;
            /* 線と線の間隔 */

            padding: 0;
            /* Flexで配置するためパディングは不要 */
            box-sizing: border-box;
            opacity: 0;
            transition: opacity 0.5s ease, background-color 0.3s ease, transform 0.3s ease;


        }

        /* 準備完了クラス(ready-to-show)がbody等についた時に表示許可 */
        .ready-to-show .hamburger {
            display: flex;
            /* none から flex に */
        }

        /* スマホ時またはスクロール時に見えるようにする */
        @media (max-width: 1024px) {
            .hamburger {
                display: flex;
                opacity: 1;
            }
        }

        .hamburger.is-scrolled {
            display: flex;
            opacity: 1;
        }

        /* ホバー時の演出（少し大きくする） */
        .hamburger:hover {
            transform: scale(1.05);

        }

        /* --- 中の2本線 --- */
        .hamburger span {
            display: block;
            /* 枠に対して「長め」の線にする（幅の約60%） */
            width: 36px;
            height: 2px;
            /* 線の太さ */
            background-color: #4a4a4a;
            /* 線の色 */

            /* アニメーションの起点（中央） */
            transform-origin: center;
            transition: transform 0.4s ease, opacity 0.3s ease, background-color 0.3s ease;

            /* 元のコードにあった margin-bottom はFlexを使うため不要 */
            margin: 0;
        }

        /* 3本目は使わないので、もしHTMLに3本あっても非表示にする */
        .hamburger span:nth-child(3) {
            display: none;
        }

        /* --- アクティブ時（×になる）のアニメーション --- */
        /* 1本目を右斜め下に回転 */
        .hamburger.active span:nth-child(1) {
            transform: translateY(5px) rotate(45deg);
            /* gapの半分調整 */
            background-color: #e67e22;
            /* アクティブ時の色（任意） */
        }

        /* 2本目を左斜め下に回転して重ねる */
        .hamburger.active span:nth-child(2) {
            transform: translateY(-5px) rotate(-45deg);
            background-color: #e67e22;
        }

        /* --- イラスト配置 --- */
        .illustration {
            position: absolute;
            z-index: 600;
            /* イントロ幕(500)より手前 */
            opacity: 0;
            transform: scale(2.5) translateY(-150px) rotate(-20deg);
            transition: opacity 0.3s steps(2), transform 0.5s steps(3);
            pointer-events: none;
        }
/* --- リロード時専用：単純なフェードイン --- */
.illustration.simple-fade-in {
    opacity: 1;
    transform: scale(1) translateY(0) rotate(0deg); /* アニメーションなしの最終形 */
    transition: opacity 1.5s ease; /* ゆっくりフェードイン */
}
        .illustration.don-active {
            opacity: 1;
            transform: scale(1) translateY(0) rotate(0deg);
        }

        .pos-spoon {
            width: 28vw;
            top: 5vh;
            left: -10vw;
        }

        .pos-fork {
            width: 28vw;
            top: 73vh;
            left: -5vw;
        }

        .pos-hashi {
            width: 28vw;
            top: 60vh;
            right: -1vw;
        }

        .shaking {
            animation: komaAnime 0.8s steps(1) infinite;
        }

        @keyframes komaAnime {

            0%,
            100% {
                transform: rotate(0deg);
            }

            50% {
                transform: rotate(var(--rot)) translate(var(--tx), var(--ty));
            }
        }

        /* --- スマホ時のレイアウト調整 (1024px以下) --- */
        @media (max-width: 1024px) {
            #fixed-logo {
                width: 180px;
                top: 15px;
                left: 15px;
            }

          .header-menu {
        /* 修正：!important を外す */
        display: flex; 
        position: fixed;
        top: 0;
        /* 修正：初期状態を画面外（右側）へ */
        right: -100%; 
        width: 80%;
        max-width: 300px;
        height: 100vh;
        background: #fff;
        flex-direction: column;
        align-items: center;
        justify-content: flex-start;
        padding-top: 100px;
        gap: 10px;
        /* 修正：opacity は 1 でOK（位置で隠すため） */
        opacity: 1; 
        box-shadow: -10px 0 30px rgba(0, 0, 0, 0.1);
        z-index: 9998;
        /* 追加：スライドして出てくるアニメーション */
        transition: right 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    }

    /* ハンバーガーが開いた時 */
    .header-menu.active {
        /* 修正：!important を外して 0 にする */
        right: 0; 
    }

            .menu-divider {
                display: none;
            }

            .menu-item {
                font-size: 1.1rem;
                width: 100%;
                text-align: center;
                padding: 15px 0;
                border-bottom: 1px solid rgba(0, 0, 0, 0.05);
            }

            .menu-item.menu-special {
                width: 160px;
                height: 140px;
                margin-left: 0;
                margin-top: 20px;
                padding-top: 20px;
            }

            .menu-item.menu-special::before {
                top: 10px;
                width: 25px;
                height: 25px;
            }
        }

        /* スライド画像演出 */
        .slide-img {
			transform-origin: 290px 170px !important;transition: transform 6.5s linear;
        }

        .zoom-active {
            transform: scale(1.15);
        }

        .shape-layer {
            transition: opacity 1.5s ease-in-out;
            opacity: 0;
        }

        /* 下のコンテンツセクション */
        .content-section {
            position: relative;
            z-index: 1;
            /* ハンバーガー(9999)より奥 */
            width: 100%;
            padding: 0px 0;
        }
.back01{background:#f7eee2;}
/* 親要素をフレックスボックスにする */

.about {
  display: flex;
  align-items: flex-start;
  gap: 2rem;
  background: #fff;
  max-width: 1100px;
  padding: 80px 150px 80px 30px;
  border-radius: 50px;
  margin: 0 auto;
  
  /* 追加：ここを基準点にする */
  position: relative;
  z-index: 1; 
}


.about h2 {
  font-size: 3rem;
  color: #d0667b;
  writing-mode: vertical-rl;
  width: fit-content;
  text-orientation: mixed;
  white-space: nowrap; 
  
  /* ここを調整！ 1.2 から 1.5 〜 2.0 程度に増やす */
  line-height: 1.5; 
}


.about p {margin: 0;font-size:1.2rem;line-height:2.5rem;

}



.about h2, 
.about p {
	
  /* 追加：画像より上に持ってくる */
  position: relative;
  z-index: 2; 
}

.about img {
  position: absolute;width: 28%;
  /* 修正：マイナスにせず、テキスト(z-index: 2)より低い値にする */
  z-index: 1; 
}

/* 1つめの画像 */
.about img:first-of-type {
  left:0;
  top: -7vh;
}

/* 2つめの画像 */
.about img:nth-of-type(2) {
  right: 0;
  bottom:-7vh;
}



/* セクション自体の高さを確保し、波の基準にする */
.section01 {
  position: relative;
	padding-top:200px;
  padding-bottom: 200px; /* 波が表示されるスペース */
  overflow: hidden; /* 波がはみ出さないように */
}

/* --- 波のアニメーション設定 --- */

/* 1. コンテナの配置 */
.wave-container {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    line-height: 0;
    z-index: 5; /* about(1)より上で、テキスト(2)よりは下 */
}

.waves {
    width: 100%;
    height: 15vh;
    min-height: 100px;
    max-height: 150px;
}

/* 2. アニメーションを適用するクラス名を修正（parallaxに合わせる） */
.parallax > use {
    animation: move-forever 25s cubic-bezier(.55,.5,.45,.5) infinite;
}

/* 4枚の波に速度差をつける */
.parallax > use:nth-child(1) {
    animation-delay: -2s;
    animation-duration: 7s;
}
.parallax > use:nth-child(2) {
    animation-delay: -3s;
    animation-duration: 10s;
}
.parallax > use:nth-child(3) {
    animation-delay: -4s;
    animation-duration: 13s;
}
.parallax > use:nth-child(4) {
    animation-delay: -5s;
    animation-duration: 20s;
}

/* 3. アニメーション本体（これがないと動きません） */
@keyframes move-forever {
    0% {
        transform: translate3d(-90px, 0, 0);
    }
    100% {
        transform: translate3d(85px, 0, 0);
    }
}



/* --- Activity01 レイアウト --- */
/* 全体を横並びにするコンテナ */
.activity{padding:150px 0 0px;}
.activity-wrapper {
  display: flex;
  align-items: flex-start;
  gap: 3rem;
  margin: 0 auto 40px;
  /* 全体の幅を少し広げて、右17%の余白があっても画像が潰れないようにする */

}

/* 左側：画像を大きく広げる */
/* 左側：画像を大きく広げる */
/* activity_img01（右側が丸い） */
.activity_img01 {
  flex: 1.4; 
  overflow: hidden;
  /* 親要素に角丸を移動 */
  border-radius: 0 300px 300px 0;
  /* 高さが必要な場合はここで指定（例: 400pxなど） */
  height:600px; 
}

.activity_img01 img {
  width: 100%;
  height: 100%; /* 親の高さに合わせる */
  display: block;
  object-fit: cover; /* 親の形に合わせてきれいに切り抜く */
}

/* activity_img02（左側が丸い） */
.activity_img02 {
  flex: 1.4; 
  overflow: hidden;
  /* 親要素に角丸を移動 */
  border-radius: 300px 0 0 300px;
  /* 01と高さを合わせる */
  height: 600px; 
}

.activity_img02 img {
  width: 100%;
  height: 100%; /* 親の高さに合わせる */
  display: block;
  object-fit: cover;
}

/* 右側：テキスト領域（右17%の余白を維持） */
.activity01 {
  /* 画像に幅を譲るため、こちらは比率を 1 に固定 */
  flex: 1; 
  display: flex;
  align-items: flex-start;
  gap: 2.5rem;
  padding: 60px 15% 0 2%; /* ご要望の 17% を維持 */
}

/* 右側：テキスト領域（右17%の余白を維持） */
.activity02 {
  /* 画像に幅を譲るため、こちらは比率を 1 に固定 */
  flex: 1; 
  display: flex;
  align-items: flex-start;
  gap: 2.5rem;
  padding: 60px 2% 0 15%; /* ご要望の 17% を維持 */
}


.activity01 h2 {
 font-size: 3rem;
  color: #6da2bb;
  writing-mode: vertical-rl; /* 縦書き */
  text-orientation: mixed;
  white-space: nowrap;
  line-height: 1.5;
  margin: 0;
}
.activity02 p,
.activity01 p {
  margin: 0;font-size: 1.2rem;
  line-height: 2.8rem;
  flex: 1; /* 残りの幅をすべて使う */
}

/* --- 画像のカメラワーク演出 --- */
/* --- 画像のカメラワーク演出 --- */

/* 共通設定：最初は透明で少しズレた位置に */
.activity_img01 img,
.activity_img02 img {
    opacity: 0;
    transition: transform 1.5s cubic-bezier(0.25, 1, 0.5, 1), opacity 1.5s ease;
}

/* activity_img01: 左から右へスライドしながら出る */
.activity_img01 img {
    transform: translateX(-30px) scale(1.1); /* 少し左に寄せて大きくしておく */
}

/* activity_img02: 右から左へスライドしながら出る */
.activity_img02 img {
    transform: translateX(30px) scale(1.1); /* 少し右に寄せて大きくしておく */
}

/* 画面に入った時に付与されるクラス */
.is-visible img {
    opacity: 1 !important;
    transform: translateX(0) scale(1) !important; /* 本来の位置・サイズに戻る */
}

/* アニメーションの中身 */
@keyframes cameraPanRight {
    0% { transform: translateX(-10%); }
    100% { transform: translateX(0); }
}

@keyframes cameraPanLeft {
    0% { transform: translateX(0); }
    100% { transform: translateX(-10%); }
}

/* スマホ対応（画面が狭いときは縦並びに戻す） */
@media (max-width: 768px) {
  .activity01 {
    align-items: center;
    text-align: center;
  }
  .activity01 h2 {
    writing-mode: horizontal-tb; /* スマホでは横書きに戻す */
    margin-bottom: 1.5rem;
  }
}



/* 全体のコンテナ */
.news-container {
    max-width: 1100px;
    margin: 200px auto 40px;
    padding: 30px;
    border: 1px #eee solid;
    background: #fff;
}

/* 左右レイアウト */
.news-flex {
    display: flex;
    gap: 40px;
    align-items: flex-start;
}

/* 画像がない場合は1カラムにする */
.news-flex.no-image {
    display: block;
}

/* 左側：ギャラリーエリア（幅を固定する） */
.news-gallery {
    flex: 0 0 45%; /* 幅を45%で固定し、伸縮させない */
    max-width: 500px; /* 必要に応じて最大幅を設定 */
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

/* 1枚目の大きな画像 */
.img-main {
    width: 100%;
}
.img-main img {
    width: 100%;
    height: auto;
    display: block;
}

/* 2枚目以降の小さな画像（2列） */
.img-sub {
    width: calc(50% - 5px);
}
.img-sub img {
    width: 100%;
    height: auto;
    display: block;
}

/* 右側：テキストエリア */
.news-content {
    flex: 1; 
    min-width: 0; /* 長いタイトルが突き抜けるのを防ぐ魔法のプロパティ */
}

.news-date {
    color: #888;
    font-size: 0.9rem;
    margin-bottom: 10px;
}

.news-title {
    font-size: 1.8rem;
    margin-bottom: 20px;
    line-height: 1.4;
}

.news-text {
    line-height: 1.8;
    font-size: 1rem;
    color: #333;
}
/* <span> に対して装飾をつけることで、テキストの上下中央にアイコンが来やすくなります */
.decorated-title {
    display: flex;
    align-items: center;
    gap: 10px;
}

.decorated-title span {
    flex: 1; /* テキスト部分を柔軟に */
}
.news-title.decorated-title {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start; /* 左寄せにする */
    gap: 15px;
    white-space: normal; /* タイトルが長い場合は折り返しを許可する */
    word-wrap: break-word; /* 溢れた単語を改行する */
    width: 100%;
    line-height: 1.4;
}
.decorated-title::before,
.decorated-title::after {
    flex-shrink: 0; /* アイコンがタイトルに押されて潰れるのを防ぐ */
}
/* タイトルの前：/img/fs-01.svg */
.decorated-title::before {
    content: "";
    display: inline-block;
    width: 70px;  /* 画像の大きさに合わせて調整 */
    height: 70px; 
    background-image: url('/img/fs-01.svg');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

/* タイトルの後ろ：/img/fs-02.svg */
.decorated-title::after {
    content: "";
    display: inline-block;
    width: 70px; 
    height: 70px;
    background-image: url('/img/fs-02.svg');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

/* スマホでタイトルが入り切らない場合は折り返しを許可 */
@media (max-width: 768px) {
    .decorated-title {
        white-space: normal;
        flex-wrap: wrap;
    }
	/* タイトルの前：/img/fs-01.svg */
.decorated-title::before {
    width: 30px;  /* 画像の大きさに合わせて調整 */
    height: 30px; 
}
.decorated-title::after {
/* タイトルの後ろ：/img/fs-02.svg */
    width: 30px; 
    height: 30px;

}
}

/* スマホ対応：縦並びにする */
@media (max-width: 768px) {
    .news-flex {
        flex-direction: column;
    }
	.news-container {
    padding: 10px 10px;margin:150px auto 40px;
}
}

/* ページナビゲーション全体のスタイル */
.news-navigation {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 60px;
    padding-top: 30px;
    border-top: 1px solid #eee;font-size:0.8rem;
}

.news-navigation a {
    text-decoration: none;
    color: #333;
    transition: opacity 0.3s;
}

.news-navigation a:hover {
    opacity: 0.6;
}

/* 前後リンクの幅を確保 */
.nav-prev, .nav-next {
    flex: 1;
}

.nav-next {
    text-align: right;
}

/* 一覧へ戻るボタン */
.nav-archive {
    flex: 1;
    text-align: center;
}

.archive-btn {
    display: inline-block;
    padding: 10px 30px;
    background-color: #f5f5f5; /* 背景色 */
    border-radius: 50px; /* 角丸 */
    font-weight: bold;
}

/* スマホ対応：中央寄せで並べる */
@media (max-width: 480px) {
    .news-navigation {
        flex-direction: column;
        gap: 20px;
    }
    .nav-prev, .nav-next, .nav-archive {
        text-align: center;
        width: 100%;
    }
}

/* --- 初期状態：非表示にしておく --- */
.top-news-container {
    opacity: 0;
    visibility: hidden;
    transition: opacity 1.5s ease, visibility 1.5s ease;
    /* 既存のレイアウト設定はそのまま維持 */
    padding: 0 20px;
    position: relative;
    z-index: 10;
margin-top: -105px;
    margin-bottom: -105px;
}

/* --- メインビジュアルの準備ができたら表示（フェードイン） --- */
/* slider-container に .ready がついた時、その隣や配下にあるコンテナを表示させる */
/* 構成に合わせてセレクタを調整してください */
.slider-container.ready + .top-news-container,
.ready-to-show .top-news-container {
    opacity: 1;
    visibility: visible;
}

/* 白いカード部分 */
.news-inner-card {
    background: #fff;
    border-radius: 100px;
    padding: 40px 60px;
    display: flex;
    align-items: center;
    max-width: 1100px;
    margin: 0 auto;
    
    /* 浮いている感を出すために影を少し強めにすると綺麗です */
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1); 
}

/* 左側：見出しセクション */
.news-left-side {
    text-align: center;
    flex: 0 0 200px;
}

.news-main-label {
    color: #c48a58; /* 茶系の文字色 */
    font-size: 1.2rem;
    line-height: 1.4;
    margin-bottom: 15px;
    font-weight: bold;
}

.btn-past-news {
    display: inline-block;
    background-color: #fcebed; /* 薄いピンク */
    color: #d16e7d; /* 濃いピンクの文字 */
    padding: 8px 20px;
    border-radius: 20px;
    text-decoration: none;
    font-size: 0.9rem;
    font-weight: bold;
    transition: 0.3s;
}

.btn-past-news:hover {
    background-color: #f9d8db;
}

/* 中央の仕切り線 */
.vertical-divider {
    width: 2px;
    height: 80px;
    background-color: #eee;
    margin: 0 40px;
}

/* 右側：リスト部分 */
.news-right-side {
    flex: 1;
}

.news-ticker-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.news-ticker-item {
    margin-bottom: 15px;
}

.news-ticker-item:last-child {
    margin-bottom: 0;
}

.news-ticker-item a {
    display: flex;
    text-decoration: none;
    color: #333;
    font-size: 1rem;
    gap: 0px;
}
/* 受付中バッジのスタイル */
.status-badge {
    display: inline-block;
    background-color: #d16e7d; /* 椿レッド */
    color: #fff;
    font-size: 0.75rem;
    font-weight: bold;
    padding: 2px 10px;
    border-radius: 50px;
    margin: 0 10px;
    vertical-align: middle;
    line-height: 1.5;
    flex-shrink: 0; /* 折り返し防止 */
}

/* スマホ等でタイトルが長い場合に備えて、ticker-item を flex にすると綺麗です */
.news-ticker-item a {
    display: flex;
    align-items: center;
}
.news-ticker-item a:hover .ticker-title {
    text-decoration: underline;
}

.ticker-date {
    color: #999;
    flex: 0 0 100px;
}

.ticker-title {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* スマホ対応 */
@media (max-width: 900px) {
	.top-news-container {
        margin-top: -50px;
        margin-bottom: -50px;
    }
    .news-inner-card {
        border-radius: 40px;
        padding: 30px;
    }
    .news-inner-card {
        border-radius: 40px;
        flex-direction: column;
        padding: 30px;
    }
    .vertical-divider {
        width: 60%;
        height: 1px;
        margin: 20px 0;
    }
    .news-left-side {
        flex: none;
        margin-bottom: 10px;
    }
    .news-ticker-item a {
        flex-direction: column;
        gap: 5px;
    }
    .ticker-date {
        flex: none;
    }
}

.top-report-section {
    max-width: 90%;
    margin: 0px auto;
    padding: 0 20px 100px;
	position:relative;
	z-index:100;
}

/* 「活動報告」の見出しラベル */
.report-header {
    margin-bottom: 30px;
}

.report-title-label {
    display: inline-block;
    background-color: #d16e7d; /* 画像のピンク色 */
    color: #fff;
    padding: 5px 20px;
    font-size: 1rem;
    font-weight: bold;
}

/* 4列グリッド */
.report-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}

/* 個別のカード */
.report-card {
    background: #fff;
    border: 1px solid #eee;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.report-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(0,0,0,0.05);
}

.report-card a {
    text-decoration: none;
    color: inherit;
    display: block;
}

/* カード画像部分 */
.report-card-img {
    width: 100%;
    aspect-ratio: 4 / 3; /* 画像の比率を統一 */
    overflow: hidden;
}

.report-card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* カードテキスト部分 */
.report-card-body {
    padding: 20px 15px;
}

.report-date {
    font-size: 0.85rem;
    color: #999;
    margin-bottom: 8px;
}

.report-card-title {
    font-size: 1rem;
    color: #c48a58; /* 画像の茶色い文字色 */
    line-height: 1.5;
    font-weight: bold;
    /* 2行以上は「...」で省略する場合 */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* 下部ボタン */
.report-footer {
    text-align: center;
    margin-top: 40px;
}

.btn-past-report {
    display: inline-block;
    background-color: #fcebed;
    color: #d16e7d;
    padding: 12px 40px;
    border-radius: 50px;
    text-decoration: none;
    font-weight: bold;
    transition: 0.3s;
}

.btn-past-report:hover {
    background-color: #f9d8db;
}

/* スマホ対応 */
@media (max-width: 1024px) {
    .report-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {
    .report-grid {
        grid-template-columns: 1fr;
    }
}


/* セクション全体 */
.support-section {
    background-color: #f2e6e6; /* 淡いピンク系の背景色 */
    padding: 150px 20px 250px;position:relative;
}

.support-inner {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    gap: 60px;
    align-items: flex-start;
}

/* 左側：メッセージ */
.support-message {
    flex: 1;
}

.support-title {
    color: #C09656; /* ゴールド・ブラウン系の色 */
    font-size: 2.4rem;
    margin-bottom: 40px;
    font-weight: bold;
}

.support-text p {
    font-size: 1.1rem;
    line-height: 2;
    margin-bottom: 1.5rem;
    color: #333;
}

/* 右側：カード */
.support-cards {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.support-card {
    background: #fff;
    overflow: hidden;
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}

.card-type {
    font-size: 1.6rem;
    padding: 20px 30px;
    margin: 0;
    border-bottom: 2px solid;
}

.card-content {
    padding: 30px;
    min-height: 50px;
    display: flex;
    align-items: center;
}

.card-content p {
    margin: 0;
    font-size: 1rem;
    line-height: 1.6;
}

.card-footer {
    display: flex;
    border-top: 1px solid #eee;
}

.card-price {
    flex: 1;
    padding: 20px 30px;
    font-weight: bold;
    font-size: 1.1rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.card-price span {
    font-size: 0.8rem;
    font-weight: normal;
    display: block;
    margin-top: 5px;
}

.btn-support {
    width: 160px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    color: #fff;
    font-weight: bold;
    transition: opacity 0.3s;
}

.btn-support:hover {
    opacity: 0.8;
}

/* --- 正会員の配色 --- */
.member-regular .card-type {
    color: #d16e7d; /* ピンクレッド系 */
    border-color: #d16e7d;
}
.member-regular .btn-support {
    background-color: #d16e7d;
}

/* --- 賛助会員の配色 --- */
.member-supporting .card-type {
    color: #e2ab3b; /* ゴールド・イエロー系 */
    border-color: #e2ab3b;
}
.member-supporting .btn-support {
    background-color: #e2ab3b;
}

/* スマホ対応 */
@media (max-width: 900px) {
    .support-inner {
        flex-direction: column;
        gap: 40px;
    }
    .support-title {
        font-size: 2rem;
        text-align: center;
    }
    .card-footer {
        flex-direction: column;
    }
    .btn-support {
        width: 100%;
        padding: 15px;
    }
}

/* セクション全体 */
.ceo-message-section {
    background-color: #fff;
    padding: 150px 20px;
}

.ceo-inner {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    align-items: center; /* 垂直中央揃え */
    gap: 60px;
}

/* 左側：写真の楕円切り抜き */
.ceo-image {
    flex: 0 0 400px; /* 幅を350pxで固定 */
    height: 400px;
    overflow: hidden;
    /* 楕円形の再現：四隅の比率を変える */
    border-radius: 45% 55% 45% 55% / 55% 45% 55% 45%; 
    /* もし画像通りのシンプルな楕円なら border-radius: 50% でOK */
}

.ceo-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* 右側：コンテンツ */
.ceo-content {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.ceo-text p {
    font-size: 1.1rem;
    line-height: 2.2;
    color: #333;
    margin-bottom: 2rem;
}

/* 右下の署名 */
.ceo-signature {
    align-self: flex-end; /* 右寄せ */
    display: flex;
    align-items: baseline;
    gap: 20px;
    margin-top: 20px;
}

.ceo-role {
    font-size: 1rem;
    letter-spacing: 0.3em;
}

.ceo-name {
    font-size: 1.2rem;
    font-weight: bold;
    color: #333;
}

/* スマホ対応 */
@media (max-width: 850px) {
    .ceo-inner {
        flex-direction: column;
        text-align: center;
        gap: 40px;
    }
    .ceo-image {
        flex: 0 0 280px;
        width: 280px;
        height: 280px;
    }
    .ceo-signature {
        align-self: center; /* スマホでは署名も中央 */
    }
}

.site-footer {
    background-color: #fff;
    padding: 60px 20px 20px;
    border-top: 1px solid #eee;
    color: #333;
}

.footer-inner {
    max-width: 1100px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 40px;
}

/* 左側 */
.footer-logo {
    font-size:1rem;
    margin: 0 0 10px;
    font-weight: bold;
max-width:350px;
}

.footer-logo img{
width:100%;
}


.footer-address {
    font-size: 1rem;
    margin: 0;
}

/* 中央 SNS */
.footer-sns {
    display: flex;
    gap: 15px;
    align-items: center;
}

.sns-link img {
    width: 45px; /* デザインに合わせて調整 */
    height: 45px;
    transition: transform 0.3s;
}

.sns-link:hover img {
    transform: scale(1.1);
}

/* 右側 ナビゲーション */
.footer-nav-container {
    display: flex;
    gap: 60px;
}

.footer-nav {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-nav li {
    margin-bottom: 12px;
}

.footer-nav a {
    text-decoration: none;
    color: #c48a58; /* 画像内のリンク文字色 */
    font-size: 0.95rem;
    font-weight: bold;
    transition: color 0.3s;
}

.footer-nav a:hover {
    color: #d16e7d; /* ホバー時はピンクに */
}

/* コピーライト */
.footer-copyright {
    text-align: center;
    margin-top: 60px;
    font-size: 0.8rem;
    color: #999;
}

/* スマホ対応 */
@media (max-width: 900px) {
    .footer-inner {
        flex-direction: column;
        text-align: center;
        gap: 30px;
    }
    .footer-nav-container {
        gap: 30px;
        text-align: left;
    }
}

@media (max-width: 480px) {
    .footer-nav-container {
        flex-direction: column;
        gap: 10px;
        text-align: center;
    }
}
.teato{position:absolute;right:2vw;width:20vw;top:-15vw;}
.maru{position:absolute;left:-25vw;width:40vw;bottom:-20vw;z-index:-5;}



/* フォーム全体のコンテナ */
article {
    max-width: 800px;
    margin: 0 auto;
    padding: 20px;
}

/* 切り替えスイッチのスタイル */
.form-selector-container {
    margin-bottom: 40px;
    text-align: center;
}

.form-selector {
    display: inline-flex;
    background: #f0f0f0;
    padding: 5px;
    border-radius: 50px;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.1);
}

.form-selector input[type="radio"] {
    display: none; /* 本物のラジオボタンは隠す */
}

.form-selector label {
    padding: 12px 30px;
    cursor: pointer;
    border-radius: 50px;
    transition: all 0.3s ease;
    font-weight: bold;
    color: #666;
    margin: 0;
}

/* チェックされている方のスタイル */
.form-selector input[type="radio"]:checked + label {
    background: #fff; /* 背景白 */
    color: #d16b70;    /* 椿をイメージした赤系 */
    box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}

/* フォームタイトル */
.form-content h3 {
    text-align: center;
    font-size: 1.5rem;
    margin-bottom: 30px;
    position: relative;
    padding-bottom: 15px;
}

.form-content h3::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 50px;
    height: 3px;
    background: #d16b70;
}

/* Contact Form 7 の共通入力欄スタイル */
.wpcf7-form p {
    margin-bottom: 20px;
}

.wpcf7-form label {
    display: block;
    margin-bottom: 5px;
    font-weight: bold;
}

.wpcf7-text,
.wpcf7-tel,
.wpcf7-email,
.wpcf7-date,
.wpcf7-textarea,
.wpcf7-select {
    width: 100%;
    padding: 12px;
    border: 1px solid #ccc;
    border-radius: 8px;
    box-sizing: border-box;
    background: #fafafa;
    font-size: 16px;
}

.wpcf7-text:focus,
.wpcf7-date:focus,
.wpcf7-textarea:focus {
    border-color: #d16b70;
    outline: none;
    background: #fff;
    box-shadow: 0 0 5px rgba(209, 107, 112, 0.2);
}

/* 送信ボタン */
.wpcf7-submit {
    display: block;
    width: 250px;
    margin: 30px auto 0;
    padding: 15px;
    background: #d16b70;
    color: #fff;
    border: none;
    border-radius: 50px;
    font-size: 18px;
    font-weight: bold;
    cursor: pointer;
    transition: background 0.3s ease;
}

.wpcf7-submit:hover {
    background: #b55a5e;
}

/* エラーメッセージの装飾 */
.wpcf7-not-valid-tip {
    color: #f00;
    font-size: 0.9rem;
    margin-top: 5px;
}

.wpcf7-response-output {
    margin-top: 20px;
    padding: 15px !important;
    border-radius: 8px;
}

/* 初期状態：ボタンを半透明にしてクリック不可にする */
.wpcf7-submit {
    background-color: #d16b70 !important;
    opacity: 0.3;
    pointer-events: none;
    transition: opacity 0.3s ease;
}

/* クラス「is-active」が付いた時だけ明るくする */
.wpcf7-submit.is-active {
    opacity: 1 !important;
    pointer-events: auto !important;
    cursor: pointer;
}

/* ページネーション全体のコンテナ */
.pagination {
    margin: 40px 0;
    text-align: center;
}

.pagination ul.page-numbers {
    display: inline-flex;
    padding: 0;
    list-style: none;
    gap: 8px; /* 数字同士の間隔 */
    flex-wrap: wrap;
    justify-content: center;
}

.pagination ul.page-numbers li {
    margin: 0;
}

/* 各リンクと現在のページの共通スタイル */
.pagination ul.page-numbers li a,
.pagination ul.page-numbers li span {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    height: 44px;
    padding: 0 15px;
    text-decoration: none;
    font-size: 16px;
    font-weight: bold;
    color: #333;
    background-color: #fff;
    border: 1px solid #ddd;
    border-radius: 4px;
    transition: all 0.3s ease;
}

/* ホバー時の挙動 */
.pagination ul.page-numbers li a:hover {
    background-color: #f0f0f0;
    border-color: #bbb;
    color: #000;
}

/* 現在表示しているページの数字（アクティブ） */
.pagination ul.page-numbers li span.current {
    background-color: #333; /* お好みのメインカラーに変更してください */
    border-color: #333;
    color: #fff;
}

/* 「前へ」「次へ」のスタイル（少し幅を広げる場合） */
.pagination ul.page-numbers li a.prev,
.pagination ul.page-numbers li a.next {
    background-color: #fafafa;
    font-size: 14px;
}

/* -------------------------------------------
   チラシ専用スケーリング（スマホ崩れ防止）
------------------------------------------- */
.single-flyer main{margin-bottom:100px;}
.single-flyer .news-navigation {
	max-width:1040px;
margin: 60px auto 0px;
}
#flyer-image-display{margin-top:100px;}
.flyer-viewport {margin:200px auto 0px;
    width: 100%;
    overflow: hidden;
    background: ;
    display: flex;
    justify-content: center;
}

.flyer-container {border:1px solid #eee;
    width: 800px !important;    /* 強制固定 */
    min-width: 800px !important; /* 強制固定 */
    min-height: 1130px !important;
    display: flex !important;
    flex-direction: column !important;
    position: relative !important;
    margin: 0 !important;       /* スケーリングのズレ防止 */
    padding: 0 !important;
    transform-origin: top center !important; /* JSと合わせる */
}
/* ガーランド（旗） */
.garland-decor {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 80px;
    background: url('images/garland.png') repeat-x center top;
    background-size: contain;
    z-index: 10;
}

/* 雲の装飾 */
.cloud {
    position: absolute;
    background: #fff;
    border-radius: 100px;
    opacity: 0.8;
    z-index: 1;
}
.cloud::before, .cloud::after {
    content: '';
    position: absolute;
    background: #fff;
    border-radius: 100px;
}
.cloud-1 { width: 120px; height: 40px; top: 150px; left: 50px; }
.cloud-2 { width: 100px; height: 35px; top: 220px; right: 80px; }

/* ヘッダー周り */
.flyer-header {
    padding: 40px 20px 20px;
    position: relative;
    z-index: 5;
    text-align: center;
}
.logo-area img{width:45%;margin:0 auto 20px;}
.flyer-main-title {
    color: #e65565;
    font-size: 56px;
    font-weight: bold;
    margin: 10px 0 0;
}
.event-count-wrap {
    margin-top: 0px;
}
.event-count-text {
    font-size: 55px;
    color: #006eb0;font-family: "Kiwi Maru", serif;font-weight:500;

}
.f-day{margin:0 0;font-size:30px;}
/* 日時バナー */
.flyer-datetime-banner {
    background-color: #E8AE3D;
    color: #fff;
    border-radius: 60px;
    margin: 0 80px 30px;
    padding: 10px;
    text-align: center;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}
.date-large { font-size: 35px; margin-left: 10px; }
.f-time { font-size: 25px; margin-top: 0px; margin-bottom:5px;}

/* 情報カード */
.flyer-info-card {
    margin: 0 80px;
    padding:0px 60px;
    border-radius: 25px;
    min-height: 400px;
    position: relative;
    z-index: 5;
}
.accent-info {
    color: #b87e44;
    font-size: 25px;
    font-weight: bold;
    text-align: center;
    line-height: 1.4;
}
.detail-grid {
    display: flex !important;
    flex-direction: row !important; /* 絶対に横並び */
    justify-content: space-between !important;
    width: 100% !important;
}
.detail-column {
    width: 48% !important;
    color: #727171;font-weight:500;
    font-size: 15px;
    line-height: 1.6;
}

/* 子供たちのイラスト */
.kids-illustration {
    position: absolute;
    bottom: 70px;
    left: 0;
    width: 100%;
    text-align: center;
    z-index: 99;
}
.kids-illustration img {
    width: 80%;
    height: auto;
}
/* デザイン2 (bg2.jpg) の時：例えばフッターを少し落ち着いた茶色に */
.is-bg-2 .flyer-footer {
    background: #E7B56C; 
}
.is-bg-2 .flyer-datetime-banner {
    background-color: #E7B56C;
}
.is-bg-2 .event-count-text{color:#006eb0;}
.is-bg-2 .detail-column{color:#727171;}



/* デザイン2 (bg2.jpg) の時：例えばフッターを少し落ち着いた茶色に */
.is-bg-3 .flyer-footer {
    background: #006eb0; 
}
.is-bg-3 .flyer-datetime-banner {
    background-color: #006eb0;
}
.is-bg-3 .event-count-text{color:#006eb0;}
.is-bg-3 .detail-column{color:#727171;}


/* デザイン2 (bg2.jpg) の時：例えばフッターを少し落ち着いた茶色に */
.is-bg-4 .flyer-footer {
    background: #EA9080; 
}
.is-bg-4 .flyer-datetime-banner {
    background-color: #EA9080;
}
.is-bg-4 .event-count-text{color:#BC3D3D;}
.is-bg-4 .detail-column{color:#727171;}


/* デザイン2 (bg2.jpg) の時：例えばフッターを少し落ち着いた茶色に */
.is-bg-5 .flyer-footer {
    background: #008B6A; 
}
.is-bg-5 .flyer-datetime-banner {
    background-color: #008B6A;
}
.is-bg-5 .event-count-text{color:#AB272C;}
.is-bg-5 .detail-column{color:#727171;}




/* デザイン2 (bg2.jpg) の時：例えばフッターを少し落ち着いた茶色に */
.is-bg-6 .flyer-footer {
    background: #4a90b5; 
}
.is-bg-6 .flyer-datetime-banner {
    background-color: #4a90b5;
}
.is-bg-6 .event-count-text{color:#006eb0;}
.is-bg-6 .detail-column{color:#727171;}



/* フッター */
.flyer-footer {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 800px; /* 親の幅に合わせる */
    background: #E8AE3D;
    color: #fff;
    padding: 20px 50px;
    z-index: 10;
    box-sizing: border-box; /* パディングを含める */
}
.address-tel p{margin:0;}
/* SVGロゴが表示されない対策 */
.flyer-logo-f {
    display: block;
    width: 260px;
    height: auto;
    min-height: 50px; /* 高さが0になるのを防ぐ */
}
/* html2canvas用：要素が重ならないための微調整 */
.footer-contact {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
}
.npo-name { font-size: 32px; font-weight: bold; margin:0;}
.qr-box {
    background: #fff;
    width: 80px;
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #333;
}
.qr-box img{
width:100%;
}
.btn-download-flyer {
    background-color: #00769a; /* チラシ内の文字色に合わせた青 */
    color: #fff;
    border: none;
    padding: 15px 30px;
    border-radius: 50px;
    font-size: 0.8rem;
    font-weight: bold;
    cursor: pointer;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    transition: 0.3s;
}

.btn-download-flyer:hover {
    background-color: #1a638a;
    transform: translateY(-2px);
}

.btn-download-flyer:active {
    transform: translateY(0);
}

.f-day-row{margin:0;}
/* 日付の前に「日程」を表示 */
.f-day-row::before {
    content: "日程 ";
    font-size: 30px; /* 元のサイズに合わせる */
}

/* 時間の前に「時間：」を表示 */
.f-time-row::before {
    content: "時間：";
}

.f-time-row {
    font-size: 25px;
    margin-top: 0px;
    margin-bottom: 5px;
}


/* スマホ対応：少し小さくする */
@media (max-width: 480px) {
    .pagination ul.page-numbers li a,
    .pagination ul.page-numbers li span {
        min-width: 38px;
        height: 38px;
        padding: 0 10px;
        font-size: 14px;
    }
}

/* アーカイブタイトルの装飾設定 */
.archive-title {
    text-align: center;
    font-size: 2.5em;
    margin-bottom: 50px;
    
    /* アイコンを左右に並べるための設定 */
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px; /* アイコンと文字の間隔 */
}

/* タイトルの前：fs-01.svg */
.archive-title::before {
    content: "";
    display: inline-block;
    width: 70px;
    height: 70px;
    background-image: url(/img/fs-01.svg);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    flex-shrink: 0;
}

/* タイトルの後ろ：fs-02.svg */
.archive-title::after {
    content: "";
    display: inline-block;
    width: 70px;
    height: 70px;
    background-image: url(/img/fs-02.svg);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    flex-shrink: 0;
}

/* スマホ対応：アイコンを少し小さくする */
@media (max-width: 768px) {
    .archive-title {
        font-size: 1.8em;
        gap: 10px;
    }
    .archive-title::before,
    .archive-title::after {
        width: 40px;
        height: 40px;
    }
}

.archive main{max-width:90%;margin:200px auto 100px;}
/* 予約ボタンのホバー演出 */
/* 応募・お問い合わせボタン（ご提示のデザイン） */
.btn-reservation {
    display: inline-block;
    background-color: #fcebed;
    color: #d16e7d;
    padding: 12px 40px;
    border-radius: 50px;
    text-decoration: none;
    font-weight: bold;
    border: 2px solid #fcebed; /* 枠線を背景と同色で引いておくと安定します */
    transition: 0.3s;
    font-size: 1.1rem;
}

/* ホバー時の演出（少し濃くする） */
.btn-reservation:hover {
    background-color: #d16e7d;
    color: #fff;
    text-decoration: none;
    box-shadow: 0 4px 10px rgba(209, 110, 125, 0.2);
}

/* ボタンの配置エリア（チラシの外側に置く場合） */
.flyer-reservation-area {
    text-align: center;
}

/* 画像をクリックできることを示すマウスカーソル */
.luminous {
    cursor: zoom-in;
    display: block;
}

/* モーダル表示時の背景（真っ黒すぎないように調整） */
.lum-backdrop {
    background-color: rgba(0, 0, 0, 0.8) !important;
}

/* モーダル内の画像に少し角丸をつける（お好みで） */
.lum-lightbox-image {
    border-radius: 8px;
    box-shadow: 0 0 20px rgba(0,0,0,0.5);
}

.sns-share-support {
    text-align: center;
    margin: 30px 0;
}

.btn-insta-share {
    background: linear-gradient(45deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%);
    color: #fff;
    border: none;
    padding: 12px 25px;
    border-radius: 50px;
    font-weight: bold;
    cursor: pointer;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    transition: transform 0.2s;
}

.btn-insta-share:active {
    transform: scale(0.95);
}

.share-guide {
    font-size: 0.8rem;
    margin-top: 8px;
    color: #666;
}

@media (min-width: 1025px) and (max-width: 1400px) {
    #fixed-logo.show {
        width: 200px;
    }
    .catch-main {
        font-size: 2rem;
    }
    .catch-sub {
        font-size: 1.2rem;
    }
    .news-inner-card {
        max-width: 900px;
        padding: 30px 40px;
    }
    svg#slider-svg {
        width: 90%;
    }
    .header-menu {
        font-size: 0.9rem;
        top: 30px;
        right: 30px; /* これがスマホで悪さをしなくなります */
    }
	
	.activity01 {
    padding: 60px 5% 0 2%;
}

.activity-wrapper {
    gap: 1rem;

}

.activity_img01 {
    flex: 1;
}

.activity02 {
    padding: 60px 2% 0 5%;
}

	
	.menu-item.menu-special {

    font-size: 0.9rem;

    width: 150px;
    height: 180px;

}
	.about p {
    font-size: 1rem;line-height: 2rem;
}
	.activity02 p, .activity01 p {
    font-size: 1rem;line-height: 2rem;
}
	.activity01 h2 {
    font-size: 2.5rem;
}
	.support-text p {
    font-size: 1rem;margin-bottom: 0;

}
	.ceo-text p {
    font-size: 1rem;

}
	.activity_img02 {
    flex: 1;
    height: 400px;
}
	.card-content {
    padding: 20px;
    min-height: 40px;
}
}



/* ============================================================
   スマホ・タブレット用スタイル（1024px以下）
   ============================================================ */
@media (max-width: 1024px) {
    /* --- 全体レイアウト --- */
	html{width:100vw;overflow-x:hidden;}
    .page main { margin-top: 120px; } /* ヘッダーの高さを考慮 */

    /* --- メインビジュアル --- */
   .catchphrase-container {
        left: 0;
        top: 65vh;
        width: 100%;
        padding: 0 0px;
    }
    .catch-main { font-size: 1.8rem; }
    .catch-sub { font-size: 1rem; line-height: 1.6; }
 /* 1枚目と2枚目だけスマホ用パターン(xMax/右端基準)に差し替え */
/* 1. スライダー全体のはみ出し設定（これは維持） */
    svg#slider-svg {
        width: 100vw !important;
        height: 85vh !important;
        left: 0 !important;
        transform: none !important;
        padding-top: 0 !important;
		margin-top:5vh;
    }
	#viewport {
 
    }
	.slide-img {
        /* 比率を保って右端を基準に表示（顔が切れにくくなります） */
        width: 580px !important;
        height: 340px !important;
        preserve-aspect-ratio: xMaxYMid slice !important;
    }
 .pos-spoon {
            width: 50vw;
            top: 5vh;
            left: -25vw;
        }

        .pos-fork {
            width: 50vw;
            top: 73vh;
            left: -25vw;
        }

        .pos-hashi {
            width: 50vw;
            top: 75vh;
            right: -1vw;
        }

    /* 2. JSを邪魔せず、中の「画像だけ」を右端に寄せる */
    /* preserveAspectRatio を CSSから上書きします */
    #img1, #img2 {
        preserve-aspect-ratio: xMaxYMid slice; /* 右端を基準にスライス */
    }

    /* もし上記が効かない古いブラウザ対策用：直接x座標をずらす */
    /* JSがimageタグ自体のxを動かしていない場合に有効 */
    #img1, #img2 {
        x: -50; /* 数値は適宜調整してください */
    }
    /* 親コンテナからはみ出た分を隠す */
    .slider-container {
        width: 100vw;
        height: 100vh;
        overflow: hidden; /* これが重要！ */
        position: relative;
    }

    /* --- お知らせセクション (Ticker) --- */
    .top-news-container {
        margin-top: -30px;
       background: #f7eee2;
    }
	.section01 {
    position: relative;
    padding-top: 100px;
    padding-bottom: 130px;
    overflow: hidden;
}
	.top-report-section {

    padding: 0 20px 50px;

}
	.support-section {
    padding: 50px 20px 150px;

}
	.ceo-message-section {
    padding: 50px 20px 150px;
}
	.activity {
    padding: 100px 0 0px;
}
    .news-inner-card {
        flex-direction: column;
        padding: 25px 20px;
        border-radius: 30px;
    }
    .news-left-side { flex: none; margin-bottom: 15px; }
    .news-main-label { font-size: 1.1rem; margin-bottom: 10px; }
    .vertical-divider {
        width: 100%;
        height: 1px;
        margin: 15px 0;
    }
 .news-ticker-item {
        text-align: left;margin-bottom:0px;
    }

    .news-ticker-item a {
        display: flex;
        flex-direction: column; /* 縦に並べる（1行目：日付、2行目：バッジ＋タイトル） */
        align-items: baseline;    /* 中央揃え */
        gap: 8px;
        padding: 15px 0;
    }

    /* 1行目：日付 */
    .ticker-date {
        display: block;
        width: 100%;
        color: #999;
        font-size: 0.85rem;
        margin: 0;
    }

    /* 2行目：バッジとタイトルを横に並べるための設定 */
    .ticker-title {
        display: inline-flex;  /* 👈 ここが重要！バッジを内包できるようにする */
        align-items: center;
        justify-content: center;
        flex-wrap: inherit;       /* タイトルが長すぎる場合は折り返し許可 */
        gap: 8px;
        font-size: 0.95rem;
        white-space: normal;
        line-height: 1.4;
    }

    /* バッジをタイトルの「前」に擬似的に結合 */
    .status-badge {
        display: inline-block; /* タイトルと同じ行に居座らせる */
        margin: 0 !important;
        padding: 2px 8px;
        font-size: 0.7rem;
        vertical-align: middle;
    }


    /* --- Aboutセクション --- */
    .about {
        flex-direction: column;
        padding: 40px 20px;
        border-radius: 30px;
        gap: 1.5rem;
    }
    .about h2 {
        writing-mode: horizontal-tb;
        font-size: 2.2rem;
        text-align: center;
        width: 100%;
    }
    .about p { font-size: 1rem; line-height: 1.8; }
    .about img { width: 40%; }
    .about img:first-of-type { top: -40px; }
    .about img:nth-of-type(2) { bottom: -40px; }

    /* --- 活動内容 (Activity) --- */
    .activity-wrapper {
        flex-direction: column;
        gap: 1.5rem;
    }
    .activity_img01, .activity_img02 {
        width: 100%;
        height: 250px;
        border-radius: 20px !important; /* 角丸をスマホ用に調整 */
    }
    .activity01, .activity02 {
        padding: 20px !important;
        flex-direction: column;
    }
    .activity01 h2, .activity02 h2 {
        writing-mode: horizontal-tb;
        font-size: 2.2rem;
        margin-bottom: 1rem;
    }
    .activity01 p, .activity02 p { font-size: 0.95rem; line-height: 1.8;text-align:left;}
	/* 一つ目の.activity-wrapperだけ余白をゼロにする */
.activity-wrapper:first-of-type {
    margin-bottom: 0 !important;
}

    /* --- 活動報告グリッド (Report) --- */
    .report-grid {
        grid-template-columns: 1fr; /* 1列にする */
        gap: 15px;
    }
    .report-card-title { font-size: 0.95rem; }

    /* --- 支援・会員セクション --- */
    .support-inner {
        flex-direction: column;
        gap: 30px;
    }
    .support-title { font-size: 1.6rem; }
	.support-text p {
    font-size: 0.95rem;line-height:1.8;

}F
    .card-type { font-size: 1.3rem; padding: 15px; }
    .card-content { padding: 20px; }

    /* --- メッセージ・CEO --- */
    .ceo-inner {
        flex-direction: column;
        text-align: left;
    }
    .ceo-image {
        flex: 0 0 200px;
        width: 200px;
        height: 200px;
    }
    .ceo-text p { font-size: 0.95rem; line-height: 1.8; }

    /* --- フッター --- */
    .footer-inner {
        flex-direction: column;
        gap: 30px;
    }
    .footer-nav-container {
        flex-direction: column;
        gap: 15px;
        text-align: center;
    }
	#flyer-image-display{margin-top: 150px;}
	/* PC用を完全に消す */
    .pc-logo {
        display: none !important;
    }

    #fixed-logo.sp-logo {
        display: block;
        position: absolute;
        width: calc(100% - 130px) !important;
        max-width: 350px !important;
        left: 20px !important;
        transform: none !important;
        top: 25px;
        z-index: 650;
		opacity: 0; 
        transition: opacity 1.2s ease; 
        pointer-events: none; 
    }
	#fixed-logo.sp-logo.show {
        opacity: 1;
        pointer-events: auto;
    }

    /* --- ハンバーガーボタンの調整 --- */
    .hamburger {
        /* 【修正】z-indexをイントロ幕(500)より低くするか、初期を透明にする */
        opacity: 0;
        pointer-events: none;
    }

    /* 準備完了後に表示 */
    .ready-to-show .hamburger {
        opacity: 1;
        pointer-events: auto;
    }
    /* --- イントロロゴのサイズアップ --- */
   #intro-logo {
        width: 80vw !important; 
        max-width: 600px !important; 
        height: auto !important;

        /* 【追加】少し上に持ち上げる設定 */
        /* 元々 JS や基本設定で transform: scale(...) などが使われているため、
           位置調整(translateY)を組み合わせて上書きします */
        transform: translateY(-50px) scale(1) !important; 
        
        /* もしアニメーション中（don-active時）の transform と競合して
           動きがおかしくなる場合は、margin-top で調整してください */
        /* margin-top: -30px !important; */
    }
}

/* --- 特殊: 480px以下の極小画面調整 --- */
@media (max-width: 480px) {
    .catch-main { font-size: 1.5rem; }
    .btn-past-report, .btn-reservation {
        width: 85%;
        padding: 12px 20px;
    }
    }
}