*{
    box-sizing: border-box;
}

html{
    scroll-behavior: smooth;
}

body{
    margin: 0;
    color: #17243a;
    background: #ffffff;
    font-family: "Inter", sans-serif;
    font-size: 17px;
    line-height: 1.65;
}

img{
    max-width: 100%;
    height: auto;
    display: block;
}

a{
    color: inherit;
    text-decoration: none;
}

button{
    font: inherit;
}

.center{
    width: min(1180px, calc(100% - 48px));
    margin: 0 auto;
}

.mobile{
    display: none;
}

.desktop{
    display: block;
}

#Hlavicka{
    position: sticky;
    top: 0;
    z-index: 50;
    background: rgba(255,255,255,100);
    border-bottom: 1px solid #e5ebf1;
}

.hlavicka{
    min-height: 92px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.logo{
    display: block;
    width: 200px;
    min-width: 200px;
}

.logo img{
    display: block;
    width: 200px;
    max-width: none;
    height: auto;
}

#Menu{
    display: flex;
    gap: 34px;
    align-items: center;
    margin: 0;
    padding: 0;
    list-style: none;
}

#Menu a{
    position: relative;
    padding: 30px 0;
    color: #04183A;
    font-weight: 700;
    font-size: 18px;
}

#Menu a:after{
    content: "";
    position: absolute;
    left: 0;
    bottom: 20px;
    width: 0;
    height: 2px;
    background: #517599;
    transition: width .2s ease;
}

#Menu a:hover:after{
    width: 100%;
}

.slider{
    position: relative;
    min-height: 690px;
    overflow: hidden;
    background: #04183A;
}

.slider-foto{
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: opacity .25s ease;
}

.slider-filtr{
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(4,24,58,.9) 0%, rgba(4,24,58,.66) 47%, rgba(4,24,58,.18) 100%);
}

.slider-obsah{
    position: relative;
    z-index: 2;
    min-height: 690px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    color: #ffffff;
}

.nadpis-maly{
    margin: 0 0 12px;
    color: #517599;
    font-size: 14px;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.slider .nadpis-maly,
.modra .nadpis-maly,
.tmava .nadpis-maly{
    color: #a9c1d8;
}

h1{
    max-width: 790px;
    margin: 0 0 22px;
    font-size: clamp(44px, 5vw, 76px);
    line-height: 1.05;
    letter-spacing: -.04em;
}

.slider-obsah > p:not(.nadpis-maly){
    max-width: 720px;
    margin: 0 0 30px;
    color: #eef4f8;
    font-size: 20px;
}

.tlacitka{
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.tlacitko{
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 0 24px;
    border: 1px solid #517599;
    background: #517599;
    color: #ffffff;
    font-weight: 700;
    transition: background .2s ease, color .2s ease;
}

.tlacitko:hover{
    background: #2B4463;
}

.tlacitko.obrys{
    border-color: rgba(255,255,255,.6);
    background: transparent;
}

.tlacitko.obrys:hover{
    background: #ffffff;
    color: #04183A;
}

.tlacitko.svetle{
    margin-top: 12px;
    background: #ffffff;
    color: #04183A;
    border-color: #ffffff;
}

.slider-body{
    position: absolute;
    z-index: 3;
    left: 50%;
    bottom: 34px;
    width: min(1180px, calc(100% - 48px));
    transform: translateX(-50%);
    display: flex;
    gap: 8px;
}

.slider-bod{
    width: 44px;
    height: 4px;
    padding: 0;
    border: 0;
    background: rgba(255,255,255,.4);
    cursor: pointer;
}

.slider-bod.aktivni{
    background: #ffffff;
}

.sekce{
    position: relative;
    padding: 110px 0;
    overflow: hidden;
}

.svetla{
    background: #ffffff;
}

.tmava{
    background: #04183A;
    color: #ffffff;
}

.modra{
    background: #2B4463;
    color: #ffffff;
}

.sekce-hlavicka{
    max-width: 760px;
    margin-bottom: 48px;
}

.sekce-hlavicka h2,
.text h2{
    margin: 0 0 18px;
    color: #04183A;
    font-size: clamp(34px, 4vw, 54px);
    line-height: 1.1;
    letter-spacing: -.03em;
}

.tmava h2,
.modra h2{
    color: #ffffff;
}

.sekce-hlavicka p:last-child,
.text p{
    margin: 0;
    color: #607087;
}

.tmava .text p,
.modra .text p{
    color: #d7e0e9;
}

.sluzby{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-top: 1px solid #dfe6ed;
    border-left: 1px solid #dfe6ed;
}

.sluzba{
    position: relative;
    min-height: 280px;
    padding: 34px;
    overflow: hidden;
    background: #ffffff;
    border-right: 1px solid #dfe6ed;
    border-bottom: 1px solid #dfe6ed;
}

.sluzba:before{
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background-position: center;
    background-size: cover;
    opacity: .055;
}

.sluzba > *{
    position: relative;
    z-index: 1;
}

.projektova-cinnost:before{
    background-image: var(--Foto);
}

.inzenyring:before{
    background-image: var(--Foto);
}

.technicky-dozor:before{
    background-image: var(--Foto);
}

.rozpocty:before{
    background-image: var(--Foto);
}

.bozp:before{
    background-image: var(--Foto);
}

.ucetnictvi:before{
    background-image: var(--Foto);
}

.cislo{
    display: block;
    margin-bottom: 34px;
    color: #8FA2B5;
    font-size: 14px;
    font-weight: 800;
}

.sluzba h3{
    margin: 0 0 14px;
    color: #04183A;
    font-size: 24px;
}

.sluzba p{
    margin: 0;
    color: #64748a;
}

.dve-kolony{
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    gap: 72px;
    align-items: center;
}

.foto-ramecek{
    margin: 0;
}

.foto-ramecek img{
    width: 100%;
    min-height: 420px;
    object-fit: cover;
}

.obory{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-top: 30px;
}

.obor{
    padding: 14px 16px;
    border: 1px solid rgba(255,255,255,.18);
    color: #dce6ef;
    font-size: 14px;
    line-height: 1.55;
}

.obor strong{
    display: block;
    margin-bottom: 4px;
    color: #ffffff;
}

.obor span{
    color: #dce6ef;
}

.pozadi-logo{
    position: absolute;
    right: -170px;
    top: -190px;
    width: 520px;
    height: 520px;
    border: 70px solid rgba(143,162,181,.07);
    border-radius: 50%;
    transform: rotate(18deg);
}

.reference{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}

.reference-karta{
    position: relative;
    min-height: 360px;
    overflow: hidden;
    background: #04183A;
}

.reference-karta img{
    width: 100%;
    height: 100%;
    min-height: 360px;
    object-fit: cover;
    transition: transform .3s ease, opacity .3s ease;
}

.reference-karta:after{
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(0deg, rgba(4,24,58,.88) 0%, rgba(4,24,58,0) 60%);
}

.reference-karta:hover img{
    transform: scale(1.03);
    opacity: .9;
}

.reference-karta span{
    position: absolute;
    z-index: 2;
    left: 24px;
    right: 24px;
    bottom: 24px;
    color: #ffffff;
}

.reference-karta strong,
.reference-karta small{
    display: block;
}

.reference-karta strong{
    font-size: 21px;
}

.reference-karta small{
    margin-top: 3px;
    color: #c8d7e4;
}

.pozice{
    display: grid;
    gap: 12px;
}

.pozice article{
    padding: 24px 26px;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.13);
}

.pozice h3{
    margin: 0 0 8px;
}

.pozice p{
    margin: 0;
    color: #d9e2eb;
}

.kontakt-grid{
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    margin-top: 24px;
    border-top: 1px solid #dfe6ed;
    border-left: 1px solid #dfe6ed;
}

.kontakt-box{
    min-height: 250px;
    padding: 26px;
    border-right: 1px solid #dfe6ed;
    border-bottom: 1px solid #dfe6ed;
}

.kontakt-box h3{
    margin: 0 0 6px;
    color: #04183A;
    font-size: 22px;
}

.kontakt-box p{
    color: #66758a;
}

.kontakt-box a{
    display: block;
    color: #2B4463;
    font-weight: 700;
}

.hlavni-kontakt{
    display: grid;
    grid-template-columns: minmax(280px, 38%) 1fr;
    width: 100%;
    min-height: 0;
    padding: 0;
    background: #f2f5f8;
    border: 1px solid #dfe6ed;
}

#Paticka{
    position: relative;
    overflow: hidden;
    padding: 58px 0;
    background: #04183A;
    color: #dce5ee;
}

.paticka{
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: 200px 1.4fr 1fr .7fr;
    gap: 44px;
    align-items: center;
}

.paticka img{
    height: auto;
}

.paticka p{
    margin: 5px 0;
}

.paticka a:hover{
    color: #ffffff;
}

.paticka-logo{
    top: auto;
    right: -130px;
    bottom: -300px;
    width: 620px;
    height: 620px;
}

.lightbox{
    position: fixed;
    z-index: 100;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 40px;
    background: rgba(3,15,35,.94);
}

.lightbox.aktivni{
    display: flex;
}

.lightbox img{
    max-width: min(1200px, 92vw);
    max-height: 86vh;
    object-fit: contain;
}

#LightboxZavrit{
    position: absolute;
    top: 18px;
    right: 26px;
    border: 0;
    background: transparent;
    color: #ffffff;
    font-size: 44px;
    cursor: pointer;
}

.cistic{
    clear: both;
    float: none;
    width: 0;
    height: 0;
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 0;
    line-height: 0;
}


#Kariera{
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

#Kariera:before{
    position: absolute;
    z-index: -1;
    inset: 0;
    background: var(--Foto) center center / cover no-repeat;
    opacity: .07;
    content: "";
}

#Kariera .center{
    position: relative;
    z-index: 1;
}




.fotkaonas{
    object-fit: cover;
    object-position: 80% center;
}

.profil-foto{
    display: block;
    width: 100%;
    height: 150px;
    margin: 0;
    border-radius: 0;
    object-fit: cover;
    object-position: center;
}


.sluzba-detail{
    position: relative;
    z-index: 2;
    margin-top: 18px;
}

.sluzba-detail summary{
    color: #2B4463;
    font-weight: 700;
    cursor: pointer;
}

.sluzba-text{
    margin-top: 16px;
    color: #64748a;
    font-size: 15px;
}

.sluzba-text p,
.sluzba-text ul{
    margin: 0 0 14px;
}

.sluzba-text ul{
    padding-left: 20px;
}

.pozice-text{
    margin-top: 14px;
    color: #d9e2eb;
    font-size: 15px;
}

.pozice-text p{
    margin: 8px 0;
    color: #d9e2eb;
}

.kariera-benefity{
    position: relative;
    z-index: 2;
    margin-top: 48px;
    padding: 34px;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.13);
}

.kariera-benefity h3{
    margin-top: 0;
}

.kariera-benefity a{
    text-decoration: underline;
}

.sidlo-foto{
    width: 100%;
    height: 100%;
    min-height: 300px;
    margin: 0;
    object-fit: cover;
}

.mapa{
    width: 100%;
    margin-top: 40px;
}

.mapa iframe{
    width: 100%;
    height: 420px;
    border: 0;
}

.poptavka{
    background: #f2f5f8;
}

.formular{
    max-width: 880px;
}

.formular-radek{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.formular label{
    display: block;
    margin-bottom: 18px;
    color: #04183A;
    font-weight: 700;
}

.formular input,
.formular textarea{
    width: 100%;
    margin-top: 7px;
    padding: 13px 14px;
    border: 1px solid #c8d1db;
    background: #ffffff;
    color: #17243a;
    font: inherit;
}

.formular textarea{
    resize: vertical;
}

.formular input:focus,
.formular textarea:focus{
    outline: 2px solid #517599;
    outline-offset: 1px;
}

.formular-skryty{
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.povinne{
    margin: 0 0 18px;
    color: #66758a;
    font-size: 14px;
}

.formular-zprava{
    max-width: 880px;
    margin: 0 0 24px;
    padding: 15px 18px;
    border: 1px solid #c8d1db;
    background: #ffffff;
}

.formular-zprava.uspesna{
    border-color: #517599;
}

.formular-zprava.chyba{
    border-color: #8FA2B5;
}


.pozice article{
    padding: 0;
}

.pozice-odkaz{
    display: block;
    height: 100%;
    padding: 26px;
}

.pozice-odkaz h3{
    margin-top: 0;
}

.pozice-vice{
    display: inline-block;
    margin-top: 14px;
    color: #ffffff;
    font-weight: 700;
}

.pozice-odkaz:hover .pozice-vice{
    text-decoration: underline;
}

.kariera-detail{
    min-height: calc(100vh - 92px);
    padding: 90px 0 110px;
    background: #f2f5f8;
}

.kariera-detail-obsah{
    max-width: 900px;
}

.kariera-detail .zpet{
    display: inline-block;
    margin-bottom: 40px;
    color: #517599;
    font-weight: 700;
}

.kariera-detail h1{
    max-width: 900px;
    color: #04183A;
    font-size: clamp(42px, 5vw, 68px);
}

.kariera-perex{
    max-width: 760px;
    margin: 0 0 42px;
    color: #517599;
    font-size: 22px;
    font-weight: 600;
}

.kariera-detail-text,
.kariera-detail-benefity{
    margin-bottom: 42px;
    padding: 36px;
    background: #ffffff;
    border: 1px solid #dfe6ed;
}

.kariera-detail-text p,
.kariera-detail-benefity p{
    margin: 0 0 18px;
}

.kariera-detail-text p:last-child,
.kariera-detail-benefity p:last-child{
    margin-bottom: 0;
}

.kariera-detail-benefity h2{
    margin: 0 0 24px;
    color: #04183A;
    font-size: clamp(30px, 3vw, 42px);
    line-height: 1.15;
}

.kariera-detail-benefity ul{
    padding-left: 22px;
}


.mapa-nadpis{
    margin-top: 40px;
}

.mapa-nadpis h3{
    margin: 0;
    color: #04183A;
    font-size: 28px;
}


.sidlo-text{
    padding: 34px;
}

.kontakt-osoba{
    min-width: 0;
    padding: 0;
    overflow: hidden;
}

.kontakt-osoba a{
    overflow-wrap: anywhere;
}

.formular button.tlacitko{
    cursor: pointer;
}

.paticka-znacka{
    width: 200px;
}

.paticka-znacka img{
    display: block;
    width: 200px;
    max-width: none;
    height: auto;
    border-radius: 0;
}

.paticka div:nth-child(2) p{
    margin: 5px 0 10px;
}

.paticka div:nth-child(2) > p + p{
    margin-top: 10px;
}


.kontakt-osoba h3{
    margin: 22px 26px 8px;
}

.kontakt-osoba p{
    margin-left: 26px;
    margin-right: 26px;
}

.kontakt-osoba a{
    display: block;
    margin-left: 26px;
    margin-right: 26px;
}


.kontakt-osoba a:last-child{
    margin-bottom: 26px;
}

.kontakt-vyzva{
    margin-top: 28px;
    padding-top: 24px;
    border-top: 1px solid #C8D1DB;
}

.kontakt-vyzva strong{
    display: block;
    margin-bottom: 8px;
    font-size: 20px;
    color: #04183A;
}

.kontakt-vyzva p{
    max-width: 520px;
    margin: 0 0 20px;
}

.kontakt-vyzva .tlacitko{
    display: inline-block;
}


.kontakt-vyzva{
    text-align: center;
}

.kontakt-vyzva .tlacitko,
.kontakt-vyzva .tlacitko:visited,
.kontakt-vyzva .tlacitko:hover,
.kontakt-vyzva .tlacitko:focus,
.kontakt-vyzva .tlacitko:active{
    color: #ffffff;
}


.kontakt-vyzva{
    text-align: left;
}

.kontakt-vyzva .tlacitko{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}
