:root {
    --km-blue: #05427e;
    --km-blue-deep: #042f5c;
    --km-blue-soft: #a4dafa;
    --km-ink: #101820;
    --km-text: #22313f;
    --km-muted: #5b6a79;
    --km-line: #dde5ec;
    --km-surface: #f6f9fc;
    --km-surface-strong: #edf3f8;
    --km-media: #b0b9c2;
    --km-white: #fff;
    --km-shadow: 0 24px 60px rgba(4, 47, 92, .12);
}

body {
    margin: 0;
    background: var(--km-surface);
}

body > main {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

.kapsmedia-site {
    min-height: 100vh;
    color: var(--km-text);
    background: linear-gradient(180deg, #fff 0%, #fff 38%, var(--km-surface) 100%);
    font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", Arial, sans-serif;
    font-size: 18px;
    line-height: 1.55;
}

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

.kapsmedia-site [id] {
    scroll-margin-top: 138px;
}

.km-container {
    width: min(100% - 72px, 1680px);
    margin: 0 auto;
}

.km-header {
    position: sticky;
    top: 0;
    z-index: 30;
    background: rgba(255, 255, 255, .92);
    border-bottom: 1px solid rgba(221, 229, 236, .72);
    backdrop-filter: blur(18px);
}

.km-header__inner {
    display: grid;
    grid-template-columns: minmax(220px, 292px) minmax(0, 1fr) auto auto;
    align-items: center;
    min-height: 94px;
    gap: 28px;
}

.km-header__logo {
    display: inline-flex;
    align-items: center;
    width: min(292px, 100%);
}

.km-header__logo img {
    display: block;
    width: 100%;
    height: auto;
}

.km-nav {
    justify-self: end;
}

.km-nav__list {
    display: flex;
    align-items: center;
    gap: 32px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.km-nav__item {
    position: relative;
}

.km-nav__item.has-children::after {
    content: "";
    position: absolute;
    z-index: 1;
    top: 100%;
    right: -20px;
    left: -20px;
    height: 18px;
}

.km-nav__link {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    color: var(--km-muted);
    font-size: 17px;
    font-weight: 650;
    text-decoration: none;
    white-space: nowrap;
}

.km-nav__link:hover,
.km-nav__link:focus-visible {
    color: var(--km-blue);
}

.km-nav__list--level-2,
.km-nav__list--level-3,
.km-nav__list--level-4,
.km-nav__list--level-5,
.km-nav__list--level-6 {
    position: absolute;
    top: calc(100% + 10px);
    left: -18px;
    display: grid;
    min-width: 230px;
    gap: 2px;
    padding: 10px;
    background: var(--km-white);
    border: 1px solid var(--km-line);
    border-radius: 8px;
    box-shadow: var(--km-shadow);
    z-index: 2;
    opacity: 0;
    pointer-events: none;
    transform: translateY(8px);
    transition: opacity .18s ease, transform .18s ease;
}

.km-nav__list--level-3,
.km-nav__list--level-4,
.km-nav__list--level-5,
.km-nav__list--level-6 {
    top: -10px;
    left: calc(100% + 8px);
}

.km-nav__list--level-2 .km-nav__item.has-children::after,
.km-nav__list--level-3 .km-nav__item.has-children::after,
.km-nav__list--level-4 .km-nav__item.has-children::after,
.km-nav__list--level-5 .km-nav__item.has-children::after,
.km-nav__list--level-6 .km-nav__item.has-children::after {
    top: -10px;
    bottom: -10px;
    left: 100%;
    width: 14px;
    height: auto;
}

.km-nav__item:hover > .km-nav__list,
.km-nav__item:focus-within > .km-nav__list {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}

.km-nav__list--level-2 .km-nav__link,
.km-nav__list--level-3 .km-nav__link,
.km-nav__list--level-4 .km-nav__link,
.km-nav__list--level-5 .km-nav__link,
.km-nav__list--level-6 .km-nav__link {
    justify-content: space-between;
    width: 100%;
    min-height: 40px;
    padding: 0 10px;
    border-radius: 6px;
    font-size: 16px;
}

.km-nav__list--level-2 .km-nav__link:hover,
.km-nav__list--level-3 .km-nav__link:hover,
.km-nav__list--level-4 .km-nav__link:hover,
.km-nav__list--level-5 .km-nav__link:hover,
.km-nav__list--level-6 .km-nav__link:hover {
    background: var(--km-surface);
}

.km-nav-toggle {
    display: none;
    width: 44px;
    height: 44px;
    padding: 11px;
    border: 1px solid var(--km-line);
    border-radius: 8px;
    background: var(--km-white);
}

.km-nav-toggle span {
    display: block;
    height: 2px;
    margin: 5px 0;
    background: var(--km-blue-deep);
}

.km-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 58px;
    padding: 0 30px;
    border: 1px solid var(--km-blue);
    border-radius: 999px;
    background: var(--km-blue);
    color: var(--km-white);
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}

.km-button:hover,
.km-button:focus-visible {
    background: var(--km-blue-deep);
    border-color: var(--km-blue-deep);
}

.km-button--small {
    min-height: 52px;
    padding: 0 28px;
}

.km-button--ghost {
    background: var(--km-white);
    border-color: var(--km-line);
    color: var(--km-blue-deep);
}

.km-button--ghost:hover,
.km-button--ghost:focus-visible {
    background: var(--km-surface);
    border-color: var(--km-line);
    color: var(--km-blue);
}

.km-button--light {
    background: var(--km-white);
    border-color: var(--km-white);
    color: var(--km-blue-deep);
}

.km-button--light:hover,
.km-button--light:focus-visible {
    background: var(--km-blue-soft);
    border-color: var(--km-blue-soft);
    color: var(--km-blue-deep);
}

.km-text-link {
    display: inline-flex;
    margin-top: 18px;
    color: var(--km-blue);
    font-weight: 700;
    text-decoration: none;
}

.km-text-link:hover,
.km-text-link:focus-visible {
    color: var(--km-blue-deep);
    text-decoration: underline;
    text-underline-offset: 5px;
}

.km-edit-link {
    display: inline-flex;
    margin-top: 16px;
    color: var(--km-muted);
    font-size: 14px;
}

.km-hero {
    padding: 94px 0 34px;
}

.km-hero__inner {
    display: grid;
    grid-template-columns: minmax(0, .98fr) minmax(360px, .82fr);
    align-items: center;
    gap: 72px;
}

.km-eyebrow {
    display: flex;
    align-items: center;
    gap: 18px;
    margin: 0 0 28px;
    color: var(--km-blue);
    font-size: 15px;
    font-weight: 750;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.km-eyebrow::before {
    content: "";
    width: 54px;
    height: 4px;
    background: currentColor;
}

.km-hero h1,
.km-page h1,
.km-editor-content h1 {
    max-width: 980px;
    margin: 0;
    color: var(--km-ink);
    font-size: clamp(48px, 6vw, 78px);
    font-weight: 650;
    line-height: 1.08;
    letter-spacing: 0;
}

.km-hero__text {
    max-width: 860px;
    margin-top: 30px;
    font-size: 24px;
}

.km-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    margin-top: 42px;
}

.km-hero__copy .km-actions {
    justify-content: flex-end;
}

.km-proof {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 34px;
    margin: 72px 0 0;
    padding: 0;
    list-style: none;
}

.km-proof strong,
.km-proof span {
    display: block;
}

.km-proof strong {
    color: var(--km-blue-deep);
    font-size: 30px;
    line-height: 1.2;
}

.km-proof span {
    margin-top: 8px;
    color: var(--km-muted);
    font-size: 16px;
}

.km-hero__visual {
    position: relative;
    min-height: 560px;
}

.km-consult-visual {
    position: absolute;
    inset: 0 0 58px 0;
    overflow: hidden;
    border: 1px solid var(--km-line);
    border-radius: 8px;
    background:
        linear-gradient(150deg, rgba(5, 66, 126, .1) 0 32%, transparent 32% 100%),
        linear-gradient(26deg, rgba(164, 218, 250, .2) 0 28%, transparent 28% 100%),
        #f4f8fb;
    box-shadow: var(--km-shadow);
}

.km-consult-visual::before {
    content: "";
    position: absolute;
    top: 68px;
    left: 8%;
    right: 10%;
    height: 276px;
    border: 1px solid #d2dee8;
    border-radius: 8px;
    background:
        linear-gradient(#fff 0 54px, transparent 54px 100%),
        linear-gradient(90deg, transparent 0 34%, #e8f0f6 34% calc(34% + 1px), transparent calc(34% + 1px) 100%),
        #f9fbfd;
    box-shadow: 0 20px 44px rgba(27, 45, 65, .08);
}

.km-consult-visual::after {
    content: "";
    position: absolute;
    top: 246px;
    left: 23%;
    width: 47%;
    height: 118px;
    border-top: 4px solid rgba(5, 66, 126, .72);
    border-right: 4px solid rgba(5, 66, 126, .72);
    border-bottom: 4px solid rgba(5, 66, 126, .72);
    border-left: 0;
    border-radius: 0 74px 74px 0;
}

.km-consult-visual span {
    position: absolute;
    display: block;
    border-radius: 7px;
    background: var(--km-white);
    border: 1px solid #c4d1dc;
    box-shadow: 0 14px 34px rgba(27, 45, 65, .08);
}

.km-consult-visual span:nth-child(1) {
    top: 122px;
    right: 8%;
    width: min(220px, 31%);
    aspect-ratio: 1.45;
    background: var(--km-blue-deep);
    border-color: rgba(4, 47, 92, .2);
}

.km-consult-visual span:nth-child(1)::before,
.km-consult-visual span:nth-child(1)::after {
    content: "";
    position: absolute;
    left: 16%;
    height: 6px;
    border-radius: 999px;
    background: var(--km-blue-soft);
}

.km-consult-visual span:nth-child(1)::before {
    top: 28%;
    width: 68%;
}

.km-consult-visual span:nth-child(1)::after {
    top: 49%;
    width: 52%;
    background: var(--km-media);
}

.km-consult-visual span:nth-child(2) {
    top: 128px;
    left: 10%;
    width: min(260px, 35%);
    aspect-ratio: 2.05;
}

.km-consult-visual span:nth-child(2)::before {
    content: "";
    position: absolute;
    top: 25%;
    left: 14%;
    width: 54%;
    height: 5px;
    border-radius: 999px;
    background: var(--km-blue);
    box-shadow: 0 24px 0 #dbe7f0, 0 48px 0 #dbe7f0;
}

.km-consult-visual span:nth-child(2)::after {
    content: "";
    position: absolute;
    top: 22%;
    right: 10%;
    width: 34px;
    height: 34px;
    border: 7px solid #dbe7f0;
    border-top-color: var(--km-blue-soft);
    border-right-color: var(--km-blue);
    border-radius: 50%;
}

.km-consult-visual span:nth-child(3) {
    top: 350px;
    left: 18%;
    width: min(284px, 42%);
    aspect-ratio: 2.25;
}

.km-consult-visual span:nth-child(3)::before {
    content: "";
    position: absolute;
    bottom: 22%;
    left: 12%;
    width: 15%;
    height: 42%;
    border-radius: 6px 6px 0 0;
    background: #dbe7f0;
    box-shadow: 72px -22px 0 var(--km-blue-soft), 144px -8px 0 var(--km-blue);
}

.km-consult-visual span:nth-child(3)::after {
    content: "";
    position: absolute;
    top: 23%;
    left: 12%;
    width: 52%;
    height: 5px;
    border-radius: 999px;
    background: var(--km-blue);
}

.km-consult-visual span:nth-child(4) {
    top: 232px;
    left: 14%;
    width: 78px;
    height: 78px;
    border: 0;
    border-radius: 50%;
    background:
        radial-gradient(circle at 50% 50%, var(--km-white) 0 9px, transparent 10px),
        radial-gradient(circle at 50% 50%, transparent 0 24px, rgba(255, 255, 255, .32) 25px 28px, transparent 29px),
        var(--km-blue);
    box-shadow: 0 14px 34px rgba(5, 66, 126, .18);
}

.km-consult-visual span:nth-child(4)::before {
    content: "";
    position: absolute;
    inset: 11px;
    border: 2px solid rgba(255, 255, 255, .42);
    border-radius: 50%;
}

.km-consult-visual span:nth-child(4)::after {
    content: "";
    position: absolute;
    right: -28px;
    top: 50%;
    width: 38px;
    height: 4px;
    border-radius: 999px;
    background: rgba(5, 66, 126, .72);
    transform: translateY(-50%);
}

.km-hero-note {
    position: absolute;
    right: 34px;
    bottom: 0;
    width: min(448px, calc(100% - 68px));
    padding: 34px;
    border: 1px solid var(--km-line);
    border-radius: 8px;
    background: var(--km-white);
}

.km-hero-note h2 {
    margin: 0 0 18px;
    color: var(--km-ink);
    font-size: 30px;
    line-height: 1.18;
}

.km-section {
    padding: 92px 0;
}

.km-section--orientation {
    padding-top: 38px;
}

.km-orientation {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 72px;
    padding: 50px;
    border: 1px solid var(--km-line);
    border-radius: 8px;
    background: var(--km-white);
}

.km-orientation h2,
.km-section-head h2,
.km-closing h2,
.km-editor-content h2 {
    margin: 0;
    color: var(--km-ink);
    font-size: clamp(34px, 4vw, 50px);
    font-weight: 650;
    line-height: 1.15;
    letter-spacing: 0;
}

.km-orientation .km-richtext {
    margin-top: 28px;
    max-width: 780px;
    font-size: 23px;
}

.km-orientation aside {
    padding-left: 40px;
    border-left: 1px solid var(--km-line);
}

.km-orientation aside .km-eyebrow {
    margin-bottom: 22px;
    font-size: 14px;
}

.km-section-head {
    max-width: 960px;
    margin-bottom: 58px;
}

.km-section-head--wide {
    max-width: 1120px;
}

.km-section-head .km-richtext {
    margin-top: 26px;
    font-size: 23px;
}

.km-heading > :first-child {
    margin-top: 0;
}

.km-heading > :last-child {
    margin-bottom: 0;
}

.km-solutions__grid,
.km-projects__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 36px;
}

.km-solutions__grid--depth-1,
.km-projects__grid--depth-1,
.km-solutions__grid--depth-2,
.km-projects__grid--depth-2,
.km-solutions__grid--depth-3,
.km-projects__grid--depth-3 {
    grid-template-columns: 1fr;
    gap: 16px;
    margin-top: 24px;
}

.km-solutions__item,
.km-projects__item {
    min-width: 0;
    padding-top: 26px;
    border-top: 3px solid var(--km-line);
}

.km-solutions__grid--depth-0 > .km-solutions__item:first-child,
.km-projects__grid--depth-0 > .km-projects__item:first-child {
    border-top-color: var(--km-blue);
}

.km-solutions__grid--depth-1 .km-solutions__item,
.km-projects__grid--depth-1 .km-projects__item {
    padding: 20px 0 0 22px;
    border-top-width: 1px;
    border-left: 3px solid var(--km-line);
}

.km-solutions__kicker,
.km-projects__kicker {
    margin: 0 0 12px;
    color: var(--km-blue);
    font-size: 14px;
    font-weight: 750;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.km-solutions__item h3,
.km-projects__item h3 {
    margin: 0 0 16px;
    color: var(--km-ink);
    font-size: 28px;
    line-height: 1.2;
    letter-spacing: 0;
}

.km-projects__grid--depth-0 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.km-projects__grid--depth-0 > .km-projects__item {
    padding: 32px;
    border: 1px solid var(--km-line);
    border-top: 4px solid var(--km-blue);
    border-radius: 8px;
    background: var(--km-white);
}

.km-section--closing {
    padding-bottom: 72px;
}

.km-closing {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 42px;
    padding: 38px 46px;
    border-radius: 8px;
    background: var(--km-blue-deep);
    color: #d9e8f3;
}

.km-closing h2 {
    color: var(--km-white);
    font-size: clamp(28px, 3vw, 34px);
}

.km-closing .km-richtext {
    margin-top: 12px;
}

.km-closing .km-actions {
    justify-self: end;
    margin-top: 0;
}

.km-footer {
    border-top: 1px solid var(--km-line);
    background: var(--km-white);
}

.km-footer__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    min-height: 96px;
    color: var(--km-muted);
    font-size: 16px;
}

.km-footer p {
    margin: 0;
}

.km-footer__links {
    display: flex;
    flex-wrap: wrap;
    gap: 22px;
}

.km-footer__links a {
    color: var(--km-blue-deep);
    text-decoration: none;
}

.km-page {
    padding: 92px 0 120px;
}

.km-page__inner {
    max-width: 1180px;
}

.km-page .km-richtext {
    margin-top: 42px;
    font-size: 21px;
}

.km-richtext {
    color: var(--km-text);
}

.km-richtext > :first-child {
    margin-top: 0;
}

.km-richtext > :last-child {
    margin-bottom: 0;
}

.km-richtext p,
.km-richtext ul,
.km-richtext ol {
    margin: 0 0 1em;
}

.km-richtext a {
    color: var(--km-blue);
    font-weight: 650;
}

.km-richtext h1,
.km-richtext h2,
.km-richtext h3 {
    color: var(--km-ink);
    letter-spacing: 0;
}

.km-richtext img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
}

.kapsmedia-site .vintario-form-block {
    width: 100%;
    max-width: none;
    margin-top: 46px;
    padding: 34px;
    border: 1px solid var(--km-line);
    border-radius: 8px;
    background: var(--km-white);
    box-shadow: 0 18px 48px rgba(4, 47, 92, .08);
}

.kapsmedia-site .vintario-form-block h2 {
    display: none;
}

.kapsmedia-site .vintario-form-block form {
    display: grid;
    width: 100%;
    max-width: none;
    gap: 20px;
}

.kapsmedia-site .vintario-form-block label {
    display: grid;
    width: 100%;
    max-width: none;
    gap: 8px;
    margin: 0;
    color: var(--km-text);
    font-size: 16px;
    font-weight: 650;
}

.kapsmedia-site .vintario-field-label {
    display: block;
}

.kapsmedia-site .required {
    color: var(--km-blue);
}

.kapsmedia-site .vintario-form-block input:not([type="checkbox"]),
.kapsmedia-site .vintario-form-block textarea,
.kapsmedia-site .vintario-form-block select {
    width: 100%;
    min-height: 54px;
    padding: 13px 15px;
    border: 1px solid #cbd7e1;
    border-radius: 8px;
    background: #fff;
    color: var(--km-ink);
    font: inherit;
    font-size: 17px;
    font-weight: 450;
}

.kapsmedia-site .vintario-form-block textarea {
    min-height: 170px;
    resize: vertical;
}

.kapsmedia-site .vintario-form-block input:focus,
.kapsmedia-site .vintario-form-block textarea:focus,
.kapsmedia-site .vintario-form-block select:focus {
    border-color: var(--km-blue);
    box-shadow: 0 0 0 4px rgba(5, 66, 126, .12);
    outline: 0;
}

.kapsmedia-site .vintario-form-block .checkbox-label {
    grid-template-columns: 22px minmax(0, 1fr);
    align-items: start;
    gap: 12px;
    color: var(--km-muted);
    font-size: 15px;
    font-weight: 500;
    line-height: 1.45;
}

.kapsmedia-site .vintario-form-block .checkbox-label input {
    width: 20px;
    height: 20px;
    margin-top: 2px;
    accent-color: var(--km-blue);
}

.kapsmedia-site .vintario-form-block button[type="submit"] {
    justify-self: end;
    min-height: 58px;
    padding: 0 32px;
    border: 1px solid var(--km-blue);
    border-radius: 999px;
    background: var(--km-blue);
    color: var(--km-white);
    font: inherit;
    font-size: 17px;
    font-weight: 700;
    cursor: pointer;
}

.kapsmedia-site .vintario-form-block button[type="submit"]:hover,
.kapsmedia-site .vintario-form-block button[type="submit"]:focus-visible {
    background: var(--km-blue-deep);
    border-color: var(--km-blue-deep);
}

@media (max-width: 1080px) {
    .km-header__inner {
        grid-template-columns: minmax(190px, 260px) auto auto;
    }

    .km-nav-toggle {
        display: inline-grid;
        justify-self: end;
    }

    .km-nav {
        position: absolute;
        top: 100%;
        right: 28px;
        left: 28px;
        display: none;
        padding: 18px;
        border: 1px solid var(--km-line);
        border-radius: 8px;
        background: var(--km-white);
        box-shadow: var(--km-shadow);
    }

    .km-header.is-menu-open .km-nav {
        display: block;
    }

    .km-nav__list {
        display: grid;
        gap: 2px;
    }

    .km-nav__list--level-2,
    .km-nav__list--level-3,
    .km-nav__list--level-4,
    .km-nav__list--level-5,
    .km-nav__list--level-6 {
        position: static;
        min-width: 0;
        padding: 4px 0 8px 18px;
        border: 0;
        box-shadow: none;
        opacity: 1;
        pointer-events: auto;
        transform: none;
    }

    .km-nav__item.has-children::after {
        content: none;
    }

    .km-hero__inner {
        grid-template-columns: 1fr;
    }

    .km-hero__visual {
        min-height: 500px;
    }

    .km-orientation,
    .km-closing {
        grid-template-columns: 1fr;
    }

    .km-orientation aside {
        padding: 32px 0 0;
        border-top: 1px solid var(--km-line);
        border-left: 0;
    }

    .km-solutions__grid,
    .km-projects__grid,
    .km-projects__grid--depth-0 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .kapsmedia-site [id] {
        scroll-margin-top: 112px;
    }

    .km-container {
        width: min(100% - 32px, 1680px);
    }

    .km-header__inner {
        grid-template-columns: minmax(164px, 220px) auto;
        min-height: 78px;
        gap: 14px;
    }

    .km-header .km-button--small {
        display: none;
    }

    .km-hero {
        padding-top: 58px;
    }

    .km-hero h1,
    .km-page h1 {
        font-size: clamp(40px, 12vw, 56px);
    }

    .km-hero__text,
    .km-section-head .km-richtext,
    .km-orientation .km-richtext {
        font-size: 20px;
    }

    .km-actions,
    .km-footer__inner,
    .km-footer__links {
        align-items: stretch;
        flex-direction: column;
    }

    .km-button {
        width: 100%;
    }

    .km-proof,
    .km-solutions__grid,
    .km-projects__grid,
    .km-projects__grid--depth-0 {
        grid-template-columns: 1fr;
    }

    .km-hero__visual {
        min-height: 420px;
    }

    .km-hero-note {
        right: 18px;
        left: 18px;
        width: auto;
        padding: 26px;
    }

    .km-orientation,
    .km-closing {
        padding: 28px;
    }

    .km-section {
        padding: 64px 0;
    }

    .kapsmedia-site .vintario-form-block {
        padding: 24px;
    }

    .kapsmedia-site .vintario-form-block button[type="submit"] {
        width: 100%;
    }
}
