/* 84c — reference (HP karty, výpis, detail po etapách). Mobil první. */
.ref-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}

.ref-card{position:relative;display:block;aspect-ratio:4/3;border-radius:14px;overflow:hidden;background:#d8e0ea;color:#fff;box-shadow:0 3px 14px rgba(0,38,89,.09);transition:transform .2s,box-shadow .2s}
a.ref-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(0,38,89,.16)}
a.ref-card:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}
.ref-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.ref-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,18,38,0) 38%,rgba(6,18,38,.82))}
.ref-card-cap{position:absolute;left:14px;right:14px;bottom:12px;z-index:1;display:grid;gap:3px}
.ref-card-title{margin:0;font-size:17px;line-height:1.25;font-weight:800;letter-spacing:-.01em;color:#fff;text-wrap:balance}
.ref-card-sub{font-size:12.5px;opacity:.9}
.ref-card .ref-progress{margin-top:6px;margin-right:46px}
.ref-pct{position:absolute;right:0;bottom:-3px;font-size:12px;font-weight:800;font-variant-numeric:tabular-nums}

.ref-tag{position:absolute;top:12px;left:12px;z-index:1;padding:4px 10px;border-radius:999px;background:#fff;color:var(--navy);font-size:12px;font-weight:800;line-height:1.4}
.ref-tag--completed{background:#e3f4ec;color:#1b7a50}
.ref-tag--in_progress{background:#fff0e3;color:#a64a00}
.ref-tag--awaiting_handover{background:#e6effc;color:#1f4f9a}
.ref-tag--paused{background:#eceff3;color:#4a5568}
.ref-tag--demo{background:rgba(255,255,255,.88);color:#48566a}
.ref-card.is-demo{cursor:default}
.ref-card.is-demo::after{display:none}
.ref-card.is-demo .ref-tag{left:auto;right:12px}

/* HP mřížka fotek: mobil 2, tablet 3, desktop 5 sloupců */
.ref-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.ref-tile{position:relative;margin:0;aspect-ratio:1/1;border-radius:12px;overflow:hidden;background:#d8e0ea;color:#fff}
.ref-tile>a{position:absolute;inset:0;display:block}
.ref-tile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}
.ref-tile>a:hover img{transform:scale(1.04)}
.ref-tile>a:focus-visible{outline:3px solid var(--yellow);outline-offset:-3px;border-radius:12px}
/* popisek přes fotku; klik projde na odkaz pod ním (kromě odkazu na firmu) */
.ref-tile-cap{position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;gap:1px;padding:28px 10px 9px;background:linear-gradient(180deg,rgba(6,18,38,0),rgba(6,18,38,.74));line-height:1.3;font-size:11.5px;pointer-events:none}
.ref-tile-cap a{pointer-events:auto;color:inherit;text-decoration:underline}
/* 1. řádek: název etapy se zkracuje výpustkou, datum (mobil) zůstává vždy celé */
.ref-tile-stage{display:flex;min-width:0;font-size:13px;font-weight:750;white-space:nowrap}
.ref-tile-sname{min-width:0;overflow:hidden;text-overflow:ellipsis}
.ref-tile-cdate{display:none;flex:none;font-weight:650;opacity:.9;white-space:pre}
/* 84c-8 — název (+ firma) max. 2 řádky, na mobilu 1 řádek s výpustkou */
.ref-tile-line{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.ref-tile-title,.ref-tile-company{opacity:.9}
/* 22. 10. — 3. řádek: firma jako text (HP, obor; ne profil), 1 řádek s výpustkou i na mobilu. */
.ref-tile-firm{display:block;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;opacity:.8}
.ref-tile[hidden]{display:none}
.co-photos-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin:16px 0 0}
.co-more{min-height:44px;padding:0 20px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--navy);font-weight:750;cursor:pointer}
.co-more:hover{border-color:#c7d3e2;background:#f5f8fc}
.co-more:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}
@media (max-width:559px){
  /* dlaždice 2 sloupce: datum do 1. řádku místo štítku, název 1 řádek, firma pryč */
  .ref-tile-date{display:none}
  .ref-tile-cdate{display:block}
  .ref-tile-cap{padding:24px 8px 8px}
  .ref-tile-stage{font-size:12px}
  .ref-tile-line{display:block;white-space:nowrap;text-overflow:ellipsis;-webkit-line-clamp:unset}
  .ref-tile-co{display:none}
  .ref-tile.has-progress .ref-tile-cap{padding-bottom:18px}
  .ref-tile-progress{left:8px;right:8px;bottom:7px}
  /* lichý počet na 2 sloupcích → poslední by osiřela (profil 15 → 14, HP 25 → 24) */
  .is-trim-odd>:last-child{display:none}
}
@media (min-width:560px) and (max-width:1023px){
  /* HP na tabletu (3 sloupce): osamělá poslední dlaždice pryč (25 → 24); profil 15 = 5×3 beze změny */
  .ref-latest .ref-photo-grid>:last-child:nth-child(3n+1):not(:first-child){display:none}
}
/* datum fotky vpravo nahoře; pruh plnění etapy pod popiskem (popisek se zvedne) */
.ref-tile-date{position:absolute;top:7px;right:7px;padding:2px 7px;border-radius:999px;background:rgba(6,18,38,.62);color:#fff;font-size:11px;font-weight:700;line-height:1.5;font-variant-numeric:tabular-nums;pointer-events:none}
.ref-tile.has-progress .ref-tile-cap{padding-bottom:21px}
.ref-tile-progress{position:absolute;left:10px;right:10px;bottom:8px;display:flex;align-items:center;gap:7px;pointer-events:none}
.ref-tile-progress .ref-progress{flex:1;height:3px}
.ref-tile-progress b{font-size:10.5px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}
/* Karta „Doloženo stavebním deníkem“ hned pod fotkami (references::photos-source) — zelená
   jako badge profilu .co-verified (#e3f4ec / #1b7a50). Mobil: ikona + text, tlačítko přes celou
   šířku pod nimi; od 700 px v jednom řádku, tlačítko vpravo. */
.ref-proof{display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:12px 14px;margin:18px 0 0;padding:14px 16px;border:1px solid #bfe3cf;border-radius:14px;background:#f1faf5;color:#2f3e55}
.ref-proof-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#e3f4ec;color:#1b7a50;box-shadow:inset 0 0 0 1px #bfe3cf}
.ref-proof-text{display:flex;flex-direction:column;gap:2px;min-width:0;font-size:14.5px;line-height:1.45}
.ref-proof-title{color:#1b7a50;font-size:16px;font-weight:800;line-height:1.3}
.ref-proof-btn{grid-column:1 / -1;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border-radius:999px;background:#1b7a50;color:#fff;font-size:14.5px;font-weight:750;text-decoration:none;white-space:nowrap;transition:background-color .15s}
.ref-proof-btn:hover{background:#13603d;color:#fff}
.ref-proof-btn:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}
@media (min-width:700px){
  .ref-proof{grid-template-columns:48px minmax(0,1fr) auto;padding:16px 20px;gap:16px 18px}
  .ref-proof-icon{width:48px;height:48px}
  .ref-proof-btn{grid-column:auto}
  .ref-proof-title{font-size:17px}
}
@media (prefers-reduced-motion:reduce){.ref-proof-btn{transition:none}}
/* stránka etapy: karta mezi fotkami a kontextem reference */
.ref-stage-gallery+.ref-proof{margin-top:16px}
.ref-stages+.ref-proof{margin-top:30px}
.ref-latest-more{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin:16px 0 0}
.ref-latest-more .more{margin-left:auto}

.ref-progress{display:block;height:4px;border-radius:999px;background:rgba(255,255,255,.32);overflow:hidden}
.ref-progress i{display:block;height:100%;background:var(--yellow);border-radius:inherit}

/* výpis */
/* 84c-7 — horní odsazení mimo stín sticky hlavičky (stín ~36 px; dřív 28 px = drobečky ve stínu) */
.ref-page{padding:44px 0 56px}
.ref-list-head h1,.ref-hero h1{font-size:clamp(30px,7vw,52px);line-height:1.08;letter-spacing:-.03em;margin:0;color:var(--navy);text-wrap:balance}
.ref-lead{color:var(--muted);max-width:62ch;margin:10px 0 0;font-size:16px}
.ref-filter,.ref-pager{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}
.ref-pager{justify-content:center;margin-top:28px}
.ref-filter-heading{flex-basis:100%;margin:0;font-size:15px;font-weight:700;color:var(--muted)}
.ref-chip{display:inline-flex;align-items:center;min-height:36px;padding:5px 13px;border-radius:999px;background:#eef2f7;color:#2f3e55;font-size:14px;font-weight:650}
a.ref-chip:hover{background:#e2e9f2}
.ref-chip[aria-current="page"]{background:var(--navy);color:#fff}
.ref-chip--completed{background:#e3f4ec;color:#1b7a50}
.ref-chip--in_progress{background:#fff0e3;color:#a64a00}
.ref-chip--awaiting_handover{background:#e6effc;color:#1f4f9a}
.ref-chip--paused{background:#eceff3;color:#4a5568}
.ref-empty{color:var(--muted);padding:24px 0}
.ref-not-found{text-align:center;padding:80px 0}
.ref-not-found h1{font-size:clamp(28px,6vw,44px);color:var(--navy);margin:0 0 8px}

/* detail */
.ref-crumbs{font-size:14px;margin-bottom:16px;scroll-margin-top:96px}
.ref-crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 0}
.ref-crumbs li{color:var(--muted)}
.ref-crumbs li+li::before{content:"›";margin:0 8px;color:var(--muted)}
.ref-crumbs a{color:var(--blue);font-weight:700}
.ref-hero{display:grid;grid-template-columns:minmax(0,1fr);gap:22px}
.ref-meta{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
.ref-detail-progress{display:flex;align-items:center;gap:10px;max-width:420px;margin:0 0 14px}
.ref-detail-progress .ref-progress{flex:1;height:6px;background:#e3e9f1}
.ref-detail-progress b{font-variant-numeric:tabular-nums;color:var(--navy)}
/* 84c-5 — hotová etapa: štítek místo pruhu 100 % (nadpisy sekcí, had, karty) */
.ref-done{display:inline-flex;align-items:center;align-self:flex-start;padding:2px 10px;border-radius:999px;background:#e3f4ec;color:#1b7a50;font-size:12.5px;font-weight:800;line-height:1.5;white-space:nowrap}
.ref-stage-title .ref-done{align-self:center}
.ref-scard-body .ref-done{margin-top:6px}
.ref-scard--next .ref-done,.ref-scard--back .ref-done{align-self:flex-end}
/* 84c-5 — souhrn pod krátkým popisem; titulní fotka s max. výškou */
.ref-summary{margin:12px 0 0;color:#3d4b60;font-size:15px;font-weight:650}
.ref-lede{color:#3d4b60;font-size:16.5px;line-height:1.65;max-width:62ch;margin:0}
.ref-firm{display:flex;align-items:center;gap:12px;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.ref-firm-logo{width:48px;height:48px;border-radius:12px;object-fit:contain;background:#fff;border:1px solid var(--line);flex:none}
.ref-firm-mono{display:grid;place-items:center;background:var(--navy);border-color:var(--navy);color:#fff;font-weight:800}
.ref-firm small{display:block;color:var(--muted);font-size:12.5px}
.ref-firm b{display:block;color:var(--navy)}
.ref-firm-link{display:inline-block;margin-top:2px;font-size:14px;font-weight:700;color:var(--blue)}
.ref-photo-cap a{pointer-events:auto;color:inherit;text-decoration:underline;text-underline-offset:2px}
.ref-photo-cap .ref-sep{opacity:.8}

.ref-photo{position:relative;margin:0;border-radius:12px;overflow:hidden;background:#d8e0ea}
.ref-photo>a{position:absolute;inset:0;display:block}
.ref-photo img{display:block;width:100%;height:100%;object-fit:cover}
.ref-photo>a:focus-visible{outline:3px solid var(--yellow);outline-offset:-3px;border-radius:12px}
/* Fotka z odkazu odjinud (#foto-N): bez JS scroll na kotvu, rámeček (overflow:hidden → inset stín). */
.ref-photo:target::after{content:"";position:absolute;inset:0;border-radius:12px;box-shadow:inset 0 0 0 4px var(--yellow);pointer-events:none}
.ref-photo-cap{position:absolute;left:0;right:0;bottom:0;padding:22px 10px 8px;background:linear-gradient(180deg,rgba(6,18,38,0),rgba(6,18,38,.78));color:#fff;font-size:12.5px;font-weight:650;line-height:1.3;pointer-events:none}
.ref-hero-photo{aspect-ratio:4/3}

/* Etapy na detailu: číslo v kroužku na svislé lince (jako časová osa), barva podle
   stavu — hotovo zeleně (#1b7a50 jako .ref-done), rozpracovaná žlutě, nezahájená obrys.
   Linka vede ze spodu kroužku přes mezeru k další etapě, v mezeře šipka dolů. */
.ref-stages{--rs-gap:34px;--rs-dot:42px;--rs-col:48px;display:grid;gap:var(--rs-gap);margin-top:28px}
.ref-stage{position:relative;display:grid;grid-template-columns:var(--rs-col) minmax(0,1fr);column-gap:12px}
.ref-stage-rail{position:relative;display:flex;justify-content:center}
.ref-stage:not(:last-child) .ref-stage-rail::before{content:"";position:absolute;top:calc(var(--rs-dot) + 6px);bottom:calc(var(--rs-gap) * -1 + 6px);left:50%;width:3px;margin-left:-1.5px;border-radius:3px;background:#d5dde8}
.ref-stage.is-done:not(:last-child) .ref-stage-rail::before{background:#9fd0b6}
.ref-stage:not(:last-child) .ref-stage-rail::after{content:"";position:absolute;bottom:calc(var(--rs-gap) * -.5 - 1px);left:50%;width:9px;height:9px;margin-left:-5.5px;border:solid #b4c0cf;border-width:0 3px 3px 0;transform:rotate(45deg);background:#fff}
.ref-stage.is-done:not(:last-child) .ref-stage-rail::after{border-color:#5fae86}
.ref-stage-n{position:relative;z-index:1;display:grid;place-items:center;width:var(--rs-dot);height:var(--rs-dot);border-radius:50%;box-sizing:border-box;border:2px solid #c3ccd8;background:#fff;color:#5b6779;font-size:18px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums;text-decoration:none;transition:transform .15s,box-shadow .15s}
.is-done>.ref-stage-rail .ref-stage-n{background:#1b7a50;border-color:#1b7a50;color:#fff}
.is-active>.ref-stage-rail .ref-stage-n{background:var(--yellow);border-color:var(--yellow);color:var(--navy)}
.is-virtual>.ref-stage-rail .ref-stage-n{border-style:dashed;color:var(--muted)}
a.ref-stage-n:hover{transform:scale(1.08);box-shadow:0 0 0 4px rgba(253,195,3,.28)}
.is-done>.ref-stage-rail a.ref-stage-n:hover{box-shadow:0 0 0 4px rgba(27,122,80,.2)}
a.ref-stage-n:focus-visible{outline:3px solid var(--navy);outline-offset:3px}
.ref-stage-body{min-width:0;display:grid;gap:6px;align-content:start}
.ref-stage-title{min-height:var(--rs-dot)}
/* site.js po kliku v ose přesune focus na nadpis etapy (tabindex -1) — bez rámečku */
.ref-stage h2[tabindex="-1"]:focus{outline:none}
.ref-stage h2{font-size:21px;line-height:1.25;margin:0;color:var(--navy);scroll-margin-top:52px}
/* ═══ Osa etap (references::axis) — výstavní komponenta: detail = had, stránka etapy =
   řada bodů, plovoucí lišta = body. Barvy stavu: hotovo zelená (#1b7a50, AA s bílou),
   rozpracovaná žlutá (navy číslo), nezahájená obrys; koncové body Zahájení (navy)
   a Předáno zákazníkovi. Linku hada kreslí site.js jako jednu SVG cestu. ═══ */
.ax{--ax-green:#1b7a50;--ax-mute:#dce3ec;--ax-ink:#5b6779;--ax-ring:#c3ccd8;position:relative}
.ax-dot{display:grid;place-items:center;flex:none;width:var(--d,40px);height:var(--d,40px);border-radius:50%;box-sizing:border-box;border:2px solid var(--ax-ring,#c3ccd8);background:#fff;color:var(--ax-ink,#5b6779);font-size:15px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.01em;transition:transform .18s cubic-bezier(.3,.7,.4,1),box-shadow .18s}
.ax-dot svg{width:46%;height:46%}
.is-done>.ax-link .ax-dot,.is-done>.ax-pt .ax-dot,.ax-finish.is-done .ax-dot{background:var(--ax-green,#1b7a50);border-color:var(--ax-green,#1b7a50);color:#fff}
.is-active>.ax-link .ax-dot,.is-active>.ax-pt .ax-dot{background:var(--yellow);border-color:var(--yellow);color:var(--navy)}
.ax-start .ax-dot{background:var(--navy);border-color:var(--navy);color:#fff}
.ax-finish.is-awaiting .ax-dot{background:#1f4f9a;border-color:#1f4f9a;color:#fff}
.ax-finish.is-future .ax-dot{border-style:dashed;border-color:#9aa7b8;color:var(--navy)}

/* ── had (detail) — mobil: svisle, kroužek vlevo, text vpravo ── */
.ax--snake{margin:14px 0 40px;padding:4px 0}
.ax-line{position:absolute;left:0;top:0;overflow:visible;pointer-events:none;z-index:0}
.ax-line path{fill:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.ax-line-base{stroke:var(--ax-mute)}
.ax-line-done{stroke:var(--ax-green)}
.ax-line-hl{stroke:var(--navy);opacity:0;transition:opacity .2s}
.ax-line.is-hl .ax-line-hl{opacity:.85}
.ax-line.is-drawing path{transition:stroke-dashoffset .95s cubic-bezier(.65,0,.35,1)}
.ax-snake{position:relative;z-index:1;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr);row-gap:4px}
.ax-cell{min-width:0}
.ax-link,.ax-cell.ax-end{display:grid;grid-template-columns:56px minmax(0,1fr);align-items:center;column-gap:14px;padding:6px 8px 6px 0;color:inherit;text-decoration:none;border-radius:16px}
.ax-node{display:grid;place-items:center;height:56px}
.ax--snake .ax-dot{box-shadow:0 0 0 2px #fff}
.ax--snake .ax-end .ax-dot{--d:50px}
.ax-text{display:flex;flex-direction:column;gap:3px;min-width:0}
.ax-name{color:var(--navy);font-size:15px;font-weight:750;line-height:1.3;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow-wrap:anywhere;text-wrap:balance}
.is-future .ax-name{color:#3d4b60}
.ax-meta{color:var(--ax-ink);font-size:13px;line-height:1.35;font-variant-numeric:tabular-nums}
.ax-end .ax-name{font-size:12.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.ax-finish .ax-meta{color:var(--navy);font-weight:700}
.ax-finish.is-done .ax-name{color:var(--ax-green)}
@media (hover:hover){.ax-link:hover .ax-dot{transform:scale(1.08)}}
.ax-link:hover .ax-name{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px;text-decoration-color:rgba(0,38,89,.3)}
.ax-link:focus-visible{outline:none}
.ax-link:focus-visible .ax-dot{box-shadow:0 0 0 3px #fff,0 0 0 6px var(--navy)}
.ax-link:focus-visible .ax-name{text-decoration:underline;text-underline-offset:3px}
@media (min-width:600px){
  /* had: řádky se střídají (CSS umístění --rN/--cN z PHP), místo po stranách pro oblouky */
  .ax--snake{padding:6px 44px 2px}
  .ax--snake .ax-dot{box-shadow:0 0 0 6px #fff}
  .ax-snake{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:30px;column-gap:8px}
  .ax-cell{grid-row:var(--r3);grid-column:var(--c3)}
  .ax-link,.ax-cell.ax-end{display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 6px 4px;gap:8px}
  .ax-text{align-items:center}
}
@media (min-width:900px){
  .ax-snake{grid-template-columns:repeat(4,minmax(0,1fr))}
  .ax-cell{grid-row:var(--r4);grid-column:var(--c4)}
}
@media (min-width:1200px){
  .ax-snake{grid-template-columns:repeat(5,minmax(0,1fr))}
  .ax-cell{grid-row:var(--r5);grid-column:var(--c5)}
  .ax--snake .ax-dot{--d:44px;font-size:16px}
  .ax--snake .ax-end .ax-dot{--d:54px}
}

/* ── řada bodů (stránka etapy) a plovoucí lišta — sdílené ── */
.ax-scroller{position:relative;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;overscroll-behavior-x:contain}
.ax-scroller::-webkit-scrollbar{display:none}
/* jemný fade na okraji, kterým jde posunout (site.js přepíná třídy) */
.ax-scroller.fade-r{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 48px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 48px),transparent)}
.ax-scroller.fade-l{-webkit-mask-image:linear-gradient(90deg,transparent,#000 48px);mask-image:linear-gradient(90deg,transparent,#000 48px)}
.ax-scroller.fade-l.fade-r{-webkit-mask-image:linear-gradient(90deg,transparent,#000 48px,#000 calc(100% - 48px),transparent);mask-image:linear-gradient(90deg,transparent,#000 48px,#000 calc(100% - 48px),transparent)}
.ax-row{list-style:none;margin:0;display:flex;width:max-content;min-width:100%;box-sizing:border-box}
.ax-slot{position:relative;flex:1 0 var(--ax-slot);min-width:0;display:flex;flex-direction:column;align-items:center}
/* úsek linky od středu předchozího bodu ke středu tohoto; zelená část = plnění etapy */
.ax-slot+.ax-slot::before{content:"";position:absolute;top:calc(var(--ax-dot) / 2 - 1.5px);left:-50%;right:50%;height:3px;background:linear-gradient(90deg,var(--ax-green) var(--fill,0%),var(--ax-mute) var(--fill,0%))}
.ax-pt{position:relative;z-index:1;display:grid;place-items:center;border-radius:50%;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;text-decoration:none}
.ax-slot .ax-dot{--d:var(--ax-dot);font-size:calc(var(--ax-dot) * .42);border-width:2px}
.ax-slot.ax-end>.ax-dot{position:relative;z-index:1;transform:scale(1.3)}
@media (hover:hover){.ax-pt:hover .ax-dot{transform:scale(1.16)}}
.ax-pt:focus-visible{outline:none}
.ax-pt:focus-visible .ax-dot{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--navy)}
/* aktuální etapa: větší, navy prstenec (aria-current page = stránka etapy, true = scroll na detailu) */
.ax-pt[aria-current] .ax-dot{transform:scale(1.34);box-shadow:0 0 0 3px #fff,0 0 0 5.5px var(--navy),0 6px 16px rgba(0,38,89,.22)}


.ax--dots{--ax-dot:var(--ax-dot-base,30px);--ax-slot:var(--ax-slot-base,42px);margin:6px 0 26px}
.ax--dots .ax-row{padding:14px 34px 30px}
/* popisek konce pod bodem mimo tok — krajní slot má stejnou šířku jako ostatní (linka i 40 etap) */
.ax-endlabel{position:absolute;top:calc(var(--ax-dot) + 9px);left:50%;transform:translateX(-50%);color:var(--navy);font-size:11.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.ax-finish.is-done .ax-endlabel{color:var(--ax-green)}
@media (max-width:599px){
  /* mobil: body nesmí být pod prst — minimální velikost, zbytek posun do strany */
  .ax--dots{--ax-dot:max(var(--ax-dot-base,30px),28px);--ax-slot:max(var(--ax-slot-base,42px),40px)}
}

/* ── plovoucí lišta — position:fixed pod hlavičkou (78 px, do 520 px 68 px), mimo tok
   stránky = žádný layout shift; site.js přepíná .is-shown, když velká osa odjede ── */
.ax-float{--ax-green:#1b7a50;--ax-mute:#dce3ec;--ax-ink:#5b6779;--ax-dot:26px;--ax-slot:38px;position:fixed;top:78px;left:0;right:0;z-index:40;
  background:rgba(255,255,255,.8);-webkit-backdrop-filter:saturate(1.6) blur(16px);backdrop-filter:saturate(1.6) blur(16px);border-bottom:1px solid rgba(223,230,239,.85);box-shadow:0 12px 24px -18px rgba(0,38,89,.35);
  opacity:0;visibility:hidden;transform:translateY(-8px);pointer-events:none;transition:opacity .22s ease,transform .22s ease,visibility 0s linear .22s}
.ax-float.is-shown{opacity:1;visibility:visible;transform:none;pointer-events:auto;transition:opacity .22s ease,transform .22s ease,visibility 0s}
.ax-float .ax-row{padding:11px 14px 10px;justify-content:center}
.ax-float .ax-pt[aria-current] .ax-dot{transform:scale(1.2)}
.ax-float .ax-slot{flex:0 0 var(--ax-slot)}
@media (max-width:520px){
  .ax-float{top:68px}
}

/* ── tooltip bodů (jeden prvek, site.js) ── */
.ax-tip{position:fixed;left:0;top:0;z-index:60;max-width:min(280px,calc(100vw - 16px));padding:9px 13px 10px;border-radius:11px;background:var(--navy);color:#fff;font-size:13.5px;line-height:1.35;box-shadow:0 14px 34px rgba(0,22,52,.28);pointer-events:none;opacity:0;transform:translateY(4px);transition:opacity .14s ease,transform .14s ease}
.ax-tip.is-on{opacity:1;transform:none}
.ax-tip b{display:block;font-weight:750}
.ax-tip-n{color:var(--yellow);font-weight:800;margin-right:7px;font-variant-numeric:tabular-nums}
.ax-tip small{display:block;margin-top:3px;color:rgba(255,255,255,.78);font-size:12.5px}
.ax-tip::after{content:"";position:absolute;left:var(--ax-tip-x,50%);top:100%;border:6px solid transparent;border-top-color:var(--navy);transform:translateX(-50%)}
.ax-tip.is-below::after{top:auto;bottom:100%;border-top-color:transparent;border-bottom-color:var(--navy)}
.ax-tip.is-below{transform:translateY(-4px)}
.ax-tip.is-below.is-on{transform:none}

@media (prefers-reduced-motion:reduce){
  .ax-dot,.ax-line-hl,.ax-tip,.ref-stage-n{transition:none}
  .ax-line.is-drawing path{transition:none}
  .ax-link:hover .ax-dot,.ax-pt:hover .ax-dot,a.ref-stage-n:hover{transform:none}
  .ax-pt[aria-current] .ax-dot,.ax-pt[aria-current]:hover .ax-dot{transform:scale(1.34)}
  .ax-float,.ax-float.is-shown{transform:none;transition:none}
  html{scroll-behavior:auto}
}
/* 84c-3 — nadpis etapy jako odkaz + pruh plnění vedle */
.ref-stage-title{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px}
.ref-stage h2 a{color:inherit;text-decoration:underline;text-decoration-color:rgba(0,38,89,.25);text-underline-offset:4px}
.ref-stage h2 a:hover{text-decoration-color:currentColor}
.ref-stage-progress{display:inline-flex;align-items:center;gap:8px;min-width:150px}
.ref-stage-progress .ref-progress{flex:1;height:5px;background:#e3e9f1;width:110px}
.ref-stage-progress b{font-size:13px;color:var(--navy);font-variant-numeric:tabular-nums}
/* stránka etapy */
.ref-stage-head h1{font-size:clamp(26px,6vw,44px);line-height:1.1;letter-spacing:-.03em;margin:0;color:var(--navy);text-wrap:balance}
.ref-stage-gallery{margin-top:8px}
.ref-stage-context{margin-top:32px;padding:18px;border:1px solid var(--line);border-radius:14px;background:#fff}
.ref-stage-context h2{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}
.ref-stage-context p{margin:0 0 8px;color:#3d4b60}
.ref-context-title{font-weight:800;color:var(--navy);margin-right:6px}
.ref-stage-links{display:flex;flex-wrap:wrap;gap:6px 18px}
/* karty předchozí / další etapa: mobil pod sebou s fotkou nahoře, od 700 px vedle sebe,
   fotka (4:3, ~třetina) na vnější straně, šipka v kroužku na fotce u vnějšího okraje */
.ref-snav{display:grid;gap:14px;margin-top:28px}
.ref-scard{position:relative;display:grid;grid-template-columns:minmax(0,1fr);border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff;color:var(--navy);text-decoration:none;box-shadow:0 2px 10px rgba(0,38,89,.06);transition:transform .2s,box-shadow .2s,border-color .2s}
.ref-scard:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(0,38,89,.16);border-color:#c7d3e2}
.ref-scard:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}
.ref-scard-photo{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:#d8e0ea}
.ref-scard-photo img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s}
.ref-scard:hover .ref-scard-photo img{transform:scale(1.05)}
.ref-scard-arrow{position:absolute;top:50%;left:12px;transform:translateY(-50%);display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#fff;color:var(--navy);box-shadow:0 4px 14px rgba(6,18,38,.28);transition:background .2s,color .2s}
.ref-scard--next .ref-scard-arrow,.ref-scard--back .ref-scard-arrow{left:auto;right:12px}
.ref-scard:hover .ref-scard-arrow{background:var(--yellow)}
.ref-scard-body{display:flex;flex-direction:column;justify-content:center;gap:3px;padding:14px 16px 16px;min-width:0}
.ref-scard-kicker{color:var(--muted);font-size:12.5px;font-weight:650}
.ref-scard-number{color:#5b6779;font-size:13px;font-weight:700}
.ref-scard-title{font-size:20px;line-height:1.2;font-weight:800;letter-spacing:-.01em;color:var(--navy);text-wrap:balance;overflow-wrap:anywhere}
.ref-scard-meta{color:var(--muted);font-size:13.5px}
.ref-scard-progress{display:flex;align-items:center;gap:8px;width:100%;max-width:220px;margin-top:6px}
.ref-scard-progress .ref-progress{flex:1;height:5px;background:#e3e9f1}
.ref-scard-progress b{font-size:13px;color:var(--navy);font-variant-numeric:tabular-nums}
@media (min-width:700px){
  .ref-snav{grid-template-columns:1fr 1fr;gap:16px}
  .ref-scard{grid-template-columns:34% minmax(0,1fr)}
  .ref-scard-photo{aspect-ratio:auto;min-height:100%}
  .ref-scard-photo img{position:absolute;inset:0}
  /* další / zpět: fotka vpravo, text zarovnaný ke středu karty (vpravo) */
  .ref-scard--next,.ref-scard--back{grid-column:2;grid-template-columns:minmax(0,1fr) 34%}
  .ref-scard--next .ref-scard-photo,.ref-scard--back .ref-scard-photo{order:2}
  .ref-scard--next .ref-scard-body,.ref-scard--back .ref-scard-body{text-align:right;align-items:flex-end}
  .ref-scard-body{padding:16px 20px}
}
.ref-stage-when{color:var(--muted);font-size:13.5px;margin:2px 0 12px}
.ref-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.ref-gallery .ref-photo{aspect-ratio:1/1}

.ref-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* lightbox */
/* inset:0 + 100 %, ne 100vw — vw zahrnuje posuvník a pravý okraj by ležel pod ním */
.ref-lightbox{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;background:rgba(4,10,22,.94);color:#fff}
.ref-lightbox::backdrop{background:rgba(4,10,22,.94)}
/* zámek scrollu pod otevřeným lightboxem (třídu přepíná site.js); gutter drží šířku stránky,
   pozadí html = barva overlaye, jinak by v místě posuvníku zůstal bílý pruh */
html.ref-lb-lock{overflow:hidden;scrollbar-gutter:stable;background:#050a17}
/* otevřený dialog: fotka (zbytek výšky) + filmový pás dole */
.ref-lightbox[open]{display:flex;flex-direction:column}
.ref-lightbox figure{margin:0;flex:1;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto auto;justify-items:center;align-items:center;padding:calc(68px + env(safe-area-inset-top)) 12px 8px;gap:10px}
.ref-lightbox figure img{max-width:100%;max-height:100%;object-fit:contain;border-radius:6px}
.ref-lightbox figure{position:relative}
.ref-lb-full{position:absolute;top:calc(76px + env(safe-area-inset-top));right:20px;z-index:1;display:grid;place-items:center;width:40px;height:40px;border-radius:999px;background:rgba(4,10,22,.55);color:#fff;text-decoration:none}
.ref-lb-full[style*="left"]{right:auto}
.ref-lb-full:hover{background:rgba(4,10,22,.8)}
.ref-lb-full:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}
.ref-lightbox figcaption{font-size:14px;text-align:center;opacity:.92;min-height:20px}
/* 84c-6 — kontextové odkazy pod popiskem; na mobilu se zalomí, klikací plocha min. 32 px */
.ref-lb-links{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 8px;max-width:100%}
.ref-lb-links[hidden]{display:none}
/* 11. 11. — inline-block (ne flex): u dlouhého názvu etapy funguje „…“; sloupec mřížky figure
   minmax(0,1fr) = tlačítka se na 390 px zalomí / zkrátí, nepřetečou šířku okna. */
.ref-lightbox figure{grid-template-columns:minmax(0,1fr)}
.ref-lb-links a{display:inline-block;line-height:32px;padding:0 12px;border-radius:999px;background:rgba(255,255,255,.12);color:#fff;font-size:13.5px;font-weight:700;text-decoration:none;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.ref-lb-links a.ref-lb-stage{display:inline-flex;align-items:center}
.ref-lb-links a.ref-lb-stage span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.ref-lb-links a:hover{background:rgba(255,255,255,.22)}
.ref-lb-links a:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}
/* 23. 10. — „Chci podobnou práci“ (poptávka firmy) = hlavní akce lightboxu */
.ref-lb-links a.ref-lb-cta{background:var(--yellow);color:#0b1b33}
.ref-lb-links a.ref-lb-cta:hover{background:#fff}
.ref-lb-links a.ref-lb-cta:focus-visible{outline-color:#fff}

/* 23. 10. — „Chci podobnou práci“: tlačítko stránky (etapa, detail, profil) + modal s iframe
   formuláře poptávky (references::inquiry-modal, site.js). Desktop = centrovaný modal,
   mobil = bottom sheet na celou výšku. Nad lightboxem (top layer — později otevřený navrch). */
.ref-inquiry-row{margin:16px 0 0}
/* Etapa / detail: štítky + lišta vlevo, tlačítko vpravo na stejném řádku. Když se nevejde,
   zalomí se pod ně (pořád vpravo); úzký mobil = pod štítky na celou šířku. */
.ref-status-row{display:flex;flex-wrap:wrap;align-items:center;gap:0 20px}
.ref-status-main{flex:1 1 280px;min-width:0}
.ref-status-row>.ref-inquiry-btn{flex:none;margin:0 0 14px auto}
/* Detail reference: vpravo v řádku „Realizace · firma“ a menší sekundární v nadpisu etapy. */
.ref-firm>.ref-inquiry-btn{flex:none;margin-left:auto}
.ref-stage-title>.ref-inquiry-btn{margin-left:auto}
.ref-inquiry-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 20px;border:0;border-radius:999px;background:var(--yellow);color:#0b1b33;font:inherit;font-size:15px;font-weight:800;text-decoration:none;cursor:pointer}
.ref-inquiry-btn:hover{background:#ffd75a}
.ref-inquiry-btn:focus-visible{outline:3px solid var(--navy);outline-offset:2px}
/* menší sekundární varianta (nadpis etapy na detailu) — až ZA základní třídou */
.ref-inquiry-btn--sm{min-height:36px;padding:0 14px;border:1px solid #c7d3e2;background:#fff;color:var(--navy);font-size:13.5px;font-weight:750}
.ref-inquiry-btn--sm:hover{border-color:var(--navy);background:#f5f8fc}
html.ref-inq-lock{overflow:hidden}
.ref-inq{width:min(640px,calc(100% - 32px));max-width:none;max-height:calc(100% - 48px);margin:auto;padding:0;border:0;border-radius:16px;background:#fff;color:var(--navy);box-shadow:0 24px 60px rgba(4,10,22,.35);overflow:hidden}
.ref-inq[open]{display:flex;flex-direction:column}
.ref-inq::backdrop{background:rgba(4,10,22,.6)}
.ref-inq-head{flex:none;display:flex;align-items:center;gap:12px;padding:12px 12px 12px 16px;border-bottom:1px solid var(--line)}
.ref-inq-thumb{flex:none;width:56px;height:56px;border-radius:10px;object-fit:cover;background:#d8e0ea}
.ref-inq-thumb[hidden]{display:none}
.ref-inq-titles{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.ref-inq-titles small{color:var(--muted);font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.ref-inq-titles strong{font-size:16px;line-height:1.3;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.ref-inq-close{flex:none;width:44px;height:44px;border:0;border-radius:999px;background:#eef2f7;color:var(--navy);font-size:26px;line-height:1;cursor:pointer}
.ref-inq-close:hover{background:#dfe6ef}
.ref-inq-close:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}
.ref-inq-body{position:relative;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
/* výška iframe = výška stránky formuláře (postMessage), posouvá se celé tělo modalu */
.ref-inq-frame{display:block;width:100%;min-height:60vh;border:0;background:#fff}
.ref-inq-frame[hidden]{display:none}
.ref-inq-frame.is-pending{position:absolute;visibility:hidden;height:0;min-height:0}
.ref-inq-loading{margin:0;padding:32px 16px;color:var(--muted);text-align:center}
.ref-inq-loading[hidden],.ref-inq-fallback[hidden],.ref-inq-thanks[hidden]{display:none}
.ref-inq-fallback,.ref-inq-thanks{padding:28px 20px 32px;text-align:center}
.ref-inq-fallback p,.ref-inq-thanks p{margin:0 0 16px;color:var(--muted)}
.ref-inq-thanks h2{margin:0 0 8px;font-size:22px;line-height:1.25;color:var(--navy)}
.ref-inq-thanks:focus{outline:none}
@media (max-width:559px){
  .ref-inquiry-btn{width:100%}
  .ref-status-row>.ref-inquiry-btn{flex:1 1 100%;margin:0 0 14px}
  .ref-firm{flex-wrap:wrap}
  .ref-firm>.ref-inquiry-btn,.ref-stage-title>.ref-inquiry-btn{flex:1 1 100%;margin-left:0}
  .ref-inquiry-btn--sm{min-height:40px}
  /* bottom sheet na celou výšku: vyjede zdola, bez zaoblení dole */
  .ref-inq{width:100%;height:100%;max-height:none;margin:0;inset:0;border-radius:0;box-shadow:none}
  .ref-inq[open]{animation:ref-inq-up .22s ease-out}
  .ref-inq-head{padding-top:calc(10px + env(safe-area-inset-top))}
  .ref-inq-body{padding-bottom:env(safe-area-inset-bottom)}
  .ref-inq-frame{min-height:calc(100dvh - 90px)}
}
@keyframes ref-inq-up{from{transform:translateY(100%)}to{transform:none}}
@media (prefers-reduced-motion:reduce){.ref-inq[open]{animation:none}}
.ref-lb-strip{position:relative;flex:none;display:flex;gap:6px;overflow-x:auto;padding:6px 12px 14px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.3) transparent;overscroll-behavior-x:contain}
.ref-lb-strip[hidden]{display:none}
/* vycentrovat, když se vejde; jinak scroll bez oříznutí začátku */
.ref-lb-strip>:first-child{margin-left:auto}
.ref-lb-strip>:last-child{margin-right:auto}
.ref-lb-thumb{flex:none;width:80px;height:64px;padding:0;border:0;border-radius:6px;overflow:hidden;background:#1d2a3d;cursor:pointer;opacity:.5;outline:2px solid transparent;outline-offset:-2px;transition:opacity .15s}
.ref-lb-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.ref-lb-thumb:hover{opacity:.85}
.ref-lb-thumb[aria-current="true"]{opacity:1;outline:3px solid var(--yellow);outline-offset:-3px}
.ref-lb-thumb:focus-visible{opacity:1;outline:3px solid #fff;outline-offset:-3px}
.ref-lb-thumb[aria-current="true"]:focus-visible{box-shadow:inset 0 0 0 5px #fff}
.ref-lb-btn{position:absolute;border:0;background:rgba(255,255,255,.12);color:#fff;width:44px;height:44px;border-radius:999px;font-size:26px;line-height:1;cursor:pointer;display:grid;place-items:center}
.ref-lb-btn:hover{background:rgba(255,255,255,.22)}
.ref-lb-btn:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}
/* křížek i šipky stejně 16 px od okraje (+ výřez displeje) */
.ref-lb-close{top:calc(16px + env(safe-area-inset-top));right:calc(16px + env(safe-area-inset-right))}
.ref-lb-prev{left:calc(16px + env(safe-area-inset-left));top:50%;transform:translateY(-50%)}
.ref-lb-next{right:calc(16px + env(safe-area-inset-right));top:50%;transform:translateY(-50%)}
.ref-lightbox[data-single] .ref-lb-prev,.ref-lightbox[data-single] .ref-lb-next{display:none}

/* 84c-2 profil firmy /firma/{slug}/ a přehled /firma/ */
.co-head{display:flex;gap:16px;align-items:center;margin:4px 0 18px}
.co-head h1{font-size:clamp(28px,6vw,44px);line-height:1.1;letter-spacing:-.03em;margin:0;color:var(--navy);text-wrap:balance}
.co-logo{width:72px;height:72px;border-radius:16px;object-fit:contain;background:#fff;border:1px solid var(--line);flex:none}
.co-logo-mono{display:grid;place-items:center;background:var(--navy);border-color:var(--navy);color:#fff;font-weight:800;font-size:24px}
.co-legal{margin:4px 0 0;color:var(--muted);font-size:14px}
.co-verified{display:inline-block;margin:8px 0 0;padding:4px 10px;border-radius:999px;background:#e3f4ec;color:#1b7a50;font-size:13px;font-weight:700}
/* 84c-7 hlavička profilu kolem loga: logo na bílé ploše bez rámečku a bez ořezu
   (max 320 × 96), menší H1; bez loga monogram + velký H1. Mozaika fotek: mobil pod
   textem, od 900 px vpravo. */
.co-hero{display:grid;grid-template-columns:minmax(0,1fr);gap:22px;margin:4px 0 28px}
.co-hero-text{min-width:0}
.co-brand{display:inline-flex;align-items:center;max-width:100%;padding:14px 18px;margin-bottom:14px;border-radius:16px;background:#fff;box-sizing:border-box}
.co-brand-logo{display:block;width:auto;height:auto;max-width:min(320px,100%);max-height:96px;object-fit:contain}
.co-mono{display:grid;place-items:center;width:72px;height:72px;margin-bottom:14px;border-radius:50%;background:var(--navy);color:var(--white);font-size:26px;font-weight:800;letter-spacing:.02em}
.co-hero h1{margin:0;color:var(--navy);line-height:1.1;letter-spacing:-.03em;text-wrap:balance;font-size:clamp(30px,6.5vw,46px)}
.co-hero--logo h1{font-size:clamp(24px,4.5vw,31px);letter-spacing:-.02em}
.co-facts{margin:14px 0 0;color:#3d4b60;font-size:15px;font-weight:650}
.co-desc{margin-top:14px}
.co-hero-chips{margin-top:16px}
/* Badge jako odkaz na /funkce/stavebni-denik/ — vzhled stejný, jen hover/focus. */
.co-verified-row{margin:8px 0 0}
.co-verified-row .co-verified{margin:0}
a.co-verified{text-decoration:none;cursor:pointer;transition:background-color .15s,color .15s}
a.co-verified:hover{background:#cfeadc;color:#13603d;text-decoration:underline;text-underline-offset:2px}
a.co-verified:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}
/* Kontakty s ikonami: ikona + text = jeden prvek, řádek se zalamuje; mobil viz níž. */
.co-contacts{display:flex;flex-wrap:wrap;gap:0 22px;list-style:none;margin:8px 0 0;padding:0;font-size:15px;color:#3d4b60}
.co-contacts li{display:flex;min-width:0}
.co-contacts a,.co-contact-plain{display:inline-flex;align-items:center;gap:8px;min-height:44px;min-width:0;overflow-wrap:anywhere}
.co-contacts a{color:var(--blue);font-weight:700;text-decoration:none}
.co-contacts a:hover span{text-decoration:underline;text-underline-offset:3px}
.co-contacts a:focus-visible{outline:3px solid var(--yellow);outline-offset:2px;border-radius:8px}
.co-contact-icon{flex:none;color:var(--navy)}
.co-contact-plain{color:var(--muted);font-weight:600}
.co-contact-plain .co-contact-icon{color:var(--muted)}
@media (max-width:559px){
  .co-contacts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px}
  .co-contacts a,.co-contact-plain{width:100%;min-height:44px;padding:6px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;box-sizing:border-box;font-size:14.5px}
  .co-contact-plain{background:#f3f6fa;border-color:transparent}
  /* Telefon = nejčastější akce na mobilu: první, přes celou šířku, výrazný. */
  .co-contact-phone{grid-column:1 / -1;order:1}
  .co-contact-web{order:2}
  .co-contact-ico{order:3}
  .co-contact-phone a{justify-content:center;min-height:50px;background:var(--navy);border-color:var(--navy);color:#fff;font-size:17px}
  .co-contact-phone a .co-contact-icon{color:var(--yellow)}
  .co-contact-email{grid-column:1 / -1;order:4}   /* dlouhý text → vlastní řádek; web + IČO po dvou */
}
.co-mosaic{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:1fr;gap:8px;aspect-ratio:4/3;min-width:0}
.co-mosaic--1{grid-template-columns:1fr}
.co-mosaic--2{grid-template-columns:1fr 1fr;aspect-ratio:2/1}
.co-mosaic--3 .co-mosaic-item:first-child{grid-row:span 2}
.co-mosaic-item{position:relative;display:block;overflow:hidden;border-radius:12px;background:#d8e0ea;min-height:0}
.co-mosaic-item img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .3s}
.co-mosaic-item:hover img{transform:scale(1.04)}
.co-mosaic-item:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}
@media (min-width:900px){
  .co-hero.has-mosaic{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:36px;align-items:center}
}
@media (prefers-reduced-motion:reduce){.co-mosaic-item img{transition:none}.co-mosaic-item:hover img{transform:none}}
.co-body{display:grid;grid-template-columns:minmax(0,1fr);gap:24px}
.co-body>.co-main:only-child{grid-column:1 / -1}
.co-h2{font-size:22px;color:var(--navy);margin:28px 0 14px}
.co-no-refs{margin:0 0 8px;padding:16px 18px;border:1px dashed var(--line);border-radius:14px;background:#fff;color:var(--muted)}
.co-main>.co-h2:first-child{margin-top:0}
.co-aside{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;display:grid;gap:16px;align-self:start}
.co-aside-h{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}
.co-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;text-align:center}
.co-stats b{display:block;font-size:24px;color:var(--navy);font-variant-numeric:tabular-nums}
.co-stats small{color:var(--muted);font-size:12px}
.co-chips{display:flex;flex-wrap:wrap;gap:6px}
.co-text{margin:0;color:#3d4b60}
.co-contact{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;margin:0;font-size:14px}
.co-contact dt{color:var(--muted)}
.co-contact dd{margin:0;word-break:break-word}
.co-contact a{color:var(--blue);font-weight:650}
.co-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
.co-card{display:flex;gap:14px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff}
.co-card:hover{border-color:#c7d3e2;box-shadow:0 8px 22px rgba(0,38,89,.08)}
.co-card .co-logo{width:56px;height:56px;border-radius:12px;font-size:20px}
.co-card b{display:block;color:var(--navy)}
.co-card small{color:var(--muted);font-size:13px}

@media (min-width:560px){
  .co-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ref-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
  .ref-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  .ref-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (min-width:900px){
  .ref-page{padding:44px 0 72px}
  .ref-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
  .ref-hero{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:32px;align-items:start}
  .ref-hero--short .ref-hero-photo{max-height:400px}
  .ref-stages{--rs-dot:54px;--rs-col:64px;--rs-gap:40px}
  .ref-stage{column-gap:18px}
  .ref-stage-n{font-size:23px;border-width:3px}
  .ref-stage h2{font-size:23px}
  .ref-gallery{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
}
@media (min-width:1024px){
  .ref-photo-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
  /* 84c-7 — box vpravo zrušen: reference na celou šířku (3 sloupce), fotky 5 */
  .co-main .ref-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .co-cards{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (prefers-reduced-motion:reduce){.ref-card,.ref-tile img,.ref-scard,.ref-scard-photo img{transition:none}a.ref-card:hover,a.ref-tile:hover img,.ref-scard:hover,.ref-scard:hover .ref-scard-photo img{transform:none}}
/* 100.1 — faktický blok (reference, etapa, obor, firma), text etapy, podobné realizace */
.ref-facts{margin:14px 0 0;padding:10px 14px;border-left:3px solid var(--yellow);background:#f5f7fa;border-radius:0 10px 10px 0;font-size:15px;line-height:1.5;color:#2f3e55;max-width:72ch}
.ref-facts p{margin:0}
.ref-facts .ref-facts-proof{margin-top:4px;font-size:13px;color:var(--muted)}
.ref-stage-text{margin:14px 0 0;max-width:72ch;font-size:16px;line-height:1.6;color:#2f3e55}
.ref-similar{margin-top:44px}
.ref-similar h2{margin:0 0 14px;font-size:clamp(22px,4vw,28px);letter-spacing:-.02em;color:var(--navy)}
.ref-similar-more{margin:16px 0 0}
