/* Písmo Open Sans se načítá v Doplňkovém CSS (Vzhled → Upravit → Styly). */

/* === webclone fine-tuning (iterated against reference screenshots) === */
.wc-header-inner { padding: 10px 0; }
.wc-logo img { max-height: 64px; width: auto; display: block; }
.wc-nav a {
  font-size: 15px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0;
  color: rgb(36, 58, 102);
}

/* =====================================================================
   SOUBĚH – struktura podle Coggle (2026-09) – komponenty sb-*
   Barvy pilířů: modrá #0075be, červená #af0b23, zelená #329d31, navy #243a66
   ===================================================================== */
:root {
  --sb-navy: #243a66;
  --sb-blue: #0075be;
  --sb-red: #af0b23;
  --sb-green: #329d31;
  --sb-grey: #f3f4f7;
  --sb-line: #e3e6ee;
  --sb-text: #555;
}
.sb-accent-blue { --sb-accent: #0075be; }
.sb-accent-red { --sb-accent: #af0b23; }
.sb-accent-green { --sb-accent: #329d31; }
.sb-accent-navy { --sb-accent: #243a66; }

/* stránka bez mezer mezi pásy */
.wc-fullpage { margin-block-start: 0; }
.sb-page > * { margin-block-start: 0; margin-block-end: 0; }
.sb-page [id] { scroll-margin-top: calc(var(--sb-header-h, 0px) + 24px); } /* kotvy nezajedou pod sticky hlavičku */
/* plynulý posun na kotvy (příchod z jiné stránky řeší skript v hlavičce, viz functions.php) */
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }

/* ---------- hero ---------- */
.sb-page .sb-hero { background: var(--sb-accent, var(--sb-navy)); padding: 56px 24px 52px; color: #fff; }
.sb-page .sb-hero > * { margin-block-start: 0; }
.sb-page .sb-hero .sb-eyebrow { margin: 0 0 12px; font-size: 12px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: #fff; opacity: .85; }
.sb-page .sb-hero .sb-eyebrow a { color: #fff; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.5); }
.sb-page .sb-hero .sb-eyebrow a:hover { border-bottom-color: #fff; }
.sb-page .sb-hero h1, .sb-page .sb-hero h1.wp-block-heading { margin: 0; color: #fff; font-size: 40px; font-weight: 700; line-height: 1.15; letter-spacing: .5px; text-transform: uppercase; }
.sb-page .sb-hero .sb-hero-sub { margin: 12px 0 0; font-size: 14px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; color: #fff; opacity: .9; }
.sb-page .sb-hero .sb-lead { margin-top: 18px; margin-bottom: 0; font-size: 16px; line-height: 1.7; color: #fff; }
.sb-page .sb-hero ul.sb-hero-list { margin-top: 24px; margin-bottom: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr)); gap: 12px 28px; }
.sb-page .sb-hero .sb-hero-list li { position: relative; margin: 0; padding-left: 16px; color: #fff; font-size: 14px; line-height: 1.5; }
.sb-page .sb-hero .sb-hero-list li::before { content: ''; position: absolute; left: 0; top: .5em; width: 7px; height: 7px; background: #fff; opacity: .7; }
.sb-page .sb-hero .sb-hero-list li strong { display: block; color: #fff; }
.sb-page .sb-hero .wp-block-buttons { margin-top: 26px; }

/* ---------- kotvy (rychlá navigace) ---------- */
.sb-page .sb-chipbar { padding: 18px 24px; background: #fff; border-bottom: 1px solid var(--sb-line); }
.sb-page ul.sb-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.sb-page .sb-chips li { margin: 0; }
.sb-page .sb-chips a { display: inline-block; padding: 6px 14px; border: 1px solid var(--sb-accent); border-radius: 999px; background: #fff; color: var(--sb-accent); font-size: 13px; font-weight: 600; line-height: 1.4; text-decoration: none; transition: background .15s, color .15s; }
.sb-page .sb-chips a:hover, .sb-page .sb-chips a:focus-visible { background: var(--sb-accent); color: #fff; }

/* ---------- sekce ---------- */
.sb-page .sb-section { padding: 52px 24px; }
.sb-page .sb-grey { background: var(--sb-grey); }
.sb-page .sb-section > h2.wp-block-heading { margin: 0 0 26px; font-size: 26px; color: var(--sb-navy); }
.sb-page .sb-section > h2.wp-block-heading + * { margin-block-start: 0; }

/* ---------- karty v mřížce ---------- */
.sb-page .sb-grid { gap: 24px; }
.sb-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--sb-line); border-top: 4px solid var(--sb-accent, var(--sb-navy)); padding: 20px 22px 22px; }
.sb-card > * { margin-block-start: 0; margin-block-end: 0; }
.sb-card > * + * { margin-block-start: 10px; }
.sb-card > .wp-block-image:first-child { margin: -20px -22px 18px; }
.sb-card > .wp-block-image:first-child + * { margin-block-start: 0; }
.sb-card > .wp-block-image img { display: block; width: 100%; height: auto; }
.sb-page .sb-card h3.wp-block-heading { margin: 0; font-size: 19px; font-weight: 700; line-height: 1.3; color: var(--sb-navy); text-transform: none; }
.sb-page .sb-card h3 a { color: inherit; text-decoration: none; }
.sb-page .sb-card h3 a:hover { color: var(--sb-accent); }
.sb-page .sb-card h4.wp-block-heading { margin-block-start: 16px; font-size: 14px; font-weight: 700; line-height: 1.4; color: var(--sb-navy); text-transform: none; }
.sb-page .sb-card p, .sb-page .sb-card li { font-size: 14px; line-height: 1.65; color: var(--sb-text); }
.sb-page .sb-card ul:not(.sb-tags) { margin-block-start: 6px; padding-left: 18px; }
.sb-page .sb-card li + li { margin-top: 2px; }
.sb-page p.sb-sub { font-size: 12px; font-weight: 700; letter-spacing: 1px; line-height: 1.5; text-transform: uppercase; color: var(--sb-accent, var(--sb-navy)); }
.sb-page .sb-card > p.sb-sub { margin-block-start: 4px; }
.sb-page p.sb-more { margin-block-start: auto; padding-top: 14px; }
.sb-page .sb-more a { color: var(--sb-accent, var(--sb-navy)); font-weight: 700; text-decoration: none; }
.sb-page .sb-more a:hover { text-decoration: underline; }

/* katalogy s různě dlouhými kartami → sloupce (masonry), bez prázdných míst */
.sb-page .sb-grid.sb-masonry { display: block; columns: 3 17rem; column-gap: 24px; }
.sb-page .sb-grid.sb-masonry > .sb-card { break-inside: avoid; margin: 0 0 24px; }

/* místo pro fotku: když má v řadě fotku aspoň jedna karta/dlaždice, ostatní dostanou barevnou plochu */
.sb-page .sb-grid:not(.sb-masonry):has(> .sb-card > .wp-block-image:first-child) > .sb-card:not(:has(> .wp-block-image:first-child))::before,
.sb-page .sb-grid:has(> .sb-tile > .wp-block-image:first-child) > .sb-tile:not(:has(> .wp-block-image:first-child))::before {
  content: ''; display: block; aspect-ratio: 3/2;
  background: var(--sb-accent, var(--sb-navy)) repeating-linear-gradient(135deg, rgba(255,255,255,.08) 0 16px, transparent 16px 32px);
}
.sb-page .sb-grid > .sb-card::before { margin: -20px -22px 18px; }
.sb-page .sb-grid > .sb-tile::before { margin: -28px -24px 20px; background-color: rgba(0,0,0,.14) !important; }

/* štítky (původní ikonky) */
.sb-page ul.sb-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-block-start: 16px; padding: 0; list-style: none; }
.sb-page .sb-tags li { margin: 0; padding: 4px 10px; background: var(--sb-grey); border-left: 3px solid var(--sb-accent, var(--sb-navy)); font-size: 11px; font-weight: 700; letter-spacing: .5px; line-height: 1.5; text-transform: uppercase; color: var(--sb-navy); }
.sb-page .sb-grey .sb-zz .sb-tags li { background: var(--sb-grey); }

/* ---------- cik-cak (Media & Text) ---------- */
.sb-page .sb-zzlist { counter-reset: sbzz; }
.sb-page .sb-zzlist > * { margin-block-start: 0; }
.sb-page .sb-zzlist > * + * { margin-block-start: 32px; }
.sb-page .wp-block-media-text.sb-zz { counter-increment: sbzz; background: #fff; border: 1px solid var(--sb-line); grid-template-columns: 42% 1fr; }
.sb-page .wp-block-media-text.sb-zz.has-media-on-the-right { grid-template-columns: 1fr 42%; }
.sb-page .wp-block-media-text.sb-zz > .wp-block-media-text__media { align-self: stretch; position: relative; min-height: 300px; margin: 0; overflow: hidden; background: var(--sb-accent, var(--sb-navy)) repeating-linear-gradient(135deg, rgba(255,255,255,.07) 0 16px, transparent 16px 32px); }
.sb-page .wp-block-media-text.sb-zz > .wp-block-media-text__media img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.sb-page .wp-block-media-text.sb-zz > .wp-block-media-text__media:empty::after { content: counter(sbzz, decimal-leading-zero); position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 84px; font-weight: 700; letter-spacing: 2px; color: rgba(255,255,255,.28); }
.sb-page .wp-block-media-text.sb-zz > .wp-block-media-text__content { padding: 38px 44px; }
.sb-page .sb-zz .wp-block-media-text__content > * { margin-block-start: 0; margin-block-end: 0; }
.sb-page .sb-zz .wp-block-media-text__content > * + * { margin-block-start: 12px; }
.sb-page .sb-zz h2.wp-block-heading { font-size: 24px; font-weight: 700; line-height: 1.25; color: var(--sb-navy); text-transform: none; }
.sb-page .sb-zz h3.wp-block-heading { margin-block-start: 20px; font-size: 15px; font-weight: 700; line-height: 1.4; color: var(--sb-navy); text-transform: none; }
.sb-page .sb-zz p, .sb-page .sb-zz li { font-size: 14px; line-height: 1.7; color: var(--sb-text); }
.sb-page .sb-zz ul:not(.sb-tags) { padding-left: 18px; }
.sb-page .sb-zz p.sb-more { padding-top: 6px; }

/* ---------- detail programu / text ---------- */
.sb-page .sb-body { padding: 48px 24px 24px; }
.sb-page .sb-body > * { margin-block-start: 0; }
.sb-page .sb-body > * + * { margin-block-start: 14px; }
.sb-page .sb-body h2.wp-block-heading { margin-block-start: 34px; font-size: 24px; font-weight: 700; line-height: 1.3; color: var(--sb-navy); text-transform: none; }
.sb-page .sb-body h3.wp-block-heading { margin-block-start: 26px; font-size: 18px; font-weight: 700; color: var(--sb-navy); }
.sb-page .sb-body > h2.wp-block-heading:first-child { margin-block-start: 0; }
.sb-page .sb-body p, .sb-page .sb-body li { font-size: 15px; line-height: 1.75; color: var(--sb-text); }
.sb-page .sb-body a { color: var(--sb-accent, var(--sb-navy)); }
.sb-page .sb-body .wp-block-gallery { margin-block-start: 32px; }
.sb-page .sb-body ul.sb-tags { margin-block-start: 24px; }
.sb-page p.sb-note { margin-block-start: 32px; padding: 14px 18px; background: var(--sb-grey); border-left: 4px solid var(--sb-accent, var(--sb-navy)); font-size: 14px; }
.sb-page p.sb-note a { font-weight: 700; }

/* ---------- výzva na konci stránky ---------- */
.sb-cta { background: var(--sb-navy); padding: 54px 24px; text-align: center; }
.sb-cta > * { margin-block-start: 0; }
.sb-cta h2.wp-block-heading { margin: 0 0 10px; color: #fff; font-size: 28px; text-transform: none; }
.sb-cta p { margin: 0 auto 24px; max-width: 640px; color: #fff; opacity: .9; font-size: 15px; }
.sb-cta .wp-block-buttons { justify-content: center; }

/* ---------- tlačítka ---------- */
.wp-block-button.sb-btn .wp-block-button__link,
.wp-block-button.sb-btn-accent .wp-block-button__link { border-radius: 0; padding: 12px 26px; font-size: 13px; font-weight: 700; letter-spacing: 1px; line-height: 1.4; text-transform: uppercase; text-decoration: none; border: 2px solid transparent; }
.wp-block-button.sb-btn .wp-block-button__link { background: #fff; color: var(--sb-navy); }
.wp-block-button.sb-btn .wp-block-button__link:hover { background: #e9edf5; }
.wp-block-button.sb-btn-outline .wp-block-button__link { background: transparent; border-color: #fff; color: #fff; }
.wp-block-button.sb-btn-outline .wp-block-button__link:hover { background: rgba(255,255,255,.12); }
.wp-block-button.sb-btn-accent .wp-block-button__link { background: var(--sb-accent, var(--sb-navy)); color: #fff; }
.wp-block-button.sb-btn-accent .wp-block-button__link:hover { filter: brightness(1.12); }

/* ---------- dekorace z původního webu: silueta hlavy (vlevo nahoře) a ozubené kolo (vpravo dole) ---------- */
.sb-page .sb-deco-hlava, .sb-page .sb-deco-kolo { position: relative; isolation: isolate; }
.sb-page .sb-deco-hlava::before, .sb-page .sb-deco-kolo::before {
  content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background-color: rgba(36, 58, 102, .07);
  -webkit-mask: var(--sb-deco) no-repeat; mask: var(--sb-deco) no-repeat;
}
.sb-page .sb-deco-hlava { --sb-deco: url("bg-hlava.svg"); }
.sb-page .sb-deco-kolo { --sb-deco: url("bg-kolo.svg"); }
.sb-page .sb-deco-hlava::before { -webkit-mask-position: left top; mask-position: left top; -webkit-mask-size: 560px auto; mask-size: 560px auto; }
.sb-page .sb-deco-kolo::before { -webkit-mask-position: right bottom; mask-position: right bottom; -webkit-mask-size: 480px auto; mask-size: 480px auto; }
@media (max-width: 781px) {
  .sb-page .sb-deco-hlava::before { -webkit-mask-size: 300px auto; mask-size: 300px auto; }
  .sb-page .sb-deco-kolo::before { -webkit-mask-size: 280px auto; mask-size: 280px auto; }
}

/* ---------- O nás / Reference / Kontakt ---------- */
.sb-person > .wp-block-image:first-child { margin-bottom: 16px; }
/* O nás – tým: 3 sloupce na počítači, 2 na tabletu, 1 na mobilu */
.sb-page .sb-grid.sb-team { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 600px) { .sb-page .sb-grid.sb-team { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .sb-page .sb-grid.sb-team { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
/* Reference: 5 sloupců na počítači, méně na menších obrazovkách */
.sb-page .sb-grid.sb-logos { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
@media (min-width: 600px) { .sb-page .sb-grid.sb-logos { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 782px) { .sb-page .sb-grid.sb-logos { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .sb-page .sb-grid.sb-logos { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.sb-logo { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 112px; padding: 16px; background: #fff; border: 1px solid var(--sb-line); text-align: center; }
.sb-logo > * { margin: 0; }
.sb-logo { min-height: 150px; }
.sb-logo .wp-block-image { display: flex; justify-content: center; width: 100%; }
.sb-logo .wp-block-image img { width: 100%; max-width: 176px; height: auto; max-height: none; }
.sb-page .sb-logo p.sb-logo-name { font-size: 14px; font-weight: 700; color: var(--sb-navy); }
.sb-logo:has(img) p.sb-logo-name { display: none; }
/* HQ Systems: logo je v souboru jen tenký proužek uprostřed bílého čtverce → menší okraj dlaždice a ořez prázdného místa */
.sb-logo:has(img.wp-image-293) { padding: 6px; }
.sb-logo .wp-block-image img.wp-image-293 { width: 100%; max-height: none; height: auto; aspect-ratio: 4 / 1 !important; object-fit: cover !important; object-position: center 47%; }
/* ikony mobilu a e-mailu u kontaktů (horní lišta, patička, Kontakt) – Material Icons, vložené v CSS */
.wc-topbar-contact { display: flex; flex-wrap: wrap; gap: 2px 22px; }
.wc-topbar-contact a, .sb-contact a { display: inline-flex; align-items: center; gap: .45em; }
.wc-topbar-contact a[href^="tel:"], .sb-contact a[href^="tel:"] { --sb-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17 1.01 7 1c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 19H7V5h10v14z'/%3E%3C/svg%3E"); }
.wc-topbar-contact a[href^="mailto:"], .sb-contact a[href^="mailto:"] { --sb-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4-8 5-8-5V6l8 5 8-5v2z'/%3E%3C/svg%3E"); }
.wc-topbar-contact a::before, .sb-contact a::before {
  content: ''; flex-shrink: 0; width: 1.15em; height: 1.15em; background-color: currentColor;
  -webkit-mask: var(--sb-ico) center / contain no-repeat; mask: var(--sb-ico) center / contain no-repeat;
}
.sb-footer p.sb-contact a { border-bottom: 0; }
.sb-footer p.sb-contact a:hover { text-decoration: underline; }
.sb-page p.sb-big.sb-contact a { gap: .4em; }
.sb-page .sb-map-section > h2.wp-block-heading { margin-bottom: 22px; font-size: 24px; font-weight: 700; line-height: 1.3; color: var(--sb-navy); text-transform: none; }
.sb-page .sb-map { margin-block-start: 24px; overflow: hidden; border: 1px solid var(--sb-line); border-radius: 12px; background: #fff; line-height: 0; }
.sb-page .sb-map iframe { display: block; width: 100%; height: 466px; border: 0; }
@media (max-width: 781px) { .sb-page .sb-map iframe { height: 360px; } }
.sb-page p.sb-big { font-size: 20px; line-height: 1.6; font-weight: 700; }
.sb-page p.sb-big a { color: var(--sb-navy); text-decoration: none; }

/* ---------- hlavní stránka ---------- */
.sb-home .sb-hsec { padding: 56px 24px; }
.sb-home .sb-hsec > * { margin-block-start: 0; }
.sb-home .sb-hsec > * + * { margin-block-start: 16px; }
.sb-home .sb-hsec > .sb-grid, .sb-home .sb-hsec > .sb-blog { margin-block-start: 30px; }
.sb-hero .sb-search { max-width: 520px; margin-block-start: 18px; }
.sb-search-results .wp-block-post-template { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
.sb-search-results .wp-block-post-template > li { margin: 0; padding: 18px 22px; border-radius: 12px; background: #fff; }
.sb-search-results h2.wp-block-post-title { margin: 0 0 6px; font-size: 20px; line-height: 1.3; text-transform: none; }
.sb-search-results h2.wp-block-post-title a { color: var(--sb-navy); text-decoration: none; }
.sb-search-results .wp-block-post-excerpt__excerpt { margin: 0; }
.sb-home .sb-center { text-align: center; }
.sb-home h1.sb-home-h1 { max-width: 34ch; margin-inline: auto; text-align: center; font-size: clamp(22px, 1.1rem + 1.2vw, 30px); font-weight: 700; line-height: 1.3; letter-spacing: 0; color: var(--sb-navy); text-transform: none; }
.sb-home h2.wp-block-heading.sb-center { color: var(--sb-navy); }
.sb-home p.sb-motto { font-style: italic; font-size: 17px; color: var(--sb-navy); }
.sb-home .sb-hsec > .wp-block-buttons { justify-content: center; margin-block-start: 26px; }
/* dlaždice: celé klikací (odkaz v nadpisu je roztažený přes celou plochu), přechod barvy, zvednutí při najetí */
.sb-tile {
  --tile: var(--sb-navy); --tile-2: #16284a;
  position: relative; isolation: isolate; overflow: hidden;
  display: flex; flex-direction: column; min-height: 190px; padding: 28px 26px 24px;
  border-radius: 16px; text-align: left; color: #fff;
  background: linear-gradient(140deg, var(--tile) 0%, var(--tile-2) 100%);
  box-shadow: 0 10px 24px -12px rgba(20,35,70,.5);
  transition: transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s ease;
}
.sb-tile.sb-bg-blue { --tile: #0a88d8; --tile-2: #005890; }
.sb-tile.sb-bg-red { --tile: #c8152f; --tile-2: #7f0617; }
.sb-tile.sb-bg-green { --tile: #3cae3a; --tile-2: #20721f; }
.sb-tile::after {
  content: ''; position: absolute; z-index: -1; right: -80px; top: -80px; width: 220px; height: 220px; border-radius: 50%;
  background: radial-gradient(circle, rgba(255,255,255,.15) 0 38%, rgba(255,255,255,.07) 39% 68%, transparent 69%);
  transition: transform .6s cubic-bezier(.2,.8,.2,1);
}
.sb-tile:hover, .sb-tile:focus-within { transform: translateY(-6px); box-shadow: 0 24px 42px -16px rgba(20,35,70,.6); }
.sb-tile:hover::after, .sb-tile:focus-within::after { transform: scale(1.35) translate(-12px, 12px); }
.sb-tile:has(a:focus-visible) { outline: 3px solid var(--sb-navy); outline-offset: 4px; }
.sb-tile a:focus-visible { outline: none; }
.sb-tile > * { margin-block-start: 0; margin-block-end: 0; }
.sb-tile > * + * { margin-block-start: 10px; }
.sb-tile > .wp-block-image:first-child { margin: -28px -26px 20px; }
.sb-tile > .wp-block-image:first-child + * { margin-block-start: 0; }
.sb-tile > .wp-block-image img { display: block; width: 100%; height: auto; }
.sb-page .sb-tile h3.wp-block-heading, .sb-page .sb-tile h4.wp-block-heading { color: #fff; font-size: 19px; font-weight: 700; line-height: 1.25; letter-spacing: .5px; text-transform: uppercase; }
.sb-page .sb-tile h3 a, .sb-page .sb-tile h4 a { color: inherit; text-decoration: none; border: 0; }
.sb-page .sb-tile h3 a::after, .sb-page .sb-tile h4 a::after { content: ''; position: absolute; inset: 0; z-index: 2; border-radius: inherit; }
.sb-page .sb-tile p { color: rgba(255,255,255,.92); font-size: 14px; line-height: 1.6; }
.sb-page .sb-tile p.sb-tile-more { margin-block-start: auto; padding-top: 18px; }
.sb-tile-cta { display: inline-flex; align-items: center; gap: 10px; font-size: 12px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: #fff; }
.sb-tile-cta::after {
  content: '→'; display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%;
  background: rgba(255,255,255,.18); font-size: 16px; letter-spacing: 0; line-height: 1;
  transition: transform .3s cubic-bezier(.2,.8,.2,1), background .3s, color .3s;
}
.sb-tile:hover .sb-tile-cta::after, .sb-tile:focus-within .sb-tile-cta::after { transform: translateX(6px); background: #fff; color: var(--tile-2); }
@media (prefers-reduced-motion: reduce) {
  .sb-tile, .sb-tile::after, .sb-tile-cta::after { transition: none; }
  .sb-tile:hover, .sb-tile:focus-within { transform: none; }
}
/* v editoru nepřekrývat obsah dlaždice odkazem, ať jde text normálně upravovat */
.editor-styles-wrapper .sb-tile h3 a::after, .editor-styles-wrapper .sb-tile h4 a::after { content: none; }
.editor-styles-wrapper .sb-tile:hover { transform: none; }
.sb-home .wc-aktualita a { color: var(--sb-red); }

/* ---------- blog ---------- */
.sb-blog .wp-block-post-template { gap: 24px; }
.sb-blog .wp-block-post { display: flex; flex-direction: column; margin: 0; background: #fff; border: 1px solid var(--sb-line); }
.sb-blog .wp-block-post:not(:has(.wp-block-post-featured-image)) { border-top: 4px solid var(--sb-navy); }
.sb-blog .wp-block-post > * { margin: 0; }
.sb-blog .wp-block-post-featured-image img { display: block; width: 100%; aspect-ratio: 3/2; object-fit: cover; }
.sb-blog .wp-block-post-date { padding: 18px 22px 0; font-size: 12px; font-weight: 600; letter-spacing: .5px; text-transform: uppercase; color: #888; }
.sb-blog .wp-block-post-title { padding: 6px 22px 0; font-size: 19px !important; font-weight: 700; line-height: 1.3; text-transform: none !important; }
.sb-blog .wp-block-post-title a { color: var(--sb-navy); text-decoration: none; }
.sb-blog .wp-block-post-title a:hover { color: var(--sb-blue); }
.sb-blog .wp-block-post-excerpt { padding: 10px 22px 22px; font-size: 14px; line-height: 1.65; color: var(--sb-text); }
.sb-blog .wp-block-post-excerpt__excerpt { margin: 0; }
.sb-blog .wp-block-query-pagination { margin-top: 32px; }
.sb-page .sb-body .wp-block-post-featured-image { margin: 0 0 28px; }
.sb-page .sb-hero .wp-block-post-date { margin-top: 12px; color: #fff; opacity: .85; font-size: 13px; letter-spacing: 1px; text-transform: uppercase; }

/* ---------- hlavička a patička ---------- */
.wc-header > .wc-header-inner, .wc-topbar > .wp-block-group { max-width: 1240px !important; }
.wc-header > .wc-header-inner { gap: 24px; }
/* hlavička i s rozbalovacím podmenu vždy nad obsahem – jinak text slideru (z-index 2) po doběhnutí prolnutí snímku překryl podmenu */
.wc-header { position: relative; z-index: 50; }
/* sticky hlavička: celý <header> je přilepený s top = −výška modrého pruhu → pruh odjede, bílá lišta s menu zůstane nahoře.
   Výšky měří header.js (--sb-topbar-h, --sb-header-h); bez JS zůstane přilepená celá hlavička i s pruhem. */
.wp-site-blocks > header.wp-block-template-part:has(> .wc-header) {
  position: sticky; z-index: 50;
  top: calc(var(--wp-admin--admin-bar--height, 0px) - var(--sb-topbar-h, 0px));
}
/* do 600 px admin lišta (přihlášení) není fixní, odjede se stránkou */
@media (max-width: 600px) {
  .wp-site-blocks > header.wp-block-template-part:has(> .wc-header) { top: calc(-1 * var(--sb-topbar-h, 0px)); }
}
.wc-header { transition: box-shadow .2s ease; }
header.is-stuck > .wc-header { box-shadow: 0 6px 18px -10px rgba(20, 35, 70, .35); }
.wc-topbar, .wc-header { padding-left: 24px !important; padding-right: 24px !important; }
@media (max-width: 781px) {
  .wc-topbar, .wc-header { padding-left: 16px !important; padding-right: 16px !important; }
  .wc-topbar > .wp-block-group { flex-wrap: wrap !important; gap: 2px 16px; }
  .wc-topbar p { font-size: 12px; }
  .wc-header .wp-block-site-title a { font-size: 20px !important; }
}
.wc-header .wp-block-site-title { white-space: nowrap; }
.wc-header .wp-block-site-title a { font-size: 24px; }
.wc-nav .wp-block-navigation__container { gap: 6px 20px; }
.wc-nav .wp-block-navigation-item__content { font-size: 13px; white-space: nowrap; }
.wc-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { white-space: normal; }
/* na užších obrazovkách (tablet) menu schovat do hamburgeru, ať se nezalamuje */
@media (min-width: 600px) and (max-width: 1099px) {
  .wc-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
  .wc-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}
.wc-nav .wp-block-navigation__responsive-container.is-menu-open { padding: 20px 24px 36px; }
.wc-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 15px; }
.wc-brand { align-items: center; gap: 12px; flex-shrink: 0; }
.wc-brand .wp-block-site-logo img { display: block; height: 72px; width: auto; max-width: none; }
@media (max-width: 781px) { .wc-brand .wp-block-site-logo img { height: 56px; } }
.wc-brand:has(.wp-block-site-logo) .wp-block-site-title,
.sb-foot-brand:has(.wp-block-site-logo) .wp-block-site-title { display: none; }
.sb-footer { background: var(--sb-navy); padding: 52px 24px 28px; }
.sb-footer .sb-foot-grid { gap: 32px; }
.sb-footer > * { margin-block-start: 0; }
.sb-footer, .sb-footer p, .sb-footer a, .sb-footer h4 { color: #fff; }
.sb-footer .sb-foot-grid > * > * { margin-block-start: 0; margin-block-end: 0; }
.sb-footer .sb-foot-grid > * > * + * { margin-block-start: 12px; }
.sb-footer h4.wp-block-heading { font-size: 13px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; }
.sb-footer p { font-size: 14px; line-height: 1.8; }
.sb-footer p a { text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.35); }
.sb-footer p a:hover { border-bottom-color: #fff; }
.sb-footer .wp-block-site-logo { display: inline-block; padding: 10px 12px; background: #fff; line-height: 0; }
.sb-footer .wp-block-site-logo img { display: block; height: 84px; width: auto; max-width: none; }
.sb-footer .wp-block-site-logo a { border: 0; }
.sb-footer .wp-block-site-title a { font-size: 22px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; text-decoration: none; color: #fff; border-bottom: 0; }
.wp-site-blocks > footer { margin-block-start: 0; }
.sb-page p.sb-note { box-sizing: border-box; }
.sb-footer p.sb-copy { margin-block-start: 36px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.15); font-size: 12px; opacity: .8; text-align: center; }

/* ---------- úvodní slider: režim se skriptem (slider.js) + kolečka ---------- */
/* z-indexy uvnitř slideru (text 2, kolečka 5) zůstanou uvnitř něj a nesoupeří s hlavičkou */
.wc-slider { isolation: isolate; }
.wc-slider.is-js .wc-slide { animation: none; opacity: 0; visibility: hidden; transition: opacity .9s ease, visibility 0s linear .9s; }
.wc-slider.is-js .wc-slide.is-active { opacity: 1; visibility: visible; transition: opacity .9s ease, visibility 0s; }
.wc-slider-dots { position: absolute; left: 0; right: 0; bottom: 14px; z-index: 5; display: flex; justify-content: center; gap: 4px; }
.wc-slider-dots button { position: relative; width: 30px; height: 30px; margin: 0; padding: 0; border: 0; background: transparent; cursor: pointer; }
.wc-slider-dots button::before { content: ''; position: absolute; left: 50%; top: 50%; width: 12px; height: 12px; margin: -6px 0 0 -6px; border: 2px solid #fff; border-radius: 50%; box-sizing: border-box; background: transparent; opacity: .85; transition: background .2s, transform .2s; }
.wc-slider-dots button:hover::before { transform: scale(1.15); opacity: 1; }
.wc-slider-dots button[aria-current="true"]::before { background: #fff; opacity: 1; }
.wc-slider-dots button:focus-visible { outline: 2px solid #fff; outline-offset: -4px; border-radius: 50%; }
@media (prefers-reduced-motion: reduce) { .wc-slider.is-js .wc-slide { transition: none; } }

/* ---------- Aktuality na hlavní stránce ---------- */
.sb-home .sb-aktualita-img img { box-shadow: 0 6px 24px rgba(36,58,102,.15); }
.sb-home .sb-aktualita-img { margin-block-start: 22px; }

/* ---------- kontaktní formulář (plugin SOUBĚH – Kontaktní formulář) ---------- */
.sbf { box-sizing: border-box; margin-block-start: 24px; padding: 28px 30px; background: #fff; border: 1px solid var(--sb-line); border-top: 4px solid var(--sb-navy); }
.sbf-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: 0 20px; }
.sbf-field { margin: 0 0 16px; }
.sbf-field label { display: block; margin-bottom: 6px; font-size: 13px; font-weight: 700; color: var(--sb-navy); }
.sbf-field input[type=text], .sbf-field input[type=email], .sbf-field input[type=tel], .sbf-field select, .sbf-field textarea {
  box-sizing: border-box; width: 100%; padding: 11px 12px; border: 1px solid #c9cfdc; border-radius: 0; background: #fff;
  font: inherit; font-size: 15px; color: #333;
}
.sbf-field textarea { resize: vertical; min-height: 140px; }
.sbf-field input:focus, .sbf-field select:focus, .sbf-field textarea:focus { outline: 2px solid var(--sb-blue); outline-offset: 0; border-color: var(--sb-blue); }
.sbf-has-error input, .sbf-has-error textarea { border-color: var(--sb-red); }
.sbf-error { display: block; margin-top: 5px; font-size: 13px; color: var(--sb-red); }
.sbf-req { color: var(--sb-red); }
.sbf-check label { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; font-size: 14px; color: var(--sb-text); }
.sbf-check input { margin-top: 4px; flex-shrink: 0; width: 18px; height: 18px; }
.sbf-check a { color: var(--sb-navy); }
.sbf-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.sbf-submit { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; margin: 22px 0 0; }
.sbf-submit button { padding: 14px 30px; border: 0; border-radius: 0; background: var(--sb-navy); color: #fff; font: inherit; font-size: 13px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; cursor: pointer; }
.sbf-submit button:hover { background: var(--sb-blue); }
.sbf-note { font-size: 12px; color: #888; }
.sbf-ok { margin-bottom: 20px; padding: 14px 18px; background: #eaf6ea; border-left: 4px solid var(--sb-green); color: #245a24; }
.sbf-alert { margin-bottom: 20px; padding: 14px 18px; background: #fbeaec; border-left: 4px solid var(--sb-red); color: #7a0a1a; }
.sb-page .sb-form-section { padding-bottom: 56px; }
@media (max-width: 781px) { .sbf { padding: 20px 16px; } }

/* ---------- mobil ---------- */
@media (max-width: 781px) {
  .sb-page .sb-hero { padding: 40px 16px 36px; }
  .sb-page .sb-hero h1.wp-block-heading { font-size: 28px; }
  .sb-page .sb-section, .sb-home .sb-hsec { padding: 38px 16px; }
  .sb-page .sb-body { padding: 36px 16px 16px; }
  .sb-page .sb-chipbar { padding: 14px 16px; }
  .sb-page .wp-block-media-text.sb-zz > .wp-block-media-text__content { padding: 26px 22px; }
  .sb-cta, .sb-footer { padding-left: 16px; padding-right: 16px; }
}
@media (max-width: 600px) {
  .sb-page .wp-block-media-text.sb-zz > .wp-block-media-text__media { min-height: 190px; }
  .sb-page .wp-block-media-text.sb-zz > .wp-block-media-text__media:empty::after { font-size: 56px; }
}
