/* ==========================================================================
   RGc — MOBIL / TABLET (≤ 899 px). Jedna responzivní vrstva nad schválenou desktopovou verzí.
   - Načítá se jako poslední; nad 900 px nemění nic (desktop zůstává beze změny, jen se zmenšuje zoomem v main.js).
   - Zdroj: schválený mobilní návrh ve Figmě (390 px) + korekce 11. 11. 2026.
   - Pravidla dotyku: žádné hover efekty, :active jen jemně; všechny ovladače ≥ 44 px s mezerami.
   ========================================================================== */

/* ---- Sub Rosa: dráhy kreslené přímo (mobil) ---- */
.sr__pm { fill: none; stroke: currentColor; stroke-width: .42; stroke-linecap: round; stroke-linejoin: round; opacity: calc(var(--sr-eff, 1) * var(--clip-op, 1)); }

/* ---- mobilní prvky navigace jsou na desktopu skryté ---- */
@media (min-width: 900px) {
  .nav__logo, .nav__cta, .nav__burger, .nav__foot, .gt__cap, .chart__note, .fz__prog, .dd__step { display: none !important; }
}

@media (max-width: 899px) {
  :root {
    --nav-h: 64px;
    --m: clamp(24px, 6.2vw, 56px);       /* boční okraj obsahu */
    --pad: var(--m);
    --lg: #5ccd91;                       /* světlá akční zelená pro malý text na tmavém */
    --tap: 48px;                         /* minimální dotyková výška */
  }
  html { scroll-padding-top: calc(var(--nav-h) + 12px); -webkit-tap-highlight-color: transparent; overflow-x: clip; }
  body { overflow-x: clip; }
  html.nav-open { overflow: hidden; }
  .bd { display: none; }
  a, button { touch-action: manipulation; }

  /* ======================= NAVIGACE ======================= */
  .nav { height: var(--nav-h); display: flex; align-items: center; padding: 0 calc(var(--m) - 12px) 0 var(--m); gap: 8px; color: var(--cream); }
  .nav.is-scrolled, .nav--home.is-scrolled, .nav--sub.is-scrolled { background: #132119; box-shadow: 0 1px 0 rgba(192,175,150,.18); }
  .nav.is-over-footer { background: #000; box-shadow: 0 1px 0 rgba(255,255,255,.12); }
  html.nav-open .nav { background: transparent; box-shadow: none; }
  .nav .nav__logo { position: relative; z-index: 3; display: block; flex: none; width: 118px; margin-right: auto; padding: 0; }
  .nav__logo img { display: block; width: 118px; height: auto; margin: 0; }
  .nav .nav__cta { position: relative; z-index: 3; display: inline-flex; align-items: center; justify-content: center; height: 44px; padding: 0 20px; border: 1px solid var(--link-on-dark);
    border-radius: 999px; color: var(--lg); font-weight: 700; font-size: 12px; line-height: 16px; letter-spacing: .1em; text-transform: uppercase; text-decoration: none; }
  .nav .nav__cta:active { background: rgba(92,205,145,.16); }
  html.nav-open .nav .nav__cta { visibility: hidden; }
  .nav__burger { position: relative; z-index: 3; flex: none; width: 48px; height: 48px; padding: 0; border: 0; background: none; color: var(--cream); cursor: pointer; }
  .nav__bars, .nav__bars::before, .nav__bars::after { content: ''; position: absolute; left: 12px; width: 24px; height: 1.5px; background: currentColor; transition: transform .3s var(--ease-out), top .3s var(--ease-out), opacity .2s; }
  .nav__bars { top: 23px; background: transparent; }
  .nav__bars::before { top: -4px; left: 0; }
  .nav__bars::after { top: 4px; left: 0; }
  html.nav-open .nav__bars::before { top: 0; transform: rotate(45deg); }
  html.nav-open .nav__bars::after { top: 0; transform: rotate(-45deg); }
  .nav__burger:active { opacity: .7; }
  .nav__burger:focus-visible, .nav__cta:focus-visible, .nav__logo:focus-visible { outline: 2px solid var(--lg); outline-offset: 2px; }

  /* celoobrazovkové menu (pouze Montserrat) */
  .nav__inner { position: fixed; inset: 0; z-index: 2; max-width: none; height: auto; margin: 0; display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 0;
    padding: calc(var(--nav-h) + 24px) var(--m) calc(28px + env(safe-area-inset-bottom)); overflow-y: auto; overscroll-behavior: contain;
    background: linear-gradient(180deg, #132119 0%, #1a2d22 55%, #20392a 100%); opacity: 0; visibility: hidden; transition: opacity .3s var(--ease-out), visibility 0s linear .3s; }
  html.nav-open .nav__inner { opacity: 1; visibility: visible; transition-delay: 0s; }
  .nav__inner > a { display: flex !important; align-items: center; gap: 12px; min-height: 68px; padding: 0; border-bottom: .5px solid rgba(192,175,150,.55);
    font-family: var(--font-sans); font-weight: 600; font-size: 22px; line-height: 28px; letter-spacing: 0; text-transform: none; color: var(--cream); text-decoration: none; }
  .nav__inner > a:first-child { border-top: 0; }
  .nav__inner > a:active { background: rgba(246,241,231,.06); }
  .nav .nav__home, .nav--home [data-only="sub"], .nav--sub .nav__home { display: none !important; }
  .nav--home .nav__home, .nav--sub [data-only="sub"], .nav--sub [data-only="home"], .nav--home [data-only="home"] { display: flex !important; }
  .nav__inner > a[aria-current="page"] { color: var(--tan); }
  .nav__inner > a[aria-current="page"]::before { content: ''; flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--action); }
  .nav__inner > a[target="_blank"]::after { content: ''; width: 12px; height: 12px; margin-left: 2px;
    background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3 9l6-6M4 3h5v5' fill='none' stroke='black' stroke-width='1.5'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3 9l6-6M4 3h5v5' fill='none' stroke='black' stroke-width='1.5'/%3E%3C/svg%3E") center/contain no-repeat; }
  .nav__inner > a[href="#kontakt"] { color: var(--lg); }
  .nav__inner > a[target="_blank"] { text-transform: capitalize; }
  .nav__foot { margin-top: auto; padding-top: 40px; display: flex; flex-direction: column; align-items: stretch; }
  .nav .nav__tel { display: flex; align-items: center; min-height: 48px; font-weight: 600; font-size: 18px; color: var(--cream); text-decoration: none; }
  .nav__adr { margin: 0 0 18px; font-weight: 400; font-size: 13px; line-height: 20px; color: var(--tan); }
  .nav .nav__book { text-transform: none; letter-spacing: 0; display: flex; align-items: center; justify-content: center; min-height: 56px; border-radius: 999px; background: var(--action); color: var(--on-action); font-weight: 700; font-size: 15px; text-decoration: none; }
  .nav .nav__book:active { background: var(--link-on-dark); }

  /* ======================= PATIČKA ======================= */
  .footer { height: auto; overflow: hidden; padding: 56px 0 calc(32px + env(safe-area-inset-bottom)); }
  body .footer .frame { height: auto; display: flex; flex-direction: column; padding-inline: var(--m); max-width: none; }
  .footer__slogan, .footer__legal, .footer__contact, .footer__copy, .footer__top, .footer__menu, .footer__menu ul { position: static; left: auto; right: auto; top: auto; width: auto; }
  .footer__slogan { order: 1; }
  .footer__menu { order: 2; margin-top: 40px; }
  .footer__contact { order: 3; margin-top: 28px; font-size: 13px; line-height: 20px; color: rgba(255,255,255,.72); }
  .footer__legal { order: 4; margin-top: 20px; font-size: 14px; }
  .footer__copy { order: 5; margin: 24px 76px 0 0; text-align: left; font-size: 12.5px; line-height: 18px; color: rgba(255,255,255,.62); }
  .footer__top { order: 6; position: absolute; right: var(--m); bottom: calc(32px + env(safe-area-inset-bottom)); }
  .footer__brand { font-weight: 600; font-size: 12px; line-height: 16px; letter-spacing: .14em; text-transform: uppercase; color: var(--tan); }
  .footer__tag { margin-top: 20px; font-size: clamp(38px, 11.6vw, 56px); line-height: 1.1; }
  .footer__menu ul { display: block; border-top: .5px solid rgba(255,255,255,.28); }
  .footer__menu li { border-bottom: .5px solid rgba(255,255,255,.28); }
  .footer__menu a { display: flex; align-items: center; min-height: 56px; font-size: 12.5px; letter-spacing: .12em; color: var(--lg); text-decoration: none; }
  .footer__menu a:active { background: rgba(255,255,255,.06); }
  .footer__contact strong { font-size: 15px; line-height: 22px; color: var(--white); }
  .footer__contact strong a { display: inline-flex; align-items: center; min-height: 44px; color: var(--lg); text-decoration: none; }
  .footer__contact .gap { height: 14px; }
  .footer__legal li { display: flex; align-items: center; min-height: 44px; white-space: normal; color: rgba(255,255,255,.8); }
  .footer .footer__top.arrow-circle { width: 56px; height: 56px; border: 1px solid rgba(255,255,255,.6); color: var(--white); }
  .footer .footer__top.arrow-circle:active { background: rgba(255,255,255,.12); }
  .footer__top svg { width: 22px; height: 22px; }

  /* ======================= SDÍLENÁ TYPOGRAFIE A SEKCE ======================= */
  .t-h1 { font-size: clamp(42px, 11.8vw, 64px); line-height: 1.13; letter-spacing: .3px; }
  .t-h2, .t-h2m { font-size: clamp(28px, 7.7vw, 40px); line-height: 1.2; letter-spacing: .4px; overflow-wrap: normal; hyphens: manual; }
  .t-h3 { font-size: 17px; line-height: 23px; letter-spacing: .8px; font-weight: 700; }
  .t-h3n { font-size: 24px; line-height: 31px; text-transform: none; }
  .t-p28, .t-p26 { font-size: 16px; line-height: 26px; font-weight: 500; }
  .t-p22, .t-p22l, .t-p22r, .t-p22i { font-size: 15px; line-height: 25px; }
  .t-serif56, .t-serif60 { font-size: clamp(30px, 8.8vw, 46px); line-height: 1.18; }
  .btn { min-height: 52px; padding: 0 28px; border-radius: 999px; font-size: 15px; line-height: 22px; justify-content: center; text-align: center; }
  .btn--l { font-size: 15px; line-height: 22px; }
  .btn:active { filter: brightness(1.12); }
  .arrow-link { font-size: 16px; line-height: 24px; min-height: 60px; width: 100%; justify-content: space-between; }
  .arrow-circle { width: 48px; height: 48px; }
  .arrow-circle svg { width: 18px; height: 18px; }
  .rows .row, .list-row { border-top-width: .5px; }

  /* ======================= HOMEPAGE ======================= */
  .page-home { --pad: var(--m); }
  .page-home .frame, .page-home .sit .frame, .page-home .brand .frame, .page-home .diag .frame, .page-home .flow .frame, .page-home .sit-band .frame, .page-home .team__strip .frame { padding-inline: var(--m); max-width: none; }
  .top--home { min-height: 0; }
  .top--home > .hero { height: auto; min-height: 0; padding-bottom: 0; }
  .hero__shade, .hero__logo { display: none; }
  .top__hero { background: linear-gradient(180deg, #132119 0%, #1a2d22 40%, #20392a 100%); }
  .hero .frame { height: auto; }
  .hero__copy { position: relative; left: auto; top: auto; width: auto; padding: calc(var(--nav-h) + 48px) 0 0; gap: 0; }
  .hero__copy .t-h1 { font-size: clamp(42px, 11.8vw, 60px); line-height: 1.13; }
  .hero__lead { width: auto; margin-top: 24px; font-weight: 500; color: var(--soft); }
  .hero__btns { flex-direction: column; align-items: stretch; gap: 12px; margin-top: 32px; padding-bottom: 148px; }
  .hero__btns .btn { width: 100%; min-height: 52px; }
  .top--home > .sr-clip .sub-rosa { --sr-w: 560px; --sr-top: 290px; --sr-right: -150px; top: 290px; bottom: auto; }   /* motiv sahá do prostoru kolem CTA; pořád jen jemná dekorace */
  .top > .sr-clip { --clip: 100%; }
  .brand { padding: 56px 0; }
  .brand .frame { padding-left: var(--m); }
  .brand__h { font-size: 20px; line-height: 28px; letter-spacing: .8px; text-transform: uppercase; font-weight: 700; width: auto; }
  .brand__p { width: auto; margin-top: 16px; font-size: 16px; line-height: 26px; font-weight: 400; color: var(--soft); }

  .sit { padding-top: 72px; padding-bottom: 0; }
  .sit__head { width: auto; gap: 20px; }
  .sit__lead { width: auto; color: var(--soft); font-weight: 400; }
  .sit__list { width: auto; margin-top: 36px; padding-bottom: 48px; }
  .sit-row { padding: 26px 0 30px; }
  .sit-row__in { display: flex; flex-direction: column; gap: 10px; }
  .sit-row__l { gap: 10px; }
  .sit-row__l .t-h3 { margin: 0; }
  .sit-row__l .t-p22 { font-weight: 600; font-size: 15px; line-height: 22px; color: var(--tan); }
  .sit-row__d { padding-right: 0; color: var(--soft); font-weight: 400; margin: 0; position: relative; padding-top: 14px; }
  .sit-row__d::before { content: ''; position: absolute; left: 0; top: 0; width: 32px; height: 2px; background: var(--action); }
  /* akcentová linka se při příchodu řádku do záběru „dokreslí“ (jemný scroll-reveal ve stejném jazyce jako text) */
  html.js .sit-row__d::before { transform-origin: 0 50%; transform: scaleX(0); transition: transform .8s var(--ease-out) .5s; }
  html.js .sit-row.is-in .sit-row__d::before { transform: scaleX(1); }
  @media (prefers-reduced-motion: reduce) { html.js .sit-row__d::before { transform: none; transition: none; } }
  .sit-band { height: auto; padding: 56px 0 72px; }
  .sit-band .frame { height: auto !important; padding-left: var(--m); }
  .sit-band__t, .sit-band__btn { position: static; left: auto; top: auto; width: auto; }
  .sit-band__t .t-h3n { font-size: 24px; line-height: 31px; }
  .sit-band__t .gap { height: 14px; }
  .sit-band__t .t-p22r { font-size: 16px; line-height: 26px; color: var(--soft); }
  .sit-band__btn { display: flex; width: 100%; margin-top: 28px; }

  .photo { height: auto; min-height: 0; padding-top: 352px; padding-bottom: 72px; }
  .photo__bg { background: #040404; }
  .photo__bg::before { left: 0; top: 0; width: 100%; height: 400px; margin: 0; scale: none; translate: none; transform-origin: 0 0;
    background-size: auto 520px; background-position: 63% 10%;
    -webkit-mask-image: linear-gradient(180deg, #000 0, #000 52%, transparent 100%); mask-image: linear-gradient(180deg, #000 0, #000 52%, transparent 100%); -webkit-mask-composite: source-over; mask-composite: add; }
  .photo .frame { height: auto; }
  .photo__h { position: relative; left: auto; top: auto; width: auto; translate: none; font-size: clamp(32px, 9.4vw, 48px); line-height: 1.17; }
  .photo__p { position: relative; left: auto; top: auto; width: auto; translate: none; margin-top: 28px; }
  .photo__p p { font-size: 16px; line-height: 26px; font-weight: 400; color: var(--soft); }
  .photo__p p:first-child, .photo__p p:last-child { font-weight: 600; color: var(--cream); }
  .photo__p p + p { margin-top: 18px; }

  .diag { padding: 72px 0 80px; }
  .diag .frame { padding-left: var(--m); }
  .diag__head { width: auto; gap: 20px; }
  .diag__lead { width: auto; color: var(--soft); font-weight: 400; }
  .diag__list { width: auto; margin-top: 36px; }
  .diag-row { padding: 20px 0 22px; }
  .diag-row__in { flex-direction: column; gap: 6px; }
  .diag-row__t, .diag-row__d { width: auto; flex: none; }
  .diag-row__t { font-size: 15px; letter-spacing: 1.2px; }
  .diag-row__d { color: var(--soft); font-weight: 400; margin: 0; }
  .diag__close { width: auto; margin-top: 28px; padding-top: 0; font-size: 17px; line-height: 27px; color: var(--soft); }
  .diag__link { margin-top: 20px; width: 100%; min-height: 60px; font-size: 16px; color: var(--link-on-green); }

  .flow { padding: 72px 0 80px; }
  .flow .frame { padding-left: var(--m); }
  .flow__h { width: auto; }
  .flow__list { width: auto; margin-top: 36px; }
  .flow-step { padding: 22px 0 26px; }
  .flow-step--n .flow-step__in, .flow-step--w .flow-step__in { width: auto; gap: 8px; }
  .flow-step__in .t-h3 { font-size: 15px; line-height: 21px; letter-spacing: 1.1px; }
  .flow-step__in .t-p22 { font-weight: 400; }
  .flow__close { width: auto; margin: 24px 0 0; padding-top: 0; font-size: 15px; line-height: 25px; }

  .team { padding: 72px 0 0; }
  /* Sub Rosa v dalších sekcích homepage: stejný motiv jako na desktopu, jen menší, u horního okraje sekce, pod textem (kreslí se při příchodu do záběru) */
  .page-home section.sit > .sr-clip, .page-home section.diag > .sr-clip, .page-home section.flow > .sr-clip, .page-home section.team > .sr-clip { --clip: 620px; }
  .page-home section.sit > .sr-clip .sub-rosa, .page-home section.diag > .sr-clip .sub-rosa, .page-home section.flow > .sr-clip .sub-rosa, .page-home section.team > .sr-clip .sub-rosa { --sr-w: 520px; --sr-top: 28px; --sr-right: -250px; }
  .page-home section.sit > .sr-clip { --clip-op: .72; }
  .page-home section.diag > .sr-clip { --clip-op: .58; }
  .page-home section.photo > .sr-clip, .page-home section.refs > .sr-clip { display: none; }
  .team .frame { padding-inline: var(--m); }
  .team__head { margin-left: 0; width: auto; gap: 16px; padding-inline: 0; }
  .team__people, .team__people--2 { position: static; height: auto; margin-top: 40px; padding-inline: 0; display: flex; flex-direction: column; }
  .team__line { display: none; }
  .team__people > .person, .team__people > .person__photo { position: static !important; left: auto !important; top: auto !important; width: auto !important; height: auto !important; }
  .team__people > .person__photo--link { position: relative !important; }   /* barevná vrstva .ph-c je absolutní a musí se vztahovat k fotce, ne k celé sekci */
  .team__people > :nth-child(1) { order: 1; } .team__people > :nth-child(2) { order: 2; }
  .team__people > :nth-child(4) { order: 4; margin-top: 0; } .team__people > :nth-child(5) { order: 3; margin-top: 64px; }
  .person__photo--link { aspect-ratio: 342 / 430; width: 100% !important; overflow: hidden; contain: layout paint; isolation: isolate; transform: none !important; scale: none !important; translate: none !important; }
  .person__photo--link .ph-c, .person__photo--link .ph-bw { position: absolute; inset: 0; width: 100%; height: 100%; transform: none; scale: none; translate: none; }
  .person__photo--link img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 18%; }
  .person__photo--link img.ph-c { transition: opacity .9s var(--ease-out); }
  .person__photo--link.is-colour .ph-c { opacity: 1; }
  .person__photo--link:active { opacity: .92; }
  .person { margin-top: 24px; }
  .person__txt { width: auto; }
  .person__name { font-weight: 700; font-size: 22px; line-height: 28px; letter-spacing: .6px; }
  .person__role { font-weight: 400; font-size: 14px; line-height: 20px; color: var(--tan-text); margin-top: 2px; }
  .person__bio, .person__txt .person__bio { margin-top: 18px !important; font-weight: 400; font-size: 16px; line-height: 26px; }
  .person__contact { margin-top: 24px; gap: 0; border-top: .5px solid var(--tan); }
  .person__row { height: auto; min-height: 54px; gap: 12px; border-bottom: .5px solid var(--tan); }
  .person__row dt { width: auto; font-weight: 500; font-size: 12.5px; line-height: 18px; color: var(--tan-text); }
  .person__row dd { font-size: 14.5px; line-height: 22px; white-space: normal; overflow-wrap: anywhere; }
  .person__row dd a { display: inline-flex; align-items: center; min-height: 48px; }
  .person__li { margin-top: 0; width: 100%; min-height: 54px; border-bottom: .5px solid var(--tan); font-size: 14.5px; line-height: 22px; color: var(--link-on-light); }
  .person__li svg { width: 14px; height: 14px; }
  .person__profile.arrow-link { margin-top: 20px; width: 100%; min-height: 52px; justify-content: center; border: 1px solid var(--action); border-radius: 999px; font-size: 15px; }
  .person__profile .arrow-circle { display: none; }
  .person__profile:active { background: rgba(49,145,91,.1); }
  .team__strip { height: auto; margin-top: 72px; padding: 72px 0 80px; }
  .team__strip .frame { padding-left: var(--m); height: auto !important; }
  .strip__h, .strip__t, .strip__btn { position: static; left: auto; top: auto; width: auto; }
  .strip__h { font-size: clamp(30px, 8.5vw, 44px); line-height: 1.17; }
  .strip__t { margin-top: 28px; }
  .strip__t .t-p22 { font-size: 16px; line-height: 24px; }
  .strip__t .gap { height: 14px; }
  .strip__t .t-p22r { font-size: 16px; line-height: 26px; }
  .strip__btn { display: flex; margin-top: 28px; width: 100%; }

  /* ---- Sub Rosa na mobilu: stále skutečné SVG (žádná rastrová maska), jen lehčí a stabilnější ----
     silnější linka (hairline pod 1 fyzický pixel na displeji se při kreslení chvěje), bez záře kolem bodu,
     vlastní vrstva, aby se při kreslení nepřekreslovala okolní stránka */
  .sub-rosa.sr-v { contain: layout paint style; transform: translateZ(0); }
  .sr__svg { shape-rendering: geometricPrecision; }
  .sr__svg use { stroke-width: .42; }
  .sr__halo { display: none; }

  /* ======================= PROFIL — SPOLEČNÉ (Martin, Jakub) ======================= */
  .page-martin .frame, .page-jakub .frame { padding-inline: 0; max-width: none; }
  .m-eyebrow { font-size: 12px; line-height: 18px; letter-spacing: .14em; }
  .wrap, .kar__col, .nt__col { width: auto; max-width: none; padding-inline: var(--m); margin-inline: 0; }
  .mhead--900, .mhead__intro, .mhead__note { width: auto; }
  .mhead .t-h2 { margin-top: 10px; }
  .mhead__intro, .mhead__note { margin-top: 20px; }
  .wrap > .mhead + * { margin-top: 36px; }
  .mhead__note { font-size: 14px; line-height: 22px; }
  .prof, .mil, .trh, .help, .man, .kar { padding: 72px 0; }
  .page-martin .sec, .page-jakub .sec { --pad: var(--m); }
  .page-martin section:not(.mh) > .sr-clip, .page-jakub section:not(.jh) > .sr-clip { display: none; }

  /* HERO */
  .mh { height: auto; min-height: 0; padding-bottom: 0; }
  .mh__shade, .mh__plus, .mh__offset, .mh__logo { display: none; }
  .mh .frame { height: auto; display: flex; flex-direction: column; }
  .mh__copy { display: contents; }
  .mh__top { order: 1; padding: calc(var(--nav-h) + 40px) var(--m) 0; }
  .mh__kicker { font-size: 12px; line-height: 18px; letter-spacing: .12em; text-transform: uppercase; font-weight: 600; color: var(--tan); margin-bottom: 14px; }
  .mh__h1 { font-size: clamp(46px, 13.4vw, 72px); line-height: 1.05; letter-spacing: 2px; }
  .mh__role { margin-top: 14px; font-size: 16px; line-height: 24px; }
  .mh__pt { order: 2; position: relative; inset: auto; translate: none; margin-top: 36px; height: auto; max-width: none; pointer-events: auto; aspect-ratio: 389 / 552; margin-bottom: 36px;
    -webkit-mask-image: none; mask-image: none; }   /* fotografie je samostatný blok mezi dvěma zelenými bloky, bez gradientu přes obličej */
  .mh__photo { position: absolute; left: 0; top: 0; width: 100%; height: 100%; aspect-ratio: auto; background: transparent; }
  .mh__photo img { position: absolute; left: 0; top: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 12%; translate: none; will-change: auto; }
  .mh__badge { position: absolute; left: var(--m); top: auto; bottom: 34px; width: auto; height: 36px; padding: 0 16px; }
  .mh__quote { order: 3; margin: 0 var(--m); padding-left: 18px; }
  .mh__quote p { width: auto; font-size: 17px; line-height: 27px; font-weight: 500; }
  .mh__contact { order: 4; margin: 24px var(--m) 0; gap: 0; border-top: .5px solid rgba(192,175,150,.55); }
  .mh__contact > div, .mh__contact > div:nth-child(2) { height: auto; min-height: 54px; gap: 14px; border-bottom: .5px solid rgba(192,175,150,.55); }
  .mh__contact dt { width: auto; min-width: 56px; font-size: 12.5px; }
  .mh__contact dd { font-size: 15px; line-height: 22px; overflow-wrap: anywhere; }
  .mh__contact dd a { display: inline-flex; align-items: center; min-height: 48px; }
  .mh__loc dd { font-size: 15px; font-weight: 600; color: var(--cream); }
  .mh__btn { order: 5; align-self: stretch; margin: 24px var(--m) 0; min-height: 52px; }
  .mh__top, .mh__quote, .mh__contact, .mh__btn { position: relative; z-index: 3; }
  .mh { padding-bottom: 56px; }
  .jh { padding-bottom: 56px; }

  /* ČÍSLA */
  .mst .frame { padding-block: 40px; }
  .mst .wrap { padding-inline: var(--m); }
  .mst__list { grid-template-columns: 1fr 1fr; column-gap: 18px; row-gap: 0; }
  .mst__i { min-height: 0; border-left: 0; border-top: .5px solid var(--tan); padding: 22px 0 28px; gap: 12px; }
  .mst__n { font-size: 52px; line-height: 56px; letter-spacing: -1px; }
  .mst__l { font-size: 14.5px; line-height: 22px; }

  /* PROFIL */
  .prof__row { flex-direction: column; align-items: stretch; gap: 28px; }
  .prof__l, .prof__r { width: 100%; }
  .prof__st { font-size: clamp(28px, 7.6vw, 38px); line-height: 1.28; }
  .prof__eyebrow { font-size: 12px; line-height: 18px; letter-spacing: .14em; }
  .prof__txt p, .prof__more-in p { font-size: 16px; line-height: 26px; font-weight: 500; }
  .prof__txt > p + p { margin-top: 18px; }
  .prof__more-in p { margin-top: 18px; }
  .prof__tg { min-height: 52px; padding: 0; font-size: 16px; display: inline-flex; align-items: center; }
  .prof__tg:active { opacity: .7; }
  .prof__sig { padding-top: 4px; font-size: 15px; }

  /* SUB ROSA */
  .msub { height: auto; padding: 0 0 72px; }
  .msub .frame { height: auto; }
  .msub__bg { position: absolute; left: 0; top: 0; width: 100%; height: 100%; margin: 0; background: #040404; -webkit-mask-image: none; mask-image: none; }
  .msub__bg::before { left: 0; top: 0; width: 100%; height: 440px; margin: 0; scale: none; translate: none; transform-origin: 0 0; background-size: auto 600px; background-position: 56% 0;
    -webkit-mask-image: linear-gradient(180deg, #000 0, #000 58%, transparent 100%); mask-image: linear-gradient(180deg, #000 0, #000 58%, transparent 100%); -webkit-mask-composite: source-over; mask-composite: add; }
  .msub__t, .msub__p { position: relative; left: auto; top: auto; width: auto; translate: none; padding-inline: var(--m); }
  .msub__t { padding-top: 400px; }
  .msub__eyebrow { font-size: 12px; letter-spacing: .3em; }
  .msub__h { font-size: clamp(30px, 8.6vw, 44px); line-height: 1.17; }
  .msub__p { margin-top: 24px; gap: 16px; }
  .msub__p1, .msub__p2 { font-size: 16px; line-height: 26px; font-weight: 400; }
  .msub__p2 { font-weight: 600; color: var(--cream); }

  /* KARIÉRA — osa vlevo, kapitoly vpravo; aktivní stav řídí poloha při scrollu (main.js nastavuje --ap a .is-active; geometrii --ml/--mt mobile.js) */
  .kar__col { gap: 36px; }
  .kar__head .t-h2 { margin-top: 10px; }
  .kar__intro { width: auto; margin-top: 20px; }
  .kar__tl { --ml: 0px; --mt: 14px; }
  .kar__base, .kar__trail, .kar__dot { display: block; }
  .kar__base { left: 8px; top: var(--mt); width: 1px; height: var(--ml); }
  .kar__trail { left: 7px; top: var(--mt); width: 3px; height: calc(var(--ml) * var(--ap, 0)); }
  .kar__dot { left: 0; top: calc(var(--mt) + var(--ml) * var(--ap, 0) - 8px); width: 17px; height: 17px; z-index: 2; }
  .kar__ol { padding-left: 40px; }
  .chap { display: block; position: relative; padding-bottom: 40px; }
  .chap::before { content: ''; position: absolute; left: -40px; top: 8px; width: 15px; height: 15px; box-sizing: border-box; border-radius: 50%; border: 1px solid var(--tan); background: var(--cream); z-index: 1; }
  .chap__w { width: auto; flex-direction: row; align-items: baseline; gap: 12px; margin-bottom: 6px; }
  .chap__y { font-size: 38px; line-height: 44px; letter-spacing: -.5px; transition: color .3s; }
  .chap__pl { font-size: 12px; line-height: 16px; letter-spacing: .1em; text-transform: uppercase; color: var(--tan-text); }
  .chap__ax { display: none; }
  .chap__b { width: auto; gap: 6px; }
  .chap__k { font-size: 12px; line-height: 18px; letter-spacing: .14em; }
  .chap__t { font-size: 21px; line-height: 28px; }
  .chap__s { font-size: 14px; line-height: 20px; font-weight: 600; color: var(--tan-text); }
  .chap__d { font-size: 15px; line-height: 25px; font-weight: 500; }
  .axis-live .chap:not(.is-active) { opacity: 1; }
  .chap.is-active .chap__y, .chap.is-active .chap__b, .ph.is-active .ph__num, .ph.is-active .ph__c { scale: none; }

  /* MILNÍKY */
  .mil__cards { gap: 14px; }
  .mil__row--3, .mil__row--2 { grid-template-columns: 1fr; gap: 14px; }
  .mcard { padding: 28px 24px 30px; gap: 10px; }
  .mcard__k { font-size: 12px; line-height: 18px; letter-spacing: .14em; }
  .mcard__t { font-size: 22px; line-height: 28px; }
  .mcard__d { font-size: 15px; line-height: 25px; font-weight: 400; }

  /* TRHY */
  .trh__grid { grid-template-columns: 1fr 1fr; gap: 12px; }
  .mtile { padding: 22px 18px 24px; gap: 6px; }
  .mtile__c, .trh--j .mtile__c { font-size: 46px; line-height: 50px; }
  .mtile__n { font-size: 14px; line-height: 20px; letter-spacing: .6px; }
  .mtile__d { font-size: 13px; line-height: 19px; }

  /* S ČÍM POMÁHÁ */
  .help__grid { grid-template-columns: 1fr; gap: 14px; }
  .scard { padding: 28px 24px 30px; gap: 14px; }
  .scard__h { min-height: 0; gap: 10px; }
  .scard__t { font-size: 20px; line-height: 26px; letter-spacing: .6px; }
  .scard__q { font-size: 15px; line-height: 24px; }
  .scard__l { padding: 14px 0 0 20px; font-size: 15px; line-height: 24px; }
  .scard__l li + li { margin-top: 8px; }

  /* MANDÁTY */
  .man__list { gap: 18px; }
  .mandate { padding: 28px 24px 30px; gap: 22px; }
  .mandate__k { font-size: 12px; line-height: 18px; letter-spacing: .14em; }
  .mandate__t { font-size: 22px; line-height: 29px; }
  .mandate__s { font-size: 16px; line-height: 26px; }
  .mandate__body { gap: 22px; }
  .phases { flex-direction: column; gap: 0; }
  .phase { width: 100%; flex: none; padding: 16px 0 14px; gap: 6px; }
  .phase__h { font-size: 12px; line-height: 18px; letter-spacing: .14em; }
  .phase__d { font-size: 15px; line-height: 24px; font-weight: 400; }
  .mandate__out { flex-direction: column; align-items: flex-start; gap: 6px; padding: 18px 20px; }
  .mandate__ol { font-size: 12px; line-height: 18px; letter-spacing: .14em; }
  .mandate__out strong { flex: none; font-size: 16px; line-height: 24px; }

  /* VÝZVA */
  .cta { height: auto; padding: 72px 0 80px; }
  .cta .frame { height: auto; padding-inline: var(--m); }
  .cta__h, .cta__p, .cta__b { position: static; left: auto; top: auto; width: auto; }
  .cta__p { margin-top: 22px; font-size: 16px; line-height: 26px; }
  .cta__b { flex-direction: column; align-items: stretch; gap: 12px; margin-top: 28px; }
  .cta__b .btn { width: 100%; min-height: 52px; }

  /* DALŠÍ ČLEN TÝMU — svisle: štítek → foto (odkaz) → jméno → role → tlačítko */
  .nt { height: auto; padding: 56px 0 72px; }
  .nt .frame { height: auto; }
  .nt__col { position: static; height: auto; display: flex; flex-direction: column; align-items: center; text-align: center; padding-inline: var(--m); }
  .nt__rule { display: none; }
  .nt__t, .nt__ph, .nt__go { position: static; left: auto; top: auto; right: auto; width: auto; }
  .nt__t { display: contents; }
  .nt__k { order: 1; font-weight: 600; font-size: 12px; line-height: 18px; letter-spacing: .14em; text-transform: uppercase; color: var(--tan-text); }
  .nt__ph { order: 2; position: relative; width: min(244px, 66vw); height: min(244px, 66vw); margin-top: 24px; flex: none; }   /* ≈ dvojnásobek původních 120 px: obličej je rozpoznatelný i na malém displeji */
  .nt__ph:active { opacity: .9; }
  .nt__nm { order: 3; display: flex; flex-direction: column; align-items: center; gap: 6px; margin-top: 22px; }
  .nt__n { font-size: 20px; line-height: 26px; letter-spacing: .5px; }
  .nt__r, .nt__r--long { width: auto; max-width: 320px; font-size: 15px; line-height: 24px; }
  .nt__go { order: 4; display: flex; align-self: stretch; width: auto; height: 52px; margin-top: 22px; border-radius: 999px; border: 1px solid var(--action); align-items: center; justify-content: center; position: relative; color: var(--action); }
  .nt__go svg { display: none; }
  .nt__go::before { content: 'Zobrazit profil'; font-weight: 700; font-size: 15px; letter-spacing: 0; }
  .nt__go:active { background: rgba(49,145,91,.1); }
  .nt__ph .ph-c { transition: opacity .9s var(--ease-out); }
  .nt__ph.is-colour .ph-c { opacity: 1; }
  .kar__tl { --dc: 15.5; }
  .mh__pt { margin: 36px 0 36px; max-width: none; width: 100%; }
  .mh__contact dd, .mh__contact a { color: var(--lg); }
  .mh__loc dd { color: var(--cream); }
  /* Sub Rosa v horních blocích: dole za obsahem, nikdy přes nadpis a fotografii */
  .page-jak .top > .sr-clip .sub-rosa { --sr-w: 440px; --sr-top: 150px; --sr-right: -100px; top: 150px; bottom: auto; }   /* menší motiv, ale větší celek: většina kruhu je v záběru hero + údajů */

  /* Sub Rosa na profilech: spodní dekorativní vrstva hero — ukotvená od spodního okraje hero (--hh nastavuje mobile.js),
     nikdy přes fotografii, logo a navigaci; za textem, tlačítkem a kontakty (ty mají z-index 3), proto jemná */
  .page-martin .top > .sr-clip, .page-jakub .top > .sr-clip { height: var(--hh, 100%); --clip-op: .66; }
  .page-martin .top > .sr-clip .sub-rosa, .page-jakub .top > .sr-clip .sub-rosa { --sr-w: 560px; --sr-right: -150px; --sr-top: calc(var(--hh, 1500px) - 440px); top: calc(var(--hh, 1500px) - 440px); bottom: auto; }

  /* JAKUB — odlišnosti */
  .mh__badge--j { left: var(--m); width: auto; white-space: nowrap; font-size: 11px; letter-spacing: 1.2px; }
  .mst__u { font-size: 20px; }
  .jpr { padding: 64px 0; }
  .jpr__row { flex-direction: column; align-items: flex-start; gap: 8px; }
  .jpr__n { font-size: clamp(92px, 27vw, 140px); line-height: 1; letter-spacing: -2px; }
  .jpr__t { max-width: none; width: 100%; gap: 12px; }
  .jpr__h { font-size: clamp(28px, 7.8vw, 40px); line-height: 1.2; }
  .jpr__p { font-size: 16px; line-height: 26px; margin-top: 4px; font-weight: 400; }
  .kar--j .kar__base { height: var(--ml); top: var(--mt); }
  .kar--j .kar__trail { height: calc(var(--ml) * var(--ap, 0)); top: var(--mt); }
  .kar--j .kar__dot { top: calc(var(--mt) + var(--ml) * var(--ap, 0) - 8px); }
  .kar--j .chap__y { font-size: 34px; line-height: 44px; }
  .trh--j .trh__grid { grid-template-columns: 1fr 1fr; }
  .hv__bg { display: none !important; }
  .trh__grid, .trh--j .trh__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .trh--j .mtile__c { font-size: 34px; line-height: 44px; }
  .mtile { min-width: 0; }
  .mtile__n, .mtile__d { overflow-wrap: anywhere; }

  /* ======================= JAK PRACUJEME ======================= */
  .page-jak .frame { padding-inline: 0; max-width: none; }
  .page-jak .wrap { width: auto; max-width: none; padding-inline: var(--m); }
  .page-jak .sec { --pad: var(--m); }
  .page-jak section:not(.jh):not(.top__bridge) > .sr-clip { display: none; }
  .jhd, .jhd--1100, .jhd--1000, .jhd--1150, .jhd--1280 { width: auto; gap: 0; }
  .jhd__e { font-size: 12px; line-height: 18px; letter-spacing: .14em; text-transform: uppercase; }
  .jhd .t-h2, .jhd .t-h2m { margin-top: 10px; }
  .jhd__i, .jhd--1100 .jhd__i, .jhd--1000 .jhd__i, .jhd--1150 .jhd__i, .jhd--1280 .jhd__i { width: auto; margin-top: 20px !important; font-weight: 500; }
  .jhd .t-h2 br, .jhd .t-h2m br { display: none; }
  .t-h2m { font-size: clamp(26px, 7.2vw, 38px); }

  /* hero */
  .jh { height: auto; overflow: visible; padding-bottom: 56px; }
  .jh__shade, .jh__logo { display: none; }
  .jh .frame { height: auto; }
  .jh__copy { position: relative; left: auto; top: auto; width: auto; padding: calc(var(--nav-h) + 40px) var(--m) 0; gap: 22px; }
  .jh__k { font-size: 12px; line-height: 18px; letter-spacing: .12em; text-transform: uppercase; font-weight: 600; color: var(--tan); margin-bottom: 14px; }
  .jh__h { width: auto; font-size: clamp(25px, 7.1vw, 46px); line-height: 1.16; letter-spacing: 1.4px; padding-bottom: 0; }
  .jh__q { width: auto; padding-left: 18px; }
  .jh__q p { font-size: 17px; line-height: 27px; }
  .jh__q p br { display: none; }

  /* dva údaje */
  .jf { padding: 40px 0; }
  .jf .wrap { padding-inline: var(--m); }
  .jf__l { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
  .jf__i { border-left: 0; border-top: .5px solid var(--tan); padding: 20px 0 0; gap: 10px; }
  .jf__n { font-size: 52px; line-height: 56px; letter-spacing: -1px; }
  .jf__n small { font-size: 18px; }
  .jf__t { font-size: 14.5px; line-height: 22px; }

  /* rejstřík fází — celé řádky jsou odkazy */
  .jn { padding: 40px 0 44px; }
  .jn__l { display: block; border-top: 2px solid var(--green); }
  .nv { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto 28px; align-items: center; column-gap: 8px; min-height: 64px; padding: 10px 0; border-top: 0; border-bottom: .5px solid rgba(41,79,58,.45); position: relative; }
  .nv__n { font-size: 13px; line-height: 18px; letter-spacing: .14em; }
  .nv__t { font-size: 18px; line-height: 24px; text-decoration: none; }
  .nv__d { grid-column: 3; padding: 3px 12px; border: 1px solid var(--action); border-radius: 999px; font-size: 12px; line-height: 16px; letter-spacing: .04em; font-weight: 600; color: var(--action); }
  .nv::after { content: ''; grid-column: 4; justify-self: end; width: 14px; height: 14px; background: var(--action); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M7 1v11M2.5 8L7 12.5 11.5 8' fill='none' stroke='black' stroke-width='1.4'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M7 1v11M2.5 8L7 12.5 11.5 8' fill='none' stroke='black' stroke-width='1.4'/%3E%3C/svg%3E") center/contain no-repeat; }
  .nv:active { background: rgba(41,79,58,.07); }
  .jn__l > li { display: block; }

  /* šest fází */
  .fz { padding: 72px 0; overflow: clip; }
  .fz .wrap { gap: 40px; }
  .fz__base, .fz__trail, .fz__dot, .ph__ax { display: none; }
  .ph { display: block; padding: 28px 0 32px; border-top: .5px solid rgba(41,79,58,.45); scroll-margin-top: calc(var(--nav-h) + 60px); border-radius: 0; transition: background-color .5s var(--ease-out); }
  .ph:last-child { padding-bottom: 0; border-bottom: 0; }
  .ph.is-target { background: rgba(49,145,91,.12); }
  .ph__n { width: auto; flex-direction: row; align-items: center; gap: 14px; margin-bottom: 4px; }
  .ph__num { font-size: 48px; line-height: 56px; letter-spacing: -1px; color: var(--tan-text); }
  .ph__free { padding: 4px 12px; border-radius: 999px; background: var(--action); color: var(--on-action); font-size: 11px; line-height: 16px; letter-spacing: .12em; }
  .ph__c { gap: 14px; }
  .ph__t { font-size: 22px; line-height: 28px; letter-spacing: .6px; }
  .ph__d { width: auto; font-size: 15px; line-height: 25px; font-weight: 500; }
  .ph__d br { display: none; }
  .ph__out { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding: 22px 22px 20px; min-height: 0; background: var(--green-deep); border-top: 2px solid var(--tan); color: var(--cream); }
  .ph__ol { margin: 0; font-size: 12px; line-height: 18px; letter-spacing: .2em; color: var(--tan); }
  .ph__out ul { flex-direction: column; gap: 8px; min-width: 0; width: 100%; }
  .ph__out li, .ph__out li:first-child { padding: 2px 0 2px 14px; font-size: 16px; line-height: 24px; font-weight: 700; white-space: normal; border-left: .5px solid var(--tan); }
  .fz__prog { position: sticky; top: var(--nav-h); z-index: 20; display: flex; align-items: center; gap: 12px; height: 52px; margin: 0 0 -52px; padding: 0 var(--m); background: var(--cream); border-bottom: .5px solid rgba(41,79,58,.3); color: var(--green); text-decoration: none; opacity: 0; visibility: hidden; transition: opacity .25s, visibility 0s linear .25s; }
  .fz__prog.is-on { opacity: 1; visibility: visible; transition-delay: 0s; }
  .fz__prog-n { font-weight: 600; font-size: 13px; letter-spacing: .14em; color: var(--action); }
  .fz__prog-t { flex: 1; min-width: 0; font-weight: 700; font-size: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .fz__prog-a { width: 14px; height: 14px; background: var(--action); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M7 13V2M2.5 6L7 1.5 11.5 6' fill='none' stroke='black' stroke-width='1.4'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M7 13V2M2.5 6L7 1.5 11.5 6' fill='none' stroke='black' stroke-width='1.4'/%3E%3C/svg%3E") center/contain no-repeat; }
  .fz__prog-b { position: absolute; left: 0; bottom: -1px; height: 2px; width: calc(var(--fp, 0) * 100%); background: var(--action); transition: width .2s linear; }
  .fz__prog:active { background: var(--beige); }
  .fz .wrap { padding-top: 0; }

  /* citát */
  .jq { padding: 64px 0; }
  .jq__f { margin: 0; width: auto; flex-direction: column; align-items: stretch; gap: 24px; padding-inline: var(--m); }
  .jq__b { width: 100%; }
  .jq__ph { align-self: flex-start; }
  .jq__ph { width: 112px; height: 112px; }
  .jq__q { font-size: clamp(26px, 7.3vw, 34px); line-height: 1.27; }
  .jq__by { font-size: 15px; }

  /* Diagnostic Entry Framework */
  .df { padding: 72px 0 56px; }
  .df .wrap { gap: 32px; }
  .df__hd { display: none; }
  .lay { grid-template-columns: 52px minmax(0, 1fr); column-gap: 8px; row-gap: 4px; padding: 22px 0 24px; }
  .lay__l { grid-row: span 2; font-size: 28px; line-height: 34px; }
  .lay__a { padding-top: 0; font-size: 19px; line-height: 26px; }
  .lay__q { padding: 0; font-size: 15px; line-height: 24px; font-weight: 500; }
  .dfq { height: auto; padding: 48px 0; }
  .dfq .frame { padding: 0 var(--m); display: block; }
  .dfq__q { width: auto; font-size: clamp(26px, 7.4vw, 34px); line-height: 1.25; }

  /* Due Diligence — svislé panely + sticky stepper */
  .dd { padding: 72px 0; overflow: clip; }
  .dd__w { gap: 20px; }
  .dd__lg { align-self: stretch; font-size: 13px; line-height: 20px; padding: 12px 16px; align-items: flex-start; }
  .dd__lg i { margin-top: 6px; }
  .dd__pin, .dd__pin.is-static { height: auto; margin-top: 28px; }
  .dd__stage { position: relative; top: 0; height: auto; overflow: visible; scroll-snap-type: none; }
  .dd__trk { position: static; }
  .dd__sc { position: static; scale: none; translate: none; width: auto; padding-inline: var(--m); }
  .dd__ol { flex-direction: column; gap: 16px; padding: 0; }
  .ddp { width: auto; height: auto; padding: 28px 24px 30px; gap: 18px; scroll-margin-top: calc(var(--nav-h) + 60px); }
  .ddp__n { font-size: 14px; letter-spacing: .14em; }
  .ddp__t { font-size: 22px; line-height: 28px; letter-spacing: .6px; }
  .ddp__sl { font-size: 12px; line-height: 18px; letter-spacing: .14em; padding-bottom: 8px; }
  .ddp__sl--x { padding-block: 10px 8px; }
  .ddp__s li { font-size: 15px; line-height: 24px; padding: 12px 0; font-weight: 500; }
  .dd__step { position: sticky; top: var(--nav-h); z-index: 20; display: flex; align-items: center; gap: 10px; height: 52px; margin: 0 0 16px; padding: 0 var(--m); background: var(--cream); border-bottom: .5px solid rgba(41,79,58,.3); color: var(--green); }
  .dd__step-n { font-weight: 600; font-size: 13px; letter-spacing: .14em; color: var(--action); white-space: nowrap; }
  .dd__step-t { flex: 1; min-width: 0; font-weight: 700; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .dd__step-d { display: flex; gap: 0; }
  .dd__step-d button { position: relative; width: 44px; height: 48px; border: 0; background: none; padding: 0; cursor: pointer; }
  .dd__step-d button::before { content: ''; position: absolute; left: 50%; top: 50%; width: 9px; height: 9px; margin: -4.5px 0 0 -4.5px; border-radius: 50%; border: 1px solid var(--tan-text); background: transparent; transition: background-color .2s, border-color .2s; }
  .dd__step-d button.is-on::before { background: var(--action); border-color: var(--action); }

  /* Harmonogram — svislá osnova po fázích, mini-osa Říj–Led v každém řádku, lepicí hlavička měsíců */
  .gt { padding: 72px 0 64px; overflow: clip; }
  .gt__w { gap: 28px; }
  .gt__c { --ax: 100%; overflow: visible; }
  .gt__c > * { min-width: 0; }
  .gt__g { display: none; }
  .gt__hd { position: sticky; top: var(--nav-h); z-index: 20; height: auto; flex-direction: column; margin: 0 calc(var(--m) * -1); padding: 8px var(--m) 8px; background: var(--ink); border-bottom: .5px solid rgba(192,175,150,.45); }
  .gt__hl { width: auto; font-size: 11px; line-height: 16px; letter-spacing: .12em; white-space: normal; padding-bottom: 6px; }
  .gt__hd .gt__ax, .gt__mo { width: 100%; height: 18px; }
  .gt__mo span { top: 0; left: calc(100% * var(--k) / 4); font-size: 11px; line-height: 18px; letter-spacing: .12em; }
  .gt__ph { margin-top: 8px; }
  .gt__pn { height: auto; padding: 26px 0 10px; font-size: 13px; line-height: 19px; letter-spacing: .1em; align-items: flex-start; border-top-color: rgba(192,175,150,.6); }
  .gt__pn span { width: auto; }
  .gt__row, .gt__row--t { height: auto; flex-direction: column; padding: 16px 0 12px; }
  .gt__who { width: auto; padding-right: 0; gap: 3px; }
  .gt__act { font-size: 16px; line-height: 22px; }
  .gt__meta { font-size: 13px; line-height: 19px; }
  .gt__row > .gt__ax { flex: none; width: 100%; height: 26px; margin-top: 12px; border-bottom: .5px solid rgba(192,175,150,.35);
    background-image: linear-gradient(90deg, rgba(192,175,150,.38) 0 1px, transparent 1px); background-size: 25% 100%; background-repeat: repeat-x; }
  .gt__row > .gt__ax::after { content: ''; position: absolute; right: 0; top: 0; bottom: 0; width: 1px; background: rgba(192,175,150,.38); }
  .bar, .gt__row--t .bar { top: 5px; left: calc(100% * var(--l) / 900); width: calc(100% * var(--w) / 900); min-width: 12px; height: 16px; border-radius: 8px; font-size: 0; line-height: 0; color: transparent; overflow: hidden; }
  .bar--plan { border-width: 1px; }
  .gt__cap { margin: 8px 0 0; font-size: 12.5px; line-height: 18px; color: var(--tan); }
  .gt__lgd { flex-wrap: wrap; gap: 10px 24px; font-size: 14px; }
  .lgd { width: 34px; height: 14px; }

  /* KPI */
  .kpi { padding: 72px 0 40px; }
  .kpi .wrap { gap: 28px; }
  .kpi__tag { font-size: 13px; line-height: 20px; padding: 8px 14px; }
  .kpi__l { flex-direction: column; gap: 12px; }
  .kp { padding: 24px 22px 24px; gap: 6px; }
  .kp__n { font-size: 40px; line-height: 46px; }
  .kp__l { min-height: 0; font-size: 15px; line-height: 22px; }
  .kp__d { font-size: 14.5px; line-height: 22px; }

  /* Grafy */
  .chs { padding: 24px 0 72px; }
  .chs__g { grid-template-columns: 1fr; gap: 16px; }
  .chart { min-height: 0; padding: 28px 20px 24px; gap: 14px; }
  .chart__cap { gap: 10px; }
  .chart__t { font-size: 20px; line-height: 27px; }
  .chart__d { font-size: 14px; line-height: 21px; }
  .chart__lg { flex-wrap: wrap; gap: 8px 18px; font-size: 13.5px; }
  .chart__svg { aspect-ratio: auto; }
  .chart__svg svg { height: auto; }
  .chart__svg text { font-size: 12px; }
  .chart__svg .c-sub { font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase; fill: var(--tan); font-weight: 600; }
  .chart__note { margin: 4px 0 0; font-weight: 700; font-size: 15px; line-height: 23px; color: var(--cream); }
  .chart__tip { font-size: 12.5px; line-height: 17px; padding: 7px 10px; }
  .chart { -webkit-tap-highlight-color: transparent; }

  /* Cenový model */
  .prc { padding: 72px 0; }
  .prc .wrap { gap: 32px; }
  .prc__g { grid-template-columns: 1fr; gap: 14px; }
  .pl { padding: 28px 24px 30px; gap: 18px; }
  .pl__h { min-height: 0; }
  .pl__t { font-size: 20px; line-height: 26px; letter-spacing: .6px; }
  .pl__s { font-size: 15px; line-height: 22px; }
  .pl__p { padding: 20px 0; }
  .pl__pr { font-size: 40px; line-height: 48px; }
  .pl__u { font-size: 15px; line-height: 22px; }
  .pl__l li { font-size: 15px; line-height: 24px; padding: 10px 0; }
  .pl__l li + li { padding-top: 10.5px; }
  .pl__l li i { height: 15px; width: 8px; } .pl__l li i::before { top: 8px; }
  .prc__n { font-size: 14px; line-height: 22px; }

  /* Výzva */
  .jc { height: auto; }
  .jc .frame { height: auto; }
  .jc__c { padding: 72px var(--m) 80px; }
  .jc__c .t-h2 { width: auto; }
  .jc__p { width: auto; margin-top: 22px; font-size: 16px; line-height: 26px; }
  .jc__p br { display: none; }
  .jc__b { flex-direction: column; align-items: stretch; gap: 12px; margin-top: 28px; }
  .jc__b1, .jc__b2 { min-height: 52px; font-size: 15px; line-height: 22px; width: 100%; }
  .jc__b1:active { filter: brightness(1.12); }
  .jc__b2:active { background: rgba(49,145,91,.2); }
}
