/* RESET */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: 'Garamond', serif;
  background-color: #f9f9f4;
  color: #183c1f;
  line-height: 1.3;
  font-size: 21px; /* Desktopová velikost, přepsaná v media query */
}

.max-width {
  max-width: 70%; /* Desktopová hodnota */
  margin: 0 auto;
  padding: 0.5rem 0.5rem;
}

/* HLAVICKA */
.hlavicka {
  background-image: url('img/pozadi3.jpg');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding: 0.5rem 0.5rem;
  text-align: center;
}

.hlavicka-wrapper {
  max-width: 100%;
  margin: 0 auto;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.2rem;
  flex-wrap: wrap;
}

.logo-box {
  display: flex;
  align-items: center;
  gap: 12rem;
  flex-wrap: wrap;
  justify-content: center;
}

.logo {
  width: 40%;
  max-width: 40%;
  height: auto;
  display: block;
}

.slogan {
  font-size: 3.5rem;
  font-weight: bold;
  width: 100%;
  text-align: center;
  margin-bottom: 0.2rem;
  color: #0f6c1d;
}

/* DESKTOP NAVIGACE */
#desktop-nav {
  background-color: #0f6c1d;
  padding: 1rem;
  text-align: center;
}

#desktop-nav .nav-links {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
}

#desktop-nav a {
  margin: 0 1.5rem;
  text-decoration: none;
  color: #ffffff;
  font-weight: bold;
  font-size: 1.5rem;
  white-space: nowrap;
  padding: 0rem 0;
}

#desktop-nav a:hover {
  color: #86ba27;
}

/* DROPDOWN MENU - pouze pro desktop */
.dropdown {
  position: relative;
  display: inline-block;
}

.dropdown-content {
  display: none;
  position: absolute;
  background-color: #f9f9f4;
  min-width: 220px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.1);
  z-index: 1;
  left: 50%;
  transform: translateX(-50%);
  top: 100%;
}

.dropdown-content a {
  display: block;
  width: 100%;
  box-sizing: border-box;
  margin: 0;
  color: #1c3e24;
  padding: 0.75rem 1rem;
  text-align: left;
  font-size: 0.8rem;
  white-space: normal;
}

.dropdown-content a:hover {
  background-color: #3fac13;
  color: #1c3e24;
}

.dropdown:hover .dropdown-content {
  display: block;
}

/* HAMBURGER MENU BUTTON - ZATÍM SKRYTÝ NA DESKTOPU */
.hamburger-menu {
  display: none;
}

/* MOBILNÍ NAVIGACE (VYSOUVACÍ MENU) - ZATÍM SKRYTÁ NA DESKTOPU */
#mobile-nav {
  display: none;
}

/* SEKCIE A BLOKY */
.uvod {
  text-align: center;
  background-color: #ecfce8;
  padding: 0rem 0rem;
}

.uvodni-text {
  font-size: 1.5rem;
  color: #0f6c1d;
  max-width: 70%;
  margin-left: auto;
  margin-right: auto;
  padding: 0;
}

.cta-button {
  display: inline-block;
  background-color: #3a914b;
  color: white;
  padding: 0.75rem 1.5rem;
  border-radius: 5px;
  text-decoration: none;
  font-weight: bold;
  transition: background-color 0.3s ease;
  font-size: 1.2rem;
}

.cta-button:hover {
  background-color: #2c7239;
}

.blok {
  padding: 1rem 1rem;
  margin: auto;
}

.blok h2 {
  font-size: 2rem;
  color: #1c3e24;
  margin-bottom: 1rem;
  text-align: center;
}

.blok img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 1rem auto;
}

/* O MNĚ */
.o-mne-wrapper {
  display: flex;
  align-items: flex-start;
  gap: 2rem;
  flex-wrap: wrap;
  padding: 1rem;
  background-color: #f9f9f4;
  border-radius: 10px;
}

.hero-photo {
  width: 300px;
  height: auto;
  border-radius: 10px;
  object-fit: cover;
  display: block;
  margin: 0;
}

.o-mne-text {
  flex: 1;
  min-width: 30%;
  margin-bottom: 1rem;
}

.o-mne-text h2 {
  font-size: 2rem;
  margin-bottom: 1rem;
  color: #1c3e24;
}

.o-mne-text p {
  margin-bottom: 1rem;
  text-align: justify;
}

.o-mne-text ul {
  padding-left: 2rem;
  margin-bottom: 1rem;
}

.o-mne-text li {
  margin-bottom: 0.5rem;
  line-height: 1.5;
}

/* SLUŽBY */
#o-koucovani .max-width,
#sluzby .max-width,
#reference .max-width {
  background-color: #f9f9f4;
  padding: 1rem;
  border-radius: 10px;
}

.sluzby-box {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.sluzby-flex {
  flex-direction: row;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 2rem;
}

.sluzba {
  background-color: #e4f7e7;
  border-left: 5px solid #0f6c1d;
  border-radius: 6px;
  flex: 1 1 30%;
  min-width: 30%;
  text-align: center;
}

.sluzba-item-link {
  display: block;
  padding: 1rem;
  text-decoration: none;
  color: inherit;
  transition: background-color 0.3s ease;
  height: 100%;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
}

.sluzba-item-link:hover {
  background-color: rgba(15, 108, 29, 0.1);
  cursor: pointer;
}

.sluzba img {
  width: 100px;
  height: auto;
  margin-bottom: 1rem;
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.sluzba-tlacitko-objekt {
  display: inline-block;
  background-color: #3fac13;
  color: white;
  padding: 8px 14px;
  border-radius: 8px;
  font-size: 0.9rem;
  font-weight: bold;
  text-align: center;
  line-height: 1.2;
  box-sizing: border-box;
  margin-top: 1.5rem;
  margin-left: auto;
  margin-right: auto;
  white-space: nowrap;
  min-width: 120px;
}

/* REFERENCE */
.reference-box {
  display: flex;
  gap: 2rem;
  flex-wrap: wrap;
  justify-content: center;
}

.reference {
  background-color: #e4f7e7;
  border-left: 5px solid #0f6c1d;
  padding: 1rem;
  border-radius: 6px;
  width: 30%;
  min-width: 30%;
}

.reference span {
  display: block;
  margin-top: 0.5rem;
  font-style: italic;
  color: #3a5f3c;
}

.reference-more-button {
  display: block;
  margin: 2rem auto;
  background-color: #3fac13;
  color: white;
  padding: 8px 14px;
  border-radius: 8px;
  font-size: 0.9rem;
  font-weight: bold;
  text-align: center;
  line-height: 1.2;
  box-sizing: border-box;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.3s;
  max-width: 280px;
  white-space: nowrap;
}

.reference-more-button:hover {
  background-color: #0f6c1d;
  color: white;
}

/* KONTAKT */
.kontakt-form {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  max-width: 60%;
  margin: auto;
}

.kontakt-form input,
.kontakt-form textarea,
.kontakt-form button {
  padding: 0.75rem;
  font-size: 1rem;
  border-radius: 4px;
  border: 1px solid #ccc;
}

.kontakt-form button {
  background-color: #3a914b;
  color: white;
  border: none;
  cursor: pointer;
  transition: background-color 0.3s ease;
}

.kontakt-form button:hover {
  background-color: #2c7239;
}

footer {
  text-align: center;
  background-color: #d6f5d6;
  padding: 1rem;
  margin-top: 2rem;
  font-size: 1.2rem;
}

.moje-tlacitko {
  display: block;
  font-family: 'Georgia', serif;
  font-weight: bold;
  width: 100%;
  max-width: 400px;
  margin: 20px auto;
  background-color: #3fac13;
  color: white;
  padding: 12px 16px;
  border: none;
  border-radius: 8px;
  font-size: 18px;
  cursor: pointer;
  transition: background-color 0.3s;
  text-align: center;
  text-decoration: none;
  line-height: 1;
  box-sizing: border-box;
}

.moje-tlacitko:hover {
  background-color: #0f6c1d;
  color: white;
}
/* Styly pro wrapper kontaktního formuláře */
.kontakt-formular-wrapper {
    flex: 0 0 calc(60% - 1rem);
    min-width: 450px;
    box-sizing: border-box;
}

.kontakt-formular-wrapper h3 {
    font-size: 1.6rem;
    color: #1c3e24;
    margin-bottom: 1rem;
    text-align: center;
    margin-top: 0;
    padding-top: 0;
}

/* Styly pro samotný kontaktní formulář */
.kontakt-form {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 1.5rem;
    background-color: #f9f9f4;
    border-radius: 8px;
    border: 1px solid #e0e0e0;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    width: 100%;
    box-sizing: border-box;
}
/* === KONTAKT – layout vedle sebe na desktopu === */
.kontakt-formular-wrapper {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  justify-content: space-between;
  align-items: flex-start;
}

.kontakt-detaily,
.kontakt-form {
  flex: 1 1 45%;
  box-sizing: border-box;
}

/* === Responsivní zobrazení pod sebou na menších zařízeních === */
@media screen and (max-width: 768px) {
  .kontakt-detaily,
  .kontakt-form {
    flex: 1 1 100%;
  }
}
/* MEDIA QUERIES pro RESPONZIVITU (MOBIL A TABLET) */
@media screen and (max-width: 900px) {
  /* Skryjeme desktopovou navigaci */
  #desktop-nav {
    display: none;
  }

  /* Zvětšení loga v mobilním zobrazení (fotka kouče v hlavičce) */
  .hlavicka-wrapper .logo-box .logo {
      width: 80%;
      max-width: none;
      height: auto;
      display: block;
      margin: 0 auto;
  }

  /* Zobrazíme hamburger menu button */
  .hamburger-menu {
    display: block;
    position: fixed;
    top: 0.5rem;
    right: 0.5rem;
    background-color: #0f6c1d;
    border: none;
    font-size: 1.8rem;
    color: #ffffff;
    cursor: pointer;
    padding: 0.5rem 0.75rem;
    border-radius: 5px;
    z-index: 2000;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
  }

  /* Styly pro mobilní vysouvací menu */
  #mobile-nav {
    display: flex;
    flex-direction: column;
    position: fixed;
    top: 0;
    right: 0;
    width: 80%;
    max-width: 350px;
    height: 100%;
    background-color: #0f6c1d;
    justify-content: center;
    align-items: center;
    z-index: 1500;
    transform: translateX(100%);
    transition: transform 0.3s ease-in-out;
    box-shadow: -5px 0 15px rgba(0,0,0,0.3);
  }

  #mobile-nav.active {
    transform: translateX(0);
  }

  #mobile-nav a {
    margin: 1rem 0;
    font-size: 1.7rem;
    color: #ffffff;
    text-decoration: none;
    width: 100%;
    text-align: center;
    padding: 0.5rem 0;
  }

  #mobile-nav a:hover {
    color: #86ba27;
  }

  /* Sjednocené ROZŠÍŘENÍ .max-width pro mobil - KLÍČOVÉ PRO VŠECHEN HLAVNÍ OBSAH */
  .max-width {
      max-width: 95%;
      margin: 0 auto;
      padding: 0.5rem;
  }

  /* PŘIDÁNO: Styly pro .max-width uvnitř sekcí Služby a Reference na mobilu */
  #sluzby .max-width,
  #reference .max-width {
      background-color: #f9f9f4;
      padding: 1rem;
      border-radius: 10px;
  }

  .sluzby-box {
    align-items: center;
    width: 100%;
  }
  .sluzby-flex {
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 2rem;
    width: 100%;
    align-items: center;
  }

  /* UPRAVENO: Toto pravidlo zajistí, že obal služby se roztáhne na celou šířku a zároveň nebude příliš velký na tabletu */
  .sluzby-flex .sluzba {
    flex-grow: 0;
    flex-shrink: 0;
    flex-basis: auto;
    width: 100%;
    min-width: 0;
    max-width: 400px;
    margin: 0 auto;
  }

  /* PŮVODNÍ STYLY PRO REFERENCE - ODSTRANĚNO POZADÍ/PADDING/RADIUS ZDE */
  .reference-box {
      flex-direction: column;
      align-items: center;
      gap: 1.5rem;
      width: 100%;
  }
  .reference-box .reference {
    width: 100%;
    max-width: 400px;
    min-width: 0;
    flex-basis: auto;
  }

  /* Ostatní responzivní prvky */
  .hlavicka-wrapper {
    flex-direction: column;
    align-items: center;
  }

  /* NOVÝ WRAPPER PRO ÚVODNÍ TEXT A TLAČÍTKO */
  .uvodni-obsah-wrapper {
      width: 95%;
      max-width: 400px;
      margin: 0 auto;
      padding: 0;
      box-sizing: border-box;
  }

  /* ROZŠÍŘENÍ .o-mne-wrapper pro mobil (již má správné pozadí/padding z globálních stylů) */
  .o-mne-wrapper {
      flex-direction: column;
      align-items: center;
      max-width: 95%;
      margin: 0 auto;
  }

  /* ROZŠÍŘENÍ .blok pro mobil (použije se pro kontakt) */
  .blok {
      width: 95%;
      margin: 0 auto;
      padding: 1rem 0.5rem;
  }

  /* ÚPRAVA .uvodni-text pro mobil */
  .uvodni-text {
      width: 100%;
      margin: 0 auto 15px auto;
      font-size: 1.3rem; /* Font size for introductory text */
      line-height: 1.3;
      padding: 0 15px;
      box-sizing: border-box;
  }

  .logo-box {
    flex-direction: column;
    gap: 0.5rem;
  }

  .slogan {
    text-align: center;
    font-size: 1.8rem; /* Font size for slogan */
  }

  /* Úprava šířky fotky kouče (v hlavičce a sekci O MNĚ) */
  .hero-photo {
    width: 90%;
    max-width: none;
    height: auto;
    display: block;
    margin: 0.5rem auto;
  }

  /* Obecné pravidlo pro obrázky v .o-mne-wrapper a .blok (např. pás obrázek) */
  .o-mne-wrapper img,
  .blok img {
    width: 100%;
    max-width: none;
    height: auto;
    display: block;
    margin: 0.5rem auto;
  }

  /* Nový selektor pro obrázky přímo v hlavičce, pokud nejsou .logo */
  .hlavicka-wrapper img:not(.logo) {
      width: 90%;
      max-width: none;
      height: auto;
      display: block;
      margin: 0.5rem auto;
  }

  /* SPECIFICKÉ PRAVIDLO PRO ZMENŠENÍ IKON VE SLUŽBÁCH NA MOBILU */
  .sluzba img {
      width: 100px;
      max-width: none;
      height: auto;
      margin: 0 auto 1rem auto;
  }


  /* ÚPRAVA TLAČÍTKA NA MOBILU */
  .moje-tlacitko {
    width: 100%;
    max-width: none;
    font-size: 16px;
    padding: 10px 14px;
    box-sizing: border-box;
    margin: 20px auto;
  }

  /* NOVÝ STYL PRO TLAČÍTKO VÍCE REFERENCÍ NA MOBILU */
  .reference-more-button {
      width: 100%;
      max-width: 400px;
  }
}

/* Další breakpoint pro ještě menší zařízení (telefony na šířku apod.) */
@media (max-width: 480px) {
  .uvodni-obsah-wrapper {
      width: 95%;
      max-width: 350px;
  }
  .moje-tlacitko {
    font-size: 15px;
    padding: 8px 12px;
  }
  .max-width {
      max-width: 95%;
  }
  .uvodni-text {
      width: 100%;
      font-size: 1.2rem;
      line-height: 1.2;
      padding: 0 10px;
  }
  .sluzba {
      width: 100%;
      max-width: none;
  }

    /* Sjednocené úpravy font-size pro mobily */
  body, .sluzba-item-link {
    font-size: 16px;
  }
  .slogan {
    font-size: 1.8rem;
  }
  #mobile-nav a {
    font-size: 1.2rem;
  }
  .o-mne-text h2,
  .blok h2 {
    font-size: 1.5rem;
  }
  .o-mne-text p,
  .o-mne-text li,
  .kontakt-polozka p,
  footer,
  .uvodni-text {
    font-size: 1rem;
  }
  .sluzba-tlacitko-objekt,
  .reference-more-button,
  .kontakt-form input,
  .kontakt-form textarea,
  .kontakt-form button {
    font-size: 0.8rem;
  }
}