body{margin:0;font-family:Arial,Helvetica,sans-serif;background:#f7f2ea;color:#272018;line-height:1.6}header{position:sticky;top:0;z-index:10;background:white;display:flex;gap:16px;align-items:center;justify-content:space-between;padding:14px 5%;box-shadow:0 2px 10px #0002}header b{font-size:22px}nav{display:flex;gap:14px;flex-wrap:wrap}nav a{text-decoration:none;color:#272018;font-weight:700}.lang button{border:1px solid #ccc;background:white;padding:8px 10px;border-radius:20px;font-weight:800}.lang button.active{background:#2b2119;color:white}.hero{min-height:70vh;background:linear-gradient(#0005,#0006),url('hero-pool.jpg') center/cover;display:grid;place-items:center;text-align:center;color:white;padding:30px}.hero h1{font-size:clamp(38px,7vw,78px);margin:0}.hero p{font-size:clamp(18px,3vw,28px)}.btn,.contact a{display:inline-block;background:#2f7d32;color:white;padding:13px 18px;border-radius:25px;text-decoration:none;font-weight:800;margin:6px}main{width:min(1150px,92%);margin:auto}section{margin:45px 0}.card{background:white;border-radius:22px;padding:28px;box-shadow:0 8px 25px #0001}h2{font-size:clamp(28px,4vw,42px);margin-top:0}.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}.gallery figure{margin:0;background:white;border-radius:18px;overflow:hidden;box-shadow:0 8px 22px #0002}.gallery img{width:100%;height:230px;object-fit:cover;display:block}.gallery figcaption{padding:12px;font-weight:800}.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.features div{background:#f0e8dc;border-radius:15px;padding:15px;font-weight:700}.route{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}.route img{width:100%;border-radius:18px;box-shadow:0 8px 24px #0002}.contact{text-align:center;background:#2b2119;color:white;border-radius:24px;padding:34px}.contact a{background:white;color:#2b2119}footer{text-align:center;padding:30px;color:#766}@media(max-width:760px){header{flex-direction:column;align-items:flex-start}.lang{align-self:flex-end}}.gallery img{
    cursor:pointer;
    transition:0.3s;
}

.gallery img:hover{
    transform:scale(1.03);
}

.lightbox{
    display:none;
    position:fixed;
    top:0;
    left:0;
    width:100%;
    height:100%;
    background:rgba(0,0,0,0.9);
    justify-content:center;
    align-items:center;
    z-index:9999;
}

.lightbox img{
    max-width:95%;
    max-height:95%;
    border-radius:10px;
}


/* Professional availability calendar */
.calendar-card{
  padding:0;
  overflow:hidden;
  background:linear-gradient(180deg,#fffaf0 0%,#ffffff 100%);
  border:1px solid rgba(43,33,25,.08);
}
.calendar-header{
  display:flex;
  justify-content:space-between;
  gap:24px;
  align-items:flex-start;
  padding:30px 30px 12px;
}
.eyebrow{
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:13px;
  font-weight:900;
  color:#2f7d32;
  margin:0 0 8px;
}
.calendar-header h2{
  margin:0;
  font-size:clamp(30px,4vw,46px);
}
.calendar-subtitle{
  margin:10px 0 0;
  color:#5f554d;
  font-size:18px;
}
.calendar-cta{
  background:#2f7d32;
  color:#fff;
  text-decoration:none;
  font-weight:900;
  padding:13px 18px;
  border-radius:999px;
  white-space:nowrap;
  box-shadow:0 8px 18px rgba(47,125,50,.25);
}
.availability-legend{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  padding:0 30px 18px;
}
.legend-item{
  display:inline-flex;
  align-items:center;
  gap:9px;
  background:#f2eadf;
  border-radius:999px;
  padding:10px 14px;
  font-weight:900;
}
.legend-item b{
  width:14px;
  height:14px;
  border-radius:50%;
  display:inline-block;
}
.legend-item.booked b{background:#c62828;}
.legend-item.free b{background:#2e7d32;}
.calendar-frame{
  margin:0 30px;
  border-radius:20px;
  overflow:hidden;
  border:1px solid rgba(43,33,25,.12);
  box-shadow:0 10px 28px rgba(0,0,0,.12);
  background:#fff;
}
.calendar-frame iframe{
  width:100%;
  height: 320px;
  border:0;
  display:block;
}
.calendar-small{
  margin:14px 30px 30px;
  color:#6e6259;
  font-size:14px;
}
@media(max-width:760px){
  .calendar-header{
    flex-direction:column;
    padding:24px 18px 10px;
  }
  .calendar-cta{
    width:100%;
    text-align:center;
  }
  .availability-legend{
    padding:0 18px 14px;
  }
  .calendar-frame{
    margin:0 18px;
  }
  .calendar-frame iframe{
    height: 300px;
  }
  .calendar-small{
    margin:12px 18px 24px;
  }
}

/* Kalender: keine Markierung = frei */
.calendar-card{
  padding:0;
  overflow:hidden;
  background:linear-gradient(180deg,#fffaf0 0%,#ffffff 100%);
  border:1px solid rgba(43,33,25,.08);
}
.calendar-header{
  display:flex;
  justify-content:space-between;
  gap:24px;
  align-items:flex-start;
  padding:30px 30px 12px;
}
.eyebrow{
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:13px;
  font-weight:900;
  color:#2f7d32;
  margin:0 0 8px;
}
.calendar-header h2{
  margin:0;
  font-size:clamp(30px,4vw,46px);
}
.calendar-subtitle{
  margin:10px 0 0;
  color:#5f554d;
  font-size:18px;
}
.calendar-cta{
  background:#2f7d32;
  color:#fff;
  text-decoration:none;
  font-weight:900;
  padding:13px 18px;
  border-radius:999px;
  white-space:nowrap;
  box-shadow:0 8px 18px rgba(47,125,50,.25);
}
.availability-legend{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  padding:0 30px 18px;
}
.legend-item{
  display:inline-flex;
  align-items:center;
  gap:9px;
  background:#f2eadf;
  border-radius:999px;
  padding:10px 14px;
  font-weight:900;
}
.legend-item b{
  width:14px;
  height:14px;
  border-radius:50%;
  display:inline-block;
}
.legend-item.booked b{background:#c62828;}
.legend-item.free b{
  background:#fff;
  border:2px solid #2e7d32;
  box-sizing:border-box;
}
.calendar-frame{
  margin:0 30px;
  border-radius:20px;
  overflow:hidden;
  border:1px solid rgba(43,33,25,.12);
  box-shadow:0 10px 28px rgba(0,0,0,.12);
  background:#fff;
}
.calendar-frame iframe{
  width:100%;
  height: 320px;
  border:0;
  display:block;
}
.calendar-small{
  margin:14px 30px 30px;
  color:#6e6259;
  font-size:14px;
}
@media(max-width:760px){
  .calendar-header{
    flex-direction:column;
    padding:24px 18px 10px;
  }
  .calendar-cta{
    width:100%;
    text-align:center;
  }
  .availability-legend{
    padding:0 18px 14px;
  }
  .calendar-frame{
    margin:0 18px;
  }
  .calendar-frame iframe{
    height: 300px;
  }
  .calendar-small{
    margin:12px 18px 24px;
  }
}
