.sff-calendar-app{--sff-navy:#082f49;--sff-muted:#5d7180;--sff-line:#d7e4ea;--sff-sky:#e7f5fb;width:100%;max-width:100%;overflow:hidden;background:#f3f8fa}
.sff-calendar-shell{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:clamp(3rem,6vw,5.5rem) 0}
.sff-calendar-heading{max-width:790px;margin:0 auto 2rem;text-align:center}.sff-calendar-heading .sff-eyebrow{margin:0 0 .55rem;color:var(--sff-accent);font-size:.76rem;font-weight:850;letter-spacing:.13em;text-transform:uppercase}.sff-calendar-heading h2{margin:0;font-size:clamp(2rem,5vw,3.7rem);letter-spacing:-.05em}.sff-calendar-heading>p:last-child{margin:.8rem auto 0;color:var(--sff-muted);font-size:clamp(.95rem,1.7vw,1.08rem)}
.sff-calendar-search{padding:clamp(1rem,2.5vw,1.55rem);border:1px solid var(--sff-line);border-top:4px solid var(--sff-accent);border-radius:20px;background:#fff;box-shadow:0 18px 46px rgba(8,47,73,.10)}
.sff-calendar-searchbox{position:relative;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.7rem;min-height:58px;padding:0 .95rem;border:1.5px solid #b9cdd7;border-radius:13px;background:#fff}.sff-calendar-searchbox:focus-within{border-color:var(--sff-primary);box-shadow:0 0 0 4px color-mix(in srgb,var(--sff-primary) 10%,transparent)}.sff-calendar-searchbox>span{color:var(--sff-primary);font-size:1.45rem;line-height:1}.sff-calendar-searchbox input{width:100%;min-width:0;height:54px;padding:0;border:0!important;outline:0!important;color:var(--sff-navy);background:transparent!important;box-shadow:none!important;font:inherit;font-size:1rem}.sff-calendar-searchbox button{width:32px;height:32px;padding:0;border:0;border-radius:50%;color:#fff;background:#7a8b95;font:inherit;font-size:1.2rem;line-height:1;cursor:pointer}
.sff-calendar-selects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;margin-top:.9rem}.sff-calendar-selects label>span{display:block;margin:0 0 .3rem;color:var(--sff-navy);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.sff-calendar-selects select{width:100%;min-height:48px;padding:.65rem .8rem;border:1px solid #c7d8e0;border-radius:10px;color:var(--sff-navy);background:#f9fbfc;font:inherit;font-size:.9rem;font-weight:650}
.sff-calendar-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.sff-calendar-chips button,.sff-calendar-online-link{min-height:38px;display:inline-flex;align-items:center;justify-content:center;padding:.45rem .75rem;border:1px solid #c8dbe4;border-radius:999px;color:var(--sff-primary)!important;background:#fff;font:inherit;font-size:.78rem;font-weight:800;text-decoration:none!important;cursor:pointer;transition:.16s ease}.sff-calendar-chips button:hover,.sff-calendar-online-link:hover{border-color:var(--sff-accent);background:#fff8ee}.sff-calendar-chips button.is-active{border-color:var(--sff-primary);color:#fff!important;background:var(--sff-primary);box-shadow:0 6px 14px rgba(12,74,110,.16)}.sff-calendar-online-link{border-color:#f3a64b;color:#8f4a08!important;background:#fff7ed}
.sff-calendar-search-actions{display:flex;align-items:center;gap:1rem;margin-top:1.1rem}.sff-calendar-search-actions .sff-button{min-height:46px}.sff-calendar-reset{padding:.45rem .15rem;border:0;color:#657b88;background:transparent;font:inherit;font-size:.78rem;font-weight:700;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.sff-calendar-viewbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1.35rem 0 .5rem}.sff-calendar-view-switch{display:inline-flex;padding:4px;border:1px solid var(--sff-line);border-radius:11px;background:#fff;box-shadow:0 5px 15px rgba(8,47,73,.06)}.sff-calendar-view-switch button{min-height:38px;padding:.45rem .75rem;border:0;border-radius:8px;color:#607684;background:transparent;font:inherit;font-size:.78rem;font-weight:800;cursor:pointer}.sff-calendar-view-switch button.is-active{color:#fff;background:var(--sff-primary)}.sff-calendar-month-nav{display:flex;align-items:center;gap:.45rem}.sff-calendar-month-nav button{min-width:38px;min-height:38px;padding:.35rem .6rem;border:1px solid #c8dbe4;border-radius:8px;color:var(--sff-primary);background:#fff;font:inherit;font-size:.76rem;font-weight:800;cursor:pointer}.sff-calendar-month-nav strong{min-width:145px;color:var(--sff-navy);text-align:center;text-transform:capitalize}.sff-calendar-month-nav [data-calendar-month-today]{margin-left:.25rem;color:#fff;border-color:var(--sff-accent);background:var(--sff-accent)}
.sff-calendar-result-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:2rem 0 .85rem}.sff-calendar-result-head strong{color:var(--sff-navy);font-size:1.05rem}.sff-calendar-result-head span{color:var(--sff-muted);font-size:.78rem}
.sff-calendar-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.sff-calendar-card{position:relative;display:grid;grid-template-columns:190px minmax(0,1fr);min-height:255px;overflow:hidden;border:1px solid var(--sff-line);border-radius:17px;background:#fff;box-shadow:0 8px 24px rgba(8,47,73,.07);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.sff-calendar-card:hover{transform:translateY(-2px);border-color:#a8cedd;box-shadow:0 15px 34px rgba(8,47,73,.11)}
.sff-calendar-card__media{position:relative;min-height:100%;overflow:hidden;background:linear-gradient(145deg,var(--sff-primary),var(--sff-navy))}.sff-calendar-card__media img{width:100%;height:100%;display:block;object-fit:cover}.sff-calendar-card__media.is-empty::after{content:"KURS";position:absolute;inset:0;display:grid;place-items:center;color:rgba(255,255,255,.82);font-size:1rem;font-weight:900;letter-spacing:.18em}.sff-calendar-card__date{position:absolute;top:12px;left:12px;min-width:55px;padding:.45rem .55rem;border-radius:10px;color:var(--sff-navy);background:rgba(255,255,255,.94);box-shadow:0 6px 16px rgba(0,0,0,.15);text-align:center}.sff-calendar-card__date strong,.sff-calendar-card__date span{display:block}.sff-calendar-card__date strong{font-size:1.35rem;line-height:1}.sff-calendar-card__date span{margin-top:.15rem;color:var(--sff-accent);font-size:.65rem;font-weight:900;text-transform:uppercase}
.sff-calendar-card__body{display:flex;min-width:0;flex-direction:column;padding:1rem}.sff-calendar-card__kicker{margin:0;color:var(--sff-accent);font-size:.65rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.sff-calendar-card h3{margin:.22rem 0 .45rem;font-size:1.12rem;line-height:1.18}.sff-calendar-card__meta{display:flex;flex-wrap:wrap;gap:.32rem .65rem;color:#526b7a;font-size:.76rem;font-weight:650}.sff-calendar-card__meta span{display:inline-flex;align-items:center;gap:.24rem}.sff-calendar-card__summary{display:-webkit-box;margin:.65rem 0;color:var(--sff-muted);font-size:.78rem;line-height:1.45;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.sff-calendar-card__tags{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:auto}.sff-calendar-card__tags span{padding:.2rem .4rem;border-radius:5px;color:#765017;background:#fff3de;font-size:.61rem;font-weight:800}.sff-calendar-card__actions{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.75rem}.sff-calendar-card__actions a{min-height:38px;display:inline-flex;align-items:center;justify-content:center;padding:0 .7rem;border:1px solid var(--sff-primary);border-radius:8px;color:var(--sff-primary)!important;background:#fff;font-size:.72rem;font-weight:850;text-decoration:none!important}.sff-calendar-card__actions a.is-book{border-color:var(--sff-accent);color:#fff!important;background:var(--sff-accent);box-shadow:0 6px 14px rgba(249,115,22,.18)}
.sff-calendar-skeleton{min-height:255px;border-radius:17px;background:linear-gradient(100deg,#e8f0f3 20%,#f6f9fa 38%,#e8f0f3 56%);background-size:200% 100%;animation:sff-calendar-shimmer 1.15s infinite}@keyframes sff-calendar-shimmer{to{background-position:-200% 0}}
.sff-calendar-empty{grid-column:1/-1;padding:2.4rem 1.2rem;border:1px dashed #b8ced8;border-radius:16px;background:#fff;text-align:center}.sff-calendar-empty strong{display:block;color:var(--sff-navy);font-size:1.2rem}.sff-calendar-empty p{max-width:620px;margin:.45rem auto 0;color:var(--sff-muted)}.sff-calendar-error{grid-column:1/-1;padding:1rem;border:1px solid #f3c3bc;border-radius:12px;color:#9b2c20;background:#fff5f3;font-weight:700}
.sff-calendar-loadmore{display:flex;justify-content:center;margin-top:1.2rem}.sff-calendar-loadmore .sff-button{min-width:230px}.sff-calendar-help{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:2rem;padding:1.1rem 1.25rem;border:2px solid var(--sff-primary);border-radius:16px;color:#fff;background:linear-gradient(135deg,var(--sff-navy),var(--sff-primary));box-shadow:0 14px 30px rgba(8,47,73,.15)}.sff-calendar-help small,.sff-calendar-help strong{display:block}.sff-calendar-help small{color:var(--sff-accent);font-size:.68rem;font-weight:900;letter-spacing:.09em}.sff-calendar-help strong{margin-top:.2rem;color:#fff}.sff-calendar-help .sff-button{flex:0 0 auto;background:var(--sff-accent)!important}
.sff-calendar-month{overflow-x:auto;padding:2px 2px 12px}.sff-calendar-month__grid{min-width:840px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));overflow:hidden;border:1px solid #cbdce4;border-radius:16px;background:#cbdce4;gap:1px;box-shadow:0 10px 28px rgba(8,47,73,.08)}.sff-calendar-month__weekday{padding:.6rem .45rem;color:#fff;background:var(--sff-primary);font-size:.7rem;font-weight:850;text-align:center;text-transform:uppercase;letter-spacing:.05em}.sff-calendar-month__day{min-height:132px;padding:.5rem;background:#fff}.sff-calendar-month__day.is-outside{background:#f4f7f8}.sff-calendar-month__day.is-past{background:#f7f9fa;opacity:.7}.sff-calendar-month__day.is-today{box-shadow:inset 0 0 0 2px var(--sff-accent)}.sff-calendar-month__number{width:28px;height:28px;display:grid;place-items:center;margin:0 0 .32rem auto;border-radius:50%;color:#59717f;font-size:.72rem;font-weight:850}.sff-calendar-month__day.is-today .sff-calendar-month__number{color:#fff;background:var(--sff-accent)}.sff-calendar-month__event{display:block;margin-top:.3rem;padding:.42rem .45rem;border-left:3px solid var(--sff-accent);border-radius:5px;color:var(--sff-navy)!important;background:#eef8fc;text-decoration:none!important}.sff-calendar-month__event strong,.sff-calendar-month__event span{display:block}.sff-calendar-month__event strong{font-size:.67rem;line-height:1.25}.sff-calendar-month__event span{margin-top:.12rem;color:#617986;font-size:.6rem;line-height:1.2}.sff-calendar-month__more{display:block;margin-top:.3rem;color:var(--sff-primary);font-size:.63rem;font-weight:800;text-align:center}
@media(max-width:960px){.sff-calendar-results{grid-template-columns:1fr}.sff-calendar-card{grid-template-columns:220px minmax(0,1fr)}}
@media(max-width:640px){.sff-calendar-shell{width:min(100% - 20px,1180px);padding:2.4rem 0}.sff-calendar-heading{margin-bottom:1.4rem}.sff-calendar-search{padding:.85rem;border-radius:16px}.sff-calendar-selects{grid-template-columns:1fr}.sff-calendar-search-actions{align-items:stretch;flex-direction:column}.sff-calendar-search-actions .sff-button{width:100%}.sff-calendar-viewbar{align-items:stretch;flex-direction:column}.sff-calendar-view-switch{display:grid;grid-template-columns:1fr 1fr}.sff-calendar-month-nav{justify-content:space-between}.sff-calendar-month-nav strong{min-width:0}.sff-calendar-month-nav [data-calendar-month-today]{display:none}.sff-calendar-card{grid-template-columns:1fr}.sff-calendar-card__media{min-height:185px}.sff-calendar-card__media img{height:185px}.sff-calendar-result-head{align-items:flex-start;flex-direction:column;gap:.2rem}.sff-calendar-help{align-items:stretch;flex-direction:column;text-align:center}.sff-calendar-help .sff-button{width:100%}}
@media(prefers-reduced-motion:reduce){.sff-calendar-card,.sff-calendar-chips button{transition:none}.sff-calendar-skeleton{animation:none}}

/* Kadence-Buttonfarben innerhalb des Kalenders gezielt neutralisieren. */
.sff-calendar-searchbox button{color:#fff!important;background:#7a8b95!important}
.sff-calendar-chips button{color:var(--sff-primary)!important;background:#fff!important}.sff-calendar-chips button:hover{background:#fff8ee!important}.sff-calendar-chips button.is-active{color:#fff!important;background:var(--sff-primary)!important}
.sff-calendar-online-link{color:#8f4a08!important;background:#fff7ed!important}.sff-calendar-online-link:hover{background:#fff1dd!important}
.sff-calendar-reset{padding:.45rem .15rem!important;border:0!important;color:#657b88!important;background:transparent!important;box-shadow:none!important}
.sff-calendar-view-switch button{border:0!important;color:#607684!important;background:transparent!important;box-shadow:none!important}.sff-calendar-view-switch button.is-active{color:#fff!important;background:var(--sff-primary)!important}
.sff-calendar-month-nav button{border:1px solid #c8dbe4!important;color:var(--sff-primary)!important;background:#fff!important;box-shadow:none!important}.sff-calendar-month-nav [data-calendar-month-today]{color:#fff!important;border-color:var(--sff-accent)!important;background:var(--sff-accent)!important}
