/* ==========================================================================
   Reset & Base Styles
   ========================================================================== */
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    background: linear-gradient(135deg, #0f172a 0%, #1e1b4b 50%, #311042 100%);
    min-height: 100vh;
    scroll-behavior: smooth;
}

body {
    font-family: 'Montserrat', 'Noto Sans JP', "Yu Gothic", "游ゴシック", sans-serif;
    font-weight: 300;
    color: #2c2c2c;
    line-height: 1.85;
    letter-spacing: 0.05em;
    -webkit-font-smoothing: antialiased;
/* word-break: break-all;        /* これにより、枠線の端に到達した文字から綺麗に折り返します */
    /* overflow-wrap: break-word; */
    word-break: break-all;        /* これにより、枠線の端に到達した文字から綺麗に折り返します */
    overflow-wrap: break-word;
    line-break: strict;
    background-image:
        radial-gradient(circle at 10% 20%, rgba(99, 102, 241, 0.15) 0%, transparent 40%),
        radial-gradient(circle at 90% 80%, rgba(219, 39, 119, 0.12) 0%, transparent 45%);
    background-attachment: fixed;
    min-height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 40px 20px;
    margin: 0;
    position: relative;
    overflow-x: hidden;
}

.container {
    width: 100%;
    max-width: 440px;
    margin: 0 auto;
    padding: 60px 24px;
    background-color: #f4f1eb;
    border-radius: 32px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5),
                0 0 40px rgba(99, 102, 241, 0.2);
    border: 1px solid rgba(255, 255, 255, 0.1);
    position: relative;
    overflow: hidden;
}

/* ==========================================================================
   PC Background Objects
   ========================================================================== */
.bg-object {
    position: fixed;
    top: 20%;
    width: 400px;
    z-index: 0;
    pointer-events: none;
}

.bg-object img {
    width: 100%;
    height: auto;
    display: block;
}

.bg-object-left {
    left: calc(50% - 400px - 240px);
    top: 0%;
}

.bg-object-right {
    right: calc(50% - 380px - 240px);
}

@media (max-width: 1000px) {
    .bg-object {
        opacity: 0.3;
    }
}

@media (max-width: 480px) {
    .bg-object {
        display: none;
    }
}

/* ==========================================================================
   Entry Button (inline, inside sections)
   ========================================================================== */
.entry-btn-wrapper {
    text-align: center;
    margin-top: 25px;
    margin-bottom: 10px;
}

.entry-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: #333200;
    color: #ffffff;
    text-decoration: none;
    font-size: 13px;
    font-weight: 700;
    padding: 12px 40px;
    border-radius: 4px;
    letter-spacing: 0.1em;
    transition: opacity 0.2s, transform 0.2s;
    border: 1px solid #333200;
    cursor: pointer;
}

.entry-btn:hover {
    opacity: 0.8;
    transform: translateY(-1px);
}

/* ==========================================================================
   Mobile Overrides
   ========================================================================== */
@media (max-width: 480px) {
    body {
        padding: 0;
        background: #f4f1eb;
    }
    .container {
        max-width: 100%;
        border-radius: 0;
        box-shadow: none;
        border: none;
        padding: 50px 20px;
        /* スマホ下部固定ナビ分の余白 */
        padding-bottom: 80px;
    }
}

/* ==========================================================================
   Header & Hero (Key Visual)
   ========================================================================== */
header {
    border-bottom: 1px solid #e5e2dd;
    padding-bottom: 20px;
    margin-bottom: 40px;
}

.logo {
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.25em;
    color: #8a857c;
    margin-left: 45px;
    margin-right: 45px;
}

.hero {
    margin-bottom: 60px;
    text-align: center;
}

.key-visual {
    width: 100%;
    height: auto;
    background-color: #f4f1eb;
    border: 0px solid #eae7e1;
    margin-bottom: 50px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    color: #8a857c;
    position: relative;
    overflow: hidden;
}

.key-visual img {
    width: 100%;
    height: auto;
    display: block;
}

.hero-wrapper {
  position: relative; /* 子要素の基準点にする */
  width: 100%;
  max-width: 500px; /* スマホ表示を想定した幅（適宜調整） */
  margin: 0 auto 100px;
}

.hero-card-wrapper {
  position: relative; /* 子要素の基準点にする */
  width: 100%;
  max-width: 500px; /* スマホ表示を想定した幅（適宜調整） */
  margin: 0 auto ;
}

.bg-image {
  width: 100%;
  height: auto;
  display: block;
}

.overlay-text {
  position: absolute;
  /* 画像の下方中央に配置する指定 */
  bottom: -10%; /* 下からの位置（％で指定するとレスポンシブに対応しやすいです） */
  left: 50%;
  transform: translateX(-50%); /* 中央寄せ */
  
  width: 100%;
  text-align: center;
  pointer-events: none; /* テキストの背景のクリックを阻害しない場合 */
}

@media (max-width: 480px) {
    header {
        display: none;
    }
    .key-visual {
        margin-left: -20px;
        margin-right: -20px;
        width: calc(100% + 40px);
        margin-top: -50px;
        border:none;
    }
}

.kv-title-en {
    font-family: 'Montserrat', sans-serif;
    font-size: 36px;
    font-weight: 300;
    letter-spacing: 0.3em;
    margin-bottom: 10px;
    text-indent: 0.3em;
}

.kv-title-ja {
    font-size: 12px;
    letter-spacing: 0.4em;
    text-indent: 0.4em;
    font-weight: 400;
}

.hero h1 {
    font-size: 24px;
    font-weight: 500;
    letter-spacing: 0.1em;
    line-height: 1.8;
    margin-bottom: 40px;
    color: #333200;
    padding: 20px 0;
}

.hero .intro-lead,
.hero .intro-bullets {
    margin-left: 30px;
    margin-right: 30px;
    text-align: left;
}

.intro-lead {
    font-size: 15px;
    color: #8a857c;
    margin-bottom: 20px;
    font-weight: 400;
}

.intro-lead-dec {
    font-weight: 700;
    text-decoration: underline;
}

.intro-bullets {
    list-style: none;
    margin-bottom: 20px;
    background: #f4f1eb;
    padding: 22px 28px;
    counter-reset: intro-counter;
}

.intro-bullets li {
    font-size: 14.5px;
    font-weight: 500;
    margin-bottom: 10px;
    padding-left: 35px;
    position: relative;
    color: #333200;
    counter-increment: intro-counter;
}

.intro-bullets li b {
    display: inline-block;
    white-space: nowrap;
}

.intro-bullets li:last-child {
    margin-bottom: 0;
}

.intro-bullets li::before {
    content: "0" counter(intro-counter) ".";
    position: absolute;
    left: 0;
    color: #8a857c;
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    font-size: 16px;
}

/* ==========================================================================
   KV下 紫のグラデーションアンカーボタン（常に横並び・アイコン上部配置）
   ========================================================================== */
.kv-nav-container {
    width: 100%;
    max-width: 1200px; /* サイト全体の最大幅に合わせる */
    margin: 60px auto 40px;  /* 上下に余白を設定 */
    padding: 0 16px;
    box-sizing: border-box;
}

.kv-nav-wrapper {
    display: flex;
    justify-content: center;
    gap: 12px; /* ボタン同士の間隔（スマホでも収まりやすいよう少し狭めました） */
    width: 100%;
}

/* ボタンの共通スタイル */
.kv-nav-btn {
    flex: 1;
    max-width: 400px; /* ボタンが広がりすぎないように制限 */
    position: relative;     /* はみ出るアイコンの配置基準点にする */
    display: flex;
    flex-direction: column; /* アイコンとテキストを上下並びにする */
    align-items: center;    /* 中央揃え */
    justify-content: center;
    /* アイコンが上にはみ出る分のスペースを考慮し、上側のpaddingを広めに設定 */
    padding: 40px 12px 30px;
    text-decoration: none;
    border-radius: 5px;    /* 少し角丸に */
    transition: all 0.3s ease;
    box-shadow: 0 6px 20px rgba(126, 87, 194, 0.25);
    text-align: center;     /* テキストも中央揃え */
}

/* 紫のグラデーション定義 */
.btn-purple-grad {
    background: linear-gradient(135deg, #1e1b4b 0%, #311042 100%);
    color: #ffff00 !important;
}

/* アイコン部分の調整（テキストの上部に配置） */
.kv-nav-btn .btn-icon {
    position: absolute;
    top: -25px;            /* ボタンの上の枠線から25px分だけ上に飛び出させる */
    left: 50%;
    transform: translateX(-50%); /* 横方向は中央揃え */
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 26px;       /* アイコンを少し大きめに際立たせる */
    margin-right: 0;       /* 横並びの時の余白をリセット */
    margin-bottom: 20px;   /* 下のテキストとの間隔 */
    width: 60px;           
    height: 60px;
    z-index: 2;            /* 枠線より確実に手前に出す */
    filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.25)); /* 画像単体に綺麗な影をつけて立体感をアップ */
    transition: transform 0.3s ease;
}

.kv-nav-btn .btn-icon img {
    width: 100%;
    height: auto;
    object-fit: contain;
}

/* テキスト部分の調整（中央揃え） */
.btn-text-wrap {
    display: flex;
    flex-direction: column; 
    align-items: center; /* 縦並び・中央揃え */
    width: 100%;
}

.btn-sub-text {
    font-size: 13px;
    letter-spacing: 0.03em;
    line-height: 1.4;
    opacity: 0.85;
    margin: 18px 0 10px;
}

.btn-main-text {
    font-size: 20px;
    font-weight: 500;
    letter-spacing: 0.03em;
    line-height: 1.6;
}

/* ホバーエフェクト（ふわっと浮き上がり光沢感を出す） */
.kv-nav-btn:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 25px rgba(126, 87, 194, 0.45);
    filter: brightness(1.1); /* 少し明るくする */
}

/* ==========================================================================
   スマートフォン表示時の微調整（横並びを維持しつつ文字サイズを最適化）
   ========================================================================== */
@media (max-width: 600px) {
    .kv-nav-container {
        margin: 24px auto; /* スマホ時は上下の余白を少し縮小 */
        padding: 0 10px;
    }
    
    .kv-nav-wrapper {
        gap: 8px; /* スマホ画面で2つのボタンが収まるよう隙間を調整 */
    }

    .kv-nav-btn {
        padding: 16px 8px; /* 内側の余白をコンパクトに */
    }

    .kv-nav-btn .btn-icon {
        font-size: 22px;   /* アイコンサイズを少し小さく */
        margin-bottom: 6px;
        width: 55px;
        height: 55px;
        top: -20px;
    }

    .btn-sub-text {
        font-size: 10.5px;   /* スマホで改行を極力防ぐためのサイズ調整 */
        margin-top:35px ;
    }

    .btn-main-text {
        font-size: 16px;  /* スマホでスッキリ2つ並ぶサイズ */
    }
}

/* ==========================================================================
   KV下ナビゲーションボタン 内要素のレイアウト微調整
   ========================================================================== */
.btn-text-wrap {
    display: flex;
    flex-direction: column; 
    align-items: center;    /* 中央揃えに統一 */
    width: 100%;
}

/* ==========================================================================
   シンプルな線2本の下向き三角矢印 ＆ 浮遊アニメーション
   ========================================================================== */
.arrow-down-double {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 8px;       /* テキストとの間の余白 */
    height: 20px;          /* 浮遊するための高さを確保 */
    
    /* ふわっと上下に浮遊するアニメーション（無限ループ） */
    animation: floatArrow 2.5s ease-in-out infinite;
}

/* 2本目の矢印のタイミングを少しずらして滑らかにする場合 */
.kv-nav-wrapper a:nth-of-type(2) .arrow-down-double {
    animation-delay: 0.4s;
}

/* 2本の線の共通デザイン（CSSのみでシンプルなL字型を傾けてV字を作ります） */
.arrow-down-double span {
    display: block;
    width: 12px;           /* 矢印の横幅 */
    height: 12px;          /* 矢印の高さ */
    border-bottom: 1px solid #fff000; /* 線の太さと色 */
    border-right: 1px solid #fff000;  /* 線の太さと色 */
    transform: rotate(45deg);        /* 45度回転させて下向きのV字（三角）にする */
    margin-top: -6px;      /* 1本目と2本目の重なり具合を調整 */
    opacity: 0.85;
}

/* 1本目の上に少し隙間を作るための調整 */
.arrow-down-double span:first-child {
    margin-top: 0;
}

/* ==========================================================================
   下向き矢印の浮遊アニメーション定義
   ========================================================================== */
@keyframes floatArrow {
    0% {
        transform: translateY(0);
        opacity: 0.7;
    }
    50% {
        transform: translateY(5px);  /* 5px分下にふわっと沈む（下向きに誘導する動き） */
        opacity: 1;                  /* 動いている時に少し明るく際立たせる */
    }
    100% {
        transform: translateY(0);
        opacity: 0.7;
    }
}

/* スマホ表示の時のサイズ微調整 */
@media (max-width: 600px) {
    .arrow-down-double {
        margin-top: 6px;
    }
    .arrow-down-double span {
        width: 10px;
        height: 10px;
        border-bottom: 1px solid #fff000;
        border-right: 1px solid #fff000;
    }
}

/* ==========================================================================
   Section Styles
   ========================================================================== */
.section {
    margin-bottom: 60px;
    background-color: #fcfbfa;
    padding: 50px 20px;
    border: 1px solid #eae7e1;
}

.section-entry {
    background-color: #fcfbfa;
    border: 1px solid #eae7e1;
    padding: 70px 5px 40px;
        margin-bottom: 40px;
}

.section-title {
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.25em;
    text-align: center;
    margin-bottom: 35px;
    color: #8a857c;
    position: relative;
}

.section-title::after {
    content: "";
    display: block;
    width: 30px;
    height: 1px;
    background-color: #8a857c;
    margin: 12px auto 0 auto;
}

.concept-theme {
    font-size: 20px;
    font-weight: 700;
    text-align: center;
    margin: 0 auto 26px;
    letter-spacing: 0.12em;
    color: #333200;
    border: solid 0px #eae7e1;
    padding: 15px;
    width: 80%;
}

.concept-theme img {
    width:100%;
}

.concept-list {
    list-style: none;
    max-width: 400px;
    margin: 0 auto 30px auto;
    text-align: center;
}

.concept-list li {
    font-size: 16px;
    color: #8a857c;
    font-weight: 400;
    border-bottom: solid 1px #eae7e1;
    padding-bottom: 10px;
    width: 90%;
    margin: 20px auto 12px;
    display: flex;
    align-items: center;
    justify-content: center;
}


/* ==========================================================================
   CONCEPT：手書き風サークル・時間差ふわっと出現アニメーション
   ========================================================================== */
.concept-badge-container {
    position: relative;
    width: 100%;
    max-width: 680px; /* パソコンで広がりすぎないように制限 */
    margin: 50px auto;
    min-height: 350px; /* 3つの円が上下に重なりつつ並ぶ高さを確保 */
}

/* 3つの配置共通スタイル */
.concept-badge-item {
    position: absolute;
    opacity: 0; /* 最初は非表示 */
    transform: scale(0.8) translateY(20px); /* 最初は少し小さく、下に下げておく */
    transition: transform 0.8s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.6s ease;
}

/* 画面内にスクロールが入ってきたら時間差（delay）をつけて登場させる */
.scroll-section.is-visible .concept-badge-item {
    opacity: 1;
    transform: scale(1) translateY(0);
}

/* 1つ目：左上 */
.badge-pos-left-top {
    top: 0;
    left: 1%;
}
.scroll-section.is-visible .badge-pos-left-top {
    transition-delay: 0.2s; /* 最初に登場 */
}

/* 2つ目：右寄り中央 */
.badge-pos-right-center {
    top: 70px;
    right: 3%;
}
.scroll-section.is-visible .badge-pos-right-center {
    transition-delay: 0.5s; /* 2番目に登場 */
}

/* 3つ目：左下 */
.badge-pos-left-bottom {
    top: 160px;
    left: 8%;
}
.scroll-section.is-visible .badge-pos-left-bottom {
    transition-delay: 0.8s; /* 最後に登場 */
}

/* 手書き風の歪んだ円のデザイン */
.concept-badge-circle {
    width: 180px;  /* 2連文字が収まるサイズ */
    height: 180px;
    background: #f4f1eb;
    border: 1px solid #eae7e1;
    color: #8a857c;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 16px;
    box-sizing: border-box;
    box-shadow: 0 10px 12px rgba(0, 0, 0, 0.05);
    backdrop-filter: blur(4px);
    
    /* 登場アニメーションが終わった後に、常時ゆらゆらと浮遊させる */
    animation: conceptFloat 3.5s ease-in-out infinite;
}

/* それぞれの円に異なる歪み度と、浮遊のタイミングをずらす設定 */
.badge-pos-left-top .concept-badge-circle {
    border-radius: 43% 57% 65% 35% / 40% 45% 55% 60%;
    animation-delay: 0.2s;
}
.badge-pos-right-center .concept-badge-circle {
    border-radius: 55% 45% 38% 62% / 45% 58% 42% 55%;
    animation-delay: 0.7s; /* 浮遊の波をずらす */
}
.badge-pos-left-bottom .concept-badge-circle {
    width: 190px; /* 3つ目は文字数が多いため、一回り大きく調整 */
    height: 190px;
    border-radius: 40% 60% 50% 50% / 55% 40% 60% 45%;
    animation-delay: 1.2s; /* 浮遊の波をずらす */
}

/* 中のテキストスタイル */
.concept-badge-text {
    font-size: 16px;
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: 0.04em;
}

/* 常時ゆらゆら浮遊するアニメーションの定義 */
@keyframes conceptFloat {
    0% {
        transform: translateY(0) rotate(0deg);
    }
    50% {
        transform: translateY(-8px) rotate(1.5deg); /* 上に浮きながら、少しだけ右に傾く */
    }
    100% {
        transform: translateY(0) rotate(0deg);
    }
}

/* ==========================================================================
   スマートフォン表示時の調整（画面幅 600px 以下）
   ========================================================================== */
@media (max-width: 600px) {
    .concept-badge-container {
        max-width: 100%;
        min-height: 300px; /* スマホ用に全体の高さを凝縮 */
        margin: 20px auto;
    }
    
    /* スマホの狭い横幅でも綺麗にはみ出さず収まるよう、左右の位置を調整 */
    .badge-pos-left-top {
        left: 2%;
    }
    .badge-pos-right-center {
        top: 85px;
        right: 2%;
    }
    .badge-pos-left-bottom {
        top: 165px;
        left: 4%;
    }
    
    /* スマホ向けに円の大きさと文字サイズをスケールダウン */
    .concept-badge-circle {
        width: 150px;
        height: 150px;
        padding: 8px;
    }
    .badge-pos-left-bottom .concept-badge-circle {
        width: 155px;
        height: 155px;
    }
    .concept-badge-text {
        font-size: 14px;
    }
}


/* ==========================================================================
   Entry Requirements (Sub-sections)
   ========================================================================== */
#section-entry {
    background: #f4f1eb;
    border:none;
}

#section-schedule {
    background: #f4f1eb;
    border:none;
}

.sub-section {
    margin-bottom: 45px;
    padding-bottom: 45px;
    border-bottom: 1px solid #f4f1eb;
}

.sub-section:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}

.sub-title {
    font-size: 20px;
    font-weight: 500;
    line-height: 1.4;
    margin-top: 40px;
    margin-bottom: 24px;
    color: #ffff00;
    border: solid 1px #eae7e1;
    border-radius: 5px;
    padding: 20px 20px 20px 30px; 
    /* 右上のサークルと衝突しないよう、タイトルの上下余白を微調整 */
    letter-spacing: 0.08em;
    display: flex;
    flex-direction: column; /* 縦に並べることで画像を上に配置 */
    align-items: flex-start;
    gap: 12px;
    background: linear-gradient(135deg, #1e1b4b 0%, #311042 100%);
    position: relative;
    /* 左側に数字画像が入り込むための余白（60px）を確保 */
    width: 100%;
    margin-bottom: 30px;    /* タイトル下のコンテンツとの余白 */
}

/* 数字画像エリアのスタイリング */
.entry-number {
    margin-bottom: 5px;    /* 画像と下のタイトルの隙間が空きすぎないよう微調整 */
}

.entry-number img {
    display: block;
    height: 40px;           /* デザインに合わせてサイズは自由に調整してください */
    width: auto;
}

/* ★ 左上にはみ出させる数字画像のスタイル */
.title-num-img {
    position: absolute;
    left: -10px;    /* タイトルの左側の枠線から10px外側にはみ出させる */
    top: -15px;     /* タイトルの上側へ15px飛び出させて立体感を出す */
    width: 56px;    /* 画像の表示サイズ（丁度いい大きさに調整しています） */
    height: 56px;
    object-fit: contain;
    z-index: 2;
    /* 画像の立体感を際立たせる優しい影 */
    filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.2)); 
}

/* 右上の「個人エントリー枠」サークルの位置を微調整してさらに干渉を防ぐ */
.badge-catch {
    /* もし元の位置より少し離したい場合は、right や top の数値をここで微調整できます */
    right: -45px; 
    top: -40px;
}

.sub-title-num {
    font-family: 'Montserrat', sans-serif;
    font-size: 20px;
    font-weight: 700;
    color: #8a857c;
    line-height: 1;
}

.sub-arrow {
    font-size: 14.5px;
    font-weight: 400;
    color: #8a857c;
    margin-bottom: 22px;
    display: block;
    letter-spacing: 0.12em;
    padding-left: 20px;
}

.quote-box {
    background-color: #fbfbfa;
    padding: 20px 24px;
    margin-bottom: 22px;
    border-left: 2px solid #8a857c;
}

.quote-box p {
    font-size: 14px;
    color: #8a857c;
    margin-bottom: 6px;
    font-weight: 400;
}

.requirement-list {
    list-style: none;
    padding-left: 20px;
    margin-top: 15px;
}

.requirement-list li {
    font-size: 13.5px;
    color: #666666;
    margin-bottom: 8px;
    position: relative;
    padding-left: 15px;
}

.requirement-list li::before {
    content: "・";
    position: absolute;
    left: 0;
    color: #8a857c;
}

.sub-desc {
    font-size: 14px;
    color: #8a857c;
    font-weight: 400;
    margin-bottom: 40px;
    padding:0 20px;
}


.sub-desc-staytuned {
    font-size: 18px;
    text-align: center;
    color: #8a857c;
    font-weight: 500;
    letter-spacing: 0.06em;
    padding:0 20px;
}

.grey-out {
    background-color:#c6c4c1;
    border :1px solid #c6c4c1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    text-decoration: none;
    font-size: 13px;
    font-weight: 700;
    padding: 12px 40px;
    border-radius: 4px;
    letter-spacing: 0.1em;
}

/* ==========================================================================
   丸いキャッチ（バッジ）と浮遊アニメーション（完全被せ版）
   ========================================================================== */
.sub-title {
    position: relative; /* キャッチを文字基準で絶対配置するための基準点 */
}

.badge-catch {
    position: absolute;
    /* タイトルの右肩（文字の終わり）に被るように配置 */
    top: -10px;         /* 上方向への飛び出し具合（元の枠を壊さないように上に配置） */
    right: 10px;       /* 右側への飛び出し具合 */
    z-index: 10;        /* 確実に一番手前に来るように設定 */
    
    /* 7文字が収まるサイズ */
    width: 85px;
    height: 85px;
    background-color: #ffff00; /* 既存のテーマカラー */
    color: #311042;
/* 従来の 50% から、歪んだ円を作る記述に変更 */
    border-radius: 42% 58% 70% 30% / 45% 45% 55% 55%;
    /* 少しだけ回転（2度ほど傾ける）させると、より手書きのリアル感が出ます */
    transform: rotate(2deg);
    
    /* 文字の配置調整 */
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-size: 11.5px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0;
    padding: 6px 6px 13px 6px;
    box-sizing: border-box;
    
    /* ふわっと浮遊させるアニメーションの指定 */
    animation: floatBadge 3s ease-in-out infinite;
    box-shadow: 0 4px 8px rgba(138, 133, 124, 0.35);
    
    /* 親の文字スタイル（傾きや太さなど）を引き継がないためのリセット */
    font-style: normal;
}

/* 2つ目のキャッチの色とタイミングの調整 */
.sub-section:nth-of-type(2) .badge-catch {
    background-color: #ffff00; /* 2つ目はダークトーン */
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
    animation-delay: 0.5s;     /* 動くタイミングをずらす */
    border-radius: 55% 45% 35% 65% / 40% 60% 40% 60%;
    transform: rotate(-3deg); /* 逆方向に傾ける */
}



/* ふわっと上下に浮遊するアニメーション */
@keyframes floatBadge {
    0% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-6px); /* 6px分ふわっと上に浮き上がる */
    }
    100% {
        transform: translateY(0);
    }
}

/* スマホ表示の時の微調整 */
@media (max-width: 600px) {
    .badge-catch {
        width: 86px;
        height: 86px;
        font-size: 10px;
        top: -10px;
        right: 10px;
    }
}

/* ==========================================================================
   Overview Details & Access
   ========================================================================== */
.overview-item {
    margin: 20px 20px 60px;
}

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

.overview-label {
    font-size: 15px;
    font-weight: 700;
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    color: #333200;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.overview-text {
    font-size: 16px;
    color: #8a857c;
    font-weight: 500;
    padding-left: 4px;
    margin-bottom:20px;
}

.overview-note {
    font-size: 13px;
    color: #333333;
    margin-top: 15px;
    display: block;
    font-weight: 400;
    padding-left: 4px;
}

/* ==========================================================================
   お知らせ部分：複数行でも確実に全行につく黄色マーカーライン（完全版）
   ========================================================================== */
.entry-note {
    display: inline !important; 
    
    font-weight: 500;       /* 太字でしっかり強調 */
    color: #3c3518;         /* サイトの文字トーンに合わせた濃いブラウン */
    font-size: 13.5px;
    letter-spacing: 0.03em;
    
    
    /* 改行されても各行の左右の端に少し余白を作る設定 */
    padding: 0 4px !important;
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;

    /* 前の行・次の行すべてに対して、文字の下側だけに内側から強制的に黄色を敷きます */
    box-shadow: inset 0 -8px 0 0 rgba(254, 240, 138, 0.85) !important;
}

/* display: inline !important; にすると、その要素自体には margin-top が効かなくなるため、
  お知らせの上の「15pxの隙間」は、お知らせの『手前にある要素』に下余白を作ることで確実に確保します。
*/
p + .entry-note,
br + .entry-note,
.entry-note-wrap {
    display: block;
    margin-top: 30px;
}

/* スマートフォン表示時の微調整 */
@media (max-width: 600px) {
    .entry-note {
        font-size: 13.5px;
        box-shadow: inset 0 -7px 0 0 rgba(254, 240, 138, 0.85) !important;
    }
}

.map-wrapper {
    width: 100%;
    margin-top: 15px;
    border: 1px solid #eae7e1;
    background-color: #fbfbfa;
    position: relative;
}

.map-iframe-placeholder {
    width: 100%;
    height: 250px;
    display: flex;
    justify-content: center;
    align-items: center;
    color: #aaa59e;
    font-size: 13px;
}

/* ==========================================================================
   Footer & Contact Section
   ========================================================================== */
footer {
    margin-left: 45px;
    margin-right: 45px;
}

.footer-text {
    font-size: 14.5px;
    color: #8a857c;
    margin-bottom: 20px;
    font-weight: 400;
}

.contact-section {
    margin: 50px auto 10px auto;
    padding: 24px;
    border: 1px solid #eae7e1;
    background-color: #fcfbfa;
    max-width: 380px;
    text-align: center;
}

.contact-text {
    font-size: 13.5px;
    color: #8a857c;
    font-weight: 500;
    margin-bottom: 14px;
    letter-spacing: 0.03em;
}

.line-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: #8a857c;
    color: #ffffff;
    text-decoration: none;
    font-size: 13px;
    font-weight: 700;
    padding: 10px 24px;
    border-radius: 4px;
    letter-spacing: 0.05em;
    transition: opacity 0.2s, transform 0.2s;
}

.line-btn:hover {
    opacity: 0.8;
    transform: translateY(-1px);
}

.committee-section {
    margin: 60px auto 40px auto;
    padding-top: 40px;
    border-top: 1px solid #eae7e1;
    max-width: 310px;
}

.committee-title {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: #8a857c;
    margin-bottom: 24px;
    text-align: center;
}

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

.committee-list li {
    font-size: 14px;
    color: #8a857c;
    margin-bottom: 12px;
    font-weight: 500;
    letter-spacing: 0.05em;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.committee-list li:last-child {
    margin-bottom: 0;
}

.committee-list li .meta {
    font-size: 11.5px;
    color: #8a857c;
    font-weight: 400;
    letter-spacing: 0.02em;
}

.copyright {
    font-size: 11px;
    color: #aaa59e;
    letter-spacing: 0.15em;
    text-align: center;
}

/* ==========================================================================
   Icons (SVG Mask)
   ========================================================================== */
.icon {
    display: inline-block;
    width: 1.2em;
    height: 1.2em;
    vertical-align: -0.2em;
    background-color: currentColor;
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    margin: 0 4px;
}

.icon-bulb {
    -webkit-mask-image: url('data:image/svg+xml;utf8,%3C!--%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F--%3E%20%3C!--%20Generator%3A%20Adobe%20Illustrator%2022.1.0%2C%20SVG%20Export%20Plug-In%20.%20SVG%20Version%3A%206.00%20Build%200)%20--%3E%20%3Csvg%20version%3D%221.1%22%20id%3D%22_x38_%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%20722.882%20800%22%20style%3D%22width%3A%20452px%3B%22%20xml%3Aspace%3D%22preserve%22%3E%20%3Cstyle%20type%3D%22text%2Fcss%22%3E%20.st0%7Bfill%3A%23F29600%3B%7D%20%3C%2Fstyle%3E%20%3Cg%3E%20%3Cg%3E%20%3Cpath%20class%3D%22st0%22%20d%3D%22M361.446%2C2c-7.382%2C0-13.374%2C5.98-13.374%2C13.368l3.71%2C82.117c0%2C5.334%2C4.327%2C9.661%2C9.664%2C9.661%20c5.33%2C0%2C9.651-4.327%2C9.651-9.661l3.71-82.117C374.807%2C7.98%2C368.82%2C2%2C361.446%2C2z%22%20style%3D%22fill%3A%20rgb(138%2C%20133%2C%20124)%3B%22%3E%3C%2Fpath%3E%20%3Cpath%20class%3D%22st0%22%20d%3D%22M199.889%2C55.071c-3.691-6.391-11.873-8.58-18.261-4.896c-6.397%2C3.697-8.587%2C11.873-4.896%2C18.267L221%2C137.703%20c2.668%2C4.623%2C8.575%2C6.205%2C13.2%2C3.533c4.617-2.668%2C6.198-8.571%2C3.533-13.194L199.889%2C55.071z%22%20style%3D%22fill%3A%20rgb(138%2C%20133%2C%20124)%3B%22%3E%3C%2Fpath%3E%20%3Cpath%20class%3D%22st0%22%20d%3D%22M137.513%2C221.193l-69.261-44.272c-6.395-3.691-14.574-1.498-18.264%2C4.892%20c-3.691%2C6.392-1.498%2C14.568%2C4.896%2C18.261l72.968%2C37.848c4.624%2C2.668%2C10.526%2C1.084%2C13.197-3.539%20C143.715%2C229.764%2C142.133%2C223.862%2C137.513%2C221.193z%22%20style%3D%22fill%3A%20rgb(138%2C%20133%2C%20124)%3B%22%3E%3C%2Fpath%3E%20%3Cpath%20class%3D%22st0%22%20d%3D%22M668.003%2C523.182l-72.977-37.845c-4.616-2.668-10.519-1.081-13.187%2C3.542%20c-2.675%2C4.617-1.086%2C10.519%2C3.53%2C13.188l69.262%2C44.272c6.397%2C3.694%2C14.575%2C1.498%2C18.26-4.89%20C676.58%2C535.055%2C674.394%2C526.879%2C668.003%2C523.182z%22%20style%3D%22fill%3A%20rgb(138%2C%20133%2C%20124)%3B%22%3E%3C%2Fpath%3E%20%3Cpath%20class%3D%22st0%22%20d%3D%22M106.953%2C361.632c0-5.34-4.324-9.657-9.657-9.66l-82.117-3.71c-7.382%2C0-13.371%2C5.986-13.371%2C13.371%20c0%2C7.382%2C5.99%2C13.368%2C13.371%2C13.368l82.117-3.707C102.629%2C371.293%2C106.953%2C366.965%2C106.953%2C361.632z%22%20style%3D%22fill%3A%20rgb(138%2C%20133%2C%20124)%3B%22%3E%3C%2Fpath%3E%20%3Cpath%20class%3D%22st0%22%20d%3D%22M707.707%2C348.261l-82.121%2C3.71c-5.336%2C0-9.651%2C4.32-9.651%2C9.664c0%2C5.33%2C4.321%2C9.657%2C9.651%2C9.657l82.121%2C3.707%20c7.381%2C0%2C13.368-5.993%2C13.368-13.364C721.075%2C354.247%2C715.088%2C348.261%2C707.707%2C348.261z%22%20style%3D%22fill%3A%20rgb(138%2C%20133%2C%20124)%3B%22%3E%3C%2Fpath%3E%20%3Cpath%20class%3D%22st0%22%20d%3D%22M127.852%2C485.337l-72.968%2C37.845c-6.394%2C3.691-8.583%2C11.873-4.896%2C18.267%20c3.69%2C6.394%2C11.869%2C8.584%2C18.264%2C4.89l69.261-44.272c4.62-2.669%2C6.202-8.571%2C3.534-13.194%20C138.379%2C484.257%2C132.476%2C482.676%2C127.852%2C485.337z%22%20style%3D%22fill%3A%20rgb(138%2C%20133%2C%20124)%3B%22%3E%3C%2Fpath%3E%20%3Cpath%20class%3D%22st0%22%20d%3D%22M595.025%2C237.923l72.977-37.845c6.391-3.697%2C8.577-11.873%2C4.887-18.261%20c-3.691-6.394-11.863-8.587-18.26-4.896l-69.262%2C44.272c-4.622%2C2.668-6.205%2C8.571-3.53%2C13.194%20C584.507%2C239.007%2C590.415%2C240.592%2C595.025%2C237.923z%22%20style%3D%22fill%3A%20rgb(138%2C%20133%2C%20124)%3B%22%3E%3C%2Fpath%3E%20%3Cpath%20class%3D%22st0%22%20d%3D%22M541.26%2C50.181c-6.398-3.691-14.57-1.501-18.267%2C4.889l-37.839%2C72.972%20c-2.674%2C4.622-1.086%2C10.525%2C3.536%2C13.194c4.617%2C2.665%2C10.519%2C1.083%2C13.194-3.533l44.269-69.261%20C549.843%2C62.047%2C547.651%2C53.872%2C541.26%2C50.181z%22%20style%3D%22fill%3A%20rgb(138%2C%20133%2C%20124)%3B%22%3E%3C%2Fpath%3E%20%3C/g%3E%20%3Cg%3E%20%3Cpath%20class%3D%22st0%22%20d%3D%22M450.305%2C621.008H272.577c-29.821%2C0-30.216-23.478-30.502-40.613c-0.267-15.882-0.566-33.885-14.505-49.622%20c-4.109-4.642-9.934-10.242-16.1-16.177c-9.657-9.304-19.646-18.926-25.877-27.477c-27.202-37.341-41.578-81.561-41.578-127.894%20c0-119.889%2C97.536-217.428%2C217.419-217.428c119.902%2C0%2C217.435%2C97.539%2C217.435%2C217.428c0%2C46.333-14.377%2C90.553-41.581%2C127.894%20c-6.23%2C8.552-16.216%2C18.174-25.88%2C27.477c-6.166%2C5.935-11.978%2C11.535-16.094%2C16.181c-13.939%2C15.734-14.235%2C33.737-14.505%2C49.619%20C480.511%2C597.53%2C480.126%2C621.008%2C450.305%2C621.008z%20M361.432%2C160.687c-109.466%2C0-198.528%2C89.064-198.528%2C198.538%20c0%2C42.307%2C13.126%2C82.687%2C37.954%2C116.771c5.26%2C7.217%2C14.641%2C16.251%2C23.713%2C24.986c6.446%2C6.205%2C12.532%2C12.066%2C17.135%2C17.267%20c18.572%2C20.968%2C18.968%2C44.584%2C19.257%2C61.829c0.351%2C20.816%2C1.637%2C22.041%2C11.612%2C22.041h177.729c9.972%2C0%2C11.264-1.226%2C11.611-22.038%20c0.29-17.247%2C0.681-40.864%2C19.257-61.832c4.598-5.201%2C10.693-11.062%2C17.136-17.267c9.072-8.734%2C18.453-17.768%2C23.706-24.989%20c24.831-34.08%2C37.961-74.46%2C37.961-116.767C559.977%2C249.751%2C470.912%2C160.687%2C361.432%2C160.687z%22%20style%3D%22fill%3A%20rgb(138%2C%20133%2C%20124)%3B%22%3E%3C%2Fpath%3E%20%3Cpath%20class%3D%22st0%22%20d%3D%22M459.384%2C690.125c0-4.861-3.202-8.932-7.594-10.342c0-10.046%2C0-18.485%2C0-23.27%20c4.392-1.418%2C7.594-5.491%2C7.594-10.355c0-6.024-4.886-10.918-10.917-10.918h-8.269c-10.339%2C0-46.898%2C0-79.086%2C0%20c-32.187%2C0-68.741%2C0-79.086%2C0h-8.269c-6.024%2C0-10.918%2C4.893-10.918%2C10.918c0%2C4.864%2C3.205%2C8.941%2C7.597%2C10.355%20c0%2C4.784%2C0%2C13.223%2C0%2C23.263c-4.392%2C1.412-7.597%2C5.488-7.597%2C10.349c0%2C4.863%2C3.205%2C8.934%2C7.597%2C10.345c0%2C7.857%2C0%2C15.843%2C0%2C23.269%20c-4.392%2C1.414-7.597%2C5.484-7.597%2C10.348c0%2C4.865%2C3.205%2C8.935%2C7.597%2C10.349c0%2C5.925%2C0%2C10.329%2C0%2C12.3%20c0%2C10.348%2C8.047%2C20.697%2C17.238%2C20.697c33.332%2C0%2C35.511%2C20.566%2C73.437%2C20.566c37.929%2C0%2C40.109-20.566%2C73.434-20.566%20c9.201%2C0%2C17.244-10.349%2C17.244-20.697c0-1.971%2C0-6.375%2C0-12.3c4.392-1.418%2C7.594-5.491%2C7.594-10.349%20c0-4.857-3.202-8.927-7.594-10.348c0-7.426%2C0-15.412%2C0-23.269C456.182%2C699.059%2C459.384%2C694.982%2C459.384%2C690.125z%22%20style%3D%22fill%3A%20rgb(138%2C%20133%2C%20124)%3B%22%3E%3C%2Fpath%3E%20%3C/g%3E%20%3C/g%3E%20%3C/svg%3E');
    mask-image: url('data:image/svg+xml;utf8,%3C!--%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F--%3E%20%3C!--%20Generator%3A%20Adobe%20Illustrator%2022.1.0%2C%20SVG%20Export%20Plug-In%20.%20SVG%20Version%3A%206.00%20Build%200)%20--%3E%20%3Csvg%20version%3D%221.1%22%20id%3D%22_x38_%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%20722.882%20800%22%20style%3D%22width%3A%20452px%3B%22%20xml%3Aspace%3D%22preserve%22%3E%20%3Cstyle%20type%3D%22text%2Fcss%22%3E%20.st0%7Bfill%3A%23F29600%3B%7D%20%3C%2Fstyle%3E%20%3Cg%3E%20%3Cg%3E%20%3Cpath%20class%3D%22st0%22%20d%3D%22M361.446%2C2c-7.382%2C0-13.374%2C5.98-13.374%2C13.368l3.71%2C82.117c0%2C5.334%2C4.327%2C9.661%2C9.664%2C9.661%20c5.33%2C0%2C9.651-4.327%2C9.651-9.661l3.71-82.117C374.807%2C7.98%2C368.82%2C2%2C361.446%2C2z%22%20style%3D%22fill%3A%20rgb(138%2C%20133%2C%20124)%3B%22%3E%3C%2Fpath%3E%20%3Cpath%20class%3D%22st0%22%20d%3D%22M199.889%2C55.071c-3.691-6.391-11.873-8.58-18.261-4.896c-6.397%2C3.697-8.587%2C11.873-4.896%2C18.267L221%2C137.703%20c2.668%2C4.623%2C8.575%2C6.205%2C13.2%2C3.533c4.617-2.668%2C6.198-8.571%2C3.533-13.194L199.889%2C55.071z%22%20style%3D%22fill%3A%20rgb(138%2C%20133%2C%20124)%3B%22%3E%3C%2Fpath%3E%20%3Cpath%20class%3D%22st0%22%20d%3D%22M137.513%2C221.193l-69.261-44.272c-6.395-3.691-14.574-1.498-18.264%2C4.892%20c-3.691%2C6.392-1.498%2C14.568%2C4.896%2C18.261l72.968%2C37.848c4.624%2C2.668%2C10.526%2C1.084%2C13.197-3.539%20C143.715%2C229.764%2C142.133%2C223.862%2C137.513%2C221.193z%22%20style%3D%22fill%3A%20rgb(138%2C%20133%2C%20124)%3B%22%3E%3C%2Fpath%3E%20%3Cpath%20class%3D%22st0%22%20d%3D%22M668.003%2C523.182l-72.977-37.845c-4.616-2.668-10.519-1.081-13.187%2C3.542%20c-2.675%2C4.617-1.086%2C10.519%2C3.53%2C13.188l69.262%2C44.272c6.397%2C3.694%2C14.575%2C1.498%2C18.26-4.89%20C676.58%2C535.055%2C674.394%2C526.879%2C668.003%2C523.182z%22%20style%3D%22fill%3A%20rgb(138%2C%20133%2C%20124)%3B%22%3E%3C%2Fpath%3E%20%3Cpath%20class%3D%22st0%22%20d%3D%22M106.953%2C361.632c0-5.34-4.324-9.657-9.657-9.66l-82.117-3.71c-7.382%2C0-13.371%2C5.986-13.371%2C13.371%20c0%2C7.382%2C5.99%2C13.368%2C13.371%2C13.368l82.117-3.707C102.629%2C371.293%2C106.953%2C366.965%2C106.953%2C361.632z%22%20style%3D%22fill%3A%20rgb(138%2C%20133%2C%20124)%3B%22%3E%3C%2Fpath%3E%20%3Cpath%20class%3D%22st0%22%20d%3D%22M707.707%2C348.261l-82.121%2C3.71c-5.336%2C0-9.651%2C4.32-9.651%2C9.664c0%2C5.33%2C4.321%2C9.657%2C9.651%2C9.657l82.121%2C3.707%20c7.381%2C0%2C13.368-5.993%2C13.368-13.364C721.075%2C354.247%2C715.088%2C348.261%2C707.707%2C348.261z%22%20style%3D%22fill%3A%20rgb(138%2C%20133%2C%20124)%3B%22%3E%3C%2Fpath%3E%20%3Cpath%20class%3D%22st0%22%20d%3D%22M127.852%2C485.337l-72.968%2C37.845c-6.394%2C3.691-8.583%2C11.873-4.896%2C18.267%20c3.69%2C6.394%2C11.869%2C8.584%2C18.264%2C4.89l69.261-44.272c4.62-2.669%2C6.202-8.571%2C3.534-13.194%20C138.379%2C484.257%2C132.476%2C482.676%2C127.852%2C485.337z%22%20style%3D%22fill%3A%20rgb(138%2C%20133%2C%20124)%3B%22%3E%3C%2Fpath%3E%20%3Cpath%20class%3D%22st0%22%20d%3D%22M595.025%2C237.923l72.977-37.845c6.391-3.697%2C8.577-11.873%2C4.887-18.261%20c-3.691-6.394-11.863-8.587-18.26-4.896l-69.262%2C44.272c-4.622%2C2.668-6.205%2C8.571-3.53%2C13.194%20C584.507%2C239.007%2C590.415%2C240.592%2C595.025%2C237.923z%22%20style%3D%22fill%3A%20rgb(138%2C%20133%2C%20124)%3B%22%3E%3C%2Fpath%3E%20%3Cpath%20class%3D%22st0%22%20d%3D%22M541.26%2C50.181c-6.398-3.691-14.57-1.501-18.267%2C4.889l-37.839%2C72.972%20c-2.674%2C4.622-1.086%2C10.525%2C3.536%2C13.194c4.617%2C2.665%2C10.519%2C1.083%2C13.194-3.533l44.269-69.261%20C549.843%2C62.047%2C547.651%2C53.872%2C541.26%2C50.181z%22%20style%3D%22fill%3A%20rgb(138%2C%20133%2C%20124)%3B%22%3E%3C%2Fpath%3E%20%3C/g%3E%20%3Cg%3E%20%3Cpath%20class%3D%22st0%22%20d%3D%22M450.305%2C621.008H272.577c-29.821%2C0-30.216-23.478-30.502-40.613c-0.267-15.882-0.566-33.885-14.505-49.622%20c-4.109-4.642-9.934-10.242-16.1-16.177c-9.657-9.304-19.646-18.926-25.877-27.477c-27.202-37.341-41.578-81.561-41.578-127.894%20c0-119.889%2C97.536-217.428%2C217.419-217.428c119.902%2C0%2C217.435%2C97.539%2C217.435%2C217.428c0%2C46.333-14.377%2C90.553-41.581%2C127.894%20c-6.23%2C8.552-16.216%2C18.174-25.88%2C27.477c-6.166%2C5.935-11.978%2C11.535-16.094%2C16.181c-13.939%2C15.734-14.235%2C33.737-14.505%2C49.619%20C480.511%2C597.53%2C480.126%2C621.008%2C450.305%2C621.008z%20M361.432%2C160.687c-109.466%2C0-198.528%2C89.064-198.528%2C198.538%20c0%2C42.307%2C13.126%2C82.687%2C37.954%2C116.771c5.26%2C7.217%2C14.641%2C16.251%2C23.713%2C24.986c6.446%2C6.205%2C12.532%2C12.066%2C17.135%2C17.267%20c18.572%2C20.968%2C18.968%2C44.584%2C19.257%2C61.829c0.351%2C20.816%2C1.637%2C22.041%2C11.612%2C22.041h177.729c9.972%2C0%2C11.264-1.226%2C11.611-22.038%20c0.29-17.247%2C0.681-40.864%2C19.257-61.832c4.598-5.201%2C10.693-11.062%2C17.136-17.267c9.072-8.734%2C18.453-17.768%2C23.706-24.989%20c24.831-34.08%2C37.961-74.46%2C37.961-116.767C559.977%2C249.751%2C470.912%2C160.687%2C361.432%2C160.687z%22%20style%3D%22fill%3A%20rgb(138%2C%20133%2C%20124)%3B%22%3E%3C%2Fpath%3E%20%3Cpath%20class%3D%22st0%22%20d%3D%22M459.384%2C690.125c0-4.861-3.202-8.932-7.594-10.342c0-10.046%2C0-18.485%2C0-23.27%20c4.392-1.418%2C7.594-5.491%2C7.594-10.355c0-6.024-4.886-10.918-10.917-10.918h-8.269c-10.339%2C0-46.898%2C0-79.086%2C0%20c-32.187%2C0-68.741%2C0-79.086%2C0h-8.269c-6.024%2C0-10.918%2C4.893-10.918%2C10.918c0%2C4.864%2C3.205%2C8.941%2C7.597%2C10.355%20c0%2C4.784%2C0%2C13.223%2C0%2C23.263c-4.392%2C1.412-7.597%2C5.488-7.597%2C10.349c0%2C4.863%2C3.205%2C8.941%2C7.597%2C10.345c0%2C7.857%2C0%2C15.843%2C0%2C23.269%20c-4.392%2C1.414-7.597%2C5.484-7.597%2C10.348c0%2C4.865%2C3.205%2C8.935%2C7.597%2C10.349c0%2C5.925%2C0%2C10.329%2C0%2C12.3%20c0%2C10.348%2C8.047%2C20.697%2C17.238%2C20.697c33.332%2C0%2C35.511%2C20.566%2C73.437%2C20.566c37.929%2C0%2C40.109-20.566%2C73.434-20.566%20c9.201%2C0%2C17.244-10.349%2C17.244-20.697c0-1.971%2C0-6.375%2C0-12.3c4.392-1.418%2C7.594-5.491%2C7.594-10.349%20c0-4.857-3.202-8.927-7.594-10.348c0-7.426%2C0-15.412%2C0-23.269C456.182%2C699.059%2C459.384%2C694.982%2C459.384%2C690.125z%22%20style%3D%22fill%3A%20rgb(138%2C%20133%2C%20124)%3B%22%3E%3C%2Fpath%3E%20%3C/g%3E%20%3C/g%3E%20%3C/svg%3E');
    color: #8a857c;
    margin-right: 10px;
}

.icon-sparkle {
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M12 2l2.4 7.2L22 12l-7.6 2.8L12 22l-2.4-7.2L2 12l7.6-2.8z'/></svg>");
    mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M12 2l2.4 7.2L22 12l-7.6 2.8L12 22l-2.4-7.2L2 12l7.6-2.8z'/></svg>");
    color: #aaa59e;
}

.icon-calendar {
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M19 4h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V9h14v11z'/></svg>");
    mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M19 4h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V9h14v11z'/></svg>");
    margin-right: 8px;
}

.icon-pin {
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z'/></svg>");
    mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z'/></svg>");
    margin-right: 8px;
}

.icon-note {
    /* mask-imageでストローク（線）デザインを反映させるため、
       stroke="currentColor" を stroke="black" に変更し、
       中のダブルクォーテーションをシングルクォーテーション「'」に統一しています。
    */
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'></path><polyline points='14 2 14 8 20 8'></polyline><line x1='16' y1='13' x2='8' y2='13'></line><line x1='16' y1='17' x2='8' y2='17'></line><polyline points='10 9 9 9 8 9'></polyline></svg>");
    
    mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'></path><polyline points='14 2 14 8 20 8'></polyline><line x1='16' y1='13' x2='8' y2='13'></line><line x1='16' y1='17' x2='8' y2='17'></line><polyline points='10 9 9 9 8 9'></polyline></svg>");
    
    margin-right: 8px;
}

/* ==========================================================================
   Scroll Animation
   ========================================================================== */
.scroll-section {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}

.scroll-section.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.fv-animate {
    opacity: 0;
    transform: translateY(16px);
    transition: opacity 0.7s ease, transform 0.7s ease;
}

.fv-animate.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.fv-delay-1 { transition-delay: 0.1s; }
.fv-delay-2 { transition-delay: 0.3s; }

/* ==========================================================================
   ★ NEW: Floating Entry Button (スクロール追従エントリーボタン)
   PC・タブレット: 画面右下に固定
   ========================================================================== */
.floating-entry-btn {
    position: fixed;
    bottom: 32px;
    left: 50%;
    transform: translateX(-50%); /* 自身の幅の半分だけ左に戻して完全に中央揃え */
    z-index: 9999;
    display: block;     /* 横並び用の設定を解除 */
    flex-direction: column;
    align-items: flex-end;
    gap: 12px;
}

.floating-entry-btn a,
.floating-entry-btn button {
    pointer-events: auto;
}

.floating-entry-link {
    width:250px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #1e1b4b 0%, #311042 100%);
    color: #ffffff;
    text-decoration: none;
    font-size: 15px;
    font-weight: 700;
    padding: 14px 32px;
    border-radius: 50px;
    letter-spacing: 0.12em;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.25);
    transition: background-color 0.25s, transform 0.25s, box-shadow 0.25s, opacity 0.3s;
    opacity: 0;
    transform: translateY(10px);
    white-space: nowrap;
}

.floating-entry-link.show {
    opacity: 1;
    transform: translateY(0);
}

.floating-entry-link:hover {
    background-color: #FFF000;
    transform: translateY(-3px);
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.35);
}

/* ==========================================================================
   トップへ戻るボタン：画面の右下に固定
   ========================================================================== */
/* ★ NEW: Scroll to Top Button */
.scroll-top-btn {
    position: fixed;
    bottom: 32px;       /* 画面下部からの位置（PCではエントリーボタンと同じ高さ） */
    right: 32px;        /* 画面の【右側】に配置 */
    z-index: 9998;

    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
    background-color: #ffffff;
    color: #333200;
    border: 1px solid #e0ddd9;
    border-radius: 50%;
    cursor: pointer;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.12);
    transition: background-color 0.2s, transform 0.2s, opacity 0.3s;
    opacity: 0;
    transform: translateY(10px);
    font-size: 18px;
    line-height: 1;
}

.scroll-top-btn.show {
    opacity: 1;
    transform: translateY(0);
}

.scroll-top-btn:hover {
    background-color: #f4f1eb;
    transform: translateY(-2px);
}

@media (max-width: 480px) {
    /* スマホの上に戻るボタン位置調整 */
    .scroll-top-btn {
        bottom: 80px;       /* 画面下部からの位置（PCではエントリーボタンと同じ高さ） */
        right: 7px; 
    }

    /* ホーム画面から起動（Webアプリ）したときだけ、位置を上に引き上げる */
    @media (display-mode: standalone) {
        .scroll-top-btn {
            /* 下部に「JOIN!」などのメニューバーがあるため、その分上に浮かせます */
            bottom: 200px;   
        }
    }
}

/* ★ NEW: Contact Floating Button (お問い合わせ) */
.floating-contact-btn {
    position: fixed;
    bottom: 32px;
    left: 32px;
    z-index: 900;
    pointer-events: none;
}

.floating-contact-btn a {
    pointer-events: auto;
}

.floating-contact-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: #8a857c;
    color: #ffffff;
    text-decoration: none;
    font-size: 12px;
    font-weight: 700;
    padding: 12px 22px;
    border-radius: 50px;
    letter-spacing: 0.1em;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
    transition: background-color 0.25s, transform 0.25s, opacity 0.3s;
    opacity: 0;
    transform: translateY(10px);
    white-space: nowrap;
    gap: 6px;
}

.floating-contact-link.show {
    opacity: 1;
    transform: translateY(0);
}

.floating-contact-link:hover {
    background-color: #6e6a62;
    transform: translateY(-2px);
}

.floating-contact-link svg {
    flex-shrink: 0;
}

/* ==========================================================================
   ★ NEW: Mobile Bottom Navigation (スマホ専用 下部固定ナビ)
   480px以下でのみ表示
   ========================================================================== */
.mobile-bottom-nav {
    display: none; /* PC では非表示 */
}

@media (max-width: 480px) {
    /* スマホのフローティングボタンは非表示（ナビに統合するため） */
    .floating-entry-btn,
    .floating-contact-btn {
        display: none;
    }

    /* スマホ下部ナビを表示 */
    .mobile-bottom-nav {
        display: flex;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 1000;
        background-color: #fcfbfa;
        border-top: 1px solid #e5e2dd;
        padding: 10px 0 calc(10px + env(safe-area-inset-bottom, 8px));
        box-shadow: 0 -2px 16px rgba(0, 0, 0, 0.08);
        align-items: stretch;
    }

    .mobile-nav-item {
        flex: 1;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 3px;
        padding: 6px 4px;
        text-decoration: none;
        color: #8a857c;
        font-size: 9.5px;
        font-weight: 500;
        letter-spacing: 0.04em;
        transition: color 0.2s;
        cursor: pointer;
        background: none;
        border: none;
        font-family: inherit;
    }

    .mobile-nav-item:hover,
    .mobile-nav-item.active {
        color: #333200;
    }

    .mobile-nav-item svg {
        width: 20px;
        height: 20px;
    }

    .mobile-nav-item.entry-nav-item {
        background: linear-gradient(135deg, #1e1b4b 0%, #311042 100%);
        color: #ffffff;
        border-radius: 0;
        flex: 1.4;
        font-size: 11.5px;
        font-weight: 700;
        border-radius: 3px;
        letter-spacing: 0.08em;
    }

    .mobile-nav-item.entry-nav-item:hover {
        background-color: #ffff00;
        color: #ffffff;
    }

    /* セクション間のセパレーター */
    .mobile-nav-separator {
        width: 1px;
        background-color: #e5e2dd;
        align-self: stretch;
        margin: 6px 0;
    }
}

/* ==========================================================================
   Responsive Layout
   ========================================================================== */
@media (max-width: 600px) {
    body {
        word-break: normal;
        letter-spacing: 0.03em;
    }
    .container {
        padding: 45px 16px;
    }

    .logo,
    .hero .intro-lead,
    .hero .intro-bullets,
    footer {
        margin-left: 8px;
        margin-right: 8px;
    }

    .key-visual {
        height: auto;
        margin-bottom: 35px;
    }

    .kv-title-en {
        font-size: 24px;
    }

    .hero h1 {
        font-size: 22px;
        padding: 16px 8px;
        margin-bottom: 30px;
    }

    .intro-bullets {
        padding: 20px 22px;
    }

    .intro-bullets li {
        line-height: 1.5;
        margin-bottom: 14px;
    }

    .intro-bullets li b {
        display: block;
        margin-top: 4px;
        font-size: 15px;
        letter-spacing: 0.05em;
    }

    .section {
        padding: 40px 20px;
        margin-bottom: 40px;
    }

    .section-entry {
        padding: 70px 5px 40px;
        margin-bottom: 40px;
    }

    .concept-theme {
        font-size: 20px;
    }

    .sub-title {
        font-size: 18px;
        padding: 20px 20px;
    }

    .sub-title-num {
        font-size: 20px;
    }

    .sub-arrow {
        padding-left: 15px;
    }

    .committee-section {
        margin-top: 50px;
        margin-bottom: 35px;
        padding-top: 35px;
        max-width: 280px;
    }

    .committee-list li {
        font-size: 13.5px;
        margin-bottom: 10px;
    }

    br {
        display: block;
        content: "";
        margin-top: 0px;
    }

    .sub-desc br + br {
        display: inline;
    }
}

/* ==========================================================================
   Wエントリー 押し出しバナー
   ========================================================================== */
.w-entry-banner {
    margin: 0 0 40px;
    padding: 24px 28px;
    background: linear-gradient(135deg, #1e1b4b 0%, #311042 100%);
    border-radius: 3px;
    text-align: center;
    color: #ffffff;
    position: relative;
    overflow: hidden;
}
.w-entry-banner::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 80% 20%, rgba(167,139,250,0.25) 0%, transparent 60%);
    pointer-events: none;
}
.w-entry-headline {
    font-size: 16px;
    font-weight: 500;
    letter-spacing: 0.06em;
    margin: 20px 0 30px;
    line-height: 1.6;
    position: relative;
}
.w-entry-body {
    font-size: 13px;
    font-weight: 400;
    line-height: 1.9;
    color: rgba(255,255,255,0.85);
    position: relative;
    margin-bottom:20px;
}

/* ==========================================================================
   カウントダウンタイマー
   ========================================================================== */
.countdown-wrap {
    margin: 20px 0 8px;
    text-align: center;
}
.countdown-label {
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.2em;
    color: #8a857c;
    margin-bottom: 10px;
    text-transform: uppercase;
}
.countdown-display {
    display: inline-flex;
    gap: 6px;
    align-items: flex-end;
    justify-content: center;
}
.cd-block {
    display: flex;
    flex-direction: column;
    align-items: center;
    background: #fcfbfa;
    border: 1px solid #eae7e1;
    border-radius: 6px;
    padding: 8px 10px 6px;
    min-width: 52px;
}
.cd-num {
    font-family: 'Montserrat', sans-serif;
    font-size: 22px;
    font-weight: 700;
    color: #333200;
    line-height: 1;
    letter-spacing: 0.02em;
}
.cd-unit {
    font-size: 10px;
    font-weight: 500;
    color: #8a857c;
    letter-spacing: 0.1em;
    margin-top: 4px;
}
.countdown-wrap.cd-expired .cd-num {
    color: #aaa59e;
}
.countdown-wrap.cd-expired .countdown-label::after {
    content: "（締切済み）";
    margin-left: 6px;
    font-size: 10px;
    color: #aaa59e;
}

/* ==========================================================================
   ひよこポイント制度ボックス
   ========================================================================== */
.hiyoko-point-box {
    margin-top: 36px;
    padding: 28px 28px;
    /* 背景をサイト全体のニュアンスカラー（#f4f1eb）の超微細な半透明にして溶け込ませる */
    background: rgba(244, 241, 235, 0.04);
    border: 1px solid rgba(244, 241, 235, 0.12);
    border-radius: 3px; /* 角丸を滑らかにしてモダンに */
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
    backdrop-filter: blur(8px); /* 背景をわずかにぼかしてリッチに */
}
.hiyoko-point-title {
    font-size: 15px;
    font-weight: 700;
    color: #e2e8f0; /* タイトルを暗い背景でも引き立つ明るいトーンへ */
    letter-spacing: 0.08em;
    margin-bottom: 14px;
    display: flex;
    align-items: center;
    gap: 8px;
}


.hiyoko-point-desc {
    font-size: 13px;
    color: #8a857c;
    font-weight: 400;
    line-height: 1.85;
    margin-bottom: 16px;
}
.hiyoko-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin-bottom: 4px;
    border-radius: 3px;
    border: 1px solid rgba(244, 241, 235, 0.08); /* テーブル全体の細い枠線 */
}
.hiyoko-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
    min-width: 240px;
    text-align: left;
}

.hiyoko-table th {
    background: #f4f1eb;
    color: #555555;
    font-weight: 700;
    font-size: 11px;
    letter-spacing: 0.08em;
    text-align: center;
    padding: 9px 10px;
    border: 1px solid #e5e0d5;
    line-height: 1.3;
}

.hiyoko-table td {
    text-align: center;
    padding: 9px 10px;
    border: 1px solid #eae7e1;
    color: #666666;
    font-weight: 400;
    vertical-align: middle;
    line-height: 1.5;
}
.hiyoko-table tbody tr:nth-child(odd) {
    background: #faf8f4;
}
.hiyoko-table tbody tr:first-child td {
    color: #333200;
    font-weight: 700;
}

.hiyoko-table tbody tr:nth-child(2) td {
    color: #333200;
    font-weight: 700;
}

.hiyoko-table tbody tr:nth-child(3) td {
    color: #333200;
    font-weight: 700;
}

.hiyoko-point-note {
    font-size: 11.5px;
    color: #aaa59e;
    font-weight: 400;
}

/* ==========================================================================
   NOW! ステータスバー（現在進行中のスケジュールをコンパクト表示）
   ========================================================================== */
.now-status {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 40px 0 60px;
    padding: 12px 14px;
    border-radius: 5px;
    text-decoration: none;
    box-shadow: 0 6px 16px rgba(49, 16, 66, 0.1);
    transition: box-shadow 0.2s ease, transform 0.2s ease;
    border: 1px solid rgba(60, 53, 24, 0.12);
    background-color: #fcfbfa;
}

.now-status:hover {
    box-shadow: 0 8px 18px rgba(49, 16, 66, 0.18);
    transform: translateY(-1px);
}

/* NOW! バッジ部分だけグラデーションを塗る（面積は最小限に） */
.now-status-badge {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.05em;
    color: #ffff00;
    background: linear-gradient(135deg, #1e1b4b 0%, #311042 100%);
    padding: 6px 10px;
    border-radius: 20px;
}

.now-status-badge::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #ffff00;
    animation: nowPulse 1.6s ease-in-out infinite;
}

/* 日付＋テキストの2行表示 */
.now-status-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.now-status-date {
    font-family: 'Montserrat', sans-serif;
    font-size: 11px;
    font-weight: 700;
    color: #a8842e;
    letter-spacing: 0.04em;
}

.now-status-desc {
    font-size: 12.5px;
    font-weight: 500;
    color: #3c3518;
    line-height: 1.4;
    letter-spacing: 0.02em;
}

.now-status-arrow {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    color: #8a857c;
}

@keyframes nowPulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.35; transform: scale(0.6); }
}

/* ==========================================================================
   PREP SCHEDULE：縦型タイムライン
   ========================================================================== */
.prep-timeline {
    position: relative;
    list-style: none;
    margin: 30px 10px 10px;
    padding: 0;
}

.prep-timeline::before {
    content: "";
    position: absolute;
    top: 6px;
    bottom: 6px;
    left: 5px;
    width: 1px;
    background: rgba(60, 53, 24, 0.2);
}

.prep-timeline-item {
    position: relative;
    padding: 0 0 28px 30px;
    opacity: 0;
    transform: translateY(14px);
    transition: opacity 0.7s ease, transform 0.7s ease;
}

.prep-timeline-item.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.prep-timeline-item-final::before {
    width: 14px;
    height: 14px;
    left: -1.5px;
    top: 2px;
    background: #a8842e;
    box-shadow: 0 0 0 3px #fcfbfa, 0 0 0 4px rgba(168, 132, 46, 0.35);
}

.prep-timeline-item-final .prep-timeline-date {
    color: #a8842e;
}

.prep-timeline-item:last-child {
    padding-bottom: 0;
}

.prep-timeline-item::before {
    content: "";
    position: absolute;
    left: 0;
    top: 4px;
    width: 11px;
    height: 11px;
    border-radius: 50%;
    background: #3c3518;
    box-shadow: 0 0 0 3px #fcfbfa, 0 0 0 4px rgba(60, 53, 24, 0.25);
}

.prep-timeline-date {
    display: inline-block;
    font-family: 'Montserrat', sans-serif;
    font-size: 15px;
    font-weight: 700;
    color: #3c3518;
    letter-spacing: 0.04em;
    margin-bottom: 4px;
}

.prep-timeline-text {
    font-size: 13px;
    color: #8a857c;
    line-height: 1.6;
}

.prep-timeline-period {
    position: relative;
    padding: 0 0 28px 30px;
    min-height: 18px;
    display: flex;
    align-items: center;
    opacity: 0;
    transform: translateY(14px);
    transition: opacity 0.7s ease, transform 0.7s ease;
}

.prep-timeline-period.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.prep-timeline-period span {
    font-size: 11.5px;
    color: #aaa59e;
    letter-spacing: 0.08em;
    font-style: italic;
    background: #f4f1eb;
    padding-right: 8px;
}

/* ==========================================================================
   シンプルモダン・アコーディオン（明るい背景用修正版）
   ========================================================================== */
.modern-accordion {
    width: 97%;
    margin:20px auto;
    /* 周りの文字色に合わせた、薄いブラウンの境界線 */
    border-top: 1px solid rgba(60, 53, 24, 0.15);    
    border-bottom: 1px solid rgba(60, 53, 24, 0.15);
    background: transparent;
    transition: background 0.3s ease;
}

/* 開いている状態の背景（ほんのりシアーな影をプラス） */
.modern-accordion[open] {
    background: rgba(60, 53, 24, 0.02);
}

/* 折りたたみトリガー部分 */
.accordion-trigger {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 8px;
    cursor: pointer;
    list-style: none; /* デフォルトの矢印を消去 */
}
.accordion-trigger::-webkit-details-marker {
    display: none; /* Safari用のデフォルト矢印消去 */
}

/* トリガーのテキスト（背景に映える濃いブラウンに変更） */
.trigger-text {
    font-size: 14px;
    font-weight: 600;
    color: #3c3518; /* スクショのエントリー期間と同じ系統の濃い色 */
    letter-spacing: 0.03em;
    transition: opacity 0.2s ease;
}
.accordion-trigger:hover .trigger-text {
    opacity: 0.7;
}

/* モダンな細線プラスマイナス・アイコン */
.trigger-icon {
    position: relative;
    width: 14px;
    height: 14px;
}
.trigger-icon::before,
.trigger-icon::after {
    content: "";
    position: absolute;
    background-color: #3c3518; /* アイコンの色も濃いブラウンに変更 */
    transition: transform 0.3s ease;
}
/* 横線 */
.trigger-icon::before {
    top: 6px;
    left: 0;
    width: 14px;
    height: 1.5px;
}
/* 縦線 */
.trigger-icon::after {
    top: 0;
    left: 6px;
    width: 1.5px;
    height: 14px;
}

/* アコーディオンが開いたとき、縦線を回転させて隠す（マイナスにする） */
.modern-accordion[open] .trigger-icon::after {
    transform: rotate(90deg);
    opacity: 0;
}
.modern-accordion[open] .trigger-icon::before {
    transform: rotate(180deg);
}

/* 中身のコンテンツエリア */
.accordion-content {
    padding: 4px 8px 20px 8px;
    animation: fadeIn 0.4s ease forwards; 
}

/* 既存のリストのモダン調整 */
.requirement-list {
    margin: 0;
    padding: 0;
    list-style: none;
}
.requirement-list li {
    font-size: 13.5px;
    line-height: 1.7;
    color: #8a857c; /* 本文テキストに馴染むマイルドなブラウン */
    margin-bottom: 8px;
}
.requirement-list li:last-child {
    margin-bottom: 0;
}
.requirement-list b {
    color: #3c3518; /* ラベル部分はくっきり見せる */
    font-weight: 700;
}

.sub-desc-accordion {
    font-size: 13.5px;
    color: #8a857c;
    font-weight: 400;
    margin: 0 10px 20px;
}


.sub-desc-accordion-2 {
    font-size: 13.5px;
    color: #8a857c;
    font-weight: 400;
    margin: 20px 10px 10px;
}


.sub-desc-accordion-line {
    font-size: 13.5px;
    color: #8a857c;
    font-weight: 400;
    margin: 15px 0 0;
    padding:20px;
    border-top: 1px solid rgba(60, 53, 24, 0.15);   
}

/* フェードインアニメーション */
@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(-4px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* スマートフォン表示時の微調整 */
@media (max-width: 600px) {
    .trigger-text {
        font-size: 13.5px;
    }
    .requirement-list li {
        font-size: 13px;
    }
}

/* ==========================================================================
   アコーディオン内：エントリー項目ミニマルテーブル
   ========================================================================== */
.entry-fields-table-wrap {
    margin-top: 18px;
    width: 100%;
    overflow-x: auto; /* スマホで万が一はみ出しても横スクロール可能にする */
    -webkit-overflow-scrolling: touch;
}

.entry-fields-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
    text-align: left;
}

/* ヘッダー：背景をつけずに細い線だけで仕切るモダンスタイル */
.entry-fields-table th {
    padding: 10px 12px;
    color: #3c3518; /* 濃いブラウン */
    font-weight: 700;
    font-size: 12.5px;
    letter-spacing: 0.04em;
    border-bottom: 2px solid rgba(60, 53, 24, 0.25); /* ほんの少し太い下線 */
}

/* セル：縦線（格子状の線）は無しにして、極細の横線のみですっきり見せる */
.entry-fields-table td {
    padding: 12px 12px;
    color: #5c5332; /* マイルドなブラウン */
    border-bottom: 1px solid rgba(60, 53, 24, 0.1); /* 極細の横境界線 */
    line-height: 1.6;
}

/* 項目名（左側の列）を少しだけ強調 */
.entry-fields-table td:first-child {
    font-weight: 600;
    color: #3c3518;
    width: 30%; /* 左側の列の幅を固定して綺麗に揃える */
    min-width: 80px;
}

/* 最後の行の線は消して綺麗に */
.entry-fields-table tr:last-child td {
    border-bottom: none;
}

/* ホバー時に優しく1行ずつハイライトする演出 */
.entry-fields-table tr:hover td {
    background: rgba(60, 53, 24, 0.02);
}

/* スマートフォン表示時の微調整（画面幅 600px 以下） */
@media (max-width: 600px) {
    .entry-fields-table-wrap {
        margin-top: 14px;
    }
    .entry-fields-table {
        font-size: 12px;
    }
    .entry-fields-table th,
    .entry-fields-table td {
        padding: 10px 8px; /* スマホでは余白を少しギュッと詰める */
    }
}

/* ==========================================================================
   ひよこ絵文字から置き換えた「たまご画像」の調整
   ========================================================================== */
.icon-tamago {
    display: inline-block;
    /* 文字の高さ（1em）に合わせることで、フォントサイズが変わっても自動追従します */
    height: 2em; 
    width: auto;
    vertical-align: bottom;
    
    /* 文字とくっつきすぎないように左側に少しだけ隙間を作る */
    margin-right: 6px; 
    object-fit: contain;
}

.icon-niwatori {
    display: inline-block;
    /* 文字の高さ（1em）に合わせることで、フォントサイズが変わっても自動追従します */
    height: 2em; 
    width: auto;
    vertical-align: bottom;
    
    /* 文字とくっつきすぎないように左側に少しだけ隙間を作る */
    margin-right: 6px; 
    
    object-fit: contain;
}

.size-c {
    font-size: 1.5em;
    margin-right:2px;
}

/* ==========================================================================
   スマホでの画像長押しによる拡大・保存プレビューを禁止する
   ========================================================================== */
.icon-tamago,
.title-num-img,
.kirakira-l,
.kirakira-r,
.entry-number img {
    /* 1. iOS(Safari)で長押ししたときのプレビューやメニュー表示を無効化 */
    -webkit-touch-callout: none;
    
    /* 2. Androidや一部ブラウザでの選択・コピー・メニュー呼び出しを禁止 */
    -webkit-user-select: none;
    user-select: none;
    
    /* 3. 画像に対するタップや長押しなどのポインターイベント自体を無効化 */
    /* これを入れることで、ブラウザは「画像」ではなく「背景テキスト」と同じ扱いにするため、完全に浮き上がらなくなります */
    pointer-events: none;
}

/* ==========================================================================
   Wエントリーバナーのキラキラ（左右のズレ＆ふわふわ非同期アニメーション）
   ========================================================================== */
.w-entry-headline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 18px; /* 文字とキラキラの間のすき間 */
}

/* 左右のキラキラ共通のベース設定 */
.kirakira-l,
.kirakira-r {
    display: inline-block;
    height: 2em; /* 文字の大きさに合わせる */
    width: auto;
    object-fit: contain;
    
    /* スマホ長押し拡大防止 */
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    user-select: none;
    pointer-events: none;
}

/* --- ①【位置のズレ】と ②【アニメーション】の個別設定 --- */

/* 左側のキラキラ：ほんの少し「下」にズラし、3秒周期でゆったり浮遊 */
.kirakira-l {
    transform: translateY(0.1em); 
    animation: floatKirakiraLeft 3s ease-in-out infinite;
}

/* 右側のキラキラ：ほんの少し「上」にズラし、2.4秒周期で少し早めに浮遊 */
.kirakira-r {
    transform: translateY(-0.2em); 
    animation: floatKirakiraRight 2.4s ease-in-out infinite;
}

/* 左側のアニメーション（下起点でふわふわ） */
@keyframes floatKirakiraLeft {
    0%, 100% {
        transform: translateY(0.1em) rotate(0deg);
    }
    50% {
        transform: translateY(-0.08em) rotate(-3deg);
    }
}

/* 右側のアニメーション（上起点でふわふわ） */
@keyframes floatKirakiraRight {
    0%, 100% {
        transform: translateY(-0.2em) rotate(0deg);
    }
    50% {
        transform: translateY(-0.38em) rotate(4deg);
    }
}