/* =====================================================================
   GEOPRINT – moderní vrstva (soutisk, CMYK, animace)
   Navazuje na main-style.css; barvy a písmo zůstávají z původního webu.
   ===================================================================== */

:root {
  --ink: #1f1e23;
  --ink-2: #2a292f;
  --ink-line: #3a3941;
  --mute: #5b5a63;
  --rule: rgba(31, 30, 35, .14);
  --pale: #f4f4f7;

  --c: #00a8e8;
  --m: #e4007c;
  --y: #ffec00;
  --k: #1f1e23;

  --blue: #008bd2;
  --navy: #2d377e;
  --pink: #d05375;
  --orange: #f98514;
  --yellow: #f9dd31;
  --green: #95c11f;
  --purple: #2e1968;
  --lilac: #a5a8d5;

  --font: 'Montserrat', system-ui, sans-serif;
  --wrap: 84%;
  --radius: clamp(20px, 3vw, 40px);
  --ease-out: cubic-bezier(.2, .8, .2, 1);
  --ease-io: cubic-bezier(.7, 0, .3, 1);
  --head-h: 90px;
  --vel: 0;
}

/* ---------- základ ---------- */

.geo-modern {
  font-family: var(--font);
  color: var(--ink);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: clip;
}

.geo-modern *, .geo-modern *::before, .geo-modern *::after { box-sizing: border-box; }
.geo-modern img { max-width: 100%; }
.geo-modern ::selection { background: var(--y); color: var(--ink); }

.geo-modern a:focus-visible,
.geo-modern button:focus-visible,
.geo-modern [tabindex]:focus-visible {
  outline: 3px solid var(--c);
  outline-offset: 3px;
  border-radius: 4px;
}

.skip-link {
  position: fixed; left: 1rem; top: -100px; z-index: 10001;
  padding: .8rem 1.2rem; background: var(--ink); color: #fff; font-weight: 700; border-radius: 999px;
}
.skip-link:focus { top: 1rem; }

.geo-wrap { width: var(--wrap); margin-inline: auto; }
.geo-section { position: relative; padding-block: clamp(4.5rem, 10vw, 9rem); }
.geo-section--tight { padding-block: clamp(2rem, 4vw, 3.5rem); }
.geo-section--pale { background: var(--pale); }

.geo-modern .geo-section p,
.geo-modern .geo-dark p { line-height: 1.75; }

.geo-kicker {
  display: inline-flex; align-items: center; gap: .7rem;
  margin: 0 0 1.2rem !important;
  font-size: .82rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
  color: var(--mute);
  line-height: 1.4 !important;
}
.geo-kicker b {
  display: inline-grid; place-items: center;
  min-width: 2.2em; height: 2.2em; padding: 0 .5em;
  border: 2px solid currentColor; border-radius: 999px;
  font-size: .78rem; letter-spacing: 0; color: var(--ink);
  white-space: nowrap; flex: none;
}
.geo-dark .geo-kicker, .geo-cta .geo-kicker { color: #b9b9c4; }
.geo-dark .geo-kicker b, .geo-cta .geo-kicker b { color: #fff; }

.geo-lead { font-size: clamp(1.1rem, 1.5vw, 1.3rem) !important; font-weight: 500; line-height: 1.6 !important; max-width: 40em; }
.geo-stack > * + * { margin-top: 1.1rem !important; }
.geo-note { color: var(--mute); font-size: .95rem !important; }

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

.geo-btns { display: flex; flex-wrap: wrap; gap: .75rem; }
.geo-btn {
  position: relative;
  display: inline-flex; align-items: center; gap: .65rem;
  padding: 1rem 1.6rem;
  border: 2px solid currentColor; border-radius: 999px;
  font: 700 1rem/1.2 var(--font);
  text-decoration: none; cursor: pointer;
  transition: background-color .3s ease, color .3s ease, border-color .3s ease, box-shadow .3s ease !important;
  will-change: transform;
}
.geo-btn i { transition: transform .3s var(--ease-out); }
.geo-btn:hover i.fa-arrow-right { transform: translateX(4px); }
.geo-btn--ink { background: var(--ink); border-color: var(--ink); color: #fff; }
.geo-btn--ink:hover { background: transparent; color: var(--ink); box-shadow: 4px 4px 0 var(--c), -4px -4px 0 var(--m); }
.geo-btn--line { color: var(--ink); }
.geo-btn--line:hover { background: var(--ink); color: #fff; }
.geo-btn--solid { background: var(--yellow); border-color: var(--yellow); color: var(--ink); }
.geo-btn--solid:hover { background: #fff; border-color: #fff; }
.geo-btn--ghost { color: #fff; }
.geo-btn--ghost:hover { background: rgba(255, 255, 255, .12); }

.geo-round {
  display: inline-grid; place-items: center; width: 3rem; height: 3rem;
  border-radius: 50%; border: 2px solid var(--ink); background: transparent; color: var(--ink);
  cursor: pointer; transition: background-color .2s, color .2s;
}
.geo-round:hover { background: var(--ink); color: #fff; }

/* ---------- pruh tiskových barev ---------- */

.cmyk-strip { display: flex; height: clamp(14px, 1.6vw, 22px); line-height: 0; }
.cmyk-strip span { flex: 1 1 0; background: var(--sw); transform-origin: bottom; }
.cmyk-strip--footer { margin-top: 0; }

/* ---------- soutiskové značky ---------- */

.reg-mark { width: 28px; height: 28px; fill: none; stroke: currentColor; stroke-width: 1.6; overflow: visible; }
.reg-mark .reg-mark__fill { fill: currentColor; stroke: none; }

.crop { position: absolute; width: 24px; height: 24px; pointer-events: none; color: var(--ink); opacity: .55; }
.crop::before, .crop::after { content: ""; position: absolute; background: currentColor; }
.crop::before { left: 0; bottom: 0; width: 18px; height: 1px; }
.crop::after { right: 0; top: 0; width: 1px; height: 18px; }
.crop--tl { left: -24px; top: -24px; }
.crop--tr { right: -24px; top: -24px; transform: scaleX(-1); }
.crop--bl { left: -24px; bottom: -24px; transform: scaleY(-1); }
.crop--br { right: -24px; bottom: -24px; transform: scale(-1); }

/* ---------- nadpis mimo soutisk ---------- */

.reg-title {
  position: relative;
  isolation: isolate;
  margin: 0 0 1.6rem !important;
  font-family: var(--font);
  font-size: clamp(2.1rem, 4.6vw, 4.2rem);
  font-weight: 300;
  line-height: 1.02;
  letter-spacing: -0.035em;
  color: var(--ink);
  --reg: 0;
}
.reg-title b, .reg-title strong { font-weight: 800; }
.reg-title__ink { position: relative; display: block; }
/* soutisk přes barevné stíny – žádná kopie textu v DOM; stíny jen během pohybu */
.reg-title { --rs: calc(var(--reg) + var(--vel)); }
.reg-title.is-moving, .geo-scrolling .reg-title {
  text-shadow:
    calc(var(--rs) * -0.09em) calc(var(--rs) * 0.05em) 0 var(--c),
    calc(var(--rs) * 0.08em) calc(var(--rs) * -0.04em) 0 var(--m),
    calc(var(--rs) * 0.03em) calc(var(--rs) * 0.08em) 0 var(--y);
}
.geo-dark .reg-title, .geo-cta .reg-title, .geo-head .reg-title { color: #fff; }

/* ---------- arch ze 4 tiskových desek ---------- */

.cmyk-sheet {
  --f: 0; --mx: 0; --my: 0;
  position: relative;
  isolation: isolate;
  aspect-ratio: var(--ar);
  background: #fff;
  box-shadow: 0 50px 90px -45px rgba(0, 0, 0, .55), 0 0 0 1px rgba(31, 30, 35, .06);
}
.cmyk-plate {
  position: absolute; inset: 0; width: 100%; height: 100%;
  display: block; object-fit: cover;
  mix-blend-mode: multiply;
  pointer-events: none; user-select: none;
  transform: translate(calc(var(--dx) * (var(--f) + var(--vel) * 1.5) + var(--mx) * var(--kx) * 1%), calc(var(--dy) * (var(--f) + var(--vel) * 1.5) + var(--my) * var(--ky) * 1%));
  transition: transform 1.4s var(--ease-out), opacity .7s ease;
  will-change: transform;
}
.plate-c { --dx: -1.1%; --dy: .7%;  --kx: -1.6; --ky: -1.1; }
.plate-m { --dx: .9%;   --dy: -.8%; --kx: 1.3;  --ky: -1.4; }
.plate-y { --dx: -.5%;  --dy: -1.1%; --kx: -.8; --ky: 1.6; }
.plate-k { --dx: .5%;   --dy: .6%;  --kx: .5;   --ky: .4; }
.cmyk-sheet.is-loose { --f: 3; }
.cmyk-sheet.is-tracking .cmyk-plate { transition-duration: .35s; }
.cmyk-sheet .reg-mark { position: absolute; left: 50%; width: 22px; height: 22px; color: var(--ink); opacity: .6; translate: -50% 0; }
.cmyk-sheet .reg-mark--top { top: -34px; }
.cmyk-sheet .reg-mark--bottom { bottom: -34px; }
.geo-dark .cmyk-sheet .crop, .geo-dark .cmyk-sheet .reg-mark { color: #fff; }

/* =====================================================================
   HLAVIČKA / MENU
   ===================================================================== */

.geo-modern .menu-container {
  width: 100%;
  transition: background-color .35s ease, height .35s ease, box-shadow .35s ease, transform .45s var(--ease-io) !important;
}
.geo-modern .menu-container.is-hidden { transform: translateY(-110%); }
.geo-logo-link { display: inline-flex; align-items: center; }
.geo-modern .main-menu { align-items: center; gap: .25rem; }
.geo-modern .main-menu li a {
  display: inline-block;
  padding: .7rem 1.05rem;
  border-radius: 999px;
  font-weight: 600;
  transition: background-color .25s ease, color .25s ease !important;
}
.geo-modern .main-menu li.lang a { padding: .5rem; display: inline-flex; }
.geo-modern .main-menu li.lang img { border-radius: 4px; display: block; transition: transform .25s; }
.geo-modern .main-menu li.lang a:hover { background: transparent !important; }
.geo-modern .main-menu li.lang a:hover img { transform: scale(1.12) rotate(-4deg); }
.geo-modern .hamburger { background: transparent; border: 0; padding: 0; }
.geo-modern .menu-actions { display: none; }

/* postup čtení */
.geo-progress { position: fixed; inset: 0 0 auto 0; height: 3px; z-index: 1000; pointer-events: none; }
.geo-progress span {
  display: block; height: 100%; width: 100%;
  transform-origin: left; transform: scaleX(0);
  background: linear-gradient(90deg, var(--c) 0 25%, var(--m) 25% 50%, var(--y) 50% 75%, var(--k) 75%);
}

/* opona při přechodu stránek */
.geo-curtain { position: fixed; inset: 0; z-index: 10000; display: grid; grid-template-columns: repeat(4, 1fr); pointer-events: none; }
.geo-curtain i { display: block; transform: scaleY(0); transform-origin: bottom; transition: transform .5s var(--ease-io); }
.geo-curtain i:nth-child(1) { background: var(--c); }
.geo-curtain i:nth-child(2) { background: var(--m); transition-delay: .05s; }
.geo-curtain i:nth-child(3) { background: var(--y); transition-delay: .1s; }
.geo-curtain i:nth-child(4) { background: var(--k); transition-delay: .15s; }
.geo-curtain.is-in i { transform: scaleY(1); }
html.geo-arrive .geo-curtain i { transform: scaleY(1); transform-origin: top; transition: none; }
.geo-curtain.is-out i { transform: scaleY(0); transform-origin: top; }

/* kurzor-soutiskovka */
.geo-cursor {
  position: fixed; left: 0; top: 0; z-index: 9999;
  width: 34px; height: 34px; margin: -17px 0 0 -17px;
  pointer-events: none; opacity: 0;
  transition: opacity .3s ease;
}
.geo-cursor span {
  position: absolute; inset: 0; border: 1.5px solid var(--ink); border-radius: 50%;
  transition: transform .35s var(--ease-out), background-color .35s, border-color .35s;
}
.geo-cursor::before, .geo-cursor::after { content: ""; position: absolute; background: var(--ink); transition: opacity .3s; }
.geo-cursor::before { left: 50%; top: -7px; bottom: -7px; width: 1.5px; translate: -50% 0; }
.geo-cursor::after { top: 50%; left: -7px; right: -7px; height: 1.5px; translate: 0 -50%; }
.geo-cursor.is-on { opacity: 1; }
.geo-cursor.is-link span { transform: scale(1.7); background: rgba(255, 236, 0, .35); border-color: var(--m); }
.geo-cursor.is-link::before, .geo-cursor.is-link::after { opacity: 0; }
.geo-cursor.is-dark span { border-color: #fff; }
.geo-cursor.is-dark::before, .geo-cursor.is-dark::after { background: #fff; }

/* =====================================================================
   HERO (úvod)
   ===================================================================== */

.geo-hero { position: relative; padding: calc(var(--head-h) + clamp(2rem, 5vw, 4.5rem)) 0 clamp(3rem, 7vw, 6rem); overflow: clip; }
.geo-hero::before {
  /* rastr – tiskové body */
  content: ""; position: absolute; inset: 0; z-index: -1;
  background-image: radial-gradient(circle, rgba(0, 168, 232, .22) 1.3px, transparent 1.6px);
  background-size: 14px 14px;
  -webkit-mask-image: radial-gradient(ellipse 60% 70% at 85% 30%, #000 0%, transparent 70%);
  mask-image: radial-gradient(ellipse 60% 70% at 85% 30%, #000 0%, transparent 70%);
}
.geo-hero__grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: center; }
.geo-hero__title {
  margin: 0 !important;
  font-size: clamp(3rem, 6.8vw, 6.6rem) !important;
  font-weight: 300 !important;
  line-height: .95;
  letter-spacing: -0.045em;
}
.geo-hero__title strong { font-weight: 900; display: inline-block; background: linear-gradient(90deg, var(--navy), var(--pink) 45%, var(--orange)); -webkit-background-clip: text; background-clip: text; color: transparent; padding-right: .05em; }
.geo-hero__lead { margin: 1.8rem 0 2.2rem !important; font-size: clamp(1.08rem, 1.4vw, 1.25rem) !important; line-height: 1.65 !important; max-width: 34em; color: #3d3c44; }
.geo-hero__figure { margin: 0; padding: 40px 30px; }
.geo-hero__figure .cmyk-sheet { transform: rotate(-2deg); border-radius: 2px; }
.geo-hero__cap { margin-top: 3rem; display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; justify-content: space-between; align-items: center; }
.geo-hero__cap p { margin: 0; font-size: .95rem !important; color: var(--mute); max-width: 36ch; line-height: 1.55 !important; }

.geo-reg-btn {
  display: inline-flex; align-items: center; gap: .6rem;
  padding: .7rem 1.15rem;
  background: transparent; color: var(--ink);
  border: 2px solid var(--ink); border-radius: 999px;
  font: 700 .92rem/1.2 var(--font); cursor: pointer;
  transition: background-color .25s, color .25s;
}
.geo-reg-btn .reg-mark { width: 20px; height: 20px; transition: transform .6s var(--ease-out); }
.geo-reg-btn:hover { background: var(--ink); color: #fff; }
.geo-reg-btn[aria-pressed="true"] .reg-mark { transform: rotate(180deg); }

/* ---------- pás produktů ---------- */

.geo-marquee { overflow: hidden; background: var(--ink); color: #fff; padding: 1.15rem 0; border-block: 1px solid var(--ink); }
.geo-marquee__track { display: flex; width: max-content; will-change: transform; }
.geo-marquee__list { display: flex; gap: 2.6rem; padding: 0 1.3rem; margin: 0; list-style: none; flex-shrink: 0; }
.geo-marquee__list li { display: inline-flex; align-items: center; gap: .9rem; font-size: clamp(1.1rem, 2vw, 1.6rem); font-weight: 300; letter-spacing: -0.01em; white-space: nowrap; }
.ink-dot { width: .7em; height: .7em; border-radius: 50%; display: inline-block; }
.ink-dot--c { background: var(--c); }
.ink-dot--m { background: var(--m); }
.ink-dot--y { background: var(--y); }
.ink-dot--k { background: #fff; }

/* ---------- velký průsvitný nadpis v pozadí ---------- */

.geo-ghost {
  position: absolute; top: clamp(1rem, 4vw, 3rem); left: 6%;
  font-size: clamp(4rem, 13vw, 12rem); font-weight: 900; letter-spacing: -0.05em; line-height: .9;
  color: transparent; -webkit-text-stroke: 1px rgba(31, 30, 35, .1);
  pointer-events: none; user-select: none; white-space: nowrap; z-index: 0;
}
.geo-ghost--right { left: auto; right: 6%; }

/* ---------- kdo jsme ---------- */

.geo-about__grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: center; }
.geo-about__media { position: relative; margin-bottom: 3rem; }
.geo-about__media img { display: block; width: 100%; height: auto; border-radius: var(--radius); }
.geo-blocks { position: absolute; right: -1.5rem; bottom: -2.4rem; width: 58%; height: 6rem; pointer-events: none; }
.geo-blocks i { position: absolute; display: block; width: 52%; height: 2.7rem; }
.geo-blocks i:nth-child(1) { background: var(--pink); right: 52%; top: 0; }
.geo-blocks i:nth-child(2) { background: var(--orange); right: 0; top: 0; }
.geo-blocks i:nth-child(3) { background: var(--navy); right: 0; top: 3.1rem; }
.geo-blocks i:nth-child(4) { background: var(--yellow); right: 52%; top: 3.1rem; }
.geo-iso { margin-top: 1.8rem !important; padding-left: 1.1rem; border-left: 4px solid var(--green); color: var(--mute); font-size: .98rem !important; }
.geo-iso i { color: var(--green); margin-right: .3rem; }

/* ---------- čísla ---------- */

.geo-numbers { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(.75rem, 1.5vw, 1.25rem); margin: 0; padding: 0; list-style: none; }
.geo-n { padding: clamp(1.3rem, 2.4vw, 2rem); min-height: 12rem; display: flex; flex-direction: column; justify-content: space-between; gap: 1rem; border-radius: 6px; position: relative; overflow: hidden; }
.geo-n b { display: block; font-size: clamp(2.3rem, 4.4vw, 4.2rem); font-weight: 800; letter-spacing: -0.045em; line-height: .95; font-variant-numeric: tabular-nums; white-space: nowrap; }
.geo-n > span { font-weight: 600; line-height: 1.35; }
.geo-n::after {
  content: ""; position: absolute; right: -30px; top: -30px; width: 120px; height: 120px;
  background-image: radial-gradient(circle, currentColor 1.4px, transparent 1.8px); background-size: 10px 10px; opacity: .22;
  border-radius: 50%;
}
.geo-n--blue { background: var(--blue); color: #fff; }
.geo-n--pink { background: var(--pink); color: #fff; }
.geo-n--yellow { background: var(--yellow); color: var(--ink); }
.geo-n--ink { background: var(--ink); color: #fff; }

/* ---------- služby / karty ---------- */

.geo-split-head { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(2rem, 6vw, 6rem); align-items: end; margin-bottom: clamp(2.5rem, 5vw, 4rem); }
.geo-split-head .reg-title { margin-bottom: 0 !important; }
.geo-split-head > .geo-btn { justify-self: end; }

.geo-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.6rem); }
.geo-card {
  --accent: var(--c);
  position: relative; display: flex; flex-direction: column; gap: .8rem;
  padding: clamp(1.5rem, 2.6vw, 2.2rem);
  min-height: 21rem;
  background: #fff; color: var(--ink) !important;
  border: 2px solid var(--ink);
  border-radius: 6px;
  overflow: hidden; isolation: isolate;
  text-decoration: none;
  transition: color .4s ease, transform .5s var(--ease-out), box-shadow .5s var(--ease-out) !important;
}
.geo-card::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: var(--accent);
  transform: translateY(101%); transition: transform .55s var(--ease-io);
}
.geo-card::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 8px; background: var(--accent); }
.geo-card--c { --accent: var(--c); }
.geo-card--m { --accent: var(--m); }
.geo-card--y { --accent: var(--y); }
.geo-card--k { --accent: var(--ink); }
.geo-card:hover { transform: translateY(-6px); box-shadow: 10px 10px 0 var(--ink); }
.geo-card:hover::before { transform: translateY(0); }
.geo-card--m:hover, .geo-card--k:hover { color: #fff !important; }
.geo-card__pun { display: flex; font-size: clamp(2.6rem, 4vw, 3.6rem); line-height: 1; letter-spacing: -0.05em; margin: .8rem 0 auto; }
.geo-card__pun span { display: inline-block; transition: transform .6s var(--ease-out); }
.geo-card__pun span:first-child { font-weight: 300; }
.geo-card__pun span:last-child { font-weight: 900; }
.geo-card:hover .geo-card__pun span:first-child { transform: translateX(-.08em) rotate(-3deg); }
.geo-card:hover .geo-card__pun span:last-child { transform: translateX(.18em) translateY(.08em) rotate(4deg); }
.geo-card h3 { margin: 1.4rem 0 0 !important; font-size: 1.3rem !important; font-weight: 800 !important; letter-spacing: -0.01em; }
.geo-card p { margin: 0 !important; line-height: 1.6 !important; font-size: .98rem !important; }
.geo-card__more { display: inline-flex; align-items: center; gap: .5rem; font-weight: 700; font-size: .95rem; margin-top: .4rem; }
.geo-card__more i { transition: transform .3s var(--ease-out); }
.geo-card:hover .geo-card__more i, .geo-ref:hover .geo-card__more i { transform: translateX(5px); }

/* ---------- scrollytelling ---------- */

.geo-dark { background: var(--ink); color: #fff; }
.geo-dark .reg-title { color: #fff; }
.geo-scrolly { padding-block: clamp(4.5rem, 9vw, 8rem); }
.geo-scrolly__head { max-width: 52rem; margin-bottom: clamp(2rem, 5vw, 4rem); }
.geo-scrolly__head p:not(.geo-kicker) { color: #d6d6de; font-size: 1.08rem; }
.geo-scrolly__grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(2rem, 5vw, 5rem); }
.geo-steps { margin: 0; padding: 0; list-style: none; }
.geo-step { min-height: 72vh; display: flex; flex-direction: column; justify-content: center; padding-block: 2rem; opacity: .28; transition: opacity .5s ease; }
.geo-step.is-active { opacity: 1; }
.geo-step__ink { display: inline-flex; align-items: center; gap: .7rem; font-weight: 700; font-size: 1rem; margin-bottom: 1rem; letter-spacing: .04em; text-transform: uppercase; }
.geo-step__ink i { width: 1.15rem; height: 1.15rem; border-radius: 50%; background: #fff; }
.geo-step[data-ink="c"] .geo-step__ink i { background: var(--c); }
.geo-step[data-ink="m"] .geo-step__ink i { background: var(--m); }
.geo-step[data-ink="y"] .geo-step__ink i { background: var(--y); }
.geo-step[data-ink="k"] .geo-step__ink i { background: #000; box-shadow: 0 0 0 2px rgba(255, 255, 255, .6); }
.geo-step[data-ink="reg"] .geo-step__ink i { background: transparent; border: 2px solid #fff; }
.geo-step h3 { margin: 0 0 1rem !important; font-size: clamp(1.9rem, 3.4vw, 2.9rem) !important; font-weight: 800 !important; letter-spacing: -0.03em; line-height: 1.05; }
.geo-step p { color: #d6d6de; margin: 0 !important; max-width: 34em; }
.geo-scrolly__col { position: relative; }
.geo-scrolly__sticky { position: sticky; top: clamp(5rem, 14vh, 8rem); padding: 40px 30px 0; }
.geo-scrolly .cmyk-sheet { box-shadow: 0 50px 90px -40px rgba(0, 0, 0, .9); }

/* skládání desek jen když běží skript – jinak je arch hotový */
.geo-live .cmyk-sheet--build .cmyk-plate { --f: 3.2; opacity: 0; }
.geo-live[data-step="5"] .cmyk-sheet--build .cmyk-plate { --f: 0; opacity: 1; }
.geo-live[data-step="1"] .plate-c, .geo-live[data-step="2"] .plate-c, .geo-live[data-step="3"] .plate-c, .geo-live[data-step="4"] .plate-c { --f: 1; opacity: 1; }
.geo-live[data-step="2"] .plate-m, .geo-live[data-step="3"] .plate-m, .geo-live[data-step="4"] .plate-m { --f: 1; opacity: 1; }
.geo-live[data-step="3"] .plate-y, .geo-live[data-step="4"] .plate-y { --f: 1; opacity: 1; }
.geo-live[data-step="4"] .plate-k { --f: 1; opacity: 1; }

.geo-inks { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 3rem; }
.geo-inks ol { display: flex; gap: .6rem; margin: 0; padding: 0; list-style: none; }
.geo-dot { display: block; width: 1.1rem; height: 1.1rem; border-radius: 50%; transition: box-shadow .3s ease, transform .3s ease; }
.geo-dot.is-active { box-shadow: 0 0 0 3px var(--ink), 0 0 0 5px #fff; transform: scale(1.12); }
.geo-dot--paper { background: #fff; }
.geo-dot--c { background: var(--c); }
.geo-dot--m { background: var(--m); }
.geo-dot--y { background: var(--y); }
.geo-dot--k { background: #000; border: 1px solid #666; }
.geo-dot--reg { background: var(--ink); border: 2px solid #fff; }
.geo-inks__cap { margin: 0 !important; font-size: .92rem !important; color: #b9b9c4; }

/* ---------- citáty ---------- */

.geo-voice { background: var(--yellow); }
.geo-voice__grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: center; }
.geo-voice .geo-kicker { color: var(--ink); }
.geo-voice__title { font-size: clamp(2rem, 3.6vw, 3.2rem) !important; font-weight: 800 !important; letter-spacing: -0.035em; line-height: 1.05; margin: 0 0 1.4rem !important; }
.geo-voice__title em { font-weight: 300; }
.geo-quotes { display: grid; }
.geo-quote { grid-area: 1 / 1; margin: 0; opacity: 0; visibility: hidden; }
.geo-quote.is-on { opacity: 1; visibility: visible; }
.geo-quote blockquote { margin: 0; }
.geo-quote blockquote p { font-size: clamp(1.8rem, 3.8vw, 3.4rem) !important; font-weight: 300; font-style: italic; letter-spacing: -0.03em; line-height: 1.12 !important; margin: 0 !important; }
.geo-quote figcaption { margin-top: 1.4rem; font-weight: 700; }
.geo-quote figcaption::before { content: ""; display: inline-block; width: 2rem; height: 2px; background: var(--ink); vertical-align: middle; margin-right: .8rem; }
.geo-quotes__ui { grid-area: 2 / 1; margin-top: 2.2rem; display: flex; align-items: center; gap: .7rem; }
.geo-quotes__bar { flex: 1; height: 3px; background: rgba(31, 30, 35, .18); margin-left: .8rem; overflow: hidden; border-radius: 3px; }
.geo-quotes__bar i { display: block; height: 100%; background: var(--ink); transform-origin: left; transform: scaleX(0); }

/* ---------- s čím pomůžeme ---------- */

.geo-help__grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: start; }
.geo-timeline { position: relative; margin: 0; padding: 0 0 0 4.2rem; list-style: none; display: grid; gap: 2.4rem; }
.geo-timeline li { position: relative; }
.geo-timeline h3 { font-size: 1.35rem !important; margin: 0 0 .4rem !important; font-weight: 800 !important; }
.geo-timeline p { margin: 0 !important; color: var(--mute); }
.geo-timeline a { color: var(--navy); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.geo-timeline__n {
  position: absolute; left: -4.2rem; top: -.2rem; z-index: 1;
  display: grid; place-items: center; width: 2.8rem; height: 2.8rem;
  border-radius: 50%; background: #fff; border: 2px solid var(--ink); font-weight: 800;
  transition: background-color .4s, color .4s;
}
.geo-timeline li.is-done .geo-timeline__n { background: var(--ink); color: #fff; }
.geo-timeline__line { position: absolute; left: 1.4rem; top: .5rem; bottom: .5rem; width: 2px; background: var(--rule); translate: -50% 0; }
.geo-timeline__line i { position: absolute; inset: 0; background: linear-gradient(var(--c), var(--m), var(--y), var(--ink)); transform-origin: top; transform: scaleY(0); }

/* ---------- reference ---------- */

.geo-refs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.8rem); }
.geo-ref { position: relative; }
.geo-ref__link { display: flex; flex-direction: column; height: 100%; color: var(--ink) !important; text-decoration: none; background: #fff; border-radius: 6px; overflow: hidden; box-shadow: 0 0 0 1px var(--rule); transition: box-shadow .4s var(--ease-out), transform .4s var(--ease-out) !important; }
.geo-ref__link:hover { transform: translateY(-6px); box-shadow: 0 30px 60px -30px rgba(31, 30, 35, .45), 0 0 0 1px var(--rule); }
.geo-ref__media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--pale); isolation: isolate; }
.geo-ref__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .8s var(--ease-out), filter .5s; filter: grayscale(.25); }
.geo-ref__media::before, .geo-ref__media::after {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background-image: var(--img); background-size: cover; background-position: center;
  mix-blend-mode: multiply; opacity: 0; transition: transform .6s var(--ease-out), opacity .4s;
}
.geo-ref__media::before { background-color: var(--c); background-blend-mode: screen; }
.geo-ref__media::after { background-color: var(--m); background-blend-mode: screen; }
.geo-ref__link:hover .geo-ref__media img { transform: scale(1.06); filter: none; }
.geo-ref__link:hover .geo-ref__media::before { opacity: .55; transform: translate(-8px, 5px) scale(1.06); }
.geo-ref__link:hover .geo-ref__media::after { opacity: .55; transform: translate(7px, -5px) scale(1.06); }
.geo-ref__placeholder { position: absolute; inset: 0; display: grid; place-items: center; color: var(--mute); }
.geo-ref__placeholder .reg-mark { width: 60px; height: 60px; }
.geo-ref__body { padding: 1.4rem 1.5rem 1.6rem; display: flex; flex-direction: column; gap: .6rem; flex: 1; }
.geo-ref__body time { font-size: .8rem; font-weight: 700; letter-spacing: .12em; color: var(--mute); }
.geo-ref__body h3 { font-size: 1.3rem !important; font-weight: 800 !important; margin: 0 !important; letter-spacing: -0.015em; line-height: 1.2; }
.geo-ref__body p { margin: 0 !important; color: var(--mute); line-height: 1.6 !important; font-size: .96rem !important; flex: 1; }

/* =====================================================================
   PODSTRÁNKY
   ===================================================================== */

.geo-head { padding-top: calc(var(--head-h) + 1.5rem); width: var(--wrap); margin-inline: auto; }
.geo-head__panel {
  --tint: var(--navy);
  position: relative; isolation: isolate; overflow: hidden;
  min-height: clamp(20rem, 46vh, 30rem);
  display: flex; align-items: flex-end;
  padding: clamp(2rem, 5vw, 4.5rem);
  border-radius: var(--radius) var(--radius) 0 0;
  background: var(--tint);
  color: #fff;
}
.geo-head__img { position: absolute; inset: -12% 0; z-index: -2; background-size: cover; background-position: center; opacity: .3; mix-blend-mode: luminosity; filter: grayscale(1) contrast(1.1); }
.geo-head__dots {
  position: absolute; inset: 0; z-index: -1;
  background-image: radial-gradient(circle, rgba(255, 255, 255, .28) 1.3px, transparent 1.7px);
  background-size: 13px 13px;
  -webkit-mask-image: linear-gradient(115deg, transparent 35%, #000 95%);
  mask-image: linear-gradient(115deg, transparent 35%, #000 95%);
}
.geo-head__panel .crop { color: #fff; opacity: .6; }
.geo-head__panel .crop--tl { left: 22px; top: 22px; }
.geo-head__panel .crop--tr { right: 22px; top: 22px; }
.geo-head__panel .crop--bl { left: 22px; bottom: 22px; }
.geo-head__panel .crop--br { right: 22px; bottom: 22px; }
.geo-head__reg { position: absolute; right: clamp(2rem, 5vw, 4.5rem); top: clamp(2rem, 5vw, 4rem); width: 46px; height: 46px; color: #fff; opacity: .75; }
.geo-head__inner { position: relative; max-width: 60rem; }
.geo-head__title { font-size: clamp(2.6rem, 7vw, 6.4rem) !important; font-weight: 800 !important; letter-spacing: -0.05em; line-height: .95; margin: 0 !important; }
.geo-head__lead { margin: 1.5rem 0 0 !important; font-size: clamp(1.05rem, 1.5vw, 1.25rem) !important; line-height: 1.6 !important; max-width: 40em; color: rgba(255, 255, 255, .9); }
.geo-head .geo-kicker { color: rgba(255, 255, 255, .8); }
.geo-head .geo-kicker b { color: #fff; }
.geo-head__strip { border-radius: 0 0 6px 6px; overflow: hidden; }
.geo-crumbs { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.6rem; font-size: .85rem; font-weight: 600; color: rgba(255, 255, 255, .75); }
.geo-crumbs a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.geo-head--pink .geo-head__panel { --tint: var(--pink); }
.geo-head--purple .geo-head__panel { --tint: var(--purple); }
.geo-head--green .geo-head__panel { --tint: #6f9214; }
.geo-head--yellow .geo-head__panel { --tint: var(--yellow); color: var(--ink); }
.geo-head--orange .geo-head__panel { --tint: #e2730a; }
.geo-head--blue .geo-head__panel { --tint: var(--navy); }
.geo-head--ink .geo-head__panel { --tint: var(--ink); }
.geo-head--cyan .geo-head__panel { --tint: #0079b8; }
.geo-head--yellow .reg-title, .geo-head--yellow .geo-head__lead, .geo-head--yellow .geo-crumbs, .geo-head--yellow .geo-crumbs a, .geo-head--yellow .geo-kicker, .geo-head--yellow .geo-kicker b { color: var(--ink); }
.geo-head--yellow .crop, .geo-head--yellow .geo-head__reg { color: var(--ink); }
.geo-head--yellow .geo-head__dots { background-image: radial-gradient(circle, rgba(31, 30, 35, .2) 1.3px, transparent 1.7px); }
.geo-head--yellow .geo-head__img { mix-blend-mode: multiply; opacity: .22; }

/* obsah podstránek */
.geo-intro { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(2rem, 6vw, 6rem); align-items: start; }
.geo-intro .geo-lead { margin: 0 !important; }

.geo-specs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin: 0; background: var(--rule); border: 1px solid var(--rule); border-radius: 6px; overflow: hidden; }
.geo-specs > div { background: #fff; padding: clamp(1.3rem, 2.4vw, 2rem); }
.geo-specs dt { font-size: .8rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--mute); }
.geo-specs dd { margin: .6rem 0 0; font-size: clamp(1.5rem, 2.6vw, 2.3rem); font-weight: 800; letter-spacing: -0.035em; line-height: 1.05; }
.geo-specs dd small { display: block; margin-top: .4rem; font-size: .9rem; font-weight: 500; letter-spacing: 0; color: var(--mute); line-height: 1.4; }
.geo-dark .geo-specs { background: var(--ink-line); border-color: var(--ink-line); }
.geo-dark .geo-specs > div { background: var(--ink); }
.geo-dark .geo-specs dt, .geo-dark .geo-specs dd small { color: #a9a9b6; }

.geo-machine { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; margin-bottom: clamp(2.5rem, 5vw, 4rem); }
.geo-machine__title { font-size: clamp(2.4rem, 5vw, 4.6rem) !important; font-weight: 900 !important; letter-spacing: -0.05em; line-height: .95; margin: 0 0 1.2rem !important; }

/* tiskové věže */
.geo-towers { display: flex; align-items: flex-end; gap: clamp(.4rem, 1.2vw, 1rem); height: clamp(12rem, 22vw, 17rem); padding: 1.5rem 1.5rem 0; border-bottom: 6px solid #fff; }
.geo-tower { flex: 1; display: flex; flex-direction: column; align-items: center; gap: .6rem; height: 100%; justify-content: flex-end; }
.geo-tower__body { position: relative; width: 100%; height: 72%; border-radius: 10px 10px 0 0; background: var(--ink-2); border: 2px solid #4a4952; overflow: hidden; }
.geo-tower__body::before { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: var(--lvl, 60%); background: var(--tc); transition: height .8s var(--ease-out); }
.geo-tower__roll { position: absolute; left: 50%; top: 18%; width: 46%; aspect-ratio: 1; border-radius: 50%; translate: -50% 0; border: 3px dashed rgba(255, 255, 255, .55); animation: geo-spin 2.4s linear infinite; }
.geo-tower b { font-size: .85rem; letter-spacing: .08em; color: #d6d6de; }
.geo-tower--c { --tc: var(--c); }
.geo-tower--m { --tc: var(--m); }
.geo-tower--y { --tc: var(--y); }
.geo-tower--k { --tc: #000; }
.geo-tower--x { --tc: conic-gradient(from 0deg, #e30613, #f98514, #95c11f, #2d377e, #d05375, #e30613); }
.geo-tower--x .geo-tower__body::before { background: var(--tc); }
.geo-paper { position: relative; height: 10px; margin-top: -3px; overflow: hidden; }
.geo-paper::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(90deg, #fff 0 60px, transparent 60px 72px); animation: geo-feed 1.2s linear infinite; }
@keyframes geo-spin { to { rotate: 360deg; } }
@keyframes geo-feed { to { transform: translateX(72px); } }

/* postup výroby */
.geo-process { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; margin: 0; padding: 0; list-style: none; counter-reset: geo-proc; }
.geo-process li { position: relative; padding: 2.4rem 1.4rem 0 0; counter-increment: geo-proc; }
.geo-process li::before { content: counter(geo-proc, decimal-leading-zero); position: absolute; top: 0; left: 0; font-size: .8rem; font-weight: 800; letter-spacing: .1em; color: var(--mute); }
.geo-process li::after { content: ""; position: absolute; left: 2.2rem; right: 1rem; top: .45rem; height: 2px; background: var(--rule); }
.geo-process li:last-child::after { display: none; }
.geo-process h3 { font-size: 1.2rem !important; font-weight: 800 !important; margin: 0 0 .5rem !important; }
.geo-process p { margin: 0 !important; color: var(--mute); font-size: .95rem !important; line-height: 1.6 !important; }
.geo-process i.fa-solid { font-size: 1.5rem; margin-bottom: 1rem; color: var(--ink); display: block; }

/* porovnání ofset / digitál */
.geo-compare { width: 100%; border-collapse: collapse; font-size: 1rem; }
.geo-compare th, .geo-compare td { padding: 1.1rem 1rem; text-align: left; border-bottom: 1px solid var(--rule); vertical-align: top; }
.geo-compare thead th { font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; color: var(--mute); border-bottom: 2px solid var(--ink); }
.geo-compare tbody th { font-weight: 700; width: 28%; }
.geo-compare td.is-win { font-weight: 700; }
.geo-compare td.is-win::before { content: "●"; color: var(--m); margin-right: .5rem; font-size: .8em; }
.geo-compare-wrap { overflow-x: auto; }

/* štítky */
.geo-chips { display: flex; flex-wrap: wrap; gap: .6rem; margin: 0; padding: 0; list-style: none; }
.geo-chips li { padding: .6rem 1.1rem; border: 2px solid var(--ink); border-radius: 999px; font-weight: 700; font-size: .95rem; transition: background-color .25s, color .25s, transform .25s var(--ease-out); }
.geo-chips li:hover { background: var(--ink); color: #fff; transform: translateY(-2px) rotate(-1.5deg); }
.geo-chips--light li { border-color: rgba(255, 255, 255, .5); }
.geo-chips--light li:hover { background: #fff; color: var(--ink); }

/* personalizace (digitál) */
.geo-persona { position: relative; display: grid; place-items: center; padding: clamp(1.5rem, 4vw, 3rem) 0; }
.geo-persona__stack { position: relative; width: min(100%, 26rem); aspect-ratio: 1.6; }
.geo-persona__card {
  position: absolute; inset: 0; padding: 1.6rem 1.8rem;
  background: #fff; color: var(--ink); border-radius: 10px;
  box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .7);
  display: flex; flex-direction: column; justify-content: space-between;
}
.geo-persona__card:nth-child(1) { transform: rotate(-7deg) translate(-6%, 4%); opacity: .55; }
.geo-persona__card:nth-child(2) { transform: rotate(-3deg) translate(-3%, 2%); opacity: .8; }
.geo-persona__card small { font-size: .75rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--mute); }
.geo-persona__name { font-size: clamp(1.5rem, 2.8vw, 2.1rem); font-weight: 800; letter-spacing: -0.03em; line-height: 1.1; min-height: 2.3em; }
.geo-persona__name span { color: var(--m); }
.geo-persona__bar { display: flex; gap: .4rem; }
.geo-persona__bar i { flex: 1; height: 6px; border-radius: 3px; }
.geo-persona__bar i:nth-child(1) { background: var(--c); }
.geo-persona__bar i:nth-child(2) { background: var(--m); }
.geo-persona__bar i:nth-child(3) { background: var(--y); }
.geo-persona__bar i:nth-child(4) { background: var(--ink); }

/* tým */
.geo-team { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr)); gap: clamp(1rem, 2vw, 1.6rem); margin: 0; padding: 0; list-style: none; }
.geo-member { margin: 0; }
.geo-member__photo { position: relative; aspect-ratio: 3 / 4.2; overflow: hidden; border-radius: 6px; background: var(--pale); isolation: isolate; }
.geo-member__photo img { width: 100%; height: 100%; object-fit: cover; display: block; filter: grayscale(1) contrast(1.05); transition: filter .5s, transform .8s var(--ease-out); }
.geo-member__photo::before, .geo-member__photo::after {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background-image: var(--img); background-size: cover; background-position: center;
  mix-blend-mode: multiply; opacity: 0; transition: opacity .35s, transform .5s var(--ease-out);
}
.geo-member__photo::before { background-color: var(--c); background-blend-mode: screen; }
.geo-member__photo::after { background-color: var(--m); background-blend-mode: screen; }
.geo-member:hover .geo-member__photo img { filter: none; transform: scale(1.04); }
.geo-member:hover .geo-member__photo::before { opacity: .45; transform: translate(-6px, 4px) scale(1.04); }
.geo-member:hover .geo-member__photo::after { opacity: .45; transform: translate(6px, -4px) scale(1.04); }
.geo-member figcaption { padding-top: .9rem; }
.geo-member figcaption b { display: block; font-size: 1.08rem; font-weight: 800; letter-spacing: -0.01em; }
.geo-member figcaption span { color: var(--mute); font-size: .95rem; }
.geo-member--memoriam .geo-member__photo img { filter: grayscale(1); }
.geo-member--memoriam .geo-member__photo::before, .geo-member--memoriam .geo-member__photo::after { display: none; }
.geo-member--memoriam:hover .geo-member__photo img { filter: grayscale(1); transform: none; }
.geo-member--memoriam .geo-member__photo { box-shadow: inset 0 0 0 4px var(--ink); }
.geo-member--memoriam figcaption span { display: block; margin-top: .4rem; font-size: .88rem; line-height: 1.5; }
.geo-ribbon { position: absolute; z-index: 2; top: 14px; right: -34px; rotate: 45deg; width: 130px; height: 14px; background: var(--ink); }

/* zásady kvality */
.geo-principles { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 1px; margin: 0; padding: 0; list-style: none; background: var(--rule); border: 1px solid var(--rule); border-radius: 6px; overflow: hidden; counter-reset: geo-pr; }
.geo-principles li { background: #fff; padding: 1.8rem 1.6rem; counter-increment: geo-pr; line-height: 1.6; }
.geo-principles li::before { content: counter(geo-pr, decimal-leading-zero); display: block; margin-bottom: .8rem; font-size: 2rem; font-weight: 900; letter-spacing: -0.04em; color: transparent; -webkit-text-stroke: 1.5px var(--ink); }
.geo-badge { display: inline-grid; place-items: center; width: 9rem; aspect-ratio: 1; border-radius: 50%; border: 3px solid var(--green); color: var(--ink); text-align: center; font-weight: 800; line-height: 1.15; padding: 1rem; position: relative; }
.geo-badge::before { content: ""; position: absolute; inset: 6px; border-radius: 50%; border: 1.5px dashed var(--green); animation: geo-spin 30s linear infinite; }
.geo-badge b { font-size: 1.7rem; letter-spacing: -0.03em; }
.geo-badge small { font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--mute); }

/* kontakty */
.geo-contact { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.6rem); }
.geo-ccard { position: relative; display: flex; flex-direction: column; gap: .5rem; padding: clamp(1.6rem, 3vw, 2.4rem); border-radius: 6px; background: var(--pale); color: var(--ink) !important; text-decoration: none; overflow: hidden; isolation: isolate; transition: transform .4s var(--ease-out), box-shadow .4s var(--ease-out) !important; }
a.geo-ccard:hover { transform: translateY(-5px); box-shadow: 0 30px 60px -30px rgba(31, 30, 35, .5); }
.geo-ccard--ink { background: var(--ink); color: #fff !important; }
.geo-ccard--orange { background: var(--orange); color: #fff !important; }
.geo-ccard small { font-size: .78rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; opacity: .7; }
.geo-ccard strong { font-size: clamp(1.25rem, 2vw, 1.7rem); font-weight: 800; letter-spacing: -0.02em; line-height: 1.2; word-break: break-word; }
.geo-ccard p { margin: 0 !important; line-height: 1.6 !important; }
.geo-ccard__icon { position: absolute; right: 1.2rem; top: 1rem; font-size: 4.5rem; opacity: .1; z-index: -1; transition: transform .5s var(--ease-out), opacity .3s; }
a.geo-ccard:hover .geo-ccard__icon { transform: rotate(-12deg) scale(1.1); opacity: .2; }
.geo-ccard__go { margin-top: auto; padding-top: 1rem; font-weight: 700; font-size: .92rem; display: inline-flex; gap: .5rem; align-items: center; }
.geo-copy { align-self: flex-start; margin-top: .4rem; display: inline-flex; gap: .4rem; align-items: center; padding: .35rem .8rem; border-radius: 999px; border: 1.5px solid currentColor; background: transparent; color: inherit; font: 600 .8rem/1 var(--font); cursor: pointer; }
.geo-copy.is-done { background: var(--green); border-color: var(--green); color: #fff; }

.geo-depts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: clamp(1rem, 2vw, 1.4rem); }
.geo-dept { position: relative; padding: 1.8rem 1.6rem; border-radius: 6px; background: var(--ink-2); border: 1px solid var(--ink-line); transition: border-color .3s, transform .4s var(--ease-out); }
.geo-dept:hover { border-color: var(--dc, var(--c)); transform: translateY(-4px); }
.geo-dept::before { content: ""; position: absolute; left: 1.6rem; top: 0; width: 3rem; height: 5px; background: var(--dc, var(--c)); border-radius: 0 0 3px 3px; }
.geo-dept h3 { font-size: 1.2rem !important; font-weight: 800 !important; margin: .4rem 0 1rem !important; color: #fff; }
.geo-dept ul { margin: 0; padding: 0; list-style: none; display: grid; gap: .55rem; }
.geo-dept li { display: flex; gap: .7rem; align-items: baseline; color: #d6d6de; line-height: 1.45; }
.geo-dept li i { width: 1rem; color: var(--dc, var(--c)); }
.geo-dept a { color: #fff; text-decoration: none; border-bottom: 1px solid rgba(255, 255, 255, .25); transition: border-color .2s, color .2s !important; }
.geo-dept a:hover { border-color: var(--dc, var(--c)); color: var(--dc, var(--c)); }
.geo-map { position: relative; border-radius: var(--radius); overflow: hidden; box-shadow: 0 0 0 1px var(--rule); }
.geo-map iframe { display: block; width: 100%; height: clamp(320px, 50vh, 480px); border: 0; filter: grayscale(.4) contrast(1.05); transition: filter .5s; }
.geo-map:hover iframe { filter: none; }
.geo-map__pin { position: absolute; left: 1.2rem; bottom: 1.2rem; padding: 1rem 1.3rem; background: #fff; border-radius: 6px; box-shadow: 0 20px 40px -20px rgba(0, 0, 0, .5); font-weight: 600; line-height: 1.45; }
.geo-map__pin a { color: var(--navy); font-weight: 700; }

/* kontaktní formulář */
.geo-formblock { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(2rem, 6vw, 6rem); align-items: start; }
.geo-formblock__list { margin: 2rem 0 0; padding: 0; list-style: none; display: grid; gap: .8rem; }
.geo-formblock__list li { display: flex; gap: .8rem; align-items: baseline; line-height: 1.5; }
.geo-formblock__list i { width: 1.1rem; color: var(--m); }
.geo-formblock__list a { color: var(--navy); font-weight: 600; }
.geo-form { position: relative; display: grid; gap: 1.3rem; padding: clamp(1.6rem, 3.5vw, 2.8rem); background: #fff; border-radius: 6px; box-shadow: 0 30px 60px -40px rgba(31, 30, 35, .45); }
.geo-form__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.3rem; }
.geo-field { display: grid; gap: .45rem; align-content: start; }
.geo-field label { font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--mute); }
.geo-field__opt { font-weight: 500; letter-spacing: 0; text-transform: none; }
.geo-modern .geo-field input, .geo-modern .geo-field textarea {
  width: 100%; margin: 0; padding: .95rem 1.1rem;
  border: 2px solid transparent; border-radius: 6px; background: var(--pale);
  font: 500 1rem/1.5 var(--font); color: var(--ink);
  transition: border-color .2s, background-color .2s, box-shadow .25s var(--ease-out) !important;
}
.geo-modern .geo-field textarea { min-height: 10rem; resize: vertical; }
.geo-modern .geo-field input::placeholder, .geo-modern .geo-field textarea::placeholder { color: #8d8c95; }
.geo-modern .geo-field input:focus, .geo-modern .geo-field textarea:focus { outline: none; border-color: var(--ink); background: #fff; box-shadow: 4px 4px 0 var(--c), -4px -4px 0 var(--m); }
.geo-modern .geo-field [aria-invalid="true"] { border-color: var(--m); background: #fff; }
.geo-form__err { margin: 0 !important; color: var(--m); font-size: .88rem; font-weight: 600; line-height: 1.4 !important; }
.geo-form__hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.geo-form__foot { display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; align-items: center; justify-content: space-between; }
.geo-form__consent { flex: 1 1 18rem; margin: 0 !important; font-size: .88rem; color: var(--mute); line-height: 1.5 !important; }
.geo-form__consent a { color: var(--navy); font-weight: 600; }
.geo-form .geo-btn[disabled] { opacity: .6; cursor: progress; }
.geo-form__spin, .geo-form.is-sending .geo-form__go { display: none; }
.geo-form.is-sending .geo-form__spin { display: inline-block; }
.geo-form__status { margin: 0 !important; padding: 1rem 1.2rem; border-left: 5px solid var(--rule); border-radius: 6px; font-weight: 600; line-height: 1.5 !important; }
.geo-form__status.is-ok { background: rgba(149, 193, 31, .14); border-color: var(--green); }
.geo-form__status.is-error { background: rgba(228, 0, 124, .07); border-color: var(--m); }
.geo-form__status[hidden], .geo-form__err[hidden] { display: none; }

/* text z administrace (Podstránka) */
.geo-article { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 20rem); gap: clamp(2rem, 6vw, 6rem); align-items: start; }
.geo-prose { font-size: 1.06rem; line-height: 1.8; max-width: 46rem; }
.geo-prose > * + * { margin-top: 1.2rem !important; }
.geo-prose p { line-height: 1.8 !important; font-size: inherit !important; }
.geo-prose h2, .geo-prose h3 { margin-top: 2.6rem !important; margin-bottom: .8rem !important; font-weight: 800 !important; letter-spacing: -0.025em; line-height: 1.15; }
.geo-prose h2 { font-size: clamp(1.6rem, 2.6vw, 2.1rem) !important; }
.geo-prose h3 { font-size: 1.35rem !important; }
.geo-prose strong { font-weight: 800; }
.geo-prose > p:first-child { font-size: 1.18rem !important; font-weight: 500; }
.geo-prose a { color: var(--navy); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.geo-prose ul { list-style: none; padding: 0; }
.geo-prose ul li { position: relative; padding: .55rem 0 .55rem 2rem; border-bottom: 1px solid var(--rule); }
.geo-prose ul li::before { content: ""; position: absolute; left: .2rem; top: 1.15rem; width: .7rem; height: .7rem; border-radius: 50%; background: var(--c); }
.geo-prose ul li:nth-child(4n+2)::before { background: var(--m); }
.geo-prose ul li:nth-child(4n+3)::before { background: var(--y); }
.geo-prose ul li:nth-child(4n+4)::before { background: var(--ink); }
.geo-prose figure { margin: 2rem 0 !important; }
.geo-prose img { height: auto; border-radius: 6px; }
.geo-prose .has-vivid-red-color { color: var(--m) !important; }
.geo-prose .stroj-gallery { margin-top: 2rem; gap: 2rem; }
.geo-prose .stroj-gallery .container-45 { flex: 1 1 18rem; }
.geo-prose .gallery { gap: .8rem; }
.geo-prose .gallery a { display: block; border-radius: 6px; overflow: hidden; }
.geo-prose .gallery img { border-radius: 0; width: 150px; height: 150px; }

.geo-aside { position: sticky; top: calc(var(--head-h) + 1rem); display: grid; gap: 1.2rem; }
.geo-aside__box { padding: 1.6rem; border-radius: 6px; background: var(--pale); }
.geo-aside__box h4 { margin: 0 0 1rem; font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; color: var(--mute); }
.geo-aside__nav { margin: 0; padding: 0; list-style: none; }
.geo-aside__nav a { display: flex; align-items: center; gap: .7rem; padding: .6rem 0; color: var(--ink); font-weight: 600; border-bottom: 1px solid var(--rule); }
.geo-aside__nav li:last-child a { border-bottom: 0; }
.geo-aside__nav a:hover, .geo-aside__nav a[aria-current] { color: var(--navy); padding-left: .3rem; }
.geo-aside__nav a[aria-current] { font-weight: 800; }
.geo-aside__box--ink { background: var(--ink); color: #fff; }
.geo-aside__box--ink h4 { color: #a9a9b6; }
.geo-aside__box--ink p { margin: 0 0 1rem !important; line-height: 1.6 !important; }
.geo-aside__box--ink a.geo-btn { width: 100%; justify-content: center; }

/* kontrolní seznam dat */
.geo-check { margin: 0; padding: 0; list-style: none; display: grid; gap: .6rem; }
.geo-check label { display: flex; gap: 1rem; align-items: flex-start; padding: 1rem 1.2rem; border-radius: 6px; background: #fff; box-shadow: 0 0 0 1px var(--rule); cursor: pointer; transition: box-shadow .25s, background-color .25s; line-height: 1.5; }
.geo-check label:hover { box-shadow: 0 0 0 2px var(--ink); }
.geo-check input { appearance: none; flex: none; width: 1.5rem; height: 1.5rem; margin: 0; border: 2px solid var(--ink); border-radius: 50%; position: relative; cursor: pointer; transition: background-color .2s; }
.geo-check input::before, .geo-check input::after { content: ""; position: absolute; background: #fff; opacity: 0; }
.geo-check input::before { left: 50%; top: -5px; bottom: -5px; width: 2px; translate: -50% 0; background: var(--ink); }
.geo-check input::after { top: 50%; left: -5px; right: -5px; height: 2px; translate: 0 -50%; background: var(--ink); }
.geo-check input:checked { background: var(--ink); }
.geo-check input:checked::before, .geo-check input:checked::after { opacity: 1; }
.geo-check input:checked + span { text-decoration: line-through; text-decoration-color: var(--m); text-decoration-thickness: 2px; color: var(--mute); }
.geo-check span b { display: block; }
.geo-check-meter { display: flex; align-items: center; gap: 1rem; margin-top: 1.4rem; font-weight: 700; }
.geo-check-meter__bar { flex: 1; height: 8px; border-radius: 4px; background: var(--rule); overflow: hidden; }
.geo-check-meter__bar i { display: block; height: 100%; width: 0; background: linear-gradient(90deg, var(--c), var(--m), var(--y), var(--ink)); transition: width .5s var(--ease-out); }

/* spadávka */
.geo-bleed { position: relative; aspect-ratio: 1.45; max-width: 30rem; margin: 2rem auto; }
.geo-bleed__bleed { position: absolute; inset: 0; background: repeating-linear-gradient(45deg, rgba(228, 0, 124, .18) 0 8px, transparent 8px 16px); border: 1.5px dashed var(--m); border-radius: 2px; }
.geo-bleed__trim { position: absolute; inset: 9%; background: linear-gradient(135deg, var(--c), var(--navy)); display: grid; place-items: center; color: #fff; font-weight: 800; font-size: 1.2rem; text-align: center; }
.geo-bleed__trim::after { content: ""; position: absolute; inset: 0; border: 2px solid var(--ink); }
.geo-bleed .crop { color: var(--ink); opacity: 1; }
.geo-bleed .crop--tl { left: calc(9% - 24px); top: calc(9% - 24px); }
.geo-bleed .crop--tr { right: calc(9% - 24px); top: calc(9% - 24px); }
.geo-bleed .crop--bl { left: calc(9% - 24px); bottom: calc(9% - 24px); }
.geo-bleed .crop--br { right: calc(9% - 24px); bottom: calc(9% - 24px); }
.geo-bleed__legend { display: flex; flex-wrap: wrap; gap: 1rem 2rem; justify-content: center; font-size: .9rem; color: var(--mute); }
.geo-bleed__legend i { display: inline-block; width: 1rem; height: 1rem; vertical-align: -3px; margin-right: .4rem; border-radius: 2px; }

/* produkty (tiskové služby) */
.geo-products { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 190px), 1fr)); gap: 1px; margin: 0; padding: 0; list-style: none; background: var(--rule); border: 1px solid var(--rule); border-radius: 6px; overflow: hidden; }
.geo-products li { background: #fff; padding: 1.6rem 1.3rem; display: flex; flex-direction: column; gap: .9rem; transition: background-color .3s, color .3s; }
.geo-products li i { font-size: 1.6rem; color: var(--pc, var(--c)); transition: transform .4s var(--ease-out); }
.geo-products li b { font-weight: 800; font-size: 1.05rem; }
.geo-products li:hover { background: var(--ink); color: #fff; }
.geo-products li:hover i { transform: translateY(-4px) rotate(-8deg) scale(1.1); }
.geo-products li:nth-child(4n+2) { --pc: var(--m); }
.geo-products li:nth-child(4n+3) { --pc: #e0c600; }
.geo-products li:nth-child(4n+4) { --pc: var(--ink); }
.geo-products li:nth-child(4n+4):hover i { color: #fff; }

/* single / reference detail */
.geo-entry { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 20rem); gap: clamp(2rem, 6vw, 6rem); align-items: start; }
.geo-entry__img { margin: 0 0 2rem; border-radius: 6px; overflow: hidden; }
.geo-entry__img img { display: block; width: 100%; height: auto; }
.geo-pn { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 3rem; }
.geo-pn a { display: block; padding: 1.3rem 1.4rem; border-radius: 6px; box-shadow: 0 0 0 1px var(--rule); color: var(--ink); transition: box-shadow .3s; }
.geo-pn a:hover { box-shadow: 0 0 0 2px var(--ink); }
.geo-pn small { display: block; font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--mute); margin-bottom: .3rem; }
.geo-pn a:last-child { text-align: right; }

/* 404 */
.geo-404 { min-height: 80vh; display: grid; place-items: center; text-align: center; padding: calc(var(--head-h) + 2rem) 0 4rem; }
.geo-404 .reg-title { font-size: clamp(7rem, 26vw, 20rem) !important; font-weight: 900; line-height: .85; margin-bottom: 1rem !important; }
.geo-404 p { max-width: 34em; margin: 0 auto 2rem !important; font-size: 1.15rem; }
.geo-404 .geo-btns { justify-content: center; }

/* =====================================================================
   VÝZVA + PATIČKA
   ===================================================================== */

.geo-cta { position: relative; background: var(--ink); color: #fff; padding-block: clamp(4rem, 9vw, 7.5rem); margin-top: clamp(3rem, 7vw, 6rem); overflow: hidden; isolation: isolate; }
.geo-cta::before {
  content: ""; position: absolute; right: -10%; top: -40%; width: 70%; aspect-ratio: 1; z-index: -1;
  background-image: radial-gradient(circle, rgba(0, 168, 232, .35) 1.5px, transparent 2px), radial-gradient(circle, rgba(228, 0, 124, .3) 1.5px, transparent 2px);
  background-size: 16px 16px, 16px 16px; background-position: 0 0, 8px 8px;
  -webkit-mask-image: radial-gradient(circle, #000 0%, transparent 65%); mask-image: radial-gradient(circle, #000 0%, transparent 65%);
}
.geo-cta__grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: clamp(2rem, 6vw, 6rem); align-items: end; }
.geo-cta__title { font-size: clamp(2.4rem, 5vw, 4.6rem) !important; }
.geo-cta__lead { color: #d6d6de; max-width: 34em; margin: 0 !important; line-height: 1.7 !important; font-size: 1.1rem !important; }
.geo-cta__actions { display: flex; flex-direction: column; gap: .8rem; align-items: stretch; }
.geo-cta__actions .geo-btn { justify-content: center; font-size: 1.05rem; padding: 1.15rem 1.6rem; }

.geo-modern footer.geo-footer { margin: 0; padding: clamp(3.5rem, 7vw, 5.5rem) 0 2rem; background: var(--ink); color: #fff; border-top: 1px solid var(--ink-line); }
.geo-modern .geo-cta + .cmyk-strip { margin-top: 0; }
.geo-footer__grid { display: grid; grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr)); gap: clamp(2rem, 4vw, 4rem); }
.geo-footer__brand p { color: #b9b9c4; line-height: 1.7 !important; margin: 1.4rem 0 0 !important; max-width: 30em; }
.geo-footer__iso { color: #fff !important; font-weight: 600; }
.geo-footer__iso i { color: var(--green); margin-right: .3rem; }
.geo-modern footer .footer-logo { width: 160px; }
.geo-footer h4 { margin: 0 0 1.2rem; font-size: .78rem; letter-spacing: .16em; text-transform: uppercase; color: #8d8d99; }
.geo-footer__list { margin: 0; padding: 0; list-style: none; display: grid; gap: .65rem; color: #e7e7ee; line-height: 1.45; }
.geo-footer__list a { color: #fff; position: relative; }
.geo-footer__list a::after { content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 2px; background: linear-gradient(90deg, var(--c), var(--m), var(--y)); transform: scaleX(0); transform-origin: left; transition: transform .35s var(--ease-out); }
.geo-footer__list a:hover::after { transform: scaleX(1); }
.geo-footer__list i { width: 1.1rem; color: #8d8d99; margin-right: .3rem; }
.geo-footer__bottom { margin-top: clamp(2.5rem, 5vw, 4rem); padding-top: 1.6rem; border-top: 1px solid var(--ink-line); display: flex; flex-wrap: wrap; gap: 1rem 2rem; align-items: center; justify-content: space-between; }
.geo-footer__bottom p { margin: 0 !important; color: #8d8d99; font-size: .9rem !important; }
.geo-totop { display: grid; place-items: center; width: 3.2rem; height: 3.2rem; border-radius: 50%; border: 1.5px solid var(--ink-line); background: transparent; color: #fff; cursor: pointer; transition: border-color .3s, transform .6s var(--ease-out); }
.geo-totop:hover { border-color: #fff; transform: rotate(180deg); }
.geo-totop .reg-mark { width: 22px; height: 22px; }

/* =====================================================================
   ANIMACE – výchozí stavy (jen když běží JS a uživatel nechce klid)
   ===================================================================== */

.geo-js [data-reveal]:not(.is-in) { opacity: 0; transform: translateY(28px); }
.geo-js [data-reveal="clip"]:not(.is-in) { opacity: 1; transform: none; clip-path: inset(0 0 100% 0 round var(--radius)); }
.geo-js [data-split]:not(.is-split) { visibility: hidden; }
.split-line { padding-bottom: .04em; }

/* =====================================================================
   RESPONZIVITA
   ===================================================================== */

@media (max-width: 1100px) {
  .geo-cards, .geo-refs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .geo-specs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .geo-process { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 2.5rem; }
  .geo-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
  :root { --head-h: 80px; }
  .geo-hero__grid, .geo-about__grid, .geo-split-head, .geo-voice__grid, .geo-help__grid,
  .geo-intro, .geo-machine, .geo-article, .geo-entry, .geo-cta__grid { grid-template-columns: minmax(0, 1fr); }
  .geo-split-head > .geo-btn { justify-self: start; }
  .geo-numbers { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .geo-contact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .geo-formblock { grid-template-columns: minmax(0, 1fr); }
  .geo-n { min-height: 9.5rem; }
  .geo-hero__figure { padding: 30px 20px; }
  .geo-aside { position: static; }

  .geo-scrolly__grid { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .geo-scrolly__col { order: -1; position: sticky; top: 60px; z-index: 3; background: var(--ink); margin-inline: -8%; padding: .8rem 8% 1rem; }
  .geo-scrolly__sticky { position: static; padding: 18px 16px 0; max-width: 30rem; margin-inline: auto; }
  .geo-scrolly .cmyk-sheet .reg-mark, .geo-scrolly .cmyk-sheet .crop { display: none; }
  .geo-inks { margin-top: .9rem; }
  .geo-step { min-height: 55vh; }
}

@media (max-width: 768px) {
  .geo-modern .menu-wrapper.active .main-menu {
    display: flex; flex-direction: row; flex-wrap: wrap; justify-content: center; align-content: center;
    gap: 0; padding: 90px 0 40px; min-height: 100%; box-sizing: border-box;
  }
  .geo-modern .main-menu li { flex: 0 0 100%; margin: .35rem 0 !important; }
  .geo-modern .main-menu li a { color: #fff; font-size: 1.45rem; }
  .geo-modern .main-menu li.lang { flex: 0 0 auto; margin: 1rem .3rem 0 !important; }
  .geo-modern .menu-wrapper.active { overflow-y: auto; }
  .geo-modern .menu-actions { display: flex; justify-content: center; gap: .6rem; margin-top: 1.2rem !important; }
  .geo-modern .menu-actions a.btn { font-size: 1rem !important; padding: .9rem 1.2rem; border-radius: 999px; background: #fff; color: var(--ink); border-color: #fff; }
  .geo-cards, .geo-refs, .geo-contact { grid-template-columns: minmax(0, 1fr); }
  .geo-card { min-height: 0; }
  .geo-process { grid-template-columns: minmax(0, 1fr); }
  .geo-process li::after { display: none; }
  .geo-ghost { display: none; }
  .geo-head__panel { border-radius: 24px 24px 0 0; min-height: 18rem; }
  .geo-head__reg { width: 34px; height: 34px; }
  .geo-pn { grid-template-columns: minmax(0, 1fr); }
  .geo-pn a:last-child { text-align: left; }
  .geo-cursor { display: none; }
}

@media (max-width: 560px) {
  .geo-numbers { grid-template-columns: minmax(0, 1fr); }
  .geo-specs { grid-template-columns: minmax(0, 1fr); }
  .geo-footer__grid { grid-template-columns: minmax(0, 1fr); }
  .geo-btns .geo-btn { width: 100%; justify-content: center; }
  .geo-form__row { grid-template-columns: minmax(0, 1fr); }
  .geo-form__foot .geo-btn { width: 100%; justify-content: center; }
  .geo-hero__cap { flex-direction: column; align-items: flex-start; }
  .geo-inks { flex-direction: column; align-items: flex-start; }
  .geo-towers { padding-inline: .5rem; }
  .geo-tower b { font-size: .7rem; }
}

@media (prefers-reduced-motion: reduce) {
  html:not(.geo-force-motion) :is(.cmyk-plate, .geo-step, .geo-dot, .geo-card, .geo-ref__link, .geo-curtain i),
  html:not(.geo-force-motion) .geo-card::before { transition: none !important; }
  html:not(.geo-force-motion) .cmyk-sheet.is-loose { --f: 0; }
  html:not(.geo-force-motion) .geo-tower__roll,
  html:not(.geo-force-motion) .geo-paper::before,
  html:not(.geo-force-motion) .geo-badge::before { animation: none; }
}

.geo-linkbtn { padding: 0; border: 0; background: none; color: inherit; font: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.geo-linkbtn:hover { color: #fff; }
.geo-modern #cookie-settings-btn.geo-linkbtn { position: static; padding: 0; background: none; box-shadow: none; opacity: 1; border-radius: 0; font: inherit; color: inherit; transform: none; }
.geo-modern #cookie-settings-btn.geo-linkbtn:hover { color: #fff; }
.ink-dot--k-dark { background: var(--ink); }

/* =====================================================================
   COOKIE LIŠTA (CookieConsent v2.7) – ve stylu webu
   ===================================================================== */

#cc--main .cc_div {
  --cc-bg: #fff;
  --cc-text: var(--ink);
  --cc-btn-primary-bg: var(--ink);
  --cc-btn-primary-text: #fff;
  --cc-btn-primary-hover-bg: #000;
  --cc-btn-secondary-bg: transparent;
  --cc-btn-secondary-text: var(--ink);
  --cc-btn-secondary-hover-bg: var(--pale);
  --cc-toggle-bg-off: #b9b9c4;
  --cc-toggle-bg-on: var(--ink);
  --cc-toggle-bg-readonly: #8d8d99;
  --cc-toggle-knob-bg: #fff;
  --cc-toggle-knob-icon-color: var(--ink);
  --cc-block-text: var(--ink);
  --cc-cookie-category-block-bg: var(--pale);
  --cc-cookie-category-block-bg-hover: #ebebf0;
  --cc-section-border: var(--rule);
  --cc-cookie-table-border: var(--rule);
  --cc-overlay-bg: rgba(31, 30, 35, .72);
  font-family: var(--font) !important;
}
#cc--main .cc_div * { font-family: var(--font) !important; }

/* --- první vrstva: tmavá karta s pruhem barev --- */
#cc--main #cm {
  max-width: 25rem;
  padding: 2rem 1.8rem 1.6rem;
  background: var(--ink);
  color: #fff;
  border-radius: 6px;
  box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .7);
  overflow: hidden;
}
#cc--main #cm::before {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 8px;
  background: linear-gradient(90deg, var(--c) 0 25%, var(--m) 25% 50%, var(--y) 50% 75%, #000 75%);
}
#cc--main #cm::after {
  /* rastrové body v rohu */
  content: ""; position: absolute; right: -40px; bottom: -40px; width: 160px; height: 160px; pointer-events: none;
  background-image: radial-gradient(circle, rgba(0, 168, 232, .35) 1.4px, transparent 1.8px);
  background-size: 11px 11px; border-radius: 50%;
  -webkit-mask-image: radial-gradient(circle, #000 0%, transparent 70%); mask-image: radial-gradient(circle, #000 0%, transparent 70%);
}
#cc--main #c-inr { position: relative; z-index: 1; }
#cc--main #c-ttl {
  display: flex; align-items: center; gap: .7rem;
  margin-bottom: .8rem; font-size: 1.25rem; font-weight: 800; letter-spacing: -0.02em; color: #fff;
}
#cc--main #c-ttl::before {
  content: ""; flex: none; width: 26px; height: 26px;
  background: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40' fill='none' stroke='%23ffec00' stroke-width='2.4'%3E%3Ccircle cx='20' cy='20' r='9'/%3E%3Ccircle cx='20' cy='20' r='4' fill='%23ffec00' stroke='none'/%3E%3Cpath d='M20 2v36M2 20h36'/%3E%3C/svg%3E");
}
#cc--main #c-txt { font-size: .95rem; line-height: 1.6; color: #d6d6de; }
#cc--main #c-bns { display: flex; gap: .6rem; margin-top: 1.4rem; }
#cc--main #c-bns .c-bn {
  flex: 1; margin: 0; padding: .85rem 1rem;
  border-radius: 999px; border: 2px solid transparent;
  font-size: .92rem; font-weight: 700; line-height: 1.2;
  transition: background-color .25s, color .25s, border-color .25s, transform .3s var(--ease-out);
}
#cc--main #c-bns #c-p-bn { background: var(--yellow); border-color: var(--yellow); color: var(--ink); }
#cc--main #c-bns #c-p-bn:hover { background: #fff; border-color: #fff; }
#cc--main #c-bns #c-s-bn { background: transparent; border-color: rgba(255, 255, 255, .5); color: #fff; }
#cc--main #c-bns #c-s-bn:hover { background: rgba(255, 255, 255, .12); border-color: #fff; }
#cc--main #c-bns .c-bn:active { transform: scale(.97); }
#cc--main .cc-link {
  display: inline; padding: 0; border: 0; background: none; cursor: pointer;
  color: inherit; font: inherit; font-weight: 700;
  text-decoration: underline; text-decoration-color: var(--c); text-decoration-thickness: 2px; text-underline-offset: 3px;
}
#cc--main #cm .cc-link:hover { color: var(--yellow); }
#cc--main #s-bl .cc-link { border-bottom: 0; padding: 0; }

/* --- nastavení --- */
#cc--main #s-inr {
  max-width: 44rem; border-radius: 6px; overflow: hidden;
  box-shadow: 0 50px 100px -40px rgba(0, 0, 0, .8);
}
#cc--main #s-hdr {
  height: auto; padding: 1.6rem 1.8rem 1.2rem; border-bottom: 1px solid var(--rule);
  background: #fff;
}
#cc--main #s-hdr::before {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 6px;
  background: linear-gradient(90deg, var(--c) 0 25%, var(--m) 25% 50%, var(--y) 50% 75%, var(--ink) 75%);
}
#cc--main #s-ttl { font-size: 1.5rem; font-weight: 800; letter-spacing: -0.03em; }
#cc--main #s-c-bnc { top: 1.3rem; right: 1.4rem; }
#cc--main #s-c-bn {
  width: 2.6rem; height: 2.6rem; border-radius: 50%; background: transparent; border: 2px solid var(--ink);
  transition: background-color .2s, transform .4s var(--ease-out);
}
#cc--main #s-c-bn:hover { background: var(--pale); transform: rotate(90deg); }
#cc--main #s-c-bn::before, #cc--main #s-c-bn::after { background: var(--ink); }
#cc--main #s-bl { padding: 1.2rem 1.8rem; }
#cc--main #s-bl .c-bl { border-radius: 6px; border: 0; margin-bottom: .6rem; }
#cc--main #s-bl .c-bl:first-child { padding: 0 0 .6rem; margin-bottom: .6rem; }
#cc--main #s-bl .b-tl { font-size: 1rem; font-weight: 800; }
#cc--main #s-bl .c-bl:first-child .b-tl { font-size: 1.05rem; }
#cc--main #s-bl .b-bn .b-tl { padding: 1.1rem 1.2rem 1.1rem 2.8rem; border-radius: 6px; }
#cc--main #s-bl .b-bn .b-tl::before { border-color: var(--ink); }
#cc--main #s-bl .p, #cc--main #s-bl .desc { line-height: 1.6; font-size: .93rem; color: #3d3c44; }
#cc--main #s-bl .b-acc { border-radius: 0 0 6px 6px; }
#cc--main #s-bl table { font-size: .85rem; }
#cc--main #s-bl th { font-weight: 800; }
#cc--main #s-bl .c-bl.b-ex:nth-of-type(2) { box-shadow: inset 4px 0 0 var(--c); }
#cc--main #s-bl .c-bl.b-ex:nth-of-type(3) { box-shadow: inset 4px 0 0 var(--m); }
#cc--main #s-bl .c-bl.b-ex:nth-of-type(4) { box-shadow: inset 4px 0 0 var(--y); }
#cc--main .c-tgl:checked ~ .c-tg { background: var(--ink); }
#cc--main #s-bns { height: auto; padding: 1.1rem 1.8rem 1.4rem; border-top: 1px solid var(--rule); display: flex; flex-wrap: wrap; gap: .6rem; }
#cc--main #s-bns .c-bn {
  margin: 0; padding: .85rem 1.3rem; border-radius: 999px; border: 2px solid var(--ink);
  font-size: .92rem; font-weight: 700; transition: background-color .25s, color .25s;
}
#cc--main #s-all-bn { background: var(--ink); color: #fff; }
#cc--main #s-all-bn:hover { background: transparent; color: var(--ink); box-shadow: 4px 4px 0 var(--c), -4px -4px 0 var(--m); }
#cc--main #s-rall-bn, #cc--main #s-sv-bn { background: transparent; color: var(--ink); }
#cc--main #s-rall-bn:hover, #cc--main #s-sv-bn:hover { background: var(--ink); color: #fff; }
#cc--main #s-sv-bn { margin-left: auto; }

@media (max-width: 688px) {
  #cc--main #cm { max-width: none; left: 12px !important; right: 12px !important; bottom: 12px !important; padding: 1.7rem 1.3rem 1.3rem; }
  #cc--main #c-bns { flex-direction: column; }
  #cc--main #s-inr { border-radius: 0; }
  #cc--main #s-hdr, #cc--main #s-bl, #cc--main #s-bns { padding-left: 1.2rem; padding-right: 1.2rem; }
  #cc--main #s-bns .c-bn { flex: 1 1 100%; }
  #cc--main #s-sv-bn { margin-left: 0; }
}

/* ---------- přepínač jazyků ---------- */
.geo-modern .main-menu li.geo-lang-item { margin-left: .6rem; }
.geo-lang {
  position: relative; display: inline-flex; align-items: center; gap: 2px;
  padding: 3px; border-radius: 999px;
  background: rgba(31, 30, 35, .06); box-shadow: inset 0 0 0 1px rgba(31, 30, 35, .12);
}
.geo-lang__icon { padding: 0 .35rem 0 .45rem; font-size: .85rem; color: var(--mute); }
.geo-modern .main-menu .geo-lang a {
  position: relative; display: inline-grid; place-items: center;
  min-width: 2.4rem; padding: .42rem .55rem !important; border-radius: 999px;
  font-size: .78rem !important; font-weight: 800 !important; letter-spacing: .08em; line-height: 1;
  color: var(--ink) !important; background: transparent;
}
.geo-modern .main-menu .geo-lang a:hover { background: #fff !important; box-shadow: 0 2px 6px -2px rgba(0, 0, 0, .25); }
.geo-modern .main-menu .geo-lang a[aria-current="true"] { background: var(--ink) !important; color: #fff !important; box-shadow: none; }
/* malá tisková tečka u aktivního jazyka */
.geo-modern .main-menu .geo-lang a[aria-current="true"]::after {
  content: ""; position: absolute; right: 4px; top: 4px; width: 5px; height: 5px; border-radius: 50%;
  background: conic-gradient(var(--c) 0 33%, var(--m) 0 66%, var(--y) 0);
}
/* po odscrollování je hlavička tmavá */
.menu-container.active .geo-lang { background: rgba(255, 255, 255, .1); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .18); }
.menu-container.active .geo-lang__icon { color: #b9b9c4; }
.geo-modern .menu-container.active .main-menu .geo-lang a { color: #fff !important; }
.geo-modern .menu-container.active .main-menu .geo-lang a:hover { background: rgba(255, 255, 255, .16) !important; }
.geo-modern .menu-container.active .main-menu .geo-lang a[aria-current="true"] { background: #fff !important; color: var(--ink) !important; }
@media (max-width: 768px) {
  .geo-modern .main-menu li.geo-lang-item { margin: 1.2rem 0 0 !important; }
  .geo-modern .menu-wrapper .geo-lang { background: rgba(255, 255, 255, .1); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .2); padding: 4px; }
  .geo-modern .menu-wrapper .geo-lang__icon { color: #b9b9c4; }
  .geo-modern .menu-wrapper .main-menu .geo-lang a { color: #fff !important; font-size: .95rem !important; min-width: 3.2rem; padding: .7rem .8rem !important; }
  .geo-modern .menu-wrapper .main-menu .geo-lang a[aria-current="true"] { background: #fff !important; color: var(--ink) !important; }
}
@media (min-width: 769px) and (max-width: 1100px) {
  .geo-modern .main-menu li a { padding: .55rem .62rem; font-size: .9rem; }
  .geo-modern .menu-container img.geo-logo-color { width: 96px; }
  .geo-lang__icon { display: none; }
  .geo-modern .main-menu .geo-lang a { min-width: 2.1rem; }
}
.geo-ccard strong { font-size: clamp(1.1rem, 1.55vw, 1.6rem); word-break: normal; overflow-wrap: anywhere; }

/* ---------- navigace hranatě: záložky jako barevné dlaždice fasády (tlačítka akcí zůstávají oblá) ---------- */
.geo-modern .main-menu li a { border-radius: 0; }
.geo-lang { border-radius: 0; padding: 0; gap: 0; background: transparent; box-shadow: inset 0 0 0 1.5px var(--ink); }
.geo-lang__icon { padding: 0 .5rem; }
.geo-modern .main-menu .geo-lang a { border-radius: 0; padding: .55rem .6rem !important; }
.geo-modern .main-menu .geo-lang a:hover { background: var(--yellow) !important; box-shadow: none; }
.menu-container.active .geo-lang { background: transparent; box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .45); }
.geo-modern .menu-container.active .main-menu .geo-lang a:hover { background: var(--yellow) !important; color: var(--ink) !important; }
@media (max-width: 768px) {
  .geo-modern .menu-wrapper .geo-lang { padding: 0; box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .45); background: transparent; }
}

/* ---------- hero na počítači: nadpis na dva řádky, vrstveně přes fotku ---------- */
@media (min-width: 901px) {
  .geo-hero__copy { position: relative; z-index: 2; }
  .geo-hero__figure { position: relative; z-index: 1; }
  .geo-hero__title {
    white-space: nowrap;
    font-size: clamp(3rem, 6.5vw, 8rem) !important;
  }
  /* němčina je delší – o stupeň menší */
  .geo-hero__title--de { font-size: clamp(3rem, 5.4vw, 6.6rem) !important; }
  /* maska řádků ze SplitText nesmí text oříznout na šířku sloupce */
  .geo-hero__title > div, .geo-hero__title .split-line { width: max-content; }
  /* bílá „papírová“ hrana, aby barevný text zůstal čitelný i přes fotku */
  .geo-hero__title strong { filter: drop-shadow(0 0 1px #fff) drop-shadow(0 0 .12em rgba(255, 255, 255, .85)); }
  .geo-hero__lead, .geo-hero__copy .geo-btns { max-width: 30em; }
}
.reg-title { overflow-wrap: break-word; hyphens: auto; -webkit-hyphens: auto; }
