/*
 Theme Name:   Knockout Championship Child Theme
 Theme URI:    https://playerscollective.com/
 Description:  Knockout Championship Child Theme
 Author:       The Players Collective
 Author URI:   https://playerscollective.com/
 Template:     blocksy
 Version:      1.0
 Text Domain:  blocksy
*/

@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Saira+Condensed:wght@100;200;300;400;500;600;700;800;900&display=swap');

/**
 Animations
 */

@keyframes animationFadeInDown {
    from {
        opacity: 0;
        transform: translate3d(0,-100%,0);
    }
    to {
        opacity: 1;
        transform: none;
    }
}


/**
 Global
 */

:root {

    --theme-color-primary: #000;
    --theme-color-secondary: rgba(255,255,255,0.6);
    --theme-color-accent: #F37329;

    --theme-text-color: #FFF;

    --theme-btn-primary-text-color: #FFF;
    --theme-btn-primary-text-color-hover: var(--theme-color-accent);

    --theme-btn-secondary-text-color: #000;
    --theme-btn-secondary-text-color-hover: var(--theme-text-color);

    --theme-btn-ghost-text-color: #FFF;
    --theme-btn-ghost-text-color-hover: #FFF;

    --theme-link-color: var(--theme-color-accent);
    --theme-link-initial-color: var(--theme-color-accent);
    --theme-link-hover-color: var(--theme-color-secondary);

    --theme-background-color: rgba(255,255,255,0.2);
    --theme-background-color-hover: rgba(255,255,255,0.4);

    --theme-hero-overlay: #4B1E04;

    --theme-map-bg: var(--theme-color-accent);
    --theme-map-text: var(--theme-color-primary);
    --theme-map-active-bg: var(--theme-color-accent);
    --theme-map-active-text: #000;

    --theme-heading-1-color: var(--theme-color-accent);
    --theme-heading-2-color: var(--theme-color-accent);
    --theme-heading-3-color: var(--theme-color-accent);
    --theme-heading-4-color: var(--theme-color-accent);
    --theme-heading-5-color: var(--theme-color-accent);
    --theme-heading-6-color: var(--theme-color-accent);

    --theme-btn-font: 600 16px/1em 'Saira Condensed', Sans-Serif;

    --theme-cta-font: 600 16px/1.3em 'Saira Condensed', Sans-Serif;

    --theme-title-font: 700 18px/1.3em 'Saira Condensed', Sans-Serif;

    --theme-body-font: 400 16px/1.5em 'Roboto', Sans-Serif;
    --theme-body-size: 16px;

    --theme-backend-font: 'Saira Condensed', Sans-Serif;

    --theme-table-font-size: 15px;

    --theme-label-margin: 0 0 8px;
    --theme-label-font: var(--theme-btn-font);
    --theme-label-color: #fff;
    --theme-label-text-transform: uppercase;

    --theme-input-bg: #222;
    --theme-input-padding: 10px 20px;
    --theme-input-font: 400 16px/1em Roboto, Sans-Serif;
    --theme-input-color: var(--theme-text-color);
    --theme-input-border: 1px solid var(--theme-input-bg);
    --theme-input-border-error: 1px solid var(--theme-color-accent);
    --theme-input-border-radius: 6px;

    @media only screen and (max-width: 1000px) {
        --theme-container-edge-spacing: 94vw;
    }

    --theme-registration-step-padding: 16px;
    @media only screen and (min-width: 1024px) {
        --theme-registration-step-padding: 32px;
    }
    @media only screen and (min-width: 1400px) {
        --theme-registration-step-padding: 38px;
    }

    --theme-form-field-border-width: 0;
    --theme-form-field-background-initial-color: var(--theme-input-bg);
    --theme-fields-bg-color: var(--theme-form-field-background-initial-color);
    --theme-form-field-padding: var(--theme-input-padding);
    --form-selection-control-border-width: 5px;
    --theme-form-selection-field-initial-color: var(--theme-form-field-background-initial-color);

    --theme-form-selection-field-active-color: var(--theme-color-accent);

    --theme-form-select-background-active-color: var(--theme-color-accent);

    /*
    --theme-content-spacing
    --theme-block-width
    --wp--style--global--content-size
    */

    & :where(.is-layout-flex) {
        gap: 40px;
    }
    & :where(.tpc-gap-20) {
        gap: 20px;
    }

}

.theme-inverse,
.woocommerce-cart-form,
.ct-woocommerce-cart-form .cart_totals,
.ct-customer-details,
.ct-order-review,
.select2-container--open,
.woocommerce-thankyou-order-details,
.woocommerce-order-details,
.woocommerce-customer-details,
.tpc-notice,
.tpc-modal:has( .tpc-backend-form ),
.tpc-modal:has( .tpc-groups ),
.tpc-modal-two:has( .tpc-backend-form ),
.tpc-modal-two:has( .tpc-groups ),
.tpc-modal-two:has( .tpc-player-preview ),
.tpc-modal-two:has( .tpc-player-preview ),
.ct-container-full:has( .tpc-backend ):not( :has( .tpc-my-account-view ) ),
.tpc-mode-light {

    --theme-color-primary: #FFF;
    --theme-color-secondary: rgba(0,0,0,0.6);
    --theme-color-accent: #F37329;

    --theme-text-color: #000;

    --theme-btn-primary-text-color: #FFF;
    --theme-btn-primary-text-color-hover: var(--theme-color-accent);

    --theme-btn-secondary-text-color: #FFF;
    --theme-btn-secondary-text-color-hover: var(--theme-text-color);

    --theme-btn-ghost-text-color: var(--theme-color-accent);
    --theme-btn-ghost-text-color-hover: #FFF;

    --theme-link-hover-color: var(--theme-color-secondary);

    --theme-background-color: rgba(0,0,0,0.1);
    --theme-background-color-hover: rgba(0,0,0,0.3);

    --theme-label-color: #4c4c4c;

    --theme-input-bg: #F6F8FD;
    --theme-input-color: var(--theme-text-color);
    --theme-input-border: 1px solid var(--theme-input-bg);

    --theme-form-field-background-initial-color: var(--theme-input-bg);
    --theme-fields-bg-color: var(--theme-form-field-background-initial-color);
    --theme-form-selection-field-initial-color: var(--theme-form-field-background-initial-color);
    --theme-form-select-background-active-color: var(--theme-color-accent);

}

body {

    --theme-font-family: 'Roboto', Sans-Serif;
    --theme-font-weight: 400;
    --theme-font-size: 16px;
    --theme-line-height: 1.5em;

    background-color: var(--theme-color-primary);
    color: var(--theme-text-color);

    & ::selection {
        background-color: var(--theme-background-color);
        color: var(--theme-text-color);
    }

}

h1, .tpc-h1, [data-prefix] .entry-header .page-title {
    --theme-font-family: 'Albert Sans', Sans-Serif;
    --theme-font-weight: 700;
    --theme-font-size: 40px;
    --theme-line-height: 1.1em;
    color: var(--theme-heading-1-color);
    @media only screen and (min-width: 380px) {
        --theme-font-size: 46px;
    }
    @media only screen and (min-width: 1000px) {
        --theme-font-size: 100px;
        --theme-line-height: 0.9em;
    }
}
h2, .tpc-h2, .related .ct-module-title, .entry-summary .entry-title {
    --theme-font-family: 'Saira Condensed', Sans-Serif;
    --theme-font-weight: 700;
    --theme-font-size: 28px;
    --theme-line-height: 1.1em;
    color: var(--theme-heading-2-color);
    @media only screen and (min-width: 380px) {
        --theme-font-size: 32px;
    }
    @media only screen and (min-width: 1000px) {
        --theme-font-size: 48px;
        --theme-line-height: 1em;
    }
}
h3, .tpc-h3 {
    --theme-font-family: 'Saira Condensed', Sans-Serif;
    --theme-font-weight: 600;
    --theme-font-size: 22px;
    --theme-line-height: 1.5em;
    color: var(--theme-heading-3-color);
    @media only screen and (min-width: 380px) {
        --theme-font-size: 24px;
    }
    @media only screen and (min-width: 1000px) {
        --theme-font-weight: 700;
        --theme-font-size: 32px;
        --theme-line-height: 1em;
    }
}
h4, .tpc-h4 {
    --theme-font-family: 'Saira Condensed', Sans-Serif;
    --theme-font-weight: 600;
    --theme-font-size: 20px;
    --theme-line-height: 1.5em;
    color: var(--theme-heading-4-color);
    @media only screen and (min-width: 380px) {
        --theme-font-size: 22px;
    }
    @media only screen and (min-width: 1000px) {
        --theme-font-weight: 700;
        --theme-font-size: 30px;
        --theme-line-height: 1em;
    }
}
h5, .tpc-h5 {
    --theme-font-family: 'Saira Condensed', Sans-Serif;
    --theme-font-weight: 600;
    --theme-font-size: 19px;
    --theme-line-height: 1.5em;
    color: var(--theme-heading-5-color);
    @media only screen and (min-width: 380px) {
        --theme-font-size: 20px;
    }
    @media only screen and (min-width: 1000px) {
        --theme-font-weight: 700;
        --theme-font-size: 28px;
        --theme-line-height: 1em;
    }
}
h6, .tpc-h6 {
    --theme-font-family: 'Saira Condensed', Sans-Serif;
    --theme-font-weight: 600;
    --theme-font-size: 17px;
    --theme-line-height: 1.5em;
    color: var(--theme-heading-6-color);
    @media only screen and (min-width: 380px) {
        --theme-font-size: 18px;
    }
    @media only screen and (min-width: 1000px) {
        --theme-font-weight: 700;
        --theme-font-size: 26px;
        --theme-line-height: 1em;
    }
}

.tpc-text-big {
    --theme-font-family: 'Saira Condensed', Sans-Serif;
    --theme-font-weight: 500;
    --theme-font-size: 17px;
    --theme-line-height: 1.5em;
    font: var(--theme-font-weight) var(--theme-font-size)/var(--theme-line-height) var(--theme-font-family);
    @media only screen and (min-width: 380px) {
        --theme-font-size: 18px;
    }
    @media only screen and (min-width: 1000px) {
        --theme-font-weight: 700;
        --theme-font-size: 20px;
    }
}

.tpc-text-cta {
    font: var(--theme-cta-font);
}

.tpc-space-40 {
    --theme-space-height: 40px;
}
.tpc-space-60 {
    --theme-space-height: 60px;
}
.tpc-space-80 {
    --theme-space-height: 80px;
}
.tpc-space-100 {
    --theme-space-height: 100px;
}
.tpc-space-120 {
    --theme-space-height: 120px;
}
.tpc-space-40, .tpc-space-60, .tpc-space-80, .tpc-space-100, .tpc-space-120 {
    height: var(--theme-space-height) !important;
    @media only screen and (max-width: 767px) {
        height: calc(var(--theme-space-height) / 2) !important;
    }
}

.tpc-mobile-left {
    @media only screen and (max-width: 999px) {
        text-align: left;
    }
}
.wp-block-buttons.tpc-mobile-left {
    @media only screen and (max-width: 999px) {
        justify-content: start;
    }
}
.tpc-mobile-center {
    @media only screen and (max-width: 999px) {
        text-align: center;
    }
}
.wp-block-buttons.tpc-mobile-center {
    @media only screen and (max-width: 999px) {
        justify-content: center;
    }
}
.tpc-mobile-right {
    @media only screen and (max-width: 999px) {
        text-align: right;
    }
}
.wp-block-buttons.tpc-mobile-right {
    @media only screen and (max-width: 999px) {
        justify-content: right;
    }
}

.tpc-hide-on-desktop {
    @media only screen and (min-width: 768px) {
        display: none;
    }
}

.tpc-show-on-desktop {
    @media only screen and (max-width: 767px) {
        display: none;
    }
}

.tpc-hide-on-mobile {
    @media only screen and (max-width: 767px) {
        display: none;
    }
}

.tpc-show-on-mobile {
    @media only screen and (min-width: 768px) {
        display: none;
    }
}

:is( .is-layout-flow, .is-layout-constrained) :where( h1, h2, h3, h4, h5, h6, .tpc-h1, .tpc-h2, .tpc-h3, .tpc-h4, .tpc-h5, .tpc-h6, [data-prefix] .entry-header .page-title, .related .ct-module-title, .entry-summary .entry-title ) {
    margin-block-start: 0;
    margin-block-end: 20px;
    font: var(--theme-font-weight) var(--theme-font-size)/var(--theme-line-height) var(--theme-font-family);
    @media only screen and (min-width: 1000px) {
        margin-block-end: 40px;
    }
}

[data-link=type-2] {
    & .entry-content :is( p > a:not( .button ), em > a:not( .button ), strong > a:not( .button ), > ul a:not( .button ), ol a:not( .button )  ) {
        --theme-text-decoration: none;
        color: var(--theme-text-color);
        &:hover {
            color: var(--theme-color-accent);
        }
    }
    & :is( .wp-block-table a, .ct-link-styles ) {
        --theme-text-decoration: none;
        color: var(--theme-text-color);
        &:hover {
            color: var(--theme-color-accent);
        }
    }
}

.woocommerce-info,
.woocommerce-error,
.woocommerce-message,
.woocommerce-thankyou-order-received {
    --background-color: #FFF;
    --theme-text-color: #000;
    --theme-link-hover-color: #000;
    padding-left: 10px !important;
    border-radius: 0 !important;
    &:before {
        display: none;
    }
    &:focus-visible {
        border: none;
        outline: none;
    }
    &.woocommerce-error {
        --theme-text-color: #F10000;
    }
}

.woocommerce-notices-wrapper {
    &:empty {
        display: none;
    }
}

.cookie-notification {
    --theme-link-hover-color: var(--theme-text-color);
    --backgroundColor: var(--theme-color-primary);
}

.tpc-justify {
    text-align: justify;
}

.tpc-uppercase, .uppercase {
    text-transform: uppercase;
}

.tpc-margin-1 {
    & > *:not( :last-child ) {
        margin: 0 0 16px;
    }
}

.tpc-color-primary {
    color: var(--theme-color-primary);
}
.tpc-color-secondary {
    color: var(--theme-color-secondary);
}
.tpc-color-accent {
    color: var(--theme-color-accent);
}
.tpc-color-text {
    color: var(--theme-text-color);
}

.tpc-mobile-stack.wp-block-group-is-layout-grid {
    @media only screen and (max-width: 999px) {
        grid-template-columns: 1fr;
    }
}

.tpc-mobile-full-width {
    @media only screen and (max-width: 600px) {
        width: 100vw;
        margin-left: calc(((100vw - var(--theme-block-width)) / 2) * -1);
        max-width: none;
    }
}

.tpc-need-animation {
    visibility: hidden;
}
.tpc-animated.animated-slow {
    animation-duration: 2s;
}
.tpc-animated {
    animation-duration: 1.25s;
}
.tpc-animated.animated-fast {
    animation-duration: 0.75s;
}

.tpc-fade-in-down {
    animation-name: animationFadeInDown;
}


/**
 Buttons
 */

.ct-button, .ct-button-ghost, .wp-element-button, .button, .tpc-btn, .woocommerce button.button, .woocommerce-message .restore-item {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 14px;
    font: var(--theme-btn-font);
    text-transform: uppercase;
    border: 1px solid;
    border-radius: 0;
    cursor: pointer;
    @media only screen and (min-width: 1000px) {
        min-height: 60px;
        padding: 14px 42px;
    }
}

.tpc-btn-icon {
    background-color: transparent;
    padding: 0;
    color: var(--theme-color-accent);
    border: none;
    & svg {
        width: 24px;
        height: 24px;
    }
    &:hover {
        background-color: transparent;
        color: var(--theme-text-color);
    }
}

.button:not( :has( .wp-element-button ) ),
.woocommerce button.button,
.woocommerce-message .restore-item,
.ct-cookies-accept-button,
.tpc-btn-primary:not( :has( .wp-element-button ) ),
.tpc-button-primary:not( :has( .wp-element-button ) ),
.tpc-btn-primary:has( .wp-element-button ) .wp-element-button,
.tpc-button-primary:has( .wp-element-button ) .wp-element-button,
.wp-block-file__button {
    background-color: var(--theme-color-accent);
    color: var(--theme-btn-primary-text-color);
    border-color: var(--theme-color-accent);
    &:hover {
        background-color: var(--theme-color-primary);
        color: var(--theme-btn-primary-text-color-hover);
    }
}

.tpc-btn-secondary:not( :has( .wp-element-button ) ),
.tpc-button-secondary:not( :has( .wp-element-button ) ),
.tpc-btn-secondary:has( .wp-element-button ) .wp-element-button,
.tpc-button-secondary:has( .wp-element-button ) .wp-element-button {
    background-color: var(--theme-text-color);
    color: var(--theme-btn-secondary-text-color);
    border-color: var(--theme-text-color);
    &:hover {
        background-color: var(--theme-color-primary);
        color: var(--theme-btn-secondary-text-color-hover);
    }
}

.ct-cookies-decline-button,
.tpc-btn-ghost:not( :has( .wp-element-button ) ),
.tpc-ghost-btn:not( :has( .wp-element-button ) ),
.tpc-btn-ghost:has( .wp-element-button ) .wp-element-button,
.tpc-ghost-btn:has( .wp-element-button ) .wp-element-button {
    background-color: transparent;
    color: var(--theme-btn-ghost-text-color);
    border-color: var(--theme-color-accent);
    &:hover {
        background-color: var(--theme-color-accent);
        color: var(--theme-btn-ghost-text-color-hover);
    }
}

.tpc-btn-keep-big {
    min-height: 60px;
    padding: 14px 42px;
}

/**
 Close button
 */

.tpc-close-button {
    position: absolute;
    top: 0;
    right: 0;
    width: 40px;
    height: 40px;
    color: var(--theme-text-color);
    text-align: center;
    &:hover {
        color: var(--theme-link-hover-color);
        &:before {
            background-color: var(--theme-link-hover-color);
        }
        &:after {
            background-color: var(--theme-link-hover-color);
        }
    }
}


/**
 Notice
 */

.tpc-notice {
    position: fixed;
    bottom: 0;
    left: 0;
    background: transparent;
    width: 100%;
    padding: 0 25px 25px 25px;
    font-size: 14px;
    z-index: 100100;
    & .tpc-notice-wrapper {
        position: relative;
        max-width: 600px;
        margin: 0 auto;
    }
    & .tpc-notice-msg {
        display: block;
        position: relative;
        background: var(--theme-color-primary);
        padding: 40px 20px 20px 20px;
        color: var(--theme-text-color);
        box-shadow: 0 5px 30px -5px var(--theme-background-color);
        line-height: 1.4;
        border: 1px solid var(--theme-text-color);
        border-radius: 10px;
        & a {
            text-decoration: underline;
            &:hover {
                text-decoration: none;
            }
        }
        & ul {
            padding-inline-start: 15px;
            margin-top: 5px;
        }
        &.success {
            color: #43a047;
            & a {
                color: #43a047;
            }
        }
        &.error {
            color: #F10000;
            & a {
                color: #F10000;
            }
        }
    }
    &.error {
        & .tpc-notice-msg {
            color: #F10000;
            & a {
                color: #F10000;
            }
        }
    }
    & .tpc-notice-close-button {
        position: absolute;
        top: 0;
        right: 0;
        padding: 10px;
        color: var(--theme-text-color);
        font-size: 14px;
        text-align: right;
        text-decoration: underline;
        text-transform: uppercase;
        white-space: nowrap;
        &:hover {
            text-decoration: none;
        }
    }
}


/**
 Loading
 */

.tpc-loading {
    position: fixed;
    inset: 0;
    display: grid;
    align-items: center;
    background: var(--theme-background-color);
    padding: 25px;
    z-index: 100050;
    & .tpc-loading-msg {
        position: relative;
        background: var(--theme-color-primary) url("assets/images/loading.png") 50% no-repeat;
        background-size: 32px;
        width: 81px;
        height: 81px;
        margin: 0 auto;
        box-shadow: 0 5px 30px -5px var(--theme-background-color);
        border: 1px solid var(--theme-text-color);
        text-indent: -999em;
        overflow: hidden;
    }
}

body:not( .sending ) .tpc-loading {
    display: none;
}

body:has( .gform_wrapper .gform-loader ) .tpc-loading {
    display: grid;
}

body:has( .blockUI.blockOverlay ) .tpc-loading {
    display: grid;
}

.tpc-loading-icon {
    position: relative;
    background: var(--theme-color-primary) url("assets/images/loading.png") 50% no-repeat;
    background-size: 32px;
    height: 32px;
    text-indent: -999em;
    overflow: hidden;
}

/**
 Modal
 */

body :is( .tpc-modal, .tpc-modal-two ) {
    position: fixed;
    inset: 0;
    display: grid;
    align-items: center;
    max-width: 100%;
    background: var(--theme-background-color);
    padding: 0;
    z-index: 100000;
    @media only screen and (min-width: 768px) {
        padding: 25px;
    }
    &.tpc-modal-two {
        z-index: 100010;
    }
    & .tpc-modal-wrapper {
        position: relative;
        background-color: var(--theme-color-primary);
        width: 100%;
        /*max-width: 980px;*/
        margin: 0 auto;
        padding: 40px 20px;
        box-shadow: 0 5px 30px -5px var(--theme-background-color);
        border: 1px solid;
    }
    & .tpc-modal-content {
        position: relative;
        height: auto;
        max-height: 80vh;
        overflow: auto;
        & .tpc-modal-inner {
            padding-right: 20px;
            & .tpc-group-players-scroll {
                gap: 20px !important;
                @media only screen and (min-width: 1400px) {
                    grid-template-columns: 1fr 1fr 1fr 1fr !important;
                }
            }
        }
    }
    & .tpc-modal-close-button {
        position: absolute;
        top: 0;
        right: 0;
        width: calc(100% - 20px);
        padding: 10px;
        font-size: 14px;
        text-align: right;
        text-decoration: underline;
        text-transform: uppercase;
        &:hover {
            text-decoration: none;
        }
    }
}

body:not( .modal-loaded ) .tpc-modal {
    display: none;
}

body.modal-two-loaded .tpc-modal {
    display: none;
}

body:not( .modal-two-loaded ) .tpc-modal-two {
    display: none;
}

body.modal-loaded, body.modal-two-loaded {
    overflow: hidden;
    & #chat-widget-container {
        display: none !important;
    }
}


/**
 Loading block
 */

.tpc-loading-block {
    display: grid;
    align-items: center;
    justify-content: center;
    background: var(--theme-background-color) url("assets/images/loading.png") 50% no-repeat;
    background-size: 32px;
    min-height: 100px;
}


/**
 Header
 */

[data-header*="type-1"] {
    & [data-transparent], & .ct-header {
        background-color: var(--theme-color-primary);
    }
    & :is( [data-row*="middle"], & .ct-header [data-sticky*="yes"] [data-row*="middle"] ) {
        --height: 84px;
        background-color: var(--theme-color-primary);
        @media only screen and (min-width: 1000px) {
            --height: 90px;
        }
    }
    & #header {
        & [data-id="logo"] .site-logo-container {
            --height: 60px;
            --logo-max-height: 60px;
            @media only screen and (min-width: 1000px) {
                --height: 80px;
                --logo-max-height: 80px;
            }
        }
        & [data-items] > *:not( .site-branding ) {
            margin: 0 0 0 30px;
            @media only screen and (min-width: 1000px) {
                margin: 0 0 0 44px;
            }
        }
        & .menu {
            gap: 30px;
            @media only screen and (min-width: 1000px) {
                gap: 44px;
            }
            & li:hover > a {
                color: var(--theme-color-accent);
            }
        }
        & .ct-button, & .ct-cart-item {
            @media only screen and (min-width: 1000px) {
                min-height: 50px;
            }
        }
        &.ct-header-cta a {
            gap: 0;
        }
        & .ct-menu-link:not(:empty) {
            padding: 0;
        }
        & .ct-cart-item {
            & svg {
                width: 24px;
                height: 24px;
                fill: var(--theme-color-accent);
            }
            & [class*=ct-dynamic-count] {
                background-color: var(--theme-text-color);
                color: var(--theme-color-primary);
            }
            &:hover {
                & svg {
                    fill: var(--theme-text-color);
                }
                & [class*=ct-dynamic-count] {
                    background-color: var(--theme-color-accent);
                }
            }
        }
        & .ct-header-trigger {
            & .ct-icon {
                width: 30px;
                height: 30px;
                fill: var(--theme-color-accent);
            }
            &:hover {
                & .ct-icon {
                    fill: var(--theme-text-color);
                }
            }
        }
        & nav[class*=menu] {
            & .ct-menu-link {
                --menu-item-padding: 10px;
                font: var(--theme-btn-font);
                text-transform: uppercase;
                color: var(--theme-text-color);
            }
            & li:hover > .ct-menu-link {
                color: var(--theme-color-accent);
            }
        }
    }
    & [data-id="offcanvas-logo"] {
        --logo-max-height: 100px;
    }
    & #offcanvas {
        --side-panel-width: 100vw;
        --horizontal-alignment: center;
        --text-horizontal-alignment: center;
        --has-indentation: 0;
        background-color: var(--theme-color-primary);
        & .ct-panel-inner {
            background-color: var(--theme-color-primary);
        }
        & .ct-toggle-close[data-type="type-3"] {
            --toggle-button-background: transparent;
            &:hover {
                --toggle-button-background: transparent;
            }
        }
        & .ct-toggle-close {
            top: 5px;
            & .ct-icon {
                width: 30px;
                height: 30px;
                fill: var(--theme-text-color);
                &:hover {
                    fill: var(--theme-color-accent);
                }
            }
        }
        & nav[class*=menu] {
            & .ct-menu-link {
                --menu-item-padding: 15px;
                font: var(--theme-btn-font);
                font-size: 24px;
                text-transform: uppercase;
                color: var(--theme-text-color);
            }
            & li:hover > .ct-menu-link {
                color: var(--theme-color-accent);
            }
        }
        & .mobile-menu li.dropdown-active > .ct-sub-menu-parent .ct-menu-link:not( .ct-disabled-link ) {
            color: var(--theme-color-accent);
        }
    }
}


/**
 Footer
 */
[data-footer*="type-1"] {
    & .ct-footer [data-row*="middle"] {
        background-color: var(--theme-color-primary);
        & > div {
            --grid-template-columns: 1fr min-content min-content;
        }
    }
    & .ct-header-text {
        max-width: 190px;
        font-size: 12px;
        color: var(--theme-text-color);
        text-align: center;
        & img {
            display: block;
            max-width: 140px;
            margin: 0 auto;
            @media only screen and (max-width: 767px) {
                max-width: 100px;
                margin: 0;
            }
        }
        & p:last-of-type {
            @media only screen and (max-width: 767px) {
                width: 100vw;
                margin-left: calc(((100vw - var(--theme-container-width-base)) / 2) * -1) !important;
                max-width: none;
                padding-top: 50px;
                & br {
                    display: none;
                }
            }
        }
    }
    & .menu > li > .ct-menu-link {
        font-weight: 400;
        color: var(--theme-text-color);
        text-transform: none;
        justify-content: left;
        white-space: nowrap;
        &:hover {
            color: var(--theme-color-accent);
        }
    }
    & li[class*=current-menu-] > .ct-menu-link {
        color: var(--theme-text-color);
    }
}


/**
 Question
 */

.tpc-registration-question {
    & .tpc-registration-question-icon {
        color: var(--theme-text-color);
        cursor: pointer;
    }
    & img {
        width: 16px;
        object-fit: contain;
        vertical-align: bottom;
    }
    & .tpc-registration-question-data {
        position: absolute;
        top: 16px;
        left: 0;
        background: var(--theme-color-primary);
        width: min(400px,60vw);
        margin: 0;
        padding: 30px 50px 30px 30px;
        font-size: 12px;
        font-weight: 400;
        color: var(--theme-text-color);
        text-transform: none;
        border: 1px solid;
        z-index: 99;
        & :last-child {
            margin: 0;
        }
        & .tpc-registration-question-close {
            position: absolute;
            top: 0;
            right: 0;
            width: 40px;
            height: 40px;
            color: var(--theme-text-color);
            text-align: center;
            cursor: pointer;
            &:before {
                content: '';
                position: absolute;
                top: 10px;
                left: 20px;
                background-color: var(--theme-text-color);
                width: 2px;
                height: 20px;
                transform: rotate(45deg);
            }
            &:after {
                content: '';
                position: absolute;
                top: 10px;
                left: 20px;
                background-color: var(--theme-text-color);
                width: 2px;
                height: 20px;
                transform: rotate(-45deg);
            }
            &:hover {
                color: var(--theme-color-accent);
                &:before {
                    background-color: var(--theme-color-accent);
                }
                &:after {
                    background-color: var(--theme-color-accent);
                }
            }
        }
    }
    &:not( .on ) .tpc-registration-question-data {
        display: none;
    }
}


/**
 Form
 */

& fieldset {
    padding: 0;
    border: none;
}

label {
    display: block;
    position: relative;
    margin: var(--theme-label-margin);
    font: var(--theme-label-font);
    color: var(--theme-label-color);
    text-transform: var(--theme-label-text-transform);
}

select, textarea, input:is([type=url],[type=tel],[type=text],[type=time],[type=date],[type=datetime],[type=datetime-local],[type=email],[type=number],[type=search],[type=password]), fieldset .wc-stripe-elements-field, .ff-inherit-theme-style .ff-el-form-control:not([size]):not([multiple]) {
    background-color: var(--theme-input-bg);
    padding: var(--theme-input-padding);
    font: var(--theme-input-font);
    color: var(--theme-input-color);
    border: var(--theme-input-border);
    border-radius: var(--theme-input-border-radius);
    & option {
        background-color: var(--theme-input-bg);
        color: var(--theme-input-color);
    }
    &:focus {
        background-color: var(--theme-input-bg);
        border-color: var(--theme-input-bg);
        outline: none;
    }
}
[type=file] {
    max-width: 260px;
    font: var(--theme-input-font);
    color: var(--theme-input-color);
    overflow: hidden;
}
.ct-checkbox,
.comment-form input[type=checkbox],
#ship-to-different-address-checkbox,
.wc-block-checkbox-list input[type=checkbox],
.wc-block-checkbox-list .wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox],
.woocommerce-form__input[type=checkbox],
.woocommerce-form__label-for-checkbox input[type=checkbox],
.woocommerce-input-wrapper input[type=checkbox],
#wc-stripe-new-payment-method[type=checkbox],
.ppcp-credit-card-vault[type=checkbox],
.forminator-ui[data-design=none] .forminator-checkbox input[type=checkbox],
.wpforms-container:not(.wpforms-container-full) input[type=checkbox],
.ff-inherit-theme-style input[type=checkbox],
.wc_payment_method>input[type=radio], .woocommerce-shipping-methods input[type=radio],
.payment_box input[type=radio],
.mp-ticket-payments input[type=radio],
.forminator-ui[data-design=none] .forminator-radio input[type=radio],
.wpforms-container:not(.wpforms-container-full) input[type=radio],
.ff-inherit-theme-style input[type=radio] {
    display: inline-block;
    background-color: var(--theme-input-bg);
    width: 24px;
    height: 24px;
    vertical-align: text-bottom;
}


/**
 Shortcode: tpc_age_groups
 */

.tpc-shortcode-age-groups {
    position: relative;
    margin-bottom: 0;
    & .tpc-columns-wrap {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 38px;
        align-items: center;
        @media only screen and (min-width: 768px) {
            grid-template-columns: 1fr 1fr 1fr;
            max-width: 1000px;
            margin: 0 auto;
        }
    }
    & .ct-button {
        @media only screen and (max-width: 767px) {
            grid-column: span 2;
            justify-self: center;
            width: 200px;
        }
        @media only screen and (min-width: 768px) {
            grid-column-start: 2;
        }
    }
    & .tpc-age-group {
        display: grid;
        align-items: center;
        justify-content: center;
        height: 84px;
        padding: 0 20px;
        border: 1px solid var(--theme-color-accent);
        border-radius: 50px;
    }
    & .tpc-age-group-title {
        color: var(--theme-text-color);
        text-align: center;
        text-transform: capitalize;
    }
    & .ct-button {
        max-height: 60px;
    }
    & a:hover .tpc-age-group-title {
        color: var(--theme-color-accent);
    }
    & .tpc-age-group-groups {
        display: grid;
        grid-template-columns: 1fr;
        color: var(--theme-text-color);
    }
    & .tpc-age-group-availability {
        font-weight: 700;
        text-transform: uppercase;
    }
    & span {
        justify-self: end;
        color: var(--theme-color-accent);
    }
    & .open {
        color: #00FF57;
    }
    & .full {
        color: #F10000;
    }
}


/**
 Shortcode: tpc_locations
 */

.tpc-shortcode-locations {
    & .tpc-location {
        background: var(--theme-color-primary);
        border: 1px solid var(--theme-text-color);
        & a {
            color: var(--theme-color-secondary);
        }
        &:hover {
            & .tpc-location-image:after {
                background: var(--theme-color-secondary);
            }
        }
    }
    & .tpc-location-inner {
        padding: 30px 20px;
        border-top: 1px solid var(--theme-text-color);
    }
    & .tpc-location-more {
        display: flex;
        align-items: center;
        justify-content: center;
        margin-top: 40px;
        &.loading {
            background: url("assets/images/loading.png") 50% 50% no-repeat;
            background-size: 64px;
            & a {
                opacity: 0;
            }
        }
    }
    & .tpc-locations-interactive-and-list {
        display: grid;
        gap: 40px;
    }
    &.tpc-two-columns {
        @media only screen and (min-width: 1000px) {
            & .tpc-locations-interactive-and-list {
                grid-template-columns: 55% 1fr;
            }
        }
    }
    & .tpc-locations-list {
        & .tpc-location-list-empty {
            background-color: var(--theme-background-color);
            padding: 20px 15px;
            color: var(--theme-text-color);
            text-align: center;
        }
        & .tpc-location-list {
            border-top: 1px solid var(--theme-color-secondary);
            padding: 20px 0;
            &:first-child {
                border: none;
            }
            &.selected {
                border: none;
            }
            & > a {
                display: grid;
                grid-template-columns: 50px 1fr;
                gap: 0;
                align-items: start;
                color: var(--theme-text-color);
                @media only screen and (min-width: 768px) {
                    grid-template-columns: 70px 1fr 70px;
                }
            }
            & .tpc-location-list-title {
                font-size: 20px;
                color: var(--theme-color-accent);
            }
            & .tpc-location-list-buttons {
                display: grid;
                grid-template-columns: 50px 1fr 50px;
                position: relative;
                padding-top: 10px;
                @media only screen and (min-width: 768px) {
                    display: none;
                    grid-template-columns: 80px 1fr 80px;
                }
                & div {
                    display: grid;
                    grid-template-columns: 1fr 1fr;
                    gap: 20px;
                }
                & .tpc-location-list-select {
                    color: var(--theme-text-color);
                    &:hover {
                        color: var(--theme-color-accent);
                    }
                }
                & .tpc-location-list-view {
                    justify-self: end;
                    display: flex;
                    align-items: center;
                    justify-content: end;
                    gap: 4px;
                    color: var(--theme-color-accent);
                    &:hover {
                        color: var(--theme-text-color);
                    }
                    & i {
                        font-size: 12px;
                    }
                }
            }
            & .tpc-location-list-button {
                justify-self: center;
                align-self: center;
                color: var(--theme-link-hover-color);
                @media only screen and (max-width: 767px) {
                    display: none;
                }
                & i {
                    transition: 250ms all;
                    @media only screen and (min-width: 768px) {
                        transform: translateX( -10px );
                    }
                }
                &:hover i {
                    transform: translateX( 0 );
                }
                & span {
                    @media only screen and (min-width: 768px) {
                        display: none;
                    }
                }
            }
            &:hover {
                background-color: var(--theme-background-color);
                & .tpc-location-list-title {
                    color: var(--theme-text-color);
                }
                & .tpc-location-list-button {
                    color: var(--theme-text-color);
                }
            }
        }
        & .tpc-location-list-date {
            display: grid;
            align-items: center;
            margin: 0 0 10px;
            color: var(--theme-text-color);
            text-align: center;
            text-transform: uppercase;
        }
        & .tpc-location-list-date-day {
            margin: 0;
            color: var(--theme-text-color);
        }
        & .tpc-location-list-details {
            font-size: 14px;
            line-height: 1.8em;
            @media only screen and (min-width: 768px) {
                padding-right: 20px;
                line-height: 2em;
            }
        }
        & .tpc-location-list-date-hour {
            text-transform: uppercase;
        }
        & .tpc-location-list-title {
            margin: 0;
        }
    }
    &.tpc-list-two-columns {
        & .tpc-locations-list {
            display: grid;
            @media only screen and (min-width: 1000px) {
                grid-template-columns: 1fr 1fr;
                grid-column-gap: 60px;
            }
            & .tpc-location-list:nth-child(2) {
                @media only screen and (min-width: 1000px) {
                    border: none;
                }
            }
        }
        @media only screen and (min-width: 1000px) {
            & :is( .tpc-location-more, .tpc-location-list-empty ) {
                grid-column: span 2;
            }
        }
    }
    & .tpc-locations-see-all {
        display: flex;
        justify-content: center;
        padding-top: 40px;
    }
}


/**
 Shortcode: tpc_locations_list_and_map
 */

.tpc-list-and-map {
    margin-bottom: 50px;
    & .tpc-list-and-map-header {
        display: grid;
        gap: 20px;
        margin: 0 0 20px;
        & > div {
            width: 100%;
            @media only screen and (min-width: 768px) {
                max-width: 350px;
            }
        }
        &:has( .tpc-list-and-map-nav ) {
            @media only screen and (min-width: 768px) {
                grid-template-columns: auto auto;
            }
        }
    }
    & .tpc-locations-header {
    }
    & .tpc-list-and-map-nav {
        justify-self: end;
    }
    & .tpc-list-and-map-item:not( .active ) {
        display: none;
    }
    & .tpc-list-and-map-your-location {
    }
    & .tpc-locations-filters {
        display: grid;
        column-gap: 20px;
        &:has( .age-groups ) {
            grid-template-columns: 1fr 1fr;
        }
    }
    & .tpc-locations-filter-label {
        grid-column: span 2;
        color: var(--theme-link-hover-color);
    }
    & .tpc-locations-filter {
        display: grid;
        grid-template-columns: 1fr 40px;
        height: 40px;
        color: var(--theme-color-secondary);
        border: 1px solid;
        cursor: pointer;
    }
    & :is( .tpc-locations-filter-option, .tpc-locations-filter-icon ) {
        display: grid;
        align-items: center;
        height: 100%;
    }
    & .tpc-locations-filter-icon {
        justify-content: center;
        color: var(--theme-color-secondary);
        border-left: 1px solid;
    }
    & .tpc-locations-filter-value {
        display: grid;
        align-items: center;
        justify-content: center;
        height: 100%;
        padding: 0 10px;
        color: var(--theme-color-secondary);
        text-transform: uppercase;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    & .tpc-locations-filter.active {
        border-color: var(--theme-text-color);
        & .tpc-locations-filter-icon {
            color: var(--theme-text-color);
            border-color: var(--theme-text-color);
        }
        & .tpc-locations-filter-value {
            color: var(--theme-text-color);
        }
    }
    & .tpc-locations-dropdown {
        position: relative;
        height: 100%;
        & .tpc-locations-dropdown-selected {
            display: grid;
            align-items: center;
            height: 100%;
            & .tpc-locations-dropdown-value {
                &.selected {
                }
            }
        }
        & .tpc-locations-dropdown-options {
            position: absolute;
            top: 100%;
            left: -1px;
            background: var(--theme-color-primary);
            min-width: calc(100% + 42px);
            max-height: 30vh;
            margin-top: 1px;
            overflow-x: hidden;
            overflow-y: auto;
            border: 1px solid var(--theme-text-color);
            z-index: 10;
            cursor: pointer;
            & a {
                display: block;
                padding: 5px 10px;
                color: var(--theme-text-color);
                white-space: nowrap;
                &:hover {
                    color: var(--theme-link-hover-color);
                }
            }
        }
        &:not( .on ) {
            & .tpc-locations-dropdown-options {
                display: none;
            }
        }
        &:not( :has( .selected ) ) {
            & a[data-filter="all"] {
                display: none;
            }
        }
    }
    & .tpc-google-map {
        border: 1px solid var(--theme-text-color);
        & > div {
            aspect-ratio: 1;
            @media only screen and (min-width: 1024px) {
                aspect-ratio: 16 / 9;
            }
        }
    }
}

.tpc-google-pop {
    position: relative;
    z-index: 2;
    text-align: center;
    & h4 {
        margin: 0 0 10px;
        font-size: 14px;
        text-transform: uppercase;
    }
    & div {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 10px;
        & a {
            display: block;
            background: var(--theme-link-hover-color);
            padding: 10px;
            color: var(--theme-color-primary);
            text-transform: uppercase;
            border: 1px solid var(--theme-link-hover-color);
            &:hover {
                background: var(--theme-color-primary);
                color: var(--theme-link-hover-color);
            }
        }
    }
}

.gm-style-iw-chr {
    & .gm-style-iw-ch {
        padding-top: 0 !important;
    }
    & .gm-ui-hover-effect {
        width: 32px !important;
        height: 32px !important;
        & > span {
            margin: 2px !important;
        }
    }
}

#usmapwrapper {
    path.active {
        fill: var(--theme-map-active-bg) !important;
    }
    text.active {
        fill: var(--theme-map-active-text) !important;
    }
}

/**
 Shortcode: tpc_locations_menu
 */

.tpc-shortcode-locations-menu {
    & .tpc-shortcode-locations-menu-grid {
        display: grid;
        grid-template-columns: 1fr;
        grid-gap: 40px;
        @media only screen and (min-width: 768px) {
            grid-template-columns: 1fr 1fr;
        }
        @media only screen and (min-width: 1024px) {
            grid-template-columns: 1fr 1fr 1fr;
        }
        @media only screen and (min-width: 1400px) {
            grid-template-columns: 1fr 1fr 1fr 1fr;
        }
    }
    & .tpc-location a {
        display: grid;
        grid-template-columns: 1fr;
        grid-gap: 20px;
    }
    & img {
        width: 100%;
        height: auto;
        aspect-ratio: 1;
        object-fit: cover;
    }
    & .title {
        margin: 0 0 5px;
        font-size: 18px;
        font-weight: 700;
        color: var(--theme-text-color);
        line-height: 1.2;
    }
}


/**
 Shortcode: tpc_play_against
 */

.tpc-shortcode-play-against {
    --tpc-play-against-title-height: 70px;
    --tpc-play-against-image-height: 300px;
    position: relative;
    width: auto;
    max-width: none;
    margin: 0;
    &:after {
        content: "";
        display: block;
        position: absolute;
        inset: 0;
        background: url("assets/images/tpc-play-with-cover.png") 50% 50% no-repeat;
        background-size: cover;
        mix-blend-mode: screen;
        z-index: 1;
        @media only screen and (max-width: 899px) {
            top: var(--tpc-play-against-title-height);
            height: var(--tpc-play-against-image-height);
        }
    }
    & .tpc-shortcode-play-against-title {
        @media only screen and (max-width: 899px) {
            height: var(--tpc-play-against-title-height);
            @media only screen and (max-width: 899px) {
                max-width: var(--theme-container-edge-spacing);
                margin: 0 auto;
            }
        }
        @media only screen and (min-width: 900px) {
            position: absolute;
            top: 0;
            left: 0;
            padding: 40px 0 0 40%;
            z-index: 2;
        }
    }
    & .tpc-shortcode-play-against-inner {
        position: relative;
        width: 100%;
        max-width: 1440px;
        margin: 0 auto;
    }
    & .swiper {}
    & .swiper-wrapper {
        align-items: stretch;
    }
    & .swiper-slide {
        height: auto !important;
    }
    & .swiper-nav {
        position: absolute;
        top: 0;
        left: 0;
        gap: 10px;
        z-index: 10;
        @media only screen and (max-width: 899px) {
            top: var(--tpc-play-against-title-height);
            display: grid;
            grid-template-columns: 1fr 1fr;
            align-items: center;
            width: 100%;
            height: var(--tpc-play-against-image-height);
            padding: 0 calc( (100% - var(--theme-container-edge-spacing)) / 2 );
        }
        @media only screen and (min-width: 900px) {
            top: auto;
            bottom: 40px;
            display: flex;
            padding: 0 0 0 40%;
        }
    }
    & .tpc-swiper-button {
        display: grid;
        background-color: transparent;
        width: 42px;
        height: 42px;
        align-items: center;
        justify-content: center;
        cursor: pointer;
        border: 1px solid var(--theme-color-accent);
        border-radius: 50%;
        transition: all 500ms;
        & path {
            fill: var(--theme-color-accent);
        }
        &:hover {
            background-color: var(--theme-color-accent);
            & path {
                fill: var(--theme-text-color);
            }
        }
        &:focus-visible {
            outline: none;
        }
        &.tpc-swiper-button-next {
            transform: rotate(180deg);
            @media only screen and (max-width: 899px) {
                justify-self: end;
            }
        }
    }
    & .tpc-player {
        position: relative;
        display: grid;
        gap: 20px;
        @media only screen and (min-width: 900px) {
            height: 100%;
        }
    }
    & .tpc-player-image {
        aspect-ratio: 1.3;
        overflow: hidden;
        @media only screen and (max-width: 899px) {
            height: 300px;
            margin: 0 auto;
        }
        @media only screen and (min-width: 900px) {
            width: 70%;
        }
        @media only screen and (min-width: 1440px) {
            width: 42%;
        }
        & img {
            display: block;
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: top;
        }
    }
    & .tpc-player-details {
        display: grid;
        gap: 20px;
        @media only screen and (max-width: 899px) {
            display: block;
            width: 100%;
            max-width: var(--theme-container-edge-spacing);
            margin: -105px auto 0;
        }
        @media only screen and (min-width: 900px) {
            position: absolute;
            top: 0;
            left: 0;
            padding: 130px 0 0 40%;
        }
        & :last-child {
            margin-bottom: 0;
        }
        & .tpc-player-name {
            margin: 0 0 10px;
            @media only screen and (min-width: 900px) {
                margin: 0;
            }
        }
        & .tpc-player-team {
        }
        & .tpc-player-summary {
            max-width: 700px;
            padding-top: 10px;
            @media only screen and (max-width: 899px) {
                display: none;
            }
        }
    }
}


/**
 Shortcode: tpc_the_hero
 */

.tpc-shortcode-the-hero {
    position: relative;
    background-position: center;
    background-size: cover;
    margin: 0;
    padding: 165px 0 105px;
    @media only screen and (min-width: 1000px) {
        padding: 135px 0 75px;
    }
    @media only screen and (max-width: 767px) {
        text-align: center;
    }
    /*
    &:before {
        content: "";
        position: absolute;
        inset: 0;
        background-color: var(--theme-hero-overlay);
        opacity: 0.85;
    }
    */
    & > div {
        position: relative;
    }
    & .tpc-the-hero-title {
        word-wrap: normal;
    }
    & .tpc-the-hero-buttons {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 20px;
        &:has( .tpc-btn-2 ) {
            max-width: 500px;
            & a {
                padding-left: 10px;
                padding-right: 10px;
            }
        }
        @media only screen and (max-width: 767px) {
            margin: 0 auto;
        }
    }
}


/**
 Shortcode: tpc_age_groups
 */

.tpc-faqs {
    background: #000 url(assets/images/tpc-faqs-bg-mobile.png) 50% 0 no-repeat;
    background-size: 100% auto;
    padding: 65px 0 40px;
    @media only screen and (min-width: 1000px) {
        background: #100501 url(assets/images/tpc-faqs-bg.jpg) 50% 0 no-repeat;
        background-size: min(100%,1440px) auto;
        padding: 185px 0 90px;
    }
}
.tpc-registration-faqs {
    margin-bottom: 0;
    & .tpc-registration-faqs-list:not( .tpc-documents-list ) {
        display: grid;
        grid-template-columns: 1fr;
        grid-column-gap: 100px;
        grid-row-gap: 30px;
        align-items: start;
        @media only screen and (min-width: 1000px) {
            grid-template-columns: 1fr 1fr;
            max-width: 1200px;
        }
    }
    & .tpc-documents-list {
        display: grid;
        grid-template-columns: 1fr;
        grid-row-gap: 30px;
        align-items: start;
    }
    & .tpc-registration-faq-title {
        position: relative;
        margin: 0;
        padding: 0 0 0 20px;
        cursor: pointer;
        &:hover {
            color: var(--theme-color-accent);
        }
        & i {
            position: absolute;
            top: 0;
            left: 3px;
            display: grid;
            align-items: center;
            font-size: 10px;
            color: var(--theme-color-accent);
            line-height: 30px;
            aspect-ratio: 1;
        }
        & .fa-chevron-down {
            display: none;
        }
    }
    & .tpc-registration-faq-content {
        display: none;
        padding: 20px 0 0 20px;
        & :last-child {
            margin: 0;
        }
    }
    & .tpc-registration-faq.on {
        & .tpc-registration-faq-content {
            display: block;
        }
        & .fa-chevron-down {
            display: grid;
        }
        & .fa-chevron-right {
            display: none;
        }
    }
    &:not( .tpc-documents ) {
        & .tpc-registration-faq-link {
            display: flex;
            justify-content: center;
            margin-top: 40px;
        }
    }
    &.tpc-documents {
        & .tpc-registration-faq-link {
            display: flex;
            margin-top: 40px;
        }
    }
}


/**
 Page hero
 */

body:not( :has( #main .hero-section ) ):not( :has( #main .tpc-shortcode-the-hero ) ):has( .ct-sticky-container ) {
    & #main {
        padding-top: 90px;
    }
}

[data-prefix] {
    & .hero-section[data-type="type-2"] {
        & > figure > .ct-media-container:after {
            display: none;
            background-color: var(--theme-hero-overlay);
            opacity: 0.85;
        }
        & > [class*=ct-container] {
            --min-height: 390px;
            max-width: var(--theme-normal-container-max-width);
            text-align: left;
            & .page-title {
                color: var(--theme-text-color);
                text-transform: uppercase;
            }
            @media only screen and (max-width: 767px) {
                --min-height: 410px;
                text-align: center;
            }
        }
    }
    &[data-prefix="location_single"] {
        & .hero-section[data-type="type-2"] {
            & > [class*=ct-container] {
                & .page-title:has( .tpc-hero-title-prefix ) {
                    --theme-font-size: 32px;
                    --theme-line-height: 1.1em;
                    @media only screen and (min-width: 1000px) {
                        --theme-font-size: 48px;
                        --theme-line-height: 1em;
                    }
                    font: var(--theme-font-weight) var(--theme-font-size)/var(--theme-line-height) var(--theme-font-family);
                }
                & .tpc-hero-title-color {
                    color: var(--theme-color-accent);
                }
            }
        }
        & .tpc-hero-back-to-locations {
            margin-bottom: 15px;
            @media only screen and (min-width: 768px) {
                margin-bottom: 30px;
            }
        }
    }
}

/**
 Back
 */

.tpc-back-to {
    & a {
        display: flex;
        align-items: center;
        gap: 14px;
        color: var(--theme-text-color);
        &:hover {
            color: var(--theme-color-accent);
            & path {
                color: var(--theme-color-accent);
                fill: var(--theme-color-accent);
            }
        }
    }
    & svg {
        height: 15px;
        margin-bottom: 3px;
    }
    & path {
        color: var(--theme-text-color);
        fill: var(--theme-text-color);
    }
}

/**
 Registration
 */

.tpc-player-registration {
    & form {
        display: grid;
        gap: 6px;
    }
    & .tpc-player-registration-step {
        position: relative;
        background-color: var(--theme-color-primary);
        color: var(--theme-text-color);
        border-radius: 10px;
        & .tpc-player-registration-step-title {
            padding: 25px var(--theme-registration-step-padding);
            & .tpc-player-registration-max-width {
                display: grid;
                grid-template-columns: 1fr;
                grid-gap: 20px;
                align-items: center;
                position: relative;
                margin: 0 auto;
            }
            & span:not( .tpc-check-mark ) {
                padding-right: 5px;
            }
            & .tpc-check-mark {
                display: none;
                background: url("assets/images/circle-green-checkmark.svg") 50% no-repeat;
                background-size: contain;
                width: 18px;
                aspect-ratio: 1;
                opacity: 0;
            }
        }
        &:not( .disabled ) .tpc-player-registration-step-title {
            cursor: pointer;
        }
        &:not( .disabled ):not( .active ) .tpc-player-registration-step-title .tpc-check-mark {
            display: inline-block;
            opacity: 1;
        }
        &:not( .active ) .tpc-player-registration-step-content {
            display: none;
        }
        & .tpc-player-registration-title {
            display: flex;
            gap: 10px;
            margin-block-end: 0;
        }
        & .tpc-player-registration-step-content {
            padding: 0 var(--theme-registration-step-padding);
            & .tpc-player-registration-max-width {
                /*padding: 32px 0;*/
            }
            & .tpc-list-and-map {
                margin: 0;
                & .tpc-location-list-button {
                    display: none;
                }
            }
            & .tpc-location-list-buttons {
                display: grid !important;
            }
        }
        & .tpc-registration-row {
            &:first-child {
                border: none;
            }
            & label {
                display: block;
                & .tpc-registration-availability {
                    display: block;
                    font-size: 12px;
                    text-transform: none;
                    & .available {
                        color: #43a047;
                    }
                    & .not-available {
                        font-weight: 700;
                        color: #F10000;
                        & a {
                            color: #F10000;
                            text-decoration: underline;
                            &:hover {
                                text-decoration: none;
                            }
                        }
                    }
                }
            }
            &:has( .error ) {
                & label {
                    color: #F10000;
                }
            }
            & .tpc-registration-file.tpc-allow-replace input[type="file"] {
                display: none;
            }
            & .tpc-registration-file:not(.tpc-allow-replace) a {
                display: none;
            }
            & .tpc-registration-file {
                display: grid;
                align-content: center;
                height: 40px;
            }
            & .tpc-file {
                display: flex;
                gap: 20px;
                & a {
                    display: block;
                    padding: var(--theme-input-padding);
                    font: var(--theme-btn-font);
                    color: var(--theme-color-accent);
                    text-transform: uppercase;
                    line-height: 1;
                    border: 1px solid var(--theme-color-accent);
                    border-radius: var(--theme-input-border-radius);
                    &:hover {
                        background-color: var(--theme-color-accent);
                        color: var(--theme-text-color);
                    }
                }
            }
            & .tpc-replace-file {
                &:hover {
                }
            }
            &.tpc-form-row-submit {
                display: grid;
                grid-template-columns: 1fr 1fr;
                gap: 20px;
                align-items: center;
                justify-content: end;
                @media only screen and (min-width: 768px) {
                    display: flex;
                }
                & :is( .back-button, button ) {
                    width: 100%;
                    gap: 5px;
                    padding-left: 10px;
                    padding-right: 10px;
                    @media only screen and (min-width: 768px) {
                        width: 200px;
                    }
                }
                & .tpc-player-registration-back {
                    text-align: right;
                }
            }
        }
        &#select-location {
            & .tpc-shortcode-locations {
                &.tpc-two-columns {
                    @media only screen and (min-width: 1000px) {
                        & .tpc-locations-interactive-and-list {
                            grid-template-columns: 1fr 1fr;
                        }
                        & .tpc-locations-interactive {
                            order: 2;
                        }
                    }
                }
                & .tpc-locations-list {
                    @media only screen and (min-width: 1000px) {
                        max-height: 470px;
                    }
                    overflow-y: auto;
                    & .tpc-location-list {
                        border-color: var(--theme-color-accent);
                        & .tpc-location-list-title {
                        }
                        & > a {
                            color: var(--theme-text-color);
                            @media only screen and (min-width: 768px) {
                                grid-template-columns: 80px 1fr;
                            }
                            & .tpc-location-list-button {
                                display: none;
                            }
                        }
                        &:hover {
                            background-color: #FFF0E7;
                        }
                        &.selected {
                            background-color: #FFF0E7;
                            & .tpc-location-list-select {
                                visibility: hidden;
                            }
                        }
                        & .tpc-location-list-buttons {
                            padding-right: 5px;
                        }
                    }
                }
            }
            & .tpc-player-registration-location {
                display: grid;
                @media only screen and (min-width: 768px) {
                    justify-content: right;
                }
            }
            & .tpc-location-select {
                cursor: pointer;
                &:hover > a {
                    color: var(--theme-text-color);
                }
            }
            &.selected {
                & .tpc-location-select:not( .selected ) {
                    display: none;
                }
                & .tpc-location-select.selected a {
                    border-top: none;
                }
                & .tpc-location-more {
                    display: none;
                }
            }
            &:not( .selected ) {
                & .tpc-player-registration-back {
                    visibility: hidden;
                }
            }
            & .tpc-form-row-submit {
                padding: 16px 0;
                text-align: right;
                grid-column: span 2;
            }
        }
        &#player-details {
            & .tpc-player-registration-step-content {
                & .tpc-player-registration-max-width {
                }
                & .tpc-form-columns {
                    display: grid;
                    grid-gap: 0;
                    @media only screen and (min-width: 1024px) {
                        grid-template-columns: 1fr 1fr 1fr;
                    }
                }
                & .tpc-registration-row {
                }
                & .tpc-form-columns-shirt-shoe {
                    @media only screen and (min-width: 1024px) {
                        grid-template-columns: 1fr 1fr;
                    }
                }
                & .tpc-registration-row-birt-date .tpc-registration-field {
                    display: grid;
                    grid-template-columns: 1fr 1fr 1fr;
                    grid-gap: 20px;
                }
                & .tpc-form-player-details {
                    display: grid;
                    grid-column-gap: 40px;
                    grid-row-gap: 30px;
                    @media only screen and (min-width: 768px) {
                        grid-template-columns: 1fr 1fr;
                    }
                    @media only screen and (min-width: 1024px) {
                        grid-template-columns: 1fr 1fr 1fr;
                    }
                    & .tpc-form-row-submit {
                        @media only screen and (min-width: 768px) {
                            grid-column: span 2;
                        }
                        @media only screen and (min-width: 1024px) {
                            grid-column: span 3;
                        }
                    }
                }
            }
            & .tpc-form-row-submit {
                padding: 16px 0;
                text-align: right;
                @media only screen and (min-width: 1024px) {
                    grid-column: span 3;
                }
                @media only screen and (min-width: 1400px) {
                }
            }
        }
        &#shop {
            & .tpc-player-registration-step-content {
                & .tpc-player-registration-max-width {
                    float: left;
                    text-align: center;
                }
                & .tpc-player-registration-upgrade-image {
                    & img {
                        display: block;
                        max-width: 300px;
                        margin: 0 auto;
                    }
                }
                & .tpc-player-registration-skip-and-checkout {
                    display: block;
                    margin-top: 10px;
                    font: var(--theme-cta-font);
                    color: var(--theme-color-accent);
                    text-align: center;
                    text-transform: uppercase;
                    cursor: pointer;
                    &:hover {
                        color: var(--theme-text-color);
                    }
                }
                & .tpc-player-registration-upgrade-text {
                    margin-top: 10px;
                    font: var(--theme-cta-font);
                    color: var(--theme-color-secondary);
                    text-transform: uppercase;
                    & span {
                        margin-left: 5px;
                        color: var(--theme-color-accent);
                    }
                }
                & .entry-meta {
                    display: none;
                }
                & .tpc-modal-trigger {
                    display: block;
                    position: absolute;
                    top: 0;
                    left: 0;
                    width: 100%;
                    height: 100%;
                    cursor: pointer;
                }
                & .tpc-form-row-submit {
                    align-items: start;
                    padding: 16px 0;
                    text-align: right;
                    clear: both;
                }
            }
        }
        @media only screen and (max-width: 1023px) {
            & .tpc-order-10 { order: 10; }
            & .tpc-order-15 { order: 15; }
            & .tpc-order-20 { order: 20; }
            & .tpc-order-25 { order: 25; }
            & .tpc-order-30 { order: 30; }
            & .tpc-order-35 { order: 35; }
            & .tpc-order-40 { order: 40; }
            & .tpc-order-45 { order: 45; }
            & .tpc-order-50 { order: 50; }
            & .tpc-order-55 { order: 55; }
            & .tpc-order-60 { order: 60; }
            & .tpc-order-65 { order: 65; }
            & .tpc-order-70 { order: 70; }
            & .tpc-order-75 { order: 75; }
            & .tpc-order-80 { order: 80; }
            & .tpc-order-85 { order: 85; }
            & .tpc-order-90 { order: 90; }
            & .tpc-order-95 { order: 95; }
            & .tpc-order-100 { order: 100; }
            & .tpc-order-105 { order: 105; }
            & .tpc-order-110 { order: 110; }
            & .tpc-order-115 { order: 115; }
            & .tpc-order-120 { order: 120; }
            & .tpc-order-125 { order: 125; }
            & .tpc-order-last { order: 1000; }
        }
    }
}


/**
  Modal products
  */

body:has( .tpc-registration-form ) {
    .pp_overlay {
        background: transparent !important;
    }
    .pp_pic_holder.pp_woocommerce {
        & .pp_content_container {
            background: transparent !important;
            max-width: 680px;
            margin: 0 auto;
            padding: 0 !important;
            box-shadow: none !important;
            border-radius: 0 !important;
            & .pp_content {
                max-width: 100%;
                height: auto !important;
                margin: 0 auto;
            }
            & .pp_details {
                padding-top: 0 !important;
            }
            & .product-entry-wrapper {
                display: grid;
                grid-template-columns: 1fr 1fr;
                grid-gap: 40px;
            }
            & .product-entry-wrapper img {
                aspect-ratio: 1/1 !important;
            }
            & .ct-swatch-container {
                display: none;
            }
            & .product_title {
                font-size: 24px;
                font-weight: 700;
                text-transform: uppercase;
            }
            & .price {
                font-size: inherit;
                font-weight: inherit;
                color: var(--theme-color-secondary);
            }
            & .button {
                padding: 13px !important;
                font-size: 16px !important;
            }
            &:has( .added_to_cart ) {
                & .single_add_to_cart_button:after {
                    content: "Added";
                    display: grid;
                    align-items: center;
                    position: absolute;
                    top: 0;
                    bottom: 0;
                    left: 0;
                    right: 0;
                    background: var(--theme-link-hover-color);
                    color: var(--theme-color-primary);
                }
                & .single_add_to_cart_button:hover:after {
                    display: none;
                }
                & .added_to_cart {
                    display: none !important;
                }
            }
        }
        & :is( .pp_left, .pp_right ) {
            padding: 0 !important;
        }
        & .quick-view {
            background: var(--theme-color-primary) !important;
            padding: 20px !important;
            border: 1px solid var(--theme-text-color) !important;
            box-shadow: 0 5px 30px -5px var(--theme-color-secondary) !important;
        }
        & .pp_loaderIcon {
            position: fixed !important;
            inset: 0 !important;
            display: grid;
            align-items: center;
            background: transparent !important;
            width: auto !important;
            height: auto !important;
            margin: 0 !important;
            padding: 25px !important;
            z-index: 999999;
            &:before {
                content: "";
                display: block;
                position: relative !important;
                top: 0 !important;
                left: 0 !important;
                background: var(--theme-color-primary) url("assets/images/loading.png") 50% no-repeat !important;
                background-size: 32px !important;
                width: 81px;
                height: 81px;
                margin: 0 auto !important;
                box-shadow: 0 5px 30px -5px var(--theme-color-secondary);
                border: 1px solid var(--theme-text-color) !important;
                text-indent: -999em;
                overflow: hidden;
                animation: none !important;
            }
        }
    }
}


/**
 Woocommerce
 */

:is( .woo-product-name ) {
    &:has( .player-number ) {
        display: none;
    }
}

.woocommerce-page {
    & .woocommerce-cart-form,
    & .ct-woocommerce-cart-form .cart_totals,
    & .ct-customer-details,
    & .ct-order-review,
    & .woocommerce-order-details,
    & .woocommerce-thankyou-order-details,
    & .woocommerce-customer-details {
        background-color: var(--theme-color-primary);
        padding: 30px;
        color: var(--theme-text-color);
        border-radius: 10px;
        border: none;
    }
    & .ct-woocommerce-cart-form .woocommerce-cart-form table:first-child {
        margin-top: 0;
    }
    & table.shop_table thead th {
        padding-top: 0;
    }
    & table.shop_table th {
        font: var(--theme-cta-font);
        text-transform: uppercase;
    }
    & table.shop_table tr>*:last-child {
        padding-bottom: 0;
    }
    & :is( .ct-woocommerce-cart-form .cart_totals h2, .ct-woocommerce-checkout h3, .woocommerce-order-details__title, .woocommerce-column__title ) {
        --theme-font-size: 20px;
        @media only screen and (min-width: 1000px) {
            --theme-font-size: 28px;
        }
        margin: 0 0 20px;
        font-size: var(--theme-font-size);
        color: var(--theme-text-color);
        text-transform: uppercase;
        &:is( .woocommerce-order-details__title, .woocommerce-column__title ) {
            color: var(--theme-color-accent);
        }
    }
    & [class*=ct-woocommerce] .shop_table,
    & .woocommerce-table {
        --theme-table-font-size: var(--theme-font-size);
        @media(max-width: 689.98px) {
            --theme-table-padding: 0.7em
        }
        @media(min-width: 690px) {
            --theme-table-padding: 0.7em
        }
        & :is( th, td ) {
            border-width: 0;
            border-color: var(--theme-text-color);
            border-style: solid;
        }
    }
    & .form-row:has( [type="checkbox"] ) label {
        display: block;
        position: relative;
        padding: 0 0 0 32px;
        line-height: 24px;
        & input {
            position: absolute;
            top: 0;
            left: 0;
            margin: 0;
        }
    }

    /* Shop */

    & .return-to-shop {
        display: flex;
    }

    /* Thank you  */

    &.woocommerce-checkout:not( .woocommerce-order-received ) {
        & .tpc-checkout-after {
            display: none;
        }
    }
    &.woocommerce-order-received {
        & .woocommerce-order {
            display: grid;
            gap: 40px;
        }
        & .woocommerce-thankyou-order-details {
            margin: 0;
            & li {
                padding: 0 1em 1em 0;
                font: var(--theme-cta-font);
                text-transform: uppercase;
                border: none;
                &:last-child {
                    padding-bottom: 0;
                }
                & strong {
                    font: var(--theme-body-font);
                    text-transform: initial;
                }
            }
        }
        & .order-again {
            margin: 0;
            & .button {
                max-width: 200px;
            }
        }
        & .tpc-checkout-before {
            display: none;
        }
        & .woocommerce-customer-details {
            margin-top: 0;
        }
        & address {
            padding: 0;
            border: none;
        }
    }

}


/**
 Woocommerce shop
 */

.post-type-archive-product,
body.single-product,
.tpc-player-registration-step {

    & .ct-container .products,
    & .related,
    & .tpc-player-registration-step-content .products {
        & .product {
            display: flex;
            gap: 20px;
            background-color: var(--theme-background-color);
            padding: 38px 20px 30px;
            text-align: center;
            border: 1px solid var(--theme-color-accent);
            border-radius: 10px;
            cursor: pointer;
            & figure {
                margin: 0;
            }
            & img {
                width: calc(100% - 40px);
                max-width: 300px;
                height: auto;
                margin: 0 auto;
                aspect-ratio: 1 !important;
                object-fit: cover;
            }
            & .ct-media-container {
                border-radius: 0;
            }
            & .woocommerce-loop-product__title {
                margin: 0;
                padding: 0;
                font: var(--theme-cta-font);
                text-transform: uppercase;
                @media only screen and (min-width: 768px) {
                }
                @media only screen and (min-width: 1024px) {
                }
                & a {
                    color: var(--theme-text-color);
                    transition: none;
                    &:hover {
                        color: var(--theme-color-primary);
                    }
                }
            }
            & .tpc-variations-wrapper-color {
                margin: 0;
                padding: 0;
                & .tpc-variations {
                    justify-content: center;
                }
            }
            & .price {
                display: block;
                margin: 0;
                padding: 0;
                font: var(--theme-cta-font);
                color: var(--theme-text-color);
            }
            & .ct-woo-card-actions {
                display: none;
                padding: 0 20px 20px;
                & a {
                    display: block;
                    position: relative;
                    width: auto;
                    font-size: 14px;
                    @media only screen and (min-width: 1200px) {
                        font-size: 20px;
                    }
                }
                &:has( .added_to_cart ) {
                    & a:after {
                        content: "Added";
                        display: grid;
                        align-items: center;
                        position: absolute;
                        top: 0;
                        bottom: 0;
                        left: 0;
                        right: 0;
                        background: var(--theme-color-accent);
                        color: var(--theme-color-primary);
                    }
                    & a:hover:after {
                        display: none;
                    }
                    & .added_to_cart {
                        display: none !important;
                    }
                }
            }
            &:hover {
                background-color: #666;
                & .woocommerce-loop-product__title a,
                & .price {
                    color: var(--theme-color-primary);
                }
            }
        }
        &:not( :has( a.tpc-variation-item ) ) {
            & .tpc-variations-wrapper-color {
                display: none;
            }
        }
    }
    & .tpc-player-registration-step-content .products {
        & .product {
            background-color: transparent;
            padding: 0;
            border: none;
            & figure {
                margin: 0 0 12px;
            }
            & .woocommerce-loop-product__title {
                & a {
                    color: var(--theme-label-color);
                    &:hover {
                        color: var(--theme-color-accent);
                    }
                }
            }
            & .price {
                color: var(--theme-label-color);
            }
        }
    }

}

body.single-product, .quick-view.single-product {
    & .hero-section {
        & .page-title:not( .tpc-page-title ) {
            display: none;
        }
    }
    & .tpc-back-to {
        margin-bottom: 15px;
        @media only screen and (min-width: 768px) {
            margin-bottom: 30px;
        }
    }
    & .thumbs-left {
        --thumbs-width: 75px !important;
    }
    @media (min-width: 690px) {
        & .thumbs-left {
            --thumbs-width: 75px !important;
        }
    }
    & .product_title {
        text-transform: uppercase;
    }
    & .product-entry-wrapper {
        & .flexy-view {
            background-color: var(--theme-background-color);
            border: 1px solid var(--theme-color-accent);
            border-radius: 10px;
            overflow: hidden;
            aspect-ratio: 1;
        }
        &:not( :has( .flexy-items ) ) .ct-media-container {
            background-color: var(--theme-background-color);
            border: 1px solid var(--theme-color-accent);
            border-radius: 10px;
            overflow: hidden;
            aspect-ratio: 1;
        }
        & .ct-media-container {
            padding: 20px;
            & img {
                object-fit: cover;
                object-position: center;
            }
        }
        & .has-hover-effect {
            & img {
                transition: none !important;
            }
        }
        & .flexy-pills {
            & .ct-media-container {
                background-color: var(--theme-background-color);
                padding: 10px;
                border-radius: 10px;
                &:after {
                    border-width: 1px;
                    border-color: var(--theme-text-color);
                    border-radius: 10px;
                }
            }
            & .active {
                & .ct-media-container {
                    &:after {
                        border-color: var(--theme-color-accent);
                    }
                }
            }
        }
        & .ct-hidden-sm {
            visibility: hidden;
        }
        & .woocommerce-product-details__short-description {
            margin-bottom: var(--theme-content-spacing);
        }
        & .reset_variations {
            display: none !important;
        }
        & .ajaxerrors {
            display: none !important;
        }
        & table.variations {
            margin: 0;
        }
        & .single_variation_wrap .woocommerce-variation {
            display: none !important;
            height: 0 !important;
        }
        & .ct-cart-actions {
            display: grid;
            gap: 20px;
            margin-top: 8px;
            & .quantity[data-type=type-2] {
                width: 100px;
                height: 32px;
                & [type="number"] {
                    background: transparent;
                    padding-inline: 32px;
                    border-color: transparent;
                }
                & .ct-increase,
                & .ct-decrease {
                    top: 0;
                    left: 0;
                    background: transparent;
                    width: auto;
                    height: 100%;
                    aspect-ratio: 1;
                    border: 1px solid var(--theme-product-variation-border-color);
                    border-radius: 0;
                    &.ct-increase {
                        left: auto;
                        right: 0;
                    }
                    &:hover {
                        background: transparent;
                        color: var(--theme-product-variation-active-border-color) !important;
                        border-color: var(--theme-product-variation-active-border-color);
                    }
                }
            }
            & .button {
                max-width: 200px;
                opacity: 1 !important;
                cursor: pointer !important;
            }
            & .added_to_cart {
                display: none !important;
            }
        }
    }
    & .related {
        & .ct-module-title {
            margin-bottom: 30px;
            color: var(--theme-text-color);
            text-transform: uppercase;
        }
    }
    &.quick-view.single-product {
        & .woocommerce-product-gallery__image {
            display: none;
        }
    }
}


/**
  Checkout
  */

.woocommerce-checkout {
    & .tpc-checkout-top-actions {
        display: grid;
        grid-template-columns: auto 1fr;
        gap: 20px;
        margin-bottom: var(--theme-content-spacing);
        & :is( .tpc-player-registration-back, .woocommerce-form-login-toggle ) {
            & a {
                text-transform: uppercase;
            }
        }
        & .woocommerce-form-login-toggle {
            display: flex;
            align-items: center;
            justify-content: end;
            gap: 10px;
            & .woocommerce-info {
                background: none !important;
                min-height: auto;
                padding: 0;
                text-align: right;
                gap: 10px;
                &:before {
                    display: none;
                }
                &:after {
                    display: none;
                }
                & a {
                    color: var(--theme-link-hover-color);
                    &:hover {
                        color: var(--theme-text-color);
                    }
                }
            }
        }
    }
    & .woocommerce-checkout-review-order-table {
        & td {
            vertical-align: top;
        }
    }
    & .blockOverlay {
        visibility: hidden;
    }
    & .woocommerce-invalid label {
        color: #F10000;
    }
    & .checkout-inline-error-message {
        display: none !important;
    }
    & .woocommerce-terms-and-conditions-wrapper:has( .woocommerce-privacy-policy-text:empty) {
        margin: 0;
    }
    & #payment ul.payment_methods>li.wc_payment_method>label:before {
        margin-top: -3px;
    }

    /* Modal login */

    & .tpc-modal-login {
        display: block;
        position: fixed;
        inset: 0;
        width: auto;
        & .tpc-modal-login-wrapper {
            display: grid;
            width: 100%;
            height: 100vh;
            align-items: center;
            justify-content: center;
        }
        & .pp_content_container {
            background-color: var(--theme-color-primary);
            max-width: 680px;
            height: auto;
            margin: 0 auto;
            padding: 40px 20px 20px;
            color: var(--theme-text-color);
            box-shadow: none;
            border: 1px solid var(--theme-color-primary);
            border-radius: 0;
        }
        & .pp_content_scroll {
            max-height: 80vh;
            overflow: auto;
        }
        & .woocommerce-form-login {
            display: block !important;
        }
        & .form-row:not( :has( .woocommerce-button ) ) {
            float: none;
            width: 100%;
            margin-top: 20px;
            padding: 0;
            border: none;
        }
        & .woocommerce-form-login__rememberme {
            margin: 20px 0;
        }
        & button {
            width: 100%;
        }
        & .lost_password {
            padding-top: 20px;
            font-size: 14px;
            text-transform: uppercase;
        }
        & a {
            color: var(--theme-text-color);
            &:hover {
                color: var(--theme-link-hover-color);
                text-decoration: none;
            }
        }
        & .ct-toggle-close {
            position: absolute;
            top: 0;
            right: 0;
            width: auto;
            margin: 20px;
            & .ct-icon {
                width: 30px;
                height: 30px;
                fill: var(--theme-text-color);
            }
            &:hover {
                & .ct-icon {
                    fill: var(--theme-color-accent);
                }
            }
        }
    }
}

body.woocommerce-checkout:not( .tpc-modal-login-opened ) {
    & .tpc-modal-login {
        display: none;
    }
}

.shop_table {
    & td {
        vertical-align: top;
    }
}


/* Order Details */

.tpc-registration-details {
    display: grid;
    grid-gap: 0;
    @media only screen and (min-width: 768px) {
        grid-template-columns: auto 1fr;
        grid-gap: 20px;
    }
    & .tpc-registration-details-title {
        margin-top: 20px;
        font: var(--theme-title-font) !important;
        color: var(--theme-color-accent);
        text-transform: uppercase;
        & span {
            padding-left: 5px;
            color: var(--theme-text-color);
        }
    }
    & .tpc-registration-details-table {
        display: grid;
        grid-column-gap: 10px;
        & .tpc-registration-details-label {
            font: var(--theme-cta-font);
        }
        & span {
            display: block;
            &:not( .tpc-registration-details-label ):not( :last-child ) {
                padding-bottom: 5px;
            }
            &.tpc-registration-details-address {
                display: flex;
                gap: 5px;
            }
        }
    }
    & .tpc-registration-details-qr {
        padding-top: 3px;
        order: -1;
        @media only screen and (max-width: 767px) {
            margin-bottom: 1em;
        }
        & img {
            width: 100%;
            max-width: 250px;
            border: 1px solid var(--theme-text-color);
        }
    }
}

.woocommerce-order-details {
    & td {
        vertical-align: top;
    }
    & .woo-data-grid {
        display: grid;
        grid-gap: 20px;
        @media only screen and (min-width: 768px) {
            grid-template-columns: auto 1fr;
            padding-top: 10px;
        }
        & ul {
        }
        & .tpc-registration-qr {
            order: -1;
            & img {
                width: 100%;
                max-width: 250px;
                border: 1px solid var(--theme-text-color);
            }
        }
    }
}


/* My Account */

.woocommerce-MyAccount-content {
    display: grid;
    gap: 40px;
}


/**
 GravityForm
 */

[data-form-theme="gravity-theme"].gform_wrapper.gravity-theme {
    max-width: var(--wp--style--global--content-size) !important;
    & .gform_required_legend {
        display: none !important;
    }
    &:is( .tpc-form-max-width, .tpc-form-max-width_wrapper ) {
        max-width: 600px !important;
        margin: 0 !important;
    }
    & .gfield_label {
        display: block;
        margin: var(--theme-label-margin);
        font: var(--theme-label-font);
        color: var(--theme-label-color);
        text-transform: var(--theme-label-text-transform);
    }
    & .ginput_container {
        margin-top: 0;
    }
    & .no-ginput_complex .ginput_container_address {
        display: block !important;
        & span {
            padding: 0 !important;
        }
    }
    & :is( input[type=color], input[type=date], input[type=datetime-local], input[type=datetime],  input[type=email], input[type=month], input[type=number],  input[type=password], input[type=search], input[type=tel], input[type=text], input[type=time], input[type=url], input[type=week], select, textarea ) {
        background-color: var(--theme-input-bg);
        padding: var(--theme-input-padding);
        font: var(--theme-input-font);
        color: var(--theme-input-color);
        border: var(--theme-input-border);
        border-radius: var(--theme-input-border-radius);
        &:focus {
            background-color: var(--theme-input-bg);
            border-color: var(--theme-input-bg);
            outline: none;
        }
    }
    & .gfield_error {
        & :is( input[type=color], input[type=date], input[type=datetime-local], input[type=datetime],  input[type=email], input[type=month], input[type=number],  input[type=password], input[type=search], input[type=tel], input[type=text], input[type=time], input[type=url], input[type=week], select, textarea ) {
            border: var(--theme-input-border-error);
        }
    }
    & .gform_footer :is( input.button, input[type=submit] ) {
        max-width: 200px;
    }
    & .gform-loader {
        display: none !important;
    }
    & .gfield_validation_message {
        display: none !important;
    }
    & .gform_validation_errors {
        display: none !important;
    }
}


/**
 Signature
 */

.tpc-terms {
    background: var(--theme-fields-bg-color);
    max-height: 400px;
    margin: 40px 0 0;
    padding: 20px;
    border: 1px solid;
    line-height: 1.3;
    overflow: auto;
}
.tpc-signature {
    margin: 40px 0 0;
    & .tpc-signature-item {
        margin-bottom: var(--theme-content-spacing);
    }
    & .tpc-signature-item-description {
        display: block;
        margin-bottom: var(--theme-content-spacing);
        font-style: normal;
    }
    & .tpc-signature-canvas {
        & canvas {
            display: block;
            background: #f0f0f0;
            width: 100%;
            height: 200px;
        }
    }
    &:not( :has( [name="adult"]:checked ) ) {
        .tpc-signature-item.participant {
            /*display: none;*/
        }
    }
    &:has( [name="adult"]:checked ) {
        .tpc-signature-item.parent {
            display: none;
        }
    }
    & a {
        cursor: pointer;
    }
}


/**
 Woocommerce products options
 */

.tpc-variations-wrapper {
    margin-bottom: 15px;
    & select {
        display: none !important;
    }
    & .tpc-variations {
        display: flex;
        flex-wrap: wrap;
        gap: 16px;
    }
    & .tpc-variation-item {
        display: block;
        position: relative;
        min-width: 32px;
        height: 32px;
        padding: 2px 5px;
        font-size: 14px;
        text-align: center;
        line-height: 26px;
        cursor: pointer;
        color: var(--theme-color-secondary) !important;
        border: 1px solid var(--theme-color-secondary);
        overflow: hidden;
        &.tpc-variation-item-selected:not(.disabled),
        &.tpc-variation-item:not(.disabled):hover {
            border-color: var(--theme-color-accent);
        }
        &.tpc-variation-item-selected:not(.disabled) {
            position: relative;
            box-shadow: 0 0 5px var(--theme-color-accent) !important;
        }
        &.tpc-variation-item-selected:not(.disabled):before {
            display: block;
            position: absolute;
            top: 0;
            left: 0;
            background: var(--theme-color-primary);
            width: 100%;
            height: 100%;
            opacity: 0.2;
            content: "";
        }
        &.tpc-variation-item-selected:not(.disabled):after {
            display: inline-block;
            position: absolute;
            top: 50%;
            left: 50%;
            transform: rotate(45deg);
            height: 14px;
            width: 8px;
            margin: -8px 0 0 -4px;
            border-bottom: 4px solid #78b13f;
            border-right: 4px solid #78b13f;
            content: "";
        }
        &.disabled {
            opacity: 0.5;
        }
        &:not(.disabled):hover {
            color: var(--theme-color-accent) !important;
        }
    }
    &.tpc-variations-wrapper-color {
        & .tpc-variation-item-text {
            display: none;
        }
        & .tpc-variation-item {
            /*border: none;*/
        }
    }
    & .tpc-variations .tpc-size-chart-btn {
        display: inline-block;
        margin-left: 20px;
        font-size: 14px;
        line-height: 40px;
        @media only screen and (max-width: 480px) {
            display: block;
            margin-left: 0;
        }

    }
}


/**
 Side cart
 */

.xoo-wsc-markup {
    & .xoo-wsc-img-col {
        align-items: start;
    }
    & :is( .xoo-wsc-pattern-card, .xoo-wsc-img-col img, .xoo-wsc-img-col, .xoo-wsc-sm-back-cont, input[type="number"].xoo-wsc-qty ) {
        border-radius: 0;
    }
    & .xoo-wsc-qty-box {
        max-width: 86px;
    }
    & span.xoo-wsc-chng {
        width: 28px;
    }
}


/**
 Locations nav
 */

.tpc-frontend-nav {
    position: fixed;
    bottom: 0;
    left: 0;
    z-index: 99999;
    & * {
        font-size: 12px;
        font-weight: 100;
        color: var(--theme-color-primary);
        letter-spacing: 1px;
    }
    & > a {
        display: flex;
        align-items: center;
        justify-content: center;
        background-color: var(--theme-color-accent);
        width: 60px;
        height: 60px;
        margin: 0 0 16px 8px;
        border-radius: 50%;
        & .dashicons {
            width: auto;
            height: auto;
            font-size: 36px;
            color: var(--theme-color-primary);
        }
        &:hover {
            color: var(--theme-text-color);
            & .dashicons {
                color: var(--theme-text-color);
            }
        }
    }
    & ul {
        display: none;
        background-color: var(--theme-color-accent);
        max-height: 70vh;
        margin: 0 0 10px;
        padding: 5px 10px 10px;
        list-style: none;
        overflow-x: hidden;
        overflow-y: auto;
        border: 3px solid var(--theme-color-accent);
    }
    &.on {
        & ul {
            display: block;
        }
        & li {
            display: block;
            padding-top: 5px;
        }
        & a:hover {
            color: var(--theme-text-color);
        }
        & hr {
            background-color: var(--theme-color-primary);
        }
    }
}


/**
 Tab navigation
 */

.tpc-tab-nav {
    position: relative;
    height: 50px;
    margin: 0 0 40px;
    border-bottom: 1px solid var(--theme-color-secondary);
    & ul {
        margin: 0;
        padding: 0;
        list-style: none;
    }
    & li {
        display: flex;
        width: auto;
        & a {
            display: grid;
            align-items: center;
            justify-content: center;
            width: 160px;
            height: 50px;
            font: var(--theme-cta-font);
            color: var(--theme-color-secondary);
            text-transform: uppercase;
            border-bottom: 2px solid transparent;
            &:hover, &.on {
                color: var(--theme-text-color);
                border-color: var(--theme-color-accent);
            }
        }
    }
    & .tpc-tab-nav-btn {
        position: absolute;
        top: 0;
        display: flex;
        align-items: center;
        height: 46px;
        opacity: 0;
        z-index: 9;
        &.tpc-tab-nav-btn-prev {
            left: 0;
        }
        &.tpc-tab-nav-btn-next {
            right: 0;
        }
        &:not( .swiper-button-disabled ) {
            opacity: 0.7;
        }
    }
}

/**
 Single location
 */

body.single-location {
    & .tpc-tab {
        display: grid;
        grid-row-gap: 40px;
        @media only screen and (min-width: 768px) {
            grid-row-gap: 80px;
        }
        &:not( .on ) {
            display: none;
        }
    }
    & .tpc-tab-details {
        & .tpc-tab-columns {
            display: grid;
            grid-column-gap: 100px;
            grid-row-gap: 40px;
            @media only screen and (min-width: 768px) {
                grid-template-columns: 1fr 40%;
            }
        }
    }
    & .tpc-tab-details-map {
        & iframe {
            width: 100%;
            aspect-ratio: 1;
            border: 0;
        }
    }
    & .tpc-dates-list {
        margin-top: 45px;
        & .tpc-dates-list-item {
            display: grid;
            grid-template-columns: 60px 1fr;
            &:has( .tpc-dates-list-button ) {
                @media only screen and (min-width: 768px) {
                    grid-template-columns: 60px 1fr 170px;
                }
                & .tpc-dates-list-button {
                    @media only screen and (max-width: 767px) {
                        grid-column-start: 2;
                    }
                }
            }
            gap: 10px;
            align-items: center;
            padding: 20px 0;
            color: var(--theme-text-color);
            border-top: 1px solid var(--theme-color-accent);
            &:first-child {
                padding-top: 0;
                border: none;
            }
            & .tpc-btn {
                max-width: 170px;
                padding-left: 10px;
                padding-right: 10px;
            }
        }
        & .tpc-dates-list-date {
            display: grid;
            align-items: center;
            margin: 0 0 10px;
            color: var(--theme-text-color);
            text-align: center;
            text-transform: uppercase;
        }
        & .tpc-dates-list-date-day {
            margin: 0;
            color: var(--theme-text-color);
        }
    }
    & .tpc-tab-details-groups {
        & .tpc-shortcode-age-groups {
            grid-template-columns: 1fr 1fr;
            gap: 28px;
            & .tpc-columns-wrap {
                display: flex;
                flex-wrap: wrap;
                @media only screen and (max-width: 767px) {
                    gap: 20px;
                }
                @media only screen and (min-width: 768px) {
                    max-width: none;
                }
            }
            & .tpc-age-group {
                width: 160px;
                height: auto;
                padding: 30px 5px;
                @media only screen and (min-width: 768px) {
                    width: 170px;
                }
            }
            & .tpc-age-group-title {
                font: var(--theme-cta-font);
            }
            & .tpc-age-group-inner {
                display: grid;
                gap: 14px;
                justify-items: center;
            }
            & .tpc-age-group-groups {
                display: grid;
                gap: 8px;
                width: 110px;
            }
            & .tpc-age-group-group {
                display: grid;
                grid-template-columns: 1fr 1fr;
                gap: 4px;
            }
            & strong {
                font-weight: 400;
            }
        }
    }
    & .tpc-tab-details-register {
        justify-items: center;
    }
    & .tpc-tab-schedule {
        & .tpc-dates-list {
            & .tpc-dates-list-item {
                grid-template-columns: 120px 1fr;
                @media only screen and (max-width: 767px) {
                    grid-template-columns: 60px 1fr;
                }
                align-items: start;
            }
            & .tpc-dates-list-date {
                justify-items: start;
            }
            & .tpc-dates-list-details {
                display: grid;
                grid-template-columns: auto 1fr;
                gap: 20px;
            }
            & .tpc-dates-list-buttons {
                display: flex;
                flex-wrap: wrap;
                gap: 25px;
                padding-top: 60px;
                & .tpc-btn {
                    width: 170px;
                    padding-left: 10px;
                    padding-right: 10px;
                }
            }
        }
    }
    & .tpc-leaderboard {
        & .tpc-leaderboard-age-group-header-location {
            margin-top: 0;
        }
    }
    & .tpc-tab-bracket {
        overflow-x: auto;
    }
}


/**
 Field actions
 */

.tpc-registration-field-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    justify-content: end;
    & :is( a, span ) {
        font: var(--theme-cta-font);
        color: var(--theme-text-color);
        text-transform: uppercase;
        cursor: pointer;
        &:hover {
            color: var(--theme-color-accent);
        }
    }
    & a.disabled {
        color: #888;
        cursor: not-allowed;
    }
    & .tpc-advancing {
        color: #43a047;
        cursor: not-allowed;
    }
}
.age-groups, .users {
    & .tpc-registration-field-actions {
        & :is( a, span ) {
            font-size: 20px;
        }
    }
}


/**
 Backend
 */

.ct-container-full:has( .tpc-backend ):not( :has( .tpc-my-account-view ) ) {
    background-color: #fff;
    color: var(--theme-text-color);
}

body :is(.tpc-modal, .tpc-modal-two) {
    & .tpc-modal-wrapper:has( .tpc-advance ) {
        max-width: 680px;
    }
}

.tpc-backend {

    &:not( :has( .tpc-my-account-view ) ) {
        & :where( h1, h2, h3, h4, h5, h6 ) {
            margin: 0 0 20px;
        }
        & :where( h1, h2, h3, h4 ) {
            /*color: var(--theme-text-color);*/
            text-transform: uppercase;
        }
    }

    /* Welcome */

    & .tpc-backend-welcome {
        margin: 0 0 40px;
    }

    /* Locations */

    & .tpc-backend-locations {
        display: grid;
        grid-template-columns: 1fr;
        grid-gap: 10px;
        & .tpc-game-time {
            position: relative;
            background: var(--theme-background-color);
            padding: 10px;
            border: 1px solid var(--theme-text-color);
            &:hover {
                background: var(--theme-background-color-hover);
            }
            &.selected {
                background: var(--theme-background-color-hover);
            }
            &.draft {
                font-style: italic;
                opacity: 0.7;
            }
            &.closed {
                background: var(--theme-background-color-hover);
                opacity: 0.5;
                & a {
                    /* cursor: default; */
                }
            }
            &.new {
                border-style: dashed;
            }
            & a {
                display: flex;
                flex-wrap: wrap;
                grid-gap: 20px;
                color: var(--theme-text-color);
            }
            & h4 {
                width: 100%;
                margin: 0;
                color: var(--theme-text-color);
            }
            & h5 {
                margin: 0 0 5px;
                font-size: 20px;
                text-transform: uppercase;
            }
            & ul {
                margin: 0;
                padding: 0;
                font-size: 14px;
                list-style: none;
                line-height: 1.4;
            }
            & .tpc-game-time-title {
                & span {
                    display: block;
                    font-size: 12px;
                    line-height: 1;
                }
            }
            & .tpc-game-time-scored {
                font-weight: 700;
                text-transform: uppercase;
            }
        }
    }

    /* Player search */

    & .tpc-player-search {
        display: flex;
        & .tpc-player-search-wrapper {
            position: relative;
            width: 100%;
            max-width: 320px;
        }
        & .tpc-player-search-results {
            display: grid;
            gap: 5px;
            position: absolute;
            top: 100%;
            left: 0;
            background-color: var(--theme-color-secondary);
            width: 100%;
            max-height: 250px;
            padding-top: 5px;
            border-radius: 10px;
            overflow: hidden;
            overflow-y: auto;
            z-index: 40;
            &:not( :has( .tpc-player-search-result ) ) {
                display: none;
            }
            &.tpc-loading-block {
                display: block;
                min-height: 60px;
            }
        }
        & .tpc-player-search-result {
            display: block;
            background-color: var(--theme-color-primary);
            padding: 10px;
            color: var(--theme-text-color);
            font-size: 13px;
            cursor: pointer;
            border-radius: 10px;
            &:nth-child(even) {
                background-color: #ddd;
            }
            &:hover {
                background-color: #bbb;
            }
        }
        & a.tpc-player-search-result {
            display: flex;
            flex-wrap: wrap;
            column-gap: 20px;
            padding: 5px 10px;
            &:hover {
            }
            & .tpc-player-search-name {
                flex: 0 0 100%;
                font-size: 16px;
                color: var(--theme-link-hover-color);
            }
        }
    }

    /* Generic form */

    & .tpc-location-form {
        & .tpc-registration-row {
            position: relative;
            margin: 0 0 20px;
        }
        & .tpc-registration-row-birt-date {
            margin: 0 0 20px;
            & .tpc-registration-field {
                display: grid;
                grid-gap: 20px;
            }
            &:last-child {
                margin: 0;
            }
        }
        &.edit-enabled {
            & .tpc-registration-row-birt-date {
                & .tpc-registration-field {
                    grid-template-columns: 1fr 1fr 1fr;
                }
            }
        }
        & .tpc-location-form-column {
            display: grid;
            grid-template-columns: 1fr;
            grid-gap: 20px;
            & .tpc-registration-row:not( .tpc-registration-row-birt-date ) {
                margin: 0;
            }
        }
        & .tpc-registration-row-submit {
            display: flex;
            justify-items: start;
            gap: 20px;
            margin: 0;
            & button {
                display: block;
                margin: 0;
            }
        }
        & .tox-tinymce {
            background-color: var(--theme-input-bg);
            height: 400px !important;
            border: none;
            border-radius: 0;
            & :is( .tox-editor-header, .tox-toolbar-overlord, .tox-toolbar__primary, .tox-statusbar ) {
                background-color: var(--theme-input-bg) !important;
            }
            & .tox-edit-area {
                background: #fff;
            }
            & .tox-sidebar-wrap {
                padding: 5px;
            }
            & .tox-statusbar {
                display: none !important;
            }
        }
        & .tpc-registration-field:has( [disabled] ) {
            position: relative;
            & .tox-tinymce {
                background-color: var(--theme-input-bg) !important;
                opacity: 1 !important;
                & :is( .tox-editor-header, .tox-toolbar-overlord, .tox-toolbar__primary, .tox-edit-area__iframe, .tox-statusbar ) {
                    background-color: var(--theme-input-bg) !important;
                    opacity: 1 !important;
                }
                & :is( .tox-editor-header, .tox-toolbar-overlord, .tox-toolbar__primary, .tox-statusbar ) {
                    opacity: 0.5 !important;
                }
            }
            &:after {
                content: "";
                display: block;
                position: absolute;
                inset: 0;
                background: transparent;
                z-index: 10;
            }
        }
        & .tpc-registration-image {
            position: relative;
            padding: 0;
            overflow: hidden;
            & .tpc-registration-image-wrapper {
                position: relative;
            }
            & .tpc-registration-image-preview {
                background: var(--theme-input-bg) 50% 50% no-repeat;
                background-size: cover;
                width: 100%;
                margin: 0;
                border-radius: 0;
                aspect-ratio: 1;
            }
            & .tpc-registration-image-label {
                display: grid;
                position: absolute;
                top: 0;
                left: 0;
                background: none;
                width: 100%;
                height: 100%;
                padding: 0;
                justify-content: center;
                align-content: center;
                z-index: 1;
                & label {
                    display: inline-block;
                    background-color: var(--theme-color-primary);
                    padding: 5px 10px;
                    color: var(--theme-text-color);
                    text-transform: uppercase;
                    border-radius: 5px;
                    cursor: pointer;
                    &:hover {
                        background-color: var(--theme-color-accent);
                    }
                }
            }
            & input {
                position: absolute;
                top: 0;
                left: 0;
                width: 1px;
                height: 1px;
                opacity: 0;
            }
        }
    }

    /* Location settings */

    & .tpc-location-settings-form {
        & .tpc-registration-row-title:not(:first-child) {
            margin-top: 100px;
        }
        & .tpc-registration-row.settings {
            display: grid;
            grid-gap: 20px;
            @media only screen and (min-width: 1024px) {
                grid-template-columns: 1fr 400px;
            }
        }
        & .location-photo {
            & .tpc-registration-image {
                position: sticky;
                top: 140px;
                aspect-ratio: 3 / 4;
                & .tpc-registration-image-preview {
                    width: auto;
                    height: 100%;
                    aspect-ratio: auto;
                }
                & .tpc-registration-image-label {
                    & label {
                    }
                }
            }
        }
        & .tpc-registration-row.add-city {
            &:not( .on ) {
                display: none;
            }
            & .tpc-registration-field {
                display: grid;
                grid-template-columns: 1fr auto;
                grid-gap: 20px;
                justify-content: center;
                align-items: center;
                & a {
                    display: block;
                }
            }
        }
        & .tpc-registration-row-submit {
            display: grid;
            grid-template-columns: 1fr 1fr;
            & > div {
                width: 100%;
            }
            & :is( .button, button ) {
                width: 100%;
            }
        }
        &:not( .edit-enabled ) {
            & .tpc-registration-image-label {
                display: none !important;
            }
            & button[type="submit"] {
                display: none;
            }
        }
        &.edit-enabled {
            & .tpc-settings-enable-edit {
                display: none;
            }
        }
        &:not( .have-next-round ) {
            & .number-to-advance {
                display: none;
            }
        }
    }

    /* Reset */

    & .tpc-game-time-list-reset {
        display: flex;
        justify-content: center;
        padding-top: 50px;
    }

    /* Game time page */

    & .tpc-game-time-list-form {
        &:has( [href="#generate"] ) {
            & .tpc-game-time-list-reset {
                display: none;
            }
        }
    }

}


/**
 Light mode
 */

.tpc-mode-light {
    background-color: var(--theme-color-primary);
    color: var(--theme-text-color);
}





































































































/**
 Global
 */

:root {



    --theme-product-thumb-bg-color: rgba(255,255,255,0.1);
    --theme-product-thumb-border-color: rgba(255,255,255,0.5);
    --theme-product-thumb-active-border-color: rgba(255,255,255,1);
    --theme-product-variation-text-color: var(--theme-text-color);
    --theme-product-variation-border-color: var(--theme-text-color);
    --theme-product-variation-active-text-color: var(--theme-color-accent);
    --theme-product-variation-active-border-color: var(--theme-color-accent);

}


div.quantity .ct-increase:hover, div.quantity .ct-decrease:hover {
    color: var(--theme-color-accent) !important;
}

.button:has( span ) {
    min-height: 61px;
    padding-top: 0;
    padding-bottom: 0;
    line-height: 1.1;
}

.ct-button-ghost-invert {
    --default: var(--theme-color-primary);
    --accent: var(--theme-color-accent);
    background: var( --default ) !important;
    color: var( --accent ) !important;
    border-color: var( --accent ) !important;
    &:hover {
        background: var( --accent ) !important;
        color: var( --default ) !important;
        border-color: var( --accent ) !important;
    }
}

.tpc-ghost-btn-secondary.ct-button-ghost:not( .tpc-button-icon ) {
    background: var(--theme-text-color) !important;
    color: var(--theme-color-primary) !important;
    border-color: var(--theme-text-color) !important;
    &:hover {
        background: var(--theme-color-primary) !important;
        color: var(--theme-text-color) !important;
        border-color: var(--theme-text-color) !important;
    }
}

.tpc-button-icon {
    padding-right: 0;
    border: none !important;
    &:hover {
        background: transparent !important;
        color: var(--theme-text-color) !important;
    }
}

.wc-forward:not( .checkout-button ) {
    background: var(--theme-text-color) !important;
    color: var(--theme-color-primary) !important;
    border-color: var(--theme-text-color) !important;
    border-width: 1px;
    &:hover {
        background: var(--theme-color-primary) !important;
        color: var(--theme-text-color) !important;
        border-color: var(--theme-text-color) !important;
    }
}

.reset_variations {
    background: none !important;
    color: var(--theme-color-accent) !important;
    text-decoration: none !important;
    &:hover {
        background: none !important;
        color: var(--theme-text-color) !important;
        text-decoration: none !important;
    }
}



/**
 My Account > Login
 */

body :is( .woocommerce-form-login, .woocommerce-ResetPassword ) {
    max-width: 590px;
    margin: 0 !important;
    & p {
        margin: 0;
    }
    & .woocommerce-form-row {
        float: none;
        width: 100%;
        margin: 20px 0 0;
        &:first-child {
            margin-top: 0
        }
        &:before {
            display: none;
        }
    }
    & br {
        display: none;
    }
    & button:not( .show-password-input ) {
        max-width: 300px;
    }
    & .woocommerce-form-login__rememberme {
        display: block;
        margin: 20px 0;
    }
    & .woocommerce-LostPassword {
        margin: 20px 0 0;
        text-transform: uppercase;
    }
}



/**
 Backend > Courts & Age Groups, Game Times, Staff, FAQ's
 */

:is( .tpc-backend, .tpc-modal-global ) {
    & :is( a, strong ) {
        font-weight: 700;
    }
    & :is( input[type="text"], input[type="email"], input[type="number"], select, .tpc-registration-field-readonly ) {
        width: 100%;
        height: var(--has-height, var(--theme-form-field-height, 40px));
        padding: var(--has-classic-forms, var(--theme-form-field-padding, 0 15px));
        font-family: var(--theme-form-font-family);
        font-size: 20px;
        font-weight: 700;
        color: var(--theme-form-text-initial-color, var(--theme-text-color));
        border: 0;
        box-sizing: border-box;
        line-height: var(--theme-form-line-height);
        letter-spacing: var(--theme-form-letter-spacing);
        &[disabled] {
            background: none;
            padding-left: 0;
            opacity: 1 !important;
        }
        &.tpc-registration-field-readonly {
            background: none;
            padding-left: 0;
            line-height: var(--has-height, var(--theme-form-field-height, 40px));
        }
    }
    & .tpc-registration-row:has( > .tpc-registration-field > .tpc-registration-field-readonly ) {
        &:has( [disabled="disabled"] ) {
            & [disabled="disabled"] {
                display: none;
            }
            &:has( .tox-tinymce ) {
                & .tox-tinymce {
                    display: none;
                }
            }
        }
        &:not( :has( [disabled="disabled"] ) ) {
            & .tpc-registration-field-readonly {
                display: none;
            }
        }
    }
    & .tpc-registration-row:has( > .tpc-registration-field > .tpc-registration-field-readonly ) {
        &:has( .tox-tinymce ) {
            & .tpc-registration-field-readonly {
                height: auto;
                line-height: 1.4;
            }
        }
    }
}

.tpc-backend {

    & :is( .courts, .age-groups, .game-times, .users, .registrants, .faqs, .assigment ) {

        display: grid;
        grid-template-columns: 1fr;
        grid-gap: 0;
        margin: 0;

        & :is( .court, .age-group, .game-time ) {
            margin: 0;
            padding: 10px 0 20px;
        }

        & .tpc-registration-row {
            display: flex;
            justify-content: space-between;
            align-items: end;
            padding: 25px 0;
            & .full-width {
                flex: 1 1 100%;
            }
            &.age-group {
                gap: 20px;
                padding-top: 14px;
                padding-bottom: 9px;
                & .tpc-registration-field-actions {
                    flex-wrap: nowrap;
                }
                &[data-age_group="new"] .tpc-registration-field-actions {
                    justify-content: start;
                }
            }
            & .tpc-registration-field-actions {
                line-height: 40px;
                & :is( a, span ) {
                    line-height: 42px;
                }
            }
            @media only screen and (max-width: 1023px) {

                display: grid;
                grid-template-columns: 1fr;
                grid-gap: 20px;

                &.age-group {
                    padding-bottom: 14px;
                }

            }

        }

        & .tpc-registration-field {
            flex-grow: 1;
        }

        & a:has( span ) {

            white-space: nowrap;

            & i {
                text-decoration: none;
            }

            & span span {
                margin-left: 18px;
                text-decoration: underline;
            }

            &:hover span span {
                text-decoration: none;
            }

        }

    }

    & .tpc-fields-checkbox-field {

        position: relative;

        & * {
            cursor: pointer;
        }

        & label {
            display: block;
            position: relative;
            padding: 0 40px 0 0;
            font-weight: 400;
            cursor: pointer;
            z-index: 1;
        }

        &:before {
            content: "";
            display: block;
            position: absolute;
            top: 0;
            right: 0;
            width: 24px;
            height: 24px;
            background: var(--theme-input-bg);
            border-radius: 5px;
        }

        &:after {
            content: "";
            display: block;
            position: absolute;
            top: 0;
            right: 0;
            width: 18px;
            height: 18px;
            margin: 3px;
            background: var(--theme-input-bg);
            border-radius: 5px;
        }

        &:has( :checked ):after {
            background: var(--theme-color-accent);
        }

        & input {
            position: absolute !important;
            top: 0;
            left: 0;
            visibility: hidden;
        }

    }

    & .tpc-fields-checkbox-group {

        grid-gap: 10px;

        & .tpc-fields-checkbox-group-label {
            position: relative;
            margin-bottom: 10px;
        }

        & [href="#toggle-all"] {
        }

        & .tpc-fields-checkbox-group-options {
            display: flex;
            gap: 20px;
            flex-wrap: wrap;
        }

    }

    & .tpc-registration-field-actions {
        & a {
            display: inline-block;
        }
    }

    & :is( .courts, .age-groups ) {

        & .age-group-fields {

            display: flex;
            flex-wrap: wrap;
            gap: 20px;
            width: 100%;

            @media only screen and (max-width: 767px) {

                & .tpc-registration-field:last-child {
                }

            }

            & .group-name {
            }

            & .age-field {
                flex: 0 0 100px;
            }

            & .gender {
                flex: 0 0 120px;
            }

            & .age-required-field {
                flex: 0 0 120px;
            }

            & .age-totals {

                float: right;
                max-width: 120px;

                & strong {
                    display: block;
                    font-size: 20px;
                    line-height: 40px;
                }

            }

        }

        & .age-group:not( .age-required ) {

            & .age-field {
                display: none;
            }

        }

        & .tpc-registration-field-actions {
            display: flex;
            gap: 20px;
            @media only screen and (min-width: 1024px) {
                text-align: right;
            }
            @media only screen and (max-width: 1023px) {
                & :empty {
                    display: none;
                }
            }
        }

        & :is( div[data-court="new"], div[data-age_group="new"] ) {

            &:not( .on ) {

                display: grid;
                grid-template-columns: 0 1fr;
                padding-top: 32px;
                padding-bottom: 32px;

                & :is( .tpc-registration-field, .age-group-fields, .save, a[href="#cancel"] ) {
                    display: none;
                }

            }

            &.on {

                & :is( .add ) {
                    display: none;
                }

            }

        }

    }

    & .game-times {

        & .game-time {
            flex-wrap: wrap;
        }

        & .game-time-fields {
            display: grid;
            grid-template-columns: 1fr 1fr;
            grid-gap: 20px;
        }

        & .game-time-courts {

            flex: 1 1 100%;
            margin-top: 20px;

            & .tpc-registration-row {

                margin-bottom: 0;

                & label {
                    font-weight: 700;
                }

            }

            & .tpc-registration-field-checkbox {
                display: inline-block;
                margin: 20px 20px 0 0;
            }

        }

        & .tpc-registration-field-actions {
            padding-top: 20px;
            text-align: left;
        }

    }

    & fieldset.game-times {
        margin: 30px 0 0;
    }

    & .users {

        .user {

            margin: 0;
            flex-wrap: wrap;

            & .tpc-user-wrapper {

                display: grid;
                grid-gap: 20px;
                flex: 1 1 100%;

                @media only screen and (min-width: 768px) {
                    grid-template-columns: 200px 1fr;
                }

            }

            & .username {
                opacity: 0.5;
            }

            &.existing {
                & .new-user {
                    display: none;
                }
            }

            &:not( .existing ) {
                & .existing-users {
                    display: none;
                }
            }

        }

        & .tpc-registration-field-actions {
            padding-top: 20px;
            text-align: left;
        }

    }

    & .tpc-faq-wrapper {

        & .tpc-faq-display {
            margin: 0;
        }

        & .tpc-faq-edit-form {

            padding: 25px 40px;
            border: 1px solid var(--theme-text-color);

            & .full-width {
                display: grid;
                gap: 20px;
            }

            & button {
                padding-left: 50px;
                padding-right: 50px;
            }

        }

        & .tpc-faq:last-child {

            & .tpc-faq-edit-form {
                display: block !important;
            }

        }

    }

    & .tpc-leaderboard-age-group-header-location {
        display: none !important;
    }

}


.tpc-registration-summary {
    display: grid;
    gap: 32px;
    grid-template-columns: 1fr;
    margin-bottom: 32px;
    @media only screen and (min-width: 768px) {
        grid-template-columns: 1fr 1fr;
    }
    @media only screen and (min-width: 1024px) {
        grid-template-columns: 1fr 1fr 1fr;
    }
    & h5 {
        font-size: 24px;
        margin-bottom: 0;
    }
    & p {
        margin: 0;
    }
}


:is( .tpc-registration-game-times, .tpc-group ) {
    & .tpc-title-toggle {
        display: grid;
        grid-template-columns: 1fr 40px;
        grid-gap: 20px;
        margin: 0;
        font-size: 30px;
        color: var(--theme-text-color);
        text-transform: uppercase;
        cursor: pointer;
        & a {
            color: var(--theme-text-color);
        }
        & span {
            display: grid;
            align-items: center;
            font-size: 15px;
            text-align: right;
            color: var(--theme-color-accent);
        }
    }
    &:not( .on ) {
        & .tpc-title-toggle .fa-chevron-down {
            display: none;
        }
    }
    &.on {
        & .tpc-title-toggle .fa-chevron-up {
            display: none;
        }
    }
}

.tpc-registration-game-times {
    margin-bottom: 40px;
    &:not( .on ) {
        & .tpc-form-game-times {
            display: none;
        }
    }
    & .tpc-form-game-times {
        display: grid;
        grid-template-columns: 1fr;
        grid-gap: 20px;
        padding: 20px 0 0;
        & .tpc-game-time {
            padding: 0;
            & .tpc-subtitle-toggle {
                display: grid;
                grid-template-columns: 1fr 40px;
                grid-gap: 20px;
                margin: 0;
                font-size: 22px;
                color: var(--theme-text-color);
                text-transform: uppercase;
                cursor: pointer;
                & a {
                    color: var(--theme-text-color);
                }
                & span {
                    display: grid;
                    align-items: center;
                    font-size: 15px;
                    text-align: right;
                    color: var(--theme-text-color);
                }
            }
            &:not(.on) {
                & .tpc-game-time-courts-wrapper {
                    display: none;
                }
                & .tpc-subtitle-toggle .fa-chevron-down {
                    display: none;
                }
            }
            &.on {
                & .tpc-subtitle-toggle .fa-chevron-up {
                    display: none;
                }
            }
        }
    }
    & .tpc-registration-row-submit {
        margin: 20px 0 0;
        & button {
            padding-left: 50px;
            padding-right: 50px;
        }
    }
}


.tpc-game-time-courts {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    grid-gap: 20px;
    margin-top: 20px;
    & .tpc-court {
        background: var(--theme-color-primary);
        padding: 10px;
        border: 1px solid var(--theme-text-color);
        & h4 {
            margin: 0 0 20px;
            font: var(--theme-title-font);
            color: var(--theme-text-color);
        }
        & .tpc-court-players {
            display: grid;
            grid-template-columns: 1fr;
            grid-gap: 10px;
        }
        & strong {
            display: block;
            margin: 20px 0 10px;
            font-size: var(--theme-body-size);
            font-weight: 700;
            color: var(--theme-text-color);
        }
    }
}


/**
 Backend > Groups
 */

.tpc-groups {
    & .tpc-group {
        &:not(.on) {
            & .tpc-group-players {
                display: none;
            }
        }
    }
    & .tpc-group-player-summary {
        display: flex;
        gap: 10px;
        flex-wrap: wrap;
        background: var(--theme-input-bg);
        margin: 0 0 20px;
        padding: 10px;
        & label {
            font: var(--theme-title-font);
        }
    }
    & .tpc-group-players {
        & .tpc-group-players-scroll {
            display: grid;
            grid-template-columns: 1fr;
            gap: 40px;
            position: relative;
            @media only screen and (min-width: 768px) {
                grid-template-columns: 1fr 1fr;
            }

            @media only screen and (min-width: 1024px) {
                grid-template-columns: 1fr 1fr 1fr;
            }
            &:has( .tpc-empty-block ) {
                grid-template-columns: 1fr !important;
            }
            &:has( .tpc-player-game-order ) {
                gap: 20px;
            }
        }
        & .tpc-group-player {
            display: grid;
            grid-template-columns: 100px 1fr;
            column-gap: 20px;
            row-gap: 10px;
            position: relative;
            padding: 15px 10px;
            border: 1px solid;
            &:has( .tpc-player-game-order ) {
                row-gap: 10px;
            }
            & .tpc-registration-field-actions {
                min-height: var(--theme-body-size);
            }
            &:has( .tpc-advancing ) {
                row-gap: 10px;
            }
            &:has( .tpc-advance-modal ) {
                row-gap: 10px;
            }
            & .tpc-player-game-order {
                position: absolute;
                bottom: 0;
                left: 10px;
                background: #F10000;
                width: 30px;
                font: var(--theme-cta-font);
                font-weight: 700;
                color: #000;
                text-align: center;
            }
            &:has( .checked-in ) .tpc-player-game-order {
                background: #43a047;
            }
            & .tpc-group-player-field-data {
                line-height: 1.4;
            }
            & .tpc-group-player-field-name {
                margin-bottom: 5px;
                font: var(--theme-title-font);
                color: var(--theme-color-accent);
                text-transform: uppercase;
            }
            & .tpc-group-player-field-image {
                position: relative;
                top: 3px;
                width: 100px;
                object-fit: cover;
                aspect-ratio: 1;
            }
            &:not( .tpc-group-player-header ) .tpc-group-player-name {
                color: var(--theme-color-accent);
                cursor: pointer;
            }
            & .tpc-group-player-field-grid {
                display: grid;
                grid-template-columns: 80px 1fr;
                font: var(--theme-cta-font);
                font-weight: 400;
                & strong {

                }
            }
            & .tpc-registration-field-actions {
                grid-column: span 2;
                line-height: 1;
            }
            & .tpc-group-player-field-checked_in {
                span {
                    color: #F10000;
                }
                &.checked-in {
                    span {
                        color: #43a047;
                    }
                }
            }
            & .tpc-player-link {
                position: absolute;
                inset: 0;
                text-indent: -999em;
                overflow: hidden;
                /*display: none;*/
            }
            & .tpc-advance-modal {
                position: relative;
                z-index: 9;
            }
        }
        & .tpc-group-player-empty {
            grid-template-columns: 1fr;
            & .tpc-group-player-field-player_number {
                display: none;
            }
        }
        & .tpc-group-player-header {
            display: none;
        }
        & .tpc-registration-question {
            display: none;
        }
    }
}


body :is( .tpc-modal, .tpc-modal-two ) {

    text-transform: none;

    & fieldset {

        display: grid;
        grid-template-columns: 1fr;
        gap: 10px;
        column-gap: 20px;
        padding: 0;
        border: none;

        @media only screen and (min-width: 768px) {
            grid-template-columns: 1fr 1fr;
        }

        @media only screen and (min-width: 1024px) {
            grid-template-columns: 1fr 1fr 1fr;
        }

    }

    &:has( .tpc-registration-check-in-step ) {

        & fieldset {
            grid-template-columns: 1fr;
            gap: 0;
        }

    }

    & .tpc-registration-row {

        display: block;
        margin: 0;
        padding: 0;

        &.full-width {

            @media only screen and (min-width: 768px) {
                grid-column: span 2;
            }

            @media only screen and (min-width: 1024px) {
                grid-column: span 3;
            }

        }

    }

    & .tpc-registration-row-signature {

        & img {
            background: var(--theme-input-bg);
            max-width: none !important;
            max-height: 150px !important;
            object-fit: contain !important;
        }

        & ul {
            margin: 0;
            padding: 5px 0 0;
            font-size: 12px;
            list-style: none;
        }

    }

    & .tpc-registration-file.tpc-allow-replace input[type="file"] {
        display: none;
    }

    & .tpc-registration-file:not(.tpc-allow-replace) a {
        display: none;
    }

    & .tpc-registration-file {
        display: grid;
        align-content: center;
        height: 40px;
    }

    & .tpc-replace-file {

        display: inline-block;
        padding: 0 0.6em;
        color: var(--theme-color-accent);
        line-height: 38px;

        &:hover {
            color: var( --theme-color-text_hover );
        }

    }

    & .tpc-registration-field-image {
        display: block;
        & img {
            display: block;
            width: 100%;
            max-width: 150px;
            aspect-ratio: 1;
            object-fit: cover;
        }
    }

    & :is( .tpc-registration-row-full, .tpc-registration-row-submit ) {
        @media only screen and (min-width: 768px) {
            grid-column: span 2;
        }
        @media only screen and (min-width: 1024px) {
            grid-column: span 3;
        }
    }

    & .tpc-registration-row-submit {
        padding-top: 10px;
    }

    & .tpc-registration-question {
        display: none;
    }

    & .tpc-player-games {

        & .tpc-player-games-list {

            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 20px;
            padding: 10px 20px;
            border: 1px solid var(--theme-text-color);

            @media only screen and (min-width: 1024px) {
                grid-template-columns: 1fr 1fr 1fr 1fr;
            }

        }

        & .tpc-player-games-position {
            padding-top: 20px;
        }

    }

}


/* Scorekeeper */

.tpc-backend-scorekeeper, .tpc-game-time-wrapper {

    & .tpc-backend-scorekeeper-columns {

        display: grid;
        grid-template-columns: 1fr auto;
        gap: 20px;

        & .tpc-backend-scorekeeper-logout {
            text-transform: uppercase;
        }

    }

    & .tpc-backend-game-form {
        padding-bottom: 30px;
    }

    & .tpc-location-summary {
        padding: 20px 0 30px;
        & :last-child {
            margin: 0;
        }
    }

    & .tpc-backend-game-list {
        margin: 30px 0;
    }

    & .tpc-registration-row-submit {
        margin: 0;
        padding: 0 !important;
    }

    & .tpc-location-title {

        display: grid;
        grid-template-columns: 1fr auto;
        grid-gap: 40px;
        margin-bottom: 20px;

        & h3 {

            margin: 0;
            line-height: 1;

            & span {
                display: block;
                font-size: 20px;
            }

        }

    }

}

.tpc-scorekeeper-form {

    & .tpc-player-dropdown-scorekeeper {

        display: grid;
        align-items: center;
        gap: 10px;

        @media only screen and (min-width: 768px) {
            grid-template-columns: 1fr 1fr 150px;
        }

        & div:first-child {
            font-weight: 700;
        }

    }

    & label {
        margin: 0;
    }

    & .tpc-registration-row-photo {
        display: block !important;
        margin: 20px 0 !important;
        padding: 20px !important;
        font-size: 15px;
        border: 1px solid;
    }

    & input[type="file"] {
        line-height: 38px;
    }

    & .tpc-registration-field.tpc-allow-replace input[type="file"] {
        display: none;
    }

    & .tpc-registration-field:not( .tpc-allow-replace ) .tpc-file {
        display: none;
    }

    & .tpc-file {

        display: flex;
        gap: 20px;
        line-height: 38px;

        & a {

            display: block;
            color: var(--theme-color-accent);

            &:hover {
                color: var( --theme-color-text_hover );
            }

        }

    }

}

.tpc-out-score-wrapper {
    display: grid;
    gap: 10px;
    & .tpc-out-score-body {
        display: grid;
        gap: 10px;
    }
    & .tpc-out-score-col {
        position: relative;
    }
    & .tpc-out-score-row {
        display: grid;
        gap: 10px;;
        position: relative;
        grid-template-columns: 105px 1fr 100px 100px;
        @media only screen and (max-width: 580px) {
            grid-template-columns: 96px 1fr 60px 60px;
        }
        &.scored {
            &:nth-child(odd){
                background-color: rgba(0, 0, 0, 0.1);
            }
        }
        &:not( .scored ) {
            & .tpc-out-score-points {
                & input {
                    background-color: rgba(0, 0, 0, 0.1) !important;
                }
            }
        }
        &.no-show {
            position: relative;
            opacity: 0.5;
            &:after {
                content: " ";
                display: block;
                position: absolute;
                inset: 0;
            }
        }
    }
    & label {
        position: absolute;
        top: 5px;
        left: 10px;
        font-size: 12px;
        text-transform: initial;
    }
    & :is( input, select ) {
        height: 50px !important;
        padding-top: 20px !important;
        font-weight: 700;
        color: #fff;
        &::placeholder {
            opacity: 1;
        }
        &[readonly] {
            background-color: transparent !important;
        }
    }
    & select {
        background-position: right 5px top 50%, 0 0;
        padding-inline-end: 20px;
    }
}


/* Check in */

.registered-players {
    margin: 0;
    text-align: right;
}

.group-name span,
.registered-players span {
    font-size: var(--theme-body-size);
    font-weight: 500;
}

.tpc-registration-row .icons {
    text-align: center;
}

label {
    &:not( :has( [type="checkbox"] ) ):not( :has( [type="radio"] ) ) {
        cursor: default;
    }
}


/* My Account */

.ct-account-welcome {
    margin-top: -5px !important;
    padding-top: 0 !important;
}

.woocommerce-MyAccount-navigation {
    & ul li a br {
        display: none;
    }
}

.tpc-check-in-data-wrapper {
    margin-bottom: 40px;
}

.woocommerce-MyAccount-content {
    display: grid;
    gap: 40px;
}


/**
 Breadcrumb
 */

.tpc-breadcrumb {

    margin-top: 0 !important;
    font-size: 24px;
    font-weight: 500;
    color: #fff;
    text-transform: uppercase;
    line-height: 1.4em;
    letter-spacing: 2.5px;

    & a {
        color: #fff !important;
        &:hover {
            color: var(--theme-color-accent) !important;
        }
    }

    & i {
        margin: 0 10px;
        font-size: 20px;
    }

}

.ct-variation-swatches {

    & .ct-swatch-container {

        & .ct-swatch {
            border-width: 1px !important;
            border-radius: 0 !important;
        }

    }

    &[data-swatches-type="button"] > *.active .ct-swatch {
        --swatch-button-background-color: var(--theme-text-color);
        --swatch-button-border-color: var(--theme-text-color);
    }

}

.tpc-page-clean {

    & .gravity-theme {

        max-width: 300px !important;
        margin: 0 auto;

        & .ginput_container_email input {
            width: 100% !important;
            height: 61px;
            font-size: 18px !important;
        }

        & .gform_footer :is( input.button, input[type=submit] ) {
            width: 100% !important;
            max-width: none !important;
            margin: 0 !important;
        }

        & .gform_confirmation_message {
            text-align: center;
        }

    }


}


/* Leaderboard */

.tpc-leaderboard {

    display: grid;
    gap: 50px;

    & .tpc-leaderboard-header {
        & * {
            line-height: 1.2;
        }
    }

    & .tpc-leaderboard-age-groups {
        display: grid;
        gap: 50px;
    }

    & .tpc-leaderboard-age-group-header {
        display: grid;
        gap: 10px;
        text-transform: uppercase;
    }

    & .tpc-leaderboard-age-group-header-location {
        margin: 30px 0 0;
    }

    & .grid-table {

        display: grid;
        grid-template-columns: 120px 1fr 200px 100px;

        &:has( .grid-header.advanced ) {
            grid-template-columns: 120px 1fr 200px 100px 150px;
        }

        & .empty {
            grid-column: span 4;
            text-align: center;
        }

        &:has( .grid-header.advanced ) {
            & .empty {
                grid-column: span 5;
            }
        }

        & .advanced {
            text-align: center;
        }

        &.grid-table-2 {

            grid-template-columns: 1fr 1fr;

            & .grid-item {

                display: grid;
                align-items: center;

                &.animate {
                    display: none;
                    & ~ div {
                        display: none;
                    }
                }

            }

            & .empty {
                grid-column: span 1;
                text-align: center;
            }

        }

        &.grid-table-3 {

            grid-template-columns: 1fr 1fr 1fr;

            & .grid-item {

                display: grid;
                align-items: center;

                &.animate {
                    display: none;
                    & ~ div {
                        display: none;
                    }
                    & ~ div ~ div {
                        display: none;
                    }
                }

            }

            & .empty {
                grid-column: span 3;
                text-align: center;
            }

        }

        &.grid-table-4 {

            grid-template-columns: 1fr 1fr 1fr 1fr;

            & .grid-item {

                display: grid;
                align-items: center;

                &.animate {
                    display: none;
                    & ~ div {
                        display: none;
                    }
                    & ~ div ~ div {
                        display: none;
                    }
                    & ~ div ~ div ~ div {
                        display: none;
                    }
                }

            }

            & .empty {
                grid-column: span 4;
                text-align: center;
            }

        }

        &.grid-table-5 {

            grid-template-columns: 1fr 1fr 1fr 1fr 1fr;

            & .grid-item {

                display: grid;
                align-items: center;

                &.animate {
                    display: none;
                    & ~ div {
                        display: none;
                    }
                    & ~ div ~ div {
                        display: none;
                    }
                    & ~ div ~ div ~ div {
                        display: none;
                    }
                    & ~ div ~ div ~ div ~ div {
                        display: none;
                    }
                }

            }

            & .empty {
                grid-column: span 5;
                text-align: center;
            }

        }

        & > div {
            padding: 10px 15px;
        }

        & .grid-header {
            font-weight: 700;
            text-transform: uppercase;
            border-bottom: 1px solid var(--theme-text-color);
        }

        & .odd {
            background: var(--theme-background-color);
        }

        & .hide {
            display: none;
        }

    }

    @media only screen and (max-width: 767px) {

        & .grid-table {

            grid-template-columns: repeat(2, 1fr) !important;

            & > div {
                padding: 0 0 0 10px;
                font-size: 14px;
            }

            & :is( .grid-item ) {
                padding: 10px;
            }

            & :is( .grid-item:nth-child(4n+1), .grid-item:nth-child(4n+2) ) {
                padding-bottom: 0;
            }

            &:has( .grid-header.advanced ) {

                grid-template-columns: repeat(3, 1fr) !important;

                & :is( .grid-item ) {
                    padding: 10px;
                }

                & :is( .grid-item:nth-child(5n+1), .grid-item:nth-child(5n+2) ) {
                    padding-bottom: 0;
                }

                & :is( .grid-item:nth-child(5n+2) ) {
                    grid-column: span 2;
                }

            }

            & .grid-item::before {
                display: block;
                font-weight: 700;
                content: attr(data-label);
            }

            & .grid-item:nth-child(4n+1)::before { content: "PLACE"; }
            & .grid-item:nth-child(4n+2)::before { content: "NAME"; }
            & .grid-item:nth-child(4n+3)::before { content: "PLAYER #"; }
            & .grid-item:nth-child(4n+4)::before { content: "PTS"; }

            &:has( .grid-header.advanced ) {
                & .grid-item:nth-child(5n+1)::before { content: "PLACE"; }
                & .grid-item:nth-child(5n+2)::before { content: "NAME"; }
                & .grid-item:nth-child(5n+3)::before { content: "PLAYER #"; }
                & .grid-item:nth-child(5n+4)::before { content: "PTS"; }
                & .grid-item:nth-child(5n+5)::before { content: "ADVANCING"; }
            }

        }

        & .grid-header {
            display: none;
        }

    }

    &.tpc-game-order-view {

        @media only screen and (max-width: 767px) {

            & .grid-table {

                & .grid-item {
                    padding: 10px;
                    text-align: center;
                }

                &.grid-table-2 {

                    grid-template-columns: 1fr 1fr !important;

                    & .grid-item:nth-child(2n+1) {
                        text-align: left;
                    }

                    & .grid-item:nth-child(2n+1)::before { content: "POSITION" !important; }
                    & .grid-item:nth-child(2n+2)::before { content: "COURT A" !important; }

                }

                &.grid-table-3 {

                    grid-template-columns: 1fr 1fr 1fr !important;

                    & .grid-item:nth-child(3n+1) {
                        text-align: left;
                    }

                    & .grid-item:nth-child(3n+1)::before { content: "POSITION" !important; }
                    & .grid-item:nth-child(3n+2)::before { content: "COURT A" !important; }
                    & .grid-item:nth-child(3n+3)::before { content: "COURT B" !important; }

                }

                &.grid-table-4 {

                    grid-template-columns: 1fr 1fr 1fr !important;

                    & .grid-item:nth-child(4n+1) {
                        grid-column: span 3;
                        padding-bottom: 0;
                        text-align: center;
                    }

                    & .grid-item:nth-child(4n+1)::before { content: "POSITION" !important; }
                    & .grid-item:nth-child(4n+2)::before { content: "COURT A" !important; }
                    & .grid-item:nth-child(4n+3)::before { content: "COURT C" !important; }
                    & .grid-item:nth-child(4n+4)::before { content: "COURT D" !important; }

                }

                &.grid-table-5 {

                    grid-template-columns: 1fr 1fr 1fr 1fr !important;

                    & .grid-item:nth-child(5n+1) {
                        grid-column: span 4;
                        padding-bottom: 0;
                        text-align: center;
                    }

                    & .grid-item:nth-child(5n+1)::before { content: "POSITION" !important; }
                    & .grid-item:nth-child(5n+2)::before { content: "COURT A" !important; }
                    & .grid-item:nth-child(5n+3)::before { content: "COURT B" !important; }
                    & .grid-item:nth-child(5n+4)::before { content: "COURT C" !important; }
                    & .grid-item:nth-child(5n+5)::before { content: "COURT D" !important; }

                }

            }

            & .grid-header {
                display: none;
            }

        }

    }

    & .tpc-leaderboard-age-group-see-all {
        padding-top: 50px;
        text-align: center;
    }

    & .tpc-leaderboard-age-group {

        &:not( .load-more-need ) {

            & .tpc-leaderboard-age-group-see-all {
                /*display: none;*/
            }

        }

        &:has( .empty ) {
            & .tpc-leaderboard-age-group-see-all {
                display: none;
            }
        }

        &:has( .is-last ) {
            & .tpc-leaderboard-age-group-see-all {
                display: none;
            }
        }

        &:has( .tpc-loading-block ) {
            & .tpc-leaderboard-age-group-see-all {
                display: none;
            }
        }

        &.on {

            & .grid-table {
                & .hide {
                    display: block;
                }
            }

            & .tpc-leaderboard-age-group-see-all {
                display: none;
            }

        }

    }

    & .slot {
        position: relative;
        background-color: var(--theme-color-primary);
        width: 40px;
        height: 40px;
        border: 1px solid #ccc;
        border-radius: 10px;
        overflow: hidden;
        @media only screen and (max-width: 767px) {
            margin: 0 auto;
        }
        & .numbers {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            transition: top 0.1s linear;
        }
        & .number {
            height: 40px;
            display: flex;
            justify-content: center;
            align-items: center;
            font: var(--theme-cta-font);
            font-weight: 700;
        }
    }

    & .tpc-leaderboard-age-group-msg {
        color: var(--theme-color-accent);
        text-align: center;
    }

    & .tpc-leaderboard-age-group-champions {
        grid-template-columns: 1fr !important;
        text-align: center;
    }

    @media only screen and (max-width: 767px) {

        & .tpc-leaderboard-age-group-champions {
            & .grid-item:nth-child(4n+2)::before { content: "CHAMPIONS"; }
        }

    }

    & .tpc-score-group {
        display: flex;
        flex-wrap: wrap;
        gap: 20px;
    }

    & .grid-item:not( .on ) {
        & .tpc-score-group {
            display: none;
        }
    }

    & .tpc-score-group-trigger {
        cursor: pointer;
    }

    /*
    & .is-final-round {

        grid-template-columns: 200px 1fr 200px;

        & .total-score {
            display: none;
        }

    }
    */

}


/**
 Woocommerce filters
 */

/*
.ct-container {
    & .products {
        & .product {
            display: none !important;
            &.on {
                display: block !important;
            }
        }
    }
}
*/
.tpc-filters-container {

    position: relative;
    margin-bottom: 40px;

    & :is( .tpc-filters-toggle-button ) {
        display: block;
        width: 40px;
        font-weight: 300;
        color: var( --theme-text-color );
        line-height: 28px;
    }

    & .tpc-filters-clear-button-wrapper {

        display: grid;
        align-items: end;

        &:not( .on ) {
            display: none;
        }

        & .tpc-filters-clear-button {

            font-size: 14px;
            font-weight: 300;
            color: var( --theme-text-color );
            line-height: 30px;

            &:hover {
                color: var(--theme-color-accent);
            }

        }

    }

    & .tpc-filters-grid {
        &:not( .on ) {
            display: none;
        }
    }

    & .tpc-filters-grid-filters {
        display: flex;
        flex-wrap: wrap;
        row-gap: 20px;
        column-gap: 40px;
        padding-top: 20px;
    }

    & .tpc-filter-container {

        display: none;
        position: relative;
        line-height: 30px;

        &.on {
            display: block;
        }

        &:last-child {
            border: none;
        }

        & .tpc-filter-top {
            position: relative;
            padding: 0 0 10px;
            cursor: pointer;
        }

        & .tpc-filter-options {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
        }

        &.tpc-filter-size .tpc-filter-options {
        }

        &.tpc-filter-color .tpc-filter-options {
        }

        & .tpc-filter-option {

            position: relative;
            display: flex;
            gap: 10px;
            justify-content: center;
            align-items: center;
            font-size: 14px;
            font-weight: 300;
            text-align: left;
            line-height: normal;
            cursor: pointer;
            white-space: nowrap;

            &:not( .on ) {
                display: none;
            }

        }

        &.tpc-filter-color {

            & .tpc-filter-option {

                width: 30px;
                height: 30px;
                text-align: center;
                border: solid 1px var(--theme-text-color);
                border-radius: 50%;
                line-height: 30px;

                &.on {
                }

            }

        }

        & .tpc-filter-checkbox {
            display: inline-block;
            position: relative;
            background: var(--theme-color-primary);
            width: 30px;
            height: 30px;
            text-align: center;
            border: solid 1px var(--theme-text-color);
            line-height: 30px;
        }

        & .tpc-filter-checkbox,
        &.tpc-filter-color .tpc-filter-option {
            color: var(--theme-color-accent);
            overflow: hidden;
        }

        & .tpc-filter-option:not(.selected) i {
            display: none;
        }

        &.tpc-filter-color .tpc-filter-text {
            display: none;
        }

    }

}


/**
 Filters
 */

.tpc-top-actions {

    position: relative;
    margin: 30px 0 0;

    & .tpc-toggle-filters {

        display: grid;
        align-items: center;
        position: absolute;
        top: 0;
        right: 0;
        height: 40px;
        font-size: 24px;
        color: var(--theme-text-color);
        cursor: pointer;

        &:hover {
            color: var(--theme-color-accent);
        }

    }

}

.tpc-filters {

    display: flex;
    gap: 20px;
    flex-wrap: wrap;
    margin: 0 0 30px;

    & :is( select ) {
        padding-inline-end: 25px !important;
        font-size: 16px !important;
    }

}

.tpc-game-time-list-form:not( .filters-active ) {
    & .tpc-filters {
        display: none;
    }
}


/**
 Game time
 */

.tpc-game-time-wrapper {
    & .tpc-game-time {
        display: grid;
        gap: 5px;
        grid-template-rows: 1fr auto;
        align-items: flex-start;
        height: 100%;
        padding: 15px 10px;
        border: 1px solid;
        & .tpc-game-time-data {
            display: grid;
            grid-template-columns: auto auto auto;
            column-gap: 20px;
            row-gap: 10px;
            font: var(--theme-body-font);
            & label {
                display: block;
                margin: 0;
            }
            & span {
                line-height: 22px;
            }
            & :is( .tpc-game-time-data-title, .tpc-game-time-data-group, .tpc-game-time-data-scorekeeper, .tpc-game-time-data-referee ) {
                grid-column: span 3;
            }
            & :is( input, select ) {
                font: var(--theme-body-font);
                &[disabled] {
                    background-color: transparent;
                    height: auto;
                    padding: 0;
                    border-color: transparent;
                    line-height: 22px;
                }
            }
            & .tpc-game-time-data-title {
                & label {
                    font: var(--theme-title-font);
                    color: var(--theme-color-accent);
                    text-transform: uppercase;
                }
                & .tpc-game-time-title {
                    display: none;
                }
            }
        }
        & .tpc-game-time-status {
            font-weight: 700;
            color: #F10000;
            text-transform: uppercase;
        }
        &.scored .tpc-game-time-status {
            color: darkgreen;
        }
        &:not( :has( .edit-enabled ) ) {
            & :is( .tpc-game-time-title, .tpc-game-time-time ) {
                & input {
                    padding: 0;
                }
            }
        }
        & :is( .tpc-game-time-title, .tpc-game-time-time ) {
            display: flex;
            & input {
                &[disabled] {
                    background: transparent;
                }
            }
            & a {
                display: block;
                width: 20px;
                text-align: center;
                cursor: pointer;
            }
            &.edit-enabled {
                & .edit-game-title {
                    display: none;
                }
                & .edit-game-time {
                    display: none;
                }
            }
            &:not( .edit-enabled ) {
                & .save-game-title {
                    display: none;
                }
                & .save-game-time {
                    display: none;
                }
            }
        }
    }
    & :is( .tpc-age-group-links, .tpc-game-time-links ) {
        display: flex;
        column-gap: 10px;
        flex-wrap: wrap;
        align-items: center;
        padding-top: 15px;
        & :is( a, span ) {
            display: block;
            position: relative;
            font: var(--theme-cta-font);
            text-transform: uppercase;
            cursor: pointer;
            line-height: 1;
            &:not( :first-child ):not( .first ) {
                padding-left: 10px;
                &:after {
                    content: '';
                    display: block;
                    position: absolute;
                    top: 0;
                    left: 0;
                    background: var(--theme-text-color);
                    width: 1px;
                    height: 100%;
                }
            }
            &.on {
                font-weight: 700;
            }
            &.scored {
                color: darkgreen;
            }
        }
    }
}

.tpc-game-time-list {

    display: grid;
    gap: 20px;
    align-items: stretch;

    @media only screen and (min-width: 768px) {
        grid-template-columns: 1fr 1fr;
    }

    @media only screen and (min-width: 1024px) {
        grid-template-columns: 1fr 1fr 1fr;
    }

    @media only screen and (min-width: 1400px) {
        grid-template-columns: 1fr 1fr 1fr 1fr;
    }

    &:has( .tpc-empty-block ) {
        grid-template-columns: 1fr;
    }

    &:has( .tpc-game-time-list-title ) {
        padding: 0;
    }

    & .tpc-registration-row {

        margin: 0 !important;
        padding: 0 !important;

        &:has( .tpc-registration-field ) {

            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 20px;
            margin: 0;
            padding: 0;

        }

    }

    & .tpc-break {

        @media only screen and (min-width: 768px) {
            grid-column: span 2;
        }

        @media only screen and (min-width: 1024px) {
            grid-column: span 3;
        }

        @media only screen and (min-width: 1400px) {
            grid-column: span 4;
        }

        & .tpc-game-time:not( :has( .tpc-game-time-links ) ) {
            grid-template-rows: 1fr;
        }

        & .tpc-game-time-data {

            display: flex;
            flex-wrap: wrap;

            & .tpc-game-time-duration input {
                width: 70px;
                padding-right: 0;
            }

            &:not( :has( .edit-enabled ) ) {
                & .tpc-game-time-duration input {
                    padding: 0;
                }
            }

        }

    }

    & .tpc-add-break {

        &:not( .add-enabled ) {

            & .tpc-game-time {
                gap: 0;
                background: none;
                padding: 0;
                border: none;
            }

            & :is( .tpc-game-time-data, .create-break, .cancel-add-break ) {
                display: none;
            }

            & .tpc-game-time-links {
                justify-content: center;
                padding: 0;
            }

            & a:hover {
                color: var(--theme-text-color);
            }

        }

        &.add-enabled {

            & :is( .add-break ) {
                display: none;
            }

        }

    }

    & .tpc-break {

        &:not( .edit-enabled ) {

            & :is( .save, .cancel ) {
                display: none;
            }

        }

        &.edit-enabled {

            & :is( .edit, .delete ) {
                display: none;
            }

        }

    }

}


.tpc-age-group-details {

    display: grid;
    gap: 40px;
    padding-top: 40px;

    & .tpc-groups {

        margin: 0;
        padding: 0 !important;

    }

}

.tpc-player-details-form {
    & .tpc-group-player-summary {
        display: flex;
        gap: 10px;
        flex-wrap: wrap;
        background: var(--theme-input-bg);
        padding: 10px;
        @media only screen and (min-width: 768px) {
            gap: 20px;
            grid-column: span 2;
        }
        @media only screen and (min-width: 1024px) {
            grid-column: span 3;
        }
        & .tpc-group-player-field-advanced {
            padding-left: 20px;
            border-left: 1px solid var(--theme-text-color);
        }
    }
    & [disabled] {
        background: var(--theme-input-bg) !important;
        opacity: 1 !important;
    }
    & .tpc-group-player-field-checked_in {
        position: relative;
        & .tpc-check-in-modal {
            display: block;
            font-size: var(--theme-body-size);
            line-height: normal;
            cursor: pointer;
        }
        & strong {
            color: #F10000;
        }
        & .checked-in {
            color: darkgreen;
        }
    }
    & .tpc-registration-row-submit {
        display: grid !important;
        grid-template-columns: 1fr 1fr;
        gap: 20px;
    }
    &:not( .edit-enabled ) {
        & .tpc-replace-file {
            display: none;
        }
        & button[type="submit"] {
            display: none;
        }
        & .tpc-registration-row:has( textarea:empty ) {
            display: none;
        }
    }
    &.edit-enabled {
        & .tpc-enable-edit {
            display: none;
        }
        & .tpc-check-in-modal {
            display: none;
        }
    }
}


/**
 My account view
 */

.tpc-my-account-view {
    & .tpc-top-actions {
        margin: 0 0 20px;
    }
    & .age-groups {
        display: grid;
        gap: 20px;
    }
    & .age-group {
        row-gap: 0 !important;
        padding: 15px 10px !important;
        border: 1px solid;
        & .age-group-fields {
            row-gap: 10px;
        }
        & .gender {
            flex: 1 !important;
        }
        & label {
            display: block;
            margin: 0;
            font-size: var(--theme-body-size);
            font-weight: 700;
            text-transform: initial;
        }
        & :is( input, select, .age-totals strong ) {
            font-size: var(--theme-body-size) !important;
            font-weight: 400;
            &[disabled] {
                background: transparent;
                height: auto;
                padding: 0;
                line-height: 22px;
            }
        }
        & .age-totals strong {
            height: auto;
            line-height: 22px !important;
        }
    }
    & .tpc-group-players {
        padding-top: 0;
    }
    & .tpc-group-players-scroll {
        gap: 20px !important;
    }
    & .tpc-game-times-grid-item {
        background-color: transparent !important;
        color: var(--theme-text-color) !important;
        border-color: var(--theme-text-color) !important;
    }

    /* Check in view */

    &.tpc-check-in-view {
        & .age-groups {
            gap: 20px;
            align-items: stretch;
            @media only screen and (min-width: 768px) {
                grid-template-columns: 1fr 1fr;
            }
            @media only screen and (min-width: 1024px) {
                grid-template-columns: 1fr 1fr 1fr;
            }
            @media only screen and (min-width: 1400px) {
                grid-template-columns: 1fr 1fr 1fr 1fr;
            }
            & .tpc-registration-row {
                display: grid;
            }
            & .tpc-registration-field-actions {
                grid-template-columns: 1fr;
            }
        }
    }

}


/**
 Brackets
 */

.tpc-brackets-design {
    color: #000;
    text-align: center;
    overflow: auto;
    & .tpc-bracket-location:not( .last-round ) {
        cursor: pointer;
        & .label:hover {
            background-color: var(--theme-color-accent);
            color: var(--theme-color-primary);
        }
    }
    & .grid-cols {
        display: grid;
        justify-items: end;
        position: relative;
        &:before {
            content: " ";
            width: 2px;
            background: var(--theme-text-color);
            position: absolute;
            top: 25%;
            height: 50%;
            left: calc(100% + 10px);
            z-index: 9;
        }
        &.grid-cols-1:before {
            display: none;
        }
        &.grid-cols-4:before {
            top: 12.5%;
            height: 75%;
        }
    }
    & .grid-cols-2 {
        grid-template-rows: 1fr 1fr;
    }
    & .grid-cols-3 {
        grid-template-rows: 1fr 1fr 1fr;
    }
    & .grid-cols-4 {
        grid-template-rows: 1fr 1fr 1fr 1fr;
    }
    & .grid-cols-5 {
        grid-template-rows: 1fr 1fr 1fr 1fr 1fr;
    }
    & .grid-cols-6 {
        grid-template-rows: 1fr 1fr 1fr 1fr 1fr 1fr;
    }
    & .grid-cols-7 {
        grid-template-rows: 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
    }
    & .grid-cols-8 {
        grid-template-rows: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
    }
    & .grid-cols-9 {
        grid-template-rows: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
    }
    & .grid-cols-10 {
        grid-template-rows: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
    }
    & .level {
        display: flex;
        gap: 20px;
        align-items: center;
    }
    & .label {
        position: relative;
        margin: 10px 0;
        padding: 10px;
        white-space: nowrap;
        &:before {
            content: " ";
            position: absolute;
            top: calc(50% - 1px);
            right: 100%;
            background: var(--theme-text-color);
            width: 10px;
            height: 2px;
        }
        &:after {
            content: " ";
            position: absolute;
            top: calc(50% - 1px);
            left: 100%;
            background: var(--theme-text-color);
            width: 12px;
            height: 2px;
        }
    }
    & .level-1 > .label {
        background: #eee;
    }
    & .level-2 > .label {
        background: #ddd;
    }
    & .level-3 > .label {
        background: #ccc;
    }
    & .level-4 > .label {
        background: #bbb;
    }
    & .level-5 > .label {
        background: #aaa;
    }
    & .level-6 > .label {
        background: #999;
    }
    & .level-7 > .label {
        background: #888;
    }
    & .level-8 > .label {
        background: #777;
    }
    & > .level > .label:after {
        display: none;
    }
    & .grid-cols:not( :has( .grid-cols ) ) > .level > .label:before {
        display: none;
    }
}


/**
 New view player
 */

.tpc-player-preview {
    display: grid;
    gap: 40px;
    & .tpc-player-preview-section {
        display: grid;
        gap: 20px;
    }
    & .tpc-player-preview-title {
        padding-bottom: 10px;
        color: var(--theme-text-color);
        text-transform: uppercase;
        border-bottom: 1px solid #000;
    }
    & .tpc-player-preview-summary {
        display: flex;
        flex-wrap: wrap;
        gap: 20px;
        background: var(--theme-input-bg);
        padding: 10px;
    }
    & .tpc-player-preview-items {
        display: flex;
        flex-wrap: wrap;
        gap: 20px;
    }
    & .tpc-player-preview-summary-item {
        text-transform: uppercase;
    }
    & .tpc-registration-field-image {
        margin-top: 12px;
    }
    & .tpc-player-preview-body {
        display: grid;
        gap: 20px;
        &:has( .tpc-player-preview-image ) {
            @media only screen and (min-width: 480px) {
                grid-template-columns: auto 1fr;
            }
        }
        & label {
            margin: 0;
            font: var(--theme-label-font);
        }
        & :is( input, select, .tpc-registration-field-readonly ) {
            height: auto;
            padding: 0;
            font-size: var(--theme-body-font);
            line-height: 22px !important;
        }
    }
    & .tpc-player-preview-profile {
        & .tpc-player-preview-data {
            display: grid;
            gap: 20px;
            grid-template-columns: 1fr 1fr;
            @media only screen and (min-width: 480px) {
                grid-template-columns: 1fr;
            }
            @media only screen and (min-width: 680px) {
                grid-template-columns: 1fr 1fr;
            }
            @media only screen and (min-width: 880px) {
                grid-template-columns: 1fr 1fr 1fr;
            }
        }
        & .tpc-registration-row {
            &:has( #birth_date_standard ) {
                position: relative;
                & a {
                    display: block;
                    @media only screen and (min-width: 420px) {
                        position: absolute;
                        bottom: 0;
                        right: 0;
                        padding: 0 10px;
                        font-size: var(--theme-body-size);
                        font-weight: 400;
                        line-height: 22px;
                    }
                }
            }
        }
    }
    & .tpc-player-preview-check-in {
        & .tpc-player-preview-data {
            display: grid;
            gap: 20px;
        }
    }

    /* Check in */

    .tpc-check-in {
        & strong {
            font-weight: 700;
            color: var(--theme-text-color);
        }
        & h4 {
            margin: 0 0 10px;
        }
        & .tpc-check-in-data-wrapper {
            display: grid;
            grid-template-columns: 1fr;
            grid-gap: 20px;
            @media only screen and (min-width: 1024px) {
                grid-template-columns: auto 1fr auto;
            }
        }
        & .tpc-check-in-data-image {
            display: grid;
            gap: 10px;
            max-width: 200px;
            & img {
                display: block;
            }
        }
        & .tpc-check-in-data-list {
            display: grid;
            grid-template-columns: 1fr;
            grid-gap: 20px;
            @media only screen and (min-width: 1024px) {
                grid-template-columns: 1fr 1fr 1fr;
            }
        }
        & .tpc-check-in-data-row {
            & strong {
                display: block;
                font-size: 12px;
            }
        }
        & .tpc-check-in-data-row-email span {
            display: block;
            max-width: 280px;
            text-overflow: ellipsis;
            overflow: hidden;
        }
        & :is( .tpc-check-in-games, .tpc-check-in-data ) {
            margin-bottom: 40px;
        }
        & .tpc-check-in-games-list {
            display: grid;
            grid-template-columns: 1fr 1fr 1fr 1fr;
            grid-gap: 20px;
        }
        & .tpc-check-in-game-data-row {
            display: grid;
            grid-template-columns: 50px 1fr;
            grid-gap: 10px;
        }
        & .tpc-registration-field-checkbox {
            display: grid;
            grid-template-columns: 1fr;
            margin: 0;
            padding: 10px 15px;
            border: 1px solid;
            & * {
                cursor: pointer;
            }
            & label {
                display: block;
                position: relative;
                padding: 0 0 0 40px;
                font: var(--theme-body-font);
                text-transform: initial;
                line-height: 30px;
                cursor: pointer;
                z-index: 1;
                &:before {
                    content: "";
                    display: block;
                    position: absolute;
                    top: 0;
                    left: 0;
                    width: 30px;
                    height: 30px;
                    margin: 0;
                    background: var(--theme-background-color);
                    border-radius: 5px;
                }
                &:after {
                    margin: 3px;
                }
            }
            & .fa {
                position: absolute;
                top: 0;
                left: 3px;
                z-index: 1;
                font-size: 30px;
                color: var(--theme-color-accent);
            }
            &:not( :has( :checked ) ) .fa {
                display: none;
            }
            & input {
                position: absolute !important;
                top: 0;
                left: 0;
                visibility: hidden;
            }
            & a {
                font: var(--theme-body-font);
            }
        }
        & .tpc-player-checked-in {
            & .tpc-registration-field-checkbox {
                & *:not( a ) {
                    cursor: default;
                }
            }
        }
        & .tpc-registration-check-in-step {
            position: relative;
            & .tpc-registration-processing {
                height: 25px;
            }
            &:not( .loading ) .tpc-registration-processing {
                display: none;
            }
            & .tpc-print-number {
                text-transform: initial;
                @media only screen and (max-width: 480px) {
                    display: block;
                    text-align: right;
                }
                @media only screen and (min-width: 481px) {
                    float: right;
                }
            }
        }
        & .tpc-registration-check-in-submit {
            position: relative;
            & .button {
                width: 100%;
                max-width: 220px;
                & .fa-check {
                    margin-left: 5px;
                    font-size: 24px;
                    color: #43a047;
                }
            }
            &:has( .checked-in ):after {
                content: " ";
                position: absolute;
                inset: 0;
                cursor: default;
            }
        }
        & .tpc-check-in-wrapper {
            display: grid;
            gap: 20px;
            &:has( input:not( :checked ) ) {
                & .tpc-registration-check-in-submit {
                    display: none;
                }
            }
        }
        & .tpc-game-times-grid {
            grid-template-columns: 1fr !important;
            @media only screen and (min-width: 768px) {
                grid-template-columns: 1fr 1fr !important;
            }
        }
    }

    & .tpc-player-games {
        font-size: var(--theme-body-size);
        & .tpc-player-games-list {
            grid-template-columns: 1fr !important;
            @media only screen and (min-width: 580px) {
                grid-template-columns: 1fr 1fr !important;
            }
            @media only screen and (min-width: 1024px) {
                grid-template-columns: 1fr 1fr 1fr 1fr !important;
            }
            padding: 0 !important;
            border: none !important;
            & .tpc-player-games-game {
                padding: 10px;
                border: 1px solid;
            }
        }
    }

}
