@import url('https://fonts.googleapis.com/css2?family=Sora:wght@300;400;500;600;700&family=Source+Sans+3:ital,wght@0,300;0,400;0,600;0,700;1,400&display=swap');

:root {
  --color-brand:       #0F3F92;
  --color-brand-dark:  #0A2D6E;
  --color-brand-light: #E8EEF9;
  --color-apt-blue:        #2A5DB0;
  --color-apt-blue-dark:   #1D4485;
  --color-apt-blue-light:  #E8F0FB;
  --color-apt-green:       #2B7A4B;
  --color-apt-green-dark:  #1E5835;
  --color-apt-green-light: #E4F3EB;
  --color-apt-red:         #C03030;
  --color-apt-red-dark:    #8F2222;
  --color-apt-red-light:   #FBEAEA;
  --color-ink-1: #1C1917;
  --color-ink-2: #44403C;
  --color-ink-3: #78716C;
  --color-ink-4: #A8A29E;
  --color-surface-base:  #FAF8F5;
  --color-surface-card:  #FFFFFF;
  --color-surface-muted: #F2EFE9;
  --color-surface-dark:  #1C1917;
  --color-border:        #E7E2DC;
  --color-border-strong: #C9C4BC;
  --text-primary:   var(--color-ink-1);
  --text-body:      var(--color-ink-2);
  --text-muted:     var(--color-ink-3);
  --text-disabled:  var(--color-ink-4);
  --text-on-brand:  #FFFFFF;
  --text-on-dark:   #FAF8F5;
  --surface-page:   var(--color-surface-base);
  --surface-card:   var(--color-surface-card);
  --surface-muted:  var(--color-surface-muted);
  --surface-dark:   var(--color-surface-dark);
  --font-display: 'Sora', system-ui, sans-serif;
  --font-body:    'Source Sans 3', system-ui, sans-serif;
  --text-xs:   0.75rem;
  --text-sm:   0.875rem;
  --text-base: 1rem;
  --text-lg:   1.125rem;
  --text-xl:   1.25rem;
  --text-2xl:  1.5rem;
  --text-3xl:  1.875rem;
  --text-4xl:  2.25rem;
  --text-5xl:  3rem;
  --text-6xl:  3.75rem;
  --weight-light:    300;
  --weight-regular:  400;
  --weight-medium:   500;
  --weight-semibold: 600;
  --weight-bold:     700;
  --leading-tight:   1.15;
  --leading-snug:    1.3;
  --leading-normal:  1.5;
  --leading-relaxed: 1.65;
  --tracking-tight:  -0.02em;
  --tracking-normal:  0em;
  --tracking-wide:    0.04em;
  --tracking-wider:   0.07em;
  --tracking-widest:  0.12em;
  --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-xs:   2px;
  --radius-sm:   4px;
  --radius-md:   8px;
  --radius-lg:   12px;
  --radius-xl:   16px;
  --radius-full: 9999px;
  --container-sm:  640px;
  --container-md:  768px;
  --container-lg:  1024px;
  --container-xl:  1200px;
  --shadow-sm: 0 1px 4px rgba(28,25,23,0.07), 0 1px 2px rgba(28,25,23,0.05);
  --shadow-md: 0 4px 16px rgba(28,25,23,0.09), 0 2px 6px rgba(28,25,23,0.06);
  --shadow-lg: 0 8px 32px rgba(28,25,23,0.11), 0 4px 12px rgba(28,25,23,0.07);
  --shadow-xl: 0 16px 48px rgba(28,25,23,0.14), 0 8px 20px rgba(28,25,23,0.08);
  --shadow-card-hover: 0 6px 24px rgba(28,25,23,0.12), 0 2px 8px rgba(28,25,23,0.07);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 16px; scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  background: var(--surface-page);
  color: var(--text-body);
  font-family: var(--font-body);
  font-size: var(--text-base);
  line-height: var(--leading-normal);
  font-weight: var(--weight-regular);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
h1,h2,h3,h4,h5,h6 {
  font-family: var(--font-display);
  color: var(--text-primary);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-tight);
  font-weight: var(--weight-semibold);
}
p { line-height: var(--leading-relaxed); }
a { color: var(--color-brand); text-decoration: none; }
a:hover { color: var(--color-brand-dark); }
img,svg { display: block; max-width: 100%; }
button { font-family: inherit; }
ul,ol { list-style: none; }
