/* ═══════════════════════════════════════════════════════
   Design Tokens — Hotel Theme 4.7 (Understated European Luxury)
   Single source of truth. Aligned with DESIGN-SYSTEM-hotel.md §1.
   Child themes override values in their style.css :root block.
   ═══════════════════════════════════════════════════════ */

:root {
  /* ─── COLOR · Surfaces ─────────────────────────────── */
  --color-bg:            #FAF9F7;
  --color-bg-alt:        #F2EEE8;
  --color-surface:       #FFFFFF;
  --color-dark:          #1C1B19;
  --color-dark-mid:      #2D2C28;

  /* ─── COLOR · Brand accent ─────────────────────────── */
  --color-brand:         #C8A96E;
  --color-brand-hover:   #A88B4A;
  --color-brand-subtle:  #F5EFE3;

  /* ─── COLOR · Text ─────────────────────────────────── */
  --color-text:          #1C1B19;
  --color-text-secondary:#6A6760;
  --color-text-muted:    #9C9890;
  --color-text-inverse:  #FFFFFF;
  --color-text-brand:    #A88B4A;

  /* ─── COLOR · Borders ──────────────────────────────── */
  --color-border:        rgba(28, 27, 25, 0.10);
  --color-border-mid:    rgba(28, 27, 25, 0.20);
  --color-border-strong: rgba(28, 27, 25, 0.35);
  --color-border-inverse:rgba(255, 255, 255, 0.12);

  /* ─── COLOR · Overlays ─────────────────────────────── */
  --color-overlay-light: rgba(28, 27, 25, 0.35);
  --color-overlay-mid:   rgba(28, 27, 25, 0.55);
  --color-overlay-dark:  rgba(28, 27, 25, 0.75);

  /* ─── COLOR · States ───────────────────────────────── */
  --color-focus:         #C8A96E;
  --color-error:         #C0392B;
  --color-success:       #2E7D32;

  /* ─── TYPOGRAPHY · Families ────────────────────────── */
  --font-display: "Cormorant Garamond", "Georgia", serif;
  --font-body:    "DM Sans", "Helvetica Neue", Arial, sans-serif;

  /* ─── TYPOGRAPHY · Display scale (serif) ───────────── */
  --text-display-xl: clamp(3.5rem, 7vw, 6rem);
  --text-display-l:  clamp(2.75rem, 5vw, 4.5rem);
  --text-display-m:  clamp(2.25rem, 4vw, 3.5rem);
  --text-display-s:  clamp(1.875rem, 3vw, 2.5rem);

  /* ─── TYPOGRAPHY · UI/Body scale (sans) ────────────── */
  --text-heading-l:  2rem;
  --text-heading-m:  1.5rem;
  --text-heading-s:  1.25rem;
  --text-body-l:     1.125rem;
  --text-body-m:     1rem;
  --text-body-s:     0.875rem;
  --text-caption:    0.8125rem;
  --text-overline:   0.75rem;

  /* ─── TYPOGRAPHY · Line heights ────────────────────── */
  --lh-display: 1.00;
  --lh-heading: 1.20;
  --lh-subhead: 1.35;
  --lh-body:    1.65;
  --lh-tight:   1.10;

  /* ─── TYPOGRAPHY · Letter spacing ──────────────────── */
  --tracking-tight:   -0.03em;
  --tracking-snug:    -0.015em;
  --tracking-normal:   0;
  --tracking-wide:     0.05em;
  --tracking-wider:    0.10em;
  --tracking-widest:   0.15em;

  /* ─── TYPOGRAPHY · Weights ─────────────────────────── */
  --weight-regular:  400;
  --weight-medium:   500;
  --weight-semibold: 600;

  /* ─── SPACING · 4px base scale ─────────────────────── */
  --space-1:   0.25rem;   /*   4px */
  --space-2:   0.5rem;    /*   8px */
  --space-3:   0.75rem;   /*  12px */
  --space-4:   1rem;      /*  16px */
  --space-5:   1.25rem;   /*  20px */
  --space-6:   1.5rem;    /*  24px */
  --space-8:   2rem;      /*  32px */
  --space-10:  2.5rem;    /*  40px */
  --space-12:  3rem;      /*  48px */
  --space-16:  4rem;      /*  64px */
  --space-20:  5rem;      /*  80px */
  --space-24:  6rem;      /*  96px */
  --space-30:  7.5rem;    /* 120px */
  --space-40:  10rem;     /* 160px */

  /* Section vertical padding shorthand */
  --section-gap: clamp(var(--space-12), 8vw, var(--space-40));

  /* ─── RADII ───────────────────────────────────────── */
  --radius-xs:   2px;
  --radius-sm:   4px;
  --radius-md:   8px;
  --radius-lg:   16px;
  --radius-xl:   24px;
  --radius-2xl:  32px;
  --radius-pill: 100px;
  --radius-full: 50%;

  /* ─── SHADOWS · warm-tinted ────────────────────────── */
  --shadow-xs: 0 1px 3px  rgba(28, 27, 25, 0.06);
  --shadow-sm: 0 2px 8px  rgba(28, 27, 25, 0.08);
  --shadow-md: 0 4px 20px rgba(28, 27, 25, 0.10);
  --shadow-lg: 0 8px 40px rgba(28, 27, 25, 0.12);
  --shadow-xl: 0 20px 60px rgba(28, 27, 25, 0.16);

  /* ─── MOTION ──────────────────────────────────────── */
  --duration-fast:   150ms;
  --duration-base:   250ms;
  --duration-slow:   400ms;
  --duration-slower: 600ms;

  --ease-out:    cubic-bezier(0.0, 0, 0.2, 1);
  --ease-in:     cubic-bezier(0.4, 0, 1, 1);
  --ease-inout:  cubic-bezier(0.4, 0, 0.2, 1);
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);

  /* ─── LAYOUT · Containers ─────────────────────────── */
  --container-max:    1320px;
  --container-mid:     960px;
  --container-narrow:  720px;
  --container-px:     clamp(var(--space-4), 5vw, var(--space-16));

  /* ─── LAYOUT · Nav offset (sticky anchor) ─────────── */
  --nav-height:        60px;
  --nav-height-lg:     72px;

  /* ─── Z-INDEX SCALE ───────────────────────────────── */
  --z-base:     0;
  --z-raised:   10;
  --z-dropdown: 100;
  --z-sticky:   200;
  --z-overlay:  300;
  --z-modal:    400;
  --z-toast:    500;
}
