/*
 * Podstránky CMS: žádná .hero s fotkou — ta je jen na úvodní stránce (home.php).
 * Kompaktní „masthead“ ve stylu claim-bar / služeb, ne fullscreen hero.
 */
/* Unified inner-page hero — Sluzby, O nas, Reference, Blog, Kontakt */
.cms-page .page-hero {
  position: relative;
  padding: clamp(2rem, 4.5vw, 2.85rem) 0 clamp(1.65rem, 3.5vw, 2.35rem);
  background:
    radial-gradient(ellipse 100% 120% at 100% 50%, rgba(242, 140, 40, 0.16), transparent 45%),
    linear-gradient(135deg, var(--blue-900) 0%, var(--blue-800) 40%, var(--blue-600) 100%);
  color: var(--blue-50);
  box-shadow: var(--shadow-md);
}

.cms-page .page-hero::before {
  content: "";
  position: absolute;
  left: 0; right: 0; top: 0;
  height: 2px;
  background: var(--grad-brand-glowline);
  opacity: 0.9;
  pointer-events: none;
}

.cms-page .page-hero .container {
  max-width: 52rem;
  text-align: center;
}

.page-hero__breadcrumb {
  margin-bottom: var(--space-4);
}

.page-hero__breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 0.75rem;
  font-weight: 500;
}

.page-hero__breadcrumb li {
  display: flex;
  align-items: center;
  color: rgba(180, 210, 230, 0.7);
}

.page-hero__breadcrumb li + li::before {
  content: "\203A";
  margin: 0 0.35rem;
  color: rgba(180, 210, 230, 0.4);
}

.page-hero__breadcrumb a {
  color: rgba(180, 210, 230, 0.7);
  text-decoration: none;
  transition: color var(--duration-fast) var(--ease-out);
}

.page-hero__breadcrumb a:hover {
  color: #fff;
}


.cms-page .page-hero .page-hero__h1 {
  margin: 0 0 var(--space-4);
  font-size: clamp(2rem, 4.2vw + 0.75rem, 3.125rem);
  line-height: var(--leading-tight);
  font-family: var(--font-display);
  font-weight: 800;
  letter-spacing: -0.03em;
  color: #fff;
  text-wrap: balance;
  text-shadow: 0 2px 32px rgba(0, 0, 0, 0.25);
}

.page-hero__lead {
  margin: 0 auto;
  max-width: 42rem;
  font-size: clamp(1.0625rem, 1.2vw + 0.85rem, 1.25rem);
  line-height: var(--leading-relaxed);
  font-weight: 400;
  color: rgba(219, 232, 240, 0.95);
  text-shadow: 0 1px 16px rgba(0, 0, 0, 0.2);
}

@media (max-width: 720px) {
  .cms-page .page-hero {
    padding: clamp(1.75rem, 4vw, 2.5rem) 0 clamp(1.5rem, 3.5vw, 2rem);
  }

  .cms-page .page-hero .page-hero__h1 {
    font-size: clamp(1.65rem, 5.5vw + 0.5rem, 2.25rem);
  }
}

/* Stránka Služby — stejný jazyk jako landing (claim-bar, hero typografie, sekce #sluzby) */
.cms-page .sluzby-page .section.sluzby-hub-toolbar {
  padding: 0;
  overflow: hidden;
  border-bottom: none;
  box-shadow: none;
  background: transparent;
}


.cms-page .sluzby-page .sluzby-hub-toolbar__nav {
  padding: var(--space-6) 0 var(--space-5);
  background: var(--surface-1);
  border-bottom: 1px solid var(--line-subtle);
  box-shadow: var(--shadow-inset-light);
}

.cms-page .sluzby-page .sluzby-hub-toolbar__nav .container {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
}

.cms-page .sluzby-page .sluzby-toolbar-label {
  margin: 0 0 var(--space-3);
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--blue-900);
  text-align: left;
}

.cms-page .sluzby-page .sluzby-nav-wrap {
  position: sticky;
  top: 4.5rem;
  z-index: 50;
  margin: 0;
  padding: var(--space-3) var(--space-4);
  border-radius: var(--radius-md);
  border: 1px solid rgba(42, 143, 201, 0.18);
  background: rgba(255, 255, 255, 0.88);
  backdrop-filter: blur(16px) saturate(1.2);
  -webkit-backdrop-filter: blur(16px) saturate(1.2);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.95) inset,
    var(--shadow-xs);
}

.cms-page .sluzby-page .sluzby-nav-wrap__hint {
  margin: 0 0 var(--space-3);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--blue-600);
}

.cms-page .sluzby-page .sluzby-quick-nav {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: flex-start;
  gap: 0.4rem 0.65rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.cms-page .sluzby-page .sluzby-quick-nav li {
  margin: 0;
  display: inline;
}

/* Starý markup s čísly — čísla schovat, zůstane jen text odkazu */
.cms-page .sluzby-page .sluzby-quick-nav__n {
  display: none;
}

.cms-page .sluzby-page .sluzby-quick-nav__t {
  padding: 0;
  line-height: inherit;
}

/* Oddělovač mezi položkami v seznamu (nový markup má vlastní · v HTML) */
.cms-page .sluzby-page .sluzby-quick-nav li + li::before {
  content: "·";
  margin-right: 0.5rem;
  color: var(--blue-500);
  font-weight: 600;
}

.cms-page .sluzby-page .sluzby-quick-nav a {
  display: inline;
  min-height: 0;
  padding: 0;
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--blue-950);
  border: none;
  border-radius: 0;
  background: none;
  box-shadow: none;
  text-decoration: none;
  transition: color var(--duration-base) var(--ease-soft);
}

.cms-page .sluzby-page .sluzby-quick-nav a:hover {
  color: var(--accent-hover);
  border: none;
  background: none;
  box-shadow: none;
}

.cms-page .sluzby-page .sluzby-quick-nav__sep {
  color: var(--blue-500);
  user-select: none;
}

.cms-page .sluzby-page .section.sluzby-hub-strip {
  position: relative;
  scroll-margin-top: 6.5rem;
  padding: clamp(var(--space-7), 4vw, var(--space-10)) 0;
  background: linear-gradient(180deg, var(--surface-1) 0%, var(--blue-50) 100%);
  border-bottom: 1px solid var(--line-subtle);
  box-shadow: var(--shadow-inset-light);
}

.cms-page .sluzby-page .section.sluzby-hub-strip::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(ellipse 80% 50% at 50% 0%, rgba(42, 143, 201, 0.11), transparent 70%);
  opacity: 1;
}

.cms-page .sluzby-page .section.sluzby-hub-strip::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 2px;
  background: var(--grad-brand-h-soft);
  opacity: 0.92;
  pointer-events: none;
  border-radius: 0 0 var(--radius-xs) var(--radius-xs);
  z-index: 2;
}

.cms-page .sluzby-page .section.sluzby-hub-strip > .container {
  position: relative;
  z-index: 1;
}

.cms-page .sluzby-page .sluzby-hub-strip .section-head {
  margin-bottom: var(--space-5);
  align-items: flex-end;
}

.cms-page .sluzby-page .sluzby-hub-strip .section-head h2 {
  font-weight: 800;
  letter-spacing: -0.03em;
  flex: 1 1 min(100%, 22rem);
}

.cms-page .sluzby-page .sluzby-hub-strip__lead {
  margin: 0 0 var(--space-6);
  max-width: 44rem;
  width: 100%;
  font-size: 1.0625rem;
  line-height: var(--leading-relaxed);
  font-weight: 500;
  color: var(--blue-800);
}

.cms-page .sluzby-page .sluzby-hub-strip .service-grid {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr));
  gap: var(--space-5);
}

.cms-page .sluzby-page .sluzby-hub-strip .service-card--with-visual {
  padding-top: 0;
  overflow: hidden;
}

.cms-page .sluzby-page .sluzby-service-visual {
  margin: calc(var(--space-5) * -1) calc(var(--space-5) * -1) var(--space-4);
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
  aspect-ratio: 16 / 9;
}

.cms-page .sluzby-page .sluzby-service-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.cms-page .sluzby-page .sluzby-hub-strip a.service-card.service-card--link {
  padding: var(--space-5);
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}

.cms-page .sluzby-page .sluzby-hub-strip a.service-card.service-card--link p {
  margin-bottom: 0;
  color: var(--blue-800);
  font-size: var(--text-body-sm);
  line-height: var(--leading-relaxed);
}

.cms-page .sluzby-page .sluzby-hub-strip a.service-card.service-card--link h3 {
  margin-bottom: var(--space-3);
  font-size: 1.125rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--blue-950);
}

.cms-page .sluzby-page .sluzby-hub-strip a.service-card.service-card--link:focus-visible {
  outline: none;
  box-shadow:
    var(--shadow-lg),
    0 0 0 3px var(--surface-1),
    0 0 0 5px var(--accent-ring);
}

.cms-page .sluzby-page .sluzby-hub-strip a.service-card.service-card--link:focus-visible::after {
  opacity: 1;
}

.cms-page .sluzby-page .sluzby-hub-strip .service-card__tag {
  display: inline-block;
  margin-bottom: var(--space-2);
  padding: 0.28rem 0.55rem;
  font-size: 0.6875rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--blue-900);
  border-radius: var(--radius-pill);
  border: 1px solid transparent;
  background:
    linear-gradient(var(--blue-50), var(--blue-50)) padding-box,
    linear-gradient(135deg, rgba(42, 143, 201, 0.55) 0%, rgba(242, 140, 40, 0.42) 100%) border-box;
  background-clip: padding-box, border-box;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.85) inset;
}

.cms-page .sluzby-page .sluzby-hub-strip .service-card__tag + h3 {
  margin-top: 0;
}

/*
 * /sluzby hub cards — plain .service-grid is multi-column only from 841px
 * (1 col at ≤840). Align titles with the shared card system token.
 */
@media (min-width: 841px) {
  .cms-page .sluzby-page .sluzby-hub-strip .service-grid > .service-card > h3 {
    min-height: calc(var(--card-align-title-lines, 2) * 1lh);
  }
}

@media (max-width: 840px) {
  .cms-page .sluzby-page .sluzby-hub-strip .service-grid > .service-card > h3 {
    min-height: auto;
  }
}

/* Text „Detail služby“ / varianty — jako dřív u .service-card a, ne plné tlačítko */
.cms-page .sluzby-page .sluzby-hub-strip a.service-card--link .service-card__more {
  margin-top: auto;
  align-self: flex-start;
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--accent);
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  transition: color var(--duration-base) var(--ease-soft);
}

.cms-page .sluzby-page .sluzby-hub-strip a.service-card--link .service-card__more::after {
  content: "→";
  font-size: 0.9em;
  transition: transform var(--duration-base) var(--ease-out);
}

.cms-page .sluzby-page .sluzby-hub-strip a.service-card--link:hover .service-card__more {
  color: var(--accent-hover);
}

.cms-page .sluzby-page .sluzby-hub-strip a.service-card--link:hover .service-card__more::after {
  transform: translateX(4px);
}

/* Starý markup s .btn-primary uvnitř karty — stejný textový vzhled jako .service-card__more */
.cms-page .sluzby-page .sluzby-hub-strip a.service-card--link .service-card__action.btn.btn-primary {
  margin-top: auto;
  align-self: flex-start;
  width: auto;
  min-height: 0;
  padding: 0;
  justify-content: flex-start;
  pointer-events: none;
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--accent);
  background: none;
  border: none;
  border-radius: 0;
  box-shadow: none;
}

.cms-page .sluzby-page .sluzby-hub-strip a.service-card--link .service-card__action.btn.btn-primary::after {
  content: "→";
  margin-left: 0.35rem;
  font-size: 0.9em;
  transition: transform var(--duration-base) var(--ease-out);
}

.cms-page .sluzby-page .sluzby-hub-strip a.service-card--link:hover .service-card__action.btn.btn-primary {
  color: var(--accent-hover);
  background: none;
  box-shadow: none;
  transform: none;
}

.cms-page .sluzby-page .sluzby-hub-strip a.service-card--link:hover .service-card__action.btn.btn-primary::after {
  transform: translateX(4px);
}

.cms-page .sluzby-page .section.sluzby-hub-strip--cta {
  border-bottom: none;
  padding-top: clamp(var(--space-7), 4vw, var(--space-10));
  padding-bottom: clamp(var(--space-8), 5vw, var(--space-10));
  background: linear-gradient(180deg, var(--blue-50) 0%, var(--surface-1) 55%, var(--blue-50) 100%);
}

.cms-page .sluzby-page .sluzby-hub-strip--cta::before {
  opacity: 1;
  background: radial-gradient(ellipse 75% 55% at 50% 0%, rgba(242, 140, 40, 0.14), transparent 72%);
}

.cms-page .sluzby-page .sluzby-hub-strip--cta .center-cta {
  margin-top: 0;
}

.cms-page .sluzby-page .sluzby-hub-cta__text {
  margin: 0 0 var(--space-5);
  max-width: 32rem;
  margin-left: auto;
  margin-right: auto;
  padding: 0 var(--space-2);
  font-size: clamp(1.0625rem, 1vw + 0.9rem, 1.2rem);
  font-weight: 600;
  line-height: var(--leading-snug);
  letter-spacing: -0.02em;
  color: var(--blue-900);
  text-wrap: balance;
}

/* Služby — mobil a užší okna */
@media (max-width: 720px) {
  .cms-page .sluzby-page .sluzby-hub-toolbar__nav {
    padding: var(--space-5) 0 var(--space-4);
  }

  .cms-page .sluzby-page .sluzby-nav-wrap {
    top: 4.5rem;
    padding: var(--space-3) var(--space-3);
  }

  .cms-page .sluzby-page .sluzby-quick-nav {
    flex-wrap: wrap;
    overflow: visible;
    row-gap: 0.5rem;
  }

  .cms-page .sluzby-page .section.sluzby-hub-strip {
    scroll-margin-top: 5.5rem;
  }

  .cms-page .sluzby-page .sluzby-hub-strip .section-head {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-3);
    margin-bottom: var(--space-4);
    padding-bottom: var(--space-3);
  }

  .cms-page .sluzby-page .sluzby-hub-strip .section-head a {
    margin-top: 0;
  }

  .cms-page .sluzby-page .sluzby-hub-strip .service-grid {
    grid-template-columns: 1fr;
    gap: var(--space-4);
  }

  .cms-page .sluzby-page .sluzby-hub-strip a.service-card.service-card--link {
    padding: var(--space-4);
  }

  .cms-page .sluzby-page .sluzby-hub-strip--cta .center-cta {
    padding: 0 var(--space-1);
  }
}

@media (min-width: 721px) and (max-width: 900px) {
  .cms-page .sluzby-page .sluzby-hub-strip .service-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Globální .lead ve variant-a je pro tmavé pozadí — v CMS obsahu jen čitelná barva */
.cms-page #obsah .lead {
  color: var(--blue-800);
  text-shadow: none;
}

/*
 * Běžné CMS stránky (O nás, Reference, Blog, Kontakt…): stejný princip jako detaily služeb —
 * section.section > .container > .content-text (doplňuje page.php), vizuální pás jako pás Služeb.
 */
.cms-page .section.cms-page-body {
  position: relative;
  scroll-margin-top: 6.5rem;
  padding: clamp(var(--space-7), 4vw, var(--space-10)) 0;
  background: linear-gradient(180deg, var(--surface-1) 0%, var(--blue-50) 100%);
  border-bottom: 1px solid var(--line-subtle);
  box-shadow: var(--shadow-inset-light);
}

.cms-page .section.cms-page-body::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(ellipse 80% 50% at 50% 0%, rgba(42, 143, 201, 0.11), transparent 70%);
  opacity: 1;
}

.cms-page .section.cms-page-body::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 2px;
  background: var(--grad-brand-h-soft);
  opacity: 0.92;
  pointer-events: none;
  border-radius: 0 0 var(--radius-xs) var(--radius-xs);
  z-index: 2;
}

.cms-page .section.cms-page-body > .container {
  position: relative;
  z-index: 1;
}

/* Detail text (sluzby + reference + ostatni CMS obsah) */
.cms-page .content-text {
  position: relative;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: var(--space-6);
  background: var(--surface-1);
  box-shadow: var(--shadow-sm);
}

.cms-page .content-text p,
.cms-page .content-text li {
  color: var(--blue-800);
}

.cms-page .content-text p {
  margin: 0 0 var(--space-4);
  line-height: var(--leading-relaxed);
}

.cms-page .content-text p:last-child {
  margin-bottom: 0;
}

.cms-page .content-text h2 {
  margin: var(--space-7) 0 var(--space-4);
  line-height: var(--leading-snug);
}

.cms-page .content-text h2:first-child {
  margin-top: 0;
}

.cms-page .content-text h3 {
  margin: var(--space-6) 0 var(--space-3);
  color: var(--blue-950);
  line-height: var(--leading-snug);
}

.cms-page .content-text h2 + p,
.cms-page .content-text h3 + p {
  margin-top: 0;
}

.cms-page .content-text ul {
  margin: 0 0 var(--space-5);
  padding-left: 1.2rem;
}

.cms-page .content-text ol {
  margin: 0 0 var(--space-5);
  padding-left: 1.35rem;
}

.cms-page .content-text li + li {
  margin-top: 0.4rem;
}

.cms-page .content-text strong {
  color: var(--blue-900);
}

.cms-page .content-text .back-nav {
  margin-bottom: var(--space-5);
}

.cms-page .content-text .back-nav a {
  font-weight: 600;
}

/* O nas - cisty a jednotny layout */
.about-page__story-inner,
.about-team-strip__inner,
.about-coop__inner {
  max-width: min(56rem, 100%);
  margin-inline: auto;
}


.about-solution {
  padding-top: clamp(var(--space-7), 4vw, var(--space-9));
  padding-bottom: clamp(var(--space-7), 4vw, var(--space-9));
}

.cms-page .section.cms-page-body.about-page--intro {
  background: linear-gradient(180deg, var(--surface-1) 0%, var(--blue-50) 100%);
}

.about-page__copy {
  max-width: min(36rem, 100%);
  margin-top: 0;
  font-size: 1.03rem;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.about-page__copy h2:first-child {
  margin-top: 0;
}

.about-page__copy > p {
  margin: 0;
  color: var(--blue-800);
  line-height: var(--leading-relaxed);
  text-align: left;
  text-wrap: wrap;
  hyphens: none;
}

.about-page__intro-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(16rem, 0.9fr);
  gap: var(--space-6);
  align-items: start;
}

/* When image is missing and figure is hidden, copy takes full width */
.about-page__intro-grid:has(.about-page__visual[style*="display:none"]),
.about-page__intro-grid:has(.about-page__visual[style*="display: none"]) {
  grid-template-columns: 1fr;
}

.about-page__visual {
  margin: 0;
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid rgba(42, 143, 201, 0.18);
  box-shadow: var(--shadow-sm);
  width: 100%;
  max-width: none;
  margin-left: 0;
  transform: none;
}

.about-page__visual img {
  display: block;
  width: 100%;
  height: clamp(16rem, 30vw, 21rem);
  object-fit: cover;
  object-position: center;
}

.about-page__expertise {
  margin: var(--space-6) 0 0;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.35rem;
  padding: 1.75rem var(--space-5);
  border-radius: var(--radius-xl);
  border: 1px solid transparent;
  box-shadow: var(--shadow-sm);
  background:
    linear-gradient(165deg, var(--surface-1) 0%, rgba(238, 243, 248, 0.92) 100%) padding-box,
    var(--grad-brand-diag-soft) border-box;
  background-clip: padding-box, border-box;
  box-sizing: border-box;
}

.about-page__expertise h2 {
  margin: 0;
  max-width: 28rem;
  color: var(--blue-950);
  font-size: clamp(1.2rem, 1.1vw + 0.95rem, 1.45rem);
  font-weight: 800;
  line-height: var(--leading-snug, 1.25);
  letter-spacing: -0.02em;
}

.about-page__expertise .btn {
  flex: 0 0 auto;
  white-space: nowrap;
}

@media (min-width: 700px) {
  .about-page__expertise {
    flex-direction: row;
    align-items: center;
    gap: var(--space-5);
    padding: 2rem var(--space-6);
  }

  .about-page__expertise h2 {
    max-width: none;
    flex: 1 1 auto;
  }
}

.cms-page .section.cms-page-body.about-team-strip {
  background: linear-gradient(180deg, var(--blue-50) 0%, var(--surface-1) 100%);
  /* Sticky header is ~4.5rem + border; keep section title clear of it. */
  scroll-margin-top: 6rem;
}

.about-team .section-head {
  margin-bottom: var(--space-4);
  justify-content: flex-start;
  text-align: left;
}

.about-team__intro {
  margin: 0 0 var(--space-6);
  max-width: 44rem;
  color: var(--blue-800);
  line-height: var(--leading-relaxed);
  text-align: center;
}

/* Team grid: mobile-first 1 column; 2 columns from tablet up.
   Higher specificity beats generic .service-grid responsive rules. */
.service-grid.about-team__grid,
.about-team__grid {
  margin: 0;
  width: 100%;
  max-width: none;
  grid-template-columns: 1fr;
  gap: var(--space-6);
}

@media (min-width: 700px) {
  .service-grid.about-team__grid,
  .about-team__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-6) var(--space-5);
  }
}

.about-team-card,
.service-card.about-team-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: var(--space-5);
  gap: 0;
  position: relative;
  overflow: visible;
}

.about-team-card--linked {
  cursor: pointer;
}

.about-team-card__profile {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0;
  width: 100%;
  height: 100%;
  color: inherit;
  text-decoration: none;
  flex: 1 1 auto;
}

/* Stretch profile link across card padding, keep contact links above it. */
.about-team-card--linked .about-team-card__profile::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: inherit;
}

.about-team-card__profile:hover .about-team-card__name,
.about-team-card__profile:focus-visible .about-team-card__name {
  color: var(--accent);
}

.about-team-card__profile:focus-visible {
  outline: none;
}

.about-team-card__profile:focus-visible::after {
  outline: 2px solid var(--accent);
  outline-offset: 4px;
}

.about-team-card__photo {
  --portrait-size: clamp(10rem, 28vw, 11.875rem);
  width: var(--portrait-size);
  height: var(--portrait-size);
  aspect-ratio: 1;
  margin: 0 auto 1.75rem;
  padding: 0;
  border-radius: 50%;
  overflow: hidden;
  flex: 0 0 auto;
  background: linear-gradient(150deg, var(--blue-500) 0%, var(--blue-900) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.95), 0 10px 24px rgba(19, 49, 73, 0.16);
}

.about-team-card__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% var(--portrait-y, 10%);
}

.about-team-card__photo--placeholder {
  background: linear-gradient(150deg, var(--blue-500) 0%, var(--blue-900) 100%);
}

.about-team-card__icon {
  width: 2.35rem;
  height: 2.35rem;
}

.about-team-card__body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.65rem;
  padding: 0;
  width: 100%;
  flex: 1 1 auto;
  box-sizing: border-box;
}

.about-team-card__name {
  margin: 0;
  font-size: 1.125rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: var(--leading-snug, 1.25);
  color: var(--blue-950);
}

.about-team-card__name a {
  color: var(--blue-950);
  text-decoration: none;
}

.about-team-card__name a:hover {
  color: var(--accent);
  text-decoration: underline;
}

.about-team-card__role {
  margin: 0;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-align: center;
  line-height: var(--leading-snug, 1.25);
  color: #b75a12;
}

.about-team-card__bio {
  margin: 0;
  color: var(--blue-800);
  line-height: var(--leading-relaxed);
  width: 100%;
}

.about-team-card__contact {
  position: relative;
  z-index: 2;
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
  gap: 0.35rem 0.5rem;
  margin-top: auto;
  padding-top: var(--space-3);
  font-size: 0.92rem;
  line-height: 1.45;
}

.about-team-card__contact-link {
  color: var(--accent);
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
}

.about-team-card__contact-link:hover {
  text-decoration: underline;
}

.about-team-card__contact-sep {
  color: var(--blue-400);
}

@media (min-width: 481px) and (max-width: 699px) {
  .about-team-card__photo {
    --portrait-size: 12rem;
  }
}

@media (min-width: 700px) {
  .about-team-card__photo {
    --portrait-size: 13.75rem;
  }
}

.team-detail__name {
  margin: 0 0 var(--space-3);
  font-size: clamp(1.75rem, 2vw + 1rem, 2.6rem);
}

.team-detail__role {
  margin: 0 0 var(--space-2);
  color: var(--accent);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.8rem;
}

.team-detail__layout {
  display: grid;
  gap: var(--space-6);
  align-items: start;
}

@media (min-width: 700px) {
  .team-detail__layout {
    grid-template-columns: 11rem minmax(0, 1fr);
    gap: var(--space-7);
  }
}

.team-detail__photo-wrap {
  margin: 0 auto;
  width: 10rem;
  height: 10rem;
  border-radius: 50%;
  overflow: hidden;
  background: #e8eef4;
  box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.95), 0 10px 24px rgba(19, 49, 73, 0.16);
}

@media (min-width: 700px) {
  .team-detail__photo-wrap {
    margin: 0;
    width: 11rem;
    height: 11rem;
  }
}

.team-detail__photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
}

.team-detail__back {
  margin: var(--space-5) 0 0;
}

.team-detail__contact {
  margin-top: var(--space-6);
  font-weight: 700;
  color: var(--blue-950);
}

.team-detail__contact a {
  color: var(--accent);
  text-decoration: none;
}

.team-detail__contact a:hover {
  text-decoration: underline;
}

/*
 * Team cards — 2 columns from 700px. Same card-align tokens as references
 * and services (N × 1lh). Contacts use margin-top: auto on the card.
 */
@media (min-width: 700px) {
  .about-team-card__name {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    min-height: calc(var(--card-align-title-lines, 2) * 1lh);
  }

  .about-team-card__role {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    min-height: calc(var(--card-align-role-lines, 2) * 1lh);
  }
}

@media (max-width: 699px) {
  .about-team-card__name,
  .about-team-card__role {
    min-height: auto;
  }
}

.cms-page .section.cms-page-body.about-coop {
  background: linear-gradient(180deg, var(--surface-1) 0%, var(--blue-50) 100%);
}

.cms-page .section.cms-page-body.about-coop::after {
  display: block;
}

.about-coop__grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-5);
}

.about-coop__grid--3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.about-coop__grid--4 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.about-coop__lead {
  margin: 0 0 var(--space-5);
  color: var(--blue-800);
}

.about-coop__card h3 {
  margin: 0 0 var(--space-3);
  color: var(--blue-950);
  font-size: 1.125rem;
  font-weight: 800;
  letter-spacing: -0.02em;
}

.about-coop__card p {
  margin: 0;
  color: var(--blue-800);
  line-height: var(--leading-relaxed);
}

/*
 * Cooperation cards on /o-nas — 2 columns from 901px; shared title token.
 */
@media (min-width: 901px) {
  .about-coop__grid--4 > .about-coop__card > h3 {
    min-height: calc(var(--card-align-title-lines, 2) * 1lh);
  }
}

@media (max-width: 900px) {
  .about-coop__grid--4 > .about-coop__card > h3 {
    min-height: auto;
  }
}

.about-coop__list {
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: coop-items;
}

.about-coop__list li {
  position: relative;
  padding-left: 2rem;
  color: var(--blue-800);
  line-height: var(--leading-relaxed);
}

.about-coop__list li + li {
  margin-top: var(--space-3);
}

.about-coop__list li::before {
  counter-increment: coop-items;
  content: counter(coop-items);
  position: absolute;
  left: 0;
  top: 0.1rem;
  width: 1.45rem;
  height: 1.45rem;
  border-radius: 999px;
  background: rgba(242, 140, 40, 0.16);
  border: 1px solid rgba(242, 140, 40, 0.35);
  color: #9c4f12;
  font-size: 0.8rem;
  font-weight: 800;
  line-height: 1.45rem;
  text-align: center;
}

.about-coop__cta {
  width: 100%;
  max-width: none;
  margin: clamp(var(--space-8), 5vw, var(--space-10)) 0 0;
  position: relative;
  text-align: center;
  padding: var(--space-7) var(--space-6);
  border-radius: var(--radius-xl);
  border: 1px solid transparent;
  box-shadow: var(--shadow-md);
  background:
    linear-gradient(165deg, var(--surface-1) 0%, rgba(238, 243, 248, 0.88) 100%) padding-box,
    var(--grad-brand-diag-soft) border-box;
  background-clip: padding-box, border-box;
  box-sizing: border-box;
}

.about-coop__cta::after {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: min(14rem, 50%);
  height: 2px;
  border-radius: 0 0 var(--radius-xs) var(--radius-xs);
  background: linear-gradient(90deg, transparent, rgba(242, 140, 40, 0.55), transparent);
  opacity: 0.95;
  pointer-events: none;
}

.about-coop__cta h2 {
  margin: 0 0 var(--space-4);
}

.about-coop__cta .cta-intro {
  margin: 0 auto var(--space-5);
  max-width: 42rem;
  color: var(--blue-800);
  line-height: var(--leading-relaxed);
}

.about-coop__cta .center-cta {
  margin-top: var(--space-5);
}

.reference-list__intro {
  margin: 0 0 var(--space-6);
  max-width: 52rem;
  color: var(--blue-800);
  line-height: var(--leading-relaxed);
}

.reference-detail .ref-logo--detail {
  margin: 0;
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  min-width: 7rem;
  min-height: 4.5rem;
}

.reference-detail__card {
  max-width: min(56rem, 100%);
  margin-inline: auto;
}

.reference-detail__header {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  margin-bottom: var(--space-6);
}

.reference-detail__titles {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.reference-detail__company {
  margin: 0;
  color: var(--accent);
  font-size: 0.9rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.reference-detail__project {
  margin: 0;
  color: var(--blue-950);
  font-size: clamp(1.4rem, 2vw + 1rem, 2.25rem);
  line-height: var(--leading-tight);
  letter-spacing: -0.03em;
}

.reference-detail__lead {
  margin-top: var(--space-4);
  max-width: 46rem;
  font-size: 1.05rem;
  font-weight: 500;
}

.reference-detail__body {
  display: grid;
  gap: var(--space-5);
  max-width: 46rem;
}

.reference-detail__body > p {
  margin: 0;
  color: var(--blue-800);
  line-height: var(--leading-relaxed);
}

.reference-detail__body h3 {
  margin: 0 0 var(--space-3);
  font-size: 1.15rem;
  color: var(--blue-950);
}

.reference-detail__body .ref-detail-block {
  margin: 0;
}

.reference-detail__body .ref-detail-block p,
.reference-detail__body .ref-detail-block li {
  color: var(--blue-800);
  line-height: var(--leading-relaxed);
}

.reference-detail__body .ref-detail-block ul {
  margin: 0;
  padding-left: 1.2rem;
  display: grid;
  gap: 0.45rem;
}

.reference-detail__body .ref-detail-results {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-3);
  margin: var(--space-2) 0;
  padding: var(--space-4);
  border-radius: var(--radius-lg);
  background: rgba(19, 49, 73, 0.04);
  border: 1px solid rgba(19, 49, 73, 0.08);
}

.reference-detail__body .ref-detail-results__item {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.reference-detail__body .ref-detail-results__item strong {
  font-size: 1.15rem;
  color: var(--blue-950);
}

.reference-detail__body .ref-detail-results__item span {
  color: var(--blue-700);
  font-size: 0.92rem;
}

.reference-detail__back {
  margin: var(--space-6) 0 0;
}

.reference-detail__back a {
  color: var(--accent);
  font-weight: 700;
  text-decoration: none;
}

.reference-detail__back a:hover {
  text-decoration: underline;
}

@media (min-width: 700px) {
  .reference-detail__body .ref-detail-results {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.reference-detail__body ul,
.reference-detail__body ol {
  margin: 0;
  padding-left: 1.25rem;
}

.reference-detail__body > :last-child {
  margin-bottom: 0;
}

.reference-detail__header .ref-logo--detail img {
  display: block;
  width: auto;
  height: 4.5rem;
  max-width: 11rem;
  max-height: 4.5rem;
  object-fit: contain;
  object-position: left center;
  background: transparent;
}

.reference-detail__header .ref-logo__fallback {
  max-width: 11rem;
  max-height: 4.5rem;
}

@media (max-width: 900px) {
  .about-page__intro-grid {
    grid-template-columns: 1fr;
  }

  .about-page__visual img {
    height: clamp(14rem, 50vw, 18rem);
  }

  .about-page__visual {
    width: 100%;
    max-width: 100%;
    transform: none;
  }

  .about-coop__grid,
  .about-coop__grid--3,
  .about-coop__grid--4 {
    grid-template-columns: 1fr;
  }

  .reference-detail__header {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 720px) {
  .cms-page .section.cms-page-body.about-team-strip,
  .cms-page .section.cms-page-body.about-coop,
  .cms-page .section.cms-page-body.about-page--intro {
    scroll-margin-top: 5.5rem;
  }

  .about-page__visual img {
    height: clamp(12rem, 52vw, 15rem);
  }


  .about-page__copy > p {
    text-align: left;
  }
}

.contact-form {
  display: grid;
  gap: 0.9rem;
}

.contact-form .row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.9rem;
}

.contact-form label {
  display: block;
  margin-bottom: 0.35rem;
  font-weight: 600;
  color: var(--blue-900);
}

.contact-form input,
.contact-form textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  padding: 0.75rem 0.85rem;
  font: inherit;
  color: var(--blue-950);
  background: var(--surface-1);
}

.contact-form textarea {
  min-height: 8rem;
  resize: vertical;
}

.form-notice {
  margin: 0.75rem 0 1rem;
  padding: 0.75rem 0.85rem;
  border-radius: var(--radius-md);
  font-weight: 500;
}

.form-notice--ok {
  background: rgba(32, 155, 86, 0.14);
  color: #116037;
}

.form-notice--err {
  background: rgba(185, 32, 42, 0.14);
  color: #8f1f2a;
}

/* Bez velkého záporného offsetu — ten roztahoval šířku stránky a rozbíjel layout (scroll) */
.hp-field {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
  opacity: 0 !important;
}

@media (max-width: 760px) {
  .contact-form .row {
    grid-template-columns: 1fr;
  }
}

/* =============================================================================
   Language Switcher
   ============================================================================= */

.lang-switcher {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.06em;
}

.lang-switcher__link {
  text-decoration: none;
  transition: color var(--duration-fast) var(--ease-out);
  padding: 0.1em 0.15em;
  border-radius: 3px;
}

.lang-switcher__link.is-active {
  cursor: default;
  pointer-events: none;
}

.lang-switcher__sep {
  font-weight: 400;
  user-select: none;
}

/* Desktop header variant — plain text, active = accent orange */
.lang-switcher--header {
  background: transparent;
  border: none;
  padding: 0;
}

.lang-switcher--header .lang-switcher__link {
  color: #888;
}

.lang-switcher--header .lang-switcher__link:hover {
  color: #111;
}

.lang-switcher--header .lang-switcher__link.is-active {
  color: var(--accent);
  font-weight: 800;
}

.lang-switcher--header .lang-switcher__sep {
  color: #bbb;
}

/* Mobile nav dropdown variant — sits on the white card nav */
.lang-switcher--mobile-nav {
  margin-top: 0.5rem;
  padding: 0.4rem var(--space-4);
  border-top: 1px solid var(--line);
  width: 100%;
  justify-content: flex-start;
  border-radius: 0;
  background: transparent;
  border-left: none;
  border-right: none;
  border-bottom: none;
}

.lang-switcher--mobile-nav .lang-switcher__link {
  font-size: 0.9375rem;
  padding: 0.3em 0.4em;
  color: var(--blue-700);
}

.lang-switcher--mobile-nav .lang-switcher__link:hover {
  color: var(--blue-950);
}

.lang-switcher--mobile-nav .lang-switcher__link.is-active {
  color: var(--accent);
  font-weight: 800;
}

.lang-switcher--mobile-nav .lang-switcher__sep {
  color: var(--blue-400);
}

/* Hide the mobile nav switcher on desktop — it's only for the hamburger dropdown */
@media (min-width: 761px) {
  .lang-switcher--mobile-nav {
    display: none;
  }
}

/* =============================================================================
   Contact Page — Redesigned Layout
   ============================================================================= */

.kontakt-layout {
  background: linear-gradient(180deg, var(--surface-1) 0%, var(--blue-50) 100%);
  border-bottom: 1px solid var(--line-subtle);
}

.kontakt-grid {
  display: grid;
  grid-template-columns: 1fr 1.25fr;
  gap: 3rem;
  align-items: start;
}

/* — Info column — */
.kontakt-info__title {
  font-size: clamp(1.25rem, 2vw + 0.5rem, 1.625rem);
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--navy-900);
  margin-bottom: 1.5rem;
  letter-spacing: -0.02em;
}

.kontakt-cards {
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
  margin-bottom: 1.75rem;
}

.kontakt-card {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  padding: 1.125rem 1.25rem;
  box-shadow: var(--shadow-xs);
  transition: box-shadow var(--duration-base) var(--ease-out),
              border-color var(--duration-base) var(--ease-out);
}

.kontakt-card:hover {
  box-shadow: var(--shadow-sm);
  border-color: var(--blue-200);
}

.kontakt-card__icon {
  width: 2.375rem;
  height: 2.375rem;
  border-radius: var(--radius-sm);
  background: var(--accent-surface);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--accent);
}

.kontakt-card__label {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  font-weight: 700;
  color: var(--blue-600);
  margin-bottom: 0.3rem;
}

.kontakt-card__value {
  font-size: 1rem;
  font-weight: 500;
  color: var(--navy-900);
  text-decoration: none;
  line-height: 1.4;
}

a.kontakt-card__value:hover {
  color: var(--blue-600);
  text-decoration: underline;
}

.kontakt-card__value p {
  margin: 0;
}

.kontakt-company-block {
  background: var(--surface-2);
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  padding: 1.25rem 1.375rem;
}

.kontakt-company-block__name {
  font-size: 1rem;
  font-weight: 700;
  color: var(--navy-900);
  margin: 0 0 0.75rem;
}

.kontakt-company-block__dl {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  margin: 0;
}

.kontakt-company-block__dl > div {
  display: flex;
  gap: 0.5rem;
  font-size: 0.9375rem;
}

.kontakt-company-block__dl dt {
  color: var(--blue-600);
  font-weight: 600;
  min-width: 5.5rem;
  flex-shrink: 0;
}

.kontakt-company-block__dl dd {
  margin: 0;
  color: var(--navy-900);
}

/* — Form panel — */
.kontakt-form-panel {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: clamp(1.5rem, 3vw, 2.25rem);
  box-shadow: var(--shadow-md);
}

.kontakt-form-panel__title {
  font-size: clamp(1.25rem, 2vw + 0.5rem, 1.625rem);
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--navy-900);
  margin-bottom: 0.375rem;
  letter-spacing: -0.02em;
}

.kontakt-form-panel__lead {
  color: var(--blue-700);
  font-size: 0.9375rem;
  margin-bottom: 1.5rem;
}

/* Responsive: stack on mobile */
@media (max-width: 860px) {
  .kontakt-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  /* Natural order: contact info first, form below */
}

@media (max-width: 480px) {
  .kontakt-card {
    padding: 1rem;
  }
  .kontakt-form-panel {
    padding: 1.25rem;
    border-radius: var(--radius-md);
  }
}

/* =============================================================================
   Footer — legal row
   ============================================================================= */

.footer-legal {
  margin-top: var(--space-2);
  font-size: 0.75rem;
  color: rgba(180, 210, 230, 0.55);
}

.footer-legal a {
  color: rgba(180, 210, 230, 0.7);
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: color var(--duration-fast) var(--ease-out);
}

.footer-legal a:hover {
  color: #fff;
}

/* =============================================================================
   Contact form — privacy notice
   ============================================================================= */

.form-privacy-notice {
  font-size: 0.8125rem;
  color: var(--blue-700);
  margin: 0 0 var(--space-3);
  line-height: 1.5;
}

.form-privacy-notice a {
  color: var(--blue-600);
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* =============================================================================
   Legal page — cms-legal
   ============================================================================= */

.cms-legal h2 {
  font-size: 1.125rem;
  font-weight: 700;
  margin: var(--space-7) 0 var(--space-3);
  color: var(--blue-950);
  letter-spacing: -0.01em;
}

.cms-legal h2:first-child {
  margin-top: 0;
}

.cms-legal table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
  margin: var(--space-4) 0;
}

.cms-legal table th,
.cms-legal table td {
  text-align: left;
  padding: 0.5rem 0.75rem;
  border: 1px solid var(--line-subtle);
}

.cms-legal table th {
  background: var(--blue-50);
  font-weight: 600;
  color: var(--blue-900);
}

.cms-legal code {
  font-size: 0.8125rem;
  background: var(--blue-50);
  border: 1px solid var(--line-subtle);
  border-radius: var(--radius-xs);
  padding: 0.1em 0.4em;
  color: var(--blue-800);
}

.cms-legal__note {
  margin-top: var(--space-6);
  padding: var(--space-4);
  background: var(--blue-50);
  border-left: 3px solid var(--blue-300);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  font-size: 0.8125rem;
  color: var(--blue-700);
  font-style: italic;
}

/* =============================================================================
   Cookie notice bar
   ============================================================================= */

.cookie-notice {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 9000;
  background:
    linear-gradient(135deg, var(--blue-900) 0%, var(--blue-800) 100%);
  color: var(--blue-100);
  box-shadow: 0 -2px 16px rgba(0, 0, 0, 0.25);
  border-top: 2px solid rgba(242, 140, 40, 0.5);
}

.cookie-notice__inner {
  display: flex;
  align-items: center;
  gap: var(--space-5);
  padding-top: var(--space-3);
  padding-bottom: var(--space-3);
  flex-wrap: wrap;
}

.cookie-notice__text {
  flex: 1 1 20rem;
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.5;
}

.cookie-notice__text a {
  color: #ffc978;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.cookie-notice__btn {
  flex-shrink: 0;
  font-size: 0.875rem;
  padding: 0.4rem 1.25rem;
}

/* Verified mobile overflow fix: long team contact rows must not widen grid tracks. */
@media (max-width: 699px) {
  .service-grid.about-team__grid,
  .about-team__grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .about-team-card__contact {
    flex-wrap: wrap;
    max-width: 100%;
  }
  .about-team-card__contact-link {
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
  }
  .about-team-card__contact-sep {
    display: none;
  }
}
