/* ============================================================
   entira.cz - prezentacni web
   Postaveno na design systemu Entira (platform-core/company/design):
   tokeny se NEDEFINUJI tady, jen se importuji (scripts/sync-design-tokens.sh).
   Tenhle soubor = webove komponenty nad tokeny.

   Graficky manual v1.0, slide "Prostor, tvar, hloubka": web je
   brutalist-editorial vrstva nad stejnymi tokeny - tvrde hrany 1,5 px v Ink,
   offset stin 4-6 px bez rozostreni (jen karty a tlacitka), papir a mist,
   zadne radiusy. Tlacitka Mono 600. Teal jen jako pulzujici tecka "ziva data".
   ============================================================ */
@import "fonts.css";
@import "tokens/colors.css";
@import "tokens/typography.css";
@import "tokens/spacing.css";
@import "tokens/base.css";

:root{
  --pad:clamp(20px,4vw,40px);
  --nav-h:72px;
  /* Tvar webove vrstvy (manual v1.0). Hodnoty 1,5 px / 4 px / 6 px v tokenech nejsou. */
  --rule:1.5px solid var(--ink);
  --shadow-card:6px 6px 0 var(--ink);
  --shadow-btn:4px 4px 0 var(--ink);
}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 16px)}
body{background:var(--bg-surface);font-size:var(--fs-base);line-height:var(--lh-relaxed);font-variant-numeric:tabular-nums}
p{margin:0}
img,svg{max-width:100%}
button,input,textarea{font:inherit}
a{color:inherit}
a:hover{color:inherit;text-decoration:none}
.prose a,.fine a{color:var(--text-link);text-decoration:underline;text-underline-offset:2px}
.prose a:hover,.fine a:hover{color:var(--text-link-hover)}
.wrap{max-width:var(--content-max);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}
.eyebrow{font:var(--fw-medium) var(--fs-xs)/1 var(--font-mono);letter-spacing:var(--ls-overline);color:var(--text-secondary);text-transform:uppercase}
.skip{position:absolute;left:-9999px;top:8px;z-index:1000;background:var(--accent);color:var(--accent-fg);border:var(--rule);padding:10px 14px;font:var(--fw-semibold) var(--fs-sm) var(--font-mono)}
.skip:focus{left:8px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}

/* ---- buttons: Mono 600, hrana 1,5 px Ink, offset stin 4 px, bez radiusu ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 var(--space-6);height:48px;background:var(--accent);color:var(--accent-fg);font:var(--fw-semibold) var(--fs-md) var(--font-mono);letter-spacing:var(--ls-wide);border:var(--rule);border-radius:0;box-shadow:var(--shadow-btn);cursor:pointer;white-space:nowrap;transition:background var(--dur-fast) var(--ease-standard),box-shadow var(--dur-fast) var(--ease-standard),transform var(--dur-fast) var(--ease-standard)}
.btn:hover{background:var(--accent-hover);color:var(--accent-fg);transform:translate(2px,2px);box-shadow:2px 2px 0 var(--ink);text-decoration:none}
.btn:active{background:var(--accent-active);transform:translate(4px,4px);box-shadow:none}
.btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.btn.sm{height:40px;padding:0 var(--space-4);font-size:var(--fs-sm)}
.btn.ghost{background:var(--bg-surface);color:var(--text-primary)}
.btn.ghost:hover{background:var(--mist);color:var(--text-primary)}
.btn.ghost:active{background:var(--bg-active)}
.btn.inv{background:var(--bg-surface);color:var(--brand)}
.btn.inv:hover{background:var(--mist);color:var(--brand-strong)}
.btn.inv:active{background:var(--bg-active)}
.btn.block{display:flex;width:100%}
.btn[disabled]{opacity:.6;cursor:progress}

/* ---- nav ---- */
.nav{position:sticky;top:0;z-index:var(--z-sticky);background:var(--bg-surface);border-bottom:var(--rule)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:var(--nav-h);gap:var(--space-6)}
.logo{display:inline-flex;align-items:center;flex:none}
.logo img{display:block;height:32px;width:auto}
.navlinks{display:flex;align-items:center;gap:var(--space-6)}
.navlink{font:var(--fw-medium) var(--fs-sm) var(--font-sans);color:var(--text-secondary);padding:6px 2px;border-bottom:2px solid transparent;transition:border-color var(--dur-fast),color var(--dur-fast)}
.navlink:hover,.navlink[aria-current="page"]{color:var(--brand);border-color:var(--accent)}
.burger{display:none;width:44px;height:44px;border:var(--rule);border-radius:0;background:var(--bg-surface);cursor:pointer;padding:0;align-items:center;justify-content:center;flex-direction:column;gap:5px}
.burger span{display:block;width:20px;height:2px;background:var(--ink)}
.mobile-menu{display:none;border-bottom:var(--rule);background:var(--mist)}
.mobile-menu .wrap{display:flex;flex-direction:column;gap:0;padding-top:var(--space-2);padding-bottom:var(--space-6)}
.mobile-menu .navlink{padding:12px 0;border-bottom:1px solid var(--border);font-size:var(--fs-base)}
.mobile-menu .btn{margin-top:var(--space-5)}
body.menu-open .mobile-menu{display:block}

/* ---- sections: papir, mist, delene tvrdou linkou ---- */
.sec{padding:clamp(48px,7vw,88px) 0;border-bottom:var(--rule)}
.sec.alt{background:var(--mist)}
.h2{font-weight:var(--fw-bold);font-size:clamp(30px,4vw,var(--fs-3xl));line-height:var(--lh-tight);letter-spacing:var(--ls-tight)}
.h2.mb{margin-bottom:var(--space-10)}
.sechead{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-5);flex-wrap:wrap;margin-bottom:var(--space-8)}
.sechead .meta{font:var(--fw-regular) var(--fs-xs) var(--font-mono);color:var(--text-secondary)}

/* ---- hero ---- */
.hero{border-bottom:var(--rule)}
.hero .grid{display:grid;grid-template-columns:1.05fr .95fr}
.hero .copy{padding:clamp(48px,7vw,80px) var(--pad) clamp(48px,7vw,72px) 0}
.hero .eyebrow{margin-bottom:var(--space-6)}
.hero h1{font-weight:var(--fw-bold);font-size:clamp(40px,6vw,var(--fs-5xl));line-height:var(--lh-tight);letter-spacing:var(--ls-tight)}
.hero h1 em{font-style:normal;color:var(--brand)}
.hero .lead{margin-top:var(--space-6);font-size:var(--fs-lg);line-height:var(--lh-relaxed);color:var(--text-secondary);max-width:480px}
.hero .cta{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap;margin-top:var(--space-8)}
.hero .visual{position:relative;background:var(--mist);display:flex;align-items:center;justify-content:center;min-height:480px;margin-right:calc(-1 * var(--pad));padding:64px 24px;border-left:var(--rule)}
.hero .visual .lbl{position:absolute;top:16px;left:18px;font:var(--fw-medium) var(--fs-2xs) var(--font-mono);letter-spacing:var(--ls-overline);color:var(--text-secondary)}
/* Jedine misto s tealem na webu: pulzujici tecka "ziva data" (manual v1.0). */
.hero .visual .live{position:absolute;top:16px;right:18px;display:flex;align-items:center;gap:7px;font:var(--fw-medium) var(--fs-2xs) var(--font-mono);letter-spacing:var(--ls-overline);color:var(--text-primary)}
.live i{width:8px;height:8px;border-radius:var(--radius-full);background:var(--teal);display:inline-block}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
.pulse i{animation:pulse 2.2s ease-in-out infinite}
.hero svg.schema{width:100%;max-width:480px;height:auto}
.schema .link{stroke:var(--ink);stroke-width:1.5}
.schema .link.out{stroke:var(--brand);stroke-width:2}
.schema .box{fill:var(--bg-surface);stroke:var(--ink);stroke-width:1.5}
.schema .box.out{fill:var(--brand-soft)}
.schema .shadow{fill:var(--ink)}
.schema .tag{font-family:var(--font-mono);font-size:11px;font-weight:var(--fw-semibold);fill:var(--text-primary)}
.schema .tag.out{fill:var(--brand-strong)}
.schema .core{fill:var(--bg-surface);stroke:var(--brand);stroke-width:2.5}
.schema .core-ring{fill:none;stroke:var(--accent);stroke-width:1;stroke-dasharray:3 4}
.schema .core-dot{fill:var(--brand)}
.schema .core-lbl{font-family:var(--font-display);font-size:12px;font-weight:var(--fw-bold);fill:var(--brand)}
.grid>*,.two>*,.team>*,.limits>*{min-width:0}

/* ---- cells (co umi): mrizka 3x2 s vnitrnimi linkami 1,5 px, bez stinu ---- */
.cells{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5px;background:var(--ink);border:var(--rule)}
.cell{padding:var(--space-8) var(--space-6);background:var(--bg-surface);transition:background var(--dur-base) var(--ease-standard)}
.cell:hover{background:var(--mist)}
.cell .num{font:var(--fw-semibold) var(--fs-2xs) var(--font-mono);color:var(--accent);margin-bottom:var(--space-4);letter-spacing:var(--ls-overline)}
.cell h3{font-weight:var(--fw-semibold);font-size:var(--fs-xl);line-height:var(--lh-tight);margin-bottom:var(--space-2)}
.cell p{font-size:var(--fs-md);line-height:var(--lh-normal);color:var(--text-secondary)}
.cell.more,.cell.more:hover{background:var(--brand-soft)}
.cell.more h3{font-size:var(--fs-lg);color:var(--brand-strong)}

/* ---- kroky: cislovane s linkou 1,5 px ---- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-6);position:relative}
.steps::before{content:"";position:absolute;top:18px;left:0;right:0;height:1.5px;background:var(--ink)}
.step{position:relative}
.step .n{width:36px;height:36px;display:flex;align-items:center;justify-content:center;font:var(--fw-semibold) var(--fs-sm) var(--font-mono);background:var(--bg-surface);border:var(--rule);margin-bottom:var(--space-5);position:relative}
.step.first .n{background:var(--brand);color:var(--text-on-brand)}
.step h3{font-weight:var(--fw-semibold);font-size:var(--fs-lg);line-height:var(--lh-tight);margin-bottom:var(--space-2)}
.step p{font-size:var(--fs-md);line-height:var(--lh-normal);color:var(--text-secondary)}

/* ---- bezpecnost: karta s vnitrnimi linkami ---- */
.two{display:grid;grid-template-columns:.85fr 1.15fr;gap:var(--space-12);align-items:start}
.two .intro p{margin-top:var(--space-4);font-size:var(--fs-base);line-height:var(--lh-relaxed);color:var(--text-secondary)}
.pillars{border:var(--rule);background:var(--bg-surface);box-shadow:var(--shadow-card)}
.pillar{padding:var(--space-6);border-bottom:var(--rule);display:flex;gap:var(--space-5);align-items:baseline}
.pillar:last-child{border-bottom:0}
.pillar .num{font:var(--fw-semibold) var(--fs-2xs) var(--font-mono);letter-spacing:var(--ls-overline);color:var(--accent);flex:none}
.pillar h3{font-weight:var(--fw-semibold);font-size:var(--fs-xl);line-height:var(--lh-tight);margin-bottom:var(--space-1)}
.pillar p{font-size:var(--fs-md);line-height:var(--lh-normal);color:var(--text-secondary)}

/* ---- dukaz + trial ---- */
.quote{border:var(--rule);padding:clamp(24px,4vw,36px);margin-bottom:var(--space-8);background:var(--bg-surface);box-shadow:var(--shadow-card)}
.quote .q{font:var(--fw-medium) clamp(20px,2.6vw,var(--fs-2xl))/var(--lh-snug) var(--font-display);letter-spacing:var(--ls-snug);color:var(--text-primary);max-width:920px;margin-top:var(--space-4)}
.quote .src{margin-top:var(--space-4);font:var(--fw-regular) var(--fs-xs) var(--font-mono);color:var(--text-secondary)}
.trial{display:grid;grid-template-columns:1fr 1fr auto;gap:1.5px;border:var(--rule);align-items:stretch;background:var(--ink);box-shadow:var(--shadow-card)}
.trial .cell h3{font-size:var(--fs-lg)}
.trial .go{background:var(--brand);color:var(--text-on-brand);padding:var(--space-6) var(--space-8);display:flex;align-items:center;font:var(--fw-semibold) var(--fs-md) var(--font-mono);letter-spacing:var(--ls-wide);white-space:nowrap;transition:background var(--dur-fast)}
.trial .go:hover{background:var(--brand-strong);color:var(--text-on-brand);text-decoration:none}
.trial .go:focus-visible{outline:2px solid var(--accent);outline-offset:-4px}

/* ---- blog: karty s offset stinem 6 px ---- */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-8)}
.card{border:var(--rule);background:var(--bg-surface);box-shadow:var(--shadow-card);transition:box-shadow var(--dur-base) var(--ease-standard),transform var(--dur-base) var(--ease-standard)}
.card:hover{transform:translate(2px,2px);box-shadow:4px 4px 0 var(--ink)}
.card .pic{height:160px;background:var(--mist);border-bottom:var(--rule);display:flex;align-items:center;justify-content:center}
.card .pic .box{fill:var(--bg-surface);stroke:var(--ink);stroke-width:1.5}
.card .pic .box.out{fill:var(--brand-soft)}
.card .pic .line{stroke:var(--ink);stroke-width:1.5}
.card .pic .line.brand{stroke:var(--brand);stroke-width:2}
.card .pic .line.accent{stroke:var(--accent);stroke-width:2.5}
.card .pic .fill-accent{fill:var(--accent)}
.card .body{padding:var(--space-5)}
.card .cat{font:var(--fw-semibold) var(--fs-2xs) var(--font-mono);letter-spacing:var(--ls-overline);text-transform:uppercase;color:var(--accent);margin-bottom:var(--space-3)}
.card h3{font-weight:var(--fw-semibold);font-size:var(--fs-xl);line-height:var(--lh-tight);margin-bottom:var(--space-3)}
.card .meta{font:var(--fw-regular) var(--fs-xs) var(--font-mono);color:var(--text-secondary)}

/* ---- kontakt CTA ---- */
.cta-final h2{font-weight:var(--fw-bold);font-size:clamp(38px,5.5vw,var(--fs-5xl));line-height:var(--lh-tight);letter-spacing:var(--ls-tight);max-width:780px}
.cta-final p{margin-top:var(--space-5);font-size:var(--fs-base);color:var(--text-secondary);max-width:520px}
.cta-final .btn{margin-top:var(--space-8)}

/* ---- kdo za tim stoji ---- */
.team{display:grid;grid-template-columns:.85fr 1.15fr;gap:var(--space-12);align-items:start}
.team .intro p{margin-top:var(--space-4);font-size:var(--fs-base);line-height:var(--lh-relaxed);color:var(--text-secondary)}
.team .intro .cm{margin-top:var(--space-6);display:inline-flex;align-items:center;gap:12px;border:var(--rule);padding:10px 14px;background:var(--bg-surface)}
.team .intro .cm .l{font:var(--fw-semibold) var(--fs-2xs) var(--font-mono);letter-spacing:var(--ls-overline);color:var(--text-secondary)}
.team .intro .cm a{font:var(--fw-semibold) var(--fs-sm) var(--font-mono);color:var(--text-link)}
.team .intro .cm a:hover{color:var(--text-link-hover)}
.people{display:grid;grid-template-columns:1fr 1fr;gap:1.5px;border:var(--rule);background:var(--ink);box-shadow:var(--shadow-card)}
.person{padding:var(--space-8) var(--space-6);background:var(--bg-surface)}
.person .init{width:56px;height:56px;display:flex;align-items:center;justify-content:center;font:var(--fw-semibold) var(--fs-base) var(--font-mono);background:var(--brand);color:var(--text-on-brand);border:var(--rule);margin-bottom:var(--space-5)}
.person .init.alt{background:var(--brand-soft);color:var(--brand-strong)}
.person .role{font:var(--fw-semibold) var(--fs-2xs) var(--font-mono);letter-spacing:var(--ls-overline);text-transform:uppercase;color:var(--accent);margin-bottom:var(--space-2)}
.person h3{font-weight:var(--fw-semibold);font-size:var(--fs-xl);line-height:var(--lh-tight);margin-bottom:var(--space-2)}
.person p{font-size:var(--fs-md);line-height:var(--lh-normal);color:var(--text-secondary)}

/* ---- footer: Ink, bile logo (obrysovy symbol + bily wordmark) ---- */
footer{background:var(--ink);color:var(--slate-300)}
footer .top{display:grid;grid-template-columns:minmax(220px,300px) repeat(3,auto);gap:var(--space-12);justify-content:space-between;padding:var(--space-12) 0 var(--space-8);border-bottom:1.5px solid var(--slate-700)}
footer .about p{margin-top:var(--space-5);font-size:var(--fs-sm);line-height:var(--lh-relaxed);color:var(--slate-400)}
footer .about p a{color:var(--text-inverse);text-decoration:underline;text-underline-offset:2px}
footer .col h4{font:var(--fw-semibold) var(--fs-2xs) var(--font-mono);letter-spacing:var(--ls-overline);text-transform:uppercase;color:var(--slate-500);margin-bottom:var(--space-4)}
footer .col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
footer .col a{font:var(--fw-medium) var(--fs-sm) var(--font-sans);color:var(--slate-300)}
footer .col a:hover{color:var(--text-inverse)}
footer .bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:var(--space-6) 0 var(--space-8);font:var(--fw-regular) var(--fs-xs) var(--font-mono);color:var(--slate-500)}
footer .bottom a{color:var(--slate-400)}
footer .bottom a:hover{color:var(--text-inverse)}
footer a:focus-visible{outline-color:var(--text-inverse)}

/* ---- demo page ---- */
.demo-hero .grid{display:grid;grid-template-columns:1.05fr .95fr;gap:var(--space-12);align-items:start}
.demo-hero .eyebrow,.contact .eyebrow,.prose .eyebrow{margin-bottom:var(--space-6)}
.demo-hero h1,.contact h1{font-weight:var(--fw-bold);font-size:clamp(36px,5vw,var(--fs-4xl));line-height:var(--lh-tight);letter-spacing:var(--ls-tight)}
.demo-hero h1 em,.contact h1 em{font-style:normal;color:var(--brand)}
.demo-hero .lead,.contact .lead{margin-top:var(--space-6);font-size:var(--fs-base);line-height:var(--lh-relaxed);color:var(--text-secondary);max-width:440px}
.example{margin-top:var(--space-6);border:var(--rule);background:var(--mist);padding:14px 18px;max-width:440px}
.example .l{font:var(--fw-regular) var(--fs-2xs) var(--font-mono);letter-spacing:var(--ls-overline);color:var(--text-secondary);margin-bottom:6px}
.example .t{font:var(--fw-regular) var(--fs-md)/var(--lh-normal) var(--font-mono);color:var(--text-primary)}

/* ---- form: karta s offset stinem, inputy s hranou 1,5 px Ink, bez radiusu ---- */
.form{border:var(--rule);padding:var(--space-8);background:var(--bg-surface);box-shadow:var(--shadow-card)}
.form .head{font:var(--fw-semibold) var(--fs-2xs) var(--font-mono);letter-spacing:var(--ls-overline);color:var(--text-secondary);margin-bottom:var(--space-4)}
.form label{display:block;font:var(--fw-medium) var(--fs-sm) var(--font-sans);color:var(--text-secondary);margin-bottom:6px}
.form input:not([type=hidden]),.form textarea{width:100%;border:var(--rule);border-radius:0;background:var(--bg-surface);padding:0 14px;margin-bottom:var(--space-4);color:var(--text-primary);font-size:var(--fs-md);transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}
.form input:not([type=hidden]){height:46px}
.form textarea{min-height:120px;padding:12px 14px;resize:vertical}
.form input::placeholder,.form textarea::placeholder{color:var(--text-tertiary)}
.form input:focus,.form textarea:focus{outline:0;border-color:var(--accent);box-shadow:var(--shadow-focus)}
.form input[aria-invalid="true"],.form textarea[aria-invalid="true"]{border-color:var(--error);box-shadow:0 0 0 3px var(--error-soft)}
.form .cf-turnstile{margin-bottom:var(--space-4)}
.form .fine{margin-top:var(--space-4);font:var(--fw-regular) var(--fs-xs)/var(--lh-normal) var(--font-sans);color:var(--text-secondary)}
.form .ok{display:none;border:1.5px solid var(--success);background:var(--success-soft);color:var(--success-fg);padding:18px;font-size:var(--fs-md);line-height:var(--lh-normal)}
.form .err{margin-top:var(--space-3);border:1.5px solid var(--error);background:var(--error-soft);color:var(--error-fg);padding:12px 14px;font:var(--fw-regular) var(--fs-sm)/var(--lh-normal) var(--font-sans)}
.form.sent .fields{display:none}
.form.sent .ok{display:block}

.steps3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5px;background:var(--ink);border:var(--rule)}
.steps3 .n{width:36px;height:36px;display:flex;align-items:center;justify-content:center;font:var(--fw-semibold) var(--fs-sm) var(--font-mono);background:var(--bg-surface);border:var(--rule);margin-bottom:var(--space-4)}
.steps3 .cell:first-child .n{background:var(--brand);color:var(--text-on-brand)}
.limits{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-8);align-items:stretch}
.box{border:var(--rule);padding:var(--space-8) var(--space-6);background:var(--bg-surface);box-shadow:var(--shadow-card)}
.box .head{font:var(--fw-semibold) var(--fs-2xs) var(--font-mono);letter-spacing:var(--ls-overline);color:var(--text-secondary);margin-bottom:var(--space-4)}
.box ul{list-style:none;margin:0;padding:0;font-size:var(--fs-md);line-height:2;color:var(--text-primary)}
.box.upsell{background:var(--brand);color:var(--text-on-brand);display:flex;flex-direction:column;justify-content:center}
.box.upsell h3{color:var(--text-on-brand);font-weight:var(--fw-semibold);font-size:var(--fs-xl);line-height:var(--lh-tight);margin-bottom:var(--space-2)}
.box.upsell p{font-size:var(--fs-md);line-height:var(--lh-relaxed);color:var(--brand-soft);margin-bottom:var(--space-6)}
.box.upsell .btn{align-self:flex-start}

/* ---- kontakt page ---- */
.contact .grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-12);align-items:start}
.contact .direct{margin-top:var(--space-8);border:var(--rule);background:var(--mist);padding:18px 20px;max-width:440px}
.contact .direct .l{font:var(--fw-regular) var(--fs-2xs) var(--font-mono);letter-spacing:var(--ls-overline);color:var(--text-secondary);margin-bottom:6px}
.contact .direct a{font:var(--fw-semibold) var(--fs-base) var(--font-mono);color:var(--text-link)}

/* ---- prose (gdpr) ---- */
.prose .wrap{max-width:var(--content-max-prose)}
.prose h1{font-weight:var(--fw-bold);font-size:clamp(32px,4.5vw,var(--fs-4xl));line-height:var(--lh-tight);letter-spacing:var(--ls-tight)}
.prose .lead{margin-top:var(--space-5);font-size:var(--fs-lg);color:var(--text-secondary)}
.prose h2{font-size:var(--fs-2xl);margin:var(--space-10) 0 var(--space-3)}
.prose p,.prose li{font-size:var(--fs-base);line-height:var(--lh-relaxed);color:var(--text-primary)}
.prose p+p{margin-top:var(--space-3)}
.prose ul{padding-left:1.2em;margin:var(--space-3) 0}
.prose li+li{margin-top:var(--space-2)}
.prose table{width:100%;border-collapse:collapse;font-size:var(--fs-sm);margin:var(--space-4) 0;border-top:var(--rule)}
.prose th,.prose td{text-align:left;vertical-align:top;padding:10px 12px;border-bottom:1px solid var(--border)}
.prose th{font:var(--fw-semibold) var(--fs-2xs) var(--font-mono);letter-spacing:var(--ls-overline);text-transform:uppercase;color:var(--text-secondary);border-bottom:var(--rule)}
.prose .small{margin-top:var(--space-10);font-size:var(--fs-sm);color:var(--text-secondary)}

/* ---- responsive ---- */
@media (max-width:960px){
  .navlinks{display:none}
  .burger{display:flex}
  .hero .grid{grid-template-columns:1fr}
  .hero .copy{padding-right:0}
  .hero .visual{border-left:0;border-top:var(--rule);margin-left:calc(-1 * var(--pad));min-height:0;padding:48px 20px}
  .cells{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr 1fr;gap:32px 24px}
  .steps::before{display:none}
  .two,.team{grid-template-columns:1fr;gap:var(--space-8)}
  .trial{grid-template-columns:1fr}
  .trial .go{justify-content:center;padding:22px}
  .cards{grid-template-columns:1fr}
  .demo-hero .grid,.contact .grid{grid-template-columns:1fr;gap:var(--space-8)}
  .steps3{grid-template-columns:1fr}
  .limits,.people{grid-template-columns:1fr}
  footer .top{grid-template-columns:1fr 1fr;gap:var(--space-8)}
  footer .about{grid-column:1 / -1}
  .prose table{display:block;overflow-x:auto}
}
@media (max-width:560px){
  .cells{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr;gap:var(--space-8)}
  /* na mobilu linka kroku svisle, cisla ji prekryvaji */
  .steps::before{display:block;top:0;bottom:0;left:17px;right:auto;width:1.5px;height:auto}
  .hero .cta .btn,.cta-final .btn{width:100%}
  .btn{white-space:normal;text-align:center}
  .form{padding:var(--space-5)}
  footer .top{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  .pulse i{animation:none}
  .btn:hover{transform:none;box-shadow:var(--shadow-btn)}
  .card:hover{transform:none;box-shadow:var(--shadow-card)}
  html{scroll-behavior:auto}
}
