/* ResultsAiX Membership - front-of-site styles.
   Deliberately light-touch: forms and locked blocks inherit the theme's fonts
   and colors wherever possible so they look native on any site. */

.raxm-locked {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    border: 1px solid rgba(0, 0, 0, .12);
    border-left: 4px solid #f59e0b;
    border-radius: 10px;
    padding: 18px 20px;
    margin: 18px 0;
    background: rgba(245, 158, 11, .06);
}
.raxm-locked-ico { font-size: 26px; line-height: 1.2; flex: 0 0 auto; }
.raxm-locked-msg { flex: 1; }
.raxm-locked-msg p { margin: 0 0 8px; }
.raxm-locked-msg p:last-child { margin-bottom: 0; }
.raxm-locked-links { margin: 10px 0 0; }
.raxm-teaser { position: relative; margin-bottom: 4px; }

.raxm-form { max-width: 460px; margin: 18px 0; }
.raxm-form form p { margin: 0 0 14px; }
.raxm-form label { display: block; font-weight: 600; margin-bottom: 4px; }
.raxm-form input[type=text],
.raxm-form input[type=email],
.raxm-form input[type=password] {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid rgba(0, 0, 0, .25);
    border-radius: 8px;
    font-size: 15px;
    box-sizing: border-box;
}

/* The forms, laid out so they hold on ANY theme: label on its own line, field
   the full width of the form underneath it. Themes commonly float labels, set
   inputs to width:auto or inline-block, or style "form p" as a flex row, and
   WordPress prints size="20" on the login inputs, which is where the narrow,
   ragged look comes from. These rules are specific enough to win that fight
   and !important only on the handful of layout properties that decide it;
   fonts and colours still come from the theme. */
div.raxm-form form,
div.raxm-form form p { display: block !important; float: none !important; width: auto !important; max-width: 100% !important; text-align: start !important; }
div.raxm-form form p { margin: 0 0 14px !important; padding: 0 !important; }
div.raxm-form form label {
    display: block !important; float: none !important; width: auto !important;
    text-align: start !important; /* 'start', not 'left', so a right-to-left site still reads correctly */
    margin: 0 0 5px !important; font-weight: 600; line-height: 1.35;
}
div.raxm-form form input[type=text],
div.raxm-form form input[type=email],
div.raxm-form form input[type=password],
div.raxm-form form input[type=url],
div.raxm-form form input[type=tel] {
    display: block !important; float: none !important;
    width: 100% !important; max-width: 100% !important; min-width: 0 !important;
    box-sizing: border-box !important;
    margin: 0 !important; padding: 11px 13px; min-height: 44px;
    border: 1px solid rgba(0, 0, 0, .25); border-radius: 8px;
    font-size: 16px; line-height: 1.3; /* 16px stops phones zooming in on focus */
    background: #fff; color: #111;
}
div.raxm-form form input[type=text]:focus,
div.raxm-form form input[type=email]:focus,
div.raxm-form form input[type=password]:focus { outline: 2px solid #f59e0b; outline-offset: 1px; border-color: #f59e0b; }
/* "Remember me": the one label that stays on a single line with its box. */
div.raxm-form form .login-remember label,
div.raxm-form form label.raxm-inline { display: flex !important; align-items: center; gap: 8px; font-weight: 400; margin: 0 !important; }
div.raxm-form form input[type=checkbox] { width: auto !important; min-height: 0; margin: 0 !important; flex: 0 0 auto; }
div.raxm-form form .login-submit { margin-bottom: 0 !important; }
div.raxm-form form input[type=submit],
div.raxm-form form button[type=submit] {
    display: block !important; width: 100% !important; box-sizing: border-box !important;
    min-height: 46px; padding: 12px 24px; margin: 0;
    border: 0; border-radius: 9px; cursor: pointer;
    background: #f59e0b; color: #111; font-weight: 700; font-size: 16px; line-height: 1.2;
}
div.raxm-form form input[type=submit]:hover,
div.raxm-form form button[type=submit]:hover { filter: brightness(.95); }
.raxm-form-error {
    background: #fde2e2;
    border: 1px solid #fca5a5;
    color: #991b1b;
    border-radius: 8px;
    padding: 10px 14px;
    font-size: 14px;
}
.raxm-form-links { font-size: 14px; margin-top: 10px; }

/* Honeypot: moved out of view, never display:none (some bots skip hidden fields). */
.raxm-hp { position: absolute !important; left: -9999px !important; top: -9999px !important; }

.raxm-btn-front,
a.raxm-btn-front {
    display: inline-block;
    background: #f59e0b;
    color: #111;
    font-weight: 700;
    font-size: 15px;
    padding: 11px 24px;
    border: 0;
    border-radius: 9px;
    cursor: pointer;
    text-decoration: none;
    transition: filter .15s;
}
.raxm-btn-front:hover { filter: brightness(1.07); color: #111; }

.raxm-btn-front-sm, a.raxm-btn-front-sm { font-size: 13px; padding: 8px 16px; }
.raxm-btn-front-ghost, a.raxm-btn-front-ghost { background: transparent; border: 2px solid #f59e0b; color: inherit; }
.raxm-btn-front-ghost:hover { background: rgba(245, 158, 11, .12); }

/* Member profile page ([raxm_profile]). Inherits the theme's fonts and colours. */
.raxm-profile { margin: 12px 0; }
.raxm-profile-head { display: flex; gap: 18px; align-items: center; margin-bottom: 18px; }
.raxm-profile-avatar { position: relative; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; overflow: hidden; flex: 0 0 auto; background: linear-gradient(135deg, #1f2937, #374151); color: #fff; font-weight: 700; }
.raxm-profile-avatar img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.raxm-profile-greet { font-size: 14px; opacity: .7; }
.raxm-profile-name { margin: 0 0 4px; font-size: 26px; line-height: 1.15; }
.raxm-profile-meta { font-size: 13px; opacity: .8; }
.raxm-profile-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 10px; margin: 0 0 22px; }
.raxm-profile-stats > div { border: 1px solid rgba(0, 0, 0, .12); border-radius: 12px; padding: 14px 10px; text-align: center; }
.raxm-profile-stats b { display: block; font-size: 24px; line-height: 1.1; }
.raxm-profile-stats span { display: block; font-size: 12px; opacity: .7; margin-top: 4px; text-transform: uppercase; letter-spacing: .04em; }
.raxm-profile-sec { margin: 0 0 26px; }
.raxm-profile-sec h3 { margin: 0 0 12px; font-size: 19px; }
.raxm-profile-count { font-size: 13px; opacity: .6; margin-left: 6px; font-weight: 400; }
.raxm-profile-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.raxm-profile-card { border: 1px solid rgba(0, 0, 0, .12); border-radius: 12px; padding: 16px 18px; display: flex; flex-direction: column; gap: 8px; }
.raxm-profile-card.is-active { border-left: 4px solid #22c55e; }
.raxm-profile-card.is-off { opacity: .8; border-left: 4px solid rgba(0, 0, 0, .2); }
.raxm-profile-card.is-offer { border-style: dashed; }
.raxm-profile-card-top { display: flex; justify-content: space-between; align-items: center; gap: 8px; font-size: 16px; }
.raxm-profile-badge { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; padding: 3px 9px; border-radius: 999px; background: rgba(0, 0, 0, .08); }
.raxm-profile-badge.raxm-status-active { background: rgba(34, 197, 94, .15); color: #166534; }
.raxm-profile-badge.raxm-status-cancelled, .raxm-profile-badge.raxm-status-expired { background: rgba(0, 0, 0, .08); }
.raxm-profile-facts { list-style: none; margin: 0; padding: 0; font-size: 13px; opacity: .8; }
.raxm-profile-facts li { margin: 2px 0; }
.raxm-profile-muted { font-size: 13.5px; opacity: .75; margin: 0; }
.raxm-profile-card .raxm-btn-front { align-self: flex-start; margin-top: 4px; }
.raxm-profile-list { list-style: none; margin: 0; padding: 0; }
.raxm-profile-list li { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px solid rgba(0, 0, 0, .1); font-size: 14.5px; }
.raxm-profile-list li:last-child { border-bottom: 0; }
.raxm-profile-timeline { list-style: none; margin: 0; padding: 0; font-size: 14px; }
.raxm-profile-timeline li { padding: 6px 0; border-bottom: 1px dashed rgba(0, 0, 0, .1); }
.raxm-profile-when { display: inline-block; min-width: 110px; opacity: .6; font-size: 13px; }

.raxm-account-table { width: 100%; border-collapse: collapse; margin: 12px 0; }
.raxm-account-table th, .raxm-account-table td {
    text-align: left;
    padding: 8px 10px;
    border-bottom: 1px solid rgba(0, 0, 0, .12);
    font-size: 14px;
}
.raxm-account-table th { font-size: 12px; text-transform: uppercase; letter-spacing: .04em; opacity: .7; }

/* ══ Member profile page, v2 ═══════════════════════════════════════════
   Inherits the theme's own colours wherever it can. Everything here is
   scoped to .raxm-profile-v2 so an older page using the previous markup
   is untouched. */
.raxm-profile-v2 { --raxm-pf-line: rgba(0,0,0,.11); --raxm-pf-soft: rgba(0,0,0,.028); --raxm-pf-mut: rgba(0,0,0,.58); --raxm-pf-acc: #b45309; margin: 12px 0; }
@media (prefers-color-scheme: dark) {
  .raxm-profile-v2 { --raxm-pf-line: rgba(255,255,255,.15); --raxm-pf-soft: rgba(255,255,255,.04); --raxm-pf-mut: rgba(255,255,255,.62); --raxm-pf-acc: #fbbf24; }
}
.raxm-profile-v2 * { box-sizing: border-box; }

.raxm-pf-head { display: flex; gap: 18px; align-items: center; margin-bottom: 22px; flex-wrap: wrap; }
.raxm-pf-who { min-width: 0; }
.raxm-pf-name { margin: 0 0 3px; font-size: 27px; line-height: 1.15; letter-spacing: -.02em; }
.raxm-pf-meta { font-size: 13.5px; color: var(--raxm-pf-mut); }
.raxm-pf-meta a { color: var(--raxm-pf-acc); text-decoration: none; font-weight: 600; }
.raxm-pf-meta a:hover { text-decoration: underline; }

.raxm-pf-sec { margin: 0 0 32px; }
.raxm-pf-sec h3 { margin: 0 0 12px; font-size: 19px; letter-spacing: -.01em; display: flex; align-items: baseline; gap: 9px; flex-wrap: wrap; }
.raxm-pf-count { font-size: 13px; color: var(--raxm-pf-mut); font-weight: 400; }
.raxm-pf-muted { color: var(--raxm-pf-mut); font-size: 14px; }

/* pick up where you left off */
.raxm-pf-rcards { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.raxm-pf-rcard { border: 1px solid var(--raxm-pf-line); border-radius: 14px; padding: 15px 18px; display: flex; flex-direction: column; gap: 5px; text-decoration: none; color: inherit; position: relative; overflow: hidden; transition: border-color .15s, transform .15s; }
.raxm-pf-rcard::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: linear-gradient(180deg, #60a5fa, #2563eb); }
.raxm-pf-rcard:hover { border-color: #2563eb; transform: translateY(-2px); }
.raxm-pf-rcard .k { font-size: 10.5px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; color: #2563eb; }
.raxm-pf-rcard b { font-size: 15px; line-height: 1.35; }
.raxm-pf-rcard .w { font-size: 12.5px; color: var(--raxm-pf-mut); }
.raxm-pf-rcard .go { margin-top: 5px; font-size: 13px; font-weight: 800; color: var(--raxm-pf-acc); }

/* stats */
.raxm-pf-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 11px; margin: 0 0 32px; }
.raxm-pf-stats > div { border: 1px solid var(--raxm-pf-line); border-radius: 13px; padding: 15px 10px; text-align: center; }
.raxm-pf-stats b { display: block; font-size: 25px; line-height: 1.1; font-weight: 800; }
.raxm-pf-stats span { display: block; font-size: 11.5px; color: var(--raxm-pf-mut); margin-top: 4px; text-transform: uppercase; letter-spacing: .045em; }

/* search + filter chips */
.raxm-pf-tools { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-bottom: 13px; }
.raxm-pf-search { flex: 1; min-width: 210px; position: relative; }
.raxm-pf-search .ic { position: absolute; left: 13px; top: 50%; transform: translateY(-50%); opacity: .45; pointer-events: none; }
.raxm-pf-search input { width: 100%; padding: 10px 14px 10px 38px; border-radius: 10px; border: 1px solid var(--raxm-pf-line); background: transparent; color: inherit; font-size: 14px; font-family: inherit; }
.raxm-pf-search input:focus { outline: none; border-color: var(--raxm-pf-acc); }
.raxm-pf-chips { display: flex; gap: 7px; flex-wrap: wrap; }
.raxm-pf-chip { border: 1px solid var(--raxm-pf-line); background: transparent; color: inherit; border-radius: 99px; padding: 7px 15px; font-size: 12.5px; cursor: pointer; font-family: inherit; }
.raxm-pf-chip.is-on { background: currentColor; border-color: currentColor; font-weight: 700; }
.raxm-pf-chip.is-on { color: inherit; }
.raxm-pf-chip.is-on { background: rgba(0,0,0,.85); color: #fff; border-color: rgba(0,0,0,.85); }
@media (prefers-color-scheme: dark) { .raxm-pf-chip.is-on { background: #fff; color: #111; border-color: #fff; } }

/* grouped library */
.raxm-pf-grp { border: 1px solid var(--raxm-pf-line); border-radius: 14px; margin-bottom: 10px; overflow: hidden; }
.raxm-pf-grp > summary { list-style: none; cursor: pointer; padding: 14px 18px; display: flex; align-items: center; gap: 11px; font-weight: 700; font-size: 14.5px; flex-wrap: wrap; }
.raxm-pf-grp > summary::-webkit-details-marker { display: none; }
.raxm-pf-grp > summary::after { content: '+'; margin-left: auto; font-size: 19px; font-weight: 400; color: var(--raxm-pf-mut); }
.raxm-pf-grp[open] > summary::after { content: '\2212'; }
.raxm-pf-grp > summary .dot { width: 8px; height: 8px; border-radius: 50%; background: #16a34a; flex: none; }
.raxm-pf-grp > summary .cnt { font-size: 12px; color: var(--raxm-pf-mut); font-weight: 400; }
.raxm-pf-items { border-top: 1px solid var(--raxm-pf-line); }

.raxm-pf-item { display: flex; align-items: center; gap: 10px; padding: 10px 18px; border-bottom: 1px solid var(--raxm-pf-soft); font-size: 14px; text-decoration: none; color: inherit; }
.raxm-pf-item:last-child { border-bottom: 0; }
.raxm-pf-item:hover { background: var(--raxm-pf-soft); }
.raxm-pf-item .t { color: var(--raxm-pf-acc); font-weight: 600; }
.raxm-pf-item .m { margin-left: auto; font-size: 11.5px; color: var(--raxm-pf-mut); white-space: nowrap; }
.raxm-pf-item .new { background: rgba(37,99,235,.12); color: #1d4ed8; border-radius: 5px; padding: 1px 7px; font-size: 10px; font-weight: 800; letter-spacing: .04em; white-space: nowrap; }
@media (prefers-color-scheme: dark) { .raxm-pf-item .new { color: #93c5fd; } }
.raxm-pf-more { display: block; width: 100%; text-align: left; padding: 11px 18px; font-size: 13px; font-weight: 700; color: var(--raxm-pf-acc); cursor: pointer; background: var(--raxm-pf-soft); border: 0; border-top: 1px solid var(--raxm-pf-soft); font-family: inherit; }
.raxm-pf-more:hover { text-decoration: underline; }

/* membership rows */
.raxm-pf-list { border: 1px solid var(--raxm-pf-line); border-radius: 14px; overflow: hidden; }
.raxm-pf-row { display: flex; align-items: center; gap: 12px; padding: 12px 18px; border-bottom: 1px solid var(--raxm-pf-soft); font-size: 14px; flex-wrap: wrap; }
.raxm-pf-row:last-of-type { border-bottom: 0; }
.raxm-pf-rowmain { min-width: 0; }
.raxm-pf-rowmain .nm { font-weight: 700; display: block; }
.raxm-pf-rowmain .dt { color: var(--raxm-pf-mut); font-size: 12.5px; }
.raxm-pf-rowend { margin-left: auto; display: flex; gap: 9px; align-items: center; }
.raxm-pf-row.is-ending { background: rgba(245,158,11,.08); }
.raxm-pf-badge { border-radius: 99px; padding: 3px 11px; font-size: 10.5px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; }
.raxm-pf-badge.is-on { background: rgba(22,163,74,.14); color: #15803d; }
.raxm-pf-badge.is-off { background: rgba(0,0,0,.07); color: var(--raxm-pf-mut); }
.raxm-pf-badge.is-soon { background: rgba(245,158,11,.18); color: #92400e; }
@media (prefers-color-scheme: dark) {
  .raxm-pf-badge.is-on { color: #4ade80; }
  .raxm-pf-badge.is-soon { color: #fcd34d; }
  .raxm-pf-badge.is-off { background: rgba(255,255,255,.08); }
}

/* offers */
.raxm-pf-offers { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px; }
.raxm-profile-v2[data-cols="2"] .raxm-pf-offers { grid-template-columns: repeat(auto-fit, minmax(330px, 1fr)); }
.raxm-profile-v2[data-cols="4"] .raxm-pf-offers { grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }
.raxm-pf-offer { border: 1px dashed var(--raxm-pf-acc); border-radius: 14px; padding: 19px 21px; display: flex; flex-direction: column; gap: 8px; }
.raxm-pf-offer b { font-size: 16px; }
.raxm-pf-offer p { margin: 0; font-size: 13.5px; color: var(--raxm-pf-mut); line-height: 1.6; }
.raxm-pf-offer .raxm-btn-front { align-self: flex-start; margin-top: 3px; }

/* timeline */
.raxm-pf-timeline { list-style: none; padding: 0; margin: 10px 0 0; }
.raxm-pf-timeline li { padding: 8px 0; border-bottom: 1px solid var(--raxm-pf-soft); font-size: 14px; }
.raxm-pf-timeline li:last-child { border-bottom: 0; }
.raxm-pf-when { display: inline-block; min-width: 118px; color: var(--raxm-pf-mut); font-size: 12.5px; }
.raxm-pf-empty { padding: 16px 18px; color: var(--raxm-pf-mut); font-size: 13.5px; }
