.public-booking-page {
  --public-booking-font-family: var(--fb-font-family-inter);
  --public-booking-font-weight-regular: var(--fb-font-weight-regular);
  --public-booking-font-weight-medium: var(--fb-font-weight-medium);
  --public-booking-font-weight-semibold: var(--fb-font-weight-semibold);
  --public-booking-font-weight-bold: var(--fb-font-weight-bold);
  --public-booking-type-caption-size: var(--fb-type-caption-size);
  --public-booking-type-caption-line-height: var(--fb-type-caption-line-height);
  --public-booking-type-label-size: var(--fb-type-label-size);
  --public-booking-type-label-line-height: var(--fb-type-label-line-height);
  --public-booking-type-body-compact-size: var(--fb-type-body-compact-size);
  --public-booking-type-body-compact-line-height: var(--fb-type-body-compact-line-height);
  --public-booking-type-body-size: var(--fb-type-body-size);
  --public-booking-type-body-line-height: var(--fb-type-body-line-height);
  --public-booking-type-card-title-size: var(--fb-type-card-title-size);
  --public-booking-type-card-title-line-height: var(--fb-type-card-title-line-height);
  --public-booking-type-section-title-size: var(--fb-type-section-title-size);
  --public-booking-type-section-title-line-height: var(--fb-type-section-title-line-height);
  --public-booking-type-page-title-size: var(--fb-type-page-title-size);
  --public-booking-type-page-title-line-height: var(--fb-type-page-title-line-height);
  --public-booking-type-total-size: var(--fb-type-total-size);
  --public-booking-type-total-line-height: var(--fb-type-total-line-height);
  font-family: var(--public-booking-font-family);
  font-size: var(--public-booking-type-body-size);
  font-weight: var(--public-booking-font-weight-regular);
  line-height: var(--public-booking-type-body-line-height);
  font-optical-sizing: auto;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
}

.public-booking-page button,
.public-booking-page input,
.public-booking-page select,
.public-booking-page textarea {
  font-family: inherit;
}

.public-booking-page .vc.fb-calendar-picker,
.public-booking-page .vc.fb-calendar-picker button,
.public-booking-page .vc.fb-calendar-picker input {
  font-family: var(--public-booking-font-family);
}

.public-booking-page .vc.fb-calendar-picker .fb-calendar-picker__date-badge {
  font-weight: var(--public-booking-font-weight-semibold);
}

.public-booking-page .font-medium {
  font-weight: var(--public-booking-font-weight-medium);
}

.public-booking-page .font-semibold {
  font-weight: var(--public-booking-font-weight-semibold);
}

.public-booking-page .font-bold,
.public-booking-page .font-extrabold,
.public-booking-page .font-black {
  font-weight: var(--public-booking-font-weight-bold);
}

.public-booking-page-header__title {
  font-size: var(--public-booking-type-page-title-size) !important;
  font-weight: var(--public-booking-font-weight-semibold);
  line-height: var(--public-booking-type-page-title-line-height) !important;
}

.public-booking-page-header p {
  font-size: var(--public-booking-type-caption-size);
  font-weight: var(--public-booking-font-weight-medium);
  line-height: var(--public-booking-type-caption-line-height);
}

.public-booking-filter-label,
.public-booking-location-switcher__title {
  font-size: var(--public-booking-type-label-size);
  font-weight: var(--public-booking-font-weight-medium);
  line-height: var(--public-booking-type-label-line-height);
}

.public-booking-filter-input,
.public-booking-date-range__trigger,
.public-booking-guest-selector__trigger,
.public-booking-guest-selector__row-label {
  font-size: var(--public-booking-type-body-compact-size);
  line-height: var(--public-booking-type-body-compact-line-height);
}

.public-booking-date-range__trigger,
.public-booking-guest-selector__trigger,
.public-booking-guest-selector__row-label {
  font-weight: var(--public-booking-font-weight-medium);
}

.public-booking-guest-selector__title {
  font-size: var(--public-booking-type-card-title-size);
  font-weight: var(--public-booking-font-weight-semibold);
  line-height: var(--public-booking-type-card-title-line-height);
}

.public-booking-guest-stepper button,
.public-booking-guest-stepper input,
.public-booking-guest-selector__status,
.public-booking-guest-selector__done {
  font-weight: var(--public-booking-font-weight-semibold);
}

.public-booking-location-option > span:first-child {
  font-size: var(--public-booking-type-body-compact-size);
  font-weight: var(--public-booking-font-weight-medium);
  line-height: var(--public-booking-type-body-compact-line-height);
}

.public-booking-location-option [data-location-draft-status],
.public-booking-location-option [data-location-draft-total] {
  font-size: var(--public-booking-type-caption-size);
  font-weight: var(--public-booking-font-weight-regular);
  line-height: var(--public-booking-type-caption-line-height);
}

.public-booking-resource-tab {
  font-size: var(--public-booking-type-body-compact-size);
  font-weight: var(--public-booking-font-weight-medium);
  line-height: var(--public-booking-type-body-compact-line-height);
}

.public-booking-resource-group__title {
  font-size: var(--public-booking-type-section-title-size) !important;
  font-weight: var(--public-booking-font-weight-semibold);
  line-height: var(--public-booking-type-section-title-line-height);
}

.public-booking-resource-card__body h3 {
  font-size: var(--public-booking-type-card-title-size);
  font-weight: var(--public-booking-font-weight-semibold);
  line-height: var(--public-booking-type-card-title-line-height);
}

.public-booking-resource-card__body p,
.public-booking-custom-property-dialog__description,
.public-booking-custom-property-option__description {
  font-size: var(--public-booking-type-body-compact-size);
  font-weight: var(--public-booking-font-weight-regular);
  line-height: var(--public-booking-type-body-compact-line-height);
}

.public-booking-resource-card__selected-badge,
.public-booking-card-thumbnail-overflow,
.public-booking-selection-group-members-summary__title,
.public-booking-selection-group-members-summary__action {
  font-weight: var(--public-booking-font-weight-semibold);
}

.public-booking-selection-group-members-summary__title {
  font-size: var(--public-booking-type-label-size);
  line-height: var(--public-booking-type-label-line-height);
}

.public-booking-selection-group-members-summary__option,
.public-booking-selection-group-members-summary__action,
.public-booking-availability-label,
.public-booking-availability-hourly-date {
  font-size: var(--public-booking-type-caption-size);
  line-height: var(--public-booking-type-caption-line-height);
}

.public-booking-availability-label,
.public-booking-availability-hourly-date,
.public-booking-availability-cell,
.public-booking-availability-cell__quantity {
  font-weight: var(--public-booking-font-weight-semibold);
}

.public-booking-availability-cell {
  font-size: var(--public-booking-type-caption-size);
}

.public-booking-availability-cell__quantity {
  font-size: 0.6875rem;
}

.public-booking-custom-property-dialog__context,
.public-booking-custom-property-dialog__search-label,
.public-booking-custom-property-option__meta,
.public-booking-line-dialog__context,
.public-booking-line-dialog__section-title,
.public-booking-line-dialog-pricing legend,
.public-booking-line-dialog-slots h4 {
  font-size: var(--public-booking-type-label-size);
  font-weight: var(--public-booking-font-weight-medium);
  line-height: var(--public-booking-type-label-line-height);
}

.public-booking-custom-property-dialog__title,
.public-booking-line-dialog__title {
  font-size: var(--public-booking-type-section-title-size);
  font-weight: var(--public-booking-font-weight-semibold);
  line-height: var(--public-booking-type-section-title-line-height);
}

.public-booking-custom-property-option__title {
  font-size: var(--public-booking-type-card-title-size);
  font-weight: var(--public-booking-font-weight-semibold);
  line-height: var(--public-booking-type-card-title-line-height);
}

.public-booking-custom-property-dialog__search-input,
.public-booking-line-dialog__field input,
.public-booking-line-dialog__field select,
.public-booking-line-dialog__field textarea,
.public-booking-line-dialog__properties textarea {
  font-size: var(--public-booking-type-body-size);
  font-weight: var(--public-booking-font-weight-regular);
  line-height: var(--public-booking-type-body-line-height);
}

.public-booking-custom-property-gallery__overflow,
.public-booking-line-dialog__availability-legend-badge,
.public-booking-confirmation-ready-badge,
.public-booking-confirmation-line__number,
.public-booking-cart-line-status {
  font-weight: var(--public-booking-font-weight-semibold);
}

.public-booking-custom-property-dialog__button,
.public-booking-line-dialog__button {
  font-size: var(--public-booking-type-body-compact-size);
  font-weight: var(--public-booking-font-weight-semibold);
  line-height: var(--public-booking-type-body-compact-line-height);
}

.public-booking-line-dialog__field > span,
.public-booking-line-dialog__accommodation-range > span,
.public-booking-line-dialog-preview-state,
.public-booking-line-dialog-preview-retry {
  font-weight: var(--public-booking-font-weight-medium);
}

.public-booking-confirmation-heading-row h2 {
  font-size: var(--public-booking-type-section-title-size);
  font-weight: var(--public-booking-font-weight-semibold);
  line-height: var(--public-booking-type-section-title-line-height);
}

.public-booking-confirmation-back,
.public-booking-confirmation-line__edit,
.public-booking-cart-clear,
.public-booking-cart-line-action,
.public-booking-cart-property-action {
  font-size: var(--public-booking-type-label-size);
  font-weight: var(--public-booking-font-weight-medium);
  line-height: var(--public-booking-type-label-line-height);
}

.public-booking-confirmation-locked-status__title,
.public-booking-confirmation-details-title,
.public-booking-confirmation-group__title,
.public-booking-confirmation-line__title,
.public-booking-cart-line__title {
  font-size: var(--public-booking-type-card-title-size);
  font-weight: var(--public-booking-font-weight-semibold);
  line-height: var(--public-booking-type-card-title-line-height);
}

.public-booking-confirmation-contact-summary__label,
.public-booking-confirmation-property-card__label,
.public-booking-confirmation-line__fact,
.public-booking-confirmation-line-details__title,
.public-booking-cart-reservation-details__title,
.public-booking-cart-contact-details__title,
.public-booking-cart-line-details__title {
  font-size: var(--public-booking-type-label-size);
  font-weight: var(--public-booking-font-weight-medium);
  line-height: var(--public-booking-type-label-line-height);
}

.public-booking-confirmation-contact-summary__value,
.public-booking-confirmation-property-card__value,
.public-booking-confirmation-group__count {
  font-weight: var(--public-booking-font-weight-medium);
}

.public-booking-cart-contact-details--confirmation .public-booking-cart-contact-details__title {
  font-size: var(--public-booking-type-card-title-size);
  font-weight: var(--public-booking-font-weight-semibold);
  line-height: var(--public-booking-type-card-title-line-height);
}

.public-booking-confirmation-line-price__value,
.public-booking-price-breakdown__row--total,
.public-booking-cart-line-price__value {
  font-weight: var(--public-booking-font-weight-semibold);
}

.public-booking-confirmation-line-extras__name {
  font-weight: var(--public-booking-font-weight-semibold);
}

.public-booking-confirmation-line-extras__price {
  font-weight: var(--public-booking-font-weight-regular);
}

.public-booking-confirmation-line-price__value {
  font-size: var(--public-booking-type-card-title-size);
  line-height: var(--public-booking-type-card-title-line-height);
}

.public-booking-price-breakdown__row,
.public-booking-price-breakdown__row--total,
.public-booking-confirmation-line-price__note,
.public-booking-confirmation-line-extras__item,
.public-booking-cart-line-price,
.public-booking-cart-line__facts,
.public-booking-cart-property-row {
  font-size: var(--public-booking-type-label-size);
  line-height: var(--public-booking-type-label-line-height);
}

.public-booking-price-breakdown__row,
.public-booking-confirmation-line-price__note {
  font-weight: var(--public-booking-font-weight-regular);
}

.public-booking-cart-summary__total {
  font-size: var(--public-booking-type-total-size);
  font-weight: var(--public-booking-font-weight-bold);
  line-height: var(--public-booking-type-total-line-height);
}

.public-booking-cart-contact-field label,
.public-booking-cart-reservation-properties [data-reservation-property-wrapper] legend {
  font-size: var(--public-booking-type-label-size);
  font-weight: var(--public-booking-font-weight-medium);
  line-height: var(--public-booking-type-label-line-height);
}

.public-booking-cart-contact-field input,
.public-booking-cart-contact-field textarea,
.public-booking-cart-reservation-properties textarea[data-reservation-property-key] {
  font-size: var(--public-booking-type-body-size);
  font-weight: var(--public-booking-font-weight-regular);
  line-height: var(--public-booking-type-body-line-height);
}

@media (max-width: 640px) {
  .public-booking-custom-property-dialog__search-input,
  .public-booking-line-dialog__field input,
  .public-booking-line-dialog__field select,
  .public-booking-line-dialog__field textarea,
  .public-booking-line-dialog__properties textarea,
  .public-booking-cart-contact-field input,
  .public-booking-cart-contact-field textarea,
  .public-booking-cart-reservation-properties textarea[data-reservation-property-key] {
    font-size: 1rem;
    line-height: 1.5rem;
  }
}
