/* Kalender: eigene Komponenten, gemeinsame RockADEMY-Farben und Schriften. */
body.calendar-page::before,body.calendar-page::after{display:none}
.calendar-page{--holiday-bg:var(--surface-2);--holiday-ink:var(--ink);--closed-bg:var(--volt);--closed-ink:var(--volt-dark);--public-ink:var(--volt)}

.calendar-page>header{background:var(--bg);gap:20px}
.calendar-page .links a{color:var(--ink)}
.calendar-page .links a[aria-current]{color:var(--volt);text-decoration:underline;text-underline-offset:7px}
.calendar-page .theme-toggle{margin-left:0}
.calendar-main{max-width:1536px;margin:auto;padding:128px var(--pad) 72px}
.calendar-skip{position:fixed;top:-80px;left:20px;padding:12px 20px;background:var(--volt);color:var(--volt-dark);z-index:200}
.calendar-skip:focus{top:12px}
.calendar-intro{display:flex;justify-content:space-between;gap:28px;align-items:end;margin-bottom:30px}
.calendar-eyebrow{font-size:.875rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;margin-bottom:12px}
.calendar-intro h1{font-size:clamp(2.5rem,5.8vw,5.25rem);line-height:1.04;letter-spacing:-.015em}
.calendar-intro h1 span{color:var(--volt);white-space:nowrap}
.calendar-intro p:last-child{margin-top:14px;font-size:1rem}
.calendar-print,.calendar-control{min-height:44px;border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:9px 15px;border-radius:6px;cursor:pointer;font-size:.875rem;font-weight:700}
.calendar-print-head{display:none}
.calendar-print{text-decoration:none;white-space:nowrap;display:inline-flex;gap:10px;align-items:center;margin-bottom:3px}
.calendar-print svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6}
.calendar-toolbar{scroll-margin-top:100px;border-top:2px solid var(--ink);padding-top:22px;display:flex;gap:20px;justify-content:space-between;align-items:center;flex-wrap:wrap}
.calendar-view{display:inline-flex;background:var(--surface-2);padding:4px;border-radius:8px;gap:4px}
.calendar-view button{border:0;background:none;color:var(--muted);padding:9px 20px;min-height:40px;border-radius:5px;cursor:pointer;font-size:.875rem;font-weight:700}
.calendar-view button[aria-pressed="true"]{background:var(--ink);color:var(--bg)}
.calendar-navigation{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.calendar-navigation select{width:190px}
.calendar-control:hover,.calendar-print:hover{border-color:var(--volt)}
.calendar-control:disabled{opacity:.35;cursor:default}
.calendar-legend{display:flex;flex-wrap:wrap;gap:12px 24px;margin:20px 0;font-size:.875rem;color:var(--muted)}
.calendar-legend span{display:inline-flex;align-items:center;gap:8px}
.legend-dot{width:13px;height:13px;display:inline-block;border:1px solid var(--line);border-radius:3px;background:var(--surface)}
.legend-dot.holiday{background:var(--holiday-bg)}
.legend-dot.closure{background:var(--closed-bg);border-color:var(--closed-ink)}
.legend-dot.public-holiday{background:var(--surface);border:2px solid var(--public-ink)}
.legend-dot.sunday{background:var(--bg-2);border:0}
.calendar-selected{padding:14px 18px;background:var(--surface-2);border-left:3px solid var(--volt);margin-bottom:24px;display:flex;flex-wrap:wrap;gap:4px 18px;align-items:baseline;font-size:.875rem;min-height:54px}
.calendar-selected strong{color:var(--ink)}
.calendar-selected p{color:var(--muted)}
.calendar-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 22px}
.calendar-main section.calendar-month{padding:0;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--surface);min-width:0}
.month-heading{display:flex;justify-content:space-between;align-items:center;padding:18px 16px 14px;gap:12px}
.month-heading h2{font-family:var(--sans);font-size:1rem;font-weight:800;line-height:1.3;text-transform:none;letter-spacing:0}
.month-heading h2 span{font-weight:400;color:var(--muted);margin-left:5px;font-size:.875rem}
.month-number{font-family:var(--anton);font-size:1.4rem;color:var(--muted);opacity:.5;line-height:1}
.weekdays,.month-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.weekdays{margin:0 10px 8px;font-size:.75rem;color:var(--muted);text-align:center}
.month-days{padding:0 10px 12px;grid-auto-rows:minmax(32px,1fr)}
.calendar-day{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;min-height:32px;scroll-margin-top:120px;border:1px solid transparent;background:var(--surface);border-radius:4px;color:var(--ink);font-size:.875rem;font-weight:500;cursor:pointer;font-variant-numeric:tabular-nums;line-height:1.4;padding:5px 0}
.calendar-day.is-holiday{background:var(--holiday-bg);color:var(--holiday-ink)}
.calendar-day.is-closure{background:var(--closed-bg);color:var(--closed-ink);font-weight:800}
.calendar-day.is-public-holiday{border-color:var(--public-ink);color:var(--public-ink);font-weight:800}
.calendar-day.is-sunday{background:var(--bg-2);color:var(--muted)}
.calendar-day:hover{box-shadow:inset 0 0 0 1px var(--volt)}
.calendar-day[aria-pressed="true"]{outline:2px solid var(--volt);outline-offset:-2px}
.calendar-day[aria-current="date"] .day-number{background:var(--volt);color:var(--volt-dark);border-radius:50%;min-width:24px;line-height:24px}
.day-caption{display:none}
.day-marker{position:absolute;bottom:2px;left:50%;width:4px;height:4px;border-radius:50%;background:var(--volt);transform:translateX(-50%)}
.calendar-grid[data-view="month"]{grid-template-columns:1fr}
.calendar-grid[data-view="month"] .month-heading{padding:24px}
.calendar-grid[data-view="month"] h2{font-size:1.5rem}
.calendar-grid[data-view="month"] .month-days{padding:0 16px 16px;grid-auto-rows:minmax(94px,1fr);gap:8px}
.calendar-grid[data-view="month"] .weekdays{margin:0 16px 12px;font-size:.875rem}
.calendar-grid[data-view="month"] .calendar-day{align-items:flex-start;justify-content:flex-start;padding:10px;font-size:1rem;gap:6px}
.calendar-grid[data-view="month"] .day-caption{display:block;font-size:.75rem;text-align:left;font-weight:400;overflow-wrap:anywhere}
.calendar-grid[data-view="month"] .day-marker{left:auto;right:8px;top:8px;bottom:auto;width:6px;height:6px}
.calendar-main [hidden]{display:none!important}
.calendar-hint{font-size:.875rem;margin-top:16px}
.calendar-main section.calendar-breaks{padding:0;margin-top:56px}
.calendar-section-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:24px}
.calendar-section-head h2{font-size:clamp(1.8rem,3vw,2.5rem)}
.calendar-section-head p{font-size:.875rem}
.break-list{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 48px}
.break-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;padding:18px 0;border-top:1px solid var(--line);align-items:center}
.break-list a{font-weight:700;font-size:1rem;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:4px}
.break-list a:hover{color:var(--volt)}
.break-list time{font-size:.875rem;color:var(--muted);grid-column:1}
.break-kind{font-size:.75rem;color:var(--muted);grid-column:2;grid-row:1 / span 2;white-space:nowrap}
.break-kind.is-closure{color:var(--volt)}
.calendar-details{margin-top:40px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.calendar-details summary{padding:20px 0;font-weight:700;cursor:pointer;font-size:1rem}
.calendar-details-inner{padding-bottom:24px;max-width:900px}
.calendar-details-inner p{margin:12px 0;font-size:1rem}
.calendar-details-inner table{width:100%;border-collapse:collapse;font-size:.875rem}
.calendar-details-inner th,.calendar-details-inner td{border-bottom:1px solid var(--line);padding:10px 8px;text-align:left}
.calendar-details-inner td:last-child{font-weight:800}
.calendar-contract{margin-top:24px}
.calendar-contract h3{font-family:var(--sans);font-size:1rem;font-weight:700;line-height:1.5;text-transform:none}
.calendar-source{font-size:.875rem;margin-top:24px}
.calendar-source a{text-decoration:underline;text-underline-offset:3px}
.calendar-footer{border-top:1px solid var(--line);padding:24px var(--pad) 36px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.calendar-footer nav{display:flex;gap:24px;font-size:.875rem}
@media(max-width:1200px){.calendar-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.calendar-page>header{gap:12px}.calendar-page .links{gap:8px}.calendar-page .links a{padding:2px}}
@media(max-width:900px){.calendar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-intro{align-items:start}.calendar-intro h1 span{display:block;margin-top:8px}.calendar-main{padding-top:108px}.break-list{column-gap:28px}}
@media(max-width:600px){.calendar-main{padding:104px 20px 48px}.calendar-intro{gap:12px;flex-wrap:wrap}.calendar-intro h1{font-size:2.6rem}.calendar-intro h1 span{display:inline}.calendar-print{font-size:.875rem}.calendar-toolbar{gap:14px}.calendar-navigation{gap:6px;width:100%}.calendar-navigation select{flex:1;min-width:0;width:auto}.calendar-navigation .jump-today{margin-left:auto}.calendar-legend{gap:10px 16px}.calendar-grid{grid-template-columns:1fr;gap:24px}.month-days{grid-auto-rows:minmax(40px,1fr);gap:5px}.calendar-day{min-height:40px;font-size:1rem}.month-heading h2{font-size:1.125rem}.calendar-selected{padding:12px 14px}.calendar-grid[data-view="month"] .month-days{padding:0 8px 10px;gap:3px;grid-auto-rows:minmax(58px,1fr)}.calendar-grid[data-view="month"] .calendar-day{padding:8px 0;align-items:center}.calendar-grid[data-view="month"] .day-caption{display:none}.calendar-grid[data-view="month"] .weekdays{margin-inline:8px}.calendar-section-head{display:block}.calendar-section-head p{margin-top:12px}.break-list{grid-template-columns:1fr}.break-kind{font-size:.75rem}.calendar-details-inner th,.calendar-details-inner td{padding:10px 4px}.calendar-footer nav{flex-wrap:wrap;gap:18px}.calendar-footer{padding-inline:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{
  @page{size:A4 portrait;margin:12mm}
  html[data-theme] body.calendar-page{--bg:#fff;--surface:#fff;--surface-2:#e5e8e1;--ink:#111;--muted:#444;--line:#bbb;--volt:#3a5c24;--volt-dark:#fff;--bg-2:#f3f3f3;--holiday-bg:#e5e8e1;--holiday-ink:#111;--closed-bg:#3a5c24;--closed-ink:#fff;--public-ink:#3a5c24;background:#fff!important;color:#111;print-color-adjust:exact;-webkit-print-color-adjust:exact}
  html[data-theme] body.calendar-page>header,html[data-theme] body.calendar-page>header *,.calendar-intro,.calendar-footer,.calendar-print,.calendar-toolbar,.calendar-selected,.calendar-hint,.calendar-details,.calendar-review,.calendar-skip,#superchat-widget,.mobile-site-menu,[id^="superchat-"]{display:none!important}
  .calendar-print-head{display:flex!important;justify-content:space-between;align-items:baseline;margin:0 0 18px;padding:0 0 12px;border-bottom:1px solid #bbb}.calendar-print-head .brand{font-size:28px}.calendar-print-head strong{font-family:var(--anton);font-size:32px;color:#3a5c24}.calendar-main{padding:0;max-width:none}.calendar-intro{margin-bottom:16px}.calendar-intro h1{font-size:32px}.calendar-intro p:last-child,.calendar-eyebrow{font-size:10px}.calendar-legend{font-size:9px;gap:12px;margin:12px 0}
  .calendar-grid,.calendar-grid[data-view="month"]{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.calendar-main section.calendar-month,.calendar-main section.calendar-month[hidden]{display:block!important;break-inside:avoid;border-radius:0}.calendar-grid .month-heading,.calendar-grid[data-view="month"] .month-heading{padding:8px}.calendar-grid h2,.calendar-grid[data-view="month"] h2{font-size:12px}.month-heading h2 span{font-size:10px}.month-number{font-size:14px}
  .calendar-grid .weekdays,.calendar-grid[data-view="month"] .weekdays{font-size:9px;margin:0 5px 4px;gap:2px}.calendar-grid .month-days,.calendar-grid[data-view="month"] .month-days{padding:0 5px 6px;gap:2px;grid-auto-rows:19px}.calendar-grid .calendar-day,.calendar-grid[data-view="month"] .calendar-day{min-height:19px;font-size:10px;padding:1px;align-items:center;justify-content:center}.calendar-grid .day-caption{display:none!important}.calendar-grid .calendar-day[aria-pressed="true"]{outline:0}.calendar-grid .calendar-day[aria-current="date"] .day-number{background:none;color:inherit;min-width:0;line-height:inherit}.calendar-grid .day-marker{display:none}
  .calendar-main section.calendar-breaks{margin-top:0;break-before:page;page-break-before:always}.calendar-section-head{margin-bottom:12px}.calendar-section-head h2{font-size:20px}.calendar-section-head p{font-size:9px}.break-list{gap:0 22px}.break-list li{padding:7px 0;break-inside:avoid}.break-list a,.break-list time{font-size:9px}.break-kind{font-size:8px}.calendar-source{font-size:9px;margin-top:14px}
}
