:root{
  --color-accent:#7c2bd9;
  --color-accent-hover:#651fb4;
  --color-heading:#521691;
  --color-green:#00c300;
  --color-text:#241f2e;
  --color-text-secondary:#4a4456;
  --color-muted:#6f6880;
  --font:'Archivo', 'Helvetica Neue', Arial, sans-serif;
}

html{scroll-behavior:smooth;scroll-padding-top:90px;}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto;}}

body{
  margin:0;
  background:#ffffff;
  color:var(--color-text);
  font-family:var(--font);
  text-wrap:pretty;
}

a{color:var(--color-accent);}
a:hover{color:var(--color-accent-hover);}

/* ---------- Header ---------- */
.header{
  position:fixed;
  top:0;left:0;right:0;
  z-index:100;
  background:rgba(255,255,255,0.92);
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
  box-shadow:0 1px 12px rgba(40,10,71,0.08);
  transform:translateY(-110%);
  transition:transform 0.3s ease;
}
.header.visible{transform:translateY(0);}
.header-inner{
  max-width:1200px;
  margin:0 auto;
  padding:14px 24px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.header-logo{height:30px;display:block;}
.header-right{display:flex;align-items:center;gap:20px;}
.lang-switch{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600;}
.lang-switch button{
  border:none;background:none;cursor:pointer;padding:2px;
  font-size:14px;font-weight:600;font-family:inherit;
  color:#9a93a8;
}
.lang-switch button.active{color:var(--color-accent);}
.lang-sep{color:#c9c2d6;}
.btn-header{
  text-decoration:none;
  color:#ffffff;
  background:var(--color-accent);
  padding:10px 26px;
  border-radius:10px;
  font-weight:600;
  font-size:15px;
}
.btn-header:hover{background:var(--color-accent-hover);color:#ffffff;}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  overflow:hidden;
  background:linear-gradient(115deg, #1c0930 0%, #3d0d5e 38%, #6d1585 62%, #2a0a45 100%);
}
.hero-glow{
  position:absolute;
  left:50%;top:50%;
  transform:translate(-50%,-50%);
  width:640px;height:420px;
  border-radius:50%;
  background:radial-gradient(ellipse, rgba(140,60,220,0.4), transparent 70%);
  filter:blur(14px);
}
.hero-canvas{
  position:absolute;inset:0;
  width:100%;height:100%;
  pointer-events:none;
}
.hero-content{
  position:relative;
  max-width:1100px;
  margin:0 auto;
  padding:130px 24px;
  text-align:center;
}
@keyframes at-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
.hero-logo{
  height:clamp(52px, 7vw, 84px);
  display:inline-block;
  animation:at-float 5s ease-in-out infinite;
  filter:brightness(1.5) saturate(1.1) drop-shadow(0 0 26px rgba(160,80,255,0.55));
}
@media (prefers-reduced-motion: reduce){.hero-logo{animation:none;}}
.hero-tagline{
  font-size:clamp(17px, 2vw, 21px);
  line-height:1.6;
  color:#e4d5f7;
  margin:30px auto 0;
  max-width:44ch;
}

/* ---------- Claim ---------- */
.claim{
  max-width:1100px;
  margin:0 auto;
  padding:104px 24px 24px;
  text-align:center;
}
.claim h1{
  font-weight:800;
  font-size:clamp(36px, 5vw, 60px);
  line-height:1.08;
  letter-spacing:-0.02em;
  color:var(--color-heading);
  margin:0;
}
.claim-line{display:block;}
.claim-dot{color:var(--color-green);}
.claim-sub{
  font-size:19px;
  line-height:30px;
  color:var(--color-text-secondary);
  max-width:46ch;
  margin:24px auto 0;
}
.claim-cta{margin-top:36px;}
.btn-cta{
  display:inline-block;
  text-decoration:none;
  color:#ffffff;
  background:var(--color-accent);
  padding:14px 38px;
  border-radius:10px;
  font-weight:600;
  font-size:16px;
  box-shadow:0 6px 24px rgba(124,43,217,0.35);
}
.btn-cta:hover{background:var(--color-accent-hover);color:#ffffff;}

/* ---------- Šetříme čas ---------- */
.save-time{
  max-width:1200px;
  margin:0 auto;
  padding:96px 24px 80px;
}
.save-time-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(300px, 1fr));
  gap:48px clamp(48px, 7vw, 110px);
  align-items:center;
}
.save-time-img{
  width:100%;
  max-width:440px;
  display:block;
  justify-self:center;
}
@media (max-width:680px){
  /* Na mobilu obrázek skrýváme - spolu s loading="lazy" se vůbec nestahuje */
  .save-time-img{display:none;}
  .save-time-grid{gap:0;}
}
.save-time h2{
  font-weight:800;
  font-size:clamp(32px, 3.6vw, 46px);
  line-height:1.1;
  letter-spacing:-0.015em;
  color:var(--color-heading);
  margin:0 0 28px;
}
.features{display:flex;flex-direction:column;gap:24px;}
.features p{font-size:17px;line-height:28px;margin:0;}
.features strong{color:var(--color-heading);}

/* ---------- Kontakt ---------- */
.contact{
  max-width:900px;
  margin:0 auto;
  padding:48px 24px 120px;
}
.contact-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(300px, 1fr));
  gap:64px clamp(48px, 7vw, 110px);
  justify-items:center;
}
.person{display:flex;flex-direction:column;}
.person-photo{
  width:100%;
  max-width:342px;
  aspect-ratio:1;
  object-fit:cover;
  display:block;
}
.person h3{
  font-weight:800;
  font-size:30px;
  letter-spacing:-0.01em;
  color:var(--color-heading);
  margin:26px 0 8px;
}
.person-role{font-size:15px;color:var(--color-muted);margin:0 0 18px;}
.person-bio{font-size:16px;line-height:27px;margin:0;max-width:48ch;}
.person-links{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-top:auto;
  padding-top:22px;
  font-size:16px;
  line-height:24px;
}
.person-email{font-weight:600;}
.person-phone{text-decoration:none;color:var(--color-text);}

/* ---------- Footer ---------- */
.footer{
  position:relative;
  background:linear-gradient(120deg, #170a33 0%, #2a1152 60%, #3b1266 100%);
  color:#e9ddfa;
}
.footer-grid{
  max-width:1200px;
  margin:0 auto;
  padding:56px 24px 20px;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  gap:40px;
  align-items:end;
}
.footer-logo-link{display:block;align-self:end;margin-bottom:2px;}
.footer-logo{
  height:28px;
  display:block;
  filter:brightness(1.5) saturate(1.1);
}
.footer-center{
  display:flex;
  flex-direction:column;
  gap:12px;
  font-size:15px;
  text-align:center;
}
.footer-right{
  display:flex;
  flex-direction:column;
  gap:12px;
  font-size:15px;
  text-align:right;
  justify-self:end;
  align-self:end;
}
.footer-center a,
.footer-right a{color:#e9ddfa;text-decoration:none;}
.footer-center a:hover,
.footer-right a:hover{color:#ffffff;text-decoration:underline;}
.footer-copy{color:#b7a3d9;font-size:13.5px;}
.footer-address{
  max-width:1200px;
  margin:0 auto;
  padding:0 24px 40px;
  font-size:13px;
  color:#9d87c4;
  text-align:center;
}
@media (max-width:680px){
  .footer-grid{grid-template-columns:1fr;gap:28px;}
  .footer-grid > *{text-align:left;justify-self:start;}
}

/* ---------- Cookie banner ---------- */
.cookie-banner{
  position:fixed;
  right:24px;bottom:24px;
  z-index:200;
  width:min(400px, calc(100vw - 48px));
  background:#ffffff;
  border-radius:14px;
  box-shadow:0 12px 50px rgba(23,10,51,0.3);
  padding:24px;
  box-sizing:border-box;
}
.cookie-close{
  position:absolute;
  top:12px;right:12px;
  border:none;background:none;cursor:pointer;
  font-size:18px;line-height:1;
  color:var(--color-text);
  padding:4px;
}
.cookie-logo-wrap{margin-bottom:14px;}
.cookie-logo{height:24px;display:block;}
.cookie-text{
  font-size:13px;
  line-height:20px;
  color:var(--color-text-secondary);
  margin:0 0 16px;
}
.cookie-prefs{
  border-top:1px solid #e8e3f1;
  border-bottom:1px solid #e8e3f1;
  padding:12px 0;
  margin-bottom:16px;
}
.cookie-prefs-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.cookie-prefs-label{font-size:14px;color:var(--color-text);}
.cookie-func-toggle{
  display:flex;
  align-items:center;
  gap:8px;
  border:none;background:none;cursor:pointer;padding:0;
  font-family:inherit;
}
.cookie-always{font-size:13px;color:#00a800;}
.cookie-arrow{
  font-size:12px;
  color:var(--color-text);
  border:1.5px solid var(--color-text);
  border-radius:3px;
  width:18px;height:18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1;
}
.cookie-func-desc{
  font-size:12.5px;
  line-height:19px;
  color:var(--color-text-secondary);
  background:#f6f4fa;
  border-radius:8px;
  padding:12px 14px;
  margin:12px 0 0;
}
.cookie-buttons{display:flex;gap:10px;flex-wrap:wrap;}
.cookie-btn{
  flex:1;
  min-width:100px;
  font-family:inherit;
  font-size:14px;
  padding:11px 16px;
  border-radius:8px;
  cursor:pointer;
}
.cookie-btn-accept{
  border:none;
  background:var(--color-accent);
  color:#ffffff;
  font-weight:600;
}
.cookie-btn-accept:hover{background:var(--color-accent-hover);}
.cookie-btn-light{
  border:1px solid #ddd6e8;
  background:#f6f4fa;
  color:var(--color-text);
}
.cookie-btn-light:hover{background:#ece7f5;}
.cookie-btn-save{
  border:1px solid #ddd6e8;
  background:#ffffff;
  color:var(--color-text);
}
.cookie-btn-save:hover{background:#f6f4fa;}
[hidden]{display:none !important;}

/* ---------- Podstránky (právní texty) ---------- */
.subpage-header{
  position:sticky;
  top:0;
  z-index:100;
  background:rgba(255,255,255,0.92);
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
  box-shadow:0 1px 12px rgba(40,10,71,0.08);
}
.legal{
  max-width:760px;
  margin:0 auto;
  padding:72px 24px 96px;
}
.legal h1{
  font-weight:800;
  font-size:clamp(32px, 4vw, 44px);
  letter-spacing:-0.02em;
  color:var(--color-heading);
  margin:0 0 40px;
}
.legal h2{
  font-weight:800;
  font-size:24px;
  color:var(--color-text);
  margin:0 0 14px;
}
.legal h3{
  font-weight:700;
  font-size:18px;
  color:var(--color-heading);
  margin:0 0 10px;
}
.legal p{font-size:16px;line-height:27px;margin:0 0 16px;}
.legal p.tight{margin-bottom:6px;}
.legal p.gap{margin-bottom:28px;}
.legal p.section-end{margin-bottom:40px;}
.legal .validity{font-size:14px;color:var(--color-muted);margin:0 0 48px;}
.legal .back-link{font-weight:600;text-decoration:none;}
