/* ============================================================
   JASNÉ ČÍSLA — Excel & Power BI riešenia na mieru
   Palette: Excel green + Power BI amber on quiet paper neutrals
   Type: Space Grotesk (display) / IBM Plex Sans (body) / IBM Plex Mono (labels)
   ============================================================ */

:root{
  --green:        #1F7A4D;   /* Excel – primary */
  --green-hover:  #196540;
  --green-deep:   #0E2A1C;   /* dark ink / dark sections */
  --green-soft:   #E7F2EC;   /* tints, chips */
  --amber:        #F2C811;   /* Power BI – accent */
  --amber-soft:   #FBF3D3;
  --amber-ink:    #7A6200;   /* readable amber for text on light bg */
  --paper:        #F7F9F6;
  --card:         #FFFFFF;
  --ink:          #1D2B23;
  --muted:        #5B6B61;
  --line:         #DDE6DF;
  --radius:       14px;
  --shadow:       0 10px 30px rgba(14,42,28,.08);
  --maxw:         1120px;
}

*{ box-sizing:border-box; margin:0; padding:0; }

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

body{
  font-family:'IBM Plex Sans', system-ui, sans-serif;
  background:var(--paper);
  color:var(--ink);
  line-height:1.65;
  font-size:16.5px;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3{ font-family:'Space Grotesk', sans-serif; line-height:1.15; letter-spacing:-.01em; }
h1{ font-size:clamp(2rem, 4.6vw, 3.3rem); font-weight:700; }
h2{ font-size:clamp(1.5rem, 3vw, 2.1rem); font-weight:700; margin-bottom:.6rem; }
h3{ font-size:1.13rem; font-weight:600; }

p{ color:var(--muted); }
a{ color:var(--green); text-decoration:none; }
a:hover{ text-decoration:underline; }
img{ max-width:100%; }

.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 24px; }

section{ padding:84px 0; scroll-margin-top:84px; }
section.alt{ background:#FFFFFF; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }

/* mono "formula" eyebrow — the signature label of the site */
.eyebrow{
  font-family:'IBM Plex Mono', monospace;
  font-size:.82rem;
  font-weight:500;
  color:var(--green);
  background:var(--green-soft);
  border:1px solid #CFE3D8;
  border-radius:6px;
  padding:4px 10px;
  display:inline-block;
  margin-bottom:14px;
}
.eyebrow.amber{ color:var(--amber-ink); background:var(--amber-soft); border-color:#EBDCA0; }

.section-lead{ max-width:640px; margin-bottom:44px; }

/* ---------- Buttons ---------- */
.btn{
  display:inline-block;
  font-family:'Space Grotesk', sans-serif;
  font-weight:600;
  font-size:1rem;
  padding:13px 26px;
  border-radius:10px;
  border:2px solid transparent;
  cursor:pointer;
  transition:background .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
}
.btn:hover{ text-decoration:none; transform:translateY(-1px); }
.btn-primary{ background:var(--green); color:#fff; }
.btn-primary:hover{ background:var(--green-hover); color:#fff; }
.btn-ghost{ background:transparent; color:var(--green); border-color:var(--green); }
.btn-ghost:hover{ background:var(--green-soft); }
.btn-amber{ background:var(--amber); color:var(--green-deep); }
.btn-amber:hover{ background:#E5BC0A; }

:focus-visible{ outline:3px solid var(--amber); outline-offset:2px; border-radius:6px; }

/* ---------- Header / nav ---------- */
header{
  position:sticky; top:0; z-index:50;
  background:rgba(247,249,246,.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  height:66px;
}
.logo{
  font-family:'Space Grotesk', sans-serif;
  font-weight:700; font-size:1.35rem; color:var(--ink);
  display:flex; align-items:center;
}
.logo:hover{ text-decoration:none; }
.logo-mark{
  width:26px; height:26px; border-radius:7px;
  background:linear-gradient(135deg, var(--green) 0 55%, var(--amber) 55% 100%);
  display:inline-block;
  margin-right:8px;
  flex-shrink:0;
}
.logo span{ color:var(--green); }

.nav-links{ display:flex; align-items:center; gap:26px; list-style:none; }
.nav-links a{
  color:var(--ink); font-weight:500; font-size:.95rem;
}
.nav-links a:hover{ color:var(--green); text-decoration:none; }
.nav-cta{ margin-left:6px; }
.nav-cta .btn{ padding:9px 18px; font-size:.92rem; }

.nav-toggle{
  display:none;
  background:none; border:none; cursor:pointer;
  width:42px; height:42px;
  flex-direction:column; align-items:center; justify-content:center; gap:5px;
}
.nav-toggle span{
  display:block; width:22px; height:2px; background:var(--ink); border-radius:2px;
  transition:transform .2s ease, opacity .2s ease;
}
.nav-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* ---------- Hero ---------- */
.hero{
  position:relative;
  padding:96px 0 100px;
  overflow:hidden;
}
/* spreadsheet-grid backdrop — the visual signature */
.hero::before{
  content:"";
  position:absolute; inset:0;
  background:
    linear-gradient(to right, rgba(31,122,77,.06) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(31,122,77,.06) 1px, transparent 1px);
  background-size:56px 34px;
  mask-image:linear-gradient(to bottom, rgba(0,0,0,.9), transparent 85%);
  -webkit-mask-image:linear-gradient(to bottom, rgba(0,0,0,.9), transparent 85%);
  pointer-events:none;
}
.hero .wrap{
  position:relative;
  display:grid; grid-template-columns:1.15fr .85fr; gap:56px; align-items:center;
}
.hero h1 em{ font-style:normal; color:var(--green); }
.hero h1 .pbi{ font-style:normal; box-shadow:inset 0 -0.42em var(--amber-soft); }
.hero-sub{ margin:20px 0 30px; font-size:1.12rem; max-width:520px; }
.hero-actions{ display:flex; gap:14px; flex-wrap:wrap; }
.hero-trust{
  margin-top:26px;
  font-family:'IBM Plex Mono', monospace;
  font-size:.82rem; color:var(--muted);
  display:flex; gap:18px; flex-wrap:wrap;
}
.hero-trust li{ list-style:none; }
.hero-trust li::before{ content:"✓ "; color:var(--green); font-weight:700; }

/* hero mock dashboard */
.mock{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:22px;
}
.mock-head{
  display:flex; justify-content:space-between; align-items:center;
  font-family:'IBM Plex Mono', monospace; font-size:.78rem; color:var(--muted);
  border-bottom:1px solid var(--line); padding-bottom:12px; margin-bottom:16px;
}
.mock-head b{ color:var(--ink); font-weight:500; }
.chip{ background:var(--green-soft); color:var(--green); border-radius:5px; padding:2px 8px; }
.kpis{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-bottom:18px; }
.kpi{
  background:var(--paper); border:1px solid var(--line); border-radius:10px; padding:10px 12px;
}
.kpi small{ display:block; font-size:.7rem; color:var(--muted); font-family:'IBM Plex Mono', monospace; }
.kpi strong{ font-family:'Space Grotesk', sans-serif; font-size:1.05rem; }
.kpi strong.up{ color:var(--green); }
.bars{ display:flex; align-items:flex-end; gap:12px; height:190px; padding:0 4px; }
.bar{
  flex:1; height:100%;
  display:flex; flex-direction:column; align-items:center; justify-content:flex-end;
  gap:6px;
}
.bar i{
  width:100%; border-radius:6px 6px 0 0; background:var(--green); opacity:.9;
  animation:grow .9s ease both;
}
.bar i.a{ background:var(--amber); }
.bar .val{
  font-family:'IBM Plex Mono', monospace; font-size:.72rem; font-weight:500; color:var(--ink);
}
.bar .mon{
  font-family:'IBM Plex Mono', monospace; font-size:.68rem; color:var(--muted);
}
@keyframes grow{ from{ transform:scaleY(0); transform-origin:bottom; } }
@media (prefers-reduced-motion: reduce){ .bar i{ animation:none; } }

/* ---------- Services ---------- */
.grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:26px;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.card:hover{ transform:translateY(-3px); box-shadow:var(--shadow); border-color:#C9DACF; }
.card h3{ margin:14px 0 8px; }
.card p{ font-size:.95rem; }
.icon{
  width:44px; height:44px; border-radius:10px;
  display:flex; align-items:center; justify-content:center;
  background:var(--green-soft); color:var(--green);
  font-size:1.25rem;
}
.card.amber .icon{ background:var(--amber-soft); color:var(--amber-ink); }
.tags{ margin-top:12px; display:flex; flex-wrap:wrap; gap:6px; }
.tags span{
  font-family:'IBM Plex Mono', monospace; font-size:.7rem;
  background:var(--paper); border:1px solid var(--line);
  border-radius:5px; padding:2px 7px; color:var(--muted);
}

/* ---------- Process ---------- */
.steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; counter-reset:step; }
.step{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:26px;
  position:relative;
}
.step::before{
  counter-increment:step;
  content:counter(step);
  font-family:'Space Grotesk', sans-serif; font-weight:700; font-size:1rem;
  width:34px; height:34px; border-radius:50%;
  background:var(--green-deep); color:var(--amber);
  display:flex; align-items:center; justify-content:center;
  margin-bottom:14px;
}
.step h3{ margin-bottom:8px; }
.step p{ font-size:.95rem; }

/* ---------- Pricing ---------- */
.price-table{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  overflow:hidden;
}
.price-row{
  display:grid; grid-template-columns:1fr auto; gap:16px; align-items:center;
  padding:20px 26px; border-bottom:1px solid var(--line);
}
.price-row:last-child{ border-bottom:none; }
.price-row h3{ font-size:1.02rem; }
.price-row p{ font-size:.88rem; margin-top:2px; }
.price{
  font-family:'Space Grotesk', sans-serif; font-weight:700; font-size:1.15rem;
  color:var(--green); white-space:nowrap;
}
.price.free{ color:var(--amber-ink); background:var(--amber-soft); padding:4px 12px; border-radius:8px; font-size:.95rem; }
.price-note{ margin-top:18px; font-size:.88rem; }

/* ---------- About ---------- */
.about{ background:var(--green-deep); color:#EAF3EE; }
.about .eyebrow{ background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.15); color:var(--amber); }
.about h2{ color:#fff; }
.about p{ color:#BCD2C6; }
.about .wrap{ display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:center; }
.about-facts{ list-style:none; display:grid; gap:14px; }
.about-facts li{
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.12);
  border-radius:12px; padding:16px 20px;
  font-size:.95rem; color:#D7E6DD;
}
.about-facts b{ color:#fff; font-family:'Space Grotesk', sans-serif; }
.about-facts .fx{ font-family:'IBM Plex Mono', monospace; color:var(--amber); font-size:.8rem; display:block; margin-bottom:4px; }

.slogan{
  font-family:'Space Grotesk', sans-serif;
  font-size:clamp(1.25rem, 2.4vw, 1.6rem);
  font-weight:700; color:#fff;
  margin-top:26px;
}
.slogan em{ font-style:normal; color:var(--amber); }

/* ---------- FAQ ---------- */
.faq{ max-width:760px; margin:0 auto; }
.faq details{
  background:var(--card); border:1px solid var(--line); border-radius:12px;
  margin-bottom:12px; overflow:hidden;
}
.faq summary{
  cursor:pointer; list-style:none;
  padding:18px 22px;
  font-family:'Space Grotesk', sans-serif; font-weight:600; font-size:1.02rem;
  display:flex; justify-content:space-between; align-items:center; gap:16px;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{
  content:"+"; font-size:1.4rem; color:var(--green); font-weight:400;
  transition:transform .2s ease;
}
.faq details[open] summary::after{ transform:rotate(45deg); }
.faq details p{ padding:0 22px 20px; font-size:.95rem; }
.faq details[open]{ border-color:#C9DACF; }

/* ---------- Blog ---------- */
.blog-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:22px; }
.post{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  padding:28px; display:flex; flex-direction:column; gap:10px;
  transition:transform .18s ease, box-shadow .18s ease;
}
.post:hover{ transform:translateY(-3px); box-shadow:var(--shadow); text-decoration:none; }
.post-meta{ font-family:'IBM Plex Mono', monospace; font-size:.75rem; color:var(--muted); }
.post h3{ color:var(--ink); }
.post p{ font-size:.94rem; }
.post .more{ margin-top:auto; font-weight:600; color:var(--green); font-size:.92rem; }

/* ---------- Contact ---------- */
.contact .wrap{ display:grid; grid-template-columns:.9fr 1.1fr; gap:56px; align-items:start; }
.contact-info p{ margin-bottom:16px; }
.contact-mail{
  font-family:'IBM Plex Mono', monospace; font-size:.95rem;
  background:var(--green-soft); border:1px solid #CFE3D8; border-radius:8px;
  padding:10px 16px; display:inline-block; color:var(--green); font-weight:500;
}
form{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  padding:30px; box-shadow:var(--shadow);
  display:grid; gap:16px;
}
label{ font-weight:600; font-size:.9rem; display:block; margin-bottom:6px; }
input, textarea{
  width:100%;
  font:inherit; font-size:.95rem;
  padding:12px 14px;
  border:1px solid var(--line); border-radius:9px;
  background:var(--paper); color:var(--ink);
  transition:border-color .15s ease;
}
input:focus, textarea:focus{ outline:none; border-color:var(--green); background:#fff; }
textarea{ resize:vertical; min-height:130px; }
.form-status{ font-size:.92rem; font-weight:600; display:none; }
.form-status.ok{ display:block; color:var(--green); }
.form-status.err{ display:block; color:#B4232A; }

.section-cta{ text-align:center; margin-top:44px; }

/* ---------- Footer ---------- */
footer{
  background:var(--green-deep); color:#9FB8AA;
  padding:36px 0; font-size:.88rem;
}
footer .wrap{ display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; }
footer a{ color:#D7E6DD; }
footer .logo{ color:#fff; font-size:1.1rem; }
footer .logo span{ color:var(--amber); }

/* ---------- Scroll-to-top ---------- */
#toTop{
  position:fixed; right:22px; bottom:22px; z-index:60;
  width:46px; height:46px; border-radius:12px;
  background:var(--green); color:#fff; border:none; cursor:pointer;
  font-size:1.2rem; box-shadow:var(--shadow);
  opacity:0; visibility:hidden; transform:translateY(8px);
  transition:opacity .2s ease, transform .2s ease, visibility .2s;
}
#toTop.show{ opacity:1; visibility:visible; transform:translateY(0); }
#toTop:hover{ background:var(--green-hover); }

/* ---------- Reveal on scroll ---------- */
.reveal{ opacity:0; transform:translateY(16px); transition:opacity .5s ease, transform .5s ease; }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1; transform:none; transition:none; }
}

/* ---------- Article page ---------- */
.article{ max-width:740px; margin:0 auto; padding:70px 24px 90px; }
.article h1{ font-size:clamp(1.7rem, 3.6vw, 2.5rem); margin:14px 0 10px; }
.article .post-meta{ margin-bottom:26px; display:block; }
.article h2{ margin:38px 0 10px; font-size:1.4rem; }
.article p{ margin-bottom:16px; }
.article ul{ margin:0 0 16px 22px; color:var(--muted); }
.article li{ margin-bottom:8px; }
.article-cta{
  margin-top:44px; background:var(--green-soft); border:1px solid #CFE3D8;
  border-radius:var(--radius); padding:28px; text-align:center;
}
.article-cta p{ margin-bottom:16px; color:var(--ink); }
.back-link{ font-family:'IBM Plex Mono', monospace; font-size:.85rem; }

/* ---------- Responsive ---------- */
@media (max-width: 960px){
  .hero .wrap, .about .wrap, .contact .wrap{ grid-template-columns:1fr; gap:40px; }
  .grid-3, .steps{ grid-template-columns:1fr 1fr; }
}
@media (max-width: 680px){
  section{ padding:60px 0; }
  .grid-3, .steps, .blog-grid{ grid-template-columns:1fr; }
  .nav-links{
    position:absolute; top:66px; left:0; right:0;
    background:#fff; border-bottom:1px solid var(--line);
    flex-direction:column; align-items:flex-start;
    padding:18px 24px; gap:16px;
    display:none;
  }
  .nav-links.open{ display:flex; }
  .nav-toggle{ display:flex; }
  .hero{ padding:64px 0; }
  .price-row{ grid-template-columns:1fr; gap:6px; }
}
