/**
 * Базовые стили и утилиты
 */
*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body.cv-site {
    font-family: var(--cv-font-sans);
    font-size: var(--cv-fs-base);
    line-height: var(--cv-lh-normal);
    color: var(--cv-text);
    background: var(--cv-bg);
    -webkit-font-smoothing: antialiased;
}

body.cv-site h1,
body.cv-site h2,
body.cv-site h3,
body.cv-site h4 {
    font-family: var(--cv-font-heading);
    font-weight: var(--cv-fw-bold);
    line-height: var(--cv-lh-tight);
    color: var(--cv-text);
}

body.cv-site h1 { font-size: var(--cv-fs-2xl); }
body.cv-site h2 { font-size: var(--cv-fs-xl); }
body.cv-site h3 { font-size: var(--cv-fs-lg); }
body.cv-site h4 { font-size: var(--cv-fs-base); }

body.cv-site a {
    color: var(--cv-primary);
    text-decoration: none;
    transition: color var(--cv-transition);
}

body.cv-site a:hover {
    color: var(--cv-primary-dark);
}

body.cv-site img {
    max-width: 100%;
    height: auto;
    display: block;
}

body.cv-site .container {
    max-width: var(--cv-container);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--cv-container-pad);
    padding-right: var(--cv-container-pad);
}

body.cv-site .main {
    padding-top: calc(var(--cv-header-height) + var(--cv-gap-lg));
    padding-bottom: var(--cv-gap-2xl);
    min-height: 50vh;
}

body.cv-site .section {
    margin-bottom: var(--cv-gap-2xl);
}

body.cv-site .section-title {
    font-size: var(--cv-fs-xl);
    font-weight: var(--cv-fw-bold);
    margin-bottom: var(--cv-gap-lg);
    text-align: center;
    color: var(--cv-text);
}

body.cv-site .page-title {
    font-size: var(--cv-fs-2xl);
    margin-bottom: var(--cv-gap-lg);
}

@media (min-width: 768px) {
    body.cv-site h1 { font-size: var(--cv-fs-3xl); }
    body.cv-site .section-title { font-size: var(--cv-fs-2xl); }
}
