:root{
  /* ---- Base palette (brand constants) ---- */
  --pg-earth-deep:#1A1410;
  --pg-earth-warm:#2C2018;
  --pg-earth-raised:#382A20;
  --pg-earth-line:#4A382C;
  --pg-sand-light:#F5EFE0;
  --pg-sand-pale:#FDFAF4;
  --pg-sand-shade:#EAE1CD;
  --pg-sand-line:#DCD0B6;
  --pg-copper:#B5622A;
  --pg-copper-light:#D4825A;
  --pg-copper-deep:#8E4A1E;
  --pg-copper-wash:#F1E2D6;
  --pg-sky:#4A8DB5;
  --pg-sky-light:#7CB2D3;
  --pg-sky-wash:#E2ECF3;
  --pg-forest:#3A7A5C;
  --pg-forest-light:#6BA98A;
  --pg-forest-wash:#E1EDE6;
  --pg-text-primary:#1A1410;
  --pg-text-muted:#6B5E52;

  /* ---- Semantic aliases — LIGHT is the default surface ---- */
  --surface-page:var(--pg-sand-light);
  --surface-card:var(--pg-sand-pale);
  --surface-sunken:#EFE7D5;
  --surface-inverse:var(--pg-earth-deep);
  --surface-overlay:rgba(26,20,16,.44);

  --border-subtle:var(--pg-sand-line);
  --border-strong:#C4B594;
  --border-inverse:var(--pg-earth-line);

  --text-body:var(--pg-text-primary);
  --text-muted:var(--pg-text-muted);
  --text-faint:#93867A;
  --text-inverse:var(--pg-sand-light);
  --text-link:var(--pg-copper-deep);
  --text-link-hover:var(--pg-copper);

  --accent:var(--pg-copper);
  --accent-hover:var(--pg-copper-light);
  --accent-press:var(--pg-copper-deep);
  --accent-on:#FFFFFF;
  --accent-wash:var(--pg-copper-wash);

  --accent-air:var(--pg-sky);          /* flights, sea */
  --accent-air-wash:var(--pg-sky-wash);
  --accent-land:var(--pg-forest);      /* nature, trekking */
  --accent-land-wash:var(--pg-forest-wash);

  --focus-ring:var(--pg-copper);
  --focus-ring-offset:var(--surface-page);

  --state-success:var(--pg-forest);
  --state-info:var(--pg-sky);
  --state-warning:#C08A2E;
  --state-danger:#A63E32;
}

[data-theme="dark"]{
  --surface-page:var(--pg-earth-deep);
  --surface-card:var(--pg-earth-warm);
  --surface-sunken:#150F0C;
  --surface-inverse:var(--pg-sand-light);
  --surface-overlay:rgba(9,6,4,.62);

  --border-subtle:var(--pg-earth-line);
  --border-strong:#5C4736;
  --border-inverse:var(--pg-sand-line);

  --text-body:var(--pg-sand-light);
  --text-muted:#A3927F;
  --text-faint:#7A6A5B;
  --text-inverse:var(--pg-earth-deep);
  --text-link:var(--pg-copper-light);
  --text-link-hover:#E5A181;

  --accent:var(--pg-copper-light);
  --accent-hover:#E0956E;
  --accent-press:var(--pg-copper);
  --accent-on:#1A1410;
  --accent-wash:#3A2A20;

  --accent-air:var(--pg-sky-light);
  --accent-air-wash:#22333D;
  --accent-land:var(--pg-forest-light);
  --accent-land-wash:#1F3229;

  --focus-ring:var(--pg-copper-light);
  --focus-ring-offset:var(--surface-page);

  --state-success:var(--pg-forest-light);
  --state-info:var(--pg-sky-light);
  --state-warning:#DCAE55;
  --state-danger:#D4685A;
}
