/*
 * 予約登録システム Pro — デザイントークン
 * ---------------------------------------------------------------------------
 * 日本人になじみのある和の配色と日本語書体に统一し、
 * 「中央寄せ3カラム＋青紫グラデ＋角丸16px」といったAI既定デザインを排除する。
 *
 *   藍（主色） #2E4A7A / 生成り（地色） #F7F3EB / 墨（文字） #232323 の3色構成
 *   差し色は朱 #B6452C のみ（必須表示・警告・取消状態）
 *   見出し: Noto Serif JP（明朝）/ 本文: Zen Kaku Gothic New（ゴシック）
 *   角丸は最大2px、影はモーダルのみ、余白は 32 / 64 / 96 の疎密
 */

:root {
    /* 和配色トークン */
    --wpr-indigo: #2E4A7A;
    --wpr-indigo-deep: #22395E;
    --wpr-indigo-soft: #E8ECF3;
    --wpr-cream: #F7F3EB;
    --wpr-cream-deep: #EFE9DD;
    --wpr-surface: #FFFFFF;
    --wpr-ink: #232323;
    --wpr-ink-soft: #5C5A55;
    --wpr-line: #DAD3C6;
    --wpr-line-strong: #B9AF9C;
    --wpr-accent: #B6452C;
    --wpr-success: #2F6B4F;
    --wpr-success-soft: #E3EEE8;
    --wpr-error-soft: #F6E7E3;

    /* 書体 */
    --wpr-font-serif: 'Noto Serif JP', 'Hiragino Mincho ProN', 'Yu Mincho', serif;
    --wpr-font-sans: 'Zen Kaku Gothic New', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif;

    /* 字幅（6px基準の日本語リズム） */
    --wpr-text-xs: 0.75rem;
    --wpr-text-sm: 0.875rem;
    --wpr-text-base: 1rem;
    --wpr-text-lg: 1.125rem;
    --wpr-text-xl: 1.375rem;
    --wpr-text-2xl: 1.75rem;
    --wpr-leading: 1.9;

    /* 余白（32/64/96 の疎密） */
    --wpr-space-1: 8px;
    --wpr-space-2: 16px;
    --wpr-space-3: 24px;
    --wpr-space-4: 32px;
    --wpr-space-6: 48px;
    --wpr-space-8: 64px;
    --wpr-space-12: 96px;

    /* 線・角・影 */
    --wpr-radius: 2px;
    --wpr-border: 1px solid var(--wpr-line);
    --wpr-shadow-modal: 0 12px 32px rgba(35, 35, 35, 0.16);
}

/* --------------------------------------------------------------------------
   プラグイン前端の共通基準（.wpr-root 配下のみ適用）
   -------------------------------------------------------------------------- */
.wpr-root {
    font-family: var(--wpr-font-sans);
    font-size: var(--wpr-text-base);
    line-height: var(--wpr-leading);
    color: var(--wpr-ink);
    background: var(--wpr-cream);
}

.wpr-root h1,
.wpr-root h2,
.wpr-root h3,
.wpr-root h4 {
    font-family: var(--wpr-font-serif);
    font-weight: 700;
    line-height: 1.5;
    color: var(--wpr-ink);
    margin: 0;
}

.wpr-root p {
    margin: 0;
}

.wpr-root a {
    color: var(--wpr-indigo);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.wpr-root a:hover {
    color: var(--wpr-indigo-deep);
}

/* フォーム要素の共通基準 */
.wpr-root input[type="text"],
.wpr-root input[type="email"],
.wpr-root input[type="tel"],
.wpr-root input[type="password"],
.wpr-root input[type="number"],
.wpr-root input[type="search"],
.wpr-root select,
.wpr-root textarea {
    font-family: var(--wpr-font-sans);
    font-size: var(--wpr-text-base);
    color: var(--wpr-ink);
    background: var(--wpr-surface);
    border: var(--wpr-border);
    border-radius: var(--wpr-radius);
    padding: 12px 14px;
    width: 100%;
    line-height: 1.6;
    transition: border-color 0.15s ease;
}

.wpr-root input:focus,
.wpr-root select:focus,
.wpr-root textarea:focus {
    outline: none;
    border-color: var(--wpr-indigo);
    box-shadow: 0 0 0 3px var(--wpr-indigo-soft);
}

.wpr-root input:disabled,
.wpr-root select:disabled,
.wpr-root textarea:disabled {
    background: var(--wpr-cream-deep);
    color: var(--wpr-ink-soft);
    cursor: not-allowed;
}

.wpr-root input[aria-invalid="true"],
.wpr-root select[aria-invalid="true"] {
    border-color: var(--wpr-accent);
}

/* 必須ラベル */
.wpr-required {
    color: var(--wpr-accent);
    font-size: var(--wpr-text-xs);
    margin-left: 6px;
    font-weight: 500;
}

/* 読み上げ専用 */
.wpr-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* フォーカス可視（AA準拠） */
.wpr-root :focus-visible,
.wpr-root a:focus-visible,
.wpr-root button:focus-visible {
    outline: 2px solid var(--wpr-indigo);
    outline-offset: 2px;
}

/* 管理画面・ログイン画面の書体基準 */
.wrap,
body.login {
    font-family: var(--wpr-font-sans);
}
