:root {
    --dl-navy: #062b55;
    --dl-navy-2: #0b3d73;
    --dl-blue: #0b63d8;
    --dl-soft-blue: #eef7ff;
    --dl-text: #0d2850;
    --dl-muted: #63758b;
    --dl-border: rgba(18, 75, 140, .14);
    --dl-green: #19b96f;
    --dl-white: #ffffff;
    --dl-shadow: 0 20px 50px rgba(6, 43, 85, .20);
    --dl-shadow-soft: 0 12px 30px rgba(6, 43, 85, .12);
    --header-h: 64px;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 26px); }


/* Bootstrap-light fallback: keeps the agreed Bootstrap class names working even offline. */
.container {
    width: 100%;
    max-width: 1128px;
    margin-right: auto;
    margin-left: auto;
    padding-right: 24px;
    padding-left: 24px;
}

.navbar {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
}

.d-flex { display: flex !important; }
.align-items-center { align-items: center !important; }
.gap-3 { gap: 1rem !important; }

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    padding: var(--bs-btn-padding-y, .5rem) var(--bs-btn-padding-x, 1rem);
    border: var(--bs-btn-border-width, 1px) solid var(--bs-btn-border-color, transparent);
    border-radius: var(--bs-btn-border-radius, .375rem);
    color: var(--bs-btn-color, inherit);
    background: var(--bs-btn-bg, transparent);
    font-size: var(--bs-btn-font-size, 1rem);
    font-weight: var(--bs-btn-font-weight, 600);
    line-height: 1.25;
    text-align: center;
    cursor: pointer;
    transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out, transform .15s ease-in-out;
}

.btn:hover,
.btn:focus {
    color: var(--bs-btn-hover-color, var(--bs-btn-color, inherit));
    background: var(--bs-btn-hover-bg, var(--bs-btn-bg, transparent));
    border-color: var(--bs-btn-hover-border-color, var(--bs-btn-border-color, transparent));
    transform: translateY(-1px);
}

.btn-outline-light {
    --bs-btn-color: #fff;
    --bs-btn-border-color: rgba(255,255,255,.85);
    --bs-btn-hover-color: #05264d;
    --bs-btn-hover-bg: #fff;
    --bs-btn-hover-border-color: #fff;
}

body {
    margin: 0;
    font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: var(--dl-text);
    background: #f6fbff;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

a { text-decoration: none; }

.site-shell {
    min-height: 100vh;
    background: linear-gradient(180deg, #f8fcff 0%, #eff7ff 100%);
}

main > section:not(#hero) {
    content-visibility: auto;
    contain-intrinsic-size: 900px;
}

/* HEADER */
#site-header {
    position: sticky;
    top: 0;
    z-index: 50;
    min-height: var(--header-h);
    background: linear-gradient(90deg, #05264d 0%, #083360 54%, #05264d 100%);
    color: #fff;
    box-shadow: 0 10px 28px rgba(2, 28, 58, .18);
}

#site-header .navbar {
    min-height: var(--header-h);
    padding-block: 0;
}

@media (min-width: 993px) {
    #site-header .navbar .container {
        display: grid !important;
        grid-template-columns: minmax(210px, 300px) minmax(0, 1fr) minmax(260px, 300px);
        gap: 20px;
    }
}

.navbar-brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-width: 210px;
    color: #fff;
    font-weight: 800;
    letter-spacing: .02em;
    text-transform: uppercase;
    font-size: 15px;
}

.navbar-brand:hover,
.navbar-brand:focus { color: #fff; }

.brand-mark {
    width: 58px;
    height: 42px;
    flex: 0 0 auto;
}

.brand-logo-img {
    display: block;
    width: 170px;
    height: auto;
    flex: 0 0 auto;
}

.navbar-brand .brand-mark,
.navbar-brand > span {
    display: none;
}

.header-tagline {
    flex: 1 1 auto;
    text-align: center;
    color: rgba(255,255,255,.82);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    white-space: nowrap;
}

.header-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 16px;
    margin-left: auto;
}

.header-phone {
    color: #fff;
    font-weight: 800;
    font-size: 16px;
    white-space: nowrap;
}

.btn-header-consultation {
    --bs-btn-padding-x: 18px;
    --bs-btn-padding-y: 8px;
    --bs-btn-border-radius: 8px;
    --bs-btn-font-size: 12px;
    --bs-btn-font-weight: 800;
    --bs-btn-color: #fff;
    --bs-btn-border-color: rgba(255,255,255,.85);
    --bs-btn-hover-color: #05264d;
    --bs-btn-hover-bg: #fff;
    --bs-btn-hover-border-color: #fff;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.icon-button {
    display: inline-grid;
    place-items: center;
    width: 32px;
    height: 32px;
    color: #fff;
    border: 1px solid rgba(255,255,255,.42);
    border-radius: 50%;
    background: rgba(255,255,255,.04);
    transition: .18s ease;
}

.icon-button:hover,
.icon-button:focus {
    color: #fff;
    background: rgba(255,255,255,.14);
    border-color: rgba(255,255,255,.7);
}

.menu-button {
    display: inline-grid;
    place-items: center;
    width: 34px;
    height: 34px;
    padding: 0;
    border: 0;
    color: #fff;
    background: transparent;
}

.menu-button span,
.menu-button::before,
.menu-button::after {
    content: "";
    display: block;
    width: 22px;
    height: 2px;
    border-radius: 999px;
    background: rgba(255,255,255,.92);
}

.menu-button span { margin-block: 5px; }


.mobile-menu-panel {
    position: fixed;
    left: 0;
    right: 0;
    top: var(--header-h);
    z-index: 49;
    display: none;
    max-height: calc(100vh - var(--header-h));
    overflow-y: auto;
    padding: 18px 0 22px;
    background: rgba(5, 38, 77, .96);
    box-shadow: 0 22px 45px rgba(2, 28, 58, .28);
    backdrop-filter: blur(10px);
}

.mobile-menu-panel.is-open {
    display: block;
}

.mobile-menu-card {
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 20px;
    background: linear-gradient(180deg, rgba(255,255,255,.08) 0%, rgba(255,255,255,.04) 100%);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
    overflow: hidden;
}

.mobile-menu-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 18px;
    color: #fff;
    border-bottom: 1px solid rgba(255,255,255,.10);
    font-size: 14px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.mobile-menu-close {
    display: inline-grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 50%;
    color: #fff;
    background: rgba(255,255,255,.08);
    cursor: pointer;
    font-size: 24px;
    line-height: 1;
}

.mobile-menu-nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    padding: 8px 0;
}

.mobile-menu-panel .mobile-link {
    display: flex;
    align-items: center;
    min-height: 46px;
    padding: 12px 18px;
    color: rgba(255,255,255,.86);
    border-top: 1px solid rgba(255,255,255,.07);
    font-weight: 750;
    font-size: 14px;
    line-height: 1.25;
    transition: background .16s ease, color .16s ease, transform .16s ease;
}

.mobile-menu-panel .mobile-link::before {
    content: "›";
    margin-right: 9px;
    color: #77b9ff;
    font-weight: 900;
}

.mobile-menu-panel .mobile-link:hover,
.mobile-menu-panel .mobile-link:focus {
    color: #fff;
    background: rgba(255,255,255,.08);
    transform: translateX(2px);
}

.mobile-menu-actions {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
    padding: 16px 18px 10px;
    border-top: 1px solid rgba(255,255,255,.10);
}

.btn-mobile-menu {
    --bs-btn-padding-x: 16px;
    --bs-btn-padding-y: 12px;
    --bs-btn-border-radius: 11px;
    --bs-btn-bg: #0b70e1;
    --bs-btn-border-color: #0b70e1;
    --bs-btn-hover-bg: #ffffff;
    --bs-btn-hover-border-color: #ffffff;
    --bs-btn-color: #ffffff;
    --bs-btn-hover-color: #062b55;
    --bs-btn-font-size: 13px;
    --bs-btn-font-weight: 900;
}

.btn-mobile-menu-light {
    --bs-btn-bg: rgba(255,255,255,.08);
    --bs-btn-border-color: rgba(255,255,255,.32);
    --bs-btn-hover-bg: #ffffff;
    --bs-btn-hover-border-color: #ffffff;
    --bs-btn-color: #ffffff;
    --bs-btn-hover-color: #062b55;
}

.mobile-menu-phone {
    display: block;
    padding: 10px 18px 18px;
    color: #fff;
    font-size: 18px;
    line-height: 1;
    font-weight: 900;
}

.mobile-sticky-cta {
    position: fixed;
    left: 12px;
    right: 12px;
    bottom: 12px;
    z-index: 48;
    display: none;
    padding: 10px 14px;
    border: 1px solid rgba(255,255,255,.34);
    border-radius: 14px;
    color: #fff;
    background: linear-gradient(135deg, #0b70e1 0%, #06316c 100%);
    box-shadow: 0 16px 36px rgba(6,43,85,.28);
    font-size: 14px;
    line-height: 1.15;
    font-weight: 900;
    text-align: center;
}

.mobile-sticky-cta.is-visible {
    display: flex;
    align-items: center;
    justify-content: center;
}

.mobile-sticky-cta:hover,
.mobile-sticky-cta:focus {
    color: #fff;
    transform: translateY(-1px);
}

/* HERO */
#hero {
    position: relative;
    isolation: isolate;
    min-height: 505px;
    overflow: hidden;
    background-color: #dfeaf5;
}

.hero-bg {
    position: absolute;
    inset: 0;
    z-index: -3;
    background-image: url("../generated/hero-photo-cropped.webp");
    background-size: cover;
    background-position: center center;
}

#hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -2;
    background:
            linear-gradient(90deg, rgba(255,255,255,.86) 0%, rgba(255,255,255,.60) 35%, rgba(255,255,255,.08) 64%, rgba(4,22,45,.18) 100%);
}

#hero::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    width: 470px;
    height: 220px;
    z-index: -1;
    opacity: 0;
    background-image: radial-gradient(rgba(255,255,255,.65) 1px, transparent 1px);
    background-size: 12px 12px;
    mask-image: linear-gradient(135deg, transparent 0%, #000 48%, #000 100%);
}

.hero-inner {
    position: relative;
    min-height: 505px;
    padding-top: 34px;
    padding-bottom: 38px;
}

.hero-card {
    width: min(100%, 552px);
    padding: 30px 34px 26px;
    border: 1px solid rgba(255,255,255,.82);
    border-radius: 18px;
    background: rgba(255,255,255,.91);
    box-shadow: var(--dl-shadow);
    backdrop-filter: blur(8px);
}

.hero-title {
    margin: 0 0 10px;
    max-width: 450px;
    color: #07315f;
    font-size: clamp(30px, 3.15vw, 42px);
    line-height: 1.02;
    font-weight: 900;
    letter-spacing: -.045em;
}

.hero-subtitle {
    margin: 0 0 16px;
    max-width: 455px;
    color: #43566d;
    font-size: 16px;
    line-height: 1.35;
    font-weight: 500;
}

.hero-checklist {
    display: grid;
    gap: 8px;
    margin: 0 0 18px;
    padding: 0;
    list-style: none;
    color: #253f5f;
    font-size: 13px;
    line-height: 1.25;
    font-weight: 650;
}

.hero-checklist li {
    display: grid;
    grid-template-columns: 20px 1fr;
    gap: 8px;
    align-items: start;
}

.check-dot {
    display: inline-grid;
    place-items: center;
    width: 16px;
    height: 16px;
    margin-top: 1px;
    border-radius: 50%;
    color: #fff;
    background: var(--dl-green);
    box-shadow: 0 4px 10px rgba(25, 185, 111, .24);
}

.check-dot svg { width: 11px; height: 11px; }

.hero-benefits {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin: 0 0 18px;
}

.benefit-card {
    min-height: 78px;
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 8px;
    align-items: center;
    padding: 11px 10px;
    border: 1px solid var(--dl-border);
    border-radius: 12px;
    background: rgba(255,255,255,.94);
    box-shadow: 0 7px 18px rgba(6, 43, 85, .08);
}

.benefit-icon {
    display: inline-grid;
    place-items: center;
    width: 28px;
    height: 32px;
    color: #116add;
    border-radius: 9px;
    background: #eff7ff;
    border: 1px solid rgba(17,106,221,.12);
}

.benefit-card span {
    color: #1c416b;
    font-size: 11px;
    line-height: 1.13;
    font-weight: 800;
}

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

.btn-dl-primary {
    --bs-btn-padding-x: 17px;
    --bs-btn-padding-y: 10px;
    --bs-btn-border-radius: 9px;
    --bs-btn-bg: #062b64;
    --bs-btn-border-color: #062b64;
    --bs-btn-hover-bg: #0b4b94;
    --bs-btn-hover-border-color: #0b4b94;
    --bs-btn-active-bg: #052652;
    --bs-btn-active-border-color: #052652;
    --bs-btn-color: #fff;
    --bs-btn-font-size: 12px;
    --bs-btn-font-weight: 850;
    line-height: 1.1;
    box-shadow: 0 9px 18px rgba(6, 43, 100, .22);
}

.hero-info-card {
    position: absolute;
    right: 128px;
    bottom: 105px;
    width: 310px;
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 14px;
    align-items: center;
    padding: 20px 22px;
    border: 1px solid rgba(255,255,255,.75);
    border-radius: 18px;
    background: rgba(255,255,255,.94);
    box-shadow: 0 18px 42px rgba(6, 43, 85, .22);
    backdrop-filter: blur(8px);
}

.hero-info-icon {
    display: inline-grid;
    place-items: center;
    width: 50px;
    height: 50px;
    border-radius: 16px;
    color: #0b63d8;
    background: #eef7ff;
    border: 1px solid rgba(11,99,216,.13);
}

.hero-info-card p {
    margin: 0;
    color: #274462;
    font-size: 13px;
    line-height: 1.35;
    font-weight: 650;
}


/* SECTION 02: AUDIENCE */
#section-02 {
    position: relative;
    overflow: hidden;
    padding: 34px 0 54px;
    background:
            radial-gradient(circle at 12% 18%, rgba(60, 148, 242, .12), transparent 210px),
            radial-gradient(circle at 88% 12%, rgba(60, 148, 242, .12), transparent 210px),
            linear-gradient(180deg, #f5fbff 0%, #edf7ff 100%);
    border-top: 1px solid rgba(14, 98, 186, .08);
}

#section-02::before,
#section-02::after {
    content: "";
    position: absolute;
    z-index: 0;
    opacity: .42;
    pointer-events: none;
    background-repeat: no-repeat;
    background-size: contain;
}

#section-02::before {
    left: 7.5%;
    top: 38px;
    width: 155px;
    height: 74px;
    background-image: url("data:image/svg+xml,%3Csvg width='178' height='86' viewBox='0 0 178 86' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 22L54 36L38 45L32 66L12 22Z' stroke='%230B63D8' stroke-width='2' stroke-linejoin='round'/%3E%3Cpath d='M38 45L54 36' stroke='%230B63D8' stroke-width='2'/%3E%3Cpath d='M65 47C87 9 116 11 122 35C129 63 157 62 166 38' stroke='%230B63D8' stroke-width='2' stroke-linecap='round' stroke-dasharray='4 7'/%3E%3C/svg%3E");
}

#section-02::after {
    right: 8%;
    top: 40px;
    width: 122px;
    height: 82px;
    background-image: url("data:image/svg+xml,%3Csvg width='132' height='88' viewBox='0 0 132 88' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M28 22C42 17 53 22 64 31C75 22 87 17 104 22V64C88 58 76 62 64 72C52 62 40 58 28 64V22Z' stroke='%230B63D8' stroke-width='2' stroke-linejoin='round'/%3E%3Cpath d='M64 31V72' stroke='%230B63D8' stroke-width='2'/%3E%3Cpath d='M15 12L19 20L28 22L19 25L15 34L11 25L2 22L11 20L15 12Z' stroke='%230B63D8' stroke-width='1.6'/%3E%3C/svg%3E");
}

.audience-inner { position: relative; z-index: 1; }

.audience-board {
    position: relative;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
}

.section-eyebrow {
    margin: 0 0 6px;
    color: #3b80d7;
    font-size: 12px;
    line-height: 1;
    font-weight: 850;
    letter-spacing: .14em;
    text-align: center;
    text-transform: uppercase;
}

.section-title {
    margin: 0;
    color: #07315f;
    font-size: clamp(31px, 3.2vw, 43px);
    line-height: 1.04;
    font-weight: 900;
    letter-spacing: -.035em;
    text-align: center;
}

#section-02 .section-title {
    margin-bottom: 24px;
}

.section-subtitle {
    margin: 8px auto 26px;
    max-width: 690px;
    color: #687b91;
    font-size: 18px;
    line-height: 1.35;
    font-weight: 500;
    text-align: center;
}

.audience-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    max-width: 1048px;
    margin: 0 auto;
}

.audience-card {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    overflow: hidden;
    border: 1px solid rgba(37, 111, 197, .13);
    border-radius: 18px;
    background: rgba(255, 255, 255, .92);
    box-shadow: 0 12px 26px rgba(6, 43, 85, .08);
}

.audience-card-title {
    min-height: 48px;
    display: grid;
    place-items: center;
    padding: 11px 14px 7px;
    color: #134b92;
    font-size: 13px;
    line-height: 1.15;
    font-weight: 900;
    text-align: center;
}

.audience-card-image-wrap {
    margin: 0 14px;
    overflow: hidden;
    border-radius: 12px;
    background: #ffffff;
}

.audience-card img {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9.6;
    object-fit: cover;
    object-position: center center;
}

.audience-card-text {
    margin: 0;
    min-height: 54px;
    display: grid;
    place-items: center;
    padding: 9px 16px 15px;
    color: #617389;
    font-size: 13px;
    line-height: 1.22;
    font-weight: 600;
    text-align: center;
}



.audience-cta {
    width: min(100%, 770px);
    margin: 24px auto 0;
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 18px;
    align-items: center;
    padding: 18px 26px;
    border: 1px solid rgba(37,111,197,.12);
    border-radius: 18px;
    background: linear-gradient(90deg, rgba(237,247,255,.96), rgba(246,251,255,.96));
    box-shadow: 0 12px 28px rgba(6,43,85,.08);
}

.audience-cta-icon {
    display: inline-grid;
    place-items: center;
    width: 58px;
    height: 58px;
    border-radius: 18px;
    color: #0b63d8;
    background: #eaf4ff;
    border: 1px solid rgba(11,99,216,.12);
}

.audience-cta-text {
    margin: 0;
    color: #123f7a;
    font-size: 18px;
    line-height: 1.22;
    font-weight: 850;
    text-align: center;
}

.audience-cta-actions {
    display: flex;
    justify-content: center;
    margin-top: 14px;
}

.btn-dl-wide {
    min-width: 325px;
    --bs-btn-padding-y: 12px;
    --bs-btn-padding-x: 22px;
    --bs-btn-border-radius: 10px;
    --bs-btn-bg: #06316c;
    --bs-btn-border-color: #06316c;
    --bs-btn-hover-bg: #0b63d8;
    --bs-btn-hover-border-color: #0b63d8;
    --bs-btn-color: #fff;
    --bs-btn-font-size: 15px;
    --bs-btn-font-weight: 850;
    box-shadow: 0 11px 20px rgba(6, 49, 108, .20);
}

/* SECTION 03: ROUTES */
#section-03 {
    position: relative;
    overflow: hidden;
    padding: 50px 0 58px;
    background: #ffffff;
    border-top: 1px solid rgba(14, 98, 186, .08);
}

.routes-layout {
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(0, 1.55fr);
    gap: 34px;
    align-items: stretch;
    margin-bottom: 28px;
}

.routes-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 300px;
}

.routes-title {
    margin: 0 0 14px;
    color: #061d42;
    font-size: clamp(34px, 4vw, 54px);
    line-height: .98;
    font-weight: 920;
    letter-spacing: -.055em;
}

.routes-subtitle {
    margin: 0;
    max-width: 500px;
    color: #5f7085;
    font-size: 17px;
    line-height: 1.48;
    font-weight: 500;
}

.routes-quote {
    margin-top: 28px;
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 16px;
    align-items: center;
    max-width: 455px;
    padding: 20px 22px;
    border: 1px solid rgba(37,111,197,.11);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 15px 34px rgba(6,43,85,.08);
}

.quote-mark {
    color: #0873e6;
    font-size: 62px;
    line-height: .7;
    font-weight: 900;
}

.routes-quote p {
    margin: 0;
    color: #43536a;
    font-size: 15px;
    line-height: 1.35;
    font-weight: 700;
}

.route-cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
    align-items: stretch;
}

.route-card {
    position: relative;
    min-height: 342px;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 28px 22px 22px;
    border: 1px solid rgba(12,78,150,.10);
    border-radius: 10px;
    background: #ffffff;
    box-shadow: 0 12px 28px rgba(6,43,85,.06);
}

.route-card.is-recommended {
    border: 2px solid #0b70e1;
    box-shadow: 0 18px 40px rgba(11,99,216,.13);
}

.route-badge {
    position: absolute;
    left: -2px;
    top: -30px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 30px;
    padding: 0 18px;
    border-radius: 8px 8px 0 0;
    color: #fff;
    background: #0b70e1;
    font-size: 13px;
    font-weight: 850;
}

.route-card h3 {
    margin: 0 0 5px;
    color: #102d58;
    font-size: 19px;
    line-height: 1.1;
    font-weight: 900;
    text-align: center;
}

.route-period {
    margin: 0 0 16px;
    color: #1373e2;
    font-size: 17px;
    line-height: 1.1;
    font-weight: 800;
    text-align: center;
}

.route-chart {
    width: 118px;
    height: 118px;
    object-fit: contain;
    margin: 2px auto 18px;
}

.route-card p:last-child {
    margin: auto 0 0;
    color: #53687d;
    font-size: 13px;
    line-height: 1.45;
    font-weight: 550;
    text-align: left;
}

.routes-main-cta {
    display: flex;
    justify-content: center;
    margin: 14px 0 38px;
}

.format-panel {
    padding: 0;
    border: 0;
    border-radius: 22px;
    background: transparent;
    box-shadow: none;
}

.format-panel-head {
    display: grid;
    grid-template-columns: minmax(0, 1.04fr) minmax(330px, .78fr);
    gap: 42px;
    align-items: center;
    margin-bottom: 26px;
}

.format-eyebrow {
    margin: 0 0 7px;
    color: #7990a8;
    font-size: 13px;
    line-height: 1;
    font-weight: 800;
}

.format-title {
    margin: 0;
    color: #10284f;
    font-size: clamp(28px, 3.2vw, 38px);
    line-height: 1.05;
    font-weight: 920;
    letter-spacing: -.045em;
}

.format-note {
    margin: 0;
    color: #6a7c91;
    font-size: 14px;
    line-height: 1.42;
    font-weight: 550;
}

.format-content {
    display: grid;
    grid-template-columns: minmax(640px, 1.08fr) minmax(390px, .72fr);
    gap: 48px;
    align-items: end;
}

.format-art {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 18px;
    box-shadow: 0 18px 42px rgba(6,43,85,.07);
}

.comparison-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
    border: 1px solid rgba(37,111,197,.13);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 10px 24px rgba(6,43,85,.045);
}

.comparison-table th,
.comparison-table td {
    padding: 16px 18px;
    border-bottom: 1px solid rgba(37,111,197,.10);
    border-right: 1px solid rgba(37,111,197,.08);
    color: #28415d;
    font-size: 14px;
    font-weight: 750;
    text-align: center;
    vertical-align: middle;
}

.comparison-table th {
    color: #1b3150;
    background: #fbfdff;
    font-size: 13px;
    font-weight: 900;
}

.comparison-table td:first-child,
.comparison-table th:first-child {
    text-align: left;
    width: 24%;
}

.comparison-table tr:last-child td { border-bottom: 0; }
.comparison-table th:last-child,
.comparison-table td:last-child { border-right: 0; }

.format-name {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #1a3b66;
    font-weight: 850;
}

.format-name svg {
    width: 22px;
    height: 22px;
    color: #0b70e1;
    flex: 0 0 auto;
}

.rating-dots {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-width: 120px;
}

.rating-dots span {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    border: 1px solid rgba(11,112,225,.18);
    background: #eef5ff;
}

.rating-dots span.is-filled {
    background: #0b70e1;
    border-color: #0b70e1;
    box-shadow: 0 5px 11px rgba(11,112,225,.16);
}

.format-steps {
    position: relative;
    min-height: 232px;
    max-width: 500px;
    width: 100%;
    margin-left: auto;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: end;
    gap: 18px;
    padding: 28px 2px 0;
}

.format-steps::before {
    content: "";
    position: absolute;
    left: 20px;
    right: 18px;
    top: 40px;
    height: 86px;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 420 130' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 110 C95 105 82 62 151 72 C224 83 219 27 290 37 C352 45 350 15 414 18' fill='none' stroke='%230B70E1' stroke-width='4' stroke-linecap='round' stroke-dasharray='8 12'/%3E%3C/svg%3E");
    background-size: 100% 100%;
    background-repeat: no-repeat;
    opacity: .55;
}

.step-point {
    position: absolute;
    width: 18px;
    height: 18px;
    border: 4px solid #0b70e1;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 5px 14px rgba(11,112,225,.18);
}

.step-point.one { left: 15%; top: 84px; }
.step-point.two { left: 51%; top: 53px; }
.step-point.three { right: 8%; top: 32px; }

.format-step {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    text-align: center;
}

.format-step-label {
    width: 100%;
    max-width: 136px;
    margin: 0 auto 10px;
    color: #294765;
    font-size: 12.5px;
    line-height: 1.16;
    font-weight: 850;
    min-height: 42px;
    display: flex;
    align-items: flex-end;
    justify-content: center;
}

.format-step-box {
    width: 100%;
    display: grid;
    place-items: center;
    border-radius: 5px 5px 10px 10px;
    color: #1a477b;
    font-size: 15px;
    font-weight: 850;
    background: linear-gradient(180deg, #edf6ff 0%, #dbeeff 100%);
    box-shadow: inset 0 -18px 30px rgba(11,112,225,.06), 0 12px 22px rgba(6,43,85,.06);
}

.format-step:nth-of-type(1) .format-step-box { height: 52px; }
.format-step:nth-of-type(2) .format-step-box { height: 52px; }
.format-step:nth-of-type(3) .format-step-box { height: 52px; }


/* SECTION 04: PLATFORM */
#section-04 {
    position: relative;
    overflow: hidden;
    padding: 54px 0 62px;
    background:
            radial-gradient(circle at 14% 18%, rgba(11,112,225,.10), transparent 220px),
            radial-gradient(circle at 86% 68%, rgba(11,112,225,.09), transparent 240px),
            linear-gradient(180deg, #f4faff 0%, #ffffff 100%);
    border-top: 1px solid rgba(14, 98, 186, .08);
}

.platform-head {
    max-width: 860px;
    margin: 0 auto 30px;
    text-align: center;
}

.platform-eyebrow {
    margin: 0 0 8px;
    color: #7b91a9;
    font-size: 13px;
    line-height: 1;
    font-weight: 850;
}

.platform-title {
    margin: 0;
    color: #061d42;
    font-size: clamp(30px, 3.55vw, 48px);
    line-height: 1.03;
    font-weight: 920;
    letter-spacing: -.045em;
}

.platform-subtitle {
    margin: 12px auto 0;
    max-width: 710px;
    color: #62768d;
    font-size: 17px;
    line-height: 1.45;
    font-weight: 550;
}

.platform-layout {
    display: grid;
    grid-template-columns: minmax(250px, .78fr) minmax(420px, 1.45fr) minmax(250px, .78fr);
    gap: 22px;
    align-items: center;
}

.platform-points {
    display: grid;
    gap: 16px;
}

.platform-point {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 13px;
    align-items: start;
    min-height: 102px;
    padding: 17px 18px;
    border: 1px solid rgba(37,111,197,.13);
    border-radius: 16px;
    background: rgba(255,255,255,.93);
    box-shadow: 0 15px 34px rgba(6,43,85,.07);
}

.platform-point-icon {
    display: inline-grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border-radius: 12px;
    color: #0b70e1;
    background: #edf6ff;
    border: 1px solid rgba(11,112,225,.14);
    flex: 0 0 auto;
}

.platform-point h3 {
    margin: 0 0 5px;
    color: #17365e;
    font-size: 15px;
    line-height: 1.15;
    font-weight: 900;
}

.platform-point p {
    margin: 0;
    color: #66788b;
    font-size: 13px;
    line-height: 1.36;
    font-weight: 560;
}

.platform-visual {
    position: relative;
    display: grid;
    place-items: center;
    min-height: 435px;
    padding: 10px 0 0;
}

.platform-visual::before {
    content: "";
    position: absolute;
    left: 8%;
    right: 8%;
    bottom: 28px;
    height: 72px;
    border-radius: 999px;
    background: radial-gradient(ellipse at center, rgba(6,43,85,.18), transparent 68%);
    filter: blur(4px);
    z-index: 0;
}

.platform-device {
    position: relative;
    z-index: 1;
    display: block;
    width: min(100%, 690px);
    height: auto;
    filter: drop-shadow(0 18px 28px rgba(6,43,85,.12));
}

.platform-note {
    margin: 30px auto 0;
    max-width: 930px;
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 18px;
    align-items: center;
    padding: 18px 22px;
    border: 1px solid rgba(11,112,225,.14);
    border-radius: 18px;
    background: linear-gradient(90deg, #ffffff 0%, #eef7ff 100%);
    box-shadow: 0 15px 34px rgba(6,43,85,.065);
}

.platform-note-icon {
    display: inline-grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: 14px;
    color: #0b70e1;
    background: #fff;
    border: 1px solid rgba(11,112,225,.13);
}

.platform-note p {
    margin: 0;
    color: #324d6e;
    font-size: 15px;
    line-height: 1.38;
    font-weight: 700;
}

.btn-dl-note {
    --bs-btn-padding-x: 22px;
    --bs-btn-padding-y: 12px;
    --bs-btn-border-radius: 10px;
    --bs-btn-bg: #0b70e1;
    --bs-btn-border-color: #0b70e1;
    --bs-btn-hover-bg: #075fc4;
    --bs-btn-hover-border-color: #075fc4;
    --bs-btn-color: #fff;
    --bs-btn-font-size: 13px;
    --bs-btn-font-weight: 900;
    white-space: nowrap;
    box-shadow: 0 10px 22px rgba(11,112,225,.18);
}


/* SECTION 05: ROADMAP */
#section-05 {
    position: relative;
    overflow: hidden;
    padding: 58px 0 66px;
    background:
            radial-gradient(circle at 16% 18%, rgba(11,112,225,.08), transparent 230px),
            radial-gradient(circle at 90% 72%, rgba(11,112,225,.10), transparent 260px),
            linear-gradient(180deg, #ffffff 0%, #f4faff 100%);
    border-top: 1px solid rgba(14, 98, 186, .08);
}

.roadmap-layout {
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(420px, 1.05fr);
    gap: 42px;
    align-items: center;
}

.roadmap-eyebrow {
    margin: 0 0 8px;
    color: #7b91a9;
    font-size: 13px;
    line-height: 1;
    font-weight: 850;
}

.roadmap-title {
    margin: 0;
    color: #061d42;
    font-size: clamp(32px, 3.7vw, 50px);
    line-height: 1.02;
    font-weight: 920;
    letter-spacing: -.05em;
}

.roadmap-subtitle {
    margin: 14px 0 26px;
    max-width: 620px;
    color: #63778f;
    font-size: 17px;
    line-height: 1.45;
    font-weight: 550;
}

.roadmap-steps {
    position: relative;
    display: grid;
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.roadmap-steps::before {
    content: "";
    position: absolute;
    left: 20px;
    top: 22px;
    bottom: 50px;
    width: 2px;
    background: linear-gradient(180deg, rgba(11,112,225,.72), rgba(11,112,225,.12));
}

.roadmap-step {
    position: relative;
    display: grid;
    grid-template-columns: 42px 1fr;
    gap: 14px;
    align-items: start;
    padding: 14px 16px 14px 0;
    border-radius: 16px;
}

.roadmap-step-number {
    position: relative;
    z-index: 1;
    display: inline-grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 14px;
    color: #fff;
    background: #0b70e1;
    box-shadow: 0 10px 22px rgba(11,112,225,.20);
    font-size: 16px;
    font-weight: 900;
}

.roadmap-step-body {
    padding: 14px 18px;
    border: 1px solid rgba(37,111,197,.12);
    border-radius: 16px;
    background: rgba(255,255,255,.92);
    box-shadow: 0 12px 28px rgba(6,43,85,.055);
}

.roadmap-step-body h3 {
    margin: 0 0 4px;
    color: #17365e;
    font-size: 15px;
    line-height: 1.2;
    font-weight: 900;
}

.roadmap-step-body p {
    margin: 0;
    color: #66788b;
    font-size: 13px;
    line-height: 1.36;
    font-weight: 560;
}

.roadmap-visual {
    position: relative;
    min-height: 520px;
    display: grid;
    place-items: center;
}

.roadmap-visual::before {
    content: "";
    position: absolute;
    inset: 46px 22px 22px;
    border-radius: 34px;
    background: linear-gradient(145deg, rgba(237,246,255,.96), rgba(255,255,255,.86));
    border: 1px solid rgba(37,111,197,.10);
    box-shadow: 0 22px 46px rgba(6,43,85,.09);
}

.roadmap-device {
    position: relative;
    z-index: 1;
    display: block;
    width: min(100%, 610px);
    height: auto;
    border-radius: 22px;
    filter: drop-shadow(0 24px 34px rgba(6,43,85,.16));
}

.roadmap-floating {
    position: absolute;
    z-index: 2;
    display: grid;
    gap: 2px;
    min-width: 154px;
    padding: 13px 15px;
    border: 1px solid rgba(37,111,197,.13);
    border-radius: 15px;
    background: rgba(255,255,255,.94);
    box-shadow: 0 16px 32px rgba(6,43,85,.12);
    backdrop-filter: blur(8px);
}

.roadmap-floating strong {
    color: #0b70e1;
    font-size: 22px;
    line-height: 1;
    font-weight: 920;
}

.roadmap-floating span {
    color: #4e637a;
    font-size: 12px;
    line-height: 1.22;
    font-weight: 750;
}

.roadmap-floating.one { left: 16px; top: 92px; }
.roadmap-floating.two { right: 4px; bottom: 96px; }

.roadmap-result {
    margin-top: 28px;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0;
}

.roadmap-result-cta {
    background: transparent;
    border: 0;
    box-shadow: none;
}

.btn-roadmap {
    --bs-btn-padding-x: 24px;
    --bs-btn-padding-y: 12px;
    --bs-btn-border-radius: 10px;
    --bs-btn-bg: #0b70e1;
    --bs-btn-border-color: #0b70e1;
    --bs-btn-hover-bg: #075fc4;
    --bs-btn-hover-border-color: #075fc4;
    --bs-btn-color: #fff;
    --bs-btn-font-size: 13px;
    --bs-btn-font-weight: 900;
    white-space: nowrap;
    box-shadow: 0 10px 22px rgba(11,112,225,.18);
}


/* SECTION 06: RESULT SUPPORT */
#section-06 {
    position: relative;
    overflow: hidden;
    padding: 58px 0 64px;
    background:
            radial-gradient(circle at 16% 22%, rgba(11,112,225,.08), transparent 240px),
            radial-gradient(circle at 86% 18%, rgba(11,112,225,.10), transparent 230px),
            linear-gradient(180deg, #f7fbff 0%, #ffffff 100%);
    border-top: 1px solid rgba(14, 98, 186, .08);
}

.support-top {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, .82fr);
    gap: 44px;
    align-items: center;
    margin-bottom: 34px;
}

.support-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 10px;
    padding: 8px 13px;
    border-radius: 999px;
    color: #0b70e1;
    background: #eef7ff;
    border: 1px solid rgba(11,112,225,.13);
    font-size: 12px;
    line-height: 1;
    font-weight: 900;
}

.support-title {
    margin: 0;
    max-width: 740px;
    color: #061d42;
    font-size: clamp(32px, 3.7vw, 50px);
    line-height: 1.03;
    font-weight: 920;
    letter-spacing: -.05em;
}

.support-subtitle {
    margin: 16px 0 0;
    max-width: 760px;
    color: #60758c;
    font-size: 17px;
    line-height: 1.46;
    font-weight: 560;
}

.support-visual {
    position: relative;
    min-height: 304px;
    display: grid;
    place-items: center;
}

.support-visual-card {
    position: relative;
    width: min(100%, 420px);
    min-height: 250px;
    border: 1px solid rgba(37,111,197,.11);
    border-radius: 28px;
    background:
            radial-gradient(circle at 82% 18%, rgba(11,112,225,.14), transparent 92px),
            linear-gradient(145deg, #ffffff 0%, #edf6ff 100%);
    box-shadow: 0 22px 46px rgba(6,43,85,.10);
}

.support-doc {
    position: absolute;
    left: 46px;
    top: 34px;
    width: 142px;
    height: 178px;
    padding: 18px 16px;
    border-radius: 17px;
    background: #fff;
    border: 1px solid rgba(37,111,197,.13);
    box-shadow: 0 18px 30px rgba(6,43,85,.10);
    transform: rotate(-3deg);
}

.support-doc-icon {
    display: inline-grid;
    place-items: center;
    width: 42px;
    height: 42px;
    margin-bottom: 16px;
    border-radius: 13px;
    color: #fff;
    background: #0b70e1;
    box-shadow: 0 10px 20px rgba(11,112,225,.22);
}

.support-doc-line {
    display: block;
    height: 7px;
    margin-bottom: 10px;
    border-radius: 999px;
    background: #dcecff;
}

.support-doc-line.short { width: 68%; }
.support-doc-line.mid { width: 84%; }

.support-checks {
    position: absolute;
    left: 30px;
    bottom: 28px;
    display: grid;
    gap: 9px;
}

.support-checks span {
    display: block;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #1fc57c;
    box-shadow: 0 5px 12px rgba(31,197,124,.22);
}

.support-shield {
    position: absolute;
    right: 104px;
    bottom: 22px;
    display: grid;
    place-items: center;
    width: 98px;
    height: 108px;
    color: #0b70e1;
    filter: drop-shadow(0 16px 20px rgba(6,43,85,.14));
}

.support-bubble {
    position: absolute;
    right: 42px;
    top: 56px;
    display: grid;
    place-items: center;
    width: 92px;
    height: 82px;
    border-radius: 24px 24px 24px 10px;
    color: #0b70e1;
    background: #dceeff;
    border: 1px solid rgba(11,112,225,.13);
    box-shadow: 0 16px 30px rgba(6,43,85,.10);
}

.support-plant {
    position: absolute;
    right: 46px;
    bottom: 28px;
    color: #29b978;
}

.support-cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    margin-bottom: 20px;
}

.support-card {
    min-height: 158px;
    padding: 22px 22px 20px;
    border: 1px solid rgba(37,111,197,.12);
    border-radius: 18px;
    background: rgba(255,255,255,.94);
    box-shadow: 0 15px 34px rgba(6,43,85,.065);
}

.support-card-icon {
    display: inline-grid;
    place-items: center;
    width: 44px;
    height: 44px;
    margin-bottom: 14px;
    border-radius: 14px;
    color: #0b70e1;
    background: #eef7ff;
    border: 1px solid rgba(11,112,225,.13);
}

.support-card h3 {
    margin: 0 0 8px;
    color: #17365e;
    font-size: 16px;
    line-height: 1.17;
    font-weight: 900;
}

.support-card p {
    margin: 0;
    color: #66788b;
    font-size: 13px;
    line-height: 1.38;
    font-weight: 560;
}

.support-empathy {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 18px;
    align-items: center;
    padding: 20px 22px;
    border: 1px solid rgba(11,112,225,.12);
    border-radius: 18px;
    background:
            radial-gradient(circle at 86% 30%, rgba(11,112,225,.08), transparent 160px),
            linear-gradient(90deg, #f1f8ff 0%, #ffffff 100%);
    box-shadow: 0 15px 34px rgba(6,43,85,.055);
}

.support-empathy-icon {
    display: inline-grid;
    place-items: center;
    width: 48px;
    height: 48px;
    border-radius: 16px;
    color: #0b70e1;
    background: #ffffff;
    border: 1px solid rgba(11,112,225,.13);
}

.support-empathy h3 {
    margin: 0 0 5px;
    color: #17365e;
    font-size: 18px;
    line-height: 1.15;
    font-weight: 920;
}

.support-empathy p {
    margin: 0;
    max-width: 860px;
    color: #64788f;
    font-size: 14px;
    line-height: 1.42;
    font-weight: 560;
}

.btn-support {
    --bs-btn-padding-x: 24px;
    --bs-btn-padding-y: 12px;
    --bs-btn-border-radius: 10px;
    --bs-btn-bg: #ffffff;
    --bs-btn-border-color: #0b70e1;
    --bs-btn-color: #0b70e1;
    --bs-btn-hover-bg: #0b70e1;
    --bs-btn-hover-border-color: #0b70e1;
    --bs-btn-hover-color: #ffffff;
    --bs-btn-font-size: 13px;
    --bs-btn-font-weight: 900;
    white-space: nowrap;
    box-shadow: 0 10px 20px rgba(11,112,225,.10);
}


/* SECTION 07: DOCUMENTS */
#section-07 {
    position: relative;
    overflow: hidden;
    padding: 60px 0 68px;
    background:
            radial-gradient(circle at 18% 18%, rgba(11,112,225,.08), transparent 250px),
            radial-gradient(circle at 84% 72%, rgba(11,112,225,.09), transparent 260px),
            linear-gradient(180deg, #ffffff 0%, #f4faff 100%);
    border-top: 1px solid rgba(14, 98, 186, .08);
}

.documents-layout {
    display: grid;
    grid-template-columns: minmax(0, .86fr) minmax(420px, 1.14fr);
    gap: 48px;
    align-items: center;
}

.documents-eyebrow {
    margin: 0 0 10px;
    color: #7b91a9;
    font-size: 13px;
    line-height: 1;
    font-weight: 850;
}

.documents-title {
    margin: 0;
    max-width: 610px;
    color: #061d42;
    font-size: clamp(34px, 4.05vw, 56px);
    line-height: .98;
    font-weight: 930;
    letter-spacing: -.055em;
}

.documents-subtitle {
    margin: 16px 0 24px;
    max-width: 580px;
    color: #60758c;
    font-size: 17px;
    line-height: 1.46;
    font-weight: 560;
}

.documents-list {
    display: grid;
    gap: 11px;
    margin: 0 0 24px;
    padding: 0;
    list-style: none;
}

.documents-list li {
    display: grid;
    grid-template-columns: 42px 1fr;
    gap: 13px;
    align-items: center;
    padding: 14px 16px;
    border: 1px solid rgba(37,111,197,.12);
    border-radius: 14px;
    background: rgba(255,255,255,.94);
    box-shadow: 0 12px 28px rgba(6,43,85,.055);
}

.documents-list-icon {
    display: inline-grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 14px;
    color: #0b70e1;
    background: #eef7ff;
    border: 1px solid rgba(11,112,225,.13);
}

.documents-list strong {
    display: block;
    margin-bottom: 2px;
    color: #17365e;
    font-size: 15px;
    line-height: 1.16;
    font-weight: 900;
}

.documents-list span {
    display: block;
    color: #66788b;
    font-size: 13px;
    line-height: 1.32;
    font-weight: 560;
}

.documents-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
}

.btn-documents-primary {
    --bs-btn-padding-x: 22px;
    --bs-btn-padding-y: 12px;
    --bs-btn-border-radius: 10px;
    --bs-btn-bg: #0b70e1;
    --bs-btn-border-color: #0b70e1;
    --bs-btn-hover-bg: #075fc4;
    --bs-btn-hover-border-color: #075fc4;
    --bs-btn-color: #fff;
    --bs-btn-font-size: 13px;
    --bs-btn-font-weight: 900;
    box-shadow: 0 10px 22px rgba(11,112,225,.18);
}

.btn-documents-secondary {
    --bs-btn-padding-x: 22px;
    --bs-btn-padding-y: 12px;
    --bs-btn-border-radius: 10px;
    --bs-btn-bg: #ffffff;
    --bs-btn-border-color: rgba(11,112,225,.45);
    --bs-btn-color: #0b70e1;
    --bs-btn-hover-bg: #eef7ff;
    --bs-btn-hover-border-color: #0b70e1;
    --bs-btn-hover-color: #0b70e1;
    --bs-btn-font-size: 13px;
    --bs-btn-font-weight: 900;
}

.documents-visual {
    position: relative;
    min-height: 520px;
    display: grid;
    place-items: end center;
    padding: 22px 22px 0;
    border: 1px solid rgba(37,111,197,.11);
    border-radius: 30px;
    background:
            radial-gradient(circle at 58% 28%, rgba(11,112,225,.09), transparent 260px),
            linear-gradient(145deg, #ffffff 0%, #edf6ff 100%);
    box-shadow: 0 24px 52px rgba(6,43,85,.10);
    overflow: hidden;
}

.documents-visual::before {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 34%;
    background: linear-gradient(180deg, rgba(244,250,255,0) 0%, rgba(216,232,248,.95) 100%);
    pointer-events: none;
}

.documents-image {
    position: relative;
    z-index: 1;
    display: block;
    width: min(100%, 690px);
    height: auto;
    border-radius: 20px;
    border: 1px solid rgba(37,111,197,.10);
    box-shadow: 0 22px 42px rgba(6,43,85,.13);
    object-fit: cover;
}

.documents-badges {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    width: min(100%, 570px);
    margin-top: -34px;
    margin-bottom: 22px;
}

.documents-badge {
    min-height: 72px;
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 10px;
    align-items: center;
    padding: 12px 14px;
    border: 1px solid rgba(37,111,197,.12);
    border-radius: 15px;
    background: rgba(255,255,255,.96);
    box-shadow: 0 15px 30px rgba(6,43,85,.10);
    backdrop-filter: blur(8px);
}

.documents-badge-icon {
    display: inline-grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 12px;
    color: #0b70e1;
    background: #eef7ff;
    border: 1px solid rgba(11,112,225,.13);
}

.documents-badge span {
    color: #234464;
    font-size: 12px;
    line-height: 1.18;
    font-weight: 850;
}


/* SECTION 08: TRUST AND ABROAD */
#section-08 {
    position: relative;
    overflow: hidden;
    padding: 60px 0 68px;
    background:
            radial-gradient(circle at 14% 20%, rgba(11,112,225,.08), transparent 245px),
            radial-gradient(circle at 88% 70%, rgba(11,112,225,.09), transparent 255px),
            linear-gradient(180deg, #f6fbff 0%, #ffffff 100%);
    border-top: 1px solid rgba(14, 98, 186, .08);
}

.trust-layout {
    position: relative;
    display: grid;
    grid-template-columns: minmax(320px, 580px) 1fr;
    gap: 34px;
    align-items: center;
    min-height: 585px;
    padding: 46px;
    border: 1px solid rgba(37,111,197,.10);
    border-radius: 30px;
    margin-bottom: 30px;
    overflow: hidden;
    background: #eaf3fb;
    box-shadow: 0 24px 56px rgba(6,43,85,.12);
}

.trust-layout::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
            linear-gradient(90deg, rgba(246,251,255,.98) 0%, rgba(246,251,255,.92) 36%, rgba(246,251,255,.30) 58%, rgba(246,251,255,.06) 100%),
            linear-gradient(180deg, rgba(4,25,54,.08) 0%, rgba(4,25,54,.02) 46%, rgba(4,25,54,.10) 100%);
    pointer-events: none;
}

.trust-copy {
    position: relative;
    z-index: 2;
}

.trust-eyebrow {
    margin: 0 0 10px;
    color: #7b91a9;
    font-size: 13px;
    line-height: 1;
    font-weight: 850;
}

.trust-title {
    margin: 0;
    max-width: 650px;
    color: #061d42;
    font-size: clamp(32px, 3.85vw, 52px);
    line-height: 1.02;
    font-weight: 930;
    letter-spacing: -.052em;
}

.trust-quote {
    margin: 24px 0 0;
    max-width: 620px;
    padding: 24px 26px;
    border: 1px solid rgba(37,111,197,.14);
    border-radius: 18px;
    background: rgba(255,255,255,.95);
    box-shadow: 0 18px 38px rgba(6,43,85,.10);
    backdrop-filter: blur(8px);
}

.trust-quote-mark {
    display: block;
    margin-bottom: 6px;
    color: #0b70e1;
    font-size: 48px;
    line-height: .75;
    font-weight: 930;
}

.trust-quote p {
    margin: 0 0 12px;
    color: #344e6c;
    font-size: 16px;
    line-height: 1.45;
    font-weight: 690;
}

.trust-quote footer {
    color: #0b70e1;
    font-size: 13px;
    line-height: 1.3;
    font-weight: 900;
}

.trust-visual {
    position: absolute;
    inset: 0;
    z-index: 0;
    min-height: 100%;
    display: block;
}

.trust-visual::before {
    content: none;
}

.trust-family-image {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: 0;
    box-shadow: none;
    object-fit: cover;
    object-position: 66% center;
}

.abroad-panel {
    padding: 26px 28px 28px;
    border: 1px solid rgba(37,111,197,.12);
    border-radius: 24px;
    background:
            radial-gradient(circle at 8% 10%, rgba(11,112,225,.08), transparent 180px),
            linear-gradient(180deg, #ffffff 0%, #f3f9ff 100%);
    box-shadow: 0 18px 42px rgba(6,43,85,.07);
}

.abroad-head {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 16px;
    align-items: start;
    margin-bottom: 22px;
}

.abroad-icon {
    display: inline-grid;
    place-items: center;
    width: 56px;
    height: 56px;
    border-radius: 18px;
    color: #0b70e1;
    background: #eef7ff;
    border: 1px solid rgba(11,112,225,.13);
    box-shadow: 0 12px 24px rgba(11,112,225,.10);
}

.abroad-head h3 {
    margin: 0 0 7px;
    color: #10284f;
    font-size: clamp(23px, 2.2vw, 30px);
    line-height: 1.1;
    font-weight: 930;
    letter-spacing: -.025em;
}

.abroad-head p {
    margin: 0;
    max-width: 850px;
    color: #61758d;
    font-size: 15px;
    line-height: 1.45;
    font-weight: 560;
}

.abroad-cards {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 22px;
}

.abroad-card {
    min-height: 172px;
    padding: 18px 17px;
    border: 1px solid rgba(37,111,197,.11);
    border-radius: 17px;
    background: rgba(255,255,255,.94);
    box-shadow: 0 12px 28px rgba(6,43,85,.055);
}

.abroad-card-icon {
    display: inline-grid;
    place-items: center;
    width: 42px;
    height: 42px;
    margin-bottom: 13px;
    border-radius: 14px;
    color: #0b70e1;
    background: #eef7ff;
    border: 1px solid rgba(11,112,225,.13);
}

.abroad-card h4 {
    margin: 0 0 7px;
    color: #17365e;
    font-size: 15px;
    line-height: 1.17;
    font-weight: 920;
}

.abroad-card p {
    margin: 0;
    color: #66788b;
    font-size: 13px;
    line-height: 1.36;
    font-weight: 560;
}

.abroad-footer {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 18px;
    align-items: center;
    padding: 18px 20px;
    border: 1px solid rgba(11,112,225,.13);
    border-radius: 18px;
    background: linear-gradient(90deg, #f2f8ff 0%, #ffffff 100%);
}

.abroad-footer p {
    margin: 0;
    color: #385371;
    font-size: 14px;
    line-height: 1.42;
    font-weight: 680;
}

.btn-abroad {
    --bs-btn-padding-x: 24px;
    --bs-btn-padding-y: 12px;
    --bs-btn-border-radius: 10px;
    --bs-btn-bg: #0b70e1;
    --bs-btn-border-color: #0b70e1;
    --bs-btn-hover-bg: #075fc4;
    --bs-btn-hover-border-color: #075fc4;
    --bs-btn-color: #fff;
    --bs-btn-font-size: 13px;
    --bs-btn-font-weight: 900;
    white-space: nowrap;
    box-shadow: 0 10px 22px rgba(11,112,225,.18);
}

/* SECTION 09: ACCREDITATION */
#section-accreditation {
    position: relative;
    overflow: hidden;
    padding: 62px 0;
    background:
            radial-gradient(circle at 14% 18%, rgba(11,112,225,.08), transparent 240px),
            linear-gradient(180deg, #f4faff 0%, #ffffff 100%);
    border-top: 1px solid rgba(14, 98, 186, .08);
}

.accreditation-panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, .72fr);
    gap: 28px;
    align-items: stretch;
    padding: 30px;
    border: 1px solid rgba(37,111,197,.12);
    border-radius: 24px;
    background: rgba(255,255,255,.94);
    box-shadow: 0 18px 42px rgba(6,43,85,.07);
}

.accreditation-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 14px;
    color: #0b70e1;
    font-size: 12px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.accreditation-title {
    margin: 0;
    color: #061d42;
    font-size: clamp(34px, 4vw, 54px);
    line-height: 1.02;
    font-weight: 930;
    letter-spacing: -.055em;
}

.accreditation-text {
    margin: 16px 0 0;
    max-width: 780px;
    color: #405a78;
    font-size: 17px;
    line-height: 1.48;
    font-weight: 600;
}

.accreditation-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 22px;
    justify-content: center;
}

.btn-accreditation-primary {
    --bs-btn-padding-x: 20px;
    --bs-btn-padding-y: 12px;
    --bs-btn-border-radius: 10px;
    --bs-btn-font-size: 13px;
    --bs-btn-font-weight: 900;
}

.btn-accreditation-primary {
    --bs-btn-bg: #0b70e1;
    --bs-btn-border-color: #0b70e1;
    --bs-btn-hover-bg: #075fc4;
    --bs-btn-hover-border-color: #075fc4;
    --bs-btn-color: #fff;
    box-shadow: 0 12px 24px rgba(11,112,225,.18);
}

.accreditation-proof {
    display: grid;
    gap: 12px;
    align-content: center;
    padding: 22px;
    border-radius: 20px;
    background: linear-gradient(180deg, #eef7ff 0%, #ffffff 100%);
    border: 1px solid rgba(37,111,197,.12);
}

.accreditation-proof-item {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 12px;
    align-items: start;
    padding: 14px;
    border-radius: 16px;
    background: rgba(255,255,255,.82);
    border: 1px solid rgba(37,111,197,.10);
}

.accreditation-proof-icon {
    display: inline-grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 12px;
    color: #0b70e1;
    background: #e7f3ff;
    border: 1px solid rgba(11,112,225,.14);
    font-weight: 900;
}

.accreditation-proof-item strong {
    display: block;
    margin-bottom: 4px;
    color: #17365e;
    font-size: 14px;
    line-height: 1.2;
    font-weight: 920;
}

.accreditation-proof-item p {
    margin: 0;
    color: #60758c;
    font-size: 13px;
    line-height: 1.38;
    font-weight: 560;
}

.accreditation-note {
    margin: 4px 0 0;
    color: #6b8198;
    font-size: 12px;
    line-height: 1.4;
    font-weight: 620;
}


/* SECTION 09: REVIEWS AND FAQ */
#section-09 {
    position: relative;
    overflow: hidden;
    padding: 60px 0 70px;
    background:
            radial-gradient(circle at 16% 18%, rgba(11,112,225,.08), transparent 240px),
            radial-gradient(circle at 86% 68%, rgba(11,112,225,.09), transparent 260px),
            linear-gradient(180deg, #ffffff 0%, #f4faff 100%);
    border-top: 1px solid rgba(14, 98, 186, .08);
}

.reviews-head {
    max-width: 880px;
    margin: 0 auto 34px;
    text-align: center;
}

.reviews-eyebrow {
    margin: 0 0 8px;
    color: #7b91a9;
    font-size: 13px;
    line-height: 1;
    font-weight: 850;
}

.reviews-title {
    margin: 0;
    color: #061d42;
    font-size: clamp(34px, 4vw, 56px);
    line-height: 1;
    font-weight: 930;
    letter-spacing: -.055em;
}

.reviews-subtitle {
    margin: 12px auto 0;
    max-width: 760px;
    color: #61758d;
    font-size: 17px;
    line-height: 1.45;
    font-weight: 560;
}

.reviews-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
    margin-bottom: 26px;
}

.review-card {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    padding: 22px 22px 20px;
    border: 1px solid rgba(37,111,197,.12);
    border-radius: 20px;
    background: rgba(255,255,255,.95);
    box-shadow: 0 18px 40px rgba(6,43,85,.075);
}

.review-top {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 14px;
    align-items: center;
    margin-bottom: 16px;
}

.review-avatar {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    object-fit: cover;
    border: 4px solid #eef7ff;
    box-shadow: 0 10px 22px rgba(6,43,85,.12);
}

.review-name {
    margin: 0 0 4px;
    color: #17365e;
    font-size: 16px;
    line-height: 1.15;
    font-weight: 920;
}

.review-meta {
    margin: 0;
    color: #6d8197;
    font-size: 12px;
    line-height: 1.25;
    font-weight: 760;
}

.review-quote {
    margin: 0 0 16px;
    color: #334f70;
    font-size: 14px;
    line-height: 1.43;
    font-weight: 640;
}

.review-section {
    margin-top: auto;
    display: grid;
    gap: 11px;
}

.review-mini-block {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 10px;
    align-items: start;
    padding-top: 12px;
    border-top: 1px solid rgba(37,111,197,.09);
}

.review-mini-icon {
    display: inline-grid;
    place-items: center;
    width: 28px;
    height: 28px;
    line-height: 1;
    border-radius: 10px;
    color: #0b70e1;
    background: #eef7ff;
    border: 1px solid rgba(11,112,225,.12);
}

.review-mini-icon:first-child {
    font-size: 20px;
    font-weight: 800;
    padding-bottom: 1px;
}

.review-mini-block strong {
    display: block;
    margin-bottom: 3px;
    color: #17365e;
    font-size: 13px;
    line-height: 1.2;
    font-weight: 920;
}

.review-mini-block p {
    margin: 0;
    color: #64788f;
    font-size: 12px;
    line-height: 1.36;
    font-weight: 560;
}

.faq-panel {
    margin-top: 28px;
    padding: 28px;
    border: 1px solid rgba(37,111,197,.12);
    border-radius: 24px;
    background:
            radial-gradient(circle at 10% 8%, rgba(11,112,225,.07), transparent 180px),
            linear-gradient(180deg, #ffffff 0%, #f3f9ff 100%);
    box-shadow: 0 18px 42px rgba(6,43,85,.07);
}

.faq-head {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 18px;
    align-items: end;
    margin-bottom: 20px;
}

.faq-head h3 {
    margin: 0;
    color: #10284f;
    font-size: clamp(24px, 2.5vw, 34px);
    line-height: 1.08;
    font-weight: 930;
    letter-spacing: -.035em;
}

.faq-head p {
    margin: 8px 0 0;
    max-width: 720px;
    color: #61758d;
    font-size: 15px;
    line-height: 1.42;
    font-weight: 560;
}

.faq-list {
    display: grid;
    gap: 10px;
}

.faq-extra {
    display: grid;
    gap: 10px;
}

.faq-extra[hidden] {
    display: none;
}

.faq-item {
    border: 1px solid rgba(37,111,197,.11);
    border-radius: 15px;
    background: rgba(255,255,255,.95);
    box-shadow: 0 10px 22px rgba(6,43,85,.045);
    overflow: hidden;
}

.faq-item summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 17px 18px;
    color: #17365e;
    font-size: 15px;
    line-height: 1.25;
    font-weight: 900;
    cursor: pointer;
    list-style: none;
}

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

.faq-item summary::after {
    content: "+";
    display: inline-grid;
    place-items: center;
    width: 28px;
    height: 28px;
    flex: 0 0 auto;
    border-radius: 50%;
    color: #0b70e1;
    background: #eef7ff;
    font-size: 22px;
    line-height: 1;
    font-weight: 700;
}

.faq-item[open] summary::after { content: "–"; }

.faq-item p {
    margin: 0;
    padding: 0 18px 18px;
    color: #60758c;
    font-size: 14px;
    line-height: 1.45;
    font-weight: 560;
}

.btn-faq {
    --bs-btn-padding-x: 24px;
    --bs-btn-padding-y: 12px;
    --bs-btn-border-radius: 10px;
    --bs-btn-bg: #0b70e1;
    --bs-btn-border-color: #0b70e1;
    --bs-btn-hover-bg: #075fc4;
    --bs-btn-hover-border-color: #075fc4;
    --bs-btn-color: #fff;
    --bs-btn-font-size: 13px;
    --bs-btn-font-weight: 900;
    white-space: nowrap;
    box-shadow: 0 10px 22px rgba(11,112,225,.18);
}

.faq-more-row {
    display: flex;
    justify-content: center;
    margin-top: 14px;
}

.btn-faq-more {
    --bs-btn-padding-x: 22px;
    --bs-btn-padding-y: 11px;
    --bs-btn-border-radius: 10px;
    --bs-btn-bg: #eef7ff;
    --bs-btn-border-color: rgba(11,112,225,.18);
    --bs-btn-hover-bg: #dceeff;
    --bs-btn-hover-border-color: rgba(11,112,225,.30);
    --bs-btn-color: #0b4d9d;
    --bs-btn-font-size: 13px;
    --bs-btn-font-weight: 900;
    min-width: 230px;
}


/* SECTION 10: FOOTER */
#site-footer {
    position: relative;
    overflow: hidden;
    color: rgba(255,255,255,.88);
    background:
            radial-gradient(circle at 14% 12%, rgba(52,145,255,.18), transparent 260px),
            linear-gradient(135deg, #06264d 0%, #082f5e 52%, #061f40 100%);
    border-top: 1px solid rgba(255,255,255,.12);
}

.footer-main {
    padding: 42px 0 28px;
}

.footer-grid {
    display: grid;
    grid-template-columns: minmax(260px, 1.2fr) minmax(160px, .75fr) minmax(190px, .9fr) minmax(220px, .8fr);
    gap: 34px;
    align-items: start;
}

.footer-brand {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
    color: #fff;
    font-size: 25px;
    line-height: 1;
    font-weight: 920;
    letter-spacing: -.025em;
}

.footer-brand svg {
    width: 54px;
    height: 42px;
    flex: 0 0 auto;
}

.footer-brand .brand-logo-img {
    width: 205px;
}

.footer-brand svg,
.footer-brand > span {
    display: none;
}

.footer-about {
    max-width: 330px;
    margin: 0;
    color: rgba(255,255,255,.72);
    font-size: 14px;
    line-height: 1.55;
    font-weight: 520;
}

.footer-column h3 {
    margin: 0 0 14px;
    color: #6fb7ff;
    font-size: 13px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

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

.footer-links a,
.footer-contact {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: rgba(255,255,255,.78);
    font-size: 14px;
    line-height: 1.25;
    font-weight: 650;
    transition: color .16s ease, transform .16s ease;
}

.footer-links a:hover,
.footer-links a:focus,
.footer-contact:hover,
.footer-contact:focus {
    color: #ffffff;
    transform: translateX(2px);
}

.footer-link-icon {
    display: inline-grid;
    place-items: center;
    width: 18px;
    height: 18px;
    color: #6fb7ff;
    flex: 0 0 auto;
}

.footer-legal-note {
    margin-top: 28px;
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 14px;
    align-items: start;
    padding: 18px 20px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 16px;
    background: rgba(255,255,255,.07);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
}

.footer-legal-icon {
    display: inline-grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 14px;
    color: #6fb7ff;
    background: rgba(111,183,255,.12);
    border: 1px solid rgba(111,183,255,.20);
}

.footer-legal-note p {
    margin: 0;
    color: rgba(255,255,255,.72);
    font-size: 13px;
    line-height: 1.5;
    font-weight: 540;
}

.footer-legal-note strong {
    color: rgba(255,255,255,.94);
    font-weight: 850;
}

.footer-bottom {
    padding: 18px 0;
    border-top: 1px solid rgba(255,255,255,.10);
    background: rgba(0,0,0,.08);
}

.footer-bottom-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    color: rgba(255,255,255,.58);
    font-size: 13px;
    line-height: 1.3;
    font-weight: 560;
}

.footer-bottom-links {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
}

.footer-bottom-links a {
    color: rgba(255,255,255,.64);
    font-weight: 650;
}

.footer-bottom-links a:hover,
.footer-bottom-links a:focus {
    color: #fff;
}

.footer-requisites {
    margin-top: 24px;
    padding: 20px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 16px;
    background: rgba(255,255,255,.07);
}

.footer-requisites h3 {
    margin: 0 0 14px;
    color: #6fb7ff;
    font-size: 13px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.footer-requisites-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.footer-requisites-item {
    color: rgba(255,255,255,.76);
    font-size: 13px;
    line-height: 1.4;
    font-weight: 560;
}

.footer-requisites-item strong {
    display: block;
    margin-bottom: 4px;
    color: rgba(255,255,255,.95);
    font-size: 12px;
    line-height: 1.2;
    font-weight: 900;
    text-transform: uppercase;
}




/* FINAL QA STABILITY PATCH */
html,
body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
}

body.is-modal-open {
    overflow: hidden;
}

.site-shell {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
}

a,
button,
input,
select,
textarea,
summary {
    -webkit-tap-highlight-color: transparent;
}

button,
.btn,
.menu-button,
.mobile-menu-close,
.lead-modal-close {
    touch-action: manipulation;
}

.menu-button.is-active span {
    background: transparent;
}

.menu-button.is-active span::before {
    top: 0;
    transform: rotate(45deg);
}

.menu-button.is-active span::after {
    top: 0;
    transform: rotate(-45deg);
}

.mobile-menu-panel {
    overscroll-behavior: contain;
}

.mobile-menu-panel.is-open {
    display: block !important;
}

.lead-modal-backdrop.is-open {
    display: flex !important;
}

.lead-form-field.is-hidden {
    display: none !important;
}

.comparison-scroll {
    width: 100%;
    max-width: 100%;
}

.comparison-table {
    max-width: 100%;
}

@media (min-width: 1440px) {
    .container {
        max-width: 1220px;
    }

    .hero-inner {
        min-height: 560px;
    }

    .hero-card {
        width: min(100%, 570px);
    }
}

@media (min-width: 1920px) {
    .container {
        max-width: 1320px;
    }

    #hero {
        min-height: 640px;
    }

    .hero-bg {
        background-size: cover;
        background-position: center center;
    }
}

@media (min-width: 2560px) {
    .container {
        max-width: 1560px;
    }

    #hero {
        min-height: 760px;
    }

    .hero-inner {
        min-height: 680px;
    }

    .hero-card {
        width: min(100%, 620px);
    }
}

@media (max-width: 575.98px) {
    .container {
        padding-right: 16px;
        padding-left: 16px;
    }

    .header-actions {
        gap: 8px;
    }

    .icon-button {
        width: 38px;
        height: 38px;
    }

    .menu-button {
        width: 42px;
        height: 38px;
    }

    .mobile-menu-head {
        font-size: 12px;
    }

    .mobile-menu-panel .mobile-link {
        min-height: 44px;
        font-size: 13px;
    }

    .hero-title,
    .section-title,
    .routes-title,
    .format-title,
    .platform-title,
    .roadmap-title,
    .support-title,
    .documents-title,
    .trust-title,
    .reviews-title {
        overflow-wrap: normal;
        word-break: normal;
        hyphens: auto;
    }

    .hero-card,
    .format-panel,
    .roadmap-result,
    .support-empathy,
    .abroad-panel,
    .faq-panel {
        max-width: 100%;
    }

    .hero-cta-row .btn,
    .documents-actions .btn,
    .abroad-footer .btn,
    .btn-faq {
        width: 100%;
    }

    .rating-dots {
        min-width: 92px;
    }
}

/* RESPONSIVE IMAGE NORMALIZATION */
img {
    max-width: 100%;
    height: auto;
}

.hero-bg {
    background-repeat: no-repeat;
}

.audience-card img,
.platform-device,
.roadmap-device,
.documents-image,
.trust-family-image,
.review-avatar {
    image-rendering: auto;
}

.audience-card-image-wrap {
    display: grid;
    place-items: center;
}

.audience-card img {
    object-position: center center;
}

.platform-visual,
.roadmap-visual,
.documents-visual,
.trust-visual {
    overflow: visible;
}

.platform-device,
.roadmap-device,
.documents-image,
.trust-family-image {
    margin-inline: auto;
}

/* CTA MODAL */
.lead-modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 500;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(4, 22, 45, .62);
    backdrop-filter: blur(8px);
}

.lead-modal-backdrop.is-open {
    display: flex;
}

.lead-modal {
    position: relative;
    width: min(100%, 620px);
    max-height: min(92vh, 780px);
    overflow-y: auto;
    border: 1px solid rgba(255,255,255,.58);
    border-radius: 24px;
    background:
            radial-gradient(circle at 15% 8%, rgba(11,112,225,.10), transparent 170px),
            linear-gradient(180deg, #ffffff 0%, #f4faff 100%);
    box-shadow: 0 28px 80px rgba(2, 24, 50, .36);
}

.lead-modal-header {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 18px;
    align-items: start;
    padding: 26px 28px 16px;
    border-bottom: 1px solid rgba(37,111,197,.10);
}

.lead-modal-title {
    margin: 0;
    color: #061d42;
    font-size: clamp(24px, 3vw, 34px);
    line-height: 1.05;
    font-weight: 930;
    letter-spacing: -.035em;
}

.lead-modal-subtitle {
    margin: 9px 0 0;
    color: #61758d;
    font-size: 14px;
    line-height: 1.45;
    font-weight: 560;
}

.lead-modal-close {
    display: inline-grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border: 1px solid rgba(37,111,197,.14);
    border-radius: 50%;
    color: #0b70e1;
    background: #eef7ff;
    cursor: pointer;
    font-size: 26px;
    line-height: 1;
    transition: .16s ease;
}

.lead-modal-close:hover,
.lead-modal-close:focus {
    background: #0b70e1;
    color: #fff;
}

.lead-form {
    padding: 22px 28px 28px;
}

.lead-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.lead-form-field {
    display: grid;
    gap: 7px;
}

.lead-form-field.is-full {
    grid-column: 1 / -1;
}

.lead-form label {
    color: #17365e;
    font-size: 12px;
    line-height: 1.15;
    font-weight: 900;
}

.lead-form input,
.lead-form select,
.lead-form textarea {
    width: 100%;
    border: 1px solid rgba(37,111,197,.18);
    border-radius: 12px;
    background: rgba(255,255,255,.95);
    color: #17365e;
    padding: 12px 13px;
    font: inherit;
    font-size: 14px;
    line-height: 1.25;
    outline: none;
    transition: border-color .16s ease, box-shadow .16s ease;
}

.lead-form textarea {
    min-height: 92px;
    resize: vertical;
}

.lead-form input:focus,
.lead-form select:focus,
.lead-form textarea:focus {
    border-color: #0b70e1;
    box-shadow: 0 0 0 4px rgba(11,112,225,.10);
}

.lead-form-consent {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 10px;
    align-items: start;
    margin: 16px 0 18px;
    color: #60758c;
    font-size: 12px;
    line-height: 1.35;
    font-weight: 560;
}

.lead-form-consent input {
    width: 16px;
    height: 16px;
    margin-top: 1px;
    accent-color: #0b70e1;
}

.lead-submit-row {
    display: flex;
    gap: 12px;
    align-items: center;
    justify-content: space-between;
}

.btn-lead-submit {
    --bs-btn-padding-x: 24px;
    --bs-btn-padding-y: 13px;
    --bs-btn-border-radius: 11px;
    --bs-btn-bg: #0b70e1;
    --bs-btn-border-color: #0b70e1;
    --bs-btn-hover-bg: #075fc4;
    --bs-btn-hover-border-color: #075fc4;
    --bs-btn-color: #fff;
    --bs-btn-font-size: 14px;
    --bs-btn-font-weight: 900;
    min-width: 190px;
    box-shadow: 0 12px 24px rgba(11,112,225,.18);
}

.lead-form-note {
    margin: 0;
    color: #7890aa;
    font-size: 12px;
    line-height: 1.35;
    font-weight: 560;
}

.lead-success {
    display: none;
    margin-top: 14px;
    padding: 13px 14px;
    border: 1px solid rgba(25,185,111,.22);
    border-radius: 13px;
    color: #176a45;
    background: rgba(25,185,111,.10);
    font-size: 13px;
    font-weight: 760;
}

.lead-success.is-visible {
    display: block;
}

.section-separator {
    height: 24px;
    background: linear-gradient(180deg, rgba(255,255,255,.98), #eff7ff 100%);
    border-top: 1px solid rgba(255,255,255,.55);
}

@media (max-width: 1199.98px) {
    .format-content {
        grid-template-columns: minmax(590px, 1.02fr) minmax(340px, .72fr);
        gap: 34px;
    }
    .comparison-table th,
    .comparison-table td { padding-inline: 14px; }
    .rating-dots { gap: 5px; min-width: 98px; }
}

@media (max-width: 1199.98px) {
    .navbar-brand { min-width: 185px; }
    .header-tagline { font-size: 11px; }
    .hero-info-card { right: 48px; bottom: 70px; }
}

@media (max-width: 991.98px) {
    .header-tagline,
    .header-phone,
    .btn-header-consultation,
    .header-login { display: none; }
    .navbar-brand { min-width: auto; }
    .mobile-menu-panel.is-open { display: block; }
    #hero { min-height: auto; }
    .hero-inner { min-height: auto; padding-block: 30px 32px; }
    .hero-card { width: min(100%, 560px); }
    .audience-grid { max-width: 760px; }
    .hero-info-card {
        position: static;
        width: min(100%, 560px);
        margin-top: 18px;
    }
    .audience-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #section-02 { padding-top: 38px; }
    .routes-layout { grid-template-columns: 1fr; gap: 28px; }
    .routes-copy { min-height: auto; text-align: center; align-items: center; }
    .routes-subtitle { max-width: 760px; }
    .routes-quote { max-width: 560px; }
    .format-panel-head { grid-template-columns: 1fr; gap: 14px; text-align: center; }
    .format-note { max-width: 720px; margin-inline: auto; }
    .format-content { grid-template-columns: 1fr; gap: 28px; }
    .format-steps { margin-inline: auto; max-width: 560px; }
    .platform-layout { grid-template-columns: 1fr; gap: 18px; }
    .platform-points { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .platform-visual { order: -1; min-height: auto; }
    .platform-device { width: min(100%, 720px); }
    .platform-note { grid-template-columns: auto 1fr; }
    .platform-note .btn { grid-column: 1 / -1; width: 100%; }
    .roadmap-layout { grid-template-columns: 1fr; }
    .documents-layout { grid-template-columns: 1fr; gap: 28px; }
    .documents-copy { text-align: center; }
    .documents-title,
    .documents-subtitle { margin-inline: auto; }
    .documents-actions { justify-content: center; }
    .documents-visual { min-height: auto; }
    .documents-image { width: min(100%, 620px); }
    .documents-badges { margin-top: -32px; }
    .trust-layout { grid-template-columns: 1fr; gap: 26px; text-align: center; }
    .trust-title, .trust-quote { margin-inline: auto; }
    .trust-visual { min-height: auto; }
    .trust-family-image { width: min(100%, 650px); }
    .abroad-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .abroad-footer { grid-template-columns: 1fr; text-align: center; justify-items: center; }
    .accreditation-panel { grid-template-columns: 1fr; }
    .reviews-grid { grid-template-columns: 1fr; max-width: 720px; margin-inline: auto; }
    .faq-head { grid-template-columns: 1fr; text-align: center; justify-items: center; }
    .faq-head p { margin-inline: auto; }
    .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .footer-requisites-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .footer-about { max-width: 100%; }
    #hero::before {
        background:
                linear-gradient(90deg, rgba(255,255,255,.88) 0%, rgba(255,255,255,.65) 55%, rgba(4,22,45,.10) 100%),
                linear-gradient(180deg, rgba(255,255,255,.02) 0%, rgba(5,38,77,.20) 100%);
    }
}

@media (max-width: 991.98px) {
    .support-top { grid-template-columns: 1fr; gap: 24px; text-align: center; }
    .support-title, .support-subtitle { margin-inline: auto; }
    .support-visual { min-height: 270px; }
    .support-cards { grid-template-columns: 1fr; }
    .support-empathy { grid-template-columns: 1fr; text-align: center; justify-items: center; }
    .btn-support { width: min(100%, 320px); }
}

@media (max-width: 767.98px) {
    :root { --header-h: 58px; }

    .mobile-menu-panel { padding: 12px 0 16px; }
    .mobile-menu-card { border-radius: 16px; }
    .mobile-menu-nav { grid-template-columns: 1fr; }
    .mobile-menu-actions { grid-template-columns: 1fr; }
    .brand-logo-img { width: 142px; }
    .navbar-brand { font-size: 13px; gap: 8px; }
    .hero-bg { background-position: 63% center; }
    .hero-inner { padding-block: 22px 26px; }
    .hero-card { width: 100%; padding: 22px 16px 20px; border-radius: 16px; }
    .hero-title { max-width: 100%; font-size: clamp(24px, 7.6vw, 31px); letter-spacing: 0; overflow-wrap: anywhere; line-height: 1.06; }
    .section-title { font-size: clamp(26px, 7.8vw, 32px); letter-spacing: 0; }
    .hero-subtitle { font-size: 14px; }
    .hero-checklist { font-size: 12px; }
    .hero-benefits { grid-template-columns: 1fr; gap: 8px; }
    .benefit-card { min-height: auto; }
    .hero-card { display: flex; flex-direction: column; }
    .hero-title { order: 1; }
    .hero-subtitle { order: 2; }
    .hero-checklist { order: 3; }
    .hero-cta-row { order: 4; }
    .hero-benefits { order: 5; margin-top: 14px; }
    .hero-cta-row { grid-template-columns: 1fr; gap: 10px; }
    .hero-info-card { padding: 16px; border-radius: 16px; }
    #section-02 { padding: 34px 0 40px; }
    .section-subtitle { margin-bottom: 22px; font-size: 15px; }
    .audience-grid { grid-template-columns: 1fr; gap: 14px; }
    .audience-card-title { min-height: auto; font-size: 13px; }
    .audience-card-text { min-height: auto; font-size: 13px; }

    .audience-cta { padding: 16px; gap: 12px; }
    .audience-cta-text { font-size: 15px; }
    .btn-dl-wide { min-width: 0; width: 100%; }
    #section-03 { padding: 36px 0 44px; }
    .route-cards { grid-template-columns: 1fr; gap: 26px; }
    .route-card { min-height: auto; }
    .route-card p:last-child { text-align: center; }
    .routes-main-cta { margin-bottom: 24px; }
    .format-panel { padding: 20px 14px 18px; border-radius: 18px; }
    .format-content { gap: 22px; }
    .comparison-table { min-width: 620px; }
    .comparison-scroll { overflow-x: auto; padding-bottom: 4px; }
    .format-steps { min-height: 214px; padding-inline: 0; gap: 10px; }
    .format-step-label { font-size: 11px; min-height: 38px; }
    .format-step-box { font-size: 13px; }
    #section-05 { padding: 38px 0 46px; }
    .roadmap-layout { gap: 20px; }
    .roadmap-title { font-size: clamp(29px, 9vw, 38px); }
    .roadmap-subtitle { font-size: 15px; margin-bottom: 20px; }
    .roadmap-step { grid-template-columns: 36px 1fr; gap: 10px; }
    .roadmap-steps::before { left: 17px; }
    .roadmap-step-number { width: 36px; height: 36px; border-radius: 12px; font-size: 14px; }
    .roadmap-step-body { padding: 12px 14px; }
    .roadmap-step-body h3 { font-size: 14px; }
    .roadmap-step-body p { font-size: 12px; }
    .roadmap-visual { min-height: auto; padding-top: 10px; }
    .roadmap-device { width: 100%; }
    .roadmap-visual::before { inset: 24px 0 8px; border-radius: 22px; }
    .roadmap-floating { position: relative; inset: auto !important; min-width: 0; width: 100%; margin-top: 10px; }
    .roadmap-result { padding: 0; }
    .btn-roadmap { width: 100%; }
    #section-06 { padding: 38px 0 46px; }
    .support-title { font-size: clamp(28px, 8.6vw, 36px); }
    .support-subtitle { font-size: 15px; }
    .support-visual-card { min-height: 230px; border-radius: 22px; }
    .support-doc { left: 24px; width: 132px; height: 164px; }
    .support-shield { right: 76px; bottom: 18px; width: 84px; height: 94px; }
    .support-shield svg { width: 100%; height: 100%; }
    .support-bubble { right: 24px; top: 48px; width: 78px; height: 70px; }
    .support-plant { right: 30px; bottom: 24px; }
    .support-card { padding: 18px 16px; }
    .support-empathy { padding: 18px 16px; }
    .btn-support { width: 100%; }
    #section-07 { padding: 40px 0 48px; }
    .documents-title { font-size: clamp(30px, 9vw, 38px); }
    .documents-subtitle { font-size: 15px; }
    .documents-list li { grid-template-columns: 36px 1fr; padding: 12px 14px; text-align: left; }
    .documents-list-icon { width: 36px; height: 36px; border-radius: 12px; }
    .documents-actions { display: grid; grid-template-columns: 1fr; }
    .documents-actions .btn { width: 100%; }
    .documents-visual { padding: 14px 14px 0; border-radius: 22px; }
    .documents-visual::before { height: 30%; }
    .documents-badges { grid-template-columns: 1fr; margin-top: 10px; }
    .documents-badge { min-height: auto; }
    #section-08 { padding: 40px 0 48px; }
    .trust-layout {
        min-height: 660px;
        grid-template-columns: 1fr;
        padding: 24px 16px;
        align-items: start;
        text-align: left;
    }
    .trust-layout::before {
        background:
                linear-gradient(180deg, rgba(246,251,255,.98) 0%, rgba(246,251,255,.94) 42%, rgba(246,251,255,.42) 70%, rgba(246,251,255,.18) 100%),
                linear-gradient(90deg, rgba(246,251,255,.72), rgba(246,251,255,.12));
    }
    .trust-copy { max-width: 100%; }
    .trust-title { font-size: clamp(28px, 8.6vw, 36px); }
    .trust-quote { padding: 20px 18px; }
    .trust-quote p { font-size: 14px; }
    .trust-family-image { object-position: 64% center; }
    .abroad-panel { padding: 20px 15px 18px; border-radius: 20px; }
    .abroad-head { grid-template-columns: 1fr; text-align: center; justify-items: center; }
    .abroad-cards { grid-template-columns: 1fr; }
    .abroad-card { min-height: auto; }
    .abroad-footer { grid-template-columns: minmax(0, 1fr); min-width: 0; }
    .abroad-footer p { min-width: 0; }
    .btn-abroad { width: 100%; white-space: normal; line-height: 1.15; }
    #section-accreditation { padding: 40px 0 48px; }
    .accreditation-panel { padding: 20px 15px; border-radius: 20px; }
    .accreditation-title { font-size: clamp(31px, 9vw, 40px); }
    .accreditation-text { font-size: 15px; }
    .accreditation-actions { display: grid; grid-template-columns: 1fr; }
    .btn-accreditation-primary { width: 100%; white-space: normal; line-height: 1.2; }
    #section-09 { padding: 40px 0 48px; }
    .reviews-title { font-size: clamp(32px, 9vw, 40px); }
    .reviews-subtitle { font-size: 15px; }
    .review-card { padding: 18px 16px; }
    .review-avatar { width: 62px; height: 62px; }
    .faq-panel { padding: 20px 14px 16px; border-radius: 20px; }
    .faq-item summary { padding: 15px 14px; font-size: 14px; }
    .faq-item p { padding: 0 14px 15px; font-size: 13px; }
    .btn-faq { width: 100%; }
    .footer-main { padding: 34px 0 24px; }
    .footer-grid { grid-template-columns: 1fr; gap: 24px; }
    .footer-requisites-grid { grid-template-columns: 1fr; }
    .footer-legal-note { grid-template-columns: 1fr; justify-items: start; }
    .footer-bottom-row { flex-direction: column; align-items: flex-start; }

    .lead-modal-backdrop { padding: 12px; align-items: flex-end; }
    .lead-modal { width: 100%; max-height: 94vh; border-radius: 22px 22px 0 0; }
    .lead-modal-header { padding: 22px 18px 14px; }
    .lead-form { padding: 18px; }
    .lead-form-grid { grid-template-columns: 1fr; }
    .lead-submit-row { display: grid; grid-template-columns: 1fr; }
    .btn-lead-submit { width: 100%; }
    body { padding-bottom: 64px; }
    body.is-modal-open .mobile-sticky-cta { display: none; }
    #section-04 { padding: 36px 0 44px; }
    .platform-head { margin-bottom: 22px; }
    .platform-subtitle { font-size: 15px; }
    .platform-points { grid-template-columns: 1fr; gap: 12px; }
    .platform-point { min-height: auto; padding: 15px 14px; }
    .platform-visual { padding-top: 0; }
    .platform-note { grid-template-columns: 1fr; text-align: center; padding: 17px 14px; }
    .platform-note-icon { margin-inline: auto; }
}

@media (max-width: 420px) {
    .container { padding-inline: 14px; }
    .hero-card { background: rgba(255,255,255,.95); }
    .hero-title { letter-spacing: 0; }
    .routes-title { font-size: 30px; }
    .format-title { font-size: 25px; }
}