@charset "UTF-8";

/* ============================================================
   CUSTOM.CSS — Nissy × JR東海
   base.css のデフォルト値をここで上書きするだけ。base.css 自体は触らない。

   デザイン基準:
     参考LP https://jr-central.pnq-production.com/oshi-tabi/nissy/phase1/
     （css/style.css の h-campaign1 / h-campaign2 / sec--common）
     デザインカンプ docs/project/assets/nissy/design_related.jpg

   REM: デザイン px ÷ 100 = rem（100px = 1rem @ 430px 幅）
   フォント: 日本語 = Noto Sans JP / 英語見出し = Kalnia（script.inc.php で読込）
   ============================================================ */


/* ============================================================
   BRAND COLORS
   ============================================================ */
:root {
    --color-main: #fffedf;
    /* ページ背景色 */
    --color-sub1: #a4d0db;
    /* KV 帯・アクセント（水色） */
    --color-sub2: #e6e277;
    /* Original Talk 帯（イエローグリーン） */
    --color-sub3: #aba69e;
    /* Present Campaign 帯（グレージュ） */
    --color-sub4: #d5cec1;
    /* Special Promotion 帯（ベージュ） */
    --color-sub5: #e8f1f8;
    /* 薄水色背景 */
    --color-local: #f1d511;
    /* 差し色（黄） */
    --color-text: #1a1a2e;
    /* テキストカラー */
    --color-button: #dc4559;
    /* ボタンカラー（LP の CTA 赤） */
    --font-family: 'Noto Sans JP', YakuHanJP, sans-serif;

    /* --- セクション別パレット（LP style.css の変数と 1:1 対応） --- */
    --nissy-kv: #a4d0db;
    /* kv-color                        */
    --nissy-bg1: #e6e277;
    /* bg1  / Original Talk 帯          */
    --nissy-cts1: #fffedf;
    /* cts1 / Original Talk カード      */
    --nissy-key1: #a19d45;
    /* Original Talk のキーカラー        */
    --nissy-bg2: #aba69e;
    /* bg2  / Present Campaign 帯        */
    --nissy-cts2: #ebe9e7;
    /* cts2 / Present Campaign カード    */
    --nissy-key2: #7c776e;
    /* Present Campaign のキーカラー     */
    --nissy-bg3: #d5cec1;
    /* bg3  / Special Promotion 帯       */
    --nissy-cts3: #f4f1ea;
    /* cts3 / Special Promotion カード   */
    --nissy-key3: #8a8175;
    /* Special Promotion のキーカラー    */

    /* セクション内で使い回すエイリアス（各 .p-nissy--* が上書き） */
    --nissy-band: var(--nissy-bg1);
    --nissy-card: var(--nissy-cts1);
    --nissy-key: var(--nissy-key1);
}


/* ============================================================
   HERO / INTRO — KV の下に水色帯（LP kv-color）を敷く
   ============================================================ */
.p-hero {
    background-color: var(--nissy-kv);
}

.p-intro {
    padding-bottom: 0.30rem;
}

.content-holder {
    box-shadow: unset;
    border-radius: 0px;
}

.p-intro .content-holder {
    width: 96%;
    margin-inline: auto;
    background-color: unset;
    border: 0;
    border-radius: 0.06rem;
    padding: 0.16rem 0.14rem 0.18rem;
    box-sizing: border-box;
}


/* ============================================================
   SECTION BLOCK — 帯色 ＋ 斜めカットで次セクションへ繋ぐ
   直前セクションの色を斜めに見せるため、負マージンで重ねて
   clip-path で上辺を斜めにする（LP の sec--common と同じ絵作り）。
   ============================================================ */
.p-nissy {
    position: relative;
    background-color: var(--nissy-band);
    padding: 0.52rem 0 0.36rem;
    margin-top: -0.40rem;
    /* 直前セクションに重ねる */
}

/* 斜めカットの向き（LP はセクションごとに左右交互） */
.p-nissy--slant-r {
    clip-path: polygon(0 0.40rem, 100% 0, 100% 100%, 0 100%);
}

.p-nissy--slant-l {
    clip-path: polygon(0 0, 100% 0.40rem, 100% 100%, 0 100%);
}

/* セクション別カラー */
.p-nissy--talk {
    --nissy-band: var(--nissy-bg1);
    --nissy-card: var(--nissy-cts1);
    --nissy-key: var(--nissy-key1);
}

.p-nissy--present {
    --nissy-band: var(--nissy-bg2);
    --nissy-card: var(--nissy-cts2);
    --nissy-key: var(--nissy-key2);
}

.p-nissy--promotion {
    --nissy-band: var(--nissy-bg3);
    --nissy-card: var(--nissy-cts3);
    --nissy-key: var(--nissy-key3);
}


/* ============================================================
   SECTION HEADING — LP の <hgroup class="h-campaign1">
     <span>  日本語ラベル（白リボン / 文字色＝セクションのキーカラー）
     <em>    日本語サブ見出し（黒）
     <h2>    英語大見出し（Kalnia・黒）
   ============================================================ */
.nissy-hgroup {
    position: relative;
    width: 92%;
    box-sizing: border-box;
    /* 帯の上端から少し下げる。下マージンは 0 にして、
       カードへのかぶり量は .content-holder の margin-top 側で一括管理する
       （隣接兄弟のマージンは相殺されるため、両方に負値を入れても効かない）。 */
    margin: 0.18rem auto 0;
    z-index: 2;
    text-align: left;
}

.nissy-hgroup span {
    position: relative;
    left: -2%;
    display: inline-block;
    background-color: #fff;
    font-family: "Noto Sans JP", YakuHanJP, sans-serif;
    font-size: 0.155rem;
    font-weight: 700;
    line-height: 1.2;
    color: var(--nissy-key);
    letter-spacing: 0.01rem;
    margin-bottom: 0.16rem;
    padding: 0.04rem 0.10rem;
}

/* 白リボンの端を斜めに落とす（LP の ::before / ::after と同じ） */
.nissy-hgroup span::after {
    content: "";
    position: absolute;
    top: 0;
    right: -0.12rem;
    width: 0.12rem;
    height: 100%;
    background-color: #fff;
    clip-path: polygon(0 0, 100% 0, 0 100%);
}

.nissy-hgroup em {
    display: block;
    font-style: normal;
    color: #000;
    font-size: 0.18rem;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.009rem;
    margin-bottom: 0.02rem;
}

.nissy-hgroup h2 {
    margin: 0;
    font-family: "Kalnia", "Noto Serif JP", serif;
    font-size: 0.46rem;
    color: #000;
    font-weight: 500;
    line-height: 1.02;
    letter-spacing: 0.005rem;
    padding-bottom: 0.10rem;
}

/* 右寄せバリエーション（LP の Present Campaign） */
.nissy-hgroup--right {
    text-align: right;
}

.nissy-hgroup--right span {
    left: auto;
    right: -2%;
}

.nissy-hgroup--right span::after {
    right: auto;
    left: -0.12rem;
    clip-path: polygon(100% 0, 100% 100%, 0 100%);
}

.nissy-hgroup--right h2 {
    display: flex;
    justify-content: flex-end;
    text-align: left;
}


/* ============================================================
   CARD — LP の .sec--common（カード色＋四隅の斜めカット）
   ============================================================ */
.p-nissy .content-holder {
    position: relative;
    width: 96%;
    margin-inline: auto;
    background-color: var(--nissy-card);
    border: 0;
    /* 見出し（.nissy-hgroup）に少しかぶせる。かぶった分だけ padding-top を
       増やして、カード先頭（.nissy-schedule）と見出しがぶつからないようにする。 */
    margin-top: -0.28rem;
    padding: 0.50rem 0.15rem 0.40rem;
    overflow: hidden;
}

.p-nissy .content-holder::before,
.p-nissy .content-holder::after {
    content: "";
    position: absolute;
    /* 0.40 x 0.96rem の三角形を、角から 0.02rem だけ外へずらして置く。
       clip-path の斜辺はアンチエイリアスされるため、ピッタリ角に合わせると
       斜辺沿いにカード色（--nissy-card）が薄く残って見える。
       はみ出し分は .content-holder の overflow:hidden で切られるので、
       見た目のカット量は 0.40 x 0.96rem のまま変わらない。 */
    width: 0.42rem;
    height: 0.98rem;
    background-color: var(--nissy-band);
    z-index: 1;
    pointer-events: none;
}

.p-nissy .content-holder::before {
    top: -0.02rem;
    left: -0.02rem;
    clip-path: polygon(0 0, 100% 0, 0 100%);
}

.p-nissy .content-holder::after {
    bottom: -0.02rem;
    right: -0.02rem;
    clip-path: polygon(0 100%, 100% 100%, 100% 0);
}

/* カード内の要素は斜めカットより前面に */
.p-nissy .content-holder>* {
    position: relative;
    z-index: 2;
}


/* ============================================================
   SCHEDULE LINE — 上下ボーダー＋イタリックの日付（LP .schedule）
   ============================================================ */
.nissy-schedule {
    width: 84%;
    margin: 0 auto 0.18rem;
    padding: 0.05rem 0;
    border-top: 0.01rem solid #000;
    border-bottom: 0.01rem solid #000;
    font-family: "Noto Sans JP", YakuHanJP, sans-serif;
    font-size: 0.15rem;
    font-style: italic;
    font-weight: 500;
    color: #000;
    line-height: 1.5;
    letter-spacing: 0.005rem;
    text-align: center;
}

.nissy-schedule em {
    font-size: 0.22rem;
    font-style: italic;
    font-weight: 500;
}


/* ============================================================
   SUB HEADING — LP の <hgroup class="h-campaign2">
     <span> 角丸ピル / <h3> 太字 JP / <small> 補足
   ============================================================ */
.nissy-subhead {
    text-align: center;
    margin: 0.28rem auto 0.10rem;
}

.nissy-subhead span {
    display: inline-block;
    border: 0.012rem solid #000;
    border-radius: 999px;
    padding: 0.04rem 0.16rem;
    font-size: 0.14rem;
    font-weight: 700;
    line-height: 1.2;
    color: #000;
    background: transparent;
}

.nissy-subhead h3 {
    margin: 0.10rem 0 0;
    font-size: 0.23rem;
    font-weight: 700;
    line-height: 1.35;
    color: #000;
}

.nissy-subhead small {
    display: block;
    margin-top: 0.02rem;
    font-size: 0.12rem;
    color: #000;
}


/* ============================================================
   VOICE PHASE LIST — 「#1  2026 8/3 Mon. – 8/31 Mon.」
   ============================================================ */
.nissy-phases {
    width: 84%;
    margin: 0.06rem auto 0.18rem;
}

/* 表示は「配信中の1弾」のみ（top.php の $displayVoicePhase）なので、
   複数行を縦に揃えるための固定幅カラムは使わず、行ごと中央寄せにする。
   幅を内容ぴったりにするため子要素の flex は auto にしている
   （.nissy-phase__date に flex:1 が残っていると余白を埋めてしまい中央寄せが効かない）。 */
.nissy-phase {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.15rem;
    padding: 0.09rem 0.04rem;
    border-bottom: 0.01rem solid rgba(0, 0, 0, 0.15);
}

.nissy-phase:last-child {
    border-bottom: 0;
}

.nissy-phase__no {
    flex: 0 0 auto;
    font-family: "Kalnia", "Noto Serif JP", serif;
    font-size: 0.30rem;
    font-weight: 500;
    line-height: 1;
    color: var(--nissy-key);
}

.nissy-phase__date {
    flex: 0 1 auto;
    text-align: center;
    font-size: 0.13rem;
    font-style: italic;
    font-weight: 600;
    color: #000;
    line-height: 1.3;
}

.nissy-phase__date em {
    font-size: 0.185rem;
    font-style: italic;
    font-weight: 600;
}

/* 配信中の弾を強調 */
.nissy-phase.is-active {
    background: rgba(255, 255, 255, 0.6);
}

.nissy-phase.is-active .nissy-phase__no {
    color: #000;
}


/* ============================================================
   PRIZE COURSE — 「Aコース｜コラボ限定デザイン アクリルキーホルダー」
   ============================================================ */
.nissy-course {
    display: flex;
    align-items: stretch;
    width: 88%;
    margin: 0.22rem auto 0;
    border: 0.012rem solid #000;
    background: #fff;
}

.nissy-course__label {
    flex: 0 0 0.66rem;
    background: #000;
    color: #fff;
    text-align: center;
    padding: 0.06rem 0.02rem;
    line-height: 1.05;
}

.nissy-course__label b {
    display: block;
    font-size: 0.25rem;
    font-weight: 700;
}

.nissy-course__label i {
    display: block;
    font-style: normal;
    font-size: 0.11rem;
    font-weight: 700;
}

.nissy-course__body {
    flex: 1;
    text-align: center;
    padding: 0.06rem 0.04rem;
    color: #000;
}

.nissy-course__body span {
    display: block;
    font-size: 0.13rem;
    font-weight: 500;
    line-height: 1.3;
}

.nissy-course__body strong {
    display: block;
    font-size: 0.185rem;
    font-weight: 700;
    line-height: 1.3;
}

/* 景品ビジュアル＋当選人数バッジ */
.nissy-prize {
    position: relative;
    width: 70%;
    margin: 0.30rem auto 0.10rem;
}

.nissy-prize img {
    width: 100%;
}

.nissy-prize__count {
    position: absolute;
    top: -0.06rem;
    right: 0;
    width: 0.72rem;
    height: 0.72rem;
    border-radius: 50%;
    background: #f0ee7a;
    color: #000;
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 0.01rem;
    padding-top: 0.235rem;
    box-sizing: border-box;
    font-size: 0.21rem;
    font-weight: 700;
    line-height: 1;
}

.nissy-prize__count i {
    font-style: normal;
    font-size: 0.115rem;
    font-weight: 700;
}


/* ============================================================
   BALLOON — 「NissyのSpecialメッセージ動画が視聴できる♪」
   ============================================================ */
.nissy-balloon {
    position: relative;
    width: 84%;
    margin: 0.20rem auto 0.24rem;
    padding: 0.10rem 0.08rem;
    background: var(--nissy-bg1);
    border-radius: 0.08rem;
    text-align: center;
    font-size: 0.15rem;
    font-weight: 600;
    line-height: 1.4;
    color: #000;
}

.nissy-balloon::after {
    content: "";
    position: absolute;
    bottom: -0.09rem;
    left: 50%;
    transform: translateX(-50%);
    border-left: 0.08rem solid transparent;
    border-right: 0.08rem solid transparent;
    border-top: 0.10rem solid var(--nissy-bg1);
}


/* ============================================================
   AD BLOCK — 品川駅特設広告の黒ヘッダー
   ============================================================ */
.nissy-ad {
    width: 100%;
    margin: 0 auto 0.20rem;
    border: 0.012rem solid #000;
    background: #fff;
}

.nissy-adhead {
    background: #000;
    color: #fff;
    text-align: center;
    padding: 0.08rem 0.06rem;
}

.nissy-adhead b {
    display: block;
    font-size: 0.22rem;
    font-weight: 700;
    line-height: 1.3;
}

.nissy-adhead span {
    display: block;
    font-size: 0.14rem;
    font-weight: 500;
    line-height: 1.4;
}

.nissy-ad__body {
    padding: 0.12rem 0.10rem;
    color: #000;
    font-size: 0.13rem;
    line-height: 1.6;
    text-align: left;
}


/* ============================================================
   STEP LIST — Specialメッセージ獲得方法（STEP1〜3）
   ============================================================ */
.nissy-howto-title {
    text-align: center;
    margin: 0.28rem auto 0.02rem;
    font-size: 0.19rem;
    font-weight: 700;
    color: var(--nissy-key);
}

.nissy-steps {
    width: 88%;
    margin: 0.06rem auto 0;
}

.nissy-step {
    padding: 0.12rem 0;
    border-top: 0.01rem solid rgba(0, 0, 0, 0.25);
    text-align: left;
}

.nissy-step:first-child {
    border-top: 0;
}

.nissy-step__no {
    display: inline-block;
    min-width: 0.72rem;
    margin-bottom: 0.06rem;
    padding: 0.03rem 0.08rem;
    border: 0.01rem solid var(--nissy-key);
    border-radius: 999px;
    font-family: "Kalnia", "Noto Serif JP", serif;
    font-size: 0.13rem;
    font-weight: 500;
    color: var(--nissy-key);
    text-align: center;
    box-sizing: border-box;
}

.nissy-step__text {
    font-size: 0.145rem;
    font-weight: 600;
    line-height: 1.5;
    color: #000;
}

.nissy-step__sub {
    margin-top: 0.02rem;
    font-size: 0.125rem;
    font-weight: 400;
    line-height: 1.5;
    color: #000;
}


/* ============================================================
   WALLPAPER SAMPLE — トップに並べるサンプル3枚
   ============================================================ */
.nissy-caption {
    text-align: center;
    font-size: 0.115rem;
    color: #555;
    margin: 0.06rem auto 0;
}

/* 壁紙サムネの取得済み / 未取得の出し分け（vspo_hinano と同じ見せ方）
   取得済み・未取得のどちらも「DB 登録の同じサムネイル」を出すので、
   縦横比・画質は自動的に揃う（比率のピン留めは不要）。
   未取得側だけ半透明にし、SAMPLE の文字を CSS で重ねて区別する。
     .locked   … トップ（未取得）
     .is-sample… wallpaper/choose（未選択）
   .thumbnail:not(.switchPage) ではなく個別クラスを見るのは、
   意図せず他のサムネ（賞品画像など）に効かないようにするため。 */
.thumbnail.locked,
.thumbnail.is-sample {
    position: relative;
}

.thumbnail.locked img,
.thumbnail.is-sample img {
    opacity: 0.5;
    filter: blur(0.035rem);
    transform: scale(1.04);
}

/* 未取得スロットに重ねる SAMPLE 文字（納品素材の透かしと同じ見え方を CSS で作る）。
   画像に焼き込まないので、文字サイズ・角度の調整はここだけで済む。 */
.thumbnail.locked::after,
.thumbnail.is-sample::after {
    content: "SAMPLE";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(-24deg);
    font-family: "Kalnia", "Noto Serif JP", serif;
    font-size: 0.20rem;
    font-weight: 700;
    letter-spacing: 0.01rem;
    color: rgba(0, 0, 0, 0.5);
    text-shadow: 0 0 0.03rem rgba(255, 255, 255, 0.75);
    white-space: nowrap;
    pointer-events: none;
}

.thumbnail.wallpaperExist .wp-thumb-name {
    color: var(--nissy-key);
    font-weight: 700;
}


/* ============================================================
   PDF LINK — 「キャンペーン概要および応募要項」
   ボタンにはしない（プレーンなテキストリンク）
   ============================================================ */
.nissy-tac {
    text-align: center;
    margin: 0.18rem auto 0.18rem;
}

.nissy-tac a {
    font-size: 0.15rem;
    font-weight: 600;
    color: var(--color-text);
    text-decoration: underline;
}


/* ============================================================
   DISABLED — 触れないことを視覚的に明確にする
   ============================================================ */
.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;
}

.iconButton[disabled]::before,
.iconButton.disabled::before,
.iconButton:disabled::before {
    border-color: rgba(255, 255, 255, 0.4) !important;
}


/* ============================================================
   FONT UTILITY OVERRIDE — base.css 末尾で .fontNotoSans が
   var(--font-family) に上書きされるバグの修正。caution 系は常に
   Noto Sans JP に固定する。
   ============================================================ */
.fontNotoSans,
.fontNotoSans *,
.caution,
.caution *,
ul.caution,
ul.caution li,
ul.caution li a {
    font-family: "Noto Sans JP", YakuHanJP, sans-serif !important;
}