/***********************************************************
 * Focus Fitness – Join Flow Styles
 * ---------------------------------------------------------
 * TABLE OF CONTENTS
 *  1) TOKENS / ROOT
 *  2) BASE / UTILITIES
 *  3) JOIN TABS (bar, titles, pills, distances)
 *  4) CARDS (clubs & plans)
 *  5) OVERLAYS / SPINNERS
 *  6) CLUBS CAROUSEL
 *  7) SEARCH CLUB FORM (Elementor)
 *  8) CHECKOUT FIELDS (account + billing)
 *  9) WOO ALERTS / STEP ACTIONS
 * 10) INLINE SPINNER (buttons)
 * 11) THANK YOU
 * 12) ACCOUNT MODES
 * 13) CHECKOUT (payments, radios, order review)
 * 14) PLAN POPUP
 * 15) COUPON AREA
 * 16) POPUP SCROLLBARS
 * 17) HELPERS
 * 18) MEDIA QUERIES
 ***********************************************************/

/* =========================================================
 * 1) TOKENS / ROOT
 * =======================================================*/
 :root {
    /* Fonts */
    --ff-font-main: "Saira Extra Condensed", Sans-serif;

    /* Palette */
    --ff-red: #ba0320;
    --ff-white: #fff;
    --ff-black: #000;
    --ff-bg-dark: #030a0f;
    --ff-trans-dark: #030a0ff5;

    /* Surfaces */
    --ff-surface-pay: #fff;
    --ff-surface-order: linear-gradient(
        180deg,
        rgba(115, 115, 115, 0.41) 0%,
        rgba(217, 217, 217, 0.41) 100%
    );

    /* Type scale (common) */
    --fs-80: 80px;
    --fs-70: 70px;
    --fs-60: 60px;
    --fs-50: 50px;
    --fs-40: 40px;
    --fs-36: 36px;
    --fs-32: 32px;
    --fs-30: 30px;
    --fs-26: 26px;
    --fs-24: 24px;
    --fs-22: 22px;
    --fs-21: 21px;
    --fs-20: 20px;
    --fs-19: 19px;
    --fs-18: 18px;
    --fs-17: 17px;
    --fs-16: 16px;
    --fs-15: 15px;
    --fs-14: 14px;

    /* Radius */
    --r-999: 999px;
    --r-100: 100px;
    --r-40: 40px;
    --r-30: 30px;
    --r-25: 25px;
    --r-16: 16px;
    --r-4: 4px;

    /* Spacing */
    --sp-60: 60px;
    --sp-50: 50px;
    --sp-40: 40px;
    --sp-35: 35px;
    --sp-30: 30px;
    --sp-25: 25px;
    --sp-20: 20px;
    --sp-15: 15px;
    --sp-12: 12px;
    --sp-10: 10px;

    /* Z-indices */
    --z-tabs: 1000;
    --z-overlay: 5;
}

/* =========================================================
   * 2) BASE / UTILITIES
   * =======================================================*/
body:not(.elementor-editor-active) #join-tabs {
    opacity: 0;
    visibility: hidden;
}

.is-busy {
    opacity: 0.8;
    pointer-events: none;
}

/* Spinner keyframes (shared) */
@keyframes ffspin {
    to {
        transform: rotate(360deg);
    }
}

/* =========================================================
   * 3) JOIN TABS
   * =======================================================*/
/* Docked heading bar */
#join-tabs .e-n-tabs-heading {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: var(--z-tabs);
    display: flex;
    justify-content: center;
    align-items: center;
    padding: var(--sp-20) 15px;
    padding-bottom: calc(25px + env(safe-area-inset-bottom, 0px));
    background: var(--ff-trans-dark);
}

/* Tab titles – states & locking */
#join-tabs .e-n-tab-title.is-locked {
    opacity: 0.45;
    pointer-events: none;
    cursor: not-allowed;
}

#join-tabs .e-n-tab-title.is-previous,
#join-tabs .e-n-tab-title.is-complete,
#join-tabs .e-n-tab-title.is-hard-locked {
    color: var(--ff-red);
    border-color: var(--ff-red);
}

#join-tabs .e-n-tab-title.is-hard-locked,
#join-tabs .e-n-tabs-content [role="tabpanel"].is-hard-locked {
    display: none !important;
}

/* Title pills (selected club/plan) */
#join-tabs .club-pill,
#join-tabs .plan-pill {
    display: inline-block;
    margin-left: 0.5rem;
    padding: 0.1em 0.5em;
    font-size: 0.8em;
    line-height: 1.4;
    border-radius: var(--r-999);
    background: var(--ff-red);
    color: var(--ff-white);
}

/* Distances */
#join-tabs .ff-distance {
    display: none;
}
#join-tabs.has-distance .ff-distance {
    display: inline-flex;
    align-items: baseline;
    gap: 0.25rem;
    font-weight: 600;
}
#join-tabs .ff-distance.is-empty {
    opacity: 0.7;
    font-weight: 400;
}

/* =========================================================
   * 4) CARDS (clubs & plans)
   * =======================================================*/
#join-tabs [data-club-id],
#join-tabs .ff-loop-plan-item .plan-choose {
    cursor: pointer;
}

#join-tabs [data-club-id].is-selected,
#join-tabs [data-plan-id].is-selected {
    outline: 3px solid var(--ff-red);
    outline-offset: -3px;
    border-radius: var(--r-16);
    box-shadow: 0 0 0 2px rgba(186, 3, 32, 0.15);
}

#join-tabs [data-plan-id].is-busy,
#ff-search-club.is-busy,
#ff-near-me-club.is-busy {
    opacity: 0.7;
    pointer-events: none;
}

/* =========================================================
   * 5) OVERLAYS / SPINNERS
   * =======================================================*/
#join-tabs .ff-has-overlay {
    position: relative;
}

#join-tabs .ff-reorder-overlay {
    position: absolute;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    background: rgba(0, 0, 0, 0.35);
    backdrop-filter: blur(1px);
    z-index: var(--z-overlay);
}
#join-tabs .ff-has-overlay .ff-reorder-overlay {
    display: flex;
}

#join-tabs .ff-has-overlay .swiper-wrapper {
    filter: blur(1px);
    opacity: 0.65;
    transition: opacity 0.2s ease, filter 0.2s ease;
}

#join-tabs .ff-spinner {
    width: 28px;
    height: 28px;
    border: 3px solid rgba(255, 255, 255, 0.35);
    border-top-color: var(--ff-white);
    border-radius: 50%;
    animation: ffspin 0.8s linear infinite;
}

#join-tabs .ff-reorder-text {
    color: var(--ff-white);
    font-weight: 600;
    letter-spacing: 0.2px;
}

/* =========================================================
   * 6) CLUBS CAROUSEL
   * =======================================================*/
#ff-clubs-carousel #ff-club-title .elementor-heading-title {
    writing-mode: sideways-lr;
    text-orientation: mixed;
    float: right;
}

/* =========================================================
   * 7) SEARCH CLUB FORM (Elementor)
   * =======================================================*/
#ff-search-club
    form.elementor-form
    .elementor-form-fields-wrapper
    .elementor-field-type-text {
    width: auto;
    flex-grow: 1;
}
#ff-search-club
    form.elementor-form
    .elementor-form-fields-wrapper
    .elementor-field-type-text
    input[type="text"] {
    padding-left: 25px;
    min-height: 60px;
}
#ff-search-club
    form.elementor-form
    .elementor-form-fields-wrapper
    .elementor-field-type-text
    input[type="text"]::placeholder {
    opacity: .3;
}

#ff-search-club
    form.elementor-form
    .elementor-form-fields-wrapper
    .elementor-field-type-submit {
    width: auto;
    margin-left: -50px;
}
#ff-search-club
    form.elementor-form
    .elementor-form-fields-wrapper
    .elementor-field-type-submit
    .elementor-button-icon
    svg {
    width: 20px;
}

/* Hide Elementor default messages (handled elsewhere) */
#ff-search-club .elementor-message {
    display: none !important;
}

/* =========================================================
   * 8) CHECKOUT FIELDS (account + billing)
   * =======================================================*/
#customer_details
    .woocommerce-billing-fields
    :is(input:not([type="checkbox"]), select, textarea),
#step-account :is(input, select, textarea) {
    border-radius: var(--r-4);
    border: 0.5px solid var(--ff-white);
    background: rgba(255, 255, 255, 0.15);
    padding: 8px 10px;
    color: var(--ff-white);
    font-family: var(--ff-font-main);
    font-size: var(--fs-20);
    min-height: 50px;
}

#customer_details
    .woocommerce-billing-fields
    :is(input:not([type="checkbox"]), select, textarea):focus-visible,
#step-account :is(input, select, textarea):focus-visible {
    outline: none !important;
}

#step-account :is(input, select, textarea)::placeholder{
    text-transform: uppercase;
}

/* Password eye toggle */
#step-account .form-row.has-ff-eye { position: relative; }
#step-account .ff-eye-toggle {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    border: 0;
    background: transparent;
    padding: 6px;
    cursor: pointer;
    line-height: 1;
    color: #fff;
}

#step-account .ff-eye-toggle:focus { 
    outline: 1px solid #ba0320; 
    outline-offset: 1px; 
}

#customer_details .form-row-wide {
    clear: both;
    width: 100%;
}

#customer_details .woocommerce-billing-fields .terms-checkbox {
    margin-top: var(--sp-50);
}

#customer_details .woocommerce-billing-fields label.checkbox {
    color: var(--ff-white);
    font-family: var(--ff-font-main);
    font-size: var(--fs-18);
    text-transform: uppercase;
    line-height: 1.2em;
    position: relative;
    padding-left: 28px;
    cursor: pointer;
}

/* Links inside labels */
#customer_details .woocommerce-billing-fields label a {
    color: var(--ff-red);
}
#customer_details .woocommerce-billing-fields label a:hover {
    text-decoration: underline;
}

/* Hide native checkbox but keep it accessible */
#customer_details .woocommerce-billing-fields label.checkbox .input-checkbox {
    position: absolute;
    opacity: 0;
    inset: 0;
    width: 0;
    height: 0;
}

/* Custom checkbox visuals */
#customer_details .woocommerce-billing-fields label.checkbox::before {
    content: "";
    position: absolute;
    left: 0;
    top: 2px;
    width: 20px;
    height: 20px;
    border-radius: 15px;
    background: var(--ff-white);
    transition: 0.2s;
}

/* Checked */
#customer_details
    .woocommerce-billing-fields
    label.checkbox:has(.input-checkbox:checked)::before {
    background: var(--ff-red);
    border-color: var(--ff-red);
}
#customer_details
    .woocommerce-billing-fields
    label.checkbox:has(.input-checkbox:checked)::after {
    content: "";
    position: absolute;
    left: 7px;
    top: 6px;
    width: 6px;
    height: 10px;
    border: solid var(--ff-white);
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

/* Focus ring */
#customer_details
    .woocommerce-billing-fields
    label.checkbox:has(.input-checkbox:focus)::before {
    outline: 2px solid #0000;
    box-shadow: 0 0 0 3px rgba(186, 3, 32, 0.25);
}

/* Two column widths on desktop */
@media (min-width: 769px) {
    #customer_details .form-row-first {
        width: 48.3871%;
        float: left;
        margin-right: 3.2258%;
    }
    #customer_details .form-row-last {
        width: 48.3871%;
        float: right;
        margin-right: 0;
    }
}

/* =========================================================
   * 9) WOO ALERTS / STEP ACTIONS
   * =======================================================*/
.woocommerce-error,
.woocommerce-info,
.woocommerce-message {
    font-family: var(--ff-font-main);
    background-color: var(--ff-bg-dark);
    color: var(--ff-white);
    font-size: var(--fs-18);
}

.woocommerce-error li,
.woocommerce-info li,
.woocommerce-message li {
    padding-bottom: 7px;
    line-height: 1.2em;
}

.woocommerce-error li a,
.woocommerce-info li a,
.woocommerce-message li a {
    color: var(--ff-white);
    text-decoration: underline !important;
}

.wc-step__actions button {
    color: var(--ff-white);
    font-family: var(--ff-font-main);
    font-size: var(--fs-30);
    font-weight: 700;
    line-height: 1em;
    text-transform: uppercase;
    float: right;
    margin-top: var(--sp-60);
    border: none;
    background: transparent !important;
    padding: 0;
    display: flex;
    gap: var(--sp-30);
    align-items: center;
}

/* =========================================================
   * 10) INLINE SPINNER (buttons)
   * =======================================================*/
#join-tabs .wc-next-account.is-busy,
#join-tabs #place_order.is-busy {
    pointer-events: none;
    opacity: 0.8;
}

#join-tabs .wc-next-account .ff-inline-spinner,
#join-tabs #place_order .ff-inline-spinner {
    width: 18px;
    height: 18px;
    border: 2px solid rgba(255, 255, 255, 0.35);
    border-top-color: var(--ff-white);
    border-radius: 50%;
    animation: ffspin 0.8s linear infinite;
    margin-right: 10px;
    display: inline-block;
}

/* =========================================================
   * 11) THANK YOU
   * =======================================================*/
#join-tabs .e-n-tabs-heading.is-hidden {
    display: none;
}
#join-tabs .e-n-tabs-heading .e-n-tab-title.is-disabled[aria-disabled="true"] {
    pointer-events: none;
    opacity: 0.45;
    cursor: default;
}

#join-tabs .ff-thankyou-inline {
    border-radius: var(--r-30);
    padding: var(--sp-60) var(--sp-50);
    text-align: center;
    color: var(--ff-white);
    width: 100%;
    position: absolute;
    top: 50%;
    background: linear-gradient(
            180deg,
            rgba(0, 0, 0, 0.5) 0%,
            rgba(0, 0, 0, 0.1) 100%
        ),
        url("https://focusfitness.ddns.net/wp-content/uploads/2025/09/ff-thankyou.jpg")
            center / cover no-repeat;
}

#join-tabs .ff-thankyou-inline .woocommerce-order .thankyou-message {
    font-family: var(--ff-font-main);
    font-size: var(--fs-50);
    font-weight: 700;
    line-height: 1em;
    text-transform: uppercase;
    max-width: 400px;
    margin: var(--sp-35) auto 0;
}

#join-tabs .ff-thankyou-inline .woocommerce-order .thankyou-extra {
    font-family: var(--ff-font-main);
    font-size: var(--fs-26);
    line-height: 1.2em;
    margin: var(--sp-30) auto 0;
    max-width: 550px;
}

#join-tabs .ff-thankyou-inline .woocommerce-order .thankyou-home {
    float: right;
    margin-top: var(--sp-60);
}
#join-tabs .ff-thankyou-inline .woocommerce-order .thankyou-home a {
    color: var(--ff-white);
    font-family: var(--ff-font-main);
    font-size: var(--fs-30);
    font-weight: 400;
    text-transform: uppercase;
    line-height: 1em;
    background: transparent !important;
    padding: 0;
    display: flex;
    gap: var(--sp-30);
    align-items: center;
}

/* =========================================================
   * 12) ACCOUNT MODES
   * =======================================================*/
#join-tabs .ff-account-modes {
    display: flex;
    gap: 20px;
    margin-bottom: 0.75rem;
    justify-content: center;
}
#join-tabs .ff-account-modes .ff-switch {
    font-family: var(--ff-font-main);
    font-size: var(--fs-26);
    font-weight: 700;
    line-height: 1em;
    text-transform: uppercase;
    margin-bottom: var(--sp-30);
    background: transparent !important;
    padding: 10px 15px;
    color: var(--ff-white);
    border: 1px solid var(--ff-white);
    border-radius: 0;
    min-width: 150px;
}
#join-tabs .ff-account-modes .ff-switch.is-active {
    background: var(--ff-red) !important;
    border-color: var(--ff-red);
}

/* =========================================================
   * 13) CHECKOUT (payments, radios, order review)
   * =======================================================*/
.woocommerce-checkout-payment .order-payment_methods {
    border-radius: var(--r-25);
    background: var(--ff-white);
    padding: var(--sp-30) var(--sp-40);
    margin-bottom: var(--sp-40);
}
.woocommerce-checkout-payment ul.wc_payment_methods .woocommerce-info{
    border: none;
    background-color: transparent;
    padding: 0px;
    color: #000;
}
.woocommerce-checkout-payment ul.wc_payment_methods .woocommerce-info::before{
    content: unset !important;
}
.woocommerce-checkout-payment ul.wc_payment_methods {
    list-style: none;
    padding: 0;
}
.woocommerce-checkout-payment ul.wc_payment_methods li {
    padding-top: var(--sp-25);
}
.woocommerce-checkout-payment ul.wc_payment_methods li:not(:last-child) {
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
    padding-bottom: var(--sp-25);
}
.woocommerce-checkout-payment ul.wc_payment_methods li label {
    color: var(--ff-black);
    font-family: var(--ff-font-main);
    font-size: var(--fs-24);
    text-transform: uppercase;
}
.woocommerce-checkout-payment ul.wc_payment_methods li .payment_box {
    padding-inline-start: 50px;
}
.woocommerce-checkout-payment ul.wc_payment_methods li .payment_box p {
    color: #a5a5a5;
    font-family: var(--ff-font-main);
    font-size: var(--fs-20);
    padding-top: 10px;
    margin-bottom: 0;
}
.woocommerce-checkout-payment .place-order {
    text-align: right;
}
.woocommerce-checkout-payment #place_order {
    color: var(--ff-white);
    font-family: var(--ff-font-main);
    text-align: center;
    font-size: var(--fs-30);
    font-weight: 700;
    line-height: 1em;
    text-transform: uppercase;
    padding: 15px 25px;
    border-radius: var(--r-100);
    border-color: var(--ff-red);
    background: var(--ff-red);
}
.woocommerce-checkout-payment #place_order:hover {
    background: transparent;
    border-color: var(--ff-red);
    color: var(--ff-red);
}

/* Layout around payment footer */
#payment .wc_payment_methods .wc_payment_method {
    position: relative;
}
#payment .place-order {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: var(--ff-white);
    border-radius: var(--r-25);
    padding: 20px 60px;
}
#payment .place-order .checkout-cart-total {
    color: #171717;
    font-family: var(--ff-font-main);
    font-size: var(--fs-60);
    font-weight: 700;
    letter-spacing: -0.9px;
    text-transform: uppercase;
}

/* Custom radios */
#payment .wc_payment_methods .wc_payment_method > input.input-radio {
    position: absolute;
    opacity: 0;
    inset-inline-start: 0;
}
#payment .wc_payment_methods .wc_payment_method > input.input-radio + label {
    position: relative;
    display: inline-block;
    padding-inline-start: 50px;
    cursor: pointer;
    line-height: 1.4;
}
#payment
    .wc_payment_methods
    .wc_payment_method
    > input.input-radio
    + label::before {
    content: "";
    position: absolute;
    inset-inline-start: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 30px;
    height: 30px;
    border: 2px solid #d9d9d9;
    border-radius: 50%;
    background: var(--ff-white);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
#payment
    .wc_payment_methods
    .wc_payment_method
    > input.input-radio
    + label::after {
    content: "";
    position: absolute;
    top: 50%;
    inset-inline-start: 7px;
    transform: translateY(-50%) scale(0.6);
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--ff-black);
    opacity: 0;
    transition: opacity 0.15s ease, transform 0.15s ease;
}
#payment
    .wc_payment_methods
    .wc_payment_method
    > input.input-radio:checked
    + label::before {
    border-color: #d9d9d9;
}
#payment
    .wc_payment_methods
    .wc_payment_method
    > input.input-radio:checked
    + label::after {
    opacity: 1;
    transform: translateY(-50%) scale(1);
}
#payment
    .wc_payment_methods
    .wc_payment_method
    > input.input-radio:focus-visible
    + label::before {
    outline: 2px solid #d9d9d9;
    outline-offset: 2px;
}
#payment
    .wc_payment_methods
    .wc_payment_method
    > input.input-radio[disabled]
    + label {
    opacity: 0.6;
    cursor: not-allowed;
}

/* Order review card */
.custom-order-review {
    background: var(--ff-surface-order);
    border-radius: var(--r-25);
    padding: 35px 40px;
    margin-bottom: 20px;
}
.custom-order-review h4,
.order-payment_methods h4 {
    color: var(--ff-black);
    font-family: var(--ff-font-main);
    font-size: var(--fs-32);
    font-weight: 600;
    line-height: 1.2em;
    margin: 0;
}
.order-item {
    display: flex;
    justify-content: space-between;
    margin-bottom: 10px;
    gap: 20px;
}
.order-item-left .product-name {
    display: block;
    color: var(--ff-white);
    font-family: var(--ff-font-main);
    font-size: var(--fs-70);
    font-weight: 700;
    letter-spacing: -1.02px;
    line-height: 1em;
    text-transform: uppercase;
    padding-top: 10px;
}
.order-item-left .coupon-applied {
    display: block;
    color: var(--ff-black);
    font-family: var(--ff-font-main);
    font-size: var(--fs-19);
    font-weight: 400;
    line-height: 1.2em;
    letter-spacing: 0.3px;
    margin: 5px 0;
}
.order-item-right {
    text-align: right;
}
.order-item-right .product-price,
.order-item-right .product-price-final {
    display: block;
    color: var(--ff-white);
    font-family: var(--ff-font-main);
    font-size: var(--fs-80);
    font-weight: 700;
    letter-spacing: -1.02px;
    line-height: 75px;
    text-transform: uppercase;
}
.order-item-right .product-price-regular {
    display: block;
    color: var(--ff-white);
    font-family: var(--ff-font-main);
    font-size: var(--fs-40);
    font-weight: 700;
    letter-spacing: -1.02px;
    line-height: 50px;
    text-transform: uppercase;
    margin-top: -30px;
}
.order-item-right .product-extra {
    color: var(--ff-black);
    font-family: var(--ff-font-main);
    font-size: 24px;
    line-height: 1.2em;
    display: block;
}

#ff-loop-plans .ff-loop-plan-item {
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}
#ff-loop-plans .plan-theme-light .elementor-heading-title,
#ff-loop-plans .plan-theme-light .elementor-button-link {
    color: var(--ff-white);
}
.gym-fees-table{
    margin-top: 30px;
}
.gym-fees-table dl{
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    margin-bottom: 15px;
}
.gym-fees-table dl dt{
    color: var(--ff-black);
    font-family: var(--ff-font-main);
    font-size: 22px;
    line-height: 1.2em;
    display: block;
    font-weight: 500;
    text-transform: uppercase;
}
.gym-fees-table dl dd{
    color: var(--ff-black);
    font-family: var(--ff-font-main);
    font-size: var(--fs-26);
    font-weight: 600;
    line-height: 1.2em;
    margin: 0;
}

/* =========================================================
   * 14) PLAN POPUP
   * =======================================================*/
#plan-popup-content .plan-popup-body {
    color: var(--ff-black);
    font-family: var(--ff-font-main);
    font-size: var(--fs-24);
}
#plan-popup-content .plan-popup-body .plan-popup-title {
    color: var(--ff-black);
    font-family: var(--ff-font-main);
    font-size: var(--fs-50);
    font-weight: 700;
    line-height: 1.2em;
    letter-spacing: -1.02px;
    text-transform: uppercase;
    margin-top: 0;
}
#plan-popup-content .plan-popup-body .plan-popup-subtitle {
    color: var(--ff-red);
    font-family: var(--ff-font-main);
    font-size: var(--fs-22);
    line-height: 1em;
    margin-bottom: 0;
}
#plan-popup-content .plan-popup-body ul {
    list-style-type: none;
    margin-bottom: var(--sp-30);
    padding-left: 20px;
}
#plan-popup-content .plan-popup-body ul li {
    padding-left: 10px;
}
#plan-popup-content .plan-popup-body ul li::marker {
    content: "•";
    font-size: 24px;
}

/* =========================================================
   * 15) COUPON AREA
   * =======================================================*/
#join-tabs #ff-coupon .woocommerce-notices-wrapper {
    display: none !important;
}

#join-tabs .ff-coupon-container {
    background-color: #ccc;
    padding: var(--sp-20) 60px;
    border-radius: var(--r-100);
    max-width: 700px;
    margin: 0 auto;
}
#join-tabs .ff-coupon-container h4 {
    font-family: var(--ff-font-main);
    font-size: var(--fs-36);
    font-weight: 700;
    text-transform: uppercase;
    color: var(--ff-red);
    margin-block: 0 0.9rem;
}
#join-tabs .ff-coupon-container .ff-coupon-msg {
    color: var(--ff-black);
    font-family: var(--ff-font-main);
    font-size: var(--fs-26);
    font-weight: 400;
    text-transform: uppercase;
    text-align: center;
    margin-block-end: 0;
}
#join-tabs .ff-coupon-container .ff-coupon-msg strong {
    color: var(--ff-red);
    font-weight: 700;
}

#join-tabs #woocommerce-checkout-form-coupon {
    display: flex !important;
    gap: var(--sp-30);
    flex-grow: 1;
}
#join-tabs #woocommerce-checkout-form-coupon .form-row {
    margin-block-end: 0;
}
#join-tabs #woocommerce-checkout-form-coupon .form-row-first {
    flex-grow: 1;
}

#join-tabs #woocommerce-checkout-form-coupon #coupon_code {
    border-radius: 0;
    border: 0 solid var(--ff-black);
    border-bottom-width: 1px;
    background: transparent;
    padding: 0 10px;
    color: var(--ff-black);
    font-family: var(--ff-font-main);
    font-size: var(--fs-20);
    text-transform: uppercase;
    min-height: 45px;
}
#join-tabs #woocommerce-checkout-form-coupon #coupon_code:focus-visible {
    border-color: var(--ff-red);
    outline: none;
}

#join-tabs #woocommerce-checkout-form-coupon #coupon-error-notice {
    font-family: var(--ff-font-main);
    font-size: var(--fs-18);
    font-weight: 400;
    color: #000;
    padding-left: 10px;
}

#join-tabs #woocommerce-checkout-form-coupon button {
    color: var(--ff-white);
    font-family: var(--ff-font-main);
    text-align: center;
    font-size: var(--fs-20);
    font-weight: 700;
    line-height: 1em;
    text-transform: uppercase;
    padding: 12px 25px;
    border-radius: var(--r-100);
    border-color: var(--ff-red);
    background: var(--ff-red);
}

.ff-coupon-container .woocommerce-message {
    display: none !important;
}

/* =========================================================
   * 16) POPUP SCROLLBARS
   * =======================================================*/
/* WebKit */
#elementor-popup-modal-465 .dialog-lightbox-message ::-webkit-scrollbar {
    width: 8px;
}
#elementor-popup-modal-465 .dialog-lightbox-message ::-webkit-scrollbar-thumb {
    background: var(--ff-black);
    border-radius: 10px;
}
#elementor-popup-modal-465 .dialog-lightbox-message ::-webkit-scrollbar-track {
    background: #fff0;
}
/* Firefox */
#elementor-popup-modal-465 .dialog-lightbox-message {
    scrollbar-width: thin;
    scrollbar-color: var(--ff-black) #fff0;
}

/* =========================================================
   * 18) HELPERS
   * =======================================================*/
#ff-tab-helper .elementor-heading-title {
    visibility: hidden;
    opacity: 0.1;
}

/* =========================================================
   * 18) MEDIA QUERIES
   * =======================================================*/

/* ≤1199px */
@media (max-width: 1199px) {
    #join-tabs .ff-coupon-container .ff-coupon-msg {
        font-size: 24px;
    }
    #plan-popup-content .plan-popup-body .plan-popup-title {
        font-size: 44px;
    }
    #plan-popup-content .plan-popup-body .plan-popup-subtitle {
        font-size: 20px;
    }
    #plan-popup-content .plan-popup-body {
        font-size: 22px;
        line-height: 1.4em;
    }
    #plan-popup-content .plan-popup-body ul li::marker {
        font-size: 20px;
    }
}

/* ≤1024px */
@media (max-width: 1024px) {
    #ff-search-club
        form.elementor-form
        .elementor-form-fields-wrapper
        .elementor-field-type-text
        input[type="text"] {
        min-height: 45px;
    }
    #ff-search-club
        form.elementor-form
        .elementor-form-fields-wrapper
        button[type="submit"] {
        padding: 11px 15px;
    }
    #join-tabs .ff-coupon-container {
        padding: 15px 40px;
        max-width: 460px;
    }
    #join-tabs #woocommerce-checkout-form-coupon #coupon_code {
        font-size: var(--fs-18);
        min-height: 40px;
    }
    #join-tabs #woocommerce-checkout-form-coupon button {
        font-size: var(--fs-18);
        padding: 10px 20px;
    }
    #join-tabs .ff-coupon-container .ff-coupon-msg {
        font-size: 20px;
    }
    .wc-step__actions button {
        font-size: 25px;
        margin-top: 45px;
        gap: 25px;
    }
    .wc-step__actions button svg {
        width: 60px;
    }
    #customer_details .woocommerce-billing-fields label.checkbox {
        font-size: var(--fs-16);
    }
    #customer_details
        .woocommerce-billing-fields
        :is(input:not([type="checkbox"]), select, textarea),
    #step-account :is(input, select, textarea) {
        padding: 7px 10px;
        font-size: var(--fs-18);
        min-height: 42px;
    }
    .woocommerce-error,
    .woocommerce-info,
    .woocommerce-message {
        font-size: var(--fs-17);
        padding: 1em 1em 1em 2.5em;
    }
    .woocommerce-error::before,
    .woocommerce-info::before,
    .woocommerce-message::before {
        left: 1em;
    }
    #join-tabs .ff-account-modes .ff-switch {
        font-size: 23px;
        padding: 10px 12px;
        min-width: 130px;
    }
    #plan-popup-content .plan-popup-body .plan-popup-title {
        font-size: 40px;
    }
    #plan-popup-content .plan-popup-body .plan-popup-subtitle {
        font-size: 18px;
    }
    #plan-popup-content .plan-popup-body {
        font-size: 21px;
        line-height: 1.4em;
    }
    #plan-popup-content .plan-popup-body ul li::marker {
        font-size: 18px;
    }
    .order-item-left .product-name {
        font-size: 60px;
    }
    .order-item-right .product-price,
    .order-item-right .product-price-final {
        font-size: 65px;
        line-height: 60px;
    }
    .order-item-right .product-price-regular {
        font-size: 32px;
        line-height: 45px;
    }
    .custom-order-review h4,
    .order-payment_methods h4 {
        font-size: 24px;
    }
    .order-item-left .coupon-applied {
        font-size: 17px;
    }
    .order-item-right .product-extra {
        font-size: 18px;
    }
    .woocommerce-checkout-payment ul.wc_payment_methods li label {
        font-size: var(--fs-21);
    }
    .woocommerce-checkout-payment ul.wc_payment_methods li .payment_box p {
        font-size: var(--fs-17);
    }
    .woocommerce-checkout-payment #place_order {
        font-size: 24px;
        padding: 13px 22px;
    }
    #payment .place-order .checkout-cart-total {
        font-size: 45px;
    }
    .gym-fees-table {
        margin-top: 25px;
    }
    .gym-fees-table dl dt{
        font-size: 20px;
    }
    .gym-fees-table dl dd{
        font-size: 23px;
    }
    .gym-fees-table dl{
        margin-bottom: 12px;
    }
    #join-tabs .ff-thankyou-inline{
        padding: 50px 40px;
    }
    #join-tabs .ff-thankyou-inline .thankyou-icon svg{
        width: 65px;
    }
    #join-tabs .ff-thankyou-inline .woocommerce-order .thankyou-message{
        font-size: 42px;
        margin: 30px auto 0;
    }
    #join-tabs .ff-thankyou-inline .woocommerce-order .thankyou-extra{
        font-size: 22px;
        max-width: 400px;
    }
    #join-tabs .ff-thankyou-inline .woocommerce-order .thankyou-home{
        margin-top: 45px;
    }
    #join-tabs .ff-thankyou-inline .woocommerce-order .thankyou-home a{
        font-size: 25px;
        gap: 25px;
    }
    #join-tabs .ff-thankyou-inline .woocommerce-order .thankyou-home a svg{
        width: 60px;
    }
}

/* ≤767px */
@media (max-width: 767px) {
    #ff-search-club
        form.elementor-form
        .elementor-form-fields-wrapper
        .elementor-field-type-text
        input[type="text"] {
        padding-left: 20px;
        min-height: 40px;
    }
    #ff-search-club
        form.elementor-form
        .elementor-form-fields-wrapper
        .elementor-field-type-submit
        .elementor-button-icon
        svg {
        width: 17px;
    }
    #ff-search-club
        form.elementor-form
        .elementor-form-fields-wrapper
        button[type="submit"] {
        padding: 8px 12px;
    }

    #join-tabs .club-pill,
    #join-tabs .plan-pill {
        display: none;
    }
    #join-tabs .e-n-tabs-heading {
        padding: 10px 15px;
        padding-bottom: calc(15px + env(safe-area-inset-bottom, 0px));
    }

    #join-tabs .ff-coupon-container {
        padding: 15px 25px;
        border-radius: var(--r-40);
        max-width: 360px;
    }
    #join-tabs #woocommerce-checkout-form-coupon {
        gap: 15px;
    }
    #join-tabs #woocommerce-checkout-form-coupon button {
        font-size: var(--fs-16);
        padding: 10px 20px;
    }
    #join-tabs #woocommerce-checkout-form-coupon #coupon_code {
        font-size: var(--fs-16);
        padding: 6px 10px;
        min-height: 30px;
    }
    #join-tabs #woocommerce-checkout-form-coupon #coupon-error-notice {
        font-size: 13px;
        padding-left: 10px;
    }

    #plan-popup-content .plan-popup-body .plan-popup-title {
        font-size: 34px;
    }
    #plan-popup-content .plan-popup-body .plan-popup-subtitle {
        font-size: var(--fs-15);
    }
    #plan-popup-content .plan-popup-body {
        font-size: var(--fs-17);
        line-height: 1.4em;
    }
    #plan-popup-content .plan-popup-body ul li::marker {
        font-size: var(--fs-15);
    }
    #plan-popup-content .plan-popup-body ul {
        margin-bottom: 20px;
        padding-left: 10px;
    }

    .wc-step__actions button {
        font-size: 20px;
        margin-top: 25px;
        gap: 20px;
    }
    .wc-step__actions button svg {
        width: 50px;
    }

    #customer_details .woocommerce-billing-fields label.checkbox {
        font-size: var(--fs-14);
    }
    #customer_details
        .woocommerce-billing-fields
        :is(input:not([type="checkbox"]), select, textarea),
    #step-account :is(input, select, textarea) {
        padding: 5px 10px;
        font-size: var(--fs-15);
        min-height: 37px;
    }
    #customer_details .woocommerce-billing-fields p.form-row {
        margin-block-end: 10px;
    }

    #customer_details .form-row-first {
        width: 48.3871%;
        float: left;
        margin-right: 3.2258%;
    }
    #customer_details .form-row-last {
        width: 48.3871%;
        float: right;
        margin-right: 0;
    }

    .woocommerce-error,
    .woocommerce-info,
    .woocommerce-message {
        font-size: var(--fs-15);
        padding: 1em 1em 1em 2.5em;
    }
    .woocommerce-error::before,
    .woocommerce-info::before,
    .woocommerce-message::before {
        left: 1em;
    }
    #join-tabs .ff-account-modes .ff-switch {
        font-size: 20px;
        padding: 8px 10px;
        min-width: 100px;
    }
    .custom-order-review {
        padding: 20px;
    }
    .order-item-left .product-name {
        font-size: 34px;
    }
    .custom-order-review h4,
    .order-payment_methods h4 {
        font-size: 18px;
    }
    .order-item-right .product-price,
    .order-item-right .product-price-final {
        font-size: 50px;
        line-height: 45px;
    }
    .order-item-right .product-extra {
        font-size: 13px;
    }
    .woocommerce-checkout-payment ul.wc_payment_methods li label {
        font-size: 18px;
    }
    .woocommerce-checkout-payment ul.wc_payment_methods li .payment_box p {
        font-size: var(--fs-15);
    }
    .woocommerce-checkout-payment .order-payment_methods {
        padding: 30px 20px;
        margin-bottom: 30px;
    }
    .woocommerce-checkout-payment ul.wc_payment_methods li {
        padding-top: 20px;
    }
    .woocommerce-checkout-payment ul.wc_payment_methods li:not(:last-child) {
        padding-bottom: 20px;
    }
    .woocommerce-checkout-payment #place_order {
        font-size: 20px;
        padding: 12px 20px;
    }

    #payment
        .wc_payment_methods
        .wc_payment_method
        > input.input-radio
        + label::before {
        width: 24px;
        height: 24px;
    }
    #payment
        .wc_payment_methods
        .wc_payment_method
        > input.input-radio
        + label::after {
        width: 10px;
        height: 10px;
    }
    .order-item-left .coupon-applied {
        font-size: 14px;
    }
    .order-item-right .product-price-regular {
        font-size: 26px;
        line-height: 40px;
    }
    #payment .place-order {
        padding: 15px 30px;
    }
    #payment .place-order .checkout-cart-total {
        font-size: 30px;
    }
    .gym-fees-table {
        margin-top: 20px;
    }
    .gym-fees-table dl dt{
        font-size: 17px;
    }
    .gym-fees-table dl dd{
        font-size: 20px;
    }
    .gym-fees-table dl{
        margin-bottom: 10px;
    }
    #join-tabs .ff-thankyou-inline{
        padding: 40px 30px;
    }
    #join-tabs .ff-thankyou-inline .thankyou-icon svg{
        width: 60px;
    }
    #join-tabs .ff-thankyou-inline .woocommerce-order .thankyou-message{
        font-size: 36px;
        margin: 20px auto 0;
    }
    #join-tabs .ff-thankyou-inline .woocommerce-order .thankyou-extra{
        font-size: 18px;
        max-width: 360px;
    }
    #join-tabs .ff-thankyou-inline .woocommerce-order .thankyou-home{
        margin-top: 30px;
    }
    #join-tabs .ff-thankyou-inline .woocommerce-order .thankyou-home a{
        font-size: 20px;
        gap: 20px;
    }
    #join-tabs .ff-thankyou-inline .woocommerce-order .thankyou-home a svg{
        width: 50px;
    }
}