/* Landing page – dark B2B SaaS, technical, minimal. Consistent with app UI. */

/* Smooth scroll (anchor links + programmatic) */
html:has(.landingMain) {
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  html:has(.landingMain) {
    scroll-behavior: auto;
  }
}

body:has(.landingMain) {
  height: auto;
  min-height: 100vh;
  overflow-x: hidden;
  overflow-y: auto;
}

/* Scroll progress bar – thin line at top */
.landingScrollProgress {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  z-index: 1000;
  background: transparent;
  pointer-events: none;
}

.landingScrollProgress__bar {
  height: 100%;
  width: 0%;
  background: var(--line);
  transition: width 0.08s ease-out;
}

@media (prefers-reduced-motion: reduce) {
  .landingScrollProgress__bar {
    transition: none;
  }
}

.landingMain {
  flex: 1;
  display: flex;
  flex-direction: column;
}

/* Section spacing: large vertical gap between sections */
.landingSection {
  padding: clamp(3rem, 8vw, 5rem) 1.5rem;
  max-width: 960px;
  margin: 0 auto;
  width: 100%;
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.5s ease-out, transform 0.5s ease-out;
}

.landingSection.is-visible {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .landingSection {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .landingSection.is-visible {
    opacity: 1;
    transform: none;
  }
}

.landingSection__inner {
  width: 100%;
}

.landingSection__title {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--text);
  margin: 0 0 0.75rem 0;
  letter-spacing: 0.02em;
}

.landingSection__intro {
  font-size: 0.9375rem;
  color: var(--muted);
  margin: 0 0 2rem 0;
  max-width: 42ch;
  line-height: 1.5;
}

/* ----- Hero ----- */
.landingSection--hero {
  padding-top: clamp(4rem, 12vw, 7rem);
  padding-bottom: clamp(4rem, 12vw, 7rem);
}

.landingHero {
  text-align: left;
}

.landingHero__title {
  font-size: clamp(1.75rem, 4vw, 2.25rem);
  font-weight: 600;
  color: var(--text);
  margin: 0 0 1rem 0;
  line-height: 1.25;
  letter-spacing: 0.01em;
}

.landingHero__subtitle {
  font-size: 1rem;
  color: var(--muted);
  margin: 0 0 2rem 0;
  max-width: 48ch;
  line-height: 1.5;
}

.landingHero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  margin-bottom: 1.5rem;
}

.landingHero__cta {
  display: inline-flex;
  align-items: center;
  padding: 0.6rem 1.25rem;
  font-size: 0.9375rem;
  font-weight: 500;
  border-radius: 6px;
  text-decoration: none;
  background: var(--primary);
  color: var(--primaryText);
  border: none;
  cursor: pointer;
}

.landingHero__cta:hover {
  filter: brightness(0.95);
}

.landingHero__link {
  display: inline-flex;
  align-items: center;
  padding: 0.6rem 1.25rem;
  font-size: 0.9375rem;
  color: var(--muted);
  text-decoration: none;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: transparent;
}

.landingHero__link:hover {
  color: var(--text);
  background: var(--hover);
}

.landingHero__bullets {
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 0.9375rem;
  color: var(--muted);
  line-height: 1.6;
}

.landingHero__bullets li {
  position: relative;
  padding-left: 1.25rem;
  margin-bottom: 0.5rem;
}

.landingHero__bullets li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.5em;
  width: 4px;
  height: 4px;
  border-radius: 2px;
  background: var(--line);
}

/* ----- Feature grid: 3–4 cards, slightly lighter dark ----- */
.landingGrid {
  display: grid;
  gap: 1.25rem;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}

.landingGrid--features {
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}

.landingCard {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 1.25rem;
}

.landingCard h3 {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--text);
  margin: 0 0 0.5rem 0;
}

.landingCard p {
  font-size: 0.875rem;
  color: var(--muted);
  margin: 0;
  line-height: 1.5;
}

/* ----- Workflow: horizontal 4 steps ----- */
.landingSteps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}

@media (max-width: 800px) {
  .landingSteps {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 480px) {
  .landingSteps {
    grid-template-columns: 1fr;
  }
}

.landingStep {
  padding: 0;
}

.landingStep__num {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--muted);
  margin-bottom: 0.35rem;
}

.landingStep h3 {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--text);
  margin: 0 0 0.35rem 0;
}

.landingStep p {
  font-size: 0.8125rem;
  color: var(--muted);
  margin: 0;
  line-height: 1.5;
}

/* ----- Pricing: light grey panel on dark ----- */
.landingSection--pricing {
  padding-top: clamp(3rem, 8vw, 5rem);
  padding-bottom: clamp(3rem, 8vw, 5rem);
}

.landingPricingWrap {
  max-width: 420px;
  margin: 0 auto;
}

.landingPricingPanel {
  background: #e5e6e8;
  color: #1f2937;
  border-radius: 6px;
  padding: 2rem;
  border: 1px solid rgba(0, 0, 0, 0.06);
}

.landingPricing__planName {
  font-size: 0.9375rem;
  font-weight: 600;
  color: #374151;
  margin-bottom: 1rem;
}

.landingPricing__prices {
  margin-bottom: 0.75rem;
}

.landingPricing__standard {
  font-size: 0.8125rem;
  color: #6b7280;
  text-decoration: line-through;
  margin-bottom: 0.25rem;
}

.landingPricing__current {
  font-size: 1.75rem;
  font-weight: 600;
  color: #111827;
}

.landingPricing__note {
  font-size: 0.8125rem;
  color: #4b5563;
  margin: 0 0 1.5rem 0;
  line-height: 1.45;
}

.landingPricing__features {
  list-style: none;
  margin: 0 0 1.5rem 0;
  padding: 0;
  font-size: 0.875rem;
  color: #374151;
  line-height: 1.7;
}

.landingPricing__features li {
  position: relative;
  padding-left: 1.25rem;
  margin-bottom: 0.35rem;
}

.landingPricing__features li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.5em;
  width: 4px;
  height: 4px;
  border-radius: 2px;
  background: #9ca3af;
}

.landingPricing__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 0.75rem 1.25rem;
  font-size: 0.9375rem;
  font-weight: 500;
  border-radius: 6px;
  text-decoration: none;
  background: #1f2937;
  color: #f3f4f6;
  border: none;
  cursor: pointer;
  margin-bottom: 0.75rem;
}

.landingPricing__cta:hover {
  background: #374151;
}

.landingPricing__micro {
  font-size: 0.75rem;
  color: #6b7280;
  margin: 0;
  line-height: 1.4;
}

/* ----- Who it's for: 4 cards ----- */
.landingGrid--for {
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
}

.landingGrid--for .landingCard p {
  font-size: 0.875rem;
}

/* ----- Roadmap: minimal block ----- */
.landingSection--roadmap .landingSection__intro {
  margin-bottom: 1.25rem;
}

.landingRoadmapList {
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 0.9375rem;
  color: var(--muted);
}

.landingRoadmapList li {
  padding: 0.6rem 0;
  border-bottom: 1px solid var(--line);
}

.landingRoadmapList li:last-child {
  border-bottom: none;
}

.landingRoadmap__note {
  font-size: 0.8125rem;
  color: var(--muted);
  margin: 1.5rem 0 0 0;
  padding-top: 1rem;
  border-top: 1px solid var(--line);
  max-width: 50ch;
}

/* ----- Footer ----- */
.landingFooter {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 1.5rem;
  padding: 2rem 1.5rem;
  margin-top: 3rem;
  border-top: 1px solid var(--line);
  background: var(--panel);
  font-size: 0.875rem;
}

.landingFooter__left {
  max-width: 280px;
}

.landingFooter__product {
  font-weight: 600;
  color: var(--text);
  margin-bottom: 0.35rem;
}

.landingFooter__note {
  color: var(--muted);
  font-size: 0.8125rem;
  line-height: 1.45;
}

.landingFooter__right {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
}

.landingFooter__col h4 {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin: 0 0 0.5rem 0;
}

.landingFooter__col a,
.landingFooter__col p {
  display: block;
  color: var(--text);
  text-decoration: none;
  margin: 0 0 0.35rem 0;
  font-size: 0.875rem;
}

.landingFooter__col a:hover {
  color: var(--muted);
}

.landingFooter__micro {
  font-size: 0.8125rem;
  color: var(--muted);
  margin-top: 0.5rem;
  max-width: 220px;
}
/* 1) Layout width & section spacing */
.landingSection {
  max-width: 1100px;          /* was 960px */
  padding: 4.5rem 1.5rem;     /* a bit more breathing room */
}

/* keep hero comfortable but not too tall */
.landingSection--hero {
  padding-top: 5.5rem;
  padding-bottom: 4.5rem;
}

/* 2) Hero hierarchy */
.landingHero__title {
  font-size: clamp(2.2rem, 5vw, 3rem); /* was clamp(1.75rem, 4vw, 2.25rem) */
  line-height: 1.15;
  letter-spacing: -0.02em;
}

.landingHero__subtitle {
  font-size: 1.1rem; /* slightly larger */
  max-width: 60ch;
}

/* reduce bullet density a touch */
.landingHero__bullets {
  gap: 0.5rem;
  max-width: 60ch;
}

/* 3) Section titles – more modern size */
.landingSection__title {
  font-size: 1.5rem; /* was 1.25rem */
  line-height: 1.25;
}

.landingSection__intro {
  max-width: 70ch;
}

/* 4) Grids – a bit more air */
.landingGrid {
  gap: 1.25rem; /* was 1rem */
}

.landingCard {
  padding: 1.25rem; /* was 1rem */
  border-radius: 10px; /* was 8px – slightly more modern */
}

/* 5) Workflow spacing */
.landingSteps {
  gap: 2rem; /* was 1.5rem */
}

.landingStep {
  padding-right: 0.75rem;
}

.landingStep__num {
  width: 2.2rem;
  height: 2.2rem;
  font-size: 0.95rem;
}

/* 6) Pricing – the main “premium” upgrade */
.landingSection--pricing {
  padding-top: 5.5rem;
  padding-bottom: 5.5rem;
}

.landingPricingPanel {
  padding: 2.75rem;      /* was 2rem */
  border-radius: 10px;   /* was 6px */
  max-width: 820px;      /* give it a confident width */
}

.landingPricing__planName {
  font-size: 1.1rem;
  letter-spacing: 0.02em;
}

.landingPricing__standard {
  font-size: 1rem; /* make it clearly secondary */
}

.landingPricing__current {
  font-size: 2.25rem; /* was 1.75rem */
  line-height: 1.1;
}

.landingPricing__note {
  max-width: 62ch;
}

.landingPricing__features {
  margin-top: 1.25rem;
  margin-bottom: 1.5rem;
  gap: 0.55rem;
}

.landingPricing__cta {
  padding: 0.9rem 1.2rem; /* slightly bigger, still clean */
  border-radius: 10px;
}

/* 7) Subtle section rhythm on dark background (very light) */
#features,
#for {
  background: rgba(255, 255, 255, 0.02);
  border-radius: 14px;
}

/* ensure inner content aligns when section has background */
#features .landingSection__inner,
#for .landingSection__inner {
  padding: 1.25rem 1.25rem;
}

@media (max-width: 640px) {
  #features .landingSection__inner,
  #for .landingSection__inner {
    padding: 1rem;
  }
}

/* 8) Footer separation – a touch darker to feel “base” */
.landingFooter {
  background: rgba(0, 0, 0, 0.25);
}

/* 9) Progress bar – a bit cleaner */
.landingScrollProgress {
  height: 2px; /* was 3px */
}

/* 10) Mobile tweaks – sloučeno do 640px bloku níže */

/* ========== Responsive landing (mobil / tablet) ========== */

/* Topbar: skrýt podtitul, zachovat čitelný název */
@media (max-width: 768px) {
  body:has(.landingMain) .topbar .topbar__left {
    min-width: 0;
  }

  body:has(.landingMain) .appTitle__sub {
    display: none;
  }

  body:has(.landingMain) .topbar {
    padding: 10px 12px;
    flex-wrap: wrap;
    gap: 8px;
  }

  body:has(.landingMain) .topbar__right {
    gap: 8px;
  }

  body:has(.landingMain) .langSwitch__btn {
    padding: 6px 10px;
    font-size: 12px;
    min-height: 36px;
  }

  body:has(.landingMain) .appTitle__main {
    font-size: 1rem;
  }

  body:has(.landingMain) .topbar__login {
    font-size: 0.9375rem;
    padding: 6px 12px;
  }
}

@media (max-width: 480px) {
  body:has(.landingMain) .topbar__right {
    width: 100%;
    justify-content: flex-end;
  }
}

/* Sekce + typografie: čitelné fonty na mobilu (min. 16px pro tělo textu) */
@media (max-width: 640px) {
  .landingSection {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
    max-width: 100%;
    box-sizing: border-box;
  }

  .landingSection--hero {
    padding-top: clamp(2.5rem, 10vw, 4rem);
    padding-bottom: clamp(2.5rem, 10vw, 4rem);
  }

  .landingSection__title {
    font-size: 1.5rem;
    margin-bottom: 0.5rem;
  }

  .landingSection__intro {
    font-size: 1rem;
    line-height: 1.5;
    margin-bottom: 1.5rem;
  }
}

/* Hero: větší text, CTA pod sebe, touch-friendly */
@media (max-width: 640px) {
  .landingHero__title {
    font-size: clamp(1.75rem, 7vw, 2.25rem);
    line-height: 1.2;
  }

  .landingHero__subtitle {
    font-size: 1.0625rem;
    line-height: 1.55;
    margin-bottom: 1.5rem;
  }

  .landingHero__actions {
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
  }

  .landingHero__cta,
  .landingHero__link {
    justify-content: center;
    min-height: 48px;
    padding: 0.875rem 1.25rem;
    font-size: 1rem;
  }

  .landingHero__bullets {
    font-size: 1rem;
    line-height: 1.6;
  }

  .landingHero__bullets li {
    margin-bottom: 0.6rem;
  }
}

/* Mřížky: na úzkých 1 sloupec, čitelné karty */
@media (max-width: 520px) {
  .landingGrid,
  .landingGrid--features,
  .landingGrid--for {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }

  .landingCard {
    padding: 1.25rem;
  }

  .landingCard h3 {
    font-size: 1.0625rem;
    margin-bottom: 0.5rem;
  }

  .landingCard p {
    font-size: 1rem;
    line-height: 1.55;
  }
}

/* Workflow kroky: čitelné fonty */
@media (max-width: 640px) {
  .landingSteps {
    gap: 1.5rem;
  }

  .landingStep__num {
    font-size: 1rem;
  }

  .landingStep h3 {
    font-size: 1.0625rem;
    margin-bottom: 0.4rem;
  }

  .landingStep p {
    font-size: 1rem;
    line-height: 1.5;
  }
}

/* Pricing: plná šířka, čitelné fonty */
@media (max-width: 640px) {
  .landingPricingWrap {
    max-width: 100%;
  }

  .landingPricingPanel {
    padding: 1.75rem 1.5rem;
    max-width: 100%;
    box-sizing: border-box;
  }

  .landingPricing__planName {
    font-size: 1.125rem;
  }

  .landingPricing__standard {
    font-size: 1rem;
  }

  .landingPricing__current {
    font-size: 2rem;
  }

  .landingPricing__note {
    font-size: 0.9375rem;
    line-height: 1.5;
  }

  .landingPricing__features {
    font-size: 1rem;
    line-height: 1.6;
  }

  .landingPricing__features li {
    margin-bottom: 0.5rem;
  }

  .landingPricing__cta {
    min-height: 52px;
    font-size: 1rem;
    padding: 1rem 1.25rem;
  }

  .landingPricing__micro {
    font-size: 0.875rem;
  }
}

/* Footer: sloupce pod sebe, čitelné odkazy */
@media (max-width: 640px) {
  .landingFooter {
    flex-direction: column;
    align-items: flex-start;
    padding: 1.75rem 1.25rem;
    margin-top: 2rem;
    gap: 1.5rem;
    font-size: 1rem;
  }

  .landingFooter__left {
    max-width: 100%;
  }

  .landingFooter__product {
    font-size: 1rem;
  }

  .landingFooter__note {
    font-size: 0.9375rem;
    line-height: 1.5;
  }

  .landingFooter__right {
    flex-direction: column;
    gap: 1.25rem;
  }

  .landingFooter__col {
    width: 100%;
  }

  .landingFooter__col h4 {
    font-size: 0.8125rem;
  }

  .landingFooter__col a,
  .landingFooter__col p {
    font-size: 1rem;
    margin-bottom: 0.5rem;
  }

  .landingFooter__micro {
    max-width: 100%;
    font-size: 0.9375rem;
  }
}

/* Roadmap: čitelné položky */
@media (max-width: 640px) {
  .landingRoadmapList {
    font-size: 1rem;
    line-height: 1.5;
  }

  .landingRoadmapList li {
    padding: 0.75rem 0;
  }

  .landingRoadmap__note {
    font-size: 0.9375rem;
    margin-top: 1rem;
    line-height: 1.5;
  }
}

.landingSection__inner,
.landingHero,
.landingPricingWrap,
.landingFooter {
  max-width: 100%;
  box-sizing: border-box;
}