/*
 * stranky/pribeh-bloky.css - dalsi bloky a efekty detailu pribehu (mc/pribeh.php), D-028.
 *
 * Doplnuje stranky/pribeh.css (K-001), nic z nej nemeni: nove bloky vyzva, reseni (karty),
 * snimek webu v ramecku prohlizece + telefon, cisla, moduly PublicMC, film (misto pro
 * budouci efekt MacBooku .pri-mac), dalsi pribehy; efekty:
 *   - morf polygonu: clip-path polygon se stejnym poctem bodu (8) animovany mezi tvary
 *     (fotografie v uvodu, tvar v pozadi uvodu, tvary na predelu bloku),
 *   - odhalovani pri posunu (.pri-js .pri-odhal / .pri-odhal-obraz -> .is-videt, skript stranky),
 *   - parallax (vlastnost translate z promenne --pri-paralax, skript stranky),
 *   - hover: karty (zdvih, naklon za kurzorem, svetlo pod kurzorem), obrazy (priblizeni),
 *     tlacitka (preleti lesk), odkazy (rostouci linka a posun sipky).
 * prefers-reduced-motion: zadna animace, nic skryteho. Barvy jen z promennych --pri-* / --pmc-*.
 * Plna sirka: okraj --pri-okraj (max 200 px), pisma clamp() rostou i nad 1600 px.
 */

.pri {
  --pri-ease: cubic-bezier(.215, .61, .355, 1);
  --pri-fs-blok: clamp(34px, 4.2vw, 116px);
  --pri-fs-velky-text: clamp(19px, 1.5vw, 40px);
  --pri-fs-stitek: clamp(12px, .73vw, 20px);
  --pri-fs-karta: clamp(20px, 1.45vw, 40px);
  --pri-fs-cislo: clamp(64px, 7.3vw, 210px);
  --pri-radius: clamp(14px, 1vw, 26px);
}

/* isolation: tvary v pozadi (::before, z-index -1) zustanou pod obsahem, nad plochou sekce */
.pri .cmc-b-document .pri-sekce { position: relative; overflow-x: clip; isolation: isolate; }
.pri .cmc-b-document .pri-snimek > .cmc-b-container { position: relative; }

/* ============ Spolecne: stitek bloku a velky nadpis ============ */
.pri .cmc-b-document .pri-sekce .cmc-b-paragraph.pri-stitek-bloku {
  display: flex; align-items: center; gap: 14px; margin: 0 0 clamp(16px, 1.5vw, 40px);
  font-size: var(--pri-fs-stitek); line-height: 1.2; letter-spacing: .12em; text-transform: uppercase;
  color: inherit; opacity: .72;
}
.pri .cmc-b-document .pri-sekce .cmc-b-paragraph.pri-stitek-bloku::before {
  content: ""; width: clamp(28px, 2.5vw, 64px); height: 1px; background: currentColor;
}
.pri .cmc-b-document .pri-sekce .cmc-b-heading.pri-blok-nadpis {
  margin: 0; font-size: var(--pri-fs-blok); line-height: .98; letter-spacing: -0.035em; font-weight: 500; color: inherit; max-width: 14em;
}

/* ============ Morf polygonu ============ */
@keyframes pri-morf-foto {
  0%   { clip-path: polygon(0% 6%, 46% 0%, 100% 4%, 97% 52%, 100% 96%, 54% 100%, 3% 95%, 0% 48%); }
  33%  { clip-path: polygon(6% 0%, 52% 5%, 94% 0%, 100% 46%, 95% 100%, 48% 94%, 0% 100%, 5% 54%); }
  66%  { clip-path: polygon(2% 2%, 50% 9%, 100% 0%, 91% 50%, 100% 100%, 50% 91%, 4% 98%, 9% 50%); }
  100% { clip-path: polygon(0% 0%, 50% 3%, 97% 6%, 100% 50%, 96% 97%, 50% 100%, 0% 94%, 3% 50%); }
}
@keyframes pri-morf-tvar {
  0%   { clip-path: polygon(50% 0%, 85% 15%, 100% 50%, 85% 85%, 50% 100%, 15% 85%, 0% 50%, 15% 15%); transform: rotate(0deg); }
  25%  { clip-path: polygon(50% 10%, 100% 0%, 90% 50%, 100% 100%, 50% 90%, 0% 100%, 10% 50%, 0% 0%); }
  50%  { clip-path: polygon(30% 0%, 100% 20%, 80% 42%, 100% 80%, 60% 100%, 0% 86%, 22% 55%, 0% 20%); transform: rotate(40deg); }
  75%  { clip-path: polygon(50% 0%, 62% 38%, 100% 100%, 76% 92%, 0% 100%, 24% 92%, 18% 60%, 38% 38%); }
  100% { clip-path: polygon(20% 5%, 80% 0%, 100% 40%, 95% 95%, 55% 100%, 5% 90%, 0% 55%, 10% 20%); transform: rotate(-20deg); }
}
.pri .cmc-b-document .pri-hero figure.pri-morf,
.pri .cmc-b-document .pri-hero .cmc-b-paragraph.pri-morf {
  clip-path: polygon(0% 6%, 46% 0%, 100% 4%, 97% 52%, 100% 96%, 54% 100%, 3% 95%, 0% 48%);
  animation: pri-morf-foto 14s ease-in-out infinite alternate;
}
.pri .cmc-b-document .pri-hero figure.pri-morf img { transition: transform 1.2s var(--pri-ease); }
.pri .cmc-b-document .pri-hero figure.pri-morf:hover img { transform: scale(1.06); }
/* Tvar v pozadi uvodu */
.pri .cmc-b-document .pri-sekce.pri-hero::before {
  content: ""; position: absolute; z-index: -1; pointer-events: none;
  width: clamp(280px, 46vw, 1300px); aspect-ratio: 1; right: -8vw; top: 12%;
  background: var(--pri-na-barve); opacity: .07;
  animation: pri-morf-tvar 22s ease-in-out infinite alternate;
}
/* Tvar na predelu bloku */
.pri .cmc-b-document .pri-sekce.pri-morf-predel::before {
  content: ""; position: absolute; z-index: -1; pointer-events: none;
  width: clamp(180px, 24vw, 680px); aspect-ratio: 1; right: calc(var(--pri-okraj) * .5); top: clamp(-120px, -6vw, -40px);
  background: var(--pri-barva); opacity: .16;
  animation: pri-morf-tvar 18s ease-in-out infinite alternate;
}
.pri .cmc-b-document .pri-sekce.pri-snimek.pri-morf-predel::before { background: var(--pri-na-barve); opacity: .08; left: -6vw; right: auto; top: 30%; animation-duration: 24s; }
.pri .cmc-b-document .pri-sekce.pri-moduly.pri-morf-predel::before { right: auto; left: 40%; top: auto; bottom: -30%; animation-direction: alternate-reverse; }

/* ============ Vzorovy obsah (jen "pripravujeme") ============ */
.pri .cmc-b-document .pri-sekce.pri-vzor::after {
  content: "Vzorový obsah – ukázka rozložení"; position: absolute; z-index: 3; top: clamp(14px, 1.2vw, 28px); right: var(--pri-okraj);
  padding: 6px 14px; border: 1px dashed currentColor; border-radius: var(--pmc-radius-pill, 999px);
  font-size: var(--pri-fs-stitek); letter-spacing: .06em; text-transform: uppercase; opacity: .8; pointer-events: none;
}
.pri .cmc-b-document .pri-sekce .cmc-b-paragraph.pri-pripravujeme { opacity: .85; }

/* ============ 3. Vyzva ============ */
.pri .cmc-b-document .pri-vyzva-mriz.cmc-b-columns {
  grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(28px, 6vw, 200px); align-items: start;
}
.pri .cmc-b-document .pri-vyzva .cmc-b-column .cmc-b-paragraph.pri-vyzva-text {
  margin: 0 0 1em; font-size: var(--pri-fs-velky-text); line-height: 1.38; max-width: 30em;
}
.pri .cmc-b-document .pri-vyzva .cmc-b-column .cmc-b-paragraph.pri-vyzva-text:first-child { font-weight: 500; }

/* ============ 4. Reseni: tmavy panel a karty ============ */
.pri .cmc-b-document .pri-sekce.pri-reseni { background: var(--pri-panel); color: var(--pri-panel-text); }
.pri .cmc-b-document .pri-reseni-mriz.cmc-b-columns { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(28px, 6vw, 200px); align-items: end; }
.pri .cmc-b-document .pri-reseni .cmc-b-column .cmc-b-paragraph.pri-reseni-text {
  margin: 0 0 1em; font-size: var(--pri-fs-velky-text); line-height: 1.38; max-width: 30em; color: inherit; opacity: .86;
}
.pri .cmc-b-document .pri-karty.cmc-b-columns,
.pri .cmc-b-document .pri-moduly-mriz.cmc-b-columns {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: clamp(14px, 1.4vw, 36px); margin-top: clamp(40px, 4.5vw, 120px);
}
.pri .cmc-b-document .pri-sekce .pri-karta.cmc-b-column,
.pri .cmc-b-document .pri-sekce .pri-modul.cmc-b-column {
  position: relative; display: flex; flex-direction: column; gap: clamp(10px, .8vw, 20px);
  padding: clamp(22px, 2vw, 52px); border-radius: var(--pri-radius);
  background: rgba(255, 255, 255, .05); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14);
  transform: perspective(1100px) rotateX(var(--pri-nx, 0deg)) rotateY(var(--pri-ny, 0deg));
  transition: transform .5s var(--pri-ease), box-shadow .4s var(--pri-ease), background-color .4s var(--pri-ease),
    opacity .9s var(--pri-ease) var(--pri-zpozdeni, 0ms), translate 1s var(--pri-ease) var(--pri-zpozdeni, 0ms);
}
/* svetlo pod kurzorem */
.pri .cmc-b-document .pri-sekce .pri-karta.cmc-b-column::before,
.pri .cmc-b-document .pri-sekce .pri-modul.cmc-b-column::before {
  content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; opacity: 0;
  background: radial-gradient(circle at var(--pri-mx, 50%) var(--pri-my, 50%), rgba(255, 255, 255, .16), transparent 55%);
  transition: opacity .4s var(--pri-ease);
}
.pri .cmc-b-document .pri-sekce .pri-karta.cmc-b-column:hover,
.pri .cmc-b-document .pri-sekce .pri-modul.cmc-b-column:hover {
  transform: perspective(1100px) rotateX(var(--pri-nx, 0deg)) rotateY(var(--pri-ny, 0deg)) translateY(-10px);
  box-shadow: inset 0 0 0 1px currentColor, 0 30px 60px -30px rgba(0, 0, 0, .55);
}
.pri .cmc-b-document .pri-sekce .pri-karta.cmc-b-column:hover::before,
.pri .cmc-b-document .pri-sekce .pri-modul.cmc-b-column:hover::before { opacity: 1; }
.pri .cmc-b-document .pri-karta .cmc-b-paragraph.pri-karta-cislo {
  margin: 0; font-size: var(--pri-fs-stitek); letter-spacing: .12em; opacity: .6; transition: opacity .3s, letter-spacing .4s var(--pri-ease);
}
.pri .cmc-b-document .pri-karta:hover .cmc-b-paragraph.pri-karta-cislo { opacity: 1; letter-spacing: .3em; }
.pri .cmc-b-document .pri-karta .cmc-b-heading.pri-karta-nadpis { margin: auto 0 0; padding-top: clamp(28px, 3vw, 80px); font-size: var(--pri-fs-karta); line-height: 1.12; font-weight: 600; color: inherit; }
.pri .cmc-b-document .pri-sekce .pri-karta .cmc-b-paragraph.pri-karta-text { margin: 0; font-size: var(--pmc-fs-maly); line-height: 1.45; color: inherit; opacity: .78; }

/* ============ 5. Snimek webu: ramecek prohlizece + telefon ============ */
.pri .cmc-b-document .pri-sekce.pri-snimek { background: var(--pri-barva); color: var(--pri-na-barve); padding-bottom: calc(var(--pri-mezera) * 1.3); }
.pri .cmc-b-document .pri-snimek .cmc-b-heading.pri-snimek-nadpis { margin-bottom: clamp(32px, 3.5vw, 96px); }
.pri .cmc-b-document .pri-snimek figure.pri-prohlizec,
.pri .cmc-b-document .pri-snimek .cmc-b-paragraph.pri-prohlizec {
  position: relative; width: 84%; margin: 0; padding-top: clamp(30px, 2.2vw, 52px);
  border-radius: var(--pri-radius); background: #1c1c1e; overflow: hidden;
  box-shadow: 0 50px 100px -40px rgba(0, 0, 0, .7), 0 0 0 1px rgba(255, 255, 255, .08);
  transform: perspective(1600px) rotateX(var(--pri-nx, 0deg)) rotateY(var(--pri-ny, 0deg));
  transition: transform .7s var(--pri-ease), box-shadow .5s var(--pri-ease), opacity 1s var(--pri-ease), translate 1.2s var(--pri-ease);
}
.pri .cmc-b-document .pri-snimek figure.pri-prohlizec:hover {
  transform: perspective(1600px) rotateX(var(--pri-nx, 0deg)) rotateY(var(--pri-ny, 0deg)) translateY(-8px) scale(1.01);
  box-shadow: 0 70px 120px -40px rgba(0, 0, 0, .75), 0 0 0 1px rgba(255, 255, 255, .12);
}
/* tri tecky prohlizece */
.pri .cmc-b-document .pri-snimek .pri-prohlizec::before {
  content: ""; position: absolute; top: calc(clamp(30px, 2.2vw, 52px) / 2 - 6px); left: 18px; width: 52px; height: 12px;
  background:
    radial-gradient(circle at 6px 6px, #ff5f57 5px, transparent 5.5px),
    radial-gradient(circle at 26px 6px, #febc2e 5px, transparent 5.5px),
    radial-gradient(circle at 46px 6px, #28c840 5px, transparent 5.5px);
}
/* adresni radek = popisek obrazku */
.pri .cmc-b-document .pri-snimek figure.pri-prohlizec figcaption {
  position: absolute; top: calc(clamp(30px, 2.2vw, 52px) / 2 - 11px); left: 50%; transform: translateX(-50%);
  margin: 0; padding: 3px 26px; min-width: min(40%, 420px); border-radius: 8px; background: rgba(255, 255, 255, .1);
  color: rgba(255, 255, 255, .78); font-size: clamp(11px, .68vw, 17px); line-height: 16px; text-align: center; opacity: 1; white-space: nowrap;
}
.pri .cmc-b-document .pri-snimek figure.pri-prohlizec img { aspect-ratio: 16 / 9; object-fit: cover; object-position: top center; }
.pri .cmc-b-document .pri-snimek .cmc-b-paragraph.pri-prohlizec { display: grid; place-items: center; aspect-ratio: 16 / 9; min-height: 0; color: rgba(255, 255, 255, .8); box-shadow: 0 50px 100px -40px rgba(0, 0, 0, .7); }
.pri .cmc-b-document .pri-snimek figure.pri-telefon {
  position: absolute; z-index: 2; right: 0; bottom: calc(var(--pri-mezera) * -.55);
  width: clamp(150px, 15vw, 400px); margin: 0; aspect-ratio: 390 / 844; overflow: hidden;
  border: clamp(6px, .5vw, 12px) solid #111; border-radius: clamp(26px, 2.2vw, 58px); background: #111;
  box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .75);
  translate: 0 var(--pri-paralax, 0px);
  transition: transform .6s var(--pri-ease), box-shadow .5s var(--pri-ease), opacity 1s var(--pri-ease) .35s;
}
.pri .cmc-b-document .pri-snimek figure.pri-telefon:hover { transform: translateY(-14px) rotate(-2deg); box-shadow: 0 60px 100px -30px rgba(0, 0, 0, .8); }
.pri .cmc-b-document .pri-snimek figure.pri-telefon img { width: 100%; height: 100%; object-fit: cover; object-position: top center; border-radius: clamp(20px, 1.7vw, 46px); }
.pri .cmc-b-document .pri-snimek figure.pri-telefon figcaption { display: none; }

/* ============ 6. Cisla ============ */
.pri .cmc-b-document .pri-vysledky-sekce .pri-vysledky-mriz.cmc-b-columns { grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); }
.pri .cmc-b-document .pri-vysledky-sekce .pri-vysledek.cmc-b-column { position: relative; border-top: 0; }
.pri .cmc-b-document .pri-vysledky-sekce .pri-vysledek.cmc-b-column::before {
  content: ""; position: absolute; left: 0; top: 0; height: 2px; width: 100%; background: currentColor;
  transform-origin: left; transition: transform 1.2s var(--pri-ease) .2s;
}
.pri.pri-js .cmc-b-document .pri-vysledky-sekce .pri-vysledek.pri-odhal:not(.is-videt)::before { transform: scaleX(0); }
.pri .cmc-b-document .pri-vysledky-sekce .pri-vysledek .cmc-b-heading.pri-vysledek-hodnota {
  font-size: var(--pri-fs-cislo); letter-spacing: -0.05em; font-weight: 500; font-variant-numeric: tabular-nums;
  transition: transform .5s var(--pri-ease), color .3s;
}
.pri .cmc-b-document .pri-vysledky-sekce .pri-vysledek:hover .cmc-b-heading.pri-vysledek-hodnota { transform: translateX(10px); }
.pri .cmc-b-document .pri-vysledky-sekce .pri-vysledek .cmc-b-paragraph.pri-vysledek-popis { max-width: 22em; }

/* ============ Obrazy: priblizeni pri najeti ============ */
.pri .cmc-b-document .pri-sekce:not(.pri-hero):not(.pri-snimek) figure { overflow: hidden; }
.pri .cmc-b-document .pri-sekce:not(.pri-hero):not(.pri-snimek) figure img { transition: transform 1.1s var(--pri-ease), filter .6s; }
.pri .cmc-b-document .pri-sekce:not(.pri-hero):not(.pri-snimek) figure:hover img { transform: scale(1.06); }
.pri .cmc-b-document .pri-galerie-sekce .pri-galerie figure { border-radius: var(--pri-radius); }
.pri .cmc-b-document .pri-galerie-sekce .pri-galerie figure:hover img { filter: saturate(1.15); }
.pri .cmc-b-document .pri-citace-sekce .pri-fotky-asym figure { border-radius: var(--pri-radius); }
.pri .cmc-b-document .pri-fotky-asym > .cmc-b-column:nth-child(2) { translate: 0 var(--pri-paralax, 0px); }
.pri .cmc-b-document .pri-zaver-obraz img,
.pri .cmc-b-document .pri-funkce-obraz img { translate: 0 var(--pri-paralax, 0px); scale: 1.12; }
.pri .cmc-b-document .pri-hero-obraz.cmc-b-column { translate: 0 var(--pri-paralax, 0px); }

/* ============ 13. Moduly PublicMC ============ */
.pri .cmc-b-document .pri-sekce .pri-modul.cmc-b-column { background: transparent; box-shadow: inset 0 0 0 1px var(--pri-linka); }
.pri .cmc-b-document .pri-sekce .pri-modul.cmc-b-column::before { background: radial-gradient(circle at var(--pri-mx, 50%) var(--pri-my, 50%), color-mix(in srgb, var(--pri-barva) 22%, transparent), transparent 60%); }
.pri .cmc-b-document .pri-modul .cmc-b-heading.pri-modul-nazev { margin: 0 0 auto; padding-bottom: clamp(24px, 2.5vw, 64px); font-size: clamp(28px, 2.6vw, 72px); line-height: 1; letter-spacing: -0.03em; font-weight: 500; color: inherit; }
.pri .cmc-b-document .pri-sekce .pri-modul .cmc-b-paragraph.pri-modul-text { margin: 0; font-size: var(--pmc-fs-maly); line-height: 1.45; color: var(--pri-tlumeny); }
.pri .cmc-b-document .pri-modul p.cmc-b-block.cmc-b-button.pri-modul-odkaz { margin-top: clamp(8px, .8vw, 20px); }
.pri .cmc-b-document .pri-modul--vse.cmc-b-column { justify-content: flex-end; }

/* ============ 14. Film = misto pro efekt MacBooku ============ */
.pri .cmc-b-document .pri-sekce.pri-mac { background: #050505; color: #f5f5f5; }
.pri .cmc-b-document .pri-mac > .cmc-b-container { display: grid; grid-template-columns: minmax(0, 1fr); }
.pri .cmc-b-document .pri-mac .cmc-b-heading.pri-video-nadpis { margin-bottom: clamp(28px, 3vw, 80px); }
.pri .cmc-b-document .pri-mac figure.pri-mac-displej,
.pri .cmc-b-document .pri-mac .cmc-b-paragraph.pri-mac-displej {
  grid-row: 3; grid-column: 1; width: 100%; margin: 0; border-radius: var(--pri-radius); overflow: hidden;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, .1), 0 60px 120px -50px rgba(0, 0, 0, .9);
}
.pri .cmc-b-document .pri-mac figure.pri-mac-displej img,
.pri .cmc-b-document .pri-mac video.pri-video-soubor { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; background: #000; }
.pri .cmc-b-document .pri-mac figure.pri-mac-displej figcaption { padding: 14px 0 0; background: #050505; }
.pri .cmc-b-document .pri-mac figure.pri-mac-displej:not(.is-hraje):hover img { transform: scale(1.035); }
.pri .cmc-b-document .pri-mac p.cmc-b-block.cmc-b-button.pri-video-spustit {
  grid-row: 3; grid-column: 1; z-index: 2; align-self: center; justify-self: center; margin: 0;
}
.pri .cmc-b-document .pri-mac .pri-video-spustit .cmc-b-button {
  position: relative; min-height: clamp(56px, 4vw, 104px); padding: 0 clamp(26px, 2.2vw, 56px);
  border-radius: var(--pmc-radius-pill, 999px); background: #fff; color: #000; font-size: clamp(16px, 1.1vw, 28px);
  box-shadow: 0 20px 50px -10px rgba(0, 0, 0, .6);
}
.pri .cmc-b-document .pri-mac .pri-video-spustit .cmc-b-button::after {
  content: ""; position: absolute; inset: -10px; border-radius: inherit; border: 2px solid rgba(255, 255, 255, .7);
  animation: pri-pulz 2.4s var(--pri-ease) infinite;
}
@keyframes pri-pulz { 0% { opacity: .9; transform: scale(.94); } 100% { opacity: 0; transform: scale(1.18); } }
.pri .cmc-b-document .pri-mac.is-hraje p.cmc-b-block.cmc-b-button.pri-video-spustit { display: none; }
.pri .cmc-b-document .pri-mac .cmc-b-paragraph.pri-mac-displej {
  display: grid; place-items: center; aspect-ratio: 16 / 9; min-height: 0; padding: 24px; text-align: center;
  background: radial-gradient(ellipse at 50% 120%, color-mix(in srgb, var(--pri-barva) 55%, #000), #0b0b0c 70%);
  box-shadow: 0 0 0 clamp(8px, .8vw, 18px) #1b1b1d, 0 60px 120px -50px rgba(0, 0, 0, .9);
  font-size: var(--pri-fs-velky-text); color: rgba(255, 255, 255, .82);
}
.pri .cmc-b-document .pri-video-sekce .cmc-b-video { grid-row: 3; grid-column: 1; }

/* ============ Tlacitka a odkazy ============ */
.pri .cmc-b-document .pri-sekce .cmc-b-button.cmc-b-button-link {
  border-bottom: 0; padding-bottom: 3px;
  background: linear-gradient(currentColor, currentColor) left bottom / 0% 1px no-repeat;
  transition: background-size .45s var(--pri-ease), transform .35s var(--pri-ease);
}
.pri .cmc-b-document .pri-sekce .cmc-b-button.cmc-b-button-link:hover,
.pri .cmc-b-document .pri-sekce .cmc-b-button.cmc-b-button-link:focus-visible { background-size: 100% 1px; transform: translateX(6px); }
.pri .cmc-b-document .pri-sekce .cmc-b-button.cmc-b-button-primary,
.pri .cmc-b-document .pri-sekce .cmc-b-button.cmc-b-button-outline {
  position: relative; overflow: hidden; isolation: isolate;
  transition: transform .35s var(--pri-ease), box-shadow .35s var(--pri-ease), background-color .3s, color .3s;
}
.pri .cmc-b-document .pri-sekce .cmc-b-button.cmc-b-button-primary::before,
.pri .cmc-b-document .pri-sekce .cmc-b-button.cmc-b-button-outline::before {
  content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; left: -60%; width: 40%;
  background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .45), transparent); transform: skewX(-20deg);
  transition: left .7s var(--pri-ease);
}
.pri .cmc-b-document .pri-sekce .cmc-b-button.cmc-b-button-primary:hover,
.pri .cmc-b-document .pri-sekce .cmc-b-button.cmc-b-button-outline:hover { transform: translateY(-3px) scale(1.03); box-shadow: 0 18px 40px -16px rgba(0, 0, 0, .55); }
.pri .cmc-b-document .pri-sekce .cmc-b-button.cmc-b-button-primary:hover::before,
.pri .cmc-b-document .pri-sekce .cmc-b-button.cmc-b-button-outline:hover::before { left: 120%; }
.pri .cmc-b-document .pri-zaver .pri-zaver-tl .cmc-b-button-outline:hover { background: var(--pmc-bila); color: var(--pmc-cerna); }
.pri .cmc-b-document .pri-zaver .cmc-b-heading.pri-zaver-nadpis { font-size: var(--pri-fs-blok); line-height: 1; letter-spacing: -0.035em; }
.pri-galerie-tl { transition: transform .3s var(--pri-ease), background-color .3s, color .3s; }
.pri-galerie-tl:hover { transform: scale(1.1); }

/* ============ Dalsi pribehy (mimo dokument Builderu) ============ */
.pri-dalsi-pribehy { padding: var(--pri-mezera) var(--pri-okraj); background: var(--pri-plocha); color: var(--pri-text); }
.pri-dalsi-pribehy .pri-stitek-bloku {
  display: flex; align-items: center; gap: 14px; margin: 0 0 clamp(16px, 1.5vw, 40px);
  font-size: var(--pri-fs-stitek); letter-spacing: .12em; text-transform: uppercase; opacity: .72;
}
.pri-dalsi-pribehy .pri-stitek-bloku::before { content: ""; width: clamp(28px, 2.5vw, 64px); height: 1px; background: currentColor; }
.pri-dalsi-pribehy__nadpis { margin: 0 0 clamp(32px, 3.5vw, 96px); max-width: 16em; font-size: clamp(30px, 3.2vw, 88px); line-height: 1; letter-spacing: -0.03em; font-weight: 500; }
.pri-dalsi-pribehy__mriz { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: clamp(16px, 1.6vw, 44px); margin: 0; padding: 0; list-style: none; }
.pri-dalsi-karta {
  display: flex; flex-direction: column; gap: 8px; height: 100%; color: inherit; text-decoration: none;
  transform: perspective(1100px) rotateX(var(--pri-nx, 0deg)) rotateY(var(--pri-ny, 0deg));
  transition: transform .5s var(--pri-ease);
}
.pri-dalsi-karta:hover { transform: perspective(1100px) rotateX(var(--pri-nx, 0deg)) rotateY(var(--pri-ny, 0deg)) translateY(-8px); }
.pri-dalsi-karta__obraz {
  position: relative; display: grid; place-items: center; aspect-ratio: 4 / 3; margin-bottom: 10px; overflow: hidden;
  border-radius: var(--pri-radius); background: var(--pri-karta-barva, #2b2b2b);
  clip-path: polygon(0% 0%, 50% 0%, 100% 0%, 100% 50%, 100% 100%, 50% 100%, 0% 100%, 0% 50%);
  transition: clip-path .8s var(--pri-ease);
}
.pri-dalsi-karta:hover .pri-dalsi-karta__obraz { clip-path: polygon(0% 4%, 50% 0%, 100% 6%, 96% 50%, 100% 94%, 50% 100%, 2% 96%, 5% 50%); }
.pri-dalsi-karta__obraz img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--pri-ease); }
.pri-dalsi-karta:hover .pri-dalsi-karta__obraz img { transform: scale(1.08); }
.pri-dalsi-karta__inicial { font-size: clamp(80px, 8vw, 220px); line-height: 1; font-weight: 500; color: rgba(255, 255, 255, .85); transition: transform .8s var(--pri-ease); }
.pri-dalsi-karta:hover .pri-dalsi-karta__inicial { transform: scale(1.12) rotate(-6deg); }
.pri-dalsi-karta__stav { font-size: var(--pri-fs-stitek); letter-spacing: .1em; text-transform: uppercase; opacity: .65; }
.pri-dalsi-karta__jmeno { font-size: clamp(22px, 1.7vw, 48px); line-height: 1.08; letter-spacing: -0.02em; font-weight: 500; }
.pri-dalsi-karta__profese { font-size: var(--pmc-fs-maly); color: var(--pri-tlumeny); }
.pri-dalsi-karta__dal { margin-top: auto; padding-top: 10px; font-size: var(--pmc-fs-nav, 15px); text-transform: uppercase; transition: transform .35s var(--pri-ease); }
.pri-dalsi-karta:hover .pri-dalsi-karta__dal { transform: translateX(8px); }
.pri-dalsi-karta:focus-visible { outline: 2px solid currentColor; outline-offset: 6px; }
.pri-dalsi-pribehy__vse { margin: clamp(28px, 3vw, 72px) 0 0; }
.pri-linka {
  color: inherit; text-decoration: none; text-transform: uppercase; font-size: var(--pmc-fs-nav, 15px); padding-bottom: 3px;
  background: linear-gradient(currentColor, currentColor) left bottom / 100% 1px no-repeat;
  transition: background-size .45s var(--pri-ease), padding .35s var(--pri-ease);
}
.pri-linka:hover { background-size: 30% 1px; padding-left: 8px; }

/* ============ Odhalovani pri posunu (jen se skriptem, bez reduced-motion) ============ */
.pri.pri-js .pri-odhal {
  opacity: 0; translate: 0 38px;
  transition: opacity .9s var(--pri-ease) var(--pri-zpozdeni, 0ms), translate 1s var(--pri-ease) var(--pri-zpozdeni, 0ms),
    transform .5s var(--pri-ease), box-shadow .4s var(--pri-ease), background-color .4s var(--pri-ease);
}
.pri.pri-js .pri-odhal.is-videt { opacity: 1; translate: 0 0; }
.pri.pri-js .pri-odhal-obraz {
  opacity: 0; clip-path: inset(10% 8% 10% 8% round var(--pri-radius));
  transition: opacity .9s var(--pri-ease) var(--pri-zpozdeni, 0ms), clip-path 1.3s var(--pri-ease) var(--pri-zpozdeni, 0ms);
}
.pri.pri-js .pri-odhal-obraz.is-videt { opacity: 1; clip-path: inset(0 0 0 0 round 0); }
.pri.pri-js .pri-galerie .pri-odhal-obraz.is-videt,
.pri.pri-js .pri-fotky-asym .pri-odhal-obraz.is-videt,
.pri.pri-js .pri-mac .pri-odhal-obraz.is-videt { clip-path: inset(0 0 0 0 round var(--pri-radius)); }
/* ramecek prohlizece a telefon maji stin - odhaluji se posunem, ne orezem */
.pri.pri-js .pri-snimek .pri-odhal-obraz { clip-path: none; opacity: 0; translate: 0 60px; transition: opacity 1s var(--pri-ease), translate 1.2s var(--pri-ease), transform .7s var(--pri-ease), box-shadow .5s var(--pri-ease); }
.pri.pri-js .pri-snimek .pri-odhal-obraz.is-videt { opacity: 1; translate: 0 0; }
.pri.pri-js .pri-snimek figure.pri-telefon.pri-odhal-obraz,
.pri.pri-js .pri-snimek figure.pri-telefon.pri-odhal-obraz.is-videt { translate: 0 var(--pri-paralax, 0px); transition: transform .6s var(--pri-ease), box-shadow .5s var(--pri-ease), opacity 1s var(--pri-ease) .35s; }

/* ============ Tmavy vzhled ============ */
.pri--tmavy .cmc-b-document .pri-sekce .pri-modul.cmc-b-column { box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .18); }
.pri--tmavy .pri-dalsi-karta__inicial { color: rgba(255, 255, 255, .9); }

/* ============ Tablet ============ */
@media (max-width: 1024px) {
  .pri .cmc-b-document .pri-vyzva-mriz.cmc-b-columns,
  .pri .cmc-b-document .pri-reseni-mriz.cmc-b-columns { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .pri .cmc-b-document .pri-snimek figure.pri-prohlizec,
  .pri .cmc-b-document .pri-snimek .cmc-b-paragraph.pri-prohlizec { width: 88%; }
}

/* ============ Mobil (390 px) ============ */
@media (max-width: 760px) {
  .pri { --pri-fs-blok: clamp(32px, 9.4vw, 46px); --pri-fs-cislo: clamp(56px, 18vw, 84px); }
  .pri .cmc-b-document .pri-karty.cmc-b-columns,
  .pri .cmc-b-document .pri-moduly-mriz.cmc-b-columns,
  .pri .cmc-b-document .pri-vysledky-sekce .pri-vysledky-mriz.cmc-b-columns { grid-template-columns: minmax(0, 1fr); }
  .pri .cmc-b-document .pri-karta .cmc-b-heading.pri-karta-nadpis { padding-top: 18px; }
  .pri .cmc-b-document .pri-snimek figure.pri-prohlizec,
  .pri .cmc-b-document .pri-snimek .cmc-b-paragraph.pri-prohlizec { width: 100%; padding-top: 26px; }
  .pri .cmc-b-document .pri-snimek .pri-prohlizec::before { top: 7px; left: 12px; transform: scale(.8); transform-origin: left center; }
  .pri .cmc-b-document .pri-snimek figure.pri-prohlizec figcaption { top: 5px; min-width: 0; max-width: 58%; overflow: hidden; text-overflow: ellipsis; font-size: 10px; padding: 0 12px; }
  .pri .cmc-b-document .pri-snimek figure.pri-telefon { position: relative; right: auto; bottom: auto; width: 46%; margin: -18% 4% 0 auto; }
  .pri .cmc-b-document .pri-sekce.pri-snimek { padding-bottom: var(--pri-mezera); }
  .pri .cmc-b-document .pri-sekce.pri-vzor::after { position: static; display: inline-block; margin: 0 0 18px; }
  .pri .cmc-b-document .pri-sekce.pri-vzor > .cmc-b-container { position: static; }
  .pri .cmc-b-document .pri-sekce.pri-vzor { display: flex; flex-direction: column-reverse; }
  .pri .cmc-b-document .pri-sekce.pri-vzor::after { align-self: flex-start; }
  .pri-dalsi-pribehy__mriz { grid-template-columns: minmax(0, 1fr); }
  .pri .cmc-b-document .pri-mac .pri-video-spustit .cmc-b-button { min-height: 52px; }
}

/* ============ Bez pohybu ============ */
@media (prefers-reduced-motion: reduce) {
  .pri .cmc-b-document .pri-hero figure.pri-morf,
  .pri .cmc-b-document .pri-hero .cmc-b-paragraph.pri-morf,
  .pri .cmc-b-document .pri-sekce.pri-hero::before,
  .pri .cmc-b-document .pri-sekce.pri-morf-predel::before,
  .pri .cmc-b-document .pri-mac .pri-video-spustit .cmc-b-button::after { animation: none; }
  .pri .cmc-b-document *,
  .pri-dalsi-pribehy * { transition-duration: 0s !important; }
  .pri .cmc-b-document .pri-sekce .pri-karta.cmc-b-column:hover,
  .pri .cmc-b-document .pri-sekce .pri-modul.cmc-b-column:hover,
  .pri .cmc-b-document .pri-snimek figure.pri-prohlizec:hover,
  .pri .cmc-b-document .pri-snimek figure.pri-telefon:hover,
  .pri-dalsi-karta:hover { transform: none; }
}

/* ============ Menici se polygon (vzor fasady-rychle.cz, Roman 23. 10. 2026) ============
   Tvar nastavuje skript stranky (inline clip-path, cyklus 6 tvaru s posunutou fazi);
   bez skriptu a pri prefers-reduced-motion zustava lichobeznik. */
.pri .cmc-b-document .pri-galerie figure img,
.pri .cmc-b-document .pri-fotky-asym figure img {
  clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%);
  transition: clip-path 1s ease-in-out, transform 1.1s var(--pri-ease), filter .6s;
}
.pri .cmc-b-document .pri-galerie-sekce .pri-galerie figure,
.pri .cmc-b-document .pri-citace-sekce .pri-fotky-asym figure { border-radius: 0; }
.pri .cmc-b-document .pri-galerie.is-pas > figure { flex: 0 0 calc((100% - 2 * var(--pmc-mezera-mrizky)) / 3); }
.pri .cmc-b-document .pri-galerie.cmc-b-gallery img { aspect-ratio: 4 / 5; }
@media (max-width: 760px) {
  .pri .cmc-b-document .pri-galerie.is-pas > figure { flex-basis: 86%; }
}
@media (prefers-reduced-motion: reduce) {
  .pri .cmc-b-document .pri-galerie figure img,
  .pri .cmc-b-document .pri-fotky-asym figure img { clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%) !important; transition: none; }
}
