/* RSForm! Pro 2: forms on the site */
.rs2-wrap { --rs2-input: 320px; }
.rs2-title { margin-bottom: 16px; }
.rs2-intro { margin-bottom: 20px; }
.rs2-closed { padding: 16px 0; font-weight: 600; }
.rs2-hp { position: absolute !important; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.rs2-muted { opacity: .75; }
.rs2-message { margin-bottom: 16px; }

/* Rows and columns of the grid; on a phone the columns go one under another */
.rs2-row { display: flex; flex-wrap: wrap; margin: 0 -12px; }
.rs2-col { flex: 0 0 calc(var(--rs2-size, 12) / 12 * 100%); max-width: calc(var(--rs2-size, 12) / 12 * 100%); padding: 0 12px; min-width: 0; }
.rs2-page { border: 0; margin: 0; padding: 0; min-width: 0; }
.rs2-page[hidden], .rs2-block[hidden] { display: none !important; }

.rs2-block { margin-bottom: 14px; }
.rs2-labels-left .rs2-block:not(.rs2-type-freeText) { display: grid; grid-template-columns: minmax(150px, 25%) minmax(0, 1fr); column-gap: 16px; align-items: start; }
.rs2-labels-left .rs2-label { text-align: right; padding-top: 6px; }
.rs2-labels-left .rs2-type-radioGroup .rs2-label, .rs2-labels-left .rs2-type-advradio .rs2-label,
.rs2-labels-left .rs2-type-checkboxGroup .rs2-label, .rs2-labels-left .rs2-type-advcheckbox .rs2-label,
.rs2-labels-left .rs2-type-switch .rs2-label { padding-top: 0; }
.rs2-labels-top .rs2-label { margin-bottom: 4px; }
.rs2-label label { margin: 0; font-weight: inherit; }
.rs2-req { color: #bf1722; }

.rs2-form .form-control, .rs2-form .form-select { max-width: var(--rs2-input); }
.rs2-form .form-control-color { width: 64px; }
.rs2-form textarea.form-control { width: 100%; }
.rs2-help { font-size: .875em; opacity: .8; margin-top: 4px; }
.rs2-error { color: #b00020; font-size: .875em; margin-top: 4px; }
.rs2-invalid .form-control, .rs2-invalid .form-select { border-color: #b00020; }
.rs2-full { opacity: .8; }

/* Option groups */
.rs2-flow-h { display: flex; flex-wrap: wrap; gap: 4px 18px; }
.rs2-flow-v .form-check { margin-bottom: 4px; }
.rs2-flow-cols { display: grid; grid-template-columns: repeat(var(--rs2-opt-cols, 4), minmax(84px, 120px)); gap: 4px 10px; }
.rs2-options .form-check { margin-bottom: 0; }
.rs2-options--styled .form-check-input { width: 1.15em; height: 1.15em; }
.rs2-options--styled .form-check-input:checked { background-color: #00508a; border-color: #00508a; }

/* Date of birth: three lists in a row */
.rs2-birthday { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; }
.rs2-form .rs2-birthday .form-select { width: auto; max-width: none; flex: 0 1 auto; min-width: 72px; padding-right: 2rem; }
.rs2-birthday__sep { opacity: .7; }

/* Other fields */
.rs2-captcha { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.rs2-captcha img { border: 1px solid rgba(0, 0, 0, .15); border-radius: 4px; }
.rs2-range { max-width: var(--rs2-input); }
.rs2-range__out { display: block; margin-top: 2px; }
.rs2-stars { display: inline-flex; flex-direction: row-reverse; }
.rs2-stars input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.rs2-stars label { font-size: 26px; line-height: 1; color: #c8ccd2; cursor: pointer; padding: 0 2px; }
.rs2-stars input:checked ~ label, .rs2-stars label:hover, .rs2-stars label:hover ~ label { color: var(--rs2-star, #f2b01e); }
.rs2-stars input:focus-visible + label { outline: 2px solid #00508a; }
.rs2-count { font-size: .8em; opacity: .7; text-align: right; max-width: var(--rs2-input); }
.rs2-search { margin-bottom: 4px; }
.rs2-survey th, .rs2-survey td { text-align: center; }
.rs2-survey tbody th { text-align: left; font-weight: normal; }
.rs2-fs--on { position: fixed; inset: 0; z-index: 2000; background: #fff; padding: 16px; display: flex; flex-direction: column; gap: 8px; }
.rs2-fs--on textarea { flex: 1; max-width: none !important; }
.rs2-fs-toggle { margin-top: 4px; }

/* Pages */
.rs2-nav { margin: 12px 0; }
.rs2-progress { margin-bottom: 14px; }
.rs2-progress__bar { height: 6px; width: 0; background: #00508a; border-radius: 3px; transition: width .2s; }
.rs2-progress__text { font-size: .875em; margin-top: 4px; }

/* After sending */
.rs2-thanks { margin: 12px 0; }
.rs2-again { margin-top: 12px; }
.rs2-thanks--popup { position: fixed; inset: 0; z-index: 2000; display: flex; align-items: center; justify-content: center; background: rgba(0, 0, 0, .5); margin: 0; padding: 16px; }
.rs2-thanks--popup .rs2-thanks__box { background: #fff; color: #222; border-radius: 10px; padding: 24px; max-width: 560px; }

/* Side button and its window */
.rs2-feedback { position: fixed; z-index: 1500; padding: 8px 14px; border: 1px solid; font-weight: 600; text-decoration: none !important; box-shadow: 0 2px 8px rgba(0, 0, 0, .3); }
.rs2-feedback--left { left: 0; top: 50%; transform-origin: left top; transform: rotate(-90deg) translate(-50%, 0); border-radius: 0 0 6px 6px; }
.rs2-feedback--right { right: 0; top: 50%; transform-origin: right top; transform: rotate(90deg) translate(50%, 0); border-radius: 0 0 6px 6px; }
.rs2-feedback--top { top: 0; left: 50%; transform: translateX(-50%); border-radius: 0 0 6px 6px; }
.rs2-feedback--bottom { bottom: 0; left: 50%; transform: translateX(-50%); border-radius: 6px 6px 0 0; }
.rs2-popup { position: fixed; inset: 0; z-index: 3000; background: rgba(0, 0, 0, .55); display: flex; align-items: center; justify-content: center; }
.rs2-popup__box { position: relative; background: #fff; border-radius: 10px; overflow: hidden; }
.rs2-popup__box iframe { width: 100%; height: 100%; border: 0; display: block; }
html.rs2-in-popup body { padding: 24px 28px; }
@media (max-width: 575px) { html.rs2-in-popup body { padding: 44px 14px 16px; } }
.rs2-popup__close { position: absolute; top: 6px; right: 8px; z-index: 1; width: 32px; height: 32px; border: 0; border-radius: 50%; background: rgba(0, 0, 0, .55); color: #fff; font-size: 20px; line-height: 1; cursor: pointer; }

/* Directory on the site */
.rs2-dir-search { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.rs2-dir-search .form-control { max-width: 320px; }
.rs2-pages { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 10px; }

@media (max-width: 767.98px) {
  .rs2-col { flex-basis: 100%; max-width: 100%; }
  .rs2-labels-left .rs2-block:not(.rs2-type-freeText) { display: block; }
  .rs2-labels-left .rs2-label { text-align: left; padding-top: 0; margin-bottom: 4px; }
  .rs2-form .form-control, .rs2-form .form-select { max-width: none; }
  .rs2-range { max-width: none; }
  .rs2-flow-cols { grid-template-columns: repeat(auto-fill, minmax(84px, 1fr)); }
  .rs2-feedback--left, .rs2-feedback--right { top: auto; bottom: 0; transform: none; left: 0; right: auto; border-radius: 0 6px 0 0; }
}
