/* =========================================================
   SOULULAB — TYPOGRAPHY SYSTEM
   Снято со старого сайта
   ========================================================= */

:root {
    /* font */
    --font-main: "Montserrat", Arial, sans-serif;

    /* h1 */
    --font-h1-size: 63.7px;
    --font-h1-weight: 650;
    --font-h1-line: 62.426px;
    --font-h1-letter: -2.23px;

    /* h2 */
    --font-h2-size: 46px;
    --font-h2-weight: 700;
    --font-h2-line: 49.68px;
    --font-h2-letter: -1.15px;

    /* h3 default cards */
    --font-h3-size: 24px;
    --font-h3-weight: 600;
    --font-h3-line: 27.84px;
    --font-h3-letter: -0.72px;

    /* h3 bigger include cards */
    --font-h3-lg-size: 22px;
--font-h3-lg-weight: 700;
--font-h3-lg-line: 25.5px;
--font-h3-lg-letter: -0.55px;

    /* h3 process cards */
    --font-h3-sm-size: 20px;
    --font-h3-sm-weight: 800;
    --font-h3-sm-line: 23.2px;
    --font-h3-sm-letter: -0.8px;

    /* paragraphs */
    --font-hero-text-size: 20px;
    --font-hero-text-weight: 400;
    --font-hero-text-line: 32px;

    --font-lead-size: 18px;
    --font-lead-weight: 400;
    --font-lead-line: 28.8px;

    --font-body-size: 16px;
    --font-body-weight: 400;
    --font-body-line: 24.8px;

    --font-small-size: 14px;
    --font-small-weight: 500;
    --font-small-line: 20.72px;
    --font-small-letter: -0.21px;

    /* nav / buttons */
    --font-nav-size: 14px;
    --font-nav-weight: 600;
    --font-nav-line: 14px;

    --font-btn-size: 14px;
    --font-btn-weight: 600;
    --font-btn-line: 16.8px;

    --font-btn-strong-weight: 800;

    --font-faq-size: 18px;
    --font-faq-weight: 600;
    --font-faq-line: 22.5px;
}

/* =========================================================
   BASE
   ========================================================= */

html,
body {
    font-family: var(--font-main);
}

body {
    font-size: var(--font-body-size);
    font-weight: var(--font-body-weight);
    line-height: var(--font-body-line);
}

h1,
h2,
h3,
h4,
h5,
h6,
p {
    margin-top: 0;
}

h1,
.soul-hero__title {
    font-family: var(--font-main);
    font-size: var(--font-h1-size);
    font-weight: var(--font-h1-weight);
    line-height: var(--font-h1-line);
    letter-spacing: var(--font-h1-letter);
}

h2,
.soul-section__title {
    font-family: var(--font-main);
    font-size: var(--font-h2-size);
    font-weight: var(--font-h2-weight);
    line-height: var(--font-h2-line);
    letter-spacing: var(--font-h2-letter);
}

h3 {
    font-family: var(--font-main);
    font-size: var(--font-h3-size);
    font-weight: var(--font-h3-weight);
    line-height: var(--font-h3-line);
    letter-spacing: var(--font-h3-letter);
}

p {
    font-family: var(--font-main);
    font-size: var(--font-body-size);
    font-weight: var(--font-body-weight);
    line-height: var(--font-body-line);
    letter-spacing: normal;
}

/* =========================================================
   HERO
   ========================================================= */

.soul-hero__text,
.soul-hero__description,
.soul-hero p {
    font-size: var(--font-hero-text-size);
    font-weight: var(--font-hero-text-weight);
    line-height: var(--font-hero-text-line);
    letter-spacing: normal;
}

/* =========================================================
   SECTION DESCRIPTIONS / LEADS
   ========================================================= */

.soul-section__text,
.soul-section__lead,
.soul-section__description,
.soul-niches__text,
.soul-offers__text,
.soul-includes__text,
.soul-contact__text {
    font-size: var(--font-lead-size);
    font-weight: var(--font-lead-weight);
    line-height: var(--font-lead-line);
    letter-spacing: normal;
}

/* =========================================================
   CARDS
   ========================================================= */

.soul-card h3,
.soul-offer-card h3,
.soul-case-card h3,
.soul-price-card h3 {
    font-size: var(--font-h3-size);
    font-weight: var(--font-h3-weight);
    line-height: var(--font-h3-line);
    letter-spacing: var(--font-h3-letter);
}

.soul-card p,
.soul-offer-card p,
.soul-case-card p,
.soul-price-card p {
    font-size: var(--font-body-size);
    font-weight: var(--font-body-weight);
    line-height: var(--font-body-line);
    letter-spacing: normal;
}

/* Карточки “Что входит / Дополнительные опции” */
.soul-include-card h3,
.soul-includes-card h3,
.soul-feature-card h3 {
    font-size: var(--font-h3-lg-size);
    font-weight: var(--font-h3-lg-weight);
    line-height: var(--font-h3-lg-line);
    letter-spacing: var(--font-h3-lg-letter);
}

/* Карточки процесса */
.soul-process-card h3,
.soul-step-card h3 {
    font-size: var(--font-h3-sm-size);
    font-weight: var(--font-h3-sm-weight);
    line-height: var(--font-h3-sm-line);
    letter-spacing: var(--font-h3-sm-letter);
}

.soul-process-card p,
.soul-step-card p {
    font-size: var(--font-small-size);
    font-weight: var(--font-small-weight);
    line-height: var(--font-small-line);
    letter-spacing: var(--font-small-letter);
}

/* =========================================================
   HEADER / NAV
   ========================================================= */

.soul-header,
.soul-header a,
.soul-header button,
.soul-nav a,
.soul-nav button {
    font-family: var(--font-main) !important;
}

/* Логотип SOULULAB оставляем читаемым */
.soul-header__brand,
.soul-logo-text {
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    letter-spacing: -0.2px !important;
}

/* Меню шапки делаем легче */
.soul-nav a,
.soul-header__nav a,
.soul-header a {
    font-size: var(--font-nav-size) !important;
    font-weight: var(--font-nav-weight) !important;
    line-height: var(--font-nav-line) !important;
    letter-spacing: normal !important;
}

/* Кнопка в шапке — не 800, а мягче */
.soul-header .soul-btn,
.soul-header__cta,
.soul-header a[href*="consult"],
.soul-header a[href*="contact"] {
    font-size: var(--font-btn-size) !important;
    font-weight: var(--font-btn-strong-weight) !important;
    line-height: var(--font-btn-line) !important;
    letter-spacing: normal !important;
}

/* =========================================================
   BUTTONS
   ========================================================= */

button,
.soul-btn,
.soul-button,
a.soul-btn,
a.soul-button {
    font-family: var(--font-main);
    font-size: var(--font-btn-size);
    font-weight: var(--font-btn-weight);
    line-height: var(--font-btn-line);
    letter-spacing: normal;
}

.soul-btn--primary,
.soul-button--primary,
.soul-form button[type="submit"] {
    font-weight: var(--font-btn-strong-weight);
}

/* =========================================================
   FILTER / NICHE BUTTONS
   ========================================================= */

.soul-niche-btn,
.soul-tab,
.soul-filter-btn {
    font-family: var(--font-main);
    font-size: var(--font-btn-size);
    font-weight: var(--font-btn-weight);
    line-height: var(--font-btn-line);
    letter-spacing: normal;
}

/* =========================================================
   FAQ
   ========================================================= */

.soul-faq button,
.soul-faq__question,
.soul-accordion__button {
    font-family: var(--font-main);
    font-size: var(--font-faq-size);
    font-weight: var(--font-faq-weight);
    line-height: var(--font-faq-line);
    letter-spacing: normal;
}

/* =========================================================
   LABELS / CHIPS
   ========================================================= */

.soul-chip,
.soul-tag,
.soul-section__eyebrow,
.soul-label,
.soul-pill {
    font-family: var(--font-main);
    font-size: 14px;
    font-weight: 600;
    line-height: 16.8px;
    letter-spacing: normal;
}

/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 1040px) {
    :root {
        --font-h1-size: 54px;
        --font-h1-line: 53px;
        --font-h1-letter: -1.9px;

        --font-h2-size: 40px;
        --font-h2-line: 43px;
        --font-h2-letter: -1px;
    }
}

@media (max-width: 720px) {
    :root {
        --font-h1-size: 42px;
        --font-h1-line: 41px;
        --font-h1-letter: -1.4px;

        --font-h2-size: 34px;
        --font-h2-line: 37px;
        --font-h2-letter: -0.8px;

        --font-h3-size: 22px;
        --font-h3-line: 25.5px;

        --font-hero-text-size: 17px;
        --font-hero-text-line: 27px;

        --font-lead-size: 16px;
        --font-lead-line: 25px;
    }
}

@media (max-width: 480px) {
    :root {
        --font-h1-size: 36px;
        --font-h1-line: 35px;
        --font-h1-letter: -1.1px;

        --font-h2-size: 30px;
        --font-h2-line: 33px;
        --font-h2-letter: -0.7px;
    }
}