/* Patička je na všech stránkách stejná: logo s popisem společnosti, navigace
   a kontakty, pod nimi právní linka. */
.site-footer {
  padding-top: 50px;
  padding-bottom: 25px;
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr;
  gap: 40px 56px;
  background: var(--deep);
  color: var(--muted-on-dark);
  font-size: 14px;
  line-height: 1.8;
}
.site-footer .brand {
  color: var(--paper);
}
.footer-brand p {
  margin: 20px 0 0;
  max-width: 46ch;
}
.footer-col {
  display: grid;
  gap: 6px;
  align-content: start;
}
.footer-head {
  margin-bottom: 8px;
  color: var(--paper);
  font-weight: 600;
}
.site-footer address {
  font-style: normal;
}
.footer-legal {
  grid-column: 1/-1;
  border-top: 1px solid #ffffff25;
  padding-top: 23px;
  display: flex;
  gap: 25px;
  flex-wrap: wrap;
  font-size: 13px;
}
.footer-legal span {
  margin-right: auto;
}
.inner-page .cm-container {
  width: 86%;
  margin: auto;
}
.inner-page .cm-section {
  padding: 80px 0;
}
.inner-page .cm-section--surface {
  background: #e9eee6;
}
.inner-page .cm-section--dark {
  background: var(--green);
  color: var(--paper);
}
.inner-page .cm-hero {
  background: var(--green);
  color: var(--paper);
  padding: var(--hero-pt) 0 var(--hero-pb);
}
/* Text v hero sedí na svislici loga v hlavičce (jako homepage), ne na 7 % obsahu.
   Úzké kontejnery právních stránek zůstávají centrované. */
.inner-page .cm-hero > .cm-container {
  width: auto;
  padding-left: var(--hero-px);
  padding-right: var(--hero-px);
}
.inner-page .cm-hero > .cm-container.cm-container--narrow {
  width: 86%;
  padding-left: 0;
  padding-right: 0;
}
.inner-page .cm-hero__title {
  width: auto;
  max-width: 1000px;
  font-size: var(--type-hero);
  line-height: var(--leading-heading);
  margin: 20px 0 25px;
}
.inner-page .cm-hero__sub {
  font-size: var(--type-lead);
  line-height: var(--leading-lead);
  max-width: 750px;
  color: var(--muted-on-dark);
}
.inner-page .cm-hero__sub + .cm-hero__sub {
  margin-top: 16px;
}
.inner-page .cm-hero__pill {
  color: var(--gold);
  font-size: var(--type-label);
}
.inner-page .cm-h2 {
  font-size: var(--type-section);
  max-width: 900px;
}
/* Stejná úroveň má stejný řez bez ohledu na stránku. Specifické komponenty
   (právní mezititulky, modal, čísla a tabulky) mají vlastní úroveň níže. */
.eyebrow,
.cm-eyebrow,
.section-label {
  font-size: var(--type-label);
}
.button,
.text-link,
.inner-page .cm-btn,
.cm-btn--primary,
.cfgre-morelink,
.cm-linkcard__more,
.cm-form-submit {
  font-size: var(--type-cta);
  font-weight: var(--weight-cta);
}
.principles h3,
.service h3,
.situations-grid h3,
.process-steps h3,
.cm-why h3,
.cm-linkcard h3,
.cfgre-story h3 {
  font-size: var(--type-card-title);
  font-weight: var(--weight-card-title);
  line-height: 1.3;
  letter-spacing: -0.02em;
}
.principles p,
.service p,
.situations-grid p,
.process-steps p,
.cm-why p,
.cm-linkcard p,
.cfgre-story p {
  font-size: var(--type-body);
  line-height: var(--leading-body);
}
/* Zvýrazněná část titulku (<em>) je zlatá. Světlá --gold drží kontrast jen na
   tmavém podkladu, na papíru má ~1,6 : 1 – světlé sekce proto berou tmavší
   odstín #8b7950 (stejný jako .about a .projects na homepage). */
.offer-section h2 em,
.sale-situations h2 em,
.inner-page .cm-section h2 em {
  color: var(--gold-heading-on-light);
}
/* Tmavé sekce (průběh investice, kroky prodeje) zůstávají u světlé zlaté. */
.inner-page .cm-section.sale-process h2 em {
  color: var(--gold);
}
/* Světle zelený (sage) podklad nese titulek jednou tmavou barvou – akcent se
   tady o pozadí opírá slabě a nadpis pak působí rozdrobeně. */
.services h2 em,
.sale-map h2 em,
.inner-page .cm-section--surface h2 em {
  color: inherit;
}
/* Závěrečný kontaktní blok nad patičkou je celý bílý – stejně jako patička
   samotná nenese akcent, aby konec stránky zklidnil. */
.inner-page .cm-section--dark h2 em,
.sale-contact h2 em {
  color: inherit;
}
.inner-page .cm-lead {
  font-size: var(--type-body-lg);
  line-height: var(--leading-body);
  max-width: 800px;
}
.inner-page p {
  line-height: var(--leading-body);
}
.inner-page svg {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  vertical-align: middle;
}
.inner-page svg:has(symbol) {
  display: none;
}
.inner-page .cm-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
  background: var(--gold);
  color: var(--ink);
  border: 0;
  padding: 15px 22px;
  min-height: 50px;
  font-size: var(--type-cta);
  font-weight: var(--weight-cta);
  cursor: pointer;
}
.inner-page .cm-btn:hover {
  background: #e7d3a0;
}
.inner-page .cm-btn--block {
  width: 100%;
}
.inner-page .cm-eyebrow {
  margin-bottom: 20px;
}
.inner-page .cm-section--dark .cm-eyebrow {
  color: var(--gold);
}
.inner-page .cm-section--dark .cm-lead,
.inner-page .cm-section--dark .cfgre-micro {
  color: var(--muted-on-dark);
}
.inner-page .cfgre-micro,
.inner-page .cfgre-charts__note,
.inner-page .cfgre-emtable__note {
  font-size: var(--type-label);
  color: var(--muted);
  line-height: 1.8;
  margin-top: 25px;
}
.inner-page .cm-prose {
  max-width: 850px;
  margin: auto;
}
.inner-page .cm-prose h2 {
  font-size: var(--type-prose-title);
  margin: 35px 0 15px;
}
.inner-page .cm-prose p {
  font-size: var(--type-body-lg);
}
.inner-page .cm-prose a {
  text-decoration: underline;
}
.inner-page .cm-container--narrow {
  max-width: 900px;
}
/* Jednoduché systémové stránky (potvrzení formuláře a 404). */
.cfgre-state {
  display: grid;
  min-height: min(680px, 70vh);
  place-items: center;
  text-align: center;
}
.cfgre-state .cm-hero__pill {
  justify-content: center;
}
.cfgre-state .cm-hero__sub {
  max-width: 650px;
  margin-right: auto;
  margin-left: auto;
}
.cfgre-state__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;
  margin-top: 34px;
}
.cm-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7%;
  align-items: center;
}
.cm-split__media {
  margin: 0;
}
.cm-split__media img {
  display: block;
  width: 100%;
  height: 480px;
  object-fit: cover;
}
.cm-split--reverse .cm-split__media {
  order: 2;
}
.cfgre-keyfigs {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px;
  margin: 42px 0;
}
.cm-stat__num {
  display: block;
  font-size: 46px;
  letter-spacing: -2px;
  font-weight: 500;
  margin-bottom: 10px;
}
.cm-stat__num em {
  color: var(--gold-on-light);
}
.cm-stat__label {
  display: block;
  font-size: 14px;
  color: var(--muted);
  line-height: 1.6;
}
.cm-quote {
  margin: 0;
  max-width: 1050px;
}
.cm-quote__mark {
  display: none;
}
.cm-quote__text {
  font-size: clamp(25px, 2.6vw, 38px);
  line-height: 1.5;
  margin: 0;
  letter-spacing: -0.8px;
}
.cm-quote__accent {
  color: var(--gold-on-light);
}
.cm-quote__by {
  display: grid;
  gap: 7px;
  border-top: 1px solid #c8d4c1;
  padding-top: 25px;
}
.cm-quote__name {
  font-size: 18px;
}
.cm-quote__role {
  font-size: 14px;
  color: var(--muted);
}
.cm-why {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 50px 5%;
  margin-top: 40px;
}
/* Čtyři body vedle sebe ve třech sloupcích by nechaly poslední kartu samotnou,
   takže varianta 2×2. */
.cm-why--2col {
  grid-template-columns: 1fr 1fr;
}
/* Linka nad kartou, stejně jako .cm-linkcard, .cm-deptcard nebo .service –
   na webu je vždy nahoře jako hlavička bloku, ne pod textem. */
.cm-why__item {
  border-top: 1px solid #c5d2bf;
  padding-top: 22px;
}
/* Ikony karet = stejný .item-icon vzor (Lucide, dokreslení tahů) jako homepage
   a prodej-nemovitosti; main.js grid .cm-why sleduje. */
.inner-page .item-icon svg {
  width: 22px;
  height: 22px;
}
.cm-why__item:nth-child(2) {
  --card-delay: 0.08s;
}
.cm-why__item:nth-child(3) {
  --card-delay: 0.16s;
}
.cm-why__item:nth-child(4) {
  --card-delay: 0.24s;
}
.cm-why__item:nth-child(5) {
  --card-delay: 0.32s;
}
.cm-why__item:nth-child(6) {
  --card-delay: 0.4s;
}
.cm-why h3 {
  font-size: var(--type-card-title);
  font-weight: var(--weight-card-title);
  line-height: 1.3;
  letter-spacing: -0.5px;
  margin: 22px 0 10px;
}
.cm-why p {
  font-size: 16px;
  line-height: 1.7;
  color: var(--muted);
  margin: 0;
}
/* Milníky (o-spolecnosti): svislá osa uprostřed, rok a text střídavě po stranách.
   Šedá páteř je pevná, zlatá přes ni roste podle scrollu (main.js nastavuje
   --story-progress); položky se při najetí do záběru jen jemně vynoří
   (main.js přidá ol[data-reveal] a li.is-visible). Bez JS / s reduced-motion
   je vše rovnou vidět a osa celá zlatá. */
.cfgre-story-section .cm-container {
  text-align: center;
}
.cfgre-story-section .cm-h2,
.cfgre-story-section .cm-lead {
  margin-left: auto;
  margin-right: auto;
}
.cfgre-story {
  --story-progress: 1;
  --spine: #c3d0bb;
  --spine-on: var(--gold-graphic-on-light);
  list-style: none;
  padding: 0;
  margin: 40px auto 0;
  max-width: 1100px;
  position: relative;
  text-align: left;
}
.cfgre-story::before,
.cfgre-story::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  bottom: 0;
  width: 1px;
  margin-left: -0.5px;
  background: var(--spine);
}
.cfgre-story::after {
  background: var(--spine-on);
  transform-origin: top;
  transform: scaleY(var(--story-progress));
}
.cfgre-story li {
  display: grid;
  grid-template-columns: 1fr 120px 1fr;
  align-items: center;
  padding: 42px 0;
}
.cfgre-story__year {
  grid-column: 1;
  grid-row: 1;
  justify-self: end;
  font-size: clamp(44px, 4.4vw, 64px);
  line-height: 1;
  font-weight: 450;
  letter-spacing: -2.5px;
  color: var(--gold-on-light);
  font-variant-numeric: tabular-nums;
  transition: opacity 0.8s ease, transform 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.cfgre-story__node {
  grid-column: 2;
  grid-row: 1;
  justify-self: center;
  position: relative;
  z-index: 1;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--spine-on);
  box-shadow: 0 0 0 6px #e9eee6;
  transition: background 0.5s ease;
}
.cfgre-story__body {
  grid-column: 3;
  grid-row: 1;
  max-width: 400px;
  transition: opacity 0.8s ease 0.1s, transform 0.8s cubic-bezier(0.2, 0.8, 0.2, 1) 0.1s;
}
.cfgre-story li:nth-child(even) .cfgre-story__year {
  grid-column: 3;
  justify-self: start;
}
.cfgre-story li:nth-child(even) .cfgre-story__body {
  grid-column: 1;
  justify-self: end;
  text-align: right;
}
.cfgre-story h3 {
  font-size: var(--type-card-title);
  font-weight: var(--weight-card-title);
  line-height: 1.3;
  letter-spacing: -0.5px;
  margin: 0 0 12px;
}
.cfgre-story p {
  font-size: 16px;
  line-height: 1.75;
  color: var(--muted);
  margin: 0;
}
/* Stav před najetím do záběru (jen s JS a bez reduced-motion). */
.cfgre-story[data-reveal] > li:not(.is-visible) .cfgre-story__node {
  background: var(--spine);
}
.cfgre-story[data-reveal] > li:not(.is-visible) .cfgre-story__year,
.cfgre-story[data-reveal] > li:not(.is-visible) .cfgre-story__body {
  opacity: 0;
  transform: translateY(14px);
}
/* Historie splácení (o-spolecnosti): vlevo tvrzení + čísla + CTA, vpravo tmavá karta
   s aktuálními emisemi (řádky jsou odkazy na /pro-investory/#emise). Řádky se při
   najetí do záběru postupně vynoří (main.js přidá ol[data-reveal] + li.is-visible). */
.cfgre-record {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 8%;
  align-items: start;
}
.cfgre-record__figs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px 30px;
  margin: 42px 0 40px;
}
.cfgre-record__figs > div {
  border-top: 1px solid #c5d2bf;
  padding-top: 18px;
}
.cfgre-record__figs .cm-stat__num {
  font-size: 42px;
}
.cfgre-record__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px 32px;
}
.cfgre-ledger {
  background: var(--green);
  color: var(--paper);
  padding: 38px 40px 30px;
}
.cfgre-ledger__head {
  padding-bottom: 24px;
  border-bottom: 1px solid #ffffff30;
}
.cfgre-ledger__title {
  display: block;
  font-size: 14px;
  color: var(--subtle-on-dark);
  margin-bottom: 12px;
}
.cfgre-ledger__big {
  display: block;
  font-size: 46px;
  line-height: 1;
  font-weight: 450;
  letter-spacing: -2px;
  color: var(--gold);
  font-variant-numeric: tabular-nums;
}
.cfgre-ledger__big small {
  font-size: 16px;
  letter-spacing: 0;
  color: var(--paper);
  margin-left: 10px;
}
.cfgre-ledger__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.cfgre-ledger__list li {
  border-bottom: 1px solid #ffffff1c;
  transition: opacity 0.5s ease, transform 0.5s cubic-bezier(0.2, 0.8, 0.2, 1);
  transition-delay: var(--row-delay, 0s);
}
.cfgre-ledger__list li:nth-child(2) { --row-delay: 0.07s; }
.cfgre-ledger__list li:nth-child(3) { --row-delay: 0.14s; }
.cfgre-ledger__list li:nth-child(4) { --row-delay: 0.21s; }
.cfgre-ledger__row {
  display: grid;
  grid-template-columns: 1fr auto auto 20px;
  gap: 18px;
  align-items: center;
  padding: 16px 0;
  font-size: 15px;
}
.cfgre-ledger__name {
  font-weight: 500;
}
.cfgre-ledger__yield {
  color: var(--gold);
  font-variant-numeric: tabular-nums;
}
.cfgre-ledger__yield small {
  font-size: 12px;
  color: var(--subtle-on-dark);
}
.cfgre-ledger__date {
  font-size: 14px;
  color: var(--subtle-on-dark);
  white-space: nowrap;
}
.cfgre-ledger__arrow {
  font-size: 20px;
  line-height: 1;
  color: var(--subtle-on-dark);
  justify-self: end;
  transition: transform 0.25s cubic-bezier(0.2, 0.8, 0.2, 1), color 0.25s;
}
.cfgre-ledger__row:hover .cfgre-ledger__name {
  text-decoration: underline;
  text-decoration-color: var(--gold);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.28em;
}
.cfgre-ledger__row:hover .cfgre-ledger__arrow {
  color: var(--gold);
  transform: translate(3px, -3px);
}
.cfgre-ledger__list[data-reveal] > li:not(.is-visible) {
  opacity: 0;
  transform: translateY(10px);
  transition: none;
}
.cfgre-ledger__foot {
  margin: 22px 0 0;
  font-size: 13px;
  line-height: 1.7;
  color: var(--subtle-on-dark);
}
/* Zázemí skupiny CFG (o-spolecnosti): text vlevo, čísla skupiny (zdroj cfg.cz) vpravo 2x2. */
.cfgre-group {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 8%;
  align-items: start;
}
.cfgre-group .cm-lead {
  color: var(--muted-on-dark);
}
.cfgre-group .cfgre-morelink {
  margin-top: 12px;
}
.cfgre-facts {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px 30px;
  margin: 8px 0 0;
}
.cfgre-facts > div {
  border-top: 1px solid #ffffff30;
  padding-top: 20px;
  display: grid;
  gap: 10px;
}
.cfgre-facts dt {
  font-size: 14px;
  line-height: 1.5;
  color: var(--subtle-on-dark);
}
.cfgre-facts dd {
  order: -1;
  margin: 0;
  font-size: clamp(36px, 3.2vw, 48px);
  line-height: 1.05;
  font-weight: 450;
  letter-spacing: -2px;
  color: var(--gold);
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.cfgre-facts dd small {
  font-size: 19px;
  letter-spacing: -0.2px;
}
/* Varianta na světlém podkladu: odstíny z tmavé sekce (--gold, #b4c7b9,
   #ffffff30) tu mají kontrast jen ~1,5–2 : 1, takže čísla jdou do barvy textu
   jako ostatní statistiky na světlém, akcent do tmavé zlaté (5 : 1)
   a popisky na 7,8 : 1. */
.cfgre-group--light .cm-eyebrow,
.cfgre-group--light .cm-h2 em {
  color: var(--gold-on-light);
}
/* Jednotka dědí barvu čísla, ať je údaj (540+ mil. Kč) jednolitý. */
.cfgre-group--light .cfgre-facts dd {
  color: var(--ink);
}
.cfgre-group--light .cm-lead,
.cfgre-group--light .cfgre-facts dt {
  color: #445049;
}
.cfgre-group--light .cfgre-facts > div {
  border-top-color: #c5d2bf;
}
.cm-section--dark .cfgre-morelink {
  border-bottom-color: #ffffff40;
}
/* Řádek CTA: plné tlačítko + textový odkaz jako na ostatních stránkách
   (.hero-actions na homepage) – proto zarovnání na střed a stejná vodorovná
   mezera 26 px, aby podtržení odkazu sedělo na účaří tlačítka. */
.cfgre-ctarow {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px 26px;
  margin-top: 35px;
}
.inner-page .cm-btn--ghost {
  background: transparent;
  color: var(--paper);
  border: 1px solid #ffffff55;
}
.inner-page .cm-btn--ghost:hover {
  background: #ffffff14;
}
/* Trojice rozcestníků (o-spolecnosti „Kam dál"): linka nahoře, index jako
   u .service na homepage, odkaz na spodní hraně karty i při různě vysokém
   nadpisu. */
.cm-cards3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 5%;
  margin-top: 35px;
}
.cm-linkcard {
  border-top: 1px solid #c5d2bf;
  padding-top: 22px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.cm-linkcard__index {
  font-size: 12px;
  letter-spacing: 1px;
  color: var(--muted);
  margin-bottom: 14px;
}
.cm-linkcard h3 {
  font-size: var(--type-card-title);
  font-weight: var(--weight-card-title);
  line-height: 1.3;
  letter-spacing: -0.5px;
}
.cm-linkcard p {
  color: var(--muted);
}
.cm-linkcard__more {
  margin-top: auto;
}
.cm-linkcard__more,
.cfgre-morelink {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  border-bottom: 1px solid #abbb9e;
  padding: 10px 0;
  font-size: var(--type-cta);
  font-weight: var(--weight-cta);
}
/* Kontakt – dvě linky v hero. Karty přebírají vzor homepage (.principles):
   linka nahoře, .item-icon s Lucide ikonou + index vpravo. Na tmavém podkladu
   se jen přebarví kroužek a index; dokreslení ikon řeší main.js (.cm-contactgrid). */
.cm-contactgrid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8%;
  margin-top: 55px;
}
.cm-deptcard {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  border-top: 1px solid #ffffff40;
  padding-top: 24px;
}
.cm-deptcard .item-head {
  width: 100%;
}
.cm-deptcard .item-icon {
  border-color: #ffffff4d;
  color: var(--gold);
}
.cm-deptcard .item-number {
  color: var(--gold);
  font-size: 12px;
  letter-spacing: 1px;
}
.cm-deptcard h3 {
  font-size: 26px;
  font-weight: 500;
  letter-spacing: -0.5px;
  margin: 22px 0 10px;
}
.cm-deptcard__note {
  color: var(--subtle-on-dark);
  font-size: 15px;
  max-width: 420px;
  margin: 0 0 28px;
}
/* Telefon a e-mail vedle sebe stejně jako .direct-contact__row v závěrečném
   kontaktu na prodej-nemovitosti / nabidka-nemovitosti (styly jsou v sale.css).
   Tady bez ikon v kroužku – karta už jednu má v hlavičce a čtyři kroužky na
   sekci byly nečitelné. V kartě je sloupec užší, tak menší mezera, menší
   telefon a linka pod dvojicí místo nad tlačítky. */
.cm-deptcard .direct-contact__row {
  --dc-gap: 24px;
  width: 100%;
  padding-bottom: 26px;
  margin-bottom: 26px;
}
.cm-deptcard .direct-contact__row .direct-contact__value {
  font-size: 20px;
}
.cm-deptcard .button {
  margin-top: auto;
  min-width: 250px;
}
/* Místo velkých CTA jen textové odkazy – hlavní akcí stránky je samotný
   kontakt. Na desktopu vedle sebe pod dvojicí kontaktů. */
.cm-deptcard__links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 32px;
  margin-top: auto;
}
.cm-deptcard .outline {
  border-color: #ffffff55;
  color: var(--paper);
}
.cm-deptcard .outline:hover {
  background: #ffffff14;
}
.cm-infogrid {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 10%;
}
/* Kontakt: fakturační údaje a provozní doba ve dvou stejných sloupcích. */
.page-kontakt .cm-infogrid {
  grid-template-columns: 1fr 1fr;
  gap: 50px 8%;
}
/* Dvojice fotek (budova + kanceláře) pod fakturačními a provozními údaji
   v kontaktu – dva stejné sloupce jako .page-kontakt .cm-infogrid. */
.cm-photos {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8%;
  margin-top: 45px;
}
.cm-photo {
  position: relative;
  margin: 0;
  min-width: 0;
  overflow: hidden;
}
.cm-photo img {
  display: block;
  width: 100%;
  height: 340px;
  object-fit: cover;
}
.cm-photo figcaption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 30px 20px 14px;
  background: linear-gradient(to top, #102e26c4, #102e2600);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--paper);
}
.cm-infobox__title {
  font-size: 28px;
  font-weight: 500;
  margin: 0 0 25px;
}
.cm-deflist {
  margin: 0;
}
.cm-deflist > div {
  display: grid;
  grid-template-columns: 130px 1fr;
  gap: 15px;
  padding: 15px 0;
  border-top: 1px solid #c3d0bb;
  line-height: 1.65;
}
.cm-deflist dt {
  color: var(--muted);
}
.cm-deflist dd {
  margin: 0;
}
.cm-hours {
  width: 100%;
  border-collapse: collapse;
}
.cm-hours th,
.cm-hours td {
  padding: 16px 0;
  text-align: left;
  border-top: 1px solid #c3d0bb;
  font-weight: 400;
}
.cm-steps__note {
  color: var(--muted);
}
.cm-map {
  margin-top: 45px;
}
.cm-map iframe {
  width: 100%;
  border: 0;
  height: 400px;
}
.cfgre-phero {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 8%;
  align-items: center;
}
.cfgre-h1-lead {
  color: var(--gold);
}
.cm-hero__microtrust {
  list-style: none;
  display: grid;
  gap: 16px;
  padding: 0;
  margin: 30px 0 0;
  font-size: 14px;
}
.cm-hero__microtrust svg {
  color: var(--gold);
  margin-right: 8px;
}
.cm-calc-card {
  padding: 32px;
  background: var(--paper);
  color: var(--ink);
}
.cm-calc-card__title {
  font-size: var(--type-subheading);
  font-weight: var(--weight-card-title);
  margin: 0 0 25px;
}
.cm-amount {
  display: flex;
  align-items: center;
  position: relative;
}
.cm-amount input {
  padding-right: 45px !important;
  font-size: 24px !important;
}
.cm-amount__suf {
  position: absolute;
  right: 15px;
}
.cm-calc-card input[type="range"] {
  padding: 0;
  border: 0;
  width: 100%;
  accent-color: var(--green);
  margin-top: 15px;
}
.cfgre-calc__row {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: center;
  padding: 15px 0;
  border-top: 1px solid #c9d4c1;
  font-size: 14px;
}
.cfgre-calc__row strong {
  font-size: 21px;
  white-space: nowrap;
}
.cfgre-calc__row--total {
  margin-bottom: 18px;
}
.cm-calc__disclaimer {
  font-size: 13px;
  color: var(--muted);
}
.cfgre-charts {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6%;
  margin-top: 60px;
}
.cfgre-chart {
  min-width: 0;
}
.cfgre-chart__title {
  font-size: var(--type-card-title);
  font-weight: var(--weight-card-title);
  margin-bottom: 0;
}
.cfgre-chart__sub {
  font-size: 14px;
  color: var(--muted);
  margin-top: 5px;
}
.cfgre-bars {
  display: flex;
  gap: 10px;
  height: 240px;
  padding-top: 45px;
}
.cfgre-bars__col {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  position: relative;
}
.cfgre-bars__bar {
  display: block;
  height: var(--h);
  background: var(--green);
  min-height: 1px;
}
.cfgre-bars--warm .cfgre-bars__bar {
  background: var(--gold-graphic-on-light);
}
.cfgre-bars__val {
  font-size: 12px;
  white-space: nowrap;
  text-align: center;
  margin-bottom: 7px;
}
.cfgre-bars__val em {
  display: none;
}
.cfgre-bars__x {
  display: grid;
  grid-template-columns: repeat(10, 1fr);
  gap: 10px;
  font-size: 12px;
  margin-top: 10px;
  text-align: center;
}
.cfgre-chart__legend {
  font-size: 13px;
  color: var(--muted);
  margin-top: 20px;
  display: flex;
  justify-content: space-between;
  gap: 20px;
}
/* Aktivní emise: každá samostatná karta na dva řádky.
   1. řádek = název + štítky vlevo, CTA vpravo; 2. řádek = parametry vlevo, dokumenty vpravo. */
.cfgre-emlist {
  display: grid;
  gap: 16px;
  margin-top: 35px;
}
.cfgre-emcard {
  background: #e9eee6;
  border: 1px solid #d3ddcc;
  padding: 22px 28px;
}
.cfgre-emcard__top,
.cfgre-emcard__bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px 32px;
}
.cfgre-emcard__bottom {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid #cfdac7;
}
.cfgre-emcard__head {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 16px;
  min-width: 0;
}
.cfgre-emcard__name {
  font-size: var(--type-subheading);
  font-weight: var(--weight-card-title);
  margin: 0;
  white-space: nowrap;
}
.cfgre-emcard__badges {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.cfgre-badge {
  font-size: 12px;
  padding: 6px 10px;
  background: #d9e3cf;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.cfgre-badge svg {
  width: 15px;
  height: 15px;
}
.cfgre-badge--hot {
  background: var(--gold);
}
.inner-page .cfgre-emcard__cta {
  flex-shrink: 0;
  min-height: 44px;
  padding: 12px 20px;
  gap: 10px;
}
.cfgre-emcard__rows {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 32px;
  margin: 0;
}
.cfgre-emcard__rows > div {
  display: flex;
  align-items: baseline;
  gap: 8px;
}
.cfgre-emcard__rows dt {
  font-size: 13px;
  color: var(--muted);
  white-space: nowrap;
}
.cfgre-emcard__rows dd {
  font-size: 16px;
  font-weight: 600;
  margin: 0;
  white-space: nowrap;
}
.cfgre-emcard__rows > div:first-child dd {
  font-size: 22px;
  color: var(--gold-on-light);
}
.cfgre-emcard__docs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 20px;
  flex-shrink: 0;
}
.cfgre-emcard__doclink {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: var(--gold-on-light);
  white-space: nowrap;
  border-bottom: 1px solid transparent;
  transition: border-color 0.25s;
}
.cfgre-emcard__doclink:hover {
  border-bottom-color: var(--gold-on-light);
}
.cfgre-emcard__doclink svg {
  width: 15px;
  height: 15px;
}
.cfgre-emlist__note {
  margin: 14px 0 0;
  font-size: 13px;
  color: var(--muted);
}
.inner-page summary {
  cursor: pointer;
}
.cfgre-emcard__docbtn {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 0;
  border-top: 1px solid #c3d1b9;
  font-size: 15px;
}
.cfgre-emcard__chev {
  margin-left: auto;
}
.cfgre-emcard__docbtn-count {
  color: var(--muted);
  margin-left: 8px;
}
.cfgre-docrow {
  display: flex;
  gap: 12px;
  align-items: center;
  border-top: 1px solid #c4d1bb;
  padding: 13px 0;
  font-size: 14px;
}
.cfgre-docrow__title {
  flex: 1;
}
.cfgre-docrow__dl {
  white-space: nowrap;
  font-size: 13px;
  color: var(--gold-on-light);
}
.cfgre-emtable {
  margin-top: 0;
}
.cfgre-closed__title {
  font-size: 32px;
  font-weight: 500;
}
/* Přehled emisí pod FAQ: zavřená hlavička působí jako samostatný řádek sekce,
   po otevření se pod ní objeví pouze tabulka emisí CFG Real Estate. */
.cfgre-emissions__expand {
  border-top: 1px solid #bdcbb5;
  border-bottom: 1px solid #bdcbb5;
}
.cfgre-emissions__expand > summary {
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  padding: 30px 0;
  cursor: pointer;
}
.cfgre-emissions__expand > summary::-webkit-details-marker {
  display: none;
}
.cfgre-emissions__expand > summary strong {
  display: block;
  margin-top: 8px;
  font-size: clamp(27px, 2.6vw, 38px);
  line-height: 1.15;
  font-weight: 500;
}
.cfgre-emissions__toggle {
  position: relative;
  flex: none;
  width: 44px;
  height: 44px;
  border: 1px solid var(--line-control);
  border-radius: 50%;
}
.cfgre-emissions__toggle::before,
.cfgre-emissions__toggle::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 16px;
  height: 1px;
  background: var(--green);
  transform: translate(-50%, -50%);
  transition: transform 0.25s;
}
.cfgre-emissions__toggle::after {
  transform: translate(-50%, -50%) rotate(90deg);
}
.cfgre-emissions__expand[open] .cfgre-emissions__toggle::after {
  transform: translate(-50%, -50%);
}
.cfgre-emissions__expand > .cfgre-emtable {
  padding-bottom: 34px;
}
.cfgre-emissions__expand .cfgre-micro {
  margin-bottom: 0;
}
/* Filtr nad tabulkou: dvě skupiny čipů (stav, emitent), aktivní = plná zelená. */
.cfgre-emtable__filter {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 28px;
  margin-top: 28px;
}
.cfgre-emtable__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.cfgre-chip {
  font: inherit;
  font-size: 13px;
  font-weight: 500;
  line-height: 1;
  padding: 9px 12px;
  border: 1px solid var(--line-control);
  background: #fff;
  color: var(--ink);
  cursor: pointer;
  transition:
    background 0.2s,
    border-color 0.2s,
    color 0.2s;
}
.cfgre-chip span {
  color: var(--muted);
  font-weight: 400;
  margin-left: 4px;
}
.cfgre-chip:hover {
  border-color: var(--green);
}
.cfgre-chip[aria-pressed="true"] {
  background: var(--green);
  border-color: var(--green);
  color: var(--paper);
}
.cfgre-chip[aria-pressed="true"] span {
  color: var(--subtle-on-dark);
}
.cfgre-chip:focus-visible {
  outline: 2px solid var(--gold-on-light);
  outline-offset: 2px;
}
.cfgre-emtable__scroll {
  overflow: auto;
  margin-top: 22px;
  border: 1px solid #d3ddcc;
  background: #fff;
}
.cfgre-emtable table {
  border-collapse: collapse;
  width: 100%;
  font-size: 14px;
  min-width: 840px;
  text-align: left;
}
.cfgre-emtable thead th {
  background: var(--green);
  color: var(--paper);
  padding: 14px 16px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  white-space: nowrap;
}
.cfgre-emtable__sub {
  color: var(--subtle-on-dark);
  font-weight: 500;
}
.cfgre-emtable__sub::before {
  content: "/ ";
}
.cfgre-emtable td,
.cfgre-emtable tbody th {
  padding: 14px 16px;
  vertical-align: top;
  border-bottom: 1px solid #e3eadf;
}
/* Zebra: liché řádky bílé, sudé šedé; první sloupec drží pozadí řádku i při
   vodorovném scrollu (sticky). */
.cfgre-emtable tbody tr:nth-child(even of :not([hidden])) {
  background: #f3f5f0;
}
.cfgre-emtable tbody th {
  position: sticky;
  left: 0;
  z-index: 1;
  background: inherit;
  font-weight: 600;
  color: var(--green);
  min-width: 240px;
  box-shadow: 1px 0 0 #e3eadf;
}
.cfgre-emtable tbody tr:nth-child(odd of :not([hidden])) th {
  background: #fff;
}
.cfgre-emtable tbody tr:nth-child(even of :not([hidden])) th {
  background: #f3f5f0;
}
.cfgre-emtable__name {
  display: block;
  font-size: 15px;
  line-height: 1.3;
}
.cfgre-emtable__isin {
  display: block;
  margin-top: 4px;
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0.04em;
  font-variant-numeric: tabular-nums;
  color: var(--muted);
}
.cfgre-emtable__num {
  font-weight: 600;
  font-size: 15px;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.cfgre-emtable__num--txt {
  font-weight: 500;
  font-size: 13px;
  white-space: normal;
  max-width: 150px;
}
.cfgre-emtable__date {
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.cfgre-emtable__st {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 500;
  white-space: nowrap;
}
.cfgre-emtable__st::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: currentColor;
  flex-shrink: 0;
}
.cfgre-emtable__st--live {
  color: #2d7a4f;
}
.cfgre-emtable__st--sold {
  color: var(--gold-on-light);
}
.cfgre-emtable__st--done {
  color: var(--muted);
}
.cfgre-emtable__doccell {
  min-width: 190px;
}
/* Dokumenty přímo v buňce (většinou 1 až 2 odkazy), pod sebou. */
.cfgre-emtable__doc {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 13px;
  font-weight: 500;
  color: var(--gold-on-light);
  white-space: nowrap;
  line-height: 1.4;
}
.cfgre-emtable__doc + .cfgre-emtable__doc {
  margin-top: 6px;
}
.cfgre-emtable__doc svg {
  width: 15px;
  height: 15px;
  flex-shrink: 0;
}
.cfgre-emtable__doc span {
  border-bottom: 1px solid transparent;
  transition: border-color 0.25s;
}
.cfgre-emtable__doc:hover span {
  border-bottom-color: var(--gold-on-light);
}
.cfgre-emtable__nodoc {
  font-size: 13px;
  color: var(--muted);
}
.cfgre-emtable__empty td {
  padding: 28px 16px;
  text-align: center;
  color: var(--muted);
}
/* Na mobilu se přehled emisí nedá posouvat do strany (šest sloupců se do 390 px
   nevejde), takže se z každého řádku stane karta: název s ISIN, pod ním data
   ve dvou sloupcích s popiskem, stav a dokumenty. Stejný princip jako
   u tabulky na /seznam-firem-ve-skupine-cfg/. Hranice je 900 px, protože tabulka
   má min-width 840 px a do užšího kontejneru se nevejde ani na tabletu. */
@media (max-width: 900px) {
  .cfgre-emissions .cfgre-emtable__scroll {
    overflow: visible;
  }
  .cfgre-emissions .cfgre-emtable thead {
    display: none;
  }
  .cfgre-emissions .cfgre-emtable table,
  .cfgre-emissions .cfgre-emtable tbody {
    display: block;
    min-width: 0;
  }
  .cfgre-emissions .cfgre-emtable tbody tr {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px 16px;
    padding: 16px;
    border-bottom: 1px solid #e3eadf;
  }
  .cfgre-emissions .cfgre-emtable tbody tr:last-child {
    border-bottom: 0;
  }
  .cfgre-emissions .cfgre-emtable tbody th,
  .cfgre-emissions .cfgre-emtable tbody td {
    display: block;
    position: static;
    min-width: 0;
    padding: 0;
    border: 0;
    background: none;
    box-shadow: none;
  }
  /* Název, stav a dokumenty přes celou šířku karty, data vedle sebe. */
  .cfgre-emissions .cfgre-emtable tbody th,
  .cfgre-emissions .cfgre-emtable tbody td.cfgre-emtable__isin,
  .cfgre-emissions .cfgre-emtable tbody td:nth-of-type(4),
  .cfgre-emissions .cfgre-emtable tbody td:nth-of-type(5) {
    grid-column: 1 / -1;
  }
  .cfgre-emissions .cfgre-emtable tbody td.cfgre-emtable__isin {
    margin-top: -8px;
  }
  .cfgre-emissions .cfgre-emtable tbody td:nth-of-type(2)::before,
  .cfgre-emissions .cfgre-emtable tbody td:nth-of-type(3)::before {
    display: block;
    margin-bottom: 2px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--muted);
  }
  .cfgre-emissions .cfgre-emtable tbody td:nth-of-type(2)::before {
    content: "Datum emise";
  }
  .cfgre-emissions .cfgre-emtable tbody td:nth-of-type(3)::before {
    content: "Splatnost";
  }
  .cfgre-emissions .cfgre-emtable__name {
    font-size: 16px;
  }
  /* V kartě by samotné pomlčky u chybějícího ISIN a dokumentů působily jako
     omyl – ISIN se vynechá a u dokumentů zůstane popisek. */
  .cfgre-emissions .cfgre-emtable tbody td.cfgre-emtable__isin--none {
    display: none;
  }
  .cfgre-emissions .cfgre-emtable__nodoc::before {
    content: "Dokumenty ";
  }
}
/* Na tabletu je karta dost široká, aby stav a dokumenty stály vedle sebe
   v druhém řádku, a nezůstávala polovina karty prázdná. */
@media (min-width: 620px) and (max-width: 900px) {
  .cfgre-emissions .cfgre-emtable tbody td:nth-of-type(4),
  .cfgre-emissions .cfgre-emtable tbody td:nth-of-type(5) {
    grid-column: auto;
  }
}
.cfgre-emdocs {
  margin-top: 65px;
}
.cfgre-emdocs__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5%;
  margin-top: 30px;
}
.cm-contact {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9%;
}
.cm-contact__points {
  list-style: none;
  padding: 0;
  display: grid;
  gap: 15px;
  font-size: 14px;
}
/* Investice – závěrečný kontakt přebírá rozvržení ze sale.css (text vlevo, vpravo
   dvojice kontaktů a pod nimi CTA). Proti prodeji nemovitosti jsou tu dvě tlačítka,
   takže CTA nedrží poloviční šířku pravého sloupce, ale roztáhne se přes celý. */
.cfgre-invcontact .direct-contact__row + .direct-contact__cta {
  max-width: none;
}
.cfgre-invcontact .cfgre-ctarow {
  margin-top: 18px;
}
.cm-check {
  color: var(--gold);
  margin-right: 8px;
}
.cm-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
}
.page-o-spolecnosti .cm-hero > .cm-container {
  padding-right: 28%;
  position: relative;
}
.cookie-settings {
  border: 0;
  padding: 30px;
  background: var(--paper);
  color: var(--ink);
  width: min(500px, 90vw);
}
.cookie-settings::backdrop {
  background: #102e26aa;
}
.cookie-settings label {
  display: block;
  margin: 22px 0;
}
.cookie-settings h2 {
  font-size: 30px;
}
.cookie-settings button {
  margin: 10px 10px 0 0;
}
@media (max-width: 1050px) {
  .cfgre-phero {
    gap: 5%;
  }
  .cm-calc-card {
    padding: 25px;
  }
  /* V úzké kartě musí do pole projít i maximum 5 000 000 Kč, proto drobnější
     tlačítka, menší číslo a jednotka blíž k pravému okraji. */
  .cfgre-calc__stepper {
    grid-template-columns: 42px 1fr 42px;
    gap: 8px;
  }
  .cm-amount input {
    padding-right: 34px !important;
    font-size: 20px !important;
  }
  .cm-amount__suf {
    right: 11px;
    font-size: 14px;
  }
  .cfgre-charts {
    grid-template-columns: 1fr;
  }
  .cfgre-bars {
    height: 230px;
  }
  .cm-split__media img {
    height: 420px;
  }
  .page-o-spolecnosti .cm-hero > .cm-container {
    padding-right: 10%;
  }
  .cm-why {
    grid-template-columns: 1fr 1fr;
  }
  /* Na tabletu se popis společnosti roztáhne přes celou šířku a pod něj se
     vejdou navigace s kontakty vedle sebe. */
  .site-footer {
    grid-template-columns: 1fr 1fr;
    gap: 34px 40px;
  }
  .footer-brand {
    grid-column: 1/-1;
  }
  .cfgre-story li {
    grid-template-columns: 1fr 80px 1fr;
  }
  .cfgre-record {
    grid-template-columns: 1fr;
    gap: 50px;
  }
  .cfgre-record__figs {
    grid-template-columns: repeat(4, 1fr);
  }
  .cfgre-emcard__bottom {
    flex-direction: column;
    align-items: flex-start;
  }
  /* Karta kontaktu je tu na půl šířky – dvojice kontaktů vedle sebe už by se
     nevešla, takže telefon a e-mail pod sebe. Ve svislém řazení linka nad
     odkazy jen vypadá, že je od karty odděluje, proto místo ní jen mezera. */
  .cm-deptcard .direct-contact__row {
    grid-template-columns: 1fr;
    --dc-gap: 22px;
    padding-bottom: 0;
    border-bottom: 0;
  }
}
@media (max-width: 760px) {
  .inner-page .cm-container {
    width: 88%;
  }
  .cfgre-emtable tbody th {
    min-width: 168px;
  }
  .cfgre-emtable__name {
    font-size: 14px;
  }
  .cfgre-emtable td,
  .cfgre-emtable tbody th,
  .cfgre-emtable thead th {
    padding: 12px;
  }
  .inner-page .cm-section {
    padding: 50px 0;
  }
  .inner-page .cm-hero__title {
    font-size: var(--type-hero);
  }
  .inner-page .cm-hero__sub {
    font-size: var(--type-lead);
  }
  .cfgre-phero,
  .cm-split,
  .cfgre-group,
  .cfgre-record,
  .cm-contact,
  .cm-infogrid,
  .cm-contactgrid,
  .cm-cards3,
  .cfgre-emdocs__grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  /* Reverzní split drží i po zlomu do jednoho sloupce pořadí z desktopu –
     nejdřív text, fotka až pod ním. */
  .cm-split--reverse .cm-split__media {
    order: 2;
  }
  .cm-split__media img {
    height: 320px;
  }
  /* Fotka zázemí se na úzkém displeji neřeže do výřezu: v šířce sloupce se
     vejde celá ve svém poměru stran. */
  .cm-split--reverse .cm-split__media img {
    height: auto;
  }
  .page-kontakt .cm-infogrid {
    grid-template-columns: 1fr;
  }
  .cm-photos {
    grid-template-columns: 1fr;
    gap: 14px;
    margin-top: 32px;
  }
  .cm-photo img {
    height: 240px;
  }
  .cm-deptcard .button {
    min-width: 0;
    width: 100%;
  }
  .cfgre-keyfigs {
    grid-template-columns: 1fr 1fr;
    gap: 26px;
  }
  .cfgre-emcard {
    padding: 18px 20px;
  }
  .cfgre-emcard__top {
    flex-direction: column;
    align-items: stretch;
  }
  .inner-page .cfgre-emcard__cta {
    width: 100%;
  }
  .cfgre-emcard__rows {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px 16px;
  }
  .cfgre-emcard__rows > div {
    flex-direction: column;
    gap: 2px;
  }
  .cm-stat__num {
    font-size: 37px;
  }
  .cm-why {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  /* Mobil: páteř vlevo, rok nad textem, bez střídání stran. */
  .cfgre-story-section .cm-container {
    text-align: left;
  }
  .cfgre-story-section .cm-h2,
  .cfgre-story-section .cm-lead {
    margin-left: 0;
  }
  .cfgre-story {
    margin-top: 40px;
  }
  .cfgre-story::before,
  .cfgre-story::after {
    left: 4px;
    margin-left: 0;
  }
  .cfgre-story li,
  .cfgre-story li:nth-child(even) {
    grid-template-columns: 9px 1fr;
    column-gap: 26px;
    align-items: start;
    padding: 26px 0;
  }
  .cfgre-story__node,
  .cfgre-story li:nth-child(even) .cfgre-story__node {
    grid-column: 1;
    grid-row: 1;
    margin-top: 16px;
    box-shadow: 0 0 0 5px #e9eee6;
  }
  .cfgre-story__year,
  .cfgre-story li:nth-child(even) .cfgre-story__year {
    grid-column: 2;
    grid-row: 1;
    justify-self: start;
    font-size: 40px;
    letter-spacing: -2px;
  }
  .cfgre-story__body,
  .cfgre-story li:nth-child(even) .cfgre-story__body {
    grid-column: 2;
    grid-row: 2;
    justify-self: start;
    text-align: left;
    padding-top: 12px;
    max-width: none;
  }
  .cfgre-facts {
    gap: 26px 20px;
  }
  .cfgre-record__figs {
    grid-template-columns: 1fr 1fr;
    gap: 26px 20px;
    margin: 32px 0;
  }
  .cfgre-record__figs .cm-stat__num {
    font-size: 36px;
  }
  .cfgre-ledger {
    padding: 28px 22px 24px;
  }
  .cfgre-ledger__big {
    font-size: 38px;
  }
  .cfgre-ledger__big small {
    display: block;
    margin: 10px 0 0;
  }
  .cfgre-ledger__row {
    grid-template-columns: 1fr auto 20px;
    gap: 8px 14px;
    font-size: 14px;
  }
  .cfgre-ledger__date {
    grid-column: 1 / 3;
    font-size: 13px;
  }
  .cm-quote__text {
    font-size: 27px;
  }
  .cm-deflist > div {
    grid-template-columns: 95px 1fr;
    font-size: 14px;
  }
  .cfgre-emcard__name {
    font-size: var(--type-subheading);
  }
  .cfgre-bars {
    gap: 5px;
    height: 190px;
  }
  .cfgre-bars__x {
    gap: 2px;
    font-size: 12px;
  }
  .cfgre-chart__legend {
    flex-direction: column;
    gap: 8px;
  }
  .page-o-spolecnosti .cm-hero > .cm-container {
    padding-right: var(--hero-px);
  }
  .site-footer {
    grid-template-columns: 1fr;
    gap: 30px;
    padding-top: 38px;
  }
  .footer-legal {
    display: grid;
    gap: 10px;
  }
  .cfgre-calc__row strong {
    font-size: 18px;
  }
  .cfgre-calc__row {
    gap: 10px;
  }
  .inner-page .cm-hero--slim .cm-hero__title {
    font-size: var(--type-hero);
  }
}
/* ---------- Investice: sekce převzaté z premium stránky Srovnávače dluhopisů ----------
   Hero protežované emise: vlevo text, vpravo světlá karta s fotkou, parametry emise
   a CTA. Pod hero pruh kotev na sekce stránky. */
.page-investice {
  /* Animované a vodorovně posuvné prvky nesmí vytvořit posuvník celé stránky.
     Vlastní scroll u kotev a tabulky zůstává zachovaný. */
  overflow-x: clip;
}
.cfgre-ihero {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 7%;
  align-items: center;
}
.page-investice .cfgre-ihero__eyebrow {
  color: var(--gold);
  margin-bottom: 8px;
  max-width: none;
}
/* Celý řádek (název emise i ISIN) je jednou barvou – zlatě jako eyebrow. */
.cfgre-ihero__eyebrow strong {
  font-weight: 500;
  color: inherit;
}
.page-investice .cm-hero__title {
  margin: 12px 0 28px;
}
/* Benefity v hero jsou proužky .assurances z prodeje nemovitostí (sale.css, ta je
   na této stránce taky nalinkovaná), tady jen bez horní mezery – nad nimi je nadpis. */
.cfgre-ihero__facts.assurances {
  margin: 0 0 26px;
}
.page-investice .cm-hero__sub {
  margin: 0;
}
/* Fotka emise a parametry stojí volně na zeleném hero, bez karty. Vstupní animace:
   každý blok má --i a podle něj se zpožděně vynoří; fotka po načtení pomalu dojede
   (Ken Burns) a v cyklu přes ni přeběhne světlo jako na homepage. */
.cfgre-ihero__cta {
  margin-top: 34px;
}
.cfgre-ihero__photo,
.cfgre-ihero__params > div {
  animation: ihero-rise 0.9s cubic-bezier(0.2, 0.8, 0.2, 1) both;
  animation-delay: calc(0.15s + var(--i, 0) * 0.11s);
}
.cfgre-ihero__photo {
  position: relative;
  margin: 0;
  height: 440px;
  overflow: hidden;
  isolation: isolate;
  box-shadow: 0 30px 60px -30px #00000099;
}
.cfgre-ihero__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform-origin: 55% 60%;
  animation: ihero-zoom 12s cubic-bezier(0.2, 0.55, 0.35, 1) both;
}
.cfgre-ihero__photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, #102e26d9 0%, #102e2666 30%, transparent 55%);
  pointer-events: none;
}
.cfgre-ihero__sweep {
  position: absolute;
  inset: 0;
  background: linear-gradient(100deg, transparent 30%, #f7dfa914 46%, #fff0c32e 50%, transparent 64%);
  mix-blend-mode: screen;
  transform: translateX(-100%);
  animation: ihero-light 11s ease-in-out 2s infinite;
  pointer-events: none;
}
.cfgre-ihero__photo figcaption {
  position: absolute;
  top: 20px;
  left: 20px;
  z-index: 1;
}
/* Na fotce je teď jen stav – zlatý chip, ať „Aktivní emise“ přečteš i bez názvu emise. */
.cfgre-ihero__photo .cfgre-badge {
  font-size: 13px;
  padding: 9px 14px 9px 12px;
  background: var(--gold);
  color: var(--deep, #102e26);
  box-shadow: 0 8px 22px #0000004d;
}
/* Tep zůstává zelený i na zlatém chipu, jen v tmavším odstínu, ať je na světlém podkladu vidět. */
.cfgre-ihero__photo .cfgre-badge__dot {
  background: #1f7a4d;
}
.cfgre-ihero__photo .cfgre-badge__dot::after {
  border-color: #1f7a4d;
}
/* Živý stav emise: zelená tečka s tepem (platí i pro karty emisí níže). */
.cfgre-badge__dot {
  position: relative;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #7fc79a;
  flex-shrink: 0;
}
.cfgre-badge__dot::after {
  content: "";
  position: absolute;
  inset: -4px;
  border-radius: 50%;
  border: 1px solid #7fc79a;
  animation: ihero-pulse 2.2s ease-out infinite;
}
/* Parametry emise v plné šířce pod gridem: velká zlatá čísla, linka nahoře (vzor .cfgre-facts z o-spolecnosti). */
.cfgre-ihero__params {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px;
  margin: 60px 0 0;
}
/* align-content: start drží popisek hned pod číslem – jinak by se volné místo
   z nejvyšší buňky (poznámka u splatnosti) rozdělilo mezi řádky a popisek by
   odplul dolů. Nejvíc je to vidět na mobilu ve dvou sloupcích. */
.cfgre-ihero__params > div {
  border-top: 1px solid #ffffff30;
  padding-top: 22px;
  display: grid;
  align-content: start;
  gap: 12px;
}
.cfgre-ihero__params dt {
  font-size: 14px;
  color: var(--subtle-on-dark);
}
/* Poznámka u splatnosti visí pod řádkem popisků, aby čtyři sloupce parametrů
   končily v jedné rovině a poznámka se četla jako doplněk, ne jako druhý
   popisek. */
.cfgre-ihero__params dt small {
  display: block;
  margin-top: 18px;
  font-size: 13px;
  line-height: 1.45;
  color: var(--subtle-on-dark);
}
/* Zlatá je jen samotná výhoda, uvozující „Možnost požádat o“ zůstává v barvě
   ostatních popisků. */
.cfgre-ihero__params .cfgre-ihero__perk {
  font-weight: 500;
  color: var(--gold);
}
.cfgre-ihero__params dd {
  order: -1;
  margin: 0;
  font-size: clamp(34px, 3vw, 46px);
  line-height: 1.05;
  font-weight: 450;
  letter-spacing: -1.8px;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.cfgre-ihero__params dd small {
  font-size: 16px;
  letter-spacing: 0;
  color: var(--muted-on-dark);
  margin-left: 6px;
}
@keyframes ihero-rise {
  from {
    opacity: 0;
    transform: translateY(18px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes ihero-zoom {
  from {
    transform: scale(1.12);
  }
  to {
    transform: scale(1);
  }
}
@keyframes ihero-light {
  0%,
  8% {
    transform: translateX(-100%);
  }
  55%,
  100% {
    transform: translateX(100%);
  }
}
@keyframes ihero-pulse {
  0% {
    transform: scale(0.6);
    opacity: 0.9;
  }
  100% {
    transform: scale(1.8);
    opacity: 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .cfgre-ihero__photo,
  .cfgre-ihero__params > div,
  .cfgre-ihero__photo img,
  .cfgre-ihero__sweep,
  .cfgre-badge__dot::after {
    animation: none;
  }
}
.cfgre-anchors {
  border-bottom: 1px solid #d3dccb;
}
.cfgre-anchors .cm-container {
  display: flex;
  gap: 34px;
  overflow-x: auto;
  scrollbar-width: none;
  font-size: 14px;
}
.cfgre-anchors .cm-container::-webkit-scrollbar {
  display: none;
}
.cfgre-anchors a {
  padding: 18px 0;
  white-space: nowrap;
  border-bottom: 1px solid transparent;
}
/* Hover = jen spodní linka odkazu. text-decoration: none přebíjí globální
   podtržení a:not([class]):hover ze styles.css (stejná specificita, pages.css
   se načítá později). */
.cfgre-anchors a:hover {
  color: var(--gold-on-light);
  border-bottom-color: #9c8348;
  text-decoration: none;
}
/* O společnosti emitenta: text vlevo, vpravo platební záznam emisí (.cfgre-ledger). */
.cfgre-issuer {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 7%;
  align-items: start;
}
.cfgre-issuer .cm-lead {
  font-size: 19px;
  color: var(--ink);
}
.cfgre-issuer__copy .cm-h2 {
  margin-bottom: 26px;
}
.cfgre-issuer__copy > p:not(.cm-lead) {
  font-size: 16px;
  color: var(--muted);
  margin: 0 0 30px;
}
/* Zázemí skupiny pod textem o společnosti (drží se textového sloupce):
   nahoře „Součástí skupiny“ + logo, pod tím věta o pilíři, pod ní dvě CTA
   vedle sebe. Bez dělící linky. */
.cfgre-issuer__band {
  margin-top: 34px;
}
/* Logo skupiny uzavírá větu místo slova „CFG“, proto je inline na účaří textu. */
/* Stejná typografie jako odstavce o společnosti nad ní, ať věta z bloku nevyskakuje. */
.cfgre-issuer__band-text {
  margin: 0;
  font-size: 16px;
  line-height: 1.75;
  color: var(--muted);
}
.cfgre-issuer__band-text img {
  height: 19px;
  width: auto;
  margin-left: 9px;
  vertical-align: -3px;
}
.cfgre-issuer__band-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 28px;
  margin-top: 18px;
}
.cfgre-issuer__band-links .cfgre-morelink {
  margin: 0;
  padding: 0 0 6px;
}
/* Platební historie emisí (.cfgre-track): nahoře bílá karta s číslem a větou,
   pod ní svislá osa let. Hranaté, bez hoverů. */
.cfgre-track {
  margin-top: 6px;
  font-variant-numeric: tabular-nums;
}
.cfgre-track__head {
  background: #fff;
  border-left: 3px solid var(--gold);
  padding: 26px 28px 24px;
}
.cfgre-track__big {
  margin: 0;
  font-size: clamp(50px, 4.8vw, 68px);
  line-height: 0.95;
  font-weight: 500;
  letter-spacing: -3px;
  color: var(--ink);
  white-space: nowrap;
}
.cfgre-track__big small {
  font-size: 0.42em;
  letter-spacing: -0.5px;
  color: inherit;
}
/* Nalepeno pod číslo (tvoří s ním jeden blok), proto tmavě a bez odsazení. */
.cfgre-track__claim {
  margin: -6px 0 0;
  font-size: 22px;
  line-height: 1.2;
  font-weight: 500;
  color: var(--ink);
}
.cfgre-track__note {
  margin: 16px 0 0;
  font-size: 16px;
  line-height: 1.55;
  color: var(--muted);
}
/* Vodorovná osa let (.cfgre-payouts): deset uzlů spojených linkou, roky se splacenou
   emisí (.is-repaid) mají plný uzel a zlatý popisek. Význam obou značek vysvětluje
   legenda pod osou. */
.cfgre-payouts {
  --node: 26px;
  list-style: none;
  margin: 34px 0 0;
  padding: 72px 0 0;
  display: grid;
  grid-template-columns: repeat(10, minmax(0, 1fr));
  align-items: start;
}
.cfgre-payouts li {
  position: relative;
  display: grid;
  justify-items: center;
  row-gap: 9px;
  text-align: center;
}
/* Spojnice k uzlu vlevo: vede mezi oběma uzly (od středu položky vlevo k této),
   po obou stranách zkrácená o poloměr uzlu, aby linka nešla přes kolečka. */
.cfgre-payouts li:not(:first-child)::before {
  content: "";
  position: absolute;
  left: calc(-50% + var(--node) / 2 + 5px);
  right: calc(50% + var(--node) / 2 + 5px);
  top: calc(var(--node) / 2 - 1px);
  height: 2px;
  background: #c5d2bf;
}
.cfgre-payouts__node {
  position: relative;
  display: grid;
  place-items: center;
  width: var(--node);
  height: var(--node);
  border-radius: 50%;
  background: var(--paper);
  border: 1.5px solid var(--green);
  color: var(--green);
}
.cfgre-payouts__node svg {
  width: 13px;
  height: 13px;
  stroke: currentColor;
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.cfgre-payouts li.is-repaid .cfgre-payouts__node {
  background: var(--green);
  border-color: var(--green);
  color: var(--paper);
}
.cfgre-payouts b {
  font-size: 14px;
  font-weight: 500;
  color: var(--ink);
}
.cfgre-payouts li:not(.is-repaid) b {
  color: var(--muted);
}
/* Štítek u roku se splacenou emisí je nad osou (dobrá zpráva se čte dřív než rok)
   jako zlatý chip se svislou spojnicí k uzlu. Je vytažený z toku a vycentrovaný nad
   svým rokem, aby jeho šířka nerozhazovala stejně široké sloupce osy – místo nad osou
   drží padding .cfgre-payouts. Oba chipy jsou ve stejné výšce, proto se text láme na
   dva řádky: na jeden řádek by se sousedící roky 2022 a 2024 do dvou sloupců osy
   nevešly. */
.cfgre-payouts em {
  position: absolute;
  bottom: calc(100% + 13px);
  left: 50%;
  transform: translateX(-50%);
  width: 74px;
  font-style: normal;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
  padding: 7px 4px;
  border: 1px solid #cdb886;
  background: #f4eedf;
  color: #7d6531;
}
.cfgre-payouts em::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  width: 1px;
  height: 13px;
  background: #cdb886;
}
/* Legenda obou značek pod osou. Zarovnaná doprava, aby druhá položka končila v jedné
   svislici s posledním rokem osy. */
.cfgre-payouts__legend {
  --node: 20px;
  list-style: none;
  margin: 26px 0 0;
  padding: 20px 0 0;
  border-top: 1px solid #c5d2bf;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px 28px;
  font-size: 13.5px;
  color: var(--muted);
}
.cfgre-payouts__legend li {
  display: flex;
  align-items: center;
  gap: 10px;
}
.cfgre-payouts__legend .is-repaid .cfgre-payouts__node,
.cfgre-payouts__legend li.is-repaid .cfgre-payouts__node {
  background: var(--green);
  border-color: var(--green);
  color: var(--paper);
}
.cfgre-payouts__legend .cfgre-payouts__node svg {
  width: 11px;
  height: 11px;
}
/* Čtveřice čísel (vzor .cfgre-record__figs z o-spolecnosti) přes celou šířku pod oběma
   sloupci sekce, čtyři sloupce s horní linkou. */
.cfgre-issuer__figs {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 26px 30px;
  margin: 56px 0 0;
}
.cfgre-issuer__figs > div {
  border-top: 1px solid #c5d2bf;
  padding-top: 18px;
  display: grid;
  gap: 8px;
}
.cfgre-issuer__figs dt {
  font-size: 14px;
  line-height: 1.5;
  color: var(--muted);
}
.cfgre-issuer__figs dd {
  order: -1;
  margin: 0;
  font-size: clamp(28px, 2.4vw, 40px);
  line-height: 1.05;
  font-weight: 500;
  letter-spacing: -1.5px;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.cfgre-issuer__figs dd small {
  font-size: 0.7em;
  letter-spacing: -0.5px;
  color: inherit;
}
.cfgre-issuer__note {
  font-size: 13px;
  line-height: 1.7;
  color: var(--muted);
  margin: 28px 0 0;
}
/* Karusel realizovaných projektů: nahoře lišta se záložkami projektů (běžící linka
   autoplaye přes --progress z pages.js) a šipkami + počítadlem vpravo od nich, pod ní
   položky přes sebe v jedné buňce gridu (výška = nejvyšší z nich, nic neskáče), aktivní
   se prolne a fotka s textem lehce dojedou. Pod karuselem odkaz na nabídku. */
.cfgre-projects {
  margin-top: 45px;
}
.cfgre-projects__track {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
}
.cfgre-project {
  grid-area: 1 / 1;
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  gap: 5%;
  align-items: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.6s ease, visibility 0s linear 0.6s;
}
.cfgre-project.is-active {
  opacity: 1;
  visibility: visible;
  transition: opacity 0.6s ease;
}
.cfgre-project__body {
  transform: translateY(14px);
  transition: transform 0.7s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.cfgre-project.is-active .cfgre-project__body {
  transform: none;
}
/* Před / po: dvě řady po čtyřech fotkách nad sebou, štítek v levém horním rohu.
   Fotky jsou samostatné soubory (ne jeden pás), takže se dají na mobilu zlomit
   do mřížky. Řada „po" přijede o chvilku později než „před", aby byl vidět posun. */
.cfgre-project__compare {
  display: grid;
  gap: 12px;
  min-width: 0;
}
.cfgre-project__shot {
  position: relative;
  margin: 0;
  overflow: hidden;
  transform: translateX(-24px);
  opacity: 0;
  transition: transform 0.9s cubic-bezier(0.2, 0.8, 0.2, 1), opacity 0.6s ease;
}
.cfgre-project__shot--after {
  transition-delay: 0.18s;
}
.cfgre-project.is-active .cfgre-project__shot {
  transform: none;
  opacity: 1;
}
.cfgre-project__frame {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 5px;
}
/* Fotky zabírají dvě třetiny šířky, takže jsou širší než dřív – poměr stran je
   proti tomu nižší (13/14 místo 4/5), aby řada zůstala stejně vysoká jako
   v předchozím rozvržení. */
.cfgre-project__shot img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 13 / 14;
  object-fit: cover;
}
.cfgre-project__shot figcaption {
  position: absolute;
  top: 12px;
  left: 12px;
  padding: 8px 14px;
  font-size: 14px;
  line-height: 1.2;
  letter-spacing: 0.3px;
  background: var(--deep, #102e26);
  color: #fff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
}
.cfgre-project__shot figcaption span {
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
}
.cfgre-project__shot--after figcaption {
  background: var(--gold-on-light);
}
/* Popisek fotek sedí přímo pod pásy „před / po" (je poslední položkou gridu .compare). */
.cfgre-project .cfgre-project__hint {
  font-size: 13px;
  line-height: 1.5;
  color: var(--muted);
  margin: 0;
}
.cfgre-project h3 {
  font-size: clamp(30px, 2.8vw, 40px);
  font-weight: 500;
  line-height: 1.15;
  letter-spacing: -1px;
  margin: 0 0 20px;
}
.cfgre-project p {
  font-size: 18px;
  line-height: 1.75;
  color: var(--ink);
  margin: 0 0 26px;
}
.cfgre-project__tags {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.cfgre-projects__bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 20px 32px;
  margin-bottom: 18px;
}
/* Ovládání karuselu: drobné obrysové šipky a záložky se jmény projektů, aktivní má
   pod sebou zlatý pás, který roste s odpočtem (--progress plní pages.js). */
.cfgre-projects__nav {
  display: flex;
  align-items: center;
  gap: 8px;
}
.cfgre-projects__btn {
  width: 40px;
  height: 40px;
  border: 1px solid #abbb9e;
  border-radius: 50%;
  background: transparent;
  color: var(--ink);
  display: grid;
  place-items: center;
  cursor: pointer;
  transition: border-color 0.25s, color 0.25s, transform 0.25s;
}
.cfgre-projects__btn:hover {
  border-color: var(--gold-on-light);
  color: var(--gold-on-light);
}
.cfgre-projects__btn:active {
  transform: scale(0.94);
}
.cfgre-projects__btn svg {
  width: 20px;
  height: 20px;
}
.cfgre-projects__count {
  font-size: 15px;
  color: var(--muted);
  font-variant-numeric: tabular-nums;
  min-width: 42px;
  text-align: center;
}
.cfgre-projects__dots {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 4px;
  flex: 1;
  min-width: 0;
  max-width: 820px;
}
.cfgre-projects__dots li {
  flex: 1;
  min-width: 0;
}
.cfgre-projects__dots button {
  display: block;
  width: 100%;
  padding: 6px 14px 10px 0;
  border: 0;
  background: transparent;
  color: var(--muted);
  font: inherit;
  font-size: 16px;
  line-height: 1.3;
  text-align: left;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  cursor: pointer;
  transition: color 0.25s;
}
.cfgre-projects__dots small {
  display: block;
  font-size: 12px;
  letter-spacing: 1px;
  color: var(--gold-on-light);
  margin-bottom: 3px;
}
.cfgre-projects__dots [aria-current] {
  color: var(--ink);
  font-weight: 500;
}
.cfgre-projects__dots button:hover {
  color: var(--ink);
}
.cfgre-projects__dots i {
  display: block;
  height: 4px;
  margin-top: 10px;
  background: #d5dfd0;
  position: relative;
  overflow: hidden;
}
.cfgre-projects__dots i::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--gold-graphic-on-light);
  transform-origin: left;
  transform: scaleX(0);
}
.cfgre-projects__dots [aria-current] i::after {
  transform: scaleX(var(--progress, 1));
}
.cfgre-projects__more {
  display: flex;
  width: fit-content;
  margin: 34px 0 0 auto;
}
/* Kalkulačka je jeden blok bez mezery: vlevo světlý vstup (+/- a posuvník) s parametry
   emise, vpravo na něj navazuje tmavá karta s výsledky a osou výplat (plní calc.js).
   Oba panely se roztáhnou na stejnou výšku, ať drží jako jedna karta. */
.cfgre-calc {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 0;
  align-items: stretch;
  margin-top: 45px;
}
.cfgre-calc__stepper {
  display: grid;
  grid-template-columns: 45px 1fr 45px;
  gap: 10px;
}
.cfgre-calc__btn {
  border: 1px solid var(--line-control);
  background: transparent;
  color: inherit;
  font-size: 22px;
  line-height: 1;
  min-height: 45px;
  cursor: pointer;
}
.cfgre-calc__btn:hover {
  background: #e9eee6;
}
.cfgre-calc__params {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px 20px;
  margin: 22px 0 0;
}
.cfgre-calc__params > div {
  border-top: 1px solid #c9d4c1;
  padding-top: 12px;
}
.cfgre-calc__params dt {
  font-size: 13px;
  color: var(--muted);
  margin-bottom: 5px;
}
.cfgre-calc__params dd {
  margin: 0;
  font-size: 20px;
  font-variant-numeric: tabular-nums;
}
.cfgre-calc__note {
  font-size: 13px;
  color: var(--muted);
  margin: 12px 0 0;
}
/* Vstupní panel je flex sloupec, aby CTA sedělo na spodní hraně vedle tmavé karty. */
.cfgre-calc__in {
  display: flex;
  flex-direction: column;
  padding: 34px;
}
.cfgre-calc__in .cm-btn {
  margin-top: auto;
}
.cfgre-calc__params {
  margin-bottom: 26px;
}
.cfgre-calc__out {
  background: var(--green);
  color: var(--paper);
  padding: 34px;
}
.cfgre-calc__label {
  display: block;
  font-size: 14px;
  line-height: 1.4;
  color: var(--subtle-on-dark);
}
.cfgre-calc__label small {
  font-size: 12px;
}
/* Dvě čísla vedle sebe: čtvrtletní výplata a celkový výnos.
   Řádky popisek / číslo / doplněk drží přes subgrid, takže sedí na stejných linkách
   i při různě dlouhých popiscích – bez rezervované výšky popisku, která nad čísly
   dělala prázdné místo. */
.cfgre-calc__total {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: auto auto auto;
  gap: 10px 20px;
}
/* Linka nad každým číslem oddělí dvě části výsledku – na desktopu ve sloupcích,
   na mobilu pod sebou, kde by jinak čísla splývala do jednoho sloupce textu. */
.cfgre-calc__total > div {
  min-width: 0;
  display: grid;
  grid-row: span 3;
  grid-template-rows: subgrid;
  align-content: start;
  border-top: 1px solid #ffffff30;
  padding-top: 16px;
}
.cfgre-calc__total strong {
  display: block;
  font-size: clamp(24px, 2vw, 32px);
  line-height: 1;
  font-weight: 450;
  letter-spacing: -1px;
  color: var(--gold);
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.cfgre-calc__pct {
  display: block;
  font-size: 13px;
  color: var(--subtle-on-dark);
}
.cfgre-calc__pct em {
  font-style: normal;
  color: var(--paper);
}
/* Rozpis výplat jako časová osa: výplaty seskupené po letech, uzly s ikonou spojené
   linkou, dole jistina jako poslední uzel. Velikost textů drží krok s levým panelem. */
.cfgre-calc__payouts {
  list-style: none;
  margin: 30px 0 0;
  padding: 26px 0 0;
  border-top: 1px solid #ffffff30;
}
.cfgre-calc__payouts li {
  position: relative;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  column-gap: 16px;
  row-gap: 4px;
  padding-bottom: 26px;
}
.cfgre-calc__payouts li::before {
  content: "";
  position: absolute;
  left: 16px;
  top: 0;
  bottom: 0;
  border-left: 1px solid #ffffff2e;
}
.cfgre-calc__payouts li:first-child::before {
  top: 17px;
}
.cfgre-calc__node {
  grid-column: 1;
  grid-row: 1;
  position: relative;
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--green);
  border: 1px solid #ffffff3d;
  color: var(--gold);
}
.cfgre-calc__node svg {
  width: 17px;
  height: 17px;
}
.cfgre-calc__pay-title {
  grid-column: 2;
  grid-row: 1;
  align-self: center;
  font-size: 17px;
  font-weight: 500;
}
.cfgre-calc__payouts strong {
  grid-column: 3;
  grid-row: 1;
  align-self: center;
  font-size: 19px;
  font-weight: 500;
  text-align: right;
  font-variant-numeric: tabular-nums;
}
/* Období i počet výplat patří na stejný řádek pod svůj sloupec (název / částka),
   proto mají řádek určený napevno – jinak je autoplacement odsune níž. */
.cfgre-calc__payouts small {
  grid-column: 2;
  grid-row: 2;
  font-size: 13px;
  color: var(--subtle-on-dark);
}
.cfgre-calc__payouts .cfgre-calc__pay-count {
  grid-column: 3;
  grid-row: 2;
  text-align: right;
  white-space: nowrap;
}
/* Jistina = poslední uzel osy, proto stejná mřížka i spojnice zdola k ikoně. */
.cfgre-calc__principal {
  position: relative;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  column-gap: 16px;
  row-gap: 4px;
}
.cfgre-calc__principal::before {
  content: "";
  position: absolute;
  left: 16px;
  top: -26px;
  height: 43px;
  border-left: 1px solid #ffffff2e;
}
.cfgre-calc__principal svg {
  grid-column: 1;
  grid-row: 1;
  justify-self: center;
  align-self: center;
  position: relative;
  width: 34px;
  height: 34px;
  padding: 8px;
  border-radius: 50%;
  background: var(--gold);
  color: var(--green);
}
.cfgre-calc__principal > span {
  grid-column: 2;
  grid-row: 1;
  align-self: center;
  font-size: 17px;
  font-weight: 500;
}
.cfgre-calc__principal strong {
  grid-column: 3;
  grid-row: 1;
  align-self: center;
  font-size: 19px;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
}
.cfgre-calc__principal small {
  grid-column: 2 / -1;
  font-size: 13px;
  color: var(--subtle-on-dark);
}
/* Průběh investice přebírá .sale-process/.process-steps ze sale.css, jen obsah je
   v .cm-container — nadpis nad osou, karty kroků na celou šířku, stejně jako na
   /prodej-nemovitosti/.
   .inner-page svg (20 px) by přebilo velikost ikon v uzlech, proto explicitně 28 px. */
.page-investice .sale-process {
  display: block;
}
.page-investice .step-node svg {
  width: 28px;
  height: 28px;
}
.page-investice .sale-process .cfgre-ctarow {
  margin-top: 55px;
}
/* Dokumenty ke stažení: karty 4 ve sloupci, zbytek skrytý za tlačítkem. */
/* Karty se rozloží podle počtu dokumentů (teď tři), ať v řadě nezůstane prázdné místo. */
.cfgre-docgrid {
  list-style: none;
  padding: 0;
  margin: 40px 0 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 20px;
}
.cfgre-doccard {
  display: flex;
  flex-direction: column;
  gap: 14px;
  height: 100%;
  padding: 22px;
  border: 1px solid #c9d4c1;
  background: var(--paper);
}
.cfgre-doccard:hover {
  border-color: #9c8348;
}
.cfgre-doccard__type {
  font-size: 12px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--gold-on-light);
}
.cfgre-doccard__title {
  flex: 1;
  font-size: 17px;
  font-weight: 500;
  line-height: 1.35;
}
.cfgre-doccard__title small {
  display: block;
  margin-top: 6px;
  font-size: 13px;
  font-weight: 400;
  color: var(--muted);
}
.cfgre-doccard__dl {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--gold-on-light);
}
.cfgre-doccard__dl svg {
  width: 16px;
  height: 16px;
}
.cfgre-docgrid__more {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  margin-top: 30px;
  padding: 10px 0;
  border: 0;
  border-bottom: 1px solid #abbb9e;
  background: transparent;
  color: inherit;
  font-size: 15px;
  cursor: pointer;
}
.inner-page .cm-lead a {
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
@media (max-width: 1050px) {
  .cfgre-ihero {
    gap: 5%;
  }
  .cfgre-ihero__photo {
    height: 380px;
  }
  .cfgre-ihero__params {
    grid-template-columns: 1fr 1fr;
    gap: 26px 24px;
    margin-top: 50px;
  }
  .cfgre-project {
    grid-template-columns: 1fr;
    gap: 28px;
    align-items: start;
  }
  .cfgre-project__body {
    max-width: 720px;
  }
  .cfgre-project__compare {
    max-width: 720px;
  }
  .cfgre-docgrid {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 760px) {
  .cfgre-ihero,
  .cfgre-issuer,
  .cfgre-project,
  .cfgre-calc {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  /* Kalkulačka zůstává i na mobilu jeden blok – panely jen pod sebou, bez mezery. */
  .cfgre-calc {
    gap: 0;
  }
  .cfgre-ihero__photo {
    height: 260px;
  }
  .cfgre-ihero__photo figcaption {
    top: 16px;
    left: 16px;
  }
  .cfgre-ihero__cta .cm-btn {
    width: 100%;
  }
  .cfgre-ihero__params {
    grid-template-columns: 1fr 1fr;
    gap: 24px 20px;
    margin-top: 40px;
  }
  .cfgre-ihero__params dd {
    font-size: 30px;
  }
  .cfgre-anchors .cm-container {
    gap: 24px;
    /* Poslední odkaz nesmí končit přesně pod šipkou, ať je vidět, že lišta
       pokračuje. */
    padding-right: 34px;
  }
  /* Kotvy se na mobilu nevejdou a posouvají se vodorovně – stínítko se šipkou
     na pravém okraji to napovídá. */
  .cfgre-anchors {
    position: relative;
  }
  .cfgre-anchors::after {
    content: "→";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 52px;
    display: grid;
    place-items: center end;
    padding-right: 6%;
    background: linear-gradient(90deg, #f7f7f200, var(--paper) 58%);
    color: var(--gold-on-light);
    pointer-events: none;
  }
  .cfgre-track__big {
    font-size: 52px;
  }
  /* Na mobilu se mřížka let zúží na čtyři sloupce, ať uzly nejsou nalepené. */
  .cfgre-payouts {
    grid-template-columns: repeat(4, 1fr);
    gap: 18px 8px;
  }
  /* Na pěti sloupcích nemá první řada (2017–2021) žádný chip, místo nad osou proto
     drží až row-gap mezi řadami. */
  .cfgre-payouts {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    padding-top: 10px;
    row-gap: 76px;
  }
  .cfgre-payouts li:nth-child(5n + 1)::before {
    display: none;
  }
  .cfgre-issuer__figs {
    grid-template-columns: 1fr 1fr;
    gap: 22px 20px;
    margin-top: 40px;
  }
  .cfgre-issuer__figs dd {
    font-size: 32px;
  }
  .cfgre-project__compare {
    gap: 18px;
  }
  /* Čtyři fotky v řadě jsou na šířku mobilu k nepoznání, tak se řada zlomí
     na 2×2 – dvojice „před / po" tak zůstanou pod sebou a fotky jsou čitelné
     bez posouvání do strany. */
  .cfgre-project__frame {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .cfgre-project__shot figcaption {
    top: 8px;
    left: 8px;
    padding: 6px 10px;
    font-size: 13px;
  }
  .cfgre-project h3 {
    font-size: 26px;
  }
  .cfgre-projects__dots {
    flex-wrap: wrap;
    flex-basis: 100%;
    max-width: none;
  }
  .cfgre-projects__dots li {
    flex: 1 1 calc(50% - 4px);
  }
  .cfgre-calc__out {
    padding: 26px 22px;
  }
  .cfgre-calc__total {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .cfgre-calc__total strong {
    font-size: 30px;
  }

  .cfgre-docgrid {
    grid-template-columns: 1fr;
    gap: 14px;
  }
}

@media (max-width: 390px) {
  .page-investice .cm-hero__title {
    font-size: var(--type-hero);
  }
}

/* ---------- Seznam firem ve skupině CFG ----------
   Odstavce sedí na levou hranu tabulky (ne vycentrované jako na právních
   stránkách) a tabulka se místo vodorovného scrollu zlomí do šířky obrazovky. */
.page-seznam-firem .cm-prose {
  max-width: 760px;
  margin: 0;
}
.page-seznam-firem .cfgre-emtable {
  margin: 0 0 30px;
}
.page-seznam-firem .cfgre-emtable table {
  min-width: 0;
}
.page-seznam-firem .cfgre-emtable tbody th {
  min-width: 160px;
}
.page-seznam-firem .cfgre-emtable tbody td:first-of-type {
  white-space: nowrap;
}
/* Na mobilu se z každého řádku stane blok (název / IČO / sídlo pod sebou),
   aby se dlouhé adresy nemusely posouvat do strany. */
@media (max-width: 760px) {
  .page-seznam-firem .cfgre-emtable thead {
    display: none;
  }
  .page-seznam-firem .cfgre-emtable table,
  .page-seznam-firem .cfgre-emtable tbody,
  .page-seznam-firem .cfgre-emtable tbody tr,
  .page-seznam-firem .cfgre-emtable tbody th,
  .page-seznam-firem .cfgre-emtable tbody td {
    display: block;
  }
  .page-seznam-firem .cfgre-emtable tbody tr {
    padding: 14px 16px;
    border-bottom: 1px solid #e3eadf;
  }
  .page-seznam-firem .cfgre-emtable tbody th,
  .page-seznam-firem .cfgre-emtable tbody td {
    position: static;
    min-width: 0;
    padding: 0;
    border: 0;
    box-shadow: none;
  }
  .page-seznam-firem .cfgre-emtable tbody td {
    margin-top: 4px;
    color: var(--muted);
  }
  .page-seznam-firem .cfgre-emtable tbody td:first-of-type::before {
    content: "IČO ";
  }
}

/* ---------- Právní dokumenty ----------
   Delší převzaté texty potřebují čitelnější sazbu seznamů, mezititulky a
   vizuálně oddělený blok se základními údaji správce. */
.cfgre-legal {
  max-width: 900px;
}
.inner-page .cfgre-legal h2 {
  margin-top: 48px;
}
.inner-page .cfgre-legal h3 {
  margin: 28px 0 10px;
  font-size: 21px;
  font-weight: 600;
}
.cfgre-legal ul,
.cfgre-legal ol {
  margin: 14px 0 24px;
  padding-left: 24px;
}
.cfgre-legal li {
  margin-bottom: 10px;
  font-size: 17px;
  line-height: 1.7;
}
/* Vnořený výčet (výčet zákonů, způsoby podání námitky) drží u svého bodu. */
.cfgre-legal li > ul,
.cfgre-legal li > ol {
  margin: 10px 0 6px;
}
.cfgre-legal__meta,
.cfgre-legal__note {
  padding: 22px 24px;
  background: #e9eee6;
  border-left: 3px solid var(--gold);
}
.cfgre-legal__meta {
  margin-bottom: 40px;
}
.cfgre-legal__note {
  margin: 24px 0;
}
.inner-page .cfgre-legal__meta p,
.inner-page .cfgre-legal__note p {
  margin: 0;
}
.inner-page .cfgre-legal__meta p + p,
.inner-page .cfgre-legal__note p + p {
  margin-top: 8px;
}

@media (max-width: 760px) {
  .inner-page .cfgre-legal h2 {
    margin-top: 38px;
  }
  .cfgre-legal__meta,
  .cfgre-legal__note {
    padding: 18px;
  }
}
