
/* form controls */
@media all {
    fieldset {
        border:0;
        margin:0;
        padding:0;
    }

    legend { font-weight: 600; }

    label,
    input:not([type="radio"]):not([type="checkbox"]),
    select,
    textarea {
        display: inline-block;
        width: 100%;
    }

    input:not([type="radio"]):not([type="checkbox"]), select, textarea {
        border: 1px solid rgb(204,204,204);
        background: rgb(250,250,250);
        border-radius: 2px;
        padding: 0.3125rem 0.625rem;
    }

    select {
        padding: 0.3125rem;
    }

    input[type="checkbox"], input[type="radio"] {
        width: 1.25em;
        height: 1.25em;
        margin-right: 0.625rem;
        flex-shrink: 0;
        flex-grow: 0;
    }

    input[type="radio"] {
        border-radius: 100%;
    }

    input[type="checkbox"] {
        margin-top: 0.25em;
    }

    input[readonly] {
        color: rgb(102,102,102) !important;
        background: var(--color-white) !important;
        border-color: rgb(220,220,220)!important;
    }

    .form-required .form-label { font-weight: 600; }

    .form-row {
        margin-bottom: 0.9375rem;
    }

    .form-label {
        font-weight: 400;
        margin-bottom: 0.3125rem;
    }

    /* radio */
    .form-group-radio {}
    .form-group-radio-inline {
        display: -webkit-flex;
        display: flex;
    }

    .form-group-radio-inline .form-option-radio:not(:first-child) {
        margin-left: 1.25rem;
    }

    .form-label-radio {
        display: flex;
    }

    .form-group-radio-inline .form-label-radio {
        align-items: center;
    }

    /* checkboxen */
    .form-group-checkbox {}
    .form-group-checkbox-inline {
        display: -webkit-flex;
        display: flex;
    }

    .form-group-checkbox-inline .form-option-checkbox:not(:first-child) {
        margin-left: 1.25rem;
    }

    .form-label-checkbox {
        display: flex;
    }

    .form-group-checkbox-inline .form-label-checkbox {
        align-items: center;
    }

    .form-row-captcha .form-field {
        display: flex;
        flex-wrap: wrap;
        align-items: baseline;
    }

    .form-row-captcha .form-label-mathguard {
        width: auto;
        white-space: nowrap;
        padding-right: 0.625rem;
    }

    .form-row-captcha .form-input-mathguard {
        flex-grow: 1;
        width: auto !important;
    }

    .form-row-captcha .form-error {
        width: 100%;
    }

    /* utility stuff */
    .form-infotext {
        margin-bottom: 0 0 0.9375em;
        color: #999;
    }

    /* test for errors */
    .form-error {
        list-style: none;
        padding-left: 0;
        color: rgb(204,0,0);
    }

    :valid + .form-error {display:none;}

    .field-invalid {
        border-color: rgb(204,0,0) !important;
        background-color: rgb(255,245,245) !important;
    }
}

/* search */
@media all {
    [type=search] {
        -webkit-appearance: searchfield;
    }

    .searchbox-inner {
        background: rgb(250,250,250);
        padding: 0 2.5rem 0 0;
    }

    .searchbox-inner .search-word {
        border: none !important;
        background: none !important;
    }

    .search-button {
        position: absolute;
        top: 0;
        bottom:0;
        right:0;
        width:2.5rem;
        padding:0;
        border:0;
        background: rgb(204,204,204);
        cursor:pointer;
    }

    .searchbox .icon-search {
        height: 2.125rem;
        background-size: 2.125rem;
    }

    .page-content .searchbox .searchbox-inner {
        border: 1px solid rgb(204,204,204);
    }

    .page-content .searchbox .search-word {
        padding: 0.3125rem ;
        background: rgba(0,0,0,0.05)
    }

    /* search result */
    .search-result-header-padding {
        padding-top: 1.25rem;
    }

    .search-numresults {
        display: block;
        margin-bottom: 0.625rem;
    }

    .search-result-url {
        display: flex;
        flex-wrap: wrap;
        gap: 0.625rem;
        margin: 0;
    }

    .search-result-url dd {
        margin-left: 0;
    }

    .search-result-title .fa {
        min-width: 1rem;
        text-align: center;
    }

    mark,
    .search-list .hit {
        color: rgb(0,0,0);
        background-color: rgb(255,255,0);
    }
}


/* booking form */
@media all {
    .form-booking input[type="date"]::-webkit-calendar-picker-indicator {
        opacity: 1!important;
    }

    .form-booking input[type="number"]::-webkit-inner-spin-button,
    .form-booking input[type="date"]::-webkit-inner-spin-button {
        -webkit-appearance: none;
        display: none;
    }

    .form-booking input[type="date"]::-webkit-clear-button {
        -webkit-appearance: none;
        display: none;
    }

    .form-sportclubs .form-input, .form-sportclubs .form-select,
    .form-booking .form-input, .form-booking .form-select {
        border: none !important;
        background: none !important;
        font-weight: 600 !important;
    }

    .page-stage-form {
        color: var(--color-black);
        background: url(../Img/background_pattern_mid.jpg) repeat rgb(248,248,248);
        padding: 1.25rem 0.625rem;
    }

    .form-sportclubs .form-fieldset,
    .form-booking .form-fieldset {
        display: flex;
    }

    .form-sportclubs .form-fieldset > div,
    .form-booking .form-fieldset > div {
        margin: 1px;
    }

    .form-sportclubs .form-row,
    .form-booking .form-row {
        color: rgb(68,68,68);
        background: var(--color-white);
        text-align: center;
        flex-grow: 1;
        width: 50%;
    }

    .form-sportclubs .form-row {
        width: 100%;
    }

    .form-sportclubs .form-label-inner,
    .form-booking .form-label-inner {
        display: block;
    }

    .form-booking .form-icon-bg {
        display: flex;
        justify-content: center;
        align-items: center;
        background-color: var(--color-orange);
        background-image: linear-gradient(180deg, rgba(255,144,0,1) 0%, rgba(255,120,0,1) 100%);
        min-width: 2.5rem;
    }

    .form-booking .form-label .form-input-date {
        width: 7.5rem;
        padding: 0;
        text-align: center;
    }

    .form-booking .form-group-radio {
        padding-top: 0.625rem;
        padding-bottom: 0.625rem;
    }

    .form-booking .form-label-radio {
        align-items: center;
    }

    .form-booking .form-label-radio .form-label-inner {
        display: flex;
        align-items: center;
        line-height:2;
    }

    .form-booking input[type="radio"] {
        display: none;
    }

    .form-booking input[type="radio"]~.form-label-inner::before {
        content:"";
        display:inline-block;
        width: 1em;
        height:1em;
        background-size:contain;
        background-image: url("../Img/form_radio_normal_x3-compressor.png");
        margin-right: 0.5em;
    }

    .form-booking .form-label-inner::after {
        content:"";
        background-image: url("../Img/form_radio_hover_x3-compressor.png"); /* preload */
    }

    .form-booking .form-label-radio:hover .form-label-inner::before {
        background-image: url("../Img/form_radio_hover_x3-compressor.png");
    }

    .form-booking input[type="radio"]:checked~.form-label-inner::before {
        background-image: url("../Img/form_radio_active_x3-compressor.png");
    }

    .form-booking-fieldset-filter-tabs {
        max-width: 30em;
        margin: 0 auto;
    }

    .form-booking-fieldset-filter-tabs ul {
        list-style-type: none;
        padding-left: 0;
        margin: 0;
    }

    .form-booking-fieldset-filter-tabs ul li {
        float: left;
        margin-right: 0.25rem;
    }

    .form-booking-fieldset-filter-tabs ul li:last-child {
        margin-right: 0;
    }

    .form-booking-tab-content {
        background-color: var(--color-darkergray);
    }

    .form-booking-tab button {
        display: block;
        appearance: none;

        color: var(--color-darkergray);
        background-color: var(--color-white);

        border: 1px solid var(--color-darkergray);
        border-bottom-width: 0;

        font-size: 70%;
        padding: 0.9375rem 0.625rem;
    }
    .form-booking-tab button[aria-selected="true"] {
        color: var(--color-white);
        background-color: var(--color-darkergray);
    }

    .form-booking-tab button:focus-visible {
        outline: 3px solid var(--color-orange);
        outline-offset: -5px;
    }

    .form-booking-tab-content {
        padding: 0.625rem 0.3125rem;
    }

    .form-booking-tab-content .btn-submit {
        margin-top: 0.625rem;
    }
}

@media (min-width:30em) {

    .form-booking-tab button {
        font-size: 1em;
    }

    .form-booking .form-label .form-input-date {
        width: 9.5rem;
    }

    .form-booking-tab-content {
        padding: 1.25rem;
        max-width: 33rem;
        margin: 0 auto;
    }

    .form-booking-fieldset-filter-tabs {
        padding: 0 1.25rem;
    }

    .form-booking .form-icon-bg {
        width: 3.75rem;
        aspect-ratio: 1;
        flex-shrink: 0;
    }

    .form-sportclubs .form-fieldset,
    .form-booking .form-fieldset {
        max-width: 30em;
        margin: 0 auto;
    }

    .form-booking .form-input {
        min-height: 1.75em;
    }
}

@media (min-width:40em) {

    .form-booking-tab button {
        font-size: max(14pt, 1em);
    }

    .form-booking .form-group-radio {
        display: flex;
        justify-content: center;
    }

    .form-booking .form-option-radio+.form-option-radio {
        margin-left: 1.25rem;
    }

    .form-booking-fieldset-filter-tabs {
        padding: 0;
    }

    .form-booking-tab span {
        padding: 0.9375rem 1.25rem;
        font-size: 100%;
    }
}

@media (min-width: 62.5em) {
    .form-row {
        margin-bottom: 1.25rem;
    }

    .form-booking-tab-content {
        max-width: none;
        padding: 0;
        background: none;
    }

    .form-booking-tab button {
        background-color: rgba(255,255,255,0.80);
    }

    .form-booking-tab button[aria-selected="true"] {
        color: var(--color-white);
        background-color: rgba(0,0,0,0.7);
        border-width: 0;
        min-height: 3.75rem;
    }

    .form-booking-fieldset-group {
        padding: 1.25rem;
        background-color: rgba(0,0,0,0.7);
        margin-bottom: 1.25rem;
    }

    .form-booking fieldset:first-child, .form-booking fieldset:nth-child(2) {
        width: calc(66% - 0.625rem);
        float: left;
    }

    .form-booking fieldset:nth-child(2) {
        float: right;
        width: calc(33% - 0.625rem);
    }
    .form-sportclubs fieldset:first-child, .form-sportclubs fieldset:nth-child(2){
        width: calc(50% - 0.625rem);
        float: left;
    }

    .form-sportclubs fieldset:nth-child(2) {
        float: right;
    }

    .form-sportclubs fieldset:nth-child(3),
    .form-booking fieldset:nth-child(3) {
        clear: both;
    }

    .form-booking-fieldset-filter-tabs {
        max-width: 100%;
    }

    .page-stage-form {
        background: none;
    }
}
