:root{
  --bg:#EFF7FF;
  --surface:#FFFFFF;
  --ink:#142441;
  --ink-soft:#4B5D7E;
  --ink-faint:#8496B3;
  --sky:#2E9BE6; --sky-dark:#1B6FA8; --sky-tint:#DFF0FF;
  --coral:#FF5D73; --coral-dark:#C4324A; --coral-tint:#FFE3E7;
  --sun:#FFC533; --sun-dark:#B87E06; --sun-tint:#FFF3D6;
  --grass:#2FC17E; --grass-dark:#177A4D; --grass-tint:#DCF7E9;
  --purple:#8B6FE0; --purple-dark:#5B3FA8; --purple-tint:#EBE5FC;
  --radius-lg:26px; --radius-md:16px; --radius-sm:10px;
  --shadow:0 10px 28px rgba(20,36,65,.12);
  --shadow-sm:0 4px 12px rgba(20,36,65,.08);
}
*{box-sizing:border-box;}
body{margin:0;background:var(--bg);color:var(--ink);font-family:'Nunito',sans-serif;}
h1,h2,h3,h4{font-family:'Baloo 2',sans-serif;font-weight:700;margin:0;}
.mono{font-family:'Space Mono',monospace;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px;}
.main{padding:34px 24px 70px;}
img,svg{display:block;}

header.site{background:linear-gradient(160deg,var(--sky) 0%,var(--sky-dark) 100%);color:#fff;position:sticky;top:0;z-index:100;box-shadow:0 2px 10px rgba(20,36,65,.15);}
header.site.site-hero{position:relative;width:100%;background-color:var(--ink);background-size:cover;background-repeat:no-repeat;background-position:center;}
/* Startseite: großes Hero-Foto, Menü schwebt oben drüber (Logo ist bereits
   Teil des Bilds). Feste Höhe statt aspect-ratio -- letzteres kann in
   Kombination mit max-height je nach Browser zu unerwarteter Breite führen. */
.site-hero-home{height:660px;}
/* Artikel-/Kategorieseiten: schmalerer Streifen (hero_2), wie gewünscht
   zwischen 200 und 250px hoch. background-position:right schiebt das im
   Bild enthaltene Logo eher aus dem sichtbaren Bereich (vermeidet ein
   doppeltes Logo neben dem eigenen, unsichtbar-klickbaren Logo-Bereich). */
.site-hero-page{height:230px;background-position:right center;}
/* Auf Artikel-/Kategorieseiten soll das Menü beim Scrollen oben sichtbar
   bleiben (im Gegensatz zur Startseite, wo der Hero mit 660px dafür zu hoch
   wäre) -- deshalb hier explizit wieder "sticky" statt "relative". */
header.site.site-hero.site-hero-page{position:sticky;top:0;z-index:100;}
.site-hero .wrap.nav{height:100%;align-items:flex-start;padding-top:22px;}
.nav-floating{background:transparent;}
.nav-floating .nav-links{background:var(--grass);border-radius:40px;padding:10px 24px;box-shadow:0 8px 22px rgba(10,16,28,.28);}
.nav-floating .nav-links a{color:#fff;}
.nav-floating .cart-link{background:rgba(255,255,255,.24);border-color:rgba(255,255,255,.5);}
.logo-hero{position:absolute;top:0;left:0;width:220px;height:100px;display:block;}
@media(max-width:820px){
  /* Eigenes, hochformatigeres Foto fürs Handy statt des breiten Desktop-Fotos
     zugeschnitten -- siehe README für die empfohlene Bildgröße. Überschreibt
     bewusst mit !important, da das Desktop-Bild als Inline-Style gesetzt wird
     (höhere Spezifität als eine normale Klassenregel). Fehlt die Datei
     (noch nicht hochgeladen), zeigt der Browser einfach weiter das
     Desktop-Bild als Fallback -- keine kaputte Anzeige. */
  .site-hero-home{
    height:480px;
    background-image:url('/assets/hero-home-mobile.jpg') !important;
  }
  .site-hero-page{height:180px;}
  .nav-floating .nav-links{padding:8px 14px;gap:10px;font-size:12.5px;}
  .logo-hero{width:120px;height:70px;}
  .trust-strip{flex-wrap:wrap;border-radius:20px;}
  /* Hero-Bild scrollt bewusst ganz normal weg (nicht fixiert) -- auf großen
     Handys (z. B. iPhone Pro Max) würde ein dauerhaft stehendes, 480px
     hohes Foto sonst zu viel vom Bildschirm dauerhaft blockieren. Das Menü
     bleibt trotzdem erreichbar, siehe der schwebende Button weiter unten. */
}
header.site .nav{display:flex;align-items:center;justify-content:flex-end;padding:14px 24px;max-width:1080px;width:100%;margin:0 auto;flex-wrap:wrap;gap:24px;}
header.site .nav .logo{margin-right:auto;}
header.site .logo{display:flex;align-items:center;}
.logo-img{height:44px;width:auto;display:block;}
header.site .nav-links{display:flex;gap:22px;font-weight:700;font-size:14.5px;align-items:center;flex-wrap:wrap;}
.cart-link{position:relative;display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.16);border:1.5px solid rgba(255,255,255,.4);padding:7px 14px;border-radius:999px;}
.cart-badge{background:var(--coral);color:#fff;font-size:11px;font-weight:800;padding:1px 7px;border-radius:999px;}
.site-footer{text-align:center;padding:40px 0;color:var(--ink-faint);font-size:13px;}
.footer-links{display:flex;justify-content:center;gap:18px;margin-bottom:10px;font-weight:700;}
.footer-links a{color:var(--sky-dark);}

.section-head{padding:12px 0 22px;text-align:center;}
.section-head h1,.section-head h2{font-size:28px;}
.section-head p{color:var(--ink-soft);margin-top:8px;font-size:15.5px;}
.section-head-subtitle{text-align:left;line-height:1.6;}

.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px;padding-bottom:20px;}
.card{background:var(--surface);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s;display:block;}
.card:hover{transform:translateY(-6px) scale(1.015);box-shadow:var(--shadow);}
.card-top{padding:26px 22px 18px;position:relative;}
.card-art{height:180px;display:flex;align-items:center;justify-content:center;}
.card-art svg{width:110px;height:110px;}
.card-badge{position:absolute;top:16px;left:18px;font-size:11.5px;font-weight:700;padding:4px 10px;border-radius:999px;}
.card-body{padding:4px 22px 24px;}
.card-body h3{font-size:20px;margin-bottom:4px;}
.card-meta{display:flex;gap:14px;color:var(--ink-soft);font-size:13.5px;margin:8px 0 14px;flex-wrap:wrap;}
.card-foot{display:flex;align-items:center;justify-content:space-between;}
.price{font-family:'Baloo 2',sans-serif;font-weight:700;font-size:21px;}
.price small{font-family:'Nunito';font-weight:600;font-size:12.5px;color:var(--ink-soft);}

.btn{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:14px;padding:10px 18px;border-radius:999px;border:none;cursor:pointer;font-family:inherit;transition:transform .2s cubic-bezier(.34,1.56,.64,1);}
.btn:active{transform:scale(.95);}
.btn-primary{background:var(--ink);color:#fff;}
.btn-outline{background:#fff;border:2px solid var(--ink);color:var(--ink);}
.btn-block{width:100%;justify-content:center;padding:14px;font-size:15.5px;}
.btn-lg{padding:15px 26px;font-size:16px;}
.btn-sm{padding:7px 14px;font-size:13px;}
.btn[disabled]{opacity:.5;cursor:not-allowed;}

.t-coral{background:var(--coral-tint);color:var(--coral-dark);}
.t-sky{background:var(--sky-tint);color:var(--sky-dark);}
.t-sun{background:var(--sun-tint);color:var(--sun-dark);}
.t-grass{background:var(--grass-tint);color:var(--grass-dark);}
.t-purple{background:var(--purple-tint);color:var(--purple-dark);}
.top-coral{background:linear-gradient(160deg,#FFEDEF,var(--coral-tint));}
.top-sky{background:linear-gradient(160deg,#EAF6FF,var(--sky-tint));}
.top-sun{background:linear-gradient(160deg,#FFF8E6,var(--sun-tint));}
.top-grass{background:linear-gradient(160deg,#E7FBF0,var(--grass-tint));}
.top-purple{background:linear-gradient(160deg,#F1ECFD,var(--purple-tint));}
.fill-coral{fill:var(--coral);} .fill-sky{fill:var(--sky);} .fill-sun{fill:var(--sun);} .fill-grass{fill:var(--grass);} .fill-purple{fill:var(--purple);}

.back-link{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:14.5px;color:var(--sky-dark);margin-bottom:20px;}

.pdp-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:44px;align-items:start;margin-top:6px;}
.pdp-main{min-width:0;}
.pdp-image{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;background:var(--bg);}
.pdp-image img{width:100%;height:100%;object-fit:cover;}
.pdp-image svg{width:55%;height:55%;}
.pdp-thumbs{display:flex;gap:10px;margin-top:10px;flex-wrap:wrap;}
.pdp-thumb{width:64px;height:64px;border-radius:12px;overflow:hidden;padding:0;border:2px solid transparent;cursor:pointer;background:none;}
.pdp-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.pdp-thumb.active{border-color:var(--sky);}

/* Bildergalerie: alle Vorschaubilder gleich groß, per object-fit auf einen
   Bildausschnitt zugeschnitten statt verzerrt gestreckt. */
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin:20px 0 40px;}
.gallery-thumb{position:relative;aspect-ratio:1/1;border-radius:var(--radius-md);overflow:hidden;border:none;padding:0;cursor:pointer;background:var(--bg);box-shadow:var(--shadow-sm);}
.gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s ease;}
.gallery-thumb:hover img{transform:scale(1.06);}

.gallery-next-tile{aspect-ratio:1/1;border-radius:var(--radius-md);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:linear-gradient(145deg,var(--sky),var(--sky-dark));color:#fff;text-decoration:none;font-family:'Baloo 2',sans-serif;font-weight:700;font-size:15px;box-shadow:var(--shadow-sm);transition:transform .2s ease;}
.gallery-next-tile:hover{transform:scale(1.04);}
.gallery-next-arrow{font-size:26px;}

.lightbox{position:fixed;inset:0;background:rgba(10,16,28,.92);z-index:1000;display:none;align-items:center;justify-content:center;flex-direction:column;padding:24px;}
.lightbox.open{display:flex;}
.lightbox img{max-width:min(92vw,1000px);max-height:78vh;border-radius:12px;object-fit:contain;}
.lightbox-caption{color:#fff;margin-top:14px;font-size:14px;text-align:center;max-width:600px;}
.lightbox-close{position:absolute;top:18px;right:24px;background:none;border:none;color:#fff;font-size:36px;line-height:1;cursor:pointer;}
.lightbox-prev,.lightbox-next{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.12);border:none;color:#fff;font-size:32px;width:52px;height:52px;border-radius:50%;cursor:pointer;line-height:1;}
.lightbox-prev{left:16px;}
.lightbox-next{right:16px;}
@media(max-width:600px){
  .lightbox-prev,.lightbox-next{width:42px;height:42px;font-size:26px;}
}
.pdp-sidebar{position:sticky;top:96px;}
@media(max-width:900px){
  .pdp-grid{grid-template-columns:1fr;}
  .pdp-sidebar{position:static;}
}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:start;}
@media(max-width:800px){.detail-grid{grid-template-columns:1fr;}}
.detail-art{border-radius:var(--radius-lg);padding:50px 20px;display:flex;align-items:center;justify-content:center;}
.detail-art svg{width:180px;height:180px;}
.detail-badge{font-size:12.5px;font-weight:700;padding:5px 12px;border-radius:999px;display:inline-block;margin-bottom:10px;}
.detail-info h1{font-size:30px;margin-bottom:10px;}
.detail-info p.desc{color:var(--ink-soft);line-height:1.65;font-size:15.5px;margin-bottom:18px;}
.spec-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:22px;}
.spec-chip{background:#fff;border:1.5px solid #E1EAF5;padding:8px 14px;border-radius:12px;font-size:13.5px;font-weight:700;}
.price-line{display:flex;align-items:baseline;gap:8px;margin-bottom:6px;}
.price-line .big{font-family:'Baloo 2',sans-serif;font-size:28px;font-weight:700;}
.extra-day-note{color:var(--ink-soft);font-size:13px;margin-bottom:16px;}
.notice{border-radius:var(--radius-md);padding:12px 16px;font-size:13.5px;font-weight:700;margin-bottom:14px;}
.notice-sky{background:var(--sky-tint);color:var(--sky-dark);}
.notice-sun{background:var(--sun-tint);color:var(--sun-dark);}
.notice-coral{background:var(--coral-tint);color:var(--coral-dark);}

.calendar-card,.booking-panel,.form-card,.summary-card,.admin-card,.confirm-card,.auth-card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:22px 24px;}
.auth-card{max-width:400px;margin:20px auto;}
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}
.cal-nav a{width:34px;height:34px;border-radius:50%;background:var(--bg);display:flex;align-items:center;justify-content:center;font-weight:800;}
.cal-nav{display:flex;gap:8px;}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;}
.cal-dow{text-align:center;font-size:11.5px;font-weight:800;color:var(--ink-faint);padding-bottom:4px;}
.cal-day{aspect-ratio:1;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13.5px;background:none;border:none;font-family:inherit;cursor:pointer;transition:transform .2s cubic-bezier(.34,1.56,.64,1);}
.cal-day.empty{visibility:hidden;cursor:default;}
.cal-day.free{background:var(--grass-tint);color:var(--grass-dark);}
.cal-day.free:hover{transform:scale(1.14);}
.cal-day.past{background:transparent;color:var(--ink-faint);opacity:.35;cursor:default;}
.cal-day.booked{background:var(--coral-tint);color:var(--coral-dark);text-decoration:line-through;opacity:.75;cursor:default;}
.cal-day.selected{background:var(--ink);color:#fff;transform:scale(1.14);}
.cal-day.range{background:var(--sky-tint);color:var(--sky-dark);}
.cal-legend{display:flex;gap:14px;margin-top:16px;font-size:12px;font-weight:700;color:var(--ink-soft);flex-wrap:wrap;}
.dot{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:5px;}

.category-head{margin:34px 0 16px;}
.category-head:first-child{margin-top:0;}
.category-head h2{font-size:22px;}

.home-hero{text-align:center;padding:60px 20px;max-width:640px;margin:0 auto;}
.home-hero h1{font-size:32px;margin-bottom:14px;}
.home-hero p{color:var(--ink-soft);font-size:16px;line-height:1.6;margin-bottom:26px;}

/* Bild-Kachel-Reihe: direkt unter dem Menü, verlinkt mit den Kategorien. */
.tile-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;margin:0 0 36px;}
.tile{position:relative;min-width:0;aspect-ratio:4/3;border-radius:var(--radius-lg);overflow:hidden;text-decoration:none;box-shadow:var(--shadow-sm);display:block;background:var(--ink);}
.tile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease;}
.tile:hover img{transform:scale(1.06);}
.tile-fallback{width:100%;height:100%;background:linear-gradient(150deg,var(--sky),var(--purple));}
.tile-scrim{position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,16,28,.78) 0%,rgba(10,16,28,.15) 55%,transparent 75%);}
.tile-label{position:absolute;left:16px;bottom:16px;color:#fff;}
.tile-name{display:block;font-family:'Baloo 2',sans-serif;font-weight:700;font-size:18px;overflow-wrap:break-word;}
.tile-caption{display:block;background:var(--grass);color:#fff;font-size:12px;font-weight:800;padding:3px 10px;border-radius:20px;margin-top:6px;}
.tile-arrow{position:absolute;top:14px;right:14px;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.92);color:var(--ink);display:flex;align-items:center;justify-content:center;font-weight:800;}

/* 2-Spalten-Intro: links H1 + Checkliste, rechts Google-Bewertungen. */
.home-intro-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:start;margin-bottom:44px;}
.home-intro-text h1{font-size:34px;line-height:1.15;margin-bottom:20px;}
.check-list{list-style:none;margin:0;padding:0;}
.check-list li{position:relative;padding:6px 0 6px 30px;font-weight:700;font-size:15.5px;}
.check-list li::before{content:'✓';position:absolute;left:0;top:6px;color:var(--grass);font-weight:800;}
.home-reviews{background:var(--grass-tint);border-radius:var(--radius-lg);padding:26px;}
.home-reviews h2{font-size:20px;margin-bottom:14px;}
.reviews-summary{display:flex;align-items:center;gap:14px;margin-bottom:16px;}
.google-g{width:40px;height:40px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;font-family:'Baloo 2',sans-serif;font-weight:700;font-size:20px;color:#4285F4;box-shadow:var(--shadow-sm);flex-shrink:0;}
.reviews-stars{color:var(--sun);letter-spacing:1px;font-size:16px;}
.reviews-meta{font-size:12.5px;color:var(--ink-soft);font-weight:700;}
.review-card{background:#fff;border-radius:14px;padding:14px 16px;margin-bottom:10px;box-shadow:var(--shadow-sm);}
.review-card-head{display:flex;align-items:center;gap:10px;margin-bottom:8px;}
.review-avatar{width:32px;height:32px;border-radius:50%;background:var(--sky-tint);color:var(--sky-dark);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;flex-shrink:0;}
.review-card p{font-size:13.5px;color:var(--ink-soft);margin:0;line-height:1.5;}
.review-date{font-size:11px;color:var(--ink-faint);}
@media(max-width:800px){ .home-intro-grid{grid-template-columns:1fr;} }

/* Vertrauens-Leiste unter dem Intro-Bereich. */
.trust-strip{display:flex;flex-wrap:nowrap;justify-content:center;gap:8px 18px;background:#fff;border:1px solid #EEF3FA;border-radius:40px;padding:14px 18px;margin-bottom:50px;box-shadow:var(--shadow-sm);}
.trust-strip span{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--ink-soft);white-space:nowrap;}
.trust-ic{font-size:16px;}

/* Bild links (Standard) oder rechts (.img-right), vertikal oben/mittig/unten
   ausrichtbar (.valign-*). Kein Foto -> .home-full nimmt die volle Breite
   ein, kein zweispaltiges Raster. Positionierung über "order" statt der
   früheren direction:rtl-Krücke -- bleibt beim Zusammenklappen auf Mobile
   sauber in derselben Reihenfolge gestapelt. */
.home-section{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin:50px 0;}
.home-section.home-full{grid-template-columns:1fr;}
.home-section-image{order:1;}
.home-section-text{order:2;}
.home-section.img-right .home-section-image{order:2;}
.home-section.img-right .home-section-text{order:1;}
.home-section-image.valign-top{align-self:start;}
.home-section-image.valign-middle{align-self:center;}
.home-section-image.valign-bottom{align-self:end;}
.home-section-image img{width:100%;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:block;object-fit:cover;max-height:360px;}
.home-section-text h2{font-size:26px;margin-bottom:12px;}
.home-section-text p{color:var(--ink-soft);font-size:15.5px;line-height:1.7;}
@media(max-width:800px){
  .home-section{grid-template-columns:1fr;}
}

.img-upload-preview{width:64px;height:64px;border-radius:14px;overflow:hidden;flex-shrink:0;background:var(--bg);}
.img-upload-preview img{width:100%;height:100%;object-fit:cover;}

.booking-grid{margin-top:28px;display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start;}
@media(max-width:800px){.booking-grid{grid-template-columns:1fr;}}
.stepper{display:flex;align-items:center;gap:12px;margin-bottom:16px;}
.stepper button{width:32px;height:32px;border-radius:50%;background:var(--bg);font-weight:800;font-size:16px;border:none;cursor:pointer;font-family:inherit;}
.stepper .val{font-family:'Baloo 2',sans-serif;font-weight:700;font-size:16px;min-width:130px;text-align:center;}
.field{margin-bottom:14px;}
.field label{display:block;font-size:12.5px;font-weight:800;color:var(--ink-soft);margin-bottom:5px;}
.field input,.field select,.field textarea{width:100%;padding:11px 13px;border-radius:var(--radius-sm);border:2px solid #E1EAF5;font-family:'Nunito';font-size:14px;background:var(--bg);}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.summary-line{display:flex;justify-content:space-between;font-size:14px;padding:8px 0;border-bottom:1px dashed #E1EAF5;}
.summary-line.total{border-bottom:none;padding-top:12px;font-size:16px;}
.summary-line.sub span:first-child{color:var(--ink-soft);}

.checkbox-row{display:flex;align-items:flex-start;gap:8px;font-size:12.5px;font-weight:700;color:var(--ink-soft);margin:10px 0;}
.checkbox-row input{margin-top:2px;}
canvas.signature-pad{width:100%;height:130px;border:2px solid #E1EAF5;border-radius:12px;background:#fff;touch-action:none;cursor:crosshair;}
.sig-clear{font-size:12px;font-weight:700;color:var(--ink-soft);text-decoration:underline;background:none;border:none;cursor:pointer;font-family:inherit;margin-top:4px;}

.error-box{background:var(--coral-tint);color:var(--coral-dark);border-radius:10px;padding:10px 14px;font-size:13px;font-weight:700;margin:12px 0;}
.success-box{background:var(--grass-tint);color:var(--grass-dark);border-radius:10px;padding:10px 14px;font-size:13px;font-weight:700;margin:12px 0;}

.confirm-card{max-width:560px;margin:20px auto;text-align:center;padding:44px 36px;}
.confirm-id{font-family:'Space Mono',monospace;background:var(--bg);padding:10px 18px;border-radius:999px;display:inline-block;margin:14px 0 22px;font-weight:700;font-size:14.5px;}
.confirm-list{text-align:left;background:var(--bg);border-radius:var(--radius-md);padding:18px 20px;margin-bottom:22px;}

.admin-tabs{display:flex;gap:10px;margin-bottom:22px;}
.admin-tab{padding:10px 18px;border-radius:999px;font-weight:800;font-size:13.5px;background:#fff;border:2px solid #E1EAF5;color:var(--ink-soft);}
.admin-tab.active{background:var(--ink);border-color:var(--ink);color:#fff;}
.admin-topbar{display:flex;gap:12px;align-items:center;margin-bottom:20px;flex-wrap:wrap;}
.admin-card{margin-bottom:16px;}

.admin-category-group{margin-bottom:22px;}
.admin-category-group summary{cursor:pointer;font-family:'Baloo 2',sans-serif;font-weight:700;font-size:16px;color:var(--ink);padding:10px 0;list-style:none;border-bottom:2px solid var(--sky);margin-bottom:14px;}
.admin-category-group summary::-webkit-details-marker{display:none;}
.admin-category-group summary::before{content:'▾ ';color:var(--sky-dark);}
.admin-category-group:not([open]) summary::before{content:'▸ ';}

.rte{border:2px solid #E1EAF5;border-radius:12px;overflow:hidden;}
.rte-toolbar{display:flex;gap:4px;flex-wrap:wrap;background:#F5F8FC;padding:8px;border-bottom:1px solid #E1EAF5;}
.rte-toolbar button{background:#fff;border:1px solid #E1EAF5;border-radius:6px;padding:5px 10px;font-size:12.5px;font-weight:700;cursor:pointer;color:var(--ink);}
.rte-toolbar button:hover{background:var(--sky-tint);border-color:var(--sky);}
.rte-editable{min-height:110px;padding:12px 14px;font-size:14px;line-height:1.6;outline:none;}
.rte-editable h1,.rte-editable h2,.rte-editable h3,.rte-editable h4,.rte-editable h5{font-family:'Baloo 2',sans-serif;margin:10px 0 6px;}
.rte-editable h1{font-size:26px;} .rte-editable h2{font-size:22px;} .rte-editable h3{font-size:19px;}
.rte-editable h4{font-size:16px;} .rte-editable h5{font-size:14px;}
.rte-editable p,.rte-editable div{margin:0 0 8px;}
.admin-table{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;}
.admin-row{display:grid;grid-template-columns:1.2fr 1fr 1.4fr .8fr 1.2fr;gap:14px;align-items:center;padding:16px 24px 16px 26px;border-bottom:1px solid #EEF3FA;font-size:13px;}
.admin-row.head{background:var(--bg);font-weight:800;color:var(--ink-soft);font-size:11.5px;text-transform:uppercase;}
/* Auf schmalen Bildschirmen (Handy/Tablet) keine gequetschten Spalten nebeneinander
   mehr -- stattdessen jede "Spalte" als eigener Block untereinander, mit voller
   Breite zum Atmen. Betrifft alle Admin-Tabellen (Buchungen, Kundenkonten,
   Landingpages ...), auch wenn die jeweilige Seite ihre eigene
   grid-template-columns per Inline-Style setzt -- !important überschreibt das
   bewusst nur unterhalb der Mobile-Grenze. */
@media(max-width:900px){
  .admin-row{grid-template-columns:1fr !important;gap:4px;padding:14px 16px;}
  .admin-row.head{display:none;} /* Spaltenüberschriften ergeben gestapelt keinen Sinn */
}
.status-pill{padding:4px 10px;border-radius:999px;font-size:11px;font-weight:800;display:inline-block;}
.status-PENDING_PAYMENT{background:var(--sun-tint);color:var(--sun-dark);}
.status-PAID{background:var(--sky-tint);color:var(--sky-dark);}
.status-COMPLETED{background:var(--grass-tint);color:var(--grass-dark);}
.status-CANCELLED,.status-EXPIRED{background:#eef1f6;color:var(--ink-faint);}
.refund-form{display:flex;gap:8px;align-items:center;}
.refund-form input{width:60px;padding:7px;border-radius:8px;border:2px solid #E1EAF5;font-family:'Space Mono';font-size:12px;}
.sig-details{margin-top:8px;font-size:12px;}
.sig-details summary{cursor:pointer;font-weight:700;color:var(--sky-dark);}
.sig-box{background:var(--bg);border-radius:10px;padding:12px;margin-top:8px;}
.sig-box img{max-width:220px;background:#fff;border:1px solid #E1EAF5;border-radius:8px;}

.login-card{max-width:380px;margin:60px auto;padding:32px;}

.modal-overlay{position:fixed;inset:0;background:rgba(20,36,65,.55);z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;}
.modal-box{background:#fff;border-radius:var(--radius-lg);width:100%;max-width:720px;max-height:85vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow);}
.modal-head{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #EEF3FA;font-family:'Baloo 2',sans-serif;font-weight:700;font-size:17px;}
.modal-close{background:none;border:none;font-size:26px;line-height:1;cursor:pointer;color:var(--ink-faint);}
.modal-box iframe{border:none;width:100%;flex:1;min-height:60vh;}

.faq-item{background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:16px 20px;}
.faq-item summary{cursor:pointer;font-weight:800;font-family:'Baloo 2',sans-serif;font-size:15.5px;list-style:none;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::before{content:'+ ';color:var(--sky-dark);}
.faq-item[open] summary::before{content:'− ';}
.faq-answer{margin-top:10px;color:var(--ink-soft);font-size:14px;line-height:1.65;}
