@charset "UTF-8";
/*-----------------------------------------------------------------------------------
    Medihelix s.r.o. — hlavní stylopis webu
    https://medihelix.cz

==============================
Table of Contents:
=============================

Helpers:
  - mixins
  - variables

Base:
  - base

Component:
  - preloader
  - buttons
  - back-top-top
  - footer
  - breadcrumb
  - cursor
  - animation
  - blog-widgets
  - header
  - navigation

Pages:
  - index
  - index-02
  - index-03
  - blog-grid
  - blog-standard
  - blog-single
  - 404
  - service
  - testimonial
  - project
  - appointment
  - contact
  - service-details
  - project-details
  - team-deatils

-----------------------------------------------------------------------------------*/
/* Nunito + Mulish self-hosted (latin + latin-ext kvuli ceske diakritice).
   Google Fonts CDN je zakazane standardem (GDPR) a CSP style-src 'self'. */
/* latin-ext */
@font-face {
  font-family: 'Mulish';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/mulish-400-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Mulish';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/mulish-400-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin-ext */
@font-face {
  font-family: 'Mulish';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/mulish-500-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Mulish';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/mulish-500-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin-ext */
@font-face {
  font-family: 'Mulish';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/mulish-600-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Mulish';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/mulish-600-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin-ext */
@font-face {
  font-family: 'Mulish';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/mulish-700-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Mulish';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/mulish-700-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin-ext */
@font-face {
  font-family: 'Mulish';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(../fonts/mulish-800-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Mulish';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(../fonts/mulish-800-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin-ext */
@font-face {
  font-family: 'Mulish';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(../fonts/mulish-900-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Mulish';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(../fonts/mulish-900-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin-ext */
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/nunito-400-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/nunito-400-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin-ext */
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/nunito-500-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/nunito-500-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin-ext */
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/nunito-600-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/nunito-600-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin-ext */
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/nunito-700-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/nunito-700-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin-ext */
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(../fonts/nunito-800-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(../fonts/nunito-800-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin-ext */
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(../fonts/nunito-900-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(../fonts/nunito-900-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

.play-button-anime {
  transition: 0.5s;
  animation: playBtnAnime 1s linear infinite;
}

/*===== - variables =====*/
:root {
  --body: #f0f9ff;
  --black: #000;
  --white: #fff;
  --theme: #0d94e6;
  --transparent: rgb(from #0d94e6 r g b / 10%);
  --header: #082f49;
  --text: #555555;
  --border: #D1D1D1;
  --box-shadow: 0px 0px 15px 10px rgba(0, 0, 0, 0.03);
  --header-font: "Nunito", sans-serif;
  --body-font: "Mulish", sans-serif;
  --ease: cubic-bezier(.4, 0, .2, 1);
}

/*===== - Base =====*/
:root {
  scroll-behavior: unset !important;
}

html,
body {
  scroll-behavior: auto;
  max-width: 100%;
  overflow-x: hidden;
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  text-size-adjust: 100%;
  font-family: var(--body-font);
  color: var(--text);
  background-color: var(--body);
}

@media (min-width: 1400px) {
  .container {
    max-width: 1630px;
  }
}

.gy-30 {
  --bs-gutter-y: 30px;
}

.gx-60 {
  --bs-gutter-x: 60px;
}

.gx-40 {
  --bs-gutter-x: 40px;
}

.page-wrapper {
  position: relative;
  overflow: hidden;
}

.marquee-left,
.marquee-right {
  overflow: hidden;
  width: 100%;
}

.marquee-inner {
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
}

.marquee-inner a {
  display: inline-flex;
}

.marquee-inner .ta-page-wrap {
  position: relative;
}

p,
li,
span,
option,
select {
  font-size: 16px;
  color: var(--text);
  line-height: 26px;
  font-family: var(--body-font);
  margin: 0;
  padding: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  color: var(--header);
  font-family: var(--header-font);
  font-weight: 400;
  margin: 0;
  padding: 0;
}

ul {
  padding-left: 0;
  margin: 0;
  list-style: none;
}

a {
  text-decoration: none;
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
  color: var(--header);
  font-family: var(----header-font);
}

a:hover {
  text-decoration: none;
}

.pt-120 {
  padding-top: 120px;
}

@media (max-width: 991px) {
  .pt-120 {
    padding-top: 60px;
  }
}

@media (max-width: 767px) {
  .pt-120 {
    padding-top: 40px;
  }
}

.pb-120 {
  padding-bottom: 120px;
}

@media (max-width: 1199px) {
  .pb-120 {
    padding-bottom: 80px;
  }
}

@media (max-width: 991px) {
  .pb-120 {
    padding-bottom: 60px;
  }
}

.pta-120 {
  padding: 120px 0;
}

@media (max-width: 1199px) {
  .pta-120 {
    padding: 80px 0px;
  }
}

@media (max-width: 991px) {
  .pta-120 {
    padding: 60px 0px;
  }
}

.mt-120 {
  margin-top: 120px;
}

@media (max-width: 1199px) {
  .mt-120 {
    margin-top: 80px;
  }
}

@media (max-width: 991px) {
  .mt-120 {
    margin-top: 60px;
  }
}

.mb-50 {
  margin-bottom: 50px;
}

@media (max-width: 767px) {
  .mb-50 {
    margin-bottom: 30px;
  }
}

.mb-40 {
  margin-bottom: 40px;
}

@media (max-width: 767px) {
  .mb-40 {
    margin-bottom: 30px;
  }
}

.mb-30 {
  margin-bottom: 30px !important;
}

.mb-20 {
  margin-bottom: 20px !important;
}

.mb-10 {
  margin-bottom: 10px;
}

.wow {
  visibility: hidden;
}

.bg-cover {
  background-repeat: no-repeat !important;
  background-position: center center !important;
  background-size: cover !important;
}

.w-100 {
  width: 100% !important;
  height: auto;
  -o-object-fit: cover;
  object-fit: cover;
}

input[type=search],
input[type=text],
input[type=tel],
input[type=email],
input[type=password],
input[type=date],
textarea,
option,
select {
  font-family: var(--body-font);
  font-size: 16px;
  color: var(--text);
  border: 1px solid transparent;
  padding: 15px;
  border-radius: 5px;
  width: 100%;
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
}

input[type=search]::-moz-placeholder,
input[type=text]::-moz-placeholder,
input[type=tel]::-moz-placeholder,
input[type=email]::-moz-placeholder,
input[type=password]::-moz-placeholder,
input[type=date]::-moz-placeholder,
option::-moz-placeholder,
textarea::-moz-placeholder {
  color: var(--text);
}

input[type=search]::placeholder,
input[type=text]::placeholder,
input[type=tel]::placeholder,
input[type=email]::placeholder,
input[type=password]::placeholder,
input[type=date]::placeholder,
option::placeholder,
textarea::placeholder {
  color: var(--text);
}

input[type=search]:focus,
input[type=text]:focus,
input[type=tel]:focus,
input[type=email]:focus,
input[type=password]:focus,
input[type=date]:focus,
textarea:focus,
option:focus,
select:focus {
  outline: none;
  box-shadow: none;
  border: 1px solid var(--theme);
}

textarea {
  resize: vertical;
  min-height: 150px;
}

select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'><path d='M6 9L12 15L18 9' stroke='black' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>") !important;
  background-repeat: no-repeat !important;
  background-position: right 10px center !important;
  background-size: 22px !important;
}

select option {
  color: var(--text);
  background-color: var(--white);
}

select option:checked {
  background-color: var(--theme);
  color: var(--white);
}

select option:disabled {
  color: #999;
}

.header-xsmall {
  font-size: 16px;
  color: var(--header);
  font-weight: 600;
  font-family: var(--header-font);
  line-height: 20px;
}

.header-sm {
  font-size: 20px;
  color: var(--header);
  font-weight: 900;
  font-family: var(--header-font);
  line-height: 34px;
}

@media (max-width: 767px) {
  .header-sm {
    font-size: 18px;
    line-height: 28px;
    line-height: 20px;
  }
}

.header-md {
  font-size: 24px;
  color: var(--header);
  font-weight: 900;
  font-family: var(--header-font);
  line-height: 36px;
}

@media (max-width: 767px) {
  .header-md {
    font-size: 20px;
    line-height: 30px;
  }
}

.header-lg {
  font-size: 32px;
  color: var(--header);
  font-weight: 900;
  font-family: var(--header-font);
  line-height: 36px;
}

@media (max-width: 767px) {
  .header-lg {
    font-size: 24px;
    line-height: 32px;
  }
}

.header-xl {
  font-size: 46px;
  color: var(--header);
  font-weight: 900;
  font-family: var(--header-font);
  line-height: 60px;
}

@media (max-width: 991px) {
  .header-xl {
    font-size: 32px;
    line-height: 42px;
  }
}

@media (max-width: 767px) {
  .header-xl {
    font-size: 26px;
    line-height: 30px;
  }
}

.header-xl span {
  font-family: var(--header-font-2);
  font-style: italic;
  font-weight: normal;
}

.header-xxl {
  font-size: 72px;
  line-height: 92px;
  color: var(--header);
  font-weight: 900;
  font-family: var(--header-font);
}

@media (max-width: 991px) {
  .header-xxl {
    font-size: 36px;
    line-height: 46px;
  }
}

@media (max-width: 767px) {
  .header-xxl {
    font-size: 30px;
    line-height: 36px;
  }
}

.header-xxl span {
  color: var(--theme);
  font-family: var(--header-font-2);
  font-style: italic;
  font-weight: normal;
}

.sub-title {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
  padding: 7px 11px;
  background: rgb(from #082f49 r g b/20%);
  border-radius: 10px;
  border: 1px solid rgb(from #082f49 r g b/20%);
  display: inline-block;
  text-transform: uppercase;
  color: var(--header);
}

.center-sub-main-header .sub-title {
  margin: 0 auto;
  display: flex;
  width: -moz-fit-content;
  width: fit-content;
}

.center-sub-main-header p,
.center-sub-main-header h2 {
  text-align: center;
  width: 100%;
  display: inline-block;
}

/*===== image hover effect =====*/
.image-hover-effect {
  position: relative;
  overflow: hidden;
}

.image-hover-effect:after {
  content: "";
  position: absolute;
  width: 200%;
  height: 0%;
  left: 50%;
  top: 50%;
  background-color: rgba(255, 255, 255, 0.3);
  transform: translate(-50%, -50%) rotate(-45deg);
  z-index: 1;
}

.image-hover-effect:hover:after {
  height: 250%;
  transition: all 600ms linear;
  background-color: transparent;
}

/* ===== underline hover effect ===== */
.bg-line-underline {
  display: inline;
  background-repeat: no-repeat;
  background-size: 0% 1px, 0 1px;
  transition: all 0.3s linear;
  background-position: 100% 100%, 0 100%;
  background-image: linear-gradient(currentcolor, currentcolor), linear-gradient(currentcolor, currentcolor);
}

.bg-line-underline:hover {
  background-size: 0% 1px, 100% 1px;
  transition: background-size 0.3s;
}

.ta-tab-pane {
  display: none;
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.35s ease, transform 0.35s ease;
}

.ta-tab-pane.active {
  display: block;
  opacity: 1;
  transform: translateY(0);
}

.ta-tab-nav li {
  cursor: pointer;
}

.faq-item .content {
  display: none;
}

.faq-item .heading i {
  display: none;
}

.faq-item.active .heading i {
  display: block;
}

.faq-item.active .content {
  display: block;
}

@media (max-width: 575px) {
  .progress-bars {
    padding: 15px;
  }
}

.progress-bars .progress-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}

.progress-bars .progress-badge {
  background: var(--theme);
  color: var(--white);
  font-size: 0.78rem;
  font-weight: 600;
  padding: 3px 10px;
  border-radius: 4px;
  opacity: 0;
  transform: translateY(-4px);
  position: relative;
}

.progress-bars .progress-track {
  width: 100%;
  height: 6px;
  background: var(--border);
  border-radius: 999px;
  overflow: hidden;
}

.progress-bars .progress-fill {
  height: 100%;
  width: 0%;
  background: var(--theme);
  border-radius: 999px;
  transform-origin: left center;
}

.progress-bars .spacer {
  height: 60vh;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  color: #aaa;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  font-size: 0.75rem;
}

/*===== - preloader =====*/
.preloader {
  position: fixed;
  z-index: 10;
  height: 100vh;
  width: 100%;
  left: 0;
  top: 0;
  display: flex;
  overflow: hidden;
  align-items: center;
  justify-content: center;
  background: transparent;
  z-index: 99999999999999;
}

.preloader svg {
  position: absolute;
  top: 0;
  width: 100vw;
  height: 110vh;
  fill: #111013;
}

h5.preloader-text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: calc(80px + 5vw);
  color: #333;
  font-weight: 900;
}

@media (max-width: 1199px) {
  h5.preloader-text {
    font-size: 60px;
  }
}

h5.preloader-text::after {
  content: attr(data-text);
  position: absolute;
  left: 0;
  top: 0;
  color: var(--theme);
  animation: move 2s infinite alternate;
}

.home-2 h5.preloader-text::after {
  color: tomato;
}

/*==== - buttons =====*/
.ta-button-01 {
  line-height: 1;
  text-decoration: none;
  display: inline-flex;
  border: none;
  cursor: pointer;
  align-items: center;
  gap: 0.75rem;
  background-color: var(--theme);
  color: var(--white) !important;
  border-radius: 10px;
  font-weight: 600;
  padding: 1rem;
  padding-left: 20px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: background-color 0.3s;
}

.ta-button-01 .button__icon-wrapper {
  flex-shrink: 0;
  width: 25px;
  height: 25px;
  position: relative;
  color: var(--theme);
  background-color: var(--white);
  border-radius: 50%;
  display: grid;
  place-items: center;
  overflow: hidden;
}

.ta-button-01:hover {
  background-color: var(--black);
}

.ta-button-01:hover .button__icon-wrapper {
  color: var(--black);
}

.ta-button-01:hover .button__icon-svg:first-child {
  transition: transform 0.3s ease-in-out;
  transform: translate(150%, -150%);
}

.ta-button-01:hover .button__icon-svg--copy {
  transition: transform 0.3s ease-in-out 0.1s;
  transform: translate(0);
}

.ta-button-01 .button__icon-svg--copy {
  position: absolute;
  transform: translate(-150%, 150%);
}

.ta-button-02 {
  line-height: 1;
  text-decoration: none;
  display: inline-flex;
  border: none;
  cursor: pointer;
  align-items: center;
  gap: 0.75rem;
  background-color: var(--black);
  color: var(--white);
  border-radius: 10px;
  font-weight: 600;
  padding: 1rem;
  padding-left: 20px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: background-color 0.3s;
}

.ta-button-02 .button__icon-wrapper {
  flex-shrink: 0;
  width: 25px;
  height: 25px;
  position: relative;
  color: var(--black);
  background-color: var(--white);
  border-radius: 50%;
  display: grid;
  place-items: center;
  overflow: hidden;
}

.ta-button-02:hover {
  background-color: var(--theme);
}

.ta-button-02:hover .button__icon-wrapper {
  color: var(--theme);
}

.ta-button-02:hover .button__icon-svg:first-child {
  transition: transform 0.3s ease-in-out;
  transform: translate(150%, -150%);
}

.ta-button-02:hover .button__icon-svg--copy {
  transition: transform 0.3s ease-in-out 0.1s;
  transform: translate(0);
}

.ta-button-02 .button__icon-svg--copy {
  position: absolute;
  transform: translate(-150%, 150%);
}

/*====== - back-to-top ======*/
.cloudflow-progress-wrap {
  position: fixed;
  right: 30px;
  bottom: 30px;
  height: 60px;
  width: 60px;
  cursor: pointer;
  z-index: 9999999;
  opacity: 0;
  visibility: hidden;
  transform: translateY(100%);
  border-radius: 50%;
  background: var(--white);
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
}

.cloudflow-progress-wrap .cloudflow-progress-circle {
  transform: rotate(-90deg);
  fill: none;
  stroke: var(--theme);
  stroke-width: 13;
  stroke-dasharray: 307;
  stroke-dashoffset: 307;
  transition: stroke-dashoffset 10ms linear;
  border-radius: 50%;
  box-shadow: var(--box-shadow);
}

.cloudflow-progress-wrap .cloudflow-scroll-icon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 20px;
  color: var(--theme);
  font-weight: bold;
  pointer-events: none;
}

.cloudflow-progress-wrap.active {
  opacity: 1;
  transform: translateY(0);
  visibility: visible;
}

/*===== - footer =====*/
.ta-footer-wrapper {
  background: var(--header);
  color: var(--white);
  margin: 0px 15px;
  border-radius: 20px;
}

@media (max-width: 1199px) {
  .ta-footer-wrapper {
    margin: 0px;
    border-radius: 0px;
  }
}

.ta-footer-wrapper .footer-top-contact {
  display: flex;
  -webkite-display: flex;
  gap: 10px;
  align-items: center;
  justify-content: center;
}

@media (max-width: 1199px) {
  .ta-footer-wrapper .footer-top-contact {
    justify-content: start;
  }
}

.ta-footer-wrapper .footer-top-contact i {
  width: 50px;
  height: 50px;
  background: var(--theme);
  border-radius: 50%;
  color: var(--white);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
}

.ta-footer-wrapper .footer-top-contact .content {
  display: flex;
  flex-direction: column;
}

.ta-footer-wrapper .footer-top-contact .content span {
  font-size: 14px;
  color: var(--white);
}

.ta-footer-wrapper .footer-top-contact .content a {
  font-size: 16px;
  color: var(--white);
  font-weight: 600;
}

.ta-footer-wrapper .foo-head {
  color: var(--white);
  position: relative;
  margin-bottom: 45px;
}

@media (max-width: 1199px) {
  .ta-footer-wrapper .foo-head {
    margin-bottom: 22px;
  }
}

.ta-footer-wrapper .foo-head:after {
  content: "";
  position: absolute;
  width: 80px;
  height: 2px;
  background: var(--border);
  left: 0;
  bottom: -10px;
}

.ta-footer-wrapper .foo-head::before {
  content: "";
  position: absolute;
  width: 25px;
  height: 5px;
  background: var(--theme);
  left: 0;
  bottom: -12px;
  z-index: 9;
}

.ta-footer-wrapper .footer-links li {
  margin-bottom: 8px;
}

.ta-footer-wrapper .footer-links li a {
  color: var(--white);
  transition: 0.3s;
}

.ta-footer-wrapper .footer-links li a:hover {
  color: var(--theme);
}

.ta-footer-wrapper .footer-links li:last-child {
  margin-bottom: 0;
}

.ta-footer-wrapper .footer-blog li {
  display: flex;
  gap: 15px;
  align-items: center;
  margin-bottom: 8px;
}

@media (max-width: 767px) {
  .ta-footer-wrapper .footer-blog li {
    margin-bottom: 15px;
  }
}

.ta-footer-wrapper .footer-blog li:last-child {
  margin-bottom: 0;
}

.ta-footer-wrapper .footer-blog li .blog-img {
  width: 80px;
  height: 80px;
  border-radius: 10px;
  overflow: hidden;
}

.ta-footer-wrapper .footer-blog li .blog-img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

.ta-footer-wrapper .footer-blog li .blog-content {
  display: flex;
  flex-direction: column;
}

.ta-footer-wrapper .footer-blog li .blog-content a h3 {
  color: var(--white);
  transition: 0.3s;
  font-size: 18px;
}

.ta-footer-wrapper .footer-blog li .blog-content a h3:hover {
  color: var(--theme);
}

.ta-footer-wrapper .footer-blog li .blog-content span {
  font-size: 14px;
  color: var(--white);
}

.ta-footer-wrapper .footer-newsletter p {
  color: var(--white);
  margin-bottom: 15px;
}

.ta-footer-wrapper .footer-newsletter form .input {
  position: relative;
  margin-bottom: 15px;
}

.ta-footer-wrapper .footer-newsletter form .input input {
  background: #142A47;
  border: 1px solid rgba(255, 255, 255, 0.19);
}

.ta-footer-wrapper .footer-newsletter form .input input[type=email]::-moz-placeholder {
  color: var(--white);
}

.ta-footer-wrapper .footer-newsletter form .input input[type=email]::placeholder {
  color: var(--white);
}

.ta-footer-wrapper .footer-newsletter form .input button {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  width: 40px;
  height: 40px;
  border-radius: 3px;
  background: var(--white);
  color: var(--theme);
  border: none;
  outline: none;
  display: flex;
  align-items: center;
  justify-content: center;
}

.ta-footer-wrapper .footer-newsletter form .input button i {
  font-size: 18px;
}

.ta-footer-wrapper .footer-newsletter form .input button:hover {
  background: var(--theme);
}

.ta-footer-wrapper .footer-newsletter form .input button:hover i {
  color: var(--white);
}

.ta-footer-wrapper .footer-newsletter form .chekbox span {
  color: white;
  margin-left: 5px;
}

/* Souhlas u newsletteru v patičce. Původní šablona stylovala `span`, my máme
   `<label for>` (klikatelný popisek = větší cíl a správná vazba na checkbox). */
.ta-footer-wrapper .footer-newsletter form .chekbox label {
  color: var(--white);
  margin-left: 5px;
  cursor: pointer;
}

.ta-footer-wrapper .footer-newsletter form .chekbox label a {
  color: var(--white);
  text-decoration: underline;
}

/* Hlášky po odeslání (PRG flash z `?nl=`) — úspěch i chyba nahrazují/doplňují
   formulář. Kontrast na tmavém podkladu patičky, ne barvy z light sekcí. */
.ta-footer-wrapper .footer-newsletter__hlaska {
  display: flex;
  align-items: baseline;
  gap: 8px;
  color: var(--white);
}

.ta-footer-wrapper .footer-newsletter__hlaska a {
  color: var(--white);
  text-decoration: underline;
}

.ta-footer-wrapper .footer-newsletter__chyba {
  color: #ffb4b4;
  margin-bottom: 10px;
}

.ta-footer-wrapper .footer-open-hours li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}

@media (max-width: 1199px) {
  .ta-footer-wrapper .footer-open-hours li {
    justify-content: start;
    gap: 1rem;
  }
}

.ta-footer-wrapper .footer-open-hours li:last-child {
  margin-bottom: 0;
}

.ta-footer-wrapper .footer-open-hours li span {
  color: var(--white);
}

.ta-footer-wrapper .footer-get-in-touch .lists li {
  display: flex;
  gap: 1rem;
  align-items: baseline;
  margin-bottom: 1rem !important;
}

.ta-footer-wrapper .footer-get-in-touch .lists li:last-child {
  margin-bottom: 0;
}

.ta-footer-wrapper .footer-get-in-touch .lists li .icon i {
  color: var(--white);
  font-size: 19px;
}

.ta-footer-wrapper .footer-get-in-touch .lists li .text h4,
.ta-footer-wrapper .footer-get-in-touch .lists li a {
  color: var(--white);
}

.ta-footer-wrapper.two {
  position: relative;
}

.ta-footer-wrapper.two .ta-footer-two-wrapper {
  padding: 60px;
  border-radius: 20px;
  margin-top: -200px;
  margin-bottom: 60px;
}

@media (max-width: 767px) {
  .ta-footer-wrapper.two .ta-footer-two-wrapper {
    padding: 30px;
  }
}

.ta-footer-wrapper.two .newsletter-form .input {
  position: relative;
  margin-bottom: 15px;
}

.ta-footer-wrapper.two .newsletter-form .input input[type=email] {
  width: 100%;
}

.ta-footer-wrapper.two .newsletter-form .input button[type=submit] {
  position: absolute;
  right: 0;
  border: none;
  background: var(--theme);
  width: 76px;
  height: 100%;
  border-radius: 0 5px 5px 0px;
}

.ta-footer-wrapper.two .newsletter-form .input button[type=submit] i {
  color: var(--white);
  font-family: 20px;
}

.ta-footer-wrapper.three .ta-footer-three-top {
  margin-bottom: 80px;
}

@media (max-width: 991px) {
  .ta-footer-wrapper.three .ta-footer-three-top {
    margin-bottom: 60px;
  }
}

.ta-footer-wrapper.three .newsletter-form .input {
  position: relative;
  margin-bottom: 15px;
}

.ta-footer-wrapper.three .newsletter-form .input input[type=email] {
  width: 100%;
}

.ta-footer-wrapper.three .newsletter-form .input button[type=submit] {
  position: absolute;
  right: 0;
  border: none;
  background: var(--theme);
  width: 76px;
  height: 100%;
  border-radius: 0 5px 5px 0px;
}

.ta-footer-wrapper.three .newsletter-form .input button[type=submit] i {
  color: var(--white);
  font-family: 20px;
}

/* 40px podle rytmu webu (bylo 75px, coz delalo horni odstup 40 a spodni 75).
   ⚠ Breakpoint 991px mela sablona na 45px — tedy VIC nez desktop; zrusen,
   stejny duvod jako u .header-xl. Pod 767px se drzi 30px jako `mb-40`. */
.footer-hr {
  margin: 40px 0px;
}

@media (max-width: 767px) {
  .footer-hr {
    margin: 30px 0px;
  }
}

.ta-footer-copyright {
  padding: 30px 0px;
}

@media (max-width: 767px) {
  .ta-footer-copyright {
    padding: 15px 0px;
  }
}

.ta-footer-copyright .copyright-text p {
  color: var(--header);
}

@media (max-width: 991px) {
  .ta-footer-copyright .copyright-text p {
    text-align: center;
    margin-bottom: 15px;
  }
}

.ta-footer-copyright .copyright-text p a {
  color: var(--theme);
  font-weight: 600;
}

.ta-footer-copyright .social-icon {
  display: flex;
  gap: 10px;
  align-items: center;
  justify-content: center;
}

@media (max-width: 991px) {
  .ta-footer-copyright .social-icon {
    margin-bottom: 15px;
  }
}

.ta-footer-copyright .social-icon p {
  font-weight: 600;
}

.ta-footer-copyright .social-icon li a {
  width: 40px;
  height: 40px;
  background: var(--white);
  border-radius: 50%;
  color: var(--theme);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: 0.3s;
}

.ta-footer-copyright .social-icon li a i {
  font-size: 18px;
}

.ta-footer-copyright .social-icon li a:hover {
  background: var(--theme);
}

.ta-footer-copyright .social-icon li a:hover i {
  color: var(--white);
}

.ta-footer-copyright .copyright-menu {
  display: flex;
  gap: 15px;
  align-items: center;
  justify-content: end;
}

@media (max-width: 1199px) {
  .ta-footer-copyright .copyright-menu {
    justify-content: center;
  }
}

.ta-footer-copyright .copyright-menu p {
  font-weight: 600;
}

.ta-footer-copyright .copyright-menu li {
  position: relative;
  margin-right: 0.6rem;
}

.ta-footer-copyright .copyright-menu li a {
  color: var(--header);
  transition: 0.3s;
}

.ta-footer-copyright .copyright-menu li a:hover {
  color: var(--theme);
}

.ta-footer-copyright .copyright-menu li::after {
  position: absolute;
  content: "";
  width: 7px;
  height: 7px;
  right: -16px;
  top: 53%;
  transform: translateY(-50%);
  background: var(--theme);
  margin-left: 15px;
  border-radius: 50%;
}

.ta-footer-copyright .copyright-menu li:last-child {
  margin-right: 0;
}

.ta-footer-copyright .copyright-menu li:last-child::after {
  display: none;
}

.ta-footer.two {
  margin-top: 60px;
}

@media (max-width: 991px) {
  .ta-footer.two {
    margin-top: 120px;
  }
}

/*===== - breadcrumb =====*/
.ta-breadcrumb {
  background: var(--theme-2);
  border-radius: 10px;
  margin-top: 30px;
}

@media (min-width: 1200px) {
  .ta-breadcrumb {
    margin-left: 15px;
    margin-right: 15px;
    margin-bottom: 0;
  }
}

@media (max-width: 1199px) {
  .ta-breadcrumb {
    border-radius: 0px;
    margin-top: 15px;
  }
}

.ta-breadcrumb .ta-breadcrumb-content {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 400px;
  flex-direction: column;
  align-items: start;
}

@media (max-width: 991px) {
  .ta-breadcrumb .ta-breadcrumb-content {
    min-height: 315px;
  }
}

@media (max-width: 767px) {
  .ta-breadcrumb .ta-breadcrumb-content {
    min-height: 245px;
  }
}

.ta-breadcrumb h1,
.ta-breadcrumb h2 {
  color: var(--white);
  margin-bottom: 12px;
  text-align: center;
}

.ta-breadcrumb ul {
  display: flex;
  gap: 1rem;
  padding: 5px 0px;
}

.ta-breadcrumb ul li,
.ta-breadcrumb ul a {
  color: var(--white);
}

.ta-breadcrumb ul li i {
  font-size: 16px;
  margin-left: 12px;
}

li .ta-breadcrumb ul:last-child a {
  color: var(--theme);
}

/*===== - cursor =====*/
.cursor-outer {
  margin-inline-start: -12px;
  margin-top: -12px;
  width: 30px;
  height: 30px;
  border: 1px solid var(--theme);
  background-color: transparent;
  box-sizing: border-box;
  z-index: 10000000;
  opacity: 0.34;
  transition: all 0.4s ease-out 0s;
}

.cursor-outer.color-10 {
  border: 1px solid #333;
}

.cursor-outer.color-5 {
  border: 1px solid #7557ED;
}

.cursor-outer.color-2 {
  border: 1px solid var(--theme-2);
}

.cursor-outer.color-3 {
  border: 1px solid var(--theme-3);
}

.cursor-outer.cursor-hover {
  opacity: 0.14;
}

.cursor-outer.cursor-big {
  opacity: 0;
}

.mouseCursor {
  position: fixed;
  top: 0;
  inset-inline-start: 0;
  inset-inline-end: 0;
  bottom: 0;
  pointer-events: none;
  border-radius: 50%;
  transform: translateZ(0);
  visibility: hidden;
  text-align: center;
}

.mouseCursor.cursor-big {
  width: 20px;
  height: 20px;
  margin-inline-start: -12px;
  margin-top: -12px;
}

.cursor-inner {
  margin-inline-start: -3px;
  margin-top: -3px;
  width: 10px;
  height: 10px;
  z-index: 10000001;
  background-color: var(--theme);
  opacity: 1;
  transition: all 0.24s ease-out 0s;
}

.cursor-inner.color-5 {
  background-color: #846BED;
}

.cursor-inner.color-2 {
  background-color: var(--theme-2);
}

.cursor-inner.color-3 {
  background-color: var(--theme-3);
}

.cursor-inner.cursor-big span {
  opacity: 1;
}

.cursor-inner.cursor-hover {
  margin-inline-start: -10px;
  margin-top: -10px;
  width: 30px;
  height: 30px;
  background-color: var(--vkl-text-text-2);
  /* $theme-color */
  border: 1px solid #686363;
  opacity: 0;
}

/*===== - animation =====*/
@keyframes playBtnAnime {
  0% {
    box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.3), 0 0 0 10px rgba(255, 255, 255, 0.3), 0 0 0 20px rgba(255, 255, 255, 0.3);
  }

  100% {
    box-shadow: 0 0 0 10px rgba(255, 255, 255, 0.3), 0 0 0 20px rgba(255, 255, 255, 0.3), 0 0 0 30px rgba(255, 42, 2, 0);
  }
}

@keyframes moveLeftRigt {
  0% {
    transform: translateX(-30px);
  }

  100% {
    transform: translateX(0px);
  }
}

@keyframes spinner {
  to {
    transform: rotateZ(360deg);
  }
}

@keyframes move {
  from {
    clip-path: circle(20% at 0% 50%);
  }

  to {
    clip-path: circle(20% at 100% 50%);
  }
}

/*===== - blog-widgets =====*/
.ta-widget-area {
  position: sticky;
  top: 120px;
}

.widget_block {
  background: var(--white);
  border-radius: 20px;
}

.widget_block .header {
  border-bottom: 1px solid var(--border);
  padding: 15px 30px;
}

.ta-widget-search .ta-search-form {
  padding: 30px;
  position: relative;
  width: 100%;
  overflow: hidden;
}

.ta-widget-search input[type=search] {
  border: none;
  background: var(--body);
  border: 1px solid var(--body);
}

.ta-widget-search .search-btn {
  position: absolute;
  right: 30px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--header);
  background: var(--theme);
  border: none;
  padding: 8px 15px;
  border-radius: 0px 5px 5px 0px;
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
}

.ta-widget-search .search-btn i {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  width: 38px;
  height: 40px;
  color: var(--white);
}

.ta-widget-search .search-btn:hover {
  background: var(--header);
}

.ta-widget-categories {
  padding-bottom: 15px;
}

.ta-widget-categories ul {
  padding: 0px 0;
}

.ta-widget-categories ul li {
  margin: 0 30px;
}

.ta-widget-categories ul li a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: var(--body);
  border-radius: 6px;
  margin: 1rem 0px;
  padding: 15px;
  color: var(--header);
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
}

.ta-widget-categories ul li a:hover {
  color: var(--theme);
}

.ta-widget-recent-post .post-item {
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 20px 30px;
}

.ta-widget-recent-post .post-item .content span {
  font-size: 15px;
  color: var(--text);
}

.ta-widget-tags .tagcloud {
  padding: 30px 15px 15px 30px;
}

.ta-widget-tags .tagcloud a {
  padding: 14.5px 15.5px;
  background: var(--body);
  border-radius: 6px;
  display: inline-block;
  color: var(--header);
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
  font-size: 14px;
  font-family: var(--header-font);
  margin-bottom: 15px;
  margin-right: 15px;
}

.ta-widget-tags .tagcloud a:hover {
  background: var(--theme);
  color: #fff;
}

.ta-widget-newsletter .newsletter-form {
  padding: 30px;
  position: relative;
}

.ta-widget-newsletter .newsletter-form input[type=email] {
  border-radius: 6px;
  background: var(--body);
  border: none;
}

.ta-widget-newsletter .newsletter-form button {
  border-radius: 6px;
  position: absolute;
  right: 40px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--white);
  background: var(--theme);
  border: none;
  padding: 8px 15px;
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
}

.ta-widget-newsletter .newsletter-form button:hover {
  background: var(--header);
}

/*===== - header =====*/
/*===== - navigation =====*/
/* ======================================================
   TOP BAR
====================================================== */
.header-topbar {
  height: 50px;
  display: flex;
  align-items: center;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  position: relative;
  z-index: 1001;
}

.header-topbar .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.ta-left,
.ta-right {
  display: flex;
  align-items: center;
  gap: 18px;
}

.ta-item {
  display: flex;
  align-items: center;
  gap: 7px;
  color: var(--header);
  font-size: 14px;
}

.ta-item i {
  color: var(--theme) !important;
}

.ta-socials {
  display: flex;
  gap: 5px;
}

.ta-socials a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  color: var(--header);
  font-size: 12px;
  transition: color 0.14s, background 0.14s;
  background: var(--white);
}

.ta-socials a:hover {
  background: var(--theme);
  color: var(--white);
}

/* ======================================================
  OFFCANVAS
====================================================== */
.offcanvas-content .desc {
  margin: 20px 0;
}

.offcanvas-content .services a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 15px;
  border-radius: 10px;
  background: var(--white);
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
  margin-bottom: 15px;
}

.offcanvas-content .services a:hover span,
.offcanvas-content .services a:hover span i {
  color: var(--theme);
}

.offcanvas-content .lists li {
  display: flex;
  gap: 1rem;
  align-items: baseline;
  margin-bottom: 0.5rem !important;
}

.offcanvas-content .lists li:last-child {
  margin-bottom: 0;
}

.offcanvas-content .lists li .text h4 {
  line-height: 20px;
  font-weight: 600;
  font-size: 20px;
}

.offcanvas-content .lists li .icon i {
  color: var(--header);
  font-size: 19px;
}

.offcanvas-content .social-icon {
  margin-top: 20px;
  display: flex;
  gap: 10px;
  align-items: center;
}

@media (max-width: 991px) {
  .offcanvas-content .social-icon {
    margin-bottom: 15px;
  }
}

.offcanvas-content .social-icon p {
  font-weight: 600;
}

.offcanvas-content .social-icon li a {
  width: 40px;
  height: 40px;
  background: var(--white);
  border-radius: 50%;
  color: var(--theme);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: 0.3s;
}

.offcanvas-content .social-icon li a i {
  font-size: 18px;
}

.offcanvas-content .social-icon li a:hover {
  background: var(--theme);
}

.offcanvas-content .social-icon li a:hover i {
  color: var(--white);
}

/* ======================================================
   MAIN HEADER
====================================================== */
.site-header {
  position: relative;
  z-index: 1000;
}

.header-main {
  background: var(--white);
  height: 100px;
  display: flex;
  align-items: center;
  position: relative;
  transition: height 0.2s cubic-bezier(0.4, 0, 0.2, 1), background 0.2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.header-main .container {
  display: flex;
  align-items: center;
  gap: 24px;
  height: 100%;
}

/* --- STICKY --- */
.site-header.is-sticky {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 9999;
  animation: sDown 0.3s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

.site-header.is-sticky .header-topbar {
  display: none;
}

.site-header.is-sticky .header-main {
  height: 100px;
  box-shadow: 0 4px 28px rgba(26, 26, 46, 0.12);
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

@keyframes sDown {
  from {
    transform: translateY(-100%);
    opacity: 0;
  }

  to {
    transform: translateY(0);
    opacity: 1;
  }
}

/* --- LOGO --- */
.site-logo {
  flex-shrink: 0;
}

.logo-text {
  font-family: var(--header-font);
  font-size: 22px;
  font-weight: 800;
  color: var(--black);
  letter-spacing: -0.02em;
  display: flex;
  flex-direction: column;
  line-height: 1.1;
}

.logo-text em {
  font-style: normal;
  color: var(--theme);
}

.logo-sub {
  font-family: var(--header-font);
  font-size: 9px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--textm);
  margin-top: 3px;
}

.header-02 .header-main,
.header-03 .header-main {
  background: transparent;
}

.header-02 #searchToggle i,
.header-03 #searchToggle i {
  background: var(--white);
}

.header-02.is-sticky #searchToggle i,
.header-03.is-sticky #searchToggle i {
  background: var(--body);
}

.header-02.is-sticky #searchToggle i:hover,
.header-03.is-sticky #searchToggle i:hover {
  background: var(--theme);
  color: var(--white);
}

/* ======================================================
   PRIMARY NAV
====================================================== */
.main-nav {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
}

.nav-menu {
  display: flex;
  align-items: center;
  height: 100%;
}

.nav-menu>li {
  position: relative;
  height: 100%;
  display: flex;
  align-items: center;
}

.nav-menu>li>a {
  display: flex;
  align-items: center;
  gap: 5px;
  height: 100%;
  padding: 0 11px;
  font-size: 16px;
  font-weight: 600;
  color: var(--header);
  font-family: var(--header-font);
  white-space: nowrap;
  position: relative;
  transition: color 0.14s;
  text-transform: uppercase;
}

.nav-menu>li>a::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 0;
  height: 2.5px;
  background: var(--theme);
  border-radius: 2px 2px 0 0;
  transform: translateX(-50%);
  transition: width 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.nav-menu>li.tfb-open>a,
.nav-menu>li>a:hover {
  color: var(--theme);
}

.nav-menu>li.tfb-open>a::after,
.nav-menu>li>a:hover::after {
  width: calc(100% - 30px);
}

.nav-menu>li>a .fa-chevron-down {
  font-size: 10px;
  opacity: 0.5;
  transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.14s;
}

.nav-menu>li.tfb-open>a .fa-chevron-down {
  transform: rotate(180deg);
  opacity: 1;
}

/* ======================================================
   DROPDOWN — LEVEL 1
   padding-top acts as a hover bridge over the border gap
====================================================== */
.nav-menu>li>.sub-menu {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(10px);
  min-width: 240px;
  background: var(--white);
  border-radius: 12px;
  box-shadow: 0 20px 60px rgba(26, 26, 46, 0.14), 0 4px 16px rgba(26, 26, 46, 0.07);
  border: 1px solid var(--border);
  padding: 8px;
  padding-top: 12px;
  /* hover bridge */
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1), visibility 0.2s cubic-bezier(0.4, 0, 0.2, 1), transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: 9990;
}

/* triangle pointer */
.nav-menu>li>.sub-menu::before {
  content: "";
  position: absolute;
  top: -6px;
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
  width: 12px;
  height: 12px;
  background: var(--white);
  border: 1px solid var(--border);
  border-bottom: none;
  border-right: none;
}

/* open */
.nav-menu>li.tfb-open>.sub-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}

/* drop-left (rightmost items) */
.nav-menu>li.drop-left>.sub-menu {
  left: auto;
  right: 0;
  transform: translateX(0) translateY(10px);
}

.nav-menu>li.drop-left>.sub-menu::before {
  left: auto;
  right: 20px;
  transform: rotate(45deg);
}

.nav-menu>li.drop-left.tfb-open>.sub-menu {
  transform: translateX(0) translateY(0);
}

/* ======================================================
   DROPDOWN ITEMS — shared for L1, L2, L3
====================================================== */
.nav-menu .sub-menu>li {
  position: relative;
}

.nav-menu .sub-menu>li>a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 9px 12px;
  font-size: 16px;
  font-weight: 600;
  color: var(--header);
  font-family: var(--header-font);
  border-radius: 8px;
  white-space: nowrap;
  transition: background 0.13s, color 0.13s, padding-left 0.13s;
}

.nav-menu .sub-menu>li>a span {
  font-size: 16px;
  font-weight: 600;
  color: var(--header);
  font-family: var(--header-font);
}

.nav-menu .sub-menu>li>a:hover,
.nav-menu .sub-menu>li.tfb-open>a {
  background: var(--white);
  color: var(--theme);
  padding-left: 16px;
}

.nav-menu .sub-menu>li>a .fa-chevron-right {
  font-size: 10px;
  opacity: 0.4;
  transition: opacity 0.13s;
}

.nav-menu .sub-menu>li.tfb-open>a .fa-chevron-right {
  opacity: 1;
  color: var(--theme);
}

/* ======================================================
   DROPDOWN — LEVEL 2
   left:100% = zero pixel gap.
   ::after = invisible hover bridge so mouse can travel.
====================================================== */
.nav-menu .sub-menu>li>.sub-menu {
  position: absolute;
  top: -8px;
  left: 100%;
  min-width: 240px;
  background: var(--white);
  border-radius: 12px;
  box-shadow: 0 20px 60px rgba(26, 26, 46, 0.14), 0 4px 16px rgba(26, 26, 46, 0.07);
  border: 1px solid var(--border);
  padding: 8px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateX(10px);
  transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1), visibility 0.2s cubic-bezier(0.4, 0, 0.2, 1), transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: 9991;
}

.nav-menu .sub-menu>li.has-sub::after {
  content: "";
  position: absolute;
  top: 0;
  right: -10px;
  width: 10px;
  height: 100%;
  background: transparent;
}

.nav-menu .sub-menu>li.tfb-open>.sub-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(0);
}

/* ======================================================
   DROPDOWN — LEVEL 3
====================================================== */
.nav-menu .sub-menu .sub-menu>li>.sub-menu {
  top: -8px;
  left: 100%;
  z-index: 9992;
  transform: translateX(10px);
}

.nav-menu .sub-menu .sub-menu>li.has-sub::after {
  content: "";
  position: absolute;
  top: 0;
  right: -10px;
  width: 10px;
  height: 100%;
  background: transparent;
}

.nav-menu .sub-menu .sub-menu>li.tfb-open>.sub-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(0);
}

/* ======================================================
   MEGA MENU — Desktop
   Anchors to .header-main (which has position:relative)
====================================================== */
.nav-menu>li.mega-menu>.sub-menu {
  position: absolute !important;
  top: 100% !important;
  left: 50% !important;
  width: 1020px !important;
  max-width: calc(100vw - 48px) !important;
  min-width: 0 !important;
  display: inline-flex;
  opacity: 0;
  visibility: hidden;
  z-index: -999;
  flex-direction: row !important;
  padding: 0 !important;
  overflow: hidden !important;
  gap: 0 !important;
  border-radius: 12px !important;
  box-shadow: var(--box-shadow);
  border: 1px solid var(--border) !important;
  background: var(--white) !important;
  z-index: 9993 !important;
  transition: 0.1s all ease;
}

@media (max-width: 1599px) {
  .nav-menu>li.mega-menu>.sub-menu {
    left: 200% !important;
  }
}

@media (max-width: 1399px) {
  .nav-menu>li.mega-menu>.sub-menu {
    left: 300% !important;
  }
}

/* open state / when hover */
.nav-menu>li.mega-menu.tfb-open>.sub-menu {
  display: flex;
  opacity: 1;
  visibility: visible;
  z-index: 999;
}

/* --- Mega columns --- */
.nav-menu>li.mega-menu>.sub-menu>li.mega-col {
  flex: 1 1 0;
  min-width: 0;
  padding: 22px 16px;
  border-right: 1px solid var(--border);
}

.mega-col {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 10px;
}

.mega-col .previw-box {
  position: relative;
  overflow: hidden;
}

.mega-col .previw-box img {
  border-radius: 10px;
}

.mega-col .previw-box::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  z-index: 99;
  inset: 0;
  background: rgba(15, 15, 26, 0.1);
  backdrop-filter: blur(2px);
  opacity: 0;
  visibility: hidden;
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
  border-radius: 10px;
}

.mega-col .previw-box .btn {
  position: absolute;
  top: 80%;
  left: 50%;
  opacity: 0;
  transform: translate(-50%, -50%);
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
}

.mega-col:hover .previw-box::before {
  opacity: 1;
  visibility: visible;
}

.mega-col:hover .previw-box .btn {
  top: 50%;
  opacity: 1;
  z-index: 999;
}

.mega-col span {
  font-weight: 600;
  color: var(--header);
}

/* ======================================================
   HEADER ACTIONS
====================================================== */
.header-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
  margin-left: auto;
}

#searchToggle {
  border: none;
  background: transparent;
}

#searchToggle i {
  background: #f0f9ff;
  border-radius: 50%;
  width: 56px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
}

#searchToggle i:hover {
  background: var(--theme);
  color: var(--white);
}

.hamburger {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border: none;
  background: var(--theme);
  border-radius: 10px;
  transition: background 0.13s, color 0.13s;
}

.hamburger svg path {
  fill: var(--white);
}

.hamburger:hover {
  background: var(--header);
}

/* ======================================================
   SEARCH OVERLAY
====================================================== */
.search-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15, 15, 26, 0.6);
  backdrop-filter: blur(4px);
  z-index: 10000;
  padding: 28px 0;
  display: flex;
  align-items: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s, visibility 0.2s;
}

.search-overlay.is-open {
  opacity: 1;
  visibility: visible;
}

.search-overlay .container {
  display: flex;
  align-items: center;
  gap: 16px;
}

.search-wrap {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 14px;
  border-bottom: 2px solid var(--white);
  transition: border-color 0.14s;
}

.search-wrap input {
  flex: 1;
  background: transparent;
  border: none !important;
  outline: none;
  color: var(--white);
  font-family: var(--header-font);
  font-size: clamp(18px, 4vw, 44px);
  font-weight: 700;
  letter-spacing: -0.02em;
}

.search-wrap input::-moz-placeholder {
  color: var(--white);
}

.search-wrap input::placeholder {
  color: var(--white);
}

.search-wrap:focus-within {
  border-color: var(--theme);
}

.search-wrap .search-submit {
  background: var(--theme);
  border: none;
  color: var(--white);
  padding: 15px 30px;
  border-radius: 6px;
  font-size: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.13s, transform 0.13s;
}

@media (max-width: 575px) {
  .search-wrap .search-submit {
    padding: 7px 12px;
    margin-right: 10px;
  }
}

.search-wrap .search-submit:hover {
  background: var(--header);
  transform: scale(1.05);
}

@media (max-width: 575px) {
  .is-sticky .search-submit {
    margin-right: 45px;
  }
}

.search-close-btn {
  background: rgba(255, 255, 255, 0.08);
  border: none;
  color: rgba(255, 255, 255, 0.75);
  width: 44px;
  height: 44px;
  border-radius: 12px;
  font-size: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.13s, color 0.13s;
  position: absolute;
  top: 5%;
  right: 2%;
  background: rgba(255, 255, 255, 0.18);
  color: #fff;
}

@media (max-width: 575px) {
  .search-close-btn {
    width: 40px;
    height: 40px;
  }
}

.search-close-btn:hover {
  background: var(--white);
  color: var(--header);
}

.is-sticky .search-close-btn {
  top: 25%;
}

/* ======================================================
   MOBILE OVERLAY + DRAWER
====================================================== */
.mobile-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15, 15, 26, 0.6);
  backdrop-filter: blur(4px);
  z-index: 999997;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s, visibility 0.2s;
}

.mobile-overlay.is-open {
  opacity: 1;
  visibility: visible;
}

.mobile-drawer {
  position: fixed;
  top: 0;
  right: 0;
  height: 100%;
  width: min(490px, 100vw - 48px);
}

@media (max-width: 1199px) {
  .mobile-drawer {
    width: min(360px, 100vw - 48px);
  }
}

.mobile-drawer {
  background: #f0f9ff;
  z-index: 999998;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform 0.32s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: -20px 0 60px rgba(26, 26, 46, 0.15);
  overflow: hidden;
  padding: 30px;
}

@media (max-width: 1199px) {
  .mobile-drawer {
    padding: 15px;
  }
}

.mobile-drawer.is-open {
  transform: translateX(0);
}

.mob-hdr {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 15px;
  flex-shrink: 0;
}

.mob-close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: var(--white);
  border: none;
  color: var(--text);
  font-size: 16px;
  transition: background 0.13s, color 0.13s;
}

.mob-close:hover {
  background: var(--black);
  color: #fff;
}

.mob-body {
  flex: 1;
  overflow-y: auto;
  padding-top: 15px;
  overscroll-behavior: contain;
}

.mob-footer {
  padding: 16px 22px;
  border-top: 1px solid var(--border);
  background: var(--white);
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.mob-contact {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  color: var(--textm);
  transition: color 0.13s;
}

.mob-contact i {
  font-size: 13px;
  opacity: 0.6;
}

.mob-contact:hover {
  color: var(--theme);
}

body.no-scroll {
  overflow: hidden;
}

/* ======================================================
   MOBILE NAV
====================================================== */
.mob-nav,
.mob-nav ul {
  list-style: none;
}

.mob-nav>li {
  border-bottom: 1px solid var(--border);
}

.mob-nav>li:last-child {
  border-bottom: none;
}

.mob-row {
  display: flex;
  align-items: center;
}

.mob-nav a {
  flex: 1;
  display: block;
  padding: 13px 12px;
  font-size: 16px;
  font-weight: 500;
  color: var(--header);
  font-family: var(--header-font);
  transition: color 0.13s, background 0.13s;
}

.mob-nav>li>.mob-row>a {
  text-transform: uppercase;
}

.mob-nav a:hover {
  color: var(--theme);
}

.mob-toggle {
  width: 38px;
  height: 38px;
  flex-shrink: 0;
  background: transparent;
  border: none;
  color: var(--text);
  font-size: 13px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  margin-right: 4px;
  transition: background 0.13s, color 0.13s;
}

.mob-toggle:hover {
  background: var(--white);
  color: var(--theme);
}

.mob-toggle i {
  transition: transform 0.22s cubic-bezier(0.4, 0, 0.2, 1);
}

.mob-toggle.is-open i {
  transform: rotate(180deg);
  color: var(--theme);
}

/* Hard-reset ALL desktop dropdown styles inside mobile nav */
.mob-nav .sub-menu,
.mob-nav .sub-menu .sub-menu,
.mob-nav .sub-menu .sub-menu .sub-menu {
  position: static !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  transform: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  border: none !important;
  background: transparent !important;
  min-width: 0 !important;
  width: auto !important;
  z-index: auto !important;
  padding: 4px 0 8px 0 !important;
  margin: 0 0 0 16px !important;
  display: none;
  overflow: hidden;
  transition: none !important;
}

.mob-nav .sub-menu.is-open {
  display: block;
}

.mob-nav .sub-menu li {
  position: static !important;
  height: auto !important;
  border: none !important;
}

.mob-nav .sub-menu a {
  font-size: 13.5px !important;
  font-weight: 400 !important;
  padding: 9px 14px !important;
}

.mob-nav .sub-menu .sub-menu {
  margin-left: 12px !important;
}

/* hide desktop carets in mobile */
.mob-nav .fa-chevron-right {
  display: none !important;
}

/* disable bridge pseudo in mobile */
.mob-nav li.has-sub::after {
  display: none !important;
}

/* ======================================================
   RESPONSIVE
====================================================== */
@media (max-width: 1199px) {
  .main-nav {
    display: none;
  }
}

@media (max-width: 1399px) {
  .header-topbar {
    display: none;
  }

  .header-main {
    height: 85px !important;
  }

  .is-sticky .header-main {
    height: 85px !important;
  }

  .cta-btn span {
    display: none;
  }

  .cta-btn {
    padding: 0;
    width: 40px;
    justify-content: center;
  }
}

@media (max-width: 480px) {
  .ta-left {
    display: none;
  }

  .container {
    padding: 0 16px;
  }
}

/* In WP production add: @media(min-width:1025px){.hamburger{display:none}} */
a:focus-visible,
button:focus-visible {
  outline: 2px solid var(--theme);
  outline-offset: 2px;
}

/*===== - index =====*/
.ta-hero-one {
  max-height: 780px;
  overflow: hidden;
  margin: 15px 15px 0px 15px;
  border-radius: 20px;
}

@media (max-width: 1399px) {
  .ta-hero-one {
    max-height: 1338px;
  }
}

@media (max-width: 991px) {
  .ta-hero-one {
    max-height: 1238px;
  }
}

@media (max-width: 767px) {
  .ta-hero-one {
    max-height: 1338px;
  }
}

.ta-hero-one-wrap .hero-left .header-xxl {
  font-size: 80px;
  line-height: 90px;
}

@media (max-width: 991px) {
  .ta-hero-one-wrap .hero-left .header-xxl {
    font-size: 58px;
    line-height: 66px;
  }
}

@media (max-width: 767px) {
  .ta-hero-one-wrap .hero-left .header-xxl {
    line-height: 52px;
    font-size: 46px;
  }
}

@media (max-width: 575px) {
  .ta-hero-one-wrap .hero-left .header-xxl {
    line-height: 42px;
    font-size: 36px;
  }
}

.ta-hero-one-wrap .hero-left .btn-grp {
  display: flex;
  align-items: center;
  justify-content: center;
  justify-content: start;
  gap: 1.5rem;
}

.ta-hero-one-wrap .hero-left .btn-grp .popup-video {
  min-width: 44px;
  min-height: 44px;
  background: var(--theme);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--white);
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
}

.ta-hero-one-wrap .hero-left .btn-grp .popup-video:hover {
  background: var(--header);
  color: var(--white);
}

.ta-hero-one-wrap .hero-left .btn-grp .popup-video {
  color: var(--header);
  height: 48px;
  width: 48px;
  background: rgb(from #082f49 r g b/20%);
}

.ta-hero-one-wrap .hero-right {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

.ta-hero-one-wrap .hero-right .main-img {
  margin-bottom: -127px;
}

.ta-hero-one-wrap .hero-right .circle {
  position: absolute;
  top: 16%;
  right: 12%;
}

.ta-hero-one-wrap .hero-right .group {
  position: absolute;
  bottom: 0;
  right: -10%;
  width: 274px;
  height: 182px;
  border-radius: 20px;
  padding: 30px;
  background: var(--white);
  display: flex;
  flex-direction: column;
  gap: 1rem;
  box-shadow: var(--box-shadow);
}

@media (max-width: 1599px) {
  .ta-hero-one-wrap .hero-right .group {
    right: 0;
  }
}

.ta-hero-one-wrap .hero-right .group p span span span {
  color: var(--header);
  font-size: 22px;
}

/* Karty se prekryvaji s hero, takze horni odstup sekce dela tenhle margin,
   ne `pt-40` — hodnota musi zustat srovnana se standardem rytmu. */
.ta-feature-one-wrap {
  margin-top: 40px;
  margin-left: 5px;
  margin-right: 5px;
}

.ta-feature-one-item {
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
  gap: 1.5rem;
  flex-direction: column;
  background: var(--white);
  border-radius: 20px;
  padding: 40px 30px;
  align-items: unset;
}

@media (max-width: 767px) {
  .ta-feature-one-item {
    padding: 30px 20px;
  }
}

.ta-feature-one-item .icon {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.ta-feature-one-item .icon .img {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 80px;
  width: 80px;
  background: var(--transparent);
  border-radius: 50%;
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
}

.ta-feature-one-item .icon .img img {
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
}

.ta-feature-one-item:hover {
  transform: translateY(5px);
}

.ta-feature-one-item:hover .icon .img img {
  transform: rotateY(180deg) scale(1.1);
}

.ta-feature-one-item:hover .arrow svg path {
  stroke: var(--theme);
}

.ta-about-one-left .feature li {
  margin-bottom: 5px;
  color: var(--header);
}

.ta-about-one-left .feature li i {
  color: var(--theme);
}

.ta-about-one-left .feature li:last-child {
  margin-bottom: 0;
}

.ta-about-one-middle {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

.ta-about-one-middle > img {
  border-radius: 20px;
}

.ta-about-one-middle .about-shape {
  position: absolute;
  top: 50%;
  left: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.ta-about-one-middle .about-shape .shape-img {
  animation: spinner 10s linear infinite;
}

.ta-about-one-middle .about-shape .logo-img {
  position: absolute;
}

.ta-about-one-right li {
  border-bottom: 1px solid var(--border);
  margin-bottom: 30px;
  padding-bottom: 30px;
}

.ta-about-one-right li:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}

.ta-about-one-right .icon-item {
  display: flex;
  align-items: center;
  justify-content: start;
  gap: 1rem;
}

.ta-about-one-right .icon-item .icon {
  min-width: 100px;
  min-height: 100px;
  border-radius: 50%;
  background: var(--theme);
  display: flex;
  align-items: center;
  justify-content: center;
}

.ta-facilities-one-wrap {
  background: var(--white);
  border-radius: 20px;
  padding: 100px;
}

@media (max-width: 1399px) {
  .ta-facilities-one-wrap {
    padding: 80px;
  }
}

@media (max-width: 991px) {
  .ta-facilities-one-wrap {
    padding: 60px;
  }
}

@media (max-width: 767px) {
  .ta-facilities-one-wrap {
    padding: 40px;
  }
}

.ta-facilities-one-right img {
  border-radius: 20px;
}

.ta-facilities-list {
  margin: 20px 0px;
}

.ta-facilities-list li {
  background: var(--transparent);
  border-radius: 6px;
  padding: 7px 19px;
  display: inline-block;
  margin-right: 1rem;
  color: var(--header);
}

@media (max-width: 767px) {
  .ta-facilities-list li {
    margin-bottom: 10px;
  }
}

.ta-facilities-list li:last-child {
  margin-right: 0;
}

.ta-facilities-list li:hover {
  background: var(--theme);
  color: var(--white);
}

.ta-facilities-list li.active {
  background: var(--theme);
  color: var(--white);
}

.ta-facilities-content {
  display: flex;
  gap: 15px;
  align-items: center;
}

@media (max-width: 767px) {
  .ta-facilities-content {
    flex-direction: column;
    align-items: start;
  }
}

.ta-facilities-content .feature li {
  margin-bottom: 1rem;
  color: var(--header);
}

@media (max-width: 767px) {
  .ta-facilities-content .feature li {
    margin-bottom: 0.5rem;
  }
}

.ta-facilities-content .feature li i {
  color: var(--theme);
}

.ta-facilities-content .feature li:last-child {
  margin-bottom: 0;
}

.ta-service-one {
  background: var(--header);
  border-radius: 20px;
  margin: 0px 15px;
}

.center-sub-main-header.service-one-header .sub-title {
  border: 1px solid rgb(from #fff r g b/20%);
}

.service-one-item {
  display: flex;
  gap: 1rem;
  align-items: center;
  border-bottom: 1px solid rgb(from #fff r g b/20%);
  padding: 2.5rem 0;
  position: relative;
  margin: 0 1rem;
}

.service-one-item .icon {
  position: relative;
}

.service-one-item .icon .service-icon {
  height: 90px;
  width: 90px;
  background: var(--theme);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.service-one-item .icon .service-img {
  opacity: 0;
  position: absolute;
  top: 0;
  left: 0;
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
}

.service-one-item .arrow {
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
}

.service-one-item:hover .icon .service-img {
  opacity: 1;
}

.service-one-item:hover .arrow svg path {
  stroke: var(--theme);
}

.service-one-item:hover .info h3 {
  color: var(--theme);
}

.service-one-item .info {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-right: 2rem;
}

.service-one-item .info span,
.service-one-item .info h3 {
  color: var(--white);
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
}

.pricing-item {
  padding: 48px 40px;
  border-radius: 20px;
  background: var(--white);
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
}

@media (max-width: 1399px) {
  .pricing-item {
    padding: 40px 30px;
  }
}

@media (max-width: 991px) {
  .pricing-item {
    padding: 30px 20px;
  }
}

@media (max-width: 767px) {
  .pricing-item {
    padding: 20px 15px;
  }
}

.pricing-item:hover {
  box-shadow: var(--box-shadow);
  transform: translateY(-10px);
}

.pricing-item .pricing-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--border);
  padding-bottom: 1.5rem;
}

.pricing-item .pricing-header .text {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.pricing-item .pricing-header .icon {
  height: 80px;
  width: 80px;
  background: var(--transparent);
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.pricing-item .header-content {
  padding: 1.5rem 0;
}

.pricing-item .header-content h3 {
  color: var(--header);
  padding-bottom: 0.5rem;
}

.pricing-item .header-content span {
  color: var(--text);
}

.pricing-item .header-content .feature li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.5rem;
}

.pricing-item .header-content .feature li i {
  color: #008000;
}

.pricing-item .header-content .feature li:last-child {
  margin-bottom: 0;
}

.ta-text-slider-one .marquee-text {
  font-size: 80px;
  line-height: 90px;
  font-weight: 900;
  font-family: var(--header-font);
  /* Change this to transparent to see the outline */
  color: transparent;
  -webkit-text-fill-color: transparent;
  margin: 0 1.5rem;
  -webkit-text-stroke-width: 0.5px;
  -webkit-text-stroke-color: black;
}

.ta-case-one-list li {
  padding: 25px 27px;
  border: 1px solid var(--border);
  border-radius: 15px;
  margin-bottom: 15px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.ta-case-one-list li .text {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.ta-case-one-list li .text span {
  text-transform: uppercase;
}

.ta-case-one-list li .text h3 {
  /* Cardia tu mela capitalize, takze cesky nadpis vysel jako
     "Spolehlive Pristroje Pro Laboratore". Nevracet. */
  text-transform: none;
}

.ta-case-one-list li:last-child {
  margin-bottom: 0;
}

.ta-case-one-list li.active {
  background: var(--white);
}

.ta-case-one-list li.active .arrow svg path {
  stroke: var(--theme);
}

.ta-case-one .ta-tab-content .img-box {
  border-radius: 20px;
}

.ta-case-one .ta-tab-content .img-box img {
  border-radius: 20px;
}

.testi-one-left {
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
  padding: 37px;
  border-radius: 20px;
}

@media (max-width: 991px) {
  .testi-one-left {
    padding: 30px;
  }
}

.testi-one-left img {
  max-width: 148px;
  max-height: 148px;
  margin: 0 auto;
  display: block;
}

.ta-process-one {
  background: var(--header);
  border-radius: 20px;
  margin: 0px 15px;
}

.center-sub-main-header.ta-process-one .sub-title {
  border: 1px solid rgb(from #fff r g b/20%);
}

.process-item-one {
  border-right: 1px solid rgb(from #fff r g b/20%);
  padding: 0px 30px;
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
}

@media (max-width: 1199px) {
  .process-item-one {
    border: none;
    padding: 15px;
  }
}

@media (max-width: 767px) {
  .process-item-one {
    border: none;
    padding: 15px 0px;
  }
}

.process-item-one .icon-box {
  display: flex;
  align-items: center;
  justify-content: center;
  justify-content: space-between;
}

.process-item-one .icon-box .icon {
  min-width: 90px;
  min-height: 90px;
  background: var(--theme);
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.process-item-one .icon-box .icon img {
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
}

.process-item-one .icon-box span {
  color: var(--white);
  text-transform: uppercase;
}

.process-item-one .text {
  margin-top: 2rem;
}

.process-item-one .text h3 {
  margin-bottom: 0.5rem !important;
}

.process-item-one .text p,
.process-item-one .text h3 {
  color: var(--white);
}

.process-item-one:hover {
  transform: translateY(5px);
}

.process-item-one:hover .icon-box .icon img {
  transform: rotateY(180deg) scale(1.1);
}

.process-item-one:hover .arrow svg path {
  stroke: var(--theme);
}

.contact-form-one {
  background: var(--white);
  border-radius: 20px;
  padding: 40px;
  margin-right: 2.5rem;
}

@media (max-width: 1399px) {
  .contact-form-one {
    padding: 30px;
    margin-right: 0;
  }
}

@media (max-width: 991px) {
  .contact-form-one {
    padding: 20px;
  }
}

@media (max-width: 767px) {
  .contact-form-one {
    padding: 15px;
  }
}

.contact-form-one input[type=text],
.contact-form-one input[type=tel],
.contact-form-one input[type=email],
.contact-form-one input[type=date],
.contact-form-one select,
.contact-form-one option,
.contact-form-one textarea {
  background: var(--body);
  color: var(--header);
}

.contact-form-one input[type=text]::-moz-placeholder,
.contact-form-one input[type=tel]::-moz-placeholder,
.contact-form-one input[type=email]::-moz-placeholder,
.contact-form-one input[type=date]::-moz-placeholder,
.contact-form-one select::-moz-placeholder,
.contact-form-one option::-moz-placeholder,
.contact-form-one textarea::-moz-placeholder {
  color: var(--text);
}

.contact-form-one input[type=text]::placeholder,
.contact-form-one input[type=tel]::placeholder,
.contact-form-one input[type=email]::placeholder,
.contact-form-one input[type=date]::placeholder,
.contact-form-one select::placeholder,
.contact-form-one option::placeholder,
.contact-form-one textarea::placeholder {
  color: var(--text);
}

.faq-item {
  background: var(--white);
  border-radius: 20px;
  padding: 18px 20px;
  margin-bottom: 15px;
  position: relative;
}

@media (max-width: 991px) {
  .faq-item {
    padding: 20px;
  }
}

.faq-item .heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
}

.faq-item:last-child {
  margin-bottom: 0;
}

.faq-item.active .heading i {
  background: var(--theme);
  color: var(--white);
  width: 30px;
  height: 30px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.faq-item.active .content {
  padding-top: 10px;
}

/* Loga se vykresluji v nativnich 200x200 (zadne zmensovani), karta je o padding
   vetsi — 200 + 2x15 = 230. Diky tomu zustava bily okraj kolem loga i zaoblene
   rohy, jak to vypadalo pred zvetsenim. */
/* Dlazdice se pruzne deli o sirku kontejneru (`flex: 1 1 0` = vsechny stejne
   siroke), aby se vsechna loga vesla na JEDEN radek i kdyz jich pribyde.
   `max-width` drzi puvodni velikost 230 px, kdyz je log malo. Ctverec hlida
   `aspect-ratio`, ne pevna vyska — jinak by se pri zuzeni deformoval.
   Bily okraj NEDAVAT v procentech: procentualni padding se pocita ze sirky
   RODICE, ne dlazdice — 6.5 % z pruhu delalo 104 px a logo se scvrklo na 19 px. */
.ta-partners-one-wrap .partner {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1 1 0;
  min-width: 0;
  max-width: 230px;
  aspect-ratio: 1 / 1;
  margin: 0;
  padding: 12px;
  border: 1px solid #d5e3f5;
  border-radius: 12px;
  background: var(--white);
  box-shadow: 0 4px 16px rgba(18, 48, 107, 0.06);
}

.ta-partners-one-wrap .partner img {
  width: 100%;
  height: 100%;
  max-width: 200px;
  max-height: 200px;
  object-fit: contain;
}

.ta-partners-one-wrap .partner:hover {
  border-color: var(--theme);
  box-shadow: 0 8px 24px rgba(18, 48, 107, 0.12);
}

.ta-partners-one-wrap .partners-label {
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 14px;
  font-weight: 600;
  color: var(--theme);
  margin-bottom: 30px;
}

/* Pruh se roztahne pres celou sirku kontejneru — `space-between` rozestre loga
   od kraje ke kraji misto vycentrovaneho shluku uprostred. */
.ta-partners-one-wrap .partners-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 24px;
}

/* Na uzsim kontejneru bere mezera vic mista nez loga — stahnout, at zbyde na
   samotna loga. */
@media (max-width: 1199.98px) {
  .ta-partners-one-wrap .partners-strip {
    gap: 12px;
  }
}

/* Pod tablet uz by pruzne deleni delalo z log nectitelne ctverecky (7 log na
   390 px = ~30 px), takze se zalomi do mrizky s pevnou dlazdici a vycentruje. */
@media (max-width: 767.98px) {
  .ta-partners-one-wrap .partners-strip {
    justify-content: center;
  }

  .ta-partners-one-wrap .partner {
    flex: 0 0 auto;
    width: 140px;
    padding: 10px;
  }
}

.ta-partners-one-wrap .partners-strip .partner {
  margin: 0;
}

.ta-partners-one-wrap .partners-cta {
  display: flex;
  justify-content: center;
  margin-top: 50px;
}

/*===== - katalog produktu =====*/
.katalog-item {
  height: 100%;
  display: flex;
  flex-direction: column;
  background: var(--white);
  border: 1px solid #d5e3f5;
  border-radius: 20px;
  overflow: hidden;
  transition: all 0.4s ease-in-out;
}

.katalog-item:hover {
  transform: translateY(-8px);
  box-shadow: 0 12px 32px rgba(18, 48, 107, 0.10);
}

.katalog-item .katalog-img {
  height: 220px;
  overflow: hidden;
  background: var(--body);
}

.katalog-item .katalog-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: all 0.4s ease-in-out;
}

.katalog-item:hover .katalog-img img {
  transform: scale(1.06);
}

.katalog-item .katalog-text {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding: 30px;
  flex-grow: 1;
}

.katalog-item .katalog-text h3 {
  color: var(--header);
}

.katalog-item .katalog-link {
  margin-top: auto;
  color: var(--theme);
  font-weight: 600;
}

.katalog-item .katalog-link i {
  margin-left: 6px;
  transition: all 0.3s ease-in-out;
}

.katalog-item .katalog-link:hover i {
  margin-left: 12px;
}

/*===== - index-02 =====*/
.ta-hero-two {
  overflow: hidden;
  margin-left: 3px;
  margin-right: 3px;
  margin-top: 15px;
  border-radius: 20px;
}

@media (max-width: 1399px) {
  .ta-hero-two {
    margin-left: 0;
    margin-right: 0;
  }
}

.ta-hero-two-left {
  position: relative;
}

.ta-hero-two-left img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

.ta-hero-two-left .card {
  max-width: 411px;
  position: absolute;
  left: 30px;
  bottom: 30px;
  background: rgb(from #082f49 r g b/50%);
  backdrop-filter: blur(10px);
  border-radius: 15px;
  padding: 20px;
  display: flex;
  gap: 15px;
  align-items: center;
  justify-content: center;
  flex-direction: row;
}

.ta-hero-two-left .card img {
  max-width: 100px !important;
  max-height: 100px !important;
}

.ta-hero-two-left .card .text p,
.ta-hero-two-left .card .text h2,
.ta-hero-two-left .card .text h2 span {
  color: var(--white);
}

.ta-hero-two-right {
  border-radius: 20px;
  padding: 100px 57px;
  margin-bottom: 24px;
}

@media (max-width: 991px) {
  .ta-hero-two-right {
    padding: 80px 40px;
  }
}

@media (max-width: 767px) {
  .ta-hero-two-right {
    padding: 60px 30px;
  }
}

@media (max-width: 575px) {
  .ta-hero-two-right {
    padding: 40px 20px;
  }
}

.ta-hero-two-right .header-xxl {
  font-size: 80px;
  line-height: 90px;
}

@media (max-width: 991px) {
  .ta-hero-two-right .header-xxl {
    font-size: 58px;
    line-height: 66px;
  }
}

@media (max-width: 767px) {
  .ta-hero-two-right .header-xxl {
    line-height: 52px;
    font-size: 46px;
  }
}

.ta-hero-two-right .img-btn-grp {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
  justify-content: start;
}

@media (max-width: 575px) {
  .ta-hero-two-right .img-btn-grp {
    flex-direction: column;
    align-items: baseline;
  }
}

.ta-hero-two-right .img-btn-grp .img-grp {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
}

@media (max-width: 575px) {
  .ta-hero-two-right .img-btn-grp .img-grp {
    flex-direction: column;
    align-items: baseline;
    margin-top: 20px;
  }
}

.ta-hero-two-bottom {
  border-radius: 20px;
  background: var(--header);
  padding: 30px 35px;
}

.ta-hero-two-bottom .count-wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.ta-hero-two-bottom .count {
  display: flex;
  justify-content: start;
  align-items: end;
}

.ta-hero-two-bottom .count .suffix,
.ta-hero-two-bottom .count .header-xxl span span {
  color: var(--white);
  font-size: 50px;
  line-height: 60px;
  font-family: var(--header-font);
  font-weight: 900;
}

.ta-hero-two-bottom p {
  color: var(--white);
}

@media (max-width: 991px) {
  .ta-hero-two-bottom {
    padding: 20px;
  }
}

.ta-about-header-two .about-two-hr {
  margin: 25px 0px;
}

@media (max-width: 767px) {
  .ta-about-header-two .about-two-hr {
    margin: 15px 0;
  }
}

.ta-about-header-two .feature {
  display: flex;
  gap: 30px;
  align-items: center;
  justify-content: center;
  flex-direction: row;
}

@media (max-width: 767px) {
  .ta-about-header-two .feature {
    flex-direction: column;
  }
}

.ta-about-header-two .feature .item {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.ta-about-header-two .feature .item .icon {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  background: var(--theme);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--white);
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
}

.ta-about-header-two .feature .item .icon:hover {
  background: var(--header);
  color: var(--white);
}

.ta-about-header-two .feature .item .icon {
  width: 80px;
  height: 80px;
}

@media (max-width: 575px) {
  .ta-about-header-two .feature {
    flex-direction: column;
  }
}

.ta-about-two-img {
  position: relative;
}

.ta-about-two-img img {
  width: 100%;
}

.ta-about-two-img .card {
  max-width: 211px;
  position: absolute;
  right: 30px;
  bottom: 30px;
  background: rgb(from #082f49 r g b/50%);
  backdrop-filter: blur(10px);
  border-radius: 15px;
  padding: 20px;
  display: flex;
  gap: 15px;
  align-items: center;
  justify-content: center;
  flex-direction: row;
}

.ta-about-two-img .card .icon {
  min-width: 44px;
  min-height: 44px;
  background: var(--theme);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--white);
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
}

.ta-about-two-img .card .icon:hover {
  background: var(--header);
  color: var(--white);
}

.ta-about-two-img .card p {
  color: var(--white);
}

.ta-text-slider-two .text-fill {
  font-size: 80px;
  line-height: 90px;
  font-weight: 900;
  font-family: var(--header-font);
  margin: 0 1.5rem;
}

.ta-service-one {
  background: var(--header);
  border-radius: 20px;
  margin: 0px 15px;
}

.center-sub-main-header.service-two-header .sub-title {
  border: 1px solid rgb(from #fff r g b/20%);
}

.service-two-item {
  display: flex;
  gap: 2rem;
  align-items: center;
  border-bottom: 1px solid rgb(from #fff r g b/20%);
  padding: 2.5rem 0;
  position: relative;
  margin: 0 1rem;
}

.service-two-item .ser-img {
  position: absolute;
  top: -20%;
  right: 10%;
  opacity: 0;
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
  z-index: 3;
  transform: rotateX(180deg);
  transform-origin: bottom;
}

@media (max-width: 1199px) {
  .service-two-item .ser-img {
    display: none;
  }
}

@media (max-width: 1199px) {
  .service-two-item {
    flex-direction: column;
    align-items: baseline;
  }
}

.service-two-item .icon .service-icon {
  height: 90px;
  width: 90px;
  background: var(--theme);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.service-two-item .arrow {
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
}

.service-two-item .info {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-right: 2rem;
  overflow: hidden;
}

.service-two-item .info h3 {
  color: var(--white);
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
  transform: translateY(100%);
}

@media (max-width: 1199px) {
  .service-two-item .info h3 {
    transform: translateY(0);
  }
}

.service-two-item .info p.desc {
  max-width: 55%;
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
  transform: translateY(100%);
  opacity: 0;
}

@media (max-width: 1199px) {
  .service-two-item .info p.desc {
    max-width: 85%;
    transform: translateY(0);
    opacity: 1;
  }
}

.service-two-item:hover .arrow svg path {
  stroke: var(--theme);
}

.service-two-item:hover .info h3 {
  color: var(--theme);
  transform: translateY(0);
}

.service-two-item.active .info .desc {
  transform: translateY(0);
  opacity: 1;
}

.service-two-item.active .ser-img {
  transform: rotateY(0deg);
  opacity: 1;
}

.service-two-item.active .info h3 {
  transform: translateY(0);
}

.service-two-bottom {
  color: var(--white);
  text-align: center;
}

.service-two-bottom a {
  color: var(--theme);
  margin-left: 1rem;
}

.ta-case-study-two-item {
  position: relative;
  overflow: hidden;
  border-radius: 30px;
}

.ta-case-study-two-item .text-grp {
  position: absolute;
  padding: 30px;
  bottom: 0;
  left: 0;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  transform: translateY(1000px) scale(0.5);
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
  opacity: 0;
  z-index: 5;
}

.ta-case-study-two-item .text-grp p,
.ta-case-study-two-item .text-grp h3 {
  color: var(--white);
}

.ta-case-study-two-item::before {
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  background: linear-gradient(rgb(from #082f49 r g b/1%), rgb(from #082f49 r g b/90%));
  z-index: 2;
  transform: translateY(100%);
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
}

.ta-case-study-two-item:hover .text-grp {
  transform: translateY(0) scale(1);
  opacity: 1;
}

.ta-case-study-two-item:hover::before {
  transform: translateY(0);
}

.ta-fac-fact-header-two {
  text-align: center;
  text-transform: uppercase;
  position: relative;
}

.ta-fac-fact-header-two::before {
  position: absolute;
  content: "";
  width: 45%;
  height: 1px;
  top: 50%;
  left: 0;
  background: var(--border);
  transform: translate(0, -50%);
}

@media (max-width: 1399px) {
  .ta-fac-fact-header-two::before {
    width: 40%;
  }
}

@media (max-width: 767px) {
  .ta-fac-fact-header-two::before {
    width: 30%;
  }
}

.ta-fac-fact-header-two::after {
  position: absolute;
  content: "";
  width: 45%;
  height: 1px;
  top: 50%;
  right: 0;
  background: var(--border);
  transform: translate(0, -50%);
}

@media (max-width: 1399px) {
  .ta-fac-fact-header-two::after {
    width: 40%;
  }
}

@media (max-width: 767px) {
  .ta-fac-fact-header-two::after {
    width: 30%;
  }
}

.ta-fac-fact-two-wrapper {
  border-radius: 20px;
}

.ta-fac-fact-two-wrapper .count-wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.ta-fac-fact-two-wrapper .count {
  display: flex;
  justify-content: start;
  align-items: end;
}

.ta-fac-fact-two-wrapper .count .suffix,
.ta-fac-fact-two-wrapper .count .header-xxl span span {
  font-size: 50px;
  line-height: 60px;
  font-family: var(--header-font);
  font-weight: 900;
  color: var(--header);
}

@media (max-width: 991px) {
  .ta-fac-fact-two-wrapper {
    padding: 20px;
  }
}

.ta-choose-header-two .icon-box {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
}

.ta-choose-header-two .icon-box .icon {
  min-width: 44px;
  min-height: 44px;
  background: var(--theme);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--white);
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
}

.ta-choose-header-two .icon-box .icon:hover {
  background: var(--header);
  color: var(--white);
}

.ta-choose-header-two .icon-box .icon {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 80px;
  min-width: 80px;
}

.ta-choose-two-img {
  position: relative;
}

.ta-choose-two-img .card-box {
  min-width: 160px;
  min-height: 160px;
  position: absolute;
  left: 30px;
  bottom: 30px;
  background: rgb(from #082f49 r g b/50%);
  backdrop-filter: blur(10px);
  border-radius: 15px;
  padding: 20px;
}

.ta-choose-two-img .card-box .cricle-shape {
  display: flex;
  align-items: center;
  justify-content: center;
}

.ta-choose-two-img .card-box .cricle-shape .shape-img {
  animation: spinner 10s linear infinite;
}

.ta-choose-two-img .card-box .cricle-shape .logo-img {
  position: absolute;
}

.ta-testimonial-two {
  background: var(--header);
  border-radius: 20px;
  margin: 0px 15px;
}

.testimonialTwoSlider .swiper-slide-active {
  border-right: 1px solid rgb(from #fff r g b/10%);
}

@media (max-width: 991px) {
  .testimonialTwoSlider .swiper-slide-active {
    border-right: none;
  }
}

.testi-two-item {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 1.5rem;
  padding: 0 80px;
}

@media (max-width: 991px) {
  .testi-two-item {
    padding: 0 55px;
  }
}

@media (max-width: 767px) {
  .testi-two-item {
    padding: 0 40px;
  }
}

@media (max-width: 767px) {
  .testi-two-item {
    padding: 0 30px;
  }
}

.testi-two-item .rating {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
}

.testi-two-item .rating .icon {
  color: orange;
}

.testi-two-item .author {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
}

.ta-blog-grid-02 {
  position: relative;
  overflow: hidden;
}

.ta-blog-grid-02 .news-thumb {
  position: relative;
  overflow: hidden;
  border-radius: 10px;
}

.ta-blog-grid-02 .news-thumb .news-thumb-meta .thumb-cat {
  position: absolute;
  bottom: 30px;
  right: 30px;
  z-index: 1;
  border-radius: 16px;
  background: var(--white);
  color: var(--header);
  box-shadow: var(--box-shadow);
  padding: 8px 18px;
}

.ta-blog-grid-02 .news-description {
  padding-top: 30px;
  border-top: transparent;
}

.ta-blog-grid-02 .news-description .news-top-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin-bottom: 10px;
  font-weight: normal;
  font-size: 16px;
  gap: 5px;
  position: relative;
  z-index: 1;
}

.ta-blog-grid-02 .news-description .news-top-meta .post_meta {
  margin-right: 15px;
}

.ta-blog-grid-02 .news-description .news-top-meta .post_meta .entry-comments a,
.ta-blog-grid-02 .news-description .news-top-meta .post_meta .entry-comments span,
.ta-blog-grid-02 .news-description .news-top-meta .post_meta .author-thumb a,
.ta-blog-grid-02 .news-description .news-top-meta .post_meta .author-thumb span {
  color: var(--text);
}

.ta-blog-grid-02 .news-description .news-top-meta .post_meta .entry-comments i,
.ta-blog-grid-02 .news-description .news-top-meta .post_meta .author-thumb i {
  color: var(--theme) !important;
}

.ta-blog-grid-02 .news-description .news-top-meta .post-author .author-thumb {
  display: flex;
  align-items: center;
}

.ta-blog-grid-02 .news-description .news-top-meta .post-author .author-thumb .post-author-icon {
  margin-right: 8px;
  color: var(--webex-primary-color2);
}

.ta-blog-grid-02 .news-description .news-top-meta .post-author .author-thumb .author-thumb .note {
  margin-right: 5px;
}

.ta-blog-grid-02 .news-description .post-excerpt {
  margin-top: 15px;
  position: relative;
  z-index: 1;
}

.ta-blog-grid-02 .news-description .read-more-button {
  margin-top: 15px;
  position: relative;
  z-index: 1;
  color: var(--black);
}

.ta-blog-grid-02 .news-description .read-more-button a {
  position: relative;
  display: inline-block;
  line-height: 1;
  color: var(--black);
  font-weight: 700;
}

.ta-blog-grid-02 .news-description .read-more-button a i {
  transform: rotate(90deg);
  font-size: 16px;
  margin-left: 0.2rem;
}

.ta-partner-two {
  text-align: center;
  text-transform: uppercase;
  position: relative;
}

.ta-partner-two::before {
  position: absolute;
  content: "";
  width: 44%;
  height: 1px;
  top: 50%;
  left: 0;
  background: var(--border);
  transform: translate(0, -50%);
}

@media (max-width: 1399px) {
  .ta-partner-two::before {
    width: 40%;
  }
}

@media (max-width: 767px) {
  .ta-partner-two::before {
    width: 30%;
  }
}

.ta-partner-two::after {
  position: absolute;
  content: "";
  width: 44%;
  height: 1px;
  top: 50%;
  right: 0;
  background: var(--border);
  transform: translate(0, -50%);
}

@media (max-width: 1399px) {
  .ta-partner-two::after {
    width: 40%;
  }
}

@media (max-width: 767px) {
  .ta-partner-two::after {
    width: 30%;
  }
}

.ta-contact-two-wrap .feature-two li {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  margin-bottom: 15px;
}

.ta-contact-two-wrap .feature-two li:last-child {
  margin-bottom: 0;
}

.ta-contact-two-wrap .feature-two li .icon {
  min-width: 44px;
  min-height: 44px;
  background: var(--theme);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--white);
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
}

.ta-contact-two-wrap .feature-two li .icon:hover {
  background: var(--header);
  color: var(--white);
}

.ta-contact-two-wrap .feature-two li .text .header-sm {
  margin-right: 5px;
}

.ta-contact-two-wrap .social-icon {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.ta-contact-two-wrap .social-icon ul li {
  display: inline-block;
  align-items: center;
  gap: 12px;
  margin-right: 10px;
}

.ta-contact-two-wrap .social-icon ul li:last-child {
  margin-right: 0;
}

.ta-contact-two-wrap .social-icon ul li a {
  min-width: 44px;
  min-height: 44px;
  background: var(--theme);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--white);
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
}

.ta-contact-two-wrap .social-icon ul li a:hover {
  background: var(--header);
  color: var(--white);
}

.ta-contact-two-wrap .social-icon ul li a {
  background: var(--white);
  color: var(--header);
}

/*===== - index-03 =====*/
.ta-hero-three {
  overflow: hidden;
  margin: 15px 15px 0px 15px;
  margin-top: 15px;
  border-radius: 20px;
}

.ta-hero-three-left {
  padding: 100px 0 0 125px;
  padding-bottom: 30px;
}

@media (max-width: 1399px) {
  .ta-hero-three-left {
    padding-left: 80px;
    padding-right: 80px;
  }
}

@media (max-width: 1199px) {
  .ta-hero-three-left {
    padding: 90px;
    padding-left: 50px;
  }
}

@media (max-width: 991px) {
  .ta-hero-three-left {
    padding: 80px 40px;
  }
}

@media (max-width: 767px) {
  .ta-hero-three-left {
    padding: 60px 30px;
    padding-left: 0;
  }
}

@media (max-width: 575px) {
  .ta-hero-three-left {
    padding: 40px 20px;
    padding-left: 0;
  }
}

.ta-hero-three-left .sub-title {
  border: 1px solid rgb(from #fff r g b/10%);
}

.ta-hero-three-left .header-xxl {
  font-size: 80px;
  line-height: 90px;
}

@media (max-width: 991px) {
  .ta-hero-three-left .header-xxl {
    font-size: 58px;
    line-height: 66px;
  }
}

@media (max-width: 767px) {
  .ta-hero-three-left .header-xxl {
    line-height: 52px;
    font-size: 46px;
  }
}

@media (max-width: 575px) {
  .ta-hero-three-left .header-xxl {
    line-height: 42px;
    font-size: 36px;
  }
}

.ta-hero-three-left .img-btn-grp {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
  justify-content: start;
}

@media (max-width: 575px) {
  .ta-hero-three-left .img-btn-grp {
    flex-direction: column;
    align-items: baseline;
  }
}

.ta-hero-three-left .img-btn-grp .img-grp {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
}

@media (max-width: 575px) {
  .ta-hero-three-left .img-btn-grp .img-grp {
    flex-direction: column;
    align-items: baseline;
    margin-top: 20px;
  }
}

.ta-hero-three-bottom {
  padding-bottom: 60px;
  padding-left: 125px;
}

@media (max-width: 1399px) {
  .ta-hero-three-bottom {
    padding-bottom: 30px;
  }
}

@media (max-width: 1399px) {
  .ta-hero-three-bottom {
    padding-left: 80px;
  }
}

@media (max-width: 1199px) {
  .ta-hero-three-bottom {
    padding-left: 50px;
  }
}

@media (max-width: 767px) {
  .ta-hero-three-bottom {
    padding-left: 0;
  }
}

@media (max-width: 575px) {
  .ta-hero-three-bottom {
    padding-left: 0;
  }
}

.ta-hero-three-bottom .count-wrapper {
  display: flex;
  flex-direction: column;
  align-items: baseline;
}

.ta-hero-three-bottom .count {
  display: flex;
  justify-content: start;
  align-items: end;
}

.ta-hero-three-bottom .count .suffix,
.ta-hero-three-bottom .count .header-xxl span span {
  color: var(--white);
  font-size: 50px;
  line-height: 60px;
  font-family: var(--header-font);
  font-weight: 900;
}

.ta-hero-three-img {
  position: relative;
  transform: translateX(30px);
  display: flex;
  align-items: center;
  justify-content: center;
}

.ta-hero-three-img .play-icon {
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
}

.ta-hero-three-img .play-icon a {
  min-width: 44px;
  min-height: 44px;
  background: var(--theme);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--white);
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
}

.ta-hero-three-img .play-icon a:hover {
  background: var(--header);
  color: var(--white);
}

.ta-hero-three-img .play-icon a {
  min-width: 120px;
  min-height: 120px;
}

.ta-hero-three-img .play-icon a i {
  font-size: 60px;
}

.ta-partner-three .container-fluid {
  padding: 0;
}

.ta-partner-three .ta-partner-three-wrap {
  border-bottom: 1px solid var(--border);
}

.ta-partner-three .ta-partner-three-wrap .partner {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 60px;
  border-right: 1px solid var(--border);
  border-left: 1px solid var(--border);
}

@media (max-width: 991px) {
  .ta-partner-three .ta-partner-three-wrap .partner {
    padding: 40px;
  }
}

@media (max-width: 991px) {
  .ta-partner-three .ta-partner-three-wrap .partner {
    padding: 30px;
  }
}

.ta-feature-one-item.three {
  background: transparent !important;
  padding-bottom: 0 !important;
}

.ta-about-three-wrap {
  border-radius: 20px;
}

@media (max-width: 1399px) {
  .ta-about-three-wrap {
    padding: 80px;
  }
}

@media (max-width: 991px) {
  .ta-about-three-wrap {
    padding: 60px;
  }
}

@media (max-width: 767px) {
  .ta-about-three-wrap {
    padding: 40px;
  }
}

.ta-about-list {
  margin: 20px 0px;
}

.ta-about-list li {
  background: var(--transparent);
  border-radius: 6px;
  padding: 7px 19px;
  display: inline-block;
  margin-right: 1rem;
  color: var(--header);
}

@media (max-width: 1399px) {
  .ta-about-list li {
    margin-bottom: 10px;
  }
}

.ta-about-list li:last-child {
  margin-right: 0;
}

.ta-about-list li:hover {
  background: var(--theme);
  color: var(--white);
}

.ta-about-list li.active {
  background: var(--theme);
  color: var(--white);
}

.ta-about-content {
  display: flex;
  gap: 15px;
  align-items: center;
}

@media (max-width: 767px) {
  .ta-about-content {
    flex-direction: column;
    align-items: start;
  }
}

.ta-about-content .feature li {
  margin-bottom: 1rem;
  color: var(--header);
}

@media (max-width: 767px) {
  .ta-about-content .feature li {
    margin-bottom: 0.5rem;
  }
}

.ta-about-content .feature li i {
  color: var(--theme);
}

.ta-about-content .feature li:last-child {
  margin-bottom: 0;
}

.about-three-icons .icon-item {
  display: flex;
  align-items: center;
  justify-content: start;
  gap: 1rem;
}

.about-three-icons .icon-item .icon {
  min-width: 80px;
  min-height: 80px;
  border-radius: 50%;
  background: var(--theme);
  display: flex;
  align-items: center;
  justify-content: center;
}

.ta-case-three {
  overflow: hidden;
  margin: 15px 15px 0px 15px;
  margin-top: 15px;
  border-radius: 20px;
}

.ta-case-three p.sub-title {
  border: 1px solid rgb(from #fff r g b/10%);
}

.caseStudySliderThree .ta-case-study-three-item {
  position: relative;
  overflow: hidden;
  border-radius: 30px;
}

.caseStudySliderThree .ta-case-study-three-item .text-grp {
  position: absolute;
  padding: 30px;
  bottom: 0;
  left: 0;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  transform: translateY(1000px) scale(0.5);
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
  opacity: 0;
  z-index: 5;
}

.caseStudySliderThree .ta-case-study-three-item .text-grp p,
.caseStudySliderThree .ta-case-study-three-item .text-grp h3 {
  color: var(--white);
}

.caseStudySliderThree .ta-case-study-three-item::before {
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  background: linear-gradient(rgb(from #082f49 r g b/1%), rgb(from #082f49 r g b/90%));
  z-index: 2;
  transform: translateY(100%);
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
}

.caseStudySliderThree .swiper-slide.swiper-slide-active .ta-case-study-three-item .text-grp {
  transform: translateY(0) scale(1);
  opacity: 1;
}

.caseStudySliderThree .swiper-slide.swiper-slide-active .ta-case-study-three-item::before {
  transform: translateY(0);
}

.ta-service-list-three li {
  padding: 25px 27px;
  border: 1px solid var(--border);
  border-radius: 15px;
  margin-bottom: 15px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.ta-service-list-three li .text {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.ta-service-list-three li .text span {
  text-transform: uppercase;
}

.ta-service-list-three li .text h3 {
  text-transform: capitalize;
}

.ta-service-list-three li:last-child {
  margin-bottom: 0;
}

.ta-service-list-three li.active {
  background: var(--white);
}

.ta-service-list-three li.active .arrow svg path {
  stroke: var(--theme);
}

.service-three-content {
  display: flex;
  gap: 15px;
  align-items: center;
}

@media (max-width: 767px) {
  .service-three-content {
    flex-direction: column;
    align-items: start;
  }
}

.service-three-content .feature li {
  margin-bottom: 1rem;
  color: var(--header);
}

@media (max-width: 767px) {
  .service-three-content .feature li {
    margin-bottom: 0.5rem;
  }
}

.service-three-content .feature li i {
  color: var(--theme);
}

.service-three-content .feature li:last-child {
  margin-bottom: 0;
}

.service-three-shape {
  position: absolute;
  bottom: 25px;
  right: 25px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.service-three-shape .shape-img {
  animation: spinner 10s linear infinite;
}

.service-three-shape .logo-img {
  position: absolute;
}

.center-sub-main-header.ta-process-three .sub-title {
  border: 1px solid var(--border);
}

.process-item-three {
  border-right: 1px solid var(--border);
  padding: 0px 30px;
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
}

@media (max-width: 1199px) {
  .process-item-three {
    border: none;
    padding: 15px;
  }
}

@media (max-width: 767px) {
  .process-item-three {
    border: none;
    padding: 15px 0px;
  }
}

.process-item-three .icon-box {
  display: flex;
  align-items: center;
  justify-content: center;
  justify-content: space-between;
}

.process-item-three .icon-box .icon {
  min-width: 90px;
  min-height: 90px;
  background: var(--theme);
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.process-item-three .icon-box .icon img {
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
}

.process-item-three .icon-box span {
  text-transform: uppercase;
}

.process-item-three .text {
  margin-top: 2rem;
}

.process-item-three .text h3 {
  margin-bottom: 0.5rem !important;
}

.process-item-three:hover {
  transform: translateY(5px);
}

.process-item-three:hover .icon-box .icon img {
  transform: rotateY(180deg) scale(1.1);
}

.process-item-three:hover .arrow svg path {
  stroke: var(--header);
}

.ta-testimonial-three {
  background: var(--header);
  border-radius: 20px;
  margin: 0px 15px;
}

.center-sub-main-header.ta-testi-header-three .sub-title {
  border: 1px solid rgb(from #fff r g b/10%);
}

.testi-three-item {
  background: rgb(from #fff r g b/10%);
  border-radius: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  align-items: flex-start;
  gap: 2.5rem;
  padding: 40px;
}

@media (max-width: 991px) {
  .testi-three-item {
    padding: 25px;
    gap: 1rem;
  }
}

@media (max-width: 575px) {
  .testi-three-item {
    flex-direction: column;
  }
}

.testi-three-item .content {
  display: flex;
  gap: 1rem;
  flex-direction: column;
}

.testi-three-item .content .rating {
  display: flex;
  align-items: center;
  justify-content: center;
  align-items: baseline;
  justify-content: start;
  gap: 1rem;
}

.testi-three-item .content .rating .icon {
  color: orange;
}

.center-sub-main-header.ta-team-three .sub-title {
  border: 1px solid var(--border);
}

.team-three-item {
  overflow: hidden;
}

.team-three-item .main-image {
  position: relative;
  margin-bottom: 20px;
}

.team-three-item .main-image ul.icons {
  position: absolute;
  top: 20%;
  right: 10px;
  z-index: 99999999;
}

.team-three-item .main-image ul.icons li {
  margin-bottom: 7px;
  transform: translateY(50px);
  opacity: 0;
  transition: all 0.4s ease;
}

.team-three-item .main-image ul.icons li:last-child {
  margin-bottom: 0;
}

.team-three-item .main-image ul.icons li a {
  min-width: 44px;
  min-height: 44px;
  background: var(--theme);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--white);
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
}

.team-three-item .main-image ul.icons li a:hover {
  background: var(--header);
  color: var(--white);
}

.team-three-item .main-image ul.icons li a {
  max-width: 36px;
  max-height: 36px;
  background: var(--white);
}

.team-three-item .main-image ul.icons li a i {
  color: var(--header);
}

.team-three-item .main-image ul.icons li a:hover {
  background: var(--theme);
}

.team-three-item .main-image ul.icons li a:hover i {
  color: var(--white);
}

.team-three-item .main-image:hover ul.icons li {
  transform: translateY(0);
  opacity: 1;
}

.team-three-item .main-image:hover ul.icons li:nth-child(1) {
  transition-delay: 0.1s;
}

.team-three-item .main-image:hover ul.icons li:nth-child(2) {
  transition-delay: 0.2s;
}

.team-three-item .main-image:hover ul.icons li:nth-child(3) {
  transition-delay: 0.3s;
}

.team-three-item .main-image:hover ul.icons li:nth-child(4) {
  transition-delay: 0.4s;
}

.team-three-item .main-image:hover ul.icons li:nth-child(5) {
  transition-delay: 0.5s;
}

.team-three-item .main-image:hover ul.icons li:nth-child(6) {
  transition-delay: 0.6s;
}

.team-three-item .info {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
}

.contact-three-hr {
  margin: 40px 0;
}

.contact-three-icons .icon-item {
  display: flex;
  align-items: center;
  justify-content: start;
  gap: 1rem;
  margin-bottom: 2.5rem;
}

.contact-three-icons .icon-item:last-child {
  margin-bottom: 0;
}

.contact-three-icons .icon-item .icon {
  min-width: 80px;
  min-height: 80px;
  border-radius: 50%;
  background: var(--theme);
  display: flex;
  align-items: center;
  justify-content: center;
}

.contact-three-icons .icon-item .text h3 {
  margin-bottom: 0.5rem;
}

.ta-blog-three {
  overflow: hidden;
  margin: 15px 15px 0px 15px;
  margin-top: 15px;
  border-radius: 20px;
}

.ta-blog-three p.sub-title {
  border: 1px solid rgb(from #fff r g b/10%);
}

.ta-blog-grid-03 {
  position: relative;
  overflow: hidden;
}

.ta-blog-grid-03 .news-thumb {
  position: relative;
  overflow: hidden;
  border-radius: 10px;
}

.ta-blog-grid-03 .news-thumb .news-thumb-meta .thumb-cat {
  position: absolute;
  top: 30px;
  left: 30px;
  z-index: 1;
  border-radius: 16px;
  background: var(--white);
  color: var(--header);
  box-shadow: var(--box-shadow);
  padding: 8px 18px;
}

.ta-blog-grid-03 .news-description {
  padding-top: 30px;
  border-top: transparent;
}

.ta-blog-grid-03 .news-description .news-top-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin-bottom: 10px;
  font-weight: normal;
  font-size: 16px;
  gap: 5px;
  position: relative;
  z-index: 1;
}

.ta-blog-grid-03 .news-description .news-top-meta .post_meta {
  margin-right: 15px;
}

.ta-blog-grid-03 .news-description .news-top-meta .post_meta .entry-comments a,
.ta-blog-grid-03 .news-description .news-top-meta .post_meta .entry-comments span,
.ta-blog-grid-03 .news-description .news-top-meta .post_meta .author-thumb a,
.ta-blog-grid-03 .news-description .news-top-meta .post_meta .author-thumb span {
  color: var(--white);
}

.ta-blog-grid-03 .news-description .news-top-meta .post_meta .entry-comments i,
.ta-blog-grid-03 .news-description .news-top-meta .post_meta .author-thumb i {
  color: var(--white) !important;
}

.ta-blog-grid-03 .news-description .news-top-meta .post-author .author-thumb {
  display: flex;
  align-items: center;
}

.ta-blog-grid-03 .news-description .news-top-meta .post-author .author-thumb .post-author-icon {
  margin-right: 8px;
  color: var(--webex-primary-color2);
}

.ta-blog-grid-03 .news-description .news-top-meta .post-author .author-thumb .author-thumb .note {
  margin-right: 5px;
}

.ta-blog-grid-03 .news-description .header-md a {
  color: var(--white);
}

.ta-blog-grid-03 .news-description .read-more-button {
  margin-top: 15px;
  position: relative;
  z-index: 1;
  color: var(--white);
}

.ta-blog-grid-03 .news-description .read-more-button a {
  position: relative;
  display: inline-block;
  line-height: 1;
  color: var(--white);
  font-weight: 700;
}

.ta-blog-grid-03 .news-description .read-more-button a i {
  transform: rotate(90deg);
  font-size: 16px;
  margin-left: 0.2rem;
}

.ta-accordion-three-left {
  position: relative;
}

.ta-accordion-three-left .shape {
  position: absolute;
  bottom: -50%;
  right: 20%;
  animation: spinner 10s linear infinite;
}

.ta-fac-fact-two-wrapper {
  border-radius: 20px;
}

.ta-fac-fact-two-wrapper .count-wrapper {
  display: flex;
  align-items: baseline;
  flex-direction: row;
  justify-content: center;
  gap: 1rem;
}

.ta-fac-fact-two-wrapper .count {
  display: flex;
  justify-content: start;
  align-items: end;
}

.ta-fac-fact-two-wrapper .count .suffix,
.ta-fac-fact-two-wrapper .count .header-xxl span span {
  font-size: 50px;
  line-height: 60px;
  font-family: var(--header-font);
  font-weight: 900;
  color: var(--header);
}

@media (max-width: 991px) {
  .ta-fac-fact-two-wrapper {
    padding: 20px;
  }
}

/* ===== - blog-grid =====*/
.ta-blog-grid-01 {
  position: relative;
  overflow: hidden;
}

.ta-blog-grid-01 .news-thumb {
  position: relative;
  overflow: hidden;
  border-radius: 10px;
}

.ta-blog-grid-01 .news-thumb .news-thumb-meta {
  position: absolute;
  top: 30px;
  left: 30px;
  z-index: 1;
  border-radius: 16px;
  background: var(--white);
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 0;
  width: 60px;
  height: 60px;
}

.ta-blog-grid-01 .news-thumb .news-thumb-meta .thumb-date {
  font-weight: 900;
  margin-bottom: -6px;
}

.ta-blog-grid-01 .news-thumb .news-thumb-meta span {
  text-align: center;
  color: var(--header);
  font-weight: 600;
}

.ta-blog-grid-01 .news-description {
  padding-top: 30px;
  border-top: transparent;
}

.ta-blog-grid-01 .news-description .news-top-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin-bottom: 10px;
  font-weight: normal;
  font-size: 16px;
  gap: 5px;
  position: relative;
  z-index: 1;
}

.ta-blog-grid-01 .news-description .news-top-meta .post_meta {
  margin-right: 15px;
}

.ta-blog-grid-01 .news-description .news-top-meta .post_meta .entry-comments a,
.ta-blog-grid-01 .news-description .news-top-meta .post_meta .entry-comments span,
.ta-blog-grid-01 .news-description .news-top-meta .post_meta .author-thumb a,
.ta-blog-grid-01 .news-description .news-top-meta .post_meta .author-thumb span {
  color: var(--text);
}

.ta-blog-grid-01 .news-description .news-top-meta .post_meta .entry-comments i,
.ta-blog-grid-01 .news-description .news-top-meta .post_meta .author-thumb i {
  color: var(--theme) !important;
}

.ta-blog-grid-01 .news-description .news-top-meta .post-author .author-thumb {
  display: flex;
  align-items: center;
}

.ta-blog-grid-01 .news-description .news-top-meta .post-author .author-thumb .post-author-icon {
  margin-right: 8px;
  color: var(--webex-primary-color2);
}

.ta-blog-grid-01 .news-description .news-top-meta .post-author .author-thumb .author-thumb .note {
  margin-right: 5px;
}

.ta-blog-grid-01 .news-description .post-excerpt {
  margin-top: 15px;
  position: relative;
  z-index: 1;
}

.ta-blog-grid-01 .news-description .read-more-button {
  margin-top: 15px;
  position: relative;
  z-index: 1;
  color: var(--black);
}

.ta-blog-grid-01 .news-description .read-more-button a {
  position: relative;
  display: inline-block;
  line-height: 1;
  color: var(--black);
  font-weight: 700;
}

.ta-blog-grid-01 .news-description .read-more-button a i {
  transform: rotate(90deg);
  font-size: 16px;
  margin-left: 0.2rem;
}

/* ===== - blog-standard =====*/
.ta-blog-standard {
  border-radius: 20px;
}

.ta-blog-standard .blog-thumb img {
  width: 100%;
  height: auto;
  -o-object-fit: cover;
  object-fit: cover;
}

/*===== pagination ======*/
.pagination-wrapper {
  text-align: center;
  margin-top: 76px;
}

@media (max-width: 991px) {
  .pagination-wrapper {
    text-align: left;
    margin: 40px 0;
    display: flex;
    align-items: center;
    justify-content: center;
  }
}

.pagination-wrapper .pg-pagination {
  display: inline-block;
  overflow: hidden;
  list-style-type: none;
  text-align: center;
}

.pagination-wrapper .pg-pagination li {
  float: left;
  margin-right: 10px;
}

@media (max-width: 767px) {
  .pagination-wrapper .pg-pagination li {
    margin-right: 5px;
  }
}

.pagination-wrapper .pg-pagination li:last-child {
  margin-right: 0;
}

.pagination-wrapper .pg-pagination li a {
  background-color: transparent;
  width: 56px;
  height: 56px;
  line-height: 50px;
  font-size: 16px;
  font-weight: 600;
  color: var(--header);
  background: #F5F5F7;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
}

@media (max-width: 991px) {
  .pagination-wrapper .pg-pagination li a {
    width: 40px;
    height: 40px;
    line-height: 40px;
    font-size: 15px;
    }
}

.pagination-wrapper .pg-pagination .active a,
.pagination-wrapper .pg-pagination li a:hover {
  background: var(--theme);
  border-color: var(--border);
  color: var(--white);
}

.pagination-wrapper .pg-pagination .fi:before {
  font-size: 15px;
}

.pagination-wrapper-left {
  text-align: left;
}

.pagination-wrapper-right {
  text-align: right;
}

@media screen and (min-width: 1200px) {
  .pagination-wrapper-right {
    padding-right: 50px;
  }
}

@media (max-width: 991px) {
  .pagination-wrapper-right {
    margin-top: 45px;
    text-align: left;
  }
}

/*===== - blog-single =====*/
.ta-blog-inner .blog-thumb {
  border-radius: 20px;
}

.ta-blog-inner .blog-thumb img {
  width: 100%;
  height: 100%;
  display: block;
  -o-object-fit: cover;
  object-fit: cover;
}

.ta-blog-inner .meta-infos {
  display: flex;
  gap: 30px;
  margin-bottom: 15px;
}

.ta-blog-inner .meta-infos .date i,
.ta-blog-inner .meta-infos .author i,
.ta-blog-inner .meta-infos .comment i {
  color: var(--theme);
  margin-right: 5px;
}

@media (min-width: 1200px) {
  .ta-blog-inner .title {
    margin-right: 100px;
  }
}

.ta-blog-inner blockquote {
  padding: 30px;
  background: var(--white);
  border-radius: 5px;
  border-left: 5px solid var(--theme);
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.ta-blog-inner blockquote p {
  color: var(--header);
}

.ta-blog-inner blockquote span {
  line-height: 30px;
  font-weight: 600;
  font-size: 19px;
  color: var(--theme);
}

.ta-blog-inner ul.feature {
  display: flex;
  gap: 15px;
  flex-direction: column;
}

.ta-blog-inner ul.feature li i {
  color: var(--theme);
  margin-right: 15px;
}

.ta-blog-inner .divider {
  border: none;
  border-top: 1px solid var(--border);
}

.ta-blog-single-tags,
.ta-blog-single-share {
  display: flex;
  gap: 14px;
  flex-direction: column;
}

.ta-blog-single-share .icon {
  display: flex;
  gap: 8px;
  justify-content: space-between;
}

@media (max-width: 767px) {
  .ta-blog-single-share .icon {
    justify-content: flex-start;
  }
}

.ta-blog-single-share .icon a i {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: var(--theme);
  color: var(--white);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
}

.ta-blog-single-share .icon a i:hover {
  background: var(--header);
}

.ta-blog-single-tags .items li {
  position: relative;
  margin-right: 20px;
  display: inline-block;
}

.ta-blog-single-tags .items li::before {
  content: "";
  position: absolute;
  bottom: 5px;
  right: -15px;
  width: 5px;
  height: 5px;
  background: var(--text);
  border-radius: 50%;
  z-index: -1;
}

.ta-blog-single-tags .items li:last-child::before {
  display: none;
}

.ta-blog-single-comment-form .header {
  margin-bottom: 41px;
}

@media (max-width: 991px) {
  .ta-blog-single-comment-form .header {
    margin-bottom: 30px;
  }
}

.ta-blog-single-comment-form .comment-form button {
  padding: 20px 40px;
  border: none;
  font-family: var(--header);
  border-radius: 5px;
  margin-top: 15px;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--white);
  background: var(--theme);
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
}

.ta-blog-single-comment-form .comment-form button:hover {
  background: var(--header);
}

/* ===== - 404 =====*/
.ta-404 {
  position: relative;
  background: var(--theme-2);
  border-radius: 30px;
  margin: 0px 30px 0px 30px;
}

@media (max-width: 1199px) {
  .ta-404 {
    margin: 15px;
  }
}

.ta-404-content {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  gap: 20px;
}

.ta-404-content h1 {
  font-size: 190px;
  color: var(--header);
  font-weight: 900;
  font-family: var(--header-font);
  line-height: 140px;
  text-align: center;
  font-weight: bold;
}

.ta-404-content h1 span {
  color: var(--theme);
}

@media (max-width: 991px) {
  .ta-404-content h1 {
    font-size: 62px;
    line-height: 42px;
  }
}

@media (max-width: 767px) {
  .ta-404-content h1 {
    font-size: 38px;
    line-height: 30px;
  }
}

.ta-404-content h2 {
  font-size: 57px;
  color: var(--header);
  font-weight: 900;
  font-family: var(--header-font);
  line-height: 63px;
  text-align: center;
}

@media (max-width: 991px) {
  .ta-404-content h2 {
    font-size: 46px;
    line-height: 42px;
  }
}

@media (max-width: 767px) {
  .ta-404-content h2 {
    font-size: 28px;
    line-height: 30px;
  }
}

/*===== - service =====*/
.ta-service-four-item {
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
  gap: 1.5rem;
  flex-direction: column;
  background: var(--white);
  border-radius: 20px;
  padding: 40px 30px;
  align-items: unset;
}

@media (max-width: 767px) {
  .ta-service-four-item {
    padding: 30px 20px;
  }
}

.ta-service-four-item .icon {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.ta-service-four-item .icon .img {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 80px;
  width: 80px;
  background: var(--transparent);
  border-radius: 50%;
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
}

.ta-service-four-item .icon .img img {
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
}

.ta-service-four-item:hover {
  transform: translateY(5px);
}

.ta-service-four-item:hover .icon .img img {
  transform: rotateY(180deg) scale(1.1);
}

.ta-service-four-item:hover .arrow svg path {
  stroke: var(--theme);
}

.ta-service-four-item:hover .ser-btn i {
  transform: rotate(0);
  transition: 0.1s all ease;
  font-size: 17px;
}

.ta-service-four-item .ser-btn {
  font-weight: 600;
  text-align: left;
}

.ta-service-four-item .ser-btn i {
  margin-left: 5px;
  transform: rotate(-30deg);
}

/*===== - testimonial =====*/
.testi-one-item {
  background: var(--white);
  border-radius: 20px;
  padding: 56px 30px;
  display: flex;
  gap: 1.5rem;
}

@media (max-width: 499px) {
  .testi-one-item {
    flex-direction: column;
  }
}

.testi-one-item .testi-img {
  position: relative;
}

.testi-one-item .testi-img img {
  min-height: 120px;
  min-width: 120px;
}

.testi-one-item .testi-img i {
  position: absolute;
  left: 50%;
  top: 33%;
  transform: translate(-50%, 50%);
  font-size: 50px;
  z-index: 2;
}

@media (max-width: 767px) {
  .testi-one-item .testi-img i {
    display: none;
  }
}

.testi-one-item .testi-content {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.testi-one-item .testi-content .rating i {
  color: orange;
}

/*===== - project =====*/
.ta-project-page-item {
  position: relative;
  overflow: hidden;
  border-radius: 30px;
}

.ta-project-page-item .text-grp {
  position: absolute;
  padding: 30px;
  bottom: 0;
  left: 0;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  transform: translateY(1000px) scale(0.5);
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
  opacity: 0;
  z-index: 5;
}

.ta-project-page-item .text-grp p,
.ta-project-page-item .text-grp h3 {
  color: var(--white);
}

.ta-project-page-item::before {
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  background: linear-gradient(rgb(from #082f49 r g b/1%), rgb(from #082f49 r g b/90%));
  z-index: 2;
  transform: translateY(100%);
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
}

.ta-project-page-item:hover .text-grp {
  transform: translateY(0) scale(1);
  opacity: 1;
}

.ta-project-page-item:hover::before {
  transform: translateY(0);
}

/*===== - appointment =====*/
.ta-appointment-img {
  position: relative;
}

.ta-appointment-img .play-icon {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}

.ta-appointment-img .play-icon a {
  min-width: 44px;
  min-height: 44px;
  background: var(--theme);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--white);
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
}

.ta-appointment-img .play-icon a:hover {
  background: var(--header);
  color: var(--white);
}

.ta-appointment-img .play-icon a {
  min-height: 58px;
  min-width: 58px;
}

.contact-page-one {
  background: var(--white);
  border-radius: 20px;
  padding: 40px;
}

@media (max-width: 1399px) {
  .contact-page-one {
    padding: 30px;
  }
}

@media (max-width: 991px) {
  .contact-page-one {
    padding: 20px;
  }
}

@media (max-width: 767px) {
  .contact-page-one {
    padding: 15px;
  }
}

.contact-page-one input[type=text],
.contact-page-one input[type=tel],
.contact-page-one input[type=email],
.contact-page-one input[type=date],
.contact-page-one select,
.contact-page-one option,
.contact-page-one textarea {
  background: var(--body);
  color: var(--header);
}

.contact-page-one input[type=text]::-moz-placeholder,
.contact-page-one input[type=tel]::-moz-placeholder,
.contact-page-one input[type=email]::-moz-placeholder,
.contact-page-one input[type=date]::-moz-placeholder,
.contact-page-one select::-moz-placeholder,
.contact-page-one option::-moz-placeholder,
.contact-page-one textarea::-moz-placeholder {
  color: var(--text);
}

.contact-page-one input[type=text]::placeholder,
.contact-page-one input[type=tel]::placeholder,
.contact-page-one input[type=email]::placeholder,
.contact-page-one input[type=date]::placeholder,
.contact-page-one select::placeholder,
.contact-page-one option::placeholder,
.contact-page-one textarea::placeholder {
  color: var(--text);
}

/*===== - contact =====*/
.contact-info-item {
  background: var(--header);
  padding: 40px;
  border-radius: 20px;
  display: flex;
  gap: 1rem;
  align-items: center;
  position: relative;
}

@media (max-width: 575px) {
  .contact-info-item {
    padding: 20px;
  }
}

.contact-info-item .icon {
  min-width: 44px;
  min-height: 44px;
  background: var(--theme);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--white);
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
}

.contact-info-item .icon:hover {
  background: var(--header);
  color: var(--white);
}

.contact-info-item .icon {
  min-height: 68px;
  min-width: 68px;
  border-radius: 10px;
}

.contact-info-item .icon i {
  font-size: 28px;
}

.contact-info-item .content {
  display: flex;
  flex-direction: column;
}

.contact-info-item .shape {
  position: absolute;
  top: 30%;
  right: 0%;
  transform: translateX(-50%);
}

.contact-info-item .shape i {
  font-size: 65px;
  color: rgb(from #fff r g b/10%);
}

.ta-appointment-img {
  position: relative;
}

.ta-appointment-img .play-icon {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}

.ta-appointment-img .play-icon a {
  min-width: 44px;
  min-height: 44px;
  background: var(--theme);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--white);
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
}

.ta-appointment-img .play-icon a:hover {
  background: var(--header);
  color: var(--white);
}

.ta-appointment-img .play-icon a {
  min-height: 58px;
  min-width: 58px;
}

.contact-page-one {
  background: var(--white);
  border-radius: 20px;
  padding: 40px;
}

@media (max-width: 1399px) {
  .contact-page-one {
    padding: 30px;
  }
}

@media (max-width: 991px) {
  .contact-page-one {
    padding: 20px;
  }
}

@media (max-width: 767px) {
  .contact-page-one {
    padding: 15px;
  }
}

.contact-page-one input[type=text],
.contact-page-one input[type=tel],
.contact-page-one input[type=email],
.contact-page-one input[type=date],
.contact-page-one select,
.contact-page-one option,
.contact-page-one textarea {
  background: var(--body);
  color: var(--header);
}

.contact-page-one input[type=text]::-moz-placeholder,
.contact-page-one input[type=tel]::-moz-placeholder,
.contact-page-one input[type=email]::-moz-placeholder,
.contact-page-one input[type=date]::-moz-placeholder,
.contact-page-one select::-moz-placeholder,
.contact-page-one option::-moz-placeholder,
.contact-page-one textarea::-moz-placeholder {
  color: var(--text);
}

.contact-page-one input[type=text]::placeholder,
.contact-page-one input[type=tel]::placeholder,
.contact-page-one input[type=email]::placeholder,
.contact-page-one input[type=date]::placeholder,
.contact-page-one select::placeholder,
.contact-page-one option::placeholder,
.contact-page-one textarea::placeholder {
  color: var(--text);
}

.ta-map-one-wrap iframe {
  width: 100%;
  border-radius: 20px;
}

/* ===== - service-details =====*/
.service-single-thumb {
  position: relative;
}

.service-single-thumb .icon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  min-width: 44px;
  min-height: 44px;
  background: var(--theme);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--white);
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
}

.service-single-thumb .icon:hover {
  background: var(--header);
  color: var(--white);
}

.service-single-thumb .icon {
  min-height: 80px;
  min-width: 80px;
}

.service-single-thumb .icon i {
  font-size: 30px;
}

.ser-single-feaure li {
  color: var(--header);
  font-weight: 600;
  margin-bottom: 16px;
}

.ser-single-feaure li:last-child {
  margin-bottom: 0;
}

.ser-single-feaure li i {
  color: var(--theme);
  margin-right: 6px;
  font-size: 19px;
}

.ser-single-form {
  padding: 30px;
}

.ser-single-form input,
.ser-single-form textarea {
  background: var(--body);
}

.ser-single-open-hours {
  padding: 30px;
}

.ser-single-open-hours li {
  margin-bottom: 16px;
}

.ser-single-open-hours li:last-child {
  margin-bottom: 0;
}

.ser-single-open-hours li {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.ser-single-open-hours li .date {
  font-weight: 600;
  color: var(--header);
}

/* ===== - project-details =====*/
.service-project-thumb {
  position: relative;
}

.service-project-thumb .icon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  min-width: 44px;
  min-height: 44px;
  background: var(--theme);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--white);
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
}

.service-project-thumb .icon:hover {
  background: var(--header);
  color: var(--white);
}

.service-project-thumb .icon {
  min-height: 80px;
  min-width: 80px;
}

.service-project-thumb .icon i {
  font-size: 30px;
}

.ser-single-feaure li {
  color: var(--header);
  font-weight: 600;
  margin-bottom: 16px;
}

.ser-single-feaure li:last-child {
  margin-bottom: 0;
}

.ser-single-feaure li i {
  color: var(--theme);
  margin-right: 6px;
  font-size: 19px;
}

.ser-single-form {
  padding: 30px;
}

.ser-single-form input,
.ser-single-form textarea {
  background: var(--body);
}

.ser-single-project-info {
  padding: 30px;
}

.ser-single-project-info li {
  margin-bottom: 16px;
}

.ser-single-project-info li:last-child {
  margin-bottom: 0;
}

.ser-single-project-info li {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.ser-single-project-info li .date {
  font-weight: 600;
  color: var(--header);
}

.ser-single-project-info li i {
  color: orange;
}

.ser-single-open-hours {
  padding: 30px;
}

.ser-single-open-hours li {
  margin-bottom: 16px;
}

.ser-single-open-hours li:last-child {
  margin-bottom: 0;
}

.ser-single-open-hours li {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.ser-single-open-hours li .date {
  font-weight: 600;
  color: var(--header);
}

/*===== - team-deails ======*/
.ser-team-info {
  max-width: 450px;
  padding: 30px 0;
}

.ser-team-info li {
  margin-bottom: 16px;
}

.ser-team-info li:last-child {
  margin-bottom: 0;
}

.ser-team-info li {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.ser-team-info li .info {
  font-weight: 700;
  color: var(--header);
}

.team-single-social-icon {
  display: flex;
  gap: 10px;
}

.team-single-social-icon li a {
  min-width: 44px;
  min-height: 44px;
  background: var(--theme);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--white);
  transition: all 0.4s ease-in-out;
  -webkit-transition: all 0.4s ease-in-out;
}

.team-single-social-icon li a:hover {
  background: var(--header);
  color: var(--white);
}

.team-single-social-icon li a {
  min-width: 48px;
  min-height: 48px;
}

/*===== - medihelix: nahrada inline stylu (CSP style-src 'self') =====*/
.mh-logo-img {
  height: 60px;
  width: auto;
}

.ta-hero-one.mh-hero-bg {
  background: url("../images/index/hero/bg.png");
}

.ta-testimonial-one.mh-testi-bg {
  background: url("../images/index/testimonial/testi-bg.png");
}

.ta-breadcrumb.mh-breadcrumb-bg {
  background: linear-gradient(120deg, #082f49 0%, #0d5c8f 55%, #0d94e6 100%);
}

/* Aktivni polozka menu — sablona zadny styl pro aktivni stranku nema,
   zrcadli se tedy hover (podtrzeni + brand barva). */
.nav-menu>li>a.is-active {
  color: var(--theme);
}

.nav-menu>li>a.is-active::after {
  width: calc(100% - 30px);
}

.mob-nav>li>.mob-row>a.is-active {
  color: var(--theme);
}

/* Odznak dodavatele v rohu obrazku katalogove karty.
   .katalog-img uz ma overflow:hidden, proto potrebuje position:relative. */
.katalog-item .katalog-img {
  position: relative;
}

.katalog-item .katalog-znacka {
  position: absolute;
  right: 12px;
  bottom: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  /* 84 px, protoze loga dodavatelu jsou ctvercova 200x200 se slovnou znackou
     uprostred — v mensim odznaku uz je napis necitelny. */
  width: 84px;
  height: 84px;
  padding: 10px;
  border-radius: 10px;
  background: var(--white);
  border: 1px solid #d5e3f5;
  box-shadow: 0 4px 12px rgba(18, 48, 107, 0.12);
}

.katalog-item .katalog-znacka img {
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

/* Zoom obrazku na hoveru se odznaku netyka */
.katalog-item:hover .katalog-znacka img {
  transform: none;
}

/* Kompaktni breadcrumb lista.
   Sablona ma .ta-breadcrumb-content min-height 400px (315/245 na mensich),
   coz delalo z listy polovinu obrazovky. Nahrazeno tesnym paddingem;
   pravidlo je az tady na konci, takze prebiji i media queries vyse. */
.ta-breadcrumb .ta-breadcrumb-content {
  min-height: 0;
  padding: 28px 0;
}

.ta-breadcrumb h1,
.ta-breadcrumb h2 {
  font-size: 30px;
  line-height: 1.25;
  font-weight: 900;
  margin-bottom: 6px;
}

/* Utilita pro tesny odstup shora (sablona ma jen skoky po 120/60 px).
   Puvodne 30 px, klient 2026-08-07 vyzadal 40 px — bylo to prilis tesne. */
.pt-40 {
  padding-top: 40px;
}

/* Nadpisy sekci globalne 30 px misto 46 px (prani klienta).
   Media queries sablony mely 32/26 px — pri zakladu 30 px by byl tablet
   VETSI nez desktop, proto srovnano dolu. */
.header-xl {
  font-size: 30px;
  line-height: 1.3;
}

@media (max-width: 991px) {
  .header-xl {
    font-size: 28px;
    line-height: 1.3;
  }
}

@media (max-width: 767px) {
  .header-xl {
    font-size: 26px;
    line-height: 1.3;
  }
}

/* Sablona ma utility jen po 60/120 px; 40 px je novy standard webu. */
.pb-40 {
  padding-bottom: 40px;
}

/* Popisek pruhu partneru je nadpis bloku -> 30 px jako ostatni nadpisy.
   Letter-spacing stazen z 0.08 na 0.04em, aby se text pri teto velikosti
   neroztahl pres pul obrazovky. */
.ta-partners-one-wrap .partners-label {
  font-size: 30px;
  line-height: 1.3;
  letter-spacing: 0.04em;
  margin-bottom: 30px;
}

/* Nadpisy sekci: vaha 900 (jako v sablone). Mezitim byly na 700, klient chtel
   2026-08-07 vratit puvodni tucnejsi rez. Nunito je self-hostovany vc. 900.
   Barva firemni modra misto tmave — sjednoceno s popiskem nad nadpisem
   (.sub-title / .partners-label), ktery uz modry byl. */
.header-xl {
  font-weight: 900;
  color: var(--theme);
}

/* Popisek pruhu partneru je nadpis bloku -> stejny font i rez jako ostatni
   nadpisy. Sablona ho mela jako <p>, tedy Mulish 600. */
.ta-partners-one-wrap .partners-label {
  font-family: var(--header-font);
  font-weight: 900;
}

/* Nahledy aktualit: pomer 16/9 jako na /aktuality a v detailu clanku (style.css).
   Sablona pro .news-thumb img zadne pravidlo nema, takze obrazek ridi jen
   bootstrap .img-fluid { height: auto } -> kazda fotka ma jinou vysku a mrizka
   se rozpadne. Kontejner s pevnym pomerem + cover to ustrihne bez ohledu na to,
   co klient nahraje z admina (image pipeline kostry pomer stran nemeni). */
.ta-blog-grid-01 .news-thumb {
  aspect-ratio: 16 / 9;
  background: var(--body);
}

.ta-blog-grid-01 .news-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* Telo clanku je HTML z admina (p, ul, ol, strong, h2/h3). sablona ma ale
   globalni reset `p { margin: 0 }` a `ul { list-style: none; padding: 0 }`,
   takze odstavce splynou v jeden blok a odrazky prestanou byt odrazkami.
   Vracime typografii JEN uvnitr clanku, at se reset jinde nerozbije. */
.article-detail__body p,
.article-detail__body ul,
.article-detail__body ol,
.article-detail__body blockquote {
  margin-bottom: 20px;
}

.article-detail__body ul,
.article-detail__body ol {
  padding-left: 22px;
}

.article-detail__body ul { list-style: disc; }
.article-detail__body ol { list-style: decimal; }

.article-detail__body li {
  margin-bottom: 8px;
}

.article-detail__body h2,
.article-detail__body h3 {
  margin-top: 30px;
  margin-bottom: 12px;
}

.article-detail__body > *:last-child {
  margin-bottom: 0;
}

/* Detail clanku: nadpis, obrazek i text jdou pres CELOU sirku kontejneru.
   Kostra drzi na .article-detail__body `max-width: 672px` (uzky ctenarsky
   sloupec), coz pod sirokym obrazkem vypadalo jako text prilepeny vlevo.
   Plati pro vsechny clanky — je to sablona, ne uprava jednoho prispevku. */
.article-detail__body {
  max-width: none;
}

/* Drobeckova navigace v detailu clanku. Bootstrap ma vlastni `.breadcrumb`
   s `display: flex`, ktere prebiji kostru — a flex zahodi mezery mezi prvky,
   takze polozky se slepi ("Domu>Aktuality>Nazev"). Mezeru vraci `gap`,
   ne padding, at nezalezi na poradi separatoru. */
.breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px;
}

.breadcrumb [aria-current="page"] {
  font-weight: 500;
}

/*===== - medihelix: kontaktni modal =====*/
/* Nativni <dialog>. Prohlizec mu dava vlastni defaulty (border, padding,
   margin auto) — prepisujeme je. ::backdrop je pseudoelement dialogu, nejde
   stylovat pres tridu. */
.mh-modal {
  width: min(560px, calc(100vw - 40px));
  max-height: calc(100vh - 60px);
  padding: 40px;
  border: 0;
  border-radius: 12px;
  background: var(--white);
  color: var(--text);
  overflow-y: auto;
}

.mh-modal::backdrop {
  background: rgba(8, 47, 73, 0.55);
}

.mh-modal__dismiss {
  margin: 0;
}

.mh-modal__close {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--body);
  color: var(--header);
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
  transition: all 0.3s ease-in-out;
}

.mh-modal__close:hover {
  background: var(--theme);
  color: var(--white);
}

.mh-modal__title {
  margin: 0 0 8px;
}

.mh-modal__lead {
  margin: 0 0 30px;
}

/* Dvousloupcove radky se na uzkem displeji slozi pod sebe. */
.mh-form__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 20px;
}

@media (max-width: 575px) {
  .mh-form__row {
    grid-template-columns: 1fr;
  }

  .mh-modal {
    padding: 30px 22px;
  }
}

.mh-form__field {
  margin-bottom: 20px;
}

.mh-form__field label {
  display: block;
  margin-bottom: 6px;
  font-family: var(--header-font);
  font-weight: 600;
  font-size: 14px;
  color: var(--header);
}

.mh-form__field input,
.mh-form__field textarea {
  width: 100%;
  padding: 12px 16px;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  background: var(--white);
  color: var(--header);
  font-family: inherit;
  font-size: 15px;
}

.mh-form__field textarea {
  resize: vertical;
}

.mh-form__field input:focus,
.mh-form__field textarea:focus {
  outline: 2px solid var(--theme);
  outline-offset: 1px;
  border-color: var(--theme);
}

.mh-form__submit {
  width: 100%;
  justify-content: center;
}

/* Nazev feature karty ma dva rezy na dvou radcich: kategorie lehci (700),
   znacka tucna (900). `display: block` misto <br>, aby se to dalo ridit z CSS
   a nezustal zalom i tam, kde by se hodil jiny layout. */
/* ⚠ `font-size` je tu POVINNY: sablona ma globalni `span { font-size: 16px }`,
   ktere je specifictejsi nez dedeni z .header-sm (20 px) — bez toho by nadpis
   karty tise zdrobnel na velikost bezneho textu. */
.ta-feature-one-item .header-sm .mh-feat-kat,
.ta-feature-one-item .header-sm .mh-feat-znacka {
  display: block;
  font-size: 23px;
  line-height: 1.4;
  color: var(--theme);
}

/* Popisny radek je mensi nez znacka — klientovy texty jsou dlouhe a na 23 px
   se lamaly na tri radky. Znacka zustava na 23 px, at je porad dominantni. */
.ta-feature-one-item .header-sm .mh-feat-kat {
  font-size: 19px;
  font-weight: 700;
}

.ta-feature-one-item .header-sm .mh-feat-znacka {
  font-weight: 900;
}

/* Karta s fotkou misto ikony (.mh-feat-foto).
   Fotka NENI pruhledna — ma zapeceny bily podklad, takze modre pozadi jako
   u ikony by pod ni jen svitilo po okrajich. Misto vyplne proto modra linka
   se zaoblenymi rohy. */
/* Sablona ma na karte padding 40px shora, ale jen 30px po stranach — s fotkou
   je ten rozdil videt. Srovnano na 30, at je odstup kolem fotky stejny. */
.ta-feature-one-item.mh-feat-foto {
  padding-top: 30px;
  /* Bootstrap sloupec je diky `align-items: stretch` uz na plnou vysku radku —
     karta uvnitr ale ne. Bez toho konci kazda karta tam, kde skonci jeji text,
     a spodni hrany se rozejdou podle delky popisku. */
  height: 100%;
}

.ta-feature-one-item.mh-feat-foto .icon {
  align-items: center;
}

/* Sipka dostane vlastni sloupec pevne sirky a v nem se vycentruje — jinak by
   se jen prilepila k pravemu okraji a s ruzne vysokou fotkou skakala.
   Sloupec je uzky zamerne: co mu ubereme, to zbyde na fotku. */
.ta-feature-one-item.mh-feat-foto .icon .arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 28px;
  align-self: stretch;
}

.ta-feature-one-item.mh-feat-foto .icon .img {
  flex: 1;
  width: auto;
  height: auto;
  aspect-ratio: 16 / 9;
  margin-right: 8px;
  padding: 0;
  border: 1px solid var(--theme);
  border-radius: 12px;
  background: var(--white);
  overflow: hidden;
}

.ta-feature-one-item.mh-feat-foto .icon .img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* Sablona ikonu na hover prevraci kolem osy Y — u fotky produktu nesmysl. */
.ta-feature-one-item.mh-feat-foto:hover .icon .img img {
  transform: none;
}

/* Obsahovy blok karty musi byt flex kolona, ktera vyplni zbytek vysky — jinak
   nema `margin-top: auto` na tlacitku o co se oprit a tlacitka by skakala
   podle delky popisku. */
.ta-feature-one-item .content {
  display: flex;
  flex-direction: column;
  flex: 1;
}

/* Tlacitko „Vice detailu" na feature karte. `margin-top: auto` ho pritlaci ke
   spodni hrane, takze tlacitka lici napric kartami i kdyz maji ruzne dlouhy
   popisek — karta je flex kolona a ma height 100 %. */
.ta-feature-one-item .mh-feat-cta {
  margin-top: auto;
  padding-top: 20px;
  display: flex;
  justify-content: center;
}

/* Tlacitko drzi sirku textu, ne cele karty — pres celou sirku pusobilo tezce. */
.ta-feature-one-item .mh-feat-cta .ta-button-01 {
  width: auto;
}

/*===== - medihelix: tmava barva tlacitek =====*/
/* Sablona pouziva na hover tlacitek a na tmave tlacitko v hlavicce cistou
   cernou (--black: #000). Klient si 2026-08-07 vyzadal misto ni firemni
   tmave modrou #075889 — cerna v modre palete pusobi cize.
   Token --black se ZAMERNE neprepisuje: pouziva se i na text a obrysy
   (napr. -webkit-text-stroke), kde ma cerna zustat. */
:root {
  --btn-dark: #075889;
}

.ta-button-01:hover {
  background-color: var(--btn-dark);
}

.ta-button-01:hover .button__icon-wrapper {
  color: var(--btn-dark);
}

.ta-button-02 {
  background-color: var(--btn-dark);
}

.ta-button-02 .button__icon-wrapper {
  color: var(--btn-dark);
}

/* Strídavé pozadi sekci. Sablona je ma vsechny pruhledne, takze splyvaji
   s podkladem stranky (#f0f9ff) — jemne svetlejsi odstin je oddeli, aniz by
   vznikl viditelny pruh.
   Sekce: distributori (i v katalogu), reference, aktuality. */
.ta-partners-one,
.ta-testimonial-one,
.ta-blog-one {
  background: #f9fdff;
}

/* Nahledy v paticce. Sablona ma pravidlo na `.blog-img`, ale markup pouziva
   `.thumb` — nikdy se tedy neuplatnilo a placeholder se kreslil ve sve
   vlastni velikosti. Rozmer 83x81 podle predlohy; `object-fit` hlida, ze
   klient nemusi resit pomer stran nahravaneho obrazku. */
.ta-footer-wrapper .footer-blog li .thumb {
  display: block;
  flex: 0 0 83px;
  width: 83px;
  height: 81px;
  border-radius: 10px;
  overflow: hidden;
}

.ta-footer-wrapper .footer-blog li .thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* ═══════════════════════════════════════════════════════════════════════════
   Opravy z frontend review (2026-08-08). Vse jen doplnuje nebo opravuje
   chybejici pravidla — vzhled se zamerne nemeni.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Fotka na detailu kategorie NEMELA jedine pravidlo a v markupu je width="800"
   bez .img-fluid. Globalni `img { max-width: 100% }` v projektu neni, takze
   obrazek pretekal svuj sloupec na KAZDEM viewportu (na 375 px o 457 px) —
   schovavalo to `html,body { overflow-x: hidden }`, proto se to vizualne
   nepoznalo. */
.mh-detail-foto img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 12px;
}

/* Modra --theme je pro PLOCHY. Jako bezne velky text (16 px/600) dava proti
   bile 3,28:1 a proti --body 3,08:1 — pod WCAG AA 4,5:1. Pro textove role
   proto tmavsi odstin te same barvy (5,0:1 na bile). Vizualne skoro shodne,
   kontrastne pruchozi. */
:root {
  --theme-text: #0a6ea9;
}

.nav-menu > li > a.is-active,
.mob-nav > li > .mob-row > a.is-active,
.katalog-item .katalog-link,
.footer-links li a:hover {
  color: var(--theme-text);
}

/* Formularova pole prisla `outline: none` o jediny indikator fokusu — zbyla
   1px linka. Specificita (0,2,1) prebijela i :focus-visible z kostry.
   `a` a `button` pritom outline korektne maji (main.css:3032). */
input[type="text"]:focus-visible,
input[type="email"]:focus-visible,
input[type="tel"]:focus-visible,
input[type="url"]:focus-visible,
input[type="password"]:focus-visible,
input[type="search"]:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 2px solid var(--theme-text);
  outline-offset: 2px;
}

/* Tlacitko „nahoru" je nove <button> (byl to <div>, tedy mimo focus order).
   Reset nativniho vzhledu, aby kulate tlacitko vypadalo presne jako driv. */
button.cloudflow-progress-wrap {
  padding: 0;
  border: none;
  background: transparent;
  -webkit-appearance: none;
  appearance: none;
}

/* Tlacitko „nahoru" melo z-index 9999999 proti draweru 999998, takze plavalo
   NAD otevrenou mobilni zasuvkou. Pri otevrenem draweru se schova. */
body.no-scroll .cloudflow-progress-wrap {
  display: none;
}

/* Odsazeni od spodni hrany respektuje home indikator na iPhonu (systemovy
   inset 34 px vs. nase 30 px — spodek tlacitka lezel v oblasti gesta). */
.cloudflow-progress-wrap {
  bottom: calc(30px + env(safe-area-inset-bottom, 0px));
}

/* Popisek pruhu dodavatelu je nadpisovy blok, plati pro nej 40px rytmus webu
   (mel natvrdo 30 px, tedy o 10 px min nez kazdy jiny nadpisovy blok). */
.ta-partners-one-wrap .partners-label {
  margin-bottom: 40px;
}

/* .header-sm melo v jednom pravidle DVE line-height (28px a 20px); vyhravala
   druha, takze dvouradkovy titulek clanku v paticce se dotykal sam sebe. */
@media (max-width: 767px) {
  .header-sm {
    line-height: 28px;
  }
}

/* `color: var(--body-font)` je nevalidni — --body-font je rodina pisma, ne
   barva, takze se deklarace zahodila a text v <div>/<label> spadl na cernou. */
html,
body {
  color: var(--text);
}

/* Nativni prvky (select, autofill, scrollbary) jinak dedi tema OS a v systemovem
   tmavem rezimu se vykresli tmave uvnitr sveteho designu. */
:root {
  color-scheme: light;
}

/* Modal a prihlasovaci stranka pocitaly vysku ze 100vh = LARGE viewport (bez
   adresniho radku). Na iOS pak spodek formulare vcetne odesilaciho tlacitka
   koncil mimo obraz. `dvh` bere aktualni vysku; stary prohlizec radek zahodi. */
.mh-modal {
  max-height: calc(100dvh - 60px);
}

/* Sdeleni u formularu, ktere zatim nemaji backend (vypisuje modal.js).
   Az se napoji na _lib/form.php, jde tohle pravidlo pryc spolu s nim. */
.mh-form-note {
  margin: 16px 0 0;
  padding: 12px 16px;
  border-radius: 8px;
  border: 1px solid var(--theme);
  background: var(--white);
  color: var(--header);
  font-size: 15px;
  line-height: 1.5;
}

/* Dotykove cile pod 44 px (--tap-min si projekt sam stanovil ve style.css
   jako MUST). Obe zaviraci tlacitka jsou pritom jediny vychod z komponenty. */
.mobile-drawer .mob-close,
.ta-footer-copyright .social-icon li a,
.mh-modal__close {
  min-width: 44px;
  min-height: 44px;
}

/* Bez teto media query bezi na homepage `spinner 10s linear infinite` donekonecna
   — auto-pohyblivy obsah podle WCAG 2.2.2 (uroven A) a problem pro uzivatele
   s vestibularni poruchou. Respektuje systemove nastaveni, nic nemeni ostatnim. */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* Ve forced-colors rezimu system prepise autorske `border-color` i `background`,
   takze prvky, jejichz tvar drzi jen vypln, ztraci obrys a pole ztraci fokus. */
@media (forced-colors: active) {
  :focus-visible {
    outline: 2px solid CanvasText;
    outline-offset: 2px;
  }

  .hamburger,
  .mobile-drawer .mob-close,
  .cloudflow-progress-wrap,
  .ta-partners-one-wrap .partner {
    border: 1px solid ButtonText;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   Produktova stranka (plexbio-trio) — prelozena brozura vyrobce.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Placeholder misto fotky. Az fotky dorazi, cely blok se nahradi za <img>
   a tahle pravidla muzou zustat — pouzijou se u dalsi produktove stranky. */
.mh-ph {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 16px;
  border: 2px dashed var(--theme);
  border-radius: 12px;
  background: var(--body);
  color: var(--theme-text);
  font-family: var(--body-font);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
}

.mh-ph--16-9 { aspect-ratio: 16 / 9; }
.mh-ph--4-3  { aspect-ratio: 4 / 3; }
.mh-ph--1-1  { aspect-ratio: 1 / 1; font-size: 12px; padding: 8px; }

/* Stridave pozadi sekci, aby sly tri bloky pod sebou rozeznat. */
.mh-sec-alt { background: #f9fdff; }

.mh-lead {
  font-size: 20px;
  font-weight: 600;
  color: var(--header);
  margin-bottom: 20px;
}

/* Odrazky s ikonou. Sablona seznam s check ikonou nema. */
.mh-facts {
  list-style: none;
  padding: 0;
  margin: 30px 0 0;
}

.mh-facts li {
  position: relative;
  padding-left: 30px;
  margin-bottom: 12px;
  color: var(--text);
}

.mh-facts li i {
  position: absolute;
  left: 0;
  top: 4px;
  color: var(--theme);
  font-size: 14px;
}

@media (min-width: 768px) {
  .mh-facts--2col {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    -webkit-column-gap: 30px;
    column-gap: 30px;
  }
}

/* Karta jednoho kroku (izolace / kvantifikace / PCR setup). Stejna vyska
   ve vsech trech sloupcich, at spodni hrany licuji. */
.mh-step {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 20px;
  border-radius: 12px;
  background: var(--white);
  box-shadow: 0 4px 16px rgba(18, 48, 107, 0.06);
}

.mh-step__body {
  padding-top: 20px;
}

.mh-step__note {
  color: var(--theme-text);
  font-weight: 600;
  margin-bottom: 12px;
}

/* Cislovany postup. Cisla kresli ::before, aby sla obarvit. */
.mh-flow {
  list-style: none;
  counter-reset: mh-flow;
  padding: 0;
  margin: 0;
}

.mh-flow li {
  counter-increment: mh-flow;
  position: relative;
  padding-left: 34px;
  margin-bottom: 10px;
  color: var(--text);
}

.mh-flow li::before {
  content: counter(mh-flow);
  position: absolute;
  left: 0;
  top: 0;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--theme);
  color: var(--white);
  font-size: 12px;
  font-weight: 700;
}

.mh-flow--big li {
  padding: 12px 12px 12px 46px;
  margin-bottom: 12px;
  border-radius: 10px;
  background: var(--white);
  border: 1px solid #d5e3f5;
  font-weight: 600;
  color: var(--header);
}

.mh-flow--big li::before {
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
}

.mh-insights {
  padding: 30px;
  border-radius: 12px;
  background: var(--white);
  border: 1px solid #d5e3f5;
}

.mh-insights .header-md {
  margin-bottom: 20px;
}

/* Mrizka typu vzorku. auto-fit, at se pri zuzeni prelije sama. */
/* Pevne 3 sloupce, at sest dlazdic vyjde 3+3 a ne 4+2. Pod 480 px 2 sloupce. */
.mh-tiles {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

@media (max-width: 479.98px) {
  .mh-tiles {
    grid-template-columns: repeat(2, 1fr);
  }
}

.mh-tile p {
  margin: 8px 0 0;
  font-size: 14px;
  font-weight: 600;
  color: var(--header);
  text-align: center;
}

.mh-tags {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.mh-tags li {
  padding: 8px 16px;
  border-radius: 999px;
  background: var(--theme);
  color: var(--white);
  font-size: 14px;
  font-weight: 600;
}

/* Tabulka se musi umet odscrollovat sama, at nerozhazi layout na uzkem
   displeji (sirsi obsah nez viewport jinak roztahne celou stranku). */
.mh-table-wrap {
  overflow-x: auto;
}

.mh-table {
  width: 100%;
  min-width: 520px;
  border-collapse: collapse;
  background: var(--white);
  border-radius: 12px;
  overflow: hidden;
}

.mh-table caption {
  caption-side: bottom;
  padding-top: 16px;
  font-size: 14px;
  line-height: 1.6;
  color: var(--text);
  text-align: left;
}

.mh-table th,
.mh-table td {
  padding: 12px 16px;
  border-bottom: 1px solid #d5e3f5;
  text-align: left;
  font-size: 15px;
}

.mh-table thead th {
  background: var(--header);
  color: var(--white);
  font-weight: 700;
}

.mh-table tbody th {
  color: var(--header);
  font-weight: 700;
  vertical-align: top;
}

.mh-table td {
  color: var(--text);
}

.mh-note {
  margin-top: 20px;
  font-size: 14px;
  line-height: 1.7;
  color: var(--text);
}

.mh-cta-box {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 30px;
  border-radius: 12px;
  background: var(--body);
}

.mh-cta-box p {
  margin: 0;
  font-size: 18px;
  font-weight: 600;
  color: var(--header);
}

/* Odstup odznaku sekce od nadpisu. Sablona ma na `.center-sub-main-header
   .sub-title` zkratku `margin: 0 auto`, ktera spodni odstup VYNULUJE — homepage
   si to kompenzovala tridou `mb-20` primo v markupu, ostatni stranky ne, takze
   odznak lepil na nadpis. Ted je to default a v markupu se nic pridavat nemusi. */
.center-sub-main-header .sub-title {
  margin-bottom: 20px;
}

/* Uzaviraci blok produktove stranky — cesta dal do katalogu.
   Gradient shodny s .mh-breadcrumb-bg, at to sedi do jazyka webu. */
.mh-outro {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 40px;
  align-items: center;
  padding: 50px;
  border-radius: 16px;
  background: linear-gradient(120deg, #082f49 0%, #0d5c8f 55%, #0d94e6 100%);
  color: var(--white);
}

@media (max-width: 991.98px) {
  .mh-outro {
    grid-template-columns: 1fr;
    gap: 30px;
    padding: 40px 30px;
  }
}

/* Nadpis je jinak modry (globalni prepis .header-xl) — na tmavem gradientu
   by nebyl citelny. */
.mh-outro .header-xl {
  color: var(--white);
  margin-bottom: 16px;
}

.mh-outro p {
  color: rgba(255, 255, 255, 0.85);
}

/* Odznak sekce ma na svetlem podkladu tmavou vypln — tady obracene. */
.mh-outro .sub-title {
  background: rgba(255, 255, 255, 0.15);
  border-color: rgba(255, 255, 255, 0.3);
  color: var(--white);
}

.mh-outro__actions {
  margin-top: 30px;
}

/* Tlacitko na tmavem podkladu: bila vypln, tmavy text.
   ⚠ `!important` je tu nutne — sablona ma na .ta-button-01 primo
   `color: var(--white) !important`, takze bez toho by byl bily text na bilem. */
.mh-outro .ta-button-01 {
  background-color: var(--white);
  color: var(--header) !important;
}

.mh-outro .ta-button-01:hover {
  background-color: var(--body);
  color: var(--header) !important;
}

.mh-outro .ta-button-01 .button__icon-wrapper {
  color: var(--white);
  background-color: var(--header);
}

.mh-outro__list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.mh-outro__list li {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.18);
  color: var(--white);
  font-weight: 600;
}

.mh-outro__list li:last-child {
  border-bottom: none;
}

.mh-outro__list li i {
  width: 20px;
  text-align: center;
  color: var(--white);
  opacity: 0.8;
}

/* Obrazky na produktove strance. Vyrezy z brozury maji ruzne pomery stran,
   takze ramecek drzi vysku (aby karty licovaly) a `contain` ukaze cely
   diagram — `cover` by z nej ustrihl kraje s daty. */
.mh-figure {
  margin: 0;
  border-radius: 12px;
  background: var(--white);
  border: 1px solid #d5e3f5;
  overflow: hidden;
}

.mh-figure img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  padding: 10px;
}

.mh-figure--16-9 { aspect-ratio: 16 / 9; }
.mh-figure--3-4  { aspect-ratio: 3 / 4; }

/* Produktovy zaber je na vysku a na bilem podkladu — zadny ramecek, jen
   omezena vyska, at nepretlaci text ve vedlejsim sloupci. */
.mh-produkt-foto img {
  width: 100%;
  height: auto;
  max-height: 520px;
  object-fit: contain;
  display: block;
}

/* Zaobleni jen tam, kde ma snimek vlastni bily podklad az do rohu — jinak by
   se orizlo nic. Modifikator, ne globalni pravidlo: ostatni produktove stranky
   maji fotku na pruhledu a maji zustat, jak jsou. */
.mh-produkt-foto--round img {
  border-radius: 16px;
}

/* Ikona typu vzorku ze sablony vyrobce — ctverec s vlastnim modrym podkladem. */
.mh-tile__ico {
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  border-radius: 12px;
  display: block;
}

/* Odstupove utility na uplnem KONCI souboru — utilita musi prebit komponentu.
   ⚠ Kdyz stala vys, `.mh-figure { margin: 0 }` (shorthand, stejna specificita,
   nizsi v souboru) ji vynulovala a `mt-40` v markupu nedelala nic. */
.mt-40 {
  margin-top: 40px !important;
}

/* Karta oboru na produktove strance (portfolio vyrobce). */
.mh-obor {
  height: 100%;
  padding: 26px;
  border-radius: 12px;
  background: var(--white);
  border: 1px solid #d5e3f5;
}

.mh-obor > i {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  margin-bottom: 18px;
  border-radius: 12px;
  background: var(--body);
  color: var(--theme);
  font-size: 20px;
}

.mh-obor .header-md {
  margin-bottom: 10px;
}

.mh-obor p {
  margin: 0;
}

/* Dalsi pomer pro obrazkovy ramecek — fotky produktovych rad jsou 3:2. */
.mh-figure--3-2 { aspect-ratio: 3 / 2; }

/* Sirokoformatova grafika (prehled panelu) — bez ramecku a pevneho pomeru,
   obrazek si vysku urcuje sam. `mh-figure` se sem nehodi, ta vysku fixuje. */
.mh-figure-plain {
  margin: 0;
}

.mh-figure-plain img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 12px;
  background: var(--white);
}

.mh-figure-plain figcaption {
  margin-top: 12px;
  font-size: 14px;
  color: var(--text);
  text-align: center;
}

/* ── Reference: avatary a ovladani slideru ─────────────────────────────────
   Sablona pro `.testi-img img` zadny radius nemela (byly to sede ctvercove
   placeholdery). Realne fotky potrebuji stejne zaobleni jako zbytek webu —
   20px je nejcastejsi hodnota v main.css. */
.testi-one-item .testi-img img {
  border-radius: 20px;
  object-fit: cover;
}

/* Velka uvozovka pres fotku. Sablona ji nechavala dedit tmavou barvu textu,
   takze splyvala s nadpisy — v brand modre je citelne dekorace, ne preklep.
   Ikona je aria-hidden, takze u ni nejde o kontrast pro cteni. */
.testi-one-item .testi-img i {
  color: var(--theme);
}

/* Misto pro tecky pod kartou. Bez toho by je `.swiper { overflow: hidden }`
   prekryl spodni hranou slidu. */
.testiOneSwiper {
  padding-bottom: 40px;
}

.testiOneSwiper .swiper-pagination {
  --swiper-pagination-color: var(--theme);
  --swiper-pagination-bullet-inactive-color: var(--header);
  --swiper-pagination-bullet-inactive-opacity: 0.25;
  --swiper-pagination-bullet-size: 10px;
  --swiper-pagination-bullet-horizontal-gap: 5px;
  bottom: 0;
}

/* Tecky jsou tab-stop (clickable pagination) — bez viditelneho fokusu by je
   uzivatel klavesnice nenasel. */
.testiOneSwiper .swiper-pagination-bullet:focus-visible {
  outline: 2px solid var(--header);
  outline-offset: 3px;
}

/* Podpis dodavatele ve spodnim pruhu paticky (nahradil copyright klienta,
   vyhozeny na jeho prani 2026-08-08). 14 px misto zdedenych 16 — je to podpis,
   ne hlavni sdeleni, v 16 px prilis bil do oci. Odkaz dostava --theme-text:
   sablonovy `.copyright-text p a` pouziva svetlou --theme (3,28:1 na bile),
   coz na bezny text nestaci. */
.ta-footer-copyright .copyright-text .mh-author {
  font-size: 14px;
}

.ta-footer-copyright .copyright-text .mh-author a {
  color: var(--theme-text);
}

/* Odkaz na zasady ve spodnim pruhu — 14 px, aby ladil s podpisem naproti
   (oba jsou servisni text, ne obsah stranky).
   ⚠ Nestaci nastavit velikost jen na <ul>: globalni `p, li, span, option,
   select { font-size: 16px }` vys v tomhle souboru trefuje <li> primo, cimz
   preruzi dedeni a odkaz uvnitr zustane na 16 px. Proto vyjmenovat i li a. */
.ta-footer-copyright .copyright-menu,
.ta-footer-copyright .copyright-menu li,
.ta-footer-copyright .copyright-menu li a {
  font-size: 14px;
}

/* Socialni ikony na /kontakt. Sablona je stylovala jen v kontextu
   `.ta-footer-copyright`, takze po presunu z paticky by zustaly holy text.
   Prevzaty rozmery i kruh, jen barvy obracene — kontakt ma svetle pozadi,
   paticka mela modre. */
/* Dve tridy zamerne: `.page ul { list-style: revert; padding-left: 22px }`
   (0,1,1) by jednu tridu prebilo a u ikony by zustala odrazka i odsazeni. */
.page .mh-social,
.mh-social {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  padding: 0;
  margin: 0;
  list-style: none;
}

.mh-social li a {
  width: 40px;
  height: 40px;
  background: var(--theme);
  border-radius: 50%;
  color: var(--white);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: 0.3s;
}

.mh-social li a i {
  font-size: 18px;
}

.mh-social li a:hover,
.mh-social li a:focus-visible {
  background: var(--header);
}

/* Kontakt: udaje vlevo, mapa vpravo. Pod 991 px pod sebe — mapa v uzkem
   sloupci je necitelna. */
.contact-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px;
  align-items: start;
}

@media (max-width: 991px) {
  .contact-grid {
    grid-template-columns: 1fr;
  }
}

/* Zaobleny ramecek s modrym okrajem. `overflow: hidden` je nutny — bez nej
   ctvercovy iframe rohy prekryje a zaobleni nebude videt. */
.contact-map {
  border: 2px solid var(--theme);
  border-radius: 20px;
  overflow: hidden;
  line-height: 0;
}

.contact-map iframe {
  display: block;
  width: 100%;
  height: 380px;
  border: 0;
}

/* Nadpis nad ikonou. `.page h2` (0,1,1) dava nadpisum margin-top 40 px —
   pod mapou je to zbytecne velka diera, proto dve tridy pro prebiti. */
.page .contact-social__title,
.contact-social__title {
  font-family: var(--header-font);
  font-size: 20px;
  margin-top: 24px;
  margin-bottom: 12px;
}

/* Pozadi sekce referenci na /o-nas. V sablone to byl inline `style=`, ktery
   CSP (style-src 'self', bez unsafe-inline) zahodi — pozadi by chybelo. */
/* Puvodne fotografie ze sablony (lekar se stetoskopem) — cizi stock, ktery
   s laboratorni technikou nesouvisel. Nahrazeno jemnym gradientem v brand
   barvach: sekce zustava tmava, takze bily text drzi kontrast (14:1 na #082f49,
   8:1 na nejsvetlejsim bode). */
.mh-about-testi-bg {
  background: linear-gradient(135deg, #082f49 0%, #10456b 55%, #082f49 100%);
}

/* Miniatura u reference na /o-nas. Sablona pro `.thumb img` zadne pravidlo
   nemela — puvodni avatar byl presne 120x120 px, takze se vykreslil ve sve
   velikosti. Nase fotky maji 300 px a bez tohoto omezeni by kartu roztahly.
   Zaobleni 20 px jako u fotek jinde na webu. */
.testi-three-item .thumb img {
  width: 120px;
  height: 120px;
  object-fit: cover;
  border-radius: 20px;
}

/* Loga dodavatelu v slideru na /o-nas. Sablona pro `.partnerOneSlider .partner`
   zadne pravidlo nemela — dlazdice se roztahla podle obrazku a logo sedelo
   natesno u okraje. Ctverec s vnitrnim polstarem, modrym rameckem a zaoblenim
   jako zbytek webu. `contain` (ne cover), aby se logo nikdy neoriznulo. */
.partnerOneSlider .partner {
  display: flex;
  align-items: center;
  justify-content: center;
  /* Ctverec, ne pevna vyska — dlazdice se pak drzi stejneho tvaru na vsech
     breakpointech, kde Swiper meni pocet log na obrazovku (2/3/5/6).
     max-width drzi dlazdici drobnou (vzor: triplehelix.cz) — bez nej se
     roztahne pres cely slide a pri sesti logach vyjde 166 px, coz je na pruh
     log zbytecne velke. Prebytek sirky slidu se rozdeli na mezery. */
  aspect-ratio: 1 / 1;
  max-width: 130px;
  margin: 0 auto;
  padding: 18px;
  background: var(--white);
  border: 1px solid var(--theme);
  border-radius: 20px;
  transition: 0.3s;
}

.partnerOneSlider .partner img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
}

.partnerOneSlider .partner:hover,
.partnerOneSlider .partner:focus-visible {
  border-color: var(--header);
}

/* Popisek pruhu znacek na /o-nas — sjednoceno s `.partners-label` na homepage
   (klient si vyzadal stejny vzhled 2026-08-08). Linka po stranach zustava,
   ta je ze sablony a vypada dobre.
   ⚠ font-family explicitne: je to <p>, takze by jinak zdedil Mulish z body
   a od nadpisu na homepage by se lisil. */
.ta-partner-two p {
  font-family: var(--header-font);
  font-size: 30px;
  line-height: 1.3;
  font-weight: 900;
  letter-spacing: 0.04em;
  color: var(--theme);
}

/* Linky kolem popisku znacek. Sablona je mela absolutne na pevnych 44 % sirky
   z kazde strany — pri kratkem originalnim textu to vyslo, ale nas delsi
   a vetsi nadpis pretly pres pismena.
   Flex misto absolutniho pozicovani: linky dostanou presne tolik mista, kolik
   po textu zbyde, at je text jakkoli dlouhy. Zadne dopocitavani sirek. */
.ta-partner-two {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
}

.ta-partner-two::before,
.ta-partner-two::after {
  position: static;
  width: auto;
  flex: 1 1 0;
  min-width: 0;
  /* `align-items: center` posadi linku na stred RADKU, jenze ten je kvuli
     mistu pro dolni dotaznice niz nez opticky stred verzalek — text je cely
     velkymi pismeny, takze spodni cast radku zeje prazdnotou a linka pusobi
     utopene. Zmereno: rozdil 5,5 px pri pismu 30 px / line-height 1.3.
     ⚠ Pri zmene velikosti nebo prosnuti popisku tuhle hodnotu preporitat. */
  transform: translateY(-5.5px);
}

.ta-partner-two p {
  flex: 0 1 auto;
  margin: 0;
}

/* Na uzkem displeji uz na linky misto neni — text by se lamal na tri radky. */
@media (max-width: 575px) {
  .ta-partner-two::before,
  .ta-partner-two::after {
    display: none;
  }
}

/* Placeholder fotky tymu na /o-nas. Popisek je zamerne drobny — je to podpis
   pod obrazkem, ne nadpis bloku. */
.mh-about-figure {
  margin: 0;
}

/* Zaobleni jako u ostatnich fotek na webu; height:auto drzi pomer, i kdyz ma
   <img> vypsane width/height (ta jsou kvuli rezervaci mista, ne kvuli rozmeru). */
.mh-about-figure img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 20px;
}

.mh-about-figure figcaption {
  margin-top: 12px;
  text-align: center;
  font-size: 14px;
  color: var(--text);
}

/* ── Karty tymu na /o-nas (vzor: triplehelix.cz) ──────────────────────────
   Sablona mela fotku pres celou kartu s prekryvem ikon; tady je fotka nahore
   a bily blok s textem pod ni, aby se vesel i popis role. */
.mh-team-lead {
  max-width: 620px;
  margin: 0 auto;
  color: var(--text);
}

.mh-team-card {
  height: 100%;
  display: flex;
  flex-direction: column;
  background: var(--white);
  border: 1px solid #d5e3f5;
  border-radius: 20px;
  overflow: hidden;
}

/* Pevny pomer, at karty lici i kdyz kazda fotka prijde v jinem rozliseni.
   4:3 podle dodanych portretu (500x380, tedy na sirku) — pri puvodnim 3:4
   by `cover` uriznul podstatnou cast obliceje po stranach. */
.mh-team-card__media {
  aspect-ratio: 4 / 3;
  overflow: hidden;
}

.mh-team-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Placeholder varianta — `.mh-ph` uz nese ramecek i zarovnani na stred,
   tady se jen prebije zaobleni, aby lícoval s hornim okrajem karty. */
.mh-team-card__media.mh-ph {
  border-radius: 0;
  border-width: 0 0 1px 0;
}

.mh-team-card__body {
  padding: 20px;
}

.mh-team-card__name {
  font-family: var(--header-font);
  font-size: 18px;
  font-weight: 800;
  color: var(--header);
  margin: 0 0 4px;
}

.mh-team-card__role {
  font-weight: 700;
  color: var(--theme-text);
  margin: 0 0 10px;
}

.mh-team-card__desc {
  font-size: 15px;
  color: var(--text);
  margin: 0;
}

.mh-team-card__links {
  display: flex;
  gap: 10px;
  list-style: none;
  padding: 0;
  margin: 16px 0 0;
}

.mh-team-card__links a {
  width: 34px;
  height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: var(--transparent);
  color: var(--theme-text);
  transition: 0.3s;
}

.mh-team-card__links a:hover,
.mh-team-card__links a:focus-visible {
  background: var(--theme);
  color: var(--white);
}



/* ---------- Kariera ------------------------------------------------------ */
/* Selektory jsou schvalne dvouclenne (.mh-job .mh-job__nazev). Orezana
   style.css nese plosna pravidla se dvema castmi (`p, li, span`, `.page h2`),
   ktera jednoclennou tridu prebiji bez ohledu na poradi souboru. */

.mh-kariera-prazdno {
  margin: 0;
  padding: 24px;
  border: 1px solid #d5e3f5;
  border-radius: 20px;
  background: var(--white);
  text-align: center;
  color: var(--text);
}

.mh-kariera-prazdno a {
  color: var(--theme);
  font-weight: 700;
}

/* height:100% + flex sloupec = obe karty stejne vysoke a tlacitko dole
   v jedne linii, i kdyz ma jeden inzerat vic odrazek. */
.mh-job {
  height: 100%;
  display: flex;
  flex-direction: column;
  background: var(--white);
  border: 1px solid #d5e3f5;
  border-radius: 20px;
  overflow: hidden;
}

.mh-job__hlavicka {
  padding: 24px;
  border-bottom: 1px solid #d5e3f5;
}

.mh-job .mh-job__nazev {
  font-family: var(--header-font);
  font-size: 20px;
  font-weight: 800;
  color: var(--header);
  margin: 0;
}

.mh-job .mh-job__meta {
  font-size: 15px;
  font-weight: 700;
  color: var(--theme-text);
  margin: 8px 0 0;
}

.mh-job__telo {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  padding: 24px;
}

.mh-job .mh-job__perex {
  font-weight: 700;
  color: var(--header);
  margin: 0 0 16px;
}

.mh-job .mh-job__text {
  color: var(--text);
  margin: 0 0 16px;
}

.mh-job .mh-job__nadpis {
  font-family: var(--header-font);
  font-size: 18px;
  font-weight: 800;
  color: var(--header);
  margin: 8px 0 12px;
}

.mh-job .mh-job__seznam {
  margin: 0 0 16px;
  padding-left: 20px;
  list-style: disc;
}

.mh-job .mh-job__seznam li {
  color: var(--text);
  margin-bottom: 6px;
}

.mh-job .mh-job__cta {
  margin: auto 0 0;
  padding-top: 8px;
}

.mh-kariera-adresa {
  padding: 24px;
  border: 1px solid #d5e3f5;
  border-radius: 20px;
  background: var(--white);
  font-style: normal;
}

.mh-kariera-adresa p {
  color: var(--text);
  margin: 0 0 10px;
}

.mh-kariera-adresa p:last-child {
  margin-bottom: 0;
}

.mh-kariera-adresa a {
  color: var(--theme);
  font-weight: 700;
}

@media (max-width: 575px) {
  .mh-job__hlavicka,
  .mh-job__telo {
    padding: 20px;
  }

  .mh-job .mh-job__nazev {
    font-size: 18px;
  }
}

/* Poznamka pod poli v modalu (kam poslat zivotopis + odkaz na GDPR).
   Dvouclenny selektor kvuli plosnemu `p, li, span` v orezane style.css. */
.mh-modal .mh-modal__note {
  font-size: 14px;
  color: var(--text);
  margin: 0 0 20px;
}

.mh-modal .mh-modal__note a {
  color: var(--theme);
  font-weight: 700;
}

/* ---------- Odkaz na soubor ke stazeni ----------------------------------- */
/* Dvouclenne selektory kvuli plosnemu `p, li, span` v orezane style.css. */

.mh-download {
  display: flex;
  align-items: center;
  gap: 16px;
  height: 100%;
  padding: 20px 24px;
  background: var(--white);
  border: 1px solid #d5e3f5;
  border-radius: 20px;
  transition: 0.3s;
}

.mh-download:hover,
.mh-download:focus-visible {
  border-color: var(--theme);
  box-shadow: 0 8px 24px rgba(13, 148, 230, 0.12);
}

.mh-download i {
  flex: 0 0 auto;
  font-size: 28px;
  color: var(--theme);
}

.mh-download__text {
  display: flex;
  flex-direction: column;
}

.mh-download .mh-download__nazev {
  font-family: var(--header-font);
  font-size: 17px;
  font-weight: 800;
  color: var(--header);
}

.mh-download .mh-download__meta {
  font-size: 14px;
  color: var(--text);
}

.mh-download:hover .mh-download__nazev,
.mh-download:focus-visible .mh-download__nazev {
  color: var(--theme);
}

/* Kompaktni varianta — dokumentace Genes2Me je pres 50 souboru a v plne
   velikosti by z jedne sekce udelala nejdelsi cast stranky. Meni se jen
   rozmery, chovani (hover, focus, ikona) dedi z .mh-download. */

.mh-download--compact {
  gap: 12px;
  padding: 14px 18px;
  border-radius: 14px;
}

.mh-download--compact i {
  font-size: 20px;
}

.mh-download--compact .mh-download__nazev {
  font-size: 15px;
}

.mh-download--compact .mh-download__meta {
  font-size: 13px;
}

/* Sablona ma jen gy-30; u kompaktnich dlazdic je to prilis vzdusne. */
.gy-20 {
  --bs-gutter-y: 20px;
}

/* ---------- Karta produktove rady (Abound) ------------------------------- */
/* Dvouclenne selektory kvuli plosnemu `p, li, span` v orezane style.css. */

.mh-rada {
  height: 100%;
  display: flex;
  flex-direction: column;
  background: var(--white);
  border: 1px solid #d5e3f5;
  border-radius: 20px;
  overflow: hidden;
  transition: 0.3s;
}

/* Hover jen u variant, ktere jsou odkaz — <div> karta se nema tvarit klikatelne. */
a.mh-rada:hover,
a.mh-rada:focus-visible {
  border-color: var(--theme);
  box-shadow: 0 8px 24px rgba(13, 148, 230, 0.12);
}

/* Pevny pomer 3:2 podle dodanych snimku — bez nej by kazda karta mela jinou
   vysku obrazku a rada by se rozjela. */
.mh-rada__media {
  display: block;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  background: var(--body);
}

.mh-rada__media img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.mh-rada .mh-rada__nazev {
  display: block;
  padding: 16px 20px 20px;
  font-family: var(--header-font);
  font-size: 16px;
  font-weight: 800;
  color: var(--header);
}

a.mh-rada:hover .mh-rada__nazev,
a.mh-rada:focus-visible .mh-rada__nazev {
  color: var(--theme);
}

/*===== - medihelix: logo na uzkych displejich =====*/
/* Logo je SVG s pevnym pomerem 224:39 (~5,74:1), takze `height: 60px` z nej
   udela 345 px sirokou grafiku. To se na telefonu nevejde nikam:
     - v hlavicce vytlaci hamburger (56 px) mimo obrazovku,
     - v mobilnim draweru (`min(360px, 100vw - 48px)`, padding 15 px) pretece
       a odsune polozky menu doleva mimo viditelnou plochu.
   `.site-logo` ma `flex-shrink: 0`, takze se logo samo nescvrkne — musi se
   zmensit vyskou. `max-width` sama nestaci: s pevnou `height` by SVG
   deformovala, proto explicitni vysky podle breakpointu.
   Drawer je uzsi nez viewport, proto ma vlastni (mensi) hodnotu.
   Selektory jsou zamerne dvoudilne — jednodilny `.mh-logo-img` by neprebil. */
@media (max-width: 1199px) {
  .mob-hdr .mh-logo-img {
    height: 40px;
  }
}

@media (max-width: 575px) {
  .site-header .mh-logo-img {
    height: 38px;
  }

  .mob-hdr .mh-logo-img {
    height: 32px;
  }
}

/*===== - medihelix: katalogova stranka rychlych testu =====*/
/* Prepinace kategorii. Vzhled je vlastni (chipy), chovani bere globalni tabova
   komponenta sablony — .ta-tab-nav li, ne <a>, takze focus stav si musi tahle
   trida vyresit sama; JS jim dava tabindex, bez viditelneho fokusu by byly
   klavesnici neovladatelne naslepo.
   ⚠️ Neaktivni panel je `display: none` — bez JS je videt jen prvni kategorie.
   Vedomy kompromis (prehlednost > no-JS fallback), katalog stejne skonci na
   eshopu. */
.mh-taby-nav {
  list-style: none;
  padding: 0;
  margin: 0 0 30px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.mh-taby-nav li {
  padding: 10px 18px;
  border-radius: 999px;
  border: 1px solid #d5e3f5;
  background: var(--white);
  color: var(--header);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
  transition: background 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}

.mh-taby-nav li:hover {
  background: var(--body);
  border-color: var(--theme);
}

.mh-taby-nav li:focus-visible {
  outline: 2px solid var(--header);
  outline-offset: 2px;
}

.mh-taby-nav li.active {
  background: var(--theme);
  border-color: var(--theme);
  color: var(--white);
}

/* Sest sloupcu s dlouhymi nazvy produktu se do 520 px zakladni sirky nevejde —
   tabulka by se lamala do necitelnych sloupcu. Vetsi min-width ji posle do
   vodorovneho scrollu (.mh-table-wrap), coz je citelnejsi. */
.mh-table--katalog {
  min-width: 780px;
}

/*===== - medihelix: scroll v mobilnim draweru (>= 1200 px) =====*/
/* Drawer je flex sloupec s `overflow: hidden` a ma dva obsahove bloky:
   `.mob-body` (pod XL, navigace) uz scroll mel, ale sidebar blok nad XL zadny
   nemel — na uzkem okne / tabletu na sirku pretekl a spodek (Kontakt, telefon,
   socialni ikona) se dal jen useknout, ne doscrollovat.
   `min-height: 0` je povinne: flex polozka se jinak nescvrkne pod vysku sveho
   obsahu a `overflow-y: auto` nema co scrollovat.
   `overscroll-behavior: contain` brani tomu, aby se doscrollovany drawer
   „prelil" do scrollovani stranky pod nim — stejne jako u `.mob-body`. */
.mob-side {
  flex: 1 1 0%;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
}

/* Blok je `d-xl-flex`, takze jeho dite je flex polozka — bez tohohle by se
   `.offcanvas-content` zuzil na svuj obsah misto na sirku draweru. */
.mob-side > .offcanvas-content {
  flex: 1 1 auto;
  min-width: 0;
}

/*===== - medihelix: katalog — klikaci obrazek + uvodni text =====*/
/* Obrazek karty vede tam, kam vede odkaz pod nim. Odkaz je zamerne
   `tabindex="-1" aria-hidden="true"` — textovy odkaz v kartě mi­ri na tentyz
   cil, takze bez toho by karta mela dva tab-stopy na jedno misto a odecitac
   by cetl prazdny odkaz (obrazek uz ma svuj popis v `alt`). */
.katalog-item .katalog-img-link {
  display: block;
  height: 100%;
}

/* Dvoudilny selektor schvalne: orezana `style.css` ma plosne pravidlo pro
   `p, li, span`, ktere odstavci nastavi `display: inline-block` a vynuluje
   marginy — jednodilna `.katalog-uvod` by neprebila a blok by zustal vlevo
   misto pod vycentrovanym nadpisem. */
.center-sub-main-header .katalog-uvod {
  display: block;
  max-width: 60ch;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

/* Odkaz uvnitr uvodniho odstavce se musi odlisit od bezneho textu — pouhá
   barva by na modrem podkladu nestacila (WCAG 1.4.1: barva nesmi byt jediny
   nositel informace). */
.katalog-uvod a {
  color: var(--theme);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.katalog-uvod a:hover,
.katalog-uvod a:focus-visible {
  color: var(--header);
}

/*===== - medihelix: nahled PDF v modalu =====*/
/* Dialog nosi .mh-modal (backdrop, radius, zavirak) a .mh-pdf ho prestavi na
   ramec pro dokument. Selektor je zdvojeny (.mh-modal.mh-pdf), protoze pravidlo
   `.mh-modal { max-height: calc(100dvh - 60px) }` vys v souboru by jinak
   vyhralo poradim. */
.mh-modal.mh-pdf {
  width: min(1100px, calc(100vw - 40px));
  height: calc(100dvh - 60px);
  max-height: calc(100dvh - 60px);
  padding: 0;
  overflow: hidden;
  /* Flex kvuli iframu: hlavicka ma svou vysku, ramec dobere zbytek. Bez toho
     by iframe dostal defaultni 150 px a dokument by koukal klicovou dirkou. */
  display: flex;
  flex-direction: column;
}

/* ⚠️ Bez tohohle guardu zustane ZAVRENY dialog v toku stranky jako prazdny bily
   blok 1100x660 — pod patickou, a po zavreni nahledu i pres obsah. Prohlizec
   zavreny <dialog> skryva pravidlem `dialog:not([open]) { display: none }` ve
   svem UA stylesheetu, jenze autorsky `display: flex` vys ho prebije: origin
   author vyhrava nad user-agent BEZ OHLEDU na specificitu.

   Selektor musi mit aspon tolik trid co `.mh-modal.mh-pdf`, jinak prohraje
   specificitou uvnitr autorskeho origin. Hlida `tests/dialog-display.test.php`.

   Bezny `.mh-modal` guard nepotrebuje — `display` vubec nenastavuje. */
.mh-modal.mh-pdf:not([open]) {
  display: none;
}

.mh-pdf__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 16px 20px;
  border-bottom: 1px solid var(--border);
  background: var(--white);
}

/* Dlouhe nazvy IFU (napr. „RCP-Q Comprehensive 4 Targets") nesmi odstrcit
   tlacitka mimo dialog — titulek se orizne, akce maji prednost. */
.mh-pdf__title {
  margin: 0;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mh-pdf__akce {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
}

/* Bile, ne plne modre: hlavicka modalu je bila a plny --theme button v ni
   pretahoval pozornost od nazvu dokumentu. Ramecek je proto povinny — bez nej
   by tlacitko na bilem podkladu splynulo a nebylo videt, ze je klikaci. */
.mh-pdf__stahnout {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 0 18px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--white);
  color: var(--header);
  font-size: 15px;
  font-weight: 600;
  transition: all 0.3s ease-in-out;
}

.mh-pdf__stahnout i {
  color: var(--theme);
  transition: color 0.3s ease-in-out;
}

/* Na hover se teprve obarvi — stav je tim jednoznacny i bez barvy samotne
   (WCAG 1.4.1), protoze se meni i ramecek. */
.mh-pdf__stahnout:hover,
.mh-pdf__stahnout:focus-visible {
  border-color: var(--theme);
  background: var(--theme);
  color: var(--white);
}

.mh-pdf__stahnout:hover i,
.mh-pdf__stahnout:focus-visible i {
  color: var(--white);
}

/* Zaviraci tlacitko dedi vzhled od .mh-modal__close, ale to je position:
   absolute v rohu dialogu — tady sedi v rade akci, takze se vraci do toku. */
.mh-pdf__close {
  position: static;
  min-width: 44px;
  min-height: 44px;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--body);
  color: var(--header);
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
  transition: all 0.3s ease-in-out;
}

.mh-pdf__close:hover,
.mh-pdf__close:focus-visible {
  background: var(--theme);
  color: var(--white);
}

.mh-pdf__ramec {
  flex: 1;
  width: 100%;
  min-height: 0;
  border: 0;
  display: block;
}

/* ---------- E-shop „pripravujeme" (/eshop) ------------------------------- */
/* Dvouclenne selektory ze stejneho duvodu jako u kariery — orezana style.css
   prebiji jednoclennou tridu. */

.mh-eshop .mh-eshop__form {
  padding: 24px;
  border: 1px solid #d5e3f5;
  border-radius: 20px;
  background: var(--white);
}

/* Pole a tlacitko v jednom radku; na uzkem displeji pod sebou. */
.mh-eshop .mh-eshop__radek {
  display: flex;
  gap: 12px;
}

.mh-eshop .mh-eshop__radek input {
  flex: 1 1 auto;
  min-width: 0;
}

.mh-eshop .mh-eshop__radek .ta-button-01 {
  flex: 0 0 auto;
  justify-content: center;
}

@media (max-width: 575px) {
  .mh-eshop .mh-eshop__radek {
    flex-direction: column;
  }
}

.mh-eshop .mh-eshop__souhlas {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.mh-eshop .mh-eshop__souhlas input {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin-top: 3px;
  accent-color: var(--theme);
}

.mh-eshop .mh-eshop__souhlas label {
  font-size: 14px;
  color: var(--text);
}

.mh-eshop .mh-eshop__souhlas a {
  color: var(--theme);
  font-weight: 700;
}

/* Misto pro nahled e-shopu, dokud ho klient nedoda (viz _pages/eshop.php). */
.mh-eshop .mh-eshop__placeholder {
  aspect-ratio: 3 / 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  border: 2px dashed #d5e3f5;
  border-radius: 20px;
  background: var(--white);
  color: var(--theme);
  font-size: 48px;
}

.mh-eshop .mh-eshop__placeholder span {
  font-size: 16px;
  font-weight: 700;
  color: var(--text);
}

/* Screenshot e-shopu ma bile pozadi a na svetlem podkladu sekce by splynul —
   ramecek a stin ho oddeli jako „okno". */
.mh-eshop .mh-eshop__nahled img {
  border: 1px solid #d5e3f5;
  box-shadow: 0 20px 40px rgba(8, 47, 73, 0.12);
}

/* Hlasky newsletteru na /eshop (uspech po PRG + chyby u poli). */
.mh-eshop .mh-eshop__hlaska {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  padding: 20px 24px;
  border: 1px solid var(--theme);
  border-radius: 20px;
  background: var(--white);
  color: var(--header);
  font-weight: 700;
}

.mh-eshop .mh-eshop__hlaska i {
  color: var(--theme);
  font-size: 24px;
}

.mh-eshop .mh-eshop__chyba {
  margin: 8px 0 0;
  font-size: 14px;
  font-weight: 700;
  color: #b42318;
}

.mh-eshop .mh-eshop__chyba--form {
  margin: 0 0 16px;
}

/* Po PRG redirectu skace stranka na #newsletter — bez odstupu by cil zajel
   pod fixni hlavicku. */
.mh-eshop #newsletter {
  scroll-margin-top: 140px;
}

/* Textovy modal (zasady GDPR na /eshop) — sirsi nez formularovy a s
   mensimi nadpisy, aby dlouhy pravni text nebyl tlacenice. */
.mh-modal.mh-modal--text {
  width: min(720px, calc(100vw - 40px));
}

.mh-modal--text .mh-modal__title {
  margin: 0 0 20px;
  padding-right: 40px;
}

.mh-modal--text .mh-modal__text h2 {
  font-family: var(--header-font);
  font-weight: 800;
  margin: 24px 0 8px;
  font-size: 18px;
  line-height: 1.3;
  color: var(--header);
}

.mh-modal--text .mh-modal__text p {
  margin: 0 0 12px;
}

.mh-modal--text .mh-modal__text a {
  color: var(--theme);
  font-weight: 700;
}

/*===== - medihelix: kotva pod fixni hlavickou =====*/
/* Cile odkazu s hashem (#onepcr a #ngs-panely na /genes2me, pozdeji dalsi).
   Hlavicka je position: fixed, takze bez odstupu by cil zajel pod ni a
   navstevnik by pristal uprostred sekce misto na jejim nadpisu.
   Stejny duvod i hodnota jako u `.mh-eshop #newsletter` vyse. */
.mh-kotva {
  scroll-margin-top: 140px;
}

/*===== - medihelix: odznak CE IVDR na karte katalogu =====*/
/* Prani klienta 2026-09-24: karty s certifikovanymi produkty (PlexBio, Abdos)
   maji nest odznak CE IVDR z dodane prilohy.

   Vlevo dole schvalne — logo dodavatele (.katalog-znacka) sedi vpravo dole
   a na karte „Laboratorni spotrebni material" jsou oba naraz. V jednom rohu
   by se prekryly.

   Bez bileho podkladu, na rozdil od .katalog-znacka: odznak ma vlastni modre
   pozadi a ramecek, takze bily box kolem nej by delal ramecek v ramecku. */
.katalog-item .katalog-ivdr {
  position: absolute;
  left: 12px;
  bottom: 12px;
  display: block;
  /* 96 px je minimum, pri kterem zustane „IVDR" citelne i na mobilu. */
  width: 96px;
  border-radius: 8px;
  overflow: hidden;
  /* Bily ramecek: odznak je modry a karta „Izolace nukleovych kyselin" ma
     modrou fotku — bez oddeleni by na ni splyval. */
  border: 2px solid var(--white);
  box-shadow: 0 4px 12px rgba(18, 48, 107, 0.18);
}

.katalog-item .katalog-ivdr img {
  display: block;
  width: 100%;
  height: auto;
}

/* Zoom obrazku na hoveru se odznaku netyka — stejne jako u .katalog-znacka. */
.katalog-item:hover .katalog-ivdr img {
  transform: none;
}

/*===== - medihelix: klikatelna dlazdice kategorie (ABDOS -> e-shop) =====*/
/* Do 2026-09-24 byl .mh-obor neklikatelny <article>. Ted je z nej <a> do
   e-shopu, takze potrebuje stavy, ktere karta nemela: hover, focus-visible
   a potlaceni modreho podtrzeni a barvy odkazu na celem obsahu.

   display:flex + column kvuli tomu, aby „Zobrazit v e-shopu" sedelo dole
   na stejne urovni i u dlazdic s kratsim popisem — jinak by radek skakal
   podle delky textu. */
.mh-obor--odkaz {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
  transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
}

.mh-obor--odkaz .header-md,
.mh-obor--odkaz p {
  color: inherit;
}

.mh-obor--odkaz p {
  margin-bottom: 18px;
}

/* Odsadit CTA dolu — auto margin ho pritlaci ke spodni hrane dlazdice. */
.mh-obor__odkaz {
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--header-font);
  font-weight: 700;
  color: var(--theme);
}

.mh-obor__odkaz i {
  font-size: 13px;
  transition: transform 0.25s ease;
}

.mh-obor--odkaz:hover,
.mh-obor--odkaz:focus-visible {
  border-color: var(--theme);
  box-shadow: 0 10px 24px rgba(18, 48, 107, 0.12);
  transform: translateY(-3px);
}

.mh-obor--odkaz:hover .mh-obor__odkaz i,
.mh-obor--odkaz:focus-visible .mh-obor__odkaz i {
  transform: translate(2px, -2px);
}

/* Viditelny focus i pro klavesnici — dlazdice je velky cil a bez obrysu by
   nebylo poznat, na ktere uzivatel stoji. */
.mh-obor--odkaz:focus-visible {
  outline: 2px solid var(--theme);
  outline-offset: 3px;
}

/* Kdo ma v systemu vypnute animace, nema duvod videt posun karty. */
@media (prefers-reduced-motion: reduce) {
  .mh-obor--odkaz,
  .mh-obor__odkaz i {
    transition: none;
  }

  .mh-obor--odkaz:hover,
  .mh-obor--odkaz:focus-visible {
    transform: none;
  }
}

/* ===== Kostra stranky vyrobce (_includes/vyrobce-kostra.php) =============== */
/* Loga ve firm/ maji ruzne pomery stran (od ctverce po siroky pruh), takze se
   jim nesmi nastavit pevna vyska — `max-height` + `object-fit: contain` je
   necha dychat a zadne se nedeformuje. Vlastni bily podklad maji taky ruzny,
   proto ramecek s vyplni: bez nej logo na svetle sekci „plave". */
.mh-vyrobce-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 40px;
  background-color: var(--white);
  border: 1px solid var(--border);
  border-radius: 16px;
}

.mh-vyrobce-logo img {
  width: auto;
  max-width: 100%;
  max-height: 120px;
  height: auto;
  object-fit: contain;
  display: block;
}

/* ===== Hledani v dokumentech ke stazeni ==================================== */
/* Obal pole ma v HTML atribut `hidden` a odkryva ho az JS — skryvani resi
   bootstrap ([hidden]{display:none!important}), tady se nic skryvat nesmi.
   Styl je tady a ne inline kvuli CSP. */

.mh-hledani__popisek {
  display: block;
  margin-bottom: 8px;
  font-family: var(--header-font);
  font-weight: 700;
  color: var(--header);
}

/* Ikona sedi v poli, proto relative obal + leve odsazeni inputu. */
.mh-hledani {
  position: relative;
}

.mh-hledani i {
  position: absolute;
  top: 50%;
  left: 16px;
  transform: translateY(-50%);
  color: var(--text);
  pointer-events: none;
}

/* Zakladni input[type=search] v teto sablone ma pruhledny ramecek a zadne
   pozadi — v bile sekci by pole nebylo videt vubec.

   ⚠️ Selektor MUSI byt dvojity. `input[type=search]` ma specificitu (0,1,1)
   — atribut se pocita jako trida — takze samotne `.mh-hledani__pole` (0,1,0)
   prohraje a `padding: 15px` ze zakladu prebije `padding-left`. Lupa pak lezi
   pres text. Overeno v prohlizeci, ne odhadem. */
.mh-hledani .mh-hledani__pole {
  padding-left: 44px;
  background-color: var(--white);
  border: 1px solid var(--border);
}

.mh-hledani .mh-hledani__pole:hover {
  border-color: var(--theme);
}

/* Sablona globalne rusi `outline` na :focus, takze viditelnost fokusu musi
   dodat vlastni prstenec — jinak uzivatel klavesnice nevi, kde stoji. */
.mh-hledani .mh-hledani__pole:focus-visible {
  border-color: var(--theme);
  box-shadow: 0 0 0 3px var(--transparent);
}

/* Odecitacovy live region. Prazdny nic nezabira, s textem se chova jako
   bezna poznamka pod polem. */
.mh-hledani__stav {
  margin: 12px 0 0;
  color: var(--text);
}

.mh-hledani__stav:empty {
  margin: 0;
}

@media (prefers-reduced-motion: reduce) {
  .mh-hledani .mh-hledani__pole {
    transition: none;
  }
}

/* ===== Odkaz na publikaci (DOI) ============================================ */
/* Karty publikaci na /nucleotica. Bezny <a> v textu dedi barvu okoli
   (rgb(8,47,73)) a nema podtrzeni — od bezneho textu ho nikdo nerozezna.
   Odkaz proto dostava barvu tematu, podtrzeni a ikonu externiho cile. */

.mh-doi {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--theme);
  text-decoration: underline;
  text-underline-offset: 3px;
  font-weight: 600;
}

.mh-doi:hover,
.mh-doi:focus-visible {
  color: var(--header);
}

.mh-doi i {
  font-size: 0.85em;
}

/* ---------------------------------------------------------------------------
   Dlazdice NGS panelu na /genes2me (2026-09-25)

   Nahradily anglicky rastr `ngs-panely.webp`. Stavi na `.mh-obor` (stejna
   karta jako sortiment ABDOS, klient ji odsouhlasil), meni jen ikonu:
   misto Font Awesome je tu VYRIZNUTY odznak z puvodni grafiky vyrobce.

   ⚠️ Ikona je 98x98 px a zobrazuje se na 64 px — zmenseni je zamer (ostrost
   na retine). Predloha vic nema: v rastru mely odznaky ~98 px, takze
   zvetsovat je neni z ceho. Kdo zvedne `width` nad 98, dostane rozmazane.
   --------------------------------------------------------------------------- */

/* Karta si drzi vlastni vysku — seznamy panelu jsou ruzne dlouhe (7 polozek
   u onkologie, 1 u HRD) a `height: 100%` ze `.mh-obor` by u tech kratkych
   nechalo pulku karty prazdnou. */
.mh-ngs {
  height: auto;
}

.mh-ngs__ikona {
  width: 64px;
  height: 64px;
  margin-bottom: 14px;
}

.mh-ngs .header-md {
  margin-bottom: 14px;
}

.mh-ngs__panely {
  margin: 0;
  padding: 0;
  list-style: none;
}

.mh-ngs__panely li {
  padding: 8px 0;
  border-top: 1px solid #e6eef9;
}

.mh-ngs__panely li:first-child {
  border-top: 0;
  padding-top: 0;
}

.mh-ngs__nazev {
  display: block;
  font-weight: 600;
  color: var(--header);
  line-height: 1.35;
}

/* Rozsah panelu je doprovodny udaj, ne druhy nadpis — proto mensi a svetlejsi. */
.mh-ngs__rozsah {
  display: block;
  font-size: 14px;
  color: var(--text);
  opacity: 0.75;
}

/* Poznamka o zdroji dat. Zustava viditelna schvalne: cisla jsou tvrzeni
   vyrobce, ne nase mereni. */
.mh-ngs__zdroj {
  margin: 0;
  font-size: 14px;
  opacity: 0.75;
}
