
:root {
    --custom-form-link-color: #2E4042;
    --custom-form-border-color: #2E4042;
    --custom-form-button-bg-color: #2E4042;
    --custom-form-button-bg-hover-color: #D80010;
    --custom-form-required-color: #D2322DFF;
    --custom-form-warning-color: #D2322DFF;
    --custom-form-invalid-color: rgba(255, 0, 0, 0.1);
}

/* -------------------------------------------------------------------------- */
/* COMMON - CLASSES
/* -------------------------------------------------------------------------- */

/* NO CLASSES */
.noDisplay {
    display: none !important;
}
.noWrap {
    white-space: nowrap !important;
}
.noEvent {
    pointer-events: none !important;
}
.noSelect {
    -webkit-user-select: none !important;
    -moz-user-select: none !important;
    -ms-user-select: none !important;
    user-select: none !important;
}

/* ANIMATION CLASSES */
.animate,
.animate::before,
.animate::after,
.animate *,
.animate *::before,
.animate *::after {
    -webkit-transition: all 0.6s ease !important;
    -moz-transition: all 0.6s ease !important;
    -o-transition: all 0.6s ease !important;
    transition: all 0.6s ease !important;
}
.noAnimate,
.noAnimate::before,
.noAnimate::after,
.noAnimate *,
.noAnimate *::before,
.noAnimate *::after {
    -webkit-transition: none !important;
    -moz-transition: none !important;
    -o-transition: none !important;
    transition: none !important;
    -webkit-transition-property: none !important;
    -moz-transition-property: none !important;
    -o-transition-property: none !important;
    transition-property: none !important;
    -webkit-transition-duration: 0s !important;
    -moz-transition-duration: 0s !important;
    -o-transition-duration: 0s !important;
    transition-duration: 0s !important;
}

/* DISPLAY CLASSES */
.dContainer > *:first-child {
    margin-top: 0 !important;
    padding-top: 0 !important;
}
.dContainer > *:last-child {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}
.dBlock { display: block; }
.dMobile { display: block; }
.dDesktop { display: none; }

@media (min-width: 768px) {
    .dMobile { display: none; }
    .dDesktop { display: block; }
}

/* -------------------------------------------------------------------------- */
/* MESSAGES
/* -------------------------------------------------------------------------- */

.customMessage,
.customMessage * {
    box-sizing: border-box !important;
    color: #FFFFFF;
}
.customMessage {
    display: none;
    margin: 36px auto !important;
    padding: 36px 36px !important;
    text-align: center;
    overflow: hidden;
}
.customMessage.active {
    display: block;
}
.customMessage.successMsg {
    /*background-color: #6ab84c;*/
    background-color: #6ABF6A;
}
.customMessage.errorMsg {
    /*background-color: #FF7F7F;*/
    background-color: #ff6961;
}
.customMessage.noticeMsg * {
    color: #000000;
}
.customMessage .mesageTitle {
    font-size: 18px;
    font-weight: 600;
}

/* -------------------------------------------------------------------------- */
/* FORM
/* -------------------------------------------------------------------------- */

.customForm {
    width: 100% !important;
    max-width: 100% !important;
    margin: 36px 0;
}
.customForm,
.customForm * {
    box-sizing: border-box !important;
}
.customForm .isDisabled  {
    pointer-events: none !important;
    -webkit-user-select: none !important;
    -moz-user-select: none !important;
    -ms-user-select: none !important;
    user-select: none !important;
    opacity: 0 !important;
}
.customForm .formRow.isInvalid,
.customForm .formInput.isInvalid {
    background-color: var(--custom-form-invalid-color);
}
.customForm .checkboxInput.isInvalid {
    box-shadow: 0 0 0 10px var(--custom-form-invalid-color);
}

/* -------------------------------------------------------------------------- */
/* FORM NAVIGATION
/* -------------------------------------------------------------------------- */

.customForm .formNavigation {
    text-align: center;
}
.customForm .formNavigation .navButton {
    display: inline-block;
    margin: 8px 8px;
    padding: 16px 32px;
    border-radius: 0;
    border: 1px solid var(--custom-form-link-color);
    background-color: var(--custom-form-link-color) !important;
    text-transform: uppercase;
    color: #FFFFFF !important;
    font-size: 16px;
    font-weight: 400;
    cursor: pointer;
}
.customForm .formNavigation .navButton.buttonSubmit {
    border: 1px solid var(--custom-form-link-color);
    background-color: var(--custom-form-link-color) !important;
    font-size: 20px;
    font-weight: 400;
}
.customForm .formNavigation .navButton.isDisabled {
    opacity: 0.25 !important;
}

/* FORM SCREEN */

.customForm .formScreen {
    display: none !important;
}
.customForm .formScreen.active {
    display: block !important;
}

/* FORM PART */

.customForm .formPart {
    margin: 0 0 26px 0;
}
.customForm .formPart .partTitle {
    font-size: 26px;
    font-weight: 500;
    text-align: left;
}

/* -------------------------------------------------------------------------- */
/* FORM NOTES
/* -------------------------------------------------------------------------- */

.customForm .formNotes {
    margin: 0 0 26px 0;
    font-size: 14px;
    font-style: italic;
    line-height: 140%;
    color: rgba(0,0,0,0.5);
}
.customForm .formNotes .isRequired {
    color: var(--custom-form-required-color);
}

/* -------------------------------------------------------------------------- */
/* FORM - ROW
/* -------------------------------------------------------------------------- */

.formRow {
    margin: 16px 0;
    padding: 0 0;
}
.formRow.isDisabled {
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden;
}
.formRow.isRequired .rowTitle:after,
.formRow.isRequired .checkboxLabel:after {
    content: ' *';
    color: var(--custom-form-required-color);
}
.formRow .sectionTitle {
    margin: 0 0 26px 0;
    font-size: 18px;
    font-weight: bold;
}
.formRow .rowTitle {}
.formRow .rowNote {
    margin: 8px 0 0 0;
    font-size: 14px;
    font-style: italic;
    line-height: 140%;
    color: rgba(0,0,0,0.5);
}
.formRow .rowInput {}
.formRow.checkbox_input .rowTitle {
    display: none;
}

/* -------------------------------------------------------------------------- */
/* FORM - INPUTS
/* -------------------------------------------------------------------------- */

.customForm input,
.customForm select,
.customForm textarea {
    outline: 0;
}

/* text input */
.customForm .textInput  {
    width: 100%;
    min-width: 250px;
    max-width: 460px;
    margin: 0;
    padding: 8px 16px;
    border: 1px solid var(--custom-form-border-color);
}

/* text area */
.customForm .textArea {
    display: block;
    width: 100%;
    min-height: 60px;
    margin: 16px 0;
    padding: 16px 16px;
    border: 1px solid var(--custom-form-border-color);
    font-size: 16px;
}

/* checkbox */
.customForm .checkboxInput {
    display: inline;
    margin: 0 8px 0 8px;
    padding: 0;
}
.customForm .checkboxLabel {
    display: inline;
    margin: 0 8px 0 8px;
    padding: 0;
}

/* select */
.customForm .selectInput  {
    width: 100%;
    min-width: 250px;
    max-width: 460px;
    margin: 0;
    padding: 8px 16px;
    border: 1px solid var(--custom-form-border-color);
}
.customForm .selectOption.isDisabled {
    display: none !important;
}

/* file */
.customForm .fileInputWrapper {
    position: relative;
    display: block;
    margin: 0;
    padding: 0;
    width: 100%;
    height: 38px;
    min-width: 320px;
    max-width: 320px;
}
.customForm .fileLabel {
    display: block;
    width: 100%;
}
.customForm .fileInput {
    z-index: 2;
    position: relative;
    width: 100%;
    height: 36px;
    margin: 0;
    padding: 0;
    opacity: 0;
}
.customForm .fileInputLabel {
    z-index: 1;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    height: 38px;
    margin: 0;
    padding: 0;
    background-color: #FFFFFF;
    border: 1px solid var(--custom-form-border-color);
}
.customForm .fileInputLabel::after {
    z-index: 3;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    height: 36px;
    padding: 0 16px;
    display: flex;
    align-items: center;
    line-height: 1;
    color: #FFFFFF;
    content: "Vybrat soubory";
    background-color: var(--custom-form-button-bg-color);
}
.customForm .fileInputNote {
    margin: 0 0 8px 0;
}
.customForm .fileInputMessage {
    display: none;
    margin: 8px 0;
}
.customForm .fileInputMessage.active {
    display: block;
}
.customForm .fileInputMessage.warning {
    color: var(--custom-form-warning-color);
}
.customForm .fileInputMessage .messageCaption {
    margin: 0;
    padding: 0;
}

/* -------------------------------------------------------------------------- */
/* FORM - ROW GROUP
/* -------------------------------------------------------------------------- */

.formRowGroup {
    display: flex;
    flex-direction: row;
    gap: 20px;
}
.formRowGroup .formRow.select_input {
    width: 80px;
    min-width: 80px !important;
    max-width: 80px !important;
}
.formRowGroup .formRow.phone_input {
    width: calc(460px - 20px - 80px);
    min-width: unset;
    max-width: unset;
}
.formRowGroup .phonePrefixSelect {
    width: 100%;
    min-width: unset;
    max-width: unset;
}
.formRowGroup .phoneNumberInput  {
    width: 100%;
    min-width: unset;
    max-width: unset;
}

/* -------------------------------------------------------------------------- */
