/* Frischmarkt Öffnungszeiten – alles unter .fmz; Schrift und Textfarbe kommen vom Theme */
.fmz {
    --fmz-rand: #e2e2dc;
    --fmz-grau: #6a6a64;
    --fmz-gruen: #1a9c4b;
    --fmz-rot: #c9231b;
    --fmz-gelb: #d98a00;
    box-sizing: border-box;
    color: inherit;
    font-family: inherit;
    margin: 0 0 1.5rem;
}
.fmz *, .fmz *::before, .fmz *::after { box-sizing: border-box; }
.fmz__titel { margin: 0 0 1rem; font-size: clamp(1.6rem, 3vw, 2.2rem); line-height: 1.15; }

/* Tabelle (Laden und Paketshop nebeneinander) */
.fmz__spalten { display: grid; gap: 2rem 3rem; grid-template-columns: 1fr; }
.fmz__spalten--2 { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.fmz__bereich-titel { margin: 0 0 .6rem; font-size: 1.5rem; font-weight: 400; line-height: 1.2; }
.fmz__tabelle { width: 100%; border-collapse: collapse; margin: 0; border: 0; }
.fmz__tabelle th, .fmz__tabelle td { padding: .65rem 0; border: 0; border-bottom: 1px solid var(--fmz-rand); background: none; font-weight: 400; vertical-align: baseline; }
.fmz__tabelle th { text-align: left; padding-right: 1rem; }
.fmz__tabelle td { text-align: right; font-variant-numeric: lining-nums tabular-nums; white-space: nowrap; }
.fmz__tabelle tr:last-child th, .fmz__tabelle tr:last-child td { border-bottom: 0; }
.fmz__tabelle tr.fmz__zu td, .fmz__tabelle tr.fmz__zu th { color: var(--fmz-grau); }
.fmz__tabelle tr.fmz__heute th, .fmz__tabelle tr.fmz__heute td { font-weight: 700; }

/* Liste */
.fmz__zeilen { list-style: none; margin: 0; padding: 0; }
.fmz__zeile { margin: 0 0 .6rem; padding: 0; line-height: 1.55; }
.fmz__bereich { font-weight: 700; }
.fmz__bereich em { font-weight: 400; font-style: normal; color: var(--fmz-grau); }
.fmz__gruppe { white-space: nowrap; }
.fmz__gruppe--zu { color: var(--fmz-grau); }
.fmz__trenner { color: var(--fmz-grau); white-space: pre; }

/* Sonderzeiten */
.fmz__sonder { margin-top: 1.4rem; padding: .9rem 1.1rem; border-left: 4px solid var(--fmz-gelb); background: rgba(217, 138, 0, .08); border-radius: 0 8px 8px 0; }
.fmz__sonder-titel { margin: 0 0 .4rem; font-size: 1rem; font-weight: 700; }
.fmz__sonder-liste { list-style: none; margin: 0; padding: 0; }
.fmz__sonder-liste li { margin: .25rem 0; padding: 0; line-height: 1.45; }
.fmz__anlass { color: var(--fmz-grau); }
.fmz--sonder { margin-top: 0; }
.fmz--sonder .fmz__sonder { margin-top: 0; }

/* Status */
.fmz--status { display: block; }
.fmz__status { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; margin: 0 0 .5rem; font-size: 1.1rem; line-height: 1.35; }
.fmz__status-bereich { font-weight: 700; margin-right: .25rem; }
.fmz__punkt { flex: none; width: .8rem; height: .8rem; border-radius: 50%; background: var(--fmz-rot); }
.fmz__status--offen .fmz__punkt { background: var(--fmz-gruen); box-shadow: 0 0 0 0 rgba(26, 156, 75, .5); }
.fmz__status--bald .fmz__punkt { background: var(--fmz-gelb); }
.fmz__status-text { font-weight: 700; }
.fmz__status--offen .fmz__status-text { color: var(--fmz-gruen); }
.fmz__status--bald .fmz__status-text { color: var(--fmz-gelb); }
.fmz__status--zu .fmz__status-text { color: var(--fmz-rot); }
.fmz__status-anlass { color: var(--fmz-grau); }
@media (prefers-reduced-motion: no-preference) {
    .fmz__status--offen .fmz__punkt { animation: fmzpuls 2.4s ease-out infinite; }
}
@keyframes fmzpuls { 0% { box-shadow: 0 0 0 0 rgba(26, 156, 75, .45); } 70% { box-shadow: 0 0 0 .55rem rgba(26, 156, 75, 0); } 100% { box-shadow: 0 0 0 0 rgba(26, 156, 75, 0); } }
