/*
 * Paid Member Subscriptions — Master Child Theme Override
 * ---------------------------------------------------------
 * Load AFTER:
 * /wp-content/plugins/paid-member-subscriptions/assets/css/style-front-end.css
 *
 * Plugin CSS is intentionally kept intact.
 * This file only adds child-theme overrides.
 *
 * Elementor Global Colors
 * Primary      #164B35
 * Secondary    #76C340
 * Text         #284239
 * Accent       #4C8C48
 * Dark Green   #123827
 * Light Green  #E5EFDB
 * Cream        #FBFAF4
 * Light Cream  #EEF3E9
 * Beige        #F1DDB2
 * White        #FFFFFF
 * Forest Green #1E5B3D
 */

/* ==========================================================
   GLOBAL PMS PALETTE
   ========================================================== */

:root {
    --pms-primary: #164B35;
    --pms-secondary: #76C340;
    --pms-text: #284239;
    --pms-accent: #4C8C48;
    --pms-accent-hover: #3D713A;
    --pms-dark-green: #123827;
    --pms-light-green: #E5EFDB;
    --pms-cream: #FBFAF4;
    --pms-light-cream: #EEF3E9;
    --pms-beige: #F1DDB2;
    --pms-white: #FFFFFF;
    --pms-forest-green: #1E5B3D;
    --pms-border: #D7E1DA;
    --pms-border-light: #E5ECE7;
    --pms-muted: #6E7A86;
}

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

.pms-form,
#pms_login {
    color: var(--pms-text);
}

.pms-form input[type=text],
.pms-form input[type=number],
.pms-form input[type=password],
.pms-form input[type=email],
.pms-form input[type=url],
.pms-form input[type=tel],
.pms-form input[type=textarea],
.pms-form textarea,
.pms-form select,
#pms_login input[type=text],
#pms_login input[type=password],
#pms_login input[type=email],
#pms_login textarea,
#pms_login select {
    color: var(--pms-text);
    background-color: var(--pms-white);
    border-color: var(--pms-border);
}

.pms-form input:focus,
.pms-form textarea:focus,
.pms-form select:focus,
#pms_login input:focus,
#pms_login textarea:focus,
#pms_login select:focus {
    border-color: var(--pms-accent);
    box-shadow: 0 0 0 3px rgba(76,140,72,.15);
    outline: none;
}

.pms-field-description {
    color: var(--pms-text);
}

.pms-field-required-asterix {
    color: #c0392b;
}

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

.pms-form > input[type=submit],
.pms-form input[type=submit],
.pms-form button[type=submit],
.pms-form .pms-form-submit,
#pms_login input[type=submit],
.pms-submit-button {
    color: var(--pms-white) !important;
    background: var(--pms-primary) !important;
    background-image: none !important;
    border-color: var(--pms-primary) !important;
}

.pms-form > input[type=submit]:hover,
.pms-form input[type=submit]:hover,
.pms-form button[type=submit]:hover,
.pms-form .pms-form-submit:hover,
#pms_login input[type=submit]:hover,
.pms-submit-button:hover {
    color: var(--pms-white) !important;
    background: var(--pms-accent) !important;
    background-image: none !important;
    border-color: var(--pms-accent) !important;
}

.pms-form > input[type=submit]:focus,
.pms-form input[type=submit]:focus,
.pms-form button[type=submit]:focus,
.pms-form .pms-form-submit:focus,
#pms_login input[type=submit]:focus,
.pms-submit-button:focus {
    box-shadow: 0 0 0 3px rgba(76,140,72,.18) !important;
}

/* ==========================================================
   LINKS
   ========================================================== */

.pms-form a,
.pms-account a,
.pms-subscription-plan a,
.pms-account-subscription a {
    color: var(--pms-accent);
}

.pms-form a:hover,
.pms-account a:hover,
.pms-subscription-plan a:hover,
.pms-account-subscription a:hover {
    color: var(--pms-primary);
}

/* ==========================================================
   ERROR / SUCCESS / WARNING MESSAGES
   Semantic status colors intentionally preserved.
   ========================================================== */

.pms_field-errors-wrapper p,
.pms-form-errors-wrapper,
.pms-payment-error,
.pms-discount-error {
    color: #c0392b;
}

.pms-login-error,
.pms-form-errors-wrapper,
.pms-payment-error {
    border-color: rgba(255,64,64,.75);
    background: rgba(255,64,64,.10);
}

.pms_success-messages-wrapper p {
    background: rgba(59,139,8,.20);
    border-color: rgba(59,139,8,.50);
    color: rgb(49,115,7);
}

.pms-warning-message-wrapper {
    border-left-color: #e76054;
    background: rgba(231,96,84,.08);
}

.pms-gift-activation-message {
    border-left-color: var(--pms-accent);
}

.pms-discount-success {
    color: var(--pms-accent);
}

/* ==========================================================
   SUBSCRIPTION PLANS
   ========================================================== */

.pms-subscription-plans-group-wrapper,
.pms-subscription-plan.pms-subscription-plan-has-actions,
.pms-subscription-plans-header {
    border-color: var(--pms-border);
}

.pms-subscription-plan {
    color: var(--pms-text);
}

.pms-subscription-plan label {
    color: var(--pms-text);
}

.pms-subscription-plan input:checked + label,
.pms-subscription-plan input[type=radio]:checked + label {
    color: var(--pms-primary);
}

.pms-subscription-plan-name {
    color: var(--pms-primary);
}

.pms-subscription-plan-description {
    color: var(--pms-text);
}

/* Highlight selected subscription controls */
.pms-subscription-plan input[type=radio]:checked,
.pms-subscription-plan input[type=checkbox]:checked {
    accent-color: var(--pms-accent);
}

/* ==========================================================
   ACCOUNT / SUBSCRIPTIONS
   ========================================================== */

.pms-account-subscriptions-header {
    color: var(--pms-primary);
}

.pms-account-subscription-details-table {
    border-color: var(--pms-border);
}

.pms-account-subscription-details-table td,
.pms-account-subscription-details-table th {
    border-color: var(--pms-border);
}

.pms-account-subscription-details-table tr > td:first-of-type {
    color: var(--pms-primary);
}

.pms-account-subscription-action-link {
    color: var(--pms-accent);
}

.pms-subscription-plan-actions a {
    color: var(--pms-accent);
}

.pms-subscription-plan-actions a:hover,
.pms-account-subscription-action-link:hover {
    color: var(--pms-primary);
}

/* ==========================================================
   ACCOUNT NAVIGATION
   ========================================================== */

.pms-account-navigation {
    color: var(--pms-text);
}

.pms-account-navigation li.pms-account-navigation-link a {
    color: var(--pms-text);
}

.pms-account-navigation li.pms-account-navigation-link a:hover,
.pms-account-navigation li.pms-account-navigation-link .pms-account-navigation-link--active {
    color: var(--pms-primary);
    box-shadow: 0 1px 0 0 var(--pms-accent) !important;
}

/* ==========================================================
   PAYMENT GATEWAYS
   ========================================================== */

#pms-paygates-inner > label {
    color: var(--pms-text);
    background-color: var(--pms-white);
}

#pms-paygates-inner input + span {
    border-color: var(--pms-border);
}

#pms-paygates-inner input + span:hover,
#pms-paygates-inner input:checked + span {
    border-color: var(--pms-accent);
}

#pms-paygates-inner input:checked + span {
    box-shadow: 0 0 0 1px var(--pms-accent);
}

#pms-paygates-inner input[value="manual"] + span,
#pms-paygates-inner input[value="authorize_net"] + span {
    color: var(--pms-text);
}

#pms-active-gateways-not-available,
#pms-gateways-not-available {
    background: rgba(76,140,72,.10);
    border-color: rgba(76,140,72,.40);
    color: var(--pms-primary);
}

/* ==========================================================
   AUTO RENEW / GDPR / MARKETING CHECKBOXES
   ========================================================== */

.pms-form .pms-billing-toggle,
.pms-form .pms-email-marketing-field label,
.pms-form .pms-gdpr-field label,
.pms-subscription-plan-auto-renew label {
    color: var(--pms-text);
}

.pms-form input[type=checkbox],
.pms-form input[type=radio] {
    accent-color: var(--pms-accent);
}

/* ==========================================================
   TABLES
   ========================================================== */

.pms-table,
.pms-table th,
.pms-table td {
    border-color: var(--pms-border);
}

.pms-table th {
    color: var(--pms-white);
    background-color: var(--pms-primary);
}

/* ==========================================================
   PASSWORD STRENGTH
   Keep status-specific colors, improve neutral text.
   ========================================================== */

#pms-pass-strength-result {
    color: var(--pms-text);
    border-color: var(--pms-border);
    background-color: var(--pms-light-cream);
}

#pms-pass-strength-result.short {
    background-color: #FFA0A0;
    border-color: #F04040;
}

#pms-pass-strength-result.bad {
    background-color: #FFB78C;
    border-color: #FF853C;
}

#pms-pass-strength-result.good {
    background-color: #FFEC8B;
    border-color: #fc0;
}

#pms-pass-strength-result.strong {
    background-color: #C3FF88;
    border-color: #8DFF1C;
}

/* ==========================================================
   SPINNERS / LOADING
   ========================================================== */

.pms-spinner {
    border-bottom-color: var(--pms-accent);
}

.pms-loader {
    border-top-color: var(--pms-accent);
}

/* ==========================================================
   STRIPE
   ========================================================== */

.StripeElement {
    border-color: var(--pms-border);
    background-color: var(--pms-white);
    box-shadow: 0 1px 3px 0 var(--pms-border-light);
}

.StripeElement--focus {
    border-color: var(--pms-accent);
    box-shadow: 0 0 0 3px rgba(76,140,72,.12);
}

.StripeElement--invalid {
    border-color: #fb1427;
}

.pms-stripe-error-message {
    color: #fb1427;
}

/* ==========================================================
   DISCOUNT CODE
   ========================================================== */

#pms-subscription-plans-discount-messages-wrapper {
    border-color: var(--pms-border-light);
    background-color: var(--pms-white);
}

#pms_subscription_plans_discount_code {
    border-color: var(--pms-border);
}

#pms_subscription_plans_discount_code:focus {
    border-color: var(--pms-accent);
}

/* ==========================================================
   BILLING DETAILS
   ========================================================== */

.pms-billing-details {
    color: var(--pms-text);
}

.pms-billing-details input,
.pms-billing-details select,
.pms-billing-details textarea {
    color: var(--pms-text);
    border-color: var(--pms-border);
    background-color: var(--pms-white);
}

.pms-billing-details input:focus,
.pms-billing-details select:focus,
.pms-billing-details textarea:focus {
    border-color: var(--pms-accent);
    box-shadow: 0 0 0 3px rgba(76,140,72,.15);
}

.pms-billing-details .pms-field-type-heading h3,
.pms-billing-details .pms-field-type-heading h4 {
    color: var(--pms-primary);
}

/* ==========================================================
   INVITE CODE
   ========================================================== */

.pms-invite-code-description {
    color: var(--pms-muted);
}

/* ==========================================================
   PROFILE BUILDER INTEGRATION
   ========================================================== */

.wppb-form-field.wppb-subscription-plans label,
.wppb-form-field.wppb-subscription-plans span.description {
    color: var(--pms-text);
}

.wppb-form-field.wppb-subscription-plans h4 {
    color: var(--pms-primary);
}

/* ==========================================================
   PAUSE / RESUME
   ========================================================== */

.pms-confirm-pause-subscription,
.pms-redirect-back-pause-subscription,
.pms-confirm-resume-subscription,
.pms-redirect-back-resume-subscription {
    color: var(--pms-accent);
}

.pms-confirm-pause-subscription:hover,
.pms-redirect-back-pause-subscription:hover,
.pms-confirm-resume-subscription:hover,
.pms-redirect-back-resume-subscription:hover {
    color: var(--pms-primary);
}

/* ==========================================================
   CHOSEN COUNTRY / STATE SELECTS
   ========================================================== */

#pms_billing_country_chosen,
#pms_billing_state_chosen {
    color: var(--pms-text);
}

#pms_billing_country_chosen .chosen-single,
#pms_billing_state_chosen .chosen-single {
    color: var(--pms-text);
    background: var(--pms-white);
    border-color: var(--pms-border);
}

#pms_billing_country_chosen .chosen-single:hover,
#pms_billing_state_chosen .chosen-single:hover {
    border-color: var(--pms-accent);
}

/* ==========================================================
   GENERAL PMS HEADINGS / TEXT
   ========================================================== */

.pms-form h1,
.pms-form h2,
.pms-form h3,
.pms-form h4,
.pms-form h5,
.pms-form h6,
.pms-account h1,
.pms-account h2,
.pms-account h3,
.pms-account h4,
.pms-account h5,
.pms-account h6 {
    color: var(--pms-primary);
}

.pms-form p,
.pms-account p,
.pms-subscription-plan-description {
    color: var(--pms-text);
}

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

@media screen and (max-width: 600px) {
    .pms-account-navigation li.pms-account-navigation-link {
        margin-right: 0;
    }

    #pms-paygates-inner {
        gap: 15px;
    }

    #pms-paygates-inner > label {
        width: 100%;
    }

    #pms-paygates-inner input + span {
        width: 100%;
    }

    #pms_subscription_plans_discount_code {
        width: 100%;
    }
}

/* ==========================================================
   DO NOT MODIFY / REMOVE PLUGIN FUNCTIONALITY
   ==========================================================
   The following plugin behaviors are intentionally not changed:
   - field widths and form layout
   - payment gateway logos
   - hidden dynamic gateway fields
   - billing visibility/order
   - Stripe element structure
   - reCAPTCHA badge behavior
   - password-strength status colors
   - semantic error colors
   - subscription calculations/actions
*/
