/* intelisoft.* v2 (26-01040SW): 26-01038SW STIILIPROOV-v02 efektikiht + lehe põhistiil.
   Värvid ja kirjad: 26-01038SW handoff §2 (ainus allikas). Ainult transform/opacity/filter animatsioonid. */
/* Varufondid Google Fonti metriikaga (väldib font-swapi CLS-i): Outfit ~ Arial Bold 96,9 %, Manrope ~ Arial 102,4 % */
@font-face{font-family:"Outfit Fallback";src:local("Arial Bold"),local("Arial-BoldMT"),local("Liberation Sans Bold");font-weight:100 900;size-adjust:96.9%;ascent-override:103%;descent-override:27%;line-gap-override:0%}
@font-face{font-family:"Manrope Fallback";src:local("Arial"),local("ArialMT"),local("Liberation Sans");font-weight:100 900;size-adjust:102.4%;ascent-override:104%;descent-override:29%;line-gap-override:0%}
:root{
  --g1:#3d6bff; --g2:#7a52ff; --g3:#b43dff;
  --i1:#3f6bff; --i2:#7b5cff; --i3:#c04dff;
  --f1:#e0d8ff; --f2:#8b6bff;
  --sol:#b9acff;
  --bg:#0e0d1a; --bg2:#15132a; --fg:#f1efff; --muted:#a9a4cc; --line:rgba(185,172,255,.14); --card:rgba(255,255,255,.04);
  --nav-bg:rgba(14,13,26,.6); --surf:rgba(21,19,42,.72); --inp:rgba(255,255,255,.04); --inp-line:rgba(185,172,255,.22);
  --ghost:rgba(255,255,255,.05); --ghost-line:rgba(185,172,255,.25); --mock-bg:rgba(14,13,26,.8); --foot-bg:rgba(14,13,26,.6);
  --cookie-bg:rgba(21,19,42,.94); --demo-bg:#1b1840; --pop-bg:#16142c; --grid-line:rgba(185,172,255,.06);
  --shadow-card:none; --kar-base:rgba(241,239,255,.35); --ok:#c9b8ff; --err:#ff9db0; --btn-grad:var(--grad);
  --grad:linear-gradient(90deg,var(--g1),var(--g2),var(--g3));
  --font-display:"Outfit","Outfit Fallback",system-ui,sans-serif;
  --font-body:"Manrope","Manrope Fallback",system-ui,sans-serif;
  --wrap:1360px;
  color-scheme:dark;
}
/* 3. hele palett (HANDOFF v03): data-theme="light" <html>-il, vaikimisi prefers-color-scheme, valik localStorage'is */
:root[data-theme="light"]{
  --bg:#f6f5fb; --bg2:#ffffff; --fg:#17162b; --muted:#5e5c78; --line:rgba(90,64,208,.14); --card:#ffffff;
  --sol:#5a40d0; --nav-bg:rgba(246,245,251,.8); --surf:#ffffff; --inp:#ffffff; --inp-line:rgba(90,64,208,.3);
  --ghost:rgba(90,64,208,.06); --ghost-line:rgba(90,64,208,.3); --mock-bg:#ffffff; --foot-bg:rgba(255,255,255,.72);
  --cookie-bg:rgba(255,255,255,.97); --demo-bg:#e9e5fb; --pop-bg:#ffffff; --grid-line:rgba(90,64,208,.07);
  --shadow-card:0 10px 30px -18px rgba(90,64,208,.35); --shine:.38; --kar-base:rgba(23,22,43,.35); --ok:#5a40d0; --err:#b3203f;
  --btn-grad:linear-gradient(90deg,#2c55e0,#6038e6,#9626d6);
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px}
html,body{margin:0}
body{background:var(--bg);color:var(--fg);font-family:var(--font-body);line-height:1.6;overflow-x:hidden;overflow-x:clip;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--font-display);text-wrap:balance;margin:0;line-height:1.1}
a{color:inherit}
img{max-width:100%}
.wrap{max-width:calc(var(--wrap) + 32px);margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.gr{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
:focus-visible{outline:2px solid var(--sol);outline-offset:3px;border-radius:6px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

/* 1. aurora + kursorikuma */
#aurora{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
#aurora .blob{position:absolute;width:60vmax;height:60vmax;border-radius:50%;filter:blur(70px);opacity:.42;mix-blend-mode:screen;will-change:transform}
#aurora .b1{background:radial-gradient(circle,var(--g1),transparent 60%);top:-20vmax;left:-15vmax;animation:drift1 40s ease-in-out infinite alternate}
#aurora .b2{background:radial-gradient(circle,var(--g3),transparent 60%);bottom:-25vmax;right:-15vmax;animation:drift2 48s ease-in-out infinite alternate}
#aurora .b3{background:radial-gradient(circle,var(--g2),transparent 60%);top:30vh;left:35vw;width:40vmax;height:40vmax;opacity:.3;animation:drift3 34s ease-in-out infinite alternate}
#aurora .cursor{position:absolute;width:520px;height:520px;border-radius:50%;left:0;top:0;background:radial-gradient(circle,rgba(122,82,255,.35),rgba(61,107,255,.12) 45%,transparent 70%);filter:blur(30px);opacity:0;transition:opacity .6s;will-change:transform}
#aurora .grid{position:absolute;inset:0;background-image:linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);background-size:56px 56px;mask:radial-gradient(640px circle at var(--mx,50%) var(--my,30%),#000 10%,transparent 75%);-webkit-mask:radial-gradient(640px circle at var(--mx,50%) var(--my,30%),#000 10%,transparent 75%)}
@media (pointer:coarse){#aurora .cursor{display:none}}
@keyframes drift1{to{transform:translate(18vw,12vh) scale(1.15)}}
@keyframes drift2{to{transform:translate(-14vw,-16vh) scale(1.1)}}
@keyframes drift3{to{transform:translate(-10vw,14vh) scale(.9)}}
main,.nav,.site-footer,.demo-bar{position:relative;z-index:1}
main{overflow-x:hidden;overflow-x:clip}

/* demo-riba (ainult eelvaate hostil) */
.demo-bar{display:flex;gap:6px;align-items:center;justify-content:center;flex-wrap:wrap;padding:6px 12px;font:600 12px var(--font-display);background:var(--demo-bg);border-bottom:1px solid var(--line);color:var(--muted)}
.demo-bar span{margin-right:6px;letter-spacing:.08em;text-transform:uppercase}
.demo-bar a{text-decoration:none;padding:3px 9px;border-radius:999px;border:1px solid var(--line)}
.demo-bar a.active,.demo-bar a:hover{background:var(--grad);color:#fff;border-color:transparent}

/* 12. päis */
.nav{position:sticky;top:0;z-index:20;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);background:var(--nav-bg);border-bottom:1px solid var(--line)}
.nav-in{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:12px}
.brand{display:block;flex:none;line-height:0}
.brand img{height:46px;width:auto}
.logo-light{display:none}
:root[data-theme="light"] .logo-dark{display:none}
:root[data-theme="light"] .logo-light{display:block}
.menu{display:flex;gap:24px;list-style:none;margin:0;padding:0;font:500 15px var(--font-body)}
.menu a{text-decoration:none;color:var(--muted);position:relative;padding:4px 0}
.menu a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--grad);transform:scaleX(0);transform-origin:left;transition:transform .35s}
.menu a:hover{color:var(--fg)}.menu a:hover::after{transform:scaleX(1)}
.nav-right{display:flex;align-items:center;gap:14px}
.lang-switch{display:flex;gap:2px;font:600 13px var(--font-display)}
.lang-switch a{text-decoration:none;color:var(--muted);padding:6px 7px;border-radius:8px}
.lang-switch a:hover{color:var(--fg)}
.lang-switch a.active{color:var(--fg);background:rgba(122,82,255,.25)}
@media (max-width:960px){.menu{display:none}}


/* 9. nupud */
.btn{font:600 15px var(--font-display);padding:14px 24px;border-radius:14px;border:1px solid transparent;cursor:pointer;display:inline-flex;align-items:center;gap:10px;color:#fff;position:relative;overflow:hidden;transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s,border-color .3s;text-decoration:none}
.btn-sm{padding:10px 18px;font-size:14px}
.btn-p{background:var(--btn-grad);box-shadow:0 10px 30px -8px rgba(122,82,255,.6)}
.btn-p::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);transform:translateX(-120%);transition:transform 1.2s}
.btn-p:hover::before{transform:translateX(120%)}
.btn-p:hover{box-shadow:0 18px 44px -8px rgba(180,61,255,.6)}
.btn-s,.btn-g{background:var(--ghost);border-color:var(--ghost-line);backdrop-filter:blur(8px);color:var(--fg)}
.btn-s:hover,.btn-g:hover{border-color:var(--sol)}
.btn:disabled{opacity:.6;cursor:progress}

/* 2–4. hero */
.hero{padding-block:72px 56px;display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center}
@media (max-width:860px){.hero{grid-template-columns:1fr;padding-block:40px 28px}}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font:600 12px var(--font-display);letter-spacing:.14em;text-transform:uppercase;color:var(--sol);border:1px solid var(--line);border-radius:999px;padding:7px 14px;background:var(--ghost)}
.eyebrow .dot{width:7px;height:7px;border-radius:50%;background:var(--grad);box-shadow:0 0 12px var(--g2);animation:pulse 2s infinite;flex:none}
@keyframes pulse{50%{box-shadow:0 0 0 6px rgba(122,82,255,0)}}
.hero-text{align-self:start}
.hero h1{font-size:clamp(36px,5.6vw,68px);line-height:1.04;font-weight:800;letter-spacing:-.025em;overflow-wrap:break-word}
/* 1. hero karaoke (v06): fx.js jagab h1 sõnad nähtavateks ridadeks (.row, --i/--x/--y), gradient on h1 mõõtudes (--w/--h).
   Tsükkel (fx.js): .fill = read täituvad 2,2 s (viide .3 s + i*1,6 s, serval kuma), täis 6 s, .fade = tuhmuvad 0,9 s ülevalt alla (i*.15 s), paus .6 s.
   Ilma JS-ita on h1 kohe gradiendis. */
.kar{position:relative;--w:0px;--h:0px;background:linear-gradient(120deg,var(--g1) 0%,var(--g2) 55%,var(--g3) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
html.js .kar{background:none;color:color-mix(in srgb,var(--fg) 30%,transparent)}
.kar .row{position:relative;display:block;width:max-content;max-width:100%;white-space:pre}
.kar .row::before{content:attr(data-t) / "";position:absolute;left:0;top:-.2em;white-space:pre;padding:.2em 0 .18em;pointer-events:none;user-select:none;
  background-image:linear-gradient(120deg,var(--g1) 0%,var(--g2) 55%,var(--g3) 100%);
  background-repeat:no-repeat;background-size:var(--w) calc(var(--h) + .6em);background-position:calc(-1 * var(--x)) calc(-1 * var(--y));
  -webkit-background-clip:text;background-clip:text;color:transparent;
  clip-path:inset(-.2em 100% -.3em 0)}
.kar .row::after{content:"";position:absolute;top:0;bottom:0;left:0;width:28px;margin-left:-14px;border-radius:50%;pointer-events:none;opacity:0;
  background:radial-gradient(closest-side,var(--f1),transparent);filter:blur(6px);mix-blend-mode:screen}
:root[data-theme="light"] .kar .row::after{background:radial-gradient(closest-side,var(--g2),transparent);mix-blend-mode:normal}
.kar.fill .row::before{animation:rowfill 2.2s cubic-bezier(.6,0,.3,1) forwards;animation-delay:calc(.3s + var(--i) * 1.6s - var(--el,0s))}
.kar.fill .row::after{animation:rowglow 2.2s cubic-bezier(.6,0,.3,1) forwards;animation-delay:calc(.3s + var(--i) * 1.6s - var(--el,0s))}
.kar.fade .row::before{clip-path:inset(-.2em 0 -.3em 0);animation:rowfade .9s ease forwards;animation-delay:calc(var(--i) * .15s)}
.kar.done .row::before{clip-path:inset(-.2em 0 -.3em 0)}
@keyframes rowfill{to{clip-path:inset(-.2em 0 -.3em 0)}}
@keyframes rowglow{0%{left:0;opacity:0}6%{opacity:.5}90%{opacity:.5}100%{left:100%;opacity:0}}
@keyframes rowfade{to{opacity:0}}
@media (prefers-reduced-motion:reduce){.kar .row::before{clip-path:inset(-.2em 0 -.3em 0)}.kar .row::after{display:none}}
.hero .lead{font-size:clamp(16px,1.6vw,19px);color:var(--fg);opacity:.9;max-width:58ch;margin:22px 0 10px}
.hero .lead2{color:var(--muted);max-width:58ch;margin:0 0 28px}
.ctas{display:flex;gap:12px;flex-wrap:wrap}
.plates{position:relative;height:380px;perspective:1000px}
@media (max-width:860px){.plates{height:240px;max-width:420px;width:100%;justify-self:center}}
/* 4. plaadid (v05): float on ümbrisel .pw (translate/rotate), plaadi transform jääb parallaksile + hover-kaldele (±6°, tõus 8 px) */
.pw{position:absolute;perspective:700px}
.pw1{width:62%;height:58%;left:4%;top:8%;animation:float1 9s ease-in-out infinite}
.pw2{width:62%;height:58%;left:34%;top:34%;animation:float2 11s ease-in-out infinite}
.pw3{right:0;top:2%;z-index:2;animation:float1 9s ease-in-out infinite reverse}
.plate{--px:0px;--py:0px;--lift:0px;--hrx:0deg;--hry:0deg;--prx:0deg;--pry:0deg;position:relative;width:100%;height:100%;border-radius:28px;border:1.5px solid transparent;transform-style:preserve-3d;will-change:transform;
  transform:translate(var(--px),var(--py)) translateY(calc(var(--lift) * -1)) rotateY(calc(var(--pry) + var(--hry))) rotateX(calc(var(--prx) + var(--hrx)));
  transition:transform .7s cubic-bezier(.2,.8,.2,1),border-color .7s,box-shadow .7s;overflow:hidden}
/* läige: kaldus valgusriba üle plaadi, 1,8 s liikumist, ülejäänud aja paigal; tume .22/.32/.18, hele soft-light .55/.7/.45 */
.plate::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,var(--sh,.22)) 50%,transparent 65%);background-size:280% 100%;background-position:100% 0;background-repeat:no-repeat}
:root[data-theme="light"] .plate::after{--sh:1;mix-blend-mode:soft-light;opacity:var(--sho,.55)}
/* heledal valgel plaadil (p2 klaas, p3) ei ole valge riba nähtav: valge südamik + violetne serv, tavaline segu */
:root[data-theme="light"] .p2::after,:root[data-theme="light"] .p3::after{mix-blend-mode:normal;background-image:linear-gradient(115deg,transparent 36%,rgba(122,82,255,.16) 45%,rgba(255,255,255,.95) 50%,rgba(122,82,255,.16) 55%,transparent 64%)}
:root[data-theme="light"] .p2::before{background:radial-gradient(240px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.95),rgba(122,82,255,.2) 38%,transparent 60%)}
.p1{--sh:.22;--sho:.55;background:linear-gradient(45deg,var(--i1),var(--i2) 55%,var(--i3));box-shadow:0 40px 80px -30px rgba(61,107,255,.7)}
.p1::after{animation:sheenA 8s linear 0s infinite}
.p2{--sh:.32;--sho:.7;background:linear-gradient(135deg,rgba(224,216,255,.85),rgba(139,107,255,.6));border-color:rgba(255,255,255,.45);backdrop-filter:blur(10px);box-shadow:0 40px 80px -30px rgba(180,61,255,.6)}
.p2::after{animation:sheenB 10s linear 2.5s infinite}
.p2::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(240px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.35),transparent 60%);opacity:0;transition:opacity .45s}
@keyframes sheenA{0%{background-position:100% 0}22.5%,100%{background-position:0 0}}
@keyframes sheenB{0%{background-position:100% 0}18%,100%{background-position:0 0}}
@keyframes sheenC{0%{background-position:100% 0}16.4%,100%{background-position:0 0}}
/* „Töö valmis" plaat: lehe värvides, gradient-ringis linnuke */
.p3{--sh:.18;--sho:.45;width:auto;height:auto;padding:11px 18px 11px 12px;border-radius:18px;display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.06);border:1px solid var(--line);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);white-space:nowrap}
.p3::after{animation:sheenC 11s linear 5s infinite}
.p3 .ok{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--g1),var(--g3));color:#fff;flex:none;animation:okPulse 5s ease-in-out infinite}
.p3 .ok svg{width:13px;height:13px}
.p3t{font:600 13px var(--font-display);letter-spacing:.02em;color:var(--fg)}
@keyframes okPulse{0%,100%{box-shadow:0 0 0 0 rgba(122,82,255,.35)}50%{box-shadow:0 0 14px 4px rgba(122,82,255,.35)}}
@media (hover:hover) and (pointer:fine){:root[data-theme="light"] .plate.p2:hover{border-color:rgba(122,82,255,.7)}}
@keyframes okPop{50%{scale:1.25}}
/* hover (ainult hiir): tõus 8 px, kalle kursori järgi ±6° (fx.js seab --hrx/--hry), ääris süttib, vari tugevneb; lahkudes 0,7 s */
@media (hover:hover) and (pointer:fine){
  .plate:hover{--lift:8px;border-color:rgba(224,216,255,.6);box-shadow:0 50px 100px -30px rgba(122,82,255,.7);transition-duration:.45s}
  .p2:hover::before{opacity:1}
  .p3:hover{box-shadow:0 0 0 .5px rgba(224,216,255,.6),0 50px 100px -30px rgba(122,82,255,.7)}
  .p3:hover .ok{animation:okPulse 5s ease-in-out infinite,okPop .4s ease-out}
}
@keyframes float1{50%{translate:0 -14px;rotate:-1deg}}
@keyframes float2{50%{translate:0 12px;rotate:1deg}}

/* 5. hingav joon sektsioonide vahel */
.breath{height:1px;max-width:var(--wrap);margin:0 auto;background:linear-gradient(90deg,transparent,var(--g1),var(--g2),var(--g3),transparent);background-size:200% 100%;opacity:.25;animation:breath 10s ease-in-out infinite;position:relative;z-index:1}
@keyframes breath{0%,100%{opacity:.25;background-position:0 0}50%{opacity:.6;background-position:100% 0}}

/* sektsioonid + 10. reveal */
section.s{padding-block:76px}
.s-head{display:flex;justify-content:space-between;align-items:end;gap:20px;flex-wrap:wrap;margin-bottom:30px}
.s-head h2,.contact h2,.prod h2{font-size:clamp(28px,4vw,44px);font-weight:800;letter-spacing:-.02em;margin-top:14px}
.s-head p{color:var(--muted);margin:8px 0 0;max-width:56ch}
.reveal{transition:opacity .9s cubic-bezier(.2,.8,.2,1),transform .9s cubic-bezier(.2,.8,.2,1)}
.reveal.sub{transition-delay:.12s}
.reveal.pre{opacity:.001;transform:translateY(18px)}

/* 6. 3D-teenusekaardid */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
.card{position:relative;border-radius:20px;padding:28px;background:var(--card);box-shadow:var(--shadow-card);border:1px solid var(--line);transform-style:preserve-3d;transition:transform .2s ease-out,border-color .4s,opacity .9s,--hov .4s;--rx:0deg;--ry:0deg;translate:0 calc(var(--bob) + var(--hov));animation:bob 8s ease-in-out infinite;animation-delay:calc(var(--i,0) * .7s);transform:perspective(900px) rotateX(var(--rx)) rotateY(var(--ry))}
.card.reveal.pre{transform:perspective(900px) translateY(18px)}
.card::before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(360px circle at var(--cx,50%) var(--cy,50%),rgba(122,82,255,.28),transparent 60%);opacity:0;transition:opacity .4s;pointer-events:none}
.card::after{content:"";position:absolute;inset:-1px;border-radius:21px;padding:1px;background:conic-gradient(from var(--ang),var(--g1),var(--g2),var(--g3),var(--g1));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .4s;pointer-events:none}
.card:hover::before,.card:hover::after,.card:focus-within::after{opacity:1}
.card:hover::after{animation:spin 3s linear infinite}
@property --bob{syntax:"<length>";inherits:false;initial-value:0px}
@property --hov{syntax:"<length>";inherits:false;initial-value:0px}
@keyframes bob{50%{--bob:-4px}}
.card:hover,.card:focus-within{--hov:-3px;border-color:rgba(122,82,255,.55)}
@property --ang{syntax:"<angle>";inherits:false;initial-value:0deg}
@keyframes spin{to{--ang:360deg}}
.card .ico{position:relative;width:46px;height:46px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(135deg,var(--i1),var(--i3));color:#fff;margin-bottom:18px;transform:translateZ(30px);box-shadow:0 10px 24px -8px rgba(122,82,255,.7)}
.card .ico::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:0 0 0 0 var(--g2);opacity:.35;animation:icoPulse 5s ease-in-out infinite;pointer-events:none}
@keyframes icoPulse{50%{box-shadow:0 0 14px 2px var(--g2);opacity:.6}}
.card .ico svg{width:24px;height:24px}
.card h3{font-size:20px;margin-bottom:8px;transform:translateZ(20px)}
.card>p{margin:0;color:var(--muted);font-size:15px;transform:translateZ(10px)}
.more-btn{margin-top:14px;position:relative;z-index:1;display:none;appearance:none;background:none;border:0;padding:0;cursor:pointer;font:600 14px var(--font-display);color:var(--sol);align-items:center;gap:6px}
.more-btn i{font-style:normal;transition:transform .3s}
.card:hover .more-btn i{transform:translateX(5px)}
html.js .more-btn{display:inline-flex}
html.js .nojs-detail{display:none}
.svc-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1080px){.svc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.svc-grid{grid-template-columns:1fr}}

/* 8. tootekaart */
.prod{display:grid;grid-template-columns:1fr 1.05fr;gap:40px;align-items:center;border:1px solid var(--line);border-radius:28px;padding:44px;background:linear-gradient(135deg,rgba(61,107,255,.08),rgba(180,61,255,.06));position:relative;overflow:hidden}
@media (max-width:860px){.prod{grid-template-columns:1fr;padding:26px}}
.prod::before{content:"";position:absolute;width:60%;height:140%;top:-20%;right:-20%;background:radial-gradient(circle,rgba(122,82,255,.25),transparent 60%);filter:blur(40px);pointer-events:none}
.prod p{color:var(--muted)}
.prod ul{list-style:none;padding:0;margin:18px 0 26px;display:grid;gap:10px}
.prod li{display:flex;gap:10px;align-items:center;font-size:15px}
.prod li::before{content:"";width:18px;height:18px;border-radius:50%;background:var(--grad);flex:none;box-shadow:0 0 0 4px rgba(122,82,255,.15)}
.mock{position:relative;border-radius:18px;border:1px solid var(--line);background:var(--mock-bg);padding:14px;transform:perspective(1200px) rotateY(-8deg) rotateX(4deg);transition:transform .6s;box-shadow:0 50px 100px -40px rgba(61,107,255,.6)}
.prod:hover .mock{transform:perspective(1200px) rotateY(-3deg) rotateX(1deg)}
.mock .bar{display:flex;gap:6px;margin-bottom:12px}.mock .bar i{width:10px;height:10px;border-radius:50%;background:var(--line);display:block}
.mock .row{display:grid;grid-template-columns:1.4fr 1fr 1fr .7fr;gap:8px;margin-bottom:8px}
.mock .row span{height:12px;border-radius:6px;background:rgba(185,172,255,.14)}
.mock .row.h span{background:rgba(185,172,255,.3);height:14px}
.mock .row span.g{background:var(--grad);opacity:.85}
.mock .row span.d,.mock .row span.s{font:600 11px/12px var(--font-display);color:var(--muted);height:auto;background:none;white-space:nowrap}
.mock .row span.s{border-radius:999px;padding:1px 8px;text-align:center;background:rgba(185,172,255,.14);color:var(--fg)}
.mock .row span.s1{background:rgba(122,82,255,.18);color:var(--sol)}.mock .row span.s2{background:rgba(180,61,255,.18);color:#e3c6ff}.mock .row span.s3{background:linear-gradient(90deg,var(--g1),var(--g2));color:#fff}
.mock .row span{transition:opacity .6s}
.mock .row.out span{opacity:0}
.rakendused[hidden]{display:none}
.mock .prog{height:8px;border-radius:4px;background:rgba(185,172,255,.14);overflow:hidden;margin-top:12px}
.mock .prog i{display:block;height:100%;width:82%;background:var(--grad);transform-origin:left;animation:grow 3s ease-in-out infinite alternate}
@keyframes grow{from{transform:scaleX(.37)}to{transform:scaleX(1)}}

/* 11. kontakt + CTA-rõngas */
.contact{position:relative;padding-block:90px;display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:start}
@media (max-width:900px){.contact{grid-template-columns:1fr;gap:30px;padding-block:60px}}
.contact .ring{position:absolute;left:76%;top:50%;width:min(600px,52vw);aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;mask:radial-gradient(circle,transparent 55%,#000 56%,#000 70%,transparent 71%);-webkit-mask:radial-gradient(circle,transparent 55%,#000 56%,#000 70%,transparent 71%);background:conic-gradient(from var(--ang),transparent,var(--g2),transparent 40%);animation:spin 8s linear infinite;opacity:.35;z-index:-1}
@media (max-width:900px){.contact .ring{display:none}}
.contact-intro p{color:var(--muted);max-width:50ch}
.contact-links{display:grid;gap:12px;margin-top:26px}
.contact-brand{font:700 24px var(--font-display);letter-spacing:-.01em}
.contact-brand .cb-main{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.contact-brand .cb-sub,.contact-brand .cb-form{color:var(--fg)}
.cl{display:flex;gap:10px;align-items:center;color:var(--fg);text-decoration:none;font-size:15px}
.cl svg{width:20px;height:20px;color:var(--sol);flex:none}
.cl address{font-style:normal}
a.cl:hover{color:var(--sol)}
.contact-form{position:relative;background:var(--surf);border:1px solid var(--line);border-radius:24px;padding:28px;backdrop-filter:blur(12px);display:grid;gap:16px}
.form-maintenance{place-items:center;text-align:center;min-height:200px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:560px){.form-row{grid-template-columns:1fr}.contact-form{padding:20px}}
.contact-form label{display:grid;gap:6px;font-size:13px;color:var(--muted);font-weight:600}
.contact-form input,.contact-form select,.contact-form textarea{font:inherit;font-size:16px;font-weight:400;color:var(--fg);background:var(--inp);border:1px solid var(--inp-line);border-radius:12px;padding:12px 14px;width:100%;transition:border-color .3s,box-shadow .3s}
.contact-form select option{background:var(--bg2)}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{outline:none;border-color:var(--g2);box-shadow:0 0 0 3px rgba(122,82,255,.25)}
.contact-form .consent{display:flex;gap:10px;align-items:flex-start;font-weight:500}
.contact-form .consent input{width:18px;height:18px;flex:none;margin-top:2px;accent-color:var(--g2)}
.contact-form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.btn-submit{justify-self:start}
.form-status{margin:0;min-height:1.4em;font-size:14px;color:var(--muted)}
.form-status-success{color:var(--ok)}
.form-status-error{color:var(--err)}

/* privaatsus / 404 */
.doc{padding-block:64px 90px;max-width:820px}
.doc h1{font-size:clamp(30px,4.4vw,48px);font-weight:800;letter-spacing:-.02em}
.doc h2{font-size:22px;margin:34px 0 8px}
.doc p{color:var(--muted)}
.doc .lead{font-size:18px;color:var(--fg);opacity:.9;margin-top:16px}
.nf{text-align:center;padding-block:120px}

/* jalus */
.site-footer{border-top:1px solid var(--line);background:var(--foot-bg);color:var(--muted);font-size:14px;line-height:20px}
.foot-in{display:flex;justify-content:space-between;align-items:center;gap:16px 28px;flex-wrap:wrap;padding-block:28px}
.foot-col{display:flex;gap:10px 22px;align-items:center;flex-wrap:wrap}
.site-footer a{text-decoration:none;color:var(--muted)}
.site-footer a:hover{color:var(--fg)}
.foot-col:first-child{column-gap:10px}
.foot-made img{height:34px;width:auto;display:block;margin-block:-7px;transition:filter .6s}
.foot-lang{display:none}
.foot-made a:hover img{filter:drop-shadow(0 0 10px rgba(122,82,255,.7))}


/* küpsiseteavitus */
.cookie-banner{position:fixed;left:16px;right:16px;bottom:16px;z-index:50;max-width:640px;margin:0 auto;display:flex;gap:16px;align-items:center;justify-content:space-between;background:var(--cookie-bg);border:1px solid var(--line);border-radius:18px;padding:14px 18px;backdrop-filter:blur(12px);font-size:14px;color:var(--muted);box-shadow:0 20px 50px -20px rgba(0,0,0,.6)}
.cookie-banner[hidden]{display:none}
.cookie-banner p{margin:0}
.cookie-banner a{color:var(--sol)}
.cookie-banner .btn{white-space:nowrap;min-width:120px;flex:none;justify-content:center}
@media (max-width:600px){.cookie-banner{flex-direction:column;align-items:stretch;text-align:center}}

/* ---------- v03 ---------- */
/* hele teema: aurora, ghost-nupud */
:root[data-theme="light"] #aurora .blob{opacity:.18;mix-blend-mode:multiply}
:root[data-theme="light"] #aurora .b3{opacity:.18}
:root[data-theme="light"] #aurora .cursor{background:radial-gradient(circle,rgba(122,82,255,.22),rgba(61,107,255,.08) 45%,transparent 70%)}
:root[data-theme="light"] .p3{background:#fff;box-shadow:var(--shadow-card)}
:root[data-theme="light"] .plate.p2{background:linear-gradient(135deg,rgba(255,255,255,.9),rgba(139,107,255,.45));border-color:rgba(90,64,208,.35)}
:root[data-theme="light"] .mock .row span.s1{color:#4a32b8}:root[data-theme="light"] .mock .row span.s2{color:#7a1fb0}
:root[data-theme="light"] .btn-p{box-shadow:0 10px 30px -10px rgba(96,56,230,.55)}

/* 3/11. päis: teemalüliti, Intranet-nupp, "Kliendile", burger */
.nav-in{gap:14px}
.menu{gap:20px;font-size:14.5px;align-items:center}
.menu-btn{appearance:none;background:none;border:0;padding:4px 0;cursor:pointer;font:inherit;color:var(--muted);position:relative}
.menu-btn::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--grad);transform:scaleX(0);transform-origin:left;transition:transform .35s}
.menu-btn:hover{color:var(--fg)}.menu-btn:hover::after{transform:scaleX(1)}
.nav-right{gap:10px}
.ib{position:relative;display:inline-flex;flex:none}
.btn.ib-btn{width:40px;height:40px;padding:0;border-radius:50%;justify-content:center;gap:0;flex:none}
.ib-btn svg{width:18px;height:18px;flex:none}
.theme-btn .i-moon{display:none}
:root[data-theme="light"] .theme-btn .i-sun{display:none}
:root[data-theme="light"] .theme-btn .i-moon{display:block}
.menu-lang{display:none}
.burger{display:none;width:40px;height:40px;flex:none;border-radius:50%;padding:0;cursor:pointer;background:var(--btn-grad);border:1px solid transparent;color:#fff;box-shadow:0 10px 30px -8px rgba(122,82,255,.6);align-items:center;justify-content:center;flex-direction:column;gap:4px;transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s}
.burger:hover{box-shadow:0 18px 44px -8px rgba(180,61,255,.6)}
.burger i{display:block;width:16px;height:2px;border-radius:2px;background:currentColor;transition:transform .25s,opacity .25s}
.burger[aria-expanded="true"] i:nth-child(1){transform:translateY(6px) rotate(45deg)}
.burger[aria-expanded="true"] i:nth-child(2){opacity:0}
.burger[aria-expanded="true"] i:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
@media (max-width:1180px){
  .burger{display:inline-flex}
  .menu{display:none;position:absolute;left:max(16px,env(safe-area-inset-left,0px));right:max(16px,env(safe-area-inset-right,0px));top:calc(100% + 10px);flex-direction:column;align-items:stretch;gap:0;padding:8px 20px 20px;background:linear-gradient(var(--card),var(--card)),var(--pop-bg);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid var(--line);border-radius:20px;box-shadow:0 40px 100px -30px rgba(61,107,255,.55);max-height:calc(100dvh - 100px);overflow:auto}
  .menu.open{display:flex}
  .menu li{border-bottom:1px solid var(--line)}
  .menu li:last-child{border-bottom:0}
  .menu a,.menu-btn{display:block;width:100%;text-align:left;padding:14px 4px}
  .menu a::after,.menu-btn::after{display:none}
}
@media (max-width:899px){.cta-d,.lang-d{display:none}.menu-lang{display:block;padding:12px 0 14px}.menu-lang .lang-switch{display:grid;grid-template-columns:repeat(auto-fit,minmax(46px,1fr));gap:6px}.menu-lang .lang-switch a{display:flex;align-items:center;justify-content:center;width:auto;min-height:44px;padding:0 6px;font-size:14px;border:1px solid var(--line);border-radius:12px}.menu-lang .lang-switch a.active{background:var(--btn-grad);border-color:transparent;color:#fff}}
@media (max-width:359px){.brand img{height:34px;width:auto}.nav-right{gap:4px!important}}
@media (max-width:560px){.brand img{height:44px}.nav-in{padding-block:10px;gap:8px}.nav-right{gap:6px}.lang-switch a{padding:6px 5px}}

/* 4. h1 nupp-ala ja plaadi mobiil */
@media (max-width:560px){.p3{padding:9px 14px 9px 9px}}

/* 1/6. teenuste kaardid + modaal */
.card.is-open{visibility:hidden}
.more-btn:focus-visible{outline:2px solid var(--sol);outline-offset:4px}
.ovl{position:fixed;inset:0;z-index:100;background:color-mix(in srgb,var(--bg) 65%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;transition:opacity .5s}
.ovl.on{opacity:1}
html.modal-open{overflow:hidden}
.pop{position:fixed;z-index:101;display:flex;flex-direction:column;border-radius:20px;background:var(--pop-bg);border:1px solid var(--line);overflow:hidden;box-shadow:0 40px 100px -30px rgba(61,107,255,.55);transition:left .5s cubic-bezier(.2,.8,.2,1),top .5s cubic-bezier(.2,.8,.2,1),width .5s cubic-bezier(.2,.8,.2,1),height .5s cubic-bezier(.2,.8,.2,1)}
.pop::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1.5px;background:conic-gradient(from var(--ang),var(--g1),var(--g2),var(--g3),var(--g1));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;animation:spin 3s linear infinite}
.pop-ghost{position:absolute;inset:0;padding:28px;transition:opacity .25s;pointer-events:none}
.pop-ghost .more-btn,.pop-ghost template{display:none}
.pop-ghost .card-clone{display:block}
.pop.open .pop-ghost{opacity:0}
.pop-in{position:relative;flex:1;min-height:0;overflow:auto;padding:36px 36px 32px;opacity:0;transition:opacity .35s .2s}
.pop.open .pop-in{opacity:1}
@media (max-width:560px){.pop-in{padding:28px 22px 24px}}
.pop-x{position:absolute;top:12px;right:12px;z-index:2;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;padding:0;cursor:pointer;background:var(--ghost);border:1px solid var(--ghost-line);color:var(--fg);font:400 22px/1 var(--font-body)}
.pop-x:hover{border-color:var(--sol)}
.pop .ico{position:relative;width:48px;height:48px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(135deg,var(--i1),var(--i3));color:#fff;margin-bottom:18px;box-shadow:0 10px 24px -8px rgba(122,82,255,.7)}
.pop .ico svg{width:24px;height:24px}
.pop h3{font-size:clamp(24px,3.4vw,30px);margin-bottom:12px;padding-right:36px}
.pop p{color:var(--muted);margin:0 0 12px}
.pop h4{font:600 12px var(--font-display);letter-spacing:.14em;text-transform:uppercase;color:var(--sol);margin:20px 0 10px}
.chk{list-style:none;padding:0;margin:0 0 24px;display:grid;gap:10px}
.chk li{display:flex;gap:10px;align-items:flex-start;font-size:15px}
.chk li::before{content:"";width:18px;height:18px;margin-top:3px;border-radius:50%;flex:none;background:var(--grad) ;box-shadow:0 0 0 4px rgba(122,82,255,.15)}
.client-form{display:grid;gap:10px;margin-top:6px}
.client-form label{font:600 13px var(--font-display);color:var(--muted)}
.client-form input{font:600 18px var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--fg);background:var(--inp);border:1px solid var(--inp-line);border-radius:12px;padding:13px 14px;width:100%}
.client-form input::placeholder{color:var(--muted);opacity:.55}
.client-form input:focus{outline:none;border-color:var(--g2);box-shadow:0 0 0 3px rgba(122,82,255,.25)}
.client-form input[aria-invalid="true"]{border-color:var(--err)}
.client-err{margin:0;min-height:1.3em;font-size:14px;color:var(--err)!important}
.client-form .btn{justify-self:start}
.client-help{font-size:13px;margin:6px 0 0!important}
.btn .spin{display:none;width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;animation:rot .8s linear infinite}
.btn.loading .spin{display:inline-block}
@keyframes rot{to{transform:rotate(360deg)}}

/* 8-10. hinnad + kalkulaator: üks kaardistiil, ühine 3-veeru võrgustik */
.pkgs,.calc{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.pkg,.calc-form,.calc-card{border-radius:20px;padding:28px;background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-card)}
.pkg h3,.calc-title{font-size:22px;margin:0 0 10px}
.ring-ico,.calc-form legend b{width:32px;height:32px;border-radius:50%;background:var(--btn-grad);color:#fff;display:grid;place-items:center;flex:none;font:700 14px var(--font-display)}
.ring-ico{margin-bottom:16px;transform:translateZ(30px);box-shadow:0 8px 20px -8px rgba(122,82,255,.7)}
.ring-ico svg{width:17px;height:17px}
.pkg-price,.calc-price{font:800 clamp(32px,3.6vw,40px)/1.1 var(--font-display);font-variant-numeric:tabular-nums;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;margin:0 0 14px}
.chips{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}
.chips li,.opt span{display:inline-block;padding:8px 14px;border-radius:999px;border:1px solid var(--line);color:var(--muted);font:600 13.5px/1.25 var(--font-display);transition:.3s}
.pkg-note{color:var(--muted);font-size:14px;margin:16px 0 32px}
.calc{align-items:start}
.calc-form{grid-column:span 2;display:grid;gap:22px}
.calc-form fieldset{border:0;margin:0;padding:0;min-width:0}
.calc-form legend{font:700 15px var(--font-display);margin-bottom:12px;padding:0;display:flex;gap:10px;align-items:center}
.opts{display:flex;flex-wrap:wrap;gap:8px}
.opt{position:relative;cursor:pointer}
.opt input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.opt small{color:var(--sol);font-size:11px;margin-left:6px;opacity:.9}
.opt:hover span{border-color:var(--sol);color:var(--fg)}
.opt input:checked+span{background:var(--btn-grad);border-color:transparent;color:#fff}
.opt input:focus-visible+span{outline:2px solid var(--sol);outline-offset:3px}
.calc-card{position:sticky;top:96px;display:grid;gap:12px;align-content:start}
.calc-card .calc-title{margin:0}
.calc-card .calc-price{margin:0;min-height:1.1em}
.calc-meta{margin:0;color:var(--muted);font-size:14px}
.calc-meta b{color:var(--fg);font-weight:600}
.calc-inc>span{display:block;margin-bottom:8px}
.calc-card .btn{justify-self:start;margin-top:6px}
.calc-note{color:var(--muted);font-size:12px}
@media (max-width:860px){.pkgs,.calc{grid-template-columns:1fr}.calc-form{grid-column:auto}.calc-card{position:static}}
@media (max-width:560px){.pkg,.calc-form,.calc-card{padding:22px}}

.card{display:flex;flex-direction:column}
.card>.more-btn{margin-top:auto;padding-top:14px;align-self:flex-start}
.card>p.pkg-price{color:transparent;margin:0 0 14px;font:800 clamp(32px,3.6vw,40px)/1.1 var(--font-display)}

.foot-made img.logo-light{display:none}
:root[data-theme="light"] .foot-made img.logo-dark{display:none}
:root[data-theme="light"] .foot-made img.logo-light{display:block}

/* ---------- v05 ---------- */
/* 5. hinnad: paketi omadused linnukestega (sama linnuke kalkulaatori tulemuses), kalkulaatori lisad hinnaga kiibi sees */
.ticks{list-style:none;padding:0;margin:0;display:grid;gap:9px}
.ticks li{display:flex;gap:10px;align-items:flex-start;font-size:15px;color:var(--fg);line-height:1.4}
.ticks li::before{content:"";width:18px;height:18px;margin-top:1px;border-radius:50%;flex:none;background:var(--grad) center/11px no-repeat;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='5 12.5 10 17.5 19 7'/%3E%3C/svg%3E"),var(--grad);
  background-size:11px,100%;box-shadow:0 0 0 4px rgba(122,82,255,.15)}
.calc-inc .ticks{gap:7px}.calc-inc .ticks li{font-size:14px}
.calc-inc .ticks li.b{font-weight:700}
.pkg{cursor:pointer;--sel:0px;translate:0 calc(var(--bob) + var(--hov) + var(--sel))}
.pkg.sel{--sel:-4px;border-color:rgba(122,82,255,.75);box-shadow:0 0 0 1px rgba(122,82,255,.45),0 24px 50px -24px rgba(122,82,255,.7)}
.pkg.sel::after{opacity:1}
.opts.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.opts.grid2 .opt span{display:flex;justify-content:space-between;align-items:baseline;gap:10px;width:100%;height:100%}
.opt span em{font-style:normal}
.opt span small{color:var(--sol);font-size:11.5px;font-weight:600;opacity:.8;white-space:nowrap;margin:0}
.opt input:checked+span small{color:#fff;opacity:.85}
@media (max-width:480px){.opts.grid2{grid-template-columns:1fr}}

/* 6. teenusekaardid: „Loe lähemalt" samal kõrgusel */
.svc-grid .card>p:not(.nojs-detail){margin-bottom:0}

/* 8. „Kuidas see käib": 4 sammu reas (mobiilis 2×2), joon täitub vaatesse tulles 1,6 s, numbrid süttivad järjest */
.steps{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;padding-top:58px}
.steps-line{position:absolute;left:12.5%;right:12.5%;top:20px;height:2px;border-radius:2px;background:var(--line);overflow:hidden}
.steps-line::after{content:"";position:absolute;inset:0;background:var(--grad);transform:scaleX(0);transform-origin:left;transition:transform 1.6s cubic-bezier(.6,0,.3,1)}
.steps.lit .steps-line::after{transform:scaleX(1)}
.step-n{position:absolute;top:-58px;left:50%;width:42px;height:42px;margin-left:-21px;border-radius:50%;display:grid;place-items:center;font:800 16px var(--font-display);color:var(--muted);background:var(--bg);border:1.5px solid var(--line);transition:color .5s,background .5s,border-color .5s,box-shadow .5s;transition-delay:calc(var(--i) * .4s + .2s)}
.steps.lit .step-n{color:#fff;background:var(--btn-grad);border-color:transparent;box-shadow:0 0 0 5px rgba(122,82,255,.15),0 10px 26px -8px rgba(122,82,255,.8)}
html:not(.js) .step-n,.steps.nofx .step-n{color:#fff;background:var(--btn-grad);border-color:transparent}
html:not(.js) .steps-line::after,.steps.nofx .steps-line::after{transform:none}
.step{cursor:pointer}
@media (max-width:860px){.steps{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:92px}.steps-line{display:none}}
@media (max-width:480px){.steps{gap:12px;row-gap:92px}.step{padding:20px}.step h3{font-size:18px}}

/* ---------- v06 ---------- */
/* 3. Intraneti modaal */
.intra-form input{font:400 16px var(--font-body);letter-spacing:0;text-transform:none}
.intra-form .btn{margin-top:6px}
.intra-link{justify-self:start;font-size:13px;color:var(--sol);text-decoration:none;margin-top:4px}
.intra-link:hover{text-decoration:underline}

/* 5. hero plaadid: tehtud tööd klaasi taga (fx.js vahetab iga 3,5 s, ristsulandus .9 s; tagaplaat 1,7 s nihkega) */
.shots{position:absolute;inset:0;border-radius:inherit;overflow:hidden;pointer-events:none;
  -webkit-mask-image:radial-gradient(ellipse 75% 80% at 50% 45%,#000 45%,transparent 100%);mask-image:radial-gradient(ellipse 75% 80% at 50% 45%,#000 45%,transparent 100%)}
.shots img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top;filter:blur(1.2px) saturate(.9);opacity:0;transition:opacity .9s ease}
.shots img.on{opacity:var(--so,.55)}
.p1 .shots{--so:.25}
/* pilt annab ainult heleduse (luminosity), värv tuleb plaadi gradiendist; multiply hoiab valged lehed lillakad */
.shots img{mix-blend-mode:luminosity}
.p1 .shots{background:linear-gradient(45deg,var(--i1),var(--i2) 55%,var(--i3))}
.p2 .shots{background:linear-gradient(135deg,rgba(224,216,255,.85),rgba(139,107,255,.6))}
:root[data-theme="light"] .p2 .shots{background:linear-gradient(135deg,rgba(255,255,255,.9),rgba(139,107,255,.45))}
.shots::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(190,170,255,.9),rgba(139,107,255,.75));mix-blend-mode:multiply}
.p1 .shots::after{display:none}

/* 6. „Personaalne lahendus": lehe mock (tokenid, vahetub koos lehega), progressiriba nupu kohal */
.sk-wrap{position:relative;display:inline-flex}
.sk-prog{position:absolute;left:0;right:0;top:-9px;height:3px;border-radius:3px;background:var(--line);overflow:hidden;opacity:0;transition:opacity .2s}
.sk-prog b{display:block;height:100%;background:var(--btn-grad);transform-origin:left}
.sk-wrap.on .sk-prog{opacity:1}
.lm{position:relative;border:1px solid var(--line);border-radius:18px;background:var(--bg);padding:16px;display:grid;gap:12px;box-shadow:0 40px 80px -40px rgba(61,107,255,.55)}
.lm i,.lm span,.lm-title,.lm-sub{display:block;border-radius:6px}
.lm-bar{display:flex;align-items:center;gap:10px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.lm-logo{width:18px;height:18px;border-radius:6px!important;background:var(--grad)}
.lm-nav{width:30px;height:8px;background:var(--line);border-radius:999px!important}
.lm-cta{width:46px;height:18px;margin-left:auto;background:var(--btn-grad);border-radius:999px!important}
.lm-hero{position:relative;display:grid;gap:8px;padding-top:4px;overflow:hidden}
.lm-title{position:relative;overflow:hidden;height:26px;width:78%;background:var(--grad)}
.lm-title::after{content:"";position:absolute;inset:0;width:60%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.45),transparent);transform:translateX(-120%);animation:lmShim 9s ease-in-out infinite}
.lm-sub2{width:40%!important}
.lm-sub{height:10px;width:60%;background:var(--line)}
.lm-cards{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:2px}
.lm-card{position:relative;border:1px solid var(--line);border-radius:14px;background:var(--card);padding:12px;display:grid;gap:7px}
.lm-card i{width:26px;height:26px;border-radius:8px;background:linear-gradient(135deg,var(--i1),var(--i3))}
.lm-card span{height:8px;background:var(--line)}
.lm-card span:nth-of-type(2){width:70%}
.lm-bars{display:flex;align-items:flex-end;gap:4px;height:22px;margin-top:2px}
.lm-bars u{flex:1;border-radius:3px 3px 0 0;background:linear-gradient(var(--g1),var(--g3));opacity:.8;transform-origin:bottom;transform:scaleY(.7);animation:lmBar 9s ease-in-out infinite}
.lm-bars u:nth-child(1){height:45%;animation-delay:-1s}.lm-bars u:nth-child(2){height:100%;animation-delay:-3s}.lm-bars u:nth-child(3){height:70%;animation-delay:-5s}.lm-bars u:nth-child(4){height:55%;animation-delay:-7s}
.lm-pick::after{content:"";position:absolute;inset:-1px;border-radius:14px;padding:2px;background:linear-gradient(135deg,var(--g1),var(--g3));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:lmPick 9s ease-in-out infinite}
.lm-cur{position:absolute;inset:0;pointer-events:none;transform:translate(50%,30%);animation:lmCur 9s ease-in-out infinite}
.lm-cur::before{content:"";position:absolute;left:0;top:0;width:16px;height:16px;background:var(--fg);clip-path:polygon(0 0,0 100%,30% 78%,52% 100%,66% 92%,46% 70%,80% 66%);filter:drop-shadow(0 2px 3px rgba(0,0,0,.45))}
.lm .lm-chip{position:absolute;right:0;top:4px;display:flex;align-items:center;gap:6px;padding:5px 10px 5px 7px;border-radius:999px;border:1px solid var(--line);background:var(--card);animation:lmChip 9s ease-in-out infinite}
.lm-chip i{width:8px!important;height:8px;border-radius:50%!important;background:var(--g2)}
.lm-chip b{display:block;width:32px;height:6px;border-radius:3px;background:var(--line)}
.lm-foot{display:flex;align-items:center;gap:10px;padding-top:2px}
.lm-foot span{height:8px;width:36%;background:var(--line)}
.lm-sw{position:relative;width:32px;height:18px;border-radius:999px!important;background:var(--btn-grad)}
.lm-sw::after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;transform:translateX(14px);animation:lmSw 9s ease-in-out infinite}
@keyframes lmShim{0%,8%{transform:translateX(-120%)}30%,100%{transform:translateX(220%)}}
@keyframes lmBar{0%,100%{transform:scaleY(.45)}50%{transform:scaleY(1)}}
@keyframes lmSw{0%,28%{transform:translateX(0)}34%,72%{transform:translateX(14px)}78%,100%{transform:translateX(0)}}
@keyframes lmChip{0%,12%{transform:translateX(130%);opacity:0}20%,42%{transform:translateX(0);opacity:1}50%,100%{transform:translateX(130%);opacity:0}}
@keyframes lmPick{0%,48%{opacity:0}54%,66%{opacity:1}74%,100%{opacity:0}}
@keyframes lmCur{0%,4%{transform:translate(95%,95%)}16%{transform:translate(14%,40%)}30%{transform:translate(18%,48%)}46%{transform:translate(50%,42%)}50%{transform:translate(50%,46%)}56%{transform:translate(50%,42%)}72%{transform:translate(84%,44%)}90%,100%{transform:translate(95%,95%)}}
.lm:not(.run) :is(.lm-bars u,.lm-cur,.lm .lm-chip),.lm:not(.run) .lm-title::after,.lm:not(.run) .lm-pick::after,.lm:not(.run) .lm-sw::after{animation-play-state:paused}
@media (prefers-reduced-motion:reduce){.lm :is(.lm-bars u,.lm-cur,.lm-chip){animation:none!important}.lm-sw::after,.lm-pick::after{animation:none!important}.lm-pick::after{opacity:1}.lm-title::after{display:none}.lm-bars u{transform:none}}
.sk-hint,.logo-st{display:none}

/* 6. Stuudio teema: ainult ajutine demoefekt (kõik tokenitega üle kirjutatud, hele/tume valik jääb alles) */
:root[data-theme][data-skin="stuudio"]{
  --bg:#f6f7f2; --bg2:#ffffff; --card:#ffffff; --surf:#ffffff; --inp:#ffffff; --pop-bg:#ffffff; --mock-bg:#ffffff;
  --fg:#1f3328; --muted:#5b6b60; --sol:#24503b; --line:#dfe6d8; --inp-line:#c9d4c0;
  --g1:#24503b; --g2:#2f6b4c; --g3:#3f8a5f; --i1:#24503b; --i2:#2f6b4c; --i3:#3f8a5f; --f1:#8fd16a;
  --grad:linear-gradient(90deg,#24503b,#24503b); --btn-grad:linear-gradient(90deg,#8fd16a,#8fd16a);
  --nav-bg:rgba(246,247,242,.92); --foot-bg:#ffffff; --cookie-bg:#ffffff; --demo-bg:#e6ebe0; --ghost:#ffffff; --ghost-line:#24503b;
  --shadow-card:none; --ok:#24503b; --err:#b3203f;
  --font-display:system-ui,-apple-system,"Segoe UI",sans-serif; --font-body:system-ui,-apple-system,"Segoe UI",sans-serif;
  color-scheme:light;
}
:root[data-skin="stuudio"] body{background-image:linear-gradient(#e6ebe0 1px,transparent 1px),linear-gradient(90deg,#e6ebe0 1px,transparent 1px);background-size:40px 40px}
:root[data-skin="stuudio"] #aurora,:root[data-skin="stuudio"] .breath,:root[data-skin="stuudio"] .contact .ring,:root[data-skin="stuudio"] .prod::before,:root[data-skin="stuudio"] .shots,:root[data-skin="stuudio"] .plate::after,:root[data-skin="stuudio"] .plate::before,:root[data-skin="stuudio"] .card::after,:root[data-skin="stuudio"] .eyebrow .dot,:root[data-skin="stuudio"] .svc-grid .card .ico{display:none}
:root[data-skin="stuudio"] :is(.btn,.card,.prod,.plate,.pop,.pop-x,.contact-form,.contact-form input,.contact-form select,.contact-form textarea,.client-form input,.cookie-banner,.mock,.lm,.lm-card,.lm-card i,.lm-cta,.ico,.step-n,.eyebrow,.lang-switch a,.burger,.demo-bar a){border-radius:4px!important}
:root[data-skin="stuudio"] :is(.btn-p,.btn-p:hover,.card,.plate,.plate:hover,.pop,.mock,.lm,.cookie-banner,.ico,.step-n){box-shadow:none!important}
:root[data-skin="stuudio"] .btn-p{color:#1f3328}
:root[data-skin="stuudio"] .steps.lit .step-n{color:#1f3328}
:root[data-skin="stuudio"] h1,:root[data-skin="stuudio"] h2,:root[data-skin="stuudio"] h3{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;font-weight:700;letter-spacing:-.03em;color:#24503b}
:root[data-skin="stuudio"] .kar{color:color-mix(in srgb,#24503b 30%,transparent)}
:root[data-skin="stuudio"] body{counter-reset:eb}
:root[data-skin="stuudio"] .eyebrow{counter-increment:eb;font:400 11px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em;text-transform:uppercase;background:none;border:0;padding:0;color:#24503b}
:root[data-skin="stuudio"] .eyebrow::before{content:counter(eb,decimal-leading-zero) " /"}
:root[data-skin="stuudio"] .sk-hint{display:block;font:400 11px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em;text-transform:uppercase;color:#5b6b60;margin-bottom:14px}
:root[data-skin="stuudio"] .prod{background:#fff}
:root[data-skin="stuudio"] .plate.p1,:root[data-skin="stuudio"] .plate.p2,:root[data-theme="light"][data-skin="stuudio"] .plate.p2{background:#fff;border:1px solid #24503b;backdrop-filter:none}
:root[data-skin="stuudio"] .p3{background:#fff;border-color:#24503b;backdrop-filter:none}
:root[data-skin="stuudio"] .mock{transform:none}
:root[data-skin="stuudio"] .ovl{background:rgba(246,247,242,.8)}
:root[data-skin="stuudio"] .pop::after{display:none}
:root[data-skin="stuudio"] .pop{border-color:#24503b}
:root[data-theme][data-skin="stuudio"] img.logo-dark,:root[data-theme][data-skin="stuudio"] img.logo-light,:root[data-theme][data-skin="stuudio"] .foot-made img.logo-dark,:root[data-theme][data-skin="stuudio"] .foot-made img.logo-light{display:none}
:root[data-skin="stuudio"] .logo-st{display:inline-flex;align-items:center;gap:8px;line-height:1;text-decoration:none}
.logo-st i{width:24px;height:24px;border-radius:4px;background:#8fd16a;color:#fff;display:grid;place-items:center;font:800 15px system-ui,sans-serif}
.logo-st b{font:800 22px system-ui,-apple-system,"Segoe UI",sans-serif;letter-spacing:-.03em;color:#24503b}
.logo-st em{font-style:normal;color:#8fd16a}

:root[data-skin="stuudio"] .lang-switch a.active{background:#24503b;color:#fff}
:root[data-skin="stuudio"] .card::before,:root[data-skin="stuudio"] .prod li::before{box-shadow:none}
:root[data-skin="stuudio"] .card::before{display:none}
:root[data-skin="stuudio"] .card:hover,:root[data-skin="stuudio"] .card:focus-within,:root[data-skin="stuudio"] .plate:hover{border-color:#24503b}
:root[data-skin="stuudio"] .p3 .ok{animation:none}
:root[data-skin="stuudio"] .prod li::before,:root[data-skin="stuudio"] .chk li::before{box-shadow:none}
:root[data-skin="stuudio"] :is(.contact-form,.client-form) :is(input,select,textarea):focus{box-shadow:0 0 0 3px rgba(143,209,106,.35)}

html.sk-lock,html.sk-lock body{overflow-anchor:none} /* kerimiskohta hoiab site.js, brauseri ankurdus liituks sellega */
:root[data-skin="stuudio"] .mock .row span{background:#eef2e8}
:root[data-skin="stuudio"] .mock .row.h span{background:#dfe6d8}
:root[data-skin="stuudio"] .mock .row span.d{background:none}
:root[data-skin="stuudio"] .mock .row span.s1,:root[data-skin="stuudio"] .mock .row span.s2{background:#eef2e8;color:#24503b}
:root[data-skin="stuudio"] .mock .row span.s3{background:#8fd16a;color:#1f3328}
/* 6. üleminek: diagonaalne pühkimine (X = serv ülal; 25° kaldu) ja selle peal läigeriba; ilma View Transitions'ita ainult riba */
.sk-sheen{position:fixed;left:0;top:0;width:22vw;height:160vh;z-index:300;pointer-events:none;mix-blend-mode:screen;background:linear-gradient(90deg,transparent,rgba(255,255,255,.75) 50%,transparent)}
:root[data-theme="light"] .sk-sheen,.sk-sheen.on-light{mix-blend-mode:normal;background:linear-gradient(90deg,transparent,rgba(122,82,255,.22) 25%,rgba(255,255,255,.95) 50%,rgba(143,209,106,.3) 75%,transparent)}
.sk-sheen.run{animation:skRibbon 1.4s linear both}
html.sk-vt .sk-sheen{view-transition-name:sk-sheen}
@keyframes skRibbon{from{transform:translate(calc(-23.3vh - 11vw),-30vh) rotate(25deg)}to{transform:translate(calc(89vw + 23.3vh),-30vh) rotate(25deg)}}
@keyframes skWipe{from{clip-path:polygon(0 0,0 0,-46.6vh 100vh,0 100vh)}to{clip-path:polygon(0 0,calc(100vw + 46.6vh) 0,100vw 100vh,0 100vh)}}
html.sk-vt::view-transition-group(root){animation:none}
html.sk-vt::view-transition-old(root){animation:none;opacity:1}
html.sk-vt::view-transition-new(root){animation:skWipe 1.4s linear both;mix-blend-mode:normal}
html.sk-vt::view-transition-group(sk-sheen){animation:skRibbon 1.4s linear both;mix-blend-mode:screen}
html.sk-vt[data-theme="light"]::view-transition-group(sk-sheen),html.sk-vt[data-skin="stuudio"]::view-transition-group(sk-sheen){mix-blend-mode:normal}
html.sk-vt::view-transition-new(sk-sheen){animation:none;opacity:1}
html.sk-vt::view-transition-old(sk-sheen){display:none}

/* ========== v07 (HANDOFF v07) ========== */
/* A1: tööd plaatide taga paremini nähtavad, värv ja lilla klaas samad */
.shots{-webkit-mask-image:radial-gradient(ellipse 92% 96% at 50% 45%,#000 72%,transparent 100%);mask-image:radial-gradient(ellipse 92% 96% at 50% 45%,#000 72%,transparent 100%)}
.shots img{filter:blur(.5px) saturate(1)}
.shots img.on{opacity:var(--so,.82)}
.p1 .shots{--so:.42}
/* A2: menüü stiil = logo SOLUTIONS */
.menu{gap:22px}
.menu a{font:600 12.5px var(--font-display);letter-spacing:.18em;text-transform:uppercase;color:#b9acff;white-space:nowrap}
.menu a:hover{color:#fff}
:root[data-theme="light"] .menu a{color:#5a40d0}
:root[data-theme="light"] .menu a:hover{color:#17162b}
.menu .lang-switch a{font:inherit;letter-spacing:normal;text-transform:none;color:inherit}
:root[data-skin="stuudio"] .menu a{font:400 15px system-ui,-apple-system,"Segoe UI",sans-serif;letter-spacing:0;text-transform:none;color:#5b6b60}
.cta-d{white-space:nowrap}
@media (min-width:1181px){html:not(.nav-c) .menu-contact{display:none}} /* laial ekraanil on sama link CTA-nupp */
/* kui pikad menüütekstid (ru, lv …) ei mahu, läheb päis burgerile (html.nav-c, site.js navFit) */
html.nav-c .burger{display:flex}
html.nav-c .menu{display:none;position:absolute;left:max(16px,env(safe-area-inset-left,0px));right:max(16px,env(safe-area-inset-right,0px));top:calc(100% + 10px);flex-direction:column;align-items:stretch;gap:0;padding:8px 20px 20px;background:linear-gradient(var(--card),var(--card)),var(--pop-bg);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid var(--line);border-radius:20px;box-shadow:0 40px 100px -30px rgba(61,107,255,.55);max-height:calc(100dvh - 100px);overflow:auto}
html.nav-c .menu.open{display:flex}
html.nav-c .menu li{border-bottom:1px solid var(--line)}
html.nav-c .menu li:last-child{border-bottom:0}
html.nav-c .menu a{display:block;width:100%;text-align:left;padding:14px 4px}
html.nav-c .menu a::after{display:none}
/* A3/A6: kliendiala vorm ja leht */
.pw-wrap{position:relative;display:block}
.pw-wrap input{padding-right:50px;text-transform:none;letter-spacing:0;font-weight:500}
.pw-eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:38px;height:38px;border:0;border-radius:10px;background:none;color:var(--muted);display:grid;place-items:center;cursor:pointer}
.pw-eye:hover,.pw-eye[aria-pressed="true"]{color:var(--sol)}
.pw-eye svg{width:20px;height:20px}
/* A4: abitekst */
.tip{position:fixed;z-index:400;max-width:280px;padding:6px 11px;border-radius:8px;background:var(--pop-bg);border:1px solid var(--line);box-shadow:0 12px 32px -12px rgba(23,22,43,.55);color:var(--fg);font:600 12px/1.35 var(--font-display);pointer-events:none;opacity:0;transition:opacity .15s}
.tip.on{opacity:1}
.tip[hidden]{display:none}
/* A5/A12: stiilivahetuse nupp ja klikitav mock */
.pw3{top:auto;bottom:-4%;right:0}
.sk-wrap .skin-go{justify-content:center}
.pers-side{display:grid;gap:22px;justify-items:center;min-width:0}
.pers-side .lm{width:100%;cursor:pointer;transition:transform .3s cubic-bezier(.2,.8,.2,1),border-color .3s,box-shadow .3s}
.pers-side .lm:hover,.pers-side .lm:focus-visible{transform:translateY(-6px);border-color:rgba(122,82,255,.8);box-shadow:0 0 0 1px rgba(122,82,255,.45),0 50px 90px -40px rgba(122,82,255,.8);outline:none}
.pers-side .lm[aria-disabled="true"]{cursor:progress;transform:none}
@media (max-width:560px){.pw3{left:0;right:0;display:flex;justify-content:center}.skin-go{padding-inline:16px;font-size:14.5px}}
/* A7: sammude pager */
.step-stage{overflow:visible}
.step-pager{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}
.step-prev{justify-self:start}
.step-next{justify-self:end}
.step-state{display:grid;justify-items:center;gap:6px;font:600 13px var(--font-display);color:var(--muted)}
.step-dots{display:flex;gap:6px}
.step-dots i{width:7px;height:7px;border-radius:50%;background:var(--line);transition:background .25s}
.step-dots i.on{background:var(--g2)}
@media (max-width:560px){.step-pager{grid-template-columns:1fr 1fr;row-gap:12px}.step-state{grid-column:1/-1;grid-row:1}.step-pager .btn{padding-inline:14px;font-size:14px}.step-next,.step-prev{white-space:normal}}
/* A8: pealkirjade läige (ülevalt vasakult diagonaalselt) */
:root{--h2sh:rgba(122,82,255,.45)}
:root[data-theme="light"]{--h2sh:rgba(255,255,255,.45)}
h2.shine{position:relative}
h2.shine::after{content:attr(data-t);position:absolute;inset:0;pointer-events:none;color:transparent;background-image:linear-gradient(115deg,transparent 46.67%,var(--h2sh) 50%,transparent 53.33%);background-size:300% 100%;background-position:100% 0;background-repeat:no-repeat;-webkit-background-clip:text;background-clip:text;speak:never}
h2.shine.shine-on::after{animation:h2Shine 5.5s linear var(--shd,0s) infinite}
@keyframes h2Shine{0%{background-position:100% 0}29.09%,100%{background-position:0 0}}
:root[data-skin="stuudio"] h2.shine::after{display:none}
@media (prefers-reduced-motion:reduce){h2.shine::after{display:none}}
/* A9: üles-nupp */
.btn.to-top{position:fixed;z-index:45;width:44px;height:44px;right:max(16px,env(safe-area-inset-right,0px));bottom:calc(max(20px,env(safe-area-inset-bottom,0px)) + var(--tt-lift,0px));opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s,bottom .2s}
@media (prefers-reduced-motion:reduce){.btn.to-top{transition:none}}
.btn.to-top.on{opacity:1;visibility:visible}
.btn.to-top svg{width:20px;height:20px}
.cl svg[data-tip]{cursor:help}

/* ---------- v08 (mobiil + desktopi leiud) ---------- */
/* p1: menüü "Võta ühendust" gradient-nupuna paneeli all; stuudio-nahas tume ikoon */
.menu .menu-contact a.btn{display:flex;width:100%;justify-content:center;padding:14px 24px;margin-top:6px;color:#fff;font:600 15px var(--font-display)}
.menu .menu-contact a.btn:hover{color:#fff}
.menu li.menu-contact{border-bottom:0;padding-top:8px}
:root[data-skin="stuudio"] .burger{color:#1f3328}
:root[data-skin="stuudio"] .menu .menu-contact a.btn{color:#1f3328}
/* p4: hero nupp plaatide alla (24 px vahe, esiplaadi parema servaga) */
.plates{margin-bottom:64px}
.pw3{top:calc(92% + 24px);bottom:auto;right:4%;animation:floatT 11s ease-in-out infinite}
@media (max-width:720px){.pw3{left:0;right:0}}
/* p5: nõusoleku linnuke lehe stiilis */
.contact-form .consent{align-items:center}
.contact-form .consent input{appearance:none;-webkit-appearance:none;width:20px;height:20px;min-width:20px;padding:0;margin:0;flex:none;border-radius:6px;border:1px solid var(--line);background:var(--card);display:grid;place-items:center;cursor:pointer;transition:background .2s,border-color .2s}
.contact-form .consent input::after{content:"";width:10px;height:5px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:translateY(-1px) rotate(-45deg) scale(0);transition:transform .15s}
.contact-form .consent input:checked{background:linear-gradient(135deg,var(--g1),var(--g3));border-color:transparent}
.contact-form .consent input:checked::after{transform:translateY(-1px) rotate(-45deg) scale(1)}
.contact-form .consent input:focus-visible{outline:2px solid var(--sol);outline-offset:2px}
.contact-form .consent input[aria-invalid="true"]{border-color:var(--err)}
/* v12: lühikesel lehel jääb jalus akna põhja, tühja riba jaluse all ei teki */
body{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}
body>main{flex:1 0 auto}
body>.site-footer{flex:none}
/* v12: jalus sümmeetriline, üles-nupp tõuseb jaluse kohale (site.js), alumist lisaruumi pole */
/* p7: mobiilijalus: © + privaatsus omal real, "Veebilahendus:" + logo ühel real, logo sama kõrge kui laial ekraanil */
@media (max-width:720px){
  .foot-in{flex-direction:column;align-items:center;text-align:center;gap:13px;padding-block:24px}
  .foot-lang{display:flex;justify-content:center;flex-wrap:wrap;gap:0 4px}
  .foot-lang a{padding:0 7px}
  .foot-lang a.active{color:var(--fg);font-weight:700;text-decoration:underline;text-underline-offset:4px}
  .foot-col{justify-content:center;text-align:center;flex-wrap:wrap}
  .foot-col > span[aria-hidden="true"]{display:none}
  .foot-col:first-child{flex-direction:column;gap:6px}
  .foot-col.foot-made{flex-wrap:nowrap;gap:10px;white-space:nowrap;width:100%;margin:0 auto}
  .foot-made img{height:27px;width:auto;max-width:none;flex:none;margin-block:-3.5px}
}
/* p3: mobiilis (< 720 px) on kõik lehe nupud keskel, kõrvuti mittemahtuvad üksteise all ja ühelaiused */
@media (max-width:719px){
  .ctas{display:grid;justify-content:center;justify-items:stretch;gap:12px}
  :is(main,.pop,.cookie-banner) .btn:not(.ib-btn):not(.to-top),.sk-wrap .btn{display:flex;width:auto;justify-content:center;text-align:center;min-width:min(100%,280px);max-width:100%;margin-inline:auto;justify-self:center}
  .ctas .btn{justify-self:stretch;margin-inline:0}
  .contact-form .btn-submit{justify-self:center}
  .client-form .btn,.intra-form .btn,.calc-card .btn{justify-self:center}
  .sk-wrap{display:flex;justify-content:center;width:100%}
  .pw3 .sk-wrap{width:auto}
  .pers-side,.sk-wrap{justify-items:center}
  .step-pager{display:flex;flex-direction:column;align-items:center;gap:12px}
  .step-pager .step-state{order:0;grid-column:auto}
  .step-pager .step-next{order:1}
  .step-pager .step-prev{order:2}
  .step-pager .btn{justify-self:center;min-width:min(100%,280px)}
  .step-prev[style*="hidden"]{display:none!important}
  .cookie-banner .btn{margin-inline:auto}
}
@keyframes floatT{50%{translate:0 12px}}
