/* ==========================================================================
   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', "Zen Kaku Gothic New",
                 "Yu Gothic Medium", "游ゴシック Medium", YuGothic,
                 "Hiragino Sans", sans-serif;
    font-weight: 400;
    color: #2c2c2c;
    line-height: 1.85;
    letter-spacing: 0em;
    -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: 15px;
    font-weight: 500;
    padding: 20px 60px;
    border-radius: 70px;
    line-height: 1.4;
    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: 15px;    /* 少し角丸に */
    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;
    font-weight:400;
    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;   /* スマホで改行を極力防ぐためのサイズ調整 */
        font-weight:400;
        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: 15px;
    padding: 25px 23px 25px 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 10px;
}


.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: 20px 60px;
    border-radius: 70px;
    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.5;
    letter-spacing: 0;
    padding: 6px 6px 6px 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: 11.5px;
        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;
    margin-bottom: 0px;
}

.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: #06C755;
    color: #ffffff;
    text-decoration: none;
    font-size: 13px;
    font-weight: 700;
    padding: 10px 30px;
    border-radius: 50px;
    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;
    margin-bottom:70px;
}

/* ==========================================================================
   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);
}


/* ==========================================================================
   トップへ戻るボタン：画面の右下に固定
   ========================================================================== */
/* ★ 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) {
    /* トップへ戻る：画面の右下に。iPhone のホームバーのぶんだけ自動で上げる */
    .scroll-top-btn,
    body.is-pwa .scroll-top-btn,
    body.is-line .scroll-top-btn {
        top: auto;
        right: 16px;
        bottom: calc(16px + env(safe-area-inset-bottom, 0px));
    }

    /* 下部ナビが残っているページだけ、その上に */
    body:has(.mobile-bottom-nav) .scroll-top-btn {
        bottom: calc(80px + env(safe-area-inset-bottom, 0px));
    }
}


/* ★ 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: 10px;
        letter-spacing: 0.08em;
    }



    /* セクション間のセパレーター */
    .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: 20px;
        padding: 20px 20px 20px 25px;
    }

    .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, rgba(64, 19, 86, 0.9) 0%, rgba(43, 10, 74, 0.85) 100%);
    border-radius: 15px;
    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: 0;
    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;
    font-size:17px;
}

.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: 13.5px;
    color: #8a857c;
    line-height: 1.6;
    font-weight:500;
}

.final {
    font-size:16px;
}

.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: 13px;
    font-weight:400;
    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 14px;
    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 12px 28px 12px;
    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;
    font-weight: 500;
    color: #8a857c; /* 本文テキストに馴染むマイルドなブラウン */
    margin-bottom: 18px;
}
.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: 500;
    margin: 0 10px 20px;
}


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


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

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

.sub-desc-accordion-hiyoko b {
    color: #3c3518; /* ラベル部分はくっきり見せる */
    font-weight: 700; 
}

.sub-desc-accordion b {
    color: #3c3518; /* ラベル部分はくっきり見せる */
    font-weight: 700; 
}

/* フェードインアニメーション */
@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: 13.5px;
    }
}

/* ==========================================================================
   アコーディオン内：エントリー項目ミニマルテーブル
   ========================================================================== */
.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: 13.5px;
    font-weight:500;
    text-align: left;
}

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

/* セル：縦線（格子状の線）は無しにして、極細の横線のみですっきり見せる */
.entry-fields-table td {
    padding: 12px 12px;
    color: #8a857c;
    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: 12.5px;
        font-weight:500;
    }
    .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,
.icon-niwatori,
.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);
    }
}


/* ==========================================================================
   Wエントリーできます！（上部）
   ========================================================================== */

/* リボン全体のコンテナ（カードと横幅を100%同期） */
.w-entry-ribbon-wrapper {
    display: flex;
    justify-content: center;
    margin-top: 25px;
    width: 100%;
}

/* 左右に一直線に伸びるラインを内包するリボン本体 */
.w-entry-slash-ribbon {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px; /* 文字とキラキラの間の心地よい隙間 */
    width: 100%; 
    max-width: 100%; /* 親要素（kv-nav-wrapper）と同じ横幅いっぱいに広げます */
    box-sizing: border-box; /* paddingを含めた幅計算にする */
    background: transparent; /* 背景は完全に透明にして浮きをなくす */
    position: relative; /* 左右の横棒の基準位置になります */
    
    }

/* ==========================================================================
   ★ 修正ポイント：擬似要素を使って、キラキラの外側へ伸びる「左右の横棒」を配置
   ========================================================================== */
.w-entry-slash-ribbon::before,
.w-entry-slash-ribbon::after {
    content: "";
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    height: 1px; /* 非常に細く上品な横棒の太さ */
    /* キラキラの外側から、カードの両端（0% / 100%）まで自動で伸びるように幅を計算 */
    width: calc(50% - 130px); 
}

/* 左側の横棒：中央（キラキラ側）から左端に向かって透明に消えるグラデーション */
.w-entry-slash-ribbon::before {
    left: 0;
    background: linear-gradient(135deg, #16316e 0%, #2e26a1 50%, #601e82 100%);
}

/* 右側の横棒：中央（キラキラ側）から右端に向かって透明に消えるグラデーション */
.w-entry-slash-ribbon::after {
    right: 0;
    background: linear-gradient(135deg, #16316e 0%, #2e26a1 50%, #601e82 100%);

}

/* 中央のテキストスタイル（文字グラデーション） */
.w-entry-slash-ribbon .ribbon-content {
    /* 修正：colorへの不適切な記述を削除し、完全にくり抜きのみでグラデーションを表現 */
    font-size: 16px;
    font-weight: 600;
    font-style: italic; /* 文字を斜体（イタリック）にします */
    letter-spacing: 0.08em;
    white-space: nowrap;
    
    display: inline-block;

    /* ---- 文字グラデーションの設定 ---- */
    /* 文字にかけたいグラデーションの指定（左から右へ） */
    background: linear-gradient(135deg, #16316e 0%, #2e26a1 50%, #601e82 100%); 
    
    /* 背景を「文字の形」でくり抜く設定（Safari等のブラウザ対応含む） */
    -webkit-background-clip: text;
    background-clip: text;
    
    /* 本来の文字色（塗りつぶし）を透明にすることで、背景のグラデーションを透けさせます */
    -webkit-text-fill-color: transparent;
    color: transparent;
}

/* 左右のキラキラ共通スタイル */
.w-entry-slash-ribbon .ribbon-sparkle {
    color: #ffffff; 
    font-size: 12px;
    display: inline-block;
}

/* --- アニメーション：左右のキラキラを非同期で優しく浮遊させる --- */

/* 左のキラキラ：2.6秒周期でゆったり上下浮遊＋少し回転 */
.w-entry-slash-ribbon .sparkle-l {
    animation: sparkleFloatLeft 2.6s ease-in-out infinite;
    padding-top: 8px;
}

/* 右のキラキラ：2.0秒周期でテンポをズラして上下浮遊 */
.w-entry-slash-ribbon .sparkle-r {
    animation: sparkleFloatRight 2.0s ease-in-out infinite;
    padding-top: 8px;
}

@keyframes sparkleFloatLeft {
    0%, 100% { transform: translateY(0) rotate(0deg); opacity: 0.5; }
    50% { transform: translateY(-3.5px) rotate(15deg); opacity: 1; }
}

@keyframes sparkleFloatRight {
    0%, 100% { transform: translateY(0) rotate(0deg); opacity: 0.6; }
    50% { transform: translateY(-2.5px) rotate(-10deg); opacity: 1; }
}

/* スマホ対応（画面幅に合わせてシャープさとサイズを最適化） */
@media (max-width: 600px) {
    .w-entry-ribbon-wrapper {
        margin-top: 16px;
    }
    .w-entry-slash-ribbon {
        padding: 8px 0; /* width100%で合わせるため、左右の不要なpaddingを0に調整 */
        gap: 8px;
    }
    /* ★ スマホ用に、テキストが縮んだ分だけ横棒の長さを自動調整する設定 */
    .w-entry-slash-ribbon::before,
    .w-entry-slash-ribbon::after {
        width: calc(50% - 125px); /* 文字幅が狭くなる分、ラインを内側に伸ばす */
        height: 1px;
    }

    .w-entry-slash-ribbon .ribbon-content {
        font-size: 15px;
        letter-spacing: 0.08em;
    }
    .w-entry-slash-ribbon .ribbon-sparkle {
        font-size: 12px;
    }
}

/* ==========================================================================
   お知らせポップアップ（画面下部）
   ========================================================================== */
.notice-popup {
    position: fixed;
    z-index: 1200;
    left: 16px;
    right: 78px;                /* 「上に戻る」ボタンの逃げ */
    bottom: calc(84px + env(safe-area-inset-bottom, 8px));
    width: auto;
    max-width: 220px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(16px);
    transition: opacity 0.4s ease,
                transform 0.4s cubic-bezier(0.32, 0.72, 0, 1),
                visibility 0.4s;
}

.notice-popup.is-open {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.notice-popup-inner { position: relative; }

.notice-popup-link {
    position: relative;         /* アイコンのはみ出しの基準 */
    display: block;
    padding: 15px 22px 15px 30px;  /* 左＝アイコン分／右＝×分 */
    background: #fffdfa;
    border: 1px solid rgba(60, 53, 24, 0.14);
    border-radius: 10px;
    box-shadow: 0 6px 20px rgba(15, 12, 30, 0.14);
    text-decoration: none;
    color: #3c3518;
}

/* 01アイコン：カードの左上から少しはみ出す */
.notice-popup-icon {
    position: absolute;
    top: -5px;
    left: -4px;
    width: 34px;
    height: 34px;
    object-fit: contain;
    filter: drop-shadow(0 3px 6px rgba(15, 12, 30, 0.2));
    pointer-events: none;
    animation: noticeIconSpin 2.8s linear 3;  /* 3回まわして停止 */
}

@keyframes noticeIconSpin {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

/* 動きを抑える設定の端末では停止 */
@media (prefers-reduced-motion: reduce) {
    .notice-popup-icon { animation: none; }
}

.notice-popup-body {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
}

.notice-popup-label { font-size: 9px;    letter-spacing: 0.1em; color: #8a857c; }
.notice-popup-title { font-size: 12.5px; font-weight: 700; line-height: 1.35; letter-spacing: 0.02em; color: #311042;}
.notice-popup-more  { 
font-size: 10px;
    font-weight: 600;
    color: #311042;
    text-decoration: underline;
    text-underline-offset: 8px;
    text-decoration-thickness: 1px;
    margin-top:5px;
}

/* 丸い矢印は省略（戻す場合はこの行を削除） */
.notice-popup-arrow { display: none; }

/* ×：枠内・丸囲みなし */
.notice-popup-close {
    position: absolute;
    top: 5px;
    right: 5px;
    z-index: 2;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    background: none;
    border: none;
    box-shadow: none;
    border-radius: 0;
    color: #aaa59e;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
}

.notice-popup-close:hover { color: #3c3518; }

@media (min-width: 481px) {
    .notice-popup {
        left: 32px;
        right: auto;
        bottom: 96px;
        max-width: 260px;
    }
}
/* ==========================================================================
   NEWS（トップページ）：タイトルだけを出す
   ----------------------------------------------------------------------
   本文は news-addon.js 側で出力しなくなりましたが、
   タイトルが長い記事でセクションが伸びないよう2行で打ち切ります。

   ★ セレクタを body.page-home から始めています。
      /news/index.html のラッパーも id="section-news" なので、
      #section-news だけで書くと一覧ページ側まで巻き込みます。
      page-home クラスはトップページの <body> にだけ付いています。
   ========================================================================== */
body.page-home #section-news .news-title {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* 万一 .news-body が残っていても、トップには出さない */
body.page-home #section-news .news-body { display: none; }

/* ==========================================================================
   FV告知：出演バンド全◯組決定！（キービジュアルの下）
   ----------------------------------------------------------------------
   囲み枠は使わず、文字だけで置いています。KVが白地に線画だけの構成なので、
   白いパネルを乗せると後から貼った付箋のように見えるためです。
   数字にはロゴの「!」と同じ黄色い板（#ffff00）を敷いています。

   動きは js/lineup.js が .is-on を付けた時点で始まります。
   ========================================================================== */
.lineup-fv {
    position: relative;
    margin: -30px auto 54px;   /* h1 がKVの下にはみ出している分を詰める */
    text-align: center;
}

/* 読み上げ用（画面には出さず、スクリーンリーダーにだけ完成形を伝える） */
.lineup-sr {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

.lineup-copy {
    display: block;
    margin: 0;
    font-weight: 700;
    color: #333200;
    word-break: keep-all;      /* body の break-all を打ち消す */
    overflow-wrap: normal;
    opacity: 0;
    transform: translateY(14px);
}

.lineup-fv.is-on .lineup-copy {
    animation: lineupIn 0.75s cubic-bezier(0.2, 0.85, 0.3, 1) forwards;
}

@keyframes lineupIn {
    to { opacity: 1; transform: translateY(0); }
}

/* 1行目「出演バンド」：小さく、字間を広くとって上に置く */
.lineup-copy-pre {
    display: block;
    font-size: 22px;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0.2em;
    text-indent: 0.34em;       /* 字間の分だけ右にずれるのを戻す */
    margin-bottom: 3px;
    color: #6b6459;
}

/* 2行目「全21組決定！」。
   数字とそれ以外の差（ジャンプ率）は 30 : 18 ＝ 1.7倍 */
.lineup-copy-main {
    display: flex;
    align-items: baseline;
    justify-content: center;
    flex-wrap: wrap;
    gap: 6px;
    line-height: 1.15;
    letter-spacing: 0.08em;
}

.lineup-zen,
.lineup-unit,
.lineup-copy-post { font-size: 24px; }

/* 数字：ロゴの「!」と同じ、黄色い板を敷いた見せ方 */
.lineup-count {
    position: relative;
    display: inline-block;
    min-width: 1.55em;
    padding: 0 4px;
    font-family: 'Montserrat', sans-serif;
    font-size: 32px;
    font-weight: 700;
    letter-spacing: 0.03em;
    font-variant-numeric: tabular-nums;   /* 桁が変わっても横幅が揺れない */
    color: #333200;
}

.lineup-count::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 4px;
    height: 40%;
    background: #ffff00;
    z-index: -1;
    transform: scaleX(1);
    transform-origin: left center;
}

/* 数字が回り終わるころ、左から黄色い板が引かれる */
.lineup-fv.is-on .lineup-count::before {
    animation: lineupSlab 0.45s cubic-bezier(0.2, 0.85, 0.3, 1) 1.5s both;
}

@keyframes lineupSlab {
    from { transform: scaleX(0); }
    to   { transform: scaleX(1); }
}

/* カウントが止まった瞬間のひと弾み */
.lineup-count.is-hit { animation: lineupHit 0.45s cubic-bezier(0.3, 1.4, 0.4, 1); }

@keyframes lineupHit {
    0%   { transform: scale(1) rotate(0deg); }
    38%  { transform: scale(1.14) rotate(-2deg); }
    100% { transform: scale(1) rotate(0deg); }
}

/* --- 数字のまわりではじけるキラキラ --- */
.lineup-burst {
    position: absolute;
    top: 42px;
    left: 50%;
    width: 0;
    height: 0;
    pointer-events: none;
}

.lineup-burst i {
    position: absolute;
    display: block;
    width: 22px;
    margin: -11px 0 0 -11px;
    opacity: 0;
}

.lineup-burst i img { width: 100%; height: auto; display: block; }

.lineup-burst i:nth-child(1) { --lx: -96px; --ly: -40px; width: 24px; }
.lineup-burst i:nth-child(2) { --lx: -56px; --ly: -62px; width: 16px; }
.lineup-burst i:nth-child(3) { --lx:  60px; --ly: -60px; width: 20px; }
.lineup-burst i:nth-child(4) { --lx: 100px; --ly: -32px; width: 24px; }
.lineup-burst i:nth-child(5) { --lx: -76px; --ly:  34px; width: 16px; }
.lineup-burst i:nth-child(6) { --lx:  80px; --ly:  38px; width: 18px; }

.lineup-fv.is-on .lineup-burst i { animation: lineupBurst 0.95s ease-out forwards; }

.lineup-fv.is-on .lineup-burst i:nth-child(1) { animation-delay: 1.60s; }
.lineup-fv.is-on .lineup-burst i:nth-child(2) { animation-delay: 1.67s; }
.lineup-fv.is-on .lineup-burst i:nth-child(3) { animation-delay: 1.63s; }
.lineup-fv.is-on .lineup-burst i:nth-child(4) { animation-delay: 1.71s; }
.lineup-fv.is-on .lineup-burst i:nth-child(5) { animation-delay: 1.68s; }
.lineup-fv.is-on .lineup-burst i:nth-child(6) { animation-delay: 1.65s; }

@keyframes lineupBurst {
    0%   { opacity: 0; transform: translate(0, 0) scale(0.3) rotate(0deg); }
    22%  { opacity: 1; }
    100% { opacity: 0; transform: translate(var(--lx), var(--ly)) scale(1) rotate(120deg); }
}

@media (max-width: 380px) {
    .lineup-count      { font-size: 27px; }
    .lineup-copy-pre   { font-size: 11.5px; letter-spacing: 0.3em; text-indent: 0.3em; }
    .lineup-zen,
    .lineup-unit,
    .lineup-copy-post  { font-size: 16.5px; }
    .lineup-burst      { top: 38px; }
}

/* --- 動きを減らす設定の端末では静止表示 --- */
@media (prefers-reduced-motion: reduce) {
    .lineup-copy {
        opacity: 1 !important;
        transform: none !important;
        animation: none !important;
    }
    .lineup-count::before { transform: scaleX(1) !important; animation: none !important; }
    .lineup-burst { display: none !important; }
}

/* GUIDE：リンク先がまだ無いカード（<a> ではなく <span> で置いています） */
.guide-card.is-preparing {
    opacity: 0.55;
    cursor: default;
}

/* 中身が短いページ（サイトポリシーなど）は、上下中央にせず上から並べる */
body.is-short-page {
    align-items: flex-start;
}
