/* Grundform der Öffnungszeiten; Schrift und Farben kommen von der Website, eigene Regeln dort überschreiben das hier. */
.oh-week { display: grid; gap: 1.5em; }
.oh-area__title { margin: 0 0 .5em; }
.oh-table { border-collapse: collapse; width: 100%; max-width: 32em; }
.oh-table th, .oh-table td { padding: .3em 0; text-align: left; vertical-align: top; }
.oh-table th { font-weight: normal; padding-right: 1.5em; white-space: nowrap; width: 8em; }
.oh-day--today th, .oh-day--today td { font-weight: bold; }
.oh-slot, .oh-closed, .oh-special { display: block; }
.oh-note, .oh-special, .oh-area__note, .oh-notice__note { font-size: .9em; opacity: .75; }
.oh-day--today .oh-note, .oh-day--today .oh-special { font-weight: normal; }
.oh-notices { list-style: none; margin: 1em 0 0; padding: 0; }
.oh-notices:empty { margin: 0; }
.oh-notice { margin: 0 0 .5em; }
.oh-notice__hours .oh-slot, .oh-notice__hours .oh-closed { display: inline; }
.oh-notice__hours .oh-slot + .oh-slot::before { content: ", "; }
.oh-status { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 0 .25em; }
.oh-status__label { font-weight: bold; }
.oh-status__label::before { content: ""; display: inline-block; width: .6em; height: .6em; margin-right: .4em; border-radius: 50%; background: #c62828; }
.oh-status--open .oh-status__label::before { background: #2e7d32; }
.oh-status--soon .oh-status__label::before, .oh-status--opening .oh-status__label::before { background: #e08a00; }
