/* Základní styly a proměnné pro Teal & Dark Mode */
:root {
  --primary-color: #37bfb5;
  --primary-color-light: #5cd1c6;
  --primary-color-dark: #2a9187;
  --primary-color-rgb: 55, 191, 181; /* Přidáno pro toggler ikonu */

  --text-color-light: #f0f0f0;
  --text-color-medium: #b0b0b0;
  --text-color-headings: #ffffff;

  --bg-dark-deep: #0a0a0a;
  --bg-dark-primary: #121212;
  --bg-dark-secondary: #1d1d1d;
  --bg-dark-tertiary: #2c2c2c;

  --gradient-heading: linear-gradient(120deg, var(--primary-color-light) 0%, var(--primary-color) 100%);
  --gradient-hero: linear-gradient(135deg, var(--bg-dark-deep) 0%, #1c2b2a 100%);

  /* Barvy pro panely v horizontálním scrollu */
  --panel-bg-1: #1a1a1a; /* Rezervace */
  --panel-bg-2: #181818; /* Zákaznický účet */
  --panel-bg-3: #161616; /* Personalizace */
  --panel-bg-5: #141414; /* Notifikace - nový panel */
  --panel-bg-4: #101010; /* CTA panel (zůstává poslední) */

  --border-color-dark: #282828;
  --navbar-height: 60px;
  --input-bg-dark: var(--bg-dark-secondary);
  --input-border-dark: var(--bg-dark-tertiary);
  --input-text-dark: var(--text-color-light);
  --placeholder-text-dark: #757575;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

body {
  font-family: "Montserrat", sans-serif;
  background-color: var(--bg-dark-primary);
  color: var(--text-color-light);
  /*padding-top: var(--navbar-height);*/
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

.text-primary {
  color: #37bfb5 !important;
}

.container {
  max-width: 1440px;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: 600;
  color: var(--text-color-headings);
  line-height: 1.3;
}
.lead {
  color: var(--text-color-medium);
  font-weight: 300;
}
.section-title {
  font-size: calc(1.6rem + 1.2vw);
  margin-bottom: 3rem;
  font-weight: 700;
  background: var(--gradient-heading);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  text-fill-color: transparent;
  display: inline-block;
}

/* Navbar */
.navbar {
  background-color: transparent !important;
  border-bottom: 0px solid transparent !important;
  min-height: var(--navbar-height);
  transition: background-color 0.35s ease-in-out, border-color 0.35s ease-in-out, box-shadow 0.35s ease-in-out;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  box-shadow: none;
  position: fixed;
  width: 100%;
  z-index: 1030;
}

.navbar.navbar-scrolled {
  background-color: rgba(18, 18, 18, 0.85) !important;
  border-bottom-color: var(--border-color-dark) !important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15);
}

.navbar-brand {
  transition: opacity 0.3s ease;
}
.navbar-brand img {
  transition: transform 0.3s ease-in-out;
}
.navbar-brand:hover img {
  transform: rotate(10deg) scale(1.1);
}

.nav-link {
  transition: color 0.2s ease-in-out, transform 0.2s ease;
  padding: 0.6rem 1rem !important;
  font-weight: 500;
  color: var(--text-color-light) !important;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
}

.navbar.navbar-scrolled .nav-link {
  color: var(--text-color-medium) !important;
  text-shadow: none;
}

.nav-link:hover,
.navbar.navbar-scrolled .nav-link:hover {
  color: var(--primary-color) !important;
  transform: translateY(-2px);
}

.nav-link.active,
.navbar.navbar-scrolled .nav-link.active {
  color: var(--primary-color) !important;
  font-weight: 600;
}

.navbar-toggler {
  border-color: rgba(224, 224, 224, 0.4);
  padding: 0.25rem 0.5rem;
}
.navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(240, 240, 240, 0.9)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}
/*
.navbar.navbar-scrolled .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(var(--primary-color-rgb),0.9)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}
*/
/* Hero Sekce */
#hero {
  min-height: calc(100vh - var(--navbar-height));
  background: var(--gradient-hero);
  color: var(--text-color-light);
  position: relative;
  overflow: hidden;
  padding: 4rem 0;
}
#hero h1 {
  font-size: calc(1.4rem + 1.6vw);
  font-weight: 700;
  margin-bottom: 1.5rem;
  line-height: 1.25;
  color: var(--text-color-headings);
  text-shadow: 0 2px 15px rgba(0, 0, 0, 0.5);
}
#hero .highlight {
  color: var(--primary-color);
}
#hero .lead {
  font-size: calc(0.9rem + 0.4vw);
  margin-bottom: 2.5rem;
  max-width: 600px;
  color: var(--text-color-medium);
}
#hero .btn {
  padding: 0.8rem 2rem;
  font-size: calc(0.85rem + 0.15vw);
  font-weight: 500;
  border-radius: 8px;
  transition: all 0.3s ease;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
#hero .btn-primary {
  background-color: var(--primary-color);
  border-color: var(--primary-color);
  color: var(--bg-dark-deep);
  box-shadow: 0 4px 15px rgba(55, 191, 181, 0.25);
}
#hero .btn-primary:hover {
  background-color: var(--primary-color-light);
  border-color: var(--primary-color-light);
  transform: translateY(-3px) scale(1.03);
  box-shadow: 0 6px 20px rgba(55, 191, 181, 0.35);
}
#hero .btn-outline-light {
  color: var(--text-color-light);
  border-color: var(--text-color-light);
  border-width: 2px;
}
#hero .btn-outline-light:hover {
  background-color: var(--text-color-light);
  color: var(--bg-dark-primary);
  transform: translateY(-3px) scale(1.03);
  box-shadow: 0 4px 15px rgba(240, 240, 240, 0.1);
}
#hero-image {
  max-width: 90%;
  animation: floatHeroImage 6s ease-in-out infinite;
  filter: drop-shadow(0 20px 35px rgba(0, 0, 0, 0.45));
}
@keyframes floatHeroImage {
  0%,
  100% {
    transform: translateY(0) rotate(-2deg);
  }
  50% {
    transform: translateY(-25px) rotate(2deg);
  }
}

/* Scroll Down Indicator */
.scroll-down-indicator {
  position: absolute; /* Nebo fixed, pokud má být vždy viditelný v rohu */
  bottom: 40px; /* Odsazení odspodu hero sekce */
  left: 50%;
  transform: translateX(-50%);
  width: 90px; /* Velikost kolečka */
  height: 90px; /* Velikost kolečka */
  cursor: pointer; /* Naznačuje interaktivitu (i když scroll je hlavní akce) */
  z-index: 10; /* Aby byl nad ostatním obsahem hero */
  opacity: 0; /* Začne neviditelný, objeví se s animací */
  animation: fadeInScrollIndicator 1s 1.5s forwards; /* Fade in po načtení hero animací */
}

@keyframes fadeInScrollIndicator {
  to {
    opacity: 0.85; /* Konečná průhlednost */
  }
}

.scroll-circle-svg {
  width: 100%;
  height: 100%;
}

.scroll-circle-svg .bg-circle {
  stroke-dasharray: 301.59; /* Obvod kruhu (2 * PI * 48) */
  stroke-dashoffset: 301.59;
  animation: drawCircle 1s 2s ease-out forwards; /* Animace vykreslení kruhu */
}

@keyframes drawCircle {
  to {
    stroke-dashoffset: 0;
  }
}

.scroll-circle-svg .rotating-text-g {
  transform-origin: center center;
  animation: rotateText 20s linear infinite; /* Pomalá nekonečná rotace textu */
}

@keyframes rotateText {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

.scroll-circle-svg .arrow-down {
  animation: bounceArrow 1.5s ease-in-out infinite; /* Pulzující/pohybující se šipka */
  transform-origin: center center;
}

@keyframes bounceArrow {
  0%,
  20%,
  50%,
  80%,
  100% {
    transform: translateY(0);
  }
  40% {
    transform: translateY(5px);
  }
  60% {
    transform: translateY(3px);
  }
}

/* Skrytí indikátoru po scrollu (řešeno v JS) */
.scroll-down-indicator.hidden {
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.5s ease, visibility 0s 0.5s;
}

/* Text Marquee Sekce */
#text-marquee {
  overflow: hidden;
  background-color: var(--bg-dark-secondary);
  border-top: 1px solid var(--border-color-dark);
  border-bottom: 1px solid var(--border-color-dark);
  padding: 0.85rem 0;
}
.marquee-wrapper {
  width: 100%;
  white-space: nowrap;
}
.marquee-content {
  display: inline-block;
  padding-left: 100%;
  animation: marquee-animation 45s linear infinite;
  font-size: calc(0.9rem + 0.2vw);
  font-weight: 500;
}
.marquee-content span {
  display: inline-block;
  padding: 0 2.5em;
  color: var(--text-color-medium);
}
.marquee-content span:nth-child(odd) {
  color: var(--primary-color);
}
.marquee-content span:nth-child(even) {
  color: var(--primary-color-light);
}

@keyframes marquee-animation {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}
#text-marquee:hover .marquee-content {
  animation-play-state: paused;
}

/* Intro Sekce s Parallax pozadím */
#intro-section {
  position: relative; /* Nutné pro absolutní pozicování overlaye a parallax pozadí */
  min-height: 80vh; /* Nebo pevná výška, např. 700px */
  padding: 6rem 0;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden; /* Skryje části parallax obrázku, které jsou mimo */
  color: var(--text-color-headings); /* Text bude světlý na tmavším pozadí */
}

.intro-background {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 130%; /* Větší výška než sekce, aby bylo co posouvat pro parallax */
  background-image: url("placeholder-intro-bg.webp"); /* NAHRAĎTE SVÝM OBRÁZKEM */
  background-size: cover;
  background-position: center center;
  background-attachment: fixed; /* Jednoduchý CSS parallax - alternativně GSAP */
  z-index: -2; /* Za obsahem i za overlayem */
  /* Pro GSAP parallax by se nastavovalo jinak (např. transform: translateY) */
}

/* Overlay pro lepší čitelnost textu nad obrázkem */
#intro-section::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(10, 10, 10, 0.75); /* Tmavý overlay s průhledností */
  z-index: -1; /* Mezi pozadím a obsahem */
}

.intro-content-container {
  position: relative; /* Aby byl nad overlayem */
  z-index: 1;
}

.intro-headline {
  /* .section-title již definuje gradient, můžeme ho zde použít nebo přepsat */
  /* Pokud chceme čistě bílý nadpis na tmavém pozadí: */
  /* color: var(--text-color-headings) !important; */
  /* background: none !important; */
  /* -webkit-text-fill-color: var(--text-color-headings) !important; */
  margin-bottom: 1.5rem;
  font-size: calc(1.4rem + 1.6vw);
}

.intro-paragraph {
  font-size: calc(1rem + 0.3vw);
  line-height: 1.7;
  font-weight: 300;
  color: var(--text-color-light); /* Světlejší text pro dobrou čitelnost */
  max-width: 750px; /* Omezení šířky pro lepší čitelnost */
  margin-left: auto;
  margin-right: auto;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); /* Jemný stín pro text */
}

.intro-btn {
  /* Tlačítko v intro sekci */
  padding: 0.8rem 2.2rem;
  font-size: calc(0.9rem + 0.15vw);
  font-weight: 500;
  /* Styly tlačítka (barvy atd.) jsou již definovány pro .btn-primary */
  background: var(--primary-color);
  border: 0;
}

.intro-btn:hover {
  background: var(--primary-color-light);
  border: 0;
}

/* Responzivita pro intro sekci */
@media (max-width: 767.98px) {
  #intro-section {
    min-height: 70vh;
    padding: 4rem 1rem;
  }
  .intro-headline {
    font-size: calc(1.8rem + 2.5vw);
  }
  .intro-paragraph {
    font-size: calc(0.95rem + 0.4vw);
  }
}

/* Text Zoom on Scroll Sekce */
#text-zoom-section {
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  background-color: var(--bg-dark-primary);
  overflow: hidden;
  position: relative;
}
.zoom-content-wrapper {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.zoom-text {
  font-size: 8vw;
  font-weight: 800;
  background: linear-gradient(135deg, var(--primary-color) 30%, var(--primary-color-light) 70%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  text-fill-color: transparent;
  text-transform: uppercase;
  letter-spacing: -0.02em;
  line-height: 1.1;
  padding: 0 0.2em;
  transform-origin: center center;
  will-change: transform, opacity;
  position: absolute;
  white-space: nowrap;
}
.zoom-text-2 {
  background: linear-gradient(135deg, var(--primary-color-light) 30%, #6ee6da 70%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  text-fill-color: transparent;
}
.zoom-text-3 {
  background: linear-gradient(135deg, var(--primary-color-light) 30%, #6ee6da 70%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  text-fill-color: transparent;
}

/* Horizontální Scroll Sekce */
.fullscreen-section {
  /* Předpokládáme, že toto je #horizontal-scroll-section */
  height: 100vh; /* Fallback */
  height: 100svh; /* Pro dynamickou výšku viewportu */
  position: relative; /* Pro správné pinnování a z-index kontext */
  overflow: hidden; /* KLÍČOVÉ: Ořízne přetékající obsah celé pinnované sekce */
  background-color: var(--bg-dark-deep);
  z-index: 1; /* Nižší než navbar, ale může být vyšší než jiné běžné sekce */
}
.horizontal-scroll-wrapper {
  height: 100%;
  width: 100%;
}
.horizontal-panels-container {
  height: 100%;
  display: flex;
  will-change: transform;
}
.scroll-panel {
  height: 100%; /* ZABÍRÁ 100% VÝŠKY RODIČE (.fullscreen-section) */
  width: 100vw;
  flex-shrink: 0;
  display: flex; /* Může pomoci s vnitřním layoutem, pokud je potřeba */
  /* align-items: center; ZAKOMENTOVÁNO - pokud je obsah vyšší, chceme, aby začínal nahoře */
  /* justify-content: center; ZAKOMENTOVÁNO - dtto */
  flex-direction: column; /* Pokud chcete, aby se obsah uvnitř (.container) centroval vertikálně, ale je to pro skrolovatelný obsah méně obvyklé */
  align-items: center; /* Pro horizontální centrování .container */
  justify-content: flex-start; /* OBSAH ZAČÍNÁ NAHOŘE panelu */

  color: var(--text-color-light);
  padding: var(--navbar-height) 40px 40px 40px; /* PŘIDÁN HORNÍ PADDING ROVNÝ VÝŠCE NAVBARU, aby obsah nezačínal pod ním */
  box-sizing: border-box;
  position: relative;
  overflow-y: auto; /* KLÍČOVÉ: UMOŽNÍ VERTIKÁLNÍ SKROLOVÁNÍ OBSAHU UVNITŘ TOHOTO PANELU */
  -webkit-overflow-scrolling: touch; /* Pro plynulejší skrolování na iOS */
}
.scroll-panel .container {
  max-width: 1140px;
  width: 100%; /* Aby se kontejner roztáhl a umožnil zarovnání obsahu */
  /* Pokud by .container měl sám o sobě fixní výšku a obsah by byl vyšší,
     pak by .container také potřeboval overflow-y: auto; ale je lepší to řešit na úrovni .scroll-panel */
}

/* Styly pro NOVOU Vertikální Sekci Funkcí */
#vertical-features-section {
  background-color: var(--bg-dark-primary); /* Nebo jiná vhodná barva pozadí */
}

.vertical-feature-item {
  /* Můžete přidat specifické styly, pokud je potřeba */
}

.vertical-feature-headline {
  font-size: calc(1.3rem + 1vw); /* Přizpůsobte velikost podle potřeby */
  color: var(--primary-color);
  margin-bottom: 0.75rem;
  font-weight: 600;
}

.vertical-feature-subheadline {
  font-size: calc(0.9rem + 0.2vw);
  color: var(--text-color-medium);
  line-height: 1.7;
  margin-bottom: 1.25rem;
}

.vertical-feature-image {
  max-width: 80%; /* Aby obrázek nebyl příliš velký na mobilech */
  margin-left: auto;
  margin-right: auto;
  border-radius: 8px;
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.2);
  /* Můžete přidat další efekty nebo ohraničení */
}

@media (min-width: 768px) {
  /* Styly pro tablety (MD breakpoint) */
  .vertical-feature-image {
    max-width: 100%; /* Na tabletech může být obrázek větší */
  }
}

/* Animace pro vertikální sekci (příklad - fade in a slide up) */
/* Tyto třídy budete muset dynamicky přidávat/odebírat pomocí GSAP */
.vf-item-animate {
  opacity: 0;
  transform: translateY(50px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.vf-item-animate.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.panel-text-content .panel-headline {
  font-size: calc(1.6rem + 1.5vw);
  margin-bottom: 1.5rem;
  line-height: 1.25;
  font-weight: 700;
  background: linear-gradient(to right, var(--primary-color-light), var(--primary-color));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  text-fill-color: transparent;
  overflow-wrap: break-word;
  word-break: break-word;
  hyphens: auto;
}
.panel-text-content .panel-subheadline {
  font-size: calc(0.9rem + 0.35vw);
  margin-bottom: 2rem;
  font-weight: 300;
  line-height: 1.7;
  max-width: 520px;
  color: var(--text-color-medium);
  overflow-wrap: break-word;
  word-break: break-word;
  hyphens: auto;
}
.panel-text-content .panel-btn,
.panel-text-content .panel-btn-cta {
  padding: 0.7rem 1.8rem;
  font-size: calc(0.85rem + 0.15vw);
  border-width: 2px;
  border-radius: 6px;
  transition: all 0.3s ease;
  text-transform: uppercase;
  font-weight: 500;
}
.panel-text-content .panel-btn {
  border-color: var(--primary-color);
  color: var(--primary-color);
}
.panel-text-content .panel-btn:hover {
  background-color: var(--primary-color);
  color: var(--bg-dark-deep);
  transform: translateY(-2px);
}
.panel-image {
  max-height: 65vh;
  object-fit: contain;
  filter: drop-shadow(0 10px 25px rgba(0, 0, 0, 0.55));
}
.panel-1 {
  background-color: var(--panel-bg-1);
}
.panel-2 {
  background-color: var(--panel-bg-2);
}
.panel-3 {
  background-color: var(--panel-bg-3);
}
.panel-5 {
  background-color: var(--panel-bg-5);
}
.panel-4 {
  background-color: var(--panel-bg-4);
}

.panel-4 .panel-btn-cta {
  background-color: var(--primary-color);
  color: var(--bg-dark-deep);
  border-color: var(--primary-color);
  box-shadow: 0 4px 15px rgba(55, 191, 181, 0.25);
}
.panel-4 .panel-btn-cta:hover {
  background-color: var(--primary-color-light);
  border-color: var(--primary-color-light);
  transform: translateY(-2px) scale(1.03);
}

/* Figma Prototyp v Telefonu Sekce (skrytá) */
#figma-prototype {
  /* Styly pro případ, že by byla viditelná */
  min-height: 100vh;
  height: auto;
  padding: 5rem 0;
  background-color: var(--bg-dark-secondary);
  display: flex;
  align-items: center;
  justify-content: center;
}
/* ... (styly pro phone-mockup atd. zde nejsou relevantní, pokud je sekce d-none) ... */

/* Sekce Kontakt */
#contact {
  background-color: var(--bg-dark-secondary);
  border-top: 1px solid var(--border-color-dark);
  padding: 5rem 0;
}
.form-label {
  color: var(--text-color-medium);
  margin-bottom: 0.5rem;
  font-size: 0.9rem;
  font-weight: 500;
}
.form-control {
  background-color: var(--input-bg-dark);
  border: 1px solid var(--input-border-dark);
  color: var(--input-text-dark);
  border-radius: 8px;
  padding: 0.9rem 1.2rem;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  font-size: 1rem;
}
.form-control::placeholder {
  color: var(--placeholder-text-dark);
  opacity: 0.7;
}
.form-control:focus {
  background-color: var(--input-bg-dark);
  color: var(--input-text-dark);
  border-color: var(--primary-color);
  box-shadow: 0 0 0 0.25rem rgba(55, 191, 181, 0.25);
}
#contact .btn-primary {
  background-color: var(--primary-color);
  border-color: var(--primary-color);
  padding: 0.8rem 2.5rem;
  font-size: 1.05rem;
  font-weight: 500;
  color: var(--bg-dark-deep);
  border-radius: 8px;
  transition: all 0.3s ease;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
#contact .btn-primary:hover {
  background-color: var(--primary-color-light);
  border-color: var(--primary-color-light);
  transform: translateY(-2px);
  box-shadow: 0 4px 15px rgba(55, 191, 181, 0.3);
}

/* Footer */
#footer {
  background-color: var(--bg-dark-deep);
  border-top: 1px solid var(--border-color-dark);
  padding: 2.5rem 0;
  color: var(--text-color-medium);
}
#footer p {
  font-size: 0.9rem;
  margin-bottom: 0.25rem;
}
#footer .small {
  font-size: 0.8rem;
  opacity: 0.7;
}
#current-year {
  font-weight: normal;
}

/* Responzivita */
@media (max-width: 991.98px) {
  #hero h1 {
    font-size: calc(1.7rem + 2vw);
  }
  #hero .lead {
    font-size: calc(0.85rem + 0.35vw);
  }
  .hero-text-content {
    text-align: center;
  }
  #hero-image {
    max-width: 75%;
    margin-top: 3rem;
  }
  .panel-text-content .panel-headline {
    font-size: calc(1.5rem + 1.6vw);
  }
  .panel-text-content .panel-subheadline {
    font-size: calc(0.85rem + 0.3vw);
  }
  .panel-image {
    max-height: 55vh;
  }
  .zoom-text {
    font-size: 10vw;
  }
}
@media (max-width: 767.98px) {
  body {
    padding-top: var(--navbar-height);
  }
  #hero h1 {
    font-size: calc(1.6rem + 2.2vw);
  }
  #hero .btn-lg {
    width: 100%;
    margin-bottom: 1rem;
  }
  #hero .btn-lg.me-md-3 {
    margin-right: 0 !important;
  }
  .marquee-content {
    font-size: 0.8rem;
    animation-duration: 30s;
  }
  .marquee-content span {
    padding: 0 1.5em;
  }
  .zoom-text {
    font-size: 12vw;
    line-height: 1.2;
  }
  .scroll-panel {
    padding: 30px 20px;
  }
  .scroll-panel .row {
    flex-direction: column;
    text-align: center;
  }
  .panel-text-content,
  .panel-image-content {
    width: 100% !important;
  }
  .panel-text-content .panel-subheadline {
    margin-left: auto;
    margin-right: auto;
  }
  .panel-image-content {
    margin-top: 2.5rem;
  }
  .panel-image {
    max-height: 45vh;
  }
  .scroll-panel .row.flex-md-row-reverse .panel-text-content {
    order: -1;
  }
  .scroll-panel .row.flex-md-row-reverse .panel-image-content {
    margin-top: 2.5rem;
  }
}








/* Klíčové Funkce - Jednotná Sekce */
#key-features {
  background-color: var(--bg-dark-primary); /* Nebo jiná vhodná barva pozadí */
  border-top: 1px solid var(--border-color-dark);
  overflow: hidden; /* Pro případné animace, aby prvky nevyskakovaly předčasně */
}

.feature-block {
  /* Můžete přidat border-bottom, pokud chcete oddělovače mezi bloky */
  /* border-bottom: 1px solid var(--border-color-dark); */
  /* padding-bottom: 3rem; */
  /* margin-bottom: 3rem; */
}
.feature-block:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}

.feature-headline {
  font-size: calc(1.4rem + 1.1vw);
  color: var(--primary-color);
  margin-bottom: 1rem;
  font-weight: 600;
}

.feature-subheadline {
  font-size: calc(0.9rem + 0.25vw);
  color: var(--text-color-medium);
  line-height: 1.7;
  margin-bottom: 1.5rem;
}

.feature-image {
  max-width: 85%;
  /* filter: drop-shadow(0 10px 25px rgba(0, 0, 0, 0.55)); původní styl z panelů */
}

.feature-btn {
  padding: 0.7rem 1.8rem;
  font-size: calc(0.85rem + 0.15vw);
  border-width: 2px;
  border-radius: 6px;
  transition: all 0.3s ease;
  text-transform: uppercase;
  font-weight: 500;
  border-color: var(--primary-color);
  color: var(--primary-color);
}

.feature-btn:hover {
  background-color: var(--primary-color);
  color: var(--bg-dark-deep);
  transform: translateY(-2px);
}

#key-features .btn-primary { /* Pro hlavní CTA na konci sekce */
  background-color: var(--primary-color);
  border-color: var(--primary-color);
  color: var(--bg-dark-deep);
  box-shadow: 0 4px 15px rgba(var(--primary-color-rgb), 0.25);
}
#key-features .btn-primary:hover {
  background-color: var(--primary-color-light);
  border-color: var(--primary-color-light);
  transform: translateY(-3px) scale(1.03);
  box-shadow: 0 6px 20px rgba(var(--primary-color-rgb), 0.35);
}


@media (min-width: 768px) { /* md breakpoint */
  .feature-image-col {
     /* Pro lepší zarovnání, pokud je text delší než obrázek */
    display: flex;
    align-items: center;
    justify-content: center;
  }
   .feature-image {
    max-width: 85%;
  }
}

@media (max-width: 767.98px) { /* pod md breakpoint */
  .feature-headline {
    font-size: calc(1.3rem + 1.5vw);
  }
  .feature-subheadline {
    font-size: calc(0.9rem + 0.4vw);
  }
  .feature-image {
    max-width: 75%; /* Menší na mobilech */
    margin-left: auto;
    margin-right: auto;
  }
}