.ft-home {
    --ft-bg: #f6f8fb;
    --ft-surface: #ffffff;
    --ft-surface-alt: #eef3fb;
    --ft-border: rgba(24, 19, 62, 0.12);
    --ft-text: #18133e;
    --ft-text-soft: #5b6280;
    --ft-accent: #0056a7;
    --ft-accent-dark: #003a71;
    --ft-shadow: 0 24px 60px rgba(24, 19, 62, 0.12);
    --ft-radius: 28px;
    background: linear-gradient(180deg, #f3f7fd 0%, #ffffff 18%, #f6f8fb 100%);
    color: var(--ft-text);
    overflow: hidden;
}

body.ft-homepage .menu-shadow,
body.ft-homepage .open-menu {
    display: none !important;
}

@media (min-width: 761px) {
    body.ft-homepage header .static-board,
    body.ft-homepage header .fix-board {
        display: none;
    }
}

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

.ft-home__container {
    width: min(90vw, 1720px);
    margin: 0 auto;
}

.ft-home__section {
    padding: 48px 0;
}

.ft-home__section--metrics,
.ft-home__section--trust,
.ft-home__section--contacts,
.ft-home__section--final {
    padding-top: 32px;
}

.ft-home__hero {
    position: relative;
    padding: 34px 0 64px;
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    min-height: 680px;
}

.ft-home__overlay {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(120deg, rgba(24, 19, 62, 0.92) 0%, rgba(24, 19, 62, 0.7) 45%, rgba(0, 86, 167, 0.4) 100%),
        radial-gradient(circle at top right, rgba(255, 255, 255, 0.28), transparent 36%);
}

.ft-home__hero-shell {
    position: relative;
    z-index: 1;
    padding-top: 42px;
}

.ft-home__hero-topbar {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 24px;
    align-items: center;
    margin-bottom: 56px;
}

.ft-home__hero-logo,
.ft-home__hero-logo:hover {
    color: #ffffff;
    text-decoration: none;
}

.ft-home__hero-logo img,
.ft-home__hero-logo svg {
    max-width: 220px;
    height: auto;
}

.ft-home__hero-nav,
.ft-home__hero-admin {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 18px 26px;
}

.ft-home__hero-nav {
    justify-content: center;
}

.ft-home__hero-nav a,
.ft-home__hero-admin a {
    color: #ffffff;
    text-decoration: none;
    font-weight: 700;
    line-height: 1.2;
}

.ft-home__hero-admin {
    margin-bottom: 22px;
    gap: 10px 18px;
}

.ft-home__hero-admin a {
    padding: 8px 14px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.14);
    font-size: 13px;
}

.ft-home__hero-contact {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 14px;
}

.ft-home__hero-socials .social-list,
.ft-home__hero-socials .social-items,
.ft-home__hero-socials ul,
.ft-home__hero-socials .soc-wrap {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ft-home__hero-socials a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.14);
    color: #ffffff;
    text-decoration: none;
}

.ft-home__hero-phone {
    color: #ffffff;
    text-decoration: none;
    font-size: 18px;
    font-weight: 800;
}

.ft-home__hero-copy,
.ft-home__city,
.ft-home__metric,
.ft-home__feature-card,
.ft-home__brand-card,
.ft-home__cta-band,
.ft-home__review-card,
.ft-home__trust-card,
.ft-home__faq-item,
.ft-home__contact-card,
.ft-home__final-card {
    border-radius: var(--ft-radius);
    box-shadow: var(--ft-shadow);
}

.ft-home__hero-copy {
    max-width: 980px;
    padding: 0;
    color: #ffffff;
    box-shadow: none;
    border-radius: 0;
}

.ft-home__eyebrow {
    margin: 0 0 12px;
    font-size: 12px;
    line-height: 1.2;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: #6b7bd1;
    font-weight: 700;
}

.ft-home__hero-copy .ft-home__eyebrow {
    color: #9dc6ff;
}

.ft-home__title,
.ft-home__section-title,
.ft-home__final-card h2 {
    margin: 0;
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1;
    color: inherit;
}

.ft-home__title {
    font-size: clamp(38px, 6vw, 66px);
    margin-bottom: 18px;
}

.ft-home__subtitle {
    margin: 0 0 22px;
    font-size: 22px;
    font-weight: 700;
    color: #ffffff;
}

.ft-home__checklist {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 10px;
}

.ft-home__checklist li {
    position: relative;
    padding-left: 20px;
    line-height: 1.45;
    color: rgba(255, 255, 255, 0.92);
}

.ft-home__checklist li::before {
    content: "";
    position: absolute;
    top: 0.58em;
    left: 0;
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: #ffd45f;
}

.ft-home__hero-actions,
.ft-home__contact-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 28px;
}

.ft-home__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 54px;
    padding: 14px 22px;
    border: 0;
    border-radius: 18px;
    text-decoration: none;
    font-weight: 700;
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.ft-home__button:hover {
    transform: translateY(-2px);
}

.ft-home__button--primary {
    background: linear-gradient(135deg, var(--ft-accent) 0%, #0b79df 100%);
    color: #ffffff;
    box-shadow: 0 18px 35px rgba(0, 86, 167, 0.28);
}

.ft-home__button--ghost {
    background: rgba(255, 255, 255, 0.14);
    color: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.25);
}

.ft-home__contact-actions .ft-home__button--ghost {
    background: #edf5ff;
    color: var(--ft-accent-dark);
    border: 1px solid rgba(0, 86, 167, 0.14);
}

.ft-home__button--light {
    background: #ffffff;
    color: var(--ft-accent-dark);
}

.ft-home__button--promo {
    background: #eb3b72;
    color: #ffffff;
    min-height: 42px;
    padding: 12px 18px;
    border-radius: 14px;
}

.ft-home__promo-card {
    padding: 28px;
    background: #ffffff;
    color: var(--ft-text);
}

.ft-home__promo-inline {
    margin-top: 26px;
    max-width: 960px;
}

.ft-home__promo-inline-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px;
}

.ft-home__promo-label,
.ft-home__metric-label,
.ft-home__cta-text,
.ft-home__contact-item p,
.ft-home__faq-answer p,
.ft-home__final-card p,
.ft-home__feature-card p,
.ft-home__brand-card p {
    margin: 0;
    color: var(--ft-text-soft);
    line-height: 1.55;
}

.ft-home__promo-label {
    font-size: clamp(20px, 2.4vw, 28px);
    margin-bottom: 14px;
    color: #ffffff;
    font-weight: 800;
}

.ft-home__promo-code {
    margin: 0;
    padding: 10px 14px;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.9);
    font-size: clamp(26px, 4vw, 38px);
    font-weight: 800;
    letter-spacing: -0.04em;
    color: #eb3b72;
}

.ft-home__cities {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.ft-home__city {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 84px;
    padding: 18px 20px;
    background: var(--ft-surface);
    color: var(--ft-text);
    text-decoration: none;
    font-weight: 700;
}

.ft-home__city:hover {
    transform: translateY(-3px);
}

.ft-home__city-pin {
    width: 14px;
    height: 14px;
    border-radius: 999px;
    background: var(--ft-accent);
    box-shadow: 0 0 0 8px rgba(0, 86, 167, 0.12);
    flex: 0 0 auto;
}

.ft-home__metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.ft-home__metric {
    padding: 26px 28px;
    background: linear-gradient(180deg, #ffffff 0%, #f3f7fd 100%);
    border: 1px solid var(--ft-border);
}

.ft-home__metric-value {
    margin-bottom: 10px;
    font-size: clamp(34px, 5vw, 56px);
    line-height: 1;
    font-weight: 800;
    color: var(--ft-accent-dark);
}

.ft-home__section-head {
    margin-bottom: 24px;
}

.ft-home__section-head--inline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.ft-home__section-title {
    font-size: clamp(30px, 4vw, 48px);
    color: var(--ft-text);
}

.ft-home__feature-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.ft-home__feature-card,
.ft-home__brand-card,
.ft-home__contact-card {
    padding: 26px;
    background: var(--ft-surface);
    border: 1px solid var(--ft-border);
}

.ft-home__feature-card h3,
.ft-home__cta-title {
    margin: 0 0 12px;
    font-size: 22px;
    line-height: 1.18;
    font-weight: 800;
    color: var(--ft-text);
}

.ft-home__section--brand {
    padding-top: 18px;
}

.ft-home__brand-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(280px, 0.7fr);
    gap: 18px;
    align-items: stretch;
}

.ft-home__brand-card {
    display: flex;
    align-items: center;
    background: linear-gradient(135deg, #18133e 0%, #004a90 100%);
}

.ft-home__brand-card p {
    color: #ffffff;
    font-size: 22px;
    font-weight: 700;
}

.ft-home__cta-band,
.ft-home__final-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 22px;
    align-items: center;
    padding: 26px 28px;
    background: linear-gradient(135deg, #ffffff 0%, #edf5ff 100%);
    border: 1px solid var(--ft-border);
}

.ft-home__cta-text {
    font-size: 18px;
}

.ft-home__cta-text--accent {
    color: var(--ft-accent-dark);
    font-weight: 800;
}

.ft-home__socials {
    min-width: 0;
}

.ft-home__socials .social-list,
.ft-home__socials .social-items,
.ft-home__socials ul,
.ft-home__socials .soc-wrap {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ft-home__socials a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    padding: 10px 14px;
    border-radius: 14px;
    background: #ffffff;
    color: var(--ft-accent-dark);
    text-decoration: none;
    border: 1px solid rgba(0, 86, 167, 0.12);
}

.ft-home__rail-nav {
    display: flex;
    gap: 10px;
}

.ft-home__rail-button {
    width: 46px;
    height: 46px;
    border: 0;
    border-radius: 999px;
    background: #ffffff;
    color: var(--ft-accent-dark);
    box-shadow: 0 10px 24px rgba(24, 19, 62, 0.12);
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
}

.ft-home__reviews-rail {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(300px, 36%);
    gap: 16px;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    padding-bottom: 8px;
    scrollbar-width: thin;
}

.ft-home__review-card,
.ft-home__trust-card {
    margin: 0;
    overflow: hidden;
    background: #ffffff;
}

.ft-home__review-card {
    scroll-snap-align: start;
}

.ft-home__review-card img,
.ft-home__trust-card img {
    display: block;
    width: 100%;
    height: auto;
}

.ft-home__trust-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.ft-home__faq {
    display: grid;
    gap: 14px;
}

.ft-home__faq-item {
    padding: 0;
    background: #ffffff;
    border: 1px solid var(--ft-border);
    overflow: hidden;
}

.ft-home__faq-item summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 22px 24px;
    cursor: pointer;
    list-style: none;
    font-size: 19px;
    line-height: 1.35;
    font-weight: 700;
    color: var(--ft-text);
}

.ft-home__faq-item summary::-webkit-details-marker {
    display: none;
}

.ft-home__faq-item summary::after {
    content: "+";
    flex: 0 0 auto;
    font-size: 28px;
    font-weight: 400;
    color: var(--ft-accent-dark);
}

.ft-home__faq-item[open] summary::after {
    content: "−";
}

.ft-home__faq-answer {
    padding: 0 24px 24px;
}

.ft-home__contacts-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.ft-home__contact-list {
    display: grid;
    gap: 14px;
    margin-bottom: 14px;
}

.ft-home__contact-item a,
.ft-home__agreement {
    color: var(--ft-accent-dark);
    font-weight: 700;
    text-decoration: none;
}

.ft-home__agreements {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 18px 0;
}

.ft-home__agreement {
    display: inline-flex;
    padding: 10px 14px;
    border-radius: 14px;
    background: #edf5ff;
}

.ft-home__richtext {
    color: var(--ft-text);
    line-height: 1.65;
}

.ft-home__richtext--muted {
    color: var(--ft-text-soft);
}

.ft-home__richtext p:last-child {
    margin-bottom: 0;
}

.ft-home__final-card {
    grid-template-columns: minmax(0, 1fr) auto;
    background: linear-gradient(135deg, #18133e 0%, #004a90 100%);
}

.ft-home__final-card h2,
.ft-home__final-card p {
    color: #ffffff;
}

@media (max-width: 1100px) {
    .ft-home__cities,
    .ft-home__feature-grid,
    .ft-home__trust-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ft-home__brand-grid,
    .ft-home__contacts-grid,
    .ft-home__cta-band,
    .ft-home__final-card {
        grid-template-columns: 1fr;
    }

    .ft-home__hero-topbar {
        grid-template-columns: 1fr;
        justify-items: start;
        gap: 18px;
        margin-bottom: 34px;
    }

    .ft-home__hero-nav {
        justify-content: flex-start;
    }

    .ft-home__hero-contact {
        justify-content: flex-start;
    }

    .ft-home__cta-band,
    .ft-home__final-card {
        align-items: start;
    }

    .ft-home__reviews-rail {
        grid-auto-columns: minmax(320px, 62%);
    }
}

@media (max-width: 760px) {
    .ft-home__container {
        width: calc(100% - 24px);
    }

    .ft-home__hero {
        min-height: auto;
        padding-top: 18px;
    }

    .ft-home__hero-copy,
    .ft-home__promo-card,
    .ft-home__feature-card,
    .ft-home__contact-card,
    .ft-home__cta-band,
    .ft-home__metric,
    .ft-home__brand-card,
    .ft-home__final-card {
        padding: 22px;
    }

    .ft-home__hero-shell {
        padding-top: 18px;
    }

    .ft-home__hero-topbar {
        margin-bottom: 24px;
    }

    .ft-home__hero-logo img,
    .ft-home__hero-logo svg {
        max-width: 170px;
    }

    .ft-home__hero-nav,
    .ft-home__hero-admin {
        gap: 12px 16px;
    }

    .ft-home__hero-phone {
        font-size: 16px;
    }

    .ft-home__cities,
    .ft-home__metrics,
    .ft-home__feature-grid,
    .ft-home__trust-grid {
        grid-template-columns: 1fr;
    }

    .ft-home__section {
        padding: 32px 0;
    }

    .ft-home__promo-inline-row {
        align-items: stretch;
    }

    .ft-home__section-head--inline {
        align-items: flex-start;
        flex-direction: column;
    }

    .ft-home__reviews-rail {
        grid-auto-columns: 88%;
    }

    .ft-home__faq-item summary {
        padding: 18px 18px 18px 20px;
        font-size: 17px;
    }

    .ft-home__faq-answer {
        padding: 0 20px 20px;
    }
}

.ft-home__cabinet-menu { position: relative; }
.ft-home__cabinet-menu summary { color:#fff; cursor:pointer; font-weight:700; line-height:1.2; list-style:none; }
.ft-home__cabinet-menu summary::-webkit-details-marker { display:none; }
.ft-home__cabinet-menu summary::after { content:"⌄"; display:inline-block; margin-left:6px; transition:transform .15s ease; }
.ft-home__cabinet-menu[open] summary::after { transform:rotate(180deg); }
.ft-home__cabinet-dropdown { position:absolute; top:calc(100% + 10px); right:0; z-index:20; display:grid; min-width:220px; padding:8px; border-radius:12px; background:#fff; box-shadow:0 12px 28px rgba(5,17,35,.25); }
.ft-home__hero-nav .ft-home__cabinet-dropdown a { padding:10px 12px; border-radius:8px; color:#173459; font-size:14px; white-space:nowrap; }
.ft-home__hero-nav .ft-home__cabinet-dropdown a:hover { background:#edf4ff; }
@media (max-width:1100px) { .ft-home__cabinet-dropdown { right:auto; left:0; } }

/* Role-aware public navigation. */
.ft-role-menu__cabinet{position:relative}.ft-role-menu__cabinet details{position:relative}.ft-role-menu__cabinet summary{cursor:pointer;list-style:none}.ft-role-menu__cabinet summary::-webkit-details-marker{display:none}.ft-role-menu__cabinet summary::after{content:"⌄";margin-left:5px}.ft-role-menu__cabinet[open] summary::after{content:"⌃"}.ft-role-menu__cabinet .child{display:none}.ft-role-menu__cabinet[open] .child{display:block}
