/* Virtuální provozní — sdílené styly (index.html + hardware.html) */
  /* ---- self-hosted fonts ---- */
  @font-face{font-family:"Bricolage Grotesque";font-style:normal;font-weight:600 800;font-display:swap;src:url(../fonts/bricolage-latin.woff2?v=1) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
  @font-face{font-family:"Bricolage Grotesque";font-style:normal;font-weight:600 800;font-display:swap;src:url(../fonts/bricolage-latinext.woff2?v=1) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

  @font-face{font-family:"Instrument Sans";font-style:normal;font-weight:400 600;font-display:swap;src:url(../fonts/instrument-latin.woff2?v=1) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
  @font-face{font-family:"Instrument Sans";font-style:normal;font-weight:400 600;font-display:swap;src:url(../fonts/instrument-latinext.woff2?v=1) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
  @font-face{font-family:"Instrument Sans";font-style:italic;font-weight:400 600;font-display:swap;src:url(../fonts/instrument-italic-latin.woff2?v=1) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
  @font-face{font-family:"Instrument Sans";font-style:italic;font-weight:400 600;font-display:swap;src:url(../fonts/instrument-italic-latinext.woff2?v=1) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

  @font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/plexmono-400-latin.woff2?v=1) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
  @font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/plexmono-400-latinext.woff2?v=1) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
  @font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/plexmono-600-latin.woff2?v=1) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
  @font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/plexmono-600-latinext.woff2?v=1) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

  :root{
    --paper:#f2f3f1; --surface:#ffffff; --surface-2:#eceeea;
    --carbon:#151922; --carbon-soft:#454d5a; --carbon-faint:#5f6874;
    --rule:#dbddd7; --rule-strong:#c7cabf;
    --paprika:#c1420a; --paprika-ink:#a5380a; --paprika-wash:#f7e7dd;
    --plus:#256f43; --plus-wash:#e2efe6;
    --band:#151922; --band-ink:#c8ccd3; --band-faint:#8a929e;
    --grid-line:rgba(21,25,34,.045); --grid-hero:rgba(193,66,10,.10); --grid-band:rgba(255,255,255,.035);
    --shadow:0 1px 2px rgba(21,25,34,.04), 0 8px 30px -12px rgba(21,25,34,.12);
  }
  @media (prefers-color-scheme:dark){
    :root:not([data-theme="light"]){
      --paper:#0e1015; --surface:#1b202b; --surface-2:#242b39;
      --carbon:#e9ebef; --carbon-soft:#9aa3b1; --carbon-faint:#828b99;
      --rule:#2a313d; --rule-strong:#3c4453;
      --paprika:#f0722e; --paprika-ink:#f28c52; --paprika-wash:#2a1a10;
      --plus:#5cb883; --plus-wash:#15271c;
      --band:#08090d; --band-ink:#c8ccd3; --band-faint:#79828f;
      --grid-line:rgba(233,235,239,.05); --grid-hero:rgba(240,114,46,.14); --grid-band:rgba(255,255,255,.03);
      --shadow:0 1px 2px rgba(0,0,0,.35), 0 16px 44px -18px rgba(0,0,0,.7);
    }
  }
  :root[data-theme="dark"]{
    --paper:#0e1015; --surface:#1b202b; --surface-2:#242b39;
    --carbon:#e9ebef; --carbon-soft:#9aa3b1; --carbon-faint:#828b99;
    --rule:#2a313d; --rule-strong:#3c4453;
    --paprika:#f0722e; --paprika-ink:#f28c52; --paprika-wash:#2a1a10;
    --plus:#5cb883; --plus-wash:#15271c;
    --band:#08090d; --band-ink:#c8ccd3; --band-faint:#79828f;
    --grid-line:rgba(233,235,239,.05); --grid-hero:rgba(240,114,46,.14); --grid-band:rgba(255,255,255,.03);
    --shadow:0 1px 2px rgba(0,0,0,.35), 0 16px 44px -18px rgba(0,0,0,.7);
  }

  *,*::before,*::after{box-sizing:border-box}
  html{-webkit-text-size-adjust:100%; scroll-behavior:smooth}
  @media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
  body{
    margin:0; color:var(--carbon);
    font-family:"Instrument Sans","Segoe UI",system-ui,sans-serif;
    font-size:17px; line-height:1.6; -webkit-font-smoothing:antialiased;
    background-color:var(--paper);
    background-image:
      linear-gradient(to right, var(--grid-line) 1px, transparent 1px),
      linear-gradient(to bottom, var(--grid-line) 1px, transparent 1px);
    background-size:46px 46px;
    background-position:calc(50% + .5px) -1px;
    background-attachment:fixed;
  }
  body::after{
    content:""; position:fixed; inset:0; z-index:2147483000; pointer-events:none;
    opacity:.04; mix-blend-mode:overlay;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  }
  @media (prefers-reduced-motion:reduce){body::after{display:none}}
  .wrap{max-width:1180px; margin:0 auto; padding:0 clamp(20px,5vw,64px)}
  .measure{max-width:64ch}
  a{color:inherit}
  h1,h2,h3{font-family:"Bricolage Grotesque","Instrument Sans",sans-serif; font-weight:800; letter-spacing:-.02em; line-height:1.02; text-wrap:balance; margin:0}
  .mono{font-family:"IBM Plex Mono",ui-monospace,monospace}
  .kicker{font-family:"IBM Plex Mono",monospace; font-size:12px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--paprika)}
  .num{font-family:"IBM Plex Mono",monospace; font-variant-numeric:tabular-nums; font-weight:600}

  .skip{position:absolute; left:-999px; top:0; z-index:100; background:var(--carbon); color:var(--paper); padding:10px 16px; font-size:14px; font-weight:600}
  .skip:focus{left:12px; top:12px}

  /* ---- top bar ---- */
  .topbar{position:sticky; top:0; z-index:50; background:color-mix(in srgb, var(--paper) 88%, transparent); backdrop-filter:blur(8px); border-bottom:1px solid var(--rule)}
  .topbar .row{display:flex; align-items:center; justify-content:space-between; height:62px}
  .brand{display:flex; align-items:center; gap:10px; font-family:"Bricolage Grotesque",sans-serif; font-weight:800; font-size:19px; letter-spacing:-.02em; text-decoration:none}
  .brand .mark{height:26px; width:auto; display:block; flex:none}
  .brand .dot{width:9px; height:9px; background:var(--paprika); display:inline-block; transform:translateY(-1px)}
  .navlinks{display:flex; gap:22px; font-size:14px}
  .navlinks a{text-decoration:none; color:var(--carbon-soft); white-space:nowrap}
  .navlinks a:hover{color:var(--carbon)}
  .navactions{display:flex; align-items:center; gap:16px}
  .btn{display:inline-flex; align-items:center; gap:8px; font-weight:600; font-size:15px; text-decoration:none; padding:11px 20px; border:1.5px solid var(--carbon); background:var(--carbon); color:var(--paper); border-radius:2px; transition:transform .12s ease, background .12s}
  .btn:hover{transform:translateY(-1px)}
  .btn.accent{background:var(--paprika); border-color:var(--paprika); color:#fff}
  .btn.ghost{background:transparent; color:var(--carbon)}
  .btn.sm{padding:8px 15px; font-size:14px}
  @media (prefers-reduced-motion:reduce){.btn:hover{transform:none}}

  /* ---- mobile nav / hamburger ---- */
  .navtoggle{display:none; width:42px; height:42px; padding:0; align-items:center; justify-content:center;
    background:transparent; border:1px solid var(--rule-strong); border-radius:3px; cursor:pointer; color:var(--carbon)}
  .navtoggle .bars{position:relative}
  .navtoggle .bars, .navtoggle .bars::before, .navtoggle .bars::after{
    content:""; display:block; width:18px; height:2px; background:currentColor; border-radius:1px;
    transition:transform .2s ease, opacity .2s ease}
  .navtoggle .bars::before{position:absolute; left:0; top:-6px}
  .navtoggle .bars::after{position:absolute; left:0; top:6px}
  .navtoggle[aria-expanded="true"] .bars{background:transparent}
  .navtoggle[aria-expanded="true"] .bars::before{top:0; transform:rotate(45deg)}
  .navtoggle[aria-expanded="true"] .bars::after{top:0; transform:rotate(-45deg)}
  @media (prefers-reduced-motion:reduce){.navtoggle .bars, .navtoggle .bars::before, .navtoggle .bars::after{transition:none}}

  /* ---- theme toggle ---- */
  .navright{display:flex; align-items:center; gap:14px}
  .themetoggle{width:42px; height:42px; flex:none; display:inline-flex; align-items:center; justify-content:center;
    background:transparent; border:1px solid var(--rule-strong); border-radius:3px; cursor:pointer; color:var(--carbon-soft)}
  .themetoggle:hover{color:var(--carbon)}
  .themetoggle svg{width:18px; height:18px; display:block}
  /* výchozí (řídí OS): světlo -> měsíc, tma -> slunce */
  .themetoggle .i-sun{display:none}
  .themetoggle .i-moon{display:block}
  @media (prefers-color-scheme:dark){
    :root:not([data-theme="light"]) .themetoggle .i-sun{display:block}
    :root:not([data-theme="light"]) .themetoggle .i-moon{display:none}
  }
  :root[data-theme="dark"] .themetoggle .i-sun{display:block}
  :root[data-theme="dark"] .themetoggle .i-moon{display:none}
  :root[data-theme="light"] .themetoggle .i-sun{display:none}
  :root[data-theme="light"] .themetoggle .i-moon{display:block}

  .mobilenav{display:flex; flex-direction:column; background:var(--paper); border-top:1px solid var(--rule);
    padding:6px clamp(20px,5vw,64px) 22px;
    max-height:calc(100vh - 61px); max-height:calc(100dvh - 61px); overflow-y:auto}
  .mobilenav a{padding:14px 2px; border-bottom:1px dashed var(--rule); text-decoration:none;
    color:var(--carbon-soft); font-size:16px; font-weight:500}
  .mobilenav a:hover{color:var(--carbon)}
  .mobilenav .mn-actions{display:flex; flex-direction:column; gap:12px; margin-top:18px}
  .mobilenav .mn-actions .mn-login{border-bottom:0; color:var(--carbon); font-weight:600; text-align:center; padding:12px}
  .mobilenav .mn-actions .btn{justify-content:center; padding:13px 20px}
  .mobilenav[hidden]{display:none}

  @media (max-width:1000px){
    .navlinks{display:none}
    .navactions{display:none}
    .navtoggle{display:inline-flex}
  }
  @media (min-width:1001px){
    .mobilenav{display:none !important}
  }

  /* ---- hero ---- */
  .hero{padding:clamp(40px,6vw,76px) 0 40px; position:relative; isolation:isolate}
  .hero::before{
    content:""; position:absolute; left:0; right:0; top:-80px; height:720px; z-index:-1; pointer-events:none;
    background-image:
      linear-gradient(to right, var(--grid-hero) 1px, transparent 1px),
      linear-gradient(to bottom, var(--grid-hero) 1px, transparent 1px);
    background-size:92px 92px;
    background-position:calc(50% + .5px) -1px;
    -webkit-mask-image:radial-gradient(120% 82% at 80% 6%, #000 0%, rgba(0,0,0,.5) 42%, transparent 78%);
    mask-image:radial-gradient(120% 82% at 80% 6%, #000 0%, rgba(0,0,0,.5) 42%, transparent 78%);
    transform:translate3d(0, calc(var(--sy, 0) * 0.05px), 0); will-change:transform;
  }
  @media (prefers-reduced-motion:reduce){.hero::before{transform:none}}
  .hero h1{font-size:clamp(38px,7vw,78px); max-width:15ch}
  .hero h1 em{font-style:normal; color:var(--paprika)}
  .hero .lead{font-size:clamp(18px,2.4vw,22px); color:var(--carbon-soft); margin:26px 0 34px; max-width:52ch}
  .hero .cta{display:flex; gap:14px; flex-wrap:wrap; align-items:center}
  .hero .fineprint{font-size:13.5px; color:var(--carbon-faint); margin-top:16px; font-family:"IBM Plex Mono",monospace}

  /* ---- hero split + device ---- */
  .hero-grid{display:grid; grid-template-columns:minmax(0,1fr) clamp(340px,36vw,440px); gap:clamp(30px,5vw,60px); align-items:center}
  @media (max-width:980px){.hero-grid{grid-template-columns:1fr} .hero-visual{display:none}}
  .hero-visual{position:relative; transform:translate3d(0, calc(var(--sy, 0) * 0.025px), 0)}
  @media (prefers-reduced-motion:reduce){.hero-visual{transform:none}}
  .device{border:1px solid var(--rule-strong); border-radius:16px; background:#0f131b; padding:10px; box-shadow:var(--shadow); transform:rotate(-1.1deg)}
  .device .app{border-radius:9px}
  .app.map{--a-bg:#12161f; padding:14px 14px 16px}
  .app .maptop{display:flex; align-items:center; gap:7px; font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:.09em; text-transform:uppercase; color:var(--a-dim); padding-bottom:11px; margin-bottom:12px; border-bottom:1px solid var(--a-line)}
  .app .maptop .md{width:7px; height:7px; border-radius:50%; background:var(--a-orange); flex:none}
  .app .maptitle{margin:0 0 8px; font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--a-dim)}
  .app .maptitle + .maptitle{margin-top:14px}
  .app .mapgrid{display:grid; grid-template-columns:repeat(5,1fr); gap:6px}
  .app .t{border:1px solid var(--a-line); background:var(--a-card); border-radius:6px; padding:8px 3px 7px; text-align:center; line-height:1.15}
  .app .t b{display:block; font-family:"IBM Plex Mono",monospace; font-size:13px; color:var(--a-ink)}
  .app .t span{font-size:9px; color:var(--a-dim)}
  .app .t.busy{background:var(--a-orange); border-color:var(--a-orange)}
  .app .t.busy b, .app .t.busy span{color:#1b1205}
  .hero-visual .ping{position:absolute; left:16px; bottom:-15px; display:flex; align-items:center; gap:8px; background:var(--surface); border:1px solid var(--rule-strong); box-shadow:var(--shadow); border-radius:999px; padding:8px 14px; font-family:"IBM Plex Mono",monospace; font-size:12px; color:var(--carbon-soft); transform:rotate(1.1deg)}
  .hero-visual .ping .dotg{width:8px; height:8px; border-radius:50%; background:var(--plus); flex:none}

  /* ---- KPI band ---- */
  .kpis{margin-top:clamp(40px,6vw,72px); border:1px solid var(--rule-strong); background:var(--surface); box-shadow:var(--shadow)}
  .kpis .bar{display:flex; align-items:center; justify-content:space-between; padding:10px 16px; border-bottom:1px solid var(--rule); font-family:"IBM Plex Mono",monospace; font-size:11.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--carbon-faint)}
  .kpis .live{display:inline-flex; align-items:center; gap:7px; color:var(--plus)}
  .kpis .live::before{content:""; width:7px; height:7px; border-radius:50%; background:var(--plus); animation:pulse 2.4s ease-in-out infinite}
  @keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}
  @media (prefers-reduced-motion:reduce){.kpis .live::before{animation:none}}
  .kpigrid{display:grid; grid-template-columns:repeat(5,1fr)}
  .kpi{padding:20px 18px; border-right:1px solid var(--rule)}
  .kpi:last-child{border-right:0}
  .kpi .lab{font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--carbon-faint)}
  .kpi .val{font-family:"IBM Plex Mono",monospace; font-variant-numeric:tabular-nums; font-weight:600; font-size:clamp(19px,2.4vw,26px); margin-top:6px}
  .kpi .val.up{color:var(--plus)} .kpi .val.warn{color:var(--paprika)}
  .kpi .sub{font-size:12px; color:var(--carbon-faint); margin-top:3px}
  @media (max-width:860px){.kpigrid{grid-template-columns:repeat(2,1fr)} .kpi:nth-child(2n){border-right:0} .kpi{border-bottom:1px solid var(--rule)} .kpi:nth-last-child(-n+1){border-bottom:0}}

  /* ---- ticker ---- */
  .ticker{background:var(--band); color:var(--band-ink); overflow:hidden; border-top:1px solid var(--rule); border-bottom:1px solid var(--rule)}
  .ticker .track{display:flex; gap:0; white-space:nowrap; will-change:transform; animation:scroll 46s linear infinite}
  .ticker:hover .track{animation-play-state:paused}
  @media (prefers-reduced-motion:reduce){.ticker .track{animation:none; transform:none}}
  @keyframes scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
  .tick{display:inline-flex; align-items:center; gap:12px; padding:13px 26px; font-family:"IBM Plex Mono",monospace; font-size:13px; border-right:1px solid rgba(255,255,255,.08)}
  .tick .t{color:var(--band-faint)}
  .tick .v{color:#fff}
  .tick .g{color:var(--plus)}
  .tick .o{color:var(--paprika)}

  /* ---- generic section ---- */
  section{padding:clamp(64px,10vw,112px) 0; border-bottom:1px solid var(--rule)}
  .sechead{display:flex; align-items:baseline; gap:16px; margin-bottom:14px}
  .sechead .kicker{white-space:nowrap}
  .sechead .rule{flex:1; height:1px; background:var(--rule-strong)}
  h2{font-size:clamp(28px,4.4vw,46px); max-width:20ch}
  .sec-lead{color:var(--carbon-soft); font-size:clamp(17px,2vw,19px); margin:18px 0 0; max-width:56ch}

  /* ---- problem ---- */
  .problems{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--rule-strong); border:1px solid var(--rule-strong); margin-top:44px}
  .problem{background:var(--surface); padding:28px 24px}
  .problem .q{font-family:"Bricolage Grotesque",sans-serif; font-weight:700; font-size:20px; letter-spacing:-.01em; margin-bottom:8px}
  .problem p{margin:0; font-size:15px; color:var(--carbon-soft)}
  @media (max-width:820px){.problems{grid-template-columns:1fr}}

  /* ---- feature groups ---- */
  .groups{display:grid; grid-template-columns:repeat(2,1fr); gap:22px; margin-top:48px}
  @media (max-width:820px){.groups{grid-template-columns:1fr}}
  .group{background:var(--surface); border:1px solid var(--rule-strong); padding:30px 28px; display:flex; flex-direction:column; gap:2px}
  .group > .kicker{margin-bottom:14px; padding-bottom:14px; border-bottom:1px solid var(--rule)}
  .group h3{font-size:23px; margin-bottom:4px}
  .group .gdesc{color:var(--carbon-soft); font-size:15px; margin:6px 0 16px}
  .group ul{list-style:none; margin:0; padding:0; columns:1}
  .group li{position:relative; padding:6px 0 6px 20px; font-size:14.5px; border-top:1px dashed var(--rule)}
  .group li:first-child{border-top:0}
  .group li::before{content:"+"; position:absolute; left:0; color:var(--paprika); font-family:"IBM Plex Mono",monospace; font-weight:600}

  /* ---- screenshots ---- */
  .shots{display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-top:44px}
  .shot{grid-column:auto; margin:0; border:1px solid var(--rule-strong); background:var(--surface); box-shadow:var(--shadow); overflow:hidden}
  .shot.wide{grid-column:1 / -1}
  @media (max-width:820px){.shots{grid-template-columns:1fr} .shot.wide{grid-column:auto}}
  .shot .chrome{display:flex; align-items:center; gap:12px; padding:9px 14px; border-bottom:1px solid var(--rule); background:var(--surface-2); font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:.09em; text-transform:uppercase; color:var(--carbon-faint)}
  .shot .dots{display:inline-flex; gap:5px; flex:none}
  .shot .dots i{width:8px; height:8px; border-radius:50%; background:var(--rule-strong)}
  .shot figcaption{padding:13px 16px; font-size:13.5px; color:var(--carbon-soft); border-top:1px solid var(--rule); background:var(--surface)}

  .app{--a-bg:#151922; --a-card:#1e242f; --a-card-2:#252c39; --a-line:#2f3744; --a-ink:#e9ebef; --a-dim:#98a1af; --a-orange:#e8871e; --a-green:#20a15a; --a-amber:#e0a43a;
       background:var(--a-bg); color:var(--a-ink); padding:16px; font-size:12.5px; font-family:"Instrument Sans",system-ui,sans-serif; line-height:1.45}
  .app .num,.app b{font-family:"IBM Plex Mono",monospace; font-variant-numeric:tabular-nums}

  .app.pos{display:grid; grid-template-columns:1fr 240px; gap:14px}
  @media (max-width:560px){.app.pos{grid-template-columns:1fr}}
  .app .chips{display:flex; flex-wrap:wrap; gap:6px; margin-bottom:12px}
  .app .chips span{padding:5px 11px; border:1px solid var(--a-line); border-radius:999px; color:var(--a-dim); font-size:11.5px}
  .app .chips .on{background:var(--a-orange); border-color:var(--a-orange); color:#1b1205; font-weight:600}
  .app .tiles{display:grid; grid-template-columns:repeat(2,1fr); gap:8px}
  .app .tile{border:1px solid var(--a-line); background:var(--a-card); border-radius:6px; padding:12px 12px 10px; display:flex; flex-direction:column; gap:10px; min-height:66px; justify-content:space-between}
  .app .tile b{color:var(--a-orange); font-size:13px}
  .app .bill{border:1px solid var(--a-line); background:var(--a-card); border-radius:8px; padding:12px; display:flex; flex-direction:column}
  .app .bh{color:var(--a-green); font-weight:600; letter-spacing:.02em; margin-bottom:8px}
  .app .bl{display:flex; justify-content:space-between; gap:10px; padding:6px 0; border-top:1px solid var(--a-line); color:var(--a-ink)}
  .app .bl span{color:var(--a-dim)}
  .app .bt{display:flex; justify-content:space-between; align-items:baseline; margin-top:10px; padding-top:10px; border-top:1px solid var(--a-line)}
  .app .bt span{color:var(--a-dim); text-transform:uppercase; font-size:10.5px; letter-spacing:.1em}
  .app .bt b{font-size:18px}
  .app .bb{display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:12px}
  .app .bb span{text-align:center; padding:9px 6px; border-radius:6px; font-weight:600; font-size:12px}
  .app .b-ghost{border:1px solid var(--a-orange); color:var(--a-orange)}
  .app .b-pay{background:var(--a-green); color:#04180d}

  .app.ai{display:flex; flex-direction:column; gap:12px}
  .app.ai .q{align-self:flex-end; max-width:82%; background:var(--a-orange); color:#1b1205; padding:9px 13px; border-radius:10px 10px 3px 10px; font-weight:500}
  .app.ai .a{align-self:flex-start; max-width:92%; background:var(--a-card); border:1px solid var(--a-line); padding:12px 13px; border-radius:10px 10px 10px 3px}
  .app.ai table{width:100%; border-collapse:collapse; margin-bottom:8px}
  .app.ai td{padding:5px 0; border-bottom:1px solid var(--a-line); color:var(--a-dim)}
  .app.ai td:first-child{color:var(--a-ink)}
  .app.ai td:last-child,.app.ai td:nth-child(2){text-align:right; font-family:"IBM Plex Mono",monospace}
  .app.ai td.warn{color:var(--a-amber)}
  .app.ai tr:last-child td{border-bottom:0}
  .app.ai .a p{margin:6px 0 0; color:var(--a-dim)}
  .app.ai .a b{color:var(--a-ink)}

  .app.menu{display:flex; flex-direction:column}
  .app .mrow{display:grid; grid-template-columns:minmax(0,1.6fr) .8fr .8fr auto; gap:10px; padding:9px 0; border-top:1px solid var(--a-line); align-items:center}
  .app .mrow:first-child{border-top:0}
  .app .mrow.mh{color:var(--a-dim); text-transform:uppercase; font-size:10px; letter-spacing:.1em}
  .app .mrow span:nth-child(2),.app .mrow span:nth-child(3){font-family:"IBM Plex Mono",monospace; color:var(--a-dim); text-align:right}
  .app .mrow span:first-child{color:var(--a-ink); font-weight:500}
  .app .mrow em{justify-self:end; white-space:nowrap; font-style:normal; font-family:"IBM Plex Mono",monospace; font-size:11px; font-weight:600; padding:3px 9px; border-radius:999px}
  .app .mrow em.ok{background:rgba(32,161,90,.16); color:#5cd08c}
  .app .mrow em.warn{background:rgba(224,164,58,.16); color:#e7bd6b}

  /* ---- proof strip ---- */
  .proof{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--rule-strong); border:1px solid var(--rule-strong); margin-top:22px}
  .proof div{background:var(--surface); padding:18px 20px}
  .proof b{display:block; font-family:"Bricolage Grotesque",sans-serif; font-size:17px; letter-spacing:-.01em}
  .proof span{font-size:13px; color:var(--carbon-soft)}
  @media (max-width:720px){.proof{grid-template-columns:1fr}}

  /* ---- day timeline (skutečná sekvence -> číslováno + symbol) ---- */
  .day{margin-top:48px; display:grid; gap:0}
  .step{display:grid; grid-template-columns:76px 1fr; gap:26px; padding:28px 0; border-top:1px solid var(--rule); align-items:start}
  .step:first-child{border-top:0}
  .step .fig{width:76px; height:76px; flex:none; border:1px solid var(--rule-strong); background:var(--surface); display:flex; align-items:center; justify-content:center}
  .step .fig svg{width:38px; height:38px; color:var(--paprika)}
  .step .when{font-family:"IBM Plex Mono",monospace; font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--paprika); display:block; margin-bottom:6px}
  .step h3{font-size:21px; margin-bottom:6px}
  .step p{margin:0; color:var(--carbon-soft); font-size:15.5px; max-width:60ch}
  @media (max-width:640px){.step{grid-template-columns:56px 1fr; gap:18px} .step .fig{width:56px; height:56px} .step .fig svg{width:28px; height:28px}}

  /* ---- AI section ---- */
  .ai-sec{background-color:var(--band); color:var(--band-ink);
    background-image:linear-gradient(to right, var(--grid-band) 1px, transparent 1px), linear-gradient(to bottom, var(--grid-band) 1px, transparent 1px);
    background-size:46px 46px; background-position:calc(50% + .5px) -1px}
  .ai-sec h2{color:#fff}
  .ai-sec .sec-lead{color:var(--band-ink)}
  .ai-sec .sechead .kicker{color:var(--paprika)}
  .ai-sec .sechead .rule{background:rgba(255,255,255,.14)}
  .chat{margin-top:44px; max-width:680px; border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.03)}
  .chat .head{padding:11px 18px; border-bottom:1px solid rgba(255,255,255,.1); font-family:"IBM Plex Mono",monospace; font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--band-faint)}
  .chat .body{padding:22px 20px; display:flex; flex-direction:column; gap:16px}
  .bubble{max-width:86%; padding:12px 16px; font-size:15px; line-height:1.55}
  .bubble.you{align-self:flex-end; background:var(--paprika); color:#fff}
  .bubble.ai{align-self:flex-start; background:rgba(255,255,255,.07); color:#eef0f3}
  .bubble.ai .num{color:#fff}
  .bubble.ai b{color:#fff}
  .ai-caps{margin-top:40px; display:grid; grid-template-columns:1fr 1fr; gap:1px; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.14)}
  @media (max-width:760px){.ai-caps{grid-template-columns:1fr}}
  .ai-caps > div{background:var(--band); padding:26px 24px}
  .ai-caps .kicker{color:var(--paprika); display:block; margin-bottom:12px}
  .ai-caps h3{color:#fff; font-size:20px; margin-bottom:8px}
  .ai-caps p{margin:0; font-size:14.5px; color:var(--band-ink)}
  .ai-tiers{margin-top:24px; display:flex; flex-wrap:wrap; gap:10px}
  .ai-tiers span{font-family:"IBM Plex Mono",monospace; font-size:12.5px; padding:8px 13px; border:1px solid rgba(255,255,255,.16); color:var(--band-ink)}
  .ai-tiers b{color:#fff; font-weight:600}
  .ai-fine{margin-top:18px; font-size:13px; color:var(--band-faint); max-width:70ch; line-height:1.7}

  /* ---- audience / venues ---- */
  .venues{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:44px}
  @media (max-width:900px){.venues{grid-template-columns:repeat(2,1fr)}}
  @media (max-width:560px){.venues{grid-template-columns:1fr}}
  .venue{background:var(--surface); border:1px solid var(--rule-strong); padding:22px; display:flex; flex-direction:column}
  .venue .art{height:120px; margin-bottom:18px; border:1px solid var(--rule); background:var(--surface-2); display:flex; align-items:center; justify-content:center}
  .venue .art svg{width:112px; height:66px; color:var(--carbon-soft)}
  .venue .art svg .ac{stroke:var(--paprika); fill:var(--paprika)}
  .venue h3{font-size:19px; margin-bottom:6px}
  .venue p{margin:0 0 18px; font-size:14px; color:var(--carbon-soft); flex:1}
  .venue .btn{align-self:flex-start}

  /* ---- trust ---- */
  .trust{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--rule-strong); border:1px solid var(--rule-strong); margin-top:44px}
  .trust div{background:var(--surface); padding:22px 20px}
  .trust .th{font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--paprika); margin-bottom:8px}
  .trust p{margin:0; font-size:14px; color:var(--carbon-soft)}
  @media (max-width:820px){.trust{grid-template-columns:1fr 1fr}}
  @media (max-width:480px){.trust{grid-template-columns:1fr}}

  /* ---- hardware ---- */
  .hw{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--rule-strong); border:1px solid var(--rule-strong); margin-top:44px}
  .hw .card{background:var(--surface); padding:28px 24px; display:flex; flex-direction:column}
  .hw .lab{font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--paprika); margin-bottom:12px}
  .hw h3{font-family:"Bricolage Grotesque",sans-serif; font-weight:700; font-size:20px; letter-spacing:-.01em; line-height:1.15; margin:0 0 8px}
  .hw h3 span{color:var(--carbon-faint); font-weight:600}
  .hw p{margin:0 0 16px; font-size:14.5px; color:var(--carbon-soft)}
  .hw .tags{margin-top:auto; display:flex; flex-wrap:wrap; gap:6px}
  .hw .tags span{font-family:"IBM Plex Mono",monospace; font-size:11.5px; padding:5px 10px; border:1px solid var(--rule); color:var(--carbon-soft)}
  .hw-note{margin-top:18px; font-size:14px; color:var(--carbon-faint)}
  @media (max-width:820px){.hw{grid-template-columns:1fr}}

  /* ---- FAQ ---- */
  .faq{margin-top:44px; border-top:1px solid var(--rule-strong)}
  .faq details{border-bottom:1px solid var(--rule-strong)}
  .faq summary{list-style:none; cursor:pointer; padding:22px 44px 22px 0; position:relative; font-family:"Bricolage Grotesque",sans-serif; font-weight:700; font-size:clamp(17px,2.1vw,20px); letter-spacing:-.01em}
  .faq summary::-webkit-details-marker{display:none}
  .faq summary::after{content:"+"; position:absolute; right:6px; top:19px; font-family:"IBM Plex Mono",monospace; font-weight:600; font-size:22px; color:var(--paprika); transition:transform .18s ease}
  @media (prefers-reduced-motion:reduce){.faq summary::after{transition:none}}
  .faq details[open] summary::after{transform:rotate(45deg)}
  .faq .ans{padding:0 44px 24px 0; color:var(--carbon-soft); font-size:15.5px; max-width:70ch}
  .faq .ans a{color:var(--paprika); text-decoration:underline; text-underline-offset:2px}

  /* ---- price ---- */
  .price{margin-top:40px; border:1px solid var(--rule-strong); background:var(--surface); padding:clamp(28px,5vw,44px); display:flex; gap:28px; align-items:center; flex-wrap:wrap; justify-content:space-between}
  .price .big{font-family:"Bricolage Grotesque",sans-serif; font-weight:800; font-size:clamp(24px,3.4vw,32px); letter-spacing:-.02em; max-width:22ch}
  .price .big span{color:var(--paprika)}

  /* ---- plans ---- */
  .plans{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:44px}
  @media (max-width:900px){.plans{grid-template-columns:1fr}}
  .plan{background:var(--surface); border:1px solid var(--rule-strong); padding:28px 26px; display:flex; flex-direction:column}
  .plan.featured{border-color:var(--paprika); box-shadow:var(--shadow)}
  .plan .pname{font-family:"IBM Plex Mono",monospace; font-size:12px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--paprika); display:flex; align-items:center; gap:10px; margin-bottom:16px}
  .plan .badge{font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:.08em; background:var(--paprika); color:#fff; padding:3px 8px; border-radius:2px}
  .plan .amount{font-family:"Bricolage Grotesque",sans-serif; font-weight:800; letter-spacing:-.02em; font-size:clamp(30px,4vw,40px); line-height:1}
  .plan .amount span{font-family:"IBM Plex Mono",monospace; font-weight:600; font-size:14px; color:var(--carbon-faint); letter-spacing:0}
  .plan .who{color:var(--carbon-soft); font-size:14px; margin:12px 0 18px}
  .plan ul{list-style:none; margin:0 0 22px; padding:0; flex:1}
  .plan li{position:relative; padding:7px 0 7px 20px; font-size:14px; border-top:1px dashed var(--rule)}
  .plan li:first-child{border-top:0}
  .plan li::before{content:"+"; position:absolute; left:0; color:var(--paprika); font-family:"IBM Plex Mono",monospace; font-weight:600}
  .plan li.muted{color:var(--carbon-faint)}
  .plan li.muted::before{content:"\2013"; color:var(--carbon-faint)}
  .plan .btn{justify-content:center}

  .addons{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--rule-strong); border:1px solid var(--rule-strong); margin-top:22px}
  .addons div{background:var(--surface); padding:15px 18px; display:flex; justify-content:space-between; gap:16px; align-items:baseline; font-size:14px}
  .addons .a-name{color:var(--carbon-soft)}
  .addons .a-price{font-family:"IBM Plex Mono",monospace; font-weight:600; white-space:nowrap; color:var(--carbon)}
  @media (max-width:640px){.addons{grid-template-columns:1fr}}

  .price-note{margin-top:20px; font-size:13.5px; color:var(--carbon-faint); font-family:"IBM Plex Mono",monospace; line-height:1.8}
  .price-note b{color:var(--carbon-soft); font-weight:600}

  /* ---- hw price table ---- */
  .hwprice{width:100%; border-collapse:collapse; margin-top:26px; font-size:14.5px}
  .hwprice caption{text-align:left; font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--paprika); margin-bottom:8px}
  .hwprice td{padding:11px 0; border-top:1px solid var(--rule); vertical-align:baseline}
  .hwprice td:first-child{padding-right:16px; color:var(--carbon-soft)}
  .hwprice tbody tr:first-child td{border-top:0}
  .hwprice td:last-child{text-align:right; font-family:"IBM Plex Mono",monospace; font-weight:600; white-space:nowrap; color:var(--carbon)}
  .hwprice .grouprow td{padding:22px 0 6px; font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--carbon-faint); border-top:0}
  .hwprice .set td:first-child{color:var(--carbon); font-weight:500}

  /* ---- hero CTA reassurance ---- */
  .cta-note{margin-top:14px; font-family:"IBM Plex Mono",monospace; font-size:12.5px; letter-spacing:.02em; color:var(--carbon-faint)}
  .cta-note b{color:var(--carbon-soft); font-weight:600}
  .btn.lg{padding:14px 26px; font-size:16px}

  /* ---- mid-page CTA strip ---- */
  .ctastrip{background:var(--band); color:#fff; border-top:1px solid var(--rule); border-bottom:1px solid var(--rule);
    background-image:linear-gradient(to right, var(--grid-band) 1px, transparent 1px), linear-gradient(to bottom, var(--grid-band) 1px, transparent 1px);
    background-size:46px 46px; background-position:calc(50% + .5px) -1px}
  .ctastrip .in{display:flex; align-items:center; justify-content:space-between; gap:28px; flex-wrap:wrap; padding-top:clamp(28px,5vw,44px); padding-bottom:clamp(28px,5vw,44px)}
  .ctastrip .t{font-family:"Bricolage Grotesque",sans-serif; font-weight:800; letter-spacing:-.02em; font-size:clamp(21px,3vw,28px); max-width:24ch; color:#fff}
  .ctastrip .t span{color:var(--paprika)}
  .ctastrip .btn.accent{flex:none}

  /* ---- final cta ---- */
  .final{text-align:left}
  .final h2{font-size:clamp(30px,5.6vw,58px); max-width:16ch}
  .final .lead2{color:var(--carbon-soft); font-size:clamp(17px,2vw,19px); margin:18px 0 0; max-width:56ch}
  .final .steps{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--rule-strong); border:1px solid var(--rule-strong); margin-top:34px}
  .final .steps div{background:var(--surface); padding:20px 20px}
  .final .steps .n{font-family:"IBM Plex Mono",monospace; font-size:11px; font-weight:600; letter-spacing:.1em; color:var(--paprika); display:block; margin-bottom:8px}
  .final .steps p{margin:0; font-size:14.5px; color:var(--carbon-soft)}
  @media (max-width:720px){.final .steps{grid-template-columns:1fr}}
  .final .cta{display:flex; gap:14px; flex-wrap:wrap; align-items:center; margin-top:30px}
  .final .cta .tel{font-weight:600; color:var(--carbon-soft); text-decoration:none; font-size:15px}
  .final .cta .tel:hover{color:var(--carbon)}

  footer{padding:56px 0 70px; background-color:var(--band); color:var(--band-faint); font-size:13.5px; border-bottom:0;
    background-image:linear-gradient(to right, var(--grid-band) 1px, transparent 1px), linear-gradient(to bottom, var(--grid-band) 1px, transparent 1px);
    background-size:46px 46px; background-position:calc(50% + .5px) -1px}
  footer .grid{display:flex; justify-content:space-between; gap:30px; flex-wrap:wrap; align-items:flex-start}
  footer a{color:var(--band-ink); text-decoration:none}
  footer a:hover{color:#fff}
  footer .mono{font-size:12.5px; letter-spacing:.05em}
  footer .legal-links{margin-top:14px; font-size:12.5px; letter-spacing:.03em}
  footer .legal-links a{color:var(--band-ink)}
  footer .provider{margin-top:12px; font-size:11.5px; line-height:1.7; color:var(--band-faint); letter-spacing:.03em; max-width:44ch}

  /* ---- právní / textové stránky ---- */
  .legal{max-width:64ch; margin:0 auto}
  .legal .updated{font-family:"IBM Plex Mono",monospace; font-size:12.5px; color:var(--carbon-faint); margin:0 0 32px}
  .legal h2{font-size:clamp(19px,2.5vw,24px); margin:38px 0 12px; max-width:none; scroll-margin-top:80px}
  .legal h3{font-size:16.5px; margin:22px 0 8px}
  .legal p,.legal li{font-size:15.5px; color:var(--carbon-soft); line-height:1.75}
  .legal p{margin:0 0 14px}
  .legal ul,.legal ol{margin:0 0 16px; padding-left:22px}
  .legal li{margin:5px 0}
  .legal strong{color:var(--carbon); font-weight:600}
  .legal a{color:var(--paprika); text-decoration:underline; text-underline-offset:2px}
  .ph{background:rgba(240,114,46,.16); color:inherit; padding:0 4px; border-radius:2px; font-style:normal; white-space:nowrap}
  .legal .ph{background:var(--paprika-wash); color:var(--paprika-ink)}
  .legal .toc{border:1px solid var(--rule-strong); background:var(--surface); padding:20px 24px; margin:0 0 40px}
  .legal .toc strong{display:block; font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--paprika); margin-bottom:10px}
  .legal .toc ol{margin:0; padding-left:20px}
  .legal .toc li{margin:3px 0; font-size:14.5px}
  .legal .toc a{color:var(--carbon-soft); text-decoration:none}
  .legal .toc a:hover{color:var(--paprika)}
  .legal table{width:100%; border-collapse:collapse; margin:8px 0 20px; font-size:14px}
  .legal th,.legal td{text-align:left; padding:9px 12px 9px 0; border-top:1px solid var(--rule); vertical-align:top}
  .legal thead th{border-top:0; font-family:"IBM Plex Mono",monospace; font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--carbon-faint)}
  .legal .backlink{display:inline-block; margin-top:36px; font-weight:600; color:var(--paprika); text-decoration:none}
  .legal .backlink:hover{text-decoration:underline}

  /* ---- lišta souhlasu s cookies ---- */
  .cookiebar{position:fixed; left:0; right:0; bottom:0; z-index:2147483200;
    background:var(--band); color:var(--band-ink); border-top:1px solid var(--rule-strong);
    padding:15px clamp(16px,4vw,40px); box-shadow:0 -10px 34px -14px rgba(0,0,0,.5)}
  .cookiebar .cb-in{max-width:1180px; margin:0 auto; display:flex; gap:14px 26px; align-items:center; flex-wrap:wrap; justify-content:space-between}
  .cookiebar p{margin:0; font-size:13px; line-height:1.6; max-width:74ch; color:var(--band-ink)}
  .cookiebar a{color:#fff; text-decoration:underline}
  .cookiebar .cb-btns{display:flex; gap:10px; flex:none}
  .cookiebar button{font:inherit; font-weight:600; font-size:14px; padding:9px 18px; border-radius:2px; cursor:pointer;
    border:1.5px solid var(--paprika); background:var(--paprika); color:#fff}
  .cookiebar button:hover{filter:brightness(1.06)}
  @media (max-width:620px){.cookiebar .cb-in{flex-direction:column; align-items:stretch} .cookiebar .cb-btns button{width:100%}}

  /* ---- objednávkový průvodce ---- */
  .wiz{max-width:760px; margin:0 auto}
  .wiz-progress{display:flex; gap:0; margin-bottom:44px; counter-reset:wizstep}
  .wiz-progress .wp{flex:1; text-align:center; padding-bottom:14px; border-bottom:2px solid var(--rule-strong); position:relative;
    font-family:"IBM Plex Mono",monospace; font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--carbon-faint)}
  .wiz-progress .wp::before{counter-increment:wizstep; content:counter(wizstep); display:block; margin:0 auto 8px; width:26px; height:26px; line-height:26px;
    border-radius:50%; border:1.5px solid var(--rule-strong); background:var(--surface); color:var(--carbon-faint); font-weight:600}
  .wiz-progress .wp.on{border-color:var(--paprika); color:var(--carbon)}
  .wiz-progress .wp.on::before{border-color:var(--paprika); background:var(--paprika); color:#fff}
  .wiz-progress .wp.done::before{content:"✓"; border-color:var(--paprika); color:var(--paprika); background:transparent}

  .wiz-step{display:none}
  .wiz-step.on{display:block}
  .wiz-step h2{font-size:clamp(22px,3vw,28px); margin-bottom:22px}

  .tarifcards{display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:28px}
  @media (max-width:640px){.tarifcards{grid-template-columns:1fr}}
  .tarifcard{position:relative; display:block; border:1.5px solid var(--rule-strong); background:var(--surface); padding:18px; cursor:pointer}
  .tarifcard input{position:absolute; top:16px; right:16px}
  .tarifcard .tn{font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--paprika)}
  .tarifcard .tp{font-family:"Bricolage Grotesque",sans-serif; font-weight:800; font-size:22px; margin:6px 0 2px}
  .tarifcard .tp span{font-family:"IBM Plex Mono",monospace; font-weight:500; font-size:12px; color:var(--carbon-faint)}
  .tarifcard:has(input:checked){border-color:var(--paprika); box-shadow:0 0 0 1px var(--paprika)}

  .field{margin-bottom:18px}
  .field-row{display:grid; grid-template-columns:1fr 1fr; gap:16px}
  @media (max-width:560px){.field-row{grid-template-columns:1fr}}
  .field label{display:block; font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--carbon-faint); margin-bottom:6px}
  .field input[type=text],.field input[type=email],.field input[type=tel],.field input[type=number],.field select,.field textarea{
    width:100%; padding:11px 13px; font:inherit; font-size:15px; color:var(--carbon); background:var(--surface);
    border:1.5px solid var(--rule-strong); border-radius:2px}
  .field input:focus,.field select:focus,.field textarea:focus{outline:none; border-color:var(--paprika)}
  .field textarea{resize:vertical; min-height:80px}
  .field .hint{margin-top:6px; font-size:12.5px; color:var(--carbon-faint)}
  .field-inline{display:flex; gap:10px; align-items:stretch}
  .field-inline .field{flex:1; margin-bottom:0}
  .field-inline .btn{flex:none}
  .check{display:flex; align-items:flex-start; gap:10px; font-size:14.5px; color:var(--carbon-soft); cursor:pointer}
  .check input{margin-top:4px; flex:none}

  .promo-msg{margin-top:8px; font-size:13px; font-family:"IBM Plex Mono",monospace}
  .promo-msg.ok{color:var(--plus)}
  .promo-msg.err{color:var(--paprika)}

  .summary{border:1px solid var(--rule-strong); background:var(--surface); padding:22px 24px; margin-bottom:24px}
  .summary .srow{display:flex; justify-content:space-between; gap:16px; padding:8px 0; border-top:1px dashed var(--rule); font-size:14.5px}
  .summary .srow:first-child{border-top:0}
  .summary .srow.total{border-top:1px solid var(--rule-strong); margin-top:6px; padding-top:14px; font-weight:700; font-size:19px}
  .summary .srow .v{font-family:"IBM Plex Mono",monospace; font-variant-numeric:tabular-nums}
  .summary .srow.sale .v{color:var(--plus)}

  .wiz-nav{display:flex; justify-content:space-between; gap:14px; margin-top:8px}
  .wiz .msg{padding:13px 16px; font-size:14px; margin-bottom:20px; border-left:3px solid}
  .wiz .msg.err{background:var(--paprika-wash); border-color:var(--paprika); color:var(--paprika-ink)}
  .wiz .msg.ok{background:var(--plus-wash); border-color:var(--plus); color:var(--plus)}
  .wiz .hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden}

  .done-box{text-align:center; padding:56px 20px}
  .done-box .mark{width:64px; height:64px; margin:0 auto 22px; border-radius:50%; background:var(--plus-wash); color:var(--plus);
    display:flex; align-items:center; justify-content:center; font-size:30px}
  .done-box h2{margin-bottom:12px}
  .done-box p{color:var(--carbon-soft); max-width:52ch; margin:0 auto 8px}
  .done-box .vs{font-family:"IBM Plex Mono",monospace; font-weight:600; color:var(--paprika)}

  :focus-visible{outline:2px solid var(--paprika); outline-offset:3px}

  /* Vynutí, aby atribut [hidden] vždy vyhrál nad display:flex/grid nastaveným
     na stejném selektoru (např. .srow, .wiz-progress) – jinak prvek zůstane
     vizuálně vidět i po JS togglu .hidden = true. */
  [hidden]{display:none !important}
