*{
  margin:0;
  padding:0;
  box-sizing:border-box;
}

body{
  font-family:'Montserrat', sans-serif;
  color:#16384a;
  overflow-x:hidden;
}

button,
input,
textarea{
  font-family:'Montserrat', sans-serif;
}

/* ===== HEADER (transparentan na vrhu, fejduje u bijeli na skrol — kao na početnoj) ===== */
header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:12px 60px;
  position:fixed;
  top:0;
  left:0;
  width:100%;
  background:transparent;
  transition:background 0.35s ease, box-shadow 0.35s ease;
  z-index:1000;
}

header.scrolled{
  background:#fff;
  box-shadow:0 2px 14px rgba(0,0,0,0.10);
}

.logo{
  display:flex;
  align-items:center;
}

/* Header logo: bijel preko heroja, u boji kad je header bijel */
.logo-mark{
  display:block;
  width:62px;
  height:62px;
  object-fit:contain;
  filter:brightness(0) invert(1);
}

header.scrolled .logo-mark{
  filter:none;
}

/* PNG logo used as a mask so it can be tinted any colour */
.logo-img{
  display:block;
  width:62px;
  height:62px;
  background-color:#808000; /* olive */
  -webkit-mask:url('../images/logo-footer.webp') no-repeat center / contain;
  mask:url('../images/logo-footer.webp') no-repeat center / contain;
}

nav{
  display:flex;
  align-items:center;
  gap:45px;
  padding-left:70px;
}

nav a{
  color:#fff;
  text-decoration:none;
  font-size:16px;
  font-weight:500;
  letter-spacing:2px;
  transition:0.3s;
}

header.scrolled nav a{
  color:#16384a;
}

nav a:hover,
nav a.active{
  color:#0e8388;
}

/* ===== HERO ===== */
.routes-hero-wrap{
  position:relative;
}

.routes-hero{
  position:relative;
  min-height:100vh;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  overflow:hidden;
}

/* image layers for the slideshow (fade transition) */
.hero-slide{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  opacity:0;
  transition:opacity 1.2s ease;
  z-index:0;
}

.hero-slide.is-active{
  opacity:1;
}

/* dark overlay over the image */
.routes-hero::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(rgba(0,0,0,0.25), rgba(0,0,0,0.55));
  z-index:1;
}

.routes-hero-content{
  position:relative;
  z-index:2;
  text-align:center;
  color:#fff;
  padding-bottom:130px;   /* text near the bottom, above the dots and filter bar */
}

/* slideshow indicators (dashes) */
.hero-dots{
  position:absolute;
  bottom:105px;
  left:50%;
  transform:translateX(-50%);
  display:flex;
  align-items:center;
  gap:18px;
  z-index:2;
}

.hero-dot{
  width:36px;
  height:10px;
  border-radius:6px;
  background:rgba(255,255,255,0.85);
  cursor:pointer;
  transition:width 0.4s ease, background 0.4s ease;
}

.hero-dot.is-active{
  width:84px;
  background:#2aa3d4;
}

.routes-hero-content h1{
  font-size:70px;
  font-weight:700;
  letter-spacing:3px;
  transition:opacity 0.4s ease, transform 0.4s ease;
}

/* state while the title is changing (fade + slight shift) */
.routes-hero-content h1.is-changing{
  opacity:0;
  transform:translateY(18px);
}

.routes-hero-content p{
  font-size:20px;
  font-weight:400;
  margin-top:8px;
  letter-spacing:1px;
}

/* ===== TOUR CATALOG ===== */
.catalog{
  position:relative;
  max-width:1180px;
  margin:0 auto;
  padding:80px 24px 100px;
}

.catalog > *{
  position:relative;
  z-index:1;
}

/* decorative mint ring, bottom-left */
.catalog::after{
  content:"";
  position:absolute;
  left:-120px;
  bottom:60px;
  width:240px;
  height:240px;
  border-radius:50%;
  border:40px solid #dcefe8;
  z-index:0;
}

.catalog-title{
  text-align:center;
  font-size:45px;
  font-weight:700;
  color:#16384a;
  margin-bottom:60px;
}

.tour-row{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:24px;
  margin-bottom:45px;
}

.tour-row--reverse{
  flex-direction:row-reverse;
}

.tour-card{
  width:748px;
  max-width:100%;
  height:500px;
  background:#e6f3ee;
  border-radius:16px;
  padding:30px 32px;
  display:flex;
  flex-direction:column;
  gap:16px;
}

.tour-card-top{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}

.tour-tag{
  font-size:20px;
  font-weight:700;
  letter-spacing:1px;
  color:#0e8388;
}

.tour-stats{
  display:flex;
  gap:14px;
}

.tour-stats span{
  display:flex;
  align-items:center;
  gap:5px;
  font-size:15px;
  color:#16384a;
}

.tour-stats img{
  width:16px;
  height:16px;
  object-fit:contain;
}

.tour-card h3{
  font-size:40px;
  font-weight:700;
  color:#16384a;
}

.tour-card p{
  font-size:20px;
  line-height:1.6;
  color:#4a5a54;
  flex:1;
}

/* clickable title + description block (opens the tour's detail page) */
.tour-text-link{
  display:flex;
  flex-direction:column;
  gap:16px;
  flex:1;
  color:inherit;
  text-decoration:none;
}
.tour-text-link:hover h3{
  color:#0e8388;
}

.tour-card-bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-top:6px;
}

.read-more{
  font-size:15px;
  font-weight:600;
  letter-spacing:0.5px;
  color:#16384a;
  text-decoration:none;
}

.read-more:hover{
  color:#0e8388;
}

.schedule-btn{
  padding:12px 24px;
  border:none;
  border-radius:40px;
  background:#0e8388;
  color:#fff;
  font-size:15px;
  font-weight:400;
  cursor:pointer;
  transition:0.3s;
}

.schedule-btn:hover{
  background:#0b6b6f;
}

.tour-image{
  flex-shrink:0;
}

.tour-image img{
  display:block;
  width:343px;
  height:514px;
  object-fit:cover;
  border-radius:16px;
}

/* call to action */
.custom-cta{
  text-align:center;
  max-width:620px;
  margin:80px auto 0;
}

.custom-q{
  font-size:45px;
  font-weight:700;
  color:#16384a;
  margin-bottom:16px;
}

.custom-q span{
  color:#0e8388;
}

.custom-cta p{
  font-size:14px;
  line-height:1.7;
  color:#4a5a54;
  margin-bottom:30px;
}

.custom-big{
  font-size:60px;
  font-weight:800;
  color:#16384a;
  margin-bottom:24px;
}

.custom-btn{
  padding:14px 40px;
  border:none;
  border-radius:40px;
  background:#0e8388;
  color:#fff;
  font-size:15px;
  font-weight:400;
  cursor:pointer;
  transition:0.3s;
}

.custom-btn:hover{
  background:#0b6b6f;
}

/* ===== RESPONSIVE ===== */

/* Tour cards: when the fixed sizes (748+343) don't fit, they stack vertically */
@media(max-width:1180px){
  .tour-row,
  .tour-row--reverse{
    flex-direction:column;
  }

  .tour-card{
    width:100%;
    height:auto;
  }

  .tour-image{
    width:100%;
    order:-1;          /* image on top */
  }

  .tour-image img{
    width:100%;
    height:260px;
  }
}

@media(max-width:1024px){
  header{
    padding:18px 40px;
  }

  nav{
    gap:32px;
    padding-left:40px;
  }
}

@media(max-width:900px){
  header{
    flex-wrap:wrap;
    justify-content:center;
    gap:16px 24px;
    padding:18px 30px;
  }

  nav{
    gap:24px;
    padding-left:30px;
    flex-wrap:wrap;
    justify-content:center;
  }

  .routes-hero-content h1{
    font-size:44px;
  }

  .routes-hero-content{
    padding-bottom:60px;
  }

  /* dashes near the bottom of the image */
  .hero-dots{
    bottom:40px;
  }
}

@media(max-width:600px){
  header{
    flex-direction:column;
    gap:18px;
    padding:18px 20px;
  }

  nav{
    border-left:none;
    padding-left:0;
    gap:14px 18px;
  }
}

/* ===== FOOTER (same as on the other pages) ===== */
.footer{
  margin-top:0;
}

.footer-body{
  position:relative;
  height:215px;
  background-color:#008080;
  background-image:url('../images/footer.webp');
  background-size:100% 205px;
  background-position:bottom center;
  background-repeat:no-repeat;
}

.footer-logo{
  position:absolute;
  top:24px;
  left:12%;
  width:62px;
  height:62px;
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:2;
}

.footer-logo .footer-logo-mark{
  width:62px;
  height:62px;
  object-fit:contain;
  filter:brightness(0) invert(1);
}

.footer-peaks{
  display:none;
}

.footer-nav{
  position:absolute;
  left:0;
  right:0;
  bottom:30px;
  display:flex;
  justify-content:center;
  gap:55px;
  flex-wrap:wrap;
  padding:0 20px;
}

.footer-nav a{
  color:#333;
  text-decoration:none;
  font-size:14px;
  transition:0.3s;
}

.footer-nav a:hover{
  color:#0e8d92;
}

.footer-copy{
  text-align:center;
  font-size:13px;
  color:#444;
  padding:16px;
  background:#fff;
}

@media(max-width:820px){
  .footer-body{
    height:auto;
    background-image:none;
    display:flex;
    flex-direction:column;
  }

  .footer-logo{
    position:static;
    margin:34px auto 24px;
  }

  .footer-peaks{
    display:block;
    width:100%;
    height:130px;
    margin-bottom:-1px;
  }

  .footer-nav{
    position:static;
    background:#fff;
    margin:0;
    padding:26px 22px;
    gap:14px 24px;
  }
}

/* Force Montserrat on all form controls (buttons, inputs, etc.) */
button,
input,
textarea,
select,
optgroup,
option{
  font-family:'Montserrat', sans-serif;
}
