:root {
    --color-bg: #ffffff;
    --color-bg-soft: #f6f9fd;
    --color-bg-accent: #d9e9ff;
    --color-text: #2a2d38;
    --color-muted: #4d6079;
    --color-primary: #124d91;
    --color-primary-strong: #0d3f79;
    --color-primary-soft: #eaf2ff;
    --color-secondary: #6d7888;
    --color-border: #d7e0ec;
    --color-surface: #ffffff;
    --color-success: #1ca66b;
    --shadow-sm: 0 10px 24px rgba(17, 44, 84, 0.08);
    --shadow-md: 0 18px 40px rgba(17, 44, 84, 0.12);
    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-lg: 18px;
    --space-1: 8px;
    --space-2: 12px;
    --space-3: 16px;
    --space-4: 20px;
    --space-5: 24px;
    --space-6: 32px;
    --space-7: 40px;
    --space-8: 56px;
    --space-9: 72px;
}

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

html {
    scroll-behavior: smooth;
}

html,
body {
    margin: 0;
    padding: 0;
}

body {
    font-family: "Inter", sans-serif;
    color: var(--color-text);
    background: linear-gradient(180deg, #f9fbff 0%, #ffffff 180px);
    line-height: 1.6;
    overflow-x: hidden;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

a {
    color: inherit;
    text-decoration: none;
}

button,
input,
textarea,
select {
    font: inherit;
}

h1,
h2,
h3 {
    margin: 0 0 var(--space-3);
    line-height: 1.14;
    color: var(--color-text);
}

h1 {
    font-size: clamp(2rem, 3vw + 1rem, 3.3rem);
}

h2 {
    font-size: clamp(1.55rem, 1.3vw + 1rem, 2.35rem);
}

h3 {
    font-size: clamp(1.05rem, 0.5vw + 1rem, 1.3rem);
}

p {
    margin: 0 0 var(--space-3);
    color: var(--color-text);
}

ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

strong {
    color: inherit;
}
