/* Popup z kalendarzem rezerwacji (Google Calendar) */
.bm { position: fixed; inset: 0; z-index: 1000; display: none; align-items: center; justify-content: center; padding: 20px; }
.bm.is-open { display: flex; }
.bm__backdrop { position: absolute; inset: 0; background: rgba(29, 30, 31, .6); }
.bm__dialog {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 880px;
  max-height: calc(100vh - 40px);
  background: var(--bg);
  border-radius: 16px;
  box-shadow: 0 24px 80px rgba(0, 0, 0, .3);
  overflow: hidden;
}
.bm__close {
  position: absolute; top: 12px; right: 12px; z-index: 2;
  box-shadow: 0 1px 4px rgba(0,0,0,.2);
  width: 40px; height: 40px;
  border: 0; border-radius: 50%;
  background: var(--gray-bg); color: var(--text);
  font-size: 24px; line-height: 1; cursor: pointer;
  transition: background-color .2s;
}
.bm__close:hover { background: var(--gray); }
.bm__body { flex: 1; min-height: 0; padding: 60px 20px 20px; overflow-y: auto; }
.bm__frame { border: 1px solid var(--gray); border-radius: 12px; background: var(--white); overflow: hidden; }
.bm__frame iframe { display: block; width: 100%; height: 640px; border: 0; }
body.bm-open { overflow: hidden; }

@media (max-width: 640px) {
  .bm { padding: 0; align-items: flex-end; }
  .bm__dialog { max-width: none; max-height: 94vh; border-radius: 16px 16px 0 0; }
  .bm__body { padding: 56px 12px 12px; }
  .bm__frame iframe { height: 720px; }
}
