/* Our custom fonts */
@font-face                                                                  { font-family: 'kmfont'; src: url('../fonts/km_font.woff2') format('woff2'); font-weight: 200 600; font-style: normal; font-display: swap; }
@font-face                                                                  { font-family: 'kmserif'; src: url('../fonts/km_serif.woff2') format('woff2'); font-weight: 200 600; font-style: normal; font-display: swap; }

/* Body & HTML */
html                                                                        { scroll-behavior: smooth; }
body                                                                        { background: #FFFFFF; color: #000; font-family: "kmfont", sans-serif; font-weight: 400; }

::selection                                                                 { background: #2255FF; color: #000; }
::-moz-selection                                                            { background: #2255FF; color: #000; }
.mycursor                                                                   { cursor: pointer; }
.noselect                                                                   { -webkit-touch-callout: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; }
.my_rotate_90                                                               { transform: rotate(90deg); }
.w_90p                                                                      { width: 90%; }

/* Our palette */
.bg_0                                                                       { background-color: #051C2C;}
.bg_1                                                                       { background-color: #2255FF;}
.bg_2                                                                       { background-color: #00A9F4;}
.bg_focus                                                                   { background-color: #D6F3FF;}
.bg_strategic_challenges                                                    { background-color: #d8e2dc;}
.bg_strategic_impact                                                        { background-color: #3C3546;}
.bg_what_we_frequently_observe                                              { background-color: #006d77; }
.bg_case_studies                                                            { background-color: #e3d5ca;}

.bg_pov                                                                     { background-color: #ffe6a7;}

.c_1,
.km_card:hover .km_cardtitle[data-hover-color="c_1"],
.km_card:focus-within .km_cardtitle[data-hover-color="c_1"]                    { color: #2255FF !important; }

/* Typography */
:root {
    
    --km_hero_title: clamp(3.0rem, 6vw, 3.0rem);
    --km_hero_subtitle: 1.6rem;

    --km_title: clamp(2.4rem, 2.6vw, 2.6rem);
    --km_page_title: clamp(2.8rem, 4vw, 4.8rem);
    --km_title_md: clamp(1.8rem, 6vw, 1.8rem);
    --km_title_sm: clamp(1.6rem, 6vw, 1.6rem);

    --km_subtitle: clamp(1.6rem, 1.3vw, 1.6rem);
    --km_text: clamp(1rem, 1vw, 1.2rem);
    --km_text_md: clamp(1rem, 1vw, 1.1rem);
    --km_text_sm: clamp(1rem, 1vw, 1rem);

    --km_note: clamp(1rem, 1vw, 1rem);
    --km_disclaimer: clamp(0.8rem, 0.9vw, 0.8rem);

    --km_article_text: clamp(1.3rem, 6vw, 1.3rem);
    --km_article_small: clamp(1.25rem, 1.5vw, 1.55rem);

    --km_cardtitle: clamp(1.6rem, 1.2vw, 1.6rem);
    --km_cardtitle_serif: clamp(1.8rem, 1.2vw, 1.8rem);
    --km_cardsubtitle: clamp(1rem, 1vw, 1.1rem);
    
}

.km_hero_title                                                                  { font-family: 'kmserif', serif; font-size: var(--km_hero_title); font-weight: bold; color: inherit; }
.km_hero_subtitle                                                               { font-family: 'kmfont', sans-serif; font-size: var(--km_hero_subtitle); font-weight: 300; line-height: 1.35; color: inherit; }
.km_title                                                                       { font-family: 'kmserif', serif; font-size: var(--km_title); font-weight: bold; }
.km_page_title                                                                  { font-family: 'kmserif', serif; font-size: var(--km_page_title); font-weight: 500; line-height: 1.08; }
.km_title_md                                                                    { font-family: 'kmserif', serif; font-size: var(--km_title_md); }

.km_subtitle                                                                    { font-family: 'kmfont', sans-serif; font-size: var(--km_subtitle); font-weight: 300; }
.km_text                                                                        { font-family: 'kmfont', sans-serif; font-size: var(--km_text); }
.km_text_sm                                                                     { font-family: 'kmfont', sans-serif; font-size: var(--km_text_sm); }
.km_text_md                                                                     { font-family: 'kmfont', sans-serif; font-size: var(--km_text_md); }

.km_note                                                                        { font-family: 'kmfont', sans-serif; font-size: var(--km_note); }
.km_disclaimer                                                                  { font-family: 'kmfont', sans-serif; font-size: var(--km_disclaimer); }

.km_cardtitle                                                                   { font-family: 'kmfont', sans-serif; font-size: var(--km_cardtitle); color:#000; transition: color .25s ease; }
.km_cardtitle_serif                                                             { font-family: 'kmserif', serif; font-size: var(--km_cardtitle_serif); color:#000; transition: color .25s ease; }
.km_cardsubtitle                                                                { font-family: 'kmfont', sans-serif; font-size: var(--km_cardsubtitle); }

.km_title_sm                                                                    { font-family: 'kmserif', serif; font-size: var(--km_title_sm); }
.km_article_small                                                               { font-family: 'kmserif', serif; font-size: var(--km_article_small); font-weight: 500; line-height: 1.18; }
.km_article_text                                                                { font-family: 'kmserif', serif; font-size: var(--km_article_text); }

/* Fixed Size Fonts */
.km_footerlink                                                                  { cursor: pointer; font-family: 'kmfont', sans-serif; font-size: 1rem; font-weight: bold; color:#000; text-decoration: none; }
.km_footerlink:hover                                                            { color:#2255FF; text-decoration: underline;}


/* Logos */
.km_logo_header                                                                 { font-family: 'kmserif', serif; font-size: 1.9rem; }
.km_logo_footer                                                                 { font-family: 'kmserif', serif; font-size: 1.4rem; }

.text_highlight                                                                 { color: #2255FF !important; }

/* WATERMARKS */
.watermark_1                                                                    { background: #051C2C; background: linear-gradient(90deg, rgba(5, 28, 44, 1) 0%, rgba(5, 28, 44, 0.73) 45%, rgba(5, 28, 44, 0) 100%); }

/* HERO ANIMATIONS */
.km_hero_animation                                                             { position: absolute; inset: 0; z-index: 1; overflow: hidden; pointer-events: none; }
.km_hero_animation_svg                                                         { display: block; width: 100%; height: 100%; }
.km_hero_animation circle,
.km_hero_animation ellipse,
.km_hero_animation g,
.km_hero_animation path,
.km_hero_animation rect                                                        { transform-box: fill-box; }

/* 01 - Particle network */
.hero_animate1 .ha1_glow                                                       { transform-origin: center; animation: km_hero_soft_pulse 10s ease-in-out infinite; }
.hero_animate1 .ha1_flow path                                                  { animation: km_hero_dash 11s linear infinite; }
.hero_animate1 .ha1_flow path:nth-child(2)                                     { animation-duration: 13s; animation-direction: reverse; }
.hero_animate1 .ha1_flow path:nth-child(3)                                     { animation-duration: 9s; }
.hero_animate1 .ha1_orbit                                                      { transform-box: view-box; transform-origin: 1080px 325px; animation: km_hero_rotate 36s linear infinite; }
.hero_animate1 .ha1_nodes circle                                               { transform-origin: center; opacity: .48; animation: km_hero_node_pulse 4s ease-in-out infinite; }
.hero_animate1 .ha1_nodes circle:nth-child(3n + 1)                              { animation-delay: -1.35s; }
.hero_animate1 .ha1_nodes circle:nth-child(3n + 2)                              { animation-delay: -2.7s; }
.hero_animate1 .ha1_ring                                                       { transform-box: view-box; transform-origin: 1080px 325px; fill: none; animation: km_hero_ring 4s ease-out infinite; }

/* 02 - Particle globe */
.hero_animate2 .ha2_glow                                                       { transform-origin: center; animation: km_hero_soft_pulse 11s ease-in-out infinite; }
.hero_animate2 .ha2_globe                                                      { transform-box: view-box; transform-origin: 1080px 325px; animation: km_hero_float 8s ease-in-out infinite; }
.hero_animate2 .ha2_longitudes                                                 { animation: km_hero_dash 12s linear infinite; }
.hero_animate2 .ha2_particles                                                  { transform-box: view-box; transform-origin: 1080px 325px; animation: km_hero_rotate 28s linear infinite; }
.hero_animate2 .ha2_particles circle                                           { transform-origin: center; animation: km_hero_node_pulse 4.8s ease-in-out infinite; }
.hero_animate2 .ha2_particles circle:nth-child(2n)                             { animation-delay: -2.4s; }
.hero_animate2 .ha2_orbit                                                      { transform-box: view-box; transform-origin: 1080px 325px; animation: km_hero_rotate 22s linear infinite; }
.hero_animate2 .ha2_orbit_reverse                                              { transform-box: view-box; transform-origin: 1080px 325px; animation: km_hero_rotate_reverse 29s linear infinite; }

/* 03 - DNA */
.hero_animate3 .ha3_glow                                                       { transform-origin: center; animation: km_hero_soft_pulse 10s ease-in-out infinite; }
.hero_animate3 .ha3_dna                                                        { animation: km_hero_float 7s ease-in-out infinite; }
.hero_animate3 .ha3_strand_a                                                   { animation: km_hero_dash 8s linear infinite; }
.hero_animate3 .ha3_strand_b                                                   { animation: km_hero_dash_reverse 10s linear infinite; }
.hero_animate3 .ha3_rungs path                                                 { animation: km_hero_flicker 5s ease-in-out infinite; }
.hero_animate3 .ha3_rungs path:nth-child(3n + 1)                               { animation-delay: -1.65s; }
.hero_animate3 .ha3_rungs path:nth-child(3n + 2)                               { animation-delay: -3.3s; }
.hero_animate3 .ha3_nodes circle                                               { transform-origin: center; opacity: .48; animation: km_hero_node_pulse 4s ease-in-out infinite; }
.hero_animate3 .ha3_nodes circle:nth-child(odd)                                { animation-delay: -2s; fill: #2255FF; }

/* 04 - Neural network */
.hero_animate4 .ha4_glow                                                       { transform-origin: center; animation: km_hero_soft_pulse 9s ease-in-out infinite; }
.hero_animate4 .ha4_signals                                                    { animation: km_hero_dash 6s linear infinite; }
.hero_animate4 .ha4_signals path:nth-child(2)                                  { animation-duration: 8s; animation-direction: reverse; }
.hero_animate4 .ha4_signals path:nth-child(3)                                  { animation-duration: 10s; }
.hero_animate4 .ha4_nodes circle                                               { transform-origin: center; fill: rgba(34,85,255,.12); animation: km_hero_neuron 5s ease-in-out infinite; }
.hero_animate4 .ha4_nodes g:nth-child(2) circle                                { animation-delay: -1s; }
.hero_animate4 .ha4_nodes g:nth-child(3) circle                                { animation-delay: -2s; }
.hero_animate4 .ha4_nodes g:nth-child(4) circle                                { animation-delay: -3s; }
.hero_animate4 .ha4_nodes g:nth-child(5) circle                                { animation-delay: -4s; }
.hero_animate4 .ha4_core_ring                                                  { transform-box: view-box; transform-origin: 995px 325px; animation: km_hero_ring 4.5s ease-out infinite; }

/* 05 - Orbital system */
.hero_animate5 .ha5_core_glow                                                  { transform-origin: center; animation: km_hero_soft_pulse 7s ease-in-out infinite; }
.hero_animate5 .ha5_orbit                                                      { transform-box: view-box; transform-origin: 1080px 325px; }
.hero_animate5 .ha5_orbit_a                                                    { animation: km_hero_rotate 24s linear infinite; }
.hero_animate5 .ha5_orbit_b                                                    { animation: km_hero_rotate_reverse 31s linear infinite; }
.hero_animate5 .ha5_orbit_c                                                    { animation: km_hero_rotate 39s linear infinite; }
.hero_animate5 .ha5_core                                                       { transform-box: view-box; transform-origin: 1080px 325px; animation: km_hero_core 9s ease-in-out infinite; }
.hero_animate5 .ha5_stars circle                                               { transform-origin: center; animation: km_hero_flicker 4s ease-in-out infinite; }
.hero_animate5 .ha5_stars circle:nth-child(3n + 1)                             { animation-delay: -1.3s; }
.hero_animate5 .ha5_stars circle:nth-child(3n + 2)                             { animation-delay: -2.6s; }

/* 06 - Data streams */
.hero_animate6 .ha6_stream                                                     { animation: km_hero_stream 10s linear infinite; }
.hero_animate6 .ha6_stream_b                                                   { animation-duration: 13s; animation-delay: -6s; }
.hero_animate6 .ha6_processors                                                 { transform-box: view-box; transform-origin: 1080px 325px; animation: km_hero_float 7s ease-in-out infinite; }
.hero_animate6 .ha6_core                                                       { transform-origin: center; animation: km_hero_node_pulse 3.5s ease-in-out infinite; }
.hero_animate6 .ha6_scan                                                       { animation: km_hero_scan_vertical 7s ease-in-out infinite; }

/* 07 - Wave mesh */
.hero_animate7 .ha7_mesh                                                       { animation: km_hero_mesh_drift 10s ease-in-out infinite; }
.hero_animate7 .ha7_mesh path                                                  { stroke-dasharray: 10 14; animation: km_hero_dash 12s linear infinite; }
.hero_animate7 .ha7_mesh path:nth-child(even)                                  { animation-direction: reverse; animation-duration: 15s; }
.hero_animate7 .ha7_cross                                                      { animation: km_hero_dash_reverse 18s linear infinite; }
.hero_animate7 .ha7_nodes circle                                               { transform-origin: center; opacity: .5; animation: km_hero_node_pulse 4.5s ease-in-out infinite; }
.hero_animate7 .ha7_nodes circle:nth-child(2n)                                 { animation-delay: -2.25s; fill: #2255FF; }

/* 08 - Hexagonal intelligence grid */
.hero_animate8 .ha8_cell                                                       { animation: km_hero_hex 6s ease-in-out infinite; }
.hero_animate8 .ha8_cell:nth-child(4n + 1)                                     { animation-delay: -1.5s; }
.hero_animate8 .ha8_cell:nth-child(4n + 2)                                     { animation-delay: -3s; }
.hero_animate8 .ha8_cell:nth-child(4n + 3)                                     { animation-delay: -4.5s; }
.hero_animate8 .ha8_core                                                       { stroke: #2255FF; stroke-opacity: .85; fill: #2255FF; fill-opacity: .18; animation-duration: 3.5s; }
.hero_animate8 .ha8_scan                                                       { animation: km_hero_scan_horizontal 9s ease-in-out infinite; }

/* 09 - Radar */
.hero_animate9 .ha9_grid                                                       { transform-box: view-box; transform-origin: 1080px 325px; animation: km_hero_rotate 80s linear infinite; }
.hero_animate9 .ha9_sweep                                                      { transform-box: view-box; transform-origin: 1080px 325px; animation: km_hero_rotate 8s linear infinite; }
.hero_animate9 .ha9_blips circle                                               { transform-origin: center; animation: km_hero_blip 4s ease-in-out infinite; }
.hero_animate9 .ha9_blips circle:nth-child(2n)                                 { animation-delay: -2s; fill: #2255FF; }
.hero_animate9 .ha9_ping                                                       { transform-origin: center; animation: km_hero_ring 4s ease-out infinite; }
.hero_animate9 .ha9_ping_b                                                     { animation-delay: -2s; }
.hero_animate9 .ha9_core                                                       { transform-origin: center; animation: km_hero_node_pulse 3s ease-in-out infinite; }

/* 10 - Autonomous workflow */
.hero_animate10 .ha10_flow                                                     { animation: km_hero_dash 6s linear infinite; }
.hero_animate10 .ha10_nodes .ha10_node                                         { animation: km_hero_flicker 6s ease-in-out infinite; }
.hero_animate10 .ha10_nodes .ha10_node:nth-child(3n + 1)                       { animation-delay: -2s; }
.hero_animate10 .ha10_nodes .ha10_node:nth-child(3n + 2)                       { animation-delay: -4s; }
.hero_animate10 .ha10_core                                                     { transform-box: view-box; transform-origin: 1115px 325px; animation: km_hero_core 7s ease-in-out infinite; }
.hero_animate10 .ha10_packet                                                   { offset-rotate: 0deg; }
.hero_animate10 .ha10_packet_a                                                 { offset-path: path("M590 325 H760 L870 215 H1010 L1115 325 H1280 L1390 225"); animation: km_hero_packet 8s linear infinite; }
.hero_animate10 .ha10_packet_b                                                 { offset-path: path("M590 325 H760 L870 435 H1010 L1115 325 L1280 435 L1390 325"); animation: km_hero_packet 10s -5s linear infinite; }

@keyframes km_hero_rotate {
    to                                                                           { transform: rotate(360deg); }
}

@keyframes km_hero_rotate_reverse {
    to                                                                           { transform: rotate(-360deg); }
}

@keyframes km_hero_soft_pulse {
    0%, 100%                                                                     { opacity: .58; transform: scale(.92); }
    50%                                                                          { opacity: 1; transform: scale(1.06); }
}

@keyframes km_hero_node_pulse {
    0%, 100%                                                                     { opacity: .35; transform: scale(.72); }
    50%                                                                          { opacity: .9; transform: scale(1.28); }
}

@keyframes km_hero_ring {
    0%                                                                           { opacity: .7; transform: scale(.7); }
    100%                                                                         { opacity: 0; transform: scale(2.5); }
}

@keyframes km_hero_dash {
    to                                                                           { stroke-dashoffset: -140; }
}

@keyframes km_hero_dash_reverse {
    to                                                                           { stroke-dashoffset: 140; }
}

@keyframes km_hero_float {
    0%, 100%                                                                     { transform: translateY(-10px); }
    50%                                                                          { transform: translateY(12px); }
}

@keyframes km_hero_flicker {
    0%, 100%                                                                     { opacity: .24; }
    50%                                                                          { opacity: .8; }
}

@keyframes km_hero_neuron {
    0%, 100%                                                                     { opacity: .38; transform: scale(.84); fill-opacity: .08; }
    50%                                                                          { opacity: .9; transform: scale(1.18); fill-opacity: .34; }
}

@keyframes km_hero_core {
    0%, 100%                                                                     { transform: rotate(-4deg) scale(.94); opacity: .72; }
    50%                                                                          { transform: rotate(4deg) scale(1.08); opacity: 1; }
}

@keyframes km_hero_stream {
    from                                                                         { transform: translateY(90px); }
    to                                                                           { transform: translateY(-110px); }
}

@keyframes km_hero_scan_vertical {
    0%                                                                           { transform: translateY(-120px); opacity: 0; }
    18%, 82%                                                                     { opacity: .65; }
    100%                                                                         { transform: translateY(720px); opacity: 0; }
}

@keyframes km_hero_mesh_drift {
    0%, 100%                                                                     { transform: translateX(-12px) translateY(-5px); }
    50%                                                                          { transform: translateX(16px) translateY(8px); }
}

@keyframes km_hero_hex {
    0%, 100%                                                                     { stroke-opacity: .14; fill-opacity: .02; }
    50%                                                                          { stroke-opacity: .68; fill-opacity: .14; }
}

@keyframes km_hero_scan_horizontal {
    0%                                                                           { transform: translateX(0); opacity: 0; }
    18%, 82%                                                                     { opacity: 1; }
    100%                                                                         { transform: translateX(820px); opacity: 0; }
}

@keyframes km_hero_blip {
    0%, 65%, 100%                                                                { opacity: .22; transform: scale(.7); }
    75%                                                                          { opacity: 1; transform: scale(1.45); }
}

@keyframes km_hero_packet {
    from                                                                         { offset-distance: 0%; opacity: 0; }
    8%, 92%                                                                      { opacity: .9; }
    to                                                                           { offset-distance: 100%; opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
    .km_hero_animation *                                                         { animation: none !important; }
    .km_hero_animation .ha10_packet                                              { display: none; }
}



/* HEADER */
.km_header                                                                      { z-index: 1000; }
.km_header.position-relative.bg-white                                           { background-color: #FFFFFF !important; }
.km_header.bg-transparent                                                       { background-image: linear-gradient(180deg, rgba(5, 28, 44, 0.42) 0%, rgba(5, 28, 44, 0.15) 55%, rgba(5, 28, 44, 0) 100%); }
.km_header a                                                                    { color: inherit; }
.km_header .btn_header                                                          { color: inherit; background: transparent; border: 0; box-shadow: none; }
.km_header .btn_header:hover,
.km_header .btn_header:focus-visible                                            { color: #00A9F4; }
.km_header .btn_header:hover                                                    { background: rgba(128,128,128,.1); }
.km_header .btn_header:focus-visible                                            { outline: 2px solid currentColor; outline-offset: 2px; }
.km_header .btn_header svg                                                      { color: inherit; stroke: currentColor; }
.header_reading                                                                 { position: fixed; inset: 0 0 auto; height: 3px; z-index: 1200; pointer-events: none; }
.header_progress                                                                { width: 0; height: 100%; background: #00A9F4; }

/* FULL HEADER + HERO */
.km_header_full                                                                 { position: absolute; inset: 0 0 auto; width: 100%; z-index: 100 !important; color: #FFFFFF; background: transparent !important; border: 0 !important; }
.km_header_full a                                                               { color: inherit; }
.km_header_full_on_dark                                                        { color: #FFFFFF; }
.km_header_full_on_light                                                       { color: #000000; }
.km_header_full .btn_header                                                    { color: inherit; background: transparent !important; border: 0 !important; box-shadow: none !important; }
.km_header_full .btn_header:hover,
.km_header_full .btn_header:focus-visible                                      { color: #00A9F4 !important; background: rgba(255,255,255,.1) !important; }
.km_header_full_on_light .btn_header:hover,
.km_header_full_on_light .btn_header:focus-visible                             { background: rgba(0,0,0,.07) !important; }
.km_header_full .kns-breadcrumb-bar                                            { background: transparent !important; border: 0 !important; }
.km_header_full_on_dark .kns-breadcrumb-bar,
.km_header_full_on_dark .kns-breadcrumb-bar a,
.km_header_full_on_dark .kns-breadcrumb-bar .breadcrumb-item                   { color: #FFFFFF !important; }
.km_header_full_on_dark .kns-breadcrumb-bar .breadcrumb-item + .breadcrumb-item::before { color: rgba(255,255,255,.65) !important; }
.km_header_full_on_light .kns-breadcrumb-bar                                   { border-color: rgba(0,0,0,.18) !important; }
.km_header_full_on_light .kns-breadcrumb-bar,
.km_header_full_on_light .kns-breadcrumb-bar a,
.km_header_full_on_light .kns-breadcrumb-bar .breadcrumb-item                  { color: #000000 !important; }
.km_header_full .kns-breadcrumb-bar .breadcrumb-item[aria-current="page"]     { color: #00A9F4 !important; }
body[data-kt-drawer-ux_aside="on"] .km_header_full .kns-breadcrumb-bar         { visibility: hidden; }
.km_header_full_progress                                                       { z-index: 1200; }

.km_hero_full                                                                  { min-height: 650px; isolation: isolate; }
.km_hero_full::after                                                           { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 200px; max-height: 40%; z-index: 20; pointer-events: none; background: linear-gradient(180deg, rgba(0, 0, 0, 0.45) 0%, rgba(0, 0, 0, 0.18) 55%, rgba(0, 0, 0, 0) 100%); }
.km_hero_full_image                                                            { position: absolute; inset: 0; z-index: 0; background-position: center; background-repeat: no-repeat; background-size: cover; }
.km_hero_full_overlay                                                          { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.km_hero_full .km_hero_animation                                               { z-index: 2; }
.km_hero_full_content                                                          { z-index: 3; min-height: 650px; padding-top: 10rem !important; padding-bottom: 5rem !important; }
.km_hero_full_copy                                                             { position: relative; }
.km_hero_full .km_hero_title                                                   { max-width: 800px; }
.km_hero_full .km_hero_subtitle                                                { max-width: 760px; }
.km_hero_full .text-center .km_hero_title,
.km_hero_full .text-center .km_hero_subtitle                                   { margin-right: auto; margin-left: auto; }
.km_hero_social_button                                                         { width: 3rem; height: 3rem; border: 0 !important; }
.btn_social.km_hero_social_button svg                                          { fill: none; }
.km_hero_social_light                                                          { color: #000000 !important; background: #FFFFFF !important; }
.km_hero_social_dark                                                           { color: #FFFFFF !important; background: #000000 !important; }
.km_hero_social_button:hover,
.km_hero_social_button:focus-visible                                           { color: #FFFFFF !important; background: #2255FF !important; }
.km_hero_social_button:focus-visible                                           { outline: 2px solid #00A9F4; outline-offset: 3px; }

/* ASIDE */
.bg_aside                                                                       { background: #FFFFFF; color: #000000; }
#ux_aside .card-header                                                           { background: #FFFFFF; border-bottom: 1px solid #DBDFE9 !important; }
#ux_aside .card-body                                                             { background: #FFFFFF; min-height: 0; padding-top: 1.25rem !important; }
#ux_aside .km_logo_header                                                        { color: inherit; }
.btn_aside                                                                      { display: flex; align-items: center; justify-content: center; min-height: 3rem; padding: 0; border: 0; background: transparent; color: inherit; cursor: pointer; }
.btn_aside:hover, .btn_aside:focus-visible                                        { background: #F9F9F9; color: #2255FF; }
.btn_aside:focus-visible                                                         { outline: 2px solid currentColor; outline-offset: -2px; }
.btn_aside svg                                                                  { flex-shrink: 0; }
.ux_aside_panel                                                                 { display: none; }
.ux_aside_panel.active                                                          { display: block; }
.ux_aside_panel_header                                                          { display: flex; align-items: center; gap: 1rem; padding: 1rem 0 1.25rem; border-bottom: 1px solid #DBDFE9; margin-bottom: 1rem; }
.ux_aside_panel_title                                                           { font-family: 'kmfont', sans-serif; font-size: 1.35rem; font-weight: 700; color: inherit; }
.ux_aside_panel_title:hover                                                      { color: #2255FF; }
.ux_aside_panel_items                                                           { display: flex; flex-direction: column; gap: .35rem; }
.ux_aside_nav_row                                                               { display: grid; grid-template-columns: minmax(0,1fr) 3rem; align-items: stretch; gap: .5rem; border-bottom: 1px solid #F1F1F4; }
.ux_aside_panel_items > .ux_aside_nav_item                                        { border-bottom: 1px solid #F1F1F4; }
.ux_aside_nav_item                                                              { justify-content: flex-start; min-width: 0; width: 100%; padding: .75rem 1rem; font-size: 1.1rem; line-height: 1.2; }
.ux_aside_empty                                                                 { padding: 1rem; color: #78829D; font-size: 1rem; }



/* GLOBAL EDITORIAL OVERVIEW */
.full-content                                                                 { display: block; }
.partial-content                                                              { max-height: 700px; overflow: hidden; position: relative; }
.partial-content::after                                                       { content: ""; position: absolute; bottom: 0; left: 0; right: 0; height: 100px; background: linear-gradient(to bottom, rgba(255,255,255,0), rgba(255,255,255,1)); pointer-events: none; }
.km_editorial_access_card                                                     { position: relative; overflow: hidden; margin-top: 0; padding: clamp(2rem, 5vw, 4rem); color: #051C2C; background: #FFFFFF; border: 1px solid #DBDFE9; border-top: 4px solid #2255FF; box-shadow: 0 1rem 2.5rem rgba(5,28,44,.08); isolation: isolate; }
.km_editorial_access_card::after                                              { position: absolute; right: -4rem; bottom: -6rem; z-index: -1; width: 15rem; height: 15rem; content: ""; border: 1px solid rgba(34,85,255,.14); border-radius: 50%; }
.km_editorial_access_card_inner                                               { max-width: 48rem; }
.km_editorial_access_label                                                    { margin-bottom: 1rem; color: #2255FF; letter-spacing: .08em; }
.km_editorial_access_copy                                                     { max-width: 42rem; color: #4B5675; }
.km_editorial_access_card .btn                                                { min-width: 8rem; border-radius: .475rem; box-shadow: none; }
.km_editorial_access_card .btn:focus-visible                                  { outline: 2px solid #2255FF; outline-offset: 3px; }

.km_overview_global                                                            { overflow: hidden; }
.km_overview_accent                                                            { width: 42px; height: 3px; background: #2255FF; }
.km_overview_item                                                              { min-width: 0; }
.km_overview_item a                                                            { transition: color .2s ease; }
.km_overview_item_large .km_text                                               { max-width: 58ch; }
.km_overview_summary                                                           { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 4; }
.km_overview_index                                                             { flex: 0 0 auto; font-variant-numeric: tabular-nums; }

/* FOCUS SIDEBAR */
.km_focus_sidebar_link                                                         { transition: color .2s ease; }
.box_nero_banner                                                               { position: relative; overflow: hidden; color: #FFFFFF; background: #2255FF; }
.box_nero_banner::after                                                        { position: absolute; right: -3rem; bottom: -4rem; width: 10rem; height: 10rem; content: ""; border: 1px solid rgba(255,255,255,.16); border-radius: 50%; pointer-events: none; }
.box_nero_banner > *                                                           { position: relative; z-index: 1; }

/* SOCIAL BUTTONS */
.btn_social                                                                     { cursor: pointer; border-radius: 50%; transition: transform .25s ease,background-color .25s ease; }
.btn_social svg                                                                 { fill: currentColor; }
.btn_social:hover, .btn_social:focus-visible                                     { transform: translateY(-2px); }

/* CARDS */
.box_macro,
.box_industry { position: relative; overflow: hidden; background-position: center; background-size: cover; background-repeat: no-repeat; flex-shrink: 0; }
.box_macro::before,
.box_industry::before { content: ""; position: absolute; inset: 0; background: inherit; transform: scale(1); transition: transform .45s ease; pointer-events: none; }
.km_card:hover .box_macro::before,
.km_card:focus-within .box_macro::before,
.km_card:hover .box_industry::before,
.km_card:focus-within .box_industry::before { transform: scale(1.04); }
.box_ai_and_autonomous_systems { background-image: url('../../_assets/box/macro/ai-and-autonomous-systems.webp'); }
.box_analytics_data_and_decision_systems { background-image: url('../../_assets/box/macro/analytics-data-and-decision-systems.webp'); }
.box_business_resilience { background-image: url('../../_assets/box/macro/business-resilience.webp'); }
.box_business_strategic_intelligence { background-image: url('../../_assets/box/macro/business-strategic-intelligence.webp'); }
.box_business_strategy { background-image: url('../../_assets/box/macro/business-strategy.webp'); }
.box_capital_strategy { background-image: url('../../_assets/box/macro/capital-strategy.webp'); }
.box_change_management_and_organizational_effectiveness { background-image: url('../../_assets/box/macro/change-management-and-organizational-effectiveness.webp'); }
.box_corporate_finance { background-image: url('../../_assets/box/macro/corporate-finance.webp'); }
.box_customer_market_and_demand_intelligence { background-image: url('../../_assets/box/macro/customer-market-and-demand-intelligence.webp'); }
.box_digital { background-image: url('../../_assets/box/macro/digital.webp'); }
.box_geopolitics { background-image: url('../../_assets/box/macro/geopolitics.webp'); }
.box_global_expansion_and_internationalization { background-image: url('../../_assets/box/macro/global-expansion-and-internationalization.webp'); }
.box_global_strategic_intelligence { background-image: url('../../_assets/box/macro/global-strategic-intelligence.webp'); }
.box_human_capital_intelligence { background-image: url('../../_assets/box/macro/human-capital-intelligence.webp'); }
.box_mergers_and_acquisitions_strategy { background-image: url('../../_assets/box/macro/mergers-and-acquisitions-strategy.webp'); }
.box_operational_excellence { background-image: url('../../_assets/box/macro/operational-excellence.webp'); }
.box_risk_management { background-image: url('../../_assets/box/macro/risk-management.webp'); }
.box_sales_marketing_and_growth_strategy { background-image: url('../../_assets/box/macro/sales-marketing-and-growth-strategy.webp'); }
.box_sustainability_and_esg { background-image: url('../../_assets/box/macro/sustainability-and-esg.webp'); }
.box_transformation_and_reinvention { background-image: url('../../_assets/box/macro/transformation-and-reinvention.webp'); }

/* INDUSTRY BOX IMAGES */
.box_industry_advanced_manufacturing_and_industrial_systems { background-image: url('../../_assets/box/industry/advanced-manufacturing-and-industrial-systems.webp'); }
.box_industry_agribusiness_and_agricultural_technology { background-image: url('../../_assets/box/industry/agribusiness-and-agricultural-technology.webp'); }
.box_industry_automotive_mobility_and_smart_transport { background-image: url('../../_assets/box/industry/automotive-mobility-and-smart-transport.webp'); }
.box_industry_banking_and_capital_markets { background-image: url('../../_assets/box/industry/banking-and-capital-markets.webp'); }
.box_industry_chemicals_and_process_industries { background-image: url('../../_assets/box/industry/chemicals-and-process-industries.webp'); }
.box_industry_commodities_trading_and_resource_markets { background-image: url('../../_assets/box/industry/commodities-trading-and-resource-markets.webp'); }
.box_industry_construction_engineering_and_building_products { background-image: url('../../_assets/box/industry/construction-engineering-and-building-products.webp'); }
.box_industry_consumer_products_and_packaged_goods { background-image: url('../../_assets/box/industry/consumer-products-and-packaged-goods.webp'); }
.box_industry_data_centers_and_digital_infrastructure { background-image: url('../../_assets/box/industry/data-centers-and-digital-infrastructure.webp'); }
.box_industry_digital_marketplaces_and_platform_economy { background-image: url('../../_assets/box/industry/digital-marketplaces-and-platform-economy.webp'); }
.box_industry_fintech_and_digital_financial_services { background-image: url('../../_assets/box/industry/fintech-and-digital-financial-services.webp'); }
.box_industry_food_beverage_and_food_distribution { background-image: url('../../_assets/box/industry/food-beverage-and-food-distribution.webp'); }
.box_industry_healthcare_providers_and_clinical_services { background-image: url('../../_assets/box/industry/healthcare-providers-and-clinical-services.webp'); }
.box_industry_industrial_and_commercial_distribution { background-image: url('../../_assets/box/industry/industrial-and-commercial-distribution.webp'); }
.box_industry_insurance { background-image: url('../../_assets/box/industry/insurance.webp'); }
.box_industry_investment_management_and_private_capital { background-image: url('../../_assets/box/industry/investment-management-and-private-capital.webp'); }
.box_industry_logistics_freight_and_supply_chain { background-image: url('../../_assets/box/industry/logistics-freight-and-supply-chain.webp'); }
.box_industry_materials_metals_and_mining { background-image: url('../../_assets/box/industry/materials-metals-and-mining.webp'); }
.box_industry_oil_and_gas { background-image: url('../../_assets/box/industry/oil-and-gas.webp'); }
.box_industry_pharmaceuticals_biotechnology_and_life_sciences { background-image: url('../../_assets/box/industry/pharmaceuticals-biotechnology-and-life-sciences.webp'); }
.box_industry_power_utilities_and_renewable_energy { background-image: url('../../_assets/box/industry/power-utilities-and-renewable-energy.webp'); }
.box_industry_professional_and_business_services { background-image: url('../../_assets/box/industry/professional-and-business-services.webp'); }
.box_industry_public_sector_and_public_services { background-image: url('../../_assets/box/industry/public-sector-and-public-services.webp'); }
.box_industry_real_estate_and_built_environment { background-image: url('../../_assets/box/industry/real-estate-and-built-environment.webp'); }
.box_industry_retail_and_consumer_commerce { background-image: url('../../_assets/box/industry/retail-and-consumer-commerce.webp'); }
.box_industry_semiconductors_and_microelectronics { background-image: url('../../_assets/box/industry/semiconductors-and-microelectronics.webp'); }
.box_industry_technology_software_and_artificial_intelligence { background-image: url('../../_assets/box/industry/technology-software-and-artificial-intelligence.webp'); }
.box_industry_telecommunications_and_network_infrastructure { background-image: url('../../_assets/box/industry/telecommunications-and-network-infrastructure.webp'); }
.box_industry_transportation_and_mobility_services { background-image: url('../../_assets/box/industry/transportation-and-mobility-services.webp'); }
.box_industry_travel_hospitality_and_experience_economy { background-image: url('../../_assets/box/industry/travel-hospitality-and-experience-economy.webp'); }

.km_card                                                                        { position: relative; overflow: hidden; cursor: pointer; }

.km_industry_card_layout                                                       { display: grid; grid-template-columns: minmax(110px, 38%) minmax(0, 1fr); min-height: 100%; }
.km_industry_card_layout_no_media                                              { grid-template-columns: minmax(0, 1fr); }
.km_industry_card_media                                                        { position: relative; align-self: stretch; min-height: var(--km-industry-media-min-height, 150px); height: auto !important; overflow: hidden; background-color: #DBDFE9; }
.km_industry_card_image                                                        { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.km_industry_card_media_placeholder                                            { position: absolute; inset: 0; background: linear-gradient(135deg, #DBDFE9 0%, #F1F1F4 100%); }
.km_industry_card_body                                                         { min-width: 0; }

.km_card_up                                                                     { transition: transform .25s ease, box-shadow .25s ease; }
.km_card_up:hover,
.km_card_up:focus-within                                                        { transform: translateY(-5px); box-shadow: 0 8px 24px rgba(0,0,0,.08); }

.km_card_shake:hover,
.km_card_shake:focus-within                                                     { animation: km_card_shake .4s ease-in-out; }

@keyframes km_card_shake {
    0%, 100%                                                                   { transform: translateX(0); }
    20%, 60%                                                                   { transform: translateX(-3px); }
    40%, 80%                                                                   { transform: translateX(3px); }
}

.km_card_border .card-body                                                      { position: relative; }
.km_card_border .card-body::before                                              { content: ""; position: absolute; top: 0; left: 0; width: 0; border-top: var(--km-card-border, 2px solid #2255FF); pointer-events: none; transition: width .35s ease; }
.km_card_border:hover .card-body::before,
.km_card_border:focus-within .card-body::before                                 { width: 100%; }

@media (prefers-reduced-motion: reduce) {

    .km_cardtitle,
    .box_macro::before,
    .box_industry::before,
    .km_card_up,
    .km_card_border .card-body::before                                          { transition: none; }

    .km_card_up:hover,
    .km_card:hover .box_macro::before,
    .km_card:focus-within .box_macro::before,
    .km_card:hover .box_industry::before,
    .km_card:focus-within .box_industry::before,
    .km_card_up:focus-within                                                    { transform: none; }

    .km_card_shake:hover,
    .km_card_shake:focus-within                                                 { animation: none; }

}

.card_capabilites                                                               { cursor: pointer; background-color: #FFF; border:1px solid #E5E5E5; }
.card_capabilites:hover,
.card_capabilites:focus-within                                                  { border-color: #D5D5D5; }
.modal-dialog-bottom {
    position: fixed;
    bottom: 0;
    width: 100%;
    max-width: 100%;
    transition: transform .4s ease-out;
}

.modal.fade .modal-dialog.modal-dialog-bottom {
    transform: translateY(100%);
}

.modal.show .modal-dialog.modal-dialog-bottom {
    transform: translateY(0);
}

#cookieModal .btn {
    border-radius: .475rem !important;
    transform: none !important;
    box-shadow: none !important;
}

#cookieModal .button-cookie-accept {
    color: #FFFFFF !important;
    background: #2F3742 !important;
    border-color: #2F3742 !important;
}

#cookieModal .button-cookie-accept:hover,
#cookieModal .button-cookie-accept:focus {
    color: #FFFFFF !important;
    background: #252B33 !important;
    border-color: #252B33 !important;
}
