/* === Sky Suites Design System — base.css === */
/* Light luxury hospitality. Ivory + Charcoal + Champagne Gold + Navy. */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  /* — Palette — */
  --ivory: #FEFCF6;
  --ivory-warm: #FBF8F0;
  --cream: #F5F0E6;
  --sand: #E8E0D0;
  --champagne: #C9A96E;
  --champagne-light: #D9C497;
  --champagne-dark: #A88B4A;
  --charcoal: #1A1A2E;
  --charcoal-light: #2D2D44;
  --navy: #2C3E6B;
  --navy-light: #3D5289;
  --navy-muted: #4A5F8A;
  --slate: #5A6178;
  --text-primary: #1A1A2E;
  --text-secondary: #4A4A5E;
  --text-muted: #7A7A8E;
  --text-faint: #9A9AAE;
  --white: #FFFFFF;
  --success: #2D7A4F;
  --success-bg: #E8F5EC;
  --warning: #B8860B;
  --warning-bg: #FFF8E1;
  --error: #C0392B;
  --error-bg: #FDEDEB;

  /* — Type Scale (fluid clamp) — */
  --text-xs: clamp(0.7rem, 0.65rem + 0.2vw, 0.8rem);
  --text-sm: clamp(0.8rem, 0.75rem + 0.2vw, 0.875rem);
  --text-base: clamp(0.938rem, 0.9rem + 0.2vw, 1rem);
  --text-lg: clamp(1.05rem, 1rem + 0.25vw, 1.15rem);
  --text-xl: clamp(1.25rem, 1.1rem + 0.5vw, 1.5rem);
  --text-2xl: clamp(1.5rem, 1.2rem + 1vw, 2rem);
  --text-3xl: clamp(1.8rem, 1.4rem + 1.5vw, 2.8rem);
  --text-hero: clamp(2.2rem, 1.5rem + 3vw, 4rem);

  /* — Spacing (4px base) — */
  --space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px;
  --space-5: 20px; --space-6: 24px; --space-8: 32px; --space-10: 40px;
  --space-12: 48px; --space-16: 64px; --space-20: 80px; --space-24: 96px;
  --space-32: 128px;

  /* — Radius — */
  --radius-xs: 4px; --radius-sm: 6px; --radius-md: 10px;
  --radius-lg: 16px; --radius-xl: 24px; --radius-full: 9999px;

  /* — Shadows (warm-tinted) — */
  --shadow-xs: 0 1px 2px rgba(26,26,46,0.04);
  --shadow-sm: 0 2px 8px rgba(26,26,46,0.06);
  --shadow-md: 0 4px 16px rgba(26,26,46,0.08);
  --shadow-lg: 0 8px 32px rgba(26,26,46,0.10);
  --shadow-xl: 0 16px 48px rgba(26,26,46,0.12);
  --shadow-gold: 0 4px 24px rgba(201,169,110,0.15);

  /* — Transitions — */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in: cubic-bezier(0.4, 0, 1, 1);
  --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
  --transition-fast: 180ms cubic-bezier(0.16, 1, 0.3, 1);
  --transition-mid: 300ms cubic-bezier(0.16, 1, 0.3, 1);
  --transition-slow: 500ms cubic-bezier(0.16, 1, 0.3, 1);

  /* — Layout — */
  --content-max: 1200px;
  --content-wide: 1400px;
  --content-narrow: 720px;
  --header-height: 72px;

  font-family: 'General Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 16px;
  line-height: 1.6;
  color: var(--text-primary);
  background: var(--ivory);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  scroll-behavior: smooth;
}

/* Fonts */
@font-face {
  font-family: 'General Sans';
  src: url('https://cdn.fontshare.com/wf/JRDMZS6KFXHVWVPJFZYAFV5MKQEWQCFH/QUBCXHWPZULHZCFYWM4EU2FUQ7LUFMHM/V6SBRGR47F5G4AKI4EWQSJQ3XBIFQXWN.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'General Sans';
  src: url('https://cdn.fontshare.com/wf/JRDMZS6KFXHVWVPJFZYAFV5MKQEWQCFH/4P3MFOYQAFXXBSMT74HLBQR66RDRVK4E/CZABWT2VNNKFHMYAZWXNNOMZY3J3NB42.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'General Sans';
  src: url('https://cdn.fontshare.com/wf/JRDMZS6KFXHVWVPJFZYAFV5MKQEWQCFH/C2GRZBZV7BBFSJUISWAKBGOFGLNH74OP/O4DRFHG2JE2ZQFZ6D4P2EJILUCYKCFWB.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

body {
  min-height: 100vh;
  overflow-x: hidden;
}

/* Headings — Playfair Display */
h1, h2, h3, h4, h5, h6 {
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 600;
  line-height: 1.2;
  color: var(--charcoal);
  letter-spacing: -0.01em;
}

a { color: inherit; text-decoration: none; }
img, video { display: block; max-width: 100%; height: auto; }
button, input, select, textarea { font: inherit; }

/* Skip link */
.skip-link {
  position: absolute; left: -9999px; top: var(--space-2);
  background: var(--charcoal); color: var(--white);
  padding: var(--space-2) var(--space-4);
  border-radius: var(--radius-sm);
  z-index: 100;
}
.skip-link:focus { left: var(--space-4); }

/* Selection */
::selection { background: rgba(201,169,110,0.2); color: var(--charcoal); }

/* Focus ring */
:focus-visible {
  outline: 2px solid var(--champagne);
  outline-offset: 2px;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
