/*
 * ショッキングピンク — 配色・書体・形の定義
 *
 * 親テーマ（cyen-front-theme）が骨格を、プラグインの tokens.css が既定値を持つ。
 * このファイルはその値を上書きするだけで、レイアウトには手を入れない。
 *
 * 彩度の高いピンクを主役に、太いゴシックと極太の罫で組む。
 * 角丸をほぼ捨て、ぼかさない影をずらして落とす（ポスター／フライヤーの手法）。
 * 他の3つ（明朝・明朝・丸ゴシック、いずれも上品方向）と真逆に振っている。
 *
 * 【重要】部品の上書きは必ず body で始める。
 * プラグインの frontend-shortcodes.css は本文の描画中に読み込まれるため、
 * この skin.css より後ろに来る。同じ詳細度で書くと読み込み順で負ける。
 * body を1つ足して (0,1,1) にすれば、順序に関係なく勝てる。
 */

:root {
    /* ---- 面 ----
       白にわずかにピンクを含ませ、カードの純白を浮かせる */
    --cyen-bg: #fff4f8;
    --cyen-surface: #ffffff;
    --cyen-surface-sunk: #ffe3ee;
    --cyen-surface-mute: #ffd0e2;

    /* ---- 文字 ----
       黒にピンクを一滴。muted は地とのコントラスト 5.3:1 */
    --cyen-text-strong: #1a0f16;
    --cyen-text: #2a1a22;
    --cyen-text-muted: #7d5d6b;
    --cyen-text-faint: #a98b98;
    --cyen-text-inverse: #ffffff;

    /* ---- 線 ----
       輪郭で見せるテーマなので、既定の線も濃いめに取る */
    --cyen-border: #ffc2da;
    --cyen-border-strong: #1a0f16;

    /* ---- アクセント ----
       ショッキングピンク。派手さを保ちつつ、地とのコントラスト 5.2:1、
       白抜き文字で 5.6:1 になるところまで落として可読性を確保している。 */
    --cyen-accent: #cc0062;
    --cyen-accent-text: #ffffff;
    --cyen-accent-soft: #ffe0ee;

    /* ---- 状態 ----
       アクセントがピンクなので、danger は赤に寄せすぎると紛らわしい。
       朱寄りに振って描き分ける */
    --cyen-success: #077a52;
    --cyen-success-soft: #dff3ea;
    --cyen-success-border: #97d3ba;
    --cyen-warning: #8a5a00;
    --cyen-warning-soft: #fff0d4;
    --cyen-warning-border: #e0bf7a;
    --cyen-danger: #c1361b;
    --cyen-danger-strong: #9c2a13;
    --cyen-danger-soft: #ffe6df;
    --cyen-danger-border: #e8ac9b;
    --cyen-star: #d18f00;

    /* ---- 曜日・バッジ ---- */
    --cyen-day-sat: #1560c4;
    --cyen-day-sun: #c1361b;
    --cyen-day-holiday: #c1361b;
    --cyen-badge-new: #cc0062;

    /* ---- 塗りつぶしの強調 ---- */
    --cyen-fill-bg: #cc0062;
    --cyen-fill-text: #ffffff;

    /* ---- チップ ---- */
    --cyen-chip-bg: #ffe0ee;
    --cyen-chip-text: #99004a;
    --cyen-chip-active-bg: #cc0062;
    --cyen-chip-active-text: #ffffff;

    /* ---- 画像の上に重ねる色 ---- */
    --cyen-overlay: rgba(26, 15, 22, .4);
    --cyen-overlay-strong: rgba(26, 15, 22, .68);
    --cyen-overlay-weak: rgba(26, 15, 22, .45);
    --cyen-overlay-dot: rgba(255, 255, 255, .7);

    /* ---- 形 ----
       角丸はほぼ捨てる。四角い面と太い輪郭で押す */
    --cyen-radius-lg: 4px;
    --cyen-radius-md: 4px;
    --cyen-radius-sm: 3px;
    --cyen-radius-xs: 3px;

    /* ---- 影 ----
       ぼかさず、ピンクのまま真下にずらす。ポスターの版ズレのような効き方をする */
    --cyen-shadow-sm: 4px 4px 0 rgba(204, 0, 98, .16);
    --cyen-shadow-md: 8px 8px 0 rgba(204, 0, 98, .22);

    /* ---- 書体 ----
       他の3つが明朝・丸ゴシックなので、こちらは太いゴシックで真逆に振る。
       字間を詰めるほど塊に見えて強くなる */
    --cyen-font-body: "Hiragino Kaku Gothic ProN", "Yu Gothic", "YuGothic", "Meiryo", sans-serif;
    --cyen-font-display: "Hiragino Kaku Gothic StdN", "Hiragino Kaku Gothic ProN", "Yu Gothic", "YuGothic", "Meiryo", sans-serif;
    --cyen-font-en: "Helvetica Neue", "Arial Black", Arial, sans-serif;
    --cyen-heading-weight: 900;
    --cyen-heading-tracking: -.01em;

    --cyen-section-rule: #cc0062;
    --cyen-section-accent: #cc0062;
}

/*
 * ====================================================
 *  ショッキングピンク
 * ====================================================
 */

body {
    background: var(--cyen-bg);
    color: var(--cyen-text);
}

body.cyen-site {
    font-family: var(--cyen-font-body);
    line-height: 1.75;
}

/* ---- 見出し：極太のアクセント罫 ----
   ミッドナイトは1px実線、ダスティローズは上に短い実線、ボタニカルは破線。
   こちらは4pxまで太らせて、線そのものを主張させる。 */
body .cyen-section-title {
    margin: 0 0 24px;
    padding: 0 0 10px;
    border-bottom: 4px solid var(--cyen-section-rule);
    font-family: var(--cyen-font-display, inherit);
    font-size: 23px;
    line-height: 1.4;
    font-weight: var(--cyen-heading-weight, 900);
    letter-spacing: var(--cyen-heading-tracking, -.01em);
    color: var(--cyen-text-strong);
}

/* ---- カード：太い輪郭と、ずらしたピンクの影 ---- */
body .cyen-cast-card {
    background: var(--cyen-surface);
    border: 2px solid var(--cyen-text-strong);
    border-radius: var(--cyen-radius-lg);
    box-shadow: var(--cyen-shadow-sm);
    transition: transform .15s ease, box-shadow .15s ease;
}

/* 触れると影のぶんだけ動く。紙をつまんで持ち上げたような動き */
body .cyen-cast-card:hover {
    transform: translate(-2px, -2px);
    box-shadow: var(--cyen-shadow-md);
}

body .cyen-cast-card-body {
    padding: 14px 14px 16px;
}

body .cyen-cast-card-name {
    font-family: var(--cyen-font-display, inherit);
    font-weight: 900;
    letter-spacing: -.01em;
    color: var(--cyen-text-strong);
    font-size: 19px;
}

body .cyen-cast-card-shift {
    color: var(--cyen-accent);
    font-family: var(--cyen-font-en, inherit);
    font-weight: 700;
    letter-spacing: 0;
}

body .cyen-cast-card-specs,
body .cyen-cast-card-copy {
    color: var(--cyen-text-muted);
}

body .cyen-cast-card-specs {
    font-variant-numeric: tabular-nums;
}

/* ---- 案内状況 ---- */
body .cyen-cast-card-availability {
    border-radius: var(--cyen-radius-xs);
    font-weight: 700;
}

/* ---- タグ ---- */
body .cyen-cast-tag {
    background: var(--cyen-chip-bg);
    border: 1px solid transparent;
    color: var(--cyen-chip-text);
    border-radius: var(--cyen-radius-xs);
    font-weight: 700;
}

body .cyen-cast-tag-filter-item {
    background: var(--cyen-surface);
    border: 2px solid var(--cyen-text-strong);
    color: var(--cyen-text-strong);
    border-radius: var(--cyen-radius-xs);
    font-weight: 700;
}

body .cyen-cast-tag-filter-item:hover {
    background: var(--cyen-accent-soft);
}

body .cyen-cast-tag-filter-item.is-active {
    background: var(--cyen-accent);
    border-color: var(--cyen-accent);
    color: var(--cyen-accent-text);
}

/* ---- NEWバッジ ---- */
body .cyen-cast-card-badge.is-new {
    background: var(--cyen-accent);
    color: var(--cyen-accent-text);
    font-family: var(--cyen-font-en, inherit);
    font-weight: 900;
    letter-spacing: .08em;
    border-radius: var(--cyen-radius-xs);
}

/* ---- 日付タブ ---- */
body .cyen-date-tab {
    background: var(--cyen-surface);
    border: 2px solid var(--cyen-text-strong);
    color: var(--cyen-text-strong);
    border-radius: var(--cyen-radius-xs);
    font-weight: 700;
}

body .cyen-date-tab.is-active {
    background: var(--cyen-accent);
    border-color: var(--cyen-accent);
    color: var(--cyen-accent-text);
}

/* ---- ボタン ---- */
body .cyen-front-btn {
    background: var(--cyen-accent);
    border: 2px solid var(--cyen-accent);
    color: var(--cyen-accent-text);
    border-radius: var(--cyen-radius-xs);
    font-weight: 900;
    letter-spacing: 0;
    box-shadow: var(--cyen-shadow-sm);
    transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}

body .cyen-front-btn:hover {
    background: var(--cyen-text-strong);
    border-color: var(--cyen-text-strong);
    color: var(--cyen-accent-text);
    transform: translate(-2px, -2px);
    box-shadow: var(--cyen-shadow-md);
}

/* 副次的なボタンは輪郭で見せる */
body .cyen-cast-card-actions a,
body .cyen-cast-card-link,
body .cyen-favorite-actions a,
body .cyen-favorite-actions button,
body .cyen-member-menu a,
body .cyen-member-day-tab {
    border-radius: var(--cyen-radius-xs);
    border-color: var(--cyen-text-strong);
    font-weight: 700;
}

body .cyen-cast-card-actions a:hover,
body .cyen-cast-card-link:hover {
    background: var(--cyen-accent-soft);
    border-color: var(--cyen-accent);
    color: var(--cyen-accent);
}

/* ---- 口コミ ---- */
body .cyen-review-item,
body .cyen-review-form-wrap {
    background: var(--cyen-surface);
    border: 2px solid var(--cyen-text-strong);
    border-radius: var(--cyen-radius-lg);
    box-shadow: var(--cyen-shadow-sm);
}

body .cyen-review-reply {
    background: var(--cyen-accent-soft);
    border-left-color: var(--cyen-accent);
}

/* ---- イベント ---- */
body .cyen-event-title {
    font-family: var(--cyen-font-display, inherit);
    font-weight: 900;
    letter-spacing: -.01em;
    color: var(--cyen-text-strong);
    padding-bottom: 10px;
    border-bottom: 4px solid var(--cyen-section-rule);
}

body .cyen-event-list-link {
    background: var(--cyen-surface);
    border: 2px solid var(--cyen-text-strong);
    border-radius: var(--cyen-radius-lg);
    box-shadow: var(--cyen-shadow-sm);
    transition: transform .15s ease, box-shadow .15s ease;
}

body .cyen-event-list-link:hover {
    transform: translate(-2px, -2px);
    box-shadow: var(--cyen-shadow-md);
}

/* ---- 料金表 ----
   見出しはピンクのベタ塗り。金額も太く出して読ませる。 */
body .cyen-front-wrap.cyen-price-system .cyen-price-heading {
    background: var(--cyen-accent);
    color: var(--cyen-accent-text);
    border-bottom: none;
    font-family: var(--cyen-font-display, inherit);
    font-weight: var(--cyen-heading-weight, 900);
    letter-spacing: var(--cyen-heading-tracking, -.01em);
}

body .cyen-front-wrap.cyen-price-system .cyen-price-section {
    background: var(--cyen-surface);
    border: 2px solid var(--cyen-text-strong);
    border-radius: var(--cyen-radius-lg);
    box-shadow: var(--cyen-shadow-sm);
    overflow: hidden;
}

body .cyen-front-wrap.cyen-price-system .cyen-price-table th {
    background: var(--cyen-surface-sunk);
    color: var(--cyen-text-strong);
    font-weight: 700;
}

body .cyen-front-wrap.cyen-price-system .cyen-price-table td:last-child {
    color: var(--cyen-accent);
    font-family: var(--cyen-font-en, inherit);
    font-weight: 900;
    font-variant-numeric: tabular-nums;
}

/* ---- AI予約チャット ---- */
body .cyen-memberchat-title {
    font-family: var(--cyen-font-display, inherit);
    font-weight: var(--cyen-heading-weight, 900);
    letter-spacing: var(--cyen-heading-tracking, -.01em);
}

body .cyen-memberchat-messages {
    background: var(--cyen-bg);
}

body .cyen-memberchat-msg.is-ai {
    border-color: var(--cyen-border);
}

body .cyen-memberchat-chip {
    border-radius: var(--cyen-radius-xs);
    font-weight: 700;
}

body .cyen-memberchat-chip:hover {
    background: var(--cyen-accent-soft);
}

body .cyen-memberchat-input:focus {
    box-shadow: 0 0 0 3px var(--cyen-accent-soft);
    border-color: var(--cyen-accent);
}

/* ---- 入力欄 ---- */
body input[type="text"],
body input[type="email"],
body input[type="tel"],
body input[type="url"],
body select,
body textarea {
    background: var(--cyen-surface);
    border: 2px solid var(--cyen-text-strong);
    color: var(--cyen-text);
    border-radius: var(--cyen-radius-xs);
}

body input::placeholder,
body textarea::placeholder {
    color: var(--cyen-text-faint);
}

/* ---- 画像まわり ---- */
body .cyen-cast-card-image,
body .cyen-front-noimage,
body .cyen-review-cast-image {
    background: var(--cyen-surface-sunk);
}

body .cyen-front-noimage {
    color: var(--cyen-text-faint);
}

/* ---- ヘッダー（2段構成） ----
   下段はピンクのベタ塗り。ここが一番の見せ場になる。 */
body .cyen-site-header-bottom {
    border-top: 2px solid var(--cyen-text-strong);
    background: var(--cyen-accent);
}

body .cyen-site-title {
    font-family: var(--cyen-font-display, inherit);
    font-weight: 900;
    letter-spacing: -.01em;
}

body .cyen-site-nav-list a {
    background: transparent;
    border-color: transparent;
    color: var(--cyen-accent-text);
    border-radius: var(--cyen-radius-xs);
    font-weight: 700;
    transition: background .15s ease, color .15s ease;
}

body .cyen-site-nav-list a:hover {
    background: var(--cyen-text-strong);
    color: var(--cyen-accent-text);
}

/* 営業時間は情報として読ませたいので、細字・低コントラストにしない */
body .cyen-site-hours {
    background: var(--cyen-surface);
    border: 2px solid var(--cyen-text-strong);
    color: var(--cyen-text-strong);
    font-weight: 700;
    border-radius: var(--cyen-radius-xs);
}

/* 電話番号はピンクのベタ塗り＋輪郭で最優先 */
body .cyen-site-call {
    background: var(--cyen-accent);
    border: 2px solid var(--cyen-text-strong);
    color: var(--cyen-accent-text);
    border-radius: var(--cyen-radius-xs);
    font-weight: 900;
}

body .cyen-site-call:hover {
    background: var(--cyen-text-strong);
    border-color: var(--cyen-text-strong);
    color: var(--cyen-accent-text);
}

/* ---- ヒーロー ---- */
body .cyen-site-hero h1 {
    font-family: var(--cyen-font-display, inherit);
    font-weight: 900;
    letter-spacing: -.02em;
}

@media (prefers-reduced-motion: reduce) {
    body .cyen-cast-card,
    body .cyen-event-list-link,
    body .cyen-front-btn {
        transition: none;
    }

    body .cyen-cast-card:hover,
    body .cyen-event-list-link:hover,
    body .cyen-front-btn:hover {
        transform: none;
    }
}
