/* Page-local responsive hardening for the standalone online booking wizard. */
html,
body {
  max-width: 100%;
  overflow-x: hidden;
}

.oz-header,
.oz-container,
.oz-steps,
#oz-stage,
.oz-card,
.oz-doc-card,
.oz-doc-info,
.oz-doc-schedule,
.oz-clinic-card,
.oz-clinic-card-body {
  min-width: 0;
}

.oz-back,
.oz-map-close {
  width: 44px;
  min-width: 44px;
  height: 44px;
  min-height: 44px;
}

.oz-title,
.oz-logo {
  min-width: 0;
}

.oz-logo {
  flex: 0 1 224px;
}

.oz-logo img {
  max-width: 100%;
}

.oz-doc-card {
  grid-template-columns: 164px minmax(220px, 1fr) minmax(280px, 1.15fr);
}

.oz-doc-name,
.oz-doc-spec,
.oz-doc-qualification,
.oz-doc-clinic-line,
.oz-slotdoc-name,
.oz-success-card-value,
.oz-success-card-row,
.oz-clinic-card-title,
.oz-clinic-card-addr,
.oz-clinic-card-info-val {
  overflow-wrap: anywhere;
}

.oz-doc-search,
.oz-input,
.oz-inline-clinic,
.oz-doctor-sort-select select,
.oz-select-field select {
  max-width: 100%;
}

@media (max-width: 1024px) {
  .oz-container {
    width: 100%;
  }

  .oz-doc-card {
    grid-template-columns: 164px minmax(190px, 1fr) minmax(250px, 1.05fr);
  }
}

@media (max-width: 840px) {
  .oz-map-panel {
    height: 100vh;
    height: 100dvh;
  }

  .oz-doc-card {
    grid-template-columns: 112px minmax(0, 1fr);
  }

  .oz-doc-photo {
    width: 104px;
    height: 132px;
    max-width: 100%;
    aspect-ratio: 104 / 132;
  }
}

@media (max-width: 768px) {
  .oz-doc-search,
  .oz-input,
  .oz-inline-clinic,
  .oz-doctor-sort-select select,
  .oz-select-field select {
    font-size: 16px;
  }

  .oz-filter-chip,
  .oz-map-list-button,
  .oz-inline-day,
  .oz-inline-time,
  .oz-slot-day-chip,
  .oz-slot-chip,
  .oz-slot-toggle,
  .oz-calendar-toggle,
  .oz-calendar-option,
  .oz-sex-item,
  .oz-secondary-btn,
  .oz-link-btn,
  .oz-clinic-card-btn {
    min-height: 44px;
  }

  .oz-filter-chip--icon {
    width: 44px;
  }

  .oz-slot-arrow {
    width: 44px;
    min-width: 44px;
  }

  .oz-sex-row {
    flex-wrap: wrap;
    gap: 8px 20px;
  }

  .oz-clinic-card-social-btn {
    width: 44px;
    height: 44px;
  }
}

@media (max-width: 480px) {
  .oz-header {
    gap: 4px;
    padding-inline: 8px;
  }

  .oz-title {
    margin-inline: 4px;
    font-size: 14px;
    line-height: 1.2;
  }

  .oz-logo {
    flex-basis: 112px;
  }

  .oz-logo img {
    width: 112px;
    max-width: 29vw;
  }

  .oz-doc-card {
    grid-template-columns: 88px minmax(0, 1fr);
    gap: 12px;
  }

  .oz-doc-photo {
    width: 84px;
    height: 106px;
    aspect-ratio: 84 / 106;
  }

  .oz-doctors-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
  }

  .oz-clinic-card-actions {
    flex-direction: column;
  }

  .oz-clinic-card-btn {
    width: 100%;
    white-space: normal;
    text-align: center;
  }

  .oz-success-card {
    align-items: flex-start;
  }
}
