/**
Theme Name: Membresia
Author: Kamalyon
Author URI: https://kamalyon.com
Description: Child theme para el tema Astra para la crear webs de Membresias con el plugin Restrict Content Pro.
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: membresia
Template: astra
*/



/* Lista de favoritos en forma de grid */
.favorites-list {
    display: grid;
    grid-gap: 40px;
    grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
}
.favorites-list > li {
    border: solid 1px;
    border-color: #000;
    border-radius: 5px;
    text-align: center;
    font-weight: 700;
    font-size: 22px;
    padding: 30px 10px 30px 10px;
}
.simplefavorite-button {
    display: flex; /* Para que el botón esté centrado */
    margin-top: 30px;
}


/* Eliminar el borde del fieldset del formulario de registro */
.rcp_form fieldset {
    border: none;
    margin: 0;
    padding: 0;
}
/* Eliminar los elementos del formulario de registro */
/*#rcp-sandbox-gateway-test-cards, #rcp_card_wrap label, #rcp_auto_renew_wrap, #rcp_profile_display_name_wrap, #rcp_subscription_levels, #rcp_user_login_wrap, .rcp_description, .rcp_header, .rcp_login_link, .rcp_registration_total, .rcp_subscription_message {
    display: none !important;
}*/
#rcp_profile_display_name_wrap {
    display: none !important;
}

/* Añadir margen inferior a la meta del single de directos */
.single-directos .entry-meta {
    margin-bottom: 20px;
}

/* Centrar el contenido del discord-box */
.discord-box {
    text-align: center;
}

/* Alinear los botones de las acciones de la tabla Mi Cuenta */
td[data-th="Acciones"] a {
    display: inline-flex;
    margin-bottom: 8px; /* o el espacio que quieras */
  }

/* Añadir un fondo y un padding al título del hijo en el single de contenidos */
#content .contenido-child-title {
    background: #eee;
    padding: 10px 20px;
    font-size: 32px;
}

/* Marcar el enlace activo en el índice de hijas del single de contenidos */
.child-cpt-list li.is-current a {  
    color: #000;
}

/* Indentación para elementos anidados en el widget */
.child-cpt-list li.level-1 {
    padding-left: 20px;
}

.child-cpt-list li.level-2 {
    padding-left: 40px;
}

.child-cpt-list li.level-3 {
    padding-left: 60px;
}

.child-cpt-list li.level-4 {
    padding-left: 80px;
}

.child-cpt-list li.level-5 {
    padding-left: 100px;
}

/*************************************************************** Estilos para el formulario de registro de RCP ***************************************************************/
#rcp_registration_form .rcp_button, #rcp_registration_form input[type="submit"] {
    margin-top: 10px;
}
#rcp_registration_form input[type="text"], #rcp_registration_form input[type="email"], #rcp_registration_form input[type="password"] {
    max-width: 200px;
}
#rcp_subscription_levels {
    padding: 0;
}
.rcp_subscription_level {
    margin-bottom: 10px;
    list-style: none;
}
.rcp_subscription_level_name {
    font-weight: 700;
    font-size: 16px;
}
.rcp_level_description {
    color: #666;
}
#rcp_card_name_wrap, #rcp_registration_form #rcp-card-name {
    max-width: 500px;
}
#rcp_card_wrap {
    margin-top: 10px;
    max-width: 500px;
}
#rcp_submit_wrap {
    margin-top: 10px;
}

/*  Layout para Fieldset de user fields: 2 columnas, responsive  */
#rcp_registration_form .rcp_user_fieldset {
    --gap: 16px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--gap);
}

/* Quita márgenes heredados y asegura 100% de ancho en inputs/selects */
#rcp_registration_form .rcp_user_fieldset > p,
#rcp_registration_form .rcp_user_fieldset > fieldset {
    margin: 0;
}
#rcp_registration_form .rcp_user_fieldset label {
    display: block;
    margin-bottom: 6px;
    font-weight: 700;
}

input[type="text"], input[type="number"], input[type="email"], input[type="url"], input[type="password"], input[type="search"], input[type=reset], input[type=tel], input[type=date], select{
    border-radius: 50px;

}
#rcp_registration_form .rcp_user_fieldset input[type="text"],
#rcp_registration_form .rcp_user_fieldset input[type="password"],
#rcp_registration_form .rcp_user_fieldset select {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

/* Ignora las clases inline/inline-block del HTML original */
#rcp_registration_form .rcp_user_fieldset .inline,
#rcp_registration_form .rcp_user_fieldset .inline-block {
    display: block !important;
}

/* Fieldset de facturación (ancho completo + grid propio) */
#rcp_registration_form .rcp-billing-fields {
    grid-column: 1 / -1; /* ocupa todo el ancho del grid padre */
    margin: 0;
    padding: 0;
    border: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--gap);
}

#rcp_registration_form #rcp_billing_fields > legend {
    padding: 20px 0 0;
    font-size: 1.1rem;
    font-weight: 600;
    color: #333;
    margin: 0;
}

/* Cada <p> como celda */
#rcp_registration_form .rcp-billing-fields > p {
    margin: 0;
}

#rcp_registration_form #rcp_billing_fields > p{
    margin: 0 0 16px 0;
}

/* Campos a ancho completo dentro del fieldset de facturación */
#rcp_registration_form #rcp_billing_address_wrap,
#rcp_registration_form #rcp_billing_fields {
    grid-column: 1 / -1;
}

/* Contenedor de campos de empresa: grid 2 columnas */
#rcp_registration_form #rcp_billing_fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--gap);
}

/* “Razón social” a ancho completo (opcional) */
#rcp_registration_form #rcp_business_name_wrap {
    grid-column: 1 / -1;
}

/* Si el JS pone display:block al wrapper de región, que respete el layout */
#rcp_registration_form #rcp_billing_region_wrap[style*="display: block"] {
    display: block;
}

/*  Layout para Fieldset de user fields: 2 columnas, responsive  */
#rcp_registration_form .rcp_subscription_fieldset > .rcp_subscription_message {
    margin: 0;
    padding: 20px 0 0;
    font-size: 1.1rem;
    font-weight: 600;
    color: #333;
}

#rcp_registration_form .rcp_discounts_fieldset #rcp_discount_code_wrap > label{
    margin-right: 10px;
}

/* ===== Membership radios – minimal cards ===== */
  #rcp_registration_form #rcp_subscription_levels {
    list-style: none;
    /* margin: 0; */
    padding: 0;
    display: grid;
    gap: 2px;
  }
  
  /* Oculta el radio nativo pero deja accesibilidad */
  #rcp_registration_form #rcp_subscription_levels .rcp_subscription_level input[type="radio"] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
  }
  
  /* Tarjeta base */
  #rcp_registration_form #rcp_subscription_levels .rcp_subscription_level label {
    display: block;
    position: relative;
    padding: 14px 16px 12px 48px; /* sitio para el “bullet” custom */
    border: 1px solid #e5e7eb;    /* gris claro */
    border-radius: 12px;
    background: #f9fafb;          /* neutro suave */
    cursor: pointer;
    transition: background-color .2s ease, border-color .2s ease, box-shadow .2s ease, transform .06s ease;
    color: #111827;               /* gris-900 */
  }
  
  /* “Bullet” custom a la izquierda */
  #rcp_registration_form #rcp_subscription_levels .rcp_subscription_level label::before {
    content: "";
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    width: 18px;
    height: 18px;
    border-radius: 9999px;
    border: 2px solid #cbd5e1; /* slate-300 */
    background: #fff;
    box-sizing: border-box;
    transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease;
  }
  
  /* Puntito interior cuando está checked */
  #rcp_registration_form #rcp_subscription_levels .rcp_subscription_level input[type="radio"]:checked + label::after {
    content: "";
    position: absolute;
    left: 21px; /* centrado dentro del círculo */
    top: 50%;
    transform: translateY(-50%);
    width: 8px;
    height: 8px;
    border-radius: 9999px;
    background: #22c55e; /* verde sutil */
  }
  
  /* Hover/active sutiles */
  #rcp_registration_form #rcp_subscription_levels .rcp_subscription_level label:hover {
    border-color: #d1d5db;        /* gris-300 */
    box-shadow: 0 1px 0 rgba(0,0,0,.02);
  }
  #rcp_registration_form #rcp_subscription_levels .rcp_subscription_level label:active {
    transform: scale(.998);
  }
  
  /* Estado seleccionado (verde muy discreto) */
  #rcp_registration_form #rcp_subscription_levels .rcp_subscription_level input[type="radio"]:checked + label {
    border-color: #86efac;        /* verde-200 */
    background: #f0fdf4;          /* verde-50 */
    box-shadow: 0 0 0 2px rgba(34,197,94,0.1) inset;
  }
  #rcp_registration_form #rcp_subscription_levels .rcp_subscription_level input[type="radio"]:checked + label::before {
    border-color: #22c55e;        /* aro verde */
    background: #dcfce7;          /* verde-100 */
  }
  
  /* Enfoque teclado accesible */
  #rcp_registration_form #rcp_subscription_levels .rcp_subscription_level input[type="radio"]:focus-visible + label,
  #rcp_registration_form #rcp_subscription_levels .rcp_subscription_level input[type="radio"]:focus + label {
    outline: none;
    box-shadow: 0 0 0 3px rgba(34,197,94,0.25);
  }
  
  /* Tipografía interna */
  #rcp_registration_form #rcp_subscription_levels .rcp_subscription_level .rcp_subscription_level_name {
    font-weight: 600;
  }
  #rcp_registration_form #rcp_subscription_levels .rcp_subscription_level .rcp_price {
    font-weight: 600;
  }
  #rcp_registration_form #rcp_subscription_levels .rcp_subscription_level .rcp_level_duration {
    color: #4b5563; /* gris-600 */
  }
  #rcp_registration_form #rcp_subscription_levels .rcp_subscription_level .rcp_level_description {
    /* margin-top: 6px; */
    font-size: 0.925rem;
    line-height: 1.35;
    color: #6b7280; /* gris-500 */
  }
  
  
  /* Respeta reduced motion */
  @media (prefers-reduced-motion: reduce) {
    #rcp_registration_form #rcp_subscription_levels .rcp_subscription_level label {
      transition: none;
    }
  }

  /* ========= Membership total table – modern, minimal, responsive ========= */
#rcp_registration_form .rcp_registration_total {
    margin: 16px 0;
  }
  
  /* Tabla base */
  #rcp_registration_form .rcp_registration_total .rcp_registration_total_details {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    background: #f9fafb;               /* neutro suave */
    border: 1px solid #e5e7eb;         /* gris claro */
    border-radius: 12px;
    overflow: hidden;                   /* aplica el radius al contenido */
    box-shadow: 0 1px 0 rgba(0,0,0,.02);
    font-size: 15px;
    color: #111827;                    /* gris-900 */
  }
  
  /* Cabecera */
  #rcp_registration_form .rcp_registration_total .rcp_registration_total_details thead {
    background: #f3f4f6;               /* gris-100 */
  }
  #rcp_registration_form .rcp_registration_total .rcp_registration_total_details thead th {
    padding: 14px 16px;
    text-align: left;
    font-weight: 700;
    border-bottom: 1px solid #e5e7eb;
  }
  
  /* Celdas cuerpo y pie */
  #rcp_registration_form .rcp_registration_total .rcp_registration_total_details td {
    padding: 12px 16px;
    vertical-align: top;
    border-top: 1px solid #e5e7eb;
  }
  
  /* Filas alternas (opcional, muy sutil) */
  #rcp_registration_form .rcp_registration_total .rcp_registration_total_details tbody tr:nth-child(odd) td {
    background: #fafafa;
  }
  
  /* Totales destacados en verde sutil */
  #rcp_registration_form .rcp_registration_total .rcp_registration_total_details tfoot .rcp-total td {
    background: #f0fdf4;               /* verde-50 */
    border-top-color: #86efac;         /* verde-200 */
    font-weight: 600;
  }
  #rcp_registration_form .rcp_registration_total .rcp_registration_total_details tfoot .rcp-recurring-total td {
    background: #f6fef9;               /* aún más sutil */
    border-top-color: #bbf7d0;         /* verde-200/300 */
    font-weight: 600;
  }
  
  /* Fila de renovación: tono tenue y tipografía secundaria */
  #rcp_registration_form .rcp_registration_total .rcp_registration_total_details .rcp-renewal-date td {
    color: #374151;                     /* gris-700 */
    background: #fbfbfb;
  }
  
  /* Alineación: primera col a la izq, segunda a la dcha en vistas de escritorio */
  #rcp_registration_form .rcp_registration_total .rcp_registration_total_details td:first-child {
    width: 50%;
  }
  #rcp_registration_form .rcp_registration_total .rcp_registration_total_details td:last-child {
    text-align: right;
    white-space: nowrap;
  }
  
  /* ========= Responsive: apilar filas y mostrar etiquetas con data-th ========= */
  @media (max-width: 640px) {
    #rcp_registration_form .rcp_registration_total .rcp_registration_total_details thead {
      display: none;
    }
    #rcp_registration_form .rcp_registration_total .rcp_registration_total_details,
    #rcp_registration_form .rcp_registration_total .rcp_registration_total_details tbody,
    #rcp_registration_form .rcp_registration_total .rcp_registration_total_details tfoot,
    #rcp_registration_form .rcp_registration_total .rcp_registration_total_details tr {
      display: block;
      width: 100%;
    }
    #rcp_registration_form .rcp_registration_total .rcp_registration_total_details tr {
      padding: 12px 14px;
      border-top: 1px solid #e5e7eb;
    }
    #rcp_registration_form .rcp_registration_total .rcp_registration_total_details tr:first-child {
      border-top: 0;
    }
    #rcp_registration_form .rcp_registration_total .rcp_registration_total_details td {
      display: grid;
      grid-template-columns: 1fr;
      text-align: left !important;
      padding: 6px 0;
      border: 0;
      background: transparent !important; /* evita bloques bicolores al apilar */
    }
    /* Etiqueta (data-th) encima del valor */
    #rcp_registration_form .rcp_registration_total .rcp_registration_total_details td[data-th]::before,
    #rcp_registration_form .rcp_registration_total .rcp_registration_total_details td[data-title]::before {
      content: attr(data-th);
      display: block;
      font-size: 12px;
      color: #6b7280; /* gris-500 */
      margin-bottom: 4px;
      text-transform: none;
      letter-spacing: .2px;
    }

    /* para la tabla del registro durante la venta del entrenamiento mental */
    #rcp_registration_form .rcp_registration_total--new .rcp_registration_total_details thead {
      display: block;
    }
    #rcp_registration_form .rcp_registration_total--new .rcp_registration_total_details td[data-title]::before {
      display: block;
      font-size: 12px;
      color: #6b7280; /* gris-500 */
      margin-bottom: 4px;
      text-transform: none; 
      letter-spacing: .2px;
    }
    #rcp_registration_form .rcp_registration_total--new .rcp_registration_total_details td[data-th]::before {
      display: none;
    }
  }
  
  
  /* ===== Stripe gateway fields – modern & minimal (scoped) ===== */
#rcp_registration_form .rcp_gateway_stripe_fields {
    margin-top: 18px;
  }
  
  /* Tarjeta aviso "test mode" */
  #rcp_registration_form #rcp-sandbox-gateway-test-cards {
    background: #f9fafb;               /* neutro suave */
    border: 1px solid #e5e7eb;         /* gris claro */
    border-radius: 12px;
    padding: 12px 14px;
    margin-bottom: 14px;
    color: #111827;
  }
  #rcp_registration_form #rcp-sandbox-gateway-test-cards p {
    margin: 0 0 8px 0;
  }
  #rcp_registration_form #rcp-sandbox-gateway-test-cards ul {
    margin: 0 0 6px 18px;
  }
  
  /* Fieldset tarjeta */
  #rcp_registration_form .rcp-gateway-new-card-fields .rcp_card_fieldset {
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 14px;
    background: #ffffff;
    margin: 0;
  }
  
  /* Layout de campos (stack en mobile, 2 cols en >=640px) */
  #rcp_registration_form .rcp-gateway-new-card-fields .rcp_card_fieldset > div {
    display: grid;
    gap: 12px;
  }
  @media (min-width: 640px) {
    #rcp_registration_form .rcp-gateway-new-card-fields .rcp_card_fieldset {
      padding: 16px;
    }
    #rcp_registration_form .rcp-gateway-new-card-fields .rcp_card_fieldset > div {
      grid-template-columns: 1fr 1fr;
      align-items: start;
    }
    #rcp_registration_form #rcp_card_name_wrap,
    #rcp_registration_form #rcp_card_wrap {
      display: block; /* cada uno ocupa su celda */
    }
  }
  
  /* Labels */
  #rcp_registration_form #rcp_card_name_wrap label,
  #rcp_registration_form #rcp_card_wrap label {
    display: block;
    font-weight: 600;
    color: #111827;
    margin-bottom: 6px;
  }
  
  /* Input "Titular de la tarjeta" */
  #rcp_registration_form #rcp-card-name {
    width: 100%;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    background: #f9fafb;
    padding: 10px 12px;
    font-size: 15px;
    color: #111827;
    transition: box-shadow .2s ease, border-color .2s ease, background-color .2s ease;
  }
  #rcp_registration_form #rcp-card-name:hover {
    background: #f8fafc;
    border-color: #d1d5db;
  }
  #rcp_registration_form #rcp-card-name:focus {
    outline: none;
    border-color: #86efac;             /* verde-200 */
    box-shadow: 0 0 0 3px rgba(34,197,94,.25);
    background: #ffffff;
  }
  
  /* Contenedor visual del Stripe Element (no el iframe) */
  #rcp_registration_form #rcp-card-element {
    width: 100%;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    background: #f9fafb;
    padding: 11px 12px;                 /* deja respirar el iframe interno */
    transition: box-shadow .2s ease, border-color .2s ease, background-color .2s ease;
    min-height: 44px;                   /* altura cómoda */
    align-items: center;
  }
  
  /* Estados provistos por Stripe */
  #rcp_registration_form #rcp-card-element.StripeElement--focus {
    border-color: #86efac;
    box-shadow: 0 0 0 3px rgba(34,197,94,.25);
    background: #ffffff;
  }
  #rcp_registration_form #rcp-card-element.StripeElement--invalid {
    border-color: #fca5a5;              /* rojo-300 */
    box-shadow: 0 0 0 3px rgba(239,68,68,.15);
    background: #fff7f7;
  }
  #rcp_registration_form #rcp-card-element.StripeElement--complete {
    border-color: #86efac;
    background: #f0fdf4;                /* verde-50 sutil al completar */
  }
  
  /* Mensajes de error Stripe */
  #rcp_registration_form #rcp-card-element-errors {
    margin-top: 8px;
    color: #b91c1c;                     /* rojo-700 */
    font-size: 14px;
  }
  
  /* Accesibilidad: reduced motion */
  @media (prefers-reduced-motion: reduce) {
    #rcp_registration_form #rcp-card-name,
    #rcp_registration_form #rcp-card-element {
      transition: none;
    }
  }
  
/* ===== RCP: caja de errores moderna (scoped) ===== */
#rcp_registration_form .rcp_message.error{
    background: #fef2f2;            /* rojo-50 */
    border: 1px solid #fecaca;      /* rojo-200 */
    color: #7f1d1d;                 /* rojo-900 */
    border-radius: 12px;
    padding: 12px 14px;
    margin: 12px 0 18px;
    box-shadow: 0 1px 0 rgba(0,0,0,.02);
  }
  
  /* Reseteo de márgenes internos y lista vertical limpia */
  #rcp_registration_form .rcp_message.error p{
    margin: 0;
  }
  #rcp_registration_form .rcp_message.error p + p{
    margin-top: 8px;                /* separación entre errores */
  }
  
  /* “Bullet”/icono sutil para cada error */
  #rcp_registration_form .rcp_message.error .rcp_error{
    position: relative;
    padding-left: 26px;
    line-height: 1.35;
  }
  #rcp_registration_form .rcp_message.error .rcp_error::before{
    content: "!";
    position: absolute;
    left: 0;
    top: 0.2em;
    width: 18px;
    height: 18px;
    border-radius: 9999px;
    background: #fee2e2;           /* rojo-100 */
    border: 1px solid #fca5a5;     /* rojo-300 */
    color: #991b1b;                /* rojo-800 */
    font-weight: 700;
    font-size: 12px;
    line-height: 16px;
    text-align: center;
  }
  
  /* Enlaces dentro del mensaje (si los hubiera) */
  #rcp_registration_form .rcp_message.error a{
    color: #991b1b;
    text-decoration: underline;
    text-underline-offset: 2px;
  }
  
  /* Accesibilidad: modo reducido de movimiento */
  @media (prefers-reduced-motion: reduce){
    #rcp_registration_form .rcp_message.error{
      transition: none;
    }
  }
  


/* Estilos para la tabla de detalles de membresía RCP */
.rcp_registration_total_details.rcp-table {
    border-collapse: collapse;
    border: 1px solid #ddd;
    width: 100%;
}

.rcp_registration_total_details.rcp-table thead tr {
    position: relative;
}

.rcp_registration_total_details.rcp-table thead tr::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 2px;
    background-color: #ddd;
    z-index: 1;
}

.rcp_registration_total_details.rcp-table thead th {
    border: none;
    padding: 12px 15px;
    text-align: left;
    font-weight: 600;
    color: #333;
    position: relative;
    z-index: 2;
}

.rcp_registration_total_details.rcp-table tbody td {
    padding: 10px 15px;
    border-bottom: 1px solid #eee;
    vertical-align: top;
}

.rcp_registration_total_details.rcp-table tbody tr:last-child td {
    border-bottom: none;
}

.rcp_registration_total_details.rcp-table tbody tr:hover {
    background-color: #f8f9fa;
}

@media (max-width: 768px) {
    /* Responsive Fieldset de user */
    #rcp_registration_form .rcp_user_fieldset {
        display: block;
    }
    #rcp_registration_form .rcp_user_fieldset > p{
        margin-bottom: 12px;
    }
    /* Responsive Fieldset de membresia */
    #rcp_registration_form .rcp-billing-fields,
    #rcp_registration_form #rcp_billing_fields {
        grid-template-columns: 1fr;
    }

}

/*************************************************************** Reorder fields using CSS Grid on register form ***************************************************************/
/* Reorder fields using CSS Grid */
.rcp_user_fieldset {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

/* First row: First Name, Last Name */
#rcp_user_first_wrap {
    grid-row: 1;
    grid-column: 1;
}

#rcp_user_last_wrap {
    grid-row: 1;
    grid-column: 2;
}

/* Second row: Phone */
#rcp_phone_wrap {
    grid-row: 2;
    grid-column: 1;
}

/* Third row: Email, Confirm Email */
#rcp_user_email_wrap {
  grid-row: 3;
  grid-column: 1;
}

#rcp_user_email_confirm_wrap {
  grid-row: 3;
  grid-column: 2;
}

/* Fourth row: Password, Confirm Password */
#rcp_password_wrap {
    grid-row: 4;
    grid-column: 1;
}

#rcp_password_again_wrap {
    grid-row: 4;
    grid-column: 2;
}

/* Fifth row: Company Checkbox (span both columns) */
#rcp_company_checkbox_wrap {
    grid-row: 5;
    grid-column: 1 / -1;
}

/* Billing fields after company checkbox */
#rcp_billing_fields {
    grid-row: 6;
    grid-column: 1 / -1;
}
  
/* ===== RCP Login – card minimal (scoped) ===== */
#rcp_login_form{
  --rcp-bg:#fff;
  --rcp-surface:#f9fafb;   /* fondo inputs */
  --rcp-border:#e5e7eb;    /* gris claro */
  --rcp-text:#111827;      /* gris muy oscuro */
  --rcp-muted:#6b7280;     /* gris medio */

  max-width: 465px;
  width: 100%;
  margin: 0 auto;
  background: var(--rcp-bg);
  border: 1px solid var(--rcp-border);
  border-radius: 16px;
  padding: 22px 20px;
  box-shadow: 0 8px 28px rgba(0,0,0,.06);
  color: var(--rcp-text);
  font-size: 16px;
  line-height: 1.45;
}

#rcp_login_form .rcp_login_data{ margin:0; padding:0; border:0; }
#rcp_login_form .rcp_login_data p{ margin:0 0 14px 0; }

/* Labels */
#rcp_login_form label{
  display:block;
  font-weight:600;
  margin-bottom:6px;
  color:var(--rcp-text);
}

/* Inputs */
#rcp_login_form input[type="text"],
#rcp_login_form input[type="email"],
#rcp_login_form input[type="password"]{
  width:100%;
  border:1px solid var(--rcp-border);
  border-radius:12px;
  background:var(--rcp-surface);
  padding:11px 12px;
  color:var(--rcp-text);
  transition:border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
  box-sizing:border-box;
}
#rcp_login_form input[type="text"]:hover,
#rcp_login_form input[type="email"]:hover,
#rcp_login_form input[type="password"]:hover{ background:#f8fafc; border-color:#d1d5db; }
#rcp_login_form input[type="text"]:focus,
#rcp_login_form input[type="email"]:focus,
#rcp_login_form input[type="password"]:focus{
  outline:none;
  border-color:#86efac; /* verde suave */
  box-shadow:0 0 0 3px rgba(134,239,172,.35);
  background:#fff;
}

/* Checkbox + etiqueta */
#rcp_login_form #rcp_user_remember{
  accent-color:#22c55e;
  width:18px; height:18px;
  vertical-align:middle;
  margin-right:8px;
}
#rcp_login_form label[for="rcp_user_remember"]{
  display:inline-block;
  font-weight:500;
  color:var(--rcp-muted);
}

/* Enlace “¿Has perdido tu contraseña?” */
#rcp_login_form .rcp_lost_password{ margin:6px 0 2px; }
#rcp_login_form .rcp_lost_password a{
  text-decoration:none;
}
#rcp_login_form .rcp_lost_password a:hover{
  text-decoration:underline; text-underline-offset:2px;
}

/* Botón (solo sombra/animación; NO cambiamos color) */
#rcp_login_form .rcp-button,
#rcp_login_form input[type="submit"]{
  display:inline-block;
  width:100%;
  padding:12px 16px;
  border:0;
  border-radius:999px;
  cursor:pointer;
  transition:transform .06s ease, box-shadow .2s ease;
  box-shadow:0 10px 22px rgba(0,0,0,.08);
}
#rcp_login_form .rcp-button:hover,
#rcp_login_form input[type="submit"]:hover{
  transform:translateY(-1px);
  box-shadow:0 12px 26px rgba(0,0,0,.12);
}
#rcp_login_form .rcp-button:active,
#rcp_login_form input[type="submit"]:active{ transform:translateY(0); }

/* Texto inferior (registro) */
#rcp_login_form > p:last-child{
  margin:10px 0 0; color:var(--rcp-muted); text-align:center;
}
#rcp_login_form > p:last-child a{
  color:#111827; font-weight:600;
  text-decoration:underline; text-underline-offset:2px;
}

/* Mobile */
@media (max-width:640px){
  #rcp_login_form{ padding:18px 16px; }
}

/* ===== Caja de errores SOLO cuando precede al login (scoped con :has) =====
   Estilo moderno, accesible, sin afectar a otros mensajes del sitio. */
.rcp_message.error:has(+ #rcp_login_form){
  background:#fef2f2;          /* rojo-50 */
  border:1px solid #fecaca;    /* rojo-200 */
  color:#7f1d1d;               /* rojo-900 */
  border-radius:12px;
  padding:12px 14px;
  margin:0 auto 14px;
  max-width:465px;
  width: 100%;
  box-shadow:0 1px 0 rgba(0,0,0,.02);
}
.rcp_message.error:has(+ #rcp_login_form) p{ margin:0; }
.rcp_message.error:has(+ #rcp_login_form) p + p{ margin-top:8px; }

/* “Bullet”/icono sutil por error */
.rcp_message.error:has(+ #rcp_login_form) .rcp_error{
  position:relative; padding-left:26px; line-height:1.35;
}
.rcp_message.error:has(+ #rcp_login_form) .rcp_error::before{
  content:"!"; position:absolute; left:0; top:.2em;
  width:18px; height:18px; border-radius:9999px;
  background:#fee2e2; border:1px solid #fca5a5;
  color:#991b1b; font-weight:700; font-size:12px; line-height:16px; text-align:center;
}

/* ==== RCP Profile Editor – caja completa, títulos y labels (scoped) ==== */
#rcp_profile_editor_form{
  background: #f9fafb;               /* neutro suave */
  border: 1px solid #e5e7eb;         /* gris claro */
  border-radius: 12px;
  padding: 18px 20px;
  box-shadow: 0 1px 0 rgba(0,0,0,.02);
}

/* Fieldsets sin borde + grid 2 cols (h3 ocupa ancho completo) */
#rcp_profile_editor_form fieldset{
  border: 0;
  margin: 0 0 16px 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 16px;
}
#rcp_profile_editor_form .fieldset-title{
  grid-column: 1 / -1;
  margin: 4px 0 6px;
  font-size: 1.1rem;
  font-weight: 600;
  color: #111827; /* gris-900 */
}

/* Cada campo como celda del grid */
#rcp_profile_editor_form fieldset > p{
  margin: 0;
}

/* Labels */
#rcp_profile_editor_form label{
  display: block;
  margin-bottom: 6px;
  font-weight: 600;
  color: #111827;
}

/* Inputs/selects (look coherente con /alta) */
#rcp_profile_editor_form input[type="text"],
#rcp_profile_editor_form input[type="email"],
#rcp_profile_editor_form input[type="tel"],
#rcp_profile_editor_form input[type="password"],
#rcp_profile_editor_form select{
  width: 100%;
  border: 1px solid #e5e7eb;
  background: #ffffff;
  padding: 10px 12px;
  font-size: 15px;
  color: #111827;
  transition: box-shadow .2s ease, border-color .2s ease, background-color .2s ease;
  box-sizing: border-box;
}
#rcp_profile_editor_form input[type="text"]:hover,
#rcp_profile_editor_form input[type="email"]:hover,
#rcp_profile_editor_form input[type="tel"]:hover,
#rcp_profile_editor_form input[type="password"]:hover,
#rcp_profile_editor_form select:hover{
  background: #f8fafc;
  border-color: #d1d5db;
}
#rcp_profile_editor_form input[type="text"]:focus,
#rcp_profile_editor_form input[type="email"]:focus,
#rcp_profile_editor_form input[type="tel"]:focus,
#rcp_profile_editor_form input[type="password"]:focus,
#rcp_profile_editor_form select:focus{
  outline: none;
  border-color: #86efac;             /* verde-200 */
  box-shadow: 0 0 0 3px rgba(34,197,94,.25);
  background: #ffffff;
}

/* Wrap del submit: sólo separación (NO estiliza el botón) */
#rcp_profile_editor_form #rcp_profile_submit_wrap{
  grid-column: 1 / -1;
  margin-top: 8px;
}

/* Responsive: 1 columna en móviles */
@media (max-width: 640px){
  #rcp_profile_editor_form fieldset{
    grid-template-columns: 1fr;
  }
}


/* ===== RCP Mi cuenta | Bloque “socia” ===== */
.rcp-member-number {
  max-width: 720px;
  margin: 19px auto 0 auto;
  padding: 14px 16px;
  background: #f9fafb;        /* neutro suave */
  border: 1px solid #e5e7eb;   /* gris claro */
  border-radius: 12px;
  box-shadow: 0 1px 0 rgba(0,0,0,.02);
  color: #111827;              /* gris-900 */
  line-height: 1.5;
  font-size: 15px;
  width:fit-content;
  text-align: center;
}

/* Mejora el espaciado de las líneas separadas por <br> */
.rcp-member-number br {
  line-height: 1.2;
}

/* Destaca la primera línea (“Hola, …”) */
.rcp-member-number::first-line {
  font-weight: 700;
  font-size: 20px;
}

@media (max-width: 640px) {
  .rcp-member-number {
    margin: 12px 0 16px;
    padding: 12px 14px;
    font-size: 14px;
  }
  .rcp-member-number::first-line {
    font-size: 15px;
  }
}


/* ===== RCP tablas (Account Overview / Payment History) ===== */
/* Scope estricto para evitar conflictos */
#rcp-table-wrapper {
  --rcp-radius: 12px;
  --rcp-border: #e5e7eb;   /* gris claro */
  --rcp-bg: #f9fafb;       /* neutro suave */
  --rcp-head: #f3f4f6;     /* gris-100 */
  --rcp-text: #111827;     /* gris-900 */
  --rcp-subtext: #4b5563;  /* gris-600 */
}

/* Tabla base */
#rcp-table-wrapper .rcp-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: var(--rcp-bg);
  border: 1px solid var(--rcp-border);
  border-radius: var(--rcp-radius);
  overflow: hidden; /* aplica el radius a thead/tbody */
  box-shadow: 0 1px 0 rgba(0,0,0,.02);
  font-size: 15px;
  color: var(--rcp-text);
}

/* Cabecera */
#rcp-table-wrapper .rcp-table thead {
  background: var(--rcp-head);
}
#rcp-table-wrapper .rcp-table thead th {
  padding: 14px 16px;
  text-align: left;
  font-weight: 700;
  border-bottom: 1px solid var(--rcp-border);
  white-space: nowrap;
}

/* Celdas cuerpo y pie */
#rcp-table-wrapper .rcp-table tbody td,
#rcp-table-wrapper .rcp-table tfoot td {
  padding: 12px 16px;
  vertical-align: top;
  border-top: 1px solid var(--rcp-border);
}

/* Zebra suave en cuerpo */
#rcp-table-wrapper .rcp-table tbody tr:nth-child(odd) td {
  background: #fbfbfb;
}

/* Alineación: primera col crece; última puede alinear a la derecha si son totales */
#rcp-table-wrapper .rcp-table td:first-child { width: 40%; }
#rcp-table-wrapper .rcp-table td:last-child  { white-space: nowrap; }

/* Hover de fila sutil (solo escritorio) */
@media (hover:hover) {
  #rcp-table-wrapper .rcp-table tbody tr:hover td {
    background: #f7f7f7;
  }
}

/* Enlaces dentro de las celdas (acciones) */
#rcp-table-wrapper .rcp-table td a {
  text-decoration: none;
}
#rcp-table-wrapper .rcp-table td a:focus-visible {
  outline: 2px solid #93c5fd; /* azul claro accesible */
  outline-offset: 2px;
  border-radius: 6px;
}

/* ===== Responsive: apilar filas y mostrar etiquetas con data-th ===== */
@media (max-width: 680px) {
  /* Oculta cabecera clásica */
  #rcp-table-wrapper .rcp-table thead {
    display: none;
  }

  /* Cada fila como tarjeta */
  #rcp-table-wrapper .rcp-table,
  #rcp-table-wrapper .rcp-table tbody,
  #rcp-table-wrapper .rcp-table tr {
    display: block;
    width: 100%;
  }

  #rcp-table-wrapper .rcp-table tr {
    border-top: 1px solid var(--rcp-border);
    padding: 10px 14px;
  }
  #rcp-table-wrapper .rcp-table tr:first-child {
    border-top: 0;
  }
  
   #rcp-table-wrapper .rcp-table tbody td:first-child {
    border-top: 0 !important;
  }

  /* Cada celda en bloque con su etiqueta encima (data-th/data-title) */
  #rcp-table-wrapper .rcp-table td {
    display: block;
    width: 100%;
    padding: 8px 0;
    border: 0;
    background: transparent !important;
  }

  #rcp-table-wrapper .rcp-table td[data-th]::before,
  #rcp-table-wrapper .rcp-table td[data-title]::before {
    content: attr(data-th);
    display: block;
    font-size: 12px;
    color: var(--rcp-subtext);
    margin-bottom: 4px;
  }

  /* Última celda (acciones) con margen superior para respirar */
  #rcp-table-wrapper .rcp-table td:last-child {
    margin-top: 6px;
  }
}

/* ===== Radio de borde asegurado (por si el tema sobrescribe) ===== */
#rcp-table-wrapper .rcp-table thead th:first-child { border-top-left-radius: var(--rcp-radius); }
#rcp-table-wrapper .rcp-table thead th:last-child  { border-top-right-radius: var(--rcp-radius); }

/* ===== Estados destacados (opcional) ===== */
/* Ejemplo: estado Pendiente/Activa/Cancelada si se añaden clases a la celda */
#rcp-table-wrapper .rcp-table td.status-pending   { color: #a16207; } /* ámbar-700 */
#rcp-table-wrapper .rcp-table td.status-active    { color: #15803d; } /* verde-700 */
#rcp-table-wrapper .rcp-table td.status-cancelled { color: #b91c1c; } /* rojo-700 */

.rcp_success, .rcp_message.success{
  background: #f2fef3;
  border: 1px solid #299944;
  color: #299944;
  border-radius: 12px;
  padding: 12px 14px;
  margin: 12px 0 18px;
  box-shadow: 0 1px 0 rgba(0,0,0,.02);
}

.rcp_warning, .rcp_message.warning{
  background: #f6e2e2;
  border: 1px solid red;
  color: red;
  border-radius: 12px;
  padding: 12px 14px;
  margin: 12px 0 18px;
  box-shadow: 0 1px 0 rgba(0,0,0,.02);
}

/* Aviso de warning en el fieldset de billing fields */
#rcp_billing_fields_warning_wrap {
  padding: 12px 14px 12px 0;
  font-size: 14px;
  grid-column: 1 / -1;
}

#rcp_billing_fields_warning_wrap .rcp-billing-fields-warning {
  color: red;
  font-weight: 600;
}