/**
 * Gymnastics Plus - Membership Styles
 * 
 * Design system and styles for all membership pages:
 * Login, Pricing, Checkout, Confirmation, Verification, Welcome, Onboarding
 * 
 * @package suspended-starter-developer
 * @since 2.2.0
 */

/* ==========================================================================
   CSS VARIABLES / DESIGN TOKENS
   ========================================================================== */

:root {
    /* Brand Colors */
    --gp-gold: #DFB859;
    --gp-gold-light: #e5c872;
    --gp-gold-dark: #c9a449;
    --gp-black: #000000;
    --gp-black-soft: #111111;
    --gp-white: #ffffff;
    
    /* Gradients */
    --gp-cta-gradient: linear-gradient(135deg, #7c3aed, #a855f7);
    --gp-cta-gradient-hover: linear-gradient(135deg, #6d28d9, #9333ea);
    --gp-gold-gradient: linear-gradient(135deg, #DFB859, #e5c872);
    
    /* Surfaces */
    --gp-surface-1: #0a0a0a;
    --gp-surface-2: #111111;
    --gp-surface-3: #1a1a1a;
    --gp-surface-4: #222222;
    --gp-border: #333333;
    --gp-border-light: #444444;
    
    /* Text */
    --gp-text-primary: #ffffff;
    --gp-text-secondary: #a0a0a0;
    --gp-text-muted: #666666;
    --gp-text-inverse: #000000;
    
    /* Status Colors */
    --gp-success: #22c55e;
    --gp-success-bg: rgba(34, 197, 94, 0.1);
    --gp-warning: #eab308;
    --gp-warning-bg: rgba(234, 179, 8, 0.1);
    --gp-error: #ef4444;
    --gp-error-bg: rgba(239, 68, 68, 0.1);
    --gp-info: #3b82f6;
    --gp-info-bg: rgba(59, 130, 246, 0.1);
    
    /* Spacing */
    --gp-space-xs: 4px;
    --gp-space-sm: 8px;
    --gp-space-md: 16px;
    --gp-space-lg: 24px;
    --gp-space-xl: 32px;
    --gp-space-2xl: 48px;
    --gp-space-3xl: 64px;
    
    /* Typography */
    --gp-font-display: 'Trade Gothic Next', -apple-system, BlinkMacSystemFont, sans-serif;
    --gp-font-body: 'Poppins', -apple-system, BlinkMacSystemFont, sans-serif;
    
    /* Font Sizes */
    --gp-text-xs: 0.75rem;
    --gp-text-sm: 0.875rem;
    --gp-text-base: 1rem;
    --gp-text-lg: 1.125rem;
    --gp-text-xl: 1.25rem;
    --gp-text-2xl: 1.5rem;
    --gp-text-3xl: 1.875rem;
    --gp-text-4xl: 2.25rem;
    --gp-text-5xl: 3rem;
    
    /* Radii */
    --gp-radius-sm: 4px;
    --gp-radius-md: 8px;
    --gp-radius-lg: 12px;
    --gp-radius-xl: 16px;
    --gp-radius-2xl: 24px;
    --gp-radius-full: 9999px;
    
    /* Shadows */
    --gp-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.5);
    --gp-shadow-md: 0 4px 6px rgba(0, 0, 0, 0.4);
    --gp-shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.3);
    --gp-shadow-xl: 0 20px 25px rgba(0, 0, 0, 0.3);
    --gp-shadow-glow: 0 0 20px rgba(223, 184, 89, 0.3);
    
    /* Transitions */
    --gp-transition-fast: 150ms ease;
    --gp-transition-base: 250ms ease;
    --gp-transition-slow: 350ms ease;
    
    /* Layout */
    --gp-max-width: 1200px;
    --gp-content-width: 800px;
    --gp-narrow-width: 480px;
}

/* ==========================================================================
   BASE / RESET
   ========================================================================== */

.gp-membership-page {
    background: var(--gp-surface-1);
    color: var(--gp-text-primary);
    font-family: var(--gp-font-body);
    min-height: 100vh;
}

.gp-membership-page *,
.gp-membership-page *::before,
.gp-membership-page *::after {
    box-sizing: border-box;
}

.gp-membership-page h1,
.gp-membership-page h2,
.gp-membership-page h3,
.gp-membership-page h4,
.gp-membership-page h5,
.gp-membership-page h6 {
    color: inherit;
}

/* ==========================================================================
   LAYOUT
   ========================================================================== */

.gp-membership-container {
    max-width: var(--gp-max-width);
    margin: 0 auto;
    padding: var(--gp-space-lg);
}

.gp-membership-container--narrow {
    max-width: var(--gp-narrow-width);
}

.gp-membership-container--content {
    max-width: var(--gp-content-width);
}

.gp-membership-header {
    text-align: center;
    margin-bottom: var(--gp-space-2xl);
}

.gp-membership-header__logo {
    max-width: 300px;
    margin-bottom: var(--gp-space-lg);
}

.gp-membership-header__title {
    font-family: var(--gp-font-display);
    font-size: var(--gp-text-4xl);
    font-weight: 700;
    margin: 0 0 var(--gp-space-sm);
    color: var(--gp-text-primary);
}

.gp-membership-header__subtitle {
    font-size: var(--gp-text-lg);
    color: var(--gp-text-secondary);
    margin: 0;
}

/* ==========================================================================
   CARDS
   ========================================================================== */

.gp-card {
    background: var(--gp-surface-2);
    border: 1px solid var(--gp-border);
    border-radius: var(--gp-radius-lg);
    padding: var(--gp-space-xl);
}

.gp-card--elevated {
    box-shadow: var(--gp-shadow-lg);
}

.gp-card--highlighted {
    border-color: var(--gp-gold);
    box-shadow: var(--gp-shadow-glow);
}

.gp-card__header {
    margin-bottom: var(--gp-space-lg);
}

.gp-card__title {
    font-family: var(--gp-font-display);
    font-size: var(--gp-text-xl);
    font-weight: 700;
    margin: 0;
}

.gp-card__badge {
    display: inline-block;
    background: var(--gp-gold-gradient);
    color: var(--gp-text-inverse);
    font-size: var(--gp-text-xs);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: var(--gp-space-xs) var(--gp-space-sm);
    border-radius: var(--gp-radius-full);
    margin-bottom: var(--gp-space-sm);
}

/* ==========================================================================
   PRICING CARDS
   ========================================================================== */

.gp-pricing-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: var(--gp-space-lg);
    margin: var(--gp-space-2xl) 0;
}

.gp-pricing-card {
    background: var(--gp-surface-2);
    border: 1px solid var(--gp-border);
    border-radius: var(--gp-radius-xl);
    padding: var(--gp-space-xl);
    display: flex;
    flex-direction: column;
    transition: transform var(--gp-transition-base), box-shadow var(--gp-transition-base);
}

.gp-pricing-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--gp-shadow-xl);
}

.gp-pricing-card--featured {
    border-color: var(--gp-gold);
    box-shadow: var(--gp-shadow-glow);
    position: relative;
}

.gp-pricing-card--featured::before {
    content: 'Great Value';
    position: absolute;
    top: -12px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--gp-gold-gradient);
    color: var(--gp-text-inverse);
    font-size: var(--gp-text-xs);
    font-weight: 600;
    text-transform: uppercase;
    padding: var(--gp-space-xs) var(--gp-space-md);
    border-radius: var(--gp-radius-full);
}

.gp-pricing-card__name {
    font-family: var(--gp-font-display);
    font-size: var(--gp-text-lg);
    font-weight: 700;
    color: var(--gp-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin: 0 0 var(--gp-space-md);
}

.gp-pricing-card__price {
    margin-bottom: var(--gp-space-lg);
}

.gp-pricing-card__amount {
    font-family: var(--gp-font-display);
    font-size: var(--gp-text-5xl);
    font-weight: 700;
    color: var(--gp-text-primary);
    line-height: 1;
}

.gp-pricing-card__amount::before {
    content: '$';
    font-size: var(--gp-text-2xl);
    vertical-align: super;
}

.gp-pricing-card__period {
    font-size: var(--gp-text-base);
    color: var(--gp-text-muted);
}

.gp-pricing-card__savings {
    display: inline-block;
    background: var(--gp-success-bg);
    color: var(--gp-success);
    font-size: var(--gp-text-sm);
    font-weight: 500;
    padding: var(--gp-space-xs) var(--gp-space-sm);
    border-radius: var(--gp-radius-sm);
    margin-top: var(--gp-space-sm);
}

.gp-pricing-card__features {
    list-style: none;
    padding: 0;
    margin: 0 0 var(--gp-space-xl);
    flex-grow: 1;
}

.gp-pricing-card__feature {
    display: flex;
    align-items: flex-start;
    gap: var(--gp-space-sm);
    padding: var(--gp-space-sm) 0;
    font-size: var(--gp-text-sm);
    color: var(--gp-text-secondary);
}

.gp-pricing-card__feature::before {
    content: '✓';
    color: var(--gp-gold);
    font-weight: 700;
    flex-shrink: 0;
}

/* ==========================================================================
   BUTTONS
   ========================================================================== */

.gp-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--gp-space-sm);
    font-family: var(--gp-font-body);
    font-size: var(--gp-text-base);
    font-weight: 500;
    text-decoration: none;
    padding: var(--gp-space-md) var(--gp-space-xl);
    border-radius: var(--gp-radius-md);
    border: none;
    cursor: pointer;
    transition: all var(--gp-transition-fast);
    white-space: nowrap;
}

.gp-btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.gp-btn--primary {
    background: var(--gp-cta-gradient);
    color: var(--gp-white);
}

.gp-btn--primary:hover:not(:disabled) {
    background: var(--gp-cta-gradient-hover);
    transform: translateY(-1px);
    box-shadow: var(--gp-shadow-md);
}

.gp-btn--secondary {
    background: transparent;
    color: var(--gp-text-primary);
    border: 1px solid var(--gp-border-light);
}

.gp-btn--secondary:hover:not(:disabled) {
    border-color: var(--gp-gold);
    color: var(--gp-gold);
}

.gp-btn--gold {
    background: var(--gp-gold-gradient);
    color: var(--gp-text-inverse);
}

.gp-btn--gold:hover:not(:disabled) {
    filter: brightness(1.1);
}

.gp-btn--ghost {
    background: transparent;
    color: var(--gp-text-secondary);
    padding: var(--gp-space-sm) var(--gp-space-md);
}

.gp-btn--ghost:hover:not(:disabled) {
    color: var(--gp-text-primary);
}

.gp-btn--full {
    width: 100%;
}

.gp-btn--lg {
    padding: var(--gp-space-lg) var(--gp-space-2xl);
    font-size: var(--gp-text-lg);
}

/* ==========================================================================
   GOOGLE SIGN-IN BUTTON
   ========================================================================== */

.gp-google-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--gp-space-sm);
    width: 100%;
    padding: var(--gp-space-md) var(--gp-space-lg);
    background: var(--gp-white);
    color: var(--gp-text-inverse);
    font-family: var(--gp-font-body);
    font-size: var(--gp-text-base);
    font-weight: 500;
    text-decoration: none;
    border-radius: var(--gp-radius-md);
    border: 1px solid #dadce0;
    transition: all var(--gp-transition-fast);
}

.gp-google-btn:hover {
    background: #f8f9fa;
    box-shadow: var(--gp-shadow-sm);
}

.gp-google-btn__icon {
    flex-shrink: 0;
}

/* ==========================================================================
   FORMS
   ========================================================================== */

.gp-form-group {
    margin-bottom: var(--gp-space-lg);
}

.gp-form-label {
    display: block;
    font-size: var(--gp-text-sm);
    font-weight: 500;
    color: var(--gp-text-primary);
    margin-bottom: var(--gp-space-sm);
}

.gp-form-label--required::after {
    content: '*';
    color: var(--gp-error);
    margin-left: var(--gp-space-xs);
}

.gp-form-input,
.gp-form-select,
.gp-form-textarea {
    width: 100%;
    padding: var(--gp-space-md);
    background: var(--gp-surface-3);
    border: 1px solid var(--gp-border);
    border-radius: var(--gp-radius-md);
    color: var(--gp-text-primary);
    font-family: var(--gp-font-body);
    font-size: var(--gp-text-base);
    transition: border-color var(--gp-transition-fast), box-shadow var(--gp-transition-fast);
}

.gp-form-input:focus,
.gp-form-select:focus,
.gp-form-textarea:focus {
    outline: none;
    border-color: var(--gp-gold);
    box-shadow: 0 0 0 3px rgba(223, 184, 89, 0.2);
}

.gp-form-input::placeholder {
    color: var(--gp-text-muted);
}

.gp-form-input--error {
    border-color: var(--gp-error);
}

.gp-form-input--error:focus {
    box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.2);
}

.gp-form-error {
    font-size: var(--gp-text-sm);
    color: var(--gp-error);
    margin-top: var(--gp-space-xs);
}

.gp-form-hint {
    font-size: var(--gp-text-sm);
    color: var(--gp-text-muted);
    margin-top: var(--gp-space-xs);
}

.gp-form-row {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--gp-space-md);
}

@media (max-width: 480px) {
    .gp-form-row {
        grid-template-columns: 1fr;
    }
}

/* Checkbox / Radio */
.gp-form-checkbox {
    display: flex;
    align-items: flex-start;
    gap: var(--gp-space-sm);
    cursor: pointer;
}

.gp-form-checkbox input {
    width: 18px;
    height: 18px;
    margin-top: 2px;
    accent-color: var(--gp-gold);
}

.gp-form-checkbox span {
    font-size: var(--gp-text-sm);
    color: var(--gp-text-secondary);
}

/* ==========================================================================
   DIVIDER
   ========================================================================== */

.gp-divider {
    display: flex;
    align-items: center;
    gap: var(--gp-space-md);
    margin: var(--gp-space-xl) 0;
    color: var(--gp-text-muted);
    font-size: var(--gp-text-sm);
}

.gp-divider::before,
.gp-divider::after {
    content: '';
    flex: 1;
    height: 1px;
    background: var(--gp-border);
}

/* ==========================================================================
   ALERTS / STATUS MESSAGES
   ========================================================================== */

.gp-alert {
    padding: var(--gp-space-md) var(--gp-space-lg);
    border-radius: var(--gp-radius-md);
    margin-bottom: var(--gp-space-lg);
    display: flex;
    align-items: flex-start;
    gap: var(--gp-space-md);
}

.gp-alert--success {
    background: var(--gp-success-bg);
    border: 1px solid var(--gp-success);
    color: var(--gp-success);
}

.gp-alert--warning {
    background: var(--gp-warning-bg);
    border: 1px solid var(--gp-warning);
    color: var(--gp-warning);
}

.gp-alert--error {
    background: var(--gp-error-bg);
    border: 1px solid var(--gp-error);
    color: var(--gp-error);
}

.gp-alert--info {
    background: var(--gp-info-bg);
    border: 1px solid var(--gp-info);
    color: var(--gp-info);
}

.gp-alert__icon {
    flex-shrink: 0;
    font-size: var(--gp-text-xl);
}

.gp-alert__content {
    flex: 1;
}

.gp-alert__title {
    font-weight: 600;
    margin-bottom: var(--gp-space-xs);
}

/* ==========================================================================
   VERIFICATION PENDING PAGE
   ========================================================================== */

.gp-verification {
    text-align: center;
    padding: var(--gp-space-3xl) var(--gp-space-lg);
}

.gp-verification__icon {
    font-size: 64px;
    margin-bottom: var(--gp-space-lg);
}

.gp-verification__title {
    font-family: var(--gp-font-display);
    font-size: var(--gp-text-3xl);
    font-weight: 700;
    margin: 0 0 var(--gp-space-md);
}

.gp-verification__message {
    font-size: var(--gp-text-lg);
    color: var(--gp-text-secondary);
    margin: 0 0 var(--gp-space-xl);
    max-width: 500px;
    margin-left: auto;
    margin-right: auto;
}

.gp-verification__email {
    display: inline-block;
    background: var(--gp-surface-3);
    padding: var(--gp-space-sm) var(--gp-space-md);
    border-radius: var(--gp-radius-md);
    font-family: monospace;
    margin: var(--gp-space-md) 0;
}

.gp-verification__actions {
    display: flex;
    justify-content: center;
    gap: var(--gp-space-md);
    flex-wrap: wrap;
    margin-top: var(--gp-space-xl);
}

.gp-verification__help {
    margin-top: var(--gp-space-2xl);
    padding-top: var(--gp-space-xl);
    border-top: 1px solid var(--gp-border);
}

.gp-verification__help-title {
    font-size: var(--gp-text-sm);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--gp-text-muted);
    margin-bottom: var(--gp-space-md);
}

/* ==========================================================================
   ONBOARDING MODAL (Legacy - for dashboard modal use)
   ========================================================================== */

.gp-onboarding-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.9);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--gp-space-lg);
}

.gp-onboarding-modal {
    background: var(--gp-surface-2);
    border: 1px solid var(--gp-border);
    border-radius: var(--gp-radius-xl);
    max-width: 600px;
    width: 100%;
    max-height: 90vh;
    overflow-y: auto;
    box-shadow: var(--gp-shadow-xl);
}

.gp-onboarding-modal__header {
    padding: var(--gp-space-xl);
    border-bottom: 1px solid var(--gp-border);
    text-align: center;
}

.gp-onboarding-modal__title {
    font-family: var(--gp-font-display);
    font-size: var(--gp-text-2xl);
    font-weight: 700;
    margin: 0 0 var(--gp-space-sm);
}

.gp-onboarding-modal__subtitle {
    font-size: var(--gp-text-sm);
    color: var(--gp-text-secondary);
    margin: 0;
}

.gp-onboarding-modal__progress {
    display: flex;
    justify-content: center;
    gap: var(--gp-space-sm);
    margin-top: var(--gp-space-lg);
}

.gp-onboarding-modal__step {
    width: 40px;
    height: 4px;
    background: var(--gp-border);
    border-radius: var(--gp-radius-full);
    transition: background var(--gp-transition-base);
}

.gp-onboarding-modal__step--active {
    background: var(--gp-gold);
}

.gp-onboarding-modal__step--complete {
    background: var(--gp-success);
}

.gp-onboarding-modal__body {
    padding: var(--gp-space-xl);
}

.gp-onboarding-modal__footer {
    padding: var(--gp-space-lg) var(--gp-space-xl);
    border-top: 1px solid var(--gp-border);
    display: flex;
    justify-content: space-between;
    gap: var(--gp-space-md);
}

/* ==========================================================================
   ONBOARDING CHECKLIST (Dashboard)
   ========================================================================== */

.gp-checklist {
    background: var(--gp-surface-2);
    border: 1px solid var(--gp-border);
    border-radius: var(--gp-radius-lg);
    padding: var(--gp-space-lg);
    margin-bottom: var(--gp-space-xl);
}

.gp-checklist__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--gp-space-md);
}

.gp-checklist__title {
    font-weight: 600;
    margin: 0;
}

.gp-checklist__percentage {
    font-size: var(--gp-text-sm);
    color: var(--gp-gold);
    font-weight: 600;
}

.gp-checklist__progress-bar {
    height: 8px;
    background: var(--gp-surface-3);
    border-radius: var(--gp-radius-full);
    overflow: hidden;
    margin-bottom: var(--gp-space-lg);
}

.gp-checklist__progress-fill {
    height: 100%;
    background: var(--gp-gold-gradient);
    border-radius: var(--gp-radius-full);
    transition: width var(--gp-transition-slow);
}

.gp-checklist__items {
    list-style: none;
    padding: 0;
    margin: 0;
}

.gp-checklist__item {
    display: flex;
    align-items: center;
    gap: var(--gp-space-md);
    padding: var(--gp-space-sm) 0;
}

.gp-checklist__item--complete {
    opacity: 0.6;
}

.gp-checklist__checkbox {
    width: 20px;
    height: 20px;
    border: 2px solid var(--gp-border);
    border-radius: var(--gp-radius-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.gp-checklist__item--complete .gp-checklist__checkbox {
    background: var(--gp-success);
    border-color: var(--gp-success);
}

.gp-checklist__checkbox::after {
    content: '✓';
    color: var(--gp-white);
    font-size: 12px;
    font-weight: 700;
    opacity: 0;
}

.gp-checklist__item--complete .gp-checklist__checkbox::after {
    opacity: 1;
}

.gp-checklist__label {
    flex: 1;
    font-size: var(--gp-text-sm);
}

.gp-checklist__item--complete .gp-checklist__label {
    text-decoration: line-through;
}

.gp-checklist__action {
    font-size: var(--gp-text-sm);
    color: var(--gp-gold);
    text-decoration: none;
}

.gp-checklist__action:hover {
    text-decoration: underline;
}

/* ==========================================================================
   LOADING STATES
   ========================================================================== */

.gp-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--gp-space-xl);
}

.gp-spinner {
    width: 32px;
    height: 32px;
    border: 3px solid var(--gp-border);
    border-top-color: var(--gp-gold);
    border-radius: 50%;
    animation: gp-spin 0.8s linear infinite;
}

@keyframes gp-spin {
    to { transform: rotate(360deg); }
}

.gp-btn--loading {
    position: relative;
    color: transparent !important;
}

.gp-btn--loading::after {
    content: '';
    position: absolute;
    width: 16px;
    height: 16px;
    border: 2px solid currentColor;
    border-top-color: transparent;
    border-radius: 50%;
    animation: gp-spin 0.8s linear infinite;
}

/* ==========================================================================
   PMPro OVERRIDES - BASE
   ========================================================================== */

.pmpro_checkout {
    max-width: var(--gp-content-width);
    margin: 0 auto;
}

.pmpro_checkout-fields {
    background: var(--gp-surface-2);
    border: 1px solid var(--gp-border);
    padding: var(--gp-space-xl);
    border-radius: var(--gp-radius-lg);
    margin-bottom: var(--gp-space-lg);
}

.pmpro_checkout-field {
    margin-bottom: var(--gp-space-lg);
}

.pmpro_checkout-field label {
    display: block;
    font-size: var(--gp-text-sm);
    font-weight: 500;
    color: var(--gp-text-primary);
    margin-bottom: var(--gp-space-sm);
}

.pmpro_checkout-field input,
.pmpro_checkout-field select {
    width: 100%;
    padding: var(--gp-space-md);
    background: var(--gp-surface-3);
    border: 1px solid var(--gp-border);
    border-radius: var(--gp-radius-md);
    color: var(--gp-text-primary);
    font-size: var(--gp-text-base);
}

.pmpro_checkout-field input:focus,
.pmpro_checkout-field select:focus {
    outline: none;
    border-color: var(--gp-gold);
}

.pmpro_btn {
    background: var(--gp-cta-gradient) !important;
    color: var(--gp-white) !important;
    border: none !important;
    padding: var(--gp-space-md) var(--gp-space-xl) !important;
    border-radius: var(--gp-radius-md) !important;
    font-weight: 500 !important;
    cursor: pointer;
    transition: all var(--gp-transition-fast);
}

.pmpro_btn:hover {
    background: var(--gp-cta-gradient-hover) !important;
}

/* ==========================================================================
   RESPONSIVE - BASE
   ========================================================================== */

@media (max-width: 768px) {
    .gp-membership-header__title {
        font-size: var(--gp-text-3xl);
    }
    
    .gp-pricing-grid {
        grid-template-columns: 1fr;
    }
    
    .gp-onboarding-modal__footer {
        flex-direction: column;
    }
    
    .gp-onboarding-modal__footer .gp-btn {
        width: 100%;
    }
}

@media (max-width: 480px) {
    .gp-membership-container {
        padding: var(--gp-space-md);
    }
    
    .gp-card {
        padding: var(--gp-space-lg);
    }
    
    .gp-pricing-card {
        padding: var(--gp-space-lg);
    }
    
    .gp-verification__actions {
        flex-direction: column;
    }
    
    .gp-verification__actions .gp-btn {
        width: 100%;
    }
}

/* ==========================================================================
   PMPro CHECKOUT PAGE - LOGO
   ========================================================================== */

.pmpro_checkout-logo {
    text-align: center;
    padding: 32px 0;
    width: 100%;
}

.pmpro_checkout-logo img {
    max-width: 280px !important;
    height: auto;
    margin: 0 auto;
    display: block;
}

/* ==========================================================================
   PMPro CHECKOUT - GOOGLE SIGNIN & OPTIONS
   ========================================================================== */

.gp-checkout-options {
    max-width: 634px;
    margin: 0 auto 24px;
    padding: 0;
    text-align: center;
}

.gp-checkout-google {
    margin-bottom: 20px;
}

.gp-checkout-google .gp-google-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    width: 100%;
    padding: 16px 24px;
    background: #ffffff;
    color: #1a1a1a !important;
    font-size: 16px;
    font-weight: 500;
    text-decoration: none;
    border: 1px solid #dadce0;
    border-radius: 8px;
    transition: all 0.2s ease;
}

.gp-checkout-google .gp-google-btn:hover {
    background: #f8f9fa;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    text-decoration: none;
    color: #1a1a1a !important;
}

.gp-checkout-divider {
    display: flex;
    align-items: center;
    gap: 16px;
    margin: 24px 0;
    color: #666;
    font-size: 15px;
}

.gp-checkout-divider::before,
.gp-checkout-divider::after {
    content: '';
    flex: 1;
    height: 1px;
    background: #e5e5e5;
}

.gp-checkout-login-link {
    text-align: center;
    margin-bottom: 20px;
    font-size: 15px;
    color: #666;
}

.gp-checkout-login-link a {
    color: #7c3aed;
    text-decoration: none;
    font-weight: 500;
}

.gp-checkout-login-link a:hover {
    text-decoration: underline;
}

/* ==========================================================================
   PMPro CHECKOUT - ACCOUNT INFORMATION SECTION FIXES
   ========================================================================== */

/* Hide "Account Information" header */
#pmpro_user_fields .pmpro_form_heading,
#pmpro_user_fields .pmpro_form_legend {
    display: none !important;
}

/* Hide username field (using email as username) */
#pmpro_user_fields .pmpro_form_field-username {
    display: none !important;
}

/* Hide PMPro's default "Already have an account" in card actions */
#pmpro_user_fields .pmpro_card_actions,
.pmpro_card_actions a[href*="login"],
#pmpro_account_login_wrap {
    display: none !important;
}

/* Make form fields container a flex column for reordering */
#pmpro_user_fields .pmpro_form_fields {
    display: flex !important;
    flex-direction: column !important;
}

/* Reorder fields: Email FIRST, Password SECOND */
#pmpro_user_fields .pmpro_form_fields > .pmpro_cols-2:nth-of-type(2) {
    order: 1 !important;
}

#pmpro_user_fields .pmpro_form_fields > .pmpro_cols-2:nth-of-type(1) {
    order: 2 !important;
}

/* Honeypot stays at the end */
#pmpro_user_fields .pmpro_hidden {
    order: 99 !important;
}

/* Fix two-column grid layout - IMPORTANT: prevent text breaking */
#pmpro_user_fields .pmpro_cols-2 {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 20px !important;
    margin-bottom: 20px !important;
    width: 100% !important;
}

/* Ensure form fields take full width */
#pmpro_user_fields .pmpro_form_field {
    width: 100% !important;
    min-width: 0 !important;
}

/* Fix labels - prevent vertical text stacking */
#pmpro_user_fields .pmpro_form_label {
    display: block !important;
    white-space: normal !important;
    word-wrap: normal !important;
    margin-bottom: 8px !important;
}

/* Fix inputs to be full width */
#pmpro_user_fields .pmpro_form_input {
    width: 100% !important;
    box-sizing: border-box !important;
}

/* Password field container */
#pmpro_user_fields .pmpro_form_field-password {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
}

/* Show Password toggle - fix layout */
#pmpro_user_fields .pmpro_form_field-password-toggle {
    margin-top: 8px !important;
}

.pmpro_btn-password-toggle {
    background: #f3f4f6 !important;
    color: #374151 !important;
    border: 1px solid #d1d5db !important;
    padding: 6px 12px !important;
    font-size: 13px !important;
    border-radius: 6px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    white-space: nowrap !important;
    width: auto !important;
}

.pmpro_btn-password-toggle:hover {
    background: #e5e7eb !important;
}

/* Fix the password toggle text from wrapping */
.pmpro_form_field-password-toggle-state {
    white-space: nowrap !important;
}

/* Responsive: Stack fields on mobile */
@media (max-width: 600px) {
    #pmpro_user_fields .pmpro_cols-2 {
        grid-template-columns: 1fr !important;
    }
}
/* ==========================================================================
   PMPro CHECKOUT - FINAL ADJUSTMENTS (v2)
   ========================================================================== */

/* Reduce spacing between email and password rows */
#pmpro_user_fields .pmpro_form_fields > .pmpro_cols-2 {
    margin-bottom: 8px !important;
}

/* Align Show Password button to the left under Password field */
#pmpro_user_fields .pmpro_form_field-password-toggle,
.pmpro_form_field-password .pmpro_form_field-password-toggle {
    display: block !important;
    text-align: left !important;
    margin-top: 6px !important;
    justify-content: flex-start !important;
}

/* Center the Start My Membership button - target all parent containers */
#pmpro_form,
.pmpro_form,
form.pmpro_form {
    width: 100% !important;
}

.pmpro_form_submit,
div.pmpro_form_submit {
    width: 100% !important;
    text-align: center !important;
    display: block !important;
}

#pmpro_submit_span,
span#pmpro_submit_span {
    display: block !important;
    text-align: center !important;
    width: 100% !important;
}

#pmpro_btn-submit,
input#pmpro_btn-submit,
.pmpro_btn-submit-checkout {
    width: auto !important;
    display: inline-block !important;
    float: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Align all labels to the left (fix Password label centering) */
#pmpro_user_fields .pmpro_form_label {
    text-align: left !important;
}

#pmpro_user_fields .pmpro_form_field-password .pmpro_form_label,
#pmpro_user_fields .pmpro_form_field-password > label {
    text-align: left !important;
    display: block !important;
    width: 100% !important;
}
/* Reduce gap between Email and Password rows */
#pmpro_user_fields .pmpro_form_fields > .pmpro_cols-2 {
    margin-bottom: 4px !important;
    margin-top: 0 !important;
}

/* Tighten spacing on individual fields */
#pmpro_user_fields .pmpro_form_field {
    margin-bottom: 12px !important;
}
/* ==========================================================================
   PMPro CHECKOUT - TRUST SIGNALS
   ========================================================================== */

.gp-checkout-trust {
    max-width: 634px;
    margin: 24px auto 0;
    padding-top: 24px;
    border-top: 1px solid #e5e7eb;
}

.gp-checkout-trust__items {
    display: flex;
    justify-content: center;
    gap: 32px;
    flex-wrap: wrap;
}

.gp-checkout-trust__item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: #6b7280;
}

.gp-checkout-trust__item svg {
    color: #22c55e;
    flex-shrink: 0;
}

/* ==========================================================================
   PMPro CHECKOUT - RESPONSIVE
   ========================================================================== */

@media (max-width: 600px) {
    #pmpro_user_fields .pmpro_cols-2 {
        grid-template-columns: 1fr !important;
    }
    
    .gp-checkout-trust__items {
        flex-direction: column;
        align-items: center;
        gap: 12px;
    }
    
    .gp-checkout-options {
        padding: 0 16px;
    }
}

/* ==========================================================================
   ONBOARDING PAGE STYLES (Welcome Page)
   ========================================================================== */

.gp-onboarding {
    min-height: 100vh;
    background: linear-gradient(135deg, #0a0a0a 0%, #1a1a1a 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px 20px;
}

.gp-onboarding__container {
    max-width: 480px;
    width: 100%;
}

.gp-onboarding__logo {
    text-align: center;
    margin-bottom: 32px;
}

.gp-onboarding__logo img {
    max-width: 200px;
    height: auto;
}

.gp-onboarding__card {
    background: #111111;
    border: 1px solid #333;
    border-radius: 16px;
    padding: 40px;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4);
}

.gp-onboarding__header {
    text-align: center;
    margin-bottom: 32px;
}

.gp-onboarding__title {
    font-family: var(--gp-font-display, 'Trade Gothic Next', sans-serif);
    font-size: 28px;
    font-weight: 700;
    color: #ffffff;
    margin: 0 0 8px;
}

.gp-onboarding__subtitle {
    font-size: 16px;
    color: #a0a0a0;
    margin: 0;
}

.gp-onboarding__section {
    margin-bottom: 24px;
}

/* Role selection cards */
.gp-onboarding__roles {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-top: 12px;
}

.gp-onboarding__role {
    position: relative;
}

.gp-onboarding__role input {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.gp-onboarding__role-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 24px 16px;
    background: #1a1a1a;
    border: 2px solid #333;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.2s ease;
}

.gp-onboarding__role input:checked + .gp-onboarding__role-card {
    border-color: #DFB859;
    background: rgba(223, 184, 89, 0.1);
}

.gp-onboarding__role-card:hover {
    border-color: #444;
}

.gp-onboarding__role input:checked + .gp-onboarding__role-card:hover {
    border-color: #DFB859;
}

.gp-onboarding__role-icon {
    font-size: 32px;
    margin-bottom: 8px;
}

.gp-onboarding__role-label {
    font-size: 16px;
    font-weight: 600;
    color: #ffffff;
    margin-bottom: 4px;
}

.gp-onboarding__role-desc {
    font-size: 12px;
    color: #888;
    text-align: center;
}

/* Name fields */
.gp-onboarding__fields {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-bottom: 24px;
}

.gp-onboarding__field {
    display: flex;
    flex-direction: column;
}

.gp-onboarding__field--full {
    grid-column: 1 / -1;
}

.gp-onboarding__label {
    font-size: 14px;
    font-weight: 500;
    color: #ffffff;
    margin-bottom: 8px;
}

.gp-onboarding__input {
    padding: 12px 14px;
    background: #0a0a0a;
    border: 1px solid #333;
    border-radius: 8px;
    color: #ffffff;
    font-size: 16px;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.gp-onboarding__input:focus {
    outline: none;
    border-color: #DFB859;
    box-shadow: 0 0 0 3px rgba(223, 184, 89, 0.2);
}

.gp-onboarding__input::placeholder {
    color: #666;
}

/* Parent linking field */
.gp-onboarding__parent-link {
    display: none;
    margin-bottom: 24px;
}

.gp-onboarding__parent-link.is-visible {
    display: block;
}

.gp-onboarding__parent-link-hint {
    font-size: 12px;
    color: #888;
    margin-top: 6px;
}

/* Submit button */
.gp-onboarding__submit {
    width: 100%;
    padding: 14px 24px;
    background: linear-gradient(135deg, #7c3aed, #a855f7);
    color: #ffffff;
    font-size: 16px;
    font-weight: 600;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    transition: transform 0.2s, box-shadow 0.2s;
}

.gp-onboarding__submit:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(124, 58, 237, 0.4);
}

.gp-onboarding__submit:disabled {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none;
}

/* Error message */
.gp-onboarding__error {
    background: rgba(239, 68, 68, 0.1);
    border: 1px solid #ef4444;
    color: #ef4444;
    padding: 12px 16px;
    border-radius: 8px;
    margin-bottom: 24px;
    font-size: 14px;
    display: none;
}

.gp-onboarding__error.is-visible {
    display: block;
}

/* ==========================================================================
   RESPONSIVE - ONBOARDING
   ========================================================================== */

@media (max-width: 480px) {
    .gp-onboarding__card {
        padding: 24px;
    }
    
    .gp-onboarding__roles {
        grid-template-columns: 1fr;
    }
    
    .gp-onboarding__fields {
        grid-template-columns: 1fr;
    }
}

