@charset "utf-8";

/* ═══════════════════════════════════════════════════════
   VYKUP-NEMOVITOSTI.CSS  — Ultra-premium layer
   Rozšiřuje style.css. Původní bloky se nemění.
   ═══════════════════════════════════════════════════════ */


/* ─────────────────────────────────────────────────────
   LOCAL TOKENS — přidané nad základní paletu
   ───────────────────────────────────────────────────── */
:root {
  --vn-sh-lift:  0 2px 8px rgba(12,18,37,.04), 0 8px 32px rgba(12,18,37,.07);
  --vn-sh-float: 0 4px 16px rgba(12,18,37,.06), 0 16px 48px rgba(12,18,37,.10);
  --vn-sh-deep:  0 8px 24px rgba(12,18,37,.08), 0 24px 64px rgba(12,18,37,.13);
  --vn-accent-border: rgba(212,96,44,.18);
  --vn-accent-glow:   rgba(212,96,44,.12);
  --vn-ring: 0 0 0 3px rgba(212,96,44,.12);
  --vn-trans: .28s cubic-bezier(.4,0,.2,1);
}


/* ─────────────────────────────────────────────────────
   DEFINITION BLOCK
   ───────────────────────────────────────────────────── */
.vn-def {
  position: relative;
  padding: 2rem 2rem 2rem 2.25rem;
  margin-bottom: 1.75rem;
  border-radius: var(--r-lg);
  background: var(--c-white);
  border: 1px solid var(--c-line);
  border-left: 4px solid var(--c-accent);
  box-shadow: var(--vn-sh-lift);
  overflow: hidden;
}

/* Subtilní dekorativní šrafura v pozadí */
.vn-def::before {
  content: '';
  position: absolute;
  top: -40px; right: -40px;
  width: 180px; height: 180px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(212,96,44,.06) 0%, transparent 70%);
  pointer-events: none;
}

.vn-def p {
  font-size: 17px;
  line-height: 1.78;
  color: var(--c-muted);
  margin: 0 0 .85rem;
  position: relative;
}
.vn-def p:last-child { margin-bottom: 0; }
.vn-def p:first-child {
  font-size: 17.5px;
  color: var(--c-text);
  font-weight: 500;
}


/* ─────────────────────────────────────────────────────
   SERVICE GRID — 4-column
   ───────────────────────────────────────────────────── */
.svc-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.125rem;
}

.svc-card {
  position: relative;
  padding: 2.25rem 1.75rem 2rem;
  border-radius: var(--r-lg);
  background: var(--c-cream);
  border: 1px solid var(--c-line);
  overflow: hidden;
  transition:
    box-shadow var(--vn-trans),
    border-color var(--vn-trans),
    transform var(--vn-trans),
    background var(--vn-trans);
}

/* Teplý gradient při hoveru */
.svc-card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(212,96,44,.055) 0%, transparent 60%);
  opacity: 0;
  transition: opacity var(--vn-trans);
  pointer-events: none;
}

.svc-card:hover {
  box-shadow: var(--vn-sh-float);
  border-color: var(--vn-accent-border);
  transform: translateY(-3px);
  background: #fff;
}
.svc-card:hover::after { opacity: 1; }

/* Číslo karty */
.svc-card__num {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(212,96,44,.4);
  margin-bottom: 1.35rem;
  display: block;
}

.svc-card__ic {
  width: 56px; height: 56px;
  border-radius: 15px;
  display: grid;
  place-items: center;
  background: var(--c-white);
  color: var(--c-accent);
  border: 1px solid var(--c-line);
  margin-bottom: 1.35rem;
  transition: background var(--vn-trans), box-shadow var(--vn-trans), border-color var(--vn-trans);
  box-shadow: var(--vn-sh-lift);
}
.svc-card:hover .svc-card__ic {
  background: var(--c-accent);
  color: #fff;
  border-color: var(--c-accent);
  box-shadow: 0 4px 16px rgba(212,96,44,.25);
}

.svc-card__line {
  width: 100%; height: 1px;
  background: var(--c-line);
  margin-bottom: 1.35rem;
  transition: background var(--vn-trans);
}
.svc-card:hover .svc-card__line {
  background: rgba(212,96,44,.12);
}

.svc-card h3 {
  font-size: 18px;
  font-weight: 700;
  margin: 0 0 .55rem;
  color: var(--c-ink);
  letter-spacing: -.025em;
  line-height: 1.2;
}
.svc-card p {
  font-size: 15px;
  line-height: 1.65;
  color: var(--c-muted);
  margin: 0;
}

@media (max-width: 991.98px) { .svc-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 575.98px) { .svc-grid { grid-template-columns: 1fr; } }


/* ─────────────────────────────────────────────────────
   SITUATION CARDS
   ───────────────────────────────────────────────────── */
.sit-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.125rem;
  max-width: 1060px;
  margin-inline: auto;
}

.sit-card {
  display: flex;
  flex-direction: column;
  border-radius: var(--r-lg);
  background: var(--c-white);
  border: 1px solid var(--c-line);
  overflow: hidden;
  transition:
    box-shadow var(--vn-trans),
    border-color var(--vn-trans),
    transform var(--vn-trans);
  box-shadow: var(--vn-sh-lift);
}
.sit-card:hover {
  box-shadow: var(--vn-sh-float);
  border-color: var(--vn-accent-border);
  transform: translateY(-3px);
}

.sit-card__top { padding: 1.85rem 1.75rem 1.5rem; flex: 1; }

.sit-card__head {
  display: flex;
  align-items: center;
  gap: .9rem;
  margin-bottom: .95rem;
}

.sit-card__ic {
  width: 46px; height: 46px;
  flex: 0 0 46px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  background: var(--c-accent-soft);
  color: var(--c-accent);
  border: 1px solid rgba(212,96,44,.12);
  transition: background var(--vn-trans), color var(--vn-trans);
}
.sit-card:hover .sit-card__ic {
  background: var(--c-accent);
  color: #fff;
  border-color: transparent;
}

.sit-card__head h3 {
  font-size: 17.5px;
  font-weight: 700;
  margin: 0;
  color: var(--c-ink);
  letter-spacing: -.02em;
  line-height: 1.25;
}

.sit-card__top > p {
  font-size: 15.5px;
  line-height: 1.68;
  color: var(--c-muted);
  margin: 0;
}

.sit-card__result {
  padding: 1.1rem 1.75rem 1.4rem;
  background: var(--c-cream);
  border-top: 1px solid var(--c-line);
  font-size: 15px;
  line-height: 1.62;
  color: var(--c-text);
  transition: background var(--vn-trans);
}
.sit-card:hover .sit-card__result {
  background: rgba(212,96,44,.04);
  border-top-color: rgba(212,96,44,.1);
}

.sit-card__result strong {
  display: block;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--c-accent);
  margin-bottom: .3rem;
}

.sit-card__note {
  display: block;
  margin-top: .8rem;
  font-size: 13px;
  line-height: 1.5;
  color: var(--c-light);
  font-style: italic;
}

@media (max-width: 767.98px) { .sit-list { grid-template-columns: 1fr; max-width: 560px; } }


/* ─────────────────────────────────────────────────────
   PRICE FACTORS — two columns
   ───────────────────────────────────────────────────── */
.factor-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.125rem;
  margin-top: 1.75rem;
}

.factor-col {
  padding: 1.5rem 1.35rem 1.25rem;
  border-radius: var(--r-lg);
  background: var(--c-white);
  border: 1px solid var(--c-line);
  box-shadow: var(--vn-sh-lift);
  transition: box-shadow var(--vn-trans);
}
.factor-col:hover { box-shadow: var(--vn-sh-float); }

.factor-col__h {
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin: 0 0 1rem;
  display: flex;
  align-items: center;
  gap: .5rem;
}
.factor-col__h::before {
  content: '';
  display: block;
  width: 8px; height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}
.factor-col__h--up { color: #15803d; }
.factor-col__h--up::before { background: #15803d; box-shadow: 0 0 0 3px rgba(22,163,74,.12); }

.factor-col__h--dn { color: #b91c1c; }
.factor-col__h--dn::before { background: #b91c1c; box-shadow: 0 0 0 3px rgba(220,38,38,.1); }

.factor-list { list-style: none; padding: 0; margin: 0; }
.factor-list li {
  position: relative;
  padding: .5rem 0 .5rem 1.6rem;
  font-size: 14.5px;
  line-height: 1.5;
  color: var(--c-muted);
  border-bottom: 1px solid var(--c-line);
}
.factor-list li:last-child { border-bottom: none; }

.factor-list li::before {
  content: '';
  position: absolute;
  left: 0; top: .9rem;
  width: 10px; height: 10px;
  border-radius: 50%;
}

.factor-list--up li::before {
  background: rgba(22,163,74,.15);
  border: 2px solid #15803d;
}
.factor-list--dn li::before {
  background: rgba(220,38,38,.08);
  border: 2px solid #b91c1c;
}

@media (max-width: 575.98px) { .factor-grid { grid-template-columns: 1fr; } }


/* ─────────────────────────────────────────────────────
   COMPARISON TABLE
   ───────────────────────────────────────────────────── */
.cmp-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border-radius: var(--r-lg);
  border: 1px solid var(--c-line);
  background: var(--c-white);
  box-shadow: var(--vn-sh-lift);
}

.cmp-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 15.5px;
  line-height: 1.55;
  min-width: 640px;
}

.cmp-table th,
.cmp-table td {
  padding: 1.05rem 1.35rem;
  border-bottom: 1px solid var(--c-line);
  text-align: left;
  vertical-align: middle;
}

.cmp-table thead th {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--c-light);
  background: var(--c-cream);
  border-bottom: 2px solid var(--c-line);
  white-space: nowrap;
}

.cmp-table tbody tr:last-child td { border-bottom: none; }
.cmp-table tbody tr { transition: background var(--vn-trans); }
.cmp-table tbody tr:hover td { background: var(--c-cream); }

/* Row label column */
.cmp-table tbody td:first-child {
  font-weight: 600;
  color: var(--c-ink);
  background: var(--c-cream) !important;
  font-size: 14.5px;
  letter-spacing: -.01em;
}

.cmp-table__hl {
  background: rgba(212,96,44,.04) !important;
  color: var(--c-ink) !important;
  font-weight: 600;
}
.cmp-table thead .cmp-table__hl {
  color: var(--c-accent) !important;
  background: rgba(212,96,44,.07) !important;
  border-bottom-color: var(--c-accent) !important;
  position: relative;
}

/* Jemný vrchní okraj zvýrazněného sloupce */
.cmp-table thead .cmp-table__hl::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: var(--c-accent);
  border-radius: 0 0 2px 2px;
}

.cmp-table td { color: var(--c-muted); }
.cmp-table td strong { font-weight: 600; color: var(--c-ink); }

/* Zarovnání posledního sloupce na střed */
.cmp-table td:last-child,
.cmp-table th:last-child { text-align: left; }


/* ─────────────────────────────────────────────────────
   DOCUMENT CHECKLIST
   ───────────────────────────────────────────────────── */
.doc-check { display: flex; flex-direction: column; gap: 0; }

.doc-check__item {
  display: flex;
  align-items: flex-start;
  gap: 1.1rem;
  padding: 1.15rem 0;
  border-bottom: 1px solid var(--c-line);
  transition: padding-left var(--vn-trans);
}
.doc-check__item:last-child { border-bottom: none; }
/*.doc-check__item:hover { padding-left: .35rem; }*/

.doc-check__ic {
  width: 42px; height: 42px;
  flex: 0 0 42px;
  border-radius: 11px;
  display: grid;
  place-items: center;
  background: var(--c-accent-soft);
  color: var(--c-accent);
  margin-top: .1rem;
  border: 1px solid rgba(212,96,44,.12);
  transition: background var(--vn-trans), color var(--vn-trans);
}
.doc-check__item:hover .doc-check__ic {
  background: var(--c-accent);
  color: #fff;
  border-color: transparent;
}

.doc-check__item strong {
  display: block;
  font-size: 15.5px;
  font-weight: 700;
  color: var(--c-ink);
  margin-bottom: .2rem;
  letter-spacing: -.01em;
}
.doc-check__item span {
  font-size: 14.5px;
  line-height: 1.58;
  color: var(--c-muted);
}


/* ─────────────────────────────────────────────────────
   PRICE GAUGE VISUAL (sekce oceňování)
   ───────────────────────────────────────────────────── */
.vn-gauge {
  text-align: center;
  padding: 3rem 2.5rem 2.5rem;
  border-radius: var(--r-xl);
  background: var(--c-ink);
  color: #fff;
  position: relative;
  overflow: hidden;
}
.vn-gauge::before {
  content: '';
  position: absolute;
  top: -60px; left: -60px;
  width: 280px; height: 280px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(212,96,44,.18) 0%, transparent 65%);
  pointer-events: none;
}
.vn-gauge::after {
  content: '';
  position: absolute;
  bottom: -40px; right: -40px;
  width: 200px; height: 200px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,255,255,.04) 0%, transparent 65%);
  pointer-events: none;
}

.vn-gauge__val {
  display: block;
  font-size: clamp(3.5rem, 6vw, 5.5rem);
  font-weight: 800;
  letter-spacing: -.04em;
  color: #fff;
  line-height: 1;
  margin-bottom: .35rem;
  position: relative;
}
.vn-gauge__accent { color: var(--c-accent); }

.vn-gauge__lbl {
  font-size: 14px;
  color: rgba(255,255,255,.55);
  font-weight: 500;
  letter-spacing: .04em;
  text-transform: uppercase;
  margin-bottom: 2rem;
  position: relative;
  display: block;
}

.vn-gauge__bar-track {
  height: 7px;
  border-radius: 4px;
  background: rgba(255,255,255,.1);
  overflow: hidden;
  position: relative;
  margin-bottom: .5rem;
}
.vn-gauge__bar-fill {
  height: 100%;
  width: 85%;
  border-radius: 4px;
  background: linear-gradient(90deg, #b84e1c, var(--c-accent), #e88040);
  transform-origin: left;
  animation: vn-bar-grow 1.4s 1s cubic-bezier(.65,0,.35,1) both;
}
@keyframes vn-bar-grow {
  from { transform: scaleX(0); }
  to   { transform: scaleX(1); }
}

.vn-gauge__bar-labels {
  display: flex;
  justify-content: space-between;
  font-size: 11px;
  color: rgba(255,255,255,.6);
  font-weight: 500;
  position: relative;
}


/* ─────────────────────────────────────────────────────
   STAGGERED SCROLL REVEAL — přesnější selektory
   ───────────────────────────────────────────────────── */
@media (prefers-reduced-motion: no-preference) {

  /* Základní reveal stav */
  .svc-card,
  .sit-card,
  .doc-check__item,
  .factor-col,
  .cmp-table-wrap,
  .vn-def,
  .vn-gauge {
    opacity: 0;
    transform: translateY(10px);
    transition:
      opacity .5s ease-out,
      transform .5s ease-out;
  }

  /* Viditelný stav */
  .sec.is-vis .svc-card,
  .sec.is-vis .sit-card,
  .sec.is-vis .doc-check__item,
  .sec.is-vis .factor-col,
  .sec.is-vis .cmp-table-wrap,
  .sec.is-vis .vn-def,
  .sec.is-vis .vn-gauge {
    opacity: 1;
    transform: translateY(0);
  }

  /* Stagger pro service grid */
  .sec.is-vis .svc-card:nth-child(1) { transition-delay: .00s; }
  .sec.is-vis .svc-card:nth-child(2) { transition-delay: .07s; }
  .sec.is-vis .svc-card:nth-child(3) { transition-delay: .14s; }
  .sec.is-vis .svc-card:nth-child(4) { transition-delay: .21s; }

  /* Stagger pro situation cards */
  .sec.is-vis .sit-card:nth-child(odd)  { transition-delay: .00s; }
  .sec.is-vis .sit-card:nth-child(even) { transition-delay: .09s; }

  /* Stagger pro doc checklist */
  .sec.is-vis .doc-check__item:nth-child(1) { transition-delay: .00s; }
  .sec.is-vis .doc-check__item:nth-child(2) { transition-delay: .06s; }
  .sec.is-vis .doc-check__item:nth-child(3) { transition-delay: .12s; }
  .sec.is-vis .doc-check__item:nth-child(4) { transition-delay: .18s; }
  .sec.is-vis .doc-check__item:nth-child(5) { transition-delay: .24s; }

  /* Stagger pro factor columns */
  .sec.is-vis .factor-col:nth-child(1) { transition-delay: .00s; }
  .sec.is-vis .factor-col:nth-child(2) { transition-delay: .08s; }
}


/* ─────────────────────────────────────────────────────
   DROBNÉ VYLEPŠENÍ SDÍLENÝCH KOMPONENT
   (neporušuje style.css, pouze zpřesňuje)
   ───────────────────────────────────────────────────── */

/* Silnější hover na process cards */
.proc {
  padding: 1.85rem 1.6rem 1.65rem;
  transition: box-shadow var(--vn-trans), transform var(--vn-trans), border-color var(--vn-trans);
}
.proc:hover {
  box-shadow: var(--vn-sh-float);
  transform: translateY(-2px);
  border-color: var(--vn-accent-border);
}

/* Zvýraznění čísla procesu */
.proc__n {
  width: 38px; height: 38px;
  border-radius: 10px;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .04em;
  color: var(--c-accent);
  background: var(--c-accent-soft);
  border: 1px solid rgba(212,96,44,.12);
  margin-bottom: 1rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background var(--vn-trans), color var(--vn-trans);
}
.proc:hover .proc__n {
  background: var(--c-accent);
  color: #fff;
}

/* Lepší trust strip */
.trust-strip__item {
  padding: 1.6rem 1.35rem;
  transition: background var(--vn-trans);
}
.trust-strip__item:hover { background: var(--c-cream); }

.trust-strip__ic {
  transition: background var(--vn-trans), color var(--vn-trans);
}
.trust-strip__item:hover .trust-strip__ic {
  background: var(--c-accent);
  color: #fff;
}

/* Lepší icon-row */
.icon-row {
  padding: 1.85rem 1.75rem;
  transition: box-shadow var(--vn-trans), transform var(--vn-trans), border-color var(--vn-trans);
}
.icon-row:hover {
  box-shadow: var(--vn-sh-float);
  transform: translateY(-2px);
  border-color: var(--vn-accent-border);
}

/* Lepší card-tr */
.card-tr {
  transition: box-shadow var(--vn-trans), transform var(--vn-trans), border-color var(--vn-trans);
}
.card-tr:hover {
  box-shadow: var(--vn-sh-float);
  transform: translateY(-2px);
  border-color: var(--vn-accent-border);
}

/* Vylepšení btn-main přes speciální třídu */
.btn-main {
  transition: background var(--vn-trans), border-color var(--vn-trans), transform .2s, box-shadow var(--vn-trans);
}

/* Jemnější accordion */
.accordion-item {
  transition: box-shadow var(--vn-trans);
}
.accordion-item:hover {
  box-shadow: var(--vn-sh-lift);
}
.accordion-button {
  transition: background var(--vn-trans), color var(--vn-trans);
}

/* Jemnější callout — blíže k designu */
.callout {
  padding: 1.4rem 1.85rem;
  background: rgba(212,96,44,.05);
  border-left-width: 4px;
  box-shadow: var(--vn-sh-lift);
}

/* CTA box jemnější shadow */
.cta-box {
  box-shadow: var(--vn-sh-deep);
}

/* Lepší about-stat */
.about-stat {
  box-shadow: 0 4px 24px rgba(12,18,37,.10), 0 0 0 1px var(--c-line);
}


/* ─────────────────────────────────────────────────────
   SEKCE — jemná hranice oddělení
   ───────────────────────────────────────────────────── */
.sec--white + .sec--cream,
.sec--cream + .sec--white,
.sec--white + .sec--process,
.sec--process + .sec--white {
  border-top: 1px solid var(--c-line);
}


/* ─────────────────────────────────────────────────────
   PRINT — doplněk
   ───────────────────────────────────────────────────── */
@media print {
  .svc-card, .sit-card, .factor-col, .cmp-table-wrap {
    opacity: 1 !important;
    transform: none !important;
    box-shadow: none !important;
  }
}
