@import url('https://fonts.cdnfonts.com/css/avenir-lt-pro');
:root { font-size: 18px;
  font-display: swap;

/* default fallback, will be overwritten by JS on load */
  --header-height: 0px;


/* Font families */
--font-sans: 'Avenir LT Pro', sans-serif;
/*  custom Properties */

  /* Font scale (fluid via clamp) */
  --font-sm: clamp(0.6rem, 1vw, 0.9rem);   
  --font-md: clamp(1rem, 2vw, 1.25rem);    
  --font-lg: clamp(1.5rem, 2.5vw, 2.2rem);   
  --font-xl: clamp(2rem, 4vw, 4rem);       

  /* Spacing scale */
  --space-xs: clamp(0.25rem, 0.5vw, 0.5rem);  
  --space-sm: clamp(0.5rem, 1vw, 1rem);       
  --space-md: clamp(1rem, 2vw, 2rem);         
  --space-lg: clamp(2rem, 4vw, 4rem);         
  --space-xl: clamp(4rem, 6vw, 6rem);         

  
  /* Custom Variables */
  /* Gaps */
  --gap-xs: var(--space-xs);
  --gap-sm: var(--space-sm);
  --gap-md: var(--space-md);
  --gap-lg: var(--space-lg);

/* Color palette */

  --color-primary: rgb(193, 230, 195);      
  --color-secondary: rgb(251, 70, 55);      
  --color-grey-light: rgb(247, 247, 247);
  --color-deep-blue: rgb(0, 191, 255);        
  --color-violet-dark: rgb(157, 108, 202);
  --color-yellow-rgb: rgb(252, 153, 49);       
  --color-black: rgb(0, 0, 0);
  --color-white: rgb(255, 255, 255);      
}




body {
font-family: var(--font-sans);
min-height: 100dvh;
width: 100vw;
margin: 0;
padding: 0;
}

h2 {
  text-align: left;
  padding-block: 1em;
}

b {
  color: var(--color-black);
}

section[id] {
  scroll-margin-top: var(--header-height);
}

/*   header */

header {
  position: sticky;   /* sticks to the top when scrolling */
  top: 0;             /* 0 = very top of the viewport */
  z-index: 1000;      /* ensures it stays above other elements */
  background: #fff;   /* give it a background to cover content behind */
  padding: 0.5em;
 
}

.header-inner {
  display: flex;
justify-content: space-between;
  align-items: center;
  min-height: 6em;
  padding-block: 1em 1em;


}

.logo {
  display: flex;
  align-items: center;
  min-height: 5em;
  min-width: 190px;
}

.logo img {
  width: 190px;
}

/*  --------------------navigation -------------------- */

.main-nav {
    display: flex;
    align-items: center; /* Vertically centers the items */
    /* gap: 1em; */
    list-style: none;
    margin: 0;
    padding: 0;
  }
  
  .main-nav a, .main-nav span {
    text-decoration: none;
    color: var(--color-secondary);
    padding: 0.5em 1em 0.4em 1em;
    border-radius: 0.5em;
  }
  

  .main-nav li a, .main-nav li span {
    font-family:  var(--font-sans);
  text-decoration: none;
  color: #666;
  font-weight: 600;
  text-transform: uppercase;
  transition: color 0.3s ease;
  position: relative;
  
}




/*  HAMBURGER toogle */



.hamburger {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 30px;
  height: 24px;
  margin-right: 1em;

}

.line {
  height: 5px;
  border-radius: 2px;
  transition: all 0.3s ease;
}

/* Custom colors for each line */
.line1 {
  background-color: var(--color-violet-dark);
}

.line2 {
  background-color: var(--color-black);
}

.line3 {
  background-color: var(--color-black);
}


.main-nav-wrapper {
  display: none;
  transition: max-height 0.3s ease-in-out;
  margin-right: 0.8em;
 
}

.main-nav-wrapper.open {
  position: absolute;
  display: block;
  right: 0;
  z-index: 600;
  background-color: var(--color-grey-light);
  top: 100%;
  width: 100%;
  border-bottom: 10px solid var(--color-primary);

}



.main-nav-wrapper.open > .main-nav li a:hover, .main-nav-wrapper.open > .main-nav li span:hover {
  color: var(--color-primary)!important;
  transition: color 0.8s ease;
  
   
}



.content-wrapper {
  max-width: 1300px;
  margin-inline: auto;
  padding-inline: 0.5em;
}



@media (min-width: 768px) {
  .hamburger {
    display: none;
  }

  .main-nav-wrapper {
    display: block;
    transition: max-height 0.3s ease;
  }


  .hero h1 {
    text-align: left;
    line-height: 1.1em;

  }
  .main-nav li a:hover, .main-nav li span:hover,  .main-nav li a.active
   {
  color: var(--color-black);
                                                              /*TADY PODTRZENI ODKAZU */
  

}

 .main-nav li a:hover::after, .main-nav li a.active::after {
  content: '';
  display: block;
position: absolute;
width:100% ;
height: 5px;
background-color: var(--color-primary);
bottom: 0; 
  left: 0;
  border-radius: 3px;

}
}

@media (max-width: 768px) {
  .main-nav-wrapper {
    display: none; /* hidden by default */
  }

  .main-nav-wrapper.open {
    display: block; /* force show when toggled */
    padding-right: 0;
    padding: 0;
    margin: 0;
  }

  .main-nav {
    flex-direction: column;
    align-items: flex-end;
    gap: 1rem;
    padding: 1rem;
  }

  .header-inner {
    position: relative;
  }

  .main-nav li {
      display: inline-block;
  position: relative;
    padding-block: 0.5rem;
    width: 100%;
    text-align: right;
    border-bottom: 2px solid var(--color-grey-light);
  }

  .main-nav li::after {
   content: '';
  position: absolute;
  width: 100%;

  transform: scaleX(0);
  height: 3px;
  bottom: 0;
  left: 0;
  background-color: var(--color-deep-blue);
  transform-origin: bottom left;
  transition: transform 0.45s ease-out;
  }

    .main-nav li:hover::after {
  transform: scaleX(1);
  transform-origin: bottom right;
}
 .main-nav li a {
  display: block;
  width: 100%;
 }





  }

  @media (max-width: 916px) {
     header {
  position: sticky;   /* sticks to the top when scrolling */
  top: 0;             /* 0 = very top of the viewport */
  z-index: 1000;      /* ensures it stays above other elements */
  background: #fff;   /* give it a background to cover content behind */
  padding: 0.5em;
 
}

.header-inner {
  display: flex;
justify-content: space-between;
  align-items: center;
  min-height: 4em;
  padding-block: 0.5em 0.5em;


}

.logo {
  display: flex;
  align-items: center;
  min-height: 4em;
  min-width: 120px;
}

.logo img {
  width: 120px;
}

  }



/*  END Navigation */


.hero {
  
  padding-block: 3em;
}


/*  HERO section */
.hero {
display: flex;
 background-color: var(--color-white)!important;
  min-height: 50vh ;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  justify-content: center;
  width: 100%;
  
  


}
.content-wrapper .hero  {
 display: grid; 
 grid-template-columns: 1fr 2fr;
 justify-content: center;
}

.hero .caption {
  display: flex;
  flex-direction: column;
  justify-content: center;

  
  
}

.hero.caption img {
  max-width: 100px;
  
  
}

.hero-contact {
  margin-top: 2em;
  border-left: 5px solid var(--color-violet-dark);
  padding-left: 1em;
}

.caption p {
  color: var(--color-black);
}

.button-cta {
  border-radius: 2em;
  background-color: var(--color-yellow-rgb);
  color: var(--color-white);
  text-transform: uppercase;
  display: inline-block;   /* or block if you want full width */
  max-width: 50%;
  padding: 1em 2em;
  margin-top: 2em;
  text-align: center;
  text-decoration: none;   /* remove underline */
}

.button-cta-outline {
  border-radius: 2em;
  border: 3px solid var(--color-white);
  background-color: transparent;
  color: var(--color-white);
  font-weight: 800;
  text-transform: uppercase;
  display: inline-block;   /* or block if you want full width */
  max-width: 50%;
  padding: 1em 2em;
  margin-top: 2em;
  text-align: center;
  text-decoration: none;   /* remove underline */
}


.icon-item > img {max-width: 80%;
  margin: 0 auto;
}

li.icon-item span {
  font-size: var(--font-sm);
}

.hero-img {
  display: flex;
  align-items: center; /* or flex-start / flex-end */
  
  
}

.obalka {
  display: inline-block;
  margin-top: 1.5em;
}
/*.obalka::before {
  content: "";
  display: inline-block;
  background-image: url(../img/obalka-icon.png);
  width: 50px;
  height: 33px;
  margin-right: 0.5em;

}*/


/* end hero section */

/* O nas */

.o-nas, .autobusy, .doprava, .form {
  padding-inline: 0.8em;
  position:relative;
}



.o-nas p {
  padding-block: 1em;
  color: var(--color-black);
}

.o-nas .content-wrapper {
  display: grid;
  grid-template-columns: 1fr 1fr; /* two equal columns */
  gap: 2rem;
  align-items: start;
  padding-bottom: 3.5em;
  padding-top: 1.5em;
}

.o-nas .content-wrapper h1 {
  grid-column: 1 / -1; /* span across both columns */
  margin-bottom: 1rem;
}


.o-nas .hero-img img {
  max-width: 100%;
  height: auto;
  display: block;
}

.o-nas .caption {
  font-size: 1rem;
  line-height: 1.6;
}
o-nas h1 {
  font-size: var(--font-lg);
  color: var(--color-black);
  font-size: var(--font-lg);
  text-transform: uppercase;
}



.tags {
  display: flex;
  gap: 0.5em;
  margin-top: 2em;
  flex-wrap: wrap; 
}

.tags span {
  padding: 0.5em 1em;
  background-color: var(--color-secondary);
  color: var(--color-white);
  border-radius: 1em;
}

.o-nas-2 .icon-list {
  display: flex;
  flex-wrap: wrap;          /* allows items to wrap to new lines */
  align-items: center; /* or flex-start / flex-end */
  justify-content: center;
  list-style: none;
  padding: 0;
  margin: 0;
  text-align: center;
  gap: 1em;                /* space between items (optional) */
}

.o-nas-2 .icon-list li {
  flex: 1 0 calc(25% - 0.75em); 
  box-sizing: border-box;
}

.o-nas-2 ul {
  border-left: 0;
}

.o-nas-2 {
  align-self: end;
}


.o-nas, .autobusy, .doprava, .form {
  position: relative;
  margin-block: 3em;
  
  
}

.vybaveni {display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1em; /* optional: spacing between items */
  text-align: left;
  


}

.vybaveni p {
  font-size: var(--font-md);
}

.vybaveni h2 {
  font-size: var(--font-md);
}

.vybaveni ul {
  list-style-type: none;
}

.vybaveni ul {
  border-left: 5px solid var(--color-violet-dark);
  padding-left: 1em;

}
/* end o nas */

/* AUTOBUSY */

.autobusy img {
  margin-block: 1em;
  max-width: 80%;
}

/* CENIK */

/* DOPRAVA */

.doprava ul {
  list-style-type: none;
}

.doprava-2 ul {
  border-left: 5px solid var(--color-violet-dark);
  padding-left: 1em;
  margin-bottom: 3em;

}

.doprava img {
  margin-block: 2em;
}

.seasons {
  display: block;
  height: 4.5em;
    background-image: url(../img/seasons.png) ;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: top left;
  margin-bottom: 1.4em;
}

.prijezdy {
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.prijezdy img {
  margin: 0;
  padding: 0;
}

.prijezdy > div:nth-child(1) {
  /*background-image: url(../img/pozadi-1.jpg);*/
  background-repeat: no-repeat;
  background-position: bottom left;
  background-size: contain;
}




.cenik .content-wrapper {
  display: grid;
  grid-template-columns: 1fr 1fr; /* two equal columns */
  gap: 2rem;
  align-items: start;
  padding-top: 2em;
  padding-bottom: 4em;
}

.cenik .content-wrapper h1 {
  grid-column: 1 / -1; /* span across both columns */
  margin-bottom: 1rem;
}
.cenik .content-wrapper h2 {
  text-align: left;
}

.cenik-row {
  display: flex;
  width: 100%;
  align-items: center;
}

.label {
  white-space: nowrap;
}

.dots {
  flex: 1;
  border-bottom: 1px dotted #333;
  margin: 0 0.5em;
}

.price {
  white-space: nowrap;
}

/* KONTAKT */


.kontakt .content-wrapper h1 {
  color: var(--color-violet-dark);
   grid-column: 1 / -1; /* span across both columns */
  margin-bottom: 1rem;
}

.kontakt .content-wrapper p{
  color: var(--color-black);
  margin-block: 0.5em;
}

.kontakt .content-wrapper h2{
  color: var(--color-violet-dark);
  text-align: left;
}
.kontakt .content-wrapper {
  display: grid;
  grid-template-columns: 1fr 1fr; /* two equal columns */
  gap: 2rem;
  align-items: start;
  padding-top: 2em;
  padding-bottom: 4em;
}

.kontakt .email{
  display: flex;
  gap: 0.5em;
  align-items: center;
  min-height: 21px;
}
/*.kontakt .email::before {
  content: "";
  display: block;
  width: 21px;
  height: 21px;
  background: url(../img/obalka-01.svg) no-repeat;
}*/

.kontakt .web{
  display: flex;
  gap: 0.5em;
  align-items: center;
  min-height: 21px;
}
.kontakt .web::before {
  content: "";
  display: block;
  width: 21px;
  height: 21px;
  background: url(../img/web-01.svg) no-repeat;
}


.content {
    display: flex;
    flex-direction: column;
    position: relative;
    width: 100%;
    height: 100dvh;
    justify-content: center;
    align-items: center;
    background-color: var(--color-violet-dark);
}

#logo {
    position: absolute;
    max-width: 160px;
    top: 2em;
    left: 2em;
}

#vylety {
    position: absolute;
    max-width: 200px;
    bottom: 2em;
    right: 2em;
}

.hero h1 {
  margin-bottom: 1em;
}

h1:not(.hero h1) {
  position: relative;
  display: block;
  width: 100%;
    color: var(--color-black);
    font-weight: 800;
    font-size: var(--font-lg);
    text-align: left;
    margin-bottom: 1em;
    padding-bottom: 0.3em;
}

h1:not(.hero h1)::after {
  content: "";
  display: block;
  width: 100%;
  height: 2px;
  background-color: var(--color-black); 
  position: absolute; 
  bottom: 0;
  left: 0;
  
}
img {
    max-width: 100%;
}

/* FOOTER */

.copyright > p {display: flex;
align-items: center;
gap:0.5em;
} 
footer {
  

 
color: var(--color-black);}

footer .content-wrapper {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 1.5em;
  padding-inline: 0.5em;
  padding-block: 3em;
}

#Vrstva_1 {
  width: 150px!important;
  height: auto;
  display: block;
}
footer .content-wrapper p {
  font-size: var(--font-md);
  text-align: center;
  font-weight: 800;
}

footer .s {
  font-size: var(--font-sm);
  font-weight: 400;
  
}

footer .c {
  font-size: var(--font-lg);
  color: red;
  font-weight: 600;
  
}

.footer-logo {
  max-width: 7em;
}

/* IMAGE slider */

section .content-wrapper {
  padding: 2em 0 2em 0;
}

.slider-area {
  display: grid;
  grid-template-columns: 5fr 1fr;
}

.slider-container {
position: relative;
  width: 90%;
  aspect-ratio: 600 / 464; 
  margin: 0 auto;
  overflow: hidden;

}

.slider-list {
  list-style: none;
  padding: 0;
  margin: 0;
  width: 100%;
  height: 100%;
}

.slider-item {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity 1s ease-in-out; /* Plynulé prolnutí */
  z-index: 1;
}

.slider-item.active {
  opacity: 1;
  z-index: 2;
}

.slider-item img {
  width: 100%;
  height: 100%;
  object-fit: contain; /* Obrázek vyplní plochu bez deformace */
}

.slider {
  border-bottom: 2px solid var(--color-black);
  padding-bottom: 3em;
}

/*  MODAL WINDOW */


.modal {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.6);
  z-index: 1000;

  /* allow scrolling inside the modal if content is taller */
  overflow-y: auto;
}

.modal-content {
  background: #fff;
  margin: 5% auto;
  padding: 2em;
  border-radius: 0.5em;
  max-width: 900px;
  position: relative;

  /* optional: limit height so it doesn’t exceed viewport */
  max-height: 90vh;
  overflow-y: auto;
}

/* OBJEDNAVKOVY FORM  */


.form h1 {
  color: var(--color-secondary);
  font-size: var(--font-lg);
}

.form-wrapper {
  display: flex;
  
  justify-content: center;
  box-sizing: border-box;
  padding-inline: 0.5em;
  width: 100%;
  max-width: 1200px;
  padding-top: 2em;
}
   

label {
    display: block;
    padding-block: 0.5em;
}
 form {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(390px, 1fr));
    gap: 2em;
    width: 100%;
    max-width: 100%;
    /*background-image: url(../img/form-bg.jpg);*/
    background-repeat: no-repeat;
    background-position: left bottom;
} 


.form-3 { grid-column: 1 / -1;
  display: flex;
justify-content: end;}

.form-4 { grid-column: 1 / -1;
  display: flex;
justify-content: flex-end;}


.form-4 img{ max-width: 90%;

}

input[type="text"], 
input[type="email"], 
input[type="tel"], 
input[type="number"], 
input[type="date"], 
input[type="time"], 
textarea {
    border-radius: 0em;
    border: 1px solid #969696;
    background-color: #fff;
    padding: 0.8em;
    width: 100%; 
  box-sizing: border-box;
  margin-top: 0.3em;
  color: #707070;
  font-family: 'Avenir LT Pro', sans-serif;
  flex-shrink: 0;

  /* Allows the item to grow and fill available space */
  flex-grow: 1;
}
.prijezd > label, .odjezd > label  {
    padding-top: 0.5em;
    flex: 1 0 0%;

}

.odjezd, .prijezd, .option-group {
    display: flex;
    flex-direction: row;
    column-gap: 1em;
}
.form-3 button {
  display: flex;
      width: auto;
      height: 130px;
      background-image: url(../img/sipka.png);
      background-repeat: no-repeat;
      background-position: center top;
      align-items: flex-end;
}

#zpet-ano, #zpet-ne {
  appearance: none;          
  -webkit-appearance: none;
  
  width: 2em;              
  height: 2em;             
  flex-shrink: 0;            
  
  border-radius: 50%;        
  border: 2px solid #969696;
  background-color: #fff;
  display: inline-block;
  vertical-align: middle;
}
input[type='radio'] {
    border: 2px solid #969696;
}

.z-cesta {
display: flex;
flex-direction: column;
margin-bottom: 0.5em;
}

.z-cesta div label {
    padding-block: 0;
    display: flex;
    align-items: center;
}

.z-cesta div {
    display: flex;
    gap: 1em;
}
.option-group {
  display: flex;
  flex-direction: row;
  column-gap: 1em;
}

.option-group .pocet-osob {
  flex: 1;          
  display: flex;    
  flex-direction: column; 
}

.option-group .pocet-osob input {
  flex: 1;
  width: 100%;      
  box-sizing: border-box;
}

input[type="radio"] {
  appearance: none;          
  -webkit-appearance: none;  
  -moz-appearance: none;     

  width: 2em;
  height: 2em;
  border: 2px solid #969696; 
  border-radius: 50%;        
  display: inline-block;
  position: relative;
  cursor: pointer;
}

input[type="radio"]:checked::after {
  content: "";
  position: absolute;
  top: 0.35em;
  left: 0.35em;
  width: 1em;
  height: 1em;
  background: #969696;
  border-radius: 50%;
}

button[type="submit"] {
    padding: 0.2em 0.7em;
    background-color: #fff;
    /*border: 2px solid #7a2279;*/
    border-radius: 0.6em;
    color: #000;
    font-size: 1.3em;
    font-weight: bold;
    text-transform: uppercase;
    letter-spacing: 0.2em;
}




@media screen and (max-width: 400px) {
.content { 
        width: calc(100% - 1em);
        flex-direction: column;
    padding-inline: 0.5em ;}
    h1{ text-align: left;}
    img { max-width: 95%;}

    .content-wrapper .hero {
  
  grid-template-columns: 1fr ;
  justify-content: center;
}
}


/*  RESPONZIVE MODE  */

@media screen and (max-width: 917px) {
    .content { 
        width: calc(100% - 1em);
        flex-direction: row;
    padding-inline: 0.5em ;}
    h1 {text-align: center;}
    img { max-width: 90%; margin-inline: auto;}
    #vylety { max-width: 100px;
    bottom: 0.5em;
    right: 0.5em;}
    #logo {
        top: 0.5em;
        left: 0.5em;
    }
        .content-wrapper .hero  {
  grid-template-columns: 1fr ;
  
 justify-content: center;
 padding: 0.8em;
}

.caption p{
  text-align: left;
}

.hero h1{
  text-align: left;
}

.hero-img {
  max-width: 70%;
  margin-inline: auto;
}

.button-cta, .button-cta-outline   {
  max-width: 80%;
  margin-inline: auto;
}

.o-nas .content-wrapper {
  display: grid;
  grid-template-columns: 1fr ; /* two equal columns */
  gap: 2rem;
  align-items: start;
}

.cenik .content-wrapper {
  display: grid;
  grid-template-columns: 1fr ; /* two equal columns */
  gap: 2rem;
  align-items: start;
  
}

.kontakt .content-wrapper {
  display: grid;
  grid-template-columns: 1fr ; /* two equal columns */
  gap: 2rem;
  align-items: start;
  
}

.kontakt .content-wrapper h2{
text-align: left;
  
}
.email, .web {
  text-align: center;
  margin-inline: auto
  ;
}

.main-nav a {
      color: var(--color-secondary);
    padding: 0.5em 1em;
    border-radius: 0.5em;
}

/*form {background-image: url(../img/form-bg2.jpg);}*/

.form-wrapper {
  padding-inline: 0em;
  padding: 1em 0;
}

.o-nas, .autobusy, .doprava, .form {
  padding-inline: 0em;
  position:relative;
}

/* FORM RESPONSIVE STYLES */
form {
  grid-template-columns: 1fr !important;
  gap: 1.5em;
}

.form-1, .form-2 {
  width: 100%;
}

.form-3 {
  justify-content: center;
}

.datum {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 1em;
}

.odjezd, .prijezd {
  flex-direction: column;
  gap: 0.5em;
  width: 100%;
}

.odjezd > label, .prijezd > label {
  width: 100%;
  display: flex;
  flex-direction: column;
}

.option-group {
  flex-direction: column;
  gap: 1em;
  width: 100%;
}

.z-cesta {
  flex-direction: column;
  width: 100%;
}

.z-cesta div {
  flex-direction: column;
  gap: 0.5em;
}

.z-cesta div label {
  display: flex;
  align-items: center;
  gap: 0.5em;
}

.pocet-osob {
  width: 100%;
  flex: none;
}

input[type="text"], 
input[type="email"], 
input[type="tel"], 
input[type="number"], 
input[type="date"], 
input[type="time"], 
textarea {
  width: 100% !important;
  padding: 0.8em;
  margin-top: 0.3em;
}

label {
  font-size: 0.95rem;
}

.form h1 {
  text-align: center;
  font-size: var(--font-md);
}

.form-wrapper {
  max-width: 100%;
  padding-inline: 0;
}
}