/*
 * ダスティローズ — 配色・書体・形の定義
 *
 * 親テーマ（cyen-front-theme）が骨格を、プラグインの tokens.css が既定値を持つ。
 * このファイルはその値を上書きするだけで、レイアウトには手を入れない。
 *
 * ベージュの地に沈んだ薔薇色。明朝で組み、やわらかい角丸と薄い影で構成する。
 * ミッドナイトが「暗い地・角なし・罫線」なのに対し、こちらは「明るい地・丸み・影」で対比させる。
 *
 * 【重要】部品の上書きは必ず body で始める。
 * プラグインの frontend-shortcodes.css は本文の描画中に読み込まれるため、
 * この skin.css より後ろに来る。同じ詳細度で書くと読み込み順で負ける。
 * body を1つ足して (0,1,1) にすれば、順序に関係なく勝てる。
 * 色・形・書体はトークンで渡るので、ここに書くのは構造だけで足りる。
 */

:root {
    /* ---- 面 ----
       白ではなくベージュを地にして、カードの生成り白を浮かせる */
    --cyen-bg: #f4ece8;
    --cyen-surface: #fdf9f7;
    --cyen-surface-sunk: #ede0d9;
    --cyen-surface-mute: #e3d2ca;

    /* ---- 文字 ----
       黒を使わず、赤みのある焦茶で地の温度に合わせる。
       muted は地とのコントラスト 4.8:1 を確保している（薄くしすぎない） */
    --cyen-text-strong: #332524;
    --cyen-text: #4a3a38;
    --cyen-text-muted: #7a615d;
    --cyen-text-faint: #9a8481;
    --cyen-text-inverse: #fdf9f7;

    /* ---- 線 ---- */
    --cyen-border: #e3d3cc;
    --cyen-border-strong: #ccb3aa;

    /* ---- アクセント ----
       ダスティピンク。本文サイズでも読めるよう、地とのコントラストは 4.9:1 に取る。
       もっと明るい薔薇色は装飾（soft）側に置く */
    --cyen-accent: #96525f;
    --cyen-accent-text: #fdf9f7;
    --cyen-accent-soft: #f3e3e3;

    /* ---- 状態 ----
       原色を使わず、地の温度に寄せて濁らせる */
    --cyen-success: #4e7460;
    --cyen-success-soft: #e8efe9;
    --cyen-success-border: #b3c9bb;
    --cyen-warning: #8a6224;
    --cyen-warning-soft: #f7eeda;
    --cyen-warning-border: #ddc499;
    --cyen-danger: #a63b46;
    --cyen-danger-strong: #852f38;
    --cyen-danger-soft: #f7e5e6;
    --cyen-danger-border: #ddb1b5;
    --cyen-star: #c08a3e;

    /* ---- 曜日・バッジ ---- */
    --cyen-day-sat: #4a6f9e;
    --cyen-day-sun: #a63b46;
    --cyen-day-holiday: #a63b46;
    --cyen-badge-new: #96525f;

    /* ---- 塗りつぶしの強調 ---- */
    --cyen-fill-bg: #96525f;
    --cyen-fill-text: #fdf9f7;

    /* ---- チップ ---- */
    --cyen-chip-bg: #ebdcd6;
    --cyen-chip-text: #6b544f;
    --cyen-chip-active-bg: #96525f;
    --cyen-chip-active-text: #fdf9f7;

    /* ---- 画像の上に重ねる色 ----
       黒ではなく焦茶を透かして、写真の肌色を濁らせない */
    --cyen-overlay: rgba(51, 37, 36, .38);
    --cyen-overlay-strong: rgba(51, 37, 36, .62);
    --cyen-overlay-weak: rgba(51, 37, 36, .42);
    --cyen-overlay-dot: rgba(253, 249, 247, .6);

    /* ---- 形 ----
       角は残す。罫線ではなく丸みと影で面を分ける */
    --cyen-radius-lg: 14px;
    --cyen-radius-md: 10px;
    --cyen-radius-sm: 8px;
    --cyen-radius-xs: 6px;

    /* ---- 影 ----
       灰色の影は地のベージュを濁らせるので、赤みを残した影にする */
    --cyen-shadow-sm: 0 1px 3px rgba(90, 60, 58, .05);
    --cyen-shadow-md: 0 14px 34px rgba(90, 60, 58, .10);

    /* ---- 書体 ----
       本文まで明朝で組む。字が細くなるぶん、行間と字間は下で広げる */
    --cyen-font-body: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", "Noto Serif JP", "MS PMincho", serif;
    --cyen-font-display: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", "Noto Serif JP", "MS PMincho", serif;
    --cyen-font-en: "Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;
    --cyen-heading-weight: 400;
    --cyen-heading-tracking: .07em;

    --cyen-section-rule: #e3d3cc;
    --cyen-section-accent: #96525f;
}

/*
 * ====================================================
 *  ダスティローズ
 * ====================================================
 */

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

/* 親テーマは body の書体をサンセリフで直に指定しているため、ここで明朝へ差し替える。
   明朝は線が細いので、行間と字間を広げて読みやすさを補う。 */
body.cyen-site {
    font-family: var(--cyen-font-body);
    line-height: 1.85;
    letter-spacing: .02em;
}

/* ---- 見出し：上に短いアクセント罫を置く ----
   ミッドナイトは下線＋左下のアクセントなので、こちらは上に持ってきて対比させる。 */
body .cyen-section-title {
    position: relative;
    margin: 0 0 24px;
    padding: 14px 0 12px;
    border-bottom: 1px solid var(--cyen-section-rule);
    font-size: 21px;
    line-height: 1.6;
    /* 明朝の太字は潰れて見えるので、太らせずに字間で見出しを立てる */
    font-weight: var(--cyen-heading-weight, 400);
    letter-spacing: var(--cyen-heading-tracking, .07em);
    color: var(--cyen-text-strong);
}

body .cyen-section-title::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 28px;
    height: 2px;
    background: var(--cyen-section-accent);
}

/* ---- カード：丸みと薄い影。触れるとわずかに持ち上がる ---- */
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);
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

body .cyen-cast-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--cyen-shadow-md);
    border-color: var(--cyen-border-strong);
}

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

body .cyen-cast-card-name {
    color: var(--cyen-text-strong);
    font-size: 18px;
}

/* 出勤時間はセリフの数字で。明朝の本文から浮かせて読みやすくする */
body .cyen-cast-card-shift {
    color: var(--cyen-accent);
    font-family: var(--cyen-font-en, inherit);
    font-weight: 400;
    letter-spacing: .05em;
}

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-tag {
    background: var(--cyen-chip-bg);
    border: 1px solid transparent;
    color: var(--cyen-chip-text);
    border-radius: var(--cyen-radius-pill);
}

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

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

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);
    letter-spacing: .12em;
    border-radius: var(--cyen-radius-pill);
}

/* ---- 案内状況：丸みを他の部品と揃える ---- */
body .cyen-cast-card-availability {
    border-radius: var(--cyen-radius-pill);
}

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

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-pill);
    letter-spacing: .05em;
    transition: background .2s ease, border-color .2s ease;
}

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

/*
 * カードの下や会員画面に並ぶ副次的なボタンは、親テーマが
 * 「面の色＋枠線」で組んでいる。写真の下で主張しすぎないための作りなので
 * 色はそのまま活かし、丸みだけこのテーマの言葉に揃える。
 */
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-pill);
}

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

/* ---- 口コミ ---- */
body .cyen-review-item,
body .cyen-review-form-wrap {
    background: var(--cyen-surface);
    border-color: var(--cyen-border);
    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 {
    color: var(--cyen-text-strong);
    padding-bottom: 14px;
    border-bottom: 1px solid var(--cyen-section-rule);
}

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

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

/* ---- 料金表 ----
   見出しは薔薇色を透かした帯に。金額はセリフの数字で桁を揃える。 */
body .cyen-front-wrap.cyen-price-system .cyen-price-heading {
    background: var(--cyen-accent-soft);
    color: var(--cyen-accent);
    border-bottom: 1px solid var(--cyen-border);
    font-family: var(--cyen-font-display, inherit);
    font-weight: var(--cyen-heading-weight, 400);
    letter-spacing: var(--cyen-heading-tracking, .07em);
}

body .cyen-front-wrap.cyen-price-system .cyen-price-section {
    background: var(--cyen-surface);
    border-color: var(--cyen-border);
    box-shadow: var(--cyen-shadow-sm);
}

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

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-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, .07em);
}

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-pill);
}

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

body .cyen-memberchat-input:focus {
    box-shadow: 0 0 0 2px 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-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段構成） ----
   下段は地より少し沈めて、メニューは枠ではなく下線で示す。 */
body .cyen-site-header-bottom {
    border-top-color: var(--cyen-border);
    background: var(--cyen-surface-sunk);
}

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

body .cyen-site-nav-list a {
    position: relative;
    background: transparent;
    border-color: transparent;
    color: var(--cyen-text);
    letter-spacing: .06em;
    transition: color .15s ease;
}

body .cyen-site-nav-list a::after {
    content: "";
    position: absolute;
    left: 50%;
    right: 50%;
    bottom: 4px;
    height: 1px;
    background: var(--cyen-accent);
    transition: left .2s ease, right .2s ease;
}

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

body .cyen-site-nav-list a:hover::after,
body .cyen-site-nav-list a:focus-visible::after {
    left: 12px;
    right: 12px;
}

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

/* 電話番号は薔薇色のベタ塗りで最優先 */
body .cyen-site-call {
    background: var(--cyen-accent);
    border-color: var(--cyen-accent);
    color: var(--cyen-accent-text);
    border-radius: var(--cyen-radius-pill);
}

body .cyen-site-call:hover {
    background: var(--cyen-danger-strong);
    border-color: var(--cyen-danger-strong);
    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: .1em;
}

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

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