/* ============ Rootstock — rootstock.digital ============ */

:root{
  --bark:#0A120E;
  --soil:#0F1B15;
  --moss:#152219;
  --ridge:#20362A;
  --line:rgba(150,196,140,.16);
  --leaf:#8FBF6B;
  --leaf-dk:#3E7A54;
  --sap:#B7D89A;
  --amber:#D9A441;
  --paper:#E9F0E4;
  --mist:#9FB3A2;
  --r:18px;
  --wrap:1180px;
  --f-disp:"Fraunces",Georgia,"Times New Roman",serif;
  --f-body:"Manrope","Segoe UI",Arial,sans-serif;
  --f-mono:"JetBrains Mono",ui-monospace,Consolas,monospace;
}

*,*::before,*::after{box-sizing:border-box}

html{scroll-behavior:smooth;scroll-padding-top:86px}

body{
  margin:0;
  background:var(--bark);
  color:var(--paper);
  font-family:var(--f-body);
  font-size:17px;
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
}

img{max-width:100%;display:block;height:auto}
a{color:var(--sap)}
h1,h2,h3,h4{font-family:var(--f-disp);font-weight:600;line-height:1.12;margin:0 0 .5em;letter-spacing:-.01em}
h1{font-size:clamp(2.3rem,5.4vw,3.9rem)}
h2{font-size:clamp(1.7rem,3.4vw,2.5rem)}
h3{font-size:1.22rem}
p{margin:0 0 1em}

.wrap{width:min(var(--wrap),92%);margin-inline:auto}
.wrap--narrow{width:min(820px,92%)}

.skip{position:absolute;left:-999px;top:0;background:var(--leaf);color:#0A120E;padding:10px 16px;z-index:99}
.skip:focus{left:12px;top:12px}

:where(a,button,input,select,textarea,summary):focus-visible{
  outline:2px solid var(--leaf);outline-offset:3px;border-radius:6px;
}

/* ---------- header ---------- */
.head{
  position:sticky;top:0;z-index:50;
  background:rgba(10,18,14,.86);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.head__in{display:flex;align-items:center;gap:20px;min-height:74px}
.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--paper)}
.brand__mark{width:26px;height:26px;color:var(--leaf);flex:none}
.brand__txt{font-family:var(--f-disp);font-size:1.28rem;letter-spacing:-.02em}
.brand__dot{color:var(--amber)}

.nav{margin-left:auto;display:flex;align-items:center;gap:26px}
.nav a{
  color:var(--mist);text-decoration:none;font-size:.95rem;font-weight:500;
  padding:6px 0;border-bottom:1px solid transparent;transition:color .2s,border-color .2s;
}
.nav a:hover{color:var(--paper);border-bottom-color:var(--leaf)}
.nav .nav__cta{
  color:#0A120E;background:var(--leaf);border:0;border-radius:999px;
  padding:10px 20px;font-weight:700;
}
.nav .nav__cta:hover{background:var(--sap);color:#0A120E}

.burger{display:none;margin-left:auto;background:none;border:1px solid var(--line);border-radius:10px;width:44px;height:42px;padding:10px;cursor:pointer}
.burger span{display:block;height:2px;background:var(--paper);margin:4px 0;border-radius:2px;transition:.25s}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

/* ---------- layers ---------- */
.layer{padding:96px 0;position:relative;border-top:1px solid var(--line)}
.layer--alt{background:var(--soil)}
.layer--top{
  border-top:0;padding-top:64px;
  background:
    radial-gradient(1100px 520px at 78% 6%,rgba(63,122,84,.30),transparent 62%),
    radial-gradient(700px 420px at 8% 92%,rgba(217,164,65,.08),transparent 60%),
    var(--bark);
}

.eyebrow{
  font-family:var(--f-mono);font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--leaf);margin:0 0 14px;
}
.sechead{max-width:760px;margin-bottom:52px}
.sechead__sub{color:var(--mist);margin:0}
.lede{font-size:1.12rem;color:var(--mist);max-width:56ch}
.lede--sm{font-size:1rem}
.muted{color:var(--mist);font-size:.9rem}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:14px 26px;border-radius:999px;font-weight:700;font-size:.98rem;
  text-decoration:none;cursor:pointer;border:1px solid transparent;transition:.22s;
  font-family:var(--f-body);
}
.btn--primary{background:var(--leaf);color:#0A120E}
.btn--primary:hover{background:var(--sap);transform:translateY(-2px)}
.btn--ghost{background:transparent;color:var(--paper);border-color:var(--ridge)}
.btn--ghost:hover{border-color:var(--leaf);color:var(--sap)}
.btn--full{width:100%}

/* ---------- hero ---------- */
.hero__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}
.hero h1 em{font-style:italic;color:var(--leaf)}
.hero__btns{display:flex;flex-wrap:wrap;gap:14px;margin:30px 0 40px}
.hero__facts{list-style:none;margin:0;padding:26px 0 0;display:flex;gap:34px;flex-wrap:wrap;border-top:1px solid var(--line)}
.hero__facts b{display:block;font-family:var(--f-disp);font-size:1.55rem;color:var(--paper)}
.hero__facts span{font-size:.86rem;color:var(--mist)}

.hero__viz{display:flex;justify-content:center}
.roots{width:100%;max-width:430px;filter:drop-shadow(0 18px 40px rgba(0,0,0,.5))}
.roots__n circle{fill:var(--amber)}
.roots__n circle:nth-child(n+4){fill:var(--sap)}
.roots__lb text{fill:var(--mist);font-family:var(--f-mono);font-size:13px;letter-spacing:.08em}
.rp{stroke-dasharray:900;stroke-dashoffset:900;animation:draw 2.1s ease forwards}
.rp:nth-child(2){animation-delay:.35s}
.rp:nth-child(3){animation-delay:.45s}
.rp:nth-child(4){animation-delay:.3s}
.rp:nth-child(n+5){animation-delay:.85s}
@keyframes draw{to{stroke-dashoffset:0}}

/* ---------- steps ---------- */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:22px;counter-reset:s}
.step{
  background:var(--moss);border:1px solid var(--line);border-radius:var(--r);
  padding:26px 24px 28px;position:relative;overflow:hidden;
}
.step::after{
  content:"";position:absolute;left:24px;right:24px;top:0;height:2px;
  background:linear-gradient(90deg,var(--leaf),transparent);
}
.step__no{font-family:var(--f-mono);font-size:.78rem;color:var(--amber);letter-spacing:.16em}
.step h3{margin:12px 0 8px}
.step p{color:var(--mist);font-size:.95rem;margin:0}

/* ---------- cards ---------- */
.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.card{background:var(--moss);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:.25s}
.card:hover{transform:translateY(-4px);border-color:rgba(143,191,107,.4)}
.card__img{width:100%;aspect-ratio:16/9;object-fit:cover;filter:saturate(.85) brightness(.86)}
.card__b{padding:26px}
.card__b p{color:var(--mist);font-size:.96rem}

.ticks{list-style:none;margin:0;padding:0}
.ticks li{position:relative;padding-left:26px;margin-bottom:9px;font-size:.93rem;color:var(--paper)}
.ticks li::before{
  content:"";position:absolute;left:0;top:.55em;width:12px;height:2px;border-radius:2px;background:var(--leaf);
}
.ticks a{color:var(--sap)}

/* ---------- calculator ---------- */
.calc{
  display:grid;grid-template-columns:1fr 1fr;gap:0;
  border:1px solid var(--line);border-radius:24px;overflow:hidden;background:var(--soil);
}
.calc__in{padding:38px}
.calc__out{padding:38px;background:var(--moss);border-left:1px solid var(--line)}
.field{margin-bottom:22px}
.field label{display:block;font-size:.88rem;color:var(--mist);margin-bottom:8px}
.field input[type=number],.field input[type=text],.field input[type=email],.field input[type=tel],.field select,.field textarea{
  width:100%;padding:13px 15px;background:var(--bark);color:var(--paper);
  border:1px solid var(--ridge);border-radius:12px;font:inherit;font-size:1rem;
}
.field input[type=number]{font-family:var(--f-mono);letter-spacing:.02em}
.field textarea{resize:vertical}
.field input[type=range]{width:100%;margin-top:12px;accent-color:var(--leaf)}
.calc__note{font-size:.82rem;color:var(--mist);margin:0}

.calc__zbytek{display:flex;flex-direction:column;gap:2px;margin-bottom:18px}
.calc__lab{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--mist)}
.calc__zbytek strong{font-family:var(--f-disp);font-size:2.4rem;color:var(--leaf);line-height:1.1}
.calc__roots{width:100%;max-width:330px;margin:4px auto 10px;display:block}
.calc__roots path{transition:stroke-width .4s ease}
.calc__rows{list-style:none;margin:0 0 18px;padding:0}
.calc__rows li{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px dashed var(--line);font-size:.95rem}
.calc__rows b{margin-left:auto;font-family:var(--f-mono);font-size:.95rem}
.dot{width:10px;height:10px;border-radius:50%;flex:none}
.dot--1{background:#8FBF6B}
.dot--2{background:#6FA85F}
.dot--3{background:var(--amber)}
.calc__res{font-size:.93rem;color:var(--mist)}
.calc__res b{color:var(--paper)}

/* ---------- cases ---------- */
.cases{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.case{background:var(--moss);border:1px solid var(--line);border-radius:var(--r);padding:0 0 26px;overflow:hidden}
.case__img{width:100%;aspect-ratio:3/2;object-fit:cover;filter:saturate(.8) brightness(.82);margin-bottom:22px}
.case h3,.case p{padding-inline:24px}
.case p{font-size:.93rem;color:var(--mist);margin-bottom:.8em}
.case b{color:var(--paper)}
.case__out{
  margin:14px 24px 0!important;padding:12px 14px!important;
  background:rgba(143,191,107,.09);border-left:2px solid var(--leaf);border-radius:0 10px 10px 0;
  color:var(--sap)!important;font-size:.9rem;
}

/* ---------- pricing ---------- */
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:start}
.plan{
  background:var(--moss);border:1px solid var(--line);border-radius:22px;padding:32px 28px;position:relative;
}
.plan--best{border-color:var(--leaf);background:linear-gradient(180deg,rgba(143,191,107,.09),var(--moss) 45%)}
.plan__tag{
  position:absolute;top:-13px;left:28px;background:var(--leaf);color:#0A120E;
  font-size:.72rem;font-weight:700;letter-spacing:.06em;padding:5px 14px;border-radius:999px;
}
.plan__n{margin-bottom:6px}
.plan__for{font-size:.9rem;color:var(--mist);min-height:3.2em}
.plan__p{display:flex;align-items:baseline;gap:8px;margin:14px 0 20px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.plan__p b{font-family:var(--f-disp);font-size:2.1rem;color:var(--paper)}
.plan__p span{color:var(--mist);font-size:.9rem}
.plan .ticks{margin-bottom:24px}

.pricenote{
  display:grid;grid-template-columns:1fr 1fr;gap:34px;margin-top:34px;
  background:var(--moss);border:1px solid var(--line);border-radius:22px;padding:34px;
}
.pricenote h3{font-size:1.05rem}
.pricelist{list-style:none;margin:0;padding:0}
.pricelist li{display:flex;gap:14px;align-items:baseline;padding:11px 0;border-bottom:1px dashed var(--line);font-size:.94rem}
.pricelist b{margin-left:auto;font-family:var(--f-mono);color:var(--sap);white-space:nowrap}

/* ---------- faq ---------- */
.faq details{border:1px solid var(--line);border-radius:14px;background:var(--moss);margin-bottom:12px;overflow:hidden}
.faq summary{
  cursor:pointer;list-style:none;padding:20px 56px 20px 22px;position:relative;
  font-family:var(--f-disp);font-size:1.06rem;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"+";position:absolute;right:22px;top:50%;transform:translateY(-50%);
  color:var(--leaf);font-size:1.5rem;font-family:var(--f-body);
}
.faq details[open] summary::after{content:"–"}
.faq__b{padding:0 22px 20px}
.faq__b p{margin:0;color:var(--mist);font-size:.95rem}

/* ---------- contact ---------- */
.contact{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:start}
.contact__list{margin:26px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:22px}
.contact__list dt{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--leaf);margin-bottom:6px}
.contact__list dd{margin:0;font-size:.95rem;color:var(--paper)}
.contact__list a{color:var(--paper);text-decoration:none;border-bottom:1px solid var(--ridge)}
.contact__list a:hover{border-color:var(--leaf)}

.form{background:var(--moss);border:1px solid var(--line);border-radius:22px;padding:34px}
.req{color:var(--amber)}
.field--check{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start}
.field--check input{margin-top:5px;width:18px;height:18px;accent-color:var(--leaf)}
.field--check label{font-size:.88rem;color:var(--mist);margin:0}
.field--check .err{grid-column:1/-1}
.err{color:#E8A0A0;font-size:.82rem;margin:6px 0 0;min-height:0}
.form__msg{margin:16px 0 0;font-size:.92rem;padding:0}
.form__msg.ok{color:var(--sap);background:rgba(143,191,107,.1);border-left:2px solid var(--leaf);padding:12px 14px;border-radius:0 10px 10px 0}
.form__msg.bad{color:#E8A0A0}
.field input[aria-invalid="true"],.field select[aria-invalid="true"]{border-color:#B96A6A}

/* ---------- footer ---------- */
.foot{background:var(--soil);border-top:1px solid var(--line);padding:64px 0 28px;font-size:.92rem}
.foot__grid{display:grid;grid-template-columns:1.6fr 1fr 1.4fr 1.2fr;gap:36px}
.foot__brand p{color:var(--mist);margin-top:14px}
.foot__disc{font-size:.82rem;color:#7B8E7E}
.foot__col h4{font-family:var(--f-mono);font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--leaf);margin-bottom:16px}
.foot__col a{display:block;color:var(--mist);text-decoration:none;margin-bottom:9px}
.foot__col a:hover{color:var(--sap)}
.foot__col p{color:var(--mist);margin-bottom:9px}
.linklike{background:none;border:0;color:var(--sap);cursor:pointer;padding:0;font:inherit;text-decoration:underline}
.foot__bar{
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  margin-top:44px;padding-top:20px;border-top:1px solid var(--line);color:#7B8E7E;font-size:.84rem;
}
.foot__bar p{margin:0}

/* ---------- cookies ---------- */
.cookie{
  position:fixed;left:16px;right:16px;bottom:16px;z-index:80;
  background:#0D1913;border:1px solid var(--ridge);border-radius:20px;
  box-shadow:0 24px 60px rgba(0,0,0,.6);
}
.cookie[hidden]{display:none}
.cookie__in{display:grid;grid-template-columns:1fr auto;gap:26px;padding:24px 26px;align-items:center;max-width:1180px;margin-inline:auto}
.cookie h2{font-size:1.1rem;margin-bottom:6px}
.cookie p{font-size:.88rem;color:var(--mist);margin-bottom:10px}
.cookie__opt{display:inline-flex;align-items:center;gap:8px;font-size:.85rem;color:var(--paper);margin-right:20px}
.cookie__opt input{accent-color:var(--leaf);width:16px;height:16px}
.cookie__btns{display:flex;flex-direction:column;gap:10px;min-width:200px}
.cookie__btns .btn{padding:11px 20px;font-size:.9rem}

/* ---------- legal pages ---------- */
.legal{padding:70px 0 90px}
.legal h1{font-size:clamp(1.9rem,4vw,2.8rem);margin-bottom:10px}
.legal .updated{font-family:var(--f-mono);font-size:.8rem;color:var(--mist);margin-bottom:38px}
.legal h2{font-size:1.35rem;margin:38px 0 12px;padding-top:22px;border-top:1px solid var(--line)}
.legal h3{font-size:1.05rem;margin:24px 0 8px}
.legal p,.legal li{color:var(--mist);font-size:.98rem}
.legal ul,.legal ol{padding-left:22px}
.legal li{margin-bottom:8px}
.legal strong{color:var(--paper)}
.legal table{width:100%;border-collapse:collapse;margin:18px 0;font-size:.92rem}
.legal th,.legal td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--line);color:var(--mist)}
.legal th{color:var(--paper);font-family:var(--f-mono);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase}
.back{display:inline-block;margin-bottom:26px;color:var(--sap);text-decoration:none;font-size:.9rem}
.back:hover{text-decoration:underline}

/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.reveal.in{opacity:1;transform:none}

/* ---------- responsive ---------- */
@media (max-width:1000px){
  .hero__grid{grid-template-columns:1fr;gap:34px}
  .hero__viz{order:-1}
  .roots{max-width:330px}
  .steps{grid-template-columns:repeat(2,1fr)}
  .cases{grid-template-columns:1fr}
  .plans{grid-template-columns:1fr}
  .plan__for{min-height:0}
  .contact{grid-template-columns:1fr;gap:36px}
  .foot__grid{grid-template-columns:1fr 1fr}
  .calc{grid-template-columns:1fr}
  .calc__out{border-left:0;border-top:1px solid var(--line)}
}

@media (max-width:820px){
  .burger{display:block}
  .nav{
    position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:0;
    background:#0C1712;border-bottom:1px solid var(--line);padding:10px 5% 22px;display:none;
  }
  .nav.open{display:flex}
  .nav a{padding:14px 0;border-bottom:1px solid var(--line)}
  .nav .nav__cta{margin-top:14px;text-align:center;border-bottom:0}
  .head__in{position:relative}
}

@media (max-width:700px){
  body{font-size:16px}
  .layer{padding:66px 0}
  .cards{grid-template-columns:1fr}
  .pricenote{grid-template-columns:1fr;padding:26px}
  .contact__list{grid-template-columns:1fr}
  .foot__grid{grid-template-columns:1fr;gap:30px}
  .calc__in,.calc__out,.form{padding:24px}
  .cookie__in{grid-template-columns:1fr;padding:20px}
  .cookie__btns{flex-direction:row;flex-wrap:wrap;min-width:0}
  .cookie__btns .btn{flex:1 1 auto}
  .hero__facts{gap:22px}
}

@media (max-width:480px){
  .steps{grid-template-columns:1fr}
  .hero__btns .btn{width:100%}
}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;transition-duration:.001ms!important}
  html{scroll-behavior:auto}
  .rp{stroke-dashoffset:0}
  .reveal{opacity:1;transform:none}
}
