/* Open House widget — thin layer on top of Webflow component classes. */
.oh-widget { container-type: inline-size; }
.oh-widget__sub { color:#6b6f86; margin:0 0 18px; }

.oh-day { margin-bottom:18px; }
.oh-day__date { font-weight:700; color:#2E3364; text-transform:capitalize; margin:0 0 8px; }

.oh-slots { display:grid; grid-template-columns:1fr; gap:8px; }
.oh-slot { display:flex; flex-direction:column; gap:10px;
  background:#fff; border:1px solid #dfe2ef; border-radius:12px; padding:13px 14px; }
.oh-slot .button.w-button { width:100%; }
.oh-slot__info { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.oh-slot__time { font-weight:700; color:#1c1e2b; margin:0; }
.oh-slot__status { display:inline-flex; align-items:center; font-size:.78rem; font-weight:600;
  padding:2px 8px; border-radius:999px; white-space:nowrap; }
.oh-status--ok   { color:#1f8a5b; background:#e4f4ec; }
.oh-status--few  { color:#b8791b; background:#fbf0db; }
.oh-status--full { color:#6b6f86; background:#eef0f7; }
.oh-empty { color:#6b6f86; padding:18px; border:1px dashed #dfe2ef; border-radius:12px; text-align:center; }

/* Wide container → 2 cols + inline button. */
@container (min-width:440px){
  .oh-slots { grid-template-columns:1fr 1fr; }
  .oh-slot { flex-direction:row; align-items:center; justify-content:space-between; }
  .oh-slot__info { flex-direction:column; align-items:flex-start; gap:5px; }
  .oh-slot .button.w-button { width:auto; }
}
@container (min-width:720px){ .oh-slots { grid-template-columns:repeat(3,1fr); } }

/* Forced layouts via attribute. */
.oh-widget--compact .oh-slots { grid-template-columns:1fr !important; }
.oh-widget--full .oh-slots { grid-template-columns:repeat(3,1fr); }

/* Popup chrome (custom — Webflow popup not reused). */
.oh-popup { position:fixed; inset:0; display:none; z-index:1000; }
.oh-popup.is-open { display:block; }
.oh-popup__backdrop { position:absolute; inset:0; background:rgba(28,30,43,.55); }
.oh-popup__dialog { position:relative; max-width:420px; margin:8vh auto 0; background:#fff;
  border-radius:16px; padding:24px; box-shadow:0 24px 70px rgba(0,0,0,.3); }
.oh-popup__close { position:absolute; top:12px; right:12px; border:0; background:#eef0f7;
  width:30px; height:30px; border-radius:8px; cursor:pointer; }
.oh-popup__slot { color:#6b6f86; margin:4px 0 16px; }
.oh-form label { display:block; font-size:.85rem; font-weight:600; color:#2E3364; margin-bottom:10px; }
.oh-form input[type=text],.oh-form input[type=email],.oh-form input[type=tel]{
  width:100%; padding:10px 12px; border:1px solid #dfe2ef; border-radius:9px; font:inherit; margin-top:4px; }
.oh-form__row { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.oh-form__consent { display:flex; gap:9px; align-items:flex-start; font-weight:400; color:#6b6f86; }
.oh-form__consent input { margin-top:3px; }
.oh-form__error { color:#c0392b; font-size:.85rem; min-height:1em; margin:4px 0; }

/* Collapsible widget: hide extra slots / fully-extra days until expanded. */
.oh-widget--collapsible:not(.is-expanded) .oh-slot--extra,
.oh-widget--collapsible:not(.is-expanded) .oh-day--extra { display: none; }

.oh-more {
  display: inline-block;
  margin-top: 12px;
  padding: 0;
  background: none;
  border: 0;
  color: #1c1e2b;
  font: inherit;
  font-weight: 600;
  text-decoration: underline;
  cursor: pointer;
}
.oh-more:hover { opacity: .8; }
