/* Keskkond & Partnerid — Frontend Header CSS */


:root {


    --kp-orange: #e95e23;


    --kp-navy: #032e68;


    --kp-navy-light: #0a4a9e;


    --kp-orange-dark: #c44d18;


    --kp-white: #ffffff;


    --kp-topbar-h: 40px;


    --kp-navbar-h: 96px;


    --kp-font: 'Nunito', 'Dosis', system-ui, sans-serif;


}





/* ── RESET / BASE — tugevad override'id Divi vastu ── */


#kp-header,


#kp-header *,


#kp-header *::before,


#kp-header *::after { box-sizing: border-box; }





#kp-header {


    position: relative;


    /* z-index EEMALDATUD — see lõi stacking contexti z=9000 ROOT-is,


       mis piiras .kp-navbar (z=99998) efektiivse z-indexi 9000-le.


       Divi scroll-efektid loovad skrollimisel ajutisi stacking contexte


       mis said siis päise peale. Nüüd läheb .kp-navbar z=99998 otse


       ROOT stacking konteksti — alati lehe sisu kohal. */


    font-family: var(--kp-font);


    margin-bottom: 0 !important;


    padding: 0 !important;


    transform: none !important;


    filter: none !important;


    isolation: auto !important;


}








/* Divi lisab ul/li-le list-style: disc ja pseudo-elemendid */


#kp-header ul,


#kp-header ul li,


#kp-header ol,


#kp-header ol li {


    list-style: none !important;


    list-style-type: none !important;


    list-style-image: none !important;


    margin: 0 !important;


    padding: 0 !important;


    background-image: none !important;


    float: none !important;


}


#kp-header ul li::before,


#kp-header ul li::after,


#kp-header ol li::before,


#kp-header ol li::after {


    content: none !important;


    display: none !important;


}


#kp-header ul li::marker,


#kp-header ol li::marker {


    content: none !important;


}





/* Divi lisab a-le oma värvi ja box-shadow */


#kp-header a,


#kp-header a:link,


#kp-header a:visited {


    text-decoration: none !important;


    box-shadow: none !important;


}


#kp-header a:hover { text-decoration: none !important; }





/* ── FIXED POSITSIONEERIMINE — sama muster nagu näidisplugin ──


   Topbar: top=0, admin-bar korral top=32px


   Navbar: top=topbar kõrgus, admin-bar korral +32px


   Padding: Divi #page-container saab padding-top, mitte body


*/


#kp-header .kp-topbar {


    position: fixed !important;


    top: 0 !important;


    left: 0 !important;


    right: 0 !important;


    z-index: 99999 !important;


    width: 100% !important;


}


body.admin-bar #kp-header .kp-topbar {


    top: 32px !important;


}


@media screen and (max-width: 782px) {


    body.admin-bar #kp-header .kp-topbar { top: 46px !important; }


}





/* Navbar positsioneerimine — kehtib nii #kp-header sees kui body-le liigutades */


#kp-header .kp-navbar,


body > #kp-navbar {


    position: fixed !important;


    top: 40px !important;


    left: 0 !important;


    right: 0 !important;


    z-index: 99998 !important;


    width: 100% !important;


    max-width: none !important;


    min-height: 60px !important;


    display: flex !important;


    align-items: center !important;


}


/* Topbar väljas */


#kp-header.kp-no-topbar .kp-navbar,


body > #kp-navbar.kp-no-topbar {


    top: 0 !important;


}


/* Admin bar offsets */


body.admin-bar #kp-header .kp-navbar,


body.admin-bar > #kp-navbar {


    top: 72px !important;


}


body.admin-bar #kp-header.kp-no-topbar .kp-navbar,


body.admin-bar > #kp-navbar.kp-no-topbar {


    top: 32px !important;


}


@media screen and (max-width: 782px) {


    body.admin-bar #kp-header .kp-navbar,


    body.admin-bar > #kp-navbar           { top: 86px !important; }


    body.admin-bar #kp-header.kp-no-topbar .kp-navbar,


    body.admin-bar > #kp-navbar.kp-no-topbar { top: 46px !important; }


}





/* #page-container padding seab JS setHeaderOffset() */





/* ── CONTAINER ── */


.kp-container { max-width: 1200px; margin: 0 auto; padding: 0 32px; width: 100%; box-sizing: border-box; }





/* ── TOPBAR ── */


#kp-header .kp-topbar {


    background: var(--kp-navy) !important;


    height: 40px !important;


    display: flex !important;


    align-items: center !important;


    width: 100% !important;


}


.kp-topbar-container {


    width: 100%;


    max-width: 1200px;


    margin: 0 auto;


    padding: 0 32px;


    box-sizing: border-box;


    display: flex;


    align-items: center;


    justify-content: flex-end;


    gap: 20px;


    height: 100%;


}


.kp-topbar-item {


    display: flex;


    align-items: center;


    gap: 7px;


    color: rgba(255,255,255,.75);


    font-size: 13px;


    font-weight: 400;


    transition: color .2s;


}


.kp-topbar-item:hover { color: #fff; }


.kp-topbar-item svg { flex-shrink: 0; }


/* Admin edit toggle nupp topbaris */


.kp-topbar-edit-toggle {


    display: flex;


    align-items: center;


    gap: 5px;


    color: rgba(255,255,255,.45);


    font-size: 12px;


    font-family: inherit;


    padding: 3px 10px;


    border-radius: 3px;


    border: 1px solid rgba(255,255,255,.15);


    background: transparent;


    cursor: pointer;


    white-space: nowrap;


    transition: color .2s, border-color .2s, background .2s;


}


.kp-topbar-edit-toggle:hover {


    color: #fff;


    border-color: rgba(255,255,255,.35);


    background: rgba(255,255,255,.06);


}


.kp-topbar-edit-toggle.kp-edit-active {


    color: var(--kp-orange);


    border-color: var(--kp-orange);


    background: rgba(233,94,35,.12);


}


.kp-topbar-edit-toggle svg { opacity: .8; flex-shrink: 0; }





/* Edit mode — body klass */


body.kp-edit-mode #kp-header { outline: 1px dashed rgba(233,94,35,.3); }


/* frontend inline edit */


[data-kp-field] {


    outline: none;


    border-radius: 3px;


    transition: background .15s, box-shadow .15s;


    cursor: text;


}


[data-kp-field]:focus,


[data-kp-field]:hover {


    background: rgba(233,94,35,.15);


    box-shadow: 0 0 0 2px rgba(233,94,35,.4);


}





/* ── NAVBAR ── */


#kp-header .kp-navbar,


body > #kp-navbar {


    background: var(--kp-white);


    height: var(--kp-navbar-h);


    border-bottom: 1px solid rgba(0,0,0,.08);


    box-shadow: 0 1px 12px rgba(3,46,104,.07);


    transition: background .3s, box-shadow .3s;


}


/* Transparent mode — klass on #kp-header-l VÕI otse navbar-il (body-tasandil) */


#kp-header.kp-transparent .kp-navbar,


body > #kp-navbar.kp-transparent {


    background: transparent !important;


    box-shadow: none;


    border-bottom: none;


}


#kp-header.kp-transparent.kp-scrolled .kp-navbar,


body > #kp-navbar.kp-transparent.kp-scrolled {


    background: var(--kp-white) !important;


    box-shadow: 0 2px 12px rgba(3,46,104,.1);


}





/* Navbar inner — flex, position:relative et nav saaks absoluutselt tsentreeruda */


.kp-navbar-inner {


    display: flex !important;


    align-items: center !important;


    position: relative !important;


    width: 100% !important;


    max-width: 1440px !important;


    margin: 0 auto !important;


    padding: 0 32px !important;


    box-sizing: border-box !important;


    /* overflow:visible tagab et absoluutselt positsioneeritud sub-menu ei lõigata */


    overflow: visible !important;


}





/* Kõik navbari esivanemad peavad lubama overflow */


#kp-header .kp-navbar,


body > #kp-navbar,


#kp-header .kp-nav,


#kp-navbar .kp-menu,


#kp-navbar .kp-menu > li {


    overflow: visible !important;


}





/* Logo — vasakul, z-index 2 et oleks nav-i peal */


.kp-logo-link {


    display: flex !important;


    align-items: center !important;


    flex-shrink: 0 !important;


    text-decoration: none !important;


    position: relative !important;


    z-index: 2 !important;


}


.kp-logo-img {


    display: block !important;


    height: auto !important;


    object-fit: contain !important;


    /* max-height ja width tulevad PHP inline style-ist */


    max-width: 100% !important;


}


.kp-logo-text {


    font-family: 'Dosis', sans-serif;


    font-size: 18px;


    font-weight: 800;


    color: var(--kp-navy);


    letter-spacing: .04em;


    text-transform: uppercase;


    line-height: 1.15;


}


#kp-header.kp-transparent .kp-logo-text { color: #fff; }





/* Nav — täis laius, justify-content:center tsentreerub täpselt */


#kp-header .kp-nav {


    position: absolute !important;


    left: 0 !important;


    right: 0 !important;


    top: 0 !important;


    bottom: 0 !important;


    display: flex !important;


    align-items: center !important;


    justify-content: center !important;


    pointer-events: none !important;


    z-index: 1 !important;


}


/* Menüü ise saab pointer events tagasi */


#kp-navbar .kp-nav .kp-menu {


    pointer-events: auto !important;


}


#kp-navbar .kp-nav .kp-menu li,


#kp-navbar .kp-nav .kp-menu a {


    pointer-events: auto !important;


}





/* Bulletid täielikult eemaldatud */


#kp-navbar .kp-menu,


#kp-navbar .kp-menu ul,


#kp-navbar .kp-menu li {


    list-style: none !important;


    list-style-type: none !important;


    list-style-image: none !important;


    margin: 0 !important;


    padding: 0 !important;


    background-image: none !important;


}


#kp-navbar .kp-menu li::before,


#kp-navbar .kp-menu li::after {


    display: none !important;


    content: none !important;


}


#kp-navbar .kp-menu {


    display: flex !important;


    align-items: center !important;


    gap: 2px !important;


    flex-wrap: nowrap !important;


}


#kp-navbar .kp-menu > li { position: relative !important; }





/* Menüülingid — height-põhine vertikaalne joondus nagu näidisplugin */


#kp-navbar .kp-nav .kp-menu > li > a,


#kp-navbar .kp-nav .kp-menu > li > a:link,


#kp-navbar .kp-nav .kp-menu > li > a:visited {


    display: inline-flex !important;


    align-items: center !important;


    gap: 6px !important;


    padding: 0 14px !important;


    height: var(--kp-navbar-h) !important;


    font-family: 'Dosis', sans-serif !important;


    font-size: clamp(18px, 2.2vw, 28px) !important;


    font-weight: 700 !important;


    text-transform: uppercase !important;


    color: #032e68 !important;


    background: transparent !important;


    border-radius: 0 !important;


    transition: color .2s !important;


    white-space: nowrap !important;


    text-decoration: none !important;


    border: none !important;


    box-shadow: none !important;


    position: relative !important;


}


/* Aktiivne indikaator — alumine joon nagu näidisplugin */


#kp-navbar .kp-nav .kp-menu > li > a::after {


    content: '' !important;


    position: absolute !important;


    bottom: 10px !important;


    left: 14px !important;


    right: 14px !important;


    height: 2px !important;


    background: #e95e23 !important;


    transform: scaleX(0) !important;


    transition: transform .25s !important;


    border-radius: 2px !important;


}


#kp-navbar .kp-nav .kp-menu > li > a:hover::after,


#kp-navbar .kp-nav .kp-menu > li.current-menu-item > a::after { transform: scaleX(1) !important; }


#kp-navbar .kp-nav .kp-menu > li > a:hover,


#kp-navbar .kp-nav .kp-menu > li.current-menu-item > a,


#kp-navbar .kp-nav .kp-menu > li.current-menu-ancestor > a {
    /* Varv jaab samaks -- aktiivset/hover lehte naidatakse ainult alumise joonega (::after) */
}





/* Transparent mode (slideri kohal) */


/* Labipaistva paise puhul jaab menuu varv samaks (navy) -- muudatus eemaldatud, loetavus tagatakse alumise joonega, mitte teksti varviga */


#kp-navbar.kp-transparent:not(.kp-scrolled) .kp-nav .kp-menu > li > a:hover,


#kp-navbar.kp-transparent:not(.kp-scrolled) .kp-nav .kp-menu > li.current-menu-item > a {
    /* Varv jaab samaks -- aktiivset/hover lehte naidatakse ainult alumise joonega (::after) */
}





/* Home ikoon */


#kp-header .kp-home-icon {


    width: 16px;


    height: 16px;


    flex-shrink: 0;


    vertical-align: middle;


    display: inline-block;


}





/* Dropdown */


/* ── MEGA MENÜÜ — täislaiusega veergudes ── */


.kp-menu li { position: relative; }





/* Peamenüü dropdown — tavalistele */


.kp-menu > li > .sub-menu {


    display: none;


    position: absolute;


    top: 100%;


    left: 0;


    background: #fff !important;


    border-radius: 6px;


    min-width: 220px;


    box-shadow: 0 8px 40px rgba(3,46,104,.15), 0 2px 8px rgba(0,0,0,.06);


    padding: 8px 0;


    list-style: none;


    margin: 2px 0 0;


    z-index: 999999;


    border-top: 3px solid var(--kp-orange);


    isolation: isolate;


}


.kp-menu > li:hover > .sub-menu { display: block; }





/* Sub-menu body tasemel (JS viib sinna z-index fix-ina) */


/* position:fixed ja zIndex seab JS — siin hoolitseme ainult väljanägemise eest */


.kp-sub-detached {


    background: #fff !important;


    border-radius: 6px !important;


    min-width: 220px !important;


    box-shadow: 0 8px 40px rgba(3,46,104,.15), 0 2px 8px rgba(0,0,0,.06) !important;


    padding: 8px 0 !important;


    list-style: none !important;


    border-top: 3px solid var(--kp-orange) !important;


    margin: 2px 0 0 !important;


}


.kp-sub-detached li { margin: 0 !important; padding: 0 !important; list-style: none !important; }


.kp-sub-detached li::before, .kp-sub-detached li::after { content: none !important; display: none !important; }





.kp-menu > li > .sub-menu li a,


.kp-sub-detached li a {


    display: block !important;


    padding: 9px 18px !important;


    font-size: 18px !important;


    font-family: 'Nunito', sans-serif !important;


    font-weight: 500 !important;


    letter-spacing: 0 !important;


    text-transform: none !important;


    color: var(--kp-navy) !important;


    line-height: 1.3 !important;


    white-space: normal !important;


    transition: background .15s, color .15s !important;


    text-decoration: none !important;


    box-shadow: none !important;


    height: auto !important;


}


.kp-menu > li > .sub-menu li a:hover,


.kp-sub-detached li a:hover {


    background: #f0f5fc !important;


    color: var(--kp-orange) !important;


}


.kp-menu > li > .sub-menu li + li,


.kp-sub-detached li + li { border-top: 1px solid rgba(3,46,104,.05); }





/* ── MEGA PANEEL (ehitab JS) ── */


.kp-mega-panel {


    display: none;


    position: fixed;


    left: 0;


    right: 0;


    top: 0; /* JS seab täpse väärtuse */


    background: #fff !important;


    box-shadow: 0 12px 48px rgba(3,46,104,.15) !important;


    border-top: 3px solid var(--kp-orange) !important;


    z-index: 999999 !important;


    padding: 0 !important;


    border-radius: 0 !important;


    min-width: unset !important;


}


.kp-mega-panel.kp-open { display: block !important; }





.kp-mega-inner {


    max-width: 1200px;


    margin: 0 auto;


    padding: 0 32px;


    box-sizing: border-box;


    display: grid;


    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));


    gap: 8px 32px;


    align-items: start;


    /* Kerimine kui sisu ei mahu */


    max-height: calc(100vh - 160px);


    overflow-y: auto;


}


/* Stiilne kerimisriba */


.kp-mega-inner::-webkit-scrollbar { width: 4px; }


.kp-mega-inner::-webkit-scrollbar-track { background: transparent; }


.kp-mega-inner::-webkit-scrollbar-thumb { background: rgba(3,46,104,.2); border-radius: 2px; }





/* Veeru pealkiri */


.kp-mega-col-title {


    display: block;


    font-family: 'Dosis', sans-serif !important;


    font-size: 18px !important;


    font-weight: 800 !important;


    letter-spacing: .08em !important;


    text-transform: uppercase !important;


    color: var(--kp-orange) !important;


    margin: 0 0 10px !important;


    padding: 0 0 8px !important;


    border-bottom: 1px solid rgba(3,46,104,.1) !important;


    text-decoration: none !important;


    transition: color .15s !important;


}


.kp-mega-col-title:hover { color: var(--kp-navy) !important; }





/* Veeru kirjed */


.kp-mega-col-items {


    list-style: none;


    margin: 0;


    padding: 0;


}


.kp-mega-col-items li { margin: 0; }


.kp-mega-col-items a {


    display: block !important;


    padding: 6px 0 !important;


    font-size: 18px !important;


    transition: color .15s, transform .15s !important;


    font-family: 'Nunito', sans-serif !important;


    font-weight: 400 !important;


    letter-spacing: 0 !important;


    text-transform: none !important;


    color: #444 !important;


    line-height: 1.4 !important;


    transition: color .15s, padding-left .15s !important;


    text-decoration: none !important;


    box-shadow: none !important;


    border: none !important;


    background: transparent !important;


    height: auto !important;


    white-space: normal !important;


}


.kp-mega-col-items a:hover {


    color: var(--kp-orange) !important;


    transform: translateX(6px);


}


.kp-mega-col-items li + li { border: none !important; }





/* CTA button */


.kp-cta-btn {


    display: inline-flex;


    align-items: center;


    padding: 9px 22px;


    border-radius: 4px;


    font-family: 'Dosis', sans-serif !important;


    font-size: 19px !important;


    font-weight: 700 !important;


    letter-spacing: .07em !important;


    text-transform: uppercase !important;


    cursor: pointer;


    transition: filter .2s, transform .15s;


    flex-shrink: 0;


    white-space: nowrap;


    margin-left: 16px;


}


.kp-cta-btn:hover { filter: brightness(1.1); transform: translateY(-1px); }





/* Right side controls */


.kp-nav-right {


    display: flex !important;


    align-items: center !important;


    gap: 12px !important;


    margin-left: auto !important;


    position: relative !important;


    z-index: 2 !important;


    flex-shrink: 0 !important;


}





/* Hamburger */


.kp-hamburger {


    display: none;


    flex-direction: column;


    gap: 5px;


    background: none;


    border: none;


    cursor: pointer;


    padding: 6px;


    border-radius: 4px;


}


.kp-hamburger span {


    display: block;


    width: 24px;


    height: 2px;


    background: var(--kp-navy);


    border-radius: 2px;


    transition: transform .25s, opacity .25s;


}


.kp-transparent:not(.kp-scrolled) .kp-hamburger span { background: #fff; }


.kp-hamburger.open span:nth-child(1) { transform: rotate(45deg) translate(5px, 5px); }


.kp-hamburger.open span:nth-child(2) { opacity: 0; }


.kp-hamburger.open span:nth-child(3) { transform: rotate(-45deg) translate(5px, -5px); }





/* Mobile nav close btn */


.kp-nav-close { display: none; background: none; border: none; cursor: pointer; padding: 6px; }


.kp-nav-footer { display: none; }





/* ── SLIDER ── */


.kp-slider-section { position: relative; overflow: hidden; isolation: isolate; }


.kp-slider-wrap { position: relative; overflow: hidden; width: 100%; }


.kp-slides { position: relative; width: 100%; height: 100%; }


.kp-slide {


    position: absolute;


    inset: 0;


    opacity: 0;


    transition: opacity 1s ease;


}


.kp-slide.active { opacity: 1; }





/* Ken Burns animatsioonid — 4 erinevat suunda */


@keyframes kb-zoom-tl {


    0%   { transform: scale(1)    translate(0, 0); }


    100% { transform: scale(1.12) translate(-2%, -2%); }


}


@keyframes kb-zoom-tr {


    0%   { transform: scale(1)    translate(0, 0); }


    100% { transform: scale(1.12) translate(2%, -2%); }


}


@keyframes kb-zoom-bl {


    0%   { transform: scale(1)    translate(0, 0); }


    100% { transform: scale(1.12) translate(-2%, 2%); }


}


@keyframes kb-zoom-br {


    0%   { transform: scale(1)    translate(0, 0); }


    100% { transform: scale(1.12) translate(2%, 2%); }


}


@keyframes kb-zoom-in {


    0%   { transform: scale(1); }


    100% { transform: scale(1.1); }


}


/* Sisse-välja zoom — liigub sisse, siis välja tagasi */


@keyframes kb-zoom-in-out {


    0%   { transform: scale(1); }


    50%  { transform: scale(1.12); }


    100% { transform: scale(1); }


}


@keyframes kb-zoom-out-in {


    0%   { transform: scale(1.12); }


    50%  { transform: scale(1); }


    100% { transform: scale(1.12); }


}


@keyframes kb-pan-right {


    0%   { transform: scale(1.08) translate(-3%, 0); }


    100% { transform: scale(1.08) translate(3%, 0); }


}





.kp-slide-bg {


    position: absolute;


    inset: -6%; /* pisut suurem et animatsioon ei näitaks servi */


    background-size: cover;


    background-position: center;


    will-change: transform;


    transform-origin: center center;


}





/* Igale slaidile erinev animatsioon — zoom sisse SIIS välja */


.kp-slide:nth-child(1).active .kp-slide-bg { animation: kb-zoom-in-out 12s ease-in-out infinite; }


.kp-slide:nth-child(2).active .kp-slide-bg { animation: kb-zoom-out-in 14s ease-in-out infinite; }


.kp-slide:nth-child(3).active .kp-slide-bg { animation: kb-zoom-in-out 11s ease-in-out infinite; }


.kp-slide:nth-child(4).active .kp-slide-bg { animation: kb-zoom-out-in 13s ease-in-out infinite; }


.kp-slide:nth-child(5).active .kp-slide-bg { animation: kb-zoom-in-out 12s ease-in-out infinite; }


.kp-slide:nth-child(6).active .kp-slide-bg { animation: kb-pan-right 12s ease-in-out reverse forwards; }


.kp-slide-overlay { position: absolute; inset: 0; background: #000; }


.kp-video-bg { position: absolute; inset: 0; overflow: hidden; }


.kp-slide-video {


    position: absolute;


    inset: 0;


    width: 100%;


    height: 100%;


    object-fit: cover;


}


.kp-slide-video-wrap {


    position: absolute;


    inset: -20%;


    overflow: hidden;


}


.kp-slide-video-wrap iframe {


    width: 100%;


    height: 100%;


    pointer-events: none;


}





/* Slide content */


.kp-slide-content {


    position: absolute;


    z-index: 10;


    padding: 0 48px 240px; /* 180px services bottom + ~60px puhver */


    max-width: 780px;


}


.kp-pos-bottom-left   { bottom: 0; left: 0; }


.kp-pos-bottom-center { bottom: 0; left: 50%; transform: translateX(-50%); text-align: center; }


.kp-pos-middle-left   { top: 50%; left: 0; transform: translateY(-50%); }


.kp-pos-middle-center { top: 50%; left: 50%; transform: translate(-50%,-50%); text-align: center; }





.kp-slide-title {


    font-family: 'Dosis', sans-serif;


    font-size: clamp(32px, 5vw, 68px);


    font-weight: 800;


    line-height: 1.05;


    color: #fff;


    text-transform: uppercase;


    letter-spacing: .01em;


    margin: 0 0 12px;


    text-shadow: 0 2px 12px rgba(0,0,0,.3);


}


.kp-slide-subtitle {


    font-size: 18px;


    font-weight: 300;


    color: rgba(255,255,255,.85);


    margin: 0 0 24px;


    max-width: 540px;


    line-height: 1.55;


}


.kp-slide-cta {


    display: inline-block;


    padding: 12px 28px;


    border-radius: 4px;


    font-family: 'Dosis', sans-serif;


    font-weight: 700;


    font-size: 14px;


    letter-spacing: .07em;


    text-transform: uppercase;


    transition: filter .2s, transform .15s;


    background: #032e68 !important;


    color: #fff !important;


}


.kp-slide-cta:hover { filter: brightness(1.15); transform: translateY(-1px); }





/* Nav buttons */


.kp-slider-btn {


    position: absolute;


    top: 50%;


    transform: translateY(-50%);


    z-index: 20;


    background: rgba(255,255,255,.15);


    border: 1.5px solid rgba(255,255,255,.3);


    color: #fff;


    width: 48px;


    height: 48px;


    border-radius: 50%;


    display: flex;


    align-items: center;


    justify-content: center;


    cursor: pointer;


    transition: background .2s, transform .2s;


    backdrop-filter: blur(4px);


}


.kp-slider-btn:hover { background: rgba(255,255,255,.3); }


.kp-prev { left: 24px; }


.kp-next { right: 24px; }





/* Dots */


.kp-dots {


    position: absolute;


    bottom: 20px;


    left: 50%;


    transform: translateX(-50%);


    display: flex;


    gap: 8px;


    z-index: 20;


}


.kp-dot {


    width: 8px; height: 8px;


    border-radius: 50%;


    background: rgba(255,255,255,.4);


    border: none;


    cursor: pointer;


    transition: background .2s, transform .2s;


    padding: 0;


}


.kp-dot.active { background: var(--kp-orange); transform: scale(1.3); }





/* Progress bar */


.kp-progress-bar {


    position: absolute;


    top: 0; left: 0; right: 0;


    height: 3px;


    background: rgba(255,255,255,.15);


    z-index: 25;


}


.kp-progress-fill {


    height: 100%;


    background: var(--kp-orange);


    width: 0%;


    transition: width linear;


}





/* slider-admin-bar eemaldatud — kasutatakse kp-edit-mode loogika */





/* ── HERO ── */


.kp-hero {


    position: relative;


    overflow: hidden;


    display: flex;


    align-items: center;


    justify-content: center;


}


.kp-hero-bg {


    position: absolute;


    inset: 0;


    background-size: cover;


    background-position: center;


}


.kp-hero-gradient { background: linear-gradient(135deg, var(--kp-navy) 0%, var(--kp-navy-light) 100%); }


.kp-hero-overlay { position: absolute; inset: 0; z-index: 1; }


.kp-hero-content {


    position: relative;


    z-index: 2;


    text-align: center;


    padding: 24px 32px;


}


.kp-hero-title {


    font-family: 'Dosis', sans-serif;


    font-size: clamp(24px, 4vw, 48px);


    font-weight: 800;


    text-transform: uppercase;


    color: #fff;


    letter-spacing: .02em;


    margin: 0 0 10px;


}


.kp-hero-breadcrumb { color: rgba(255,255,255,.65); font-size: 13px; }


.kp-hero-breadcrumb a { color: rgba(255,255,255,.65); }


.kp-hero-breadcrumb a:hover { color: var(--kp-orange); }





/* ── MOBILE BAR ── */


.kp-mobile-bar {


    display: none;


    position: fixed;


    bottom: 0; left: 0; right: 0;


    background: var(--kp-navy);


    color: #fff;


    z-index: 9500;


    padding: 8px 16px;


    gap: 0;


}


.kp-mobile-bar-item {


    flex: 1;


    display: flex;


    align-items: center;


    justify-content: center;


    gap: 7px;


    color: rgba(255,255,255,.85);


    font-size: 13px;


    padding: 8px 0;


}


.kp-mobile-bar-close {


    background: none;


    border: none;


    color: rgba(255,255,255,.5);


    font-size: 16px;


    cursor: pointer;


    padding: 8px;


}





/* ── RESPONSIVE ── */


@media (max-width: 1024px) {


    .kp-container { padding: 0 20px; }


}





@media (max-width: 860px) {

    /* Topbar peidetud mobiilis */
    .kp-topbar { display: none !important; }

    /* Hamburger nahtav */
    .kp-hamburger { display: flex !important; }

    /* Navbar inner: logo vasakul, ulejaanud parempoolne grupp (CTA+otsing+hamburger) */
    .kp-navbar-inner { padding: 0 10px !important; justify-content: flex-start !important; }
    /* Logo mobiilis — veidi suurem */
    #kp-header .kp-logo-img,
    body > #kp-navbar .kp-logo-img {
        max-height: 46px !important;
        height: auto !important;
        max-width: 120px !important;
        width: auto !important;
    }
    .kp-logo-link { overflow: visible !important; }

    /* Nav-right: laieneb taitma ulejaanud ruumi (flex-shrink:0 on inline, flex-grow tuleb CSS-ist) */
    body > #kp-navbar .kp-nav-right,
    #kp-header .kp-nav-right { flex-grow: 1 !important; min-width: 0 !important; gap: 6px !important; }

    /* CTA nupp navbaris — kompaktne, taitab vaba ruumi */
    .kp-cta-btn {
        display: inline-flex !important;
        flex: 1 1 0 !important;
        min-width: 0 !important;
        padding: 7px 8px !important;
        font-family: 'Barlow Condensed', 'Dosis', sans-serif !important;
        font-size: 11px !important;
        font-weight: 700 !important;
        letter-spacing: .06em !important;
        text-transform: uppercase !important;
        line-height: 1.25 !important;
        border-radius: 6px !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        height: auto !important;
        text-align: center !important;
        justify-content: center !important;
        align-items: center !important;
        border: none !important;
        cursor: pointer !important;
    }
    /* Otsing ja hamburger: pisut vahem (ruumi CTA jaoks) */
    .kp-search-toggle {
        width: 30px !important;
        height: 30px !important;
        flex-shrink: 0 !important;
    }
    .kp-hamburger { flex-shrink: 0 !important; }

    /* ── TAISLAIUSELINE MOBIILMENUUU — valge taust ── */
    .kp-nav {
        position: fixed !important;
        inset: 0 !important;
        width: 100vw !important;
        height: 100dvh !important;
        background: #fff !important;
        z-index: 99999 !important;
        flex-direction: column !important;
        align-items: stretch !important;
        justify-content: flex-start !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        padding: 0 !important;
        box-shadow: 0 8px 40px rgba(3,46,104,.18) !important;
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
        transform: translateY(-16px) !important;
        transition: opacity .28s ease, visibility .28s ease, transform .28s ease !important;
        right: auto !important;
        top: 0 !important;
        left: 0 !important;
        bottom: 0 !important;
    }
    .kp-nav.open {
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
        transform: translateY(0) !important;
    }

    /* ── MOBIILMENUUU PAEIS: logo keskel originaalvarvides ── */
    .kp-nav-mobile-header {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 14px 56px !important;
        border-bottom: 1px solid rgba(3,46,104,.1) !important;
        flex-shrink: 0 !important;
        min-height: 70px !important;
        box-sizing: border-box !important;
        position: relative !important;
        background: #fff !important;
    }
    .kp-nav-mobile-logo-link {
        display: flex !important;
        align-items: center !important;
        text-decoration: none !important;
        justify-content: center !important;
    }
    .kp-nav-mobile-logo-img {
        max-height: 56px !important;
        width: auto !important;
        max-width: 200px !important;
        object-fit: contain !important;
        filter: none !important;
        display: block !important;
    }
    /* Sulge nupp absoluutne parem nurk */
    .kp-nav-close {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 38px !important;
        height: 38px !important;
        background: rgba(3,46,104,.07) !important;
        border: 1px solid rgba(3,46,104,.15) !important;
        border-radius: 50% !important;
        color: #032e68 !important;
        cursor: pointer !important;
        padding: 0 !important;
        flex-shrink: 0 !important;
        position: absolute !important;
        right: 14px !important;
        top: 50% !important;
        transform: translateY(-50%) !important;
        transition: background .18s !important;
    }
    .kp-nav-close:hover { background: rgba(3,46,104,.13) !important; }

    /* ── MENUUULINGID ── */
    .kp-menu {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 0 !important;
        padding: 4px 0 !important;
        flex: 1 0 auto !important;
        pointer-events: auto !important;
    }
    #kp-nav .kp-menu > li {
        pointer-events: auto !important;
        display: flex !important;
        flex-wrap: wrap !important;
        align-items: stretch !important;
        border-bottom: 1px solid rgba(3,46,104,.08) !important;
    }
    #kp-nav .kp-menu > li > a,
    #kp-nav .kp-menu > li > a:link,
    #kp-nav .kp-menu > li > a:visited {
        color: #032e68 !important;
        font-size: 15px !important;
        font-weight: 700 !important;
        letter-spacing: .06em !important;
        text-transform: uppercase !important;
        padding: 11px 16px !important;
        height: auto !important;
        display: flex !important;
        align-items: center !important;
        gap: 8px !important;
        border-bottom: none !important;
        border-radius: 0 !important;
        background: transparent !important;
        flex: 1 !important;
    }
    #kp-nav .kp-menu > li > a:hover,
    #kp-nav .kp-menu > li.current-menu-item > a,
    #kp-nav .kp-menu > li.current-menu-ancestor > a {
        color: #e95e23 !important;
        background: rgba(233,94,35,.05) !important;
    }
    #kp-nav .kp-menu > li > a::after { display: none !important; }

    /* ── ALAMMENUU ── */
    .kp-menu .sub-menu {
        display: none;
        position: static !important;
        box-shadow: none !important;
        border: none !important;
        background: #f5f7fa !important;
        padding: 0 !important;
        border-radius: 0 !important;
        width: 100% !important;
        flex-basis: 100% !important;
        border-top: 1px solid rgba(3,46,104,.07) !important;
    }
    .kp-menu .sub-menu.kp-sub-open { display: block !important; }
    .kp-menu .sub-menu li { display: block !important; }
    .kp-menu .sub-menu li a,
    .kp-menu .sub-menu li a:link,
    .kp-menu .sub-menu li a:visited {
        color: #444 !important;
        font-size: 14px !important;
        padding: 10px 16px 10px 34px !important;
        font-weight: 500 !important;
        text-transform: none !important;
        letter-spacing: .01em !important;
        border-bottom: 1px solid rgba(3,46,104,.06) !important;
        background: transparent !important;
        height: auto !important;
        flex: none !important;
        display: block !important;
    }
    .kp-menu .sub-menu li:last-child a { border-bottom: none !important; }
    .kp-menu .sub-menu li a:hover { color: #e95e23 !important; background: rgba(233,94,35,.04) !important; }

    /* Toggle nupp alammenuu avamiseks */
    .kp-mobile-sub-toggle {
        background: none !important;
        border: none !important;
        cursor: pointer !important;
        padding: 13px 14px !important;
        color: rgba(3,46,104,.4) !important;
        flex-shrink: 0 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        transition: color .18s, transform .2s !important;
        border-left: 1px solid rgba(3,46,104,.08) !important;
    }
    .kp-mobile-sub-toggle:hover { color: #e95e23 !important; }
    .kp-mobile-sub-toggle.open { transform: rotate(180deg) !important; color: #e95e23 !important; }
    .kp-menu > li.menu-item-has-children > a { flex: 1 !important; }

    /* ── MOBIILI KONTAKT + CTA ── */
    .kp-nav-mobile-contact {
        display: flex !important;
        flex-direction: column !important;
        gap: 8px !important;
        padding: 14px 16px !important;
        border-top: 1px solid rgba(3,46,104,.1) !important;
        flex-shrink: 0 !important;
        background: #f8f9fc !important;
    }
    .kp-nav-contact-btn {
        display: flex !important;
        align-items: center !important;
        gap: 11px !important;
        color: #032e68 !important;
        text-decoration: none !important;
        font-size: 15px !important;
        font-weight: 600 !important;
        font-family: 'Barlow Condensed', 'Dosis', sans-serif !important;
        letter-spacing: .02em !important;
        padding: 11px 14px !important;
        background: #fff !important;
        border-radius: 7px !important;
        border: 1px solid rgba(3,46,104,.12) !important;
        transition: border-color .18s, box-shadow .18s !important;
        box-sizing: border-box !important;
    }
    .kp-nav-contact-btn:hover { border-color: #e95e23 !important; box-shadow: 0 2px 8px rgba(233,94,35,.12) !important; }
    .kp-nav-contact-btn svg { color: #e95e23 !important; flex-shrink: 0 !important; }
    .kp-cta-btn-mobile {
        display: block !important;
        width: 100% !important;
        padding: 13px 18px !important;
        border-radius: 7px !important;
        font-family: 'Barlow Condensed', 'Dosis', sans-serif !important;
        font-size: 17px !important;
        font-weight: 700 !important;
        letter-spacing: .08em !important;
        text-transform: uppercase !important;
        text-align: center !important;
        box-sizing: border-box !important;
        text-decoration: none !important;
        border: none !important;
        cursor: pointer !important;
    }

    /* Hamburger: alati navy taustavarjundiga et oleks nahtav igal taustal */
    .kp-hamburger {
        background: rgba(255,255,255,0.15) !important;
        border-radius: 6px !important;
        padding: 7px !important;
        backdrop-filter: blur(4px) !important;
    }
    .kp-hamburger span { background: #032e68 !important; }
    /* Transparent header (slaider taustal) — tugevam kontrast */
    body > #kp-navbar.kp-transparent:not(.kp-scrolled) .kp-hamburger {
        background: rgba(3,46,104,0.55) !important;
        border: 1px solid rgba(255,255,255,0.25) !important;
    }
    body > #kp-navbar.kp-transparent:not(.kp-scrolled) .kp-hamburger span { background: #fff !important; }

    /* Taustakate ei ole vaja (taislaiusmenuu katab koik) */
    .kp-nav-overlay { display: none !important; }
    .kp-nav-overlay.active { display: none !important; }

    /* Vana mobiiliriba peidetud (kontakt on nuud menuus) */
    .kp-mobile-bar { display: none !important; }

    /* Slider */
    .kp-slide-content { padding: 0 20px 40px; }
    .kp-slider-btn { width: 36px; height: 36px; }
    .kp-prev { left: 12px; }
    .kp-next { right: 12px; }
}

@media (max-width: 480px) {
    .kp-slide-title { font-size: clamp(26px,7vw,42px); }
    .kp-slide-subtitle { font-size: 15px; }
    .kp-slider-btn { display: none; }
    .kp-hero-title { font-size: clamp(20px,6vw,36px); }
}

/* Desktop: peida mobiilspetsiifilised elemendid */
@media (min-width: 861px) {
    .kp-nav-mobile-header { display: none !important; }
    .kp-nav-mobile-contact { display: none !important; }
}
/* ── OVERLAY (click outside to close nav) ── */


.kp-nav-overlay {


    display: none;


    position: fixed;


    inset: 0;


    background: rgba(3,46,104,.4);


    z-index: 9800;


    backdrop-filter: blur(2px);


}


.kp-nav-overlay.active { display: block; }





/* Admin bar top väärtused: CSS haldab body.admin-bar klassiga, JS seab padding */











/* Peida Divi vaikepäis (kui on) */


#main-header,


#top-header,


.et-fixed-header,


#et-main-nav {


    display: none !important;


}





/* Divi Theme Builder et-l--header wrapper.


   EI tohi olla height:0 — slaider on päise sees ja vajab ruumi.


   Navbar/topbar on position:fixed (ei lisa kõrgust), nii et


   wrapper kõrgus = slaidi kõrgus (avalehel) või 0 (mujal). */


.et-l--header {


    margin: 0 !important;


    padding: 0 !important;


    display: block !important;


    position: static !important;


}


.et-l--header .et_builder_inner_content {


    padding: 0 !important;


    margin: 0 !important;


}





/* Divi section padding reset */


.et_pb_section.et_section_specialty {


    padding-top: 0 !important;


}


/* ── SEARCH TOGGLE IKOON ── */


.kp-search-toggle {


    display: flex !important;


    align-items: center !important;


    justify-content: center !important;


    width: 36px !important;


    height: 36px !important;


    background: #032e68 !important;


    border: none !important;


    cursor: pointer !important;


    border-radius: 50% !important;


    color: #fff !important;


    transition: background .2s !important;


    padding: 0 !important;


    flex-shrink: 0 !important;


    line-height: 1 !important;


}


.kp-search-toggle:hover {


    background: #e95e23 !important;


}


.kp-search-toggle svg {


    stroke: currentColor !important;


    display: block !important;


}





/* ── SEARCH OVERLAY ── */


.kp-search-overlay {


    position: fixed;


    top: 0; left: 0; right: 0;


    z-index: 100000;


    background: #fff;


    border-bottom: 3px solid #f0f4f8;


    box-shadow: 0 8px 32px rgba(3,46,104,.10), 0 2px 8px rgba(3,46,104,.06);


    transform: translateY(-100%);


    opacity: 0;


    transition: transform .28s cubic-bezier(.4,0,.2,1), opacity .28s ease;


    pointer-events: none;


    overflow: visible;


}


.kp-search-overlay.kp-search-open {


    transform: translateY(0);


    opacity: 1;


    pointer-events: auto;


}





.kp-search-overlay-inner {


    max-width: 1200px;


    margin: 0 auto;


    padding: 0 32px;


    box-sizing: border-box;


    height: 100%;


    display: flex;


    align-items: center;


}





.kp-search-box-wrap {


    display: flex;


    align-items: center;


    gap: 12px;


    width: 100%;


    border-bottom: 1.5px solid rgba(3,46,104,.12);


    transition: border-color .2s;


}


.kp-search-box-wrap:focus-within {


    border-bottom-color: var(--kp-orange);


}





.kp-search-icon-big {


    color: rgba(3,46,104,.3);


    flex-shrink: 0;


}





.kp-search-input {


    flex: 1;


    background: transparent;


    border: none;


    outline: none;


    color: var(--kp-navy);


    font-family: 'Dosis', sans-serif;


    font-size: 17px;


    font-weight: 500;


    letter-spacing: .01em;


    padding: 8px 0;


    caret-color: var(--kp-orange);


}


.kp-search-input::placeholder { color: rgba(3,46,104,.3); }


.kp-search-input::-webkit-search-cancel-button { display: none; }





.kp-search-close {


    display: flex;


    align-items: center;


    justify-content: center;


    width: 30px;


    height: 30px;


    background: rgba(3,46,104,.06);


    border: 1px solid rgba(3,46,104,.12);


    border-radius: 50%;


    color: rgba(3,46,104,.45);


    cursor: pointer;


    flex-shrink: 0;


    transition: background .2s, color .2s;


    padding: 0;


}


.kp-search-close:hover { background: rgba(3,46,104,.1); color: var(--kp-navy); }





/* Tulemused */


.kp-search-results {

    position: absolute;

    top: 100%;

    left: 0; right: 0;

    background: #fff;

    border-top: 1px solid rgba(3,46,104,.08);

    box-shadow: 0 12px 40px rgba(3,46,104,.12);

    max-height: 55vh;

    overflow-y: auto;

    padding: 8px 32px 20px;

    box-sizing: border-box;

}

.kp-search-results:empty {

    display: none;

}


.kp-search-result-item {


    display: flex;


    align-items: center;


    gap: 14px;


    padding: 10px 0;


    border-bottom: 1px solid rgba(3,46,104,.06);


    text-decoration: none;


    color: var(--kp-navy);


    transition: color .15s;


}


.kp-search-result-item:last-child { border-bottom: none; }


.kp-search-result-item:hover { color: var(--kp-orange); }


.kp-search-result-thumb {


    width: 52px;


    height: 40px;


    border-radius: 4px;


    object-fit: cover;


    flex-shrink: 0;


    background: rgba(3,46,104,.06);


}


.kp-search-result-thumb-placeholder {


    width: 52px;


    height: 40px;


    border-radius: 4px;


    background: rgba(3,46,104,.05);


    flex-shrink: 0;


    display: flex;


    align-items: center;


    justify-content: center;


}


.kp-search-result-body { flex: 1; min-width: 0; }


.kp-search-result-title {


    font-family: 'Dosis', sans-serif;


    font-size: 16px;


    font-weight: 700;


    letter-spacing: .02em;


    white-space: normal;


    overflow: visible;


}


.kp-search-result-excerpt {


    font-size: 12px;


    color: rgba(3,46,104,.45);


    margin-top: 2px;


    white-space: normal;


    overflow: visible;


}


.kp-search-result-type {


    font-size: 11px;


    font-weight: 700;


    letter-spacing: .08em;


    text-transform: uppercase;


    color: var(--kp-orange);


    flex-shrink: 0;


}


.kp-search-no-results {


    color: rgba(3,46,104,.4);


    font-size: 15px;


    padding: 12px 0;


    font-style: italic;


}

/* Otsingutulemuste sobituse markeerija */

.kp-match {

    background: rgba(233,94,35,.12);

    color: var(--kp-orange);

    font-weight: 700;

    border-radius: 2px;

    font-style: normal;

}


.kp-search-all-link {


    display: inline-flex;


    align-items: center;


    gap: 6px;


    margin-top: 10px;


    color: var(--kp-orange);


    font-family: 'Dosis', sans-serif;


    font-size: 13px;


    font-weight: 700;


    letter-spacing: .06em;


    text-transform: uppercase;


    text-decoration: none;


    transition: opacity .2s;


}


.kp-search-all-link:hover { opacity: .75; }


.kp-search-loading {


    display: flex;


    align-items: center;


    gap: 10px;


    color: rgba(3,46,104,.35);


    font-size: 14px;


    padding: 12px 0;


}


@keyframes kp-spin {


    to { transform: rotate(360deg); }


}


.kp-search-spinner {


    width: 18px; height: 18px;


    border: 2px solid rgba(3,46,104,.1);


    border-top-color: var(--kp-orange);


    border-radius: 50%;


    animation: kp-spin .7s linear infinite;


    flex-shrink: 0;


}





/* Tühi olek — kiirlinkid */


.kp-search-hint {


    font-size: 11px;


    font-weight: 700;


    letter-spacing: .08em;


    text-transform: uppercase;


    color: rgba(3,46,104,.3);


    margin-bottom: 8px;


    padding-top: 4px;


}


.kp-search-quick {


    display: flex;


    flex-wrap: wrap;


    gap: 8px;


}


.kp-search-quick-link {


    display: inline-flex;


    align-items: center;


    gap: 5px;


    padding: 5px 12px;


    background: rgba(3,46,104,.04);


    border: 1px solid rgba(3,46,104,.1);


    border-radius: 20px;


    color: var(--kp-navy);


    font-size: 13px;


    font-weight: 600;


    text-decoration: none;


    transition: background .15s, border-color .15s, color .15s;


}


.kp-search-quick-link:hover {


    background: var(--kp-orange);


    border-color: var(--kp-orange);


    color: #fff;


}


.kp-search-quick-link svg { flex-shrink: 0; }





/* ── SLIDER BOTTOM SHAPE ── */


.kp-slider-shape {


    position: absolute;


    bottom: -1px;


    left: 0;


    width: 100%;


    height: 80px;


    z-index: 15;


    display: block;


    pointer-events: none;


}





/* ── TEENUSED SLAIDERI PEAL ── */


@keyframes kp-svc-enter {


    0%   { opacity: 0; transform: translateY(28px); }


    100% { opacity: 1; transform: translateY(0); }


}





.kp-slider-services {


    position: absolute;


    bottom: 180px;


    left: 0; right: 0;


    z-index: 20;


    display: flex;


    justify-content: center;


    gap: 12px;


    padding: 0 32px;


    pointer-events: none;


    flex-wrap: wrap;


}





.kp-svc-item {


    pointer-events: auto;


    display: flex;


    align-items: center;


    gap: 8px;


    padding: 20px 26px;


    background: #e95e23;


    border: 1px solid rgba(255,255,255,.2);


    border-radius: 4px;


    color: #fff;


    text-decoration: none;


    font-family: 'Dosis', sans-serif;


    font-size: clamp(15px, 1.4vw, 18px);


    font-weight: 700;


    letter-spacing: .05em;


    text-transform: uppercase;


    cursor: pointer;


    white-space: nowrap;


    box-shadow: 0 4px 20px rgba(0,0,0,.2);


    animation: kp-svc-enter .55s cubic-bezier(.22,1,.36,1) both;


    transition: background .2s, transform .2s, box-shadow .2s;


}


a.kp-svc-item:hover {


    background: #cf5120;


    transform: translateY(-3px);


    box-shadow: 0 8px 28px rgba(0,0,0,.25);


}





.kp-svc-item-num { display: none; }


.kp-svc-item-title { line-height: 1; }


.kp-svc-item-arrow {


    opacity: .6;


    flex-shrink: 0;


    transition: transform .2s;


}


a.kp-svc-item:hover .kp-svc-item-arrow {


    opacity: 1;


    transform: translateX(3px);


}





@media (max-width: 900px) {


    .kp-slider-services { bottom: 130px; gap: 8px; padding: 0 20px; }


    .kp-svc-item { font-size: 12px; padding: 11px 14px; }


    .kp-slide-content { padding-bottom: 210px; }


}


@media (max-width: 600px) {


    .kp-slider-services { bottom: 100px; flex-wrap: wrap; justify-content: flex-start; gap: 6px; }


    .kp-slide-content { padding: 0 20px 220px; }


}





/* ── DIVI VISUAL BUILDER REŽIIM ──


   et_fb_root_ancestor / et_pb_preview klassid lisatakse builder-is.


   Muudame fixed elemendid static-uks et päis kuvataks builder-is normaalselt. */


body.et_pb_preview #kp-header .kp-topbar,


body.et_pb_preview #kp-header .kp-navbar,


body.et_pb_preview > #kp-navbar,


body.et_fb_root_ancestor #kp-header .kp-topbar,


body.et_fb_root_ancestor #kp-header .kp-navbar,


body.et_fb_root_ancestor > #kp-navbar {


    position: static !important;


    top: auto !important;


    transform: none !important;


}


body.et_pb_preview #kp-header,


body.et_fb_root_ancestor #kp-header {


    position: static !important;


}


body.et_pb_preview .et-l--header,


body.et_fb_root_ancestor .et-l--header {


    height: auto !important;


    overflow: visible !important;


}


body.et_pb_preview #page-container,


body.et_fb_root_ancestor #page-container {


    padding-top: 0 !important;


}


/* Slider ka nähtav builder-is */


body.et_pb_preview .kp-slider-wrap,


body.et_fb_root_ancestor .kp-slider-wrap {


    height: 400px !important;


}


body.et_pb_preview .kp-slide,


body.et_fb_root_ancestor .kp-slide {


    position: static !important;


    display: none !important;


}


body.et_pb_preview .kp-slide:first-child,


body.et_fb_root_ancestor .kp-slide:first-child {


    display: block !important;


    opacity: 1 !important;


}


body.et_pb_preview .kp-slide-bg,


body.et_fb_root_ancestor .kp-slide-bg {


    position: absolute !important;


    animation: none !important;


}





/* ══════════════════════════════════════════════════


   MENÜÜ VARIANDID — A / B / C / D


   ══════════════════════════════════════════════════ */





/* kp-has-mega: peit algne dropdown */


.kp-menu > li.kp-has-mega > .sub-menu { display: none !important; }





/* ── VARIANT A — veergudes: pealkiri üleval, kirjed all ── */


.kp-panel-a-inner {


    display: flex;


    flex-direction: row;


    align-items: flex-start;


    flex-wrap: nowrap;


    overflow-x: auto;


    overflow-y: auto;


    max-height: calc(100vh - 120px);


    max-width: min(98vw, 1600px);


    width: 100%;


    margin: 0 auto;


    box-sizing: border-box;


}


.kp-panel-a-inner::-webkit-scrollbar { height: 4px; }


.kp-panel-a-inner::-webkit-scrollbar-thumb { background: rgba(3,46,104,.2); border-radius: 2px; }





/* Iga 2. taseme kirje = üks veerg */


.kpm-group {


    flex: 1 1 0;


    min-width: 160px;


    padding: 16px 20px 20px;


    border-right: 1px solid rgba(3,46,104,.07);


    overflow-y: auto;


    max-height: calc(100vh - 120px);


    box-sizing: border-box;


}


.kpm-group:last-child { border-right: none; }





/* 2. taseme pealkiri — fikseeritud kõrgus et kõik joonduvad */


.kpm-group-title {


    margin: 0 0 12px;


    padding: 0 0 10px;


    border-bottom: 2px solid var(--kp-orange);


    min-height: 52px; /* 2 rida pealkirja + padding */


    display: flex;


    align-items: flex-end; /* pealkiri joondub alaservale, joon alla */


}


.kpm-group-title a {


    display: block !important;


    font-family: 'Dosis', sans-serif !important;


    font-size: clamp(18px, 1.5vw, 20px) !important;


    font-weight: 800 !important;


    letter-spacing: .05em !important;


    text-transform: uppercase !important;


    color: var(--kp-navy) !important;


    text-decoration: none !important;


    transition: color .15s !important;


    height: auto !important;


    padding: 0 !important;


    background: none !important;


    box-shadow: none !important;


    line-height: 1.2 !important;


}


.kpm-group-title a:hover { color: var(--kp-orange) !important; }





/* 3. taseme kirjed — ALL pealkirjast */


.kpm-group-items {


    list-style: none;


    margin: 0;


    padding: 0;


}


/* 2-tulbaline variant pikale nimekirjale — grid */


.kpm-group-items--cols {


    display: grid;


    grid-template-columns: 1fr 1fr;


    column-gap: 20px;


    row-gap: 0;


}


.kpm-group-items li + li { border-top: 1px solid rgba(3,46,104,.05); }


.kpm-group-items--cols li + li { border-top: none; }


.kpm-group-items li a {


    display: block !important;


    padding: 5px 0 !important;


    font-size: clamp(16px, 1.2vw, 18px) !important;


    white-space: normal;


    overflow: visible;


    transition: color .15s, transform .15s !important;


    font-family: 'Nunito', sans-serif !important;


    font-weight: 400 !important;


    color: #555 !important;


    text-decoration: none !important;


    transition: color .15s, padding-left .15s !important;


    line-height: 1.4 !important;


    border: none !important;


    background: none !important;


    height: auto !important;


    text-transform: none !important;


    letter-spacing: 0 !important;


}


.kpm-group-items li a:hover {


    color: var(--kp-orange) !important;


    transform: translateX(6px);


}


/* Lai veerg 2-tulbalisele nimekirjale */


.kpm-group--wide {


    flex: 2 1 0 !important;


    min-width: 300px !important;


}





/* ── VARIANT B — accordion ── */


.kp-panel-b-inner {


    display: block !important;


    max-width: 480px;


    margin: 0 auto;


    max-height: calc(100vh - 160px);


    overflow-y: auto;


    padding: 12px 24px !important;


}


.kpm-acc-row { border-bottom: 1px solid rgba(3,46,104,.07); }


.kpm-acc-head {


    display: flex;


    align-items: center;


    justify-content: space-between;


    padding: 11px 0;


    cursor: pointer;


}


.kpm-acc-head a {


    font-size: 15px !important;


    font-weight: 600 !important;


    color: var(--kp-navy) !important;


    text-decoration: none !important;


    pointer-events: none;


}


.kpm-acc-row:not(.kpm-has-kids) .kpm-acc-head a { pointer-events: auto; }


.kpm-acc-row:not(.kpm-has-kids) .kpm-acc-head { cursor: default; }


.kpm-acc-head:hover a { color: var(--kp-orange) !important; }


.kpm-acc-row.kpm-open .kpm-acc-head a { color: var(--kp-orange) !important; }


.kpm-acc-toggle {


    font-size: 20px;


    color: var(--kp-orange);


    font-weight: 300;


    line-height: 1;


    flex-shrink: 0;


    margin-left: 8px;


}


.kpm-acc-body {


    list-style: none;


    margin: 0;


    padding: 0 0 10px 16px;


}


.kpm-acc-body a {


    display: block !important;


    padding: 5px 0 !important;


    font-size: 13px !important;


    color: #555 !important;


    text-decoration: none !important;


    transition: color .15s !important;


}


.kpm-acc-body a:hover { color: var(--kp-orange) !important; }





/* ── VARIANT D — 2-veeru paneel ── */


.kp-panel-d-inner {


    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)) !important;


    max-height: calc(100vh - 160px);


    overflow-y: auto;


    padding: 28px 32px !important;


    max-width: 1200px;


    margin: 0 auto;


}





/* ── LAINE PROGRESS — vasak→parem, siis parem→vasak ── */


@keyframes kp-wave-draw {


    from { stroke-dashoffset: 1; }


    to   { stroke-dashoffset: 0; }


}


@keyframes kp-wave-back {


    from { stroke-dashoffset: 0; }


    to   { stroke-dashoffset: -1; }


}


/* Progress SVG asub täpselt valge laine peal */


.kp-slider-shape-progress {


    position: absolute;


    bottom: -1px;


    left: 0;


    width: 100%;


    height: 80px;


    z-index: 16; /* valge kuju (z-index:15) peal */


    display: block;


    pointer-events: none;


}


.kp-slider-shape-progress path {


    stroke-dashoffset: 1; /* peidetud vaikimisi, JS alustab */


}





/* ── TÄHELAINEEFEKT ── */


.kp-wave-letter {


    display: inline;


    transition: color 0.15s ease;


}





/* ── SUUR EKRAAN — suuremad fondid menüüs ── */


@media (min-width: 1600px) {


    .kp-mega-col-title { font-size: 20px !important; }


    .kp-mega-col-items a { font-size: 20px !important; }


    .kpm-group-title a { font-size: 22px !important; }


    .kpm-group-items li a { font-size: 20px !important; }


}


@media (min-width: 2000px) {


    .kp-mega-col-title { font-size: 22px !important; }


    .kp-mega-col-items a { font-size: 20px !important; }


    .kpm-group-title a { font-size: 24px !important; }


    .kpm-group-items li a { font-size: 20px !important; }


}


/* ── PEAMENÜÜ FONDID — responsiivsed ── */


@media (min-width: 1200px) {


    #kp-navbar .kp-menu > li > a {


        font-size: clamp(18px, 2.2vw, 28px) !important;


    }


}


@media (min-width: 1440px) {


    #kp-navbar .kp-menu > li > a {


        font-size: clamp(18px, 2.2vw, 28px) !important;


    }


}


@media (min-width: 1800px) {


    #kp-navbar .kp-menu > li > a {


        font-size: clamp(18px, 2.2vw, 28px) !important;


    }


}


@media (min-width: 2200px) {


    #kp-navbar .kp-menu > li > a {


        font-size: clamp(18px, 2.2vw, 28px) !important;


    }


}


/* ── MEGAMENÜÜ MOBIIL / TABLET ── */


@media (max-width: 1200px) {


    .kp-panel-a-inner { max-height: calc(100vh - 100px); }


    .kpm-group { min-width: 130px; padding: 12px 14px 16px; }


    .kpm-group-title a { font-size: 16px !important; }


    .kpm-group-items li a { font-size: 14px !important; }


    .kpm-group-items--cols { grid-template-columns: 1fr; }


    .kpm-group--wide { min-width: 200px !important; flex: 1.5 1 0 !important; }


}


@media (max-width: 900px) {


    .kp-panel-a-inner { flex-wrap: wrap; max-height: 70vh; overflow-y: auto; }


    .kpm-group { flex: 1 1 200px; max-height: none; border-right: none; border-bottom: 1px solid rgba(3,46,104,.07); }


    .kpm-group:last-child { border-bottom: none; }


}


/* ══════════════════════════════════════════════════


   HERO — SISULEHT


   ══════════════════════════════════════════════════ */


.kp-hero {


    position: relative;


    display: flex;


    align-items: center;


    overflow: hidden;


    background: #032e68;


    box-sizing: border-box;


    padding: 14px 0 !important;


    min-height: 0 !important;


    max-height: 100px !important;


}


.kp-hero--grad { background: linear-gradient(135deg, #032e68 0%, #054a9e 100%); }


.kp-hero-bg {


    position: absolute;


    inset: 0;


    background-size: cover;


    background-position: center;


    opacity: .35;


    filter: grayscale(30%);


}


.kp-hero-overlay {


    position: absolute;


    inset: 0;


}


.kp-hero-content {


    position: relative;


    z-index: 2;


    max-width: 1200px;


    margin: 0 auto;


    padding: 0 48px;


    width: 100%;


    display: flex;


    align-items: center;


    justify-content: space-between;


    gap: 40px;


    box-sizing: border-box;


}


.kp-hero-left { flex: 1; }





/* Breadcrumb — eraldi riba hero all, vasakule joondatud */


.kp-breadcrumb--standalone {


    display: block;


    background: #f8f9fc;


    border-bottom: 1px solid #eef0f4;


    margin: 0;


    padding: 0;


}


.kp-bc-inner {


    max-width: 1200px;


    margin: 0 auto;


    padding: 8px 48px;


    display: flex;


    align-items: center;


    gap: 6px;


    flex-wrap: wrap;


}


.kp-bc-link {


    color: #666;


    text-decoration: none;


    font-family: 'Nunito', sans-serif;


    font-size: 13px;


    font-weight: 500;


    transition: color .15s;


    white-space: nowrap;


}


.kp-bc-link:hover { color: #e95e23; }


.kp-bc-sep {


    color: #bbb;


    font-size: 12px;


}


.kp-bc-current {


    color: #032e68;


    font-family: 'Nunito', sans-serif;


    font-size: 13px;


    font-weight: 700;


    white-space: nowrap;


}


@media (max-width: 768px) {


    .kp-bc-inner { padding: 8px 20px; }


}





/* Pealkiri */


.kp-hero-title {


    font-family: 'Dosis', sans-serif !important;


    font-size: clamp(20px, 2.5vw, 30px) !important;


    font-weight: 800 !important;


    color: #fff !important;


    text-transform: uppercase !important;


    letter-spacing: .04em !important;


    line-height: 1.1 !important;


    margin: 4px 0 0 !important;


    padding: 0 !important;


    border: none !important;


    background: none !important;


}





/* Oranž aksent joon */


.kp-hero-accent {


    display: none; /* kompaktsel vaatamisel peidetud */


}





/* Dekoratiivne parem pool */


.kp-hero-deco {


    position: absolute;


    right: 0;


    top: 50%;


    transform: translateY(-50%);


    width: clamp(80px, 10vw, 140px);


    opacity: .4;


    pointer-events: none;


}


.kp-hero-deco svg { width: 100%; height: auto; }





@media (max-width: 768px) {


    .kp-hero-content { padding: 0 24px; }


    .kp-hero-deco { display: none; }


    .kp-hero-title { font-size: clamp(24px, 6vw, 36px) !important; }


}





/* ── KONTAKTIVORM POPUP ─────────────────────────────────── */





.kp-contact-overlay {


    position: fixed;


    inset: 0;


    background: rgba(3,46,104,.55);


    backdrop-filter: blur(3px);


    z-index: 999999;


    display: flex;


    align-items: center;


    justify-content: center;


    padding: 20px;


    box-sizing: border-box;


    /* Peitmine opacity+visibility kaudu — display:flex jääb alati,


       nii ei sõltu PHP style="display:none" CSS override'idest */


    opacity: 0;


    visibility: hidden;


    pointer-events: none;


    transition: opacity 0.18s ease, visibility 0.18s ease;


}


.kp-contact-overlay.kp-open {


    opacity: 1 !important;


    visibility: visible !important;


    pointer-events: auto !important;


}





.kp-contact-modal {





    background: #fff;





    border-radius: 12px;





    padding: 40px 44px;





    width: 100%;





    max-width: 520px;





    position: relative;





    box-shadow: 0 24px 64px rgba(0,0,0,.22);





    max-height: 90vh;





    overflow-y: auto;





}





.kp-contact-close {





    position: absolute;





    top: 16px; right: 16px;





    background: none; border: none;





    cursor: pointer; color: #999;





    padding: 4px;





    display: flex; align-items: center; justify-content: center;





    border-radius: 4px;





    transition: color .18s, background .18s;





}





.kp-contact-close:hover { color: #032e68; background: #f0f4fa; }





.kp-contact-title {





    font-family: 'Dosis', sans-serif;





    font-size: 28px; font-weight: 700;





    color: #032e68; margin: 0 0 24px;





    text-transform: uppercase; letter-spacing: .04em;





}





.kp-cf-group { margin-bottom: 16px; }





.kp-cf-label-el { display: block; font-size: 15px; font-weight: 600; color: #032e68; margin-bottom: 5px; }





.kp-cf-input {





    width: 100%; box-sizing: border-box;





    border: 1.5px solid #d1d9e6; border-radius: 6px;





    padding: 13px 14px; font-size: 16px;





    font-family: 'Nunito', sans-serif; color: #1a1a1a;





    background: #fafbfd; outline: none; resize: vertical;





    transition: border-color .18s, box-shadow .18s;





}





.kp-cf-input:focus { border-color: #032e68; box-shadow: 0 0 0 3px rgba(3,46,104,.1); background: #fff; }





.kp-cf-privacy-wrap { margin: 20px 0 22px; }





.kp-cf-privacy-label { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; font-size: 15px; color: #444; line-height: 1.5; }





.kp-cf-privacy-label input[type="checkbox"] { margin-top: 2px; width: 16px; height: 16px; flex-shrink: 0; accent-color: #032e68; cursor: pointer; }





.kp-cf-privacy-label a { color: #032e68; text-decoration: underline; }





.kp-cf-privacy-label a:hover { color: #e95e23; }





.kp-contact-error { background: #fff3f0; border: 1px solid #f5c6bb; color: #c0392b; border-radius: 6px; padding: 10px 14px; font-size: 15px; margin-bottom: 14px; }





.kp-cf-submit {





    width: 100%; padding: 13px 24px; border: none; border-radius: 6px;





    font-family: 'Dosis', sans-serif; font-size: 18px; font-weight: 700;





    letter-spacing: .06em; text-transform: uppercase; cursor: pointer;





    display: flex; align-items: center; justify-content: center; gap: 10px;





    transition: filter .18s, transform .12s;





}





.kp-cf-submit:hover { filter: brightness(1.1); }





.kp-cf-submit-spinner { width: 18px; height: 18px; border: 2.5px solid rgba(255,255,255,.35); border-top-color: #fff; border-radius: 50%; animation: kp-spin .7s linear infinite; display: block; }





@keyframes kp-spin { to { transform: rotate(360deg); } }





.kp-contact-success { text-align: center; padding: 24px 0 8px; }





.kp-contact-success svg { display: block; margin: 0 auto 16px; }





.kp-contact-success p { font-size: 16px; font-weight: 600; color: #032e68; }





.kp-cta-btn.kp-cta-popup-trigger,





.kp-cta-btn-mobile.kp-cta-popup-trigger { font-family: inherit; font-weight: inherit; letter-spacing: inherit; text-transform: inherit; }





@media (max-width: 600px) {





    .kp-contact-modal { padding: 28px 20px; }





    .kp-contact-title { font-size: 20px; }





}





