@charset "UTF-8";

/* ============================================================
   CUSTOM.CSS — イベントカラー変数（企画ごとに書き換え）
   base.css のデフォルト値をここで上書きするだけ。
   base.css 自体は触らない。

   WORKFLOW:
     1. :root の色変数を企画カラーに変更する
     2. 背景やフォントのカスタマイズはコメントアウトを外して追記
     3. 共通コンポーネントの変更は base.css へ
   ============================================================ */


/* ============================================================
   BRAND COLORS — 企画ごとに変更する
   ============================================================ */
:root {
    --color-main:   #ffffff;   /* ページ背景色 */
    --color-sub1:   #ec5e8e;   /* メインカラー（ぼっちピンク） */
    --color-sub2:   #4bb3eb;   /* サブカラー（水色） */
    --color-sub3:   #fefbe7;   /* 薄クリーム */
    --color-sub4:   #ec5e8e;   /* アクセント（ピンク） */
    --color-sub5:   #f0faff;   /* 薄水色背景 */
    --color-local:  #f2b800;   /* 差し色（黄色） */
    --color-text:   #373b39;   /* テキストカラー */
    --color-button: #ec5e8e;   /* ボタンカラー */
    --font-family:  'Noto Sans JP', YakuHanJP, sans-serif;
}


/* ============================================================
   SECTION HEADING — テキストセクションタイトル
   ============================================================ */
.section-heading {
    width: 100%;
    text-align: center;
    padding: 0.22rem 0.20rem 0.18rem;
    background: linear-gradient(135deg, var(--color-sub1) 0%, var(--color-sub2) 100%);
    position: relative;
}

.section-heading::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 0.60rem;
    height: 0.05rem;
    background: var(--color-local);
    border-radius: 0.025rem;
}

.section-heading-text {
    color: #fff;
    font-size: 0.22rem;
    font-weight: 800;
    letter-spacing: 0.03em;
    line-height: 1.2;
    font-family: var(--font-family);
    text-shadow: 0 0.01rem 0.03rem rgba(0, 0, 0, 0.2);
}


/* ============================================================
   SHINKANSEN HEADER — 画像ヘッダーが用意できない時の
   「新幹線コンテンツ用」バナーヘッダー（横向き新幹線 /img/shinkansen.png）
   （ultraman60th_s で採用。声グラ /seigura の .charaIcon.shinkansen を踏襲）

   使い方（section-heading の代わりにこれを置く）:
     <div class="lead-heading">
         東海道新幹線車内コンテンツ
         <div class="charaIcon shinkansen"><img src="/img/shinkansen.png" alt="東海道新幹線"></div>
     </div>

   ・帯グラデは sub1→sub2（テーマ非依存で白文字が読める暗さ）。企画色を効かせたい
     場合のみ background を上書きする。
   ・新幹線は実寸(1080px=10.8rem)で帯を突き抜け、overflow:hidden で帯内クリップ
     → 疾走感を出しつつはみ出しは自己完結（content-holder 側の overflow に依存しない）。
   ============================================================ */
.lead-heading {
    position: relative;                 /* 子（新幹線）の基準 + はみ出しの自己完結 */
    overflow: hidden;                   /* 帯からはみ出す新幹線を帯内でクリップ */
    width: 100%;
    text-align: center;
    background: linear-gradient(135deg, var(--color-sub1) 0%, var(--color-sub2) 100%);
    color: #fff;
    font-weight: 800;
    font-size: 0.22rem;
    letter-spacing: 0.04em;
    line-height: 1.2;
    font-family: var(--font-family);
    padding: 0.14rem 0.14rem 0.10rem;
    border-radius: 0;
    text-shadow: 0 0.01rem 0.03rem rgba(0, 0, 0, 0.35);
}

.lead-heading .charaIcon.shinkansen {
    text-align: center;
    margin: 0.04rem auto 0;
    /* ずらしたい時のみ position: relative; + top/left。無しでは top/left は無効 */
}

.lead-heading .charaIcon.shinkansen img {
    width: 10.8rem;                     /* = 実寸 1080px。見た目維持しつつ PNG 差し替え時の寸法ズレを防ぐ */
    height: auto;
    filter: drop-shadow(0 0.04rem 0.10rem rgba(11, 20, 60, 0.35));
}


/* ============================================================
   BACKGROUND (任意)
   企画の背景色・パターンが必要な場合にコメントアウトを外す
   ============================================================ */
/* body { background-color: #f0e8ff; } */


/* ============================================================
   CONTENT-HOLDER BORDER VARIANTS (任意)
   イベントカラーの枠 + 影をつける場合
   ============================================================ */
.content-holder {
    background: rgba(255, 255, 255, 0.8);
    border-radius: 0rem;
    border: unset;
    box-shadow:unset;
}


/* ============================================================
   DISABLED — 触れないことを視覚的に明確にする
   企画ごとの button-bg / グラデを上書きするため !important で最優先化。
   base.css の .iconButton[disabled] と同じ gray グラデを採用。
   ============================================================ */
.iconButton[disabled],
.iconButton.disabled,
.iconButton:disabled,
.iconButton[disabled].button-bg,
.iconButton.disabled.button-bg,
.iconButton:disabled.button-bg {
    background: linear-gradient(to right, gray, darkgray) !important;
    color: #fff !important;
    pointer-events: none !important;
    cursor: default !important;
    opacity: 0.7;
}
/* disabled の内側白枠も無効化（押せそうに見えないよう） */
.iconButton[disabled]::before,
.iconButton.disabled::before,
.iconButton:disabled::before {
    border-color: rgba(255, 255, 255, 0.4) !important;
}


/* ============================================================
   STAMP / AR GRID (任意)
   ARフレーム数が異なる場合に列数を変更する
   ============================================================ */
/* .icon-grid-4 { grid-template-columns: repeat(3, 1fr); } */


/* ============================================================
   FONT OVERRIDE (任意)
   企画カスタムフォントが必要な場合 — info.inc.php の Google Font
   リンクと合わせて設定する
   ============================================================ */
/* @import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP&display=swap'); */
/* main { font-family: "Noto Serif JP", sans-serif; } */
/* .fontEvent { font-family: "Noto Serif JP", sans-serif !important; } */


/* ============================================================
   SECTION HEAD OVERLAP (任意)
   セクションタイトルを content-holder に被せるレイアウト
   ============================================================ */
/* .section-head-overlap {
    position: relative;
    z-index: 1;
    margin-bottom: -0.40rem;
}
.section-head-overlap + .content-holder {
    padding-top: 0.30rem;
} */


/* ============================================================
   FONT UTILITY OVERRIDE — base.css のバグ修正 + caution の強制統一
   base.css 末尾 (line 1106) で .fontNotoSans が var(--font-family) で
   上書きされており、Noto Sans JP に切り替わらない。custom.css は base.css
   の後で読み込まれるためここで実フォント名を強制する。
   caution 系は class 指定有無に関わらず常に Noto Sans JP で固定する
   (本文の event フォントと視覚的に分離するため)。
   ============================================================ */
.fontNotoSans,
.fontNotoSans *,
.caution,
.caution *,
ul.caution,
ul.caution li,
ul.caution li a {
    font-family: "Noto Sans JP", YakuHanJP, sans-serif !important;
}


/* ============================================================
   BTR_2 固有 — フラット集約型トップの追加クラス
   （overthesun-obatabi_01 のパターンを移植）
   ============================================================ */

/* セクションタイトル画像 */
.section-title-img {
    display: block;
    width: 100%;
    height: auto;
    margin: 0 auto;
}

/* 期間バー（LP の .c-schedule 準拠: 左ピンク塗りラベル + ピンク枠白地・ピンク日付） */
.btr-schedule {
    display: flex;
    width: 92%;
    margin: 0.16rem auto;
}

.btr-schedule__title {
    box-sizing: border-box;
    padding: 0 0.13rem;
    font-size: 0.13rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.07em;
    color: #fff;
    background-color: var(--color-sub1);
    border-radius: 0.04rem 0 0 0.04rem;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.btr-schedule__content {
    box-sizing: border-box;
    font-size: 0.14rem;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: 0.02em;
    white-space: nowrap;
    color: var(--color-sub1);
    padding: 0.07rem 0.09rem;
    border: 0.02rem solid var(--color-sub1);
    border-radius: 0 0.04rem 0.04rem 0;
    flex-grow: 1;
    background-color: #fff;
    display: flex;
    align-items: center;
    text-align: left;
}

.btr-schedule__content span {
    font-size: 0.11rem;
}

/* ボタンの角は完全な半円（ピル型・LP 準拠） */
.iconButton,
.iconButton::before,
.simpleButton,
.loginRgisterButton,
.toOshitabiTop {
    border-radius: 999px;
}

/* 引換場所ボックス（LP の .info-box.yellow 準拠: 黄枠・方眼柄背景・黄バー見出し） */
.btr-infobox {
    width: 96%;
    margin: 0.24rem auto 0.20rem;
    padding: 0.20rem 0.18rem;
    border-radius: 0.08rem;
    border: 0.02rem solid #fabe00;
    background-image: url("../img/check_yellow.svg");
    background-size: 0.25rem;
    background-repeat: repeat;
    background-position: center;
    display: flex;
    flex-direction: column;
    gap: 0.16rem;
}

.btr-infobox__title {
    font-size: 0.14rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.07em;
    text-align: center;
    color: #fff;
    padding: 0.08rem 0;
    border-radius: 0.04rem;
    background-color: var(--color-local);
    margin: 0;
}

.btr-infobox__text {
    font-size: 0.14rem;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: 0.07em;
    text-align: center;
    color: var(--color-text);
    margin: 0.08rem 0 0;
}

.btr-infobox__text a {
    font-weight: 700;
    text-decoration: underline;
    color: var(--color-text);
}

.btr-infobox__note {
    font-size: 0.12rem;
    font-weight: 400;
    line-height: 1.4;
    letter-spacing: 0.07em;
    text-align: center;
    color: var(--color-text);
    margin: 0.08rem 0 0;
}

/* スタンプ獲得情報グリッド — 上段3つ / 下段2つ。各行を中央寄せ */
.btr-stamp-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: flex-start;
    gap: 0.20rem;
    width: 100%;
    margin: 0.20rem auto;
}

.btr-stamp-grid .btr-stamp-cell {
    flex: 0 0 30%;
    max-width: 25%;
    text-align: center;
}

.btr-stamp-grid .btr-stamp-cell img {
    width: 100%;
    height: auto;
}

.btr-stamp-grid .btr-stamp-name {
    font-size: 0.11rem;
    font-weight: 700;
    color: var(--color-text);
    line-height: 1.3;
    margin-top: 0.03rem;
    word-break: keep-all;
}

/* スポット一覧 */
.btr-spot {
    width: 96%;
    margin: 0.12rem auto 0;
    padding: 0.10rem 0;
    border-bottom: 0.01rem dashed var(--color-local);
    text-align: center;
}

/* 車内ボイスの各弾ブロック（hr の代わりに点線区切り。btr-spot と同系） */
.btr-voice {
    width: 96%;
    margin: 0.12rem auto 0;
    padding: 0rem 0;
    border-bottom: 0.01rem dashed var(--color-local);
    text-align: center;
}


.btr-spot-name {
    font-weight: 800;
    font-size: 0.18rem;
    color: var(--color-text);
    margin-bottom: 0.06rem;
}

/* スポットボタン下のキャプション（message-container の上下 0.15rem を詰める） */
.btr-spot-caption {
    width: 100%;
    margin: 0.05rem auto 0;
    text-align: center;
}


/* 青ボックス（LP の .blue-box 準拠: 青枠・方眼柄・六角リボン見出し） */
.btr-bluebox {
    box-sizing: border-box;
    width: 96%;
    margin: 0.30rem auto 0.20rem;
    position: relative;
    background-image: url("../img/check_blue.svg");
    background-size: 0.25rem;
    background-repeat: repeat;
    background-position: center;
    border: 0.02rem solid var(--color-sub2);
    border-radius: 0.08rem;
    padding: 0.26rem 0.14rem 0.18rem;
}

.btr-bluebox__title {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 0.14rem;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0.07em;
    text-align: center;
    color: #fff;
    padding: 0.08rem 0;
    background-color: var(--color-sub2);
    width: 1.90rem;
    clip-path: polygon(4% 0, 96% 0, 100% 50%, 96% 100%, 4% 100%, 0% 50%);
}

.btr-bluebox__title::before,
.btr-bluebox__title::after {
    content: "";
    width: 0.07rem;
    height: 0.07rem;
    background-color: #fff;
    border-radius: 50%;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}

.btr-bluebox__title::before {
    left: 0.16rem;
}

.btr-bluebox__title::after {
    right: 0.16rem;
}


/* ============================================================
   背景 — PC 幅では全幅 cover をやめ、コンテンツ列幅に収めて中央配置。
   （base.css の main::before は center/cover。ここで PC のみ上書き）
   モバイル(〜430px)は従来どおり画面いっぱいに表示。
   ============================================================ */
@media screen and (min-width: 431px) {
    main::before {
        background-position: center top;
        background-size: 4.30rem auto;
        background-repeat: no-repeat;
        background-color: var(--color-main);
    }
}
