:root{ --pad:clamp(14px,3vw,28px); --radius:18px; --shadow:0 12px 28px rgba(0,0,0,.08); }

a, .btn-link {
    color: #5b8e67ff;
    transform: all .2s;
    text-decoration: none;
}

a:hover, .btn-link:hover {
    color: #db752e;
    transform: all .2s;
}

html.no-js .app-wrap{ filter: blur(4px); pointer-events:none; user-select:none; }
body{ background: linear-gradient(180deg,#f7f8fa,#fff 30%,#f7f8fa 100%); }
body.is-loading .app-wrap{ filter: blur(3px); }
.container-narrow{ max-width:1140px; margin:0 auto; padding-inline:var(--pad); }
.navbar{ padding-block:.4rem; box-shadow:0 1px 0 rgba(0,0,0,.06); background:rgba(255,255,255,.88); backdrop-filter: blur(8px); }

/* Kopfbereich mit zentriertem Logo */
.site-head{ padding: 20px 0 10px; text-align:center; }
.site-logo{ width: clamp(140px, 58vw, 300px); height:auto; object-fit: contain; display:block; margin: 12px auto;  }
.legal-buttons{ display:flex; gap:8px; justify-content:center; flex-wrap:wrap; }

.hero{ padding:18px 0 16px; text-align:center; }
.hero h1{ font-size: clamp(1.4rem, 2.2vw, 2.1rem); margin:0 0 .4rem; }
.hero p{ color:#6c757d; margin:0 auto; max-width:60ch; }

.grid{ display:grid; gap:20px; grid-template-columns: repeat(12,1fr); }
@media (max-width:575px){ .grid{ grid-template-columns:1fr; } }
@media (min-width:576px) and (max-width:991px){ .grid{ grid-template-columns: repeat(6,1fr);} }
@media (min-width:992px){ .grid{ grid-template-columns: repeat(12,1fr);} }

.product-card{ grid-column: span 12; background:#fff; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); transition: transform .25s ease, box-shadow .25s ease; cursor:pointer; display:flex; flex-direction:column; }
@media (min-width:576px){ .product-card{ grid-column: span 6; } }
@media (min-width:992px){ .product-card{ grid-column: span 4; } }
.product-card:hover{ transform: translateY(-4px) scale(1.02); box-shadow:0 18px 40px rgba(0,0,0,.12); }
.pc-media{ aspect-ratio:16/11; width:100%; object-fit:cover; }
.pc-body{ padding:16px var(--pad); display:flex; flex-direction:column; gap:10px; }

.reveal{ opacity:0; transform: translateY(10px); transition: opacity .6s ease, transform .6s ease; }
.reveal.show{ opacity:1; transform:none; }

/* Modals extra Padding */
.modal-content{ border-radius:22px; }
.modal-header, .modal-footer{ padding: clamp(14px, 2.5vw, 22px) clamp(16px, 3vw, 28px); }
.modal-body{ padding: clamp(16px, 3vw, 32px); }
.modal-img{ border-radius:14px; box-shadow: 0 8px 24px rgba(0,0,0,.06); }

.modal-dialog-scrollable .modal-body {
    overflow-x: hidden;
}

.btn-primary {
    border: 0;
    background: #87b391 !important;
}

.mini-cal{ display:grid; grid-template-columns: repeat(7,1fr); gap:6px; font-size:.85rem; }
.mini-cal .day{ background:#f8f9fa; border-radius:10px; padding:6px; text-align:center; position:relative; }
.mini-cal .muted{ opacity:.5; }
.mini-cal .am::before, .mini-cal .pm::after{ content:""; position:absolute; left:8px; right:8px; height:4px; border-radius:4px; background:#e11d48; }
.mini-cal .am::before{ top:6px; } .mini-cal .pm::after{ bottom:6px; }
.mini-cal .sel{ background:#e0f2fe; outline:1px solid #38bdf8; }

.btn-xl{ padding:14px 18px; font-size:1.05rem; border-radius:14px; }
.agree-box{ background:#f8fafc; border:1px solid #e5e7eb; border-radius:14px; padding:12px; }

#successOverlay{ position:fixed; inset:0; background: rgba(0,0,0,.6); display:none; align-items:center; justify-content:center; z-index:2000; }
#successOverlay .panel{ background:#fff; border-radius:24px; max-width:720px; width:min(92vw,720px); padding: clamp(16px,3vw,28px); box-shadow:0 20px 60px rgba(0,0,0,.22); }

#loadingOverlay{ position:fixed; inset:0; background: rgba(255,255,255,.6); backdrop-filter: blur(4px); display:none; align-items:center; justify-content:center; z-index:2100; }

footer{ margin-top:40px; padding:18px var(--pad) 28px; color:#6b7280; text-align:center; }

/* Sperrzeiten (amber) – separate Balken, kollidieren nicht mit den roten Buchungsbalken */
.mini-cal .blk-bar{ position:absolute; left:8px; right:8px; height:3px; border-radius:4px; background:#f59e0b; }
.mini-cal .blk-am{ top:12px; }   /* etwas unter dem roten AM-Balken */
.mini-cal .blk-pm{ bottom:12px; }/* etwas über dem roten PM-Balken */

/* Swiper Sizing & Look */
.product-swiper{ aspect-ratio:16/11; width:100%; border-radius:var(--radius); overflow:hidden; }
.product-swiper .swiper-slide img{ width:100%; height:100%; object-fit:cover; display:block; }
.modal-swiper .swiper-slide img{ width:100%; height:auto; display:block; border-radius:14px; }

/* Controls */
.swiper-button-prev, .swiper-button-next{ color:#111; filter: drop-shadow(0 2px 6px rgba(0,0,0,.35)); }
.swiper-pagination-bullet-active{ background:#87b391; }

/* Lightbox Cursor */
a.glightbox, a.glightbox-modal{ cursor: zoom-in; display:block; }

.swiper-pagination-bullet-active {
    background: #fff !important;
}

.swiper-button-next, .swiper-button-prev {
    color: #fff !important;
}