/* RAILYARD BILLIARDS — PLUGINS
   WooCommerce, Membership, Event Tickets, Food Menu.
   Load order: 3 of 3 */

/* WOOCOMMERCE */

/* Breadcrumbs — all items muted, current page slightly brighter */
.woocommerce-breadcrumb, .wc-block-breadcrumbs, .woocommerce-breadcrumb a, .wc-block-breadcrumbs a, .wc-block-breadcrumbs li, .wc-block-breadcrumbs ol {
    font-size: 0.72rem !important;
    font-family: var(--font-body) !important;
    color: var(--text-muted) !important;
    text-decoration: none !important;
    font-weight: normal !important;
}

.woocommerce-breadcrumb a:hover, .wc-block-breadcrumbs a:hover {
    color: var(--text-secondary) !important;
}

/* Current page — last item, not a link */
.wc-block-breadcrumbs__item-current, .wc-block-breadcrumbs li:last-child, .wc-block-breadcrumbs li:last-of-type {
    color: var(--text-secondary) !important;
    font-size: 0.72rem !important;
}

/* Separator */
.wc-block-breadcrumbs__separator, .woocommerce-breadcrumb .separator {
    color: var(--text-muted) !important;
    font-size: 0.72rem !important;
}

/* Notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
    border: none;
    border-radius: var(--rad-md);
    padding: var(--s-md) var(--s-lg);
    margin-bottom: var(--s-lg);
    font-size: 0.88rem;
    list-style: none;
}

.woocommerce-message {
    background: rgba(19, 117, 71, 0.15);
    border-left: 3px solid var(--accent-green);
    color: var(--accent-green-light);
}

.woocommerce-info {
    background: rgba(0, 101, 140, 0.15);
    border-left: 3px solid var(--accent-teal);
    color: var(--accent-teal-light);
}

.woocommerce-error {
    background: var(--active-overlay);
    border-left: 3px solid var(--accent-red);
    color: var(--accent-red);
}

/* All WooCommerce buttons — override theme defaults */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit, .woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt, .woocommerce #payment .place-order .button {
    background: var(--accent-teal);
    color: var(--text-primary);
    border: none;
    border-radius: var(--rad-round);
    padding: 11px 28px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s ease, transform 0.15s ease;
}

.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover, .woocommerce #respond input#submit:hover, .woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce input.button.alt:hover {
    background: var(--accent-teal-light);
    color: var(--text-primary);
    transform: translateY(-2px);
}

.woocommerce a.button.disabled, .woocommerce button.button:disabled {
    background: var(--bg-elevated);
    color: var(--text-muted);
    cursor: not-allowed;
    opacity: 0.6;
    transform: none;
}

/* Product loop grid */
.woocommerce ul.products {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: var(--s-xl);
    list-style: none;
    padding: 0;
    margin: 0;
}

.woocommerce ul.products li.product {
    background: var(--bg-surface);
    border: 1px solid var(--border-light);
    border-radius: var(--rad-lg);
    overflow: hidden;
    transition: border-color 0.2s ease, transform 0.2s ease;
    padding: 0;
    display: flex;
    flex-direction: column;
}

.woocommerce ul.products li.product:hover {
    border-color: var(--accent-brass);
    transform: translateY(-3px);
}

.woocommerce ul.products li.product img {
    border-radius: 0;
    width: 100%;
    height: 220px;
    object-fit: cover;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-family: var(--font-heading);
    font-size: 0.95rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text-primary);
    -webkit-text-fill-color: var(--text-primary);
    background: none;
    -webkit-background-clip: unset;
    background-clip: unset;
    padding: var(--s-md) var(--s-lg) 0;
}

.woocommerce ul.products li.product .price {
    color: var(--accent-brass);
    font-family: var(--font-accent);
    font-size: 1rem;
    padding: var(--s-xs) var(--s-lg);
}

.woocommerce ul.products li.product .onsale {
    background: var(--gradient-primary);
    color: var(--text-primary);
    border-radius: var(--rad-round);
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    padding: 4px 12px;
    min-height: auto;
    min-width: auto;
    top: var(--s-md);
    left: var(--s-md);
}

.woocommerce ul.products li.product .add_to_cart_button {
    margin: var(--s-md) var(--s-lg) var(--s-lg);
}

/* Single product */
.woocommerce div.product p.price, .woocommerce div.product span.price {
    color: var(--accent-brass);
    font-family: var(--font-accent);
    font-size: 1.4rem;
}

.woocommerce div.product .woocommerce-product-details__short-description {
    color: var(--text-secondary);
    line-height: 1.65;
}

.woocommerce div.product .product_meta {
    font-size: 0.82rem;
    color: var(--text-muted);
    padding-top: var(--s-md);
    border-top: 1px solid var(--border-light);
}

.woocommerce div.product .product_meta a {
    color: var(--accent-brass);
}

/* Tabs */
.woocommerce div.product .woocommerce-tabs .tabs {
    border-bottom: 1px solid var(--border-light);
    list-style: none;
    padding: 0;
    margin: 0 0 var(--s-xl);
    display: flex;
    gap: 4px;
}

.woocommerce div.product .woocommerce-tabs .tabs li {
    background: none;
    border: 1px solid var(--border-subtle);
    border-radius: var(--rad-md) var(--rad-md) 0 0;
    border-bottom: none;
}

.woocommerce div.product .woocommerce-tabs .tabs li a {
    color: var(--text-muted);
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    padding: var(--s-sm) var(--s-lg);
    display: block;
}

.woocommerce div.product .woocommerce-tabs .tabs li.active {
    background: var(--bg-surface);
    border-color: var(--border-light);
}

.woocommerce div.product .woocommerce-tabs .tabs li.active a {
    color: var(--text-primary);
}

.woocommerce div.product .woocommerce-tabs .wc-tab, .woocommerce div.product #reviews {
    color: var(--text-secondary);
    line-height: 1.65;
}

/* Hide reviews tab and panel */
li.reviews_tab,
#tab-reviews,
#reviews {
    display: none !important;
}

/* Quantity */
.woocommerce .quantity .qty {
    background: var(--bg-elevated);
    border: 1px solid var(--border-subtle);
    border-radius: var(--rad-md);
    color: var(--text-primary);
    padding: 8px 12px;
    text-align: center;
    width: 70px;
}

/* Star ratings */
.woocommerce .star-rating span::before, .woocommerce p.stars a::before, .woocommerce p.stars a:hover::before {
    color: var(--accent-brass);
}

/* Variation selects */
.woocommerce div.product .variations select, .woocommerce-checkout select, .woocommerce-account select {
    background: var(--bg-elevated);
    border: 1px solid var(--border-subtle);
    border-radius: var(--rad-md);
    color: var(--text-primary);
    padding: 8px 12px;
}

/* Cart table */
.woocommerce table.shop_table {
    border: 1px solid var(--border-light);
    border-radius: var(--rad-lg);
    overflow: hidden;
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

.woocommerce table.shop_table th {
    background: var(--bg-elevated);
    color: var(--text-muted);
    font-size: 0.74rem;
    text-transform: uppercase;
    letter-spacing: 0.09em;
    padding: var(--s-sm) var(--s-md);
    border-bottom: 1px solid var(--border-light);
}

.woocommerce table.shop_table td {
    padding: var(--s-md);
    border-bottom: 1px solid var(--border-light);
    color: var(--text-secondary);
    vertical-align: middle;
}

.woocommerce table.shop_table .product-name {
    color: var(--text-primary);
}

.woocommerce table.shop_table .product-subtotal .woocommerce-Price-amount, .woocommerce table.shop_table .order-total .woocommerce-Price-amount {
    color: var(--accent-brass);
    font-family: var(--font-accent);
}

.woocommerce .cart-collaterals .cart_totals {
    background: var(--bg-surface);
    border: 1px solid var(--border-light);
    border-radius: var(--rad-lg);
    padding: var(--s-xl);
}

/* Checkout form fields */
.woocommerce-checkout .form-row input.input-text, .woocommerce-checkout .form-row select, .woocommerce-checkout .form-row textarea, .woocommerce-account .form-row input.input-text, .woocommerce-account .form-row select {
    background: var(--bg-elevated);
    border: 1px solid var(--border-subtle);
    border-radius: var(--rad-md);
    color: var(--text-primary);
    padding: 10px 14px;
    width: 100%;
    transition: border-color 0.2s ease;
}

.woocommerce-checkout .form-row input.input-text:focus, .woocommerce-checkout .form-row select:focus, .woocommerce-account .form-row input.input-text:focus {
    outline: none;
    border-color: var(--accent-brass);
}

.woocommerce-checkout .form-row label, .woocommerce-account .form-row label {
    color: var(--text-muted);
    font-size: 0.76rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.woocommerce-checkout #payment {
    background: var(--bg-surface);
    border: 1px solid var(--border-light);
    border-radius: var(--rad-lg);
    overflow: hidden;
}

.woocommerce-checkout #payment ul.payment_methods {
    border-bottom: 1px solid var(--border-light);
    padding: var(--s-lg);
    list-style: none;
}

.woocommerce-checkout #payment ul.payment_methods li label {
    color: var(--text-secondary);
}

.woocommerce-checkout #payment div.payment_box {
    background: var(--bg-elevated);
    color: var(--text-muted);
}

.woocommerce-checkout #payment div.place-order {
    padding: var(--s-lg);
}

/* ── Order Confirmation: Event Ticket Buttons ────────────────── */

/* Product cell: flex-wrap so name sits on row 1, buttons on row 2 */
.wc-block-order-confirmation-totals__product {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    column-gap: var(--s-sm) !important;
    row-gap: var(--s-sm) !important;
}

/* Product name link + quantity — each takes the full row */
.wc-block-order-confirmation-totals__product > a,
.wc-block-order-confirmation-totals__product > strong {
    flex: 1 1 100% !important;
}

/* Button sections: auto-sized, sit side-by-side on the second row */
.wc-block-order-confirmation-totals__product .wps_etmfw_view_ticket_section,
.wc-block-order-confirmation-totals__product .wps_etmfw_calendar_section {
    flex: 0 0 auto !important;
    background: none !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
}

/* Consistent pill button style for both View and Add to Calendar */
.wc-block-order-confirmation-totals__product .wps_view_ticket_pdf,
.wc-block-order-confirmation-totals__product .wps_etmfw_calendar_section a {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 7px 16px !important;
    background: var(--bg-elevated) !important;
    color: var(--text-secondary) !important;
    border: 1px solid var(--border-light) !important;
    border-radius: var(--rad-round) !important;
    font-size: 0.72rem !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    text-decoration: none !important;
    font-family: var(--font-body) !important;
    white-space: nowrap !important;
    transition: border-color 0.15s ease, color 0.15s ease !important;
}

.wc-block-order-confirmation-totals__product .wps_view_ticket_pdf:hover,
.wc-block-order-confirmation-totals__product .wps_etmfw_calendar_section a:hover {
    border-color: var(--accent-teal) !important;
    color: var(--accent-teal-light) !important;
}

/* ── WooCommerce BLOCK Checkout ──────────────────────────────── */

.wc-block-components-text-input input,
.wc-block-components-text-input select,
.wc-block-components-select select,
.wc-block-checkout .wc-block-components-textarea textarea {
    background: var(--bg-elevated) !important;
    border: 1px solid rgba(255, 255, 255, 0.14) !important;
    border-radius: var(--rad-md) !important;
    color: var(--text-primary) !important;
    padding: 12px 14px !important;
    width: 100% !important;
    font-family: var(--font-body) !important;
    font-size: 0.9rem !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}

.wc-block-components-text-input input:focus,
.wc-block-components-select select:focus {
    outline: none !important;
    border-color: var(--accent-brass) !important;
    box-shadow: 0 0 0 3px rgba(198, 169, 107, 0.15) !important;
}

.wc-block-components-text-input label,
.wc-block-components-select label,
.wc-block-checkout__form .wc-block-components-checkbox__label {
    color: var(--text-muted) !important;
    font-size: 0.74rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    font-family: var(--font-body) !important;
}

/* Browser autofill — override chrome/safari cream/yellow background */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active {
    -webkit-box-shadow: 0 0 0 1000px var(--bg-elevated) inset !important;
    -webkit-text-fill-color: var(--text-primary) !important;
    transition: background-color 5000s ease-in-out 0s !important;
}

/* Block checkout section headings */
.wc-block-checkout__payment-method h2,
.wc-block-checkout__payment-method h3,
.wp-block-woocommerce-checkout-payment-block h2,
.wc-block-checkout__add-ons h2 {
    font-family: var(--font-heading) !important;
    font-size: 0.88rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    color: var(--accent-red) !important;
    -webkit-text-fill-color: var(--accent-red) !important;
    background: none !important;
    -webkit-background-clip: unset !important;
    background-clip: unset !important;
}

/* Block checkout container */
.wp-block-woocommerce-checkout {
    background: none !important;
}

/* My Account navigation */
.woocommerce-MyAccount-navigation {
    background: var(--bg-surface);
    border: 1px solid var(--border-light);
    border-radius: var(--rad-lg);
    overflow: hidden;
    padding: var(--s-md);
}

.woocommerce-MyAccount-navigation ul {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 0;
    margin: 0;
}

.woocommerce-MyAccount-navigation li a {
    display: block;
    padding: var(--s-sm) var(--s-md);
    border-radius: var(--rad-md);
    color: var(--text-muted);
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    transition: background 0.15s ease, color 0.15s ease;
}

.woocommerce-MyAccount-navigation li a:hover, .woocommerce-MyAccount-navigation li.is-active a {
    background: rgba(0, 101, 140, 0.12);
    color: var(--accent-teal-light);
}

/* Orders table */
.woocommerce-orders-table, .woocommerce table.woocommerce-table--order-details {
    border: 1px solid var(--border-light);
    border-radius: var(--rad-lg);
    overflow: hidden;
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

.woocommerce-orders-table th, .woocommerce table.woocommerce-table--order-details th {
    background: var(--bg-elevated);
    color: var(--text-muted);
    font-size: 0.74rem;
    text-transform: uppercase;
    letter-spacing: 0.09em;
    padding: var(--s-sm) var(--s-md);
}

.woocommerce-orders-table td, .woocommerce table.woocommerce-table--order-details td {
    padding: var(--s-md);
    border-bottom: 1px solid var(--border-light);
    color: var(--text-secondary);
}

/* Pagination */
.woocommerce-pagination ul {
    display: flex;
    justify-content: center;
    gap: var(--s-xs);
    list-style: none;
    padding: 0;
    margin-top: var(--s-xl);
}

.woocommerce-pagination ul li a, .woocommerce-pagination ul li span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: var(--rad-md);
    font-size: 0.82rem;
    background: var(--bg-elevated);
    border: 1px solid var(--border-subtle);
    color: var(--text-muted);
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.woocommerce-pagination ul li a:hover {
    background: var(--bg-surface);
    border-color: var(--accent-teal);
    color: var(--text-primary);
}

.woocommerce-pagination ul li span.current {
    background: var(--accent-teal);
    border-color: var(--accent-teal);
    color: var(--text-primary);
}

@media (max-width: 768px) {
    .woocommerce ul.products {
        grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
        gap: var(--s-md);
    }

    .woocommerce-MyAccount-navigation {
        margin-bottom: var(--s-xl);
    }
}

/* MEMBERSHIP FOR WOOCOMMERCE */

.wps_mfw_membership_front_page {
    padding: var(--s-xl) 0 !important;
}

.wps_mfw_membership_multiple_plan, .wps_members_plans {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(300px, 420px)) !important;
    justify-content: center !important;
    gap: var(--s-xl) !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 auto !important;
}

.wps_members_plans {
    background-color: rgba(0, 0, 0, 0) !important;
}

/* Plan card */
body .wps_all_plans_detail_wrapper {
    position: relative !important;
    background: var(--bg-main) !important;
    border: 1px solid rgba(236, 213, 162, 0.35) !important;
    border-radius: var(--rad-xl) !important;
    padding: 0 !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
    transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease !important;
    color: var(--text-primary) !important;
}

body .wps_all_plans_detail_wrapper:hover {
    border-color: rgba(236,213,162,0.6) !important;
    transform: translateY(-4px) !important;
    box-shadow: 0 12px 40px rgba(0,0,0,0.6) !important;
}

/* Featured card — brass glow */
body .wps_all_plans_detail_wrapper.membership-card-featured {
    border-color: rgba(198,169,107,0.55) !important;
    box-shadow:
        0 0 0 1px rgba(198,169,107,0.2),
        0 0 30px rgba(198,169,107,0.18),
        0 0 70px rgba(198,169,107,0.08) !important;
}

body .wps_all_plans_detail_wrapper.membership-card-featured:hover {
    box-shadow:
        0 0 0 1px rgba(198,169,107,0.45),
        0 0 40px rgba(198,169,107,0.28),
        0 0 90px rgba(198,169,107,0.12) !important;
    border-color: var(--accent-brass) !important;
}

/* Kill WPS injected white backgrounds — color only, leave background-image alone */
body .wps_all_plans_detail_wrapper > div,
body .wps_all_plans_detail_wrapper > section,
body .wps_membership_plan_content_price,
body .wps_membership_plan_content_desc,
body .wps_membership_plan_content_description {
    background-color: transparent !important;
}

/* Override WPS plugin's forced text-align: center and padding on everything */
body .wps_all_plans_detail_wrapper .wps_membership_plan_content_title,
body .wps_all_plans_detail_wrapper .wps_membership_plan_content_price {
    text-align: center !important;
    width: auto !important;
    color: inherit !important;
    letter-spacing: normal !important;
    border-bottom: none !important;
}
body .wps_all_plans_detail_wrapper .wps_membership_plan_content_desc,
body .wps_all_plans_detail_wrapper .wps_membership_plan_content_description {
    text-align: left !important;
    width: auto !important;
    color: inherit !important;
    letter-spacing: normal !important;
    font-weight: normal !important;
    border-bottom: none !important;
}

/* ── CARD HEADER — image hero zone ───────────────────────── */
body .wps_all_plans_detail_wrapper .membership-card-header {
    position: relative !important;
    min-height: 220px !important;
    /* NO !important on background-image — allows JS inline style to win */
    background-image: var(--card-image, none);
    background-size: cover !important;
    background-position: center !important;
    background-color: #111 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    padding: var(--s-xl) !important;
    border-bottom: 2px solid rgba(198,169,107,0.75) !important;
    box-shadow: 0 6px 28px rgba(0,0,0,0.65) !important;
    gap: 0 !important;
}

/* Dark gradient overlay so title reads clearly over photo */
body .wps_all_plans_detail_wrapper .membership-card-header::before {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    background: linear-gradient(
        to bottom,
        rgba(0,0,0,0.15) 0%,
        rgba(0,0,0,0.55) 60%,
        rgba(0,0,0,0.85) 100%
    ) !important;
    pointer-events: none !important;
}

/* Hide the icon — title takes over the hero */
body .wps_all_plans_detail_wrapper .wps_mfw_membership_icon,
body .wps_all_plans_detail_wrapper .dashicons.wps_mfw_membership_icon {
    display: none !important;
}

/* Hide the divider inside the header */
body .wps_all_plans_detail_wrapper .membership-divider {
    display: none !important;
}

/* Plan title — body prefix beats WPS plugin specificity on line-height */
body .wps_membership_plan_title,
body .wps_membership_plan_content_title {
    position: relative !important;
    z-index: 1 !important;
    font-family: var(--font-heading) !important;
    font-size: clamp(2rem, 5vw, 3rem) !important;
    font-weight: 700 !important;
    line-height: 0.85 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
    background-image: linear-gradient(180deg, #ffffff 0%, #cccccc 100%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    color: transparent !important;
    -webkit-text-fill-color: transparent !important;
    -webkit-text-stroke: 0 !important;
    filter: drop-shadow(0 1px 4px rgba(0,0,0,0.45)) !important;
    transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1) !important;
    margin: 0 !important;
    border-bottom: none !important;
    text-align: center !important;
    width: 100% !important;
    padding: 0 !important;
}

/* Title zoom on card hover */
body .wps_all_plans_detail_wrapper:hover .wps_membership_plan_title,
body .wps_all_plans_detail_wrapper:hover .wps_membership_plan_content_title {
    transform: scale(1.05) !important;
}

/* ── CONTENT SECTION — below image ───────────────────────── */
body .wps_all_plans_detail_wrapper .wps_membership_plan_content_price {
    padding: var(--s-xs) var(--s-xl) var(--s-sm) !important;
    margin-top: auto !important;
    font-family: var(--font-accent) !important;
    font-size: 1.6rem !important;
    color: var(--accent-brass) !important;
    -webkit-text-fill-color: var(--accent-brass) !important;
    line-height: 1.2 !important;
    border: none !important;
    background: transparent !important;
    background-color: transparent !important;
}

.wps_membership_plan_content_price .woocommerce-Price-amount,
.wps_membership_plan_content_price .amount {
    color: var(--accent-brass) !important;
    background: none !important;
    background-color: transparent !important;
    -webkit-background-clip: unset !important;
    background-clip: unset !important;
    -webkit-text-fill-color: var(--accent-brass) !important;
}

/* Description text — italic */
.wps_membership_plan_content_desc,
.wps_membership_plan_content_description {
    padding: var(--s-md) var(--s-xl) !important;
    font-style: italic !important;
    color: var(--text-secondary) !important;
    font-size: 1rem !important;
    line-height: 1.65 !important;
    flex-grow: 1 !important;
    text-align: left !important;
    width: auto !important;
}

/* Non-list paragraphs inside description */
body .wps_membership_plan_content_desc p,
body .wps_membership_plan_content_description p {
    font-style: italic !important;
    color: var(--text-secondary) !important;
    margin-bottom: var(--s-sm) !important;
}

/* Space between description text and bullet list */
body .wps_membership_plan_content_desc ul,
body .wps_membership_plan_content_description ul {
    margin-top: var(--s-lg) !important;
    padding-left: var(--s-xl) !important;
}

/* Feature list items — tracked out */
body .wps_membership_plan_content_desc li,
body .wps_membership_plan_content_description li {
    color: var(--accent-cream) !important;
    font-style: normal !important;
    letter-spacing: 0.18em !important;
    font-size: 0.82rem !important;
    text-transform: uppercase !important;
    list-style: disc !important;
    padding: 2px 0 !important;
    text-align: left !important;
}

/* Billing frequency note on overview cards */
.membership-options-note {
    font-size: 0.72rem !important;
    color: var(--text-muted) !important;
    text-align: center !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    padding: 0 var(--s-xl) var(--s-xs) !important;
    margin: 0 !important;
}

/* ── JOIN NOW BUTTON — plain, shimmer on hover ───────────── */
.wps_mfw_buy_button {
    padding: 0 var(--s-xl) var(--s-xl) !important;
    margin-top: var(--s-sm) !important;
}

form.wps_membership_buy_now_btn {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    height: 52px !important;
    /* background-color only — NOT the shorthand, which would lock background-position
       and prevent the hover animation from being able to change it */
    background-color: var(--bg-elevated) !important;
    background-image: none !important;
    background-size: 400% 400% !important;
    background-position: 0% 50%;
    border-radius: var(--rad-round) !important;
    border: 1px solid rgba(198,169,107,0.35) !important;
    padding: 0 !important;
    box-shadow: none !important;
    cursor: pointer !important;
    overflow: hidden !important;
    transition: border-color 0.2s ease, transform 0.15s ease !important;
}

form.wps_membership_buy_now_btn:hover {
    background-image: linear-gradient(
        -45deg,
        var(--accent-red-dark) 0%,
        var(--accent-red) 43%,
        var(--accent-cream) 50%,
        var(--accent-red) 57%,
        var(--accent-red-dark) 100%
    ) !important;
    background-size: 400% 400% !important;
    border-color: var(--accent-brass) !important;
    animation: wps-btn-shimmer 2s ease infinite;
    transform: translateY(-2px) !important;
}

@keyframes wps-btn-shimmer {
    0%   { background-position: 0%   50%; }
    50%  { background-position: 100% 50%; }
    100% { background-position: 0%   50%; }
}

form.wps_membership_buy_now_btn::after {
    content: 'Join Now' !important;
    position: absolute !important;
    inset: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: var(--accent-cream) !important;
    font-size: 1.25rem !important;
    font-weight: 900 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.12em !important;
    font-family: var(--font-heading) !important;
    pointer-events: none !important;
    z-index: 1 !important;
}

.wps_mfw_buy_button .wps_membership_buy_now_btn input[type=button].wps_membership_buynow, .wps_membership_buy_now_btn input[type=button][name="wps_membership_buynow"].wps_membership_buynow {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    opacity: 0 !important;
    cursor: pointer !important;
    z-index: 2 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    background: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    color: transparent !important;
    background-color: transparent !important;
}

a.wps_membership_no_thanks.button.alt.thickbox, a.wps_membership_no_thanks {
    display: block !important;
    background: none !important;
    background-color: transparent !important;
    background-image: none !important;
    color: var(--text-muted) !important;
    font-size: 0.76rem !important;
    text-align: center !important;
    padding: var(--s-xs) 0 !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    font-weight: normal !important;
    width: auto !important;
    margin-top: var(--s-xs) !important;
    text-decoration: none !important;
    cursor: pointer !important;
    transition: color 0.15s ease !important;
}

a.wps_membership_no_thanks.button.alt.thickbox:hover, a.wps_membership_no_thanks:hover {
    background: none !important;
    background-color: transparent !important;
    color: var(--text-secondary) !important;
    transform: none !important;
}

/* Membership notice on product page */
.wps_membership_notice, .wps-info-membership-alert {
    background: rgba(0, 101, 140, 0.12) !important;
    border-left: 3px solid var(--accent-teal) !important;
    color: var(--accent-teal-light) !important;
    border-radius: 0 var(--rad-md) var(--rad-md) 0 !important;
    padding: var(--s-sm) var(--s-md) !important;
    font-size: 0.85rem !important;
    margin: var(--s-md) 0 !important;
}

/* No plans */
.wps_mfw_no_plan_found_msg {
    color: var(--text-muted) !important;
    text-align: center !important;
    padding: var(--s-xl) !important;
}

/* Multi-step progress bar */
.wps_mfw_progress-bar-wrapper {
    display: flex !important;
    align-items: center !important;
    margin-bottom: var(--s-xl) !important;
}

.wps_mfw_progress-bar-step {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 36px !important;
    height: 36px !important;
    border-radius: var(--rad-round) !important;
    background: var(--bg-elevated) !important;
    border: 2px solid var(--border-subtle) !important;
    color: var(--text-muted) !important;
    font-size: 0.8rem !important;
    font-weight: 600 !important;
}

.wps_mfw_progress-bar-active .wps_mfw_progress-bar-step {
    background: var(--accent-teal) !important;
    border-color: var(--accent-teal) !important;
    color: var(--text-primary) !important;
}

.wps_mfw_progress-bar_done {
    color: var(--accent-green-light) !important;
}

.wps_mfw_progress-line {
    flex-grow: 1 !important;
    height: 2px !important;
    background: var(--border-subtle) !important;
}

/* Billing form */
.wps_mfw_form_field, input.wps_mfw_form_field, select.wps_mfw_form_field {
    background: var(--bg-elevated) !important;
    border: 1px solid var(--border-subtle) !important;
    border-radius: var(--rad-md) !important;
    color: var(--text-primary) !important;
    padding: 10px 14px !important;
    width: 100% !important;
    font-size: 0.9rem !important;
}

.wps_mfw_form_field:focus {
    outline: none !important;
    border-color: var(--accent-brass) !important;
}

.wps_mfw_form_field-error {
    border-color: var(--accent-red) !important;
}

/* Billing labels */
.wps_mfw_billing-heading, .membership_billing_fields label {
    color: var(--text-muted) !important;
    font-size: 0.76rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
}

/* Nav buttons */
.wps_mfw_button-main {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 10px 24px !important;
    border-radius: var(--rad-round) !important;
    background: var(--accent-teal) !important;
    color: var(--text-primary) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.09em !important;
    font-size: 0.8rem !important;
    font-weight: 600 !important;
    border: none !important;
    cursor: pointer !important;
}

.wps_mfw_button-main:hover {
    background: var(--accent-teal-light) !important;
    transform: translateY(-2px) !important;
}

.wps_mfw_btn-back-a.wps_mfw_button-main, .wps_mfw_btn-back-b.wps_mfw_button-main {
    background: var(--bg-elevated) !important;
    color: var(--text-muted) !important;
    border: 1px solid var(--border-subtle) !important;
}

.wps_mfw_btn-back-a.wps_mfw_button-main:hover, .wps_mfw_btn-back-b.wps_mfw_button-main:hover {
    background: var(--bg-surface) !important;
    color: var(--text-primary) !important;
}

/* Member dashboard */
.wps_mfw_members_dashboard {
    background: var(--bg-surface) !important;
    border: 1px solid var(--border-light) !important;
    border-radius: var(--rad-xl) !important;
    padding: var(--s-xl) !important;
}

.wps-mfw_dm-sec-header {
    font-family: var(--font-heading) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    font-size: 0.82rem !important;
    color: var(--accent-brass) !important;
    -webkit-text-fill-color: var(--accent-brass) !important;
    background: none !important;
    -webkit-background-clip: unset !important;
    background-clip: unset !important;
    padding-bottom: var(--s-sm) !important;
    border-bottom: 1px solid var(--border-light) !important;
    margin-bottom: var(--s-lg) !important;
}

.wps-mfw_dms-name {
    font-family: var(--font-heading) !important;
    text-transform: uppercase !important;
    font-size: 1.2rem !important;
    color: var(--text-primary) !important;
    -webkit-text-fill-color: var(--text-primary) !important;
    background: none !important;
    -webkit-background-clip: unset !important;
    background-clip: unset !important;
}

.wps-mfw_dms-email {
    color: var(--text-muted) !important;
    font-size: 0.85rem !important;
}

@media (max-width: 768px) {
    /* Single centered column, at least 75% of viewport wide */
    .wps_mfw_membership_multiple_plan, .wps_members_plans {
        grid-template-columns: minmax(75vw, 1fr) !important;
        justify-content: center !important;
    }

    /* Shorter hero image zone */
    body .wps_all_plans_detail_wrapper .membership-card-header {
        min-height: 160px !important;
        padding: var(--s-lg) !important;
    }

    /* Scale down card title on small screens */
    body .wps_membership_plan_title,
    body .wps_membership_plan_content_title {
        font-size: clamp(1.5rem, 7vw, 2.2rem) !important;
    }

    /* Tighter description area */
    .wps_membership_plan_content_desc,
    .wps_membership_plan_content_description {
        padding: var(--s-sm) var(--s-md) !important;
        font-size: 0.9rem !important;
    }

    body .wps_membership_plan_content_desc ul,
    body .wps_membership_plan_content_description ul {
        padding-left: var(--s-lg) !important;
    }

    body .wps_membership_plan_content_desc li,
    body .wps_membership_plan_content_description li {
        letter-spacing: 0.06em !important;
        font-size: 0.78rem !important;
    }

    /* Tighter price */
    body .wps_all_plans_detail_wrapper .wps_membership_plan_content_price {
        padding: var(--s-xs) var(--s-md) !important;
        font-size: 1.3rem !important;
    }

    /* Tighter button and note */
    .wps_mfw_buy_button {
        padding: 0 var(--s-md) var(--s-md) !important;
    }

    .membership-options-note {
        padding: 0 var(--s-md) var(--s-xs) !important;
    }

    /* Cards — let them fill the available column width */
    .wps_mfw_membership_front_page {
        width: 100% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}

/* EVENT TICKETS MANAGER */

/* Search bar */
.wps-etmw_search-input-wrap {
    background: var(--bg-surface);
    border: 1px solid var(--border-light);
    border-radius: var(--rad-lg);
    padding: var(--s-md);
    margin-bottom: var(--s-xl);
    display: flex;
    align-items: center;
    gap: var(--s-md);
    flex-wrap: wrap;
}

.wps-etmw_search-input input[type="text"], .wps-etmw_search-input input[type="search"] {
    background: var(--bg-elevated);
    border: 1px solid var(--border-subtle);
    border-radius: var(--rad-md);
    color: var(--text-primary);
    padding: 8px 14px;
    font-size: 0.88rem;
    transition: border-color 0.2s ease;
}

.wps-etmw_search-input input:focus {
    outline: none;
    border-color: var(--accent-brass);
}

/* Event grid / list containers */
.wps_card {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: var(--s-xl);
}

.wps_list {
    display: flex;
    flex-direction: column;
    gap: var(--s-lg);
}

/* Event card */
.wps-etmw_single-event {
    background: var(--bg-surface);
    border: 1px solid var(--border-light);
    border-radius: var(--rad-lg);
    overflow: hidden;
    transition: border-color 0.2s ease, transform 0.2s ease;
    display: flex;
    flex-direction: column;
}

.wps-etmw_single-event:hover {
    border-color: var(--accent-brass);
    transform: translateY(-3px);
}

/* Date badge */
.wps-etmw_prod-date {
    display: flex;
    align-items: stretch;
}

.wps-etmw_prod-date-in {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: var(--gradient-primary);
    padding: var(--s-sm) var(--s-md);
    min-width: 60px;
    border-radius: var(--rad-sm);
    text-align: center;
    line-height: 1.1;
}

.wps-etmw_start-time-day {
    font-size: 0.6rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: rgba(253, 250, 230, 0.75);
}

.wps-etmw_start-time-date {
    font-family: var(--font-heading);
    font-size: 1.6rem;
    color: var(--text-primary);
    -webkit-text-fill-color: var(--text-primary);
    background: none;
    -webkit-background-clip: unset;
    background-clip: unset;
    line-height: 1;
}

.wps-etmw_start-time-month {
    font-size: 0.64rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: rgba(253, 250, 230, 0.75);
}

.wps-etmw_all-date {
    padding: var(--s-sm) var(--s-md);
    display: flex;
    align-items: center;
    gap: var(--s-sm);
    color: var(--text-muted);
    font-size: 0.8rem;
}

/* Event description and venue */
.wps-etmw_prod-desc {
    color: var(--text-secondary);
    font-size: 0.85rem;
    line-height: 1.55;
    padding: var(--s-md);
    flex-grow: 1;
}

.wps-etmw_prod-venue {
    color: var(--text-muted);
    font-size: 0.78rem;
    padding: 0 var(--s-md) var(--s-xs);
}

/* Price */
.wps-etmw_prod-price, .wps-etmw_prod-price .price {
    color: var(--accent-brass);
    font-family: var(--font-accent);
    font-size: 1rem;
    padding: var(--s-xs) var(--s-md);
}

/* Event buttons */
.wps-etmw_event-btn, .wps-etmw_event-join, a.wps-etmw_event-btn, a.wps-etmw_event-join {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: var(--s-sm) var(--s-md) var(--s-md);
    padding: 10px 20px;
    background: var(--accent-teal);
    color: var(--text-primary);
    border-radius: var(--rad-round);
    text-transform: uppercase;
    letter-spacing: 0.09em;
    font-size: 0.8rem;
    font-weight: 600;
    border: none;
    cursor: pointer;
    text-decoration: none;
    text-align: center;
    transition: background 0.2s ease, transform 0.15s ease;
}

.wps-etmw_event-btn:hover, .wps-etmw_event-join:hover {
    background: var(--accent-teal-light);
    color: var(--text-primary);
    transform: translateY(-2px);
}

/* Single event sections */
.wps_etmfw_product_wrapper, .wps_etmfw_event_info_section {
    background: var(--bg-surface);
    border: 1px solid var(--border-light);
    border-radius: var(--rad-lg);
    padding: var(--s-xl);
    margin-bottom: var(--s-lg);
}

.wps_etmfw_addition_info_section {
    background: var(--bg-elevated);
    border: 1px solid var(--border-light);
    border-radius: var(--rad-lg);
    padding: var(--s-lg);
    margin-bottom: var(--s-md);
}

/* Form field labels */
.wps-form-group__label,
.wps_etmfw_addition_info_section label {
    color: var(--text-secondary) !important;
    font-size: 0.78rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    margin-bottom: var(--s-sm) !important;
    display: block !important;
}

/* Hide the "No" option — only Yes should be selectable */
.wps-form-group__control div:has(input[value="no"]) {
    display: none !important;
}

/* Ticket tier rows */
.wps_etmfw_user_type_row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--s-sm) 0;
    border-bottom: 1px solid var(--border-light);
    gap: var(--s-md);
}

.wps_etmfw_user_type_row:last-child {
    border-bottom: none;
}

.wps_etmfw_user_type_price {
    color: var(--accent-brass);
    font-family: var(--font-accent);
    font-size: 0.95rem;
}

.wps-etmfw-user-type-qty input, .wps_etmfw_user_type_qty input {
    background: var(--bg-elevated);
    border: 1px solid var(--border-subtle);
    border-radius: var(--rad-md);
    color: var(--text-primary);
    padding: 6px 10px;
    width: 64px;
    text-align: center;
}

/* Social share */
.wps_etmfw_social_share_wrapper {
    display: flex;
    gap: var(--s-sm);
    flex-wrap: wrap;
    margin-top: var(--s-md);
}

.wps-etmfw-share-btn {
    display: inline-flex;
    align-items: center;
    gap: var(--s-xs);
    padding: 6px 14px;
    border-radius: var(--rad-round);
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    background: var(--bg-elevated);
    border: 1px solid var(--border-light);
    color: var(--text-muted);
    cursor: pointer;
    transition: border-color 0.15s ease, color 0.15s ease;
    text-decoration: none;
}

.wps-etmfw-share-btn:hover {
    border-color: var(--accent-teal);
    color: var(--accent-teal-light);
}

/* FullCalendar */
.fc {
    font-family: var(--font-body);
}

.fc .fc-toolbar-title {
    font-family: var(--font-heading);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text-primary);
    background: none;
    -webkit-background-clip: unset;
    background-clip: unset;
    -webkit-text-fill-color: var(--text-primary);
}

.fc .fc-button-primary {
    background: var(--accent-teal) !important;
    border-color: var(--accent-teal) !important;
    color: var(--text-primary) !important;
    border-radius: var(--rad-md) !important;
    font-size: 0.78rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.06em !important;
}

.fc .fc-button-primary:hover {
    background: var(--accent-teal-light) !important;
    border-color: var(--accent-teal-light) !important;
}

.fc .fc-button-primary:disabled {
    opacity: 0.4 !important;
}

.fc .fc-daygrid-day-number, .fc .fc-col-header-cell-cushion {
    color: var(--text-muted);
    font-size: 0.76rem;
    text-decoration: none;
}

.fc .fc-event {
    background: var(--accent-teal) !important;
    border-color: var(--accent-teal) !important;
    border-radius: var(--rad-sm) !important;
    font-size: 0.74rem !important;
    cursor: pointer;
}

.fc .fc-event:hover {
    background: var(--accent-teal-light) !important;
    border-color: var(--accent-teal-light) !important;
}

.fc .fc-day-today {
    background: rgba(0, 101, 140, 0.1) !important;
}

.fc .fc-theme-standard td, .fc .fc-theme-standard th, .fc-theme-standard .fc-scrollgrid {
    border-color: var(--border-subtle) !important;
}

@media (max-width: 768px) {
    .wps_card {
        grid-template-columns: 1fr;
    }
}

/* FOOD MENU — Clean list layout, no cards, no prices */

.fmp-wrapper, .fmp-food-menu:not(body) {
    padding: var(--s-xl) 0;
}

/* Category heading */
.fmp-category-title {
    font-family: var(--font-heading);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    background-image: var(--gradient-primary);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
    font-size: 1.3rem;
    padding-bottom: var(--s-sm);
    border-bottom: 1px solid var(--border-light);
    margin-bottom: var(--s-lg);
}

/* Force FMP columns to stack as a full-width list */
.fmp-row {
    display: block !important;
    margin: 0 !important;
}

[class*="fmp-col-"] {
    width: 100% !important;
    flex: none !important;
    max-width: 100% !important;
    float: none !important;
    padding: 0 !important;
}

/* Food item — list row, no card */
.fmp-food-item, .fmp-grid-item, .fmp-box {
    background: none !important;
    border: none !important;
    border-bottom: 1px solid var(--border-subtle) !important;
    border-radius: 0 !important;
    overflow: visible !important;
    transform: none !important;
    transition: transform 0.2s cubic-bezier(0.22, 1, 0.36, 1) !important;
    display: block !important;
}

.fmp-food-item:last-child, .fmp-grid-item:last-child {
    border-bottom: none !important;
}

.fmp-food-item:hover, .fmp-grid-item:hover {
    border-color: var(--border-subtle) !important;
    transform: scale(1.015) translateX(4px) !important;
}

/* Hide images entirely */
.fmp-image-wrap {
    display: none !important;
}

/* Content area */
.fmp-content-wrap {
    padding: var(--s-md) 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
    flex-grow: unset !important;
}

/* Item title — also target the h3 inside since FMP wraps text in <h3> */
.fmp-title,
.fmp-food-item .fmp-title h3,
.fmp-grid-item .fmp-title h3,
.fmp-box .fmp-title h3 {
    font-family: var(--font-heading) !important;
    font-size: 1rem !important;
    font-weight: 900 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    color: var(--text-primary) !important;
    -webkit-text-fill-color: var(--text-primary) !important;
    background: none !important;
    -webkit-background-clip: unset !important;
    background-clip: unset !important;
    margin: 0 !important;
    border: none !important;
    line-height: inherit !important;
}

.fmp-title a,
.fmp-title h3 a {
    color: inherit !important;
    -webkit-text-fill-color: inherit !important;
    text-decoration: none !important;
}

/* Description */
.fmp-body {
    color: var(--text-muted);
    font-size: 0.82rem;
    font-style: italic;
    line-height: 1.5;
    flex-grow: unset;
}

/* Hide prices and footer entirely */
.fmp-footer,
.fmp-price-wrapper,
.fmp-price-with-title,
.fmp-btn-read-more,
.fmp-wc-add-to-cart-btn,
.fmp-add-to-cart {
    display: none !important;
}

/* Floating cart + mini cart drawer */
.fmp-cart-float-menu {
    background: var(--accent-teal);
    color: var(--text-primary);
    border-radius: var(--rad-round);
    box-shadow: 0 4px 20px rgba(0, 101, 140, 0.35);
}

.fmp-minicart-drawer {
    background: var(--bg-surface);
    border-left: 1px solid var(--border-light);
    color: var(--text-primary);
}

/* Pagination */
.fmp-pagination {
    margin-top: var(--s-xl);
    display: flex;
    justify-content: center;
}

/* Loading overlay */
.fmp-loading, .fmp-pre-loader {
    opacity: 0.4;
}

