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

:root {
    /* ---- 面 ----
       純白を使わず、地にも面にもわずかに緑を含ませて全体の温度を揃える */
    --cyen-bg: #f4f6f1;
    --cyen-surface: #fbfcfa;
    --cyen-surface-sunk: #e9eee3;
    --cyen-surface-mute: #dde5d5;

    /* ---- 文字 ----
       黒ではなく緑みのある濃灰。muted は地とのコントラスト 4.9:1 を確保している */
    --cyen-text-strong: #2c352d;
    --cyen-text: #39423a;
    --cyen-text-muted: #5f6f5d;
    --cyen-text-faint: #8b9789;
    --cyen-text-inverse: #fbfcfa;

    /* ---- 線 ---- */
    --cyen-border: #dde4d6;
    --cyen-border-strong: #c2cfba;

    /* ---- アクセント ----
       苔・オリーブ寄りの深緑。地とのコントラストは 5.6:1 */
    --cyen-accent: #4a6b45;
    --cyen-accent-text: #fbfcfa;
    --cyen-accent-soft: #e6ede1;

    /* ---- 状態 ----
       アクセントが緑なので、success はより明るく青寄りの緑にして描き分ける。
       これでも紛らわしいため、案内状況のバッジは下で塗り分けている */
    --cyen-success: #2f7d4f;
    --cyen-success-soft: #e3f0e6;
    --cyen-success-border: #b3d5bd;
    --cyen-warning: #7d5a1e;
    --cyen-warning-soft: #f7efdd;
    --cyen-warning-border: #dcc79b;
    --cyen-danger: #a34038;
    --cyen-danger-strong: #85332c;
    --cyen-danger-soft: #f7e7e5;
    --cyen-danger-border: #ddb5b0;
    --cyen-star: #c39434;

    /* ---- 曜日・バッジ ---- */
    --cyen-day-sat: #46688f;
    --cyen-day-sun: #a34038;
    --cyen-day-holiday: #a34038;
    --cyen-badge-new: #4a6b45;

    /* ---- 塗りつぶしの強調 ---- */
    --cyen-fill-bg: #4a6b45;
    --cyen-fill-text: #fbfcfa;

    /* ---- チップ ---- */
    --cyen-chip-bg: #e6ece0;
    --cyen-chip-text: #55654f;
    --cyen-chip-active-bg: #4a6b45;
    --cyen-chip-active-text: #fbfcfa;

    /* ---- 画像の上に重ねる色 ----
       黒ではなく深緑を透かして、地の緑と喧嘩させない */
    --cyen-overlay: rgba(38, 48, 38, .36);
    --cyen-overlay-strong: rgba(38, 48, 38, .6);
    --cyen-overlay-weak: rgba(38, 48, 38, .4);
    --cyen-overlay-dot: rgba(251, 252, 250, .62);

    /* ---- 形 ----
       3つのテーマで一番大きく丸める。角の丸さが「優しさ」の主な担い手 */
    --cyen-radius-lg: 20px;
    --cyen-radius-md: 14px;
    --cyen-radius-sm: 10px;
    --cyen-radius-xs: 8px;

    /* ---- 影 ----
       灰色の影は地の緑をくすませるので、緑を含んだ影にする */
    --cyen-shadow-sm: 0 1px 3px rgba(60, 80, 58, .06);
    --cyen-shadow-md: 0 16px 36px rgba(60, 80, 58, .12);

    /* ---- 書体 ----
       他の2つが明朝なので、こちらは丸ゴシックで差をつける。
       丸ゴシックが無い環境でも破綻しないよう、角ゴシックへ落とす */
    --cyen-font-body: "Hiragino Maru Gothic ProN", "Hiragino Kaku Gothic ProN", "Yu Gothic Medium", "YuGothic", "Meiryo", sans-serif;
    --cyen-font-display: "Hiragino Maru Gothic ProN", "Hiragino Kaku Gothic ProN", "Yu Gothic Medium", "YuGothic", "Meiryo", sans-serif;
    --cyen-font-en: "Avenir Next", "Avenir", "Segoe UI", sans-serif;
    --cyen-heading-weight: 600;
    --cyen-heading-tracking: .04em;

    --cyen-section-rule: #c2cfba;
    --cyen-section-accent: #4a6b45;
}

/*
 * ====================================================
 *  ボタニカル
 * ====================================================
 */

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

/* 親テーマは body の書体をサンセリフで直に指定しているため、ここで丸ゴシックへ差し替える */
body.cyen-site {
    font-family: var(--cyen-font-body);
    line-height: 1.8;
}

/* ---- 見出し：破線の罫と、その左端に小さな丸 ----
   ミッドナイトは実線＋左下のアクセント、ダスティローズは上に短い実線。
   こちらは破線にして、線そのものの表情で差をつける。 */
body .cyen-section-title {
    position: relative;
    margin: 0 0 24px;
    padding: 0 0 14px;
    border-bottom: 1px dashed var(--cyen-section-rule);
    font-size: 21px;
    line-height: 1.6;
    font-weight: var(--cyen-heading-weight, 600);
    letter-spacing: var(--cyen-heading-tracking, .04em);
    color: var(--cyen-text-strong);
}

body .cyen-section-title::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -4px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    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);
    overflow: hidden;
    transition: transform .2s ease, box-shadow .2s ease;
}

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

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

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: 600;
    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;
}

/* ---- 案内状況 ----
   このテーマはアクセントが緑なので、「今すぐ案内可」と「本日ご予約可能」が
   どちらも緑になって見分けにくい。カードが並ぶと必ず見比べられるため、
   「今すぐ案内可」だけ塗りつぶしにして、色ではなく面で区別する。 */
body .cyen-cast-card-availability {
    border-radius: var(--cyen-radius-pill);
}

body .cyen-cast-card-availability.is-now {
    background: var(--cyen-success);
    border-color: var(--cyen-success);
    color: var(--cyen-text-inverse);
    font-weight: 600;
}

body .cyen-cast-card-availability.is-now::before {
    background: var(--cyen-text-inverse);
}

/* ---- タグ ---- */
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-strong);
    color: var(--cyen-text-muted);
    border-radius: var(--cyen-radius-pill);
}

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

/* ---- 日付タブ ---- */
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-md);
}

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

body .cyen-front-btn:hover {
    background: var(--cyen-text-strong);
    border-color: var(--cyen-text-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);
    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 {
    color: var(--cyen-text-strong);
    padding-bottom: 14px;
    border-bottom: 1px dashed var(--cyen-section-rule);
}

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: transform .2s ease, box-shadow .2s ease;
}

body .cyen-event-list-link:hover {
    transform: translateY(-3px);
    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, 600);
    letter-spacing: var(--cyen-heading-tracking, .04em);
}

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

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: 600;
    font-variant-numeric: tabular-nums;
}

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

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

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

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

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

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

/* 電話番号は苔色のベタ塗りで最優先 */
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-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: var(--cyen-heading-weight, 600);
    letter-spacing: .06em;
}

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

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