:root {
    --kkf-ink: #061522;
    --kkf-navy: #0a2438;
    --kkf-navy-soft: #103653;
    --kkf-line: rgba(148, 184, 213, 0.18);
    --kkf-text: #edf5fb;
    --kkf-muted: #aabccc;
    --kkf-gold: #d1ab72;
    --kkf-blue: #5ea8e7;
    --kkf-radius: 26px;
}

.kkf-footer,
.kkl-page {
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.kkf-footer {
    position: relative;
    overflow: hidden;
    color: var(--kkf-text);
    background:
        radial-gradient(circle at 14% -10%, rgba(54, 124, 180, 0.22), transparent 34%),
        radial-gradient(circle at 90% 0%, rgba(209, 171, 114, 0.13), transparent 30%),
        linear-gradient(180deg, #071827 0%, #04101a 100%);
    border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.kkf-footer__glow {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(110deg, transparent 0 44%, rgba(255,255,255,.025) 50%, transparent 56%);
}

.kkf-container,
.kkl-container {
    width: min(1180px, calc(100% - 32px));
    margin-inline: auto;
}

.kkf-footer__top {
    position: relative;
    display: grid;
    grid-template-columns: 1fr;
    gap: 34px;
    padding: 58px 0 44px;
}

.kkf-footer__brand {
    max-width: 420px;
}

.kkf-brand,
.kkl-brand {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: #fff;
    text-decoration: none;
    font-weight: 800;
    letter-spacing: .19em;
}

.kkf-brand img,
.kkl-brand img {
    width: 34px;
    height: 34px;
}

.kkf-brand > span > span,
.kkl-brand > span > span {
    color: var(--kkf-gold);
}

.kkf-footer__brand p {
    margin: 22px 0 12px;
    color: #d7e4ee;
    line-height: 1.75;
    font-size: 1rem;
}

.kkf-footer__brand small {
    display: block;
    color: var(--kkf-muted);
    line-height: 1.55;
}

.kkf-footer__column {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    font-style: normal;
}

.kkf-footer__column h2 {
    margin: 0 0 7px;
    color: var(--kkf-gold);
    font-size: .75rem;
    line-height: 1.2;
    text-transform: uppercase;
    letter-spacing: .18em;
}

.kkf-footer__column a,
.kkf-footer__column span {
    color: var(--kkf-muted);
    text-decoration: none;
    line-height: 1.45;
    transition: color .35s ease, transform .35s ease;
}

.kkf-footer__column a:hover,
.kkf-footer__column a:focus-visible {
    color: #fff;
    transform: translateX(3px);
}

.kkf-footer__bottom {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 24px 0 30px;
    border-top: 1px solid var(--kkf-line);
    color: #8299ac;
    font-size: .84rem;
}

.kkf-footer__bottom div {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
}

.kkf-footer__bottom a {
    color: #aec0cf;
    text-decoration: none;
}

.kkf-footer__bottom a:hover,
.kkf-footer__bottom a:focus-visible {
    color: #fff;
}

.kkl-page {
    min-height: 100vh;
    color: #102638;
    background:
        radial-gradient(circle at 12% 2%, rgba(68, 143, 194, .15), transparent 30%),
        linear-gradient(180deg, #edf7fb 0%, #f8fbfc 45%, #edf4f7 100%);
}

.kkl-header {
    width: min(1180px, calc(100% - 32px));
    min-height: 84px;
    margin-inline: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.kkl-brand {
    color: #0b2e48;
}

.kkl-back {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #25445a;
    text-decoration: none;
    font-size: .9rem;
    font-weight: 700;
}

.kkl-hero {
    padding: clamp(58px, 9vw, 118px) 0 clamp(52px, 8vw, 88px);
    color: #fff;
    background:
        linear-gradient(100deg, rgba(5, 22, 35, .98), rgba(10, 48, 74, .92)),
        radial-gradient(circle at 80% 20%, rgba(209, 171, 114, .22), transparent 35%);
}

.kkl-eyebrow {
    display: inline-block;
    color: var(--kkf-gold);
    text-transform: uppercase;
    letter-spacing: .2em;
    font-size: .74rem;
    font-weight: 800;
}

.kkl-hero h1 {
    margin: 12px 0 16px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3rem, 9vw, 6.7rem);
    line-height: .95;
    letter-spacing: -.045em;
}

.kkl-hero p {
    max-width: 680px;
    margin: 0;
    color: #d1deea;
    line-height: 1.7;
    font-size: clamp(1rem, 2vw, 1.18rem);
}

.kkl-content {
    padding: clamp(52px, 8vw, 100px) 0;
}

.kkl-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 18px;
}

.kkl-card {
    position: relative;
    padding: clamp(26px, 5vw, 42px);
    border: 1px solid rgba(15, 56, 84, .12);
    border-radius: var(--kkf-radius);
    background: rgba(255, 255, 255, .88);
    box-shadow: 0 24px 70px rgba(14, 49, 73, .09);
}

.kkl-card__number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    margin-bottom: 22px;
    border-radius: 50%;
    color: #fff;
    background: linear-gradient(135deg, #1d74ad, #0c4368);
    font-size: .73rem;
    font-weight: 800;
    letter-spacing: .08em;
}

.kkl-card h2 {
    margin: 0 0 18px;
    color: #0c2d45;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.65rem, 4vw, 2.45rem);
    line-height: 1.08;
}

.kkl-card p {
    margin: 0;
    color: #516879;
    font-size: 1rem;
    line-height: 1.8;
}

.kkl-card strong {
    color: #15364e;
}

.kkl-card a {
    color: #0b6299;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

@media (min-width: 720px) {
    .kkf-footer__top {
        grid-template-columns: minmax(280px, 1.6fr) repeat(2, minmax(150px, .75fr));
    }

    .kkf-footer__contact {
        grid-column: 2 / -1;
    }

    .kkf-footer__bottom {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }

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

    .kkl-card--wide {
        grid-column: 1 / -1;
    }
}

@media (min-width: 1040px) {
    .kkf-footer__top {
        grid-template-columns: minmax(330px, 1.7fr) repeat(3, minmax(150px, .72fr));
        gap: 48px;
    }

    .kkf-footer__contact {
        grid-column: auto;
    }
}

@media (prefers-reduced-motion: reduce) {
    .kkf-footer__column a {
        transition: none;
    }
}

.kkl-breadcrumb {
    padding-top: 1rem;
    color: #5c7282;
}
.kkl-breadcrumb a {
    color: #315a75;
    text-decoration: none;
}
.kkl-breadcrumb a:hover,
.kkl-breadcrumb a:focus-visible { color: #0d6da7; }

@supports (content-visibility:auto){.kkf-footer{content-visibility:auto;contain-intrinsic-size:auto 520px}}

/* Mobile overflow hardening: legal page and shared footer */
.kkl-page,
.kkf-footer,
.kkl-main,
.kkl-content,
.kkl-grid,
.kkl-card,
.kkf-footer__top,
.kkf-footer__brand,
.kkf-footer__column,
.kkf-footer__bottom {
    min-width: 0;
    max-width: 100%;
}

.kkl-page,
.kkf-footer {
    overflow-x: clip;
}

.kkl-page *,
.kkf-footer * {
    min-width: 0;
}

.kkl-header {
    flex-wrap: wrap;
    row-gap: 12px;
    padding-block: 12px;
}

.kkl-breadcrumb ol {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.kkl-breadcrumb li + li::before {
    content: "/";
    margin-right: 10px;
    color: #8aa0af;
}

.kkl-card h2,
.kkl-card p,
.kkl-card a,
.kkl-card strong,
.kkl-hero h1,
.kkl-hero p,
.kkf-footer__brand p,
.kkf-footer__brand small,
.kkf-footer__column a,
.kkf-footer__column span,
.kkf-footer__bottom span,
.kkf-footer__bottom a {
    overflow-wrap: anywhere;
    word-break: normal;
    hyphens: auto;
}

@media (max-width: 479px) {
    .kkf-container,
    .kkl-container,
    .kkl-header {
        width: min(100% - 24px, 1180px);
    }

    .kkl-card {
        padding: 24px 20px;
        border-radius: 20px;
    }

    .kkl-card h2 {
        font-size: clamp(1.45rem, 8vw, 1.9rem);
    }

    .kkl-hero h1 {
        font-size: clamp(2.6rem, 16vw, 4rem);
    }

    .kkl-back {
        font-size: .82rem;
    }

    .kkf-footer__top {
        gap: 28px;
        padding-top: 46px;
    }

    .kkf-footer__contact a {
        display: inline-block;
        max-width: 100%;
    }
}


/* Privacy page */
.kkl-grid--privacy {
    grid-template-columns: 1fr;
}

.kkl-card__spaced {
    margin-top: 1rem !important;
}

.kkl-card__updated {
    margin-top: 1.35rem !important;
    padding-top: 1rem;
    border-top: 1px solid rgba(15, 56, 84, .12);
    color: #718797 !important;
    font-size: .9rem !important;
}

.kkl-card ul {
    margin: 1rem 0 0;
    padding-left: 1.2rem;
    color: #516879;
    line-height: 1.8;
}

.kkl-card li + li {
    margin-top: .4rem;
}

@media (max-width: 479px) {
    .kkl-grid--privacy .kkl-card {
        padding-inline: 18px;
    }
}
