/* ==========================
    ZÁKLAD WEBU
========================== */

body {
  margin: 0;
  padding-top: 60px; /* Mezera, aby web nezalezl pod lištu */
  font-family: 'Farro', sans-serif;
  color: #333;
  line-height: 1.6;
}

section h2 {
  font-size: 28px !important;
}

img {
  max-width: 100%;
  display: block;
}

.card {

  background: white;

  padding: 10px;

  border-radius: 5px;

  box-shadow: 0 1px 5px rgba(0,0,0,0.1);

}

/* ==========================
    NAVIGATION (OPRAVA POZICE)
========================== */

.nav {
  background: white;
  border-bottom: 1px solid #eee;
  position: fixed;   /* Lišta drží nahoře */
  top: 0;
  left: 0;
  width: 100%;
  height: 80px;      /* Pevná výška lišty */
  display: flex;
  align-items: center;
  z-index: 9999;
}

.nav-container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 30px;
  display: flex;             /* TOTO seřadí logo a menu vedle sebe */
  justify-content: space-between; /* TOTO hodí logo doleva a MENU VPRAVO */
  align-items: center;
}

.logo img {
  height: 50px;
  display: block;
}
.logo img {
  height: 50px;
}

/* DESKTOP MENU */
.menu {
  display: flex;
  flex-direction: row; /* Vynutí řadu, aby menu nepadalo pod sebe */
  gap: 20px;
}

.menu a {
  text-decoration: none;
  color: #344e41;
  font-weight: 500;
  white-space: nowrap; /* Zabrání zalomení textu */
}

.menu a:hover {
  opacity: 0.7;
}
/* HAMBURGER */
.hamburger {
  display: none;
  font-size: 30px;
  cursor: pointer;
}

/* ==========================
    HERO
========================== */

.hero {
  height: 500px;
  width: 100%;
  background: url("images/hero.jpg") center/cover no-repeat;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  color: white;
  position: relative;
}

.hero-overlay {
  background: rgba(0,0,0,0.5);
  padding: 20px;
  border-radius: 0px !important;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.hero-logo {
  height: 100px;
  margin-bottom: 15px;
}

.hero-title {
  font-size: 40px;
  margin: 5px 0;
}

.hero-subtitle {
  font-size: 20px;
  margin: 5px 0 15px 0;
}

.hero-button {
  background: #344e41;
  color: white;
  padding: 12px 30px;
  text-decoration: none;
  border-radius: 5px !important;
  font-size: 18px;
  font-weight: 500;
}

.hero-button:hover {
  opacity: 0.8;
}

/* ==========================
    CONTAINER / GRID / CARD
========================== */

.container {
  max-width: 1000px;
  margin: auto;
  padding: 20px;
}

.grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.card {
  background: white;
  padding: 10px;
  border-radius: 5px;
  box-shadow: 0 1px 5px rgba(0,0,0,0.1);
}

/* ==========================
    O NÁS SEKCE
========================== */

#onas {
  display: block;
  text-align: left;
  margin-bottom: 60px;
}

#onas h2 {
  font-family: 'Farro', sans-serif;
  font-size: 28px;
  margin-bottom: 20px;
}

/* ==========================
    MOBILE RESPONSIVE (OPRAVENÉ ZÁVORKY)
========================== */

@media(max-width:768px) {

  .nav {
    height: 70px;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 9999;
  }

 html {
    /* Toto zajistí, že po kliknutí na odkaz v menu 
       prohlížeč zastaví 70px nad sekcí */
    scroll-padding-top: 70px; 
    scroll-behavior: smooth;
  }

  body {
    /* Toto ponechte, pokud chcete, aby hned první 
       sekce webu (úvod) nebyla pod lištou */
    padding-top: 70px; 
  }

  p {
    line-height: 1.9;
  }

  .hamburger {
    display: block;
  }

  .menu {
    display: flex;
    flex-direction: column;
    position: fixed;
    top: 70px; /* POD lištou */
    right: -250px;
    width: 250px;
    height: calc(100% - 70px);
    background: white;
    padding-top: 20px;
    gap: 30px;
    transition: right 0.3s ease;
    box-shadow: -2px 0 5px rgba(0,0,0,0.2);
    z-index: 998;
  }

  .menu a {
    font-size: 24px !important;
    padding-left: 30px;
  }

  .menu.show {
    right: 0;
  }

  .grid {
    grid-template-columns: 1fr;
  }

  section h2 {
    font-size: 28px;
    text-align: left;
}

.playfair {
    font-family: 'Playfair Display', serif !important;
    font-size: 22px;       /* menší velikost pro mobil */
    line-height: 1.8;      /* vhodné řádkování pro mobil */
  }


  #onas h2 {
    font-size: 28px;
  }
} 

/* ==========================
    SPOLEČNÉ STYLY (PARTNEŘI ATD.)
========================== */

.playfair {
  font-family: 'Playfair Display', serif !important;
  font-style: italic !important;
  font-size: 26px;
  margin-bottom: 20px;
}

.button-group {
  display: flex;
  gap: 15px;
  margin-top: 20px;
  flex-wrap: wrap;
}

.button-small {
  font-size: 14px;
  padding: 8px 18px;
}

.partners {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 30px 20px;
  margin-bottom: 20px;
}

.sponsor-logo {
  height: 90px;
  width: auto;
}

@media(max-width:768px){
  
section {
    padding-top: 80px;
    margin-top: -80px;
  }
}

.sponsor-logo {
    height: 60px;
  }
}


footer {
  background: #eee;
  text-align: center;
  padding: 20px;
}


/* ==========================
   VÝLETY
========================== */
#vylety {
  margin-top: 50px;
  margin-bottom: 60px;
  text-align: left;
}

#vylety .grid {
  display: grid;
  /* Sloupce: automaticky se přizpůsobí, minimální šířka karty 250px */
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 20px;       /* Mezery mezi kartami */
  padding: 10px 0;
}

#vylety h2 {
  font-family: 'Farro', sans-serif;
  font-size: 28px;
  margin-bottom: 20px;
}

.trip-modal {
  display: none;          /* skrytý dokud není kliknuto */
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0,0,0,0.7);
  z-index: 10001;
  justify-content: center;
  align-items: center;
}

.trip-content {
  background: white;
  padding: 20px;
  max-width: 700px;
  width: 90%;
  border-radius: 8px;
  position: relative;
  overflow-y: auto;
  padding-bottom: 60px;
  
}

.trip-content img {
  width: 100%;
  height: auto;
  margin-bottom: 15px;
  border-radius: 0px !important;
}

.trip-content .close {
  position: absolute;
  top: 10px;
  right: 20px;
  font-size: 28px;
  cursor: pointer;
  z-index: 9999 !important;
}

.trip-card {
  cursor: pointer;
  text-align: left;
  z-index: 10;
  display: flex;       /* Pomůže s vnitřním zarovnáním */
  flex-direction: column;
  align-items: flex-start;
  background: white;
  padding: 10px;
  border-radius: 5px;
  box-shadow: 0 1px 5px rgba(0,0,0,0.1);
  height: 100%;
}


.trip-card img {
  width: 100%;         /* Obrázek vyplní celou šířku karty */
  height: 200px;       /* Výšku si nechej fixní pro jednotný vzhled */
  object-fit: cover;
  border-radius: 0px !important; /* Ostré rohy, jak jsme si slíbili */
}

.trip-card h3 {
  margin-top: 10px;
  font-size: 18px;
}

@media(max-width:768px){
  .trip-card img {
   width: 100%;  
   max-width: 180px;      /* mobil */
   height: auto;
  }

  .trip-card h3 {
    font-size: 16px;   /* případně zmenšit text na mobilu */
  }
}

html {
  /* Výška vaší fixní lišty (např. 80px) */
  scroll-padding-top: 80px; 
  scroll-behavior: smooth; /* Volitelné: pro plynulý posun */
}

.read-more {
  color: #8b4513; /* nebo tvá barva webu */
  font-weight: bold;
  text-decoration: underline;
  cursor: pointer;
}

.trip-modal {
  display: none;
  position: fixed;
  z-index: 99999;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;

  background-color: rgba(0,0,0,0.7);

  justify-content: center;
  align-items: center;

  padding: 20px;
  box-sizing: border-box;
}

.trip-content {
  background-color: white;
  margin: 5% auto;
  padding: 20px;
  width: 90%;
  max-width: 800px;
  border-radius: 5px;
  max-height: 80vh;
}

/* ==========================
    AKTUALITY (OPRAVA MODALU A MŘÍŽKY)
========================== */

#aktuality .grid {
  display: grid;
  align-items: stretch;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 25px;
  margin-bottom: 40px;
}

trip-content {
  background: white;
  padding: 20px;
  padding-top: 60px;
  max-width: 700px;
  width: 100%;
  border-radius: 5px;

  position: relative;

  max-height: 90vh;
  overflow-y: auto;
}


  .card {
  cursor: pointer;
  display: flex;
  flex-direction: column;
  background: white;
  padding: 15px;
  border-radius: 5px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.1);
  height: 100%;
}

#aktuality .card img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  border-radius: 0px !important; /* Ostré rohy pro fotky v kartách */
}


.button {
  background: #344e41;
  color: white;
  padding: 10px 20px;
  border: none;
  border-radius: 5px !important;
  cursor: pointer;
  text-decoration: none;
  display: inline-block;
  margin-top: 15px;
}

  .trip-content .close {
  position: absolute;
  top: 15px;
  right: 20px;
  font-size: 35px;
  color: #333;
  cursor: pointer;
  z-index: 10;
}

.trip-content .close:hover {
  color: #8b4513; /* Barva při najetí myší */
}


/* AKTUALITY – sjednocení výšky */

#aktuality .card {
  display: flex;
  flex-direction: column;
  height: 100%;

  
}

#aktuality .card p {
  flex-grow: 1;
}

#aktuality .read-more {
  margin-top: auto;
}


#aktuality .grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 25px;
  margin-bottom: 40px;
  justify-items: center;
  width: 100%;
}



/* AKTUALITY – sjednocení výšky a mezery */
#aktuality .grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); /* flexibilní sloupce */
  gap: 20px; /* mezery mezi kartami */
  margin-bottom: 40px;
  width: 100%;
  justify-items: stretch; /* karty se roztáhnou a gap bude vidět */
}

#aktuality .grid .card {
  display: flex;
  flex-direction: column;
  height: 100%;      /* sjednocená výška */
  padding: 15px;     /* vnitřní odsazení */
  background: #fff;  /* pozadí karty */
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}

#aktuality .card p {
  flex-grow: 1;      /* obsah roztáhne kartu */
}

#aktuality .read-more {
  margin-top: auto;  /* tlačítko dole */
}

/* přesně 4 karty → 2x2 */
#aktuality .grid:has(.card:nth-child(4):last-child) {
  grid-template-columns: repeat(2, 1fr);
  max-width: 800px;
  margin-inline: auto;
}


/* PROJEKTY */

/* SEKCE */
#projekty {
  margin: 60px 0;
}

/* GRID */
.projects-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 25px;
}

/* KARTA */
.project-card {
  cursor: pointer;
  background: white;
  padding: 10px;
  border-radius: 5px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

.project-card img {
  width: 100%;
  height: 200px;
  object-fit: cover;
}

/* MODAL */
.project-modal {
  display: none;              /* skryté při načtení */
  position: fixed;
  z-index: 99999;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0,0,0,0.7);

  justify-content: center;
  align-items: flex-start;

  padding: 40px 20px;
}

/* OBSAH MODALU */
.project-content {
  background: white;
  padding: 20px;
  width: 90%;
  max-width: 800px;
  border-radius: 8px;

  position: relative;
  max-height: 80vh;
  overflow-y: auto;
  padding-bottom: 70px;
}

/* KŘÍŽEK */
.project-content .close {
  position: absolute;
  top: 10px;
  right: 15px;
  font-size: 30px;
  cursor: pointer;
}

/* TLAČÍTKO DOLE */
.close-btn {
  position: absolute;
  bottom: 15px;
  left: 15px;
  padding: 10px 20px;
  background: #344e41;
  color: white;
  border: none;
  border-radius: 5px;
  cursor: pointer;
}

/* OBRÁZKY V MODALU */
.project-content img {
  width: 100%;
  margin-bottom: 10px;
}

