/**
 * Membership Selection Styles
 * For Step 1: Adult/Youth selection and membership cards
 */

/* ========================================
   MEMBERSHIP CONTAINER
   ======================================== */
.af-registration-wrapper .af-membership-container {
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 0px !important;
}

/* Override the global display:none for the membership page title */
.af-registration-wrapper .af-membership-container .af-page-title {
    display: block !important;
    text-align: center !important;
    margin-bottom: 32px !important;
}

/* ========================================
   TYPE SELECTOR (Adult/Youth)
   ======================================== */

.af-registration-wrapper .af-type-selector-container,
.af-registration-wrapper .af-subscription-type-selector-container {
    display: block !important;
    margin-bottom: 32px !important;
    width: fit-content !important;
    margin-left: auto !important;
    margin-right: auto !important;
    font-size: 0 !important;

    background: #fff !important;
    outline: 2px solid var(--af-primary) !important;
    border: 6px solid #fff !important;
    border-radius: 100px !important;
}

/* Subscription type selector - Hidden on desktop, shown on mobile */
.af-registration-wrapper .af-subscription-type-selector-container {
    display: none !important;
}

.af-registration-wrapper .af-type-selector,
.af-registration-wrapper .af-subscription-type-selector {
    background-color: var(--af-white) !important;
    border-radius: 50px !important;
    padding: 10px 50px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 12px !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    min-width: 200px !important;
    line-height: 1.4em !important;
    font-size: 16px !important;
}

.af-registration-wrapper .af-type-selector:last-child,
.af-registration-wrapper .af-subscription-type-selector:last-child {
    margin-left: 10px !important;
}

.af-registration-wrapper .af-type-selector .af-selector-content,
.af-registration-wrapper .af-subscription-type-selector .af-selector-content {
    text-align: center !important;
    flex: 1 1 auto !important;
}

.af-registration-wrapper .af-type-selector:hover,
.af-registration-wrapper .af-subscription-type-selector:hover {
    background-color: var(--af-gray-light) !important;
}

.af-registration-wrapper .af-type-selector.selected,
.af-registration-wrapper .af-subscription-type-selector.selected {
    background-color: var(--af-primary) !important;
}

.af-registration-wrapper .af-type-selector.selected .af-selector-content,
.af-registration-wrapper .af-subscription-type-selector.selected .af-selector-content {
    color: var(--af-white) !important;
}

.af-registration-wrapper .af-type-selector.selected .af-selector-icon svg,
.af-registration-wrapper .af-subscription-type-selector.selected .af-selector-icon svg {
    color: var(--af-green) !important;
    background: var(--af-white) !important;
}

.af-registration-wrapper .af-selector-icon svg,
.af-registration-wrapper .af-subscription-type-selector .af-selector-icon svg {
    width: 24px !important;
    height: 24px !important;
    color: var(--af-white) !important;
    background: white !important;
    border-radius: 50% !important;
}

.af-registration-wrapper .af-selector-icon svg .check-fill,
.af-registration-wrapper .af-subscription-type-selector .af-selector-icon svg .check-fill {
    opacity: 0 !important;
    transition: opacity 0.2s ease !important;
}

.af-registration-wrapper .af-type-selector.selected .af-selector-icon svg .check-fill,
.af-registration-wrapper .af-subscription-type-selector.selected .af-selector-icon svg .check-fill {
    opacity: 1 !important;
}

.af-registration-wrapper .af-selector-content,
.af-registration-wrapper .af-subscription-type-selector .af-selector-content {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    color: #440099 !important;
}

.af-registration-wrapper .af-selector-title,
.af-registration-wrapper .af-subscription-type-selector .af-selector-title {
    font-family: 'Moon', sans-serif !important;
    font-weight: 700 !important;
    font-size: 20px !important;
}

.af-registration-wrapper .af-selector-subtitle,
.af-registration-wrapper .af-subscription-type-selector .af-selector-subtitle {
    font-family: 'Moon', sans-serif !important;
    font-weight: 400 !important;
    font-size: 14px !important;
}

/* ========================================
   MEMBERSHIP CARDS CONTAINER
   ======================================== */

.af-registration-wrapper .af-cards-container {
    margin-bottom: 32px !important;
    padding-top: 20px !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
}

.af-registration-wrapper .af-subscription-cards {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 32px !important;
    max-width: 1200px !important;
    margin: 0 auto !important;
}

/* ========================================
   SUBSCRIPTION CARD
   ======================================== */
.af-registration-wrapper .af-subscription-card {
    width: 100% !important;
    border-radius: 10px !important;
    background-color: var(--af-white) !important;
    box-shadow: 4px 4px 8px 0px rgba(0, 0, 0, 0.12) !important;
    transition: transform 0.2s ease-in-out !important;
    display: flex !important;
    flex-direction: column !important;
}

@media (min-width: 992px) {
    .af-registration-wrapper .af-subscription-card:hover {
        transform: scale(1.05) !important;
    }
}

/* Card Header */
.af-registration-wrapper .af-subscription-header {
    background: linear-gradient(90deg, #d222d4, #f17d00) !important;
    background-position: right !important;
    background-repeat: no-repeat !important;
    background-size: cover !important;
    padding: 0 16px 0 32px !important;
    height: 50px !important;
    display: flex !important;
    justify-content: space-between !important;
    border-radius: 10px 10px 0 0 !important;
    align-items: flex-end !important;
}

.af-registration-wrapper .af-subscription-cards .af-subscription-card+.af-subscription-card .af-subscription-header {
    background-color: var(--af-primary) !important;
    background-image: url('../images/line-blend.png') !important;
    display: flex !important;
    justify-content: flex-end !important;
}

.af-registration-wrapper .af-subscription-header span {
    color: #fff !important;
    align-self: center !important;
    font-family: "Moon", sans-serif !important;
    font-weight: 900 !important;
    font-size: 22px !important;
    text-transform: uppercase !important;
}

.af-registration-wrapper .af-subscription-header img {
    height: 83px !important;
    object-fit: contain !important;
}

.af-registration-wrapper .af-card-title {
    font-family: 'Moon', sans-serif !important;
    font-weight: 900 !important;
    font-size: 36px !important;
    color: var(--af-white) !important;
    padding-bottom: 5px !important;
}

.af-registration-wrapper .af-card-subtitle {
    font-family: 'Moon', sans-serif !important;
    font-weight: 900 !important;
    font-size: 18px !important;
    color: var(--af-primary) !important;
    padding-bottom: 10px !important;
    display: block !important;
}

/* Action Banner */
.af-registration-wrapper .af-subscription-action {
    background: linear-gradient(90deg, #f77c0a 0%, #7049aa 100%) !important;
    color: var(--af-white) !important;
    font-family: 'Moon', sans-serif !important;
    font-weight: 700 !important;
    font-size: 14px !important;
    text-transform: uppercase !important;
    padding: 8px 16px !important;
    min-height: 38px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
}

.af-registration-wrapper .af-subscription-action.af-no-action {
    display: none !important;
}

/* Card Body */
.af-registration-wrapper .af-subscription-body {
    padding: 24px 32px !important;
    padding-bottom: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    flex: 1 !important;
}

.af-registration-wrapper .af-option-item {
    display: flex !important;
    gap: 12px !important;
    align-items: flex-start !important;
}

.af-registration-wrapper .af-subscription-body .af-option-item.last {
    font-weight: bold !important;
}

.af-registration-wrapper .af-subscription-body .af-option-item.last p {
    font-weight: bold !important;
    font-family: 'Moon', sans-serif !important;
    font-weight: 700 !important;
}

.af-registration-wrapper .af-option-item .af-icon {
    flex-shrink: 0 !important;
    margin-top: 2px !important;
}

.af-registration-wrapper .af-option-item p {
    font-family: 'Moon', sans-serif !important;
    font-weight: 400 !important;
    font-size: 18px !important;
    color: var(--af-black) !important;
    margin: 0 !important;
    font-weight: 400 !important;
}

/* Fees */
.af-registration-wrapper .af-fee {
    display: flex !important;
    justify-content: space-between !important;
    padding: 8px 32px !important;
    font-size: 16px !important;
}

.af-registration-wrapper .af-fee-label {
    font-family: 'Moon', sans-serif !important;
    font-weight: 400 !important;
    color: var(--af-gray) !important;
    font-style: italic !important;
}

.af-registration-wrapper .af-fee-value {
    font-family: 'Moon', sans-serif !important;
    font-weight: 400 !important;
    color: var(--af-gray) !important;
}

/* Card Footer */
.af-registration-wrapper .af-subscription-footer {
    padding: 16px 32px 32px !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
}

.af-registration-wrapper .af-price-section {
    display: flex !important;
    flex-direction: column-reverse !important;
    padding-left: 23px !important;
}

.af-registration-wrapper .af-price-label {
    font-family: 'Moon', sans-serif !important;
    font-weight: 700 !important;
    font-size: 18px !important;
    color: var(--af-gray) !important;
    margin-top: 4px !important;
}

.af-registration-wrapper .af-price-value {
    font-family: 'Moon', sans-serif !important;
    font-weight: 900 !important;
    font-size: 46px !important;
    line-height: 50px !important;
    color: var(--af-primary) !important;
    padding-bottom: 0 !important;
}

.af-registration-wrapper .af-subscribe-btn {
    font-family: 'Moon', sans-serif !important;
    font-weight: 700 !important;
    font-size: 20px !important;
    line-height: 1.4em !important;
    background-color: #06b901 !important;
    color: var(--af-white) !important;
    border: #06b901 solid 2px !important;
    padding: 10px 30px !important;
    border-radius: 100px !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    transition: all 0.3s ease !important;
    margin-top: 5px !important;
    box-shadow: 0 0 #0000,
        0 0 #0000,
        0 4px 10px 0 rgba(0, 0, 0, .2) !important
}

.af-registration-wrapper .af-subscribe-btn:hover {
    background-color: inherit !important;
    color: #06b901 !important;
}

.af-registration-wrapper .af-selector-icon {
    width: 38px !important;
    height: 38px !important;
    border: #7d8590 solid 2px !important;
    background: #fff !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.af-registration-wrapper .af-selector-icon svg {
    height: 28px !important;
    width: 28px !important;
}

.af-registration-wrapper .selected .af-selector-icon {
    border-color: var(--af-primary) !important;
}

.af-registration-wrapper .af-subscribe-btn svg {
    width: 1em !important;
    height: 1em !important;
    margin-left: 10px !important;
}

.af-registration-wrapper .af-subscribe-btn:disabled {
    opacity: 0.6 !important;
    cursor: not-allowed !important;
}

.af-registration-wrapper .af-subscription-header:has(img:only-child) {
    justify-content: flex-end !important;
}


/* ========================================
   REVIEWS SECTION
   ======================================== */
.af-registration-wrapper .af-reviews-section {
    font-family: 'Moon', sans-serif !important;
    font-weight: 800 !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: flex-end !important;
    /* background-color: var(--af-gray-light) !important; */
    padding: 0 16px 0 32px !important;
    color: var(--af-black) !important;
    width: 100% !important;
    border-radius: 20px !important;
    margin-top: 32px !important;
}

.af-registration-wrapper .af-reviews-section ul {
    list-style: none !important;
    margin: 0 !important;
    width: 100% !important;
    padding: 10px 0 0 0 !important;
    align-self: center !important;
}

.af-registration-wrapper .af-reviews-section ul li {
    line-height: 1.6em !important;
    font-size: 18px !important;
    margin: 5px 0px !important;
    list-style: none !important;
    text-align: center !important;
    font-family: 'Moon', sans-serif !important;
    font-weight: 700 !important;
}

.af-registration-wrapper .af-reviews-section p {
    margin: 0 !important;
}


.af-registration-wrapper .af-reviews-section p>img {
    height: 20px !important;
    margin: -5px 4px 0 !important;
    vertical-align: middle !important;
}

.af-registration-wrapper .af-reviews-section span.light-text {
    font-family: 'Moon', sans-serif !important;
    font-weight: 400 !important;
}

.af-registration-wrapper .af-reviews-section img {
    max-height: 20px !important;
    margin-top: 10px !important;
}

.af-registration-wrapper .af-subscribe-btn {
    background-color: #06b901 !important;
}

.af-registration-wrapper .af-card-title {
    font-family: "Moon", sans-serif !important;
    font-weight: 900 !important;
    font-size: 36px !important;
    color: var(--af-primary) !important;
    /* text-transform: lowercase !important; */
}

.af-registration-wrapper .af-loading {
    width: 100% !important;
    height: 407px !important;
    /* Todo, make this dynamic. */
    border-radius: 10px !important;
    position: relative !important;
    overflow: hidden !important;
}

.af-registration-wrapper .af-loading::before {
    content: "" !important;
    position: absolute !important;
    top: 0px !important;
    left: 0px !important;
    width: calc(50% - 16px) !important;
    height: 100% !important;
    border-radius: 20px !important;
    background: linear-gradient(100deg, #e3e3e3 40%, #f8f8f8 50%, #e3e3e3 60%) !important;
    background-size: 200% 100% !important;
    animation: shimmer 1.4s infinite linear !important;
}

.af-registration-wrapper .af-loading::after {
    content: "" !important;
    position: absolute !important;
    top: 0px !important;
    right: 0px !important;
    width: calc(50% - 16px) !important;
    height: 100% !important;
    border-radius: 20px !important;
    background: linear-gradient(100deg, #e3e3e3 40%, #f8f8f8 50%, #e3e3e3 60%) !important;
    background-size: 200% 100% !important;
    animation: shimmer 1.4s infinite linear !important;
}

.af-registration-wrapper .af-loading p {
    position: absolute !important;
    bottom: 10px !important;
    width: 100% !important;
    display: none !important;
    text-align: center !important;
    font-weight: 600 !important;
    opacity: 0.6 !important;
    margin: 0 !important;
}


@keyframes shimmer {
    0% {
        background-position: 200% 0;
    }

    100% {
        background-position: -200% 0;
    }
}


/* ========================================
   RESPONSIVE STYLES
   ======================================== */

@media (max-width: 991px) {

    .af-registration-wrapper .af-subscription-header span {
        font-size: 20px !important;
    }

    .af-registration-wrapper .af-subscribe-btn {
        font-size: 18px !important;
    }

    /* Show subscription type selector on mobile */
    .af-registration-wrapper .af-subscription-type-selector-container {
        display: block !important;
    }

    .af-registration-wrapper .af-subscription-type-selector {
        padding: 10px 30px !important;
    }

    /* Cards slider container */
    .af-registration-wrapper .af-cards-container {
        overflow: hidden !important;
        position: relative !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .af-registration-wrapper .af-subscription-cards {
        display: flex !important;
        flex-wrap: nowrap !important;
        max-width: none !important;
        gap: 0 !important;
        transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
        touch-action: pan-y !important;
        -webkit-user-select: none !important;
        user-select: none !important;
    }

    .af-registration-wrapper .af-subscription-cards .af-subscription-card {
        flex: 0 0 calc(100% - 20px) !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        margin: 20px 10px !important;
    }

    .af-registration-wrapper .af-type-selector-container,
    .af-registration-wrapper .af-subscription-type-selector-container {
        margin: 0 auto 32px !important;
    }

    .af-registration-wrapper .af-type-selector-container,
    .af-registration-wrapper .af-subscription-type-selector-container {
        display: flex !important;
        width: calc(100% - 4px) !important;
    }

    .af-registration-wrapper .af-type-selector-container .af-type-selector,
    .af-registration-wrapper .af-subscription-type-selector-container .af-subscription-type-selector {
        flex: 1 0 !important;
        padding: 10px 20px !important;
    }

    .af-registration-wrapper .af-reviews-section>img {
        display: none !important;
    }

    /* Loading overlay - single block on mobile */
    .af-registration-wrapper .af-loading::after {
        display: none !important;
    }

    .af-registration-wrapper .af-loading::before {
        width: 100% !important;
    }

}

@media (max-width: 768px) {

    .af-registration-wrapper .af-type-selector-container .af-type-selector,
    .af-registration-wrapper .af-subscription-type-selector-container .af-subscription-type-selector {
        padding: 10px !important;
    }

    .af-registration-wrapper .af-subscription-header img {
        height: 69px !important;
    }

    .af-registration-wrapper .af-card-title {
        font-size: 32px !important;
    }

    .af-registration-wrapper .af-option-item p {
        font-size: 16px !important;
    }

    .af-registration-wrapper .af-price-value {
        font-size: 40px !important;
    }

    .af-registration-wrapper .af-reviews-section {
        padding: 0 16px !important;
        margin-top: 0 !important;
    }

    .af-registration-wrapper .af-cards-container {
        margin-bottom: 0 !important;
    }

    .af-registration-wrapper .af-subscription-header img {
        display: none !important;
    }

    .af-registration-wrapper .af-cards-container {
        padding-top: 0 !important;
    }

    .af-registration-wrapper .af-subscription-footer {
        display: flex !important;
        flex-direction: column !important;
    }

    .af-registration-wrapper .af-subscription-footer .af-price-section {
        margin-bottom: 10px !important;
    }

    .af-registration-wrapper .af-subscribe-btn {
        width: 100% !important;
        justify-content: center !important;
        max-width: 360px !important;
        align-self: center !important;
        font-size: 16px !important;
    }

    .af-registration-wrapper .af-selector-title,
    .af-registration-wrapper .af-subscription-type-selector .af-selector-title {
        font-size: 16px !important;
    }
}

@media (max-width: 480px) {

    .af-registration-wrapper .af-subscription-header {
        padding-left: 16px !important;
    }

    .af-registration-wrapper .af-type-selector-container,
    .af-registration-wrapper .af-subscription-type-selector-container {
        flex-direction: column !important;
        width: 100% !important;
    }

    .af-registration-wrapper .af-type-selector,
    .af-registration-wrapper .af-subscription-type-selector {
        width: 100% !important;
    }

    .af-registration-wrapper .af-type-selector-container,
    .af-registration-wrapper .af-subscription-type-selector-container {
        border-radius: 25px !important;
    }

    .af-registration-wrapper .af-type-selector:last-child,
    .af-registration-wrapper .af-subscription-type-selector:last-child {
        margin-left: 0 !important;
        margin-top: 5px !important;
    }

    .af-registration-wrapper .af-subscription-body {
        padding: 16px !important;
    }

    .af-registration-wrapper .af-subscription-footer {
        padding: 0 16px 24px !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 0px !important;
    }

    .af-registration-wrapper .af-subscribe-btn {
        align-self: flex-end !important;
    }

    .af-registration-wrapper .af-fee {
        padding: 8px 16px !important;
    }

    .af-registration-wrapper .af-card-title {
        font-size: 24px !important;
    }

    .af-registration-wrapper .af-subscription-header p {
        font-size: 14px !important;
    }

    .af-registration-wrapper .af-subscription-header span {
        font-size: 18px !important;
    }

    .af-registration-wrapper .af-type-selector-container,
    .af-registration-wrapper .af-subscription-type-selector-container {
        margin-bottom: 20px !important;
    }

    .af-registration-wrapper .af-subscription-cards .af-subscription-card {
        margin: 7px !important;
        flex: 0 0 calc(100% - 14px) !important;
    }
}

@media (max-width: 380px) {
    .af-registration-wrapper .af-subscription-header span {
        font-size: 14px !important;
    }

}

@media (min-width: 992px) and (max-width: 1180px) {
    .af-registration-wrapper .af-subscription-footer {
        flex-wrap: wrap !important;
        gap: 15px !important;
    }
}