.opening-hours-status {
  width: min(100%, 42rem);
  margin: 1rem auto 0;
  color: var(--cream);
  text-align: center;
}

.opening-hours-status-line {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: .55rem;
  min-height: 2.7rem;
  padding: .55rem 1.05rem;
  border: 1px solid rgba(245, 245, 220, .3);
  border-radius: 999px;
  background: rgba(24, 48, 31, .82);
  box-shadow: 0 5px 18px rgba(0, 0, 0, .18);
  font: .88rem/1.4 Inter, sans-serif;
}

.opening-hours-status-line strong {
  color: var(--cream);
  font-size: .72rem;
  letter-spacing: .11em;
}

.opening-hours-status-message { color: rgba(245, 245, 220, .84); }
.opening-hours-scope { margin: .25rem 0 0; color: rgba(245,245,220,.65); font: .7rem/1.4 Inter,sans-serif; }
.opening-hours-status-dot {
  width: .48rem;
  height: .48rem;
  flex: 0 0 auto;
  border-radius: 50%;
  background: #b7c9a9;
}

.opening-hours-details {
  width: min(100%, 25rem);
  margin: .45rem auto 0;
  color: var(--cream);
  font: .84rem/1.5 Inter, sans-serif;
}

.opening-hours-details summary {
  width: fit-content;
  margin: auto;
  padding: .3rem .5rem;
  color: rgba(245, 245, 220, .9);
  cursor: pointer;
  text-decoration: underline;
  text-decoration-color: rgba(245, 245, 220, .45);
  text-underline-offset: .2em;
}

.opening-hours-rows {
  margin: .8rem 0 0;
  padding: .65rem 1rem;
  border: 1px solid rgba(245, 245, 220, .18);
  border-radius: .75rem;
  background: rgba(22, 43, 28, .82);
  text-align: left;
}

.opening-hours-row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: .45rem 0;
  border-bottom: 1px solid rgba(245, 245, 220, .1);
}

.opening-hours-row:last-child { border-bottom: 0; }
.opening-hours-row dt { color: rgba(245, 245, 220, .78); }
.opening-hours-row dd { margin: 0; color: var(--cream); font-weight: 600; }
.opening-hours-note {
  margin: .55rem 0 0;
  color: rgba(245, 245, 220, .68);
  font-size: .76rem;
  font-style: italic;
  text-align: left;
}

.opening-hours-list .opening-hours-rows {
  padding: 0;
  border: 0;
  background: transparent;
}

.opening-hours-list .opening-hours-note { margin-top: .75rem; }
.opening-hours-feedback, .opening-hours-error {
  color: rgba(245, 245, 220, .84);
  font: .88rem/1.55 Inter, sans-serif;
}

.opening-hours-error {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: .5rem .8rem;
  padding: .8rem;
  border: 1px solid rgba(245, 245, 220, .28);
  border-radius: .65rem;
  background: rgba(31, 58, 36, .58);
}

.opening-hours-error a { color: var(--cream); text-decoration: underline; }
.opening-hours-error button {
  padding: .35rem .65rem;
  border: 1px solid rgba(245, 245, 220, .4);
  border-radius: .4rem;
  background: transparent;
  color: var(--cream);
  cursor: pointer;
  font: inherit;
}

@media (max-width: 480px) {
  .opening-hours-status-line { border-radius: .85rem; }
  .opening-hours-row { gap: .6rem; font-size: .9rem; }
}