:root{
/* ---- Brand palette (Kaliputih Identity Guide, p.5) ---- */
--kp-navy:#1b1b60;          /* Deep Navy   RGB 27 27 96     CMYK 100 100 30 25 */
--kp-forest:#194838;        /* Forest Green RGB 25 72 56    CMYK 85 46 75 47 */
--kp-rose:#bd8f8f;          /* Dusty Rose  RGB 189 143 143  CMYK 26 47 36 1 */
--kp-off-white:#f9f8ed;     /* Off-White   RGB 249 248 237  CMYK 2 1 6 0 */
--kp-white:#ffffff;         /* Pure White */
--kp-rust:#c7352e;          /* Rust Orange RGB 199 53 46    CMYK 15 93 93 5 */
--kp-rust-icon:#b84633;     /* Rust as drawn in the supplied icon artwork */

/* ---- Tints & shades (derived; keep hue, never invent new hues) ---- */
--kp-navy-900:#101038;
--kp-navy-700:#15154a;
--kp-navy-500:#1b1b60;
--kp-navy-300:#4a4a89;
--kp-navy-100:#c7c7dc;
--kp-navy-050:#eaeaf2;

--kp-rust-700:#8f231e;
--kp-rust-500:#c7352e;
--kp-rust-300:#dd7b76;
--kp-rust-100:#f2cfcd;
--kp-rust-050:#fbeceb;

--kp-forest-700:#0f2f24;
--kp-forest-500:#194838;
--kp-forest-300:#5c8577;
--kp-forest-100:#c3d4cd;
--kp-forest-050:#e9f0ed;

--kp-rose-700:#8c6161;
--kp-rose-500:#bd8f8f;
--kp-rose-300:#d5b6b6;
--kp-rose-100:#eddfdf;
--kp-rose-050:#f7efef;

/* ---- Neutrals: warm, pulled toward Off-White, never pure grey ---- */
--kp-sand-050:#fdfcf6;
--kp-sand-100:#f9f8ed;
--kp-sand-200:#f0eee0;
--kp-sand-300:#e2dfcd;
--kp-sand-400:#c9c5ae;
--kp-sand-600:#8b8874;
--kp-sand-700:#6b6858;
--kp-sand-800:#4a483d;
--kp-ink:#17172b;

/* ---- Semantic surfaces ---- */
--surface-page:var(--kp-off-white);
--surface-card:var(--kp-white);
--surface-raised:var(--kp-sand-050);
--surface-sunken:var(--kp-sand-200);
--surface-inverse:var(--kp-navy);
--surface-accent:var(--kp-rust);
--surface-accent-soft:var(--kp-rust-050);
--surface-forest:var(--kp-forest);
--surface-rose:var(--kp-rose);

/* ---- Semantic text ---- */
--text-heading:var(--kp-navy);
--text-body:var(--kp-sand-800);
--text-muted:var(--kp-sand-700);
--text-accent:var(--kp-rust);
--text-on-dark:var(--kp-off-white);
--text-on-dark-muted:#a9a9c6;
--text-on-accent:var(--kp-off-white);
--text-link:var(--kp-rust);
--text-link-hover:var(--kp-rust-700);

/* ---- Borders & lines ---- */
--border-subtle:var(--kp-sand-300);
--border-strong:var(--kp-navy);
--border-accent:var(--kp-rust);
--border-on-dark:rgba(249,248,237,.28);
--border-width:1px;
--border-width-strong:2px;

/* ---- Semantic status (mapped onto the brand palette, no new hues) ---- */
--status-success:var(--kp-forest);
--status-success-soft:var(--kp-forest-050);
--status-danger:var(--kp-rust-700);
--status-danger-soft:var(--kp-rust-050);
--status-warning:#b8791f;
--status-warning-soft:#fbf1e0;
--status-info:var(--kp-navy);
--status-info-soft:var(--kp-navy-050);

/* ---- Channel colour: WhatsApp is a first-class booking channel ---- */
--channel-whatsapp:#1f7a4d;
--channel-whatsapp-soft:#e7f2ec;

/* ---- Focus ---- */
--focus-ring:var(--kp-rust);
--focus-ring-offset:2px;
}
