/* ====================================================================
   VRTANÉ STUDNY HADRAVA — style.css  v4.0 FINAL
   ==================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800;900&family=Lora:ital,wght@0,600;0,700;1,500;1,600&display=swap');

/* ── VARIABLES ──────────────────────────────────────────────────── */
:root {
  --blue-900: #042A3F;
  --blue-800: #063D5A;
  --blue-700: #0A5C84;
  --blue-600: #0C6E9C;
  --blue-500: #1585BB;
  --blue-100: #D6EEF8;
  --blue-50:  #EBF6FC;
  --blue-xlt: #F2F9FD;
  --gold-600: #B06B00;
  --gold-500: #D4820A;
  --gold-400: #E8920A;
  --gold-100: #FEF3DC;
  --green-500:#059669;
  --gray-900: #0F1923;
  --gray-800: #1C2B38;
  --gray-700: #2E3F50;
  --gray-500: #4B6070;
  --gray-400: #6B7D8D;
  --gray-300: #9AAAB8;
  --gray-200: #C8D5DF;
  --gray-100: #E4EBF0;
  --gray-50:  #F4F7F9;
  --white:    #FFFFFF;
  --shadow-xs: 0 1px 3px rgba(4,42,63,.06);
  --shadow-sm: 0 2px 8px rgba(4,42,63,.08);
  --shadow-md: 0 6px 24px rgba(4,42,63,.10);
  --shadow-lg: 0 12px 48px rgba(4,42,63,.13);
  --shadow-xl: 0 24px 72px rgba(4,42,63,.16);
  --shadow-blue: 0 8px 32px rgba(10,92,132,.22);
  --shadow-gold: 0 6px 28px rgba(232,146,10,.30);
  --r-xs:4px; --r-sm:10px; --r-md:16px; --r-lg:22px;
  --r-xl:30px; --r-2xl:40px; --r-full:9999px;
  --ease: cubic-bezier(.4,0,.2,1);
  --ease-spring: cubic-bezier(.34,1.56,.64,1);
  --t-fast:.18s var(--ease); --t:.30s var(--ease); --t-slow:.55s var(--ease);
  --font:   'Outfit', sans-serif;
  --font-d: 'Lora', serif;
  --nb-h: 86px;
  --tb-h: 38px;
  --ticker-h: 0px;
}

/* ── GDPR MODAL ─────────────────────────────────────────────────── */
.gdpr-overlay {
  position: fixed; inset: 0; background: rgba(0,0,0,.6);
  z-index: 5000; display: flex; align-items: center; justify-content: center;
  opacity: 0; pointer-events: none; transition: opacity .3s;
  padding: 20px;
}
.gdpr-overlay.open { opacity: 1; pointer-events: all; }
.gdpr-modal {
  background: var(--white); border-radius: var(--r-xl);
  padding: 48px; max-width: 620px; width: 100%;
  max-height: 85vh; overflow-y: auto;
  position: relative; box-shadow: var(--shadow-xl);
}
.gdpr-modal h2 {
  font-family: var(--font-d); font-size: 1.6rem;
  color: var(--blue-900); margin-bottom: 24px;
}
.gdpr-modal p {
  font-size: .92rem; color: var(--gray-500);
  line-height: 1.75; margin-bottom: 16px;
}
.gdpr-modal p strong { color: var(--gray-900); }
.gdpr-modal a { color: var(--blue-600); }
.gdpr-close {
  position: absolute; top: 16px; right: 16px;
  background: var(--gray-100); border: none;
  width: 34px; height: 34px; border-radius: 50%;
  font-size: 14px; cursor: pointer; transition: background var(--t-fast);
}
.gdpr-close:hover { background: var(--gray-200); }

@media (max-width: 768px) {
  .gdpr-modal { padding: 28px 20px; }
}

.gdpr-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: rgba(255,255,255,.6) !important;
  font-size: .82rem;
  font-weight: 600;
  padding: 6px 14px;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: var(--r-full);
  transition: all var(--t-fast);
  white-space: nowrap;
}
.gdpr-link:hover {
  color: #fff !important;
  border-color: rgba(255,255,255,.4);
  background: rgba(255,255,255,.08);
}

.by-teodor {
  width: 100%;
  text-align: center;
  margin-top: 12px;

  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.08em;

  background: linear-gradient(90deg, var(--gold-500), var(--gold-400), var(--gold-500));
  background-size: 200% auto;

  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;

  animation: shine 3s linear infinite;
}
@keyframes teodorGlow {
  0%, 100% {
    text-shadow:
      0 0 6px rgba(255,255,255,0.4),
      0 0 12px rgba(96,200,240,0.4);
  }
  50% {
    text-shadow:
      0 0 10px rgba(255,255,255,0.8),
      0 0 20px rgba(96,200,240,0.8);
  }
}

@keyframes shine {
  0% {
    background-position: 0% center;
  }
  100% {
    background-position: 200% center;
  }
}
.by-teodor:hover {
  opacity: 1;
  transform: translateY(-2px);
}

.by-teodor a {
  color: inherit;
  text-decoration: none;
}
html, body {
  scroll-padding-top: 0 !important;
  scroll-behavior: auto;
}

html, body {
  overflow-x: hidden;
}

* {
  max-width: 100%;
}

body {
  overflow-x: hidden;
  position: relative;

}
/* ── RESET ──────────────────────────────────────────────────────── */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; -webkit-tap-highlight-color:transparent; }
html { scroll-behavior:auto; font-size:16px; -webkit-text-size-adjust:100%; touch-action:manipulation; }
body {
  font-family:var(--font); color:var(--gray-900); background:var(--gray-50);
  line-height:1.65; overflow-x:hidden; -webkit-font-smoothing:antialiased;
  padding-bottom: 0;
}
img { max-width:100%; display:block; }
a { text-decoration:none; color:inherit; }
ul { list-style:none; }
button { font-family:var(--font); cursor:pointer; }
input,textarea,select { font-family:var(--font); }
.footer {
  padding-bottom: env(safe-area-inset-bottom);
}
/* ── UTILITY ────────────────────────────────────────────────────── */
.container { max-width:1240px; margin:0 auto; padding:0 28px; }
.section { padding:108px 0; }

.chip {
  display:inline-flex; align-items:center; gap:8px;
  font-size:.72rem; font-weight:700; letter-spacing:3.5px;
  text-transform:uppercase; color:var(--blue-600); margin-bottom:16px;
}
.chip::before {
  content:''; display:inline-block; width:22px; height:2.5px;
  background:var(--gold-400); border-radius:2px;
}
.section-title {
  font-family:var(--font-d);
  font-size:clamp(1.9rem,4vw,2.9rem);
  font-weight:700; color:var(--gray-900); line-height:1.14; margin-bottom:18px;
}
.section-sub { font-size:1.05rem; color:var(--gray-500); max-width:600px; line-height:1.78; }

/* ── KEYFRAMES ──────────────────────────────────────────────────── */
@keyframes fadeDown  { from{opacity:0;transform:translateY(-24px)} to{opacity:1;transform:translateY(0)} }
@keyframes slideL    { from{opacity:0;transform:translateX(-48px)} to{opacity:1;transform:translateX(0)} }
@keyframes slideR    { from{opacity:0;transform:translateX(48px)}  to{opacity:1;transform:translateX(0)} }
@keyframes fadeUp    { from{opacity:0;transform:translateY(32px)}  to{opacity:1;transform:translateY(0)} }
@keyframes blobMove  { 0%,100%{border-radius:42% 58% 64% 36%/46% 44% 56% 54%} 50%{border-radius:62% 38% 44% 56%/56% 64% 36% 44%} }
@keyframes gradShift { 0%{background-position:0% 50%} 50%{background-position:100% 50%} 100%{background-position:0% 50%} }
@keyframes pulse-ring{ 0%{box-shadow:0 0 0 0 rgba(5,150,105,.45)} 70%{box-shadow:0 0 0 12px rgba(5,150,105,0)} 100%{box-shadow:0 0 0 0 rgba(5,150,105,0)} }
@keyframes spin      { to{transform:rotate(360deg)} }

/* ── REVEAL ANIMATIONS ──────────────────────────────────────────── */
.reveal   { opacity:0; transform:translateY(36px); transition:opacity .75s var(--ease),transform .75s var(--ease); }
.reveal.up{ opacity:1; transform:translateY(0); }
.reveal-l { opacity:0; transform:translateX(-44px); transition:opacity .7s var(--ease),transform .7s var(--ease); }
.reveal-l.up{ opacity:1; transform:translateX(0); }
.reveal-r { opacity:0; transform:translateX(44px);  transition:opacity .7s var(--ease),transform .7s var(--ease); }
.reveal-r.up{ opacity:1; transform:translateX(0); }
.d1{transition-delay:.08s} .d2{transition-delay:.16s} .d3{transition-delay:.24s} .d4{transition-delay:.32s}

/* ── BUTTONS ────────────────────────────────────────────────────── */
.btn {
  display:inline-flex; align-items:center; gap:10px; padding:15px 30px;
  border-radius:var(--r-full); font-weight:700; font-size:.96rem;
  transition:all var(--t); border:none; cursor:pointer; white-space:nowrap;
}
.btn svg { width:19px; height:19px; flex-shrink:0; }
.btn-gold { background:var(--gold-400); color:#fff; box-shadow:var(--shadow-gold); }
.btn-gold:hover { background:var(--gold-500); transform:translateY(-2px); box-shadow:0 10px 36px rgba(232,146,10,.42); }
.btn-outline-dark { background:transparent; color:var(--gray-900); border:2px solid var(--gray-200); }
.btn-outline-dark:hover { border-color:var(--blue-600); color:var(--blue-600); transform:translateY(-2px); }
.btn-white { background:var(--white); color:var(--gray-900); box-shadow:var(--shadow-md); }
.btn-white:hover { transform:translateY(-2px); box-shadow:var(--shadow-lg); }
.btn-ghost { background:rgba(255,255,255,.12); color:#fff; border:2px solid rgba(255,255,255,.3); }
.btn-ghost:hover { background:rgba(255,255,255,.22); border-color:rgba(255,255,255,.6); transform:translateY(-2px); }

/* ── TOPBAR ─────────────────────────────────────────────────────── */
.topbar {
  background:var(--blue-900); color:rgba(255,255,255,.82);
  font-size:.8rem; font-weight:500; height:var(--tb-h);
  display:flex; align-items:center;
  position:fixed; top:0; left:0; right:0; z-index:1100;
  transition:transform .3s var(--ease);
}
.topbar.hidden { transform:translateY(-100%); }
.topbar .container { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.tb-left,.tb-right { display:flex; align-items:center; gap:18px; }
.tb-item { display:flex; align-items:center; gap:7px; transition:color var(--t); white-space:nowrap; }
.tb-item:hover { color:#fff; }
.tb-item svg { width:13px; height:13px; opacity:.7; flex-shrink:0; }
.tb-hours { color:rgba(255,255,255,.45); font-size:.74rem; }

/* ── NAVBAR ─────────────────────────────────────────────────────── */
.navbar {
  position:fixed; top:var(--tb-h); left:0; right:0; z-index:1000;
  background:rgba(255,255,255,.97);
  backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px);
  border-bottom:1px solid rgba(200,213,223,.4);
  transition:top .3s var(--ease), box-shadow var(--t);
  height:var(--nb-h);
}
.navbar.tb-hidden { top:0; }
.navbar.scrolled { box-shadow:var(--shadow-md); }
.navbar-inner {
  max-width:1240px; margin:0 auto; padding:0 28px;
  display:flex; align-items:center; justify-content:space-between; height:100%;
}

/* LOGO */
.logo { display:flex; align-items:center; gap:14px; flex-shrink:0; }
.logo-mark {
  width:52px; height:52px; border-radius:14px; overflow:hidden; flex-shrink:0;
  background:linear-gradient(135deg,var(--blue-800),var(--blue-500));
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 16px rgba(10,92,132,.3);
}
.logo-mark-svg { width:36px; height:36px; }
.logo-name { font-family:var(--font-d); font-size:1.18rem; font-weight:700; color:var(--blue-900); line-height:1.2; }
.logo-tag { font-size:.65rem; color:var(--gray-400); font-weight:600; letter-spacing:1.2px; text-transform:uppercase; margin-top:1px; }

/* NAV LINKS */
.nav-links { display:flex; align-items:center; gap:4px; }
.nav-links a {
  font-size:.88rem; font-weight:600; color:var(--gray-500);
  padding:9px 14px; border-radius:var(--r-sm); transition:all var(--t-fast);
}
.nav-links a:hover, .nav-links a.active { color:var(--blue-600); background:var(--blue-xlt); }
.nav-cta-wrap { margin-left:14px; }
.nav-cta {
  background:var(--gold-400); color:#fff !important; padding:11px 22px; border-radius:var(--r-full);
  font-weight:800; font-size:.86rem; box-shadow:var(--shadow-gold); transition:all var(--t);
  display:inline-flex; align-items:center; gap:8px;
}
.nav-cta svg { width:16px; height:16px; flex-shrink:0; }
.nav-cta:hover { background:var(--gold-500); transform:translateY(-2px); box-shadow:0 8px 28px rgba(232,146,10,.42); }

/* HAMBURGER */
.hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; padding:7px; z-index:1200; }
.hamburger span { width:25px; height:2.5px; background:var(--gray-900); border-radius:2px; transition:var(--t); display:block; }
.hamburger.open span:nth-child(1) { transform:rotate(45deg) translate(5px,5px); }
.hamburger.open span:nth-child(2) { opacity:0; transform:scaleX(0); }
.hamburger.open span:nth-child(3) { transform:rotate(-45deg) translate(5px,-5px); }

.mob-overlay {
  position:fixed; inset:0; background:rgba(0,0,0,.52);
  z-index:999; opacity:0; pointer-events:none;
  transition:opacity .3s; backdrop-filter:blur(4px);
}
.mob-overlay.open { opacity:1; pointer-events:all; }

/* ── HERO ───────────────────────────────────────────────────────── */
.hero {
  min-height:100vh; display:flex; align-items:center;
  position:relative; overflow:hidden;
  padding-top:calc(var(--tb-h) + var(--nb-h));
  background:
    radial-gradient(ellipse 80% 70% at 85% 25%, rgba(10,92,132,.09) 0%,transparent 65%),
    radial-gradient(ellipse 55% 55% at 15% 75%, rgba(232,146,10,.07) 0%,transparent 60%),
    linear-gradient(168deg,#E8F4FA 0%,#F4F8FB 45%,#FDF7EC 100%);
}
.hero-grid-bg {
  position:absolute; inset:0; pointer-events:none;
  background-image: linear-gradient(rgba(10,92,132,.04) 1px,transparent 1px), linear-gradient(90deg,rgba(10,92,132,.04) 1px,transparent 1px);
  background-size:54px 54px;
}
.hero-blob { position:absolute; top:-10%; right:-8%; width:520px; height:520px; border-radius:62% 38% 44% 56%/56% 64% 36% 44%; background:radial-gradient(circle,rgba(10,92,132,.06),transparent 70%); animation:blobMove 12s ease-in-out infinite; pointer-events:none; }
.hero-blob2{ position:absolute; bottom:-15%; left:-5%; width:380px; height:380px; border-radius:42% 58% 64% 36%/46% 44% 56% 54%; background:radial-gradient(circle,rgba(232,146,10,.05),transparent 70%); animation:blobMove 9s ease-in-out infinite reverse; pointer-events:none; }

.hero .container { display:grid; grid-template-columns:1.08fr .92fr; gap:60px; align-items:center; position:relative; z-index:1; padding-top:40px; padding-bottom:60px; }

.hero-badge { display:inline-flex; align-items:center; gap:10px; background:var(--white); border:1.5px solid var(--gray-200); padding:9px 20px; border-radius:var(--r-full); font-size:.8rem; font-weight:700; color:var(--blue-700); margin-bottom:28px; box-shadow:var(--shadow-sm); animation:fadeDown .7s var(--ease) both; }
.pulse-dot { width:9px; height:9px; border-radius:50%; background:var(--green-500); animation:pulse-ring 2s ease infinite; flex-shrink:0; }

.hero h1 { font-family:var(--font-d); font-size:clamp(2.5rem,5.5vw,4rem); font-weight:700; line-height:1.06; margin-bottom:22px; animation:slideL .8s var(--ease) .1s both; }
.hero h1 em { font-style:italic; color:var(--blue-600); }
.hero-desc { font-size:1.08rem; color:var(--gray-500); line-height:1.78; max-width:510px; margin-bottom:38px; animation:slideL .8s var(--ease) .2s both; }
.hero-desc strong { color:var(--gray-900); }
.hero-btns { display:flex; gap:14px; flex-wrap:wrap; animation:slideL .8s var(--ease) .3s both; }
.hero-trust { display:flex; align-items:center; gap:16px; margin-top:30px; animation:fadeUp .8s var(--ease) .45s both; }
.hero-trust-item { display:flex; align-items:center; gap:8px; font-size:.82rem; color:var(--gray-400); font-weight:500; }
.hero-trust-item svg { width:15px; height:15px; color:var(--green-500); flex-shrink:0; }
.hero-trust-sep { width:1px; height:18px; background:var(--gray-200); }

/* HERO PANEL */
.hero-panel { background:var(--white); border-radius:22px; box-shadow:var(--shadow-xl); border:1px solid var(--gray-100); overflow:hidden; animation:slideR .85s var(--ease) .15s both; }
.hp-head { background:linear-gradient(140deg,var(--blue-900),var(--blue-700)); padding:34px 32px 30px; color:#fff; position:relative; overflow:hidden; }
.hp-head::before { content:''; position:absolute; top:-30%; right:-15%; width:200px; height:200px; border-radius:50%; background:rgba(255,255,255,.06); pointer-events:none; }
.hp-head-label { font-size:.68rem; letter-spacing:4px; text-transform:uppercase; font-weight:800; opacity:.65; margin-bottom:6px; }
.hp-head-title { font-family:var(--font-d); font-size:1.55rem; font-weight:700; line-height:1.25; }
.hp-stats { display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--gray-100); }
.hp-stat { background:var(--white); padding:28px 20px; text-align:center; transition:background var(--t-fast); }
.hp-stat:hover { background:var(--blue-xlt); }
.hp-stat-n { font-family:var(--font-d); font-size:2.35rem; font-weight:800; color:var(--blue-600); line-height:1; }
.hp-stat-l { font-size:.78rem; color:var(--gray-400); margin-top:8px; font-weight:500; letter-spacing:.5px; }
.hp-foot { background:var(--gold-100); padding:14px 24px; display:flex; align-items:center; gap:12px; border-top:1px solid rgba(232,146,10,.15); }
.hp-foot svg { width:17px; height:17px; color:var(--gold-400); flex-shrink:0; }
.hp-foot span { font-size:.85rem; font-weight:700; color:var(--gold-600); }

/* ── O NÁS ──────────────────────────────────────────────────────── */
.about-section { background:var(--white); }
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:start; margin-top:60px; }
.about-body p { color:var(--gray-500); line-height:1.85; margin-bottom:18px; font-size:.97rem; }
.about-body p strong { color:var(--gray-900); font-weight:700; }
.legal-block { background:var(--blue-xlt); border-left:3px solid var(--blue-600); padding:16px 20px; border-radius:0 var(--r-sm) var(--r-sm) 0; font-size:.83rem; color:var(--gray-500); line-height:1.72; margin-bottom:26px; }
.feats { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:26px; }
.feat { display:flex; gap:12px; align-items:flex-start; padding:14px 16px; border:1px solid var(--gray-100); border-radius:12px; background:var(--gray-50); transition:transform .32s var(--ease), border-color .32s var(--ease), background .32s var(--ease); }
.feat:hover { transform:translateY(-3px); border-color:var(--gray-200); background:var(--white); }
.feat-icon { width:40px; height:40px; border-radius:10px; background:var(--blue-xlt); display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:all var(--t); }
.feat:hover .feat-icon { background:var(--blue-600); }
.feat-icon svg { width:17px; height:17px; color:var(--blue-600); transition:color var(--t); }
.feat:hover .feat-icon svg { color:#fff; }
.feat h4 { font-size:.88rem; font-weight:700; margin-bottom:3px; }
.feat p { font-size:.8rem; color:var(--gray-400); line-height:1.5; }
.about-card { background:var(--gray-50); border-radius:var(--r-xl); padding:34px; border:1px solid var(--gray-100); box-shadow:var(--shadow-xs); position:sticky; top:calc(var(--tb-h) + var(--nb-h) + 24px); }
.ac-head { display:flex; align-items:center; gap:16px; margin-bottom:22px; }
.ac-icon { width:56px; height:56px; border-radius:15px; background:linear-gradient(135deg,var(--blue-900),var(--blue-600)); display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-blue); }
.ac-icon svg { width:26px; height:26px; color:#fff; }
.ac-title { font-family:var(--font-d); font-size:1.08rem; font-weight:700; }
.ac-sub { font-size:.79rem; color:var(--gray-400); margin-top:2px; }
.act-list li { display:flex; align-items:flex-start; gap:10px; padding:10px 0; border-bottom:1px solid var(--gray-100); font-size:.9rem; color:var(--gray-500); }
.act-list li:last-child { border-bottom:none; }
.act-list li svg { width:15px; height:15px; color:var(--green-500); flex-shrink:0; margin-top:2px; }

/* ── TECHNIKA ────────────────────────────────────────────────────── */
.tech-section { background:var(--gray-50); }
.tech-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(270px,1fr)); gap:24px; margin-top:60px; }
.tech-card { background:var(--white); border-radius:var(--r-lg); padding:34px 30px; border:1px solid var(--gray-100); box-shadow:var(--shadow-xs); transition:all var(--t); position:relative; overflow:hidden; }
.tech-card::before { content:''; position:absolute; bottom:0; left:0; right:0; height:3px; background:linear-gradient(90deg,var(--blue-600),var(--gold-400)); transform:scaleX(0); transform-origin:left; transition:transform var(--t); }
.tech-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-lg); }
.tech-card:hover::before { transform:scaleX(1); }
.tc-icon { width:52px; height:52px; border-radius:13px; background:var(--blue-xlt); display:flex; align-items:center; justify-content:center; margin-bottom:20px; transition:all var(--t); }
.tech-card:hover .tc-icon { background:var(--blue-600); }
.tc-icon svg { width:25px; height:25px; color:var(--blue-600); transition:color var(--t); }
.tech-card:hover .tc-icon svg { color:#fff; }
.tech-card h3 { font-size:1.05rem; font-weight:700; margin-bottom:4px; }
.tc-sub { font-size:.79rem; color:var(--gray-400); margin-bottom:16px; }
.tech-card li { padding:6px 0; font-size:.86rem; color:var(--gray-500); display:flex; align-items:flex-start; gap:9px; border-bottom:1px dashed var(--gray-100); }
.tech-card li:last-child { border-bottom:none; }
.tech-card li::before { content:''; width:5px; height:5px; border-radius:50%; background:var(--gold-400); flex-shrink:0; margin-top:6px; }

/* ── CENÍK ───────────────────────────────────────────────────────── */
.pricing-section { background:var(--white); }
.pricing-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:28px; margin-top:60px; }
.pricing-card { background:var(--gray-50); border-radius:var(--r-xl); padding:44px 36px; border:2px solid var(--gray-100); transition:all var(--t); position:relative; text-align:center; }
.pricing-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-lg); }
.pricing-card.featured { border-color:var(--blue-600); background:linear-gradient(165deg,var(--blue-xlt) 0%,var(--white) 100%); box-shadow:var(--shadow-blue); }
.price-badge { position:absolute; top:-14px; left:50%; transform:translateX(-50%); background:var(--blue-600); color:#fff; font-size:.7rem; font-weight:800; letter-spacing:1px; text-transform:uppercase; padding:5px 18px; border-radius:var(--r-full); white-space:nowrap; }
.pricing-card h3 { font-size:1.1rem; font-weight:700; margin-bottom:6px; }
.price-desc { font-size:.83rem; color:var(--gray-400); margin-bottom:22px; line-height:1.55; }
.price-big { font-family:var(--font-d); font-size:2.8rem; font-weight:700; color:var(--blue-600); line-height:1; }
.price-unit { font-size:.96rem; color:var(--gray-500); font-family:var(--font); font-weight:500; }
.pricing-feats { text-align:left; margin-top:28px; }
.pricing-feats li { display:flex; align-items:flex-start; gap:10px; padding:9px 0; font-size:.9rem; color:var(--gray-500); border-bottom:1px solid var(--gray-100); }
.pricing-feats li:last-child { border-bottom:none; }
.pricing-feats li svg { width:16px; height:16px; color:var(--blue-600); flex-shrink:0; margin-top:2px; }
.pricing-note { text-align:center; margin-top:36px; font-size:.87rem; color:var(--gray-400); background:var(--gray-50); border-radius:var(--r-md); padding:18px 26px; border:1px solid var(--gray-100); max-width:640px; margin-left:auto; margin-right:auto; }

/* ── PROČ MY ─────────────────────────────────────────────────────── */
.why-section { background:linear-gradient(148deg,var(--blue-900) 0%,var(--blue-700) 55%,#0E7EB0 100%); position:relative; overflow:hidden; }
.why-section::before { content:''; position:absolute; top:-20%; right:-5%; width:600px; height:600px; border-radius:50%; background:radial-gradient(circle,rgba(255,255,255,.04),transparent 65%); pointer-events:none; }
.why-section .chip { color:rgba(255,255,255,.55); }
.why-section .chip::before { background:rgba(255,255,255,.35); }
.why-section .section-title { color:#fff; }
.why-section .section-sub { color:rgba(255,255,255,.65); }
.why-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:60px; }
.why-card { background:rgba(255,255,255,.08); backdrop-filter:blur(16px); border:1px solid rgba(255,255,255,.13); border-radius:var(--r-xl); padding:34px 28px; transition:all var(--t); }
.why-card:hover { background:rgba(255,255,255,.13); transform:translateY(-5px); }
.why-icon { width:52px; height:52px; border-radius:13px; background:rgba(255,255,255,.15); display:flex; align-items:center; justify-content:center; margin-bottom:18px; transition:background var(--t); }
.why-card:hover .why-icon { background:rgba(255,255,255,.24); }
.why-icon svg { width:25px; height:25px; color:#fff; }
.why-card h3 { font-size:1.04rem; font-weight:700; color:#fff; margin-bottom:9px; }
.why-card p { font-size:.89rem; color:rgba(255,255,255,.7); line-height:1.75; }

/* ── GALERIE ──────────────────────────────────────────────────────── */
.gallery-section { background:var(--gray-50); }
.gallery-grid { display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:220px; gap:16px; margin-top:60px; }
.gallery-grid .gi:nth-child(1) { grid-column:span 2; grid-row:span 2; }
.gallery-grid .gi:nth-child(4) { grid-column:span 2; }
.gi { border-radius:var(--r-md); overflow:hidden; position:relative; background:var(--gray-200); cursor:pointer; transition:box-shadow var(--t); }
.gi img { width:100%; height:100%; object-fit:cover; transition:transform .55s ease; }
.gi:hover img { transform:scale(1.07); }
.gi:hover { box-shadow:var(--shadow-lg); }
.gi-overlay { position:absolute; inset:0; background:linear-gradient(180deg,transparent 35%,rgba(4,42,63,.72) 100%); opacity:0; transition:opacity var(--t); display:flex; align-items:flex-end; padding:18px; }
.gi:hover .gi-overlay { opacity:1; }
.gi-label { color:#fff; font-size:.85rem; font-weight:700; transform:translateY(8px); transition:transform var(--t); }
.gi:hover .gi-label { transform:translateY(0); }
.gi-zoom { position:absolute; top:12px; right:12px; width:36px; height:36px; background:rgba(255,255,255,.85); border-radius:50%; border:none; display:flex; align-items:center; justify-content:center; opacity:0; transform:scale(.8); transition:all var(--t); }
.gi:hover .gi-zoom { opacity:1; transform:scale(1); }
.gi-zoom svg { width:17px; height:17px; color:var(--gray-900); }

/* LIGHTBOX */
.lightbox { position:fixed; inset:0; background:rgba(0,0,0,.94); z-index:3000; display:flex; align-items:center; justify-content:center; opacity:0; pointer-events:none; transition:opacity .3s; }
.lightbox.active { opacity:1; pointer-events:all; }
.lightbox img { max-width:90vw; max-height:88vh; border-radius:var(--r-md); box-shadow:var(--shadow-xl); object-fit:contain; }
.lb-btn { position:absolute; width:50px; height:50px; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.18); border-radius:50%; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background var(--t-fast); }
.lb-btn:hover { background:rgba(255,255,255,.26); }
.lb-btn svg { width:22px; height:22px; color:#fff; }
#lbClose { top:24px; right:24px; }
#lbPrev  { left:24px; top:50%; transform:translateY(-50%); }
#lbNext  { right:24px; top:50%; transform:translateY(-50%); }
.lb-counter { position:absolute; bottom:24px; left:50%; transform:translateX(-50%); color:rgba(255,255,255,.65); font-size:.84rem; font-weight:600; background:rgba(0,0,0,.45); padding:5px 16px; border-radius:var(--r-full); }

/* ── REFERENCE ───────────────────────────────────────────────────── */
.reviews-section { background:var(--white); }
.reviews-wrap {
  position: relative;
  overflow: hidden;
  margin-top: 40px;
}

.reviews-track {
  display: flex;
}

.review-card {
  min-width: 100%;
  flex: 0 0 100%;
  padding: 0 12px; /* 👈 menší okraje na mobilu */
}

.review-inner {
  background: var(--white);
  border: 1px solid var(--gray-100);
  border-radius: var(--r-xl);
  padding: 36px 44px 24px;
  box-shadow: var(--shadow-sm);
  margin: 4px 4px 48px;
}

.review-inner::before {
  display: none;
}
.review-stars { color:var(--gold-400); font-size:1.1rem; margin-bottom:16px; letter-spacing:4px; }
.review-text { font-size:1.04rem; line-height:1.78; color:var(--gray-900); margin-bottom:20px; font-style:italic; }
.review-author { font-weight:800; font-size:.9rem; color:var(--blue-700); }
.review-loc { font-size:.79rem; color:var(--gray-400); margin-top:3px; }
.review-dots { display:flex; justify-content:center; gap:10px; margin-top:28px; }
.review-dot { width:10px; height:10px; border-radius:50%; background:var(--gray-200); border:none; cursor:pointer; transition:all var(--t); }
.review-dot.active { background:var(--blue-600); width:28px; border-radius:5px; }


.fake-chat-text div {
  margin-bottom: 2px;
}

.fake-chat-text div:last-child {
  margin-bottom: 0;
}

.fake-chat {
  position: fixed;
  bottom: 90px;
  right: 20px;
  width: 260px;
  background: #fff;
  border-radius: 18px;
  padding: 14px 16px;
  box-shadow: 0 10px 40px rgba(0,0,0,0.15);
  font-family: 'Outfit', sans-serif;
  z-index: 9999;

  opacity: 0;
  transform: translateY(20px);
  pointer-events: none;
  transition: all 0.4s ease;
}

@media (max-width: 768px) {
  .fake-chat {
    right: auto;
    left: 16px;
    bottom: 16px;
    width: calc(100vw - 32px);
    max-width: 280px;
  }
}
  .map-container {
  overflow: hidden;
}

/* ── NO SELECT: ticker + about card dark ───────────────────────── */
.ticker-band,
.ticker-band-track,
.ticker-item,
.ticker-dot,
.about-card-dark,
.about-card-dark *,
.act-list,
.act-list li,
.act-list li * {
  user-select: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
}

.hero-panel,
.hero-panel *,
.hp-head,
.hp-stats,
.hp-stat,
.hp-stat-n,
.hp-stat-l,
.hp-head-label,
.hp-head-title {
  user-select: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
}

/* ── NO SELECT: ticker + about card dark + process + viz ────────── */
.ticker-band,
.ticker-band-track,
.ticker-item,
.ticker-dot,
.about-card-dark,
.about-card-dark *,
.act-list,
.act-list li,
.act-list li *,
.process-steps,
.process-step,
.ps-card,
.ps-card *,
.ps-num,
.process-viz,
.process-viz *,
.viz-layout,
.viz-legend,
.vl-item,
.vd-depth-labels,
.vd-column,
.vd-layer,
.vd-lbl,
.viz-stats,
.vs-item,
.vs-item * {
  user-select: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
}

.fake-chat.show {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
.fake-chat:hover {
  transform: translateY(-4px) scale(1.02);
  box-shadow: 0 16px 50px rgba(0,0,0,0.2);
}

.fake-chat-close {
  position: absolute;
  top: -10px;
  right: -10px;
  background: #94a3b8;
  color: white;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 14px;
}

.fake-chat-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
}

.fake-chat-avatar {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #0A5C84;
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
}

.fake-chat-name {
  font-weight: 600;
  font-size: 0.95rem;
}

.fake-chat-status {
  font-size: 0.8rem;
  color: #16a34a;
}


.fake-chat::after {
  content: '';
  position: absolute;
  inset: -4px;
  border-radius: 20px;
  border: 2px solid rgba(10,92,132,0.15);
  animation: pulse-ring 2.2s infinite;
  pointer-events: none;
}

.fake-chat-close {
  position: absolute;
  top: -10px;
  right: -10px;
  background: #94a3b8;
  color: white;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 14px;
}

.fake-chat-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
}

.fake-chat-avatar {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #0A5C84;
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
}

.fake-chat-name {
  font-weight: 600;
  font-size: 0.95rem;
}

.fake-chat-status {
  font-size: 0.8rem;
  color: #16a34a;
  position: relative;
  padding-left: 10px;
}

.fake-chat-status::before {
  content: '';
  position: absolute;
  left: 0;
  top: 5px;
  width: 6px;
  height: 6px;
  background: #16a34a;
  border-radius: 50%;
  animation: pulse-ring 1.5s infinite;
}

.fake-chat-text {
  font-size: 0.9rem;
  color: #334155;
  background: #f1f5f9;
  padding: 10px 12px;
  border-radius: 12px;
  margin-top: 6px;
  position: relative;

  /* 🔥 DŮLEŽITÉ PRO TEXT */
  line-height: 1.5;
  text-align: left;
}

/* ocásek bubliny */
.fake-chat-text::after {
  content: '';
  position: absolute;
  top: 10px;
  left: -6px;
  width: 10px;
  height: 10px;
  background: #f1f5f9;
  transform: rotate(45deg);
}

/* ── KONTAKTY ────────────────────────────────────────────────────── */
.contact-section { 
  background:var(--gray-50);
  padding-top: 50px !important; /* mezera NAD kontakty = mezera pod FAQ */
}
.contact-grid { display:grid; grid-template-columns:1fr 1.5fr; gap:48px; margin-top:60px; align-items:start; }
.contact-cards { display:flex; flex-direction:column; gap:14px; }
.cc { background:var(--white); border-radius:var(--r-md); padding:22px; display:flex; align-items:center; gap:16px; border:1px solid var(--gray-100); box-shadow:var(--shadow-xs); transition:all var(--t); color:inherit; }
.cc:hover { transform:translateX(4px); box-shadow:var(--shadow-md); border-color:var(--gray-200); }
.cc-icon { width:46px; height:46px; border-radius:12px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.cc-icon svg { width:20px; height:20px; }
.cc-icon.phone { background:#ECFDF5; } .cc-icon.phone svg { color:#059669; }
.cc-icon.email { background:#EFF6FF; } .cc-icon.email svg { color:#2563EB; }
.cc-icon.addr  { background:#FFF7ED; } .cc-icon.addr  svg { color:#EA580C; }
.cc-icon.ico   { background:#F5F3FF; } .cc-icon.ico   svg { color:#7C3AED; }
.cc h4 { font-size:.74rem; color:var(--gray-400); font-weight:700; text-transform:uppercase; letter-spacing:.6px; margin-bottom:3px; }
.cc p  { font-weight:600; font-size:.96rem; }
.cc a  { color:var(--blue-600); }
.map-container {
  border-radius:var(--r-xl);
  overflow:hidden;
  box-shadow:var(--shadow-lg);
  border:1px solid var(--gray-100);
  height:440px;
  position:relative;
  background:var(--gray-100);
}


.map-wrapper {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.map-title {
  font-family: 'Outfit', sans-serif;
  font-size: 1rem;
  font-weight: 600;
  color: #042A3F;
  padding-left: 4px;
}

.map-container {
  position: relative;
  border-radius: 20px;
  overflow: hidden;
}

/* 🔥 MOBILE FIX */
@media (max-width:768px){
  .map-container {
    height:260px;
  }

  .map-container iframe {
    transform: scale(1.15);
    transform-origin: center;
  }
}
.map-container iframe { width:100%; height:100%; border:none; display:block; }
.map-label {
  position: absolute;
  bottom: 14px;
  left: 14px;
  right: 14px;

  background: rgba(255,255,255,0.95);
  backdrop-filter: blur(10px);

  border-radius: 14px;
  padding: 12px 14px;

  box-shadow: 0 10px 30px rgba(0,0,0,0.12);
  border: 1px solid rgba(0,0,0,0.06);

  font-family: 'Outfit', sans-serif;
  display: flex;
  flex-direction: column;
  gap: 4px;

  pointer-events: none;
}

.map-label strong {
  font-size: 0.9rem;
  font-weight: 800;
  color: #0A5C84;
}

.map-addr {
  font-size: 0.8rem;
  color: #6B7280;
}

.map-phone {
  font-size: 0.8rem;
  color: #0A5C84;
  font-weight: 600;
}

/* název */
.map-label strong {
  font-size: 0.9rem;
  font-weight: 800;
  color: var(--blue-700);
}

/* adresa */
.map-label .map-addr {
  font-size: 0.8rem;
  color: var(--gray-500);
}

/* telefon */
.map-label .map-phone {
  font-size: 0.8rem;
  color: var(--blue-600);
  font-weight: 600;
} 




.map-label svg { width:17px; height:17px; color:var(--blue-600); flex-shrink:0; }

/* ── CTA BAND ────────────────────────────────────────────────────── */
.cta-band { background-size:200% 200%; background-image:linear-gradient(135deg,var(--gold-500) 0%,var(--gold-400) 40%,#F0A020 70%,var(--gold-500) 100%); animation:gradShift 8s ease infinite; padding:76px 0; text-align:center; color:#fff; position:relative; overflow:hidden; }
.cta-band::before { content:''; position:absolute; inset:0; background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23ffffff' fill-opacity='0.04'%3E%3Ccircle cx='30' cy='30' r='2'/%3E%3C/g%3E%3C/svg%3E"); }
.cta-band > * { position:relative; z-index:1; }
.cta-band h2 { font-family:var(--font-d); font-size:clamp(1.75rem,3.8vw,2.6rem); font-weight:700; margin-bottom:14px; }
.cta-band p { font-size:1.04rem; opacity:.9; margin-bottom:36px; max-width:560px; margin-left:auto; margin-right:auto; }
.cta-btns { display:flex; justify-content:center; gap:16px; flex-wrap:wrap; }

/* ── FORMULÁŘ ────────────────────────────────────────────────────── */
.form-section { background:var(--white); padding-top: 48px !important; padding-bottom: 80px !important; }
.form-wrapper { max-width:840px; margin:24px auto 0; background:var(--gray-50); border-radius:var(--r-2xl); padding:56px; box-shadow:var(--shadow-md); border:1px solid var(--gray-100); }.form-head p { font-size:.9rem; color:var(--gray-400); }
.form-step-wrap { margin-bottom:26px; }
.form-step-label { font-size:.88rem; font-weight:800; color:var(--gray-700); text-transform:uppercase; letter-spacing:.8px; margin-bottom:14px; display:block; }
.form-step-options { display:flex; gap:10px; flex-wrap:wrap; }
.fso { position:relative; }
.fso input { position:absolute; opacity:0; pointer-events:none; }
.fso label { display:inline-flex; align-items:center; gap:10px; padding:13px 22px; border:2px solid var(--gray-200); border-radius:var(--r-md); cursor:pointer; font-size:.94rem; font-weight:600; color:var(--gray-600); background:var(--white); transition:all var(--t-fast); white-space:nowrap; }
.fso label svg { width:17px; height:17px; flex-shrink:0; }
.fso label:hover { border-color:var(--blue-500); color:var(--blue-600); background:var(--blue-xlt); }
.fso input:checked + label { border-color:var(--blue-600); background:var(--blue-xlt); color:var(--blue-600); box-shadow:0 0 0 3px rgba(12,110,156,.12); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.form-group { margin-bottom:20px; }

@media (max-width: 768px) {
  .form-row {
    display: flex;
    flex-direction: column;
    gap: 0 !important;
  }

  .form-row .form-group,
  .form-group {
    margin-bottom: 16px !important;
  }

  .form-optional-toggle {
    margin-top: 0 !important;
    margin-bottom: 16px !important;
  }
}

@media (max-width: 768px) {
  .form-wrapper { 
    max-width: 100% !important; 
    padding: 28px 18px !important; 
  }
  
  .form-group input,
  .form-group textarea,
  .form-group select { 
    padding: 13px 17px !important; 
    font-size: 16px !important; 
  }
  
  .form-group label { 
    font-size: 14px !important; 
    margin-bottom: 8px !important; 
  }
  
  .fso label { 
    padding: 12px 16px !important; 
    font-size: 14px !important; 
  }
  
  .form-step-label { 
    font-size: 12px !important; 
    margin-bottom: 12px !important;
  }

  .form-submit {
    padding: 15px !important;
    font-size: .96rem !important;
  }
}


.form-group label { display:block; font-size:.88rem; font-weight:700; color:var(--gray-800); margin-bottom:9px; }
.form-group label .req { color:var(--blue-600); margin-left:2px; }
.form-group input,.form-group textarea,.form-group select { width:100%; padding:14px 18px; border:2px solid var(--gray-200); border-radius:var(--r-sm); font-family:var(--font); font-size:.97rem; color:var(--gray-900); background:var(--white); transition:all var(--t-fast); outline:none; appearance:none; -webkit-appearance:none; }.form-group input.err,.form-group textarea.err { border-color:#EF4444; box-shadow:0 0 0 3px rgba(239,68,68,.1); }
.form-group textarea { resize:vertical; min-height:110px; }
.err-msg { font-size:.75rem; color:#EF4444; margin-top:5px; display:none; }
.err ~ .err-msg { display:block; }
.form-submit { width:100%; padding:17px; background:var(--gold-400); color:#fff; border:none; border-radius:var(--r-full); font-family:var(--font); font-size:1.02rem; font-weight:800; cursor:pointer; transition:all var(--t); box-shadow:var(--shadow-gold); display:flex; align-items:center; justify-content:center; gap:10px; margin-top:8px; }
.form-submit:hover { background:var(--gold-500); transform:translateY(-2px); box-shadow:0 10px 36px rgba(232,146,10,.42); }
.form-submit:disabled { opacity:.7; cursor:not-allowed; transform:none; }
.form-submit svg { width:19px; height:19px; flex-shrink:0; }
.spinner { width:20px; height:20px; border:3px solid rgba(255,255,255,.3); border-top-color:#fff; border-radius:50%; animation:spin .8s linear infinite; display:none; }
.form-submit.loading .btn-text,.form-submit.loading svg { display:none; }
.form-submit.loading .spinner { display:block; }
.form-msg { padding:15px 20px; border-radius:var(--r-md); margin-top:18px; font-weight:600; font-size:.9rem; display:none; align-items:center; gap:10px; }
.form-msg.ok   { background:#ECFDF5; color:#065F46; border:1.5px solid #A7F3D0; display:flex; }
.form-msg.fail { background:#FEF2F2; color:#991B1B; border:1.5px solid #FECACA; display:flex; }
.form-msg svg { width:19px; height:19px; flex-shrink:0; }
.form-assurance { display:flex; align-items:center; justify-content:center; gap:18px; margin-top:22px; flex-wrap:wrap; }
.form-assur-item { display:flex; align-items:center; gap:7px; font-size:.79rem; color:var(--gray-400); font-weight:500; }
.form-assur-item svg { width:14px; height:14px; color:var(--green-500); }

/* ── FOOTER ──────────────────────────────────────────────────────── */
.footer { background:var(--blue-900); color:rgba(255,255,255,.72); padding:76px 0 0; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1.5fr; gap:48px; padding-bottom:56px; border-bottom:1px solid rgba(255,255,255,.09); }
.fb-logo { display:flex; align-items:center; gap:13px; margin-bottom:20px; }
.fb-logo-icon { width:44px; height:44px; border-radius:11px; background:rgba(255,255,255,.1); display:flex; align-items:center; justify-content:center; }
.fb-logo-icon svg { width:30px; height:30px; }
.fb-name { font-family:var(--font-d); font-size:1.08rem; font-weight:700; color:#fff; }
.fb-tag  { font-size:.66rem; color:rgba(255,255,255,.4); text-transform:uppercase; letter-spacing:1.2px; margin-top:2px; }
.footer-brand p { font-size:.86rem; line-height:1.78; max-width:300px; }
.footer-brand-badges { display:flex; gap:10px; margin-top:18px; flex-wrap:wrap; }
.fbadge { background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.12); border-radius:var(--r-sm); padding:6px 12px; font-size:.7rem; font-weight:700; color:rgba(255,255,255,.7); letter-spacing:.4px; text-transform:uppercase; }
.footer h4 { color:#fff; font-size:.8rem; font-weight:800; letter-spacing:.6px; text-transform:uppercase; margin-bottom:16px; }
.footer ul li { margin-bottom:9px; }
.footer ul li a { font-size:.86rem; color:rgba(255,255,255,.6); transition:color var(--t-fast); display:flex; align-items:center; gap:7px; }
.footer ul li a::before { content:''; width:4px; height:4px; border-radius:50%; background:var(--gold-400); opacity:.6; flex-shrink:0; }
.footer ul li a:hover { color:#fff; }
.fi { display:flex; align-items:flex-start; gap:10px; margin-bottom:12px; }
.fi svg { width:13px; height:13px; color:var(--gold-400); flex-shrink:0; margin-top:3px; }
.fi span,.fi a { font-size:.86rem; color:rgba(255,255,255,.62); line-height:1.55; transition:color var(--t-fast); }
.fi a:hover { color:#fff; }
.footer-bottom { padding:20px 0; display:flex; align-items:center; justify-content:space-between; gap:16px; font-size:.79rem; color:rgba(255,255,255,.35); }
.footer-bottom a { color:rgba(255,255,255,.35); transition:color var(--t-fast); }
.footer-bottom a:hover { color:rgba(255,255,255,.7); }

/* ── FAB — nový design ───────────────────────────────────────────── */
.fab { position:fixed; bottom:22px; right:20px; z-index:900; display:flex; flex-direction:column; align-items:flex-end; gap:10px; }

/* Rozbalovací menu (zavolat + email) */
.fab-menu { display:flex; flex-direction:column; align-items:flex-end; gap:10px; opacity:0; pointer-events:none; transform:translateY(14px) scale(.96); transition:all .32s var(--ease-spring); }
.fab.open .fab-menu { opacity:1; pointer-events:all; transform:translateY(0) scale(1); }
.fab-row { display:flex; align-items:center; gap:10px; }
.fab-lbl { background:var(--white); padding:7px 14px; border-radius:var(--r-sm); font-size:.8rem; font-weight:700; box-shadow:var(--shadow-md); color:var(--gray-900); white-space:nowrap; pointer-events:none; }
.fab-btn { width:46px; height:46px; border-radius:50%; border:none; display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-md); transition:all var(--t); color:#fff; flex-shrink:0; }
.fab-btn:hover { transform:scale(1.1); }
.fab-btn.fab-call { background:#059669; }
.fab-btn.fab-mail { background:#2563EB; }
.fab-btn svg { width:20px; height:20px; }


/* Spodní řádek */
.fab-bottom { display:flex; align-items:center; gap:8px; }
.fab-toggle-small { width:40px; height:40px; border-radius:50%; border:none; background:rgba(255,255,255,.9); display:flex; align-items:center; justify-content:center; cursor:pointer; transition:all var(--t); flex-shrink:0; box-shadow:var(--shadow-sm); }
.fab-toggle-small:hover { background:var(--white); box-shadow:var(--shadow-md); }
.fab-toggle-small svg {
  width:18px;
  height:18px;
  color:var(--blue-700);
  transition: transform .3s ease;
  transform: rotate(180deg); /* 🔼 NAHORU */
}

/* když má tlačítko class "open" */
.fab-toggle-small.open svg {
  transform: rotate(0deg); /* 🔽 DOLŮ */
}

/* Hlavní FAB — Nezávazná poptávka */
.fab-poptavka { display:inline-flex; align-items:center; gap:10px; background:var(--gold-400); color:#fff; padding:13px 22px; border-radius:var(--r-full); font-weight:800; font-size:.92rem; box-shadow:var(--shadow-gold); transition:all var(--t); white-space:nowrap; text-decoration:none; }
.fab-poptavka:hover { background:var(--gold-500); transform:translateY(-2px); box-shadow:0 10px 36px rgba(232,146,10,.45); }
.fab-poptavka svg { width:18px; height:18px; flex-shrink:0; }

/* ── RESPONSIVE ──────────────────────────────────────────────────── */
@media(max-width:1100px) {
  .footer-grid { grid-template-columns:1fr 1fr; gap:36px; }
  .why-grid { grid-template-columns:1fr 1fr; }
}

@media(max-width:900px) {
  :root { --nb-h:70px; --tb-h:34px; }
  .hamburger { display:flex; }
  .nav-links {
    position:fixed; top:0; right:-100%; width:82%; max-width:360px;
    height:100vh; background:var(--white); flex-direction:column;
    justify-content:flex-start; gap:4px; padding:74px 22px 36px;
    transition:right .4s cubic-bezier(.4,0,.2,1);
    box-shadow:var(--shadow-xl); z-index:1000; display:flex;
    overflow-y:auto; -webkit-overflow-scrolling:touch;
  }
  .nav-links.open { right:0; }
  .nav-links a {
  font-size:1.04rem; padding:13px 16px; border-radius:var(--r-md); border-bottom:1px solid var(--gray-100); text-align:center;
}
  .nav-cta-wrap { margin-left:0; margin-top:14px; width:100%; }
  .nav-cta { display:flex; justify-content:center; width:100%; padding:13px 22px !important; text-align:center; }
  .tb-right { display:none; }
  .gallery-grid { grid-template-columns:repeat(2,1fr); grid-auto-rows:180px; }
  .gallery-grid .gi:nth-child(1) { grid-column:span 2; grid-row:span 1; }
  .gallery-grid .gi:nth-child(4) { grid-column:span 1; }
}

@media(max-width:768px) {
  .section { padding:68px 0; }
  .container { padding:0 18px; }

  /* Hero */
  .hero .container { grid-template-columns:1fr; gap:32px; padding-top:16px; text-align:center; }
  .hero h1 { font-size:2.2rem; }
  .hero-desc { margin-left:auto; margin-right:auto; font-size:1rem; }
  .hero-btns { justify-content:center; flex-direction:column; align-items:center; }
  .hero-btns .btn { width:100%; max-width:300px; justify-content:center; }
  .hero-badge { margin:0 auto 28px; }
  .hero-trust { justify-content:center; flex-wrap:wrap; gap:10px; }
  .hero-trust-sep { display:none; }
  .hp-stats { grid-template-columns:1fr 1fr; }

  /* Sections */
  .about-grid { grid-template-columns:1fr; gap:28px; }
  .about-card { position:static; }
  .feats { grid-template-columns:1fr; }
  .tech-grid { grid-template-columns:1fr; }
  .why-grid { grid-template-columns:1fr; }
  .pricing-grid { grid-template-columns:1fr; }
  .pricing-card { padding:36px 24px; }

  /* Gallery */
  .gallery-grid { grid-template-columns:repeat(2,1fr); grid-auto-rows:150px; }
  .gallery-grid .gi:nth-child(1) { grid-column:span 2; }
  .gallery-grid .gi:nth-child(4) { grid-column:span 1; }

  /* Reviews */
  .review-inner { padding:28px 20px; }
  .review-inner::before { font-size:5rem; top:-14px; left:12px; }
  .review-text { font-size:.96rem; }

  /* Contact */
  .contact-grid { grid-template-columns:1fr; }
  .map-container { height:280px; }

  /* CTA */
  .cta-btns { flex-direction:column; align-items:center; }
  .cta-btns .btn { width:100%; max-width:300px; justify-content:center; }

  /* Form */
  .form-wrapper { padding:28px 18px; }
  .form-row { grid-template-columns:1fr; }
  .form-step-options { flex-direction:column; }
  .fso { width:100%; }
  .fso label { width:100%; justify-content:flex-start; white-space:normal; }

  /* Footer */
  .footer-grid { grid-template-columns:1fr; gap:26px; }
.footer-bottom {
  padding: 24px 0;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 12px;
}

.footer-bottom-right {
  display: flex;
  align-items: center;
  gap: 12px;
  justify-content: center;
}



.by-teodor {
  text-align: right;
}





@media (max-width: 768px) {
  .footer-bottom {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    gap: 12px !important;
  }

  .footer-bottom-right {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 10px !important;
  }

  .footer-copy {
    display: block;
    text-align: center;
  }

  .footer-sep { display: none !important; }

  .by-teodor {
    text-align: center !important;
    margin-top: 4px !important;
  }
}
@media (max-width: 768px) {
  .gdpr-modal {
    padding: 24px 16px !important;
    max-height: 75vh !important;
  }

  .gdpr-modal h2 {
    font-size: 1.2rem !important;
    margin-bottom: 16px !important;
  }

  .gdpr-modal p {
    font-size: .8rem !important;
    margin-bottom: 12px !important;
    line-height: 1.6 !important;
  }
}


  /* FAB mobile: main btn becomes circle (icon only) */

  .fab-poptavka span { display:none; }
  .fab-poptavka { padding:15px; border-radius:50%; }
  .fab-poptavka svg { width:22px; height:22px; }
}

@media(max-width:480px) {
  :root { --nb-h:62px; --tb-h:32px; }
  .hero h1 { font-size:1.9rem; }
  .section-title { font-size:1.62rem; }
  .gallery-grid { grid-template-columns:1fr; grid-auto-rows:210px; }
  .gallery-grid .gi:nth-child(1) { grid-column:span 1; }
  .gallery-grid .gi:nth-child(4) { grid-column:span 1; }
  .hp-stat-n { font-size:1.7rem; }
  .fab-toggle-small { width:36px; height:36px; }
  /* zavřeno → NAHORU */
  .fab-toggle-small svg {
  width:18px;
  height:18px;
  color:var(--blue-700);
  transform: rotate(180deg);
  transition: transform .3s ease;
}

/* otevřeno → DOLŮ */
 .fab.open .fab-toggle-small svg {
  transform: rotate(0deg);
}
  .fab-poptavka { padding:13px; }
}

@media(max-height:500px) and (max-width:900px) {
  .hero { min-height:auto; padding-top:calc(var(--tb-h) + var(--nb-h) + 12px); padding-bottom:32px; }
  .nav-links { padding-top:56px; }
}

@media (max-width: 768px){

  .reviews-wrap {
    overflow: hidden;
    padding: 0 10px;
  }

  .reviews-track {
    display: flex;
  }

  .review-card {
    flex: 0 0 100%;
    min-width: 100%;
  }

  .review-inner {
    padding: 20px 16px;
    border-radius: 18px;
  }

  .review-text {
    font-size: 0.95rem;
    line-height: 1.6;
  }

}
/* ── TICKER (inside topbar) ─────────────────────────────────────── */
.ticker-item {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: .74rem;
  font-weight: 600;
  color: rgba(255,255,255,.82);
  letter-spacing: .3px;
  padding: 0 18px;
  flex-shrink: 0;
}
.ticker-item svg { width: 12px; height: 12px; flex-shrink: 0; }
.ticker-dot {
  color: rgba(255,255,255,.22);
  font-size: .9rem;
  padding: 0 3px;
  flex-shrink: 0;
}
@keyframes tickerScroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
/* adjust about-card sticky top */

/* ── ABOUT CARD DARK ────────────────────────────────────────────── */
.about-card-dark {
  background: #0A5C84 !important;
  border-color: rgba(255,255,255,.12) !important;
}
.about-card-dark .ac-title { color: #fff !important; }
.about-card-dark .ac-sub { color: rgba(255,255,255,.65) !important; }
.about-card-dark .act-list li { color: rgba(255,255,255,.9) !important; border-bottom-color: rgba(255,255,255,.1) !important; font-size:.92rem; }
.about-card-dark .act-list li svg { color: var(--gold-400) !important; stroke: var(--gold-400) !important; }
.about-card-dark .ac-icon { background: rgba(255,255,255,.15) !important; }
.about-card-dark .ac-icon svg { color: #fff; }

/* ── JAK TO FUNGUJE / PROCESS ───────────────────────────────────── */
.process-section { background: var(--white); }
.process-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: start;
  margin-top: 60px;
}
.process-steps { display: flex; flex-direction: column; gap: 0; }
.process-step {
  display: grid;
  grid-template-columns: 40px 20px 1fr;
  gap: 0 16px;
  align-items: start;
  position: relative;
}
.process-step:not(.process-step-last)::after {
  content: '';
  position: absolute;
  left: calc(40px + 16px + 10px);
  top: 24px;
  width: 2px;
  height: calc(100% + 8px);
  background: var(--blue-100);
}
.ps-num {
  font-size: .72rem;
  font-weight: 800;
  color: var(--gray-300);
  letter-spacing: 1px;
  padding-top: 6px;
  text-align: right;
}
.ps-dot {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--blue-600);
  margin-top: 7px;
  flex-shrink: 0;
  box-shadow: 0 0 0 4px var(--blue-50);
  position: relative;
  z-index: 1;
}
.ps-dot-gold {
  background: var(--gold-400) !important;
  box-shadow: 0 0 0 4px var(--gold-100) !important;
}
.ps-card {
  background: var(--gray-50);
  border: 1px solid var(--gray-100);
  border-radius: var(--r-lg);
  padding: 20px 22px;
  margin-bottom: 16px;
}
.ps-card-gold {
  background: var(--gold-100) !important;
  border-color: rgba(232,146,10,.2) !important;
}
.ps-icon {
  width: 36px; height: 36px;
  background: var(--blue-50);
  border-radius: var(--r-sm);
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 10px;
}
.ps-icon svg { width: 18px; height: 18px; stroke: var(--blue-600); }
.ps-icon-gold { background: rgba(232,146,10,.12) !important; }
.ps-icon-gold svg { stroke: var(--gold-500) !important; }
.ps-card h3 { font-size: 1rem; font-weight: 700; color: var(--gray-900); margin-bottom: 6px; }
.ps-card p  { font-size: .88rem; color: var(--gray-500); line-height: 1.6; margin-bottom: 10px; }
.ps-time {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: .76rem; font-weight: 600; color: var(--blue-600);
}
.ps-time svg { width: 12px; height: 12px; }
.ps-time-gold { color: var(--gold-600) !important; }

/* ── VIZUALIZACE VRTU ───────────────────────────────────────────── */
.process-viz {
  position: sticky;
  top: calc(var(--total-top, 160px) + 24px);
  background: var(--gray-50);
  border: 1px solid var(--gray-100);
  border-radius: var(--r-xl);
  padding: 32px;
}
.viz-title { font-family: var(--font-d); font-size: 1.5rem; font-weight: 700; color: var(--gray-900); line-height: 1.2; margin-bottom: 8px; }
.viz-sub { font-size: .88rem; color: var(--gray-400); margin-bottom: 24px; }
.viz-layout {
  display: flex;
  gap: 16px;
  align-items: flex-start;
}
.viz-legend { flex: 1; min-width: 140px; }
.viz-diagram { display: flex; gap: 6px; align-items: stretch; flex-shrink: 0; }
.viz-legend { display: flex; flex-direction: column; gap: 8px; }
.vl-item { display: flex; align-items: center; gap: 8px; font-size: .75rem; color: var(--gray-600); white-space: nowrap; }
.vl-dot { width: 14px; height: 14px; border-radius: 3px; flex-shrink: 0; }
.vd-depth-labels {
  display: flex; flex-direction: column; justify-content: space-between;
  font-size: .68rem; color: var(--gray-400); text-align: right;
  padding: 0 4px 0 0;
  height: 320px;
  align-self: stretch;
}
.vd-column {
  width: 60px;
  height: 320px;
  border-radius: var(--r-sm);
  overflow: hidden;
  position: relative;
  flex-shrink: 0;
  box-shadow: var(--shadow-md);
}
.vd-layer {
  width: 100%;
  position: relative;
  display: flex; align-items: center; justify-content: center;
}
.vd-lbl {
  font-size: .58rem;
  font-weight: 700;
  color: rgba(255,255,255,.85);
  text-align: center;
  padding: 2px 3px;
  writing-mode: horizontal-tb;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
  text-shadow: 0 1px 2px rgba(0,0,0,.4);
}
.vd-lbl-dark { color: var(--blue-900) !important; font-weight: 800 !important; }
.vd-water { border-top: 2px solid rgba(255,255,255,.5); }
.vd-casing {
  position: absolute;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
  width: 16px;
  height: 78%;
  background: rgba(96,200,240,.3);
  border: 2px solid #60C8F0;
  border-radius: 2px;
  pointer-events: none;
}
.viz-stats {
  display: flex; flex-direction: column; gap: 12px;
  justify-content: center;
}
.vs-item {
  background: var(--white);
  border: 1px solid var(--gray-100);
  border-radius: var(--r-md);
  padding: 12px 14px;
  text-align: center;
}
.vs-label { font-size: .68rem; font-weight: 700; color: var(--gray-400); text-transform: uppercase; letter-spacing: .8px; margin-bottom: 4px; }
.vs-val { font-size: .95rem; font-weight: 800; color: var(--blue-600); }

/* ── FAQ ────────────────────────────────────────────────────────── */
.faq-section { background: var(--gray-50); }
.faq-list { max-width: 100%; margin: 0 auto; display: flex; flex-direction: column; gap: 12px; }
.faq-item {
  background: var(--white);
  border: 1px solid var(--gray-100);
  border-radius: var(--r-lg);
  overflow: hidden;
  transition: box-shadow var(--t);
}
.faq-item:hover { box-shadow: var(--shadow-sm); }
.faq-q {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 26px 30px;
  background: none;
  border: none;
  text-align: left;
  font-size: 1.08rem;
  font-weight: 600;
  color: var(--gray-900);
  cursor: pointer;
  transition: color var(--t-fast);
}
.faq-q:hover { color: var(--blue-600); }
.faq-arr { width: 18px; height: 18px; flex-shrink: 0; transition: transform var(--t); }
.faq-item.open .faq-arr { transform: rotate(180deg); }
.faq-a {
  max-height: 0;
  overflow: hidden;
  font-size: 1rem;
  color: var(--gray-500);
  line-height: 1.72;
  padding: 0 30px;
  transition: max-height .4s var(--ease), padding .3s var(--ease);
}
.faq-item.open .faq-a { max-height: 300px; padding: 0 30px 26px; }



#fakeChatClose {
  min-width: 44px;
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.form-urgency {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  color: #059669;
  font-size: .85rem;
  font-weight: 700;
  padding: 8px 16px;
  border-radius: var(--r-full);
  margin-bottom: 28px;
}
.urgency-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #059669;
  animation: pulse-ring 1.8s infinite;
  flex-shrink: 0;
}
.form-call-alt {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-bottom: 32px;
  font-size: .9rem;
  color: var(--gray-500);
}



.form-optional-toggle {
  display: flex;
  justify-content: left;
  align-items: center;
  gap: 7px;
  width: 100%;

  margin-top: 4px;     /* 🔥 stejné jako form-group */
  margin-bottom: 25px;  /* 🔥 stejné jako form-group */

  font-size: .85rem;
  font-weight: 700;
  color: var(--blue-600);
  cursor: pointer;
}
.form-optional-toggle:hover { color: var(--blue-800); }
.form-optional-fields {
  max-height: 0;
  overflow: hidden;
  transition: max-height .4s var(--ease);
}
.form-optional-fields.open {
  max-height: 200px;
  margin-bottom: 20px;
}

.form-call-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-weight: 800;
  font-size: 1.1rem;
  color: var(--blue-700);
  transition: color var(--t);
}
.form-call-link:hover { color: var(--blue-900); }
/* ── RESPONSIVE: process + viz ──────────────────────────────────── */
@media (max-width: 1024px) {
  .process-layout { grid-template-columns: 1fr; gap: 40px; }
  .process-viz { position: static; }
  .viz-layout { grid-template-columns: auto 50px auto; }
  .vd-column { height: 260px; width: 50px; }
}
@media (max-width: 600px) {
  .process-step { grid-template-columns: 32px 16px 1fr; gap: 0 12px; }
  .process-step:not(.process-step-last)::after { left: calc(32px + 12px + 8px); }
  .viz-layout { grid-template-columns: 1fr; }
  .vd-depth-labels, .viz-stats { display: none; }
  .vd-column { width: 100%; height: 180px; }

}

/* ── TICKER height adjust for topbar hidden ─────────────────────── */

/* cookie CSS moved to bottom */

/* ── REVIEWS: always visible fix ───────────────────────────────── */
.reviews-wrap {
  position: relative;
  overflow: hidden;
}
.reviews-track {
  display: flex;
  transition: transform 0.45s ease;
  will-change: transform;
}
.review-card {
  flex: 0 0 100%;
  min-width: 100%;
  box-sizing: border-box;
}
.review-inner {
  background: var(--white);
  border: 1px solid var(--gray-100);
  border-radius: var(--r-xl);
  padding: 36px 44px;
  box-shadow: var(--shadow-sm);
  margin: 4px;
}

/* ── FAQ: add top margin for breathing room ─────────────────────── */
.faq-section {
  padding-top: 80px !important;
  padding-bottom: 80px !important;
}
.faq-list { margin-top: 50px !important; }

.review-avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  color: #fff;
  font-weight: 800;
  font-size: .88rem;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 16px;
  letter-spacing: 1px;
}

/* ── TICKER BAND (non-fixed, scrolls with page) ─────────────────── */
.ticker-band {
  width: 100%;
  background: linear-gradient(90deg, var(--blue-900) 0%, var(--blue-800) 50%, var(--blue-900) 100%);
  overflow: hidden;
  height: 42px;
  display: flex;
  align-items: center;
  cursor: default;
  border-top: 1px solid rgba(255,255,255,.06);
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.ticker-band:hover .ticker-band-track { animation-play-state: paused; }
.ticker-band-track {
  display: flex;
  align-items: center;
  white-space: nowrap;
  will-change: transform;
  flex-shrink: 0;
}
/* ── NAV DROPDOWN ─────────────────────────────────────── */
.nav-dropdown { position: relative; }
.nav-dropdown-btn {
  background: none; border: none; cursor: pointer;
  font-family: inherit; font-size: .92rem; font-weight: 500;
  color: var(--text-2, #374151); padding: 6px 4px;
  display: flex; align-items: center; gap: 4px;
  transition: color .2s;
}
.nav-dropdown-btn:hover { color: var(--brand, #0A5C84); }
.nav-dropdown-menu {
  display: none; position: absolute; top: calc(100% + 10px); left: 0;
  background: #fff; border-radius: 12px;
  box-shadow: 0 8px 32px rgba(4,42,63,.14);
  min-width: 180px; padding: 8px 0; z-index: 999;
  border: 1px solid rgba(0,0,0,.07);
}
.nav-dropdown-menu a {
  display: block; padding: 10px 18px;
  font-size: .88rem; color: #374151; text-decoration: none;
  transition: background .15s, color .15s;
}
.nav-dropdown-menu a:hover { background: #f0f7fc; color: #0A5C84; }
.nav-dropdown.open .nav-dropdown-menu { display: block; }
.nav-dropdown.open .nav-dropdown-btn svg { transform: rotate(180deg); }

.nav-links a, .nav-dropdown-btn {
  font-weight: 700 !important;
}

/* Na mobilu — dropdown jako normální linky */
@media (max-width: 900px) {
  .nav-dropdown-btn { display: none; }
  .nav-dropdown-menu {
    display: block; position: static;
    box-shadow: none; border: none; padding: 0;
    background: transparent;
  }
  .nav-dropdown-menu a { padding: 12px 0; font-size: 1rem; text-align:center; }
}
/* ── COOKIE BANNER (compact bar) ─────────────────────────────────── */
.cookie-banner {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 9998;
  opacity: 0;
  transform: translateY(100%);
  transition: transform .45s cubic-bezier(.34,1.56,.64,1), opacity .35s ease;
  pointer-events: none;
}
.cookie-banner.show {
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}
.cookie-card {
  background: var(--blue-900);
  border-top: 1px solid rgba(255,255,255,.1);
  padding: 14px 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
}
.cookie-body {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1;
  min-width: 0;
}
.cookie-icon { font-size: 18px; flex-shrink: 0; }
.cookie-title {
  font-size: .88rem;
  font-weight: 700;
  color: #fff;
  margin: 0 0 2px;
}
.cookie-desc {
  font-size: .78rem;
  color: rgba(255,255,255,.55);
  margin: 0;
  line-height: 1.4;
}
.cookie-types { display: none; }
.cookie-actions {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-shrink: 0;
}
.cookie-btn-accept {
  background: var(--gold-400);
  color: #fff;
  border: none;
  border-radius: var(--r-full);
  padding: 9px 22px;
  font-weight: 700;
  font-size: .84rem;
  cursor: pointer;
  transition: background var(--t-fast);
  white-space: nowrap;
}
.cookie-btn-accept:hover { background: var(--gold-500); }
.cookie-btn-custom { display: none; }
.cookie-btn-decline {
  background: transparent;
  color: rgba(255,255,255,.45);
  border: none;
  padding: 9px 10px;
  font-size: .8rem;
  cursor: pointer;
  transition: color var(--t-fast);
  white-space: nowrap;
}
.cookie-btn-decline:hover { color: rgba(255,255,255,.8); }

@media (max-width: 520px) {
  .cookie-card {
    padding: 12px 18px;
    gap: 12px;
  }
  .cookie-desc { display: none; }
}

/* ── REVIEWS: no text select + arrows ──────────────────────────── */
.reviews-wrap {
  user-select: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
}
.review-text, .review-author, .review-loc, .review-stars {
  user-select: none;
  -webkit-user-select: none;
  pointer-events: none;
}
.reviews-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  margin-top: 28px;
}
.review-arrow {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1.5px solid var(--gray-200);
  background: var(--white);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all var(--t);
  box-shadow: var(--shadow-xs);
  flex-shrink: 0;
  color: var(--gray-700);
}
.review-arrow svg {
  width: 18px;
  height: 18px;
}
.review-arrow:hover {
  background: var(--blue-700);
  border-color: var(--blue-700);
  color: #fff;
  box-shadow: var(--shadow-blue);
  transform: scale(1.08);
}
.review-arrow:active {
  transform: scale(0.96);
}

/* ── NO TEXT SELECT ─────────────────────────────────────────────── */
button, a, label, .btn, .nav-cta, .fab-btn, .fab-poptavka,
.fab-toggle-small, .review-arrow, .faq-q, .cookie-btn-accept,
.cookie-btn-decline, .form-submit, .lb-btn, .gi-zoom,
.fake-chat, .fake-chat-close, .nav-cta-wrap, .hamburger,
.nav-dropdown-btn, .review-dot, .hp-stat, .why-card,
.tech-card, .pricing-card, .feat, .cc,
/* obsahové karty a sekce */
.timeline-card, .timeline-card *, .timeline-node,
.faq-item, .faq-item *,
.hero-panel, .hero-panel *,
.about-card, .about-card *,
.achievement, .achievement *,
.why-card, .why-card *,
.comparison-table, .comparison-table *,
.price-calc-section, .price-calc-section *,
.hp-foot, .hp-foot *,
.legal-block,
.section-title, .section-sub, .chip,
.navbar, .topbar, .footer,
.contact-cards, .contact-cards *,
.scroll-sections,
.live-notif, .live-notif * {
  user-select: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
}

.scroll-progress {
  position: fixed;
  top: 0;
  left: 0;
  height: 3px;
  width: 0%;
  background: linear-gradient(90deg, var(--blue-600), var(--gold-400));
  z-index: 9999;
  transition: width 0.1s linear;
}


.gi img {
  filter: blur(0px);
  transition: transform .55s ease, filter .4s ease;
}
.gi img.loading {
  filter: blur(8px);
}


.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus {
  border-color: var(--blue-600);
  box-shadow: 0 0 0 3px rgba(12,110,156,.12);
  transform: translateY(-1px);
}


/* ── TOAST ──────────────────────────────────────────────────────── */
.toast {
  position: fixed;
  bottom: 32px;
  left: 50%;
  transform: translateX(-50%) translateY(16px);
  background: var(--blue-900);
  color: #fff;
  padding: 13px 22px;
  border-radius: var(--r-full);
  font-size: .88rem;
  font-weight: 700;
  box-shadow: var(--shadow-lg);
  z-index: 99999;
  opacity: 0;
  transition: opacity .35s, transform .35s;
  pointer-events: none;
  white-space: nowrap;
  display: flex;
  align-items: center;
  gap: 9px;
  max-width: calc(100vw - 40px);
}
.toast.show {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}
.toast svg { width: 16px; height: 16px; flex-shrink: 0; color: var(--green-500); }