/* ==========================================================================
   Befox.design — KOMPONENTY
   Znovupoužitelné bloky: panely, dlaždice, karty, tabulky, akordeony,
   formuláře. Vyžaduje base.css (proměnné a primitiva).
   ========================================================================== */

/* ------------------------------------------------------------------ hero */

.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:center}
.hero__kicker{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--cyan);margin-bottom:26px}
.hero h1{font-weight:600;font-size:clamp(38px,4.6vw,68px);line-height:1.02;margin-bottom:24px;text-wrap:pretty}
.hero__lead{font-size:18px;line-height:1.55;color:var(--fg-68);margin-bottom:34px;max-width:34em}
.hero__actions{display:flex;gap:14px;margin-bottom:22px;flex-wrap:wrap}
.hero__meta{font-family:var(--mono);font-size:11.5px;letter-spacing:.03em;color:var(--fg-45);line-height:1.9}

/* panel (uptime / incident / schema) */
.panel{border:1px solid var(--line-strong);border-radius:8px;background:rgb(var(--fg-rgb) / .02);overflow:hidden}
.panel--flat{background:rgb(var(--bg-rgb) / .6)}
.panel__head{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:12px 16px;border-bottom:1px solid var(--line);
  font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;color:var(--fg-55);
}
.panel__foot{
  padding:13px 16px;font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;
  color:var(--fg-45);display:flex;justify-content:space-between;gap:12px;
}
.ok{color:var(--cyan)}
.hot{color:var(--accent)}

.uprow{
  display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center;
  padding:14px 16px;border-bottom:1px solid var(--line-soft);
}
.uprow__host{font-family:var(--mono);font-size:12px;color:rgb(var(--fg-rgb) / .85);margin-bottom:8px}
.spark{display:flex;gap:2px;height:20px;align-items:flex-end}
.spark i{flex:1;height:100%;background:rgb(var(--cyan-rgb) / .5);display:block}
.spark i.dip{height:55%;background:var(--accent)}
.uprow__val{font-family:var(--mono);font-size:13px;text-align:right}
.uprow__ms{font-size:10px;color:var(--fg-40);margin-top:4px}

/* -------------------------------------------------------- clients / logos */

.clients{display:flex;align-items:center;gap:36px;flex-wrap:wrap;padding-top:26px;padding-bottom:26px}
.clients__label{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--fg-45);flex:none}
.clients__list{display:flex;gap:14px;flex-wrap:wrap;flex:1;min-width:0}
.clogo{
  flex:1 1 130px;min-width:120px;max-width:100%;height:52px;padding:0 10px;
  border:1px solid var(--line-strong);border-radius:4px;
  display:flex;align-items:center;justify-content:center;gap:8px;
  color:var(--fg-45);
  transition:border-color var(--t),color var(--t),background var(--t);
}
.clogo:hover{border-color:rgb(var(--cyan-rgb) / .45);color:var(--fg);background:rgb(var(--fg-rgb) / .02)}
.clogo svg{flex:none;width:20px;height:20px}
.clogo__txt{display:flex;flex-direction:column;line-height:1.15;min-width:0}
.clogo__name{font-family:var(--display);font-weight:600;font-size:12.5px;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.clogo__sub{font-family:var(--mono);font-size:8px;letter-spacing:.14em;opacity:.62;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ------------------------------------------------------------- card grids */

.tiles{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
  background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden;
}
.tile{background:var(--bg);padding:28px 24px;transition:background var(--t)}
.tile:hover{background:rgb(var(--fg-rgb) / .03)}
.tile__k{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;color:var(--fg-40);margin-bottom:18px}
.tile__k--hot{color:var(--accent)}
.tile h3{font-size:20px;font-weight:500;letter-spacing:-.015em;line-height:1.25;margin-bottom:12px}
.tile p{font-size:14.5px;line-height:1.55;color:var(--fg-62);margin-bottom:20px}

.cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.card{
  border:1px solid var(--line-strong);border-radius:8px;padding:26px;
  transition:border-color var(--t),box-shadow var(--t);
}
.card:hover{border-color:rgb(var(--cyan-rgb) / .45);box-shadow:0 0 24px rgb(var(--cyan-rgb) / .12)}
.card--hot{border-color:rgb(var(--accent-rgb) / .35);background:var(--accent-soft)}
.card--hot:hover{border-color:rgb(var(--accent-rgb) / .7);box-shadow:0 0 26px rgb(var(--accent-rgb) / .18)}
.card__head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:16px}
.card__head h3{font-size:22px;font-weight:500;letter-spacing:-.015em}
.card__count{font-family:var(--mono);font-size:10.5px;color:var(--fg-42)}
.card p{font-size:15px;line-height:1.6;color:var(--fg-65);margin-bottom:20px}

/* ---------------------------------------------------------------- podpora */

.split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.split--about{grid-template-columns:.8fr 1.2fr;gap:56px}
.split--faq{grid-template-columns:.55fr 1.45fr;gap:56px}
.sec--support{background:var(--accent-soft)}
.sec--about{background:rgb(var(--fg-rgb) / .02)}
.prose h2{font-weight:600;font-size:40px;line-height:1.08;margin-bottom:24px}
.prose p{font-size:16.5px;line-height:1.62;color:var(--fg-72);margin-bottom:18px}

.slots{
  border:1px solid rgb(var(--accent-rgb) / .35);border-radius:8px;padding:18px 20px;
  margin:26px 0;display:flex;gap:18px;align-items:center;
}
.slots__n{font-family:var(--mono);font-size:34px;color:var(--accent);line-height:1;flex:none}
.slots p{font-size:14px;line-height:1.5;color:var(--fg-68);margin:0}

.log{padding:8px 0;font-family:var(--mono);font-size:12px;line-height:1.9}
.log__row{display:grid;grid-template-columns:74px minmax(0,1fr);gap:14px;padding:6px 16px}
.log__row > span{min-width:0;overflow-wrap:anywhere}
.log__t{color:var(--fg-40)}
.log__m{color:rgb(var(--fg-rgb) / .8)}
.log__m--muted{color:var(--fg-55)}

.kpis{border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr)}
.kpis > div{padding:18px 16px;border-right:1px solid var(--line)}
.kpis > div:last-child{border-right:0}
.kpi__n{font-family:var(--mono);font-size:22px}
.kpi__l{font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--fg-42);margin-top:6px}

/* -------------------------------------------------------------- reference */

.metrics{display:grid;grid-template-columns:1.15fr 1fr;gap:16px;margin-bottom:16px}
.bar-row{margin-bottom:22px}
.bar-row:last-of-type{margin-bottom:26px}
.bar-lbl{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11px;color:var(--fg-55);margin-bottom:8px}
.bar{height:14px;background:rgb(var(--fg-rgb) / .06);border-radius:2px;overflow:hidden}
.bar i{display:block;height:100%}
.bar i.before{width:100%;background:repeating-linear-gradient(135deg,rgb(var(--fg-rgb) / .22) 0 6px,rgb(var(--fg-rgb) / .10) 6px 12px)}
.bar i.after{width:25%;background:var(--cyan)}
.bigstats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;border-top:1px solid var(--line);padding-top:20px}
.bigstat__n{font-family:var(--mono);font-size:26px;letter-spacing:-.02em}
.bigstat__l{font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--fg-42);margin-top:6px}

.flow{padding:24px 20px;display:grid}
.flow__node{border:1px solid rgb(var(--fg-rgb) / .16);border-radius:4px;padding:10px 12px;font-family:var(--mono);font-size:11.5px}
.flow__node--on{border-color:rgb(var(--cyan-rgb) / .45);color:var(--cyan)}
.flow__link{height:18px;margin-left:22px;border-left:1px solid rgb(var(--cyan-rgb) / .5)}
.flow__pair{display:flex;gap:10px}
.flow__pair > *{flex:1}

/* portfolio */
.works{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:16px}
.work{
  border:1px solid var(--line-strong);border-radius:8px;overflow:hidden;
  display:flex;flex-direction:column;background:rgb(var(--fg-rgb) / .015);
  transition:border-color var(--t),box-shadow var(--t),transform var(--t);
}
.work:hover{border-color:rgb(var(--cyan-rgb) / .45);box-shadow:0 0 26px rgb(var(--cyan-rgb) / .12);transform:translateY(-2px)}
.work__shot{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--surface-3);border-bottom:1px solid var(--line)}
.work__shot img{width:100%;height:100%;object-fit:cover;object-position:top center;transition:transform 320ms ease;filter:saturate(.92)}
.work:hover .work__shot img{transform:scale(1.028)}
.work__badge{
  position:absolute;top:10px;left:10px;z-index:2;
  font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;
  padding:5px 9px;border-radius:3px;background:rgb(var(--bg-rgb) / .86);
  border:1px solid var(--line-strong);color:var(--fg-72);
  display:flex;align-items:center;gap:7px;
}
.work__badge--live{color:var(--cyan);border-color:rgb(var(--cyan-rgb) / .4)}
.work__badge--live .dot{width:5px;height:5px}
.work__badge--soon{color:var(--accent);border-color:rgb(var(--accent-rgb) / .4)}
.work__body{padding:18px 20px 20px;display:flex;flex-direction:column;flex:1}
.work__kind{font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--fg-40);margin-bottom:10px}
.work h3{font-family:var(--display);font-size:18px;font-weight:500;letter-spacing:-.015em;margin-bottom:8px;color:var(--fg);transition:color var(--t)}
.work:hover h3{color:var(--cyan)}
.work p{font-size:14px;line-height:1.55;color:var(--fg-62);margin-bottom:16px}
.work__foot{
  margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:12px;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;
  border-top:1px solid var(--line-soft);padding-top:14px;
}
.work__stack{color:var(--fg-42);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.work__url{color:var(--cyan);flex:none}
.work:hover .work__url{color:var(--cyan-hi)}
.works-note{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;line-height:1.8;
  color:var(--fg-38);margin:0;
}

/* ------------------------------------------------------------------ ceník */

.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:44px}
.plan{
  border:1px solid var(--line-strong);border-radius:8px;overflow:hidden;
  transition:border-color var(--t),box-shadow var(--t);
}
.plan:hover{border-color:rgb(var(--cyan-rgb) / .45);box-shadow:0 0 24px rgb(var(--cyan-rgb) / .12)}
.plan--hot{border-color:rgb(var(--accent-rgb) / .4);background:var(--accent-soft)}
.plan--hot:hover{border-color:rgb(var(--accent-rgb) / .75);box-shadow:0 0 28px rgb(var(--accent-rgb) / .2)}
.plan__head{padding:22px 22px 18px;border-bottom:1px solid var(--line)}
.plan--hot .plan__head{border-bottom-color:rgb(var(--accent-rgb) / .22)}
.plan__name{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--fg-55);margin-bottom:14px}
.plan__top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}
.plan__top .plan__name{margin:0}
.plan__cap{font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--fg-55)}
.plan__price{font-family:var(--mono);font-size:32px;letter-spacing:-.02em}
.plan__price span{font-size:12px;color:var(--fg-40)}
.plan__list{padding:18px 22px;font-size:14px;line-height:2;color:rgb(var(--fg-rgb) / .66)}
.plan__list > div{display:flex;justify-content:space-between;gap:12px}
.plan__list b{font-family:var(--mono);font-size:12px;font-weight:400;color:var(--fg);text-align:right}

.rates{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.rate-head{
  padding:12px 20px;border-bottom:1px solid var(--line);
  font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;color:var(--fg-55);
}
.rate-list{font-family:var(--mono);font-size:13px}
.rate-list > div{
  display:grid;grid-template-columns:1fr auto auto;gap:18px;
  padding:14px 20px;border-bottom:1px solid var(--line-soft);
}
.rate-list--2 > div{grid-template-columns:1fr auto}
.rate-list > div:last-child{border-bottom:0}
.rate-list span:first-child{color:rgb(var(--fg-rgb) / .75)}
.rate-list .when{color:var(--fg-45)}
.fineprint{font-size:14.5px;line-height:1.7;color:rgb(var(--fg-rgb) / .6);margin:24px 0 0;max-width:78ch}

/* ------------------------------------------------------------------ o nás */

.founder{
  aspect-ratio:4/5;border:1px solid rgb(var(--fg-rgb) / .14);border-radius:8px;
  overflow:hidden;position:relative;background:var(--surface-1);
}
.founder img{width:100%;height:100%;object-fit:cover}
.founder__cap{
  position:absolute;left:0;right:0;bottom:0;padding:14px 18px;
  font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--fg-45);
  background:linear-gradient(transparent,rgb(var(--bg-rgb) / .9));
}
.numbers{
  display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:8px;margin-top:16px;overflow:hidden;
}
.numbers > div{background:var(--bg);padding:16px 18px}
.numbers__n{font-family:var(--mono);font-size:24px}
.numbers__l{font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--fg-42);margin-top:4px}
.about h2{font-weight:600;font-size:38px;margin-bottom:24px}
.about p{font-size:17px;line-height:1.62;color:var(--fg-72);margin-bottom:18px}
.about p.last{margin-bottom:28px}
.pledges{display:grid;grid-template-columns:1fr 1fr;gap:14px 28px;margin-bottom:30px}
.pledge{border-top:1px solid var(--line-strong);padding-top:14px}
.pledge__k{font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--cyan);margin-bottom:6px}
.pledge__v{font-size:14.5px;color:rgb(var(--fg-rgb) / .6)}

/* ---------------------------------------------------------------- kroky */

.steps{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.step{background:var(--bg);padding:28px 24px 30px}
.step__k{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--cyan);margin-bottom:16px}
.step h3{font-size:19px;font-weight:500;letter-spacing:-.015em;margin-bottom:10px}
.step p{font-size:14.5px;line-height:1.6;color:var(--fg-62)}

/* ----------------------------------------------------------------- stack */

.stack{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center;padding-top:30px;padding-bottom:30px}
.stack__label{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--fg-40);margin-right:8px}
.stack span:not(.stack__label){font-family:var(--mono);font-size:12px;color:var(--fg-62)}

/* ------------------------------------------------------------------- FAQ */

.faq h2{font-weight:600;font-size:34px;line-height:1.1}
.faq-list{border-top:1px solid var(--line-strong)}
details{border-bottom:1px solid var(--line-strong)}
details > summary{
  list-style:none;cursor:pointer;
  display:flex;justify-content:space-between;gap:20px;align-items:center;
  padding:20px 0;font-family:var(--display);font-size:18px;font-weight:500;
  letter-spacing:-.01em;transition:color var(--t);
}
details > summary::-webkit-details-marker{display:none}
details > summary:hover{color:var(--cyan)}
.plus{font-family:var(--mono);color:var(--cyan);transition:transform var(--t);flex:none}
details[open] .plus{transform:rotate(45deg)}
details p{font-size:15.5px;line-height:1.65;color:var(--fg-65);margin:0 0 22px;max-width:72ch}

/* Nadpis uvnitř <summary> — drží akordeony v osnově dokumentu,
   aby se daly procházet odečítačem obrazovky po nadpisech. */
details > summary > h3{
  margin:0;font:inherit;letter-spacing:inherit;color:inherit;
  display:flex;justify-content:space-between;align-items:center;gap:20px;width:100%;
}

/* --------------------------------------------------------------- kontakt */

.contact h2{font-weight:600;font-size:42px;line-height:1.06;margin-bottom:20px}
.contact__lead{font-size:17px;line-height:1.6;color:var(--fg-68);margin-bottom:32px}
.sos{
  border:1px solid rgb(var(--accent-rgb) / .4);border-radius:8px;padding:20px 22px;
  background:rgb(var(--accent-rgb) / .05);margin-bottom:30px;
}
.sos__k{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--accent);margin-bottom:10px}
.sos p{font-size:15px;line-height:1.55;color:var(--fg-72);margin-bottom:12px}
.sos__tel{font-family:var(--mono);font-size:22px;letter-spacing:-.01em;transition:text-shadow var(--t)}
.sos__tel:hover{text-shadow:0 0 18px rgb(var(--accent-rgb) / .6)}
.contact__meta{font-family:var(--mono);font-size:12.5px;line-height:2.1;color:var(--fg-55)}

.form{padding:24px 22px;display:grid;gap:18px}
.form__pair{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.field{display:block}
.field > span{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;color:var(--fg-45);
  display:block;margin-bottom:8px;
}
.field input,.field select,.field textarea{
  width:100%;background:rgb(var(--fg-rgb) / .03);border:1px solid rgb(var(--fg-rgb) / .14);
  border-radius:4px;padding:11px 12px;color:var(--fg);
  font-family:var(--body);font-size:14.5px;outline:none;
  transition:border-color var(--t),box-shadow var(--t);
}
.field select{font-family:var(--body)}
.field--mono select{font-family:var(--mono);font-size:13px}
.field textarea{resize:vertical;min-height:104px}
.field input:focus,.field select:focus,.field textarea:focus{
  border-color:rgb(var(--cyan-rgb) / .6);box-shadow:0 0 16px rgb(var(--cyan-rgb) / .15);
}
.field option{background:var(--surface-2);color:var(--fg)}
.form button{width:100%;font-weight:600}
.form__note{font-family:var(--mono);font-size:10.5px;line-height:1.7;color:var(--fg-38);margin:0}
.form__status{font-family:var(--mono);font-size:11.5px;line-height:1.6;color:var(--cyan);margin:0}
.form__status[hidden]{display:none}

/* ============================================================ responzivita */

@media (max-width:1080px){
  .hero{grid-template-columns:1fr;gap:44px}
  .metrics{grid-template-columns:1fr}
  .split,.split--about,.split--faq{grid-template-columns:1fr;gap:44px}
  .tiles,.steps{grid-template-columns:repeat(2,1fr)}
  .cards3,.plans,.works{grid-template-columns:repeat(2,1fr)}
  .founder{max-width:340px}
}

@media (max-width:760px){
  .prose h2,.about h2{font-size:29px}
  .contact h2{font-size:31px}
  .faq h2{font-size:27px}
  .tiles,.steps,.cards3,.plans,.works,.rates,.form__pair,.pledges,.bigstats{grid-template-columns:1fr}
  .metrics{grid-template-columns:1fr}
  .kpis{grid-template-columns:1fr}
  .kpis > div{border-right:0;border-bottom:1px solid var(--line)}
  .kpis > div:last-child{border-bottom:0}
  .founder{max-width:none}
  .clients{flex-direction:column;align-items:stretch;gap:16px}
  .clients__label{margin-bottom:-2px}
  .clients__list{gap:10px;width:100%;flex:0 0 auto}
  .clogo{flex:1 1 calc(50% - 5px);min-width:0}
  .log{font-size:11.5px}
  .log__row{grid-template-columns:60px minmax(0,1fr);gap:10px;padding:6px 14px}
  .rate-list{font-size:12px}
  .rate-list > div{gap:12px;padding:13px 16px}
  .slots{flex-direction:column;align-items:flex-start;gap:12px}
}

@media (max-width:520px){
  .clogo{flex:1 1 100%}

  /* Název služby a štítek s hodinami se vedle sebe na úzký displej nevejdou. */
  .service{padding:20px}
  .service__top{flex-direction:column;align-items:flex-start;gap:8px}
  .service__hours{white-space:normal}
  .scope summary{padding:15px 16px}
  .scope__body{padding:16px}
  .cta{padding:24px 20px}
}

@media (max-width:460px){
  .hero h1{font-size:33px}
  .plan__price,.contact h2{font-size:28px}
  .sos__tel{font-size:19px}
}

/* ==========================================================================
   KOMPONENTY PODSTRÁNEK
   Použité na pilířích služeb a jejich podstránkách.
   ========================================================================== */

/* ------------------------------------------------------ drobečková navigace */
.crumbs{
  font-family:var(--mono);font-size:11px;letter-spacing:.06em;
  padding-top:18px;padding-bottom:18px;color:var(--fg-40);
}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.crumbs li{display:flex;align-items:center;gap:8px}
.crumbs li + li::before{content:"›";color:var(--fg-38)}
.crumbs a{color:var(--fg-55)}
.crumbs a:hover{color:var(--fg)}
.crumbs [aria-current="page"]{color:var(--cyan)}

/* ------------------------------------------------------------ hero stránky */
.phero{display:grid;grid-template-columns:1.08fr .92fr;gap:56px;align-items:center}
.phero__kicker{
  font-family:var(--mono);font-size:11px;letter-spacing:.14em;
  color:var(--cyan);margin-bottom:22px;
}
.phero h1{font-weight:600;font-size:clamp(34px,4vw,54px);line-height:1.05;margin-bottom:24px}
.phero__lead p{font-size:17.5px;line-height:1.6;color:var(--fg-68);max-width:64ch;margin-bottom:16px}
.phero__lead p:last-child{margin-bottom:32px}
.phero__actions{display:flex;gap:14px;flex-wrap:wrap}

/* datový panel se stavem portfolia */
.facts{display:grid}
.facts__row{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:baseline;
  padding:15px 16px;border-bottom:1px solid var(--line-soft);
}
.facts__row:last-child{border-bottom:0}
.facts__k{font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--fg-55)}
.facts__v{font-family:var(--mono);font-size:16px;color:var(--fg);text-align:right}
.facts__v.ok{color:var(--cyan)}

/* zástupný text pro chybějící údaj — musí být vidět, ne splynout */
.todo{
  font-family:var(--mono);font-size:11px;letter-spacing:.04em;
  color:var(--warn);background:rgb(var(--accent-rgb) / .10);
  border:1px dashed rgb(var(--accent-rgb) / .45);border-radius:3px;
  padding:2px 7px;display:inline-block;
}

/* ------------------------------------------------------- dlaždice služeb */
.services{
  display:grid;grid-template-columns:repeat(2,1fr);gap:1px;
  background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden;
}
.service{
  background:var(--bg);padding:24px;display:flex;flex-direction:column;gap:10px;
  transition:background var(--t),box-shadow var(--t);
}
.service:hover{background:rgb(var(--cyan-rgb) / .045);box-shadow:inset 0 0 0 1px rgb(var(--cyan-rgb) / .28)}
.service__top{display:flex;justify-content:space-between;align-items:baseline;gap:14px}
.service h3{font-size:19px;font-weight:500;letter-spacing:-.015em;margin:0}
.service h3 a{color:var(--fg)}
.service h3 a::after{content:"";position:absolute;inset:0}
.service:hover h3 a{color:var(--cyan)}
.service__hours{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;
  color:var(--fg-42);white-space:nowrap;flex:none;
}
.service p{font-size:14.5px;line-height:1.55;color:var(--fg-62);margin:0}
.service__go{
  font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--cyan);
  margin-top:auto;padding-top:6px;
}
.service--linked{position:relative}
.service--linked .service__go::after{content:" →"}

/* ---------------------------------------------------------- akordeon prací */
.scope{border:1px solid var(--line-strong);border-radius:8px;overflow:hidden}
.scope details{border-bottom:1px solid var(--line)}
.scope details:last-child{border-bottom:0}
.scope summary{
  padding:18px 22px;font-family:var(--display);font-size:17px;font-weight:500;
  letter-spacing:-.01em;background:rgb(var(--fg-rgb) / .015);
}
.scope summary:hover{color:var(--cyan);background:rgb(var(--fg-rgb) / .03)}
.scope details[open] > summary{border-bottom:1px solid var(--line);background:rgb(var(--cyan-rgb) / .035)}
.scope__body{padding:20px 22px 24px}
.scope__list{list-style:none;margin:0;padding:0;display:grid;gap:11px}
/* Odrážka se kreslí absolutně, ne jako sloupec mřížky. Mřížka by z každého
   vnořeného prvku (třeba <strong> na začátku) udělala vlastní buňku a text
   by se rozpadl na svislé sloupce. */
.scope__list li{
  position:relative;padding-left:24px;
  font-size:14.5px;line-height:1.55;color:var(--fg-65);
  max-width:66ch;   /* ~75 znaků na řádek, dál se text čte hůř */
}
.scope__list li::before{
  content:"—";position:absolute;left:0;top:0;
  font-family:var(--mono);font-size:12px;color:var(--cyan);line-height:1.9;
}
.scope__list li strong{color:var(--fg)}
.scope__note{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;line-height:1.8;
  color:var(--fg-38);margin:16px 0 0;padding-top:14px;border-top:1px solid var(--line-soft);
}

/* --------------------------------------------------------- tabulka zakázek */
.jobs{border:1px solid var(--line-strong);border-radius:8px;overflow:hidden}
.jobs table{width:100%;border-collapse:collapse}
.jobs caption{
  padding:12px 20px;text-align:left;border-bottom:1px solid var(--line);
  font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;color:var(--fg-55);
}
.jobs th,.jobs td{padding:15px 20px;text-align:left;border-bottom:1px solid var(--line-soft)}
.jobs thead th{
  font-family:var(--mono);font-size:10px;letter-spacing:.1em;font-weight:400;
  color:var(--fg-42);text-transform:uppercase;
}
.jobs tbody th{font-weight:500;font-size:15px;color:var(--fg)}
.jobs td{font-family:var(--mono);font-size:13px;color:rgb(var(--fg-rgb) / .72)}
.jobs td:last-child,.jobs thead th:last-child{text-align:right}
.jobs td:last-child{white-space:nowrap}
.jobs tbody tr:last-child th,.jobs tbody tr:last-child td{border-bottom:0}
.jobs tbody tr:hover th,.jobs tbody tr:hover td{background:rgb(var(--fg-rgb) / .025)}

/* ------------------------------------------------------- související služby */
.related{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.rel{
  border:1px solid var(--line-strong);border-radius:8px;padding:22px;position:relative;
  transition:border-color var(--t),box-shadow var(--t);
}
.rel:hover{border-color:rgb(var(--cyan-rgb) / .45);box-shadow:0 0 22px rgb(var(--cyan-rgb) / .12)}
.rel__k{font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--fg-40);margin-bottom:12px}
.rel h3{font-size:18px;font-weight:500;letter-spacing:-.015em;margin:0 0 8px}
.rel h3 a{color:var(--fg)}
.rel h3 a::after{content:"";position:absolute;inset:0}
.rel:hover h3 a{color:var(--cyan)}
.rel p{font-size:14px;line-height:1.55;color:var(--fg-62);margin:0}

/* ------------------------------------------------------------- závěrečné CTA */
.cta{
  border:1px solid rgb(var(--accent-rgb) / .3);border-radius:8px;background:var(--accent-soft);
  display:grid;grid-template-columns:1.25fr .75fr;gap:40px;padding:36px 38px;align-items:center;
}
.cta h2{font-weight:600;font-size:30px;line-height:1.12;margin-bottom:12px}
.cta p{font-size:16px;line-height:1.6;color:var(--fg-68);max-width:56ch}
.cta__actions{display:grid;gap:12px;justify-items:stretch}
.cta__sos{
  border:1px solid rgb(var(--accent-rgb) / .35);border-radius:6px;padding:14px 16px;text-align:center;
}
.cta__sos-k{font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:var(--accent);margin-bottom:8px}
.cta__sos-tel{font-family:var(--mono);font-size:19px;letter-spacing:-.01em;transition:text-shadow var(--t)}
.cta__sos-tel:hover{text-shadow:0 0 16px rgb(var(--accent-rgb) / .6)}

/* --------------------------------------------------------- textová šířka */
.wrap--narrow{max-width:960px}
.measure{max-width:68ch}

/* ============================================================ responzivita */

@media (max-width:1080px){
  .phero{grid-template-columns:1fr;gap:40px}
  .cta{grid-template-columns:1fr;gap:26px;padding:30px}
}

@media (max-width:760px){
  .services{grid-template-columns:1fr}
  .related{grid-template-columns:1fr}
  .phero h1{font-size:31px}
  .cta h2{font-size:25px}
  .scope summary{padding:16px 18px;font-size:16px}
  .scope__body{padding:18px}

  /* tabulka zakázek se na mobilu rozpadá na karty */
  .jobs table,.jobs thead,.jobs tbody,.jobs tr,.jobs th,.jobs td{display:block}
  .jobs thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .jobs tbody tr{border-bottom:1px solid var(--line);padding:16px 18px}
  .jobs tbody tr:last-child{border-bottom:0}
  .jobs tbody th{padding:0 0 10px;border:0;font-size:16px}
  .jobs td{
    padding:0;border:0;display:grid;grid-template-columns:auto 1fr;gap:12px;
    text-align:left;white-space:normal;line-height:2;
  }
  .jobs td:last-child{text-align:left}
  .jobs td::before{
    content:attr(data-label);font-size:10px;letter-spacing:.1em;
    color:var(--fg-42);text-transform:uppercase;
  }
  .jobs tbody tr:hover th,.jobs tbody tr:hover td{background:none}
}

/* --------------------------------------------------- rozpracovaná stránka */
.wip{
  border:1px solid rgb(var(--accent-rgb) / .32);border-radius:8px;
  background:var(--accent-soft);padding:26px 28px;margin:30px 0 24px;
}
.wip__k{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--accent);margin-bottom:12px}
.wip p{font-size:16px;line-height:1.6;color:var(--fg-72);margin:0 0 22px;max-width:60ch}
.wip__actions{display:flex;gap:12px;flex-wrap:wrap}
.wip__meta{border:1px solid var(--line-strong);border-radius:8px;overflow:hidden}
.wip__meta .facts__row:last-child{border-bottom:0}

/* tři kroky místo čtyř — používá podstránka Zrychlení webu */
.steps--3{grid-template-columns:repeat(3,1fr)}
@media (max-width:1080px){ .steps--3{grid-template-columns:repeat(3,1fr)} }
@media (max-width:760px){ .steps--3{grid-template-columns:1fr} }

/* ------------------------------------------------- seznam odkazů ve stránce */
.linklist{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden;
}
.linklist li{background:var(--bg)}
.linklist a{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:16px 20px;font-size:15px;color:var(--fg-72);
  transition:background var(--t),color var(--t);
}
.linklist a::after{content:"→";font-family:var(--mono);font-size:12px;color:var(--cyan);opacity:.55}
.linklist a:hover{background:rgb(var(--cyan-rgb) / .045);color:var(--fg)}
.linklist a:hover::after{opacity:1}

@media (max-width:1080px){ .linklist{grid-template-columns:repeat(2,1fr)} }
@media (max-width:640px){ .linklist{grid-template-columns:1fr} }
