:root {
    --background: #ffffff;
    --foreground: #171717;
    --brand-color: #b32442;
    --brand-color-hover: #9a1e39;
    --accent-color: #3ae694;
    --text-muted: #a2a2a2;
    --text-secondary: #454545;
    --border-color: #ededed;
}

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

* {
    margin: 0;
}

body {
    line-height: 1.5;
    color: var(--foreground);
    background: var(--background);
    font-family: 'Roboto', system-ui, -apple-system, 'Segoe UI', sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

html, body {
    max-width: 100vw;
    overflow-x: hidden;
}

img, picture, video, canvas, svg {
    display: block;
    max-width: 100%;
}

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

p, h1, h2, h3, h4, h5, h6 {
    overflow-wrap: break-word;
}

p { text-wrap: pretty; }
h1, h2, h3, h4, h5, h6 { text-wrap: balance; }

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

.container {
    width: 100%;
    max-width: 1220px;
    padding: 0 30px;
    margin: 0 auto;
}

@media (max-width: 960px) {
    .container { max-width: 720px; }
}

@media (max-width: 720px) {
    .container {
        max-width: unset;
        padding: 0 16px;
    }
}

@media (max-width: 380px) {
    .container { padding: 0 12px; }
}

.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 20px;
    font-weight: 600;
    font-size: 15px;
    line-height: 120%;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    transition: background-color .25s, color .25s;
    white-space: nowrap;
}

.button_primary {
    background-color: var(--brand-color);
    color: #fff;
}

.button_primary:hover:not(:disabled) {
    background-color: var(--brand-color-hover);
}

.button_gray {
    background: #f5f5f5;
    color: var(--text-secondary);
}

.button_gray:hover:not(.button_disabled) {
    background: #e0e0e0;
}

.button_disabled,
.button:disabled {
    opacity: .5;
    cursor: not-allowed;
}

.textPage {
    padding: 40px 0 80px;
    max-width: 760px;
}

.textPage__title {
    font-weight: 700;
    font-size: 36px;
    line-height: 120%;
    color: var(--text-secondary);
    margin-bottom: 28px;
}

.textPage__content {
    font-size: 15px;
    line-height: 170%;
    color: var(--text-secondary);
    display: grid;
    gap: 16px;
}

@media (max-width: 960px) {
    .textPage__title { font-size: 24px; }
}
