/* VizadoCiny.cz redesign — GLOBAL CSS (from Claude Design handoff README).
   Loaded only on redesign-* pages. All component styling is INLINE in the
   captured HTML; this file provides fonts base, keyframes, hover/active states
   and responsive collapse only. */

*{box-sizing:border-box;}
body.vc-redesign{font-family:'Figtree',-apple-system,sans-serif;color:#26262B;background:#fff;-webkit-font-smoothing:antialiased;}
body.vc-redesign ::selection{background:#BF1725;color:#fff;}

/* Elementor Canvas: kill default content spacing so captured blocks sit flush */
body.vc-redesign .elementor-section .elementor-container{max-width:none;}
body.vc-redesign .elementor-widget-html{line-height:normal;}
body.vc-redesign .elementor-widget:not(:last-child){margin-bottom:0;}
body.vc-redesign .elementor-top-section,
body.vc-redesign .elementor-element,
body.vc-redesign .elementor-widget-container,
body.vc-redesign .elementor-widget-html .elementor-widget-container{margin:0;padding:0;}
body.vc-redesign main{margin:0;display:block;}

/* Neutralize theme (Neve) interference on the captured inline-styled markup.
   Neve forces svg width->0 (icons vanish) and adds img/svg constraints. */
body.vc-redesign svg{ max-width:none; flex:none; }
body.vc-redesign img{ max-width:none; height:auto; }
body.vc-redesign a{ box-shadow:none; }
body.vc-redesign button{ font-family:inherit; }

@keyframes vdcFade{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}
@keyframes vdcFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-9px);}}

/* nav link underline */
.vdc-navlink{position:relative;cursor:pointer;}
.vdc-navlink::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;background:#BF1725;transform:scaleX(0);transform-origin:left;transition:transform .2s ease;}
.vdc-navlink:hover::after{transform:scaleX(1);}

/* buttons */
.vdc-btnA{transition:transform .15s,box-shadow .15s,background .15s;}
.vdc-btnA:hover{transform:translateY(-2px);background:#D8920A;box-shadow:0 10px 26px rgba(235,160,10,.34);}
.vdc-btnR{transition:transform .15s,box-shadow .15s,background .15s;}
.vdc-btnR:hover{transform:translateY(-2px);background:#9E1220;box-shadow:0 10px 26px rgba(191,23,37,.30);}
.vdc-btnO{transition:background .15s,color .15s,border-color .15s;}
.vdc-btnO:hover{background:#BF1725;color:#fff;border-color:#BF1725;}

/* cards + faq + footer */
.vdc-card{transition:transform .2s,box-shadow .2s,border-color .2s;}
.vdc-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(22,22,26,.10);border-color:#E0DCD6;}
.vdc-faq{cursor:pointer;}
.vdc-faq:hover{background:#FBF9F7;}
.vdc-foot a{transition:color .15s;} .vdc-foot a:hover{color:#fff;}

/* anchors injected over runtime nav: inherit look, no underline */
.vdc-navlink, .vdc-foot a, a.vdc-asis{text-decoration:none;color:inherit;}

/* mobile hamburger hidden on desktop */
.vdc-mob{display:none !important;}

/* tablets (<=1024px): nav is too wide -> use hamburger, keep multi-column body */
@media(max-width:1024px){
  .vdc-desk{display:none !important;}
  .vdc-mob{display:inline-flex !important;}
}

/* below 900px: collapse multi-column grids to one column */
@media(max-width:900px){
  .vdc-hero-grid, .vdc-2col, .vdc-3col, .vdc-contact-info, .vdc-fakt{grid-template-columns:1fr !important;}
  .vdc-foot-grid{grid-template-columns:1fr 1fr !important;}
  .vdc-h1{font-size:38px !important;}
  .vdc-sec{padding:56px 22px !important;}
}
@media(max-width:600px){
  .vdc-foot-grid{grid-template-columns:1fr !important;}
}
/* hide the dark top info bar on phones (doesn't fit; contacts are in the menu) */
@media(max-width:768px){
  .vc-topbar{display:none !important;}
}
/* Ceník: push the Objednat button to the bottom so all 3 align + center label */
.vc-price-cta{ margin-top:auto !important; text-align:center !important; justify-content:center !important; display:block !important; }

/* ===== FAPI order form (Objednat) scoped styling ===== */
/* === Písma a barvy webu VízadoČíny.cz === */

/* widen the order form: wrapper caps the column, #vdc-fapi fills it.
   desktop ~ 860px (vs old 640) so the item row + price don't cramp;
   mobile = near-full-width to cover the screen. */
.vdc-fapi-wrap { max-width: 900px; padding: 56px 24px; }
@media (max-width: 700px) { .vdc-fapi-wrap { padding: 36px 12px; } }
@media (max-width: 440px) { .vdc-fapi-wrap { padding: 28px 8px; } }

#vdc-fapi {
  --vdc-red: #BF1725;
  --vdc-ink: #16161A;
  --vdc-line: #E4E1DB;
  --vdc-field: #FCFBF9;
  font-family: 'Figtree', -apple-system, sans-serif;
  color: var(--vdc-ink);
  max-width: 100%;
  width: 100%;
}

/* Sjednocení písma FAPI formuláře s webem. FAPI renderuje formulář (.fapi-order-form)
   z externího skriptu a řídí veškerý font přes tři vlastní CSS proměnné; výchozí je
   systémový ui-sans-serif stack, který se vizuálně liší od webu. Přepisem proměnných
   nastavíme tělo na Figtree a sekční hlavičky + odesílací tlačítko na Sora.
   POZOR: tohle pravidlo je jen fallback. LiteSpeed UCSS (Used CSS) prořezává selektory,
   které nejsou v počátečním HTML, a #vdc-fapi formulář vkládá FAPI Vue až za běhu, takže
   všechna #vdc-fapi pravidla z tohoto souboru UCSS na živém webu odstraní. Skutečné
   nasazení vzhledu (font + zaoblená pole/červený focus/popisky/tlačítko dle Claude Design
   FAPI-formular-styly.html) proto dělá vdc.js -> initFapiStyle() (runtime <style>, mimo UCSS). */
#vdc-fapi .fapi-order-form {
  --font-family: 'Figtree', -apple-system, sans-serif;
  --container-header-font-family: 'Sora', sans-serif;
  --submit-button-font-family: 'Sora', sans-serif;
}

/* item row: vertically center the quantity control (- 1 +) with the line price.
   align-items alone is not enough: FAPI bottom-aligns the price column via a per-child
   align-self, so we also force align-self:center on both columns. */
#vdc-fapi .f-flex-col-reverse.f-self-start { align-items: center !important; }
#vdc-fapi .f-flex-col-reverse.f-self-start > * { align-self: center !important; }

/* FAPI privacy/purposes note above the submit button: was 18px (too big next to the
   13.5px consent labels). Shrink + mute. Rule is bare (not under #vdc-fapi) because
   FAPI renders this block as a sibling of the embed div. redesign.css loads only on
   redesign-* pages, so no global leakage. */
.fapi-form-result-primary-purposes,
.fapi-form-result-primary-purposes * { font-size: 13px !important; line-height: 1.5 !important; }
.fapi-form-result-primary-purposes { color: #8A857C !important; }

/* nadpisy a popisky polí */
#vdc-fapi h1, #vdc-fapi h2, #vdc-fapi h3, #vdc-fapi legend {
  font-family: 'Sora', sans-serif; font-weight: 700; color: var(--vdc-ink);
}
#vdc-fapi label {
  font-family: 'Sora', sans-serif; font-weight: 600;
  font-size: 13.5px; color: var(--vdc-ink);
  display: block; margin-bottom: 7px;
}

/* vstupní pole, výběry a textová pole */
#vdc-fapi input[type="text"],
#vdc-fapi input[type="email"],
#vdc-fapi input[type="tel"],
#vdc-fapi input[type="number"],
#vdc-fapi input[type="date"],
#vdc-fapi select,
#vdc-fapi textarea {
  width: 100%; box-sizing: border-box;
  border: 1.5px solid var(--vdc-line);
  border-radius: 10px;
  padding: 13px 14px;
  font-family: 'Figtree', sans-serif; font-size: 15.5px;
  color: var(--vdc-ink); background: var(--vdc-field);
  outline: none; margin-bottom: 16px;
  transition: border-color .15s, box-shadow .15s;
}
#vdc-fapi input:focus,
#vdc-fapi select:focus,
#vdc-fapi textarea:focus {
  border-color: var(--vdc-red);
  box-shadow: 0 0 0 3px rgba(191, 23, 37, .12);
}
#vdc-fapi textarea { min-height: 110px; resize: vertical; }

/* zaškrtávací políčka (souhlasy) */
#vdc-fapi input[type="checkbox"],
#vdc-fapi input[type="radio"] {
  accent-color: var(--vdc-red); width: 17px; height: 17px;
}

/* odesílací tlačítko */
#vdc-fapi button,
#vdc-fapi input[type="submit"],
#vdc-fapi .fapi-submit,
#vdc-fapi .btn {
  background: var(--vdc-red); color: #fff;
  font-family: 'Sora', sans-serif; font-weight: 700; font-size: 16px;
  padding: 15px 28px; border: none; border-radius: 10px;
  cursor: pointer; box-shadow: 0 8px 20px rgba(191, 23, 37, .2);
  transition: background .15s, transform .15s;
}
#vdc-fapi button:hover,
#vdc-fapi input[type="submit"]:hover {
  background: #9E1220; transform: translateY(-2px);
}

/* chybové a povinné stavy */
#vdc-fapi .error, #vdc-fapi .fapi-error { color: #BF1725; font-size: 13.5px; }
#vdc-fapi .required { color: #BF1725; }

/* ===== Blog: Theme Builder Single + Archive ===== */
/* Single featured image: rounded + constrained; hidden when post has no image */
.vc-single-fimg img{ border-radius:14px; width:100%; max-height:460px; object-fit:cover; display:block; margin:18px 0 6px; }
body.vc-no-thumb .vc-single-fimg{ display:none !important; }
/* breadcrumb */
.vc-breadcrumb{ font-family:'Figtree',sans-serif; font-size:13px; color:#8A857C; margin-bottom:8px; }
.vc-breadcrumb a{ color:#8A857C; text-decoration:none; }
.vc-breadcrumb a:hover{ color:#BF1725; }
/* article body */
.vc-single-content{ font-family:'Figtree',sans-serif; font-size:17px; line-height:1.75; color:#26262B; }
.vc-single-content h2{ font-family:'Sora',sans-serif; font-weight:700; color:#16161A; margin:32px 0 12px; }
.vc-single-content h3{ font-family:'Sora',sans-serif; font-weight:700; color:#16161A; margin:24px 0 10px; }
.vc-single-content a{ color:#BF1725; }
/* ===== Internal pages: client login (prihlaseni 5284) + SMS gate (2907) + portal (5289).
   CSS-only restyle scoped by page id; functionality (FAPI Member / WP password) untouched. ===== */
body.page-id-5284 h1, body.page-id-2907 h1{ text-align:center; }
body.page-id-5284 .fapiShortcodeLoginForm,
body.page-id-2907 .post-password-form{
  max-width:440px; margin:18px auto 50px; background:#fff; border:1px solid #E4E1DB;
  border-radius:16px; padding:34px 30px; box-shadow:0 14px 40px rgba(22,22,26,.08); }
body.page-id-5284 .fapiShortcodeLoginForm label,
body.page-id-2907 .post-password-form label{ font-family:'Sora',sans-serif; font-weight:600; font-size:13.5px; color:#16161A; display:block; margin-bottom:7px; }
body.page-id-5284 .fapiShortcodeLoginForm input[type=text],
body.page-id-5284 .fapiShortcodeLoginForm input[type=password],
body.page-id-2907 .post-password-form input[type=password]{
  width:100%; box-sizing:border-box; border:1.5px solid #E4E1DB; border-radius:10px; padding:13px 14px;
  font-family:'Figtree',sans-serif; font-size:15.5px; background:#FCFBF9; margin-bottom:14px; }
body.page-id-5284 .fapiShortcodeLoginForm input:focus,
body.page-id-2907 .post-password-form input:focus{ border-color:#BF1725; outline:none; box-shadow:0 0 0 3px rgba(191,23,37,.12); }
body.page-id-5284 .fapiShortcodeLoginForm input[type=submit],
body.page-id-2907 .post-password-form input[type=submit]{
  width:100%; background:#BF1725; color:#fff; border:none; border-radius:10px; padding:14px;
  font-family:'Sora',sans-serif; font-weight:700; font-size:16px; cursor:pointer; transition:background .15s; }
body.page-id-5284 .fapiShortcodeLoginForm input[type=submit]:hover,
body.page-id-2907 .post-password-form input[type=submit]:hover{ background:#9E1220; }
/* WP wraps the password field + submit in a flex <p> (label shrinks to ~138px, button huge
   beside it). Force a clean stacked card: label + full-width input, full-width button below. */
body.page-id-2907 .post-password-form p{ display:block !important; margin:0; }
body.page-id-2907 .post-password-form label{ display:block !important; width:100%; }
body.page-id-2907 .post-password-form input[type=password]{ display:block; width:100% !important; }
body.page-id-2907 .post-password-form input[type=submit]{ width:100% !important; margin-top:16px; }
/* more breathing room around the "Heslo:" label (separate from the description + the input) */
body.page-id-2907 .post-password-form label{ margin:24px 0 22px !important; }
/* input sits inside the <label> after the "Heslo:" text -> its margin-top is the real gap */
body.page-id-2907 .post-password-form label input[type=password],
body.page-id-2907 .post-password-form input[type=password]{ margin-top:16px !important; }
/* Klientský portál (5289): rebrand the existing Elementor design to the new look. Targets
   standard Elementor widget classes -> reliable without seeing the member-gated render.
   Visual only; FAPI Member shortcodes + page data untouched. */
body.page-id-5289 .elementor-widget-text-editor,
body.page-id-5289 .elementor-widget-theme-post-content,
body.page-id-5289 .entry-content{ font-family:'Figtree',sans-serif; color:#3A3A40; }
body.page-id-5289 h1, body.page-id-5289 h2, body.page-id-5289 h3, body.page-id-5289 h4,
body.page-id-5289 .elementor-heading-title{ font-family:'Sora',sans-serif; color:#16161A; }
body.page-id-5289 a:not(.elementor-button){ color:#BF1725; }
/* each document = its own flex container with an icon -> render it as a white card */
body.page-id-5289 .e-con:has(> .e-con-inner > .elementor-widget-icon){
  background:#fff !important; border:1px solid #ECEAE6 !important; border-radius:14px !important;
  padding:24px !important; margin-bottom:16px !important; align-items:flex-start !important; }
/* gap between the icon and the heading/text was 0 (text glued to the icon); design uses 18px */
body.page-id-5289 .e-con:has(> .e-con-inner > .elementor-widget-icon) > .e-con-inner{ gap:18px !important; column-gap:18px !important; }
/* icon badge: light-pink box + red icon (Claude Design), not solid red + white */
body.page-id-5289 .elementor-widget-icon .elementor-icon{ background-color:#FBEFEF !important;
  border-radius:11px !important; color:#BF1725 !important; width:46px !important; height:46px !important;
  display:flex !important; align-items:center; justify-content:center; padding:0 !important; }
body.page-id-5289 .elementor-icon{ overflow:hidden !important; }
body.page-id-5289 .elementor-icon svg{ fill:none !important; stroke:#BF1725 !important; width:22px !important; height:22px !important; display:block !important; }
body.page-id-5289 .elementor-icon i{ font-size:22px !important; line-height:1 !important; }
body.page-id-5289 .elementor-icon img{ width:22px !important; height:22px !important; object-fit:contain !important; }
body.page-id-5289 .elementor-widget-icon .elementor-icon i{ color:#BF1725 !important; }
/* outline buttons (Claude Design): white bg, red border + text; fill on hover */
body.page-id-5289 .elementor-button{ background-color:#fff !important; color:#BF1725 !important;
  border:1.5px solid #BF1725 !important; border-radius:9px !important;
  font-family:'Sora',sans-serif !important; font-weight:700 !important; }
body.page-id-5289 .elementor-button:hover{ background-color:#BF1725 !important; color:#fff !important; }

/* SMS tool (2907): brand the tool's form (behind WP password, styled best-effort).
   The password gate card is handled by the .post-password-form rules above. */
body.page-id-2907 .elementor-widget-text-editor input[type=text],
body.page-id-2907 .elementor-widget-text-editor input[type=tel],
body.page-id-2907 .elementor-widget-text-editor input[type=number],
body.page-id-2907 .elementor-widget-text-editor textarea,
body.page-id-2907 .elementor-widget-text-editor select{ border:1.5px solid #E4E1DB; border-radius:10px;
  padding:11px 13px; font-family:'Figtree',sans-serif; font-size:15px; background:#FCFBF9; max-width:100%; }
body.page-id-2907 .elementor-widget-text-editor input:focus,
body.page-id-2907 .elementor-widget-text-editor textarea:focus{ border-color:#BF1725; outline:none;
  box-shadow:0 0 0 3px rgba(191,23,37,.12); }
body.page-id-2907 .elementor-widget-text-editor input[type=submit],
body.page-id-2907 .elementor-widget-text-editor button{ background:#BF1725; color:#fff; border:none;
  border-radius:10px; padding:12px 22px; font-family:'Sora',sans-serif; font-weight:700; cursor:pointer; }
body.page-id-2907 .elementor-widget-text-editor input[type=submit]:hover,
body.page-id-2907 .elementor-widget-text-editor button:hover{ background:#9E1220; }
body.page-id-2907 .elementor-widget-text-editor table{ border-collapse:collapse; width:100%; font-family:'Figtree',sans-serif; }
body.page-id-2907 .elementor-widget-text-editor th{ background:#16161A; color:#fff; padding:9px; text-align:left; }
body.page-id-2907 .elementor-widget-text-editor td{ border-bottom:1px solid #ECEAE6; padding:9px; }
/* prihlaseni (5284): full Claude-design login screen (badge + subtitle + footer link),
   elements injected by vdc.js initClientLogin; functionality (FAPI login) untouched. */
body.page-id-5284 .page-header{ text-align:center; }
body.page-id-5284 .vc-login-badge{ width:72px; height:72px; margin:6px auto 14px; background:#BF1725;
  border-radius:18px; display:flex; align-items:center; justify-content:center; color:#fff;
  box-shadow:0 12px 28px rgba(191,23,37,.28); }
body.page-id-5284 .vc-login-badge svg{ width:32px; height:32px; }
body.page-id-5284 .page-header h1, body.page-id-5284 h1{ text-align:center; font-family:'Sora',sans-serif; font-weight:800; }
body.page-id-5284 .vc-login-sub{ text-align:center; color:#6B6B72; font-family:'Figtree',sans-serif; font-size:16px; margin:8px 0 0; }
body.page-id-5284 .vc-login-foot{ text-align:center; color:#6B6B72; font-family:'Figtree',sans-serif; font-size:15px; margin:22px auto 50px; max-width:440px; }
body.page-id-5284 .vc-login-foot a{ color:#BF1725; font-weight:700; text-decoration:none; }
body.page-id-5284 .fapiShortcodeLoginForm .f-m-row{ margin-bottom:6px; }
body.page-id-5284 .fapiShortcodeLoginForm label{ font-family:'Sora',sans-serif; font-weight:600; font-size:14px; color:#16161A; }
/* forgot-password link on the Heslo row: flex header (label left, link right), input below.
   Flex avoids the overlap the old absolute positioning caused. */
body.page-id-5284 .fapiShortcodeLoginForm .f-m-row.vc-heslo-row{ display:flex; flex-wrap:wrap; align-items:baseline; }
body.page-id-5284 .fapiShortcodeLoginForm .vc-heslo-row label{ flex:1 1 auto; margin-bottom:7px; }
body.page-id-5284 .fapiShortcodeLoginForm .vc-heslo-row a[href*="lostpassword"]{
  flex:0 0 auto; font-family:'Figtree',sans-serif; font-weight:600; font-size:13px; white-space:nowrap;
  color:#BF1725; text-decoration:none; align-self:center; }
body.page-id-5284 .fapiShortcodeLoginForm .vc-heslo-row input[type=password]{ flex:0 0 100%; order:5; }
/* Rady a tipy (blog archive) hero -> match the other pages' intro (cream band, left-aligned
   big Sora title + gray lead). Title/subtitle come from the [vc_arch_title] shortcode. */
.vc-arch-hero{ background-color:#FBFAF8 !important; padding-left:10px !important; padding-right:10px !important; padding-top:26px !important; }
/* match other pages' hero container EXACTLY (1240 + 28px padding) so the title left edge
   lines up at every viewport, not just wide ones */
.vc-arch-hero .elementor-container{ max-width:1240px !important; margin-left:auto !important; margin-right:auto !important; padding-left:28px !important; padding-right:28px !important; }
.vc-arch-title-wrap{ text-align:left; }
.vc-arch-title{ text-align:left !important; font-family:'Sora',sans-serif; font-weight:800;
  font-size:44px !important; color:#16161A; margin:0 !important; }
.vc-arch-sub{ text-align:left; color:#6B6B72; font-family:'Figtree',sans-serif; font-size:18px;
  line-height:1.55; margin:12px 0 0; max-width:680px; }
@media(max-width:600px){
  .vc-arch-title{ font-size:30px !important; }
  .vc-arch-hero .elementor-container{ max-width:100%; }
  .vc-arch-sub{ font-size:16px; }
}

/* archive/search title */
.vc-arch-title{ font-family:'Sora',sans-serif; font-weight:800; font-size:40px; color:#16161A; text-align:center; margin:0; }
@media(max-width:600px){ .vc-arch-title{ font-size:30px; } }

/* article's own CTA section -> rounded red box (match the redesign CTA look) */
.vc-single-content .elementor-section:has(.elementor-button[href*="objednavka"]){
  border-radius:18px !important; overflow:hidden; margin:36px 0 8px !important; }
.vc-single-content .elementor-section:has(.elementor-button[href*="objednavka"]) .elementor-button{
  border-radius:10px !important; padding:14px 30px !important; font-family:'Sora',sans-serif !important; font-weight:700 !important; }

/* article FAQ (Elementor toggle in post content) -> match the redesign FAQ look,
   consistent across all articles */
.vc-single-content .elementor-toggle .elementor-toggle-item{
  background:#fff; border:1px solid #E4E1DB; border-radius:12px; margin-bottom:12px; overflow:hidden; }
.vc-single-content .elementor-toggle .elementor-tab-title{
  font-family:'Sora',sans-serif !important; font-weight:600 !important; font-size:17px !important; color:#16161A !important;
  padding:18px 22px !important; border:none !important; background:#fff !important; transition:background .15s; }
.vc-single-content .elementor-toggle .elementor-tab-title:hover{ background:#FBF9F7 !important; }
.vc-single-content .elementor-toggle .elementor-tab-title.elementor-active{ color:#BF1725 !important; }
.vc-single-content .elementor-toggle .elementor-tab-content{
  font-family:'Figtree',sans-serif !important; font-size:16px !important; line-height:1.7 !important; color:#5C5C64 !important;
  padding:4px 22px 20px !important; border:none !important; }
.vc-single-content .elementor-toggle .elementor-toggle-icon{ color:#BF1725 !important; }

/* archive cards: each .elementor-post is a card */
.vc-arch-posts .elementor-post{ border-radius:16px; overflow:hidden; border:1px solid #ECEAE6;
  background:#fff; box-shadow:0 6px 20px rgba(22,22,26,.05); transition:transform .2s,box-shadow .2s; }
.vc-arch-posts .elementor-post:hover{ transform:translateY(-4px); box-shadow:0 16px 36px rgba(22,22,26,.10); }
.vc-arch-posts .elementor-post__thumbnail__link{ margin:0; }
.vc-arch-posts .elementor-post__text{ padding:20px 22px 24px; }
.vc-arch-posts .elementor-post__title{ margin:0 0 8px; }
.vc-arch-posts .elementor-post__title a{ font-family:'Sora',sans-serif; font-weight:700; color:#16161A; font-size:18px; line-height:1.3; }
.vc-arch-posts .elementor-post__read-more{ color:#BF1725; font-family:'Sora',sans-serif; font-weight:600; text-decoration:none; }

/* pinned (sticky) article = full-width FEATURED card: image left, text right.
   Elementor sets inline display:none on the sticky post in archives -> override with !important. */
.vc-arch-posts .elementor-grid .elementor-post.sticky{ grid-column:1 / -1; display:grid !important;
  grid-template-columns:1.25fr 1fr; align-items:stretch; }
.vc-arch-posts .elementor-post.sticky .elementor-post__thumbnail__link{ width:100%; height:100%; display:block; margin:0; }
.vc-arch-posts .elementor-post.sticky .elementor-post__thumbnail{ width:100%; height:100%; min-height:360px; padding-bottom:0 !important; position:relative; }
/* override Elementor's .elementor-fit-* centering so the image fills the whole cell */
.vc-arch-posts .elementor-post.sticky .elementor-post__thumbnail img{
  position:absolute !important; left:0 !important; top:0 !important; right:0 !important; bottom:0 !important;
  width:100% !important; height:100% !important; max-width:none !important; object-fit:cover !important;
  transform:none !important; }
.vc-arch-posts .elementor-post.sticky .elementor-post__text{ padding:36px 38px; display:flex; flex-direction:column; justify-content:center; }
.vc-arch-posts .elementor-post.sticky .elementor-post__title a{ font-size:28px; }
.vc-arch-posts .elementor-post.sticky .elementor-post__excerpt{ font-size:16px; }
@media(max-width:900px){ .vc-arch-posts .elementor-post.sticky{ grid-template-columns:1fr; }
  .vc-arch-posts .elementor-post.sticky .elementor-post__thumbnail{ min-height:200px; } }
/* fallback: never show a comments count (comments are disabled) */
.vc-arch-posts .elementor-post__comments,
.elementor-post__meta-data .elementor-post-comments{ display:none !important; }

/* ===== CookieYes banner: replace the default blue with brand colors (accept = gold like
   the "Chci vízum" CTA, reject/customize = red outline). ===== */
.cky-btn-accept{ background:#EBA00A !important; border-color:#EBA00A !important; color:#16161A !important; }
.cky-btn-accept:hover{ background:#d6900a !important; border-color:#d6900a !important; }
.cky-btn-reject, .cky-btn-customize{ background:#fff !important; color:#BF1725 !important; border:1.5px solid #BF1725 !important; }
.cky-btn-reject:hover, .cky-btn-customize:hover{ background:#BF1725 !important; color:#fff !important; }
.cky-consent-bar .cky-banner-btn-close svg path{ stroke:#16161A !important; }

/* ===== 404 page (Claude Design): full-width dark section, stylized 404 with a
   "nedoručeno" stamp, new copy, 3 actions. Content injected by vdc.js initNotFound. ===== */
body.error404 .vc-404-host{ background:#16161A !important; width:100vw !important; max-width:none !important;
  margin-left:calc(50% - 50vw) !important; margin-right:calc(50% - 50vw) !important; padding:96px 24px 104px !important;
  box-sizing:border-box; }
.vc-404-wrap{ max-width:680px; margin:0 auto; text-align:center; }
.vc-404-figure{ position:relative; display:inline-block; margin-bottom:18px; }
.vc-404-big{ font-family:'Sora',sans-serif; font-weight:800; font-size:clamp(110px,20vw,196px);
  line-height:.92; letter-spacing:-2px; color:#fff;
  background:linear-gradient(180deg,#fff 0%,#BF1725 160%); -webkit-background-clip:text;
  background-clip:text; -webkit-text-fill-color:transparent; }
.vc-404-stamp{ position:absolute; top:14px; right:-26px; transform:rotate(-11deg);
  border:2.5px dashed #BF1725; color:#BF1725; font-family:'Sora',sans-serif; font-weight:800;
  font-size:13px; letter-spacing:1px; padding:7px 12px; border-radius:8px; text-transform:uppercase;
  background:rgba(191,23,37,.07); }
.vc-404-eyebrow{ font-family:'Sora',sans-serif; font-weight:700; font-size:13px; letter-spacing:2px;
  text-transform:uppercase; color:#EBA00A; margin-bottom:14px; }
.vc-404-title{ font-family:'Sora',sans-serif; font-weight:800; font-size:clamp(28px,4.4vw,42px);
  color:#fff; margin:0 0 16px; line-height:1.2; }
.vc-404-text{ font-family:'Figtree',sans-serif; font-size:17px; line-height:1.6; color:#B9B7B2; margin:0 auto 32px; max-width:560px; }
.vc-404-actions{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.vc-404-btn{ display:inline-block; padding:14px 28px; border-radius:10px; font-family:'Sora',sans-serif;
  font-weight:700; text-decoration:none; transition:background .15s,color .15s,transform .15s; }
.vc-404-btn:hover{ transform:translateY(-2px); }
.vc-404-primary{ background:#BF1725; color:#fff; }
.vc-404-primary:hover{ background:#9E1220; }
.vc-404-gold{ background:#EBA00A; color:#16161A; }
.vc-404-gold:hover{ background:#d6900a; }
.vc-404-ghost{ background:transparent; color:#fff; border:1.5px solid rgba(255,255,255,.4); }
.vc-404-ghost:hover{ background:#fff; color:#16161A; border-color:#fff; }
@media(max-width:600px){ .vc-404-stamp{ right:-8px; font-size:11px; } body.error404 .vc-404-host{ padding:64px 18px 72px; } }

/* portal: document-card title red (Claude Design); description stays dark */
body.page-id-5289 .e-con:has(> .e-con-inner > .elementor-widget-icon) .elementor-widget-heading:first-of-type .elementor-heading-title{ color:#BF1725 !important; }
/* portal: primary action 'Vyplnit on-line' = filled red (others stay outline) */
body.page-id-5289 .elementor-button[href*="/online"]{ background-color:#BF1725 !important; color:#fff !important; }
body.page-id-5289 .elementor-button[href*="/online"]:hover{ background-color:#9E1220 !important; color:#fff !important; }

/* ===== SMS tool (page 2907, custom snippet): align with the new design. Keeps the
   functional prijem(blue)/odeslani(orange) colour-coding; only fonts/fields/buttons/card. ===== */
body.page-id-2907 .sms-wrap{ font-family:'Figtree',sans-serif; background:#fff !important;
  border:1px solid #ECEAE6 !important; border-radius:16px !important; }
body.page-id-2907 .sms-wrap h1, body.page-id-2907 .sms-wrap h2, body.page-id-2907 .sms-wrap h3,
body.page-id-2907 .msg-group-title, body.page-id-2907 .table-header,
body.page-id-2907 .tpl-header, body.page-id-2907 .badge{ font-family:'Sora',sans-serif !important; }
body.page-id-2907 .sms-wrap label, body.page-id-2907 .sms-wrap p,
body.page-id-2907 .msg-option, body.page-id-2907 .sms-table{ font-family:'Figtree',sans-serif !important; }
body.page-id-2907 .sms-wrap input[type=text], body.page-id-2907 .sms-wrap textarea{
  font-family:'Figtree',sans-serif !important; border:1.5px solid #E4E1DB !important;
  border-radius:10px !important; background:#FCFBF9 !important; }
body.page-id-2907 .sms-wrap input[type=text]:focus, body.page-id-2907 .sms-wrap textarea:focus{
  border-color:#BF1725 !important; box-shadow:0 0 0 3px rgba(191,23,37,.12) !important; outline:none !important; }
body.page-id-2907 .btn-send, body.page-id-2907 .btn-save, body.page-id-2907 .btn-search{
  font-family:'Sora',sans-serif !important; font-weight:700 !important; border-radius:10px !important;
  background:#BF1725 !important; border:none !important; color:#fff !important; }
body.page-id-2907 .btn-send:hover, body.page-id-2907 .btn-save:hover, body.page-id-2907 .btn-search:hover{
  background:#9E1220 !important; }
body.page-id-2907 .msg-group{ border-radius:12px !important; }
body.page-id-2907 .pagination .active{ background:#BF1725 !important; color:#fff !important; border-color:#BF1725 !important; }

/* ===== Klientský portál: user-info card + info callout (match Claude Design) ===== */
/* user card = ONE wide card (Claude Design): dark round icon | "Uživatel: name" + expiry | "Odhlásit se" link.
   vdc.js initPortal rebuilds the FAPI markup into .vc-utext / .vc-uname / .vc-uexp / a.vc-logout. */
body.page-id-5289 .vc-userblock{ display:block !important; width:100% !important; max-width:100% !important; }
body.page-id-5289 .fapiShortcodeUser{ display:flex !important; align-items:center !important; gap:16px;
  background:#FBFAF8 !important; border:1px solid #ECEAE6 !important; border-radius:14px !important;
  padding:16px 22px !important; width:100% !important; max-width:440px !important; margin-left:auto !important; margin-bottom:8px;
  box-shadow:0 1px 3px rgba(22,22,26,.05); }
body.page-id-5289 .fapiShortcodeUser .i{ flex:0 0 auto !important; width:42px !important; height:42px !important; border-radius:50% !important;
  background:#16161A !important; display:flex !important; align-items:center !important; justify-content:center !important; }
body.page-id-5289 .fapiShortcodeUser .i svg{ width:20px !important; height:20px !important; fill:#fff !important; }
body.page-id-5289 .vc-utext{ display:flex; flex-direction:column; gap:2px; flex:1 1 auto; min-width:0; }
body.page-id-5289 .vc-uname{ font-family:'Sora',sans-serif; font-weight:700; color:#16161A; font-size:14px;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
body.page-id-5289 .vc-uexp{ font-family:'Figtree',sans-serif; color:#6B6B72; font-size:12.5px; line-height:1.3; white-space:nowrap; }
/* keep the user card roomy even when its column shrinks (left column is an empty spacer) */
body.page-id-5289 .vc-usercol{ flex:0 1 auto !important; min-width:400px !important; }
@media(max-width:560px){
  body.page-id-5289 .vc-usercol{ min-width:0 !important; width:100% !important; }
  body.page-id-5289 .fapiShortcodeUser{ max-width:100% !important; }
  body.page-id-5289 .vc-uexp{ white-space:normal; }
}
body.page-id-5289 .fapiShortcodeUser .f-m-submenu{ display:none !important; }
body.page-id-5289 .fapiShortcodeUser .vc-logout{ flex:0 0 auto; margin-left:20px; color:#BF1725 !important;
  background:none !important; border:none !important; padding:0 !important; border-radius:0 !important;
  font-family:'Sora',sans-serif !important; font-weight:700 !important; font-size:14px !important;
  text-decoration:none !important; white-space:nowrap; }
body.page-id-5289 .fapiShortcodeUser .vc-logout:hover{ background:none !important; color:#BF1725 !important; text-decoration:underline !important; }
body.page-id-5289 .vc-info-box{ background:#FBF4F4 !important; border-left:4px solid #BF1725 !important;
  border-radius:10px !important; padding:16px 20px !important; margin:18px 0 !important; }

/* ===== SMS tool: exact Claude Design colours (PŘÍJEM = red, ODESLÁNÍ = gold, send = gold) ===== */
body.page-id-2907 .msg-group{ border-radius:16px !important; }
body.page-id-2907 .msg-group.prijem{ background:#FBEFEF !important; border-color:#F3D9D9 !important; }
body.page-id-2907 .msg-group.prijem .msg-group-title{ color:#BF1725 !important; }
body.page-id-2907 .msg-group.odeslani{ background:#FEF8EE !important; border-color:#F2D6A8 !important; }
body.page-id-2907 .msg-group.odeslani .msg-group-title{ color:#C98A1E !important; }
body.page-id-2907 .sms-wrap input[type=radio]{ accent-color:#BF1725 !important; }
body.page-id-2907 .btn-send{ background:#EBA00A !important; color:#16161A !important; }
body.page-id-2907 .btn-send:hover{ background:#d6900a !important; }
body.page-id-2907 .badge-prijem{ background:#FBEFEF !important; color:#BF1725 !important; border-color:#F3D9D9 !important; }
body.page-id-2907 .badge-odeslani{ background:#FEF8EE !important; color:#C98A1E !important; border-color:#F2D6A8 !important; }

/* SMS: "Uložit texty zpráv" = dark (design), pagination grouped + styled (was spread out) */
body.page-id-2907 .btn-save{ background:#16161A !important; color:#fff !important; }
body.page-id-2907 .btn-save:hover{ background:#000 !important; }
body.page-id-2907 .pagination{ justify-content:flex-start !important; gap:6px !important; }
body.page-id-2907 .pagination a{ display:inline-flex !important; align-items:center; justify-content:center;
  min-width:34px; height:34px; padding:0 10px; border:1px solid #E4E1DB !important; border-radius:8px !important;
  color:#16161A !important; text-decoration:none !important; font-family:'Figtree',sans-serif !important; background:#fff !important; }
body.page-id-2907 .pagination a:hover{ border-color:#BF1725 !important; color:#BF1725 !important; }
body.page-id-2907 .pagination a.active{ background:#EBA00A !important; color:#16161A !important; border-color:#EBA00A !important; font-weight:700 !important; }
body.page-id-2907 .pagination .dots{ padding:0 4px; color:#8A857C; align-self:center; }

/* SMS page: dark hero (Claude Design) replacing the plain "Chráněno: SMS" title. Injected by vdc.js initSms. */
.vc-sms-hero{ background:#16161A; width:100vw; margin-left:calc(50% - 50vw); padding:44px 24px; }
.vc-sms-hero-inner{ max-width:1140px; margin:0 auto; display:flex; align-items:center; gap:20px; }
.vc-sms-badge{ flex:0 0 auto; width:60px; height:60px; border-radius:16px; background:#26262B; display:flex; align-items:center; justify-content:center; }
.vc-sms-badge svg{ width:28px; height:28px; }
.vc-sms-eyebrow{ color:#EBA00A; font-family:'Sora',sans-serif; font-weight:700; font-size:13px; letter-spacing:2px; text-transform:uppercase; }
.vc-sms-hero h1{ color:#fff !important; font-family:'Sora',sans-serif !important; font-weight:800 !important; font-size:clamp(28px,4vw,40px) !important; margin:6px 0 0 !important; text-align:left !important; }

/* portal "O jaký typ víza žádáte?" = dark navy box + gold buttons (Claude Design) */
body.page-id-5289 .vc-visa-navy{ background:#1E1E38 !important; }
body.page-id-5289 .vc-visa-navy.vc-visa-top{ border-radius:18px 18px 0 0; padding-bottom:6px !important; margin-bottom:0 !important; }
body.page-id-5289 .vc-visa-navy.vc-visa-bottom{ border-radius:0 0 18px 18px; padding-top:6px !important; padding-bottom:38px !important; margin-top:0 !important; }
body.page-id-5289 .vc-visa-navy h1, body.page-id-5289 .vc-visa-navy h2, body.page-id-5289 .vc-visa-navy h3,
body.page-id-5289 .vc-visa-navy .elementor-heading-title, body.page-id-5289 .vc-visa-navy p{ color:#fff !important; }
body.page-id-5289 .vc-visa-navy a:not(.elementor-button){ color:#EBA00A !important; }
body.page-id-5289 .vc-visa-navy .elementor-button{ background:#EBA00A !important; color:#16161A !important; border:none !important; font-weight:700 !important; }
body.page-id-5289 .vc-visa-navy .elementor-button:hover{ background:#d6900a !important; color:#16161A !important; }

/* portal cards 1:1 design: smaller card titles (was 32px), subtle shadow, logout below user */
body.page-id-5289 .e-con:has(> .e-con-inner > .elementor-widget-icon) .elementor-widget-heading:first-of-type .elementor-heading-title{ font-size:17px !important; line-height:1.35 !important; margin-bottom:6px !important; }
/* icon stays a fixed 46px badge top-aligned with the title (don't let it stretch with the row) */
body.page-id-5289 .e-con:has(> .e-con-inner > .elementor-widget-icon) > .e-con-inner > .elementor-widget-icon{ align-self:flex-start !important; flex:0 0 auto !important; }
body.page-id-5289 .e-con:has(> .e-con-inner > .elementor-widget-icon){ box-shadow:0 1px 3px rgba(22,22,26,.05) !important; }

/* FAQ: question text had white-space:nowrap -> got cut off on mobile. Let it wrap. */
.vdc-faq button{ align-items:center; }
.vdc-faq button .sc-interp,
.vdc-faq button > span:first-child{ white-space:normal !important; flex:1 1 auto !important; min-width:0; overflow-wrap:break-word; text-align:left; }

/* /informace featured (sticky) card: on mobile stack to 1 column so the landscape image
   isn't cropped into a tall portrait ("zpráskaný"). */
@media(max-width:768px){
  .vc-arch-posts .elementor-post.sticky{ grid-template-columns:1fr !important; }
  .vc-arch-posts .elementor-post.sticky img{ width:100% !important; height:auto !important; aspect-ratio:16/9; object-fit:cover; }
}

/* sticky "Objednat" CTA: robustly pin to the bottom (iOS sometimes floats it mid-screen)
   + respect the iOS home-indicator safe area. */
.vdc-sticky-cta{ top:auto !important; bottom:0 !important;
  padding-bottom:calc(10px + env(safe-area-inset-bottom, 0px)) !important; }
/* CookieYes revisit circle a touch smaller on mobile */
@media(max-width:768px){ .cky-btn-revisit-wrapper{ transform:scale(.78) !important; transform-origin:bottom left; } }

/* /informace: align archive hero title with the content (remove Elementor column 10px pad) */
.vc-arch-hero .elementor-widget-wrap{ padding-left:0 !important; padding-right:0 !important; }

/* ===== Klientský portál: match Claude Design content column (900px section, ~844px inner).
   The live FAPI page rendered everything full-width (~1140); the design keeps it in a narrow
   centered column with a contained rounded navy box. ===== */
/* Each content block (cards, text, headings, navy) is a top-level full-width section.
   Constrain the section BOX itself to 844 so card borders sit at 844 (not full-width).
   The injected hero (.vc-sms-hero) is excluded + stays full-bleed. */
body.page-id-5289 .elementor-5289 > .elementor-element:not(.vc-sms-hero){ max-width:844px !important; margin-left:auto !important; margin-right:auto !important; }
/* navy "O jaký typ víza" = rounded contained box (#2A2640, radius 18) */
body.page-id-5289 .vc-visa-navy{ background:#2A2640 !important; }
body.page-id-5289 .vc-visa-navy.vc-visa-top{ border-radius:18px 18px 0 0 !important; }
body.page-id-5289 .vc-visa-navy.vc-visa-bottom{ border-radius:0 0 18px 18px !important; }

/* Portal video blocks: design has WHITE bg + BLACK BOLD numbered headings
   (live had beige bg #F2F1ED + red weight-500 headings). */
body.page-id-5289 .elementor-element-694c5b0,
body.page-id-5289 .elementor-element-108bafd{ background-color:transparent !important; }
body.page-id-5289 .elementor-element-694c5b0 .elementor-heading-title,
body.page-id-5289 .elementor-element-108bafd .elementor-heading-title{ color:#16161A !important; font-weight:700 !important; font-size:19px !important; line-height:1.3 !important; }
/* section headings "Základní/Dodatečné dokumenty" -> bold (design), were weight 500 */
body.page-id-5289 .vc-sech{ font-weight:700 !important; }

/* ===== Klientský portál: CTA „Zjistit stav objednávky" (app.vizadociny.cz/stav) ===== */
.vc-stav-cta{max-width:900px;margin:26px auto 0;padding:0 28px}
.vc-stav-cta-in{background:#fff;border:1px solid #ECEAE6;border-radius:16px;padding:22px 26px;display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;box-shadow:0 1px 3px rgba(22,22,26,.04)}
.vc-stav-t{font-family:Sora,sans-serif;font-weight:700;font-size:18px;color:#16161A;margin-bottom:4px}
.vc-stav-d{font-size:14px;color:#646970;line-height:1.5}
.vc-stav-btn{flex:none;display:inline-flex;align-items:center;background:#BF1725;color:#fff !important;font-family:Sora,sans-serif;font-weight:600;font-size:14.5px;padding:13px 22px;border-radius:10px;text-decoration:none !important;box-shadow:0 5px 15px rgba(191,23,37,.2)}
.vc-stav-btn:hover{background:#A5121F;color:#fff !important}
@media (max-width:600px){.vc-stav-cta{padding:0 16px}.vc-stav-cta-in{padding:18px}.vc-stav-btn{width:100%;justify-content:center}}

/* WP emoji nikdy nesmí být obří (zapečené img.emoji v obsahu) */
img.emoji{width:1em !important;height:1em !important;display:inline-block !important;vertical-align:-0.12em;margin:0 .07em !important;border:none !important;background:none !important;box-shadow:none !important}

/* A11y (Lighthouse 2026-07-06): kontrast textu v tmavé patičce (#16161A).
   Šedé inline barvy rgb(110,110,118) a rgb(126,126,134) mají <4.5:1, zesvětleny
   na #9a9aa2 (6.3:1, stejná šedá jako e-mail odkaz). Červené části wordmarku
   "do"/"cz" (30px bold) měly 2.89:1, #c91d2b dává 3.1:1 pro velký text. */
.vdc-foot [style*="rgb(110, 110, 118)"]{color:#9a9aa2 !important}
.vdc-foot [style*="rgb(126, 126, 134)"]{color:#9a9aa2 !important}
.vdc-foot [style*="rgb(191, 23, 37)"]{color:#c91d2b !important}

/* A11y: tečky slideru recenzí měly 9x9px tap target (min. 24x24). Tlačítko je
   nově 24x24, viditelná tečka zůstává 9px kruh přes background-clip:content-box
   (inline background aktivní/neaktivní tečky i opacity logika ve vdc.js beze změny). */
[data-rv-dot]{width:24px !important;height:24px !important;padding:7.5px !important;background-clip:content-box !important;border-radius:50% !important}

/* A11y: vodoznakova cisla kroku vykresluje pseudo-element (viz initA11y ve vdc.js) */
span[data-vc-wm]::before{content:attr(data-vc-wm)}
