/* NetVoice – drobná modernizace nad Elementor styly. Načítá se jako poslední. */
:root { --nv-orange: #ec8b2d; --nv-ease: cubic-bezier(.2, .7, .2, 1); }

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
::selection { background: var(--nv-orange); color: #fff; }

/* přístupnost: viditelný focus při ovládání klávesnicí */
:focus-visible { outline: 3px solid var(--nv-orange); outline-offset: 3px; border-radius: 2px; }

/* typografie */
h1, h2, h3 { text-wrap: balance; }
.elementor-widget-text-editor { hyphens: auto; -webkit-hyphens: auto; }
.elementor-widget-text-editor p { text-wrap: pretty; line-height: 1.7; }
a { text-underline-offset: .2em; }

/* karty služeb a referencí: jemný zdvih při najetí */
.elementor-widget-image-box .elementor-image-box-wrapper,
.elementor-widget-image .elementor-widget-container {
  transition: transform .3s var(--nv-ease), box-shadow .3s var(--nv-ease);
}
.elementor-widget-image-box:hover .elementor-image-box-wrapper { transform: translateY(-4px); }
.elementor-widget-image a:hover img { filter: brightness(1.03); }

/* tlačítka */
.elementor-button { transition: transform .2s var(--nv-ease), box-shadow .2s var(--nv-ease), background-color .2s, color .2s; }
.elementor-button:hover { transform: translateY(-1px); }
.elementor-button.elementor-size-md:hover { box-shadow: 0 8px 20px rgba(236, 139, 45, .35); }

/* formuláře */
.elementor-field-textual { transition: border-color .2s, box-shadow .2s; }
.elementor-field-textual:focus { border-color: var(--nv-orange) !important; box-shadow: 0 0 0 3px rgba(236, 139, 45, .25); outline: none; }
.nv-form-note { font-weight: 500; }

/* menu: plynulejší přechody */
.elementor-nav-menu a { transition: color .2s; }

/* doplněné sekce (stránka Phonelix) – ve stylu ostatních referencí */
.nv-extra { font-family: Raleway, sans-serif; color: #5d5e5f; }
.nv-section { padding: 80px 20px; background: #fff; }
.nv-section.nv-alt { background: #f1f1f1; }
.nv-container { max-width: 1140px; margin: 0 auto; }
.nv-eyebrow { color: var(--nv-orange); font-size: 20px; font-weight: 400; margin: 0 0 10px; }
.nv-extra h2 { font-family: Raleway, sans-serif; font-size: 38px; font-weight: 600; text-transform: uppercase; color: #000; margin: 0 0 24px; line-height: 1.15; }
.nv-extra p { font-size: 16px; font-weight: 300; line-height: 1.8; margin: 0 0 16px; max-width: 820px; }
.nv-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 24px; margin-top: 36px; }
.nv-card { background: #fff; padding: 28px 26px; border-left: 3px solid var(--nv-orange); transition: transform .3s var(--nv-ease), box-shadow .3s var(--nv-ease); }
.nv-card:hover { transform: translateY(-4px); box-shadow: 0 12px 28px rgba(0, 0, 0, .08); }
.nv-card h3 { font-family: Raleway, sans-serif; font-size: 18px; font-weight: 600; color: #000; margin: 0 0 10px; }
.nv-card p { font-size: 15px; margin: 0; }
.nv-two { display: grid; grid-template-columns: 1fr 1.4fr; gap: 48px; align-items: start; }
.nv-list { list-style: none; margin: 0; padding: 0; }
.nv-list li { position: relative; padding: 14px 0 14px 34px; border-bottom: 1px solid #e3e3e3; font-weight: 300; font-size: 16px; }
.nv-list li::before { content: ""; position: absolute; left: 0; top: 19px; width: 16px; height: 16px; border-radius: 50%; background: var(--nv-orange); }
.nv-list li::after { content: ""; position: absolute; left: 5px; top: 23px; width: 4px; height: 8px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.nv-cta { background: #f1f1f1; text-align: center; border-bottom: 10px solid var(--nv-orange); }
.nv-cta p { margin-left: auto; margin-right: auto; }
.nv-button { display: inline-block; margin-top: 12px; padding: 14px 38px; border-radius: 40px; background: var(--nv-orange); color: #000; font-weight: 500; text-decoration: none; transition: transform .2s var(--nv-ease), box-shadow .2s var(--nv-ease); }
.nv-button:hover { transform: translateY(-1px); box-shadow: 0 8px 20px rgba(236, 139, 45, .35); }
@media (max-width: 767px) {
  .nv-section { padding: 52px 20px; }
  .nv-extra h2 { font-size: 28px; }
  .nv-two { grid-template-columns: 1fr; gap: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* =====================================================================
   Profi revize (22. 10. 2026)
   ===================================================================== */

/* hlavni oblast (cil odkazu "Preskocit na obsah") */
#nv-main { outline: none; }

/* cislice: Raleway ma defaultne "stare" cislice (186 00 vypada jako 186 oo) -> vzdy radkove */
body, .elementor, .elementor-widget-container { font-variant-numeric: lining-nums; font-feature-settings: "lnum" 1, "kern" 1; }

/* patka vzdy dole, i na kratke strance */
body { min-height: 100vh; display: flex; flex-direction: column; }
body > main { flex: 1 0 auto; }
body > footer { margin-top: auto; }

/* ---------- lista postupu rolovani v horni liste ---------- */
.nv-progress { position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: rgba(0, 0, 0, .05); z-index: 30; pointer-events: none; overflow: hidden; }
.nv-progress__fill { height: 100%; width: 100%; transform-origin: 0 50%; transform: scaleX(0); background: linear-gradient(90deg, #f6a65a, var(--nv-orange) 55%, #d9731a); border-radius: 0 3px 3px 0; will-change: transform; }
.nv-scrolled .elementor-location-header > .elementor-section { box-shadow: 0 8px 28px rgba(0, 0, 0, .12) !important; }

/* ---------- tlacitko nahoru ---------- */
.nv-top { position: fixed; right: 22px; bottom: 22px; z-index: 9000; width: 48px; height: 48px; border: 0; border-radius: 50%; background: var(--nv-orange); color: #fff; display: grid; place-items: center; cursor: pointer; box-shadow: 0 10px 24px rgba(236, 139, 45, .45); opacity: 0; transform: translateY(14px) scale(.9); pointer-events: none; transition: opacity .3s var(--nv-ease), transform .3s var(--nv-ease), background .2s; }
.nv-top.is-visible { opacity: 1; transform: none; pointer-events: auto; }
.nv-top:hover { background: #d9731a; }
.nv-top:focus-visible { outline-color: #1a1a1a; }

/* ---------- odkazy na telefon a e-mail: ne ruzove, jednotne s webem ---------- */
a[href^="tel:"], a[href^="mailto:"] { color: #2b2b2b !important; text-decoration: none; border-bottom: 1px solid rgba(236, 139, 45, .55); transition: color .2s, border-color .2s; }
a[href^="tel:"]:hover, a[href^="mailto:"]:hover { color: var(--nv-orange) !important; border-color: var(--nv-orange); }
.elementor-icon-list-item a { color: inherit; }

/* ---------- animace: svižnejsi, at obsah necha navstevnika cekat ---------- */
.elementor-element.animated-slow, .animated-slow { animation-duration: .9s !important; }
.elementor-element.animated { animation-duration: .7s !important; }

/* ---------- HERO (uvod) ---------- */
.elementor-element-95a72c0 { padding-bottom: 0 !important; }
.elementor-element-95a72c0 > .elementor-background-overlay {
  background-image: linear-gradient(90deg, rgba(246, 246, 246, .96) 0%, rgba(246, 246, 246, .82) 28%, rgba(246, 246, 246, .25) 52%, rgba(246, 246, 246, 0) 66%) !important;
  opacity: 1 !important;
}
.elementor-element-95a72c0 .elementor-element-417ca270 { margin-top: 0 !important; }
.elementor-element-75d9792e .elementor-heading-title { font-size: clamp(34px, 4.4vw, 64px) !important; line-height: 1.06 !important; letter-spacing: -.01em; }
.elementor-element-75d9792e > .elementor-widget-container { padding: 0 !important; }
.elementor-element-5f410bed .elementor-heading-title { font-size: clamp(17px, 1.7vw, 23px) !important; line-height: 1.5 !important; font-weight: 500; max-width: 560px; }
.nv-hero-cta { display: flex; gap: 14px; flex-wrap: wrap; margin: 30px 0 0; padding: 0 15px; }
.nv-btn { display: inline-flex; align-items: center; justify-content: center; padding: 15px 36px; border-radius: 40px; border: 2px solid var(--nv-orange); background: var(--nv-orange); color: #111; font: 600 16px/1 Raleway, sans-serif; text-decoration: none; box-shadow: 0 10px 24px rgba(236, 139, 45, .32); transition: transform .2s var(--nv-ease), box-shadow .2s var(--nv-ease), background .2s, color .2s; }
.nv-btn:hover { transform: translateY(-2px); box-shadow: 0 14px 28px rgba(236, 139, 45, .42); }
.nv-btn-ghost { background: rgba(255, 255, 255, .6); box-shadow: none; backdrop-filter: blur(4px); }
.nv-btn-ghost:hover { background: var(--nv-orange); box-shadow: 0 14px 28px rgba(236, 139, 45, .42); }
@media (max-width: 767px) {
  .elementor-element-95a72c0 { background-size: 210% auto !important; background-position: 70% 100% !important; min-height: calc(100svh - 72px); padding-top: 34px !important; }
  .elementor-element-95a72c0 > .elementor-background-overlay {
    background-image: linear-gradient(180deg, rgba(246, 246, 246, .97) 0%, rgba(246, 246, 246, .88) 42%, rgba(246, 246, 246, 0) 72%) !important;
  }
  .elementor-element-95a72c0 .elementor-container { align-items: flex-start; }
  .elementor-element-75d9792e .elementor-heading-title, .elementor-element-5f410bed .elementor-heading-title { text-align: center; margin-left: auto; margin-right: auto; }
  .nv-hero-cta { justify-content: center; margin-top: 22px; }
  .nv-btn { padding: 14px 28px; }
}

/* ---------- pasy "Digitalni transformace": obrazek uz neni useknuty ---------- */
.elementor-element-31e3aba4 > .elementor-background-overlay,
.elementor-element-5c5f0de > .elementor-background-overlay {
  background-size: cover !important; background-position: center 42% !important;
  -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 26%, #000 74%, transparent 100%);
  mask-image: linear-gradient(to bottom, transparent 0, #000 26%, #000 74%, transparent 100%);
}
.elementor-element-31e3aba4 > .elementor-container,
.elementor-element-5c5f0de > .elementor-container { min-height: 360px; }
.elementor-element-31e3aba4, .elementor-element-5c5f0de { padding-top: 40px !important; padding-bottom: 40px !important; }
@media (max-width: 767px) {
  .elementor-element-31e3aba4 > .elementor-container, .elementor-element-5c5f0de > .elementor-container { min-height: 300px; }
}

/* ---------- Kariera: sedy obdelnik nezasahuje do textu ---------- */
.elementor-element-5146c76f { display: none !important; }

/* ---------- mobilni menu ---------- */
.elementor-menu-toggle { border-radius: 10px !important; background: #fff !important; border: 1px solid rgba(0, 0, 0, .1) !important; color: #1d1d1d !important; transition: border-color .2s, color .2s; }
.elementor-menu-toggle:hover, .elementor-menu-toggle:focus-visible { border-color: var(--nv-orange) !important; color: var(--nv-orange) !important; }

/* citelnost textu v pasech nad grafikou */
.elementor-element-31e3aba4 .elementor-element-populated,
.elementor-element-5c5f0de .elementor-element-populated {
  background: radial-gradient(ellipse 58% 62% at 50% 50%, rgba(246, 246, 246, .94) 0%, rgba(246, 246, 246, .78) 52%, rgba(246, 246, 246, 0) 100%);
  padding-top: 28px; padding-bottom: 28px;
}
/* hero: kompaktni mezery mezi nadpisem a podtitulem */
.elementor-element-75d9792e { margin-bottom: 0 !important; }
.elementor-element-5f410bed { margin-top: 16px !important; }
@media (max-width: 767px) { .elementor-element-75d9792e { margin-bottom: 4px !important; } }

/* dotykove ovladani: dostatecne velke klikaci plochy (min. 44 px) */
@media (max-width: 1024px) {
  .elementor-button { min-height: 44px; display: inline-flex; align-items: center; }
  a[href^="tel:"], a[href^="mailto:"] { display: inline-block; padding: 11px 0; }
  .elementor-nav-menu--dropdown a { min-height: 44px; display: flex; align-items: center; }
}

/* dekorativni sedy obdelnik (absolutni spacer) zasahoval do textu na strankach Kariera / Pracovni pozice */
.elementor-widget-spacer.elementor-absolute { display: none !important; }
/* odkazy v textu: oranzove misto ruzove */
.elementor-widget-text-editor a:not(.elementor-button) { color: #c4691b; text-decoration: underline; text-decoration-color: rgba(236, 139, 45, .6); }
.elementor-widget-text-editor a:not(.elementor-button):hover { color: var(--nv-orange); }
/* kontakt: text nelepi na carkovanou linku */
.elementor-element-4ee74436 > .elementor-element-populated { padding-left: 14px !important; }

/* Capacity Monitor: 4 klicove funkce vedle sebe (tablet = 2 x 2) */
@media (min-width: 768px) and (max-width: 1024px) { .nv-feat4 .elementor-col-25 { width: 50% !important; } }

/* Kariera / Pracovni pozice na mobilu a tabletu: text nelezl pres fotku */
@media (max-width: 1024px) {
  .elementor-element-7b25f7b3, .elementor-element-7f2f2284 { margin-top: 0 !important; padding: 28px 18px 0 !important; }
}

/* ---------- patička ---------- */
.nv-footer { background: #23262b; color: #c9ccd1; font-family: Raleway, sans-serif; }
.nv-footer__in { max-width: 1140px; margin: 0 auto; padding: 56px 20px 40px; display: grid; grid-template-columns: 1.4fr 1fr 1.2fr 1.2fr; gap: 36px; }
.nv-footer__h { margin: 0 0 14px; color: #fff; font-weight: 600; font-size: 16px; letter-spacing: .02em; text-transform: uppercase; }
.nv-footer p { margin: 0 0 12px; font-size: 14.5px; line-height: 1.7; font-weight: 400; }
.nv-footer__col a { display: block; padding: 5px 0; color: #c9ccd1 !important; font-size: 14.5px; text-decoration: none; border: 0 !important; transition: color .2s, transform .2s; }
.nv-footer__col a:hover { color: var(--nv-orange) !important; transform: translateX(3px); }
@media (max-width: 1024px) { .nv-footer__in { grid-template-columns: 1fr 1fr; padding-top: 44px; } }
@media (max-width: 600px) { .nv-footer__in { grid-template-columns: 1fr; gap: 26px; } .nv-footer__col a { padding: 9px 0; } }

/* karty referencí na úvodní stránce: jednotná typografie názvů */
.elementor-element-1492753f .elementor-heading-title, .elementor-element-10690ee9 .elementor-heading-title,
.elementor-element-55d7c473 .elementor-heading-title, .elementor-element-32c05311 .elementor-heading-title,
.elementor-element-259cf8d9 .elementor-heading-title, .elementor-element-1b489dc1 .elementor-heading-title {
  font-size: 28px !important; line-height: 1.2 !important; font-weight: 400 !important; text-transform: none !important;
}
