{"id":10,"date":"2026-07-14T11:30:38","date_gmt":"2026-07-14T11:30:38","guid":{"rendered":"https:\/\/realtorlist.net\/my-account\/"},"modified":"2026-07-15T03:41:55","modified_gmt":"2026-07-15T01:41:55","slug":"my-account","status":"publish","type":"page","link":"https:\/\/realtorlist.net\/en\/my-account\/","title":{"rendered":"My account"},"content":{"rendered":"<div class=\"woocommerce\"><\/div>\n\n\n\n<style>\n  #rl-my-account {\n    --rl-navy: #0f2d3e;\n    --rl-navy-deep: #081f2c;\n    --rl-teal: #176b67;\n    --rl-teal-dark: #0f5552;\n    --rl-gold: #d99a1d;\n    --rl-cream: #f7f3ea;\n    --rl-bg: #f4f7f6;\n    --rl-white: #ffffff;\n    --rl-text: #26343b;\n    --rl-muted: #69777d;\n    --rl-border: #dce5e2;\n    --rl-danger: #a93d3d;\n    --rl-success: #166c51;\n    --rl-shadow: 0 20px 55px rgba(15,45,62,.10);\n    --rl-shadow-soft: 0 10px 28px rgba(15,45,62,.07);\n    --rl-radius-xl: 28px;\n    --rl-radius-lg: 20px;\n    --rl-max: 1240px;\n    color: var(--rl-text);\n    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif;\n    line-height: 1.55;\n  }\n\n  #rl-my-account *,\n  #rl-my-account *::before,\n  #rl-my-account *::after {\n    box-sizing: border-box;\n  }\n\n  #rl-my-account button,\n  #rl-my-account input,\n  #rl-my-account textarea,\n  #rl-my-account select {\n    font: inherit;\n  }\n\n  #rl-my-account a {\n    color: inherit;\n  }\n\n  #rl-my-account .rl-account-shell {\n    width: min(calc(100% - 34px), var(--rl-max));\n    margin: 34px auto 72px;\n  }\n\n  #rl-my-account .rl-account-hero {\n    position: relative;\n    overflow: hidden;\n    display: grid;\n    grid-template-columns: minmax(0,1fr) auto;\n    gap: 30px;\n    align-items: center;\n    padding: clamp(28px,5vw,48px);\n    border-radius: var(--rl-radius-xl);\n    color: #fff;\n    background:\n      radial-gradient(circle at 95% 0%, rgba(23,107,103,.52), transparent 32%),\n      radial-gradient(circle at 0% 100%, rgba(217,154,29,.13), transparent 30%),\n      linear-gradient(145deg, var(--rl-navy-deep), var(--rl-navy));\n    box-shadow: var(--rl-shadow);\n  }\n\n  #rl-my-account .rl-account-hero::after {\n    position: absolute;\n    top: -120px;\n    right: -90px;\n    width: 330px;\n    height: 330px;\n    border: 1px solid rgba(255,255,255,.08);\n    border-radius: 50%;\n    box-shadow:\n      0 0 0 55px rgba(255,255,255,.018),\n      0 0 0 110px rgba(255,255,255,.012);\n    content: \"\";\n    pointer-events: none;\n  }\n\n  #rl-my-account .rl-account-hero-copy,\n  #rl-my-account .rl-account-user {\n    position: relative;\n    z-index: 2;\n  }\n\n  #rl-my-account .rl-eyebrow {\n    display: inline-flex;\n    align-items: center;\n    gap: 9px;\n    margin: 0 0 12px;\n    color: #a8e0d7;\n    font-size: .72rem;\n    font-weight: 850;\n    letter-spacing: .1em;\n    text-transform: uppercase;\n  }\n\n  #rl-my-account .rl-eyebrow::before {\n    width: 27px;\n    height: 2px;\n    border-radius: 999px;\n    background: currentColor;\n    content: \"\";\n  }\n\n  #rl-my-account h2,\n  #rl-my-account h3,\n  #rl-my-account h4 {\n    margin: 0;\n    color: var(--rl-navy);\n    line-height: 1.1;\n    text-wrap: balance;\n  }\n\n  #rl-my-account .rl-account-hero h2 {\n    color: #fff;\n    font-size: clamp(1.8rem,4vw,3.1rem);\n    letter-spacing: -.045em;\n  }\n\n  #rl-my-account .rl-account-hero p {\n    max-width: 720px;\n    margin: 14px 0 0;\n    color: rgba(255,255,255,.73);\n  }\n\n  #rl-my-account .rl-account-user {\n    min-width: 245px;\n    padding: 18px;\n    border: 1px solid rgba(255,255,255,.13);\n    border-radius: 20px;\n    background: rgba(255,255,255,.07);\n    backdrop-filter: blur(10px);\n  }\n\n  #rl-my-account .rl-user-line {\n    display: flex;\n    gap: 13px;\n    align-items: center;\n  }\n\n  #rl-my-account .rl-avatar {\n    width: 52px;\n    height: 52px;\n    flex: 0 0 52px;\n    display: grid;\n    place-items: center;\n    overflow: hidden;\n    border-radius: 17px;\n    color: var(--rl-navy);\n    background: #fff;\n    font-weight: 900;\n  }\n\n  #rl-my-account .rl-avatar img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n  }\n\n  #rl-my-account .rl-user-name {\n    display: block;\n    color: #fff;\n    font-weight: 850;\n  }\n\n  #rl-my-account .rl-user-email {\n    display: block;\n    margin-top: 3px;\n    color: rgba(255,255,255,.62);\n    font-size: .78rem;\n    word-break: break-word;\n  }\n\n  #rl-my-account .rl-layout {\n    display: grid;\n    grid-template-columns: 250px minmax(0,1fr);\n    gap: 24px;\n    margin-top: 24px;\n  }\n\n  #rl-my-account .rl-sidebar {\n    align-self: start;\n    position: sticky;\n    top: 100px;\n    padding: 15px;\n    border: 1px solid var(--rl-border);\n    border-radius: var(--rl-radius-lg);\n    background: #fff;\n    box-shadow: var(--rl-shadow-soft);\n  }\n\n  #rl-my-account .rl-nav {\n    display: grid;\n    gap: 5px;\n  }\n\n  #rl-my-account .rl-nav-button,\n  #rl-my-account .rl-nav-link {\n    width: 100%;\n    min-height: 47px;\n    display: flex;\n    align-items: center;\n    gap: 11px;\n    padding: 11px 13px;\n    border: 0;\n    border-radius: 13px;\n    color: var(--rl-muted);\n    background: transparent;\n    font-weight: 760;\n    text-align: left;\n    text-decoration: none;\n    cursor: pointer;\n    transition: background .18s ease, color .18s ease, transform .18s ease;\n  }\n\n  #rl-my-account .rl-nav-button:hover,\n  #rl-my-account .rl-nav-link:hover {\n    color: var(--rl-navy);\n    background: var(--rl-bg);\n    transform: translateX(2px);\n  }\n\n  #rl-my-account .rl-nav-button.is-active {\n    color: #fff;\n    background: var(--rl-teal);\n    box-shadow: 0 10px 22px rgba(23,107,103,.18);\n  }\n\n  #rl-my-account .rl-nav-icon {\n    width: 25px;\n    height: 25px;\n    flex: 0 0 25px;\n    display: grid;\n    place-items: center;\n    border-radius: 8px;\n    color: currentColor;\n    background: rgba(15,45,62,.06);\n    font-size: .72rem;\n    font-weight: 900;\n  }\n\n  #rl-my-account .rl-nav-button.is-active .rl-nav-icon {\n    background: rgba(255,255,255,.15);\n  }\n\n  #rl-my-account .rl-nav-divider {\n    height: 1px;\n    margin: 10px 4px;\n    background: var(--rl-border);\n  }\n\n  #rl-my-account .rl-main {\n    min-width: 0;\n  }\n\n  #rl-my-account .rl-panel {\n    display: none;\n  }\n\n  #rl-my-account .rl-panel.is-active {\n    display: block;\n    animation: rl-account-in .26s ease both;\n  }\n\n  @keyframes rl-account-in {\n    from { opacity: 0; transform: translateY(8px); }\n    to { opacity: 1; transform: translateY(0); }\n  }\n\n  #rl-my-account .rl-card {\n    padding: clamp(22px,4vw,34px);\n    border: 1px solid var(--rl-border);\n    border-radius: var(--rl-radius-xl);\n    background: #fff;\n    box-shadow: var(--rl-shadow-soft);\n  }\n\n  #rl-my-account .rl-card + .rl-card {\n    margin-top: 18px;\n  }\n\n  #rl-my-account .rl-card-head {\n    display: flex;\n    justify-content: space-between;\n    gap: 20px;\n    align-items: flex-start;\n    margin-bottom: 24px;\n  }\n\n  #rl-my-account .rl-card-head p,\n  #rl-my-account .rl-muted {\n    margin: 8px 0 0;\n    color: var(--rl-muted);\n  }\n\n  #rl-my-account .rl-status {\n    display: inline-flex;\n    align-items: center;\n    gap: 7px;\n    padding: 7px 10px;\n    border-radius: 999px;\n    color: var(--rl-navy);\n    background: var(--rl-cream);\n    font-size: .72rem;\n    font-weight: 850;\n    white-space: nowrap;\n  }\n\n  #rl-my-account .rl-status::before {\n    width: 7px;\n    height: 7px;\n    border-radius: 50%;\n    background: var(--rl-gold);\n    content: \"\";\n  }\n\n  #rl-my-account .rl-status.is-active {\n    color: var(--rl-success);\n    background: #e8f5ef;\n  }\n\n  #rl-my-account .rl-status.is-active::before {\n    background: var(--rl-success);\n  }\n\n  #rl-my-account .rl-dashboard-grid {\n    display: grid;\n    grid-template-columns: repeat(3,minmax(0,1fr));\n    gap: 14px;\n  }\n\n  #rl-my-account .rl-stat-card {\n    padding: 20px;\n    border: 1px solid var(--rl-border);\n    border-radius: var(--rl-radius-lg);\n    background: linear-gradient(180deg,#fff,var(--rl-bg));\n  }\n\n  #rl-my-account .rl-stat-label {\n    color: var(--rl-muted);\n    font-size: .78rem;\n    font-weight: 780;\n  }\n\n  #rl-my-account .rl-stat-value {\n    display: block;\n    margin-top: 8px;\n    color: var(--rl-navy);\n    font-size: clamp(1.28rem,2.4vw,1.75rem);\n    font-weight: 900;\n    letter-spacing: -.03em;\n  }\n\n  #rl-my-account .rl-action-grid {\n    display: grid;\n    grid-template-columns: repeat(2,minmax(0,1fr));\n    gap: 14px;\n  }\n\n  #rl-my-account .rl-action {\n    display: block;\n    padding: 19px;\n    border: 1px solid var(--rl-border);\n    border-radius: var(--rl-radius-lg);\n    color: var(--rl-navy);\n    background: #fff;\n    text-decoration: none;\n    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;\n  }\n\n  #rl-my-account .rl-action:hover {\n    transform: translateY(-2px);\n    border-color: rgba(23,107,103,.34);\n    box-shadow: var(--rl-shadow-soft);\n  }\n\n  #rl-my-account .rl-action strong {\n    display: block;\n  }\n\n  #rl-my-account .rl-action span {\n    display: block;\n    margin-top: 6px;\n    color: var(--rl-muted);\n    font-size: .82rem;\n  }\n\n  #rl-my-account .rl-form-grid {\n    display: grid;\n    grid-template-columns: repeat(2,minmax(0,1fr));\n    gap: 18px;\n  }\n\n  #rl-my-account .rl-field {\n    min-width: 0;\n  }\n\n  #rl-my-account .rl-field--full {\n    grid-column: 1 \/ -1;\n  }\n\n  #rl-my-account .rl-label {\n    display: block;\n    margin-bottom: 7px;\n    color: var(--rl-navy);\n    font-size: .78rem;\n    font-weight: 820;\n  }\n\n  #rl-my-account .rl-help {\n    display: block;\n    margin-top: 6px;\n    color: var(--rl-muted);\n    font-size: .72rem;\n  }\n\n  #rl-my-account .rl-input,\n  #rl-my-account .rl-textarea,\n  #rl-my-account .rl-select {\n    width: 100%;\n    min-height: 48px;\n    padding: 11px 13px;\n    border: 1px solid var(--rl-border);\n    border-radius: 13px;\n    color: var(--rl-text);\n    background: #fff;\n    outline: 0;\n    transition: border-color .18s ease, box-shadow .18s ease;\n  }\n\n  #rl-my-account .rl-textarea {\n    min-height: 125px;\n    resize: vertical;\n  }\n\n  #rl-my-account .rl-input:focus,\n  #rl-my-account .rl-textarea:focus,\n  #rl-my-account .rl-select:focus {\n    border-color: var(--rl-teal);\n    box-shadow: 0 0 0 3px rgba(23,107,103,.10);\n  }\n\n  #rl-my-account .rl-fieldset {\n    padding: 17px;\n    border: 1px solid var(--rl-border);\n    border-radius: 16px;\n    background: var(--rl-bg);\n  }\n\n  #rl-my-account .rl-fieldset legend {\n    padding: 0 8px;\n    color: var(--rl-navy);\n    font-size: .78rem;\n    font-weight: 850;\n  }\n\n  #rl-my-account .rl-choice-grid {\n    display: grid;\n    grid-template-columns: repeat(2,minmax(0,1fr));\n    gap: 8px;\n    max-height: 240px;\n    overflow: auto;\n    padding-right: 3px;\n  }\n\n  #rl-my-account .rl-choice {\n    display: flex;\n    gap: 8px;\n    align-items: flex-start;\n    padding: 9px 10px;\n    border: 1px solid transparent;\n    border-radius: 10px;\n    color: var(--rl-muted);\n    background: #fff;\n    font-size: .78rem;\n    cursor: pointer;\n  }\n\n  #rl-my-account .rl-choice:hover {\n    border-color: var(--rl-border);\n  }\n\n  #rl-my-account .rl-choice input {\n    margin-top: 2px;\n    accent-color: var(--rl-teal);\n  }\n\n  #rl-my-account .rl-form-actions {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 10px;\n    align-items: center;\n    margin-top: 24px;\n  }\n\n  #rl-my-account .rl-btn {\n    min-height: 48px;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    gap: 8px;\n    padding: 12px 18px;\n    border: 1px solid transparent;\n    border-radius: 999px;\n    font-weight: 840;\n    line-height: 1.1;\n    text-align: center;\n    text-decoration: none;\n    cursor: pointer;\n    transition: transform .18s ease, box-shadow .18s ease, background .18s ease;\n  }\n\n  #rl-my-account .rl-btn:hover {\n    transform: translateY(-2px);\n  }\n\n  #rl-my-account .rl-btn--primary {\n    color: #fff;\n    background: var(--rl-teal);\n    box-shadow: 0 12px 26px rgba(23,107,103,.20);\n  }\n\n  #rl-my-account .rl-btn--primary:hover {\n    background: var(--rl-teal-dark);\n  }\n\n  #rl-my-account .rl-btn--secondary {\n    color: var(--rl-navy);\n    border-color: var(--rl-border);\n    background: #fff;\n  }\n\n  #rl-my-account .rl-btn[disabled] {\n    opacity: .55;\n    cursor: wait;\n    transform: none;\n  }\n\n  #rl-my-account .rl-notice {\n    display: none;\n    margin: 0 0 18px;\n    padding: 13px 15px;\n    border: 1px solid var(--rl-border);\n    border-radius: 13px;\n    color: var(--rl-navy);\n    background: var(--rl-cream);\n    font-size: .82rem;\n    font-weight: 720;\n  }\n\n  #rl-my-account .rl-notice.is-visible {\n    display: block;\n  }\n\n  #rl-my-account .rl-notice.is-success {\n    color: var(--rl-success);\n    border-color: #b9dfcf;\n    background: #edf8f3;\n  }\n\n  #rl-my-account .rl-notice.is-error {\n    color: var(--rl-danger);\n    border-color: #ecc9c9;\n    background: #fff3f3;\n  }\n\n  #rl-my-account .rl-empty {\n    padding: 28px;\n    border: 1px dashed #bdcbc6;\n    border-radius: 18px;\n    color: var(--rl-muted);\n    background: var(--rl-bg);\n    text-align: center;\n  }\n\n  #rl-my-account .rl-plan-grid {\n    display: grid;\n    grid-template-columns: minmax(0,1.25fr) minmax(280px,.75fr);\n    gap: 18px;\n  }\n\n  #rl-my-account .rl-plan-box {\n    padding: 24px;\n    border: 1px solid var(--rl-border);\n    border-radius: var(--rl-radius-lg);\n    background:\n      radial-gradient(circle at 100% 0%, rgba(217,154,29,.08), transparent 30%),\n      linear-gradient(180deg,#fff,var(--rl-bg));\n  }\n\n  #rl-my-account .rl-plan-name {\n    display: block;\n    margin-top: 9px;\n    color: var(--rl-navy);\n    font-size: clamp(1.45rem,3vw,2.1rem);\n    font-weight: 920;\n    letter-spacing: -.04em;\n  }\n\n  #rl-my-account .rl-plan-meta {\n    display: grid;\n    gap: 8px;\n    margin-top: 20px;\n  }\n\n  #rl-my-account .rl-plan-meta div {\n    display: flex;\n    justify-content: space-between;\n    gap: 18px;\n    padding-bottom: 8px;\n    border-bottom: 1px solid var(--rl-border);\n    color: var(--rl-muted);\n    font-size: .82rem;\n  }\n\n  #rl-my-account .rl-plan-meta strong {\n    color: var(--rl-navy);\n  }\n\n  #rl-my-account .rl-loading {\n    display: grid;\n    place-items: center;\n    min-height: 220px;\n    color: var(--rl-muted);\n  }\n\n  #rl-my-account .rl-spinner {\n    width: 34px;\n    height: 34px;\n    margin-bottom: 12px;\n    border: 3px solid rgba(23,107,103,.14);\n    border-top-color: var(--rl-teal);\n    border-radius: 50%;\n    animation: rl-spin .75s linear infinite;\n  }\n\n  @keyframes rl-spin {\n    to { transform: rotate(360deg); }\n  }\n\n  #rl-my-account .rl-login-required {\n    padding: clamp(30px,6vw,58px);\n    border: 1px solid var(--rl-border);\n    border-radius: var(--rl-radius-xl);\n    background: #fff;\n    box-shadow: var(--rl-shadow-soft);\n    text-align: center;\n  }\n\n  #rl-my-account .rl-login-required p {\n    max-width: 620px;\n    margin: 14px auto 22px;\n    color: var(--rl-muted);\n  }\n\n  @media (max-width: 980px) {\n    #rl-my-account .rl-account-hero,\n    #rl-my-account .rl-layout,\n    #rl-my-account .rl-plan-grid {\n      grid-template-columns: 1fr;\n    }\n\n    #rl-my-account .rl-account-user {\n      min-width: 0;\n    }\n\n    #rl-my-account .rl-sidebar {\n      position: static;\n    }\n\n    #rl-my-account .rl-nav {\n      grid-template-columns: repeat(3,minmax(0,1fr));\n    }\n\n    #rl-my-account .rl-nav-divider {\n      display: none;\n    }\n\n    #rl-my-account .rl-nav-button,\n    #rl-my-account .rl-nav-link {\n      justify-content: center;\n      text-align: center;\n    }\n  }\n\n  @media (max-width: 680px) {\n    #rl-my-account .rl-account-shell {\n      width: min(calc(100% - 22px),var(--rl-max));\n      margin-top: 18px;\n    }\n\n    #rl-my-account .rl-dashboard-grid,\n    #rl-my-account .rl-action-grid,\n    #rl-my-account .rl-form-grid,\n    #rl-my-account .rl-choice-grid {\n      grid-template-columns: 1fr;\n    }\n\n    #rl-my-account .rl-nav {\n      grid-template-columns: repeat(2,minmax(0,1fr));\n    }\n\n    #rl-my-account .rl-nav-button,\n    #rl-my-account .rl-nav-link {\n      justify-content: flex-start;\n      text-align: left;\n    }\n\n    #rl-my-account .rl-card-head {\n      display: grid;\n    }\n\n    #rl-my-account .rl-form-actions {\n      display: grid;\n    }\n\n    #rl-my-account .rl-btn {\n      width: 100%;\n    }\n  }\n\n  @media (prefers-reduced-motion: reduce) {\n    #rl-my-account *,\n    #rl-my-account *::before,\n    #rl-my-account *::after {\n      animation-duration: .001ms !important;\n      animation-iteration-count: 1 !important;\n      transition-duration: .001ms !important;\n    }\n  }\n<\/style>\n\n<div id=\"rl-my-account\">\n  <div class=\"rl-account-shell\">\n    <div class=\"rl-loading\" data-rl-loading>\n      <div>\n        <div class=\"rl-spinner\"><\/div>\n        <div>Cargando tu cuenta\u2026<\/div>\n      <\/div>\n    <\/div>\n\n    <div data-rl-app hidden>\n      <section class=\"rl-account-hero\">\n        <div class=\"rl-account-hero-copy\">\n          <p class=\"rl-eyebrow\">\u00c1rea profesional<\/p>\n          <h2>Gestiona tu perfil en RealtorList<\/h2>\n          <p>\n            Actualiza tus datos profesionales, zonas, idiomas, servicios y especialidades.\n            Consulta tambi\u00e9n tu plan, pedidos, facturaci\u00f3n y seguridad de la cuenta.\n          <\/p>\n        <\/div>\n\n        <aside class=\"rl-account-user\">\n          <div class=\"rl-user-line\">\n            <div class=\"rl-avatar\" data-rl-avatar>RL<\/div>\n            <div>\n              <span class=\"rl-user-name\" data-rl-user-name>Usuario<\/span>\n              <span class=\"rl-user-email\" data-rl-user-email><\/span>\n            <\/div>\n          <\/div>\n        <\/aside>\n      <\/section>\n\n      <div class=\"rl-layout\">\n        <aside class=\"rl-sidebar\">\n          <nav class=\"rl-nav\" aria-label=\"Mi cuenta\">\n            <button class=\"rl-nav-button is-active\" type=\"button\" data-rl-tab=\"dashboard\">\n              <span class=\"rl-nav-icon\">01<\/span>\n              Resumen\n            <\/button>\n\n            <button class=\"rl-nav-button\" type=\"button\" data-rl-tab=\"profile\">\n              <span class=\"rl-nav-icon\">02<\/span>\n              Mi perfil\n            <\/button>\n\n            <button class=\"rl-nav-button\" type=\"button\" data-rl-tab=\"plan\">\n              <span class=\"rl-nav-icon\">03<\/span>\n              Mi plan\n            <\/button>\n\n            <div class=\"rl-nav-divider\"><\/div>\n\n            <a class=\"rl-nav-link\" href=\"\/my-account\/pedidos\/\">\n              <span class=\"rl-nav-icon\">04<\/span>\n              Pedidos\n            <\/a>\n\n            <a class=\"rl-nav-link\" href=\"\/my-account\/editar-cuenta\/\">\n              <span class=\"rl-nav-icon\">05<\/span>\n              Cuenta\n            <\/a>\n\n            <a class=\"rl-nav-link\" href=\"\/my-account\/direcciones\/\">\n              <span class=\"rl-nav-icon\">06<\/span>\n              Direcciones\n            <\/a>\n\n            <a class=\"rl-nav-link\" href=\"\/my-account\/metodos-pago\/\">\n              <span class=\"rl-nav-icon\">07<\/span>\n              Pagos\n            <\/a>\n\n            <a class=\"rl-nav-link\" href=\"\/my-account\/cerrar-sesion\/\">\n              <span class=\"rl-nav-icon\">08<\/span>\n              Cerrar sesi\u00f3n\n            <\/a>\n          <\/nav>\n        <\/aside>\n\n        <main class=\"rl-main\">\n          <section class=\"rl-panel is-active\" data-rl-panel=\"dashboard\">\n            <div class=\"rl-card\">\n              <div class=\"rl-card-head\">\n                <div>\n                  <h3>Resumen de tu cuenta<\/h3>\n                  <p>Estado actual de tu perfil profesional en RealtorList.<\/p>\n                <\/div>\n                <span class=\"rl-status\" data-rl-profile-status>Comprobando<\/span>\n              <\/div>\n\n              <div class=\"rl-dashboard-grid\">\n                <article class=\"rl-stat-card\">\n                  <span class=\"rl-stat-label\">Tipo de perfil<\/span>\n                  <strong class=\"rl-stat-value\" data-rl-profile-type>\u2014<\/strong>\n                <\/article>\n\n                <article class=\"rl-stat-card\">\n                  <span class=\"rl-stat-label\">Plan<\/span>\n                  <strong class=\"rl-stat-value\" data-rl-plan-name>\u2014<\/strong>\n                <\/article>\n\n                <article class=\"rl-stat-card\">\n                  <span class=\"rl-stat-label\">Verificaci\u00f3n<\/span>\n                  <strong class=\"rl-stat-value\" data-rl-verification>\u2014<\/strong>\n                <\/article>\n              <\/div>\n            <\/div>\n\n            <div class=\"rl-card\">\n              <div class=\"rl-card-head\">\n                <div>\n                  <h3>Acciones r\u00e1pidas<\/h3>\n                  <p>Accede a las tareas m\u00e1s habituales de tu cuenta.<\/p>\n                <\/div>\n              <\/div>\n\n              <div class=\"rl-action-grid\">\n                <button class=\"rl-action\" type=\"button\" data-rl-open-profile>\n                  <strong>Editar perfil profesional<\/strong>\n                  <span>Actualiza datos, ubicaci\u00f3n, idiomas y especialidades.<\/span>\n                <\/button>\n\n                <a class=\"rl-action\" data-rl-public-profile href=\"#\" target=\"_blank\" rel=\"noopener\" hidden>\n                  <strong>Ver perfil p\u00fablico<\/strong>\n                  <span>Comprueba c\u00f3mo aparece tu perfil para los visitantes.<\/span>\n                <\/a>\n\n                <a class=\"rl-action\" href=\"\/my-account\/pedidos\/\">\n                  <strong>Consultar pedidos<\/strong>\n                  <span>Revisa compras, estados y datos de tus pedidos.<\/span>\n                <\/a>\n\n                <a class=\"rl-action\" href=\"\/planes\/\">\n                  <strong>Comparar planes<\/strong>\n                  <span>Consulta las opciones disponibles para profesionales y agencias.<\/span>\n                <\/a>\n              <\/div>\n            <\/div>\n          <\/section>\n\n          <section class=\"rl-panel\" data-rl-panel=\"profile\">\n            <div class=\"rl-notice\" data-rl-notice><\/div>\n\n            <div class=\"rl-card\">\n              <div class=\"rl-card-head\">\n                <div>\n                  <h3>Perfil profesional<\/h3>\n                  <p>\n                    Los cambios importantes pueden quedar pendientes de revisi\u00f3n antes de mostrarse p\u00fablicamente.\n                  <\/p>\n                <\/div>\n                <span class=\"rl-status\" data-rl-edit-status>Perfil<\/span>\n              <\/div>\n\n              <div data-rl-no-profile class=\"rl-empty\" hidden>\n                <h4>A\u00fan no existe un perfil vinculado a esta cuenta<\/h4>\n                <p style=\"margin:10px 0 18px;\">\n                  Selecciona el tipo de perfil que necesitas para comenzar.\n                <\/p>\n\n                <div class=\"rl-form-actions\" style=\"justify-content:center;margin-top:0;\">\n                  <button class=\"rl-btn rl-btn--primary\" type=\"button\" data-rl-create=\"agent\">\n                    Crear perfil de agente\n                  <\/button>\n                  <button class=\"rl-btn rl-btn--secondary\" type=\"button\" data-rl-create=\"agency\">\n                    Crear perfil de agencia\n                  <\/button>\n                <\/div>\n              <\/div>\n\n              <form data-rl-profile-form hidden>\n                <div class=\"rl-form-grid\">\n                  <div class=\"rl-field\">\n                    <label class=\"rl-label\" for=\"rl-profile-title\">Nombre profesional o comercial<\/label>\n                    <input class=\"rl-input\" id=\"rl-profile-title\" name=\"title\" type=\"text\" required>\n                  <\/div>\n\n                  <div class=\"rl-field\">\n                    <label class=\"rl-label\" for=\"rl-profile-type-view\">Tipo de perfil<\/label>\n                    <input class=\"rl-input\" id=\"rl-profile-type-view\" type=\"text\" readonly>\n                  <\/div>\n\n                  <div class=\"rl-field\">\n                    <label class=\"rl-label\" for=\"rl-professional-email\">Email profesional<\/label>\n                    <input class=\"rl-input\" id=\"rl-professional-email\" name=\"email_profesional\" type=\"email\">\n                  <\/div>\n\n                  <div class=\"rl-field\">\n                    <label class=\"rl-label\" for=\"rl-phone\">Tel\u00e9fono<\/label>\n                    <input class=\"rl-input\" id=\"rl-phone\" name=\"telefono\" type=\"tel\">\n                  <\/div>\n\n                  <div class=\"rl-field\">\n                    <label class=\"rl-label\" for=\"rl-whatsapp\">WhatsApp<\/label>\n                    <input class=\"rl-input\" id=\"rl-whatsapp\" name=\"whatsapp\" type=\"tel\">\n                    <span class=\"rl-help\">Incluye prefijo internacional, por ejemplo +34.<\/span>\n                  <\/div>\n\n                  <div class=\"rl-field\">\n                    <label class=\"rl-label\" for=\"rl-web\">P\u00e1gina web<\/label>\n                    <input class=\"rl-input\" id=\"rl-web\" name=\"web\" type=\"url\" placeholder=\"https:\/\/\">\n                  <\/div>\n\n                  <div class=\"rl-field rl-field--full\">\n                    <label class=\"rl-label\" for=\"rl-short-description\">Descripci\u00f3n corta<\/label>\n                    <textarea class=\"rl-textarea\" id=\"rl-short-description\" name=\"descripcion_corta\" maxlength=\"420\"><\/textarea>\n                    <span class=\"rl-help\">Resumen breve utilizado en tarjetas y listados.<\/span>\n                  <\/div>\n\n                  <div class=\"rl-field rl-field--full\">\n                    <label class=\"rl-label\" for=\"rl-description\">Descripci\u00f3n completa<\/label>\n                    <textarea class=\"rl-textarea\" id=\"rl-description\" name=\"content\"><\/textarea>\n                    <span class=\"rl-help\">Explica experiencia, zonas, enfoque de trabajo y tipo de cliente.<\/span>\n                  <\/div>\n\n                  <div class=\"rl-field\">\n                    <label class=\"rl-label\" for=\"rl-main-location\">Ubicaci\u00f3n principal<\/label>\n                    <select class=\"rl-select\" id=\"rl-main-location\" name=\"ubicacion_principal\">\n                      <option value=\"\">Seleccionar<\/option>\n                    <\/select>\n                  <\/div>\n\n                  <div class=\"rl-field\">\n                    <label class=\"rl-label\">Estado del perfil<\/label>\n                    <input class=\"rl-input\" data-rl-current-status type=\"text\" readonly>\n                  <\/div>\n\n                  <div class=\"rl-field rl-field--full\">\n                    <fieldset class=\"rl-fieldset\">\n                      <legend>Otras ubicaciones<\/legend>\n                      <div class=\"rl-choice-grid\" data-rl-location-options><\/div>\n                    <\/fieldset>\n                  <\/div>\n\n                  <div class=\"rl-field\">\n                    <fieldset class=\"rl-fieldset\">\n                      <legend>Idiomas<\/legend>\n                      <div class=\"rl-choice-grid\" data-rl-language-options><\/div>\n                    <\/fieldset>\n                  <\/div>\n\n                  <div class=\"rl-field\">\n                    <fieldset class=\"rl-fieldset\">\n                      <legend>Especialidades<\/legend>\n                      <div class=\"rl-choice-grid\" data-rl-specialty-options><\/div>\n                    <\/fieldset>\n                  <\/div>\n\n                  <div class=\"rl-field\">\n                    <fieldset class=\"rl-fieldset\">\n                      <legend>Servicios<\/legend>\n                      <div class=\"rl-choice-grid\" data-rl-service-options><\/div>\n                    <\/fieldset>\n                  <\/div>\n\n                  <div class=\"rl-field\">\n                    <fieldset class=\"rl-fieldset\">\n                      <legend>Tipos de propiedad<\/legend>\n                      <div class=\"rl-choice-grid\" data-rl-property-options><\/div>\n                    <\/fieldset>\n                  <\/div>\n                <\/div>\n\n                <div class=\"rl-form-actions\">\n                  <button class=\"rl-btn rl-btn--primary\" type=\"submit\" data-rl-save>\n                    Guardar cambios\n                  <\/button>\n\n                  <a class=\"rl-btn rl-btn--secondary\" data-rl-public-profile-2 href=\"#\" target=\"_blank\" rel=\"noopener\" hidden>\n                    Ver perfil p\u00fablico\n                  <\/a>\n                <\/div>\n              <\/form>\n            <\/div>\n          <\/section>\n\n          <section class=\"rl-panel\" data-rl-panel=\"plan\">\n            <div class=\"rl-card\">\n              <div class=\"rl-card-head\">\n                <div>\n                  <h3>Plan y estado<\/h3>\n                  <p>Informaci\u00f3n vinculada al perfil profesional activo.<\/p>\n                <\/div>\n                <span class=\"rl-status\" data-rl-plan-status>Sin comprobar<\/span>\n              <\/div>\n\n              <div class=\"rl-plan-grid\">\n                <article class=\"rl-plan-box\">\n                  <span class=\"rl-stat-label\">Plan actual<\/span>\n                  <strong class=\"rl-plan-name\" data-rl-plan-name-2>Sin plan activo<\/strong>\n\n                  <div class=\"rl-plan-meta\">\n                    <div>\n                      <span>Tipo de perfil<\/span>\n                      <strong data-rl-profile-type-2>\u2014<\/strong>\n                    <\/div>\n                    <div>\n                      <span>Estado del plan<\/span>\n                      <strong data-rl-plan-state>\u2014<\/strong>\n                    <\/div>\n                    <div>\n                      <span>Estado de verificaci\u00f3n<\/span>\n                      <strong data-rl-verification-2>\u2014<\/strong>\n                    <\/div>\n                    <div>\n                      <span>Visibilidad en directorio<\/span>\n                      <strong data-rl-directory-visibility>\u2014<\/strong>\n                    <\/div>\n                  <\/div>\n                <\/article>\n\n                <aside class=\"rl-plan-box\">\n                  <h4>Gestionar visibilidad<\/h4>\n                  <p class=\"rl-muted\">\n                    Consulta planes, pedidos y renovaciones desde tu cuenta.\n                  <\/p>\n\n                  <div class=\"rl-form-actions\">\n                    <a class=\"rl-btn rl-btn--primary\" href=\"\/planes\/\">Ver planes<\/a>\n                    <a class=\"rl-btn rl-btn--secondary\" href=\"\/my-account\/pedidos\/\">Ver pedidos<\/a>\n                  <\/div>\n                <\/aside>\n              <\/div>\n            <\/div>\n          <\/section>\n        <\/main>\n      <\/div>\n    <\/div>\n\n    <div class=\"rl-login-required\" data-rl-login hidden>\n      <h2>Accede a tu cuenta<\/h2>\n      <p>\n        Inicia sesi\u00f3n para gestionar tu perfil profesional, tus planes y tus pedidos.\n      <\/p>\n      <a class=\"rl-btn rl-btn--primary\" href=\"\/my-account\/\">Iniciar sesi\u00f3n<\/a>\n    <\/div>\n  <\/div>\n<\/div>\n\n<script>\n(function () {\n  \"use strict\";\n\n  const root = document.getElementById(\"rl-my-account\");\n  if (!root || root.dataset.ready === \"true\") return;\n  root.dataset.ready = \"true\";\n\n  const API = {\n    me: \"\/wp-json\/wp\/v2\/users\/me?context=edit\",\n    agents: \"\/wp-json\/wp\/v2\/agentes\",\n    agencies: \"\/wp-json\/wp\/v2\/agencias\",\n    locations: \"\/wp-json\/wp\/v2\/ubicaciones?per_page=100&orderby=name&order=asc\",\n    languages: \"\/wp-json\/wp\/v2\/rl_idioma?per_page=100&orderby=name&order=asc\",\n    specialties: \"\/wp-json\/wp\/v2\/rl_especialidad?per_page=100&orderby=name&order=asc\",\n    services: \"\/wp-json\/wp\/v2\/rl_servicio?per_page=100&orderby=name&order=asc\",\n    propertyTypes: \"\/wp-json\/wp\/v2\/rl_tipo_propiedad?per_page=100&orderby=name&order=asc\"\n  };\n\n  const state = {\n    nonce: window.wpApiSettings?.nonce || \"\",\n    user: null,\n    profile: null,\n    profileType: null,\n    locations: [],\n    languages: [],\n    specialties: [],\n    services: [],\n    propertyTypes: []\n  };\n\n  const qs = selector => root.querySelector(selector);\n  const qsa = selector => [...root.querySelectorAll(selector)];\n\n  function decodeHtml(value) {\n    const textarea = document.createElement(\"textarea\");\n    textarea.innerHTML = value || \"\";\n    return textarea.value;\n  }\n\n  function stripHtml(value) {\n    const div = document.createElement(\"div\");\n    div.innerHTML = value || \"\";\n    return div.textContent || \"\";\n  }\n\n  function fieldToIds(value) {\n    if (!value) return [];\n    if (Array.isArray(value)) {\n      return value.flatMap(fieldToIds).filter(Boolean);\n    }\n    if (typeof value === \"object\") {\n      const id = Number(value.ID || value.id || value.value || 0);\n      return id ? [id] : [];\n    }\n    const id = Number(value);\n    return id ? [id] : [];\n  }\n\n  function normalizePlan(value) {\n    const raw = String(value || \"\").trim();\n    if (!raw) return \"Sin plan activo\";\n\n    const key = raw.toLowerCase()\n      .replace(\/[_-]+\/g,\" \")\n      .replace(\/\\s+\/g,\" \")\n      .trim();\n\n    if (key.includes(\"traffic\")) return \"Traffic Master\";\n    if (key.includes(\"agencia\")) return \"Agencia Destacada\";\n    if (key.includes(\"agente\") || key.includes(\"verificado\")) return \"Agente Verificado\";\n\n    return raw;\n  }\n\n  function normalizeStatus(value, fallback = \"Pendiente\") {\n    const raw = String(value || \"\").trim();\n    if (!raw) return fallback;\n    return raw.charAt(0).toUpperCase() + raw.slice(1).replace(\/[_-]+\/g,\" \");\n  }\n\n  async function fetchJson(url, options = {}) {\n    const headers = {\n      \"Accept\": \"application\/json\",\n      ...(options.body ? {\"Content-Type\":\"application\/json\"} : {}),\n      ...(state.nonce ? {\"X-WP-Nonce\":state.nonce} : {}),\n      ...(options.headers || {})\n    };\n\n    const response = await fetch(url, {\n      credentials: \"same-origin\",\n      ...options,\n      headers\n    });\n\n    if (!response.ok) {\n      const body = await response.json().catch(() => ({}));\n      const error = new Error(body.message || `Error ${response.status}`);\n      error.status = response.status;\n      throw error;\n    }\n\n    return response.json();\n  }\n\n  function showNotice(message, type = \"\") {\n    const notice = qs(\"[data-rl-notice]\");\n    notice.textContent = message;\n    notice.className = \"rl-notice is-visible\" + (type ? ` is-${type}` : \"\");\n    notice.scrollIntoView({behavior:\"smooth\", block:\"nearest\"});\n  }\n\n  function clearNotice() {\n    const notice = qs(\"[data-rl-notice]\");\n    notice.className = \"rl-notice\";\n    notice.textContent = \"\";\n  }\n\n  function setTab(name) {\n    qsa(\"[data-rl-tab]\").forEach(button => {\n      button.classList.toggle(\"is-active\", button.dataset.rlTab === name);\n    });\n\n    qsa(\"[data-rl-panel]\").forEach(panel => {\n      panel.classList.toggle(\"is-active\", panel.dataset.rlPanel === name);\n    });\n\n    if (window.innerWidth < 981) {\n      qs(\".rl-main\")?.scrollIntoView({behavior:\"smooth\", block:\"start\"});\n    }\n  }\n\n  function renderChoiceList(container, items, selectedIds, name) {\n    if (!container) return;\n\n    container.innerHTML = items.map(item => {\n      const checked = selectedIds.includes(Number(item.id)) ? \" checked\" : \"\";\n      return `\n        <label class=\"rl-choice\">\n          <input type=\"checkbox\" name=\"${name}\" value=\"${Number(item.id)}\"${checked}>\n          <span>${decodeHtml(item.name)}<\/span>\n        <\/label>\n      `;\n    }).join(\"\") || '<span class=\"rl-muted\">No hay opciones disponibles.<\/span>';\n  }\n\n  function getChecked(name) {\n    return qsa(`input[name=\"${name}\"]:checked`).map(input => Number(input.value)).filter(Boolean);\n  }\n\n  function fillLocationSelect() {\n    const select = qs(\"#rl-main-location\");\n    select.innerHTML = '<option value=\"\">Seleccionar<\/option>' + state.locations.map(item => (\n      `<option value=\"${Number(item.id)}\">${decodeHtml(item.name)}<\/option>`\n    )).join(\"\");\n  }\n\n  function getProfilePlan() {\n    const acf = state.profile?.acf || {};\n    return normalizePlan(acf.plan_realtorlist);\n  }\n\n  function renderUser() {\n    const user = state.user;\n    const name = user.name || user.username || \"Usuario\";\n    const email = user.email || \"\";\n\n    qs(\"[data-rl-user-name]\").textContent = name;\n    qs(\"[data-rl-user-email]\").textContent = email;\n\n    const avatar = qs(\"[data-rl-avatar]\");\n    const avatarUrl = user.avatar_urls?.[\"96\"] || user.avatar_urls?.[\"48\"];\n\n    if (avatarUrl) {\n      avatar.innerHTML = `<img decoding=\"async\" src=\"${avatarUrl}\" alt=\"\">`;\n    } else {\n      avatar.textContent = name.split(\/\\s+\/).slice(0,2).map(part => part[0] || \"\").join(\"\").toUpperCase() || \"RL\";\n    }\n  }\n\n  function renderProfileSummary() {\n    const profile = state.profile;\n    const typeLabel = state.profileType === \"agency\" ? \"Agencia\" : state.profileType === \"agent\" ? \"Agente\" : \"Sin perfil\";\n    const acf = profile?.acf || {};\n    const plan = getProfilePlan();\n    const verification = normalizeStatus(acf.estado_verificacion, \"Sin verificar\");\n    const profileStatus = normalizeStatus(profile?.status, \"Sin perfil\");\n    const planStatus = normalizeStatus(acf.estado_plan, \"Sin plan\");\n    const visible = acf.mostrar_directorio === true || acf.mostrar_directorio === 1 || acf.mostrar_directorio === \"1\";\n\n    qsa(\"[data-rl-profile-type]\").forEach(node => node.textContent = typeLabel);\n    qsa(\"[data-rl-profile-type-2]\").forEach(node => node.textContent = typeLabel);\n    qsa(\"[data-rl-plan-name]\").forEach(node => node.textContent = plan);\n    qsa(\"[data-rl-plan-name-2]\").forEach(node => node.textContent = plan);\n    qsa(\"[data-rl-verification]\").forEach(node => node.textContent = verification);\n    qsa(\"[data-rl-verification-2]\").forEach(node => node.textContent = verification);\n    qs(\"[data-rl-plan-state]\").textContent = planStatus;\n    qs(\"[data-rl-directory-visibility]\").textContent = visible ? \"Visible\" : \"No visible\";\n    qs(\"[data-rl-current-status]\").value = profileStatus;\n\n    const profileStatusBadge = qs(\"[data-rl-profile-status]\");\n    profileStatusBadge.textContent = profile ? profileStatus : \"Sin perfil\";\n    profileStatusBadge.classList.toggle(\"is-active\", profile?.status === \"publish\");\n\n    const planStatusBadge = qs(\"[data-rl-plan-status]\");\n    planStatusBadge.textContent = planStatus;\n    planStatusBadge.classList.toggle(\"is-active\", [\"activo\",\"active\"].includes(String(acf.estado_plan || \"\").toLowerCase()));\n\n    qs(\"[data-rl-edit-status]\").textContent = typeLabel;\n\n    const publicUrl = profile?.link || \"\";\n    qsa(\"[data-rl-public-profile], [data-rl-public-profile-2]\").forEach(link => {\n      link.hidden = !publicUrl;\n      if (publicUrl) link.href = publicUrl;\n    });\n  }\n\n  function renderProfileForm() {\n    const profile = state.profile;\n    const empty = qs(\"[data-rl-no-profile]\");\n    const form = qs(\"[data-rl-profile-form]\");\n\n    if (!profile) {\n      empty.hidden = false;\n      form.hidden = true;\n      renderProfileSummary();\n      return;\n    }\n\n    empty.hidden = true;\n    form.hidden = false;\n\n    const acf = profile.acf || {};\n    qs(\"#rl-profile-title\").value = decodeHtml(profile.title?.raw || profile.title?.rendered || \"\");\n    qs(\"#rl-profile-type-view\").value = state.profileType === \"agency\" ? \"Agencia inmobiliaria\" : \"Agente inmobiliario\";\n    qs(\"#rl-professional-email\").value = acf.email_profesional || \"\";\n    qs(\"#rl-phone\").value = acf.telefono || \"\";\n    qs(\"#rl-whatsapp\").value = acf.whatsapp || \"\";\n    qs(\"#rl-web\").value = acf.web || \"\";\n    qs(\"#rl-short-description\").value = acf.descripcion_corta || \"\";\n    qs(\"#rl-description\").value = stripHtml(profile.content?.raw || profile.content?.rendered || \"\");\n\n    const mainLocation = fieldToIds(acf.ubicacion_principal)[0] || \"\";\n    qs(\"#rl-main-location\").value = String(mainLocation);\n\n    renderChoiceList(qs(\"[data-rl-location-options]\"), state.locations, fieldToIds(acf.ubicaciones), \"ubicaciones\");\n    renderChoiceList(qs(\"[data-rl-language-options]\"), state.languages, fieldToIds(profile.rl_idioma), \"rl_idioma\");\n    renderChoiceList(qs(\"[data-rl-specialty-options]\"), state.specialties, fieldToIds(profile.rl_especialidad), \"rl_especialidad\");\n    renderChoiceList(qs(\"[data-rl-service-options]\"), state.services, fieldToIds(profile.rl_servicio), \"rl_servicio\");\n    renderChoiceList(qs(\"[data-rl-property-options]\"), state.propertyTypes, fieldToIds(profile.rl_tipo_propiedad), \"rl_tipo_propiedad\");\n\n    renderProfileSummary();\n  }\n\n  async function loadTaxonomies() {\n    const requests = [\n      fetchJson(API.locations).catch(() => []),\n      fetchJson(API.languages).catch(() => []),\n      fetchJson(API.specialties).catch(() => []),\n      fetchJson(API.services).catch(() => []),\n      fetchJson(API.propertyTypes).catch(() => [])\n    ];\n\n    [\n      state.locations,\n      state.languages,\n      state.specialties,\n      state.services,\n      state.propertyTypes\n    ] = await Promise.all(requests);\n\n    fillLocationSelect();\n  }\n\n  async function loadProfile() {\n    const author = Number(state.user.id);\n    const params = `?author=${author}&context=edit&per_page=10&orderby=modified&order=desc`;\n\n    const [agents, agencies] = await Promise.all([\n      fetchJson(API.agents + params).catch(() => []),\n      fetchJson(API.agencies + params).catch(() => [])\n    ]);\n\n    const agent = agents[0] || null;\n    const agency = agencies[0] || null;\n\n    if (agency && agent) {\n      const agencyDate = new Date(agency.modified_gmt || agency.modified || 0).getTime();\n      const agentDate = new Date(agent.modified_gmt || agent.modified || 0).getTime();\n      state.profile = agencyDate >= agentDate ? agency : agent;\n      state.profileType = agencyDate >= agentDate ? \"agency\" : \"agent\";\n    } else if (agency) {\n      state.profile = agency;\n      state.profileType = \"agency\";\n    } else if (agent) {\n      state.profile = agent;\n      state.profileType = \"agent\";\n    } else {\n      state.profile = null;\n      state.profileType = null;\n    }\n  }\n\n  async function createProfile(type) {\n    clearNotice();\n\n    const endpoint = type === \"agency\" ? API.agencies : API.agents;\n    const title = type === \"agency\"\n      ? (state.user.name ? `Agencia de ${state.user.name}` : \"Nueva agencia\")\n      : (state.user.name || \"Nuevo agente\");\n\n    const button = qs(`[data-rl-create=\"${type}\"]`);\n    button.disabled = true;\n\n    try {\n      const profile = await fetchJson(endpoint, {\n        method: \"POST\",\n        body: JSON.stringify({\n          title,\n          status: \"draft\",\n          acf: {\n            mostrar_directorio: false,\n            perfil_destacado: false,\n            estado_verificacion: \"pendiente\",\n            estado_plan: \"pendiente\"\n          }\n        })\n      });\n\n      state.profile = profile;\n      state.profileType = type;\n      renderProfileForm();\n      showNotice(\"Perfil creado. Completa la informaci\u00f3n y guarda los cambios.\", \"success\");\n    } catch (error) {\n      showNotice(\"No se pudo crear el perfil. Comprueba que el usuario tiene permisos y que el tipo de contenido permite creaci\u00f3n mediante REST.\", \"error\");\n    } finally {\n      button.disabled = false;\n    }\n  }\n\n  async function saveProfile(event) {\n    event.preventDefault();\n    clearNotice();\n\n    if (!state.profile || !state.profileType) return;\n\n    const button = qs(\"[data-rl-save]\");\n    button.disabled = true;\n    button.textContent = \"Guardando\u2026\";\n\n    const endpoint = state.profileType === \"agency\" ? API.agencies : API.agents;\n    const mainLocation = Number(qs(\"#rl-main-location\").value || 0);\n\n    const payload = {\n      title: qs(\"#rl-profile-title\").value.trim(),\n      content: qs(\"#rl-description\").value.trim(),\n      acf: {\n        ...(state.profile.acf || {}),\n        email_profesional: qs(\"#rl-professional-email\").value.trim(),\n        telefono: qs(\"#rl-phone\").value.trim(),\n        whatsapp: qs(\"#rl-whatsapp\").value.trim(),\n        web: qs(\"#rl-web\").value.trim(),\n        descripcion_corta: qs(\"#rl-short-description\").value.trim(),\n        ubicacion_principal: mainLocation || null,\n        ubicaciones: getChecked(\"ubicaciones\")\n      },\n      rl_idioma: getChecked(\"rl_idioma\"),\n      rl_especialidad: getChecked(\"rl_especialidad\"),\n      rl_servicio: getChecked(\"rl_servicio\"),\n      rl_tipo_propiedad: getChecked(\"rl_tipo_propiedad\")\n    };\n\n    try {\n      const updated = await fetchJson(`${endpoint}\/${Number(state.profile.id)}`, {\n        method: \"POST\",\n        body: JSON.stringify(payload)\n      });\n\n      state.profile = updated;\n      renderProfileForm();\n      showNotice(\"Cambios guardados correctamente.\", \"success\");\n    } catch (error) {\n      showNotice(\n        error.message || \"No se pudieron guardar los cambios. Comprueba la configuraci\u00f3n REST y los permisos del perfil.\",\n        \"error\"\n      );\n    } finally {\n      button.disabled = false;\n      button.textContent = \"Guardar cambios\";\n    }\n  }\n\n  async function init() {\n    qsa(\"[data-rl-tab]\").forEach(button => {\n      button.addEventListener(\"click\", () => setTab(button.dataset.rlTab));\n    });\n\n    qsa(\"[data-rl-open-profile]\").forEach(button => {\n      button.addEventListener(\"click\", () => setTab(\"profile\"));\n    });\n\n    qsa(\"[data-rl-create]\").forEach(button => {\n      button.addEventListener(\"click\", () => createProfile(button.dataset.rlCreate));\n    });\n\n    qs(\"[data-rl-profile-form]\").addEventListener(\"submit\", saveProfile);\n\n    try {\n      state.user = await fetchJson(API.me);\n      await Promise.all([loadTaxonomies(), loadProfile()]);\n\n      renderUser();\n      renderProfileForm();\n\n      qs(\"[data-rl-loading]\").hidden = true;\n      qs(\"[data-rl-app]\").hidden = false;\n    } catch (error) {\n      qs(\"[data-rl-loading]\").hidden = true;\n\n      if (error.status === 401 || error.status === 403) {\n        qs(\"[data-rl-login]\").hidden = false;\n      } else {\n        qs(\"[data-rl-login]\").hidden = false;\n        qs(\"[data-rl-login] p\").textContent =\n          \"No se pudo cargar la cuenta. Comprueba que REST API y la autenticaci\u00f3n de WordPress est\u00e9n disponibles.\";\n      }\n    }\n  }\n\n  init();\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Cargando tu cuenta\u2026 \u00c1rea profesional Gestiona tu perfil en RealtorList Actualiza tus datos profesionales, zonas, idiomas, servicios y especialidades. Consulta tambi\u00e9n tu plan, pedidos, facturaci\u00f3n y seguridad de la cuenta. RL Usuario 01 Resumen 02 Mi perfil 03 Mi plan 04 Pedidos 05 Cuenta 06 Direcciones 07 Pagos 08 Cerrar sesi\u00f3n Resumen de tu cuenta [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-10","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Mi cuenta - RealtorList<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/realtorlist.net\/en\/my-account\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Mi cuenta - RealtorList\" \/>\n<meta property=\"og:description\" content=\"Cargando tu cuenta\u2026 \u00c1rea profesional Gestiona tu perfil en RealtorList Actualiza tus datos profesionales, zonas, idiomas, servicios y especialidades. Consulta tambi\u00e9n tu plan, pedidos, facturaci\u00f3n y seguridad de la cuenta. RL Usuario 01 Resumen 02 Mi perfil 03 Mi plan 04 Pedidos 05 Cuenta 06 Direcciones 07 Pagos 08 Cerrar sesi\u00f3n Resumen de tu cuenta [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/realtorlist.net\/en\/my-account\/\" \/>\n<meta property=\"og:site_name\" content=\"RealtorList\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-15T01:41:55+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/realtorlist.net\\\/my-account\\\/\",\"url\":\"https:\\\/\\\/realtorlist.net\\\/my-account\\\/\",\"name\":\"Mi cuenta - RealtorList\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/realtorlist.net\\\/#website\"},\"datePublished\":\"2026-07-14T11:30:38+00:00\",\"dateModified\":\"2026-07-15T01:41:55+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/realtorlist.net\\\/my-account\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/realtorlist.net\\\/my-account\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/realtorlist.net\\\/my-account\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/realtorlist.net\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mi cuenta\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/realtorlist.net\\\/#website\",\"url\":\"https:\\\/\\\/realtorlist.net\\\/\",\"name\":\"RealtorList\",\"description\":\"Agencias y agentes inmobiliarios de confianza en Espa\u00f1a\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/realtorlist.net\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Mi cuenta - RealtorList","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/realtorlist.net\/en\/my-account\/","og_locale":"en_GB","og_type":"article","og_title":"Mi cuenta - RealtorList","og_description":"Cargando tu cuenta\u2026 \u00c1rea profesional Gestiona tu perfil en RealtorList Actualiza tus datos profesionales, zonas, idiomas, servicios y especialidades. Consulta tambi\u00e9n tu plan, pedidos, facturaci\u00f3n y seguridad de la cuenta. RL Usuario 01 Resumen 02 Mi perfil 03 Mi plan 04 Pedidos 05 Cuenta 06 Direcciones 07 Pagos 08 Cerrar sesi\u00f3n Resumen de tu cuenta [&hellip;]","og_url":"https:\/\/realtorlist.net\/en\/my-account\/","og_site_name":"RealtorList","article_modified_time":"2026-07-15T01:41:55+00:00","twitter_card":"summary_large_image","twitter_misc":{"Estimated reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/realtorlist.net\/my-account\/","url":"https:\/\/realtorlist.net\/my-account\/","name":"Mi cuenta - RealtorList","isPartOf":{"@id":"https:\/\/realtorlist.net\/#website"},"datePublished":"2026-07-14T11:30:38+00:00","dateModified":"2026-07-15T01:41:55+00:00","breadcrumb":{"@id":"https:\/\/realtorlist.net\/my-account\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/realtorlist.net\/my-account\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/realtorlist.net\/my-account\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/realtorlist.net\/"},{"@type":"ListItem","position":2,"name":"Mi cuenta"}]},{"@type":"WebSite","@id":"https:\/\/realtorlist.net\/#website","url":"https:\/\/realtorlist.net\/","name":"RealtorList","description":"Agencias y agentes inmobiliarios de confianza en Espa\u00f1a","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/realtorlist.net\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"}]}},"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"_links":{"self":[{"href":"https:\/\/realtorlist.net\/en\/wp-json\/wp\/v2\/pages\/10","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/realtorlist.net\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/realtorlist.net\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/realtorlist.net\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/realtorlist.net\/en\/wp-json\/wp\/v2\/comments?post=10"}],"version-history":[{"count":2,"href":"https:\/\/realtorlist.net\/en\/wp-json\/wp\/v2\/pages\/10\/revisions"}],"predecessor-version":[{"id":272,"href":"https:\/\/realtorlist.net\/en\/wp-json\/wp\/v2\/pages\/10\/revisions\/272"}],"wp:attachment":[{"href":"https:\/\/realtorlist.net\/en\/wp-json\/wp\/v2\/media?parent=10"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}