.khk-booking { margin: 0 0 1.25em; }
.khk-booking .khk-field { margin: 0 0 .9em; }
.khk-booking label { display: block; font-weight: 600; margin-bottom: .25em; }
.khk-booking input[type="date"],
.khk-booking input[type="text"],
.khk-booking select { width: 100%; max-width: 22em; padding: .5em; box-sizing: border-box; }
.khk-booking .khk-summary { font-weight: 600; margin: 0 0 .5em; }
.khk-booking .khk-msg { color: #b32d2e; margin: 0; min-height: 1.2em; }
.single_add_to_cart_button[disabled] { opacity: .5; cursor: not-allowed; }
.khk-booking .khk-cats { border: 0; padding: 0; margin: 0 0 .9em; }
.khk-booking .khk-cats legend { font-weight: 600; padding: 0; margin-bottom: .25em; }
.khk-booking .khk-cats label { font-weight: 400; margin-bottom: .2em; }
.khk-booking .khk-cats small { display: block; opacity: .75; margin-top: .4em; }

/* Kalender [khk_kalender] */
.khk-cal { max-width: 26em; margin: 0 0 1.5em; }
.khk-cal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: .5em; }
.khk-cal-head strong { text-transform: capitalize; }
.khk-cal-head button { min-width: 2.5em; padding: .3em .6em; cursor: pointer; }
.khk-cal-head button[disabled] { opacity: .35; cursor: not-allowed; }
.khk-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; }
.khk-cal-grid .khk-dow { text-align: center; font-size: .8em; opacity: .7; padding: .2em 0; }
.khk-cal-grid .khk-day { padding: .6em 0; border: 2px solid transparent; border-radius: 4px; cursor: pointer; font: inherit; color: #1d2327; }
.khk-day.khk-free, .khk-sw.khk-free { background: #c8e6c9; }
.khk-day.khk-part, .khk-sw.khk-part { background: #ffe0a3; }
.khk-day.khk-full, .khk-sw.khk-full { background: #f4a6a6; }
.khk-day.khk-closed, .khk-sw.khk-closed { background: #e2e2e2; color: #6b6b6b; }
.khk-day.khk-full { text-decoration: line-through; }
.khk-day.khk-today { border-color: #1d2327; font-weight: 700; }
.khk-cal-detail { min-height: 1.4em; margin: .6em 0; font-weight: 600; white-space: pre-line; }
.khk-cal-legend { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4em 1em; font-size: .85em; }
.khk-cal-legend .khk-sw { display: inline-block; width: 1em; height: 1em; border-radius: 3px; vertical-align: -.15em; margin-right: .25em; }
.khk-booking .khk-hint { display: block; font-weight: 400; opacity: .75; margin-top: .25em; }
.khk-booking label small { font-weight: 400; opacity: .75; }
.khk-cal-legend li { list-style: none; margin: 0; padding: 0; }
.khk-cal-legend li::marker { content: ''; }
