/* ProCortex — vizuální systém
   Řídicí tvar: oblouk ze znaku ProCortexu. Rozházené oblouky = problém,
   souosé kolem jednoho středu = řešení. Barvy: černá, bílá, chladná šedá,
   karmínová z loga. Karmínová jen pro bolest, důsledek a hlavní akci. */

:root {
  --cerna: #141414;
  --inkoust: #1c1c1e;
  --papir: #ffffff;
  --papir2: #f5f5f4;
  --papir3: #ebebe9;
  --seda: #8a8a8e;
  --seda-tmava: #56565a;
  --linka: #e2e2e0;
  --linka-tmava: #333336;
  --karmin: #d62b4b;
  --karmin-tmavy: #b31f3b;

  --sirka: 1180px;
  --uzka: 760px;
  --mezera-sekce: clamp(4.5rem, 9vw, 8.5rem);
  --radius: 2px;

  --pismo: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
    "Helvetica Neue", Arial, sans-serif;
}

*,
*::before,
*::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

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

body {
  margin: 0;
  font-family: var(--pismo);
  font-size: 17px;
  line-height: 1.65;
  color: var(--cerna);
  background: var(--papir);
  -webkit-font-smoothing: antialiased;
  font-feature-settings: "kern" 1, "liga" 1;
}

img { max-width: 100%; height: auto; display: block; }

h1, h2, h3, h4 {
  margin: 0;
  font-weight: 620;
  letter-spacing: -.028em;
  /* 1.12, ne méně — česká diakritika (ů, Ě, Á) potřebuje víc místa nad písmenem. */
  line-height: 1.12;
  text-wrap: balance;
}

h1 { font-size: clamp(2.35rem, 6.2vw, 4.6rem); }
h2 { font-size: clamp(1.85rem, 4vw, 3.05rem); }
h3 { font-size: clamp(1.25rem, 2.2vw, 1.65rem); line-height: 1.2; }
h4 { font-size: 1.03rem; letter-spacing: -.01em; }

p { margin: 0 0 1.15em; }
p:last-child { margin-bottom: 0; }

a { color: inherit; }

/* Viditelný focus — povinné, klávesnicové ovládání je v zadání. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible {
  outline: 2.5px solid var(--karmin);
  outline-offset: 3px;
  border-radius: var(--radius);
}

.preskocit {
  position: absolute;
  left: -9999px;
  top: 0;
  background: var(--cerna);
  color: var(--papir);
  padding: .85rem 1.4rem;
  z-index: 200;
  text-decoration: none;
}
.preskocit:focus { left: 0; }

/* ---------------------------------------------------------------- layout */

.obal {
  width: 100%;
  max-width: var(--sirka);
  margin-inline: auto;
  padding-inline: clamp(1.15rem, 4vw, 2.5rem);
}

.sekce { padding-block: var(--mezera-sekce); }
.sekce--tesna { padding-block: clamp(3rem, 6vw, 5rem); }

.sekce--tmava {
  background: var(--inkoust);
  color: var(--papir);
}
.sekce--tmava h2,
.sekce--tmava h3 { color: var(--papir); }

.sekce--papir2 { background: var(--papir2); }

/* Popisek sekce — malý, prostrkaný, s karmínovou tečkou. */
.stitek {
  display: flex;
  align-items: center;
  gap: .6rem;
  font-size: .765rem;
  font-weight: 620;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--seda-tmava);
  margin-bottom: 1.6rem;
}
.sekce--tmava .stitek { color: #9a9a9f; }
.stitek::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--karmin);
  flex: none;
}

.lead {
  font-size: clamp(1.08rem, 1.7vw, 1.3rem);
  line-height: 1.55;
  color: var(--seda-tmava);
  max-width: 46ch;
}
.sekce--tmava .lead { color: #b9b9bd; }

.uzky { max-width: var(--uzka); }

/* Dvousloupcová hlavička sekce: nadpis vlevo, doprovod vpravo. */
.hlava2 {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.6rem 4rem;
  align-items: end;
  margin-bottom: clamp(2.5rem, 5vw, 4rem);
}
@media (min-width: 860px) {
  .hlava2 { grid-template-columns: 1.15fr .85fr; }
}

/* ---------------------------------------------------------------- tlačítka */

.btn {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  padding: .95rem 1.6rem;
  font: inherit;
  font-size: .97rem;
  font-weight: 580;
  letter-spacing: -.01em;
  text-decoration: none;
  border: 1.5px solid transparent;
  border-radius: var(--radius);
  cursor: pointer;
  transition: background-color .16s ease, color .16s ease, border-color .16s ease;
}
.btn svg { flex: none; transition: transform .16s ease; }
.btn:hover svg { transform: translateX(3px); }

.btn--hlavni {
  background: var(--karmin);
  color: #fff;
  border-color: var(--karmin);
}
.btn--hlavni:hover { background: var(--karmin-tmavy); border-color: var(--karmin-tmavy); }

.btn--obrys {
  background: transparent;
  color: var(--cerna);
  border-color: var(--cerna);
}
.btn--obrys:hover { background: var(--cerna); color: var(--papir); }

.sekce--tmava .btn--obrys { color: var(--papir); border-color: #4a4a4f; }
.sekce--tmava .btn--obrys:hover { background: var(--papir); color: var(--cerna); border-color: var(--papir); }

.btn-radek {
  display: flex;
  flex-wrap: wrap;
  gap: .85rem;
  align-items: center;
}

/* Textový odkaz s podtržením, které se prodlouží. */
.odkaz {
  color: var(--karmin);
  text-decoration: none;
  font-weight: 560;
  border-bottom: 1.5px solid rgba(214, 43, 75, .3);
  transition: border-color .16s ease;
}
.odkaz:hover { border-bottom-color: var(--karmin); }

/* ---------------------------------------------------------------- hlavička */

.hlavicka {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(255, 255, 255, .93);
  backdrop-filter: saturate(180%) blur(14px);
  border-bottom: 1px solid var(--linka);
}

.hlavicka__obal {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  min-height: 72px;
}

.logo { display: flex; align-items: center; flex: none; }
.logo img { height: 30px; width: auto; }

.navigace {
  display: none;
  align-items: center;
  gap: 2.1rem;
}
@media (min-width: 900px) { .navigace { display: flex; } }

.navigace a {
  font-size: .95rem;
  font-weight: 500;
  text-decoration: none;
  color: var(--seda-tmava);
  padding-block: .3rem;
  border-bottom: 1.5px solid transparent;
  transition: color .16s ease, border-color .16s ease;
}
.navigace a:hover { color: var(--cerna); }
.navigace a[aria-current="page"] {
  color: var(--cerna);
  border-bottom-color: var(--karmin);
}

.hlavicka__akce { display: none; }
@media (min-width: 900px) { .hlavicka__akce { display: block; } }
.hlavicka__akce .btn { padding: .7rem 1.25rem; font-size: .92rem; }

/* Mobilní menu — jen CSS, funguje bez JS. */
.menu-prepinac {
  display: block;
  background: none;
  border: 1.5px solid var(--linka);
  border-radius: var(--radius);
  padding: .55rem .9rem;
  font: inherit;
  font-size: .9rem;
  font-weight: 560;
  cursor: pointer;
}
@media (min-width: 900px) { .menu-prepinac { display: none; } }

.menu-mobil { display: none; }
.hlavicka:has(.menu-prepinac[aria-expanded="true"]) .menu-mobil { display: block; }
.menu-mobil {
  border-top: 1px solid var(--linka);
  background: var(--papir);
  padding: 1rem 0 1.5rem;
}
.menu-mobil a {
  display: block;
  padding: .8rem 0;
  text-decoration: none;
  font-weight: 520;
  border-bottom: 1px solid var(--linka);
}
.menu-mobil .btn { margin-top: 1.1rem; width: 100%; justify-content: center; }

/* ---------------------------------------------------------------- hero */

.hero {
  position: relative;
  padding-block: clamp(3.5rem, 8vw, 7rem) clamp(3rem, 6vw, 5.5rem);
  overflow: hidden;
}

.hero__mrizka {
  display: grid;
  gap: 2.5rem 4rem;
  align-items: center;
  position: relative;
  z-index: 2;
}
@media (min-width: 940px) {
  .hero__mrizka { grid-template-columns: 1.08fr .92fr; }
}

.hero h1 { margin-bottom: 1.5rem; }
.hero h1 em {
  font-style: normal;
  color: var(--karmin);
}

.hero__lead {
  font-size: clamp(1.08rem, 1.6vw, 1.24rem);
  line-height: 1.55;
  color: var(--seda-tmava);
  max-width: 50ch;
  margin-bottom: 2.2rem;
}

.hero__pod {
  margin-top: 1.8rem;
  font-size: .9rem;
  color: var(--seda);
}

/* Fotka v hero. Na mobilu jde pod text, na desktopu vedle něj. */
.hero__foto { margin: 0; }
.hero__foto img {
  width: 100%;
  border-radius: var(--radius);
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: center 42%;
}

/* ---------------------------------------------------------------- situace */

.situace {
  display: grid;
  gap: 0;
  border-top: 1px solid var(--linka-tmava);
}
@media (min-width: 720px) { .situace { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .situace { grid-template-columns: repeat(3, 1fr); } }

.situace li {
  list-style: none;
  padding: 1.7rem 1.6rem 1.7rem 0;
  border-bottom: 1px solid var(--linka-tmava);
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  font-size: 1.02rem;
  line-height: 1.45;
}
@media (min-width: 720px) {
  .situace li:nth-child(2n) { padding-left: 1.6rem; }
}
@media (min-width: 1000px) {
  .situace li:nth-child(2n) { padding-left: 0; }
  .situace li:not(:nth-child(3n+1)) { padding-left: 1.8rem; }
}

.situace li::before {
  content: "";
  flex: none;
  width: 20px;
  height: 20px;
  margin-top: .28em;
  border: 2px solid var(--karmin);
  border-right-color: transparent;
  border-bottom-color: transparent;
  border-radius: 50%;
  transform: rotate(-45deg);
}

/* ---------------------------------------------------------------- náklad */

.naklad {
  display: grid;
  gap: 1px;
  background: var(--linka);
  border: 1px solid var(--linka);
}
@media (min-width: 760px) { .naklad { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1040px) { .naklad { grid-template-columns: repeat(4, 1fr); } }

.naklad__pole {
  background: var(--papir);
  padding: 2rem 1.7rem 2.1rem;
}
.naklad__pole h3 {
  font-size: 1.12rem;
  margin-bottom: .7rem;
}
.naklad__pole p {
  font-size: .95rem;
  color: var(--seda-tmava);
  line-height: 1.55;
}
.naklad__znak {
  font-size: .78rem;
  font-weight: 660;
  letter-spacing: .12em;
  color: var(--karmin);
  display: block;
  margin-bottom: 1.1rem;
}

/* ---------------------------------------------------------------- řetěz */

.retez {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem .35rem;
  align-items: center;
  padding: 0;
  margin: 0;
  list-style: none;
}
.retez li {
  display: flex;
  align-items: center;
  gap: .35rem;
  font-size: clamp(.95rem, 1.5vw, 1.14rem);
  font-weight: 540;
  letter-spacing: -.015em;
}
.retez li::after {
  content: "→";
  color: var(--karmin);
  margin-left: .3rem;
  font-weight: 400;
}
.retez li:last-child::after { content: ""; }
.retez li:last-child { color: var(--karmin); font-weight: 640; }

/* ---------------------------------------------------------------- kroky */

.kroky {
  display: grid;
  gap: 0;
  counter-reset: krok;
}

.krok {
  display: grid;
  gap: .6rem 2.5rem;
  padding-block: 1.9rem;
  border-top: 1px solid var(--linka);
  align-items: start;
}
.krok:last-child { border-bottom: 1px solid var(--linka); }
@media (min-width: 800px) {
  .krok { grid-template-columns: 88px 1fr 1.35fr; gap: 2.5rem; padding-block: 2.1rem; }
  /* Varianta bez doprovodného textu — jinak by zbyl prázdný třetí sloupec. */
  .krok--sam { grid-template-columns: 88px 1fr; }
}

.krok__cislo {
  font-size: .85rem;
  font-weight: 680;
  letter-spacing: .1em;
  color: var(--karmin);
  padding-top: .28rem;
}
.krok h3 { font-size: 1.3rem; }
.krok p { color: var(--seda-tmava); font-size: 1rem; margin: 0; }

.sekce--tmava .krok { border-color: var(--linka-tmava); }
.sekce--tmava .krok:last-child { border-bottom-color: var(--linka-tmava); }
.sekce--tmava .krok p { color: #b9b9bd; }

/* ---------------------------------------------------------------- synergie */

/* Čtyři vrstvy: každá přidá jeden čtvrtkruh, poslední kruh uzavře. */
.vrstvy {
  display: grid;
  gap: 1px;
  background: var(--linka);
  border: 1px solid var(--linka);
}
@media (min-width: 700px) { .vrstvy { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1040px) { .vrstvy { grid-template-columns: repeat(4, 1fr); } }

.vrstva {
  background: var(--papir);
  padding: 2rem 1.6rem 1.8rem;
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
  transition: background-color .18s ease;
}
.vrstva:hover { background: var(--papir2); }
.vrstva:hover .vrstva__kurz { color: var(--karmin); }

.vrstva__znak { width: 76px; height: 76px; margin-bottom: 1.3rem; }

.vrstva__cislo {
  font-size: .74rem;
  font-weight: 680;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--seda);
  margin-bottom: .55rem;
}
.vrstva h3 { font-size: 1.22rem; margin-bottom: .7rem; }
.vrstva__text {
  font-size: .94rem;
  color: var(--seda-tmava);
  line-height: 1.55;
  flex: 1;
  margin-bottom: 1.3rem;
}
.vrstva__kurz {
  font-size: .87rem;
  font-weight: 580;
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  transition: color .18s ease;
}

.nasobek {
  display: grid;
  gap: 2.4rem 4rem;
  margin-top: clamp(2.4rem, 5vw, 3.6rem);
}
@media (min-width: 900px) { .nasobek { grid-template-columns: 1fr 1fr; } }
.nasobek h3 { font-size: 1.3rem; margin-bottom: 1rem; }
.nasobek p { color: var(--seda-tmava); }

.nasobek__radek {
  padding: .95rem 0;
  border-top: 1px solid var(--linka);
  display: grid;
  gap: .2rem;
}
.nasobek__radek:last-child { border-bottom: 1px solid var(--linka); }
.nasobek__radek strong { font-size: .97rem; }
.nasobek__radek span { font-size: .91rem; color: var(--seda-tmava); line-height: 1.5; }

/* ---------------------------------------------------------------- koučování */

.koucovani {
  display: grid;
  gap: 2rem 4rem;
  align-items: start;
}
@media (min-width: 900px) { .koucovani { grid-template-columns: 1.35fr .65fr; } }
.koucovani h2 { font-size: clamp(1.5rem, 2.6vw, 2rem); margin-bottom: 1.1rem; }
.koucovani p { color: var(--seda-tmava); }
.koucovani .lead { color: var(--cerna); }

/* ---------------------------------------------------------------- emoce */

.pocity {
  display: grid;
  gap: 2rem 4rem;
  align-items: start;
}
@media (min-width: 900px) { .pocity { grid-template-columns: .85fr 1.15fr; } }
.pocity h2 { font-size: clamp(1.5rem, 2.6vw, 2rem); margin-bottom: 1rem; }

.pocity__seznam { margin: 0; padding: 0; list-style: none; }
.pocity__seznam li {
  position: relative;
  padding: 1rem 0 1rem 2.1rem;
  border-bottom: 1px solid var(--linka);
  font-size: .99rem;
  line-height: 1.55;
  color: var(--seda-tmava);
}
.pocity__seznam li:first-child { border-top: 1px solid var(--linka); }
.pocity__seznam strong { color: var(--cerna); font-weight: 600; }
.pocity__seznam li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 1.55em;
  width: 11px;
  height: 11px;
  border: 2px solid var(--karmin);
  border-right-color: transparent;
  border-bottom-color: transparent;
  border-radius: 50%;
  transform: rotate(-45deg);
}

/* ---------------------------------------------------------------- fotky */

.foto { margin: clamp(2.4rem, 5vw, 3.4rem) 0 0; }
.foto img {
  width: 100%;
  border-radius: var(--radius);
  background: var(--papir2);
}
.foto figcaption {
  font-size: .89rem;
  color: var(--seda);
  margin-top: .8rem;
  max-width: 62ch;
  line-height: 1.5;
}
.sekce--tmava .foto figcaption { color: #9a9a9f; }

.zakladatel {
  display: grid;
  gap: 2rem 3.5rem;
  align-items: start;
}
@media (min-width: 880px) { .zakladatel { grid-template-columns: 1.35fr .65fr; } }
/* Studiová fotka má bílé pozadí — na šedé sekci by jinak „plavala“. */
.zakladatel .foto { margin-top: 0; }
.foto--portret img { border: 1px solid var(--linka); }
.zakladatel .casova-osa li:first-child { border-top: 1px solid var(--linka); }

/* ---------------------------------------------------------------- karty kurzů */

.trojice,
.ctverice {
  display: grid;
  gap: 1.5rem;
}
@media (min-width: 700px) { .ctverice { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 860px) { .trojice { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1060px) { .ctverice { grid-template-columns: repeat(4, 1fr); } }

.karta {
  display: flex;
  flex-direction: column;
  padding: 1.9rem 1.7rem 1.8rem;
  background: var(--papir);
  border: 1px solid var(--linka);
  border-radius: var(--radius);
  text-decoration: none;
  color: inherit;
  transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.karta:hover {
  border-color: var(--cerna);
  transform: translateY(-3px);
  box-shadow: 0 12px 34px -22px rgba(0, 0, 0, .45);
}

.karta__krok {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-size: .76rem;
  font-weight: 660;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--karmin);
  margin-bottom: 1.15rem;
}
.karta h3 { margin-bottom: .75rem; }
.karta p {
  font-size: .96rem;
  color: var(--seda-tmava);
  line-height: 1.55;
  flex: 1;
}
.karta__sip {
  margin-top: 1.4rem;
  font-size: .9rem;
  font-weight: 580;
  color: var(--cerna);
  display: inline-flex;
  align-items: center;
  gap: .45rem;
}

/* Seznam ostatních kurzů — řádky, ne karty. */
.skupina + .skupina { margin-top: 3.4rem; }

.skupina__hlava {
  display: flex;
  align-items: baseline;
  gap: 1rem;
  padding-bottom: .9rem;
  border-bottom: 2px solid var(--cerna);
  margin-bottom: .2rem;
}
.skupina__cislo {
  font-size: .8rem;
  font-weight: 680;
  letter-spacing: .1em;
  color: var(--karmin);
}
.skupina__hlava h3 { font-size: 1.3rem; }
.skupina__popis {
  font-size: .95rem;
  color: var(--seda-tmava);
  margin: .9rem 0 .3rem;
  max-width: 62ch;
}

.radky { margin: 0; padding: 0; list-style: none; }

.radek {
  display: grid;
  gap: .3rem 2rem;
  padding: 1.35rem 0;
  border-bottom: 1px solid var(--linka);
  text-decoration: none;
  color: inherit;
  align-items: baseline;
  transition: padding-left .18s ease;
}
@media (min-width: 780px) {
  .radek { grid-template-columns: minmax(230px, .82fr) 1fr auto; align-items: center; }
}
.radek:hover { padding-left: .6rem; }
.radek:hover .radek__nazev { color: var(--karmin); }

.radek__nazev {
  font-weight: 600;
  font-size: 1.06rem;
  letter-spacing: -.015em;
  transition: color .18s ease;
}
.radek__bolest {
  font-size: .94rem;
  color: var(--seda-tmava);
  line-height: 1.5;
}
.radek__sip {
  color: var(--seda);
  font-size: 1.1rem;
  display: none;
}
@media (min-width: 780px) { .radek__sip { display: block; } }

/* ---------------------------------------------------------------- výběr podle problému */

.vyber { margin: 0; padding: 0; list-style: none; }
.vyber li { border-bottom: 1px solid var(--linka); }
.vyber a {
  display: grid;
  gap: .35rem 2rem;
  padding: 1.3rem 0;
  text-decoration: none;
  color: inherit;
  align-items: center;
}
@media (min-width: 780px) { .vyber a { grid-template-columns: 1fr auto; } }
.vyber__otazka {
  font-size: clamp(1.02rem, 1.6vw, 1.16rem);
  font-weight: 520;
  letter-spacing: -.015em;
}
.vyber__cil {
  font-size: .9rem;
  font-weight: 600;
  color: var(--karmin);
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  white-space: nowrap;
}
.vyber a:hover .vyber__otazka { color: var(--karmin); }

/* ---------------------------------------------------------------- důkazy */

.cisla {
  display: grid;
  gap: 1px;
  background: var(--linka-tmava);
  border-block: 1px solid var(--linka-tmava);
}
@media (min-width: 700px) { .cisla { grid-template-columns: repeat(3, 1fr); } }

.cislo {
  background: var(--inkoust);
  padding: 2.1rem 1.6rem;
}
.cislo strong {
  display: block;
  font-size: clamp(2.1rem, 4.5vw, 3.1rem);
  font-weight: 660;
  letter-spacing: -.035em;
  line-height: 1;
  margin-bottom: .65rem;
}
.cislo span { font-size: .95rem; color: #a8a8ad; line-height: 1.5; display: block; }

.klienti {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  background: var(--linka);
  border: 1px solid var(--linka);
}
@media (min-width: 620px) { .klienti { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 900px) { .klienti { grid-template-columns: repeat(4, 1fr); } }

.klienti li {
  list-style: none;
  background: var(--papir);
  padding: 1.35rem 1.1rem;
  font-size: .92rem;
  font-weight: 540;
  letter-spacing: -.01em;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-height: 82px;
  color: var(--seda-tmava);
}

.spoluprace {
  display: grid;
  gap: 1.4rem;
  margin-top: 2.6rem;
}
@media (min-width: 820px) { .spoluprace { grid-template-columns: repeat(2, 1fr); } }

.spoluprace__pole {
  border-left: 2px solid var(--karmin);
  padding: .2rem 0 .3rem 1.4rem;
}
.spoluprace__pole h3 {
  font-size: 1.1rem;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: .7rem;
  margin-bottom: .5rem;
}
.spoluprace__obdobi {
  font-size: .82rem;
  font-weight: 620;
  letter-spacing: .06em;
  color: var(--karmin);
  text-transform: uppercase;
}
.spoluprace__pole p { font-size: .9rem; color: var(--seda-tmava); margin: 0; }
/* Na tmavém podkladu by --seda-tmava měla kontrast pod 2:1. */
.sekce--tmava .spoluprace__pole p { color: #a8a8ad; }

/* Archivní ukázky — malé, jako doklad. */
.archiv {
  display: grid;
  gap: 1.3rem;
  margin-top: 2.8rem;
}
@media (min-width: 700px) { .archiv { grid-template-columns: repeat(3, 1fr); } }
.archiv figure { margin: 0; }
.archiv img {
  width: 100%;
  border: 1px solid var(--linka);
  background: var(--papir);
}
.archiv figcaption {
  font-size: .82rem;
  color: var(--seda);
  margin-top: .65rem;
}

/* ---------------------------------------------------------------- detail kurzu */

.kurz-hlava { padding-block: clamp(2.6rem, 5vw, 4.2rem) 0; }

.drobky {
  font-size: .87rem;
  color: var(--seda);
  margin-bottom: 1.8rem;
}
.drobky a { color: var(--seda-tmava); text-decoration: none; }
.drobky a:hover { color: var(--karmin); }
.drobky span { margin-inline: .45rem; }

.kurz-hlava h1 { margin-bottom: 1.2rem; }
.kurz-hlava .lead { max-width: 54ch; }

.bolest-blok {
  display: grid;
  gap: 1px;
  background: var(--linka-tmava);
  border: 1px solid var(--linka-tmava);
  margin-top: clamp(2.5rem, 5vw, 3.8rem);
}
@media (min-width: 780px) { .bolest-blok { grid-template-columns: repeat(2, 1fr); } }

.bolest-blok > div {
  background: var(--inkoust);
  color: var(--papir);
  padding: 2.1rem 1.9rem;
}
.bolest-blok h2 {
  font-size: .78rem;
  font-weight: 660;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--karmin);
  margin-bottom: 1rem;
}
.bolest-blok p {
  font-size: 1.05rem;
  line-height: 1.55;
  color: #dededf;
  margin: 0;
}

.citat {
  margin: 0;
  padding: 1.6rem 0 1.6rem 1.6rem;
  border-left: 2px solid var(--karmin);
  font-size: clamp(1.14rem, 2vw, 1.42rem);
  line-height: 1.4;
  font-weight: 520;
  letter-spacing: -.02em;
}

.dva-sloupce {
  display: grid;
  gap: 2.6rem 4rem;
}
@media (min-width: 880px) { .dva-sloupce { grid-template-columns: repeat(2, 1fr); } }

.odrazky { margin: 0; padding: 0; list-style: none; }
.odrazky li {
  position: relative;
  padding: .72rem 0 .72rem 1.7rem;
  border-bottom: 1px solid var(--linka);
  font-size: .99rem;
  line-height: 1.5;
}
.odrazky li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 1.24em;
  width: 9px;
  height: 9px;
  border: 1.8px solid var(--karmin);
  border-right-color: transparent;
  border-bottom-color: transparent;
  border-radius: 50%;
  transform: rotate(-45deg);
}
.odrazky--proste li::before {
  border: none;
  background: var(--seda);
  width: 5px;
  height: 5px;
  border-radius: 50%;
  transform: none;
  top: 1.4em;
}

.format-blok {
  background: var(--papir2);
  border: 1px solid var(--linka);
  padding: 2rem 1.9rem;
  border-radius: var(--radius);
}
.format-blok h3 { margin-bottom: 1.2rem; font-size: 1.15rem; }
.format-blok__pozn {
  margin: 1.3rem 0 0;
  padding-top: 1.1rem;
  border-top: 1px solid var(--linka);
  font-size: .91rem;
  color: var(--seda-tmava);
  line-height: 1.55;
}

.modul2 {
  margin-top: 2.4rem;
  padding-top: 2rem;
  border-top: 1px solid var(--linka);
}
.modul2 h3 {
  font-size: 1.1rem;
  margin-bottom: .5rem;
}
.modul2 > p {
  font-size: .93rem;
  color: var(--seda-tmava);
  margin-bottom: 1.2rem;
}

/* ---------------------------------------------------------------- formulář */

.formular {
  display: grid;
  gap: 1.3rem;
}

.pole-mrizka {
  display: grid;
  gap: 1.3rem;
}
@media (min-width: 680px) { .pole-mrizka { grid-template-columns: repeat(2, 1fr); } }

label { display: grid; gap: .5rem; }

label > span {
  font-size: .89rem;
  font-weight: 580;
  letter-spacing: -.005em;
}
label .napoveda {
  font-weight: 400;
  color: var(--seda);
  font-size: .84rem;
}

input, select, textarea {
  font: inherit;
  font-size: 1rem;
  padding: .82rem .9rem;
  border: 1.5px solid var(--linka);
  border-radius: var(--radius);
  background: var(--papir);
  color: var(--cerna);
  width: 100%;
  transition: border-color .16s ease;
}
input:hover, select:hover, textarea:hover { border-color: var(--seda); }
input:focus, select:focus, textarea:focus { border-color: var(--cerna); }
textarea { resize: vertical; min-height: 150px; line-height: 1.55; }

.skryte { position: absolute; left: -9999px; }

.formular__pata {
  display: flex;
  flex-wrap: wrap;
  gap: 1.1rem;
  align-items: center;
  padding-top: .4rem;
}
.formular__pozn {
  font-size: .86rem;
  color: var(--seda);
  max-width: 44ch;
  margin: 0;
}

.kontakt-mrizka {
  display: grid;
  gap: 2.8rem 4rem;
  align-items: start;
}
@media (min-width: 940px) { .kontakt-mrizka { grid-template-columns: 1.25fr .75fr; } }

.kontakt-blok { border-top: 2px solid var(--cerna); padding-top: 1.5rem; }
.kontakt-blok + .kontakt-blok { margin-top: 2.4rem; }
.kontakt-blok h3 { font-size: 1.08rem; margin-bottom: .9rem; }
.kontakt-blok p { font-size: .96rem; color: var(--seda-tmava); }
.kontakt-blok a { font-weight: 560; }

.postup { margin: 0; padding: 0; list-style: none; counter-reset: p; }
.postup li {
  counter-increment: p;
  position: relative;
  padding: .55rem 0 .55rem 2.2rem;
  font-size: .96rem;
  color: var(--seda-tmava);
}
.postup li::before {
  content: counter(p);
  position: absolute;
  left: 0;
  top: .62rem;
  width: 22px;
  height: 22px;
  border: 1.5px solid var(--karmin);
  color: var(--karmin);
  border-radius: 50%;
  font-size: .74rem;
  font-weight: 680;
  display: grid;
  place-items: center;
}

/* ---------------------------------------------------------------- přechod na Cockpit */

.prechod {
  border: 1px solid var(--linka);
  border-left: 3px solid var(--cerna);
  padding: clamp(1.9rem, 3.5vw, 2.8rem);
  border-radius: var(--radius);
  background: var(--papir);
}
.prechod h2 { font-size: clamp(1.5rem, 2.6vw, 2rem); margin-bottom: 1rem; }
.prechod p { color: var(--seda-tmava); max-width: 62ch; }

/* ---------------------------------------------------------------- závěrečné CTA */

.zaver {
  background: var(--inkoust);
  color: var(--papir);
  padding-block: clamp(3.5rem, 7vw, 6rem);
}
.zaver h2 { margin-bottom: 1.2rem; max-width: 20ch; }
.zaver p { color: #b9b9bd; max-width: 52ch; font-size: 1.08rem; }
.zaver .btn-radek { margin-top: 2.2rem; }
/* .zaver není .sekce--tmava, ale podklad má tmavý — obrysové tlačítko
   by jinak bylo černé na černém, tedy neviditelné. */
.zaver .btn--obrys { color: var(--papir); border-color: #4a4a4f; }
.zaver .btn--obrys:hover { background: var(--papir); color: var(--cerna); border-color: var(--papir); }

/* ---------------------------------------------------------------- patička */

.paticka {
  background: var(--papir2);
  border-top: 1px solid var(--linka);
  padding-block: 3.4rem 2.2rem;
  font-size: .93rem;
}

.paticka__mrizka {
  display: grid;
  gap: 2.4rem 3rem;
  padding-bottom: 2.6rem;
}
@media (min-width: 800px) { .paticka__mrizka { grid-template-columns: 1.3fr 1fr 1fr; } }

.paticka h4 {
  font-size: .78rem;
  font-weight: 660;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--seda);
  margin-bottom: 1.1rem;
}
.paticka ul { margin: 0; padding: 0; list-style: none; }
.paticka li { margin-bottom: .6rem; }
.paticka a { text-decoration: none; color: var(--seda-tmava); }
.paticka a:hover { color: var(--karmin); }
/* width: auto je povinné — bez něj globální max-width:100% roztáhne logo
   na šířku sloupce a pevná výška ho zploští. Poměr stran loga se nesmí měnit. */
.paticka__logo img { height: 28px; width: auto; margin-bottom: 1.2rem; }
.paticka__adresa { color: var(--seda-tmava); line-height: 1.7; }

.paticka__spodek {
  border-top: 1px solid var(--linka);
  padding-top: 1.5rem;
  display: flex;
  flex-wrap: wrap;
  gap: .6rem 1.5rem;
  justify-content: space-between;
  font-size: .85rem;
  color: var(--seda);
}

/* ---------------------------------------------------------------- text stránky */

.text-obsah { max-width: 68ch; }
.text-obsah h2 { font-size: clamp(1.35rem, 2.4vw, 1.75rem); margin: 2.6rem 0 .9rem; }
.text-obsah h3 { font-size: 1.12rem; margin: 1.8rem 0 .6rem; }
.text-obsah ul { padding-left: 1.2rem; }
.text-obsah li { margin-bottom: .5rem; }
.text-obsah > p:first-child { font-size: 1.08rem; color: var(--seda-tmava); }

/* ---------------------------------------------------------------- příběh */

.casova-osa { margin: 0; padding: 0; list-style: none; }
.casova-osa li {
  display: grid;
  gap: .3rem 2.5rem;
  padding: 1.5rem 0;
  border-bottom: 1px solid var(--linka);
}
@media (min-width: 760px) { .casova-osa li { grid-template-columns: 130px 1fr; } }
.casova-osa strong {
  font-size: .88rem;
  font-weight: 680;
  letter-spacing: .06em;
  color: var(--karmin);
  padding-top: .18rem;
}
.casova-osa p { margin: 0; font-size: 1rem; }

/* ---------------------------------------------------------------- doložené firmy */

/* Reference bez citátů: seznam firem, které program objednaly opakovaně.
   Fakt se ověřit dá, dojem ne — proto tahle podoba místo vymyšlených výroků. */
.prosli {
  display: grid;
  gap: 2rem 4rem;
  align-items: start;
}
@media (min-width: 900px) { .prosli { grid-template-columns: 1.1fr .9fr; } }
.prosli h2 { font-size: clamp(1.45rem, 2.5vw, 1.95rem); margin-bottom: 1rem; }
.prosli p { color: var(--seda-tmava); }

.prosli__seznam {
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 2px solid var(--cerna);
}
.prosli__seznam li {
  padding: .95rem 0;
  border-bottom: 1px solid var(--linka);
  font-size: 1.05rem;
  font-weight: 580;
  letter-spacing: -.015em;
  display: flex;
  align-items: center;
  gap: .8rem;
}
.prosli__seznam li::before {
  content: "";
  flex: none;
  width: 9px;
  height: 9px;
  border: 2px solid var(--karmin);
  border-right-color: transparent;
  border-bottom-color: transparent;
  border-radius: 50%;
  transform: rotate(-45deg);
}

/* ---------------------------------------------------------------- zpětná vazba */

/* Není to sbírka citátů, ale osobní svědectví zakladatele. Proto podpis
   a proto vzhled záměrně nepřipomíná „recenze“ s hvězdičkami. */
.vyhodnoceni {
  display: grid;
  gap: 2rem 4rem;
  align-items: start;
}
@media (min-width: 900px) { .vyhodnoceni { grid-template-columns: .9fr 1.1fr; } }
.vyhodnoceni h2 { font-size: clamp(1.5rem, 2.6vw, 2rem); margin-bottom: 1.1rem; }

.vyhodnoceni__seznam { margin: 0; padding: 0; list-style: none; }
.vyhodnoceni__seznam li {
  padding: 1rem 0 1rem 1.9rem;
  border-bottom: 1px solid var(--linka);
  font-size: 1.06rem;
  line-height: 1.5;
  letter-spacing: -.012em;
  position: relative;
}
.vyhodnoceni__seznam li:first-child { border-top: 1px solid var(--linka); }
.vyhodnoceni__seznam li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 1.55em;
  width: 10px;
  height: 10px;
  border: 2px solid var(--karmin);
  border-right-color: transparent;
  border-bottom-color: transparent;
  border-radius: 50%;
  transform: rotate(-45deg);
}

.vyhodnoceni__podpis {
  margin-top: 1.6rem;
  font-size: .93rem;
  color: var(--seda-tmava);
  line-height: 1.6;
}
.vyhodnoceni__podpis strong { color: var(--cerna); }

/* ---------------------------------------------------------------- důkazní pás */

/* Úzký pruh mezi hero a první tmavou sekcí. Záměrně nízký: má se přečíst
   při scrollování, ne zdržet. Bez obrázků a bez tlačítek. */
.pas {
  border-block: 1px solid var(--linka);
  background: var(--papir2);
  padding-block: 1.6rem;
}

.pas__seznam {
  display: grid;
  gap: 1.2rem 2rem;
  margin: 0;
  padding: 0;
  list-style: none;
  grid-template-columns: repeat(2, 1fr);
}
@media (min-width: 780px) { .pas__seznam { grid-template-columns: repeat(4, 1fr); } }

.pas__seznam li {
  display: flex;
  flex-direction: column;
  gap: .2rem;
}
.pas__seznam strong {
  font-size: clamp(1.35rem, 2.4vw, 1.75rem);
  font-weight: 660;
  letter-spacing: -.03em;
  line-height: 1;
}
.pas__seznam span {
  font-size: .87rem;
  color: var(--seda-tmava);
  line-height: 1.4;
}
