/* ==================================================================
   ŘEŠENÍ — šablona v2, styly stránky řešení (.rs2)
   Vygenerováno z odsouhlaseného mockupu public/_mockup-reseni-final.html.
   Vše je scopované pod .rs2, aby to nekolidovalo se site.css.
   Starý design řešení (.rs-*) zůstává v reseni.css, dokud na v2
   nepřejdou i zbývající stránky řešení.
   ================================================================== */
.rs2 { --navy:#001d39; --cendre:#3d84a7; --cendre-text:#2e6b8c; --turquoise:#46cdcf; --mint:#abedd8; --sky:#7bbde8; --beau:#bdd8e9; --ink:#2f2e4d; --muted:#5a6875; /* ztmaveno z #6f7d90 — to neprocházelo WCAG AA (4.19:1) */ --hint:#8a97a4; /* nápovědy v polích ~3:1 */ --danger:#b23c33; /* chybové stavy formuláře */ --line:#e3edf0; --mint-tint:#eefaf5; --beau-tint:#eff6fb; }
.rs2 img { max-width:100%; height:auto; display:block; }
.rs2 .wrap { width:min(1120px, calc(100% - 2.5rem)); margin:0 auto; }
.rs2 .rs2-band { border-radius:clamp(1.4rem,3vw,2.5rem); margin:0 auto 1rem; width:min(1320px, calc(100% - 1.5rem)); }
/* jen pro čtečky — vizuálně skryto, v přístupnostním stromu zůstává */
.rs2 .vh { position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.rs2-skip { position:absolute; left:.5rem; top:-3rem; z-index:50; background:var(--navy); color:#fff; padding:.6rem 1rem; border-radius:0 0 10px 10px; text-decoration:none; font-weight:700; transition:top .15s; }
.rs2-skip:focus { top:0; }
.rs2 .bar { display:flex; justify-content:center; align-items:center; padding:1.2rem 0; }
.rs2 .bar__logo { font-weight:800; letter-spacing:-.02em; color:var(--navy); text-decoration:none; }
.rs2 .bar__logo span { color:var(--cendre); }
/* ── tlačítka ── */
.rs2 .btn { display:inline-flex; align-items:center; justify-content:center; gap:.5rem; text-decoration:none; font:inherit; font-weight:700; font-size:.98rem; padding:.85rem 1.7rem; border:0; border-radius:999px; cursor:pointer; transition:translate .15s, box-shadow .15s, background .15s, border-color .15s, color .15s; }
.rs2 .btn--navy { background:var(--navy); color:#fff; box-shadow:0 12px 28px -12px rgb(0 29 57 / .5); }
.rs2 .btn--navy:hover { translate:0 -2px; box-shadow:0 18px 34px -12px rgb(0 29 57 / .55); }
.rs2 .btn--white { background:#fff; color:var(--navy); border:1.5px solid var(--line); }
.rs2 .btn--white:hover { border-color:var(--cendre); color:var(--cendre-text); }
.rs2 .btn--mint { background:var(--mint); color:var(--navy); }
.rs2 .btn--mint:hover { background:#c4f3e4; translate:0 -2px; }
.rs2 .btn--ol { border:1.5px solid rgb(255 255 255 / .35); color:#fff; background:transparent; }
.rs2 .btn--ol:hover { border-color:var(--mint); color:var(--mint); }
/* ── 1 · HERO ── */
.rs2 .rs2-hero { background:var(--mint-tint); text-align:center; padding:clamp(2.6rem,6vw,4.5rem) 1.5rem clamp(2.5rem,5vw,3.5rem); }
.rs2 .rs2-hero .kicker { display:inline-block; font-size:.85rem; font-weight:700; color:var(--cendre-text); background:#fff; border-radius:999px; padding:.45rem 1.2rem; box-shadow:0 6px 18px -8px rgb(0 29 57 / .18); }
.rs2 .rs2-hero h1 { font-size:clamp(2.3rem,5.6vw,4.3rem); font-weight:800; letter-spacing:-.04em; line-height:1.04; color:var(--navy); margin:1.3rem auto .9rem; max-width:20ch; text-wrap:balance; }
.rs2 .rs2-hero h1 .struck { display:block; font-size:.52em; letter-spacing:-.02em; color:var(--muted); margin-bottom:.35em; text-decoration:line-through; text-decoration-color:var(--cendre); text-decoration-thickness:.09em; }
.rs2 .rs2-hero h1 .hl { position:relative; white-space:nowrap; }
.rs2 .rs2-hero h1 .hl::after { content:""; position:absolute; left:-.05em; right:-.05em; bottom:.08em; height:.32em; background:var(--turquoise); opacity:.35; z-index:-1; border-radius:.2em; }
.rs2 .rs2-hero .lead { color:var(--muted); font-size:clamp(1.02rem,1.6vw,1.18rem); max-width:52ch; margin:0 auto; }
/* mini-formulář v hero */
.rs2 .quick { margin:1.9rem auto 0; max-width:560px; }
.rs2 .quick label { display:block; font-size:.84rem; font-weight:600; color:var(--cendre-text); margin-bottom:.5rem; }
.rs2 .quick__row { display:flex; gap:.55rem; background:#fff; border:1.5px solid var(--line); border-radius:999px; padding:.4rem .4rem .4rem 1.3rem; box-shadow:0 16px 36px -18px rgb(0 29 57 / .28); align-items:center; transition:border-color .15s, box-shadow .15s; }
.rs2 .quick__row:focus-within { border-color:var(--cendre); box-shadow:0 0 0 4px rgb(61 132 167 / .14); }
.rs2 .quick__row.is-bad { border-color:var(--danger); }
.rs2 .quick input { flex:1; min-width:0; font:inherit; font-size:1rem; border:0; outline:none; background:transparent; color:var(--ink); padding:.6rem 0; }
.rs2 .quick input::placeholder { color:var(--hint); }
.rs2 .quick__row .btn { flex:none; padding:.75rem 1.5rem; }
.rs2 .err { display:none; margin-top:.6rem; font-size:.86rem; font-weight:600; color:var(--danger); }
.rs2 .err.is-on { display:block; }
.rs2 .quick__note { margin-top:.95rem; font-size:.88rem; color:var(--muted); }
.rs2 .quick__note a { color:var(--navy); font-weight:700; text-decoration:none; white-space:nowrap; border-bottom:1.5px solid var(--beau); }
.rs2 .quick__note a:hover { color:var(--cendre-text); border-color:var(--cendre); }
.rs2 .rs2-hero__photo { position:relative; margin:clamp(2rem,5vw,3.2rem) auto 0; max-width:920px; }
.rs2 .rs2-hero__photo img { border-radius:clamp(1.2rem,2.5vw,2rem); aspect-ratio:1.9; object-fit:cover; object-position:50% 83%; box-shadow:0 30px 60px -30px rgb(0 29 57 / .45); }
.rs2 .ping { position:absolute; left:clamp(.8rem,2.5vw,1.8rem); bottom:clamp(.8rem,2.5vw,1.6rem); display:flex; gap:.7rem; align-items:flex-start; text-align:left; max-width:min(23rem, calc(100% - 2rem)); background:rgb(255 255 255 / .96); backdrop-filter:blur(10px); border:1px solid var(--line); border-radius:14px; padding:.8rem .95rem; box-shadow:0 18px 40px -18px rgb(0 29 57 / .4); }
.rs2 .ping__dot { flex:none; width:.6rem; height:.6rem; margin-top:.42rem; border-radius:50%; background:var(--turquoise); box-shadow:0 0 0 4px rgb(70 205 207 / .22); }
.rs2 .ping__body { display:flex; flex-direction:column; gap:.1rem; min-width:0; }
.rs2 .ping__app { font-family:"JetBrains Mono",monospace; font-size:.6rem; letter-spacing:.14em; text-transform:uppercase; color:var(--cendre-text); }
.rs2 .ping b { font-size:.9rem; color:var(--navy); letter-spacing:-.01em; line-height:1.3; }
.rs2 .ping__meta { font-size:.78rem; color:var(--muted); line-height:1.4; }
/* ── 2 · TŘI KROKY ── */
.rs2 .steps { padding:clamp(2.5rem,6vw,4rem) 0 clamp(2.5rem,5vw,4rem); text-align:center; }
.rs2 .steps h2 { font-size:clamp(1.8rem,3.6vw,2.7rem); font-weight:800; letter-spacing:-.035em; color:var(--navy); max-width:24ch; margin:0 auto 3rem; line-height:1.12; text-wrap:balance; }
.rs2 .steps h2 em { font-style:normal; color:var(--cendre); }
.rs2 .steps-row { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem; position:relative; }
.rs2 .steps-row::before { content:""; position:absolute; top:2.1rem; left:18%; right:18%; border-top:2px dashed var(--beau); }
.rs2 .step { position:relative; padding:0 .5rem; }
.rs2 .step .n { position:relative; width:4.2rem; height:4.2rem; margin:0 auto 1.2rem; border-radius:50%; display:grid; place-items:center; font-weight:800; font-size:1.4rem; color:var(--navy); background:var(--mint); box-shadow:0 0 0 8px #fff, 0 14px 30px -12px rgb(0 29 57 / .3); }
.rs2 .step:nth-child(2) .n { background:var(--beau); }
.rs2 .step:nth-child(3) .n { background:var(--turquoise); }
.rs2 .step h3 { font-size:1.2rem; color:var(--navy); letter-spacing:-.01em; margin-bottom:.4rem; }
.rs2 .step p { color:var(--muted); font-size:.95rem; max-width:30ch; margin:0 auto; }
.rs2 .step .hint { display:block; margin-top:.7rem; font-size:.85rem; font-weight:600; color:var(--cendre-text); }
/* ── 3 · SCREENY — sticky scroll reveal ── */
.rs2 .screens { background:var(--beau-tint); padding:clamp(2.5rem,6vw,4rem) 0 clamp(2rem,5vw,3rem); }
/* Šířku drží odstavec, ne nadpis. Dřív tu bylo max-width:56ch na kontejneru,
   ale ch se počítá z jeho vlastní velikosti písma (16px), takže velký nadpis
   se do toho nevešel a lámal se na dvě řádky. */
.rs2 .screens__head { text-align:center; max-width:min(54rem, 100%); margin:0 auto clamp(1.5rem,4vw,2.5rem); padding:0 1.5rem; }
.rs2 .screens__head h2 { font-size:clamp(1.8rem,3.4vw,2.6rem); font-weight:800; letter-spacing:-.035em; color:var(--navy); line-height:1.12; margin-bottom:.7rem; text-wrap:balance; }
.rs2 .screens__head p { color:var(--muted); max-width:60ch; margin-inline:auto; }
.rs2 .ss { display:grid; grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr); gap:clamp(1.6rem,3.4vw,2.8rem); align-items:start; width:min(1320px, calc(100% - 3rem)); margin:0 auto; }
.rs2 .ss__list { position:relative; padding-left:1.9rem; }
.rs2 .ss__rail { position:absolute; left:0; top:0; bottom:0; width:2px; background:rgb(61 132 167 / .18); border-radius:2px; }
.rs2 .ss__rail-fill { position:absolute; left:0; top:0; width:2px; background:var(--cendre); border-radius:2px; height:0; transition:height .35s cubic-bezier(.22,1,.36,1), top .35s cubic-bezier(.22,1,.36,1); }
.rs2 .ss__item { min-height:52vh; display:flex; flex-direction:column; justify-content:center; padding:1.5rem 0; }
.rs2 .ss__item .k { font-family:"JetBrains Mono",monospace; font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color:var(--cendre-text); }
.rs2 .ss__pain { margin-top:.55rem; font-size:.97rem; color:var(--muted); font-style:italic; border-left:3px solid var(--beau); padding-left:.8rem; max-width:40ch; }
.rs2 .ss__item h3 { font-size:clamp(1.4rem,2.6vw,2rem); font-weight:800; letter-spacing:-.03em; color:var(--navy); line-height:1.15; margin:.8rem 0 .6rem; }
.rs2 .ss__item .desc { color:var(--muted); font-size:1rem; max-width:42ch; }
.rs2 .ss__item ul { list-style:none; margin-top:1rem; display:flex; flex-direction:column; gap:.5rem; }
.rs2 .ss__item li { display:flex; gap:.6rem; font-size:.93rem; color:var(--ink); align-items:baseline; }
.rs2 .ss__item li::before { content:"✓"; font-family:"JetBrains Mono",monospace; color:var(--cendre); font-weight:700; flex:none; }
/* Ztmavení neaktivních položek zapíná až JS — bez JS je celá sekce čitelná. */
.rs2 .ss.js-reveal .ss__item .k, .rs2 .ss.js-reveal .ss__item .ss__pain, .rs2 .ss.js-reveal .ss__item .desc, .rs2 .ss.js-reveal .ss__item ul { opacity:0; translate:0 8px; transition:opacity .45s, translate .45s; }
.rs2 .ss.js-reveal .ss__item h3 { opacity:.32; transition:opacity .4s; }
.rs2 .ss.js-reveal .ss__item.is-active .k, .rs2 .ss.js-reveal .ss__item.is-active .ss__pain, .rs2 .ss.js-reveal .ss__item.is-active .desc, .rs2 .ss.js-reveal .ss__item.is-active ul { opacity:1; translate:0 0; }
.rs2 .ss.js-reveal .ss__item.is-active h3 { opacity:1; }
.rs2 .ss__sticky { position:sticky; top:max(1.2rem, calc((100svh - 34rem) / 2)); }
.rs2 .ss__frames { position:relative; aspect-ratio:4/3; background:#fff; border:1px solid var(--line); border-radius:18px; overflow:hidden; box-shadow:0 28px 60px -28px rgb(0 29 57 / .35); }
.rs2 .ss__frame { position:absolute; inset:0; opacity:0; scale:1.02; pointer-events:none; transition:opacity .5s ease, scale .5s ease; }
.rs2 .ss__frame.is-active { opacity:1; scale:1; }
.rs2 .ss__frame img { width:100%; height:100%; object-fit:cover; object-position:top left; }
.rs2 .ss__frame--crop img, .rs2 .ss__inline.ss__inline--crop > img { object-position:50% 58%; }
.rs2 .ss__note { display:flex; align-items:center; gap:.8rem; margin:.75rem .2rem 0; font-family:"JetBrains Mono",monospace; font-size:.7rem; color:var(--muted); }
.rs2 .ss__note span { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rs2 .ss__note b { margin-left:auto; flex:none; font-size:.62rem; font-weight:400; letter-spacing:.08em; text-transform:uppercase; color:var(--cendre-text); border:1px solid var(--beau); border-radius:999px; padding:.18rem .6rem; }
.rs2 .ss__ph { width:100%; height:100%; display:grid; place-items:center; text-align:center; background:repeating-linear-gradient(-45deg, #f7fbfc 0 14px, #eff6f9 14px 28px); }
.rs2 .ss__ph p { font-family:"JetBrains Mono",monospace; font-size:.8rem; color:var(--muted); line-height:1.9; }
/* Na desktopu je vložený obrázek vizuálně skrytý, ale zůstává pro čtečky (jinak by alt texty
     nebyly dostupné vůbec — sticky sloupec je aria-hidden). Na mobilu se zobrazí normálně. */
.rs2 .ss__inline { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.rs2 .ss__inline .cap { display:flex; justify-content:space-between; align-items:center; gap:.8rem; padding:.7rem .9rem; border-top:1px solid var(--line); font-size:.78rem; color:var(--muted); }
.rs2 .ss__inline .cap b { font-family:"JetBrains Mono",monospace; font-size:.62rem; font-weight:400; letter-spacing:.08em; text-transform:uppercase; color:var(--cendre-text); }
.rs2 .ss__inline > img { aspect-ratio:4/3; object-fit:cover; object-position:top center; width:100%; }
.rs2 .ss__inline .ss__ph { aspect-ratio:4/3; }
/* ── 4 · FAQ ── */
.rs2 .rs2-faq { padding:clamp(3rem,7vw,5rem) 0 clamp(2rem,4vw,3rem); max-width:720px; margin:0 auto; }
.rs2 .rs2-faq h2 { text-align:center; font-size:clamp(1.7rem,3.2vw,2.4rem); font-weight:800; letter-spacing:-.035em; color:var(--navy); margin-bottom:2rem; }
.rs2 details { background:#fff; border:1px solid var(--line); border-radius:14px; margin-bottom:.7rem; padding:0 1.3rem; transition:border-color .15s; }
.rs2 details:hover { border-color:var(--beau); }
.rs2 details[open] { border-color:var(--cendre); }
.rs2 summary { cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1.05rem 0; font-weight:700; font-size:1rem; color:var(--navy); }
.rs2 summary::-webkit-details-marker { display:none; }
.rs2 summary::after { content:"+"; font-family:"JetBrains Mono",monospace; color:var(--cendre); font-size:1.25rem; flex:none; transition:rotate .2s; }
.rs2 details[open] summary::after { rotate:45deg; }
.rs2 details p { padding:0 0 1.2rem; color:var(--muted); font-size:.95rem; }
.rs2 details p a { color:var(--cendre-text); font-weight:600; }
/* ── 5 · KONVERZE ── */
.rs2 .conv { background:var(--mint-tint); padding:clamp(2.6rem,6vw,4.2rem) 1.5rem; }
.rs2 .fc { max-width:620px; margin:0 auto; background:#fff; border:1px solid var(--line); border-radius:clamp(1.2rem,2.5vw,1.7rem); padding:clamp(1.7rem,4vw,2.7rem); box-shadow:0 26px 54px -30px rgb(0 29 57 / .32); text-align:center; }
.rs2 .fc h2 { font-size:clamp(1.5rem,2.9vw,2.1rem); font-weight:800; letter-spacing:-.035em; color:var(--navy); line-height:1.14; margin:0 auto .6rem; max-width:22ch; text-wrap:balance; }
.rs2 .fc__lead { color:var(--muted); font-size:.98rem; max-width:44ch; margin:0 auto; }
.rs2 .fc__row { display:flex; gap:.55rem; align-items:center; margin:1.5rem auto 0; max-width:460px; background:#fff; border:1.5px solid var(--line); border-radius:999px; padding:.4rem .4rem .4rem 1.3rem; transition:border-color .15s, box-shadow .15s; }
.rs2 .fc__row:focus-within { border-color:var(--cendre); box-shadow:0 0 0 4px rgb(61 132 167 / .14); }
.rs2 .fc__row.is-bad { border-color:var(--danger); }
.rs2 .fc__row input { flex:1; min-width:0; font:inherit; font-size:1rem; border:0; outline:none; background:transparent; color:var(--ink); padding:.6rem 0; }
.rs2 .fc__row input::placeholder { color:var(--hint); }
.rs2 .fc__row .btn { flex:none; padding:.75rem 1.5rem; }
.rs2 .fc__inlabel { display:block; font-size:.86rem; font-weight:600; color:var(--cendre-text); margin-top:1.4rem; }
.rs2 .fc__fine { margin-top:1rem; font-size:.83rem; color:var(--muted); }
.rs2 .fc__tel { margin-top:1.3rem; padding-top:1.2rem; border-top:1px solid var(--line); font-size:.9rem; color:var(--muted); }
.rs2 .fc__tel a { color:var(--navy); font-weight:700; text-decoration:none; white-space:nowrap; }
.rs2 .fc__tel a:hover { color:var(--cendre-text); }
/* meziobrazovka; doba je i v JS (STEP_DELAY) — měnit na obou místech */
.rs2 .fc__thanks { padding:1.4rem 0 1rem; }
.rs2 .fc__bigtick { width:3.4rem; height:3.4rem; margin:0 auto 1.1rem; border-radius:50%; background:var(--mint); display:grid; place-items:center; color:var(--navy); font-size:1.4rem; font-weight:800; box-shadow:0 0 0 8px var(--mint-tint); }
.rs2 .fc__thanks .fc__bigtick { animation:tickIn .45s cubic-bezier(.22,1.4,.4,1) both; }
.rs2 .fc__thanks h2, .rs2 .fc__thanks .fc__lead { animation:riseIn .5s .1s ease-out both; }
@keyframes tickIn { from { scale:.35; opacity:0; } to { scale:1; opacity:1; } }
@keyframes riseIn { from { opacity:0; translate:0 8px; } to { opacity:1; translate:0 0; } }
.rs2 .fc__wait { width:5.5rem; height:3px; margin:1.6rem auto 0; background:var(--line); border-radius:2px; overflow:hidden; }
.rs2 .fc__wait i { display:block; height:100%; width:0; background:var(--cendre); border-radius:2px; animation:waitFill 2600ms linear both; }
@keyframes waitFill { to { width:100%; } }
.rs2 .fc__grid { display:grid; grid-template-columns:1fr 1fr; gap:1.1rem 1.2rem; margin-top:1.6rem; text-align:left; }
.rs2 .fc__field { display:flex; flex-direction:column; gap:.35rem; }
.rs2 .fc__field--full { grid-column:1 / -1; }
.rs2 .fc__field > label { font-family:"JetBrains Mono",monospace; font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:var(--cendre-text); }
.rs2 .fc__field input { font:inherit; font-size:.98rem; padding:.7rem .9rem; border:1.5px solid var(--line); border-radius:11px; background:#fff; color:var(--ink); outline:none; transition:border-color .15s, box-shadow .15s; }
.rs2 .fc__field input:focus { border-color:var(--cendre); box-shadow:0 0 0 3px rgb(61 132 167 / .12); }
.rs2 .fc__field input::placeholder { color:var(--hint); }
.rs2 fieldset { border:0; padding:0; margin:0; grid-column:1 / -1; }
.rs2 legend { font-family:"JetBrains Mono",monospace; font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:var(--cendre-text); padding:0; margin-bottom:.6rem; }
.rs2 .chips { display:flex; flex-wrap:wrap; gap:.5rem; }
.rs2 .chips label { cursor:pointer; }
.rs2 .chips input { position:absolute; opacity:0; width:0; height:0; }
.rs2 .chips span { display:inline-block; font-size:.88rem; font-weight:600; color:var(--muted); background:#fff; border:1.5px solid var(--line); border-radius:999px; padding:.45rem 1.05rem; transition:all .15s; }
.rs2 .chips label:hover span { border-color:var(--beau); color:var(--cendre-text); }
.rs2 .chips input:checked + span { background:var(--mint); border-color:var(--mint); color:var(--navy); }
.rs2 .chips input:focus-visible + span { outline:2px solid var(--cendre); outline-offset:2px; }
.rs2 .fc__note { grid-column:1 / -1; text-align:left; font-size:.85rem; color:var(--muted); background:var(--beau-tint); border:1px solid var(--line); border-radius:12px; padding:.75rem .95rem; }
.rs2 .fc__actions { display:flex; justify-content:center; margin-top:1.7rem; }
.rs2 .fc__after { margin-top:1.4rem; font-size:.92rem; color:var(--muted); }
.rs2 .fc__after a { color:var(--cendre-text); font-weight:600; text-decoration:none; }
.rs2 .fc__after a:hover { text-decoration:underline; }
.rs2 [hidden] { display:none !important; }
/* ── 6 · FINALE ── */
/* ── rozcestník na ostatní řešení ──
   Bílé pozadí a žádné karty: na bílé ploše by z bílých karet zbyly jen
   prázdné obrysy. Sloupce dělí vlasové linky, na mobilu se skládají. */
.rs2 .others { background:#fff; padding:clamp(2.6rem,5vw,3.8rem) clamp(1.2rem,3vw,2.5rem); }
/* Hlavička rozcestníku nese přiznání „to byla jedna oblast z šesti" — nadpis
   a odstavec drží pohromadě, mřížka začíná až pod nimi. */
.rs2 .others__head { text-align:center; max-width:min(46rem, 100%); margin:0 auto clamp(1.8rem,4vw,2.4rem); }
.rs2 .others h2 { font-size:clamp(1.4rem,2.6vw,1.9rem); font-weight:800; letter-spacing:-.03em; line-height:1.15; color:var(--navy); margin:0 auto .7rem; max-width:30ch; text-wrap:balance; }
.rs2 .others__head p { color:var(--muted); font-size:.98rem; max-width:58ch; margin-inline:auto; text-wrap:pretty; }
.rs2 .others-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:0; max-width:1040px; margin:0 auto; }
.rs2 .other { display:flex; flex-direction:column; gap:.3rem; text-decoration:none; padding:.2rem 1.15rem; border-left:1px solid var(--line); transition:border-color .15s ease; }
.rs2 .other:first-child { border-left:0; }
.rs2 .other__n { font-family:"JetBrains Mono",monospace; font-size:.66rem; letter-spacing:.14em; color:var(--cendre-text); }
.rs2 .other b { color:var(--navy); font-size:.98rem; line-height:1.25; letter-spacing:-.015em; transition:color .15s ease; }
.rs2 .other__note { color:var(--muted); font-size:.82rem; line-height:1.4; }
.rs2 .other:hover b { color:var(--cendre-text); }
.rs2 .other:hover b::after { content:" →"; }
.rs2 .other:focus-visible { outline:2px solid var(--cendre); outline-offset:3px; border-radius:6px; }
.rs2 .others__guides { margin:2.2rem auto 0; text-align:center; font-size:.9rem; color:var(--muted); }
.rs2 .others__guides a { color:var(--cendre-text); text-decoration:none; font-weight:600; }
.rs2 .others__guides a:hover { text-decoration:underline; }
@media (max-width:900px) {
  .rs2 .others-grid { grid-template-columns:1fr; max-width:34rem; }
  .rs2 .other { border-left:0; border-top:1px solid var(--line); padding:.9rem .2rem; }
  .rs2 .other:first-child { border-top:0; }
}

/* ── responsive ── */
/* ── responsive ── */
@media (max-width:900px) {
  .rs2 .steps-row { grid-template-columns:1fr; gap:2.5rem; }
  .rs2 .steps-row::before { display:none; }
  .rs2 .ss { grid-template-columns:1fr; gap:0; }
  .rs2 .ss__sticky { display:none; }
  .rs2 .ss__inline { position:static; width:auto; height:auto; clip-path:none; display:block; margin-top:1.2rem; background:#fff; border:1px solid var(--line); border-radius:14px; overflow:hidden; box-shadow:0 16px 36px -20px rgb(0 29 57 / .3); }
  .rs2 .ss__item { min-height:0; padding:1.6rem 0 2.2rem; }
  .rs2 .ss.js-reveal .ss__item .k, .rs2 .ss.js-reveal .ss__item .ss__pain, .rs2 .ss.js-reveal .ss__item .desc, .rs2 .ss.js-reveal .ss__item ul { opacity:1; translate:0 0; }
  .rs2 .ss.js-reveal .ss__item h3 { opacity:1; }
  .rs2 .ss__rail, .rs2 .ss__rail-fill { display:none; }
  .rs2 .ss__list { padding-left:0; }
  .rs2 .fc__grid { grid-template-columns:1fr; }
  .rs2 .quick__row, .rs2 .fc__row { flex-direction:column; border-radius:20px; padding:1rem; gap:.8rem; align-items:stretch; }
  .rs2 .quick input, .rs2 .fc__row input { padding:.6rem .8rem; border:1px solid var(--line); border-radius:12px; text-align:center; }
  .rs2 .fc__actions .btn { width:100%; }
}
@media (max-width:700px) {
  .rs2 .rs2-hero__photo img { aspect-ratio:16/10; }
  .rs2 .ping { position:static; max-width:24rem; margin:-1.6rem auto 0; }
}
@media (prefers-reduced-motion:reduce) {
  .rs2 .fc__thanks .fc__bigtick, .rs2 .fc__thanks h2, .rs2 .fc__thanks .fc__lead { animation:none; }
  .rs2 .fc__wait i { animation:none; width:100%; }
}



/* ── tlačítko se svítícím rámečkem (GlowButton) ──
   Prstenec = statická maska (border-box minus content-box).
   Obíhající světlo = rotující conic-gradient uvnitř (transform, GPU).
   Zář = drop-shadow na obalu; filter se aplikuje PŘED maskou, proto
   je maskovaný prstenec zabalený do vrstvy navíc.                  */
.rs2 .gb { position:relative; isolation:isolate;
  display:inline-flex; align-items:center; justify-content:center;
  padding:.85rem 1.7rem; border:0; border-radius:999px;
  background:var(--navy); color:#fff;
  font:inherit; font-weight:700; font-size:.98rem; letter-spacing:.01em;
  cursor:pointer; box-shadow:0 12px 28px -12px rgb(0 29 57 / .5);
  transition:translate .15s ease, box-shadow .15s ease; }
.rs2 .gb:hover { translate:0 -2px; box-shadow:0 18px 34px -12px rgb(0 29 57 / .55); }
.rs2 .gb:focus-visible { outline:2px solid var(--turquoise); outline-offset:4px; }
.rs2 .gb:active { translate:0 0; scale:.985; }
.rs2 .gb:disabled { opacity:.55; cursor:default; }

/* obal jen kvůli záři */
.rs2 .gb__fx { position:absolute; inset:-1.5px; border-radius:999px; pointer-events:none; z-index:1;
  filter:drop-shadow(0 0 2px rgb(70 205 207 / 1))
         drop-shadow(0 0 8px rgb(70 205 207 / .85))
         drop-shadow(0 0 18px rgb(70 205 207 / .55))
         drop-shadow(0 0 32px rgb(70 205 207 / .3));
  transition:filter .3s ease; }
.rs2 .gb:hover .gb__fx {
  filter:drop-shadow(0 0 4px rgb(70 205 207 / 1))
         drop-shadow(0 0 14px rgb(70 205 207 / .9))
         drop-shadow(0 0 30px rgb(70 205 207 / .6)); }

/* prstenec — jen hrana, vnitřek vymaskovaný */
.rs2 .gb__ring { position:absolute; inset:0; border-radius:inherit; overflow:hidden;
  padding:2.5px; background:rgb(70 205 207 / .18);
  -webkit-mask:linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
  mask:linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
  mask-composite:exclude; }

/* obíhající světlo — základní varianta: rotující conic-gradient.
   Na široké pilulce se pohybuje nerovnoměrně (na krátkých koncích uhne),
   proto je níž ještě přesnější varianta přes offset-path. */
.rs2 .gb__sweep { position:absolute; inset:-75%; border-radius:50%;
  background:conic-gradient(from 0deg,
    #eafeff 0 3%,
    var(--turquoise) 12%,
    var(--sky) 26%,
    transparent 46% 100%);
  animation:gb-spin 5.2s linear infinite; }
@keyframes gb-spin { to { transform:rotate(360deg); } }

/* Přesná varianta: světlo jede po obvodu pilulky po směru hodinových
   ručiček od startu do konce a pořád dokola, rovnoměrnou rychlostí. */
@supports (offset-path: border-box) {
  .rs2 .gb__sweep { inset:auto; border-radius:50%;
    /* protáhlé po směru jízdy — offset-rotate:auto stočí prvek podél hrany */
    width:clamp(170px, 58%, 300px); height:clamp(26px, 10%, 40px);
    background:radial-gradient(ellipse farthest-side,
      #ffffff 0 6%, #e6feff 18%, var(--turquoise) 42%,
      rgb(70 205 207 / .28) 66%, rgb(70 205 207 / 0) 100%);
    offset-path:border-box; offset-distance:0%; offset-rotate:auto;
    animation:gb-travel 5.2s linear infinite; }
  @keyframes gb-travel { to { offset-distance:100%; } }
}

.rs2 .gb__label { position:relative; z-index:2; }

/* uvnitř pilulky s polem je tlačítko o chlup menší — stejně jako v mockupu */
.rs2 .quick__row .gb, .rs2 .fc__row .gb { flex:none; padding:.75rem 1.5rem; }

@media (max-width:900px) { .rs2 .quick__row .gb, .rs2 .fc__row .gb { width:100%; } }
@media (prefers-reduced-motion:reduce) { .rs2 .gb__sweep { animation:none; } }

/* hero bez fotky — placeholder do doby, než bude nafoceno */
.rs2 .rs2-hero__ph { aspect-ratio:1.9; border-radius:clamp(1.2rem,2.5vw,2rem); display:grid; place-items:center;
  background:repeating-linear-gradient(-45deg, #f4fbf8 0 16px, #e9f5f0 16px 32px);
  border:1.5px dashed var(--beau); }
.rs2 .rs2-hero__ph p { font-family:"JetBrains Mono",monospace; font-size:.82rem; color:var(--muted); text-align:center; line-height:1.9; }
@media (max-width:700px) { .rs2 .rs2-hero__ph { aspect-ratio:16/10; } }

/* ── pás referencí ──
   Loga mají hodně různé proporce (Praha je skoro čtverec, T-Mobile široký),
   proto je nesjednocuju výškou, ale plochou: pevný box + object-fit:contain. */
/* Pás log zákazníků Aptienu.
   Vlastní jmenný prostor `logos`: `refs`/`refs__row` už v site.css existuje
   a nese height:clamp(340px,44vw,440px) — ta výška sem prosakovala. */
.rs2 .logos { padding:clamp(1.4rem,3vw,2rem) 1.5rem clamp(1.8rem,3.5vw,2.6rem); }
.rs2 .logos__k { text-align:center; font-family:"JetBrains Mono",monospace; font-size:.68rem;
  letter-spacing:.16em; text-transform:uppercase; color:var(--muted); margin-bottom:1.1rem; }
/* Všech osm v jedné řadě; buňky se zužují, logo se do nich vepíše. */
.rs2 .logos__row { list-style:none; display:grid; grid-template-columns:repeat(8,minmax(0,1fr));
  align-items:center; gap:clamp(.9rem,2.2vw,1.9rem); max-width:1060px; margin:0 auto; padding:0; }
.rs2 .logos__row li { display:flex; align-items:center; justify-content:center; min-width:0; }
/* Výška v pixelech, ne v procentech — procento se tu neřeší proti rodiči
   a loga by vyrostla do své přirozené výšky. */
.rs2 .logos__row img { width:100%; max-width:112px; height:44px; object-fit:contain;
  opacity:.72; transition:opacity .2s ease; }
.rs2 .logos__row li:hover img { opacity:1; }
@media (max-width:820px) {
  /* Osm log vedle sebe by na mobilu bylo pod 40 px — radši dvě řady po čtyřech. */
  .rs2 .logos__row { grid-template-columns:repeat(4,minmax(0,1fr)); gap:1.5rem 1.2rem; max-width:420px; }
  .rs2 .logos__row img { height:38px; max-width:96px; }
}
