/*
 * ラグジュアリー — 配色・書体・形の定義
 *
 * 親テーマ（cyen-front-theme）が骨格を、プラグインの tokens.css が既定値を持つ。
 * このファイルはその値を上書きするだけで、レイアウトには手を入れない。
 *
 * 白を基調に、濃い茶とゴールド。
 *
 * 【ゴールドの扱い】
 * ゴールド #b08d3f は白地とのコントラストが 2.99:1 しかなく、文字色には使えない
 * （本文に必要なのは 4.5:1）。無理に使うと「高そうだが読めない」ページになる。
 * そこで役割を分けている。
 *
 *   濃い茶 #5b4636（8.5:1） … 文字・リンク・ボタンなど読ませるもの全部
 *   ゴールド            … 罫線・囲み・星・見出しの装飾など、素材として
 *
 * 金を面積ではなく線で使うのは、実際の高級店の紙媒体と同じ考え方でもある。
 *
 * 【重要】部品の上書きは必ず body で始める。
 * プラグインの frontend-shortcodes.css は本文の描画中に読み込まれるため、
 * この skin.css より後ろに来る。同じ詳細度で書くと読み込み順で負ける。
 * body を1つ足して (0,1,1) にすれば、順序に関係なく勝てる。
 */

:root {
    /* ---- 面 ----
       地はごくわずかに温かい白。カードを純白にして、地から浮かせる */
    --cyen-bg: #fbfaf8;
    --cyen-surface: #ffffff;
    --cyen-surface-sunk: #f4f1ea;
    --cyen-surface-mute: #ebe6db;

    /* ---- 文字 ----
       黒を使わず焦茶に寄せる。muted は地とのコントラスト 5.0:1 */
    --cyen-text-strong: #2b211a;
    --cyen-text: #3d312a;
    --cyen-text-muted: #7a6a5e;
    --cyen-text-faint: #a2958a;
    --cyen-text-inverse: #ffffff;

    /* ---- 線 ---- */
    --cyen-border: #e6e0d6;
    --cyen-border-strong: #cbbfae;

    /* ---- アクセント ----
       読ませる側は濃い茶。地とのコントラスト 8.5:1、白抜きで 8.9:1 */
    --cyen-accent: #5b4636;
    --cyen-accent-text: #ffffff;
    --cyen-accent-soft: #f2ece3;

    /* ---- ゴールド ----
       このテーマだけの追加トークン。文字には使わず、罫線と囲みにだけ使う */
    --cyen-gold: #b08d3f;
    --cyen-gold-soft: #ede2c9;

    /* ---- 状態 ---- */
    --cyen-success: #2f6a4d;
    --cyen-success-soft: #e7f0ea;
    --cyen-success-border: #b0cdbd;
    --cyen-warning: #8a6524;
    --cyen-warning-soft: #f8f0dd;
    --cyen-warning-border: #ddc794;
    --cyen-danger: #a03a35;
    --cyen-danger-strong: #822d29;
    --cyen-danger-soft: #f7e7e5;
    --cyen-danger-border: #ddb2af;
    --cyen-star: #b08d3f;

    /* ---- 曜日・バッジ ---- */
    --cyen-day-sat: #40628c;
    --cyen-day-sun: #a03a35;
    --cyen-day-holiday: #a03a35;
    --cyen-badge-new: #5b4636;

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

    /* ---- チップ ---- */
    --cyen-chip-bg: #f2ece3;
    --cyen-chip-text: #6b5748;
    --cyen-chip-active-bg: #5b4636;
    --cyen-chip-active-text: #ffffff;

    /* ---- 画像の上に重ねる色 ---- */
    --cyen-overlay: rgba(43, 33, 26, .36);
    --cyen-overlay-strong: rgba(43, 33, 26, .62);
    --cyen-overlay-weak: rgba(43, 33, 26, .4);
    --cyen-overlay-dot: rgba(255, 255, 255, .68);

    /* ---- 形 ----
       角は控えめに残す。丸すぎると軽く、角ばりすぎると硬くなる */
    --cyen-radius-lg: 8px;
    --cyen-radius-md: 6px;
    --cyen-radius-sm: 5px;
    --cyen-radius-xs: 4px;

    /* ---- 影 ----
       輪郭を締めるのは罫線の役目。影は面をわずかに持ち上げるだけに留める */
    --cyen-shadow-sm: 0 1px 2px rgba(60, 45, 32, .05);
    --cyen-shadow-md: 0 18px 40px rgba(60, 45, 32, .10);

    /* ---- 書体 ----
       見出しは明朝、英字と数字はコントラストの強いセリフ（Didot系）。
       字間を広く取り、太らせずに格を出す */
    --cyen-font-body: "Hiragino Kaku Gothic ProN", "Yu Gothic", "YuGothic", "Meiryo", sans-serif;
    --cyen-font-display: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", "Noto Serif JP", serif;
    --cyen-font-en: "Didot", "Bodoni MT", "Playfair Display", "Times New Roman", serif;
    --cyen-heading-weight: 400;
    --cyen-heading-tracking: .16em;

    --cyen-section-rule: #e6e0d6;
    --cyen-section-accent: #b08d3f;
}

/*
 * ====================================================
 *  ラグジュアリー
 * ====================================================
 */

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

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

/* ---- 見出し：金の細罫と、その下にもう1本 ----
   ミッドナイトは実線＋左下の線、ダスティローズは上に短い実線、
   ボタニカルは破線＋丸、ショッキングピンクは4pxの極太。
   こちらは二重の細罫で、線の細さと間隔で格を出す。 */
body .cyen-section-title {
    position: relative;
    margin: 0 0 26px;
    padding: 0 0 14px;
    border-bottom: 1px solid var(--cyen-gold);
    font-family: var(--cyen-font-display, inherit);
    font-size: 20px;
    line-height: 1.7;
    font-weight: var(--cyen-heading-weight, 400);
    letter-spacing: var(--cyen-heading-tracking, .16em);
    color: var(--cyen-text-strong);
}

body .cyen-section-title::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -4px;
    height: 1px;
    background: var(--cyen-border);
}

/* ---- カード：白い面を金の細罫で囲む ---- */
body .cyen-cast-card {
    background: var(--cyen-surface);
    border: 1px solid var(--cyen-border);
    border-radius: var(--cyen-radius-lg);
    box-shadow: var(--cyen-shadow-sm);
    overflow: hidden;
    transition: border-color .25s ease, box-shadow .25s ease;
}

body .cyen-cast-card:hover {
    border-color: var(--cyen-gold);
    box-shadow: var(--cyen-shadow-md);
}

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

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

/* 出勤時間はセリフの数字で。金は使わず、濃い茶で読ませる */
body .cyen-cast-card-shift {
    color: var(--cyen-text-strong);
    font-family: var(--cyen-font-en, inherit);
    font-weight: 400;
    font-size: 17px;
    letter-spacing: .04em;
}

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;
    letter-spacing: .02em;
}

/* ---- 案内状況 ---- */
body .cyen-cast-card-availability {
    border-radius: var(--cyen-radius-xs);
    letter-spacing: .04em;
}

/* ---- タグ ---- */
body .cyen-cast-tag {
    background: transparent;
    border: 1px solid var(--cyen-border-strong);
    color: var(--cyen-text-muted);
    border-radius: var(--cyen-radius-xs);
    letter-spacing: .04em;
}

body .cyen-cast-tag-filter-item {
    background: var(--cyen-surface);
    border-color: var(--cyen-border-strong);
    color: var(--cyen-text-muted);
    border-radius: var(--cyen-radius-xs);
    letter-spacing: .06em;
}

body .cyen-cast-tag-filter-item:hover {
    border-color: var(--cyen-gold);
    color: var(--cyen-text-strong);
}

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-gold);
    color: var(--cyen-text-strong);
    font-family: var(--cyen-font-en, inherit);
    letter-spacing: .16em;
    border-radius: 0;
}

/* ---- 日付タブ ---- */
body .cyen-date-tab {
    background: var(--cyen-surface);
    border: 1px solid var(--cyen-border-strong);
    color: var(--cyen-text-muted);
    border-radius: var(--cyen-radius-xs);
    letter-spacing: .04em;
}

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: 1px solid var(--cyen-accent);
    color: var(--cyen-accent-text);
    border-radius: var(--cyen-radius-xs);
    letter-spacing: .1em;
    transition: background .25s ease, border-color .25s ease;
}

body .cyen-front-btn:hover {
    background: var(--cyen-gold);
    border-color: var(--cyen-gold);
    color: var(--cyen-text-strong);
}

/* 副次的なボタンは白い面に細罫。触れると金に変わる */
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);
    letter-spacing: .06em;
}

body .cyen-cast-card-actions a:hover,
body .cyen-cast-card-link:hover {
    border-color: var(--cyen-gold);
    color: var(--cyen-text-strong);
}

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

body .cyen-review-reply {
    background: var(--cyen-surface-sunk);
    border-left-color: var(--cyen-gold);
}

/* ---- イベント ---- */
body .cyen-event-title {
    font-family: var(--cyen-font-display, inherit);
    font-weight: var(--cyen-heading-weight, 400);
    letter-spacing: var(--cyen-heading-tracking, .16em);
    color: var(--cyen-text-strong);
    padding-bottom: 14px;
    border-bottom: 1px solid var(--cyen-gold);
}

body .cyen-event-list-link {
    background: var(--cyen-surface);
    border-color: var(--cyen-border);
    border-radius: var(--cyen-radius-lg);
    box-shadow: var(--cyen-shadow-sm);
    transition: border-color .25s ease, box-shadow .25s ease;
}

body .cyen-event-list-link:hover {
    border-color: var(--cyen-gold);
    box-shadow: var(--cyen-shadow-md);
}

/* ---- 料金表 ----
   見出しは沈んだ面に濃い茶の明朝、下に金の細罫。金をベタで敷くと
   文字が読みにくくなるうえ、3枚並ぶと重くなる。 */
body .cyen-front-wrap.cyen-price-system .cyen-price-heading {
    background: var(--cyen-surface-sunk);
    color: var(--cyen-text-strong);
    border-bottom: 1px solid var(--cyen-gold);
    font-family: var(--cyen-font-display, inherit);
    font-weight: var(--cyen-heading-weight, 400);
    letter-spacing: var(--cyen-heading-tracking, .16em);
}

body .cyen-front-wrap.cyen-price-system .cyen-price-section {
    background: var(--cyen-surface);
    border-color: var(--cyen-border);
    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-muted);
    letter-spacing: .04em;
}

body .cyen-front-wrap.cyen-price-system .cyen-price-table td:last-child {
    color: var(--cyen-text-strong);
    font-family: var(--cyen-font-en, inherit);
    font-size: 16px;
    font-variant-numeric: tabular-nums;
}

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

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);
    letter-spacing: .04em;
}

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

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

/* ---- 入力欄 ---- */
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-color: var(--cyen-border-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段構成） ----
   上段と下段の境目に金の細罫を1本通す。ここが金の一番の見せ場。 */
body .cyen-site-header-bottom {
    border-top: 1px solid var(--cyen-gold);
    background: var(--cyen-surface);
}

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

body .cyen-site-nav-list a {
    background: transparent;
    border-color: transparent;
    color: var(--cyen-text);
    border-radius: 0;
    letter-spacing: .1em;
    transition: color .2s ease, box-shadow .2s ease;
}

body .cyen-site-nav-list a:hover {
    color: var(--cyen-text-strong);
    box-shadow: inset 0 -1px 0 var(--cyen-gold);
}

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

/* 電話番号は濃い茶のベタ塗り。金の枠で締める */
body .cyen-site-call {
    background: var(--cyen-accent);
    border: 1px solid var(--cyen-gold);
    color: var(--cyen-accent-text);
    border-radius: var(--cyen-radius-xs);
    letter-spacing: .04em;
}

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

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

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