/**
 * HotelDZ Design Tokens — luxury royal green + gold (Lot A / Étape 3).
 * Shared: login, admin chrome, suite dashboard, Traveler HDZ front.
 *
 * Interactive sizes use px (not rem) so Traveler html{font-size:10px} cannot shrink CTAs.
 */

:root {
    /* ── Brand palette ── */
    --hdz-royal: #0f3b2e;
    --hdz-royal-2: #184d3b;
    --hdz-royal-3: #1f5c47;
    --hdz-royal-dark: #0a2a20;
    --hdz-royal-light: #2a6b54;
    --hdz-gold: #c9a227;
    --hdz-gold-soft: #e5c96e;
    --hdz-gold-deep: #a8841a;
    --hdz-gold-glow: rgba(201, 162, 39, 0.35);
    --hdz-cream: #f4f1ea;
    --hdz-surface: #ffffff;

    /* ── Semantic surfaces (light) ── */
    --hdz-bg: var(--hdz-cream);
    --hdz-bg-elevated: #faf8f4;
    --hdz-bg-card: var(--hdz-surface);
    --hdz-bg-card-hover: #fffdf9;
    --hdz-bg-inset: rgba(15, 59, 46, 0.04);
    --hdz-text: #1a1a1a;
    --hdz-text-muted: #5e5e5e;
    --hdz-text-inverse: #f8f6f1;
    --hdz-border: rgba(15, 59, 46, 0.12);
    --hdz-border-strong: rgba(15, 59, 46, 0.22);
    --hdz-border-gold: rgba(201, 162, 39, 0.38);

    /* ── Status ── */
    --hdz-success: #1a6b45;
    --hdz-success-bg: #e8f6ef;
    --hdz-warning: #9a6b00;
    --hdz-warning-bg: #fff6e5;
    --hdz-danger: #a12622;
    --hdz-danger-bg: #fdecea;
    --hdz-info: #1a5a8a;
    --hdz-info-bg: #e8f2fa;
    --hdz-neutral: #555555;
    --hdz-neutral-bg: #f0f0f0;

    /* ── Effects ── */
    --hdz-shadow-xs: 0 1px 3px rgba(15, 59, 46, 0.06);
    --hdz-shadow-sm: 0 4px 14px rgba(15, 59, 46, 0.07);
    --hdz-shadow-md: 0 8px 28px rgba(15, 59, 46, 0.1);
    --hdz-shadow-lg: 0 18px 48px rgba(15, 59, 46, 0.14);
    --hdz-shadow-gold: 0 10px 32px rgba(201, 162, 39, 0.22);
    --hdz-shadow-card: 0 2px 0 0 var(--hdz-gold) inset, var(--hdz-shadow-sm);
    --hdz-glass: rgba(255, 255, 255, 0.82);
    --hdz-overlay: rgba(15, 59, 46, 0.45);

    /* ── Typography ── */
    --hdz-font-display: "Cormorant Garamond", Georgia, "Times New Roman", serif;
    --hdz-font-ui: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --hdz-font-mono: ui-monospace, "Cascadia Code", "Consolas", monospace;
    /* Admin rem scale (wp-admin html ≈ 16px). Front HDZ interactive → use --hdz-fs-* px below. */
    --hdz-text-xs: 0.6875rem;
    --hdz-text-sm: 0.8125rem;
    --hdz-text-base: 0.875rem;
    --hdz-text-lg: 1.125rem;
    --hdz-text-xl: 1.35rem;
    --hdz-text-2xl: 1.65rem;
    --hdz-leading-tight: 1.25;
    --hdz-leading-normal: 1.5;

    /* ── Interactive scale (px — beats Traveler root 10px) ── */
    --hdz-fs-action: 14px;
    --hdz-fs-label: 12px;
    --hdz-fs-body: 14px;
    --hdz-fs-title: 28px;
    --hdz-fs-section: 13px;
    --hdz-btn-h: 40px;
    --hdz-btn-h-touch: 44px;

    /* ── Spacing ── */
    --hdz-space-1: 4px;
    --hdz-space-2: 8px;
    --hdz-space-3: 12px;
    --hdz-space-4: 16px;
    --hdz-space-5: 20px;
    --hdz-space-6: 24px;
    --hdz-space-8: 32px;
    --hdz-space-10: 40px;

    /* ── Radius (control 8 / card 14 / pill 999) ── */
    --hdz-radius-control: 8px;
    --hdz-radius-card: 14px;
    --hdz-radius-sm: var(--hdz-radius-control);
    --hdz-radius: var(--hdz-radius-card);
    --hdz-radius-lg: 18px;
    --hdz-radius-pill: 999px;

    /* ── Motion ── */
    --hdz-ease: cubic-bezier(0.4, 0, 0.2, 1);
    --hdz-ease-spring: cubic-bezier(0.34, 1.2, 0.64, 1);
    --hdz-duration-fast: 150ms;
    --hdz-duration: 250ms;
    --hdz-duration-slow: 400ms;

    /* ── Layout ── */
    --hdz-header-accent: 3px;
    --hdz-content-max: 1440px;
    --hdz-sidebar-width: 188px;
    --hdz-sidebar-folded: 36px;
    --hdz-focus-ring: 0 0 0 3px rgba(201, 162, 39, 0.28);
    --hdz-scrollbar-thumb: rgba(201, 162, 39, 0.42);
    --hdz-scrollbar-thumb-hover: rgba(201, 162, 39, 0.68);
    --hdz-scrollbar-track: rgba(0, 0, 0, 0.14);

    color-scheme: light;
}

/* Traveler html{font-size:10px} — rem tokens would shrink to ~7–9px; force px for HDZ embed. */
body.hdz-traveler-embed {
    --hdz-text-xs: 12px;
    --hdz-text-sm: 13px;
    --hdz-text-base: 14px;
    --hdz-text-lg: 16px;
    --hdz-text-xl: 18px;
    --hdz-text-2xl: 22px;
}

/* ── Dark theme ── */
[data-hdz-theme="dark"] {
    --hdz-bg: #0e1612;
    --hdz-bg-elevated: #121f19;
    --hdz-bg-card: #162620;
    --hdz-bg-card-hover: #1a2e26;
    --hdz-bg-inset: rgba(0, 0, 0, 0.22);
    --hdz-text: #ece8e0;
    --hdz-text-muted: #9aa89f;
    --hdz-text-inverse: #f8f6f1;
    --hdz-border: rgba(229, 201, 110, 0.12);
    --hdz-border-strong: rgba(229, 201, 110, 0.22);
    --hdz-border-gold: rgba(229, 201, 110, 0.32);
    --hdz-glass: rgba(22, 38, 32, 0.88);
    --hdz-overlay: rgba(0, 0, 0, 0.55);

    --hdz-success-bg: rgba(26, 107, 69, 0.18);
    --hdz-warning-bg: rgba(201, 162, 39, 0.15);
    --hdz-danger-bg: rgba(161, 38, 34, 0.18);
    --hdz-info-bg: rgba(26, 90, 138, 0.18);
    --hdz-neutral-bg: rgba(255, 255, 255, 0.08);

    --hdz-shadow-xs: 0 1px 3px rgba(0, 0, 0, 0.28);
    --hdz-shadow-sm: 0 4px 16px rgba(0, 0, 0, 0.32);
    --hdz-shadow-md: 0 8px 32px rgba(0, 0, 0, 0.38);
    --hdz-shadow-lg: 0 18px 56px rgba(0, 0, 0, 0.45);
    --hdz-shadow-gold: 0 8px 28px rgba(201, 162, 39, 0.12);
    --hdz-shadow-card: 0 2px 0 0 var(--hdz-gold-deep) inset, var(--hdz-shadow-sm);

    color-scheme: dark;
}

/* System preference when theme = auto */
@media (prefers-color-scheme: dark) {
    :root[data-hdz-theme="auto"] {
        --hdz-bg: #0e1612;
        --hdz-bg-elevated: #121f19;
        --hdz-bg-card: #162620;
        --hdz-bg-card-hover: #1a2e26;
        --hdz-bg-inset: rgba(0, 0, 0, 0.22);
        --hdz-text: #ece8e0;
        --hdz-text-muted: #9aa89f;
        --hdz-text-inverse: #f8f6f1;
        --hdz-border: rgba(229, 201, 110, 0.12);
        --hdz-border-strong: rgba(229, 201, 110, 0.22);
        --hdz-border-gold: rgba(229, 201, 110, 0.32);
        --hdz-glass: rgba(22, 38, 32, 0.88);
        --hdz-overlay: rgba(0, 0, 0, 0.55);
        --hdz-success-bg: rgba(26, 107, 69, 0.18);
        --hdz-warning-bg: rgba(201, 162, 39, 0.15);
        --hdz-danger-bg: rgba(161, 38, 34, 0.18);
        --hdz-info-bg: rgba(26, 90, 138, 0.18);
        --hdz-neutral-bg: rgba(255, 255, 255, 0.08);
        --hdz-shadow-xs: 0 1px 3px rgba(0, 0, 0, 0.28);
        --hdz-shadow-sm: 0 4px 16px rgba(0, 0, 0, 0.32);
        --hdz-shadow-md: 0 8px 32px rgba(0, 0, 0, 0.38);
        --hdz-shadow-lg: 0 18px 56px rgba(0, 0, 0, 0.45);
        --hdz-shadow-gold: 0 8px 28px rgba(201, 162, 39, 0.12);
        --hdz-shadow-card: 0 2px 0 0 var(--hdz-gold-deep) inset, var(--hdz-shadow-sm);
        color-scheme: dark;
    }
}

/* ── Global polish & accessibility ── */
body.hdz-admin-branding,
body.hdz-login,
.hdz-wrap {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

.hdz-btn:focus:not(:focus-visible),
.hdz-theme-toggle:focus:not(:focus-visible),
body.hdz-login input:focus:not(:focus-visible) {
    outline: none;
}

@media (prefers-reduced-motion: reduce) {
    :root {
        --hdz-duration-fast: 0ms;
        --hdz-duration: 0ms;
        --hdz-duration-slow: 0ms;
    }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}
