/* Global styles */
:root {
    --otslr-green: #44D62C !important;
    --otslr-primary: #44D62C !important;
    --otslr-light: #ECFBEA;
    --otslr-deep: #0C2F1A;

    --otslr-input-bg: var(--otslr-deep);
    --otslr-input-color: #fff;
    --otslr-placeholder: var(--otslr-primary);
    --otslr-step-number: var(--otslr-primary);

    --link: #ff001d;

    --brand-grey: rgb(136, 136, 136);
    --border-grey: rgb(204, 204, 204);
    --border-grey-light: rgb(238, 238, 238);

    --otslr-dark-grey: #414444;
    --otslr-medium-grey: #6d6d6d;
    --otslr-medium-light-grey: #a8a8a8;
    --otslr-light-grey: #ddddde;
    --otslr-beige: #dcd4cb;

    --otslr-burnt: #b77051 !important;
    --otslr-burnt-light: rgba(183, 112, 81, .3);

    --white: white;
    --otslr-white: #FFF9F4;

    --black: rgb(0, 0, 0);
    --red: rgb(153, 27, 27);

    --active: rgb(220, 252, 231);
    --active-alt: rgb(22, 101, 52);
    --canceled: var(--red);
    --pending: rgb(255, 255, 0);
}

body.otslr-register-template-divi #main-content {
    background: linear-gradient(to bottom, #101010 0%, #1a1a1a 15%, #2a2a2a 25%, #4a4a4a 35%, #6a6a6a 50%, #8a8a8a 65%, #aaa 80%, #cacaca 90%, #fff 100%);
}

body.otslr-register-template-divi #main-content h1 {
    color: var(--otslr-primary);
    font-size: 28px;
    line-height: 28px;
    padding: 14px 28px;
    margin: 21px auto 56px;
    text-transform: uppercase;
    font-weight: bold;
    border: 3.5px solid var(--otslr-primary);
    border-radius: 7px;
    text-align: center;
    max-width: 475px;
}

h2#location-heading {
    font-size: 21px;
    line-height: 21px;
    font-family: var(--body_font);
    color: var(--white);
    text-transform: uppercase;
    font-weight: bold;
    display: flex;
    align-items: center;
    margin-bottom: 7px;
    letter-spacing: -1px;
    cursor: pointer;
}

h2#location-heading img {
    margin-left: 5px;
}

nav.otslr-location-nav a {
    font-size: 15px;
    line-height: 21px;
    color: var(--otslr-primary);
    text-decoration: none;
    font-family: var(--body_font);
    font-weight: bold;
    text-transform: lowercase;
    color: var(--link);
}

.otslr-input-with-right {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.otslr-input-with-right>div:first-child {
    width: 250px;
}

.otslr-input-with-right>div:last-child {
    width: 250px;
}

.otslr-confirmation {
    display: flex;
    align-items: center;
    justify-content: center;
}

.otslr-html-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 550px;
    height: 450%;
    padding: 56px;
    text-align: center;
    font-size: 28px;
    font-weight: bold;
    color: var(--otslr-green);
    background-color: var(----otslr-light);
    border-radius: 8px;
    flex-wrap: wrap;
}

.otslr-confirmation .otslr-html-wrapper h4 {
    font-size: 68px !important;
}

.otslr-html-wrapper>div {
    width: 100%;
    text-align: center;
}

/* Separator between price items and total */
.otslr-html-wrapper .otslr-total {
    border-top: 1px solid rgba(0, 0, 0, 0.3);
    margin-top: 10px;
    padding-top: 14px;
}

.otslr-score-helper {
    margin-top: 40px;
    display: flex;
    justify-content: center;
}

.otslr-score-helper>div {
    background-color: #f8f8f8;
    padding: 32px;
    border-radius: 8px;
    font-size: 16px;
    line-height: 1.6;
    color: #444;
    max-width: 600px;
    width: 100%;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}

.otslr-score-helper div>div {
    display: flex;
    align-items: center;
    margin-bottom: 16px;
}

.otslr-score-helper div>div span {
    display: inline-block;
    min-width: 90px;
    font-weight: 600;
    color: var(--otslr-primary);
}


.otslr-select-wrapper select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-color: #fff;
    background-image: url("data:image/svg+xml;utf8,<svg fill='%6B9BF9' height='20' viewBox='0 0 24 24' width='20' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/></svg>");
    background-repeat: no-repeat;
    background-position: right 1rem center;
    background-size: 1rem;
    padding-right: 2.5rem;
    /* Make room for the arrow */
    border: 1px solid #ccc;
    border-radius: 4px;
}




/* Ensure checkboxes and labels are styled properly */
#real-checkboxes input[type="checkbox"],
.real-checkboxes input[type="checkbox"] {
    -webkit-appearance: none;
    /* Remove default browser styling */
    -moz-appearance: none;
    appearance: none;
    width: 34px;
    height: 34px;
    min-width: 34px;
    border: 1px solid 000;
    /* Black border */
    border-radius: 4px;
    /* Optional: Add rounded corners */
    background-color: #fff;
    /* Default background (white) */
    cursor: pointer;
    vertical-align: middle;
    margin-right: 5px;
    /* Space between checkbox and label */
    position: relative;
    padding: 0;
}


/* Ensure radio buttons and labels are styled properly */
#real-radios input[type="radio"],
.real-checkboxes input[type="radio"] {

    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    width: 34px !important;
    height: 34px !important;
    border: 2px solid #000 !important;
    border-radius: 50% !important;
    background-color: #fff !important;
    cursor: pointer !important;
    vertical-align: middle !important;
    margin-right: 5px !important;
    position: relative !important;
}

.real-question input[type="radio"],
.real-question.real-checkboxes input[type="radio"] {
    border: 0 !important;
}

.real-question .otslr-radios {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.real-question .otslr-radio-fields {
    display: flex;
    justify-content: space-around;
    width: 50%;
}

.real-question .otslr-radios h5 {
    font-size: 18px;
    line-height: 28px;
    font-weight: bold;
}

#real-radios input[type="radio"]:checked,
.real-checkboxes input[type="radio"]:checked {
    background-color: white !important;
    border: 1px solid var(--otslr-primary) !important;
}

input[type="radio"] {
    outline: none;
    box-shadow: none;

}

.real-radios input[type="radio"] {
    border: 1px solid var(--otslr-primary) !important;
}

.real-radios input[type="radio"]:focus,
.real-radios input[type="radio"]:active,
.real-radios input[type="radio"]:focus-visible {
    outline: none;
    box-shadow: none;
}

.real-question input[type="radio"],
.real-question input[type="radio"]:focus,
.real-question input[type="radio"]:active,
.real-question input[type="radio"]:focus-visible {
    border: 1px solid var(--otslr-primary) !important;
}


#real-radios input[type="radio"]:checked::after,
#real-radios input[type="radio"]:checked::after,
.real-checkboxes input[type="radio"]:checked::after,
.real-checkboxes input[type="radio"]:checked::after {
    content: '' !important;
    width: 28px !important;
    height: 28px !important;
    block-size: 28px !important;
    inline-size: 28px !important;
    background-color: var(--otslr-primary) !important;
    /*primary*/
    border-radius: 50% !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    display: block;
}


#real-checkboxes input[type="checkbox"],
.real-checkboxes input[type="checkbox"] {
    border: 2px solid 000;
    margin-right: 10px;
}


#real-checkboxes label,
.real-checkboxes label {
    font-size: 18px;
}

.real-question .otslr-radio-wrapper label {
    margin-left: 5px;
    font-weight: bold;
}

/* Checked state with green background and white checkmark */
#real-checkboxes input[type="checkbox"]:checked,
.real-checkboxes input[type="checkbox"]:checked {
    background-color: var(--otslr-primary);
    border-color: var(--otslr-primary);
    /* Match border with background */
}

#real-checkboxes.green input[type="checkbox"]:checked,
.real-checkboxes.green input[type="checkbox"]:checked {
    background-color: var(--otslr-primary);
    border-color: var(--otslr-primary);
    /* Match border with background */
}

#real-checkboxes input[type="checkbox"]:checked::after,
.real-checkboxes input[type="checkbox"]:checked:after {
    content: '?';
    /* Unicode checkmark */
    color: #fff !important;
    /* Ensure checkmark is white */
    font-size: 20px;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    font-family: Arial, sans-serif;
    left: 50%;
}

.gform-theme--framework input[type="checkbox"]:not(.gform-theme__disable):not(.gform-theme__disable-framework)::before {
    display: none;
}

body .otslr-gf-row {
    display: flex;
    align-items: center;
    grid-column: span 12;
    justify-content: center;
    position: relative;
}

.gfield_label_product.gform-field-label {
    display: none !important;
}

.ginput_quantity {
    display: none !important;
}

.ginput_quantity_label.gform-field-label {
    display: none !important;
}

body .otslr-checkbox-wrapper,
body .otslr-radio-wrapper,
body .otslr-phone-wrapper,
body .otslr-date-wrapper,
body .otslr-select-wrapper,
body .otslr-paragraph-wrapper,
body .otslr-password-wrapper,
body .otslr-name-wrapper,
body .otslr-email-wrapper,
body .otslr-number-wrapper,
body .otslr-address-wrapper,
body .otslr-text-wrapper {
    display: flex !important;
    justify-content: center !important;
}

.gform_heading {
    display: none !important;
}

.otslr-checkbox-wrapper .gchoice,
body .otslr-radio-wrapper .gchoice {
    border: 1px solid black;
    padding: 21px;
    border-radius: 8px;
    width: 100%;
}

body .real-question .otslr-radio-wrapper .gchoice {
    border: none;
}

.otslr-checkbox-wrapper>div,
body .otslr-radio-wrapper>div {
    width: 550px;
    padding-inline: calc(var(--gf-field-gap-x)/ 2);
}

.otslr-no-border-checkbox .otslr-checkbox-wrapper .gchoice,
.otslr-no-border-checkbox .otslr-radio-wrapper {
    border: none;
    padding: 0;
    padding-inline: calc(var(--gf-field-gap-x)/ 2);
}

.otslr-paragraph-wrapper>div,
.otslr-select-wrapper>div,
.otslr-text-wrapper>div,
.otslr-phone-wrapper>div,
.otslr-password-wrapper>div
.otslr-address-wrapper>div,
.otslr-number-wrapper>div,
.otslr-email-wrapper>div,
.otslr-consent-wrapper>div,
.otslr-date-wrapper>div,
.otslr-name-wrapper>div {
    width: 550px;
    padding-inline: calc(var(--gf-field-gap-x)/ 2);
}

.otslr-form-header {
    padding-inline: calc(var(--gf-field-gap-x)/ 2);
}

.otslr-paragraph-wrapper textarea {
    border-radius: 8px !important;
    border: 1px solid var(--otslr-primary) !important;
}

.otslr-select-wrapper select {
    height: 56px !important;
    font-size: 16px !important;
    border-radius: 8px !important;
    border: 1px solid var(--otslr-primary);
}

.otslr-number-wrapper.prepended-dollar>div {
    display: flex;
    align-items: center;
}

.otslr-number-wrapper.prepended-dollar>div .otslr-prepend {
    font-size: 28px !important;
    font-weight: bold !important;
    line-height: 28px !important;
    margin-right: 3px;
}


.otslr-date-wrapper input,
.otslr-number-wrapper input,
.otslr-text-wrapper input,
.otslr-phone-wrapper input,
.otslr-name-wrapper input,
.otslr-email-wrapper input,
.otslr-gf-row input,
.otslr-password-wrapper input,
.otslr-address-wrapper input,
.otslr-address-wrapper select {
    height: 56px !important;
    font-size: 16px !important;
    border-radius: 7px !important;
    border: 1px solid var(--otslr-primary) !important;
    background: var(--otslr-input-bg) !important;
    color: var(--otslr-input-color) !important;
}

.otslr-date-wrapper input:focus,
.otslr-number-wrapper input:focus,
.otslr-text-wrapper input:focus,
.otslr-phone-wrapper input:focus,
.otslr-name-wrapper input:focus,
.otslr-email-wrapper input:focus,
.otslr-password-wrapper input:focus,
.otslr-gf-row input:focus,
.otslr-address-wrapper input:focus,
.otslr-address-wrapper select:focus {
    height: 56px !important;
    font-size: 16px !important;
    border-radius: 7px !important;
    border: 1px solid var(--otslr-primary) !important;
    outline: 2.5px solid var(--otslr-primary) !important;
    color: var(--otslr-input-color) !important;
}

.otslr-text-wrapper input.otslr-special-input {
    font-weight: bold !important;
}

.otslr-date-wrapper input::placeholder,
.otslr-number-wrapper input::placeholder,
.otslr-text-wrapper input::placeholder,
.otslr-phone-wrapper input::placeholder,
.otslr-name-wrapper input::placeholder,
.otslr-email-wrapper input::placeholder,
.otslr-password-wrapper input::placeholder,
.otslr-gf-row input::placeholder,
.otslr-address-wrapper input::placeholder,
.otslr-address-wrapper select::placeholder {
    color: var(--otslr-placeholder) !important;
    opacity: 1;
    /* Fix for Firefox */
}

.otslr-password-wrapper>div,
.otslr-name-wrapper>div {
    padding-inline: calc(12/ 2);
}

.otslr-password-wrapper>div>div,
.otslr-name-wrapper>div>div {
    margin-inline: 0 !important;
}

.otslr-form-header-wrapper,
.otslr-consent-wrapper {
    display: flex;
    justify-content: center;
}

.otslr-form-header-wrapper .otslr-form-header {
    width: 550px;
}

.otslr-form-header-wrapper .otslr-form-header h4 {
    font-size: 18px;
    line-height: 28px;
    font-weight: bold;
    margin: 0 !important;
    color: #000 !important;
}

.otslr-form-header-wrapper.otslr-form-header-wrapper-left {
    text-align: left;
}


.gform-theme--foundation .gform_fields {
    row-gap: 28px !important;
}

body .gform_wrapper .gf_page_steps {
    display: flex;
    justify-content: space-between;
}

body .gform_wrapper .gf_page_steps .gf_step {
    flex: 1 0 0;
    justify-content: center !important;
    display: flex;
    position: relative;
}

body .gform_wrapper .gf_page_steps .gf_step .gf_step_number {
    inline-size: 56px !important;
    block-size: 56px !important;
    position: relative;
    border: 2px solid var(--otslr-primary);
    color: var(--otslr-step-number);
}

body .gform_wrapper .gf_page_steps .gf_step:not(.gf_step_last)::after {
    content: "";
    position: absolute;
    top: 50%;
    right: calc(-50% + 23px);
    width: calc(100% - 56px);
    height: 2px;
    background: var(--otslr-primary) !important;
    transform: translateY(-50%);
    z-index: 1;
}

.gform-body.gform_body {
    padding: 56px 0;
}

body .gform_wrapper .gf_page_steps .gf_step.gf_step_completed::after {
    background: var(--otslr-primary) !important;
}


body .gform_wrapper .gform_body .gform_page_footer {
    display: flex;
    justify-content: center;
    margin-top: 56px !important;
}

.gform-theme--framework .gf_step_completed .gf_step_number::after {
    inline-size: 56px !important;
    block-size: 56px !important;
    background: var(--otslr-primary) !important;
    border: 1px solid var(--otslr-primary) !important;
    top: -2px;
    left: -2px;
}

.gform-theme--framework .gf_step_active .gf_step_number {
    background: var(--otslr-deep) !important;
    color: var(--otslr-primary) !important;
}

.gform-theme--framework .gf_step_completed .gf_step_number {
    background: var(--otslr-primary) !important;
    color: var(--otslr-deep) !important;
}

.gform_heading {
    display: none;
}

body .gform_wrapper .gform_body .gform_page_footer .gform_next_button,
body .gform_wrapper .gform_body .gform_page_footer .gform_previous_button,
body .gform_wrapper .gform_body .gform_page_footer .gform_button {
    background: var(--otslr-primary) !important;
    border-radius: 250px !important;
    color: var(--otslr-white) !important;
    padding: 21px 35px !important;
    text-transform: uppercase !important;
    font-size: 21px !important;
    outline: none !important;
    border: none !important;
    transition: background 0.3s ease, box-shadow 0.3s ease, transform 0.2s ease;
}

/* Remove default focus outline */
body .gform_wrapper .gform_body .gform_page_footer .gform_next_button:focus,
body .gform_wrapper .gform_body .gform_page_footer .gform_previous_button:focus,
body .gform_wrapper .gform_body .gform_page_footer .gform_button:focus {
    outline: none !important;
    box-shadow: none !important;
}

/* Hover style */
body .gform_wrapper .gform_body .gform_page_footer .gform_next_button:hover,
body .gform_wrapper .gform_body .gform_page_footer .gform_previous_button:hover,
body .gform_wrapper .gform_body .gform_page_footer .gform_button:hover {
    filter: brightness(1.08);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    cursor: pointer;
}

/* Optional: Active (click) effect */
body .gform_wrapper .gform_body .gform_page_footer .gform_next_button:active,
body .gform_wrapper .gform_body .gform_page_footer .gform_previous_button:active,
body .gform_wrapper .gform_body .gform_page_footer .gform_button:active {
    transform: scale(0.98);
}


.otslr-form-header h3 {
    font-weight: bold;
    text-align: center;
    font-size: 28px;
    line-height: 35px;
}

.otslr-gf-row {
    display: flex;
    justify-content: center;
    grid-column: span 12;
}

.otslr-gf-row>div {
    width: 550px;
    display: flex;
    justify-content: space-between;
}

.otslr-gf-row>div>div {
    inline-size: 100%;
    padding-inline: calc(12/ 2);
    width: 100%;
}

.real-question .gform_fields fieldset:not(:last-child) {
    padding-bottom: 10px;
}

.real-question .gform_fields fieldset:not(:last-child) {
    position: relative;
    padding-bottom: 10px;
}

.real-question .gform_fields fieldset:not(:last-child)::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    border-bottom: 1px solid #ccc;
    /* customize this line */
}

.otslr-label,
.otslr-consent-label,
.otslr-legend legend {
    margin-bottom: 7px !important;
}

.otslr-consent label h3 {
    font-weight: bold;
    margin-bottom: 0;
}

.otslr-label span {
    font-size: 14px;
    font-weight: bold;
}

/* === Event Field (summary + hide raw GF inputs) === */

.otslr-event-field-wrapper {
    margin: 28px 0;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.otslr-event-field-wrapper>div,
.otslr-event-field-inner {
    max-width: 550px;
}

/* Summary card */
.otslr-event-field-wrapper .otslr-schedule-overview {
    background: var(--otslr-deep);
    color: var(--otslr-white);
    border: 2px solid var(--otslr-primary);
    border-radius: 12px;
    padding: 21px 20px;
    box-shadow: 0 7px 18px rgba(0, 0, 0, .15);
}

.otslr-event-field-wrapper .otslr-schedule-overview .otslr-sched-zip,
.otslr-event-field-wrapper .otslr-schedule-overview .otslr-sched-rule {
    font-size: 21px;
    line-height: 28px;
    color: var(--otslr-medium-light-grey);
}

.otslr-event-field-wrapper .otslr-schedule-overview .otslr-sched-zip strong,
.otslr-event-field-wrapper .otslr-schedule-overview .otslr-sched-rule strong {
    color: var(--otslr-primary);
}

.otslr-event-field-wrapper .otslr-schedule-overview .otslr-sched-next {
    font-size: 21px;
    line-height: 28px;
    font-weight: 700;
    color: var(--otslr-white);
}

.otslr-event-field-wrapper .otslr-schedule-overview .otslr-badge {
    display: inline-block;
    padding: 7px 10px;
    border-radius: 999px;
    background: rgba(68, 214, 44, .15);
    border: 1px solid var(--otslr-primary);
    color: var(--otslr-primary);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .2px;
}

/* Visually hide the raw Event sub-inputs but keep them in DOM for GF/JS */
.otslr-event-field-wrapper .otslr-hidden-event-fields {
    position: relative;
}

.otslr-event-field-wrapper .otslr-hidden-event-fields .ginput_container,
.otslr-event-field-wrapper .otslr-hidden-event-fields .ginput_complex,
.otslr-event-field-wrapper .otslr-hidden-event-fields .gform-field-label,
.otslr-event-field-wrapper .otslr-hidden-event-fields .ginput_container_timepicker,
.otslr-event-field-wrapper .otslr-hidden-event-fields .gk-event-field-repeat-container,
.otslr-event-field-wrapper .otslr-hidden-event-fields .gk-event-field-occurrences-container,
.otslr-event-field-wrapper .otslr-hidden-event-fields .event-field-repeat-ends-date-container {
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    opacity: .01 !important;
    pointer-events: none !important;
    /* keep focus off hidden controls */
    border: 0 !important;
}

/* Make sure the grid around the hidden field doesn’t leave gaps */
.otslr-event-field-wrapper .otslr-hidden-event-fields .gform-grid-row {
    gap: 0 !important;
}

/* In case GravityKit injects icons inside inputs—hide those too */
.otslr-event-field-wrapper .otslr-hidden-event-fields .ui-datepicker-trigger {
    display: none !important;
}

/* If you ever want the timezone select visible, this styles it to match theme */
.otslr-event-field-wrapper select,
.otslr-event-field-wrapper input.gf-input-time,
.otslr-event-field-wrapper input.datepicker {
    height: 56px !important;
    font-size: 16px !important;
    border-radius: 8px !important;
    border: 1px solid var(--otslr-primary) !important;
    background: var(--otslr-input-bg) !important;
    color: var(--otslr-input-color) !important;
}

/* Responsive tweaks */
@media (min-width: 640px) {
    .otslr-event-field-wrapper .otslr-schedule-overview {
        grid-template-columns: 1fr auto;
        align-items: center;
    }

    .otslr-event-field-wrapper .otslr-schedule-overview .otslr-sched-next {
        justify-self: end;
    }
}