
:root{
  --cream:#f8f1e8;
  --sand:#ead8c4;
  --rose:#d9a8a3;
  --terracotta:#b86f59;
  --sage:#9baa8f;
  --olive:#66705d;
  --ink:#3f342f;
  --white:#fffdf9;
  --shadow:0 18px 50px rgba(76,54,45,.12);
  --radius:28px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"DM Sans",sans-serif;
  color:var(--ink);
  background:linear-gradient(180deg,#fbf6f0 0%,#f5ede4 100%);
}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
button:disabled{opacity:.55;cursor:not-allowed}
.app-shell{max-width:1440px;margin:auto;overflow:hidden}
.hero{
  min-height:720px;
  padding:28px 6vw 60px;
  position:relative;
  background:
    linear-gradient(90deg,rgba(57,45,39,.42),rgba(57,45,39,.04)),
    url("img/foto-05.jpeg") center/cover;
  color:white;
  border-radius:0 0 56px 56px;
}
.topbar{display:flex;justify-content:space-between;align-items:center}
.brand{display:flex;align-items:center;gap:14px}
.brand-mark{
  width:52px;height:52px;border:1px solid rgba(255,255,255,.65);
  border-radius:50%;display:grid;place-items:center;
  font-family:"Playfair Display",serif;font-size:20px;
  backdrop-filter:blur(10px);background:rgba(255,255,255,.08)
}
.brand h1{font-family:"Playfair Display",serif;margin:0;font-size:30px}
.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:11px;font-weight:700;opacity:.8}
.hero-content{max-width:690px;margin-top:140px}
.hero h2{
  font-family:"Playfair Display",serif;
  font-weight:500;font-size:clamp(48px,7vw,86px);
  line-height:.98;margin:26px 0 22px;
}
.hero p{font-size:19px;line-height:1.7;max-width:620px}
.pill{
  display:inline-flex;padding:10px 16px;border-radius:999px;
  background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.3);
  backdrop-filter:blur(10px);font-size:13px
}
.hero-actions{display:flex;gap:12px;margin-top:34px;flex-wrap:wrap}
.primary-btn,.secondary-btn,.ghost-btn,.danger-btn{
  border:none;border-radius:999px;padding:14px 22px;font-weight:700;
  transition:.2s ease;
}
.primary-btn{background:var(--terracotta);color:white}
.primary-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 12px 28px rgba(184,111,89,.28)}
.secondary-btn{background:var(--white);color:var(--ink)}
.ghost-btn{background:rgba(255,255,255,.13);color:white;border:1px solid rgba(255,255,255,.4);backdrop-filter:blur(10px)}
.floating-card{
  position:absolute;right:6vw;bottom:52px;width:min(360px,88vw);
  padding:24px;border-radius:24px;background:rgba(255,253,249,.88);
  color:var(--ink);backdrop-filter:blur(16px);box-shadow:var(--shadow)
}
.floating-card strong,.floating-card span{display:block}
.floating-card strong{font-family:"Playfair Display",serif;font-size:25px;margin:8px 0}
.mini-label{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--terracotta);font-weight:700}
main{padding:80px 6vw}
.intro{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:end;margin-bottom:50px}
.intro h3{font-family:"Playfair Display",serif;font-size:48px;line-height:1.05;margin:12px 0 0}
.intro p{font-size:18px;line-height:1.7;max-width:580px}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:30px}
.filter{
  border:1px solid #dccabc;background:transparent;padding:10px 16px;
  border-radius:999px;color:var(--ink)
}
.filter.active{background:var(--ink);color:white;border-color:var(--ink)}
.events-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:24px
}
.events-state{grid-column:1/-1;text-align:center;color:#76675f;font-size:17px;padding:30px 0}
.event-card{
  background:var(--white);border-radius:var(--radius);overflow:hidden;
  box-shadow:var(--shadow);display:flex;flex-direction:column;min-height:510px
}
.event-visual{
  min-height:190px;padding:20px;position:relative;
  display:flex;justify-content:space-between;align-items:flex-start;
  background:
    radial-gradient(circle at 85% 15%,rgba(255,255,255,.75),transparent 30%),
    linear-gradient(135deg,var(--sand),var(--rose));
}
.event-card:nth-child(2n) .event-visual{background:linear-gradient(135deg,#dce2d3,#aebca5)}
.event-card:nth-child(3n) .event-visual{background:linear-gradient(135deg,#efd8bd,#d7a87d)}
.event-visual.has-photo{
  background:none;padding:0;min-height:210px;overflow:hidden
}
.event-visual.has-photo img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block
}
.event-visual.has-photo .event-icon{
  position:relative;z-index:1;margin:20px;filter:drop-shadow(0 4px 10px rgba(40,31,27,.35))
}
.event-visual.has-photo .event-price{position:relative;z-index:1;margin:20px}
.event-icon{font-size:46px}
.event-price{
  padding:9px 13px;background:rgba(255,255,255,.78);
  border-radius:999px;font-weight:800
}
.event-body{padding:24px;display:flex;flex-direction:column;flex:1}
.event-body h4{font-family:"Playfair Display",serif;font-size:29px;margin:0 0 12px}
.event-meta{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:#76675f;margin-bottom:14px}
.event-body p{line-height:1.65;color:#6a5e58}
.highlights{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 22px;align-items:center}
.highlight{background:#f4ece5;padding:7px 10px;border-radius:999px;font-size:12px}
.spots-badge{
  background:#e2e8dc;color:#4c5844;padding:7px 10px;border-radius:999px;
  font-size:12px;font-weight:700
}
.spots-badge.sold-out{background:#efd8d4;color:#7d3f37}
.draft-badge{
  background:#f0e5dc;color:#8a6a52;padding:4px 9px;border-radius:999px;
  font-size:11px;font-weight:700;vertical-align:middle;letter-spacing:.04em
}
.event-body .primary-btn{margin-top:auto;width:100%}
.benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:90px}
.benefit-card{padding:32px;border-radius:24px;background:#efe3d7}
.benefit-card:nth-child(2){background:#e2e8dc}
.benefit-card:nth-child(3){background:#efd8d4}
.benefit-card span{font-family:"Playfair Display",serif;font-size:34px}
.benefit-card h4{font-size:22px;margin:16px 0 8px}
.benefit-card p{line-height:1.6}
.gallery{margin-top:90px}
.gallery-head{max-width:640px;margin-bottom:34px}
.gallery-head h3{font-family:"Playfair Display",serif;font-size:44px;line-height:1.05;margin:12px 0 14px}
.gallery-head p{font-size:17px;line-height:1.7;color:#6a5e58}
.gallery-grid{
  columns:4 240px;column-gap:16px
}
.gallery-grid img{
  width:100%;display:block;border-radius:20px;margin-bottom:16px;
  box-shadow:var(--shadow);cursor:pointer;transition:.25s ease
}
.gallery-grid img:hover{transform:scale(1.02)}
.lightbox{
  position:fixed;inset:0;z-index:40;background:rgba(40,31,27,.82);
  display:grid;place-items:center;padding:24px;cursor:zoom-out
}
.lightbox img{
  max-width:min(920px,94vw);max-height:88vh;border-radius:24px;
  box-shadow:0 30px 80px rgba(0,0,0,.45)
}
footer{
  margin:0 6vw 50px;padding:38px;border-radius:32px;
  background:var(--ink);color:white;display:flex;justify-content:space-between;align-items:center;gap:30px
}
footer h3{font-family:"Playfair Display",serif;font-size:34px;margin:0}
.modal-backdrop{
  position:fixed;inset:0;background:rgba(40,31,27,.55);display:grid;place-items:center;
  z-index:20;padding:18px
}
.modal{
  width:min(520px,100%);background:var(--white);border-radius:28px;padding:34px;
  position:relative;box-shadow:var(--shadow);max-height:92vh;overflow:auto
}
.modal h3{font-family:"Playfair Display",serif;font-size:32px}
.modal-close{border:none;background:transparent;font-size:34px;line-height:1}
.modal .modal-close{position:absolute;right:20px;top:15px}
#bookingForm,#loginForm{display:grid;gap:12px;margin:22px 0}
.spots-line{color:#4c5844;font-weight:700;font-size:14px;margin:6px 0 0}
.form-error{
  background:#efd8d4;color:#7d3f37;border-radius:14px;padding:12px 14px;
  font-size:14px;font-weight:600;margin:10px 0 0
}
.booking-success{text-align:center;padding:12px 0}
.booking-success .success-icon{font-size:52px;display:block;margin-bottom:8px}
.booking-success p{line-height:1.65;color:#6a5e58;margin-bottom:22px}
input,textarea,select{
  width:100%;border:1px solid #decfc3;border-radius:14px;padding:13px;background:white;color:var(--ink)
}
.full{width:100%}
.hidden{display:none!important}
.admin-panel{
  position:fixed;right:0;top:0;height:100vh;width:min(480px,100%);
  z-index:30;background:#fbf7f1;box-shadow:-16px 0 50px rgba(61,45,38,.18);
  padding:24px;overflow:auto
}
.admin-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}
.admin-header h3{font-family:"Playfair Display",serif;font-size:32px;margin:4px 0}
.admin-tabs{display:flex;gap:8px;margin-bottom:20px}
.admin-tab{
  border:1px solid #dccabc;background:transparent;padding:9px 15px;
  border-radius:999px;color:var(--ink);font-weight:600;display:flex;align-items:center;gap:7px
}
.admin-tab.active{background:var(--ink);color:white;border-color:var(--ink)}
.tab-badge{
  background:var(--terracotta);color:white;border-radius:999px;
  font-size:11px;font-weight:800;padding:2px 8px
}
.admin-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.admin-form label{font-size:12px;font-weight:700;display:grid;gap:6px}
.admin-form .wide{grid-column:1/-1}
.check-label{
  grid-column:1/-1;display:flex!important;align-items:center;gap:10px;
  font-size:13px!important
}
.check-label input{width:auto}
.admin-actions{grid-column:1/-1;display:flex;gap:10px}
.admin-list{margin-top:28px;display:grid;gap:10px}
.admin-item{
  background:white;border-radius:16px;padding:14px;display:flex;justify-content:space-between;gap:12px;align-items:center
}
.admin-item strong{display:block}
.admin-item small{color:#786b64;display:block}
.admin-item small a{color:var(--terracotta)}
.booking-item{align-items:flex-start}
.booking-msg{font-style:italic;margin-top:4px}
.booking-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.status-chip{
  padding:5px 10px;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap
}
.status-angefragt{background:#f4ece5;color:#8a6a52}
.status-bestätigt{background:#e2e8dc;color:#4c5844}
.status-abgesagt{background:#efd8d4;color:#7d3f37}
.icon-btn{border:none;background:#f0e5dc;border-radius:10px;padding:8px 10px}
.danger-btn{background:#7d3f37;color:white;margin-top:18px;width:100%}
@media(max-width:980px){
  .events-grid{grid-template-columns:repeat(2,1fr)}
  .intro{grid-template-columns:1fr}
}
@media(max-width:680px){
  .hero{min-height:760px;padding:22px 20px 50px}
  .topbar{align-items:flex-start}
  .ghost-btn{padding:11px 14px;font-size:12px}
  .hero-content{margin-top:110px}
  .hero h2{font-size:52px}
  .floating-card{left:20px;right:20px;bottom:32px;width:auto}
  main{padding:60px 20px}
  .intro h3{font-size:38px}
  .events-grid,.benefits{grid-template-columns:1fr}
  footer{margin:0 20px 30px;flex-direction:column;align-items:flex-start}
  .admin-form{grid-template-columns:1fr}
}
