/* Neutrales, responsives Design ohne Abhängigkeit von anderen ALV-Plugins. */
.alvsc-calendar{max-width:960px;margin:0 auto}.alvsc-workshop{padding:clamp(18px,3vw,32px);border:1px solid #ddd;border-radius:14px;margin:0 0 28px;background:#fff;color:#222}.alvsc-workshop h2{margin-top:0}.alvsc-image{width:100%;height:auto;max-height:380px;object-fit:cover;border-radius:10px}.alvsc-description{margin:18px 0}.alvsc-options{display:grid;gap:10px}.alvsc-option{display:flex;align-items:flex-start;gap:12px;padding:16px;border:1px solid #ddd;border-radius:10px;cursor:pointer}.alvsc-option:has(input:checked){border-color:#333;background:#f7f7f7}.alvsc-option input{margin-top:5px;flex:none}.alvsc-option-content{display:grid;gap:4px;flex:1;min-width:0}.alvsc-option-content span,.alvsc-option-content small{font-size:.9em;color:#555}.alvsc-price{font-weight:600;text-align:right}.alvsc-disabled{opacity:.55;cursor:not-allowed}.alvsc-summary{font-weight:600;margin:18px 0}.alvsc-register{background:#242424;color:white;border:0;border-radius:8px;padding:12px 24px;cursor:pointer}.alvsc-register:disabled{opacity:.45;cursor:not-allowed}.alvsc-form{margin-top:18px;padding:18px;background:#f8f8f8;border-radius:10px}.alvsc-notice{color:#666;font-size:.9em}@media(max-width:560px){.alvsc-option{flex-wrap:wrap}.alvsc-price{margin-left:30px;text-align:left}}

/* 0.2.0 – Eigenständige Set-Karten, orientiert am ALV No-Shop Layout. */
.alvsc-set-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,310px),1fr));gap:26px;align-items:start}
.alvsc-set-card{background:#fff;border:1px solid #e4e4e4;border-radius:14px;overflow:hidden;box-shadow:0 6px 22px rgba(0,0,0,.045)}
.alvsc-set-media{display:block;aspect-ratio:4/3;overflow:hidden}.alvsc-set-media img{width:100%;height:100%;object-fit:cover}
.alvsc-set-body{padding:24px}.alvsc-set-body h2{font-size:1.4rem;margin:0 0 12px}.alvsc-set-body p{margin:0 0 14px}.alvsc-set-price{font-weight:700}
.alvsc-set-details{border-top:1px solid #ddd;border-bottom:1px solid #ddd;margin:18px 0}.alvsc-set-details>summary{cursor:pointer;list-style:none;padding:15px 0;font-weight:650;display:flex;justify-content:space-between}.alvsc-set-details>summary::-webkit-details-marker{display:none}
.alvsc-set-details[open]>summary span{transform:rotate(180deg)}.alvsc-set-link{display:inline-block;margin-top:5px;font-weight:600}
.alvsc-set-details .alvsc-workshop{border:0;padding:0;margin:0 0 16px;border-radius:0}.alvsc-set-details .alvsc-option{padding:11px;flex-wrap:wrap}.alvsc-set-details .alvsc-price{text-align:left}
.alvsc-month{margin-bottom:36px}.alvsc-month h2{margin-bottom:15px}.alvsc-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.alvsc-weekday{text-align:center;font-weight:700;padding:9px 2px}
.alvsc-day{min-height:110px;background:#fafafa;border:1px solid #e5e5e5;border-radius:7px;padding:7px;min-width:0}.alvsc-day-number{font-weight:700;display:block;margin-bottom:6px}.alvsc-calendar-event{display:block;background:#e8eeee;border-left:3px solid #517f80;padding:6px;margin:5px 0;text-decoration:none!important;color:#223b3c!important;font-size:.8rem;overflow-wrap:anywhere}.alvsc-calendar-event strong,.alvsc-calendar-event small,.alvsc-calendar-event span{display:block}.alvsc-calendar-event span{text-decoration:underline}
.alvsc-landing .alvsc-image{width:100%;object-fit:cover;max-height:460px}.alvsc-landing .alvsc-booking{margin-top:15px}
@media(max-width:700px){.alvsc-month-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}.alvsc-day{padding:3px;min-height:65px}.alvsc-calendar-event{font-size:0;padding:5px 2px;min-height:14px}.alvsc-calendar-event strong{font-size:9px;line-height:1.15}.alvsc-calendar-event small,.alvsc-calendar-event span{display:none}.alvsc-day-number{font-size:12px}.alvsc-weekday{font-size:11px}}
/* 0.3.0: Dezentes ALV-Zahnrad für autorisierte Bearbeiter. */
.alvsc-set-card,.alvsc-landing,.alvsc-option,.alvsc-day{position:relative}
.alvsc-edit-gear{position:relative;display:inline-flex;align-items:center;justify-content:center;width:35px;height:35px;border:1px solid #444;border-radius:50%;background:#fff;color:#333;text-decoration:none!important;font-size:19px;line-height:1;z-index:5}
.alvsc-set-card>.alvsc-edit-gear{position:absolute;right:14px;top:14px}
.alvsc-landing>.alvsc-edit-gear{position:absolute;right:14px;top:14px}
.alvsc-option>.alvsc-edit-gear{position:absolute;right:8px;top:8px}
.alvsc-day>.alvsc-edit-gear{width:25px;height:25px;font-size:15px;margin:2px}
.alvsc-edit-gear:hover,.alvsc-edit-gear:focus{background:#333;color:#fff}

/* Eigenständige Designvariablen des Kalender-Konfigurators. */
.alvsc-set-grid{grid-template-columns:repeat(var(--alvsc-cols,3),minmax(0,1fr))}
.alvsc-option,.alvsc-workshop,.alvsc-set-card{border-radius:var(--alvsc-radius,10px)}
.alvsc-register{background:var(--alvsc-accent,#333)}
.alvsc-option:has(input:checked){border-color:var(--alvsc-accent,#333)}
.alvsc-option>.alvsc-option-content{font-weight:normal}
@media(max-width:850px){.alvsc-set-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.alvsc-set-grid{grid-template-columns:1fr}}

/* Designoptionen aus dem eigenständigen ALV Simple Calendar Konfigurator. */
.alvsc-calendar,.alvsc-landing{color:var(--alvsc-text,#222);font-size:var(--alvsc-body-size,16px)}
.alvsc-calendar .alvsc-set-grid{gap:var(--alvsc-gap,26px)}
.alvsc-calendar .alvsc-set-card,.alvsc-calendar .alvsc-workshop,.alvsc-landing .alvsc-workshop{background:var(--alvsc-card-bg,#fff);border-color:var(--alvsc-border,#ddd)}
.alvsc-calendar .alvsc-set-body{padding:var(--alvsc-padding,24px)}
.alvsc-calendar .alvsc-set-body h2{font-size:var(--alvsc-title-size,22px)}
.alvsc-calendar .alvsc-option,.alvsc-landing .alvsc-option{border-color:var(--alvsc-border,#ddd)}
.alvsc-calendar .alvsc-option:has(input:checked),.alvsc-landing .alvsc-option:has(input:checked){background:var(--alvsc-selected-bg,#f7f7f7);border-color:var(--alvsc-accent,#333)}
.alvsc-calendar .alvsc-option-content span,.alvsc-calendar .alvsc-option-content small,.alvsc-landing .alvsc-option-content span{color:var(--alvsc-muted,#555)}
.alvsc-calendar .alvsc-day{background:var(--alvsc-calendar-bg,#fafafa);border-color:var(--alvsc-border,#ddd)}
.alvsc-calendar .alvsc-calendar-event{background:var(--alvsc-calendar-event,#e8eeee);border-left-color:var(--alvsc-accent,#333)}
.alvsc-calendar .alvsc-register,.alvsc-landing .alvsc-register{border-radius:var(--alvsc-button-radius,8px)}

/* 0.4.3 – Kompakte Terminauswahl auf Workshop-Landingpages.
   Die Bearbeitungsfunktion bleibt für berechtigte Nutzer rechts in derselben Zeile. */
.alvsc-view-booking .alvsc-booking{padding:0;border:0;background:transparent;margin:0 0 12px;border-radius:0}
.alvsc-view-booking .alvsc-options{gap:7px}
.alvsc-view-booking .alvsc-session-row{display:flex;align-items:center;gap:9px;min-width:0}
.alvsc-view-booking .alvsc-option{flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;flex-wrap:nowrap}
.alvsc-view-booking .alvsc-option input{margin:0;flex:none}
.alvsc-view-booking .alvsc-option-content{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:12px;row-gap:2px;line-height:1.35}
.alvsc-view-booking .alvsc-option-content span{font-size:.92em}
.alvsc-view-booking .alvsc-option-content span+span{font-size:.82em;color:var(--alvsc-muted,#666)}
.alvsc-view-booking .alvsc-session-row>.alvsc-edit-gear{position:static;flex:none;width:29px;height:29px;font-size:16px}
.alvsc-view-booking .alvsc-summary{margin:12px 0 10px}
@media(max-width:560px){.alvsc-view-booking .alvsc-option-content{display:grid;gap:2px}.alvsc-view-booking .alvsc-option{padding:10px}.alvsc-view-booking .alvsc-session-row{gap:6px}}

/* 0.4.8: Kompakte Monatsansicht ohne leere Kalendertage. */
.alvsc-compact-months .alvsc-active-days{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:16px;align-items:start}
.alvsc-compact-months .alvsc-active-day{background:var(--alvsc-calendar-bg,#fafafa);border:1px solid #e3e3e3;border-radius:10px;padding:16px;min-width:0}
.alvsc-compact-months .alvsc-active-date{font-size:1rem;line-height:1.4;margin:0 0 12px;font-weight:700}
.alvsc-compact-months .alvsc-active-events{display:grid;gap:10px}
.alvsc-compact-months .alvsc-active-event{position:relative;border-left:3px solid var(--alvsc-accent,#517f80);background:var(--alvsc-calendar-event,#e8eeee);padding:12px;border-radius:0 6px 6px 0;min-width:0}
.alvsc-compact-months .alvsc-active-event-link{display:grid;gap:6px;color:inherit;text-decoration:none;overflow-wrap:anywhere}
.alvsc-compact-months .alvsc-active-title{font-size:1rem;line-height:1.35}
.alvsc-compact-months .alvsc-active-time:before{content:'◷';margin-right:7px}
.alvsc-compact-months .alvsc-active-place:before{content:'⌖';margin-right:7px}
.alvsc-compact-months .alvsc-active-more{text-decoration:underline;font-size:.9rem}
@media(max-width:700px){.alvsc-compact-months .alvsc-active-days{grid-template-columns:1fr}.alvsc-compact-months .alvsc-active-day{padding:14px}}

/* Kurzer Workshop-Vorschautext in der kompakten Terminübersicht. */
.alvsc-compact-months .alvsc-active-preview{display:block;font-size:.91rem;line-height:1.45;opacity:.9}

/* 0.5.0: Monatsreiter, einheitliche Karten-Typografie und eigene Spaltenzahl. */
.alvsc-compact-months .alvsc-month-tabs{display:flex;gap:9px;flex-wrap:wrap;margin:0 0 24px}
.alvsc-compact-months .alvsc-month-tab{border:1px solid var(--alvsc-border,#ddd);border-radius:999px;padding:9px 18px;background:var(--alvsc-card-bg,#fff);color:var(--alvsc-text,#222);font:inherit;cursor:pointer}
.alvsc-compact-months .alvsc-month-tab[aria-selected="true"]{background:var(--alvsc-accent,#333);border-color:var(--alvsc-accent,#333);color:#fff}
.alvsc-compact-months .alvsc-month-panel[hidden]{display:none!important}
.alvsc-compact-months .alvsc-active-days{grid-template-columns:repeat(var(--alvsc-calendar-cols,3),minmax(0,1fr));gap:var(--alvsc-gap,26px)}
.alvsc-compact-months .alvsc-active-day{padding:0;background:transparent;border:0;display:grid;gap:14px}
.alvsc-compact-months .alvsc-active-event{background:var(--alvsc-card-bg,#fff);border:1px solid var(--alvsc-border,#ddd);border-radius:var(--alvsc-radius,10px);padding:var(--alvsc-padding,24px);box-shadow:0 6px 22px rgba(0,0,0,.045)}
.alvsc-compact-months .alvsc-active-date{font-size:.85rem;font-weight:600;line-height:1.4;margin:0 0 14px;color:var(--alvsc-muted,#555)}
.alvsc-compact-months .alvsc-active-title{font-size:var(--alvsc-title-size,22px);line-height:1.3;margin:10px 0 12px;font-weight:600}
.alvsc-compact-months .alvsc-active-preview{font-size:1em;line-height:1.55;margin:0 0 15px;opacity:1}
.alvsc-compact-months .alvsc-active-time,.alvsc-compact-months .alvsc-active-place{font-size:.92em;line-height:1.45;margin:7px 0;overflow-wrap:anywhere}
.alvsc-compact-months .alvsc-active-more{display:inline-block;font-size:.95em;margin-top:13px;font-weight:600}
.alvsc-highlight{display:inline-block;max-width:100%;border-radius:999px;background:var(--alvsc-calendar-event,#e8eeee);color:var(--alvsc-text,#222);padding:5px 11px;font-size:.76em;font-weight:700;line-height:1.4;letter-spacing:.01em}
.alvsc-set-body>.alvsc-highlight{margin-bottom:12px}
@media(max-width:850px){.alvsc-compact-months .alvsc-active-days{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.alvsc-compact-months .alvsc-active-days{grid-template-columns:1fr}}

/* 0.5.1 – Monatsreiter mit expliziten, theme-resistenten Farben. */
.alvsc-calendar .alvsc-compact-months .alvsc-month-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.alvsc-calendar .alvsc-compact-months button.alvsc-month-tab,
.alvsc-calendar .alvsc-compact-months button.alvsc-month-tab:hover,
.alvsc-calendar .alvsc-compact-months button.alvsc-month-tab:focus{display:inline-flex;align-items:center;justify-content:center;width:auto;min-width:max-content;min-height:38px;padding:7px 14px;border:1px solid var(--alvsc-border,#ddd);border-radius:var(--alvsc-button-radius,8px);background:var(--alvsc-tab-bg,#f4f4f4)!important;color:var(--alvsc-tab-text,#222)!important;font-size:14px;font-weight:600;line-height:1.35;opacity:1;visibility:visible;text-shadow:none;box-shadow:none}
.alvsc-calendar .alvsc-compact-months button.alvsc-month-tab[aria-selected="true"],
.alvsc-calendar .alvsc-compact-months button.alvsc-month-tab[aria-selected="true"]:hover,
.alvsc-calendar .alvsc-compact-months button.alvsc-month-tab[aria-selected="true"]:focus{background:var(--alvsc-tab-active-bg,#333)!important;color:var(--alvsc-tab-active-text,#fff)!important;border-color:var(--alvsc-tab-active-bg,#333)!important}
/* Jede Veranstaltung ist eine eigene Karte: kein unregelmäßiger Spaltenumbruch bei mehreren Terminen am selben Tag. */
.alvsc-calendar .alvsc-compact-months .alvsc-active-days{display:grid;grid-template-columns:repeat(var(--alvsc-calendar-cols,3),minmax(0,1fr));gap:14px;align-items:stretch}
.alvsc-calendar .alvsc-compact-months .alvsc-active-event{display:flex;flex-direction:column;min-width:0;padding:15px 17px;background:var(--alvsc-card-bg,#fff);border:1px solid var(--alvsc-border,#ddd);box-shadow:none}
.alvsc-calendar .alvsc-compact-months .alvsc-active-event-content{display:flex;flex-direction:column;flex:1;min-width:0}
.alvsc-calendar .alvsc-compact-months .alvsc-active-date{font-size:12px;margin:0 0 7px;line-height:1.4}
.alvsc-calendar .alvsc-compact-months .alvsc-active-title{font-size:clamp(17px,1.25rem,21px);line-height:1.3;margin:5px 0 8px}
.alvsc-calendar .alvsc-compact-months .alvsc-active-preview{font-size:14px;line-height:1.45;margin:0 0 10px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.alvsc-calendar .alvsc-compact-months .alvsc-active-time,.alvsc-calendar .alvsc-compact-months .alvsc-active-place{font-size:13px;line-height:1.4;margin:3px 0}
.alvsc-calendar .alvsc-compact-months .alvsc-active-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:auto;padding-top:12px}
.alvsc-calendar .alvsc-compact-months .alvsc-calendar-select{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;line-height:1.3;cursor:pointer}
.alvsc-calendar .alvsc-compact-months .alvsc-calendar-select input{width:17px;height:17px;margin:0;accent-color:var(--alvsc-accent,#333)}
.alvsc-calendar .alvsc-compact-months .alvsc-active-more{font-size:13px;margin:0}
.alvsc-calendar .alvsc-compact-months .alvsc-calendar-unavailable{font-size:12px;color:var(--alvsc-muted,#555)}
.alvsc-calendar.alvsc-view-calendar .alvsc-central-booking{margin-top:22px;padding:16px;border:1px solid var(--alvsc-border,#ddd);border-radius:var(--alvsc-radius,10px);background:var(--alvsc-card-bg,#fff)}
.alvsc-calendar.alvsc-view-calendar .alvsc-central-booking .alvsc-form{margin-top:16px}
@media(max-width:850px){.alvsc-calendar .alvsc-compact-months .alvsc-active-days{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.alvsc-calendar .alvsc-compact-months .alvsc-active-days{grid-template-columns:1fr}}

/* 0.5.2 – Einheitliche Typografie für Workshop- und Kalenderübersicht.
   Beide Kartentypen lesen dieselben Schriftgrößen aus dem Konfigurator.
   Die kompakte Kalenderdarstellung entsteht durch Abstände und Textbegrenzung,
   nicht mehr durch unabhängig festgelegte 13-/14-/17-px-Schriftgrößen. */
.alvsc-calendar .alvsc-set-body,
.alvsc-calendar .alvsc-compact-months .alvsc-active-event{font-size:var(--alvsc-body-size,16px);line-height:1.5}
.alvsc-calendar .alvsc-set-body h2,
.alvsc-calendar .alvsc-compact-months .alvsc-active-title{font-size:var(--alvsc-title-size,22px);line-height:1.3;font-weight:600}
.alvsc-calendar .alvsc-set-body p,
.alvsc-calendar .alvsc-compact-months .alvsc-active-preview{font-size:1em;line-height:1.5}
.alvsc-calendar .alvsc-compact-months .alvsc-active-time,
.alvsc-calendar .alvsc-compact-months .alvsc-active-place,
.alvsc-calendar .alvsc-compact-months .alvsc-calendar-select,
.alvsc-calendar .alvsc-compact-months .alvsc-active-more{font-size:.9em;line-height:1.45}
.alvsc-calendar .alvsc-compact-months .alvsc-active-date{font-size:.8em;line-height:1.4}
/* 0.5.9: Buchungsleiste bleibt sichtbar, während Besucher weitere Termine auswählen. */
.alvsc-central-booking:not([hidden]){position:fixed!important;z-index:99990;bottom:0;left:0;right:0;max-height:90dvh;overflow:auto;box-sizing:border-box;margin:0!important;padding:12px max(16px,calc((100vw - 900px)/2))!important;background:#fff!important;border:1px solid #ddd;border-radius:14px 14px 0 0;box-shadow:0 -5px 24px #0002;color:#222}
.alvsc-central-booking .alvsc-summary{display:inline-block;margin:0 16px 0 0}.alvsc-central-booking .alvsc-register{display:inline-block}.alvsc-central-booking .alvsc-form{max-height:calc(90dvh - 80px);overflow:auto;background:#fff;padding:12px 0;margin:12px 0 0}.alvsc-panel-heading{display:flex;justify-content:space-between;align-items:center}.alvsc-close{font-size:28px;border:0;background:transparent;cursor:pointer}.alvsc-booking-item{border:1px solid #ddd;border-radius:10px;padding:15px;margin:10px 0;background:#fff}.alvsc-booking-item p{font-size:14px;white-space:pre-line;margin:6px 0 12px;color:#555}.alvsc-quantity-row{display:flex;gap:12px;justify-content:space-between;align-items:center;flex-wrap:wrap}.alvsc-quantity-row input{width:65px!important;margin-left:10px}.alvsc-line-price{font-weight:600}.alvsc-companions{margin-top:10px}.alvsc-companions>div{display:grid;gap:7px;margin-top:8px}.alvsc-companions input[type=text]{width:100%;max-width:400px}.alvsc-total{font-weight:700;padding:14px;background:#f4f4f4;border-radius:8px}.alvsc-technical-field{display:none!important}body:has(.alvsc-central-booking:not([hidden])){padding-bottom:76px}@media(max-width:600px){.alvsc-central-booking:not([hidden]){padding:12px 16px!important}.alvsc-central-booking .alvsc-summary{display:block;margin-bottom:8px}.alvsc-central-booking .alvsc-register{width:100%}}

/* 0.5.10: Die Überschrift samt Schließen-Schaltfläche bleibt innerhalb des
   scrollbaren Anmeldeformulars sichtbar. Ein eigener Hintergrund verhindert,
   dass darunterliegende Formularfelder durchscheinen. */
.alvsc-central-booking .alvsc-form .alvsc-panel-heading{
  position:sticky!important;
  top:0!important;
  z-index:20;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:10px 0 14px;
  background:#fff!important;
}
/* Hoher Kontrast und feste Abmessungen, unabhängig von Theme-Buttonstilen. */
.alvsc-central-booking .alvsc-form .alvsc-panel-heading .alvsc-close{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 44px;
  width:44px!important;
  height:44px!important;
  min-width:44px;
  padding:0!important;
  margin:0!important;
  border:0!important;
  border-radius:10px!important;
  background:#f39800!important;
  color:#171717!important;
  font-family:Arial,sans-serif!important;
  font-size:32px!important;
  font-weight:600!important;
  line-height:1!important;
  opacity:1!important;
  visibility:visible!important;
  cursor:pointer;
}
.alvsc-central-booking .alvsc-form .alvsc-panel-heading .alvsc-close:hover,
.alvsc-central-booking .alvsc-form .alvsc-panel-heading .alvsc-close:focus-visible{
  background:#df8500!important;
  color:#111!important;
  outline:2px solid #111;
  outline-offset:2px;
}
