/* Fortbildungskalender implantate.com – alle Regeln unter .fbk bzw. .fbk-box, keine globalen Selektoren.
   Gestaltung in der Linie des Produktregisters (.pr-modern): gleiche Farbwerte, Karten, Pillen, Kachel-Hover. */
.fbk { --fbk-accent: #1c6cb0; --fbk-accent-dark: #14507f; --fbk-accent-soft: #eaf2fb; --fbk-orange: #e8801c; --fbk-orange-soft: #fdf2e6; --fbk-ink: #1f2a37; --fbk-muted: #5b6573; --fbk-line: #e6e8ec; --fbk-field: #c3cbd5; --fbk-soft: #f6f8fa; --fbk-shadow: 0 1px 2px rgba(16,24,40,.05), 0 10px 28px rgba(16,24,40,.04); color: var(--fbk-ink); font-size: 17px; line-height: 1.5; }
.fbk *, .fbk *::before, .fbk *::after { box-sizing: border-box; }
.fbk a { color: var(--fbk-accent); text-decoration: none; }
/* Theme-Regeln fuer h2/h3/ul/a sind spezifischer als einfache Klassen – daher hier doppelt gescoped. */
.fbk.fbk .fbk-items, .fbk.fbk .fbk-dd-panel ul, .fbk-box.fbk-box ul { list-style: none !important; padding-left: 0 !important; margin: 0 !important; }
.fbk.fbk .fbk-dd-panel li ul { padding-left: 20px !important; }
.fbk .fbk-items > li::before, .fbk .fbk-dd-panel li::before, .fbk-box li::before { content: none; }

/* Filterkarte */
/* Alle sieben Felder sind gleich gebaut: Ueberschrift oben, darunter ein 46 px hohes Feld mit normaler Schrift. */
.fbk-filter { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px 14px; align-items: end; padding: 20px 22px; background: #fff; border: 1px solid var(--fbk-line); border-radius: 16px; box-shadow: var(--fbk-shadow); margin: 0 0 14px; }
.fbk-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; margin: 0; }
.fbk .fbk-field-label { display: block; font-size: 14px; line-height: 1.2; font-weight: 700; letter-spacing: .2px; color: var(--fbk-accent-dark); }
.fbk-sel select, .fbk-dd > summary { width: 100%; height: 46px; margin: 0; padding: 0 38px 0 14px; border: 1px solid var(--fbk-field); border-radius: 10px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%231c6cb0' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 14px center; font-family: inherit; font-size: 17px; font-weight: 400; line-height: 44px; color: var(--fbk-ink); cursor: pointer; transition: border-color .15s; -webkit-appearance: none; appearance: none; }
.fbk .fbk-ort input { width: 100%; height: 46px; margin: 0; padding: 0 14px; border: 1px solid var(--fbk-field); border-radius: 10px; background: #fff; font-family: inherit; font-size: 17px; font-weight: 400; color: var(--fbk-ink); box-shadow: none; }
.fbk .fbk-ort input::placeholder { color: #8a94a3; }
.fbk .fbk-ort input:hover { border-color: var(--fbk-accent); }
.fbk .fbk-ort input:focus { outline: 3px solid var(--fbk-accent-soft); border-color: var(--fbk-accent); outline-offset: 0; }
.fbk-sel select:hover, .fbk-dd > summary:hover { border-color: var(--fbk-accent); }
.fbk-sel select:focus, .fbk-dd > summary:focus-visible { outline: 3px solid var(--fbk-accent-soft); border-color: var(--fbk-accent); outline-offset: 0; }

/* Aufklappmenues (Fach, Region, Anbieter, Art) */
.fbk-dd { position: relative; }
.fbk-dd > summary { display: block; list-style: none; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.fbk-dd > summary::-webkit-details-marker { display: none; }
.fbk-dd > summary::marker { content: ""; }
.fbk-dd[open] > summary { border-color: var(--fbk-accent); box-shadow: 0 0 0 3px var(--fbk-accent-soft); }
.fbk-dd-value.is-set { color: var(--fbk-accent-dark); font-weight: 600; }
.fbk-dd-panel { position: absolute; z-index: 50; top: calc(100% + 6px); left: 0; width: 340px; max-width: 88vw; max-height: 500px; overflow: auto; padding: 12px 12px 0; background: #fff; border: 1px solid var(--fbk-line); border-radius: 14px; box-shadow: 0 12px 32px rgba(16,24,40,.14); }
.fbk-dd-panel ul { list-style: none; margin: 0; padding: 0; }
.fbk-dd-panel li { margin: 0; padding: 0; }
.fbk-dd-panel li ul { padding-left: 20px; }
.fbk-dd-panel label { display: flex; align-items: center; gap: 10px; padding: 7px 8px; border-radius: 8px; font-size: 17px; cursor: pointer; color: var(--fbk-ink); }
.fbk-dd-panel label:hover { background: var(--fbk-soft); }
.fbk-dd-panel input[type=checkbox] { width: 18px; height: 18px; accent-color: var(--fbk-accent); flex: none; }
.fbk-dd-head { display: block; margin: 8px 0 2px; padding: 0 8px; font-size: 14px; font-weight: 700; color: var(--fbk-accent-dark); }
.fbk-dd-search { width: 100%; min-height: 42px; padding: 8px 12px; margin: 0 0 8px; border: 1px solid var(--fbk-field); border-radius: 10px; font-size: 16px; }
.fbk-dd-foot { position: sticky; bottom: 0; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; align-items: center; margin: 10px -12px 0; padding: 12px; background: #fff; border-top: 1px solid var(--fbk-line); }
.fbk .fbk-dd-ok { flex: 1 1 100%; white-space: nowrap; min-height: 44px; padding: 9px 14px; border: 0; border-radius: 10px; background: var(--fbk-accent); color: #fff; font-size: 16px; font-weight: 700; cursor: pointer; }
.fbk .fbk-dd-ok:hover { background: var(--fbk-accent-dark); }
.fbk .fbk-dd-clear { padding: 8px 4px; border: 0; background: none; color: var(--fbk-muted); font-size: 15px; text-decoration: underline; cursor: pointer; }
.fbk-apply { min-height: 46px; padding: 9px 18px; border: 0; border-radius: 10px; background: var(--fbk-accent); color: #fff; font-size: 16px; font-weight: 700; cursor: pointer; }
.fbk.js .fbk-apply { display: none; }

/* Punkte-Schnellwahl unter den Filtern */

/* Aktive Filter */
.fbk-chips { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0 0 10px; }
.fbk .fbk-chip { padding: 4px 12px; border-radius: 999px; background: var(--fbk-accent-soft); color: var(--fbk-accent-dark); text-decoration: none; font-size: 15px; font-weight: 600; }
.fbk .fbk-chip:hover { background: #d7e7f8; }
.fbk-chip-reset { font-size: 15px; color: var(--fbk-muted); }
.fbk-hint { font-size: 16px; color: var(--fbk-muted); margin: 0 0 10px; }

/* Monatsnavigation – oberster Block des Kalenders */
.fbk-nav { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 6px 0 8px; }
.fbk .fbk-nav-title { margin: 0; font-size: 26px; line-height: 1.25; font-weight: 700; color: var(--fbk-ink); text-align: center; flex: 1; }
.fbk .fbk-nav a, .fbk .fbk-nav .is-off { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 1px solid var(--fbk-line); border-radius: 50%; background: #fff; text-decoration: none; font-size: 22px; color: var(--fbk-accent); transition: border-color .15s, background .15s; }
.fbk-nav a:hover { border-color: var(--fbk-accent); background: var(--fbk-accent-soft); }
.fbk-nav .is-off { color: #c3cad0; }
.fbk-months { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin: 0 0 22px; }
.fbk .fbk-months a, .fbk .fbk-months .is-off { padding: 4px 12px; border-radius: 999px; text-decoration: none; font-size: 15px; font-weight: 600; color: var(--fbk-accent-dark); }
.fbk .fbk-months a:hover { background: var(--fbk-accent-soft); }
.fbk .fbk-months a.is-current { background: var(--fbk-accent); color: #fff; }
.fbk .fbk-months .is-off { color: #c3cad0; font-weight: 400; }

/* Liste */
.fbk .fbk-month { font-size: 24px; font-weight: 700; margin: 34px 0 6px; color: var(--fbk-ink); }
.fbk .fbk-day { font-size: 15px; line-height: 1.4; font-weight: 700; letter-spacing: .2px; color: var(--fbk-accent-dark); margin: 22px 0 10px; padding-bottom: 6px; border-bottom: 2px solid var(--fbk-soft); }
.fbk-items { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.fbk-item { display: flex; gap: 18px; margin: 0; padding: 16px 20px; background: #fff; border: 1px solid var(--fbk-line); border-radius: 14px; transition: border-color .15s, box-shadow .15s; }
.fbk-item:hover { border-color: #b9cfe6; box-shadow: var(--fbk-shadow); }
.fbk-item.is-messe { border-left: 4px solid var(--fbk-orange); background: #fffdf9; }
.fbk-when { flex: 0 0 132px; align-self: flex-start; padding: 4px 10px; border-radius: 10px; background: var(--fbk-soft); font-size: 15px; font-weight: 600; color: var(--fbk-accent-dark); text-align: center; }
.fbk-body { flex: 1; min-width: 0; }
.fbk .fbk-title { margin: 0 0 4px; font-size: 19px; line-height: 1.35; font-weight: 700; }
.fbk .fbk-title a { color: var(--fbk-ink); text-decoration: none; }
.fbk .fbk-title a:hover { color: var(--fbk-accent); text-decoration: underline; }
.fbk-meta { margin: 0 0 8px; font-size: 16px; color: var(--fbk-muted); }
.fbk-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 8px; }
.fbk-tag { display: inline-block; margin: 0; padding: 2px 10px; border-radius: 999px; background: var(--fbk-accent-soft); color: var(--fbk-accent-dark); font-size: 13px; font-weight: 600; }
.fbk-text { margin: 0 0 8px; font-size: 16px; }
.fbk-actions { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; margin: 0; font-size: 16px; }
.fbk-pts { font-weight: 700; color: var(--fbk-ink); }
.fbk-pts.is-unknown { font-weight: 400; font-style: italic; color: var(--fbk-muted); }
.fbk.fbk .fbk-btn { display: inline-block; padding: 7px 16px; border-radius: 10px; background: var(--fbk-accent); color: #fff !important; font-weight: 700; text-decoration: none; transition: background .15s; }
.fbk .fbk-btn:hover { background: var(--fbk-accent-dark); }
.fbk .fbk-ics { color: var(--fbk-accent); }
.fbk-empty { padding: 18px 20px; background: var(--fbk-soft); border-radius: 14px; }
.fbk-ondemand { margin-top: 28px; }
details.fbk-ondemand > summary { cursor: pointer; list-style: revert; font-weight: 700; color: var(--fbk-accent-dark); padding: 12px 0; }
.fbk-foot { margin-top: 28px; font-size: 14px; color: var(--fbk-muted); }

/* Das Theme setzt Linkfarbe, Unterstreichung, Ueberschriftenfarbe und Listen-Schriftgroesse mit !important
   (u. a. "a {color:var(--light-color)!important}", "main .col-md-8 p a:not(.btn) {text-decoration:underline!important}",
   "h3 {color:...!important}", ".main-content-block ul li a {font-size:18px; color:#212529!important}").
   Nur innerhalb von .fbk wird hier gezielt dagegengehalten. */
.fbk.fbk a:not(.btn) { color: var(--fbk-accent) !important; text-decoration: none !important; }
.fbk.fbk .fbk-title a { color: var(--fbk-ink) !important; font-size: 19px !important; }
.fbk.fbk .fbk-title a:hover { color: var(--fbk-accent) !important; text-decoration: underline !important; }
.fbk.fbk p.fbk-actions a.fbk-btn, .fbk .fbk-btn { color: #fff !important; font-size: 16px !important; }
.fbk.fbk .fbk-months a { color: var(--fbk-accent-dark) !important; font-size: 15px !important; }
.fbk.fbk .fbk-months a.is-current { color: #fff !important; }
.fbk.fbk .fbk-nav a { color: var(--fbk-accent) !important; }
.fbk.fbk .fbk-chip { color: var(--fbk-accent-dark) !important; }
.fbk.fbk .fbk-chip-reset, .fbk .fbk-dd-clear { color: var(--fbk-muted) !important; }
.fbk.fbk h2.fbk-nav-title, .fbk h2.fbk-month, .fbk .fbk-nav-title, .fbk .fbk-month { color: var(--fbk-ink) !important; font-family: inherit; }
.fbk.fbk h3.fbk-day, .fbk .fbk-day { color: var(--fbk-accent-dark) !important; font-size: 15px !important; font-family: inherit; }
.fbk.fbk h3.fbk-title, .fbk .fbk-title { color: var(--fbk-ink) !important; font-family: inherit; }
.fbk.fbk .fbk-items li, .fbk .fbk-dd-panel li { font-size: 17px !important; color: var(--fbk-ink) !important; }
.fbk-box.fbk-box a:not(.btn) { color: #1c6cb0 !important; text-decoration: none !important; }

/* Kompaktansicht: eine Zeile pro Termin, Details beim Aufklappen */
.fbk .fbk-items { gap: 6px; }
.fbk .fbk-item { display: block; padding: 0; border-radius: 12px; }
.fbk-row > summary { list-style: none; display: flex; align-items: center; gap: 14px; padding: 11px 16px; cursor: pointer; }
.fbk-row > summary::-webkit-details-marker { display: none; }
.fbk-row > summary::marker { content: ""; }
.fbk-row > summary::after { content: ""; flex: none; width: 10px; height: 10px; border-right: 2px solid var(--fbk-accent); border-bottom: 2px solid var(--fbk-accent); transform: rotate(45deg); margin: -4px 2px 0 0; transition: transform .15s; }
.fbk-row[open] > summary::after { transform: rotate(-135deg); margin-top: 4px; }
.fbk-row[open] > summary { border-bottom: 1px solid var(--fbk-line); }
.fbk-row-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.fbk.fbk .fbk-row .fbk-title { margin: 0; font-size: 17px; line-height: 1.35; font-weight: 700; color: var(--fbk-ink) !important; }
.fbk-row-ort { display: inline-flex; align-items: center; gap: 5px; font-size: 15px; font-weight: 600; color: var(--fbk-accent-dark); }
.fbk-row-ort::before { content: ""; flex: none; width: 12px; height: 14px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 14'%3E%3Cpath d='M6 0a5 5 0 0 0-5 5c0 3.6 5 9 5 9s5-5.4 5-9a5 5 0 0 0-5-5zm0 7a2 2 0 1 1 0-4 2 2 0 0 1 0 4z' fill='%2314507f'/%3E%3C/svg%3E") no-repeat center / contain; }
.fbk-row-side { flex: none; display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.fbk-row-date { font-size: 14px; color: var(--fbk-muted); white-space: nowrap; }
.fbk-row-pts { padding: 1px 10px; border-radius: 999px; background: var(--fbk-accent-soft); color: var(--fbk-accent-dark); font-size: 14px; font-weight: 700; white-space: nowrap; }
.fbk-row-pts.is-unknown { background: var(--fbk-soft); color: var(--fbk-muted); font-weight: 400; }
.fbk-row .fbk-body { padding: 12px 16px 14px; }
.fbk-row:hover > summary .fbk-title { color: var(--fbk-accent) !important; }

/* Meldeformular fuer Veranstalter */
.fbk-melden { margin-top: 28px; }
.fbk-melden > details > summary { cursor: pointer; font-weight: 700; color: var(--fbk-accent-dark); padding: 12px 0; }
.fbk-melden-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.fbk-melden-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; padding: 20px 22px; background: #fff; border: 1px solid var(--fbk-line); border-radius: 16px; box-shadow: var(--fbk-shadow); margin: 0 0 12px; }
.fbk-melden-grid .fbk-wide { grid-column: span 2; }
.fbk .fbk-melden-grid input, .fbk .fbk-melden-grid select, .fbk .fbk-melden-grid textarea { width: 100%; min-height: 46px; margin: 0; padding: 8px 12px; border: 1px solid var(--fbk-field); border-radius: 10px; background: #fff; font-family: inherit; font-size: 17px; color: var(--fbk-ink); }
.fbk .fbk-melden-grid textarea { min-height: 90px; }
.fbk .fbk-melden-submit { border: 0; cursor: pointer; font-size: 17px; padding: 10px 22px; }
.fbk-melden-ok, .fbk-melden-err { padding: 14px 18px; border-radius: 12px; font-weight: 600; }
.fbk-melden-ok { background: #e8f6ee; color: #1d6b3c; }
.fbk-melden-err { background: #fdecea; color: #a12a1e; }

@media (max-width: 900px) and (min-width: 641px) {
	.fbk-filter { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.fbk-filter { grid-template-columns: 1fr 1fr; padding: 14px; border-radius: 14px; }
	.fbk-melden-grid { grid-template-columns: 1fr; padding: 14px; }
	.fbk-melden-grid .fbk-wide { grid-column: auto; }
	.fbk-row > summary { flex-wrap: wrap; padding: 10px 12px; gap: 6px 10px; }
	.fbk-row-side { flex-direction: row; align-items: center; }

	.fbk-when { flex: none; text-align: left; }
	.fbk-nav-title { font-size: 21px; }
}

/* Box auf Fachseiten */
.fbk-box { margin: 24px 0; padding: 18px 20px; background: #fff; border: 1px solid #e6e8ec; border-radius: 16px; box-shadow: 0 1px 2px rgba(16,24,40,.05), 0 10px 28px rgba(16,24,40,.04); }
.fbk-box-title { margin: 0 0 10px; font-size: 14px; font-weight: 700; color: #14507f; }
.fbk-box ul { list-style: none; margin: 0 0 10px; padding: 0; }
.fbk-box li { margin: 0 0 8px; }
.fbk-box-date { color: #14507f; font-size: 15px; font-weight: 600; }
.fbk-box-meta { color: #5b6573; font-size: 15px; }
.fbk-box-more { margin: 0; font-size: 16px; }

/* 0.9.21: Herkunftsmarke unsichtbar, Blaettern, Rechtshinweis */
.fbk.fbk .fbk-hp { position: absolute !important; left: -10000px !important; top: auto !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; }
.fbk.fbk .fbk-pager { display: flex; justify-content: center; align-items: center; gap: 18px; margin: 26px 0 10px; font-size: 16px; }
.fbk.fbk .fbk-pager a { color: var(--fbk-accent) !important; text-decoration: none !important; border: 1px solid var(--fbk-line); border-radius: 8px; padding: 8px 14px; }
.fbk.fbk .fbk-pager a:hover { border-color: var(--fbk-accent); }
.fbk.fbk .fbk-pager span { color: var(--fbk-muted); }
.fbk.fbk .fbk-recht { font-size: 13px; margin-top: 8px; }

/* 0.9.25: PDF/Druck */
.fbk.fbk .fbk-pdf { margin: 6px 0 14px; font-size: 15px; }
.fbk.fbk .fbk-pdf a { color: var(--fbk-accent) !important; text-decoration: none !important; border-bottom: 1px solid var(--fbk-line); }
.fbk.fbk .fbk-print-head { font-size: 14px; margin: 0 0 16px; padding-bottom: 8px; border-bottom: 1px solid var(--fbk-line); }
@media print {
	body * { visibility: hidden !important; }
	.fbk, .fbk * { visibility: visible !important; }
	.fbk { position: absolute !important; left: 0 !important; top: 0 !important; width: 100% !important; }
	.fbk .fbk-filter, .fbk .fbk-nav, .fbk .fbk-months, .fbk .fbk-pager, .fbk .fbk-pdf, .fbk .fbk-gate, .fbk .fbk-chips, .fbk .fbk-ondemand, .fbk-melden, .fbk .fbk-hp { display: none !important; }
	.fbk .fbk-item { break-inside: avoid; }
	.fbk .fbk-day { break-after: avoid; }
	.fbk a { color: #14507f !important; }
	/* Anmeldelink im PDF klickbar und mit sichtbarer Adresse */
	.fbk .fbk-btn { background: none !important; border: 0 !important; padding: 0 !important; color: #14507f !important; text-decoration: underline !important; font-weight: 600; }
	.fbk .fbk-btn::after { content: " " attr(href); font-weight: 400; font-size: 11px; word-break: break-all; }
	.fbk .fbk-ics { display: none !important; }
	.fbk summary { list-style: none; }
	.fbk summary::-webkit-details-marker { display: none; }
}
.fbk.fbk .fbk-gate-note { color: var(--fbk-muted); font-size: 14px; }
.fbk.fbk .fbk-gate { background: #fff7ec; border-left: 3px solid var(--fbk-orange); padding: 10px 14px; }
