
/* Layout: technický tlačový hárok – papier, čierna farba, ostré obrysy, orezové značky; kalkulačka vždy na dosah (sticky panel / spodná lišta na mobile) */
:root{
  --paper:#F3F4F1; --surface:#FFFFFF; --ink:#111316; --ink-2:#474C54; --ink-3:#767C84;
  --line:#D6D9D3; --line-2:#E7E9E4;
  --accent:#1D43D2; --accent-ink:#FFFFFF; --accent-soft:#E5EAFB;
  --mark:#C8186E;
  --ok:#17703F; --ok-soft:#E3F2E8; --warn:#9A5200; --warn-soft:#FBF0DF; --bad:#B42318; --bad-soft:#FBE9E7;
  --f-display:"Archivo","Arial Narrow",Arial,sans-serif;
  --f-body:"Instrument Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --r:6px; --wrap:1200px;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --paper:#0E1012; --surface:#16191C; --ink:#ECEEEA; --ink-2:#B4B9BF; --ink-3:#868C93;
  --line:#2C3035; --line-2:#202327; --accent:#8099FF; --accent-ink:#0A0E1E; --accent-soft:#1B2244;
  --mark:#F062A9; --ok:#55C98C; --ok-soft:#12271B; --warn:#E8AA52; --warn-soft:#2B2010; --bad:#F2827A; --bad-soft:#2E1513;
  color-scheme:dark}}
:root[data-theme="dark"]{
  --paper:#0E1012; --surface:#16191C; --ink:#ECEEEA; --ink-2:#B4B9BF; --ink-3:#868C93;
  --line:#2C3035; --line-2:#202327; --accent:#8099FF; --accent-ink:#0A0E1E; --accent-soft:#1B2244;
  --mark:#F062A9; --ok:#55C98C; --ok-soft:#12271B; --warn:#E8AA52; --warn-soft:#2B2010; --bad:#F2827A; --bad-soft:#2E1513;
  color-scheme:dark}
*{box-sizing:border-box}
body{background:var(--paper);color:var(--ink);font-family:var(--f-body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--f-display);font-stretch:112%;line-height:1.08;margin:0;text-wrap:balance;letter-spacing:-.01em}
h1{font-size:clamp(2.1rem,5.4vw,3.9rem);font-weight:800}
h2{font-size:clamp(1.6rem,3.2vw,2.35rem);font-weight:750}
h3{font-size:1.2rem;font-weight:700}
p{margin:0}
.wrap{max-width:var(--wrap);margin:0 auto;padding-inline:20px}
@media (max-width:480px){.wrap{padding-inline:16px}}
.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.eyebrow{font-family:var(--f-mono);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.muted{color:var(--ink-2)}
.small{font-size:.875rem}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* prototype ribbon */
.proto{background:var(--ink);color:var(--paper);font-size:.8rem}
.proto .wrap{display:flex;gap:12px;align-items:center;justify-content:space-between;padding-block:7px;flex-wrap:wrap}
.proto b{font-weight:600}
.proto a{color:var(--paper)}
.pchip{display:inline-flex;align-items:center;justify-content:center;font-family:var(--f-mono);font-size:.62rem;font-weight:500;line-height:1;padding:3px 4px;border-radius:3px;background:var(--warn-soft);color:var(--warn);border:1px solid currentColor;vertical-align:middle;margin-left:4px}
.mchip{background:var(--bad-soft);color:var(--bad)}

/* header */
header.site{position:sticky;top:env(safe-area-inset-top,0px);z-index:40;background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
header.site .wrap{display:flex;align-items:center;gap:20px;height:64px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;font-family:var(--f-display);font-weight:850;font-stretch:125%;font-size:1.25rem;letter-spacing:.06em}
.logo svg{flex:none}
.logo small{font-family:var(--f-mono);font-weight:400;font-size:.62rem;letter-spacing:.06em;color:var(--ink-3);font-stretch:100%;display:block;margin-top:-2px}
nav.main{display:flex;gap:4px;margin-left:auto;align-items:center}
nav.main a{text-decoration:none;padding:8px 10px;border-radius:var(--r);font-size:.94rem;color:var(--ink-2)}
nav.main a:hover,nav.main a[aria-current="page"]{color:var(--ink);background:var(--line-2)}
.cartbtn{display:inline-flex;align-items:center;gap:8px;text-decoration:none;border:1px solid var(--line);padding:7px 12px;border-radius:var(--r);font-size:.92rem;background:var(--surface)}
.cartbtn .n{font-family:var(--f-mono);background:var(--ink);color:var(--paper);border-radius:10px;padding:0 7px;font-size:.75rem;min-width:20px;text-align:center}
.burger{display:none;margin-left:auto;background:none;border:1px solid var(--line);border-radius:var(--r);padding:8px 10px;color:var(--ink);font:inherit}
@media (max-width:1180px){
  nav.main{display:none;position:absolute;top:64px;left:0;right:0;flex-direction:column;align-items:stretch;background:var(--surface);border-bottom:1px solid var(--line);padding:10px 16px 16px}
  nav.main.open{display:flex}
  .burger{display:block}
  header.site .cartbtn{margin-left:0}
}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:600 .98rem/1 var(--f-body);padding:14px 20px;border-radius:var(--r);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:background .15s,border-color .15s}
.btn-primary{background:var(--accent);color:var(--accent-ink)}
.btn-primary:hover{background:color-mix(in srgb,var(--accent) 86%,var(--ink))}
.btn-ghost{background:var(--surface);color:var(--ink);border-color:var(--line)}
.btn-ghost:hover{border-color:var(--ink-3)}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.btn-sm{padding:9px 13px;font-size:.88rem}
.linkbtn{background:none;border:0;padding:0;color:var(--accent);font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px}

/* crop marks */
.crop{position:relative}
.crop::before,.crop::after{content:"";position:absolute;width:14px;height:14px;pointer-events:none}
.crop::before{top:-7px;left:-7px;border-left:1px solid var(--mark);border-top:1px solid var(--mark)}
.crop::after{bottom:-7px;right:-7px;border-right:1px solid var(--mark);border-bottom:1px solid var(--mark)}

section.block{padding-block:72px;border-top:1px solid var(--line)}
@media (max-width:640px){section.block{padding-block:52px}}
.sechead{display:grid;gap:10px;max-width:720px;margin-bottom:34px}

/* hero */
.hero{padding-block:56px 64px}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:start}
@media (max-width:960px){.hero .wrap{grid-template-columns:1fr;gap:36px}}
.hero h1 .h1a,.hero h1 .h1b{display:block}
.hero h1 .h1a{white-space:nowrap}                 /* „Reklama a tlač.“ vždy v jednom riadku */
.hero h1 .h1b{color:var(--accent)}
/* veľkosť nadpisu tak, aby sa oba riadky zmestili (Archivo: riadky majú 8,4 a 9,4 em) */
@media (min-width:961px){.hero h1{font-size:min(3.75rem,calc((100vw - 88px) * .0547))}}
@media (max-width:480px){.hero h1{font-size:min(2.1rem,calc((100vw - 32px) / 10))}}
.hero .lead{font-size:1.15rem;color:var(--ink-2);max-width:34em;margin-top:18px}
.hero .ctas{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.facts{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:30px;padding-top:20px;border-top:1px solid var(--line);font-size:.92rem;color:var(--ink-2)}
.facts span::before{content:"";display:inline-block;width:6px;height:6px;background:var(--ink);margin-right:8px;vertical-align:middle}

.quick{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:22px}
.quick .tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}
.seg{display:flex;flex-wrap:wrap;gap:6px}
.seg button,.seg label{font:500 .9rem/1.2 var(--f-body);padding:9px 12px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);color:var(--ink);cursor:pointer}
.seg button[aria-pressed="true"],.seg input:checked+span{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.seg label{display:inline-flex;padding:0;border:0;background:none}
.seg label input{position:absolute;opacity:0;width:1px;height:1px}
.seg label span{display:block;padding:9px 12px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.seg label input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.seg label span small{display:block;color:var(--ink-3);font-size:.76rem;margin-top:2px}
.dimrow{display:grid;grid-template-columns:1fr 1fr .8fr;gap:10px}
.preview{margin:14px 0 4px;display:flex;justify-content:center;background:var(--paper);border-radius:var(--r);border:1px dashed var(--line);padding:6px}
.preview svg{width:100%;max-width:360px;height:auto}
.qprice{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line);flex-wrap:wrap}
.qprice .big{font-family:var(--f-display);font-stretch:110%;font-weight:800;font-size:2rem;line-height:1}

/* forms */
.field{display:grid;gap:6px;min-width:0}
.field>label,.flabel{font-size:.86rem;font-weight:600;color:var(--ink)}
.field .help{font-size:.8rem;color:var(--ink-3)}
input[type=text],input[type=email],input[type=tel],input[type=number],select,textarea{width:100%;font:inherit;font-size:1rem;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:11px 12px;min-width:0}
input[type=number]{font-family:var(--f-mono)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.unit{position:relative}
.unit input{padding-right:42px}
.unit em{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-style:normal;font-family:var(--f-mono);font-size:.8rem;color:var(--ink-3);pointer-events:none}
.invalid input,.invalid select{border-color:var(--bad)}
.err{color:var(--bad);font-size:.82rem}
.check{display:flex;gap:10px;align-items:flex-start;font-size:.93rem;cursor:pointer}
.check input{margin-top:4px;width:17px;height:17px;accent-color:var(--accent);flex:none}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media (max-width:620px){.grid2,.grid3{grid-template-columns:1fr}}
.sizes{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.sizes div{display:grid;gap:3px;text-align:center;font-family:var(--f-mono);font-size:.78rem;color:var(--ink-3)}
.sizes input{padding:9px 4px;text-align:center}
@media (max-width:480px){.sizes{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* product cards */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px}
.pcard{background:var(--surface);border:1px solid var(--line);border-radius:2px;padding:20px;display:grid;gap:12px;grid-template-rows:auto auto 1fr auto;text-decoration:none}
.pcard:hover{border-color:var(--ink-3)}
.pcard .ph{aspect-ratio:4/3;max-width:100%;border-radius:2px;background:repeating-linear-gradient(135deg,var(--line-2) 0 8px,transparent 8px 16px),var(--paper);display:flex;align-items:flex-end;padding:10px;color:var(--ink-3);font-family:var(--f-mono);font-size:.72rem}
.pcard .price{font-family:var(--f-mono);font-size:.9rem}
.pcard .price b{font-family:var(--f-display);font-size:1.25rem;font-stretch:110%}
.pcard ul{margin:0;padding-left:18px;color:var(--ink-2);font-size:.9rem}
.tag{display:inline-block;font-family:var(--f-mono);font-size:.68rem;letter-spacing:.05em;text-transform:uppercase;padding:3px 7px;border-radius:3px;background:var(--accent-soft);color:var(--accent);justify-self:start}
.tag.season{background:var(--warn-soft);color:var(--warn)}

/* lists of custom work */
.custom{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));border-top:1px solid var(--line)}
.custom a{display:grid;grid-template-columns:1fr auto;gap:6px 16px;padding:22px 4px;border-bottom:1px solid var(--line);text-decoration:none}
.custom a:hover h3{color:var(--accent)}
.custom a p{grid-column:1/-1;color:var(--ink-2);font-size:.93rem}
.custom .arr{font-family:var(--f-mono);color:var(--ink-3)}
@media (min-width:700px){.custom a:nth-child(odd){padding-right:28px;border-right:1px solid var(--line)}.custom a:nth-child(even){padding-left:28px}}

.portfolio{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media (max-width:820px){.portfolio{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.portfolio{grid-template-columns:1fr}}
.slot{aspect-ratio:4/3;max-width:100%;border:1px dashed var(--ink-3);border-radius:2px;display:grid;place-content:center;text-align:center;gap:6px;padding:14px;color:var(--ink-3);background:var(--surface)}
.slot b{color:var(--ink-2);font-weight:600}

.why{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:28px}
.why div{display:grid;gap:8px;align-content:start}
.why h3{font-size:1.05rem}

.steps{display:grid;grid-template-columns:repeat(6,1fr);gap:0;counter-reset:s}
.steps li{list-style:none;padding:16px 14px 0 0;border-top:2px solid var(--ink);counter-increment:s;display:grid;gap:4px;align-content:start}
.steps li::before{content:counter(s,decimal-leading-zero);font-family:var(--f-mono);font-size:.78rem;color:var(--ink-3)}
.steps b{font-weight:650}
.steps span{font-size:.88rem;color:var(--ink-2)}
@media (max-width:900px){.steps{grid-template-columns:repeat(3,1fr);row-gap:24px}}
@media (max-width:520px){.steps{grid-template-columns:1fr 1fr}}
ol.steps{padding:0;margin:0}

.tech{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:0;border-top:1px solid var(--line)}
.tech div{padding:18px 18px 18px 0;border-bottom:1px solid var(--line);display:grid;gap:4px}
.tech b{font-weight:650}
.tech span{color:var(--ink-2);font-size:.92rem}

.bundles{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media (max-width:900px){.bundles{grid-template-columns:1fr}}
.bundle{background:var(--surface);border:1px solid var(--line);padding:24px;display:grid;gap:14px;grid-template-rows:auto auto 1fr auto;border-radius:2px}
.bundle ul{margin:0;padding-left:18px;color:var(--ink-2);font-size:.93rem;display:grid;gap:4px}

details.faq{border-bottom:1px solid var(--line);padding:18px 0}
details.faq summary{cursor:pointer;font-weight:650;font-size:1.05rem;list-style:none;display:flex;justify-content:space-between;gap:16px}
details.faq summary::after{content:"+";font-family:var(--f-mono);color:var(--ink-3)}
details.faq[open] summary::after{content:"–"}
details.faq p{margin-top:10px;color:var(--ink-2);max-width:62ch}

/* product page */
.ppage{padding-block:36px 80px}
.crumbs{font-size:.85rem;color:var(--ink-3);margin-bottom:14px}
.crumbs a{color:var(--ink-3)}
.playout{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:36px;align-items:start;margin-top:26px}
@media (max-width:980px){.playout{grid-template-columns:minmax(0,1fr)}}
.cfg{display:grid;gap:22px}
.cfg fieldset{border:0;margin:0;padding:0 0 22px;border-bottom:1px solid var(--line);display:grid;gap:12px;min-width:0}
.cfg legend{font-family:var(--f-mono);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);padding:0;margin-bottom:10px}
.summary{position:sticky;top:calc(env(safe-area-inset-top,0px) + 80px);background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:20px;display:grid;gap:14px}
.summary .status{font-size:.82rem;padding:8px 10px;border-radius:var(--r)}
.st-ok{background:var(--ok-soft);color:var(--ok)}
.st-inc{background:var(--warn-soft);color:var(--warn)}
.st-bad{background:var(--bad-soft);color:var(--bad)}
.lines{display:grid;gap:7px;font-size:.88rem}
.lines div{display:flex;justify-content:space-between;gap:12px}
.lines div span:last-child{font-family:var(--f-mono);white-space:nowrap}
.tot{border-top:1px solid var(--line);padding-top:12px;display:grid;gap:4px}
.tot .row{display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.tot .gross{font-family:var(--f-display);font-weight:800;font-size:1.9rem;font-stretch:110%}
.internal{border:1px dashed var(--mark);border-radius:var(--r);padding:10px 12px;font-size:.82rem;display:grid;gap:4px}
.internal b{color:var(--mark);font-family:var(--f-mono);font-size:.7rem;letter-spacing:.06em}
.internal div{display:flex;justify-content:space-between;gap:10px}
.internal span:last-child{font-family:var(--f-mono)}
.mbar{display:none}
@media (max-width:980px){
  .summary{position:static}
  .mbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:45;background:var(--surface);border-top:1px solid var(--line);padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));align-items:center;justify-content:space-between;gap:12px}
  .mbar .p{font-family:var(--f-display);font-weight:800;font-size:1.35rem;font-stretch:110%;line-height:1}
  .mbar .p small{display:block;font-family:var(--f-body);font-weight:400;font-size:.72rem;color:var(--ink-3);font-stretch:100%;margin-top:3px}
  body.has-mbar{padding-bottom:84px}
}
.notes{display:grid;gap:8px;font-size:.88rem;color:var(--ink-2);margin-top:6px}
.notes li{margin-left:18px}

/* cart / checkout */
.table{width:100%;border-collapse:collapse;font-size:.92rem}
.table th,.table td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.table th{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:500}
.table td.num,.table th.num{text-align:right;font-family:var(--f-mono);white-space:nowrap}
.scroll{overflow-x:auto}
.co{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:36px;align-items:start}
@media (max-width:980px){.co{grid-template-columns:minmax(0,1fr)}}
.costep{border:1px solid var(--line);background:var(--surface);border-radius:var(--r);padding:22px;display:grid;gap:16px;min-width:0}
.costep h3{display:flex;gap:12px;align-items:baseline}
.costep h3 i{font-style:normal;font-family:var(--f-mono);font-size:.8rem;color:var(--ink-3);font-weight:400}
.drop{border:1px dashed var(--ink-3);border-radius:var(--r);padding:16px;display:grid;gap:8px}
.drop.ok{border-color:var(--ok);background:var(--ok-soft)}
.drop.warn{border-color:var(--warn);background:var(--warn-soft)}
.drop.bad{border-color:var(--bad);background:var(--bad-soft)}
.radio-cards{display:grid;gap:8px}
.radio-cards label{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;cursor:pointer}
.radio-cards label:has(input:checked){border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.radio-cards input{margin-top:4px;accent-color:var(--accent)}
.radio-cards .rc{flex:1;display:grid;gap:2px}
.radio-cards .rc small{color:var(--ink-3)}
.radio-cards .rp{font-family:var(--f-mono);font-size:.88rem;white-space:nowrap}
.radio-cards label.dis{opacity:.5;cursor:not-allowed}
.timeline{display:grid;gap:0;margin:0;padding:0}
.timeline li{list-style:none;display:grid;grid-template-columns:22px 1fr;gap:12px;padding-bottom:16px;position:relative}
.timeline li::before{content:"";width:12px;height:12px;border:2px solid var(--line);border-radius:50%;margin-top:5px;background:var(--surface)}
.timeline li.done::before{background:var(--ok);border-color:var(--ok)}
.timeline li.now::before{border-color:var(--accent);background:var(--accent-soft)}
.notice{border-left:3px solid var(--warn);background:var(--warn-soft);padding:12px 14px;font-size:.9rem;border-radius:0 var(--r) var(--r) 0}
.notice.info{border-color:var(--accent);background:var(--accent-soft)}

/* admin */
.admin-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:20px 0}
.ptable input{width:92px;padding:7px 8px;font-size:.88rem}
.ptable td{padding:9px 8px}
.badge{display:inline-block;font-family:var(--f-mono);font-size:.66rem;letter-spacing:.04em;text-transform:uppercase;padding:3px 6px;border-radius:3px;white-space:nowrap}
.b-cennik{background:var(--ok-soft);color:var(--ok)}
.b-predpoklad{background:var(--warn-soft);color:var(--warn)}
.b-chyba,.b-nekonz{background:var(--bad-soft);color:var(--bad)}
.b-zakon,.b-zadanie{background:var(--accent-soft);color:var(--accent)}
.neg{color:var(--bad);font-weight:600}
.agroup{margin-top:34px}
.agroup h3{margin-bottom:10px}
pre.log{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px;font-size:.78rem;max-height:420px;overflow:auto;white-space:pre-wrap}

footer.site{border-top:1px solid var(--line);padding-block:44px;font-size:.9rem;color:var(--ink-2)}
footer.site .wrap{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:28px}
footer.site h4{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-weight:500;margin-bottom:10px;font-stretch:100%}
footer.site a{display:block;text-decoration:none;padding:3px 0}
footer.site a:hover{color:var(--ink)}
@media (max-width:760px){footer.site .wrap{grid-template-columns:1fr 1fr}}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--ink);color:var(--paper);padding:12px 18px;border-radius:var(--r);font-size:.92rem;z-index:60}

/* ---- v2: grafika, právne stránky, cookies ---- */
:root{--cy:#0093D3;--mg:#D6007E;--yl:#F7D117;--kk:#1A1A1A}
.illu{display:block;width:100%;height:auto}
.pcard .ico{width:84px;height:auto;justify-self:start}
.strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface)}
.strip .wrap{display:flex;align-items:center;gap:18px;height:46px;overflow:hidden}
.strip .ruler{flex:1;height:100%;min-width:0;background:
  repeating-linear-gradient(90deg,var(--ink-3) 0 1px,transparent 1px 50px) bottom/100% 18px no-repeat,
  repeating-linear-gradient(90deg,var(--line) 0 1px,transparent 1px 10px) bottom/100% 9px no-repeat}
.strip .sw{display:flex;gap:0;flex:none}
.strip .sw i{display:block;width:22px;height:22px}
.strip .lbl{font-family:var(--f-mono);font-size:.7rem;color:var(--ink-3);white-space:nowrap;flex:none}
@media (max-width:640px){.strip .lbl.hide-s{display:none}}
.reg{flex:none}
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
@media (max-width:900px){.gallery{grid-template-columns:repeat(2,1fr)}}
.tile{display:grid;gap:10px;text-decoration:none;background:var(--surface);border:1px solid var(--line);border-radius:2px;padding:16px;align-content:start}
.tile:hover{border-color:var(--ink-3)}
.tile .art{background:var(--paper);border-radius:2px;padding:10px;aspect-ratio:10/7;max-width:100%;display:flex;align-items:center}
.tile b{font-weight:650}
.tile span{font-size:.84rem;color:var(--ink-3)}
.phead{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:28px;align-items:end}
.phead .art{background:var(--surface);border:1px solid var(--line);border-radius:2px;padding:10px}
@media (max-width:700px){.phead{grid-template-columns:1fr}.phead .art{display:none}}
.legal{max-width:760px}
.legal h1{font-size:clamp(1.9rem,4vw,2.8rem)}
.legal h2{font-size:1.25rem;margin-top:34px;margin-bottom:10px;font-stretch:105%}
.legal p,.legal li{color:var(--ink-2);max-width:68ch}
.legal p+p{margin-top:10px}
.legal ol,.legal ul{padding-left:22px;display:grid;gap:6px;margin:10px 0}
.legal .meta{font-family:var(--f-mono);font-size:.78rem;color:var(--ink-3);margin-top:8px}
.legal table{margin-top:10px}
.legal .box{border:1px solid var(--line);background:var(--surface);padding:16px;border-radius:var(--r);margin-top:14px}
.cookiebar{position:fixed;left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:70;max-width:560px;margin-left:auto;background:var(--surface);border:1px solid var(--ink-3);border-radius:var(--r);padding:18px;display:grid;gap:12px;box-shadow:0 10px 30px rgba(0,0,0,.15)}
.cookiebar .row{display:flex;gap:8px;flex-wrap:wrap}
.cookiebar .opts{display:grid;gap:8px;border-top:1px solid var(--line);padding-top:10px}
footer.site .wdraw{display:inline-block;margin-top:10px;border:1px solid var(--ink-3);padding:6px 10px;border-radius:var(--r);text-decoration:none}
.b-majitel{background:var(--ok-soft);color:var(--ok)}
.b-konkurencia{background:var(--accent-soft);color:var(--accent)}
.split{display:grid;gap:4px;border-top:1px dashed var(--mark);padding-top:6px;margin-top:4px}
[hidden]{display:none!important}
.internal .split{display:grid}
.internal .split div{display:flex;justify-content:space-between;gap:10px}
.cards{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:900px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.cards{grid-template-columns:1fr}}

/* ---- v3: ostrý web – fotky, lightbox, o mne, nahrávanie, režimy ---- */
.mode-live .demo-only,.mode-live .pchip{display:none!important}
.pgrid{display:grid;gap:14px}
.pgrid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:900px){.pgrid-4{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.pgrid-4{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}
.ptile{position:relative;display:block;padding:0;margin:0;border:0;background:var(--surface);border-radius:2px;overflow:hidden;cursor:zoom-in;aspect-ratio:4/5;text-align:left;font:inherit;color:#fff;width:100%}
.ptile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}
.ptile:hover img{transform:scale(1.03)}
@media (prefers-reduced-motion:reduce){.ptile img{transition:none}.ptile:hover img{transform:none}}
.ptile .cap{position:absolute;left:0;right:0;bottom:0;padding:34px 12px 10px;background:linear-gradient(to top,rgba(10,11,13,.78),rgba(10,11,13,0));display:grid;gap:3px}
.ptile .cap b{font-size:.9rem;font-weight:650;line-height:1.25;color:#fff}
.ptile .cap small{font-size:.7rem;color:rgba(255,255,255,.82);font-family:var(--f-mono)}
@media (max-width:640px){.ptile .cap b{font-size:.8rem}.ptile .cap small{display:none}}
.ptile:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.rchips{margin-top:24px}
.rchips button .muted{font-family:var(--f-mono);font-size:.75rem;margin-left:2px}
.prel{margin-top:56px;display:grid;gap:18px}
.lightbox{border:0;padding:0;background:transparent;max-width:none;max-height:none;width:100vw;height:100dvh;margin:0;inset:0;color:#fff}
.lightbox[open]{display:flex}
.lightbox::backdrop{background:rgba(8,9,11,.92)}
.lightbox:not([open]){display:none}
.lbwrap{position:relative;margin:auto;display:grid;gap:10px;justify-items:center;padding:56px 64px 20px;max-width:100%;max-height:100%;box-sizing:border-box}
.lbwrap img{max-width:min(1400px,100%);max-height:calc(100dvh - 140px);width:auto;height:auto;object-fit:contain;border-radius:2px;background:#222}
.lbwrap p{max-width:60em;text-align:center;font-size:.92rem;color:rgba(255,255,255,.9)}
.lbwrap p .muted{color:rgba(255,255,255,.6)}
.lbbtn{position:fixed;background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.25);width:46px;height:46px;border-radius:50%;font-size:1.6rem;line-height:1;cursor:pointer;display:grid;place-items:center}
.lbbtn:hover{background:rgba(255,255,255,.22)}
.lbprev{left:12px;top:50%;transform:translateY(-50%)}.lbnext{right:12px;top:50%;transform:translateY(-50%)}.lbclose{right:12px;top:12px}
@media (max-width:640px){.lbwrap{padding:60px 8px 16px}.lbprev,.lbnext{top:auto;bottom:14px;transform:none}}
.about{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:44px;align-items:center}
.about .portrait{margin:0;border-radius:2px;overflow:hidden;background:var(--surface);border:1px solid var(--line);aspect-ratio:4/5}
.about .portrait img{width:100%;height:100%;object-fit:cover;display:block}
@media (max-width:760px){.about{grid-template-columns:1fr;gap:24px}.about .portrait{max-width:260px}}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.prog{position:relative;height:26px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);overflow:hidden;margin-top:6px}
.prog span{position:absolute;left:0;top:0;bottom:0;width:0;background:var(--accent-soft);transition:width .2s}
.prog em{position:relative;font-style:normal;font-size:.78rem;padding:0 10px;line-height:24px;font-family:var(--f-mono)}
.prog.done span{background:var(--ok-soft);width:100%!important}.prog.err{border-color:var(--mark)}.prog.err em{color:var(--mark)}
.drop input[type=file]{max-width:100%}
/* ---- administrácia ---- */
.rowlink{cursor:pointer}.rowlink:hover td{background:var(--accent-soft)}
tr.sel td{background:var(--accent-soft)}
.badge.st-prijata,.badge.st-novy{background:var(--accent-soft);color:var(--accent)}
.badge.st-potvrdena,.badge.st-rozpracovany,.badge.st-ponuka{background:#FFF1C9;color:#6B4E00}
.badge.st-pripravena,.badge.st-odoslana{background:var(--ok-soft);color:var(--ok)}
.badge.st-vybavena,.badge.st-uzavrety{background:var(--line);color:var(--ink-2)}
.badge.st-zrusena{background:#FBE3EE;color:var(--mark)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .badge.st-potvrdena,:root:not([data-theme="light"]) .badge.st-rozpracovany,:root:not([data-theme="light"]) .badge.st-ponuka{background:#3A3010;color:#F5D77A}:root:not([data-theme="light"]) .badge.st-zrusena{background:#3A1426;color:#F59AC4}}
.ptile.wide img{object-fit:contain;background:#17191c}

/* ---- plátno a weby ---- */
.cards{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1100px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.cards{grid-template-columns:1fr}}
.webband{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:44px;align-items:center}
.webband .webart{background:var(--surface);border:1px solid var(--line);border-radius:2px;padding:18px}
@media (max-width:760px){.webband{grid-template-columns:1fr;gap:22px}.webband .webart{max-width:300px}}
.webcols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:32px;align-items:start}
@media (max-width:760px){.webcols{grid-template-columns:1fr}}
.ticks{display:grid;gap:10px;margin:0;padding:0}
.ticks li{list-style:none;display:grid;grid-template-columns:18px 1fr;gap:10px;color:var(--ink-2)}
.ticks li::before{content:"";width:10px;height:10px;margin-top:.45em;border:2px solid var(--ink);box-shadow:3px 3px 0 -1px var(--mark)}
.pcard{grid-template-rows:auto auto auto 1fr auto}
footer.site p a{display:inline;padding:0}

/* ---------- Mikroanimácie ikoniek v sekciách služieb ----------
   Iba transform a opacity (bez prekresľovania layoutu). Pri obmedzenom pohybe sa nič nehýbe. */
.pcard .ico .illu{transform-origin:35% 85%}
.illu .rm{transform-box:fill-box;transform-origin:center}
@media (prefers-reduced-motion:no-preference){
  .pcard .ico .illu,.illu .rm{transition:transform .4s cubic-bezier(.2,.7,.2,1)}
  .custom .arr{display:inline-block;transition:transform .3s cubic-bezier(.2,.7,.2,1),color .2s ease}
}
/* myš: ilustrácia sa jemne zdvihne, zväčší a pootočí, orezové značky sa roztvoria; šípka sa posunie */
@media (hover:hover) and (prefers-reduced-motion:no-preference){
  .pcard:hover .ico .illu,.pcard:focus-visible .ico .illu{transform:translateY(-3px) scale(1.05) rotate(-1.5deg)}
  .pcard:hover .illu .rm,.pcard:focus-visible .illu .rm{transform:scale(1.07)}
  .custom a:hover .arr,.custom a:focus-visible .arr{transform:translateX(5px);color:var(--accent)}
}
/* dotyk: krátka spätná väzba pri ťuknutí */
@media (hover:none) and (prefers-reduced-motion:no-preference){
  .pcard:active .ico .illu{transform:scale(.97);transition-duration:.12s}
}
/* prvé zobrazenie sekcie: ikonky sa objavia postupne (triedy pridá JS, bez JS je všetko hneď viditeľné) */
.anim .rv{opacity:0;transform:translateY(10px) scale(.96);transition:opacity .5s ease,transform .6s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0ms)}
.anim .rv.in{opacity:1;transform:none}
.anim .rv .mob{transform-box:fill-box;transition:opacity .45s ease .3s,transform .55s cubic-bezier(.2,.7,.2,1) .3s}
.anim .rv:not(.in) .mob{opacity:0;transform:translateX(10px)}
@media (prefers-reduced-motion:reduce){.anim .rv,.anim .rv .mob{opacity:1;transform:none}}

/* ---------- Ďalšie decentné animácie ---------- */
/* orezové značky kariet sa pri myši mierne roztvoria */
@media (hover:hover) and (prefers-reduced-motion:no-preference){
  .pcard.crop::before,.pcard.crop::after{transition:transform .35s cubic-bezier(.2,.7,.2,1)}
  .pcard.crop:hover::before,.pcard.crop:focus-visible::before{transform:translate(-3px,-3px)}
  .pcard.crop:hover::after,.pcard.crop:focus-visible::after{transform:translate(3px,3px)}
}
/* kroky objednávky: ryska sa pri prvom zobrazení dokreslí zľava doprava */
.anim .steps li.rv{border-top-color:transparent;background:linear-gradient(var(--ink),var(--ink)) 0 0/0 2px no-repeat;background-origin:border-box;
  transition:opacity .5s ease,transform .6s cubic-bezier(.2,.7,.2,1),background-size .7s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0ms)}
.anim .steps li.rv.in{background-size:100% 2px}
@media (prefers-reduced-motion:reduce){.anim .steps li.rv{border-top-color:var(--ink);background:none}}
/* cena po zmene v kalkulačke */
@keyframes obrysBump{0%{transform:translateY(4px);opacity:.3}100%{transform:none;opacity:1}}
/* otvor v náhľade tabule */
@keyframes obrysPop{0%{transform:scale(0)}65%{transform:scale(1.3)}100%{transform:scale(1)}}
.preview .hole{transform-box:fill-box;transform-origin:center}
@media (prefers-reduced-motion:no-preference){
  .gross.bump,#qgross.bump{animation:obrysBump .34s cubic-bezier(.2,.7,.2,1)}
  .preview .hole.pop{animation:obrysPop .36s cubic-bezier(.2,.7,.2,1) both}
  .seg label{transition:transform .12s ease}
  .seg label:active{transform:scale(.97)}
}
/* cena webu na vyžiadanie a sklad roll-upov */
.onreq{font-family:var(--f-display);font-stretch:112%;font-weight:750;font-size:1.6rem;line-height:1.1}
.notice.stock{font-size:.9rem}
