:root{
  --bg-dark:#0a2e28;
  --bg-mid:#0e3f36;
  --bg-light:#175c4c;
  --bg-glow:#2d8a70;
  --green-soft:#86efac;
  --green-lime:#a3e635;
  --white:#ffffff;
  --white-muted:rgba(255,255,255,0.55);
  --white-dim:rgba(255,255,255,0.15);
  --card-bg:rgba(255,255,255,0.08);
  --card-border:rgba(255,255,255,0.14);
}
*{box-sizing:border-box;}
body{margin:0;padding:0;font-family:'Inter',sans-serif;background:var(--bg-dark);color:var(--white);line-height:1.5;-webkit-font-smoothing:antialiased;}
a{text-decoration:none;color:inherit;}
img{max-width:100%;display:block;}
h1,h2,h3,h4{margin:0;font-family:'Inter',sans-serif;}
p{margin:0;}
ul{list-style:none;margin:0;padding:0;}
button{font-family:'Inter',sans-serif;}

/* Section transition system: ONE continuous gradient painted on .page-flow
   (a wrapper spanning Ticker -> Contact, or whatever sections a page has)
   instead of separate per-section backgrounds. This removes the seam risk
   entirely since there is only a single gradient surface, computed to align
   its dark dip exactly with any .case-studies-section's real measured
   position (see main.js). */
.page-flow{background:#0a2e28;}
.case-studies-section,.about-section,.testimonials-section,.services-section,
.pricing-section,
.hero-sub-section,.philosophy-section,.systems-section,.results-section,
.bottom-cta-section,.more-clients-section,.logo-ticker-section{background:transparent;}

/* Each section's own resting tone (deep/moody vs light/glowy) lives inside
   the single .page-flow gradient computed in main.js (updateFlowGradient) —
   a per-section-class color map blended with a generous feather at every
   boundary. Because it's one continuous painted surface, adjacent sections
   can never show a seam no matter how different their tones are. The grid
   texture below is layered as a second/third background-image on the same
   element for the same reason — one continuous tiled surface, not a
   per-section repeat that could drift out of phase at a boundary.

   On top of that flat base, each section carries one soft animated glow
   blob (radial-gradient circle, blurred, fading fully to transparent well
   before the section's own edges) that slowly drifts and breathes via
   glow-drift — a subtle "alive" quality rather than a static backdrop.
   Because every blob fades to nothing long before it reaches a boundary,
   the animation can never introduce a seam either. */
@keyframes glow-drift{
  0%,100%{transform:translate(-50%,-50%) scale(1);opacity:0.85;}
  50%{transform:translate(-53%,-47%) scale(1.12);opacity:1;}
}
.hero,
.about-section,.services-section,.testimonials-section,.stats-section,
.philosophy-section,.systems-section,.pricing-section,.results-section{
  position:relative;z-index:0;overflow:hidden;
}
.hero::before{content:'';position:absolute;top:58%;left:50%;width:75%;height:75%;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle, rgba(45,138,112,0.26) 0%, rgba(45,138,112,0) 68%);filter:blur(8px);pointer-events:none;z-index:0;animation:glow-drift 12s ease-in-out infinite;}
.about-section::before,.philosophy-section::before{content:'';position:absolute;top:42%;left:48%;width:62%;height:62%;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle, rgba(45,138,112,0.19) 0%, rgba(45,138,112,0) 68%);filter:blur(8px);pointer-events:none;z-index:-1;animation:glow-drift 10s ease-in-out infinite;}
.services-section::before,.systems-section::before,.results-section::before{content:'';position:absolute;top:30%;left:24%;width:56%;height:56%;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle, rgba(45,138,112,0.16) 0%, rgba(45,138,112,0) 68%);filter:blur(8px);pointer-events:none;z-index:-1;animation:glow-drift 13s ease-in-out infinite;}
.testimonials-section::before{content:'';position:absolute;top:50%;left:50%;width:58%;height:58%;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle, rgba(45,138,112,0.15) 0%, rgba(45,138,112,0) 68%);filter:blur(8px);pointer-events:none;z-index:-1;animation:glow-drift 9.5s ease-in-out infinite;}
.stats-section::before,.pricing-section::before{content:'';position:absolute;top:45%;left:50%;width:88%;height:88%;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle, rgba(45,138,112,0.3) 0%, rgba(45,138,112,0) 68%);filter:blur(10px);pointer-events:none;z-index:-1;animation:glow-drift 11s ease-in-out infinite;}

.section-label{font-family:'DM Mono',monospace;font-size:0.75rem;letter-spacing:0.12em;color:var(--green-soft);text-transform:uppercase;display:flex;align-items:center;gap:10px;}
.section-label .sl-line{display:none;}
.section-label.centered{justify-content:center;}

.gh-wrap{position:relative;display:inline-block;line-height:1;}
.gh-main{display:block;font-family:'Inter',sans-serif;font-weight:800;font-size:clamp(2.5rem,5vw,4.2rem);color:#ffffff;line-height:1.05;margin:0;position:relative;z-index:2;}
.gh-graffiti{display:block;font-family:'Caveat',cursive;font-weight:700;font-size:clamp(3rem,6vw,5rem);color:#4ade80;line-height:0.9;margin-top:-0.45em;position:relative;z-index:1;text-shadow:0 0 40px rgba(74,222,128,0.3);}
.gh-wrap-center{text-align:center;}
.gh-wrap-center .gh-wrap{display:inline-block;}
.case-studies-section .gh-graffiti,.results-section .gh-graffiti{color:#4ade80;text-shadow:0 0 60px rgba(74,222,128,0.4);font-size:clamp(3.2rem,6.5vw,5.5rem);}
/* vysledky.html hero only: heavier/tighter white heading (matches the
   homepage hero's weight), and a cleaner, slightly larger cursive accent
   with a softer glow so it reads as elegant script rather than rough
   handwriting. Scoped via .gh-hero-vysledky, no other gh-wrap affected. */
.gh-hero-vysledky .gh-main{font-weight:900;letter-spacing:-0.02em;}
.gh-hero-vysledky .gh-graffiti{font-size:clamp(3.2rem,6.5vw,5.3rem);margin-top:-0.38em;text-shadow:0 0 24px rgba(74,222,128,0.22);}
.price-card .gh-main{font-size:clamp(1.8rem,3vw,2.6rem);}
.price-card .gh-graffiti{font-family:'Caveat',cursive;font-size:clamp(1.8rem,3vw,2.6rem);margin-top:-0.4em;text-shadow:0 0 30px rgba(74,222,128,0.3);}

/* Opt-in "large" variant matching the homepage hero h1's scale (clamp up to
   7rem, weight 900) with generous positive spacing under the cursive line
   instead of the shared -0.45em overlap, so it never crowds the bold text
   above it. Scoped via .gh-lg on specific gh-wrap instances only — the base
   .gh-main/.gh-graffiti rules stay untouched for every other usage. */
.gh-lg .gh-main{font-size:clamp(3.5rem,8vw,7rem);font-weight:900;line-height:1.0;letter-spacing:-0.02em;}
.gh-lg .gh-graffiti{margin-top:0.2em;}
/* Opt-in "bold continuation" variant: the accent line drops the Caveat
   script entirely and matches its own heading's Inter font/weight/size, so
   the two lines read as one bold heading split white->green rather than a
   handwritten echo. Scoped via .gh-bold — only sluzby.html's hero and
   [02/Systémy] headings use this; every other .gh-graffiti stays cursive. */
.gh-bold .gh-graffiti{font-family:'Inter',sans-serif;font-weight:900;font-size:clamp(3.5rem,8vw,7rem);line-height:1.0;letter-spacing:-0.02em;margin-top:0;text-shadow:none;color:#ffffff;}
/* sluzby.html hero only: "bez kompromisů." is long enough to wrap mid-phrase
   at narrow widths under the shared 3.5rem clamp floor. Scoped override
   drops the floor further and pins the line to nowrap so it always scales
   down as one unit instead of breaking after "bez". */
.gh-hero-sluzby .gh-main{font-size:clamp(2.4rem,9vw,7rem);}
.gh-hero-sluzby .gh-graffiti{font-size:clamp(1.9rem,8.5vw,7rem);white-space:nowrap;}

.reveal{opacity:0;transform:translateY(30px);transition:opacity .6s ease, transform .6s ease;}
.reveal.visible{opacity:1;transform:translateY(0);}
.reveal-delay-1{transition-delay:.08s;}
.reveal-delay-2{transition-delay:.16s;}
.reveal-delay-3{transition-delay:.24s;}

.btn-lime{display:inline-block;background:var(--green-lime);color:#0d3d35;border:none;border-radius:999px;padding:0.85rem 2rem;font-weight:700;font-size:0.95rem;cursor:pointer;transition:transform .2s ease, filter .2s ease;}
.btn-lime:hover{transform:translateY(-2px);filter:brightness(1.05);}
.btn-dark{display:inline-block;background:#111c1a;color:#fff;border:none;border-radius:999px;padding:0.85rem 2rem;font-weight:600;font-size:0.95rem;cursor:pointer;transition:background .2s ease, transform .2s ease;}
.btn-dark:hover{background:#1a2e2a;transform:translateY(-2px);}
.btn-dark-outline{display:inline-block;background:#111c1a;color:#fff;border:1px solid rgba(255,255,255,0.2);border-radius:999px;padding:0.85rem 2rem;font-weight:600;font-size:0.95rem;cursor:pointer;transition:background .2s ease, transform .2s ease;}
.btn-dark-outline:hover{background:#1a2e2a;transform:translateY(-2px);}
.btn-white{display:inline-block;background:#fff;color:#0a2e28;border:none;border-radius:999px;padding:0.85rem 2rem;font-weight:600;font-size:0.95rem;cursor:pointer;}
.btn-outline-white{display:inline-block;background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,0.3);border-radius:999px;padding:0.85rem 2rem;font-weight:600;font-size:0.95rem;cursor:pointer;}

/* nav */
nav{position:fixed;top:0;left:0;right:0;z-index:100;height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 2.5rem;transition:transform .25s ease, background .3s ease, border-color .3s ease;border-bottom:1px solid transparent;transform:translateY(0);}
.nav-logo{flex-shrink:0;}
nav.scrolled{background:rgba(10,46,40,0.92);backdrop-filter:blur(16px);border-bottom:1px solid rgba(255,255,255,0.08);}
nav.nav-hidden{transform:translateY(-100%);}
.nav-logo{font-family:'Inter',sans-serif;font-weight:700;color:#fff;font-size:1.1rem;letter-spacing:0.05em;}
.nav-links{display:flex;gap:2.5rem;margin:0 auto;}
.nav-links a{color:rgba(255,255,255,0.8);text-decoration:none;font-size:0.9rem;font-weight:500;transition:color .2s;}
.nav-links a:hover{color:#fff;}
.nav-right{display:flex;align-items:center;gap:1.5rem;}
.lang-toggle{font-family:'DM Mono',monospace;font-size:0.8rem;display:flex;align-items:center;gap:0.4rem;}
.lang-btn{background:none;border:none;cursor:pointer;font-family:'DM Mono',monospace;font-size:0.8rem;color:rgba(255,255,255,0.4);padding:0;}
.lang-sep{color:rgba(255,255,255,0.25);}
.nav-cta{background:#fff;color:#0a2e28;border-radius:999px;padding:0.5rem 1.4rem;font-weight:600;font-size:0.85rem;}
.hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:6px;z-index:101;}
.hamburger span{width:22px;height:2px;background:#fff;transition:all .3s ease;}
.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.hamburger.open span:nth-child(2){opacity:0;}
.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.mobile-menu{position:fixed;inset:0;background:rgba(10,46,40,0.98);backdrop-filter:blur(10px);z-index:99;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;opacity:0;pointer-events:none;transition:opacity .3s ease;}
.mobile-menu.open{opacity:1;pointer-events:all;}
.mobile-menu a{font-size:22px;font-weight:600;color:#fff;}
.mobile-menu .lang-toggle{font-size:1rem;}

/* hero */
.hero{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:100px 2rem 5rem;position:relative;overflow:hidden;background:radial-gradient(ellipse 90% 70% at 50% 78%, #2d8a70 0%, #1a6b57 30%, #124a3e 58%, #0a2e28 100%);}
.hero::after{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,0.02) 1px, transparent 1px),linear-gradient(90deg, rgba(255,255,255,0.02) 1px, transparent 1px);background-size:50px 50px;pointer-events:none;z-index:0;}
.hero-content{position:relative;z-index:1;padding:0 1.5rem;}
.hero-label{border:1px solid rgba(255,255,255,0.3);border-radius:999px;padding:0.4rem 1.2rem;font-family:'DM Mono',monospace;font-size:0.7rem;letter-spacing:0.12em;color:rgba(255,255,255,0.7);display:inline-block;margin-bottom:2.5rem;text-transform:uppercase;}
.hero h1{font-family:'Inter',sans-serif;font-weight:900;font-size:clamp(3.5rem,8vw,7rem);color:#fff;line-height:1.0;letter-spacing:-0.02em;max-width:900px;margin:0 auto 1.5rem;}
.hero .sub{font-weight:400;font-size:1.1rem;color:rgba(255,255,255,0.65);max-width:560px;margin:0 auto 2.5rem;line-height:1.6;}

/* shorter hero variant for secondary pages (vysledky.html / sluzby.html) —
   same background/overlay treatment as .hero, just not a full 100vh block */
.hero.hero-sub{min-height:auto;padding:160px 2rem 5.5rem;}

/* logo ticker (index.html, "trusted by" band) — one continuous flex track
   with the logo set duplicated once in the markup. Each logo sits in a
   FIXED-WIDTH slot (.logo-ticker-item) rather than sizing to its own
   image's natural aspect ratio — that's what makes the loop distance exact:
   with a known slot width and a known gap, "one full set" is a precise,
   hardcoded calc() (8 slots + 8 gaps), so the keyframe's translateX lands
   exactly where the duplicate set begins, with zero drift regardless of
   image load timing. (The previous version measured this at runtime via
   JS, which was correct in isolation but fragile — pure CSS math removes
   that dependency entirely.) Edge-fade masks so logos ease in/out instead
   of cutting off, and the section paints nothing of its own (background
   stays transparent) so the page-flow gradient underneath shows through. */
.logo-ticker-section{padding:2.5rem 0;overflow:hidden;}
.logo-ticker-mask{
  overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg, transparent 0%, #000 10%, #000 90%, transparent 100%);
  mask-image:linear-gradient(90deg, transparent 0%, #000 10%, #000 90%, transparent 100%);
}
.logo-ticker-track{display:flex;align-items:center;width:max-content;gap:3.5rem;animation:logo-ticker-scroll 36s linear infinite;}
.logo-ticker-item{width:140px;height:36px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.logo-ticker-img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;filter:grayscale(1);opacity:0.55;transition:opacity .3s ease;}
.logo-ticker-section:hover .logo-ticker-img{opacity:0.85;}
@keyframes logo-ticker-scroll{
  0%{transform:translateX(0);}
  /* one set = 8 slots (140px) + 8 gaps (3.5rem), matching the trailing gap
     that connects set 1's last logo to set 2's first — an exact match, not
     an approximation, so the loop point is mathematically invisible. */
  100%{transform:translateX(calc(-8 * (140px + 3.5rem)));}
}

/* case studies (compact card grid, used on index.html and reused on vysledky.html) */
.case-section-inner{max-width:1100px;margin:0 auto;}
.cases-viewport{overflow:hidden;max-width:1100px;margin:3rem auto 0;}
.cases-grid{display:flex;gap:1.5rem;transition:transform .5s cubic-bezier(0.65,0,0.35,1);}
.cases-grid > .case-card{flex:0 0 calc((100% - 3rem)/3);}
/* Each card now gets a real photo via an inline background-image (index.html
   carousel + vysledky.html detail list), so the old placeholder texture and
   the five position-based nth-child color variants are gone — every card
   has its own specific photo now, not a color tied to its slot. The dark
   background-color stays as a safety fallback in case an image fails to
   load. */
.case-card{position:relative;border-radius:16px;overflow:hidden;aspect-ratio:4/5;background-color:#1a1a1a;}
.case-arrows{display:flex;justify-content:center;gap:1rem;margin-top:2rem;}
.case-arrow{width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,0.2);background:transparent;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.1rem;transition:background .2s;}
.case-arrow:hover{background:rgba(255,255,255,0.08);}
.case-dots{display:flex;justify-content:center;gap:0.5rem;margin-top:1.5rem;}
.case-dots span{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,0.25);display:block;}
.case-dots span.active{background:var(--green-lime);width:24px;border-radius:4px;}

/* detailed case study block (vysledky.html) — reuses .case-card for the
   visual header (same border-radius/overlay treatment) next to a narrative
   column with section-label-style eyebrow rows */
.case-detail-grid{display:grid;grid-template-columns:0.85fr 1.15fr;gap:3.5rem;align-items:start;margin-bottom:2rem;}
.case-detail-grid:last-child{margin-bottom:0;}
.case-detail-grid .case-card{aspect-ratio:3/4;}
.case-narrative-label{margin-bottom:1.5rem;}
.case-narrative-label:first-of-type{margin-top:0;}
.case-narrative h2{font-size:clamp(1.6rem,3vw,2.2rem);font-weight:800;color:#fff;margin-bottom:1.75rem;line-height:1.25;}
.case-narrative-block{margin-bottom:1.5rem;}
.case-narrative-block p{color:rgba(255,255,255,0.6);line-height:1.7;font-size:0.95rem;}

/* philosophy (text-only two-column layout, sluzby.html) */
.philosophy-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center;}
.philosophy-grid p{color:rgba(255,255,255,0.6);line-height:1.7;font-size:1rem;}

/* about */
.about-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center;}
.about-photo-wrap{position:relative;}
.about-photo-card{border-radius:16px;overflow:hidden;border:1px solid rgba(255,255,255,0.12);position:relative;background:var(--bg-mid);background-image:linear-gradient(rgba(255,255,255,0.05) 1px, transparent 1px),linear-gradient(90deg, rgba(255,255,255,0.05) 1px, transparent 1px);background-size:45px 45px;min-height:480px;}
.about-photo-card img{width:100%;height:100%;display:block;object-fit:cover;object-position:center top;position:relative;z-index:2;}
.about-badge{position:absolute;bottom:-1rem;right:-1rem;background:#111c1a;border:1px solid rgba(255,255,255,0.15);border-radius:10px;padding:0.6rem 1rem;z-index:2;}
.about-badge .badge-top{font-family:'DM Mono',monospace;font-size:0.6rem;color:var(--green-soft);letter-spacing:0.1em;}
.about-badge .badge-bottom{font-family:'DM Mono',monospace;font-size:0.7rem;color:#fff;margin-top:0.2rem;}
.about-heading{font-size:clamp(1.8rem,3vw,2.8rem);font-weight:800;color:#fff;line-height:1.3;margin:1rem 0 1.5rem;}
.about-heading em{font-style:italic;color:var(--green-soft);font-weight:500;}
.about-text p{color:rgba(255,255,255,0.6);line-height:1.7;margin-bottom:2rem;font-size:1rem;}

/* services */
.services-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;max-width:1200px;margin:0 auto;}
.svc-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:16px;padding:1.75rem;position:relative;overflow:hidden;}
.svc-card .bignum{position:absolute;right:1rem;bottom:0.5rem;font-size:4.5rem;font-weight:900;color:rgba(255,255,255,0.04);line-height:1;pointer-events:none;user-select:none;font-family:'Inter',sans-serif;}
.svc-card .tag{font-family:'DM Mono',monospace;font-size:0.65rem;color:var(--green-soft);letter-spacing:0.08em;margin-bottom:0.75rem;}
.svc-card h3{font-size:1.1rem;font-weight:700;color:#fff;margin:0 0 0.75rem;position:relative;z-index:1;}
.svc-card p{font-size:0.85rem;color:rgba(255,255,255,0.5);line-height:1.6;margin:0;position:relative;z-index:1;}
.see-all-link{color:rgba(255,255,255,0.45);font-size:0.9rem;text-decoration:none;}

/* stats */
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;max-width:1000px;margin:0 auto 5rem;}
.stat-card{background:rgba(31,107,86,0.55);border:1px solid rgba(255,255,255,0.14);border-radius:16px;padding:2rem 1.5rem;text-align:left;min-height:130px;display:flex;flex-direction:column;justify-content:space-between;}
.stat-num{font-size:2.5rem;font-weight:800;color:var(--green-soft);line-height:1;margin-bottom:0.5rem;white-space:nowrap;}
.stat-num.stat-num-sm{font-size:clamp(1.6rem,3vw,2.4rem);}
.stat-lbl{font-size:0.65rem;font-weight:600;letter-spacing:0.12em;text-transform:uppercase;color:rgba(255,255,255,0.4);}
.compound-heading{font-size:clamp(2.5rem,5vw,4rem);font-weight:800;color:#fff;margin:0 auto 1rem;max-width:700px;line-height:1.1;}
.compound-sub{color:rgba(255,255,255,0.45);font-size:0.9rem;margin-bottom:0.75rem;}
.compound-quote{color:rgba(255,255,255,0.35);font-style:italic;font-size:0.85rem;margin-bottom:2rem;}

/* small stat pills used in secondary-page hero (vysledky.html / sluzby.html) */
.hero-stats-row{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2.5rem;}
.stat-mini{border:1px solid rgba(255,255,255,0.16);background:rgba(255,255,255,0.06);border-radius:999px;padding:0.6rem 1.25rem;font-family:'DM Mono',monospace;font-size:0.8rem;color:rgba(255,255,255,0.75);}
.stat-mini strong{color:var(--green-soft);font-weight:700;margin-right:0.35rem;}

/* testimonials */
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;max-width:1100px;margin:3rem auto 2rem;text-align:left;}
.testi-card{background:rgba(255,255,255,0.09);border:1px solid rgba(255,255,255,0.14);border-radius:16px;padding:2.25rem;}
.testi-card p{color:rgba(255,255,255,0.8);font-size:0.95rem;line-height:1.7;margin:0 0 1.5rem;}
.testi-author{display:flex;align-items:center;gap:0.75rem;}
.testi-avatar{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,0.15);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:0.9rem;color:#fff;flex-shrink:0;}
.testi-name{font-weight:600;color:#fff;font-size:0.9rem;}
.testi-role{color:rgba(255,255,255,0.45);font-size:0.8rem;}
.testi-dots{display:flex;gap:0.5rem;justify-content:center;margin-bottom:2.5rem;}
.testi-dots span{height:6px;border-radius:3px;background:rgba(255,255,255,0.25);display:block;}
.testi-dots span.active{width:28px;background:var(--green-lime);}
.testi-dots span:not(.active){width:8px;}

/* process (also reused as "systems" list on sluzby.html) */
.process-wrap{max-width:1100px;margin:0 auto;}
.process-heading{font-size:clamp(2.5rem,5vw,4rem);font-weight:800;color:#fff;margin:1rem 0 3rem;line-height:1.1;}
.process-list{border-top:1px solid rgba(255,255,255,0.1);}
.process-row{display:grid;grid-template-columns:180px 1fr;gap:2rem;padding:2.5rem 0;border-bottom:1px solid rgba(255,255,255,0.1);}
.process-row .label{font-family:'DM Mono',monospace;font-size:0.7rem;letter-spacing:0.1em;color:var(--green-soft);padding-top:0.25rem;}
.process-row h3{font-size:1.3rem;font-weight:700;color:#fff;margin:0 0 0.5rem;}
.badge-pill{display:inline-block;font-family:'DM Mono',monospace;font-size:0.65rem;letter-spacing:0.05em;color:rgba(255,255,255,0.5);border:1px solid rgba(255,255,255,0.18);border-radius:999px;padding:0.2rem 0.65rem;vertical-align:middle;}
.process-row p{font-size:0.9rem;color:rgba(255,255,255,0.5);line-height:1.65;margin:0;}
.bullet-grid{display:grid;grid-template-columns:1fr 1fr;gap:0.6rem 1.5rem;margin-top:1.25rem;}
.bullet-item{display:flex;align-items:center;gap:0.6rem;font-size:0.85rem;color:rgba(255,255,255,0.75);}
.bullet-item::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--green-soft);flex-shrink:0;}

/* pricing */
.pricing-wrap{max-width:1100px;margin:0 auto;}
.pricing-grid2{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:2rem;}
.price-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:16px;padding:2.5rem;}
.price-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;}
.price-tag{font-family:'DM Mono',monospace;font-size:0.65rem;letter-spacing:0.1em;color:rgba(255,255,255,0.4);}
.price-dot{width:8px;height:8px;border-radius:50%;background:var(--green-soft);display:block;}
.price-card .pc-desc{color:rgba(255,255,255,0.5);font-size:0.9rem;line-height:1.65;margin-bottom:1.5rem;}
.price-range2{font-size:1.6rem;font-weight:800;color:var(--green-soft);margin-bottom:1.5rem;}
.price-range2 span{font-size:0.9rem;font-weight:400;color:rgba(255,255,255,0.4);}
.price-note{border-top:1px solid rgba(255,255,255,0.08);padding-top:1rem;font-family:'DM Mono',monospace;font-size:0.75rem;color:var(--green-soft);}
.price-card h3.pc-title{font-size:1.6rem;font-weight:800;color:#fff;margin:0 0 1.5rem;}
.criteria-list2{border-top:1px solid rgba(255,255,255,0.08);}
.criteria-item{display:flex;gap:1rem;align-items:flex-start;padding:0.9rem 0;border-bottom:1px solid rgba(255,255,255,0.08);}
.criteria-item .cnum{font-family:'DM Mono',monospace;font-size:0.65rem;color:var(--green-soft);min-width:1.5rem;margin-top:0.2rem;}
.criteria-item span.ctext{color:rgba(255,255,255,0.7);font-size:0.9rem;}
.price-note2{margin-top:1rem;font-family:'DM Mono',monospace;font-size:0.75rem;color:var(--green-soft);}

/* contact CTA row (still used by sluzby.html's bottom CTA) */
.contact-cta-row{display:flex;gap:1rem;justify-content:center;margin-bottom:4rem;flex-wrap:wrap;}

/* generic centered bottom-CTA block, reused on vysledky.html / sluzby.html */
.bottom-cta-inner{text-align:center;max-width:1100px;margin:0 auto;padding:0 2rem;}
.bottom-cta-sub{color:rgba(255,255,255,0.5);font-size:1rem;margin:1.5rem 0 2.5rem;}

/* light "breather" section (vysledky.html, between case studies and final CTA) */
.more-clients-section{text-align:center;}
.more-clients-heading{font-family:'Inter',sans-serif;font-weight:800;font-size:clamp(1.5rem,3vw,2.1rem);color:#fff;margin:0 0 0.75rem;line-height:1.3;}
.more-clients-sub{font-family:'Inter',sans-serif;font-weight:400;color:rgba(255,255,255,0.5);font-size:1rem;max-width:560px;margin:0 auto;line-height:1.6;}

/* footer */
footer{background:#050a08;border-top:1px solid rgba(255,255,255,0.07);padding:1.5rem 2.5rem;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;font-family:'DM Mono',monospace;font-size:0.7rem;color:rgba(255,255,255,0.3);}
.footer-logo{font-weight:700;color:#fff;letter-spacing:0.05em;justify-self:start;}
.footer-copy{justify-self:center;}
.footer-tag{justify-self:end;}
.footer-copy,.footer-tag{font-family:'DM Mono',monospace;font-size:0.7rem;color:rgba(255,255,255,0.3);}

/* ===== typeform-style application flow (poptavka.html only) ===== */
.tf-body{height:100vh;overflow:hidden;background:radial-gradient(ellipse 90% 70% at 50% 78%, #2d7d68 0%, #1a5c4a 30%, #123f37 58%, #0a2e28 100%);}
.tf-body::after{content:'';position:fixed;inset:0;background-image:linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px),linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px);background-size:50px 50px;pointer-events:none;z-index:0;}

.tf-progress{position:fixed;top:0;left:0;right:0;height:3px;background:rgba(255,255,255,0.08);z-index:150;}
.tf-progress-bar{height:100%;width:0%;background:#4ade80;transition:width .4s ease;}

.tf-stage{position:fixed;inset:0;z-index:1;}
.tf-step{position:absolute;inset:0;display:none;align-items:center;justify-content:center;overflow-y:auto;padding:150px 2rem 120px;opacity:0;transform:translateY(16px);transition:opacity .4s ease, transform .4s ease;}
.tf-step.active{display:flex;opacity:1;transform:translateY(0);}
.tf-step-inner{max-width:640px;width:100%;}

.tf-badge{font-family:'DM Mono',monospace;font-size:0.85rem;color:#4ade80;letter-spacing:0.08em;margin-bottom:1.25rem;}
.tf-question{font-family:'Inter',sans-serif;font-weight:800;font-size:clamp(1.8rem,4.2vw,2.75rem);color:#fff;line-height:1.3;margin-bottom:0.75rem;}
.tf-req{color:#4ade80;}
.tf-helper{font-family:'Inter',sans-serif;font-weight:400;font-size:0.95rem;color:rgba(255,255,255,0.5);margin-bottom:2.25rem;line-height:1.6;}

.tf-input{display:block;width:100%;background:transparent;border:none;border-bottom:2px solid rgba(255,255,255,0.2);color:#fff;font-family:'Inter',sans-serif;font-size:1.4rem;font-weight:500;padding:0.6rem 0.1rem;outline:none;margin-bottom:2.25rem;transition:border-color .2s;}
.tf-input::placeholder{color:rgba(255,255,255,0.3);}
.tf-input:focus{border-color:#4ade80;}
.tf-input.tf-shake{animation:tf-shake .35s ease;border-color:#f87171;}
@keyframes tf-shake{0%,100%{transform:translateX(0);}25%{transform:translateX(-6px);}75%{transform:translateX(6px);}}

.tf-field{margin-bottom:1.5rem;}
.tf-field-label{font-family:'DM Mono',monospace;font-size:0.7rem;color:rgba(255,255,255,0.4);text-transform:uppercase;letter-spacing:0.08em;margin-bottom:0.5rem;}
.tf-phone-row{display:flex;gap:0.75rem;align-items:flex-end;}
.tf-phone-prefix{font-family:'Inter',sans-serif;font-size:1.4rem;font-weight:500;color:rgba(255,255,255,0.6);padding:0.6rem 0.1rem;border-bottom:2px solid rgba(255,255,255,0.2);white-space:nowrap;}
.tf-phone-row .tf-input{margin-bottom:0;}

.tf-pills{display:flex;flex-direction:column;gap:0.75rem;margin-bottom:1rem;}
.tf-pill{display:block;width:100%;text-align:left;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.16);border-radius:999px;padding:1rem 1.5rem;color:#fff;font-family:'Inter',sans-serif;font-size:1.05rem;font-weight:500;cursor:pointer;transition:background .2s ease, border-color .2s ease, color .2s ease;}
.tf-pill:hover{background:rgba(255,255,255,0.1);border-color:rgba(255,255,255,0.32);}
.tf-pill.selected{background:#4ade80;border-color:#4ade80;color:#0a2e28;font-weight:700;}

.tf-ok{display:inline-flex;align-items:center;gap:0.6rem;background:#111c1a;color:#fff;border:none;border-radius:999px;padding:0.85rem 2rem;font-weight:600;font-size:0.95rem;cursor:pointer;font-family:'Inter',sans-serif;transition:background .2s ease, transform .2s ease;}
.tf-ok:hover{background:#1a2e2a;transform:translateY(-2px);}
.tf-ok-arrow{font-family:'DM Mono',monospace;}
.tf-ok-hint{font-family:'DM Mono',monospace;font-size:0.75rem;color:rgba(255,255,255,0.35);margin-top:0.85rem;}
.tf-error{color:#f87171;font-family:'Inter',sans-serif;font-size:0.9rem;line-height:1.5;margin-top:0.85rem;max-width:480px;}
.tf-ok:disabled{opacity:0.6;cursor:default;pointer-events:none;}

.tf-nav-arrows{position:fixed;bottom:2rem;right:2rem;display:flex;flex-direction:column;gap:0.6rem;z-index:150;}
.tf-arrow{width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,0.2);background:rgba(255,255,255,0.06);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.1rem;transition:background .2s ease;}
.tf-arrow:hover{background:rgba(255,255,255,0.14);}
.tf-arrow:disabled{opacity:0.25;cursor:default;pointer-events:none;}

.tf-thanks .tf-step-inner{text-align:center;}
.tf-thanks .tf-question{margin-bottom:2rem;}

@media(max-width:768px){
  nav{padding:0 1.25rem;}
  .nav-links{display:none;}
  .nav-right .lang-toggle,.nav-right .nav-cta{display:none;}
  .hamburger{display:flex;}
  .hero h1{font-size:clamp(2.5rem,8vw,4rem);}
  .services-grid,.stats-grid,.testi-grid,.pricing-grid2,.about-grid,.contact-form-grid,.philosophy-grid{grid-template-columns:1fr;}
  .cases-grid > .case-card{flex:0 0 100%;}
  .process-row{grid-template-columns:1fr;gap:0.5rem;}
  .about-grid{gap:3rem;}
  .about-photo-wrap{margin-bottom:1rem;}
  .case-detail-grid{grid-template-columns:1fr;}
  .bullet-grid{grid-template-columns:1fr;}
  footer{grid-template-columns:1fr;justify-items:center;text-align:center;}
  .footer-logo,.footer-copy,.footer-tag{justify-self:center;}
  .tf-step{padding:130px 1.5rem 100px;}
  .tf-nav-arrows{bottom:1.25rem;right:1.25rem;}
  .tf-arrow{width:38px;height:38px;}
}
