
/* =====================================================
   Gentle floating animation
===================================================== */

@keyframes floatSlow {
  0%   { transform: translateY(0px); }
  50%  { transform: translateY(-6px); }
  100% { transform: translateY(0px); }
}

.grid img {
  animation: floatSlow 6s ease-in-out infinite;
}


/* =====================================================
   COLOR SYSTEM – Mediterranean / Natural
===================================================== */

:root{
    --primary:#3E5F44;         /* maslinasto zelena */
    --accent:#E36414;          /* terakota narančasta */
    --accent-soft:#F6F1E9;     /* pijesak/bež */
    --bg:#F4F8FA;         /* lagano plavkasta pozadina */
    --card:#F9FCFD;       /* vrlo svijetla plava za blokove */
    --text:#2C2C2C;
    --whatsapp:#25D366;
}



/* =====================================================
   RESET
===================================================== */

*{box-sizing:border-box;}
body{
    margin:0;
    font-family:'Poppins',sans-serif;
    background:var(--bg);
    color:var(--text);
    line-height:1.7;
}

a{text-decoration:none;color:inherit;}
.container{max-width:1100px;margin:auto;padding:20px;}
.card{
    background:var(--card);
    border-radius:18px;
    padding:30px;
    box-shadow:0 10px 30px rgba(0,0,0,0.06);
}

/* ========================================
   FLOATING LOGO
======================================== */

.floating-logo{
    position:fixed;
    top:120px;
    left:20px;
    z-index:900;
    background:#ffffff;
    padding:12px 16px;
    border-radius:18px;
    box-shadow:0 15px 40px rgba(0,0,0,0.15);
    transition:0.3s;
}

.floating-logo img{
    height:90px;
    width:auto;
    display:block;
}

.floating-logo:hover{
    transform:translateY(-5px);
}

/* Floating logo only on wide screens */
@media (max-width:1399px){
  .floating-logo{
    display:none !important;
  }
}

/* Mobile – smanji ili sakrij */
@media(max-width:768px){
    .floating-logo{
        top:90px;
        left:10px;
        padding:8px 12px;
    }

    .floating-logo img{
        height:60px;
    }
}

/* =====================================================
   LOGO
===================================================== */

.logo img{
    height:90px;      /* veći logo */
    width:auto;
    display:block;
}

@media(max-width:768px){

    .logo img{
        height:60px;   /* manji na mobitelu */
    }
}

/* =====================================================
   NAVBAR – Clean Mediterranean Style
===================================================== */

.navbar{
    position:sticky;
    top:0;
    backdrop-filter:blur(10px);
    background:rgba(255,255,255,0.85);
    padding:14px 20px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    box-shadow:0 6px 20px rgba(0,0,0,0.06);
    z-index:1000;
    transition:0.3s ease;
}

.nav-links{
    display:flex;
    align-items:center;
    gap:28px;
}

.nav-links a{
    position:relative;
    font-weight:500;
    color:var(--primary);
    font-size:15px;
    transition:0.3s;
}

/* Hover color */
.nav-links a:hover{
    color:var(--accent);
}

/* Animated underline */
.nav-links a::after{
    content:"";
    position:absolute;
    left:0;
    bottom:-6px;
    width:0%;
    height:2px;
    background:var(--accent);
    transition:0.3s ease;
}

.nav-links a:hover::after{
    width:100%;
}

.navbar.scrolled{
  padding:8px 20px;
  box-shadow:0 8px 25px rgba(0,0,0,0.12);
}

/* Hamburger */
.nav-toggle{
    display:none;
    font-size:26px;
    cursor:pointer;
    color:var(--primary);
}

@media(max-width:768px){
	.language-switch{
   	 margin-top:15px;
	}

    .nav-links{
        position:absolute;
        top:60px;
        right:20px;
        background:#ffffff;
        flex-direction:column;
        padding:20px;
        border-radius:16px;
        box-shadow:0 15px 40px rgba(0,0,0,0.15);
        display:none;
    }

    .nav-links.show{
        display:flex;
    }

    .nav-toggle{
        display:block;
    }
}
/* Language Switch */
.language-switch{
    margin-left:20px;
    font-weight:600;
    font-size:14px;
}

.language-switch a{
    color:var(--primary);
    transition:0.3s;
}

.language-switch a:hover{
    color:var(--accent);
}

.language-switch .active-lang{
    color:var(--accent);
}

/* smooth transition */
.navbar{
  transition: all 0.3s ease;
}

/* stanje kad se scrolla */
.navbar.scrolled{
  padding:8px 20px;
  box-shadow:0 8px 25px rgba(0,0,0,0.12);
}

/* opcionalno: malo manji brand */
.navbar.scrolled .nav-brand{
  font-size:15px;
}




/* ========================================
   INLINE SCROLL BANNER
======================================== */

.banner-wrapper {
  background: transparent;
}

.inline-banner {
  display:block;
  background: var(--accent);
  color:#fff;
  text-align:center;
  padding:16px;
  border-radius:18px;
  font-weight:600;
  transition:0.4s ease;
}

.inline-banner.hide {
  opacity:0;
  transform:translateY(-20px);
}

/* =====================================================
   HERO
===================================================== */

.hero{
    position:relative;
    overflow:hidden;
}
.hero img{
    width:100%;
    max-height:460px;
    object-fit:cover;
    border-radius:16px;
    cursor: pointer;
}
.hero-text{
    position:absolute;
    bottom:20px;
    left:20px;
    background: rgba(255,255,255,0.2);
color:white;

    backdrop-filter:blur(4px);
    padding:16px 22px;
    border-radius:14px;
}

.hero-text h1{
    margin:0;
    font-size:26px;
    text-shadow:0 4px 20px rgba(0,0,0,0.6);
    color: var(--primary);
    font-weight:600;
    letter-spacing:0.5px;
}
@media(max-width:768px){
    .hero-text{
        position:static;
        background:none;
        backdrop-filter:none;
        padding:10px 0;
        text-align:center;
    }

    .hero-text h1{
        color:var(--primary) !important;
        font-size:20px;
    }
}

/* ========================================
   HEADINGS – GLOBAL STYLE
======================================== */

h1, h2, h3{
    color: var(--primary);
}

h2{
    font-size:28px;
    margin-bottom:18px;
}

.hero-price-link{
  color: var(--accent);
  font-weight:600;
  transition: 0.2s ease;
}

.hero-price-link:hover{
  opacity:0.8;
}

h3{
    font-size:20px;
    margin-bottom:14px;
}

html {
  scroll-behavior: smooth;
}

.section {
  scroll-margin-top: 140px;
}



/* ========================================
   BADGES (Facilities & Amenities)
======================================== */

.badges{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-top:15px;
}

.badge{
    background:var(--accent-soft);
    padding:10px 16px;
    border-radius:30px;
    font-size:14px;
    font-weight:500;
    display:inline-flex;
    align-items:center;
    gap:8px;
    box-shadow:0 4px 12px rgba(0,0,0,0.06);
    transition:0.3s;
}

.badge:hover{
    background:#fff;
    transform:translateY(-2px);
    box-shadow:0 8px 20px rgba(0,0,0,0.1);
}


/* =====================================================
   GRID SECTIONS
===================================================== */

.section{
    margin-top:50px;
    opacity:0;
    transform:translateY(30px);
    transition:0.8s ease;
}
.section.visible{
    opacity:1;
    transform:translateY(0);
}

.grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
    gap:18px;
}
.grid img{
    width:100%;
    height:260px;
    object-fit:cover;
    border-radius:14px;
    transition:0.3s;
}
.grid img:hover{
    transform:scale(1.05);
}

/* =====================================================
   ARRIVAL GUIDE GRID (Guest Info)
===================================================== */

.arrival-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(140px, 1fr));
  gap:18px;
  margin-top:20px;
}

.arrival-grid img{
  width:100%;
  height:120px;
  object-fit:cover;
  border-radius:12px;
  cursor:pointer;
  box-shadow:0 6px 18px rgba(0,0,0,0.1);
  transition:0.3s;
}

.arrival-grid img:hover{
  transform:translateY(-3px);
  box-shadow:0 12px 28px rgba(0,0,0,0.18);
}

.arrival-text{
  margin-top:25px;
}

/* =====================================================
   BOOKING + LOCATION
===================================================== */

.lower-section{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:35px;
    margin-top:60px;
}

.lower-left,
.lower-right{
    background:var(--card);
    padding:30px;
    border-radius:18px;
    box-shadow:0 12px 30px rgba(0,0,0,0.08);
    transition:0.3s;
}

.lower-left:hover,
.lower-right:hover{
    transform:translateY(-4px);
    box-shadow:0 18px 40px rgba(0,0,0,0.12);
}

.lower-right iframe{
    width:100%;
    height:220px;
    border:0;
    border-radius:14px;
    margin-bottom:15px;
}

/* =====================================================
   BOOKING FORM
===================================================== */

.booking-form{
    margin-top:15px;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
}

.booking-form input,
.booking-form textarea{
    padding:12px;
    border-radius:10px;
    border:1px solid #ddd;
    font-size:14px;
    font-family:Poppins;
}

.booking-form textarea{
    grid-column:span 2;
    min-height:100px;
}

.booking-form button{
    grid-column:span 2;
    padding:16px;
    border:none;
    border-radius:30px;
    background:var(--accent);
    color:#fff;
    font-weight:600;
    font-size:16px;
    cursor:pointer;
    transition:0.3s;
}

.booking-form button:hover{
    background:var(--primary);
}

.whatsapp-btn{
    display:block;
    margin-top:18px;
    padding:14px;
    background:var(--whatsapp);
    color:#fff;
    border-radius:30px;
    text-align:center;
    font-weight:600;
}

.direct-note{
    margin-top:18px;
    font-size:14px;
    color:#555;
}


/* ========================================
   GLOBAL BUTTON HOVER EFFECT
======================================== */

.btn,
.whatsapp-btn,
.sticky-book,
.whatsapp-float,
.guest-btn,
.special-offer {
    transition: all 0.3s ease;
}

.btn:hover,
.whatsapp-btn:hover,
.sticky-book:hover,
.whatsapp-float:hover,
.guest-btn:hover,
.special-offer:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 30px rgba(0,0,0,0.25);
    filter: brightness(1.1);
    cursor: pointer;
}


/* =====================================================
   FLOATING BUTTONS
===================================================== */

/* Base position */
.whatsapp-float,
.sticky-book {
    position: fixed;
    right: 25px;
    padding: 14px 22px;
    border-radius: 30px;
    font-weight: 600;
    color: #fff;
    z-index: 999;
    opacity: 0;
    transform: translateY(40px);
    transition: all 0.6s ease;
    box-shadow: 0 10px 25px rgba(0,0,0,0.25);
}

/* Individual styling */
.whatsapp-float {
    bottom: 25px;
    background: var(--whatsapp);
}

.sticky-book {
    bottom: 85px;
    background: var(--accent);
}

/* Show animation */
.show-floating {
    opacity: 1 !important;
    transform: translateY(0) !important;
}

/* Hover effect */
.whatsapp-float:hover,
.sticky-book:hover {
    background: var(--primary);
    transform: translateY(-4px);
}
/* Default background colors */
.whatsapp-btn { background: var(--whatsapp); }

.guest-btn { background: var(--accent); }

.special-offer { background: var(--accent); }

.sticky-book { background: var(--accent); }

.whatsapp-float { background: var(--whatsapp); }


/* =====================================================
   GUEST REGISTRATION BUTTON
===================================================== */

.guest-btn{
  display:inline-block;
  padding:16px 32px;
  background:var(--accent);
  color:#fff;
  font-weight:600;
  font-size:17px;
  border-radius:30px;
  text-align:center;
  text-decoration:none;
}

.guest-btn:hover{
  background:var(--primary);
}



/* =====================================================
   RESPONSIVE
===================================================== */

@media(max-width:768px){

    .nav-links{
        display:none;
        flex-direction:column;
        margin-top:15px;
    }
    .nav-links.show{display:flex;}
    .nav-toggle{display:block;}

    .hero-text{
        position:static;
        background:none;
        color:var(--text);
        padding:10px 0;
        text-align:center;
    }

    .lower-section{
        grid-template-columns:1fr;
    }

    .booking-form{
        grid-template-columns:1fr;
    }

    .booking-form textarea,
    .booking-form button{
        grid-column:span 1;
    }

    .rules-grid{
        grid-template-columns:1fr;
    }
}

.accent-link{
  color: var(--accent);
  font-weight:600;
  text-decoration:none;
  transition: 0.2s ease;
}

.accent-link:hover{
  opacity:0.8;
}


/* =====================================================
   MINI AVAILABILITY (Compact)
===================================================== */

.mini-availability{
    margin-top:40px;
    padding:25px;
}

.mini-availability h2{
    margin-bottom:20px;
}

.mini-availability-grid{
    display:grid;
    grid-template-columns: repeat(auto-fit,minmax(180px,1fr));
    gap:15px;
    font-size:14px;
}
.mini-availability-grid div{
    background:var(--accent-soft);
    padding:14px;
    border-radius:12px;
    border-left:4px solid var(--accent);
    box-shadow:0 6px 18px rgba(0,0,0,0.08);
    transition:0.3s;
}

.mini-availability-grid div:hover{
    transform:translateY(-3px);
    box-shadow:0 12px 25px rgba(0,0,0,0.12);
}

.mini-note{
    margin-top:18px;
    font-size:14px;
    color:#555;
}

/* ========================================
   CLEAN SECTION BLOCK SPACING
======================================== */

.section-block{
  margin-top:50px;
}

.section-block:first-child{
  margin-top:0;
}
/* MOBILE COLLAPSE MODE */
@media(max-width:768px){

  .collapsible-content{
    display:none;
  }

  .collapsible-title{
    cursor:pointer;
    display:flex;
    justify-content:space-between;
    align-items:center;
  }

  .arrow{
    font-size:14px;
  }

}

/* =====================================================
   HOUSE RULES GRID
===================================================== */

.rules-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
  gap:18px;
  margin-top:20px;
}

/* ================================
   HOUSE RULES CARDS
================================ */

.rules-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:18px;
  margin-top:20px;
}

.rule-card{
  display:flex;
  align-items:flex-start;
  padding:18px;
  background:var(--accent-soft);
  border-left:4px solid var(--accent);
  border-radius:16px;
  box-shadow:0 6px 18px rgba(0,0,0,0.08);
  transition:0.3s;
}

.rule-card:hover{
  transform:translateY(-4px);
  box-shadow:0 12px 25px rgba(0,0,0,0.12);
}

.rule-card .icon{
  font-size:26px;
  margin-right:14px;
}

.rule-card .text{
  font-size:14px;
  line-height:1.6;
}

.section-subtitle{
  margin-top:40px;
  margin-bottom:10px;
  font-size:20px;
  color:var(--primary);
}

/* ================================
   MOBILE BOTTOM BAR
================================ */

.mobile-bottom-bar{
  display:none;
}

@media(max-width:768px){

  /* Sakrij side floating gumbe */
  .whatsapp-float,
  .sticky-book{
    display:none !important;
  }

  .mobile-bottom-bar{
    display:flex;
    position:fixed;
    bottom:0;
    left:0;
    width:100%;
    z-index:9999;
    background:#ffffff;
    box-shadow:0 -5px 20px rgba(0,0,0,0.1);
  }

  .mobile-btn{
    flex:1;
    padding:16px 0;
    text-align:center;
    font-weight:600;
    text-decoration:none;
    font-size:16px;
  }

  .whatsapp-btn-mobile{
    background:#25D366;
    color:white;
  }

  .book-btn-mobile{
    background:#E36414;
    color:white;
  }

  /* Da content ne bude prekriven */
  body{
    padding-bottom:70px;
  }

}

@media(max-width:768px){
  .floating-logo{
    display:none !important;
  }
}

/* MOBILE NAV BRAND */

/* Sakriveno svugdje */
.nav-brand{
  display:none;
}

/* Vidljivo samo na mobitelu */
@media(max-width:768px){

  .navbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
  }

  .nav-brand{
    display:block;
    font-weight:600;
    font-size:16px;
    color:var(--primary);
    letter-spacing:0.5px;
  }

}

/* ===============================
   HOME GALLERY LAYOUT
================================ */

.home-gallery-top{
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:40px;
  align-items:start;
  margin-bottom:30px;
}

.home-gallery-text p{
  margin-top:12px;
}

.gallery-link{
  display:inline-block;
  margin-top:18px;
  font-weight:600;
  color:var(--accent);
}

.gallery-link:hover{
  text-decoration:underline;
}

.home-gallery-main img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  border-radius:18px;
  cursor:pointer;
  box-shadow:0 15px 40px rgba(0,0,0,0.15);
  transition:0.3s;
}

.home-gallery-main img:hover{
  transform:scale(1.03);
}

.home-gallery-small{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:20px;
}

.home-gallery-small img{
  width:100%;
  aspect-ratio:3/2;
  object-fit:cover;
  border-radius:14px;
  cursor:pointer;
  box-shadow:0 8px 20px rgba(0,0,0,0.1);
  transition:0.3s;
}

.home-gallery-small img:hover{
  transform:translateY(-4px);
  box-shadow:0 18px 40px rgba(0,0,0,0.2);
}

.hidden-gallery{
  display:none;
}

/* MOBILE */
@media(max-width:768px){
  .home-gallery-top{
    grid-template-columns:1fr;
  }
  .home-gallery-small{
    grid-template-columns:1fr 1fr;
  }
}


/* ===============================
   LIGHTBOX
================================ */

.lightbox{
  display:none;
  position:fixed;
  inset:0;
  background:rgba(0,0,0,0.95);
  justify-content:center;
  align-items:center;
  z-index:99999;
}

.lightbox img{
  max-width:90%;
  max-height:85%;
  border-radius:16px;
  box-shadow:0 20px 60px rgba(0,0,0,0.5);
  transition:opacity 0.15s ease;
}

.lightbox-close{
  position:absolute;
  top:25px;
  right:35px;
  font-size:36px;
  color:white;
  cursor:pointer;
}

.lightbox-prev,
.lightbox-next{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  font-size:45px;
  color:white;
  cursor:pointer;
  padding:15px;
  user-select:none;
}

.lightbox-prev{ left:30px; }
.lightbox-next{ right:30px; }

.lightbox-counter{
  position:absolute;
  bottom:30px;
  color:white;
  font-size:14px;
  opacity:0.8;
}


/* =====================================================
   LOCAL GUIDE / GALLERY
===================================================== */

.guide-gallery{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:20px;
  margin-bottom:35px;
}

.guide-gallery img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  border-radius:16px;
  box-shadow:0 10px 25px rgba(0,0,0,0.12);
  transition:0.3s;
}

.guide-gallery img:hover{
  transform:translateY(-4px);
}

@media(max-width:900px){
  .guide-gallery{
    grid-template-columns:repeat(2,1fr);
  }
}

@media(max-width:500px){
  .guide-gallery{
    grid-template-columns:1fr;
  }
}

/* =====================================================
   LOCAL GUIDE / TOUR GUIDE ARTICLES
===================================================== */

.local-guide{
  margin-top:60px;
}

.local-guide h2{
  margin-bottom:15px;
  color:var(--primary);
}

.local-guide .intro{
  margin-bottom:30px;
  color:#666;
  font-size:15px;
  line-height:1.6;
}


/* =====================================================
   GRID LAYOUT
===================================================== */

.guide-articles-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:25px;
}

/* Tablet */

@media(max-width:1024px){
  .guide-articles-grid{
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Mobile */

@media(max-width:768px){
  .guide-articles-grid{
    grid-template-columns: 1fr;
  }
}


/* =====================================================
   GUIDE ARTICLE CARD
===================================================== */

.guide-article-card{
  display:block;
  background:var(--accent-soft);
  padding:20px;
  border-radius:18px;
  text-decoration:none;
  color:var(--text);
  box-shadow:0 8px 20px rgba(0,0,0,0.08);
  transition:all 0.3s ease;
  position:relative;
}

/* Image */
.guide-article-card img{
  width:100%;
  aspect-ratio:16/9;
  object-fit:cover;
  border-radius:12px;
  margin-bottom:12px;
}


/* Title */

.guide-article-card h3{
  margin-top:0;
  margin-bottom:10px;
  font-size:17px;
  color:var(--primary);
  line-height:1.4;
}


/* Text */

.guide-article-card p{
  font-size:14px;
  color:#444;
  margin-bottom:18px;
  line-height:1.6;
}


/* Read more */

.guide-article-card .read-more{
  font-weight:600;
  color:var(--accent);
  font-size:14px;
  transition:0.3s;
}

.guide-article-card .read-more::after{
  content:" →";
  transition:0.3s;
}

.guide-article-card:hover .read-more::after{
  margin-left:6px;
}


/* Hover effect */

.guide-article-card:hover{
  transform:translateY(-5px);
  box-shadow:0 15px 35px rgba(0,0,0,0.15);
  background:#ffffff;
}


/* Bottom animated line */

.guide-article-card::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:0;
  height:4px;
  background:var(--accent);
  border-radius:0 0 18px 18px;
  transition:0.3s;
}

.guide-article-card:hover::after{
  width:100%;
}



/* =====================================================
   COLLAPSIBLE SECTION (MOBILE)
===================================================== */

.collapsible-content{
  display:block;
}

.arrow-guide{
  transition: transform 0.3s ease;
}


/* Mobile behaviour */

@media(max-width:768px){

  .collapsible-content{
    display:none;
  }

  .collapsible-title{
    cursor:pointer;
    display:flex;
    justify-content:space-between;
    align-items:center;
  }

}



/* =====================================================
   HOUSE RULES CARDS (Guest Info)
===================================================== */


.rules-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:18px;
  margin-top:20px;
}

.rule-card{
  display:flex;
  align-items:flex-start;
  padding:18px;
  background:var(--accent-soft);
  border-left:4px solid var(--accent);
  border-radius:16px;
  box-shadow:0 6px 18px rgba(0,0,0,0.08);
  transition:0.3s;
}

.rule-card:hover{
  transform:translateY(-4px);
  box-shadow:0 12px 25px rgba(0,0,0,0.12);
}

.rule-card .icon{
  font-size:26px;
  margin-right:14px;
}

.rule-card .text{
  font-size:14px;
  line-height:1.6;
}

.section-subtitle{
  margin-top:40px;
  margin-bottom:10px;
  font-size:20px;
  color:var(--primary);
}