{"id":1839,"date":"2026-01-15T00:09:44","date_gmt":"2026-01-15T00:09:44","guid":{"rendered":"https:\/\/www.conideas.com.et\/?page_id=1839"},"modified":"2026-08-04T03:08:31","modified_gmt":"2026-08-04T03:08:31","slug":"professional-cv","status":"publish","type":"page","link":"https:\/\/conideas.com.et\/am\/professional-cv\/","title":{"rendered":"\u12e8\u1219\u12eb \u1232\u126a\u12ce\u1295 \u12ed\u134d\u1320\u1229"},"content":{"rendered":"\n<style data-wp-block-html=\"css\">\n\/* =========================================================\n   MAIN WRAPPER\n   ========================================================= *\/\n\n.cv-form-wrapper {\n  max-width: 800px;\n  margin: 0 auto;\n  font-family:\n    system-ui,\n    -apple-system,\n    BlinkMacSystemFont,\n    \"Segoe UI\",\n    sans-serif;\n}\n\n\n\/* =========================================================\n   PAGE HEADER\n   ========================================================= *\/\n\n.cv-page-header {\n  margin-bottom: 25px;\n}\n\n.cv-page-header h1 {\n  margin-bottom: 10px;\n}\n\n.intro-text {\n  line-height: 1.7;\n  color: #555;\n}\n\n\n\/* =========================================================\n   REVIEW NOTICE\n   ========================================================= *\/\n\n.cv-review-notice {\n  margin-top: 20px;\n  padding: 18px 20px;\n  background: #f0f6ff;\n  border-left: 4px solid #0066cc;\n  border-radius: 8px;\n}\n\n.cv-review-notice p {\n  margin: 8px 0 0;\n  line-height: 1.6;\n}\n\n\n\/* =========================================================\n   FORM CARD\n   ========================================================= *\/\n\n.cv-card {\n  background: #fff;\n  padding: 20px;\n  margin-bottom: 20px;\n  border-radius: 12px;\n  border: 1px solid #e2e2e2;\n}\n\n.cv-card h3 {\n  margin-top: 0;\n}\n\n.hint {\n  color: #666;\n  font-size: 0.95rem;\n  line-height: 1.5;\n}\n\n\n\/* =========================================================\n   FORM FIELDS\n   ========================================================= *\/\n\n.cv-card label {\n  font-weight: 600;\n  display: block;\n  margin-top: 15px;\n}\n\n.cv-card input:not([type=\"radio\"]),\n.cv-card textarea,\n.cv-card select{\n\nwidth:100%;\n\npadding:11px 12px;\n\nmargin-top:6px;\n\nborder-radius:8px;\n\nborder:1px solid #ccc;\n\nbox-sizing:border-box;\n\ntransition:.2s;\n\n}\n\n.cv-card input:focus,\n.cv-card textarea:focus,\n.cv-card select:focus{\n\noutline:none;\n\nborder-color:#0066cc;\n\nbox-shadow:0 0 0 3px rgba(0,102,204,.15);\n\n}\n\n.cv-card textarea {\n  resize: vertical;\n}\n\n\n\/* =========================================================\n   LAYOUT SELECTION\n   ========================================================= *\/\n\n.layout-options {\n  display: grid;\n  grid-template-columns:\n    repeat(\n      auto-fit,\n      minmax(160px, 1fr)\n    );\n  gap: 16px;\n}\n\n.layout-card input[type=\"radio\"] {\n  display: none;\n}\n\n.layout-card {\n  border: 2px solid #ddd;\n  border-radius: 14px;\n  padding: 12px;\n  background: #fff;\n  text-align: center;\n  cursor: pointer;\n  transition:\n    transform 0.25s ease,\n    border-color 0.25s ease;\n}\n\n.layout-card img {\n  width: 100%;\n  border-radius: 10px;\n  margin-bottom: 10px;\n  display: block;\n}\n\n.layout-card span {\n  display: block;\n  font-weight: 600;\n}\n\n.layout-card input:checked + img {\n  outline:\n    3px solid #0066cc;\n  outline-offset: 2px;\n}\n\n.layout-card input:checked ~ span {\n  color: #0066cc;\n}\n\n.layout-card:hover {\n  transform:\n    translateY(-2px);\n  border-color:\n    #0066cc;\n}\n\n.layout-card{\n\nposition:relative;\n\noverflow:hidden;\n\n}\n\n.layout-card input:checked+img{\n\noutline:3px solid #0066cc;\n\noutline-offset:3px;\n\n}\n\n\n\/* =========================================================\n   THEME SELECTION\n   ========================================================= *\/\n\n.theme-options {\n  display: grid;\n  grid-template-columns:\n    repeat(\n      auto-fit,\n      minmax(140px, 1fr)\n    );\n  gap: 15px;\n}\n\n.theme-card {\n  border: 1px solid #ccc;\n  border-radius: 10px;\n  padding: 10px;\n  text-align: center;\n  cursor: pointer;\n  transition:\n    transform 0.2s,\n    box-shadow 0.2s;\n}\n\n.theme-card:hover{\n\ntransform:translateY(-3px);\n\nborder-color:#0066cc;\n\nbox-shadow:0 8px 18px rgba(0,0,0,.12);\n\n}\n\n.theme-card input[type=\"radio\"] {\n  display: none;\n}\n\n.theme-preview {\n  width: 100%;\n  max-width: 120px;\n  height: 60px;\n  border-radius: 8px;\n  margin:\n    0 auto 8px;\n  border:\n    2px solid #ccc;\n}\n\n.theme-card\ninput[type=\"radio\"]:checked\n+ .theme-preview {\n  border:\n    3px solid #0066cc;\n}\n\n.theme-blue\n.theme-preview {\n  background:\n    #1e5aa8;\n}\n\n.theme-gray\n.theme-preview {\n  background:\n    #888;\n}\n\n.theme-dark\n.theme-preview {\n  background:\n    #222;\n}\n\n\n\/* =========================================================\n   SUBMIT BUTTON\n   ========================================================= *\/\n\n.submit-btn {\n  width: 100%;\n  padding: 14px;\n  background: #0066cc;\n  color: #fff;\n  border: none;\n  border-radius: 10px;\n  font-size: 1rem;\n  font-weight: 600;\n  cursor: pointer;\n  transition:\n    background 0.2s ease;\n}\n\n.submit-btn:hover{\n\nbackground:#0055aa;\n\ntransform:translateY(-1px);\n\nbox-shadow:0 6px 18px rgba(0,102,204,.25);\n\n}\n\n#cv-submit-button{\n\ntransition:\nbackground .25s,\ntransform .2s,\nbox-shadow .2s;\n\n}\n\n\n\/* =========================================================\n   SUCCESS MESSAGE\n   ========================================================= *\/\n\n#cv-success-message {\n  text-align: center;\n  padding: 40px;\n  background: #f7fdf9;\n  border:\n    1px solid #ccebd7;\n  border-radius: 14px;\n}\n\n.cv-success-icon {\n  width: 55px;\n  height: 55px;\n  margin:\n    0 auto 15px;\n  border-radius: 50%;\n  background:\n    #198754;\n  color: #fff;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  font-size: 30px;\n  font-weight: bold;\n}\n\n.home-link {\n  display: inline-block;\n  margin-top: 20px;\n  font-weight: 600;\n  color: #0066cc;\n  text-decoration: none;\n}\n\n#cv-success-status{\n\nfont-size:18px;\n\nfont-weight:600;\n\nmargin:20px 0;\n\ncolor:#198754;\n\n}\n\n\/* =========================================================\n   GUEST LOGIN NOTICE\n   ========================================================= *\/\n\n.cv-login-notice {\n  max-width: 700px;\n  margin: 30px auto;\n  padding: 40px;\n  background: #fff;\n  border:\n    1px solid #e2e2e2;\n  border-radius: 16px;\n  text-align: center;\n  box-shadow:\n    0 8px 25px\n    rgba(0,0,0,0.05);\n}\n\n.cv-notice-icon {\n  font-size: 42px;\n  margin-bottom: 15px;\n}\n\n.cv-login-notice h1 {\n  margin-bottom: 12px;\n}\n\n.cv-notice-intro {\n  max-width: 600px;\n  margin:\n    0 auto 25px;\n  line-height: 1.7;\n  color: #555;\n}\n\n.cv-notice-info {\n  max-width: 550px;\n  margin:\n    25px auto;\n  padding: 20px;\n  background: #f5f8fc;\n  border-radius: 10px;\n  text-align: left;\n}\n\n.cv-notice-info h3 {\n  margin-top: 0;\n}\n\n.cv-notice-info ol {\n  margin-bottom: 0;\n}\n\n.cv-notice-info li {\n  margin-bottom: 8px;\n  line-height: 1.5;\n}\n\n.cv-login-message {\n  font-weight: 600;\n  margin-top: 25px;\n}\n\n.cv-auth-actions {\n  display: flex;\n  justify-content: center;\n  gap: 12px;\n  margin-top: 20px;\n}\n\n.cv-auth-btn {\n  display: inline-block;\n  padding:\n    12px 25px;\n  border-radius: 8px;\n  text-decoration: none;\n  font-weight: 600;\n}\n\n.cv-auth-btn-primary {\n  background:\n    #0066cc;\n  color:\n    #fff;\n}\n\n.cv-auth-btn-secondary {\n  background:\n    #fff;\n  color:\n    #0066cc;\n  border:\n    1px solid #0066cc;\n}\n\n\n\/* =========================================================\n   MOBILE\n   ========================================================= *\/\n\n@media (max-width: 600px) {\n\n  .cv-login-notice {\n    padding:\n      25px 18px;\n  }\n\n  .cv-card {\n    padding:\n      16px;\n  }\n\n  .layout-options {\n    grid-template-columns:\n      1fr;\n  }\n\n  .layout-card {\n    padding:\n      16px;\n  }\n\n  .theme-options {\n    grid-template-columns:\n      1fr;\n  }\n\n  .cv-auth-actions {\n    flex-direction:\n      column;\n  }\n\n  .cv-auth-btn {\n    width: 100%;\n    box-sizing:\n      border-box;\n  }\n\n}\n\n\/* =========================================\nCV REQUEST STATUS\n========================================= *\/\n\n.cv-request-status-message,\n.cv-modification-message {\nmax-width: 100%;\nmargin: 0 0 24px;\npadding: 18px 20px;\nborder-radius: 12px;\nline-height: 1.6;\n}\n\n.cv-status-pending {\nbackground: #fff8e1;\nborder: 1px solid #f0c36d;\ncolor: #6b4e00;\n}\n\n.cv-status-existing {\nbackground: #eef6ff;\nborder: 1px solid #9fc5e8;\ncolor: #174a7c;\n}\n\n.cv-modification-message {\nbackground: #fff3cd;\nborder: 1px solid #e0b84c;\ncolor: #664d03;\n}\n\n.cv-modification-message h3 {\nmargin-top: 0;\nmargin-bottom: 8px;\n}\n\n.cv-modification-message p {\nmargin-bottom: 0;\n}\n\n#cv-approved-container{\n\nmax-width:850px;\n\nmargin:40px auto;\n\ndisplay:none;\n\n}\n\n.cv-approved-card{\n\nbackground:#ffffff;\n\nborder-radius:16px;\n\npadding:45px;\n\nbox-shadow:0 12px 35px rgba(0,0,0,.08);\n\ntext-align:center;\n\n}\n\n.cv-approved-card{\n\nposition:relative;\n\noverflow:hidden;\n\n}\n\n.cv-approved-card::before{\n\ncontent:\"\";\n\nposition:absolute;\n\ntop:0;\n\nleft:0;\n\nright:0;\n\nheight:6px;\n\nbackground:#198754;\n\n}\n\n.cv-approved-icon{\n\nfont-size:70px;\n\nmargin-bottom:20px;\n\n}\n\n.cv-approved-card h1{\n\nfont-size:34px;\n\nmargin-bottom:15px;\n\ncolor:#0c4a6e;\n\n}\n\n#cv-approved-message{\n\nfont-size:17px;\n\nline-height:1.8;\n\ncolor:#555;\n\nmargin-bottom:30px;\n\n}\n\n#cv-approved-status-banner{\n\ndisplay:none;\n\nmargin:25px 0;\n\npadding:18px;\n\nborder-radius:10px;\n\nfont-size:15px;\n\nline-height:1.7;\n\nbackground:#fff8dc;\n\nborder-left:5px solid #d4a017;\n\n}\n\n.cv-approved-buttons{\n\ndisplay:flex;\n\njustify-content:center;\n\ngap:20px;\n\nflex-wrap:wrap;\n\nmargin-top:35px;\n\n}\n\n.cv-btn{\n\ndisplay:inline-block;\n\npadding:14px 30px;\n\nborder-radius:8px;\n\ntext-decoration:none;\n\nfont-weight:600;\n\ntransition:.25s;\n\ncursor:pointer;\n\nborder:none;\n\nfont-size:15px;\n\n}\n\n.cv-btn-primary{\n\nbackground:#0057b8;\n\ncolor:#fff;\n\n}\n\n.cv-btn-primary:hover{\n\nbackground:#00408a;\n\n}\n\n.cv-btn-secondary{\n\nbackground:#f5f5f5;\n\ncolor:#222;\n\n}\n\n.cv-btn-secondary:hover{\n\nbackground:#e8e8e8;\n\n}\n\n@media(max-width:768px){\n\n.cv-approved-card{\n\npadding:30px 20px;\n\n}\n\n.cv-approved-buttons{\n\nflex-direction:column;\n\n}\n\n.cv-btn{\n\nwidth:100%;\n\n}\n\n.cv-approved-card h1{\n\nfont-size:28px;\n\n}\n\n.cv-approved-message{\n\nfont-size:15px;\n\n}\n\n}\n\n.cv-btn{\n\ntransition:\n\nbackground .2s,\n\ntransform .2s,\n\nbox-shadow .2s;\n\n}\n\n.cv-btn:hover{\n\ntransform:translateY(-2px);\n\nbox-shadow:0 8px 20px rgba(0,0,0,.12);\n\n}\n\n.submit-btn:disabled,\n.cv-btn:disabled{\n\nopacity:.65;\n\ncursor:not-allowed;\n\ntransform:none;\n\nbox-shadow:none;\n\n}\n\n\/* =========================================================\n   FORM STATUS BANNER\n   ========================================================= *\/\n\n#cv-form-status-banner{\n\ndisplay:none;\n\nmargin-bottom:25px;\n\npadding:18px 20px;\n\nborder-radius:12px;\n\nline-height:1.7;\n\nfont-size:15px;\n\n}\n\n.cv-banner-info{\n\nbackground:#eef6ff;\n\nborder-left:5px solid #2271b1;\n\ncolor:#174a7c;\n\n}\n\n.cv-banner-warning{\n\nbackground:#fff8e1;\n\nborder-left:5px solid #d4a017;\n\ncolor:#6b4e00;\n\n}\n\n.cv-banner-success{\n\nbackground:#e8f8ee;\n\nborder-left:5px solid #198754;\n\ncolor:#155724;\n\n}\n\n.cv-banner-danger{\n\nbackground:#fdecec;\n\nborder-left:5px solid #dc3545;\n\ncolor:#842029;\n\n}\n<\/style>\n\n<script data-wp-block-html=\"js\">\n(function () {\n\n  \/*\n  |--------------------------------------------------------------------------\n  | CV REQUEST FORM \u2014 FRONTEND STATE MANAGEMENT\n  |--------------------------------------------------------------------------\n  |\n  | This script works with:\n  |\n  | window.ConIdeasCVRequest\n  |\n  | supplied by PHP through:\n  |\n  | conideas_expose_cv_request_data()\n  |\n  | Supported workflow states:\n  |\n  | - No existing request\n  | - pending\n  | - modification_requested\n  | - approved\n  | - rejected\n  |\n  |--------------------------------------------------------------------------\n  *\/\n\n\n  \/*\n  |--------------------------------------------------------------------------\n  | Wait Until DOM Is Ready\n  |--------------------------------------------------------------------------\n  *\/\n\n  function initCVRequestForm() {\n\n\n    \/*\n    |--------------------------------------------------------------------------\n    | Elements\n    |--------------------------------------------------------------------------\n    *\/\n\n    const guestContainer =\n      document.getElementById(\n        'cv-guest-container'\n      );\n\n\n    const formContainer =\n      document.getElementById(\n        'cv-form-container'\n      );\n\n\n    const successMessage =\n      document.getElementById(\n        'cv-success-message'\n      );\n\n\n    const form =\n      document.querySelector(\n        '.cv-form'\n      );\n\n\n    \/*\n    |--------------------------------------------------------------------------\n    | Form Fields\n    |--------------------------------------------------------------------------\n    *\/\n\n    const fullNameField =\n      document.querySelector(\n        '[name=\"full_name\"]'\n      );\n\n\n    const professionalTitleField =\n      document.querySelector(\n        '[name=\"professional_title\"]'\n      );\n\n\n    const emailField =\n      document.querySelector(\n        '[name=\"email\"]'\n      );\n\n\n    const phoneField =\n      document.querySelector(\n        '[name=\"phone\"]'\n      );\n\n\n    const summaryField =\n      document.querySelector(\n        '[name=\"summary\"]'\n      );\n\n\n    const experienceField =\n      document.querySelector(\n        '[name=\"experience\"]'\n      );\n\n\n    const educationField =\n      document.querySelector(\n        '[name=\"education\"]'\n      );\n\n\n    const skillsField =\n      document.querySelector(\n        '[name=\"skills\"]'\n      );\n\n\n    const layoutFields =\n      document.querySelectorAll(\n        '[name=\"cv_layout\"]'\n      );\n\n\n    const themeFields =\n      document.querySelectorAll(\n        '[name=\"cv_color_theme\"]'\n      );\n\n\n    \/*\n    |--------------------------------------------------------------------------\n    | Submit Button\n    |--------------------------------------------------------------------------\n    *\/\n\n    const submitButton =\n      form\n        ? form.querySelector(\n            '.submit-btn'\n          )\n        : null;\n\n\n    \/*\n    |--------------------------------------------------------------------------\n    | Safety Check\n    |--------------------------------------------------------------------------\n    |\n    | Do not stop the entire script just because one optional\n    | element is missing.\n    |\n    | The form and main containers are the important elements.\n    |\n    *\/\n\n    if (\n      !guestContainer ||\n      !formContainer ||\n      !successMessage\n    ) {\n\n      return;\n\n    }\n\n\n    \/*\n    |--------------------------------------------------------------------------\n    | WordPress Login State\n    |--------------------------------------------------------------------------\n    *\/\n\n    const isLoggedIn =\n      document.body.classList.contains(\n        'logged-in'\n      );\n\n\n    \/*\n    |--------------------------------------------------------------------------\n    | Current URL Parameters\n    |--------------------------------------------------------------------------\n    *\/\n\n    const params =\n      new URLSearchParams(\n        window.location.search\n      );\n\n\n    const requestStatus =\n      params.get(\n        'cv_request_status'\n      );\n\n\n    \/*\n    |--------------------------------------------------------------------------\n    | Success State\n    |--------------------------------------------------------------------------\n    |\n    | New request:\n    |\n    | ?cv_request_status=submitted\n    |\n    | Existing request update:\n    |\n    | ?cv_request_status=resubmitted\n    |\n    *\/\n\n    if (\n      requestStatus ===\n      'submitted'\n    ) {\n\n      guestContainer.style.display =\n        'none';\n\n      formContainer.style.display =\n        'none';\n\n      successMessage.style.display =\n        'block';\n\n\n      \/*\n      |--------------------------------------------------------------------------\n      | New Submission Success Message\n      |--------------------------------------------------------------------------\n      *\/\n\n      successMessage.innerHTML = `\n\n        <h1>\n          \u2705 Successfully Submitted\n        <\/h1>\n\n        <p>\n          Thank you for submitting your professional CV request.\n          Your information has been received and is now under review.\n        <\/p>\n\n        <p>\n          Once approved, your professional profile will be published\n          on our website.\n        <\/p>\n\n        <a\n          class=\"home-link\"\n          href=\"\/\"\n        >\n          \u2190 Back to Home\n        <\/a>\n\n      `;\n\n      return;\n\n    }\n\n\n    \/*\n    |--------------------------------------------------------------------------\n    | Update \/ Resubmission Success\n    |--------------------------------------------------------------------------\n    *\/\n\n    if (\n      requestStatus ===\n      'resubmitted'\n    ) {\n\n      guestContainer.style.display =\n        'none';\n\n      formContainer.style.display =\n        'none';\n\n      successMessage.style.display =\n        'block';\n\n\n      \/*\n      |--------------------------------------------------------------------------\n      | Updated Submission Success Message\n      |--------------------------------------------------------------------------\n      *\/\n\n      successMessage.innerHTML = `\n\n        <h1>\n          \u2705 Successfully Submitted Update\n        <\/h1>\n\n        <p>\n          Your updated professional CV information has been\n          successfully submitted for review.\n        <\/p>\n\n        <p>\n          The administrator will review your updated information.\n          Your previously approved profile, if any, will remain unchanged\n          until the updated request is approved.\n        <\/p>\n\n        <a\n          class=\"home-link\"\n          href=\"\/\"\n        >\n          \u2190 Back to Home\n        <\/a>\n\n      `;\n\n      return;\n\n    }\n\n\n    \/*\n    |--------------------------------------------------------------------------\n    | Error State\n    |--------------------------------------------------------------------------\n    *\/\n\n    if (\n      requestStatus ===\n      'error'\n    ) {\n\n      guestContainer.style.display =\n        'none';\n\n      formContainer.style.display =\n        'block';\n\n      successMessage.style.display =\n        'none';\n\n    }\n\n\n    \/*\n    |--------------------------------------------------------------------------\n    | Guest User\n    |--------------------------------------------------------------------------\n    |\n    | Guests cannot submit CV requests.\n    |\n    *\/\n\n    if (\n      !isLoggedIn\n    ) {\n\n      guestContainer.style.display =\n        'block';\n\n      formContainer.style.display =\n        'none';\n\n      successMessage.style.display =\n        'none';\n\n\n      \/*\n      |--------------------------------------------------------------------------\n      | Stop Further Processing\n      |--------------------------------------------------------------------------\n      *\/\n\n      return;\n\n    }\n\n\n    \/*\n    |--------------------------------------------------------------------------\n    | Logged-In User\n    |--------------------------------------------------------------------------\n    *\/\n\n    guestContainer.style.display =\n      'none';\n\n    formContainer.style.display =\n      'block';\n\n    successMessage.style.display =\n      'none';\n\n\n    \/*\n    |--------------------------------------------------------------------------\n    | Existing CV Request Data\n    |--------------------------------------------------------------------------\n    |\n    | PHP provides:\n    |\n    | window.ConIdeasCVRequest\n    |\n    *\/\n\n    const cvRequest =\n      window.ConIdeasCVRequest\n        || {\n          exists: false\n        };\n\n    \/*\n|--------------------------------------------------------------------------\n| Published Professional CV\n|--------------------------------------------------------------------------\n*\/\n\nconst professionalCV =\n    window.ConIdeasProfessionalCV\n    || {\n        exists: false\n    };\n\n\/*\n|--------------------------------------------------------------------------\n| Show Update Form\n|--------------------------------------------------------------------------\n|\n| The update form is only shown when the user\n| explicitly requests it.\n|\n*\/\n\nlet showUpdateForm = false;\n\nconst approvedContainer =\n    document.getElementById(\n        'cv-approved-container'\n    );\n\n\nconst updateButton =\n    document.getElementById(\n        'cv-update-request-btn'\n    );\n\n\nconst viewProfileButton =\n    document.getElementById(\n        'cv-view-profile-btn'\n    );\n\n\nconst statusBanner =\n    document.getElementById(\n        'cv-approved-status-banner'\n    );\n\n\nconst approvedMessage =\n    document.querySelector(\n        '.cv-approved-message'\n    );\n\n    \/*\n    |--------------------------------------------------------------------------\n    | Determine Existing Request\n    |--------------------------------------------------------------------------\n    *\/\n\n    const hasExistingRequest =\n      cvRequest.exists === true;\n\n\n    \/*\n    |--------------------------------------------------------------------------\n    | Current Request Status\n    |--------------------------------------------------------------------------\n    *\/\n\n    const currentStatus =\n      cvRequest.status\n        ? String(\n            cvRequest.status\n          )\n        : '';\n\n\/*\n|--------------------------------------------------------------------------\n| Published Professional CV\n|--------------------------------------------------------------------------\n*\/\n\nif (\n    professionalCV.exists &&\n    !showUpdateForm\n) {\n\n    guestContainer.style.display =\n        'none';\n\n    formContainer.style.display =\n        'none';\n\n    successMessage.style.display =\n        'none';\n\n    approvedContainer.style.display =\n        'block';\n\n\n    \/*\n    |--------------------------------------------------------------------------\n    | View Profile Button\n    |--------------------------------------------------------------------------\n    *\/\n\n    if (\n        viewProfileButton\n    ) {\n\n        viewProfileButton.href =\n            professionalCV.url;\n\n    }\n\n\n    \/*\n    |--------------------------------------------------------------------------\n    | Congratulations Message\n    |--------------------------------------------------------------------------\n    *\/\n\n    let details = '';\n\n    if (\n        professionalCV.published\n    ) {\n\n        details +=\n\n            '<br><strong>Published:<\/strong> '\n\n            +\n\n            professionalCV.published;\n\n    }\n\n\n    if (\n        professionalCV.modified\n    ) {\n\n        details +=\n\n            '<br><strong>Last Updated:<\/strong> '\n\n            +\n\n            professionalCV.modified;\n\n    }\n\n\n    approvedMessage.innerHTML =\n\n        'Your Professional CV has been approved and published successfully.<br><br>'\n\n        +\n\n        'It is now visible to employers, companies and members on ConIdeas.'\n\n        +\n\n        details;\n\n\n    \/*\n    |--------------------------------------------------------------------------\n    | Hide Banner By Default\n    |--------------------------------------------------------------------------\n    *\/\n\n    statusBanner.style.display =\n        'none';\n\n\n    \/*\n    |--------------------------------------------------------------------------\n    | Pending Updated Request\n    |--------------------------------------------------------------------------\n    *\/\n\n    if (\n\n        cvRequest.status ===\n        'pending'\n\n        &&\n\n        cvRequest.last_action ===\n        'updated'\n\n    ) {\n\n        statusBanner.style.display =\n            'block';\n\n        statusBanner.innerHTML =\n\n            '\ud83d\udfe1 Your updated Professional CV request has been submitted.<br><br>' +\n\n            'Your published Professional CV remains visible while the administrator reviews your update.';\n\n    }\n\n\n    \/*\n    |--------------------------------------------------------------------------\n    | Modification Requested\n    |--------------------------------------------------------------------------\n    *\/\n\n    else if (\n\n        cvRequest.status ===\n        'modification_requested'\n\n    ) {\n\n        statusBanner.style.display =\n            'block';\n\n        statusBanner.innerHTML =\n\n            '\ud83d\udfe0 The administrator requested some changes to your Professional CV.<br><br>' +\n\n            'Click \"Update My Professional CV\" below to continue editing.';\n\n    }\n\n\n    \/*\n    |--------------------------------------------------------------------------\n    | Update Rejected\n    |--------------------------------------------------------------------------\n    *\/\n\n    else if (\n\n        cvRequest.status ===\n        'rejected'\n\n    ) {\n\n        statusBanner.style.display =\n            'block';\n\n        statusBanner.innerHTML =\n\n            '\ud83d\udd34 Your latest update request was rejected.<br><br>' +\n\n            'Your current published Professional CV remains available.';\n\n    }\n\n\n    \/*\n    |--------------------------------------------------------------------------\n    | Update Button\n    |--------------------------------------------------------------------------\n    *\/\n\n    updateButton.onclick = function () {\n\n        showUpdateForm = true;\n\n        approvedContainer.style.display =\n            'none';\n\n        formContainer.style.display =\n            'block';\n\n\n        \/*\n        |--------------------------------------------------------------------------\n        | Change Submit Button Text\n        |--------------------------------------------------------------------------\n        *\/\n\n        if (\n            submitButton\n        ) {\n\n            submitButton.textContent =\n                'Submit Updated Professional CV';\n\n        }\n\n\n        \/*\n        |--------------------------------------------------------------------------\n        | Scroll To Form\n        |--------------------------------------------------------------------------\n        *\/\n\n        formContainer.scrollIntoView({\n\n            behavior: 'smooth',\n\n            block: 'start'\n\n        });\n\n    };\n\n\n    return;\n\n}\n    \/*\n    |--------------------------------------------------------------------------\n    | Prefill Existing CV Request\n    |--------------------------------------------------------------------------\n    |\n    | Existing request data is loaded into the form.\n    |\n    *\/\n\n    if (\n      hasExistingRequest\n    ) {\n\n\n      \/*\n      |--------------------------------------------------------------------------\n      | Personal Information\n      |--------------------------------------------------------------------------\n      *\/\n\n      if (\n        fullNameField\n      ) {\n\n        fullNameField.value =\n          cvRequest.full_name\n          || '';\n\n      }\n\n\n      if (\n        professionalTitleField\n      ) {\n\n        professionalTitleField.value =\n          cvRequest.professional_title\n          || '';\n\n      }\n\n\n      if (\n        emailField\n      ) {\n\n        emailField.value =\n          cvRequest.email\n          || '';\n\n      }\n\n\n      if (\n        phoneField\n      ) {\n\n        phoneField.value =\n          cvRequest.phone\n          || '';\n\n      }\n\n\n      \/*\n      |--------------------------------------------------------------------------\n      | Professional Information\n      |--------------------------------------------------------------------------\n      *\/\n\n      if (\n        summaryField\n      ) {\n\n        summaryField.value =\n          cvRequest.summary\n          || '';\n\n      }\n\n\n      if (\n        experienceField\n      ) {\n\n        experienceField.value =\n          cvRequest.experience\n          || '';\n\n      }\n\n\n      if (\n        educationField\n      ) {\n\n        educationField.value =\n          cvRequest.education\n          || '';\n\n      }\n\n\n      if (\n        skillsField\n      ) {\n\n        skillsField.value =\n          cvRequest.skills\n          || '';\n\n      }\n\n\n      \/*\n      |--------------------------------------------------------------------------\n      | CV Layout\n      |--------------------------------------------------------------------------\n      *\/\n\n      if (\n        cvRequest.cv_layout\n      ) {\n\n        layoutFields.forEach(\n          function (field) {\n\n            field.checked =\n              (\n                field.value ===\n                cvRequest.cv_layout\n              );\n\n          }\n        );\n\n      }\n\n\n      \/*\n      |--------------------------------------------------------------------------\n      | CV Color Theme\n      |--------------------------------------------------------------------------\n      *\/\n\n      if (\n        cvRequest.cv_color_theme\n      ) {\n\n        themeFields.forEach(\n          function (field) {\n\n            field.checked =\n              (\n                field.value ===\n                cvRequest.cv_color_theme\n              );\n\n          }\n        );\n\n      }\n\n    }\n\n\n    \/*\n    |--------------------------------------------------------------------------\n    | Request Modification Message\n    |--------------------------------------------------------------------------\n    |\n    | If the administrator requested a modification,\n    | show the message above the form.\n    |\n    *\/\n\n    if (\n      currentStatus ===\n      'modification_requested' &&\n      cvRequest.modification_message\n    ) {\n\n\n      \/*\n      |--------------------------------------------------------------------------\n      | Find Existing Modification Notice\n      |--------------------------------------------------------------------------\n      *\/\n\n      let modificationNotice =\n        document.getElementById(\n          'cv-modification-notice'\n        );\n\n\n      \/*\n      |--------------------------------------------------------------------------\n      | Create Notice If It Does Not Exist\n      |--------------------------------------------------------------------------\n      *\/\n\n      if (\n        !modificationNotice\n      ) {\n\n        modificationNotice =\n          document.createElement(\n            'div'\n          );\n\n        modificationNotice.id =\n          'cv-modification-notice';\n\n        modificationNotice.className =\n          'cv-modification-notice';\n\n\n        \/*\n        |--------------------------------------------------------------------------\n        | Insert Notice Before Form\n        |--------------------------------------------------------------------------\n        *\/\n\n        formContainer.insertBefore(\n          modificationNotice,\n          formContainer.firstChild\n        );\n\n      }\n\n\n      \/*\n      |--------------------------------------------------------------------------\n      | Display Modification Message\n      |--------------------------------------------------------------------------\n      *\/\n\n      modificationNotice.innerHTML = `\n\n        <strong>\n          Administrator Modification Request\n        <\/strong>\n\n        <p>\n          ${escapeHTML(\n            cvRequest.modification_message\n          )}\n        <\/p>\n\n        <p>\n          Please update your CV information below\n          and submit it again for review.\n        <\/p>\n\n      `;\n\n      modificationNotice.style.display =\n        'block';\n\n    }\n\n\n    \/*\n    |--------------------------------------------------------------------------\n    | Hide Modification Notice For Other States\n    |--------------------------------------------------------------------------\n    *\/\n\n    else {\n\n      const existingNotice =\n        document.getElementById(\n          'cv-modification-notice'\n        );\n\n      if (\n        existingNotice\n      ) {\n\n        existingNotice.style.display =\n          'none';\n\n      }\n\n    }\n\n\n    \/*\n    |--------------------------------------------------------------------------\n    | Set Submit Button Text\n    |--------------------------------------------------------------------------\n    *\/\n\n    if (\n    submitButton\n) {\n\n    if (\n        !hasExistingRequest\n    ) {\n\n        submitButton.textContent =\n            'Request My Professional CV';\n\n    }\n\n    else {\n\n        submitButton.textContent =\n            'Submit Updated Professional CV';\n\n    }\n\n}\n\n\n    \/*\n    |--------------------------------------------------------------------------\n    | Guest Form Submission Protection\n    |--------------------------------------------------------------------------\n    |\n    | This is an additional client-side safety layer.\n    |\n    | The PHP handler remains the real security control.\n    |\n    *\/\n\n    if (\n      form\n    ) {\n\n      form.addEventListener(\n        'submit',\n        function (event) {\n\n          \/*\n          |--------------------------------------------------------------------------\n          | Logged-In User\n          |--------------------------------------------------------------------------\n          |\n          | Allow normal form submission.\n          |\n          *\/\n\n          if (\n            isLoggedIn\n          ) {\n\n            return;\n\n          }\n\n\n          \/*\n          |--------------------------------------------------------------------------\n          | Guest User\n          |--------------------------------------------------------------------------\n          *\/\n\n          event.preventDefault();\n\n\n          \/*\n          |--------------------------------------------------------------------------\n          | Return URL\n          |--------------------------------------------------------------------------\n          *\/\n\n          const returnUrl =\n            window.location.href;\n\n\n          \/*\n          |--------------------------------------------------------------------------\n          | Redirect To Custom Login Page\n          |--------------------------------------------------------------------------\n          *\/\n\n          const loginUrl =\n            '\/log-in\/?redirect_to=' +\n            encodeURIComponent(\n              returnUrl\n            );\n\n\n          window.location.href =\n            loginUrl;\n\n        }\n      );\n\n    }\n\n  }\n\n\n  \/*\n  |--------------------------------------------------------------------------\n  | Escape HTML\n  |--------------------------------------------------------------------------\n  |\n  | Protect modification message before inserting it\n  | into innerHTML.\n  |\n  *\/\n\n  function escapeHTML(\n    value\n  ) {\n\n    const div =\n      document.createElement(\n        'div'\n      );\n\n    div.textContent =\n      value\n      || '';\n\n    return div.innerHTML;\n\n  }\n\n\n  \/*\n  |--------------------------------------------------------------------------\n  | Initialize\n  |--------------------------------------------------------------------------\n  *\/\n\n  if (\n    document.readyState ===\n    'loading'\n  ) {\n\n    document.addEventListener(\n      'DOMContentLoaded',\n      initCVRequestForm\n    );\n\n  }\n\n  else {\n\n    initCVRequestForm();\n\n  }\n\n\n})();\n<\/script>\n\n<div id=\"cv-approved-container\">\n\n<div class=\"cv-approved-card\">\n\n<div class=\"cv-approved-icon\">\n\n\ud83c\udf89\n\n<\/div>\n\n<h1>\n\nCongratulations!\n\n<\/h1>\n\n<p id=\"cv-approved-message\" class=\"cv-approved-message\">\n\n<\/p>\n\n<div id=\"cv-approved-status-banner\">\n<\/div>\n\n<div class=\"cv-approved-buttons\">\n\n<a id=\"cv-view-profile-btn\" class=\"cv-btn cv-btn-primary\" href=\"#\">\n\nView My Professional CV\n\n<\/a>\n\n<button id=\"cv-update-request-btn\" type=\"button\" class=\"cv-btn cv-btn-secondary\">\n\nUpdate My Professional CV\n\n<\/button>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n<div class=\"cv-form-wrapper\">\n\n<div id=\"cv-form-status-banner\" class=\"cv-form-status-banner\" style=\"display:none;\">\n<\/div>\n\n  <!-- =========================================================\n       GUEST \/ LOGGED-IN CONTENT\n       ========================================================= -->\n\n  <div id=\"cv-guest-container\" style=\"display:none;\">\n\n    <section class=\"cv-login-notice\">\n\n      <h1>\n        Build Your Professional CV\n      <\/h1>\n\n      <p class=\"cv-notice-intro\">\n        Create your professional presence on ConIdeas and showcase\n        your experience, education, skills, and professional background.\n      <\/p>\n\n      <div class=\"cv-notice-info\">\n\n        <h3>\n          How it works\n        <\/h3>\n\n        <ol>\n          <li>\n            Register or log in to your ConIdeas account.\n          <\/li>\n\n          <li>\n            Submit your professional CV information.\n          <\/li>\n\n          <li>\n            Our team reviews your submitted information.\n          <\/li>\n\n          <li>\n            Your Professional CV is manually prepared and published\n            after approval.\n          <\/li>\n        <\/ol>\n\n      <\/div>\n\n      <p class=\"cv-login-message\">\n        Please register or log in to submit your Professional CV request.\n      <\/p>\n\n      <div class=\"cv-auth-actions\">\n\n        <a href=\"\/register\/\" class=\"cv-auth-btn cv-auth-btn-primary\">\n          Register\n        <\/a>\n\n        <a href=\"\/log-in\/\" class=\"cv-auth-btn cv-auth-btn-secondary\">\n          Log In\n        <\/a>\n\n      <\/div>\n\n    <\/section>\n\n  <\/div>\n\n\n  <!-- =========================================================\n       SUCCESS MESSAGE\n       ========================================================= -->\n\n  <div id=\"cv-success-message\" style=\"display:none;\">\n    \n    <p id=\"cv-success-status\" class=\"cv-success-status\">\n\n<\/p>\n\n    <div class=\"cv-success-icon\" aria-hidden=\"true\">\n      \u2713\n    <\/div>\n\n    <h1>\n      Request Submitted Successfully\n    <\/h1>\n\n    <p>\n      Thank you for submitting your Professional CV request.\n      Your information has been received and is now under review.\n    <\/p>\n\n    <p>\n      Our team will review your information and manually prepare\n      your Professional CV. Once approved, your professional profile\n      will be published on the ConIdeas Professionals directory.\n    <\/p>\n\n    <a class=\"home-link\" href=\"\/\">\n      \u2190 Back to Home\n    <\/a>\n\n  <\/div>\n\n\n  <!-- =========================================================\n       LOGGED-IN USER CV REQUEST FORM\n       ========================================================= -->\n\n  <div id=\"cv-form-container\" style=\"display:none;\">\n\n    <input type=\"hidden\" name=\"cv_request_action\" id=\"cv-request-action\" value=\"new\">\n\n    <div class=\"cv-page-header\">\n\n      <h1>\n        Create Your Professional CV\n      <\/h1>\n\n      <p class=\"intro-text\">\n        Fill in the form below to submit your Professional CV request.\n        Your information will be reviewed by our team before your\n        Professional CV is created and published.\n      <\/p>\n\n      <div class=\"cv-review-notice\">\n\n        <strong>\n          What happens next?\n        <\/strong>\n\n        <p>\n          After you submit your information, our team will review your\n          request. If approved, your Professional CV will be manually\n          prepared using one of our professional CV formats and published\n          on the ConIdeas Professionals directory.\n        <\/p>\n\n      <\/div>\n\n    <\/div>\n\n\n    <!-- =========================================================\n         CV REQUEST FORM\n         ========================================================= -->\n\n    <form method=\"post\" class=\"cv-form\">\n\n      <!-- Required by existing PHP submission handler -->\n      <input type=\"hidden\" name=\"cv_form_submit\" value=\"1\">\n\n      <!-- Honeypot spam protection -->\n      <input type=\"text\" name=\"website\" style=\"display:none;\" tabindex=\"-1\" autocomplete=\"off\">\n\n\n      <!-- =======================================================\n           PERSONAL INFORMATION\n           ======================================================= -->\n\n      <div class=\"cv-card\">\n\n        <h3>\n          Personal Information\n        <\/h3>\n\n        <p class=\"hint\">\n          Basic information used on your Professional CV.\n        <\/p>\n\n\n        <label for=\"cv-full-name\">\n          Full Name *\n        <\/label>\n\n        <input type=\"text\" id=\"cv-full-name\" name=\"full_name\" required=\"\">\n\n\n        <label for=\"cv-professional-title\">\n          Professional Title *\n        <\/label>\n\n        <input type=\"text\" id=\"cv-professional-title\" name=\"professional_title\" placeholder=\"e.g. Structural Engineer\" required=\"\">\n\n\n        <label for=\"cv-email\">\n          Email *\n        <\/label>\n\n        <input type=\"email\" id=\"cv-email\" name=\"email\" required=\"\">\n\n\n        <label for=\"cv-phone\">\n          Phone (optional)\n        <\/label>\n\n        <input type=\"text\" id=\"cv-phone\" name=\"phone\">\n\n      <\/div>\n\n\n      <!-- =======================================================\n           PROFESSIONAL SUMMARY\n           ======================================================= -->\n\n      <div class=\"cv-card\">\n\n        <h3>\n          Professional Summary\n        <\/h3>\n\n        <p class=\"hint\">\n          Write 2\u20134 sentences describing your professional background,\n          experience, and areas of expertise.\n        <\/p>\n\n        <textarea id=\"cv-summary\" name=\"summary\" rows=\"5\"><\/textarea>\n\n      <\/div>\n\n\n      <!-- =======================================================\n           EXPERIENCE\n           ======================================================= -->\n\n      <div class=\"cv-card\">\n\n        <h3>\n          Experience\n        <\/h3>\n\n        <p class=\"hint\">\n          List your most recent professional roles, responsibilities,\n          and relevant experience.\n        <\/p>\n\n        <textarea id=\"cv-experience\" name=\"experience\" rows=\"7\"><\/textarea>\n\n      <\/div>\n\n\n      <!-- =======================================================\n           EDUCATION\n           ======================================================= -->\n\n      <div class=\"cv-card\">\n\n        <h3>\n          Education\n        <\/h3>\n\n        <textarea id=\"cv-education\" name=\"education\" rows=\"5\"><\/textarea>\n\n      <\/div>\n\n\n      <!-- =======================================================\n           SKILLS\n           ======================================================= -->\n\n      <div class=\"cv-card\">\n\n        <h3>\n          Skills\n        <\/h3>\n\n        <p class=\"hint\">\n          Separate your professional skills with commas.\n        <\/p>\n\n        <textarea id=\"cv-skills\" name=\"skills\" rows=\"5\"><\/textarea>\n\n      <\/div>\n\n\n      <!-- =======================================================\n           CV LAYOUT\n           ======================================================= -->\n\n      <div class=\"cv-card\">\n\n        <h3>\n          Select CV Layout *\n        <\/h3>\n\n        <p class=\"hint\">\n          Choose your preferred CV design. The final layout may be\n          adjusted during the professional CV preparation process.\n        <\/p>\n\n\n        <div class=\"layout-options\">\n\n\n          <label class=\"layout-card\">\n\n            <input id=\"layout_a\" type=\"radio\" name=\"cv_layout\" value=\"layout_a\" required=\"\">\n\n            <img decoding=\"async\" src=\"https:\/\/conideas.com.et\/wp-content\/uploads\/2026\/01\/cv-layout-classic.png\" alt=\"Classic CV Layout\">\n\n            <span>\n              Classic\n            <\/span>\n\n          <\/label>\n\n\n          <label class=\"layout-card\">\n\n            <input id=\"layout_b\" type=\"radio\" name=\"cv_layout\" value=\"layout_b\">\n\n            <img decoding=\"async\" src=\"https:\/\/conideas.com.et\/wp-content\/uploads\/2026\/01\/cv-layout-modern.png\" alt=\"Modern CV Layout\">\n\n            <span>\n              Modern\n            <\/span>\n\n          <\/label>\n\n\n          <label class=\"layout-card\">\n\n            <input id=\"layout_c\" type=\"radio\" name=\"cv_layout\" value=\"layout_c\">\n\n            <img decoding=\"async\" src=\"https:\/\/conideas.com.et\/wp-content\/uploads\/2026\/01\/cv-layout-sidebar.png\" alt=\"Timeline CV Layout\">\n\n            <span>\n              Timeline\n            <\/span>\n\n          <\/label>\n\n\n        <\/div>\n\n      <\/div>\n\n\n      <!-- =======================================================\n           COLOR THEME\n           ======================================================= -->\n\n      <div class=\"cv-card\">\n\n        <h3>\n          Select Color Theme\n        <\/h3>\n\n\n        <div class=\"theme-options\">\n\n\n          <label class=\"theme-card theme-blue\">\n\n            <input id=\"theme-blue\" type=\"radio\" name=\"cv_color_theme\" value=\"theme-blue\" checked=\"\">\n\n            <div class=\"theme-preview\"><\/div>\n\n            <span>\n              Classic Blue\n            <\/span>\n\n          <\/label>\n\n\n          <label class=\"theme-card theme-gray\">\n\n            <input id=\"theme-gray\" type=\"radio\" name=\"cv_color_theme\" value=\"theme-gray\">\n\n            <div class=\"theme-preview\"><\/div>\n\n            <span>\n              Professional Gray\n            <\/span>\n\n          <\/label>\n\n\n          <label class=\"theme-card theme-dark\">\n\n            <input id=\"theme-dark\" type=\"radio\" name=\"cv_color_theme\" value=\"theme-dark\">\n\n            <div class=\"theme-preview\"><\/div>\n\n            <span>\n              Dark Executive\n            <\/span>\n\n          <\/label>\n\n\n        <\/div>\n\n      <\/div>\n\n\n      <!-- =======================================================\n           SUBMIT\n           ======================================================= -->\n\n      <button type=\"submit\" class=\"submit-btn\" id=\"cv-submit-button\">\n\nRequest My Professional CV\n\n<\/button>\n\n\n    <\/form>\n\n  <\/div>\n\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\ud83c\udf89 Congratulations! View My Professional CV Update My Professional CV Build Your Professional CV Create your professional presence on ConIdeas and showcase your experience, education, skills, and professional background. How it works Register or log in to your ConIdeas account. Submit your professional CV information. Our team reviews your submitted information. Your Professional CV is [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"footnotes":""},"class_list":["post-1839","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/conideas.com.et\/am\/wp-json\/wp\/v2\/pages\/1839","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/conideas.com.et\/am\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/conideas.com.et\/am\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/conideas.com.et\/am\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/conideas.com.et\/am\/wp-json\/wp\/v2\/comments?post=1839"}],"version-history":[{"count":72,"href":"https:\/\/conideas.com.et\/am\/wp-json\/wp\/v2\/pages\/1839\/revisions"}],"predecessor-version":[{"id":4307,"href":"https:\/\/conideas.com.et\/am\/wp-json\/wp\/v2\/pages\/1839\/revisions\/4307"}],"wp:attachment":[{"href":"https:\/\/conideas.com.et\/am\/wp-json\/wp\/v2\/media?parent=1839"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}